diff --git a/BOWSER_V2_DESIGN.md b/BOWSER_V2_DESIGN.md
new file mode 100644
index 0000000..87c9bbf
--- /dev/null
+++ b/BOWSER_V2_DESIGN.md
@@ -0,0 +1,988 @@
+# Bowser V2: Design Document
+
+> **Status:** Draft
+> **Date:** 2026-03-22
+> **Authors:** Scott Staniewicz + Claude
+
+---
+
+## Table of Contents
+
+1. [Motivation](#1-motivation)
+2. [Competitive Landscape](#2-competitive-landscape)
+3. [V2 Vision & Principles](#3-v2-vision--principles)
+4. [Data Model](#4-data-model)
+5. [Architecture Overview](#5-architecture-overview)
+6. [Backend Design](#6-backend-design)
+7. [Frontend Design](#7-frontend-design)
+8. [UX Design](#8-ux-design)
+9. [Technology Choices](#9-technology-choices)
+10. [Migration from V1](#10-migration-from-v1)
+11. [Implementation Phases](#11-implementation-phases)
+12. [Open Questions](#12-open-questions)
+
+---
+
+## 1. Motivation
+
+Bowser V1 is a raster-first tool: every pixel on the map is a tile rendered from COGs or xarray datasets. This works well for continuous fields (unwrapped phase, coherence maps, displacement grids), but InSAR increasingly produces **point-based outputs** that don't fit the raster model:
+
+- **Persistent Scatterer (PS) points** — sparse, irregularly-spaced measurement points with per-point time series and attributes (velocity, coherence, height, etc.)
+- **Distributed Scatterer (DS) points** — similar to PS but from different processing pipelines
+- **SBAS pixel subsets** — not every pixel survives temporal coherence thresholds; the result is a sparse point cloud, not a full grid
+- **GPS/GNSS stations** — ground truth reference points with their own time series
+- **OPERA DISP-S1 post-processed results** — velocity, amplitude dispersion, etc. that are per-point
+
+Commercial platforms (IRIS, TRE-MAPS) already handle this well. TRE-MAPS in particular is entirely point-based — users filter, color, select, and export individual measurement points. IRIS offers raster views with point-level inspection. Neither is open source, and both are tightly coupled to their respective processing pipelines.
+
+**Bowser V2 should be the open-source answer**: a viewer that handles both rasters AND points natively, leveraging the huge recent improvements in cloud-native vector data (GeoParquet, DuckDB, deck.gl, PMTiles).
+
+---
+
+## 2. Competitive Landscape
+
+### IRIS (EarthDaily Analytics)
+
+**Strengths:**
+- Multi-panel map comparison (reference image / InSAR overlay / amplitude)
+- Processing sandbox — users can trigger re-processing from the UI
+- Anomaly detection layer
+- Clean dark-themed UI with well-integrated time series chart
+- GPS ground monitoring overlay
+
+**Weaknesses:**
+- Raster-only visualization — no point-level attribute filtering
+- Three-panel layout wastes screen space when you only need one view
+- Heavy, proprietary platform tied to EarthDaily's processing pipeline
+- No export capabilities visible in the UI
+
+**Key takeaway:** The multi-panel comparison and anomaly detection are powerful ideas. The tight integration between spatial view and time series chart is table-stakes.
+
+### TRE-MAPS (TRE-ALTAMIRA)
+
+**Strengths:**
+- Point-based data model with rich per-point attributes (velocity, height, displacement, effective area, perimeter)
+- Three-tier filtering: by attribute, by date range, by symbology
+- Cross-section / profile tool — draw a transect line, see displacement along it
+- Polygon selection for area averaging (up to 10k points)
+- Multi-format export (CSV, Geodatabase, Shapefile, KMZ)
+- Multiple time series in one chart (shift+click)
+
+**Weaknesses:**
+- Dated UI (ArcGIS/ESRI-era design)
+- Limited to 1,000 points per export
+- Data archived after 3 months of inactivity
+- Only Chrome/Firefox supported
+- No raster layer support — can't overlay coherence or amplitude maps
+
+**Key takeaway:** The attribute filtering, symbology control, and cross-section tool are essential for point data. The 300-column CSV problem (like EGMS) shows the need for a clean, opinionated data model.
+
+### EGMS (European Ground Motion Service)
+
+**Relevant context:** EGMS distributes PS/DS point data as massive CSVs with ~300 columns (one per acquisition date for displacement values, plus metadata columns). This is the "data model anti-pattern" we want to avoid.
+
+---
+
+## 3. V2 Vision & Principles
+
+### Vision
+
+Bowser V2 is a **dual-mode InSAR viewer** that treats rasters and point clouds as first-class citizens. A researcher should be able to:
+
+1. Load a displacement raster stack AND a set of PS points over the same AOI
+2. See both layers simultaneously on the map
+3. Click a PS point to see its time series, or click the raster to sample pixel values
+4. Filter points by velocity, coherence, or any attribute
+5. Draw a transect and see a cross-section profile
+6. Export selected points with their full time series
+
+### Design Principles
+
+1. **Rasters + Vectors, unified** — One app, one map, both data types. No mode switching.
+2. **GeoParquet as the canonical point format** — Columnar, cloud-native, typed, self-describing. No 300-column CSVs.
+3. **Server does the heavy lifting, client does the rendering** — DuckDB handles filtering/aggregation on the server; the browser renders the result via WebGL.
+4. **Progressive disclosure** — Simple view by default (map + time series). Power features (filtering, cross-sections, export) available but not in your face.
+5. **URL-driven state** — Every view should be shareable via URL. Dataset, viewport, active filters, selected points — all encoded in the URL.
+6. **Open formats, open source** — No vendor lock-in. Standard formats in, standard formats out.
+
+---
+
+## 4. Data Model
+
+### 4.1 The Problem with Wide CSVs
+
+EGMS and similar services distribute point data as wide-format CSVs:
+
+```
+lon, lat, velocity, coherence, 2016-01-01, 2016-01-13, 2016-01-25, ...
+-118.25, 34.05, -12.3, 0.85, 0.0, -1.2, -2.1, ...
+```
+
+Problems: hundreds of date columns, no type information, no metadata, can't efficiently query a subset of dates, enormous file sizes, hard to extend with new attributes.
+
+### 4.2 Bowser V2 Point Data Model
+
+We adopt a **normalized, long-form model** stored as GeoParquet. The data is split into two logical tables that can live in one or two files:
+
+#### Points Table (`points.parquet`)
+
+One row per measurement point. Stores spatial location and static attributes.
+
+| Column | Type | Required | Description |
+|--------|------|----------|-------------|
+| `point_id` | `uint64` | yes | Unique identifier |
+| `geometry` | `POINT` | yes | WGS84 lon/lat (GeoParquet native) |
+| `velocity` | `float32` | no | Mean velocity (mm/yr), LOS |
+| `velocity_std` | `float32` | no | Velocity uncertainty |
+| `temporal_coherence` | `float32` | no | Temporal coherence [0, 1] |
+| `height` | `float32` | no | Estimated height (m) above reference DEM |
+| `amplitude_dispersion` | `float32` | no | Amplitude dispersion index |
+| `reference_point_id` | `uint64` | no | Which point is the spatial reference |
+
+Design choices:
+- **`point_id` as uint64** rather than a compound key. Simple, fast joins, small index.
+- **Static attributes only** in this table. Anything that varies per date goes in the time series table.
+- **Optional columns are truly optional** — GeoParquet handles missing columns gracefully. A PS dataset might have `amplitude_dispersion`; a SBAS dataset might not. The frontend dynamically discovers available columns via the `/points/{layer}/attributes` endpoint.
+- **No CRS column** — GeoParquet metadata carries the CRS (EPSG:4326 by default). Projections happen at query/render time.
+- **Units stored in Parquet column metadata** — Each column carries a `units` key in its Parquet metadata (e.g., `{"units": "mm/yr"}` for velocity). The backend reads these and passes them to the frontend for axis labels and tooltips.
+
+#### Time Series Table (`timeseries.parquet`)
+
+One row per (point, date) pair. Long-form — the number of columns is fixed regardless of how many dates exist.
+
+| Column | Type | Required | Description |
+|--------|------|----------|-------------|
+| `point_id` | `uint64` | yes | FK to points table |
+| `date` | `date32` | yes | Acquisition date |
+| `displacement` | `float32` | yes | Cumulative displacement (mm), LOS |
+| `displacement_std` | `float32` | no | Per-epoch uncertainty |
+
+Design choices:
+- **Long-form is non-negotiable.** Adding a new acquisition date is appending rows, not adding columns. Queries like "all displacements between 2020-01-01 and 2021-01-01" are a simple `WHERE` clause, not selecting 50 columns by name.
+- **`date32`** not a string. Enables native date arithmetic, range queries, sorting.
+- **Row group layout is critical for performance.** See section 4.5.
+
+#### Why Two Tables?
+
+Joining is cheap (especially in DuckDB). The alternative — embedding the full time series as a nested array column — makes point-level metadata queries fast but time-range queries slow, and prevents columnar compression of the displacement values.
+
+For datasets where separate files are inconvenient, both tables can be stored in a single GeoParquet file using row groups or a single Parquet file with a `table` discriminator column. But logically, they are two relations.
+
+### 4.3 Dataset Manifest
+
+A Bowser V2 dataset is described by a JSON manifest that references both raster and vector sources:
+
+```json
+{
+ "name": "LA Basin PS Analysis",
+ "description": "Sentinel-1 descending, 2016-2023",
+ "satellite": "Sentinel-1",
+ "orbit": "descending",
+ "track": 71,
+ "reference_date": "2016-07-01",
+
+ "layers": {
+ "displacement": {
+ "type": "raster",
+ "source": "s3://bucket/displacement_stack.zarr",
+ "colormap": "RdBu_r",
+ "units": "mm",
+ "vmin": -50,
+ "vmax": 50
+ },
+ "coherence": {
+ "type": "raster",
+ "source": "s3://bucket/temporal_coherence.tif",
+ "colormap": "inferno",
+ "units": "",
+ "vmin": 0,
+ "vmax": 1
+ },
+ "ps_points": {
+ "type": "points",
+ "points_source": "s3://bucket/ps_points.parquet",
+ "timeseries_source": "s3://bucket/ps_timeseries.parquet",
+ "default_color_by": "velocity",
+ "default_colormap": "RdBu_r",
+ "default_vmin": -30,
+ "default_vmax": 30
+ },
+ "gps_stations": {
+ "type": "points",
+ "points_source": "s3://bucket/gps_stations.parquet",
+ "timeseries_source": "s3://bucket/gps_timeseries.parquet",
+ "default_color_by": "velocity",
+ "marker_style": "triangle"
+ }
+ },
+
+ "bounds": [-118.8, 33.5, -117.5, 34.3]
+}
+```
+
+This is deliberately simple:
+- **Flat, no nesting beyond `layers`** — easy to hand-write, easy to generate programmatically
+- **Each layer declares its type** — `raster` or `points` — so the frontend knows how to render it
+- **Defaults are suggestions** — the user can change colormap/range in the UI
+- **Sources can be local paths or S3 URIs** — the backend resolves them
+
+### 4.4 Conversion Utilities
+
+Converters are prioritized by what we can test immediately:
+
+#### Priority 1: Dolphin raster → point cloud (`bowser convert dolphin`)
+
+This is the primary early use case. A dolphin workflow directory contains:
+- `timeseries/YYYYMMDD.tif` — displacement rasters (one per date)
+- `timeseries/velocity.tif` — velocity map
+- `timeseries/velocity_stderr.tif` — velocity uncertainty
+- `interferograms/temporal_coherence_*.tif` — temporal coherence
+- `interferograms/amp_dispersion_looked*.tif` — amplitude dispersion
+- `interferograms/similarity_*.tif` — phase similarity
+- `interferograms/ps_mask_looked*.tif` — PS mask
+
+The converter:
+1. Reads the quality rasters (temporal coherence, amplitude dispersion, etc.)
+2. Applies a mask to select "good" pixels (e.g., `temporal_coherence > threshold`)
+3. Extracts lon/lat for surviving pixels
+4. Reads displacement values at those pixel locations across all dates
+5. Writes `points.parquet` (point_id, geometry, velocity, temporal_coherence, amplitude_dispersion, ...) and `timeseries.parquet` (point_id, date, displacement)
+6. Generates a `bowser_manifest.json` referencing both the original rasters and the new point layers
+
+```bash
+bowser convert dolphin /path/to/dolphin_work_dir \
+ --coherence-threshold 0.5 \
+ --output-dir ./dolphin_points/
+```
+
+#### Priority 2: MintPy HDF5
+
+```bash
+bowser convert mintpy --input timeseries.h5 --output-dir ./mintpy_points/
+```
+
+#### Priority 3 (future): Generic CSV, EGMS, StaMPS
+
+```bash
+# Generic long-form CSV
+bowser convert csv --input points.csv \
+ --lon-col longitude --lat-col latitude \
+ --date-col date --displacement-col disp_mm \
+ --output-dir ./custom/
+
+# EGMS wide-format CSV (someday)
+bowser convert egms --input egms_l3.csv --output-dir ./la_basin/
+```
+
+Each converter produces `points.parquet` + `timeseries.parquet` + a `bowser_manifest.json`.
+
+### 4.5 Parquet Row Group Strategy
+
+Row groups are the unit of I/O in Parquet — each row group is read independently, and column chunks within a row group are contiguous on disk. Row group layout has a major impact on query performance.
+
+#### Points table
+
+Row groups of ~50,000-100,000 points each. Since the points table is relatively small (one row per point, ~10 columns), a single row group often suffices for datasets under 1M points. For larger datasets, row groups sorted by a spatial key (e.g., H3 cell index or Hilbert curve) cluster nearby points together, improving bbox query performance.
+
+```python
+# Write with spatial sorting for bbox query efficiency
+import h3
+points["h3_cell"] = points.geometry.apply(lambda g: h3.latlng_to_cell(g.y, g.x, 6))
+points = points.sort_values("h3_cell").drop(columns=["h3_cell"])
+points.to_parquet("points.parquet", row_group_size=100_000)
+```
+
+#### Time series table
+
+This is where row groups matter most. The time series table can be enormous (1M points × 200 dates = 200M rows). Two layout strategies:
+
+**Option A: Group by point_id (point-access pattern)**
+Each row group contains all dates for a contiguous range of point IDs. This makes "fetch one point's full time series" a single row group read.
+
+```python
+# Sort by point_id, then date within each point
+ts = ts.sort_values(["point_id", "date"])
+# Row group size = num_dates × points_per_group
+# For 200 dates and ~500 points per group: row_group_size = 100_000
+ts.to_parquet("timeseries.parquet", row_group_size=num_dates * 500)
+```
+
+**Option B: Group by date (spatial-access pattern)**
+Each row group contains all points for one or a few dates. This makes "fetch displacement at date X for all points in bbox" fast, which is what the map view needs.
+
+For our use case, **Option A (group by point_id) is the default** because:
+- The most common query is "give me the time series for these N clicked points"
+- DuckDB can still efficiently filter by date within a row group (columnar scan)
+- The map view fetches static attributes (velocity) from the points table, not from the time series table
+
+We may revisit this or support both layouts if the date-access pattern becomes a bottleneck.
+
+---
+
+## 5. Architecture Overview
+
+```
+┌─────────────────────────────────────────────────────────────────┐
+│ Frontend (React + TypeScript) │
+│ │
+│ ┌──────────────┐ ┌──────────────┐ ┌───────────────────────┐ │
+│ │ MapLibre GL │ │ deck.gl │ │ Chart.js / Plotly │ │
+│ │ (basemaps, │ │ (point │ │ (time series, │ │
+│ │ raster │ │ cloud │ │ cross-sections, │ │
+│ │ tiles) │ │ rendering) │ │ histograms) │ │
+│ └──────┬───────┘ └──────┬───────┘ └───────────┬───────────┘ │
+│ │ │ │ │
+│ └──────────────────┼───────────────────────┘ │
+│ │ HTTP / WebSocket │
+└────────────────────────────┼────────────────────────────────────┘
+ │
+┌────────────────────────────┼────────────────────────────────────┐
+│ Backend (FastAPI) │
+│ │
+│ ┌──────────────┐ ┌──────────────┐ ┌───────────────────────┐ │
+│ │ Raster │ │ Vector │ │ Analysis │ │
+│ │ Server │ │ Server │ │ Engine │ │
+│ │ (titiler) │ │ (DuckDB + │ │ (trend fitting, │ │
+│ │ │ │ GeoParquet) │ │ cross-sections, │ │
+│ │ COGs, Zarr │ │ │ │ area averaging) │ │
+│ └──────────────┘ └──────────────┘ └───────────────────────┘ │
+│ │
+│ ┌──────────────────────────────────────────────────────────────┤
+│ │ Data Layer │
+│ │ - Cloud Optimized GeoTIFFs (existing V1) │
+│ │ - Zarr / NetCDF xarray datasets (existing V1) │
+│ │ - GeoParquet point files (NEW) │
+│ │ - Local filesystem first, S3 later │
+│ └──────────────────────────────────────────────────────────────┘
+└─────────────────────────────────────────────────────────────────┘
+```
+
+### What stays from V1
+
+- **titiler** for raster tile serving (COGs, Zarr, xarray) — battle-tested, no reason to replace
+- **FastAPI** as the web framework
+- **React + TypeScript** frontend
+- **CLI for dataset setup** (`bowser run`, `bowser setup-*`)
+
+### What's new in V2
+
+- **DuckDB** as an embedded analytical query engine for point data
+- **GeoParquet** as the canonical point data format
+- **deck.gl** (via `@deck.gl/maplibre`) for WebGL point rendering on the client
+- **MapLibre GL JS** replacing Leaflet for the map (WebGL-native, vector tile support, smoother interaction)
+- **Analysis engine** for cross-sections, area statistics, and trend analysis on point data
+
+---
+
+## 6. Backend Design
+
+### 6.1 Vector Server (New)
+
+The vector server is the centerpiece of V2. It uses DuckDB to query GeoParquet files and returns results as GeoJSON or binary Arrow IPC for large responses.
+
+#### Endpoints
+
+```
+GET /points/{layer_name}
+ ?bbox=-118.5,33.8,-117.8,34.2 # viewport bounding box
+ &color_by=velocity # attribute for coloring
+ &filter=temporal_coherence>0.7 # attribute filter expression
+ &max_points=50000 # client-requested limit
+ → Returns: GeoJSON or Arrow IPC (based on Accept header)
+ Point geometries + requested attribute columns only
+
+GET /points/{layer_name}/{point_id}/timeseries
+ ?start_date=2020-01-01
+ &end_date=2023-12-31
+ → Returns: JSON array of {date, displacement, displacement_std}
+
+POST /points/{layer_name}/timeseries
+ Body: {"point_ids": [123, 456, 789]}
+ → Returns: Multi-point time series for charting
+
+GET /points/{layer_name}/stats
+ ?bbox=...&filter=...
+ → Returns: {count, velocity_mean, velocity_std, velocity_min, velocity_max, ...}
+ Summary statistics for filtered points in viewport
+
+POST /points/{layer_name}/cross_section
+ Body: {
+ "line": [[lon1, lat1], [lon2, lat2]],
+ "width_m": 200,
+ "attribute": "velocity"
+ }
+ → Returns: Array of {distance_along_profile, attribute_value, point_id}
+
+POST /points/{layer_name}/area_average
+ Body: {
+ "polygon": [[lon1, lat1], ...],
+ "max_points": 10000
+ }
+ → Returns: Averaged time series + individual point count
+
+GET /points/{layer_name}/attributes
+ → Returns: List of available columns with types and value ranges
+ Used by the frontend to build filter UI dynamically
+
+POST /export
+ Body: {
+ "layer_name": "ps_points",
+ "format": "csv" | "geojson" | "geoparquet",
+ "bbox": [...],
+ "filter": "...",
+ "include_timeseries": true
+ }
+ → Returns: File download
+```
+
+#### DuckDB Query Engine
+
+DuckDB runs **in-process** (no separate database server). On startup, the backend registers GeoParquet files as DuckDB views:
+
+```python
+import duckdb
+
+conn = duckdb.connect()
+conn.install_extension("spatial")
+conn.load_extension("spatial")
+
+# Register point sources as views
+conn.execute("""
+ CREATE VIEW ps_points AS
+ SELECT * FROM read_parquet('s3://bucket/ps_points.parquet', spatial=true)
+""")
+conn.execute("""
+ CREATE VIEW ps_timeseries AS
+ SELECT * FROM read_parquet('s3://bucket/ps_timeseries.parquet')
+""")
+```
+
+Filtering translates directly to SQL:
+
+```python
+def query_points(
+ layer: str,
+ bbox: tuple[float, float, float, float],
+ color_by: str,
+ filters: list[str],
+ max_points: int,
+) -> pa.Table:
+ where_clauses = [
+ f"ST_Within(geometry, ST_MakeEnvelope({bbox[0]}, {bbox[1]}, {bbox[2]}, {bbox[3]}))"
+ ]
+ for f in filters:
+ where_clauses.append(sanitize_filter(f)) # parameterized to prevent injection
+
+ sql = f"""
+ SELECT point_id, ST_X(geometry) as lon, ST_Y(geometry) as lat, {color_by}
+ FROM {layer}
+ WHERE {' AND '.join(where_clauses)}
+ LIMIT {max_points}
+ """
+ return conn.execute(sql).fetch_arrow_table()
+```
+
+#### Progressive Loading Strategy
+
+For datasets with millions of points, we can't send them all to the browser at once. Strategy:
+
+1. **Viewport-based loading**: Only query points within the current map bbox + a small buffer
+2. **Zoom-dependent density**: At low zoom, use DuckDB `SAMPLE` or spatial grid aggregation. At high zoom, send individual points.
+3. **Attribute-aware thinning**: When zoomed out, prioritize high-|velocity| points (they're what the user cares about)
+4. **Client-side budget**: The frontend requests at most N points (e.g., 100k). The backend respects this and downsamples if needed.
+
+```
+Zoom level Strategy Approx points sent
+────────────────────────────────────────────────────────
+< 10 Grid aggregation ~1,000 cells
+10-14 Sampled points ~10,000-50,000
+> 14 All points in bbox Up to 100,000
+```
+
+### 6.2 Raster Server (Enhanced V1)
+
+The existing titiler-based raster server stays largely unchanged. Enhancements:
+
+- **Unified dataset registry**: Both raster and vector layers registered through the manifest
+- **Raster point sampling**: `GET /raster/{layer_name}/point?lon=...&lat=...` for clicking on raster pixels (existing V1 behavior, new URL prefix)
+- **COG + Zarr**: Continue supporting both modes
+
+### 6.3 Analysis Engine (New)
+
+Server-side computations that operate on point data:
+
+- **Trend fitting**: Linear, piecewise-linear, seasonal decomposition
+- **Cross-section profiles**: Query points within a buffer of a transect line, project onto the line, return distance-vs-attribute
+- **Area averaging**: Mean time series within a polygon, with uncertainty propagation
+- **Spatial reference adjustment**: Subtract a reference point's time series from all others
+- **Anomaly detection**: Flag points with velocity significantly different from neighbors (future)
+
+These are exposed as POST endpoints (see 6.1) and computed on-demand via DuckDB queries + NumPy/SciPy.
+
+---
+
+## 7. Frontend Design
+
+### 7.1 Map Engine: MapLibre GL JS + deck.gl
+
+**Why replace Leaflet with MapLibre:**
+- WebGL-native rendering (Leaflet is DOM-based, struggles past ~10k markers)
+- Native vector tile support
+- Smooth fractional zooming, 3D tilt, rotation
+- deck.gl integrates directly as a MapLibre custom layer
+
+**deck.gl for point rendering:**
+- `ScatterplotLayer` renders 1M+ points at 60fps via WebGL
+- Built-in picking (hover/click identification without spatial index on client)
+- GPU-accelerated color mapping — send attribute values + colormap, GPU does the rest
+- Binary data transport (Arrow IPC → GPU buffer) avoids JSON parsing overhead
+
+```typescript
+import { MapboxOverlay } from '@deck.gl/mapbox';
+import { ScatterplotLayer } from '@deck.gl/layers';
+
+const pointLayer = new ScatterplotLayer({
+ id: 'ps-points',
+ data: arrowTable, // binary Arrow from backend
+ getPosition: d => [d.lon, d.lat],
+ getFillColor: d => colorScale(d.velocity),
+ getRadius: 3,
+ radiusMinPixels: 2,
+ radiusMaxPixels: 8,
+ pickable: true,
+ onClick: info => selectPoint(info.object.point_id),
+});
+
+map.addControl(new MapboxOverlay({ layers: [pointLayer] }));
+```
+
+### 7.2 Charting: Plotly.js
+
+**Why switch from Chart.js to Plotly:**
+- Better for scientific data: error bars, subplots, annotations built-in
+- Linked brushing (select time range on chart → highlight on map)
+- Better zoom/pan within charts
+- WebGL renderer for large time series (`scattergl` trace type)
+- Export to PNG/SVG built-in
+- Widely used in scientific Python (familiar to our users)
+
+### 7.3 State Management
+
+V1 uses React Context + useReducer. For V2, keep this pattern but formalize URL-driven state:
+
+```typescript
+interface AppState {
+ // Dataset
+ datasetManifest: DatasetManifest;
+ activeLayers: string[];
+
+ // Map viewport
+ center: [number, number];
+ zoom: number;
+ bearing: number;
+ pitch: number;
+
+ // Point layer state
+ colorBy: string;
+ colormap: string;
+ vmin: number;
+ vmax: number;
+ filters: Filter[];
+
+ // Selection
+ selectedPointIds: number[];
+ referencePointId: number | null;
+ hoveredPointId: number | null;
+
+ // Raster layer state
+ rasterTimeIndex: number;
+ rasterColormap: string;
+ rasterVmin: number;
+ rasterVmax: number;
+ rasterOpacity: number;
+
+ // Analysis
+ crossSectionLine: [number, number][] | null;
+ areaSelectionPolygon: [number, number][] | null;
+
+ // UI
+ chartVisible: boolean;
+ panelVisible: boolean;
+ activeTab: 'layers' | 'filter' | 'export';
+}
+```
+
+All of this serializes to URL search params, so `https://bowser.app/?dataset=la_basin&color_by=velocity&filter=coherence>0.7&zoom=12¢er=-118.2,34.0` is a shareable, reproducible view.
+
+### 7.4 Component Architecture
+
+```
+App
+├── MapView
+│ ├── MapLibreMap (basemap, raster tile layers)
+│ ├── DeckGLOverlay (point cloud layers)
+│ ├── CrossSectionTool (draw transect line)
+│ ├── AreaSelectTool (draw polygon)
+│ └── MapControls (zoom, basemap picker, 3D tilt)
+│
+├── Sidebar
+│ ├── LayerPanel
+│ │ ├── LayerToggle (per-layer visibility, opacity)
+│ │ ├── RasterControls (time slider, colormap, vmin/vmax)
+│ │ └── PointControls (color-by dropdown, colormap, vmin/vmax)
+│ ├── FilterPanel
+│ │ ├── AttributeFilter (field + operator + value)
+│ │ ├── DateRangeFilter (start/end date pickers)
+│ │ └── ActiveFilters (chips showing current filters)
+│ └── ExportPanel
+│ ├── FormatPicker (CSV, GeoJSON, GeoParquet)
+│ ├── ScopeToggle (viewport / selection / all)
+│ └── ExportButton
+│
+├── BottomPanel (resizable)
+│ ├── TimeSeriesChart (selected points' displacement vs time)
+│ ├── CrossSectionChart (displacement vs distance along profile)
+│ ├── HistogramChart (attribute distribution in viewport)
+│ └── StatsBar (point count, mean velocity, etc.)
+│
+└── Toolbar
+ ├── SelectTool (click to select points)
+ ├── MultiSelectTool (shift+click or box select)
+ ├── CrossSectionTool (draw line)
+ ├── AreaAverageTool (draw polygon)
+ ├── ReferenceTool (set reference point)
+ └── MeasureTool (distance/area)
+```
+
+---
+
+## 8. UX Design
+
+### 8.1 What We Take from IRIS
+
+- **Tight spatial-temporal coupling**: Clicking the map immediately updates the time series chart. This is non-negotiable.
+- **Multiple basemap options**: Satellite, terrain, dark, and OSM.
+- **Colorbar always visible**: Anchored to the map, not buried in a menu.
+
+### 8.2 What We Take from TRE-MAPS
+
+- **Attribute filtering** is the killer feature for point data. Users need to quickly filter to "show me only points with velocity < -10 mm/yr and coherence > 0.7."
+- **Cross-section profiles**: Draw a line, see displacement along it. Essential for visualizing subsidence bowls, fault offsets, etc.
+- **Multi-point time series**: Shift+click to add more points to the chart. Compare trends across locations.
+- **Area averaging**: Select a polygon, get the mean time series with uncertainty. Critical for comparing against GPS.
+- **Export with time series**: Not just point locations — include the full displacement history.
+
+### 8.3 What We Do Differently
+
+**Progressive disclosure instead of modal dialogs:**
+TRE-MAPS uses modal dialog boxes for filtering and symbology. We use an inline sidebar panel that stays open while you interact with the map. No context switches.
+
+**Unified raster + point view:**
+Neither IRIS nor TRE-MAPS does this well. IRIS is raster-only; TRE-MAPS is point-only. Bowser V2 overlays both. Use case: view the displacement raster for spatial context, with PS points on top colored by velocity, to see where the raster and point estimates agree/disagree.
+
+**URL-driven state for collaboration:**
+"Look at this" should be a link, not a screenshot. Every filter, selection, and viewport state encoded in the URL.
+
+**Smart defaults, explicit overrides:**
+- Auto-detect colormap range from data percentiles (not hardcoded)
+- Auto-detect which attribute to color by (velocity if available, else first float column)
+- Auto-detect time series mode (single-ref vs multi-ref, carrying forward V1's hybrid approach)
+- Everything overridable in the manifest or the UI
+
+**Keyboard-driven power user workflow:**
+- `F` — toggle filter panel
+- `T` — toggle time series chart
+- `R` — set reference point mode
+- `C` — cross-section tool
+- `Escape` — clear selection
+- Number keys — switch between layers
+
+### 8.4 Layout
+
+```
+┌──────────────────────────────────────────────────────────────┐
+│ [Bowser] dataset-name | tools: [🔍] [📏] [📐] [📌] │
+├────────────┬─────────────────────────────────────────────────┤
+│ │ │
+│ Sidebar │ │
+│ (280px) │ Map View │
+│ │ (MapLibre + deck.gl) │
+│ Layers │ │
+│ ├ Disp. │ ┌─────────┐ │
+│ ├ Coh. │ │ Colorbar│ │
+│ └ PS Pts │ └─────────┘ │
+│ │ │
+│ Filters │ │
+│ ┌────────┐│ │
+│ │vel<-10 ││ │
+│ │coh>0.7 ││ │
+│ └────────┘│ │
+│ │ │
+│ Stats ├─────────────────────────────────────────────────┤
+│ N: 42,301 │ Time Series Chart [minimize] │
+│ v̄: -8.2 │ ╭─────────────────────────────╮ │
+│ │ │ • • │ ← Point 1 │
+│ │ │ • • • │ ← Point 2 │
+│ │ │ • • • │ │
+│ │ ╰─────────────────────────────╯ │
+│ │ 2016 2018 2020 2022 │
+└────────────┴─────────────────────────────────────────────────┘
+```
+
+Key layout decisions:
+- **Sidebar on the left** (not right) — matches file-browser mental model, keeps the most-used controls close to the eye's starting position
+- **Bottom panel for charts** — resizable, can be minimized. Charts expand horizontally (time axis benefits from width).
+- **No floating panels** — everything docked. Prevents the "lost dialog box" problem.
+- **Stats summary always visible** in the sidebar — point count and mean velocity update live as you filter/pan.
+
+---
+
+## 9. Technology Choices
+
+### 9.1 Strict Choices (High Conviction)
+
+| Component | Choice | Why |
+|-----------|--------|-----|
+| Point data format | **GeoParquet** | Columnar, cloud-native, typed, self-describing. Industry momentum (Overture, STAC, Planetary Computer). Parquet ecosystem (DuckDB, Polars, Arrow) is mature. |
+| Server query engine | **DuckDB** | In-process (no infra), reads Parquet natively, spatial extension for bbox queries, fast analytical queries, Arrow output for zero-copy to client. |
+| Map renderer | **MapLibre GL JS** | WebGL-native, open-source (no Mapbox token), vector tile support, smooth interaction, active community. |
+| Point renderer | **deck.gl** | 1M+ points via WebGL, binary Arrow data path, picking built-in, MapLibre integration via `@deck.gl/mapbox`. |
+| Backend framework | **FastAPI** | Already used in V1, async, OpenAPI docs, Pydantic integration. |
+| Raster tiles | **titiler** | Already used in V1, COG + Zarr support, battle-tested. |
+
+### 9.2 Flexible Choices (Open to Alternatives)
+
+| Component | Current Pick | Alternative | Decision Criteria |
+|-----------|-------------|-------------|-------------------|
+| Charting | Plotly.js | Chart.js (V1), Apache ECharts, Observable Plot | Plotly if we need error bars + linked brushing. Chart.js if we want minimal bundle size. |
+| State management | React Context + URL params | Zustand, Jotai | Upgrade only if Context becomes painful with many consumers. Zustand is lightweight and would be a natural step up. |
+| CSS | Tailwind CSS | CSS Modules (V1), Styled Components | Tailwind for rapid iteration and consistent design tokens. |
+| Bundler | Vite | (keep from V1) | No change needed. |
+| Data transport | Arrow IPC for large responses, JSON for small | All JSON, All Arrow | Arrow IPC for >1k points (avoid JSON parse cost). JSON for metadata endpoints. |
+
+### 9.3 Future Considerations (Not for V2.0)
+
+| Technology | When | Why wait |
+|------------|------|----------|
+| **PMTiles** (pre-tiled vector) | V2.1+ | Useful for static datasets (e.g., EGMS). But V2.0 focuses on dynamic DuckDB-served data. Add PMTiles as an alternative source type later. |
+| **DuckDB-WASM** (client-side queries) | V2.2+ | Run DuckDB in the browser for offline/local analysis. Exciting but adds complexity. Start server-side, move to hybrid later. |
+| **WebGPU** (next-gen rendering) | When browser support is >90% | deck.gl already has WebGPU support. MapLibre is working on it. |
+| **GeoArrow** | When spec stabilizes | Native Arrow geometry type. Currently GeoParquet uses WKB in Arrow, which requires a decode step. GeoArrow would eliminate this. |
+| **3D visualization** | V2.1+ | PS points have estimated heights. 3D view (deck.gl supports this) would let users see the point cloud in 3D. Nice to have, not essential. |
+
+---
+
+## 10. Migration from V1
+
+### What Breaks
+
+Nothing. V2 is a **superset** of V1.
+
+- V1 raster-only datasets (`bowser_rasters.json` or `--stack-file`) continue to work exactly as before
+- V1 URLs continue to work
+- V1 CLI commands (`bowser run`, `bowser setup-*`) are unchanged
+
+### What Changes
+
+- Leaflet → MapLibre GL JS (visual change, same tile sources)
+- Chart.js → Plotly.js (visual change, same data)
+- New `bowser_manifest.json` format for V2 datasets (V1 JSON config still supported via auto-upgrade)
+- New CLI commands: `bowser convert`, `bowser setup-points`
+- New `/points/` endpoints for vector data
+
+### Upgrade Path
+
+1. Existing V1 users: `pip install --upgrade bowser-insar` → everything works, map looks slightly different (MapLibre vs Leaflet)
+2. Users with point data: create a `bowser_manifest.json`, run `bowser convert` to get GeoParquet, `bowser run --manifest bowser_manifest.json`
+3. No data migration required for raster datasets
+
+---
+
+## 11. Implementation Phases
+
+### Phase 1: Foundation
+
+**Goal:** MapLibre + deck.gl rendering a GeoParquet point cloud from a dolphin export, with point click → time series.
+
+- [ ] **Converter:** `bowser convert dolphin` — read dolphin raster stack, mask by quality, export to GeoParquet
+- [ ] **Backend:** DuckDB reads GeoParquet, serves points via `/points/` endpoint
+- [ ] **Backend:** Single-point and multi-point time series endpoints
+- [ ] **Backend:** Point attributes endpoint (discover available columns)
+- [ ] **Frontend:** Replace Leaflet with MapLibre GL JS
+- [ ] **Frontend:** Add deck.gl overlay for point rendering (ScatterplotLayer, colored by velocity)
+- [ ] **Frontend:** Click point → fetch + display time series in Plotly chart
+- [ ] **Data model:** Define `bowser_manifest.json` schema (Pydantic model)
+- [ ] **Data model:** Implement row-group-aware Parquet writing in converter
+
+**Demo:** Run `bowser convert dolphin /path/to/work_dir`, then `bowser run --manifest bowser_manifest.json`. See 1M+ points on map colored by velocity, click one, see its displacement time series.
+
+### Phase 2: Filtering & Interaction (Weeks 4-6)
+
+**Goal:** Attribute filtering, multi-point selection, reference point.
+
+- [ ] Sidebar filter panel (attribute + operator + value)
+- [ ] Backend: Filter expressions in DuckDB queries
+- [ ] Multi-point selection (shift+click, box select)
+- [ ] Multi-point time series chart
+- [ ] Reference point subtraction (spatial referencing)
+- [ ] Dynamic colormap + vmin/vmax controls for point layer
+- [ ] Stats bar (point count, mean velocity in viewport)
+- [ ] URL-driven state (serialize filters, viewport, selection to URL params)
+
+**Demo:** Filter to high-velocity points, select several, compare their time series, set a reference point.
+
+### Phase 3: Analysis Tools (Weeks 7-9)
+
+**Goal:** Cross-sections, area averaging, trend analysis, export.
+
+- [ ] Cross-section tool: draw line on map, server computes profile, display in chart
+- [ ] Area averaging tool: draw polygon, server computes mean time series
+- [ ] Trend fitting (linear + seasonal) on selected point time series
+- [ ] Export panel: CSV, GeoJSON, GeoParquet download with time series
+- [ ] Histogram of attribute values in viewport
+- [ ] Date range filter (restrict time series to a window)
+
+**Demo:** Draw a transect across a subsidence bowl, see the displacement profile. Select an area near a GPS station, compare averaged InSAR time series to GPS.
+
+### Phase 4: Raster + Vector Unification (Weeks 10-12)
+
+**Goal:** Both rasters and points in one view, polish, converters.
+
+- [ ] Unified layer panel (raster + point layers togglable independently)
+- [ ] Raster opacity / point opacity independent controls
+- [ ] Click behavior: if point layer active, click selects point. If only raster, click samples raster.
+- [ ] CLI converter: `bowser convert mintpy`
+- [ ] `bowser setup-points` — interactive CLI for creating point layer config
+- [ ] Performance testing with 1M+ point datasets
+- [ ] Polish: keyboard shortcuts, responsive layout, loading states, error handling
+
+**Demo:** Load a full OPERA DISP-S1 raster stack + PS points from the same area. Toggle between raster and point views. Export a subset of points with time series as GeoParquet.
+
+### Phase 5: Stretch Goals (Post-V2.0)
+
+- [ ] PMTiles support for pre-tiled static point datasets
+- [ ] DuckDB-WASM for client-side queries (offline mode)
+- [ ] 3D point cloud view (deck.gl PointCloudLayer with estimated heights)
+- [ ] Anomaly detection layer (flag outlier points)
+- [ ] GPS time series overlay on InSAR time series chart
+- [ ] Multi-dataset comparison (two PS datasets from different orbits/processors)
+- [ ] Temporal animation (play through time steps)
+- [ ] Collaborative annotations (pin a comment to a location)
+
+---
+
+## 12. Design Decisions (Resolved)
+
+1. **Two-table format** for points + timeseries. Revisit if single-file convenience becomes a pain point.
+2. **Flexible schema** — `velocity`, `temporal_coherence`, etc. are recommended but not enforced. Frontend dynamically discovers available columns. Datasets with recognized columns get better defaults. Early testing will mostly have temporal_coherence; other quality metrics will vary.
+3. **Points only** — no polygon footprints for DS data. Everything renders as points.
+4. **Units in Parquet column metadata** — each column carries `{"units": "mm/yr"}` etc. in its Parquet metadata.
+5. **Local-first for early development** — DuckDB reads local Parquet files. S3 access will be tested later; if cold-start latency is bad, we'll add caching then.
+6. **Client-side point budget** — needs empirical testing with deck.gl. Start without a hard cap, observe performance with 1-10M point datasets.
+7. **Default to Arrow IPC** for point data responses — we'll almost always have >1k points (typically 1-10M from raster export). JSON only for metadata/timeseries endpoints.
+8. **Click prefers points** — when both raster and point layers are visible, clicks prefer nearby points (pixel-distance threshold). Falls back to raster sampling if no point is close.
+9. **No mobile** — desktop-first, no effort on responsive mobile layout.
+10. **Dark mode default** — support both light and dark themes if not a huge lift. Default to dark (satellite basemaps look better on dark backgrounds).
+
+---
+
+## Appendix A: Example DuckDB Queries
+
+```sql
+-- Points in viewport with velocity filter
+SELECT point_id, ST_X(geometry) as lon, ST_Y(geometry) as lat, velocity
+FROM ps_points
+WHERE ST_Within(geometry, ST_MakeEnvelope(-118.5, 33.8, -117.8, 34.2))
+ AND temporal_coherence > 0.7
+ AND velocity < -10
+LIMIT 50000;
+
+-- Time series for selected points
+SELECT t.point_id, t.date, t.displacement
+FROM ps_timeseries t
+WHERE t.point_id IN (123, 456, 789)
+ORDER BY t.point_id, t.date;
+
+-- Cross-section: points within 200m of a transect line
+SELECT
+ point_id,
+ velocity,
+ ST_Distance(
+ geometry,
+ ST_Point(-118.3, 34.0) -- start of line
+ ) as distance_along,
+FROM ps_points
+WHERE ST_DWithin(
+ geometry,
+ ST_MakeLine(ST_Point(-118.3, 34.0), ST_Point(-118.1, 34.1)),
+ 0.002 -- ~200m in degrees at this latitude
+)
+ORDER BY distance_along;
+
+-- Area average time series
+SELECT t.date, AVG(t.displacement) as mean_disp, STDDEV(t.displacement) as std_disp, COUNT(*) as n
+FROM ps_timeseries t
+JOIN ps_points p ON t.point_id = p.point_id
+WHERE ST_Within(p.geometry, ST_GeomFromText('POLYGON((...))'))
+GROUP BY t.date
+ORDER BY t.date;
+
+-- Attribute statistics for filter panel
+SELECT
+ MIN(velocity) as vel_min, MAX(velocity) as vel_max,
+ PERCENTILE_CONT(0.05) WITHIN GROUP (ORDER BY velocity) as vel_p05,
+ PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY velocity) as vel_p95,
+ MIN(temporal_coherence) as coh_min, MAX(temporal_coherence) as coh_max,
+ COUNT(*) as total_points
+FROM ps_points;
+```
+
+## Appendix B: GeoParquet File Example
+
+```python
+import geopandas as gpd
+import pandas as pd
+import numpy as np
+
+# Create points table
+n_points = 100_000
+points = gpd.GeoDataFrame({
+ 'point_id': np.arange(n_points, dtype=np.uint64),
+ 'velocity': np.random.normal(-5, 15, n_points).astype(np.float32),
+ 'velocity_std': np.random.uniform(0.5, 3.0, n_points).astype(np.float32),
+ 'temporal_coherence': np.random.uniform(0.3, 1.0, n_points).astype(np.float32),
+ 'height': np.random.normal(0, 5, n_points).astype(np.float32),
+ 'amplitude_dispersion': np.random.uniform(0.1, 0.4, n_points).astype(np.float32),
+}, geometry=gpd.points_from_xy(
+ np.random.uniform(-118.5, -117.8, n_points),
+ np.random.uniform(33.8, 34.2, n_points),
+), crs="EPSG:4326")
+
+points.to_parquet("ps_points.parquet")
+
+# Create time series table
+dates = pd.date_range("2016-01-01", "2023-12-31", freq="12D")
+ts_rows = []
+for pid in range(n_points):
+ vel = points.loc[pid, 'velocity']
+ days = (dates - dates[0]).days.values
+ disp = vel / 365.25 * days + np.random.normal(0, 2, len(dates))
+ for d, v in zip(dates, disp):
+ ts_rows.append({'point_id': np.uint64(pid), 'date': d, 'displacement': np.float32(v)})
+
+ts = pd.DataFrame(ts_rows)
+ts.to_parquet("ps_timeseries.parquet", row_group_size=len(dates)) # one row group per point
+```
+
+## Appendix C: Technology Reference Links
+
+- GeoParquet spec: https://geoparquet.org/
+- DuckDB spatial: https://duckdb.org/docs/extensions/spatial
+- MapLibre GL JS: https://maplibre.org/maplibre-gl-js/docs/
+- deck.gl: https://deck.gl/
+- deck.gl + MapLibre: https://deck.gl/docs/get-started/using-with-maplibre
+- Arrow IPC: https://arrow.apache.org/docs/format/Columnar.html#ipc-streaming-format
+- Plotly.js: https://plotly.com/javascript/
+- titiler: https://developmentseed.org/titiler/
+- Lonboard (reference for Arrow→deck.gl pattern): https://developmentseed.org/lonboard/
+- PMTiles: https://protomaps.com/docs/pmtiles
diff --git a/GPS_EXPLORER_DESIGN.md b/GPS_EXPLORER_DESIGN.md
new file mode 100644
index 0000000..22a0dd7
--- /dev/null
+++ b/GPS_EXPLORER_DESIGN.md
@@ -0,0 +1,230 @@
+# GPS Explorer: Design Document
+
+> **Status:** Proposal
+> **Date:** 2026-03-31
+> **Context:** Spun out from Bowser V2 GPS overlay work. The live GPS overlay in bowser revealed that raw GPS data needs significant preprocessing before it's useful alongside InSAR.
+
+---
+
+## Problem
+
+InSAR researchers need GPS ground truth to validate their displacement results. But the raw GPS data from public sources (UNR, JPL) is not directly comparable to InSAR because:
+
+1. **Different reference frames** — GPS displacements are relative to a tectonic plate model; InSAR is relative to a local reference point
+2. **Different time spans** — GPS stations may have 15+ years of data; an InSAR stack might cover 2 years
+3. **Noisy stations** — UNR processes everything automatically; many stations have gaps, jumps, or equipment changes that make them useless without cleanup
+4. **3D vs 1D** — GPS measures East/North/Up; InSAR measures a single Line-of-Sight component. Projection requires knowing the SAR viewing geometry.
+5. **No curation** — There's no easy way to browse, compare, and select "good" stations for a given area
+
+Currently, researchers write ad-hoc scripts to download GPS data, manually inspect timeseries in matplotlib, pick reference stations, filter bad ones, and export. This takes hours and is repeated for every new study area.
+
+---
+
+## Solution: GPS Explorer
+
+A lightweight web app for interactive GPS station exploration, curation, and export. The output is a clean GeoParquet file of processed GPS timeseries that can be loaded directly into bowser (or any other tool) as a point layer.
+
+### Core Workflow
+
+```
+1. Define AOI (bbox, draw polygon, or auto-detect from InSAR data)
+ ↓
+2. Fetch stations from UNR/JPL → show on map
+ ↓
+3. Browse: click stations to see timeseries, compare multiple
+ ↓
+4. Curate: mark bad stations, note issues (antenna change, etc.)
+ ↓
+5. Set parameters: reference station, time window, smoothing
+ ↓
+6. Process: subtract reference, project to LOS, filter, smooth
+ ↓
+7. Export: GeoParquet with processed timeseries → load in bowser
+```
+
+---
+
+## Where Should It Live?
+
+### Option A: Subcommand of `geepers` (`geepers explore`)
+
+**Pros:**
+- geepers already has the GPS data fetching, reference selection, and LOS projection logic
+- Natural home — geepers is the GPS library, this is the GPS UI
+- Keeps bowser focused on InSAR viewing
+- geepers users who don't use bowser still benefit
+
+**Cons:**
+- geepers is currently a pure Python library with no web dependencies
+- Adding FastAPI/React would significantly change geepers's dependency footprint
+- The web UI code doesn't really belong in a data library
+
+### Option B: Standalone repo (`gps-explorer`)
+
+**Pros:**
+- Clean separation of concerns
+- Can depend on both geepers (data) and borrow UI patterns from bowser (frontend)
+- Independent release cycle
+- Could be published as a standalone tool on PyPI
+
+**Cons:**
+- Yet another repo to maintain
+- Code sharing with bowser is copy-paste rather than import
+
+### Option C: Subcommand of `bowser` (`bowser gps-explore`)
+
+**Pros:**
+- Shares bowser's frontend build system, MapLibre, Plotly, etc.
+- Users who have bowser already have everything they need
+- The output GeoParquet integrates seamlessly with `bowser run --manifest`
+
+**Cons:**
+- Adds GPS data dependencies (geepers, network access) to bowser
+- Muddies bowser's purpose (is it a viewer or a data processing tool?)
+
+### Recommendation: **Option A** (`geepers explore`)
+
+geepers is the natural home. The dependency concern is manageable:
+- Make the web UI an optional extra: `pip install geepers[explorer]`
+- The explorer imports FastAPI/uvicorn/maplibre only when `geepers explore` is run
+- The core geepers library stays lightweight
+
+If `geepers` maintainers prefer to keep it pure-Python, then **Option B** (standalone) is the fallback. Option C (bowser subcommand) is the least preferred because it creates a circular dependency between the viewer and the data source.
+
+---
+
+## Features
+
+### Map View
+- MapLibre GL JS with satellite/OSM basemap toggle
+- Station markers colored by data quality or velocity
+- Click to select, shift+click to multi-select
+- Draw rectangle to select stations in region
+- Station labels (4-char codes) at appropriate zoom levels
+
+### Timeseries View
+- Plotly chart showing E/N/U or LOS-projected timeseries
+- Multi-station comparison (up to ~10 stations overlaid)
+- Trend lines with mm/yr rates
+- Date range selection (drag to zoom on time axis, or input fields)
+- Highlight jumps/gaps automatically (if geepers provides this)
+
+### Station Curation
+- Table or list view of all stations in AOI
+- Columns: name, lon, lat, start date, end date, # observations, data gaps, velocity
+- Sort/filter by any column
+- Checkbox to include/exclude stations
+- Notes field (free text) for documenting why a station was excluded
+- Automatic quality scoring: flag stations with >30% missing data, large jumps, etc.
+
+### Reference Station Selection
+- Manual: click a station to set as reference
+- Auto: use geepers `auto_select_reference` (picks the station with best long-term stability)
+- Visual feedback: show the effect of referencing (before/after toggle)
+
+### Processing Pipeline
+- **Time filter**: restrict to a date range (e.g., matching the InSAR epoch)
+- **Reference subtraction**: subtract reference station's timeseries from all others
+- **LOS projection**: project ENU to radar LOS using a provided LOS vector
+- **Smoothing**: optional median filter or running average
+- **Outlier removal**: optional sigma-clipping per station
+
+### Export
+- **GeoParquet**: primary output format, directly loadable as a bowser point layer
+ - Schema: `station_id, geometry, velocity, velocity_std, [date columns or long-form timeseries]`
+- **CSV**: for quick inspection in Excel/Google Sheets
+- **JSON**: station list with metadata (for programmatic use)
+- **bowser manifest snippet**: auto-generate the GPS layer config for bowser_manifest.json
+
+---
+
+## Technical Architecture
+
+### Backend (Python)
+```
+geepers/explorer/
+ __init__.py
+ app.py # FastAPI app
+ routes.py # Endpoints
+ processing.py # Reference subtraction, LOS projection, smoothing
+```
+
+### Endpoints
+```
+GET /stations?bbox=...&source=unr → station list
+GET /stations/{id}/timeseries → raw ENU timeseries
+POST /process → apply reference, time filter, LOS, smoothing
+GET /export?format=geoparquet&... → download processed data
+GET /auto_reference?bbox=... → suggest best reference station
+```
+
+### Frontend (TypeScript/React)
+Reuse bowser's patterns:
+- MapLibre map with station markers
+- Plotly chart for timeseries
+- Dark/light theme
+- URL state for shareability
+
+### Dependencies (beyond geepers core)
+```
+fastapi
+uvicorn
+maplibre (frontend)
+plotly (frontend)
+react (frontend)
+```
+
+These would be in `geepers[explorer]` optional extra.
+
+---
+
+## Integration with Bowser
+
+The GPS Explorer outputs a GeoParquet file that bowser loads as a regular point layer. No special GPS code needed in bowser's viewer.
+
+### Workflow
+```bash
+# 1. Explore and curate GPS stations
+geepers explore --bbox -103,31,-102,32 --los '{"east": 0.477, "north": -0.449, "up": 0.755}'
+
+# 2. In the explorer UI: select stations, set reference, set time window, export
+# → saves processed_gps.parquet
+
+# 3. Add to bowser manifest
+# (or the explorer auto-generates a manifest snippet)
+
+# 4. View in bowser alongside InSAR
+bowser run --manifest my_manifest.json
+```
+
+### What Bowser Keeps
+The current live GPS overlay in bowser (`/gps` endpoints) stays as a **quick-look preview** — useful for seeing what stations exist in the area, but not for publication-quality comparison. The explorer is where the real work happens.
+
+---
+
+## MVP Scope (v0.1)
+
+For the first version, keep it minimal:
+
+1. **Fetch stations** for a bbox from UNR
+2. **Map + chart** with click-to-plot, multi-select
+3. **Time filter** (date range inputs)
+4. **Reference station** selection (manual click)
+5. **LOS projection** with constant vector
+6. **Export** as GeoParquet + CSV
+
+Skip for v0.1:
+- Automatic quality scoring
+- Smoothing/outlier removal
+- JPL source (start with UNR only)
+- GeoTIFF LOS (constant vector only)
+- Station notes/curation persistence
+
+---
+
+## Open Questions
+
+1. **Where to build it?** geepers subcommand vs standalone repo — depends on geepers maintainer preference
+2. **Frontend build system?** Vite (matching bowser) or simpler (e.g., bundled single HTML file with inline JS)?
+3. **State persistence?** Save curation state (included/excluded stations, reference, time window) to a JSON file so you can resume later?
+4. **Offline mode?** Cache downloaded GPS data locally so you don't need internet after first fetch?
diff --git a/docs/screenshots/v2_points_viridis.png b/docs/screenshots/v2_points_viridis.png
new file mode 100644
index 0000000..812cdef
Binary files /dev/null and b/docs/screenshots/v2_points_viridis.png differ
diff --git a/docs/screenshots/v2_raster_click.png b/docs/screenshots/v2_raster_click.png
new file mode 100644
index 0000000..394fcef
Binary files /dev/null and b/docs/screenshots/v2_raster_click.png differ
diff --git a/docs/screenshots/v2_timeseries.png b/docs/screenshots/v2_timeseries.png
new file mode 100644
index 0000000..d7ae5da
Binary files /dev/null and b/docs/screenshots/v2_timeseries.png differ
diff --git a/index.html b/index.html
index 33c0f99..e06b4f9 100644
--- a/index.html
+++ b/index.html
@@ -11,9 +11,6 @@
-
-
Bowser
diff --git a/package-lock.json b/package-lock.json
index 77e02bf..48350c3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,15 +8,28 @@
"name": "bowser-js",
"version": "0.0.0",
"dependencies": {
+ "@deck.gl/core": "^9.2.11",
+ "@deck.gl/layers": "^9.2.11",
+ "@deck.gl/mapbox": "^9.2.11",
+ "@loaders.gl/arrow": "^4.3.4",
+ "@types/react-plotly.js": "^2.6.4",
+ "apache-arrow": "^21.1.0",
"chart.js": "^4.4.1",
"chartjs-adapter-date-fns": "^3.0.0",
"leaflet": "^1.9.4",
+ "maplibre-gl": "^5.21.0",
+ "plotly.js-dist-min": "^3.4.0",
"react": "^18.2.0",
"react-chartjs-2": "^5.2.0",
"react-dom": "^18.2.0",
- "react-leaflet": "^4.2.1"
+ "react-leaflet": "^4.2.1",
+ "react-map-gl": "^8.1.0",
+ "react-plotly.js": "^2.6.0"
},
"devDependencies": {
+ "@testing-library/jest-dom": "^6.9.1",
+ "@testing-library/react": "^16.3.0",
+ "@testing-library/user-event": "^14.6.1",
"@types/leaflet": "^1.9.8",
"@types/react": "^18.2.66",
"@types/react-dom": "^18.2.22",
@@ -26,10 +39,19 @@
"eslint": "^8.57.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.6",
+ "jsdom": "^27.0.1",
"typescript": "^5.2.2",
- "vite": "^5.2.0"
+ "vite": "^5.2.0",
+ "vitest": "^3.2.4"
}
},
+ "node_modules/@adobe/css-tools": {
+ "version": "4.4.4",
+ "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz",
+ "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
@@ -44,6 +66,61 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@asamuzakjp/css-color": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz",
+ "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "lru-cache": "^11.2.1"
+ }
+ },
+ "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
+ "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@asamuzakjp/dom-selector": {
+ "version": "6.7.4",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.4.tgz",
+ "integrity": "sha512-buQDjkm+wDPXd6c13534URWZqbz0RP5PAhXZ+LIoa5LgwInT9HVJvGIJivg75vi8I13CxDGdTnz+aY5YUJlIAA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@asamuzakjp/nwsapi": "^2.3.9",
+ "bidi-js": "^1.0.3",
+ "css-tree": "^3.1.0",
+ "is-potential-custom-element-name": "^1.0.1",
+ "lru-cache": "^11.2.2"
+ }
+ },
+ "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
+ "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@asamuzakjp/nwsapi": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz",
+ "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@babel/code-frame": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
@@ -288,6 +365,16 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
+ "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/template": {
"version": "7.27.2",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
@@ -336,6 +423,217 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@choojs/findup": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz",
+ "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "commander": "^2.15.1"
+ },
+ "bin": {
+ "findup": "bin/findup.js"
+ }
+ },
+ "node_modules/@csstools/color-helpers": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
+ "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/css-calc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
+ "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-color-parser": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
+ "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/color-helpers": "^5.1.0",
+ "@csstools/css-calc": "^2.1.4"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
+ "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-syntax-patches-for-csstree": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.16.tgz",
+ "integrity": "sha512-2SpS4/UaWQaGpBINyG5ZuCHnUDeVByOhvbkARwfmnfxDvTaj80yOI1cD8Tw93ICV5Fx4fnyDKWQZI1CDtcWyUg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@deck.gl/core": {
+ "version": "9.2.11",
+ "resolved": "https://registry.npmjs.org/@deck.gl/core/-/core-9.2.11.tgz",
+ "integrity": "sha512-lpdxXQuFSkd6ET7M6QxPI8QMhsLRY6vzLyk83sPGFb7JSb4OhrNHYt9sfIhcA/hxJW7bdBSMWWphf2GvQetVuA==",
+ "license": "MIT",
+ "dependencies": {
+ "@loaders.gl/core": "~4.3.4",
+ "@loaders.gl/images": "~4.3.4",
+ "@luma.gl/constants": "~9.2.6",
+ "@luma.gl/core": "~9.2.6",
+ "@luma.gl/engine": "~9.2.6",
+ "@luma.gl/shadertools": "~9.2.6",
+ "@luma.gl/webgl": "~9.2.6",
+ "@math.gl/core": "^4.1.0",
+ "@math.gl/sun": "^4.1.0",
+ "@math.gl/types": "^4.1.0",
+ "@math.gl/web-mercator": "^4.1.0",
+ "@probe.gl/env": "^4.1.1",
+ "@probe.gl/log": "^4.1.1",
+ "@probe.gl/stats": "^4.1.1",
+ "@types/offscreencanvas": "^2019.6.4",
+ "gl-matrix": "^3.0.0",
+ "mjolnir.js": "^3.0.0"
+ }
+ },
+ "node_modules/@deck.gl/layers": {
+ "version": "9.2.11",
+ "resolved": "https://registry.npmjs.org/@deck.gl/layers/-/layers-9.2.11.tgz",
+ "integrity": "sha512-2FSb0Qa6YR+Rg6GWhYOGTUug3vtZ4uKcFdnrdiJoVXGyibKJMScKZIsivY0r/yQQZsaBjYqty5QuVJvdtEHxSA==",
+ "license": "MIT",
+ "dependencies": {
+ "@loaders.gl/images": "~4.3.4",
+ "@loaders.gl/schema": "~4.3.4",
+ "@luma.gl/shadertools": "~9.2.6",
+ "@mapbox/tiny-sdf": "^2.0.5",
+ "@math.gl/core": "^4.1.0",
+ "@math.gl/polygon": "^4.1.0",
+ "@math.gl/web-mercator": "^4.1.0",
+ "earcut": "^2.2.4"
+ },
+ "peerDependencies": {
+ "@deck.gl/core": "~9.2.0",
+ "@loaders.gl/core": "~4.3.4",
+ "@luma.gl/core": "~9.2.6",
+ "@luma.gl/engine": "~9.2.6"
+ }
+ },
+ "node_modules/@deck.gl/mapbox": {
+ "version": "9.2.11",
+ "resolved": "https://registry.npmjs.org/@deck.gl/mapbox/-/mapbox-9.2.11.tgz",
+ "integrity": "sha512-5OaFZgjyA4Vq6WjHUdcEdl0Phi8dwj8hSCErej0NetW90mctdbxwMt0gSbqcvWBowwhyj2QAhH0P2FcITjKG/A==",
+ "license": "MIT",
+ "dependencies": {
+ "@luma.gl/constants": "~9.2.6",
+ "@math.gl/web-mercator": "^4.1.0"
+ },
+ "peerDependencies": {
+ "@deck.gl/core": "~9.2.0",
+ "@luma.gl/constants": "~9.2.6",
+ "@luma.gl/core": "~9.2.6",
+ "@math.gl/web-mercator": "^4.1.0"
+ }
+ },
"node_modules/@esbuild/aix-ppc64": {
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
@@ -928,9 +1226,9 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"dev": true,
"license": "MIT"
},
@@ -951,1373 +1249,5174 @@
"integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==",
"license": "MIT"
},
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
+ "node_modules/@loaders.gl/arrow": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@loaders.gl/arrow/-/arrow-4.3.4.tgz",
+ "integrity": "sha512-TDEEwsW50/7KTf/Ld3S8+pTqULxznZsoKBmul6cNNDe7ZlOsxeURtJ31FE2V8R/VI0RwkCiJetePWHJ9RCaRww==",
"license": "MIT",
"dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
+ "@loaders.gl/gis": "4.3.4",
+ "@loaders.gl/loader-utils": "4.3.4",
+ "@loaders.gl/schema": "4.3.4",
+ "@loaders.gl/wkt": "4.3.4",
+ "@loaders.gl/worker-utils": "4.3.4",
+ "@math.gl/polygon": "^4.1.0",
+ "apache-arrow": ">= 15.0.0"
},
- "engines": {
- "node": ">= 8"
+ "peerDependencies": {
+ "@loaders.gl/core": "^4.3.0"
}
},
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
+ "node_modules/@loaders.gl/core": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@loaders.gl/core/-/core-4.3.4.tgz",
+ "integrity": "sha512-cG0C5fMZ1jyW6WCsf4LoHGvaIAJCEVA/ioqKoYRwoSfXkOf+17KupK1OUQyUCw5XoRn+oWA1FulJQOYlXnb9Gw==",
"license": "MIT",
- "engines": {
- "node": ">= 8"
+ "dependencies": {
+ "@loaders.gl/loader-utils": "4.3.4",
+ "@loaders.gl/schema": "4.3.4",
+ "@loaders.gl/worker-utils": "4.3.4",
+ "@probe.gl/log": "^4.0.2"
}
},
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
+ "node_modules/@loaders.gl/gis": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@loaders.gl/gis/-/gis-4.3.4.tgz",
+ "integrity": "sha512-8xub38lSWW7+ZXWuUcggk7agRHJUy6RdipLNKZ90eE0ZzLNGDstGD1qiBwkvqH0AkG+uz4B7Kkiptyl7w2Oa6g==",
"license": "MIT",
"dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
+ "@loaders.gl/loader-utils": "4.3.4",
+ "@loaders.gl/schema": "4.3.4",
+ "@mapbox/vector-tile": "^1.3.1",
+ "@math.gl/polygon": "^4.1.0",
+ "pbf": "^3.2.1"
},
- "engines": {
- "node": ">= 8"
+ "peerDependencies": {
+ "@loaders.gl/core": "^4.3.0"
}
},
- "node_modules/@react-leaflet/core": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz",
- "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==",
- "license": "Hippocratic-2.1",
- "peerDependencies": {
- "leaflet": "^1.9.0",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
+ "node_modules/@loaders.gl/gis/node_modules/@mapbox/point-geometry": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
+ "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==",
+ "license": "ISC"
+ },
+ "node_modules/@loaders.gl/gis/node_modules/@mapbox/vector-tile": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz",
+ "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@mapbox/point-geometry": "~0.1.0"
}
},
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-beta.9",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz",
- "integrity": "sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==",
- "dev": true,
- "license": "MIT"
+ "node_modules/@loaders.gl/gis/node_modules/pbf": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz",
+ "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "ieee754": "^1.1.12",
+ "resolve-protobuf-schema": "^2.1.0"
+ },
+ "bin": {
+ "pbf": "bin/pbf"
+ }
},
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz",
- "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
+ "node_modules/@loaders.gl/images": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@loaders.gl/images/-/images-4.3.4.tgz",
+ "integrity": "sha512-qgc33BaNsqN9cWa/xvcGvQ50wGDONgQQdzHCKDDKhV2w/uptZoR5iofJfuG8UUV2vUMMd82Uk9zbopRx2rS4Ag==",
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
+ "dependencies": {
+ "@loaders.gl/loader-utils": "4.3.4"
+ },
+ "peerDependencies": {
+ "@loaders.gl/core": "^4.3.0"
+ }
},
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz",
- "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
+ "node_modules/@loaders.gl/loader-utils": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.3.4.tgz",
+ "integrity": "sha512-tjMZvlKQSaMl2qmYTAxg+ySR6zd6hQn5n3XaU8+Ehp90TD3WzxvDKOMNDqOa72fFmIV+KgPhcmIJTpq4lAdC4Q==",
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
+ "dependencies": {
+ "@loaders.gl/schema": "4.3.4",
+ "@loaders.gl/worker-utils": "4.3.4",
+ "@probe.gl/log": "^4.0.2",
+ "@probe.gl/stats": "^4.0.2"
+ },
+ "peerDependencies": {
+ "@loaders.gl/core": "^4.3.0"
+ }
},
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz",
- "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
+ "node_modules/@loaders.gl/schema": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.3.4.tgz",
+ "integrity": "sha512-1YTYoatgzr/6JTxqBLwDiD3AVGwQZheYiQwAimWdRBVB0JAzych7s1yBuE0CVEzj4JDPKOzVAz8KnU1TiBvJGw==",
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
+ "dependencies": {
+ "@types/geojson": "^7946.0.7"
+ },
+ "peerDependencies": {
+ "@loaders.gl/core": "^4.3.0"
+ }
},
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz",
- "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/@loaders.gl/wkt": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@loaders.gl/wkt/-/wkt-4.3.4.tgz",
+ "integrity": "sha512-9ahN3KPSrmLvYU1cn6WkPy4z9CRb9oUzzmojIRhZhZQumHiTwoE4FI/Xffl6ZZEb078JkSzlNX6mEMzChR4Fxg==",
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz",
- "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==",
+ "dependencies": {
+ "@loaders.gl/gis": "4.3.4",
+ "@loaders.gl/loader-utils": "4.3.4",
+ "@loaders.gl/schema": "4.3.4"
+ },
+ "peerDependencies": {
+ "@loaders.gl/core": "^4.3.0"
+ }
+ },
+ "node_modules/@loaders.gl/worker-utils": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.3.4.tgz",
+ "integrity": "sha512-EbsszrASgT85GH3B7jkx7YXfQyIYo/rlobwMx6V3ewETapPUwdSAInv+89flnk5n2eu2Lpdeh+2zS6PvqbL2RA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@loaders.gl/core": "^4.3.0"
+ }
+ },
+ "node_modules/@luma.gl/constants": {
+ "version": "9.2.6",
+ "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-9.2.6.tgz",
+ "integrity": "sha512-rvFFrJuSm5JIWbDHFuR4Q2s4eudO3Ggsv0TsGKn9eqvO7bBiPm/ANugHredvh3KviEyYuMZZxtfJvBdr3kzldg==",
+ "license": "MIT"
+ },
+ "node_modules/@luma.gl/core": {
+ "version": "9.2.6",
+ "resolved": "https://registry.npmjs.org/@luma.gl/core/-/core-9.2.6.tgz",
+ "integrity": "sha512-d8KcH8ZZcjDAodSN/G2nueA9YE2X8kMz7Q0OxDGpCww6to1MZXM3Ydate/Jqsb5DDKVgUF6yD6RL8P5jOki9Yw==",
+ "license": "MIT",
+ "dependencies": {
+ "@math.gl/types": "^4.1.0",
+ "@probe.gl/env": "^4.0.8",
+ "@probe.gl/log": "^4.0.8",
+ "@probe.gl/stats": "^4.0.8",
+ "@types/offscreencanvas": "^2019.6.4"
+ }
+ },
+ "node_modules/@luma.gl/engine": {
+ "version": "9.2.6",
+ "resolved": "https://registry.npmjs.org/@luma.gl/engine/-/engine-9.2.6.tgz",
+ "integrity": "sha512-1AEDs2AUqOWh7Wl4onOhXmQF+Rz1zNdPXF+Kxm4aWl92RQ42Sh2CmTvRt2BJku83VQ91KFIEm/v3qd3Urzf+Uw==",
+ "license": "MIT",
+ "dependencies": {
+ "@math.gl/core": "^4.1.0",
+ "@math.gl/types": "^4.1.0",
+ "@probe.gl/log": "^4.0.8",
+ "@probe.gl/stats": "^4.0.8"
+ },
+ "peerDependencies": {
+ "@luma.gl/core": "~9.2.0",
+ "@luma.gl/shadertools": "~9.2.0"
+ }
+ },
+ "node_modules/@luma.gl/shadertools": {
+ "version": "9.2.6",
+ "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-9.2.6.tgz",
+ "integrity": "sha512-4+uUbynqPUra9d/z1nQChyHmhLgmKfSMjS7kOwLB6exSnhKnpHL3+Hu9fv55qyaX50nGH3oHawhGtJ6RRvu65w==",
+ "license": "MIT",
+ "dependencies": {
+ "@math.gl/core": "^4.1.0",
+ "@math.gl/types": "^4.1.0",
+ "wgsl_reflect": "^1.2.0"
+ },
+ "peerDependencies": {
+ "@luma.gl/core": "~9.2.0"
+ }
+ },
+ "node_modules/@luma.gl/webgl": {
+ "version": "9.2.6",
+ "resolved": "https://registry.npmjs.org/@luma.gl/webgl/-/webgl-9.2.6.tgz",
+ "integrity": "sha512-NGBTdxJMk7j8Ygr1zuTyAvr1Tw+EpupMIQo7RelFjEsZXg6pujFqiDMM+rgxex8voCeuhWBJc7Rs+MoSqd46UQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@luma.gl/constants": "9.2.6",
+ "@math.gl/types": "^4.1.0",
+ "@probe.gl/env": "^4.0.8"
+ },
+ "peerDependencies": {
+ "@luma.gl/core": "~9.2.0"
+ }
+ },
+ "node_modules/@mapbox/geojson-rewind": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz",
+ "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "get-stream": "^6.0.1",
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "geojson-rewind": "geojson-rewind"
+ }
+ },
+ "node_modules/@mapbox/geojson-types": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz",
+ "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/@mapbox/jsonlint-lines-primitives": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
+ "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@mapbox/mapbox-gl-supported": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-3.0.0.tgz",
+ "integrity": "sha512-2XghOwu16ZwPJLOFVuIOaLbN0iKMn867evzXFyf0P22dqugezfJwLmdanAgU25ITvz1TvOfVP4jsDImlDJzcWg==",
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/@mapbox/point-geometry": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-1.1.0.tgz",
+ "integrity": "sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==",
+ "license": "ISC"
+ },
+ "node_modules/@mapbox/tiny-sdf": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.7.tgz",
+ "integrity": "sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/@mapbox/unitbezier": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz",
+ "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/@mapbox/vector-tile": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-2.0.4.tgz",
+ "integrity": "sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@mapbox/point-geometry": "~1.1.0",
+ "@types/geojson": "^7946.0.16",
+ "pbf": "^4.0.1"
+ }
+ },
+ "node_modules/@mapbox/whoots-js": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz",
+ "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@maplibre/geojson-vt": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/@maplibre/geojson-vt/-/geojson-vt-6.0.4.tgz",
+ "integrity": "sha512-HYv3POhMRCdhP3UPPATM/hfcy6/WuVIf5FKboH8u/ZuFMTnAIcSVlq5nfOqroLokd925w2QtE7YwquFOIacwVQ==",
+ "license": "ISC",
+ "dependencies": {
+ "kdbush": "^4.0.2"
+ }
+ },
+ "node_modules/@maplibre/maplibre-gl-style-spec": {
+ "version": "24.7.0",
+ "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-24.7.0.tgz",
+ "integrity": "sha512-Ed7rcKYU5iELfablg9Mj+TVCsXsPBgdMyXPRAxb2v7oWg9YJnpQdZ5msDs1LESu/mtXy3Z48Vdppv2t/x5kAhw==",
+ "license": "ISC",
+ "dependencies": {
+ "@mapbox/jsonlint-lines-primitives": "~2.0.2",
+ "@mapbox/unitbezier": "^0.0.1",
+ "json-stringify-pretty-compact": "^4.0.0",
+ "minimist": "^1.2.8",
+ "quickselect": "^3.0.0",
+ "rw": "^1.3.3",
+ "tinyqueue": "^3.0.0"
+ },
+ "bin": {
+ "gl-style-format": "dist/gl-style-format.mjs",
+ "gl-style-migrate": "dist/gl-style-migrate.mjs",
+ "gl-style-validate": "dist/gl-style-validate.mjs"
+ }
+ },
+ "node_modules/@maplibre/mlt": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/@maplibre/mlt/-/mlt-1.1.8.tgz",
+ "integrity": "sha512-8vtfYGidr1rNkv5IwIoU2lfe3Oy+Wa8HluzQYcQi9cveU9K3pweAal/poQj4GJ0K/EW4bTQp2wVAs09g2yDRZg==",
+ "license": "(MIT OR Apache-2.0)",
+ "dependencies": {
+ "@mapbox/point-geometry": "^1.1.0"
+ }
+ },
+ "node_modules/@maplibre/vt-pbf": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@maplibre/vt-pbf/-/vt-pbf-4.3.0.tgz",
+ "integrity": "sha512-jIvp8F5hQCcreqOOpEt42TJMUlsrEcpf/kI1T2v85YrQRV6PPXUcEXUg5karKtH6oh47XJZ4kHu56pUkOuqA7w==",
+ "license": "MIT",
+ "dependencies": {
+ "@mapbox/point-geometry": "^1.1.0",
+ "@mapbox/vector-tile": "^2.0.4",
+ "@maplibre/geojson-vt": "^5.0.4",
+ "@types/geojson": "^7946.0.16",
+ "@types/supercluster": "^7.1.3",
+ "pbf": "^4.0.1",
+ "supercluster": "^8.0.1"
+ }
+ },
+ "node_modules/@maplibre/vt-pbf/node_modules/@maplibre/geojson-vt": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@maplibre/geojson-vt/-/geojson-vt-5.0.4.tgz",
+ "integrity": "sha512-KGg9sma45S+stfH9vPCJk1J0lSDLWZgCT9Y8u8qWZJyjFlP8MNP1WGTxIMYJZjDvVT3PDn05kN1C95Sut1HpgQ==",
+ "license": "ISC"
+ },
+ "node_modules/@math.gl/core": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-4.1.0.tgz",
+ "integrity": "sha512-FrdHBCVG3QdrworwrUSzXIaK+/9OCRLscxI2OUy6sLOHyHgBMyfnEGs99/m3KNvs+95BsnQLWklVfpKfQzfwKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@math.gl/types": "4.1.0"
+ }
+ },
+ "node_modules/@math.gl/polygon": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-4.1.0.tgz",
+ "integrity": "sha512-YA/9PzaCRHbIP5/0E9uTYrqe+jsYTQoqoDWhf6/b0Ixz8bPZBaGDEafLg3z7ffBomZLacUty9U3TlPjqMtzPjA==",
+ "license": "MIT",
+ "dependencies": {
+ "@math.gl/core": "4.1.0"
+ }
+ },
+ "node_modules/@math.gl/sun": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@math.gl/sun/-/sun-4.1.0.tgz",
+ "integrity": "sha512-i3q6OCBLSZ5wgZVhXg+X7gsjY/TUtuFW/2KBiq/U1ypLso3S4sEykoU/MGjxUv1xiiGtr+v8TeMbO1OBIh/HmA==",
+ "license": "MIT"
+ },
+ "node_modules/@math.gl/types": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-4.1.0.tgz",
+ "integrity": "sha512-clYZdHcmRvMzVK5fjeDkQlHUzXQSNdZ7s4xOqC3nJPgz4C/TZkUecTo9YS4PruZqtDda/ag4erndP0MIn40dGA==",
+ "license": "MIT"
+ },
+ "node_modules/@math.gl/web-mercator": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-4.1.0.tgz",
+ "integrity": "sha512-HZo3vO5GCMkXJThxRJ5/QYUYRr3XumfT8CzNNCwoJfinxy5NtKUd7dusNTXn7yJ40UoB8FMIwkVwNlqaiRZZAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@math.gl/core": "4.1.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@plotly/d3": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.2.tgz",
+ "integrity": "sha512-wvsNmh1GYjyJfyEBPKJLTMzgf2c2bEbSIL50lmqVUi+o1NHaLPi1Lb4v7VxXXJn043BhNyrxUrWI85Q+zmjOVA==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/@plotly/d3-sankey": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz",
+ "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "d3-array": "1",
+ "d3-collection": "1",
+ "d3-shape": "^1.2.0"
+ }
+ },
+ "node_modules/@plotly/d3-sankey-circular": {
+ "version": "0.33.1",
+ "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz",
+ "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "d3-array": "^1.2.1",
+ "d3-collection": "^1.0.4",
+ "d3-shape": "^1.2.0",
+ "elementary-circuits-directed-graph": "^1.0.4"
+ }
+ },
+ "node_modules/@plotly/mapbox-gl": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz",
+ "integrity": "sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==",
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "peer": true,
+ "dependencies": {
+ "@mapbox/geojson-rewind": "^0.5.2",
+ "@mapbox/geojson-types": "^1.0.2",
+ "@mapbox/jsonlint-lines-primitives": "^2.0.2",
+ "@mapbox/mapbox-gl-supported": "^1.5.0",
+ "@mapbox/point-geometry": "^0.1.0",
+ "@mapbox/tiny-sdf": "^1.1.1",
+ "@mapbox/unitbezier": "^0.0.0",
+ "@mapbox/vector-tile": "^1.3.1",
+ "@mapbox/whoots-js": "^3.1.0",
+ "csscolorparser": "~1.0.3",
+ "earcut": "^2.2.2",
+ "geojson-vt": "^3.2.1",
+ "gl-matrix": "^3.2.1",
+ "grid-index": "^1.1.0",
+ "murmurhash-js": "^1.0.0",
+ "pbf": "^3.2.1",
+ "potpack": "^1.0.1",
+ "quickselect": "^2.0.0",
+ "rw": "^1.3.3",
+ "supercluster": "^7.1.0",
+ "tinyqueue": "^2.0.3",
+ "vt-pbf": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6.4.0"
+ }
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/@mapbox/mapbox-gl-supported": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz",
+ "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "peerDependencies": {
+ "mapbox-gl": ">=0.32.1 <2.0.0"
+ }
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/@mapbox/point-geometry": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
+ "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/@mapbox/tiny-sdf": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz",
+ "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==",
+ "license": "BSD-2-Clause",
+ "peer": true
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/@mapbox/unitbezier": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
+ "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==",
+ "license": "BSD-2-Clause",
+ "peer": true
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/@mapbox/vector-tile": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz",
+ "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "@mapbox/point-geometry": "~0.1.0"
+ }
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/kdbush": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz",
+ "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/mapbox-gl": {
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz",
+ "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==",
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "peer": true,
+ "dependencies": {
+ "@mapbox/geojson-rewind": "^0.5.2",
+ "@mapbox/geojson-types": "^1.0.2",
+ "@mapbox/jsonlint-lines-primitives": "^2.0.2",
+ "@mapbox/mapbox-gl-supported": "^1.5.0",
+ "@mapbox/point-geometry": "^0.1.0",
+ "@mapbox/tiny-sdf": "^1.1.1",
+ "@mapbox/unitbezier": "^0.0.0",
+ "@mapbox/vector-tile": "^1.3.1",
+ "@mapbox/whoots-js": "^3.1.0",
+ "csscolorparser": "~1.0.3",
+ "earcut": "^2.2.2",
+ "geojson-vt": "^3.2.1",
+ "gl-matrix": "^3.2.1",
+ "grid-index": "^1.1.0",
+ "murmurhash-js": "^1.0.0",
+ "pbf": "^3.2.1",
+ "potpack": "^1.0.1",
+ "quickselect": "^2.0.0",
+ "rw": "^1.3.3",
+ "supercluster": "^7.1.0",
+ "tinyqueue": "^2.0.3",
+ "vt-pbf": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6.4.0"
+ }
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/pbf": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz",
+ "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "ieee754": "^1.1.12",
+ "resolve-protobuf-schema": "^2.1.0"
+ },
+ "bin": {
+ "pbf": "bin/pbf"
+ }
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/potpack": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
+ "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/quickselect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
+ "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/supercluster": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz",
+ "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "kdbush": "^3.0.0"
+ }
+ },
+ "node_modules/@plotly/mapbox-gl/node_modules/tinyqueue": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz",
+ "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/@plotly/point-cluster": {
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz",
+ "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "array-bounds": "^1.0.1",
+ "binary-search-bounds": "^2.0.4",
+ "clamp": "^1.0.1",
+ "defined": "^1.0.0",
+ "dtype": "^2.0.0",
+ "flatten-vertex-data": "^1.0.2",
+ "is-obj": "^1.0.1",
+ "math-log2": "^1.0.1",
+ "parse-rect": "^1.2.0",
+ "pick-by-alias": "^1.2.0"
+ }
+ },
+ "node_modules/@plotly/regl": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz",
+ "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@probe.gl/env": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-4.1.1.tgz",
+ "integrity": "sha512-+68seNDMVsEegRB47pFA/Ws1Fjy8agcFYXxzorKToyPcD6zd+gZ5uhwoLd7TzsSw6Ydns//2KEszWn+EnNHTbA==",
+ "license": "MIT"
+ },
+ "node_modules/@probe.gl/log": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-4.1.1.tgz",
+ "integrity": "sha512-kcZs9BT44pL7hS1OkRGKYRXI/SN9KejUlPD+BY40DguRLzdC5tLG/28WGMyfKdn/51GT4a0p+0P8xvDn1Ez+Kg==",
+ "license": "MIT",
+ "dependencies": {
+ "@probe.gl/env": "4.1.1"
+ }
+ },
+ "node_modules/@probe.gl/stats": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-4.1.1.tgz",
+ "integrity": "sha512-4VpAyMHOqydSvPlEyHwXaE+AkIdR03nX+Qhlxsk2D/IW4OVmDZgIsvJB1cDzyEEtcfKcnaEbfXeiPgejBceT6g==",
+ "license": "MIT"
+ },
+ "node_modules/@react-leaflet/core": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz",
+ "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==",
+ "license": "Hippocratic-2.1",
+ "peerDependencies": {
+ "leaflet": "^1.9.0",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.9",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz",
+ "integrity": "sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz",
+ "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz",
+ "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz",
+ "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz",
+ "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz",
+ "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz",
+ "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz",
+ "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz",
+ "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz",
+ "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz",
+ "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz",
+ "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz",
+ "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz",
+ "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz",
+ "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz",
+ "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz",
+ "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz",
+ "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz",
+ "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz",
+ "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz",
+ "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.19.tgz",
+ "integrity": "sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@testing-library/dom": {
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
+ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/runtime": "^7.12.5",
+ "@types/aria-query": "^5.0.1",
+ "aria-query": "5.3.0",
+ "dom-accessibility-api": "^0.5.9",
+ "lz-string": "^1.5.0",
+ "picocolors": "1.1.1",
+ "pretty-format": "^27.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@testing-library/jest-dom": {
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz",
+ "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@adobe/css-tools": "^4.4.0",
+ "aria-query": "^5.0.0",
+ "css.escape": "^1.5.1",
+ "dom-accessibility-api": "^0.6.3",
+ "picocolors": "^1.1.1",
+ "redent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14",
+ "npm": ">=6",
+ "yarn": ">=1"
+ }
+ },
+ "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
+ "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@testing-library/react": {
+ "version": "16.3.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz",
+ "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@testing-library/dom": "^10.0.0",
+ "@types/react": "^18.0.0 || ^19.0.0",
+ "@types/react-dom": "^18.0.0 || ^19.0.0",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@testing-library/user-event": {
+ "version": "14.6.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz",
+ "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12",
+ "npm": ">=6"
+ },
+ "peerDependencies": {
+ "@testing-library/dom": ">=7.21.4"
+ }
+ },
+ "node_modules/@turf/area": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@turf/area/-/area-7.3.4.tgz",
+ "integrity": "sha512-UEQQFw2XwHpozSBAMEtZI3jDsAad4NnHL/poF7/S6zeDCjEBCkt3MYd6DSGH/cvgcOozxH/ky3/rIVSMZdx4vA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@turf/helpers": "7.3.4",
+ "@turf/meta": "7.3.4",
+ "@types/geojson": "^7946.0.10",
+ "tslib": "^2.8.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/bbox": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.3.4.tgz",
+ "integrity": "sha512-D5ErVWtfQbEPh11yzI69uxqrcJmbPU/9Y59f1uTapgwAwQHQztDWgsYpnL3ns8r1GmPWLP8sGJLVTIk2TZSiYA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@turf/helpers": "7.3.4",
+ "@turf/meta": "7.3.4",
+ "@types/geojson": "^7946.0.10",
+ "tslib": "^2.8.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/centroid": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.3.4.tgz",
+ "integrity": "sha512-6c3kyTSKBrmiPMe75UkHw6MgedroZ6eR5usEvdlDhXgA3MudFPXIZkMFmMd1h9XeJ9xFfkmq+HPCdF0cOzvztA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@turf/helpers": "7.3.4",
+ "@turf/meta": "7.3.4",
+ "@types/geojson": "^7946.0.10",
+ "tslib": "^2.8.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/helpers": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.3.4.tgz",
+ "integrity": "sha512-U/S5qyqgx3WTvg4twaH0WxF3EixoTCfDsmk98g1E3/5e2YKp7JKYZdz0vivsS5/UZLJeZDEElOSFH4pUgp+l7g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/geojson": "^7946.0.10",
+ "tslib": "^2.8.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/meta": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.3.4.tgz",
+ "integrity": "sha512-tlmw9/Hs1p2n0uoHVm1w3ugw1I6L8jv9YZrcdQa4SH5FX5UY0ATrKeIvfA55FlL//PGuYppJp+eyg/0eb4goqw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@turf/helpers": "7.3.4",
+ "@types/geojson": "^7946.0.10",
+ "tslib": "^2.8.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@types/aria-query": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
+ "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz",
+ "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "node_modules/@types/chai": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
+ "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/deep-eql": "*",
+ "assertion-error": "^2.0.1"
+ }
+ },
+ "node_modules/@types/command-line-args": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz",
+ "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/command-line-usage": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz",
+ "integrity": "sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/deep-eql": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
+ "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+ "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/geojson": {
+ "version": "7946.0.16",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
+ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/geojson-vt": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz",
+ "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/leaflet": {
+ "version": "1.9.18",
+ "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.18.tgz",
+ "integrity": "sha512-ht2vsoPjezor5Pmzi5hdsA7F++v5UGq9OlUduWHmMZiuQGIpJ2WS5+Gg9HaAA79gNh1AIPtCqhzejcIZ3lPzXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/mapbox__point-geometry": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz",
+ "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@types/mapbox__vector-tile": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz",
+ "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/geojson": "*",
+ "@types/mapbox__point-geometry": "*",
+ "@types/pbf": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "24.12.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.0.tgz",
+ "integrity": "sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~7.16.0"
+ }
+ },
+ "node_modules/@types/offscreencanvas": {
+ "version": "2019.7.3",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
+ "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/pbf": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz",
+ "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@types/plotly.js": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-3.0.10.tgz",
+ "integrity": "sha512-q+MgO4aajC2HrO7FllTYWzrpdfbTjboSMfjkz/aXKjg1v7HNo1zMEFfAW7quKfk6SL+bH74A5ThBEps/7hZxOA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.14",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
+ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.23",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz",
+ "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "18.3.7",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
+ }
+ },
+ "node_modules/@types/react-plotly.js": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/@types/react-plotly.js/-/react-plotly.js-2.6.4.tgz",
+ "integrity": "sha512-AU6w1u3qEGM0NmBA69PaOgNc0KPFA/+qkH6Uu9EBTJ45/WYOUoXi9AF5O15PRM2klpHSiHAAs4WnlI+OZAFmUA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/plotly.js": "*",
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/supercluster": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz",
+ "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz",
+ "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/type-utils": "7.18.0",
+ "@typescript-eslint/utils": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz",
+ "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/typescript-estree": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
+ "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz",
+ "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "7.18.0",
+ "@typescript-eslint/utils": "7.18.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
+ "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
+ "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/visitor-keys": "7.18.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz",
+ "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "7.18.0",
+ "@typescript-eslint/types": "7.18.0",
+ "@typescript-eslint/typescript-estree": "7.18.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
+ "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "7.18.0",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@vis.gl/react-mapbox": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@vis.gl/react-mapbox/-/react-mapbox-8.1.0.tgz",
+ "integrity": "sha512-FwvH822oxEjWYOr+pP2L8hpv+7cZB2UsQbHHHT0ryrkvvqzmTgt7qHDhamv0EobKw86e1I+B4ojENdJ5G5BkyQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "mapbox-gl": ">=3.5.0",
+ "react": ">=16.3.0",
+ "react-dom": ">=16.3.0"
+ },
+ "peerDependenciesMeta": {
+ "mapbox-gl": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vis.gl/react-maplibre": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@vis.gl/react-maplibre/-/react-maplibre-8.1.0.tgz",
+ "integrity": "sha512-PkAK/gp3mUfhCLhUuc+4gc3PN9zCtVGxTF2hB6R5R5yYUw+hdg84OZ770U5MU4tPMTCG6fbduExuIW6RRKN6qQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@maplibre/maplibre-gl-style-spec": "^19.2.1"
+ },
+ "peerDependencies": {
+ "maplibre-gl": ">=4.0.0",
+ "react": ">=16.3.0",
+ "react-dom": ">=16.3.0"
+ },
+ "peerDependenciesMeta": {
+ "maplibre-gl": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vis.gl/react-maplibre/node_modules/@maplibre/maplibre-gl-style-spec": {
+ "version": "19.3.3",
+ "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.3.tgz",
+ "integrity": "sha512-cOZZOVhDSulgK0meTsTkmNXb1ahVvmTmWmfx9gRBwc6hq98wS9JP35ESIoNq3xqEan+UN+gn8187Z6E4NKhLsw==",
+ "license": "ISC",
+ "dependencies": {
+ "@mapbox/jsonlint-lines-primitives": "~2.0.2",
+ "@mapbox/unitbezier": "^0.0.1",
+ "json-stringify-pretty-compact": "^3.0.0",
+ "minimist": "^1.2.8",
+ "rw": "^1.3.3",
+ "sort-object": "^3.0.3"
+ },
+ "bin": {
+ "gl-style-format": "dist/gl-style-format.mjs",
+ "gl-style-migrate": "dist/gl-style-migrate.mjs",
+ "gl-style-validate": "dist/gl-style-validate.mjs"
+ }
+ },
+ "node_modules/@vis.gl/react-maplibre/node_modules/json-stringify-pretty-compact": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz",
+ "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==",
+ "license": "MIT"
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.5.1.tgz",
+ "integrity": "sha512-uPZBqSI0YD4lpkIru6M35sIfylLGTyhGHvDZbNLuMA73lMlwJKz5xweH7FajfcCAc2HnINciejA9qTz0dr0M7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.26.10",
+ "@babel/plugin-transform-react-jsx-self": "^7.25.9",
+ "@babel/plugin-transform-react-jsx-source": "^7.25.9",
+ "@rolldown/pluginutils": "1.0.0-beta.9",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.17.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/@vitest/expect": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
+ "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/chai": "^5.2.2",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "tinyrainbow": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/mocker": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz",
+ "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "3.2.4",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.17"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "msw": "^2.4.9",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "msw": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vitest/pretty-format": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
+ "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyrainbow": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz",
+ "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "3.2.4",
+ "pathe": "^2.0.3",
+ "strip-literal": "^3.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/snapshot": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
+ "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "3.2.4",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/spy": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz",
+ "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyspy": "^4.0.3"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/utils": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz",
+ "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "3.2.4",
+ "loupe": "^3.1.4",
+ "tinyrainbow": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/abs-svg-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz",
+ "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/acorn": {
+ "version": "8.14.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/apache-arrow": {
+ "version": "21.1.0",
+ "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-21.1.0.tgz",
+ "integrity": "sha512-kQrYLxhC+NTVVZ4CCzGF6L/uPVOzJmD1T3XgbiUnP7oTeVFOFgEUu6IKNwCDkpFoBVqDKQivlX4RUFqqnWFlEA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.11",
+ "@types/command-line-args": "^5.2.3",
+ "@types/command-line-usage": "^5.0.4",
+ "@types/node": "^24.0.3",
+ "command-line-args": "^6.0.1",
+ "command-line-usage": "^7.0.1",
+ "flatbuffers": "^25.1.24",
+ "json-bignum": "^0.0.3",
+ "tslib": "^2.6.2"
+ },
+ "bin": {
+ "arrow2csv": "bin/arrow2csv.js"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/aria-query": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-back": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.3.tgz",
+ "integrity": "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.17"
+ }
+ },
+ "node_modules/array-bounds": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz",
+ "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-normalize": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz",
+ "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "array-bounds": "^1.0.0"
+ }
+ },
+ "node_modules/array-range": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz",
+ "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/array-rearrange": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz",
+ "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/assertion-error": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/base64-arraybuffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
+ "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/bidi-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
+ "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "require-from-string": "^2.0.2"
+ }
+ },
+ "node_modules/binary-search-bounds": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz",
+ "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/bit-twiddle": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz",
+ "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/bitmap-sdf": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz",
+ "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/bl": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
+ "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz",
+ "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001718",
+ "electron-to-chromium": "^1.5.160",
+ "node-releases": "^2.0.19",
+ "update-browserslist-db": "^1.1.3"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/bytewise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz",
+ "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bytewise-core": "^1.2.2",
+ "typewise": "^1.0.3"
+ }
+ },
+ "node_modules/bytewise-core": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz",
+ "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==",
+ "license": "MIT",
+ "dependencies": {
+ "typewise-core": "^1.2"
+ }
+ },
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001721",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz",
+ "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/canvas-fit": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz",
+ "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "element-size": "^1.1.1"
+ }
+ },
+ "node_modules/chai": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz",
+ "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/chalk-template": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
+ "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk-template?sponsor=1"
+ }
+ },
+ "node_modules/chart.js": {
+ "version": "4.4.9",
+ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.9.tgz",
+ "integrity": "sha512-EyZ9wWKgpAU0fLJ43YAEIF8sr5F2W3LqbS40ZJyHIner2lY14ufqv2VMp69MAiZ2rpwxEUxEhIH/0U3xyRynxg==",
+ "license": "MIT",
+ "dependencies": {
+ "@kurkle/color": "^0.3.0"
+ },
+ "engines": {
+ "pnpm": ">=8"
+ }
+ },
+ "node_modules/chartjs-adapter-date-fns": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-3.0.0.tgz",
+ "integrity": "sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "chart.js": ">=2.8.0",
+ "date-fns": ">=2.0.0"
+ }
+ },
+ "node_modules/cheap-ruler": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-4.0.0.tgz",
+ "integrity": "sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==",
+ "license": "ISC",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/check-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
+ "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 16"
+ }
+ },
+ "node_modules/clamp": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz",
+ "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/color-alpha": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz",
+ "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-parse": "^1.3.8"
+ }
+ },
+ "node_modules/color-alpha/node_modules/color-parse": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz",
+ "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-name": "^1.0.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-id": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz",
+ "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "clamp": "^1.0.1"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/color-normalize": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz",
+ "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "clamp": "^1.0.1",
+ "color-rgba": "^2.1.1",
+ "dtype": "^2.0.0"
+ }
+ },
+ "node_modules/color-normalize/node_modules/color-parse": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz",
+ "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-name": "^1.0.0"
+ }
+ },
+ "node_modules/color-normalize/node_modules/color-rgba": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.4.0.tgz",
+ "integrity": "sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-parse": "^1.4.2",
+ "color-space": "^2.0.0"
+ }
+ },
+ "node_modules/color-parse": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz",
+ "integrity": "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-name": "^1.0.0"
+ }
+ },
+ "node_modules/color-rgba": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-3.0.0.tgz",
+ "integrity": "sha512-PPwZYkEY3M2THEHHV6Y95sGUie77S7X8v+h1r6LSAPF3/LL2xJ8duUXSrkic31Nzc4odPwHgUbiX/XuTYzQHQg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-parse": "^2.0.0",
+ "color-space": "^2.0.0"
+ }
+ },
+ "node_modules/color-space": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/color-space/-/color-space-2.3.2.tgz",
+ "integrity": "sha512-BcKnbOEsOarCwyoLstcoEztwT0IJxqqQkNwDuA3a65sICvvHL2yoeV13psoDFh5IuiOMnIOKdQDwB4Mk3BypiA==",
+ "license": "Unlicense",
+ "peer": true
+ },
+ "node_modules/command-line-args": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz",
+ "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==",
+ "license": "MIT",
+ "dependencies": {
+ "array-back": "^6.2.2",
+ "find-replace": "^5.0.2",
+ "lodash.camelcase": "^4.3.0",
+ "typical": "^7.2.0"
+ },
+ "engines": {
+ "node": ">=12.20"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/command-line-usage": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.4.tgz",
+ "integrity": "sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg==",
+ "license": "MIT",
+ "dependencies": {
+ "array-back": "^6.2.2",
+ "chalk-template": "^0.4.0",
+ "table-layout": "^4.1.1",
+ "typical": "^7.3.0"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "engines": [
+ "node >= 0.8"
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/country-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz",
+ "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/css-font": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz",
+ "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "css-font-size-keywords": "^1.0.0",
+ "css-font-stretch-keywords": "^1.0.1",
+ "css-font-style-keywords": "^1.0.1",
+ "css-font-weight-keywords": "^1.0.0",
+ "css-global-keywords": "^1.0.1",
+ "css-system-font-keywords": "^1.0.0",
+ "pick-by-alias": "^1.2.0",
+ "string-split-by": "^1.0.0",
+ "unquote": "^1.1.0"
+ }
+ },
+ "node_modules/css-font-size-keywords": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz",
+ "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/css-font-stretch-keywords": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz",
+ "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/css-font-style-keywords": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz",
+ "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/css-font-weight-keywords": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz",
+ "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/css-global-keywords": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz",
+ "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/css-system-font-keywords": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz",
+ "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/css.escape": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
+ "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/csscolorparser": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
+ "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/cssstyle": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.3.tgz",
+ "integrity": "sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@asamuzakjp/css-color": "^4.0.3",
+ "@csstools/css-syntax-patches-for-csstree": "^1.0.14",
+ "css-tree": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "license": "MIT"
+ },
+ "node_modules/d": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz",
+ "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "es5-ext": "^0.10.64",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/d3-array": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
+ "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/d3-collection": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz",
+ "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
+ "peer": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dispatch": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz",
+ "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/d3-force": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz",
+ "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "d3-collection": "1",
+ "d3-dispatch": "1",
+ "d3-quadtree": "1",
+ "d3-timer": "1"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz",
+ "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/d3-geo": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz",
+ "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "d3-array": "1"
+ }
+ },
+ "node_modules/d3-geo-projection": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz",
+ "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "commander": "2",
+ "d3-array": "1",
+ "d3-geo": "^1.12.0",
+ "resolve": "^1.1.10"
+ },
+ "bin": {
+ "geo2svg": "bin/geo2svg",
+ "geograticule": "bin/geograticule",
+ "geoproject": "bin/geoproject",
+ "geoquantize": "bin/geoquantize",
+ "geostitch": "bin/geostitch"
+ }
+ },
+ "node_modules/d3-hierarchy": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz",
+ "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
+ "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/d3-quadtree": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz",
+ "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/d3-shape": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
+ "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "d3-path": "1"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz",
+ "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/d3-time-format": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz",
+ "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "d3-time": "1"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz",
+ "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==",
+ "license": "BSD-3-Clause",
+ "peer": true
+ },
+ "node_modules/data-urls": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz",
+ "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^15.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/date-fns": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+ "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
+ "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deep-eql": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/defined": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/detect-kerning": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz",
+ "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/dom-accessibility-api": {
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
+ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/draw-svg-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz",
+ "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "abs-svg-path": "~0.1.1",
+ "normalize-svg-path": "~0.1.0"
+ }
+ },
+ "node_modules/dtype": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz",
+ "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/dup": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz",
+ "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/earcut": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
+ "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==",
+ "license": "ISC"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.165",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz",
+ "integrity": "sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/element-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz",
+ "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/elementary-circuits-directed-graph": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz",
+ "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "strongly-connected-components": "^1.0.1"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+ "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/es5-ext": {
+ "version": "0.10.64",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
+ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
+ "hasInstallScript": true,
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "esniff": "^2.0.1",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz",
+ "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "d": "^1.0.2",
+ "ext": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/es6-weak-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
+ "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.46",
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/escodegen": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
+ }
+ },
+ "node_modules/eslint-plugin-react-refresh": {
+ "version": "0.4.20",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz",
+ "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "eslint": ">=8.40"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/esniff": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.62",
+ "event-emitter": "^0.3.5",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/expect-type": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz",
+ "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "type": "^2.7.2"
+ }
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/falafel": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz",
+ "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "isarray": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/falafel/node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-isnumeric": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz",
+ "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "is-string-blank": "^1.0.1"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-replace": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz",
+ "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatbuffers": {
+ "version": "25.9.23",
+ "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.9.23.tgz",
+ "integrity": "sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/flatted": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/flatten-vertex-data": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz",
+ "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "dtype": "^2.0.0"
+ }
+ },
+ "node_modules/font-atlas": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz",
+ "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "css-font": "^1.0.0"
+ }
},
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz",
- "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==",
- "cpu": [
- "x64"
- ],
+ "node_modules/font-measure": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz",
+ "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "css-font": "^1.2.0"
+ }
+ },
+ "node_modules/from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
+ "hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz",
- "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==",
- "cpu": [
- "arm"
+ "darwin"
],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": ">=6.9.0"
+ }
},
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz",
- "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==",
- "cpu": [
- "arm"
- ],
+ "node_modules/geojson-vt": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz",
+ "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/get-canvas-context": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
+ "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/gl-mat4": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz",
+ "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==",
+ "license": "Zlib",
+ "peer": true
+ },
+ "node_modules/gl-matrix": {
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz",
+ "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==",
+ "license": "MIT"
+ },
+ "node_modules/gl-text": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz",
+ "integrity": "sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "bit-twiddle": "^1.0.2",
+ "color-normalize": "^1.5.0",
+ "css-font": "^1.2.0",
+ "detect-kerning": "^2.1.2",
+ "es6-weak-map": "^2.0.3",
+ "flatten-vertex-data": "^1.0.2",
+ "font-atlas": "^2.1.0",
+ "font-measure": "^1.2.2",
+ "gl-util": "^3.1.2",
+ "is-plain-obj": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "parse-rect": "^1.2.0",
+ "parse-unit": "^1.0.1",
+ "pick-by-alias": "^1.2.0",
+ "regl": "^2.0.0",
+ "to-px": "^1.0.1",
+ "typedarray-pool": "^1.1.0"
+ }
+ },
+ "node_modules/gl-util": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz",
+ "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "is-browser": "^2.0.1",
+ "is-firefox": "^1.0.3",
+ "is-plain-obj": "^1.1.0",
+ "number-is-integer": "^1.0.1",
+ "object-assign": "^4.1.0",
+ "pick-by-alias": "^1.2.0",
+ "weak-map": "^1.0.5"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/glob/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
},
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz",
- "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/glob/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/global-prefix": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz",
+ "integrity": "sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "peer": true,
+ "dependencies": {
+ "ini": "^4.1.3",
+ "kind-of": "^6.0.3",
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ }
},
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz",
- "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/global-prefix/node_modules/isexe": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
+ "license": "BlueOak-1.0.0",
+ "peer": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/global-prefix/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": ">=4"
+ }
},
- "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz",
- "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==",
- "cpu": [
- "loong64"
- ],
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/glsl-inject-defines": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz",
+ "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "glsl-token-inject-block": "^1.0.0",
+ "glsl-token-string": "^1.0.1",
+ "glsl-tokenizer": "^2.0.2"
+ }
+ },
+ "node_modules/glsl-resolve": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz",
+ "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "resolve": "^0.6.1",
+ "xtend": "^2.1.2"
+ }
+ },
+ "node_modules/glsl-resolve/node_modules/resolve": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz",
+ "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==",
+ "license": "MIT",
+ "peer": true
},
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz",
- "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
+ "node_modules/glsl-resolve/node_modules/xtend": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz",
+ "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==",
+ "peer": true,
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/glsl-token-assignments": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz",
+ "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "peer": true
},
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz",
- "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
+ "node_modules/glsl-token-defines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz",
+ "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "peer": true,
+ "dependencies": {
+ "glsl-tokenizer": "^2.0.0"
+ }
},
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz",
- "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
+ "node_modules/glsl-token-depth": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz",
+ "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "peer": true
},
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz",
- "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
+ "node_modules/glsl-token-descope": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz",
+ "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "peer": true,
+ "dependencies": {
+ "glsl-token-assignments": "^2.0.0",
+ "glsl-token-depth": "^1.1.0",
+ "glsl-token-properties": "^1.0.0",
+ "glsl-token-scope": "^1.1.0"
+ }
},
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz",
- "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/glsl-token-inject-block": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz",
+ "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "peer": true
},
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz",
- "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/glsl-token-properties": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz",
+ "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "peer": true
},
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz",
- "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
+ "node_modules/glsl-token-scope": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz",
+ "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==",
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "peer": true
},
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz",
- "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
+ "node_modules/glsl-token-string": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz",
+ "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==",
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "peer": true
},
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz",
- "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/glsl-token-whitespace-trim": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz",
+ "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==",
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "peer": true
},
- "node_modules/@types/babel__core": {
- "version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
- "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
- "dev": true,
+ "node_modules/glsl-tokenizer": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz",
+ "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
+ "through2": "^0.6.3"
}
},
- "node_modules/@types/babel__generator": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
- "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
- "dev": true,
+ "node_modules/glsl-tokenizer/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/glsl-tokenizer/node_modules/readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@babel/types": "^7.0.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
- "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
- "dev": true,
+ "node_modules/glsl-tokenizer/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
"license": "MIT",
+ "peer": true
+ },
+ "node_modules/glsl-tokenizer/node_modules/through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
}
},
- "node_modules/@types/babel__traverse": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz",
- "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==",
- "dev": true,
+ "node_modules/glslify": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz",
+ "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@babel/types": "^7.20.7"
+ "bl": "^2.2.1",
+ "concat-stream": "^1.5.2",
+ "duplexify": "^3.4.5",
+ "falafel": "^2.1.0",
+ "from2": "^2.3.0",
+ "glsl-resolve": "0.0.1",
+ "glsl-token-whitespace-trim": "^1.0.0",
+ "glslify-bundle": "^5.0.0",
+ "glslify-deps": "^1.2.5",
+ "minimist": "^1.2.5",
+ "resolve": "^1.1.5",
+ "stack-trace": "0.0.9",
+ "static-eval": "^2.0.5",
+ "through2": "^2.0.1",
+ "xtend": "^4.0.0"
+ },
+ "bin": {
+ "glslify": "bin.js"
}
},
- "node_modules/@types/estree": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
- "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
- "dev": true,
- "license": "MIT"
+ "node_modules/glslify-bundle": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz",
+ "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "glsl-inject-defines": "^1.0.1",
+ "glsl-token-defines": "^1.0.0",
+ "glsl-token-depth": "^1.1.1",
+ "glsl-token-descope": "^1.0.2",
+ "glsl-token-scope": "^1.1.1",
+ "glsl-token-string": "^1.0.1",
+ "glsl-token-whitespace-trim": "^1.0.0",
+ "glsl-tokenizer": "^2.0.2",
+ "murmurhash-js": "^1.0.0",
+ "shallow-copy": "0.0.1"
+ }
+ },
+ "node_modules/glslify-deps": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz",
+ "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "@choojs/findup": "^0.2.0",
+ "events": "^3.2.0",
+ "glsl-resolve": "0.0.1",
+ "glsl-tokenizer": "^2.0.0",
+ "graceful-fs": "^4.1.2",
+ "inherits": "^2.0.1",
+ "map-limit": "0.0.1",
+ "resolve": "^1.0.0"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC",
+ "peer": true
},
- "node_modules/@types/geojson": {
- "version": "7946.0.16",
- "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
- "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true,
"license": "MIT"
},
- "node_modules/@types/leaflet": {
- "version": "1.9.18",
- "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.18.tgz",
- "integrity": "sha512-ht2vsoPjezor5Pmzi5hdsA7F++v5UGq9OlUduWHmMZiuQGIpJ2WS5+Gg9HaAA79gNh1AIPtCqhzejcIZ3lPzXQ==",
- "dev": true,
+ "node_modules/grid-index": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz",
+ "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"license": "MIT",
- "dependencies": {
- "@types/geojson": "*"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/@types/prop-types": {
- "version": "15.7.14",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
- "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/react": {
- "version": "18.3.23",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz",
- "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==",
- "dev": true,
+ "node_modules/has-hover": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz",
+ "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@types/prop-types": "*",
- "csstype": "^3.0.2"
+ "is-browser": "^2.0.1"
}
},
- "node_modules/@types/react-dom": {
- "version": "18.3.7",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
- "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
- "dev": true,
+ "node_modules/has-passive-events": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz",
+ "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==",
"license": "MIT",
- "peerDependencies": {
- "@types/react": "^18.0.0"
+ "peer": true,
+ "dependencies": {
+ "is-browser": "^2.0.1"
}
},
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz",
- "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==",
- "dev": true,
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"license": "MIT",
- "dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/type-utils": "7.18.0",
- "@typescript-eslint/utils": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.3.1",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
+ "peer": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^7.0.0",
- "eslint": "^8.56.0"
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/html-encoding-sniffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-encoding": "^3.1.1"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz",
- "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==",
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
- "license": "BSD-2-Clause",
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/typescript-estree": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
+ "agent-base": "^7.1.0",
"debug": "^4.3.4"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">= 14"
}
},
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
- "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0"
+ "agent-base": "^7.1.2",
+ "debug": "4"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">= 14"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz",
- "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==",
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "7.18.0",
- "@typescript-eslint/utils": "7.18.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">=0.10.0"
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
- "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"license": "MIT",
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">= 4"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
- "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
- "license": "BSD-2-Clause",
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/visitor-keys": "7.18.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": ">=6"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz",
- "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "7.18.0",
- "@typescript-eslint/types": "7.18.0",
- "@typescript-eslint/typescript-estree": "7.18.0"
- },
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
+ "node": ">=0.8.19"
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
- "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "7.18.0",
- "eslint-visitor-keys": "^3.4.3"
- },
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=8"
}
},
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
- "node_modules/@vitejs/plugin-react": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.5.1.tgz",
- "integrity": "sha512-uPZBqSI0YD4lpkIru6M35sIfylLGTyhGHvDZbNLuMA73lMlwJKz5xweH7FajfcCAc2HnINciejA9qTz0dr0M7A==",
- "dev": true,
+ "node_modules/ini": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
+ "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
+ "license": "ISC",
+ "peer": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/is-browser": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz",
+ "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@babel/core": "^7.26.10",
- "@babel/plugin-transform-react-jsx-self": "^7.25.9",
- "@babel/plugin-transform-react-jsx-source": "^7.25.9",
- "@rolldown/pluginutils": "1.0.0-beta.9",
- "@types/babel__core": "^7.20.5",
- "react-refresh": "^0.17.0"
+ "hasown": "^2.0.2"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "vite": "^4.2.0 || ^5.0.0 || ^6.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/acorn": {
- "version": "8.14.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
- "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
- "dev": true,
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
"license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
"engines": {
- "node": ">=0.4.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
+ "node_modules/is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
"license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
+ "node_modules/is-firefox": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz",
+ "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==",
"license": "MIT",
+ "peer": true,
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "is-extglob": "^2.1.1"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=0.10.0"
}
},
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
+ "node_modules/is-iexplorer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz",
+ "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==",
"license": "MIT",
+ "peer": true,
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true,
- "license": "MIT"
+ "node_modules/is-mobile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz",
+ "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==",
+ "license": "MIT",
+ "peer": true
},
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
+ "engines": {
+ "node": ">=0.12.0"
}
},
- "node_modules/braces": {
+ "node_modules/is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-path-inside": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
"engines": {
"node": ">=8"
}
},
- "node_modules/browserslist": {
- "version": "4.25.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz",
- "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
"license": "MIT",
- "dependencies": {
- "caniuse-lite": "^1.0.30001718",
- "electron-to-chromium": "^1.5.160",
- "node-releases": "^2.0.19",
- "update-browserslist-db": "^1.1.3"
- },
- "bin": {
- "browserslist": "cli.js"
- },
+ "peer": true,
"engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ "node": ">=0.10.0"
}
},
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/caniuse-lite": {
- "version": "1.0.30001721",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz",
- "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==",
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
+ "license": "MIT"
},
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/is-string-blank": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz",
+ "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/is-svg-path": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz",
+ "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true,
+ "license": "ISC"
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">=0.10.0"
}
},
- "node_modules/chart.js": {
- "version": "4.4.9",
- "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.9.tgz",
- "integrity": "sha512-EyZ9wWKgpAU0fLJ43YAEIF8sr5F2W3LqbS40ZJyHIner2lY14ufqv2VMp69MAiZ2rpwxEUxEhIH/0U3xyRynxg==",
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@kurkle/color": "^0.3.0"
+ "argparse": "^2.0.1"
},
- "engines": {
- "pnpm": ">=8"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/chartjs-adapter-date-fns": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-3.0.0.tgz",
- "integrity": "sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg==",
+ "node_modules/jsdom": {
+ "version": "27.0.1",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.0.1.tgz",
+ "integrity": "sha512-SNSQteBL1IlV2zqhwwolaG9CwhIhTvVHWg3kTss/cLE7H/X4644mtPQqYvCfsSrGQWt9hSZcgOXX8bOZaMN+kA==",
+ "dev": true,
"license": "MIT",
+ "dependencies": {
+ "@asamuzakjp/dom-selector": "^6.7.2",
+ "cssstyle": "^5.3.1",
+ "data-urls": "^6.0.0",
+ "decimal.js": "^10.6.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.6",
+ "is-potential-custom-element-name": "^1.0.1",
+ "parse5": "^8.0.0",
+ "rrweb-cssom": "^0.8.0",
+ "saxes": "^6.0.0",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^6.0.0",
+ "w3c-xmlserializer": "^5.0.0",
+ "webidl-conversions": "^8.0.0",
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^15.1.0",
+ "ws": "^8.18.3",
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
"peerDependencies": {
- "chart.js": ">=2.8.0",
- "date-fns": ">=2.0.0"
+ "canvas": "^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
}
},
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
+ "bin": {
+ "jsesc": "bin/jsesc"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">=6"
}
},
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "node_modules/json-bignum": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz",
+ "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true,
"license": "MIT"
},
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true,
"license": "MIT"
},
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "node_modules/json-stringify-pretty-compact": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz",
+ "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==",
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "bin": {
+ "json5": "lib/cli.js"
},
"engines": {
- "node": ">= 8"
+ "node": ">=6"
}
},
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "node_modules/kdbush": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz",
+ "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==",
+ "license": "ISC"
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
},
- "node_modules/date-fns": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
- "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"license": "MIT",
"peer": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "node_modules/leaflet": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
+ "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ms": "^2.1.3"
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
},
"engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "node": ">= 0.8.0"
}
},
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "path-type": "^4.0.0"
+ "p-locate": "^5.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "license": "Apache-2.0",
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "license": "MIT"
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
"dependencies": {
- "esutils": "^2.0.2"
+ "js-tokens": "^3.0.0 || ^4.0.0"
},
- "engines": {
- "node": ">=6.0.0"
+ "bin": {
+ "loose-envify": "cli.js"
}
},
- "node_modules/electron-to-chromium": {
- "version": "1.5.165",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz",
- "integrity": "sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==",
+ "node_modules/loupe": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz",
+ "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==",
"dev": true,
- "license": "ISC"
+ "license": "MIT"
},
- "node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
}
},
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "node_modules/lz-string": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
+ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=6"
+ "peer": true,
+ "bin": {
+ "lz-string": "bin/bin.js"
}
},
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
}
},
- "node_modules/eslint": {
- "version": "8.57.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
- "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
- "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
- "dev": true,
+ "node_modules/map-limit": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
+ "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.1",
- "@humanwhocodes/config-array": "^0.13.0",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "once": "~1.3.0"
}
},
- "node_modules/eslint-plugin-react-hooks": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
- "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
+ "node_modules/map-limit/node_modules/once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/mapbox-gl": {
+ "version": "3.20.0",
+ "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.20.0.tgz",
+ "integrity": "sha512-+rVQkf6ymUlAEJiQBZy0OiamJvQN4Uk15mRHI98PRUSmRS40GOoLJyEZEG39LEUtvmzc7qGh+4ygZfJ//O5VnQ==",
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "peer": true,
+ "workspaces": [
+ "src/style-spec",
+ "test/build/vite",
+ "test/build/webpack",
+ "test/build/typings"
+ ],
+ "dependencies": {
+ "@mapbox/jsonlint-lines-primitives": "^2.0.2",
+ "@mapbox/mapbox-gl-supported": "^3.0.0",
+ "@mapbox/point-geometry": "^1.1.0",
+ "@mapbox/tiny-sdf": "^2.0.6",
+ "@mapbox/unitbezier": "^0.0.1",
+ "@mapbox/vector-tile": "^2.0.4",
+ "@types/geojson": "^7946.0.16",
+ "@types/geojson-vt": "^3.2.5",
+ "@types/pbf": "^3.0.5",
+ "@types/supercluster": "^7.1.3",
+ "cheap-ruler": "^4.0.0",
+ "csscolorparser": "~1.0.3",
+ "earcut": "^3.0.1",
+ "geojson-vt": "^4.0.2",
+ "gl-matrix": "^3.4.4",
+ "grid-index": "^1.1.0",
+ "kdbush": "^4.0.2",
+ "martinez-polygon-clipping": "^0.8.1",
+ "murmurhash-js": "^1.0.0",
+ "pbf": "^4.0.1",
+ "potpack": "^2.0.0",
+ "quickselect": "^3.0.0",
+ "supercluster": "^8.0.1",
+ "tinyqueue": "^3.0.0"
+ }
+ },
+ "node_modules/mapbox-gl/node_modules/earcut": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz",
+ "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==",
+ "license": "ISC",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/mapbox-gl/node_modules/geojson-vt": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz",
+ "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==",
+ "license": "ISC",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/maplibre-gl": {
+ "version": "5.21.0",
+ "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.21.0.tgz",
+ "integrity": "sha512-n0v4J/Ge0EG8ix/z3TY3ragtJYMqzbtSnj1riOC0OwQbzwp0lUF2maS1ve1z8HhitQCKtZZiZJhb8to36aMMfQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@mapbox/jsonlint-lines-primitives": "^2.0.2",
+ "@mapbox/point-geometry": "^1.1.0",
+ "@mapbox/tiny-sdf": "^2.0.7",
+ "@mapbox/unitbezier": "^0.0.1",
+ "@mapbox/vector-tile": "^2.0.4",
+ "@mapbox/whoots-js": "^3.1.0",
+ "@maplibre/geojson-vt": "^6.0.4",
+ "@maplibre/maplibre-gl-style-spec": "^24.7.0",
+ "@maplibre/mlt": "^1.1.8",
+ "@maplibre/vt-pbf": "^4.3.0",
+ "@types/geojson": "^7946.0.16",
+ "earcut": "^3.0.2",
+ "gl-matrix": "^3.4.4",
+ "kdbush": "^4.0.2",
+ "murmurhash-js": "^1.0.0",
+ "pbf": "^4.0.1",
+ "potpack": "^2.1.0",
+ "quickselect": "^3.0.0",
+ "tinyqueue": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.14.0",
+ "npm": ">=8.1.0"
},
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
+ "funding": {
+ "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1"
}
},
- "node_modules/eslint-plugin-react-refresh": {
- "version": "0.4.20",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz",
- "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==",
- "dev": true,
+ "node_modules/maplibre-gl/node_modules/earcut": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz",
+ "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==",
+ "license": "ISC"
+ },
+ "node_modules/martinez-polygon-clipping": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/martinez-polygon-clipping/-/martinez-polygon-clipping-0.8.1.tgz",
+ "integrity": "sha512-9PLLMzMPI6ihHox4Ns6LpVBLpRc7sbhULybZ/wyaY8sY3ECNe2+hxm1hA2/9bEEpRrdpjoeduBuZLg2aq1cSIQ==",
"license": "MIT",
- "peerDependencies": {
- "eslint": ">=8.40"
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "robust-predicates": "^2.0.4",
+ "splaytree": "^0.1.4",
+ "tinyqueue": "3.0.0"
}
},
- "node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
+ "node_modules/math-log2": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz",
+ "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==",
+ "license": "MIT",
+ "peer": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=0.10.0"
}
},
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/mdn-data": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
"dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
+ "license": "CC0-1.0"
},
- "node_modules/eslint/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "engines": {
+ "node": ">= 8"
}
},
- "node_modules/eslint/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "type-fest": "^0.20.2"
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8.6"
}
},
- "node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
+ "license": "MIT",
"engines": {
- "node": "*"
+ "node": ">=4"
}
},
- "node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
- "license": "BSD-2-Clause",
+ "license": "ISC",
"dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/esquery": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
- "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "license": "BSD-2-Clause",
+ "node_modules/mjolnir.js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-3.0.0.tgz",
+ "integrity": "sha512-siX3YCG7N2HnmN1xMH3cK4JkUZJhbkhRFJL+G5N1vH0mh1t5088rJknIoqDFWDIU6NPGvRRgLnYW3ZHjSMEBLA==",
+ "license": "MIT"
+ },
+ "node_modules/mouse-change": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz",
+ "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==",
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
+ "mouse-event": "^1.0.0"
}
},
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
+ "node_modules/mouse-event": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz",
+ "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/mouse-event-offset": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz",
+ "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/mouse-wheel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz",
+ "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "right-now": "^1.0.0",
+ "signum": "^1.0.0",
+ "to-px": "^1.0.1"
}
},
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/murmurhash-js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
+ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==",
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true,
- "license": "BSD-2-Clause",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "node_modules/native-promise-only": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
+ "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true,
"license": "MIT"
},
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
+ "node_modules/needle": {
+ "version": "2.9.1",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
+ "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "needle": "bin/needle"
},
"engines": {
- "node": ">=8.6.0"
+ "node": ">= 4.4.x"
}
},
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
+ "node_modules/needle/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "is-glob": "^4.0.1"
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/needle/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
},
"engines": {
- "node": ">= 6"
+ "node": ">=0.10.0"
}
},
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true,
- "license": "MIT"
+ "node_modules/next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
+ "license": "ISC",
+ "peer": true
},
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "node_modules/node-releases": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
"dev": true,
"license": "MIT"
},
- "node_modules/fastq": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
- "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
- "dev": true,
+ "node_modules/normalize-svg-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz",
+ "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/number-is-integer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz",
+ "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "is-finite": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"license": "ISC",
"dependencies": {
- "reusify": "^1.0.4"
+ "wrappy": "1"
}
},
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "flat-cache": "^3.0.4"
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">= 0.8.0"
}
},
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "to-regex-range": "^5.0.1"
+ "yocto-queue": "^0.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/find-up": {
+ "node_modules/p-locate": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
+ "p-limit": "^3.0.2"
},
"engines": {
"node": ">=10"
@@ -2326,969 +6425,1624 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/flat-cache": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
- "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.3",
- "rimraf": "^3.0.2"
+ "callsites": "^3.0.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">=6"
}
},
- "node_modules/flatted": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
- "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "node_modules/parenthesis": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz",
+ "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/parse-rect": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz",
+ "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "pick-by-alias": "^1.2.0"
+ }
+ },
+ "node_modules/parse-svg-path": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz",
+ "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/parse-unit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz",
+ "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/parse5": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
+ "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
"dev": true,
- "license": "ISC"
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
},
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
- "license": "ISC"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
- "hasInstallScript": true,
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
"engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=8"
}
},
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pathval": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz",
+ "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.16"
+ }
+ },
+ "node_modules/pbf": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz",
+ "integrity": "sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==",
+ "license": "BSD-3-Clause",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "resolve-protobuf-schema": "^2.1.0"
},
+ "bin": {
+ "pbf": "bin/pbf"
+ }
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/pick-by-alias": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz",
+ "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "*"
+ "node": ">=8.6"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
+ "node_modules/plotly.js": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-3.4.0.tgz",
+ "integrity": "sha512-jdWfHLB8AxlGUmVhqJTGEKdwjCKGn9Yi8yg16067/JyqseuSado7F6IOM1XPZspdZyO/cf8IPuy7ROlVhqZZNw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@plotly/d3": "3.8.2",
+ "@plotly/d3-sankey": "0.7.2",
+ "@plotly/d3-sankey-circular": "0.33.1",
+ "@plotly/mapbox-gl": "1.13.4",
+ "@plotly/regl": "^2.1.2",
+ "@turf/area": "^7.1.0",
+ "@turf/bbox": "^7.1.0",
+ "@turf/centroid": "^7.1.0",
+ "base64-arraybuffer": "^1.0.2",
+ "canvas-fit": "^1.5.0",
+ "color-alpha": "1.0.4",
+ "color-normalize": "1.5.0",
+ "color-parse": "2.0.0",
+ "color-rgba": "3.0.0",
+ "country-regex": "^1.1.0",
+ "d3-force": "^1.2.1",
+ "d3-format": "^1.4.5",
+ "d3-geo": "^1.12.1",
+ "d3-geo-projection": "^2.9.0",
+ "d3-hierarchy": "^1.1.9",
+ "d3-interpolate": "^3.0.1",
+ "d3-time": "^1.1.0",
+ "d3-time-format": "^2.2.3",
+ "fast-isnumeric": "^1.1.4",
+ "gl-mat4": "^1.2.0",
+ "gl-text": "^1.4.0",
+ "has-hover": "^1.0.1",
+ "has-passive-events": "^1.0.0",
+ "is-mobile": "^4.0.0",
+ "maplibre-gl": "^4.7.1",
+ "mouse-change": "^1.4.0",
+ "mouse-event-offset": "^3.0.2",
+ "mouse-wheel": "^1.2.0",
+ "native-promise-only": "^0.8.1",
+ "parse-svg-path": "^0.1.2",
+ "point-in-polygon": "^1.1.0",
+ "polybooljs": "^1.2.2",
+ "probe-image-size": "^7.2.3",
+ "regl-error2d": "^2.0.12",
+ "regl-line2d": "^3.1.3",
+ "regl-scatter2d": "^3.3.1",
+ "regl-splom": "^1.0.14",
+ "strongly-connected-components": "^1.0.1",
+ "superscript-text": "^1.0.0",
+ "svg-path-sdf": "^1.1.3",
+ "tinycolor2": "^1.4.2",
+ "to-px": "1.0.1",
+ "topojson-client": "^3.1.0",
+ "webgl-context": "^2.2.0",
+ "world-calendars": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/plotly.js-dist-min": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/plotly.js-dist-min/-/plotly.js-dist-min-3.4.0.tgz",
+ "integrity": "sha512-eo7xh7oyE9fFoE/wintgmvfOjvTKwCb3wRf9ShQv90du4n+EVkOY7w5qEkmUS9SSkHRnAw8sk/0QI7wEc5U+8Q==",
+ "license": "MIT"
+ },
+ "node_modules/plotly.js/node_modules/@mapbox/point-geometry": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
+ "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==",
"license": "ISC",
+ "peer": true
+ },
+ "node_modules/plotly.js/node_modules/@mapbox/vector-tile": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz",
+ "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==",
+ "license": "BSD-3-Clause",
+ "peer": true,
"dependencies": {
- "is-glob": "^4.0.3"
+ "@mapbox/point-geometry": "~0.1.0"
+ }
+ },
+ "node_modules/plotly.js/node_modules/@maplibre/maplibre-gl-style-spec": {
+ "version": "20.4.0",
+ "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.4.0.tgz",
+ "integrity": "sha512-AzBy3095fTFPjDjmWpR2w6HVRAZJ6hQZUCwk5Plz6EyfnfuQW1odeW5i2Ai47Y6TBA2hQnC+azscjBSALpaWgw==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "@mapbox/jsonlint-lines-primitives": "~2.0.2",
+ "@mapbox/unitbezier": "^0.0.1",
+ "json-stringify-pretty-compact": "^4.0.0",
+ "minimist": "^1.2.8",
+ "quickselect": "^2.0.0",
+ "rw": "^1.3.3",
+ "tinyqueue": "^3.0.0"
},
- "engines": {
- "node": ">=10.13.0"
+ "bin": {
+ "gl-style-format": "dist/gl-style-format.mjs",
+ "gl-style-migrate": "dist/gl-style-migrate.mjs",
+ "gl-style-validate": "dist/gl-style-validate.mjs"
}
},
- "node_modules/glob/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/plotly.js/node_modules/@maplibre/maplibre-gl-style-spec/node_modules/quickselect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
+ "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/plotly.js/node_modules/earcut": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz",
+ "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/plotly.js/node_modules/geojson-vt": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz",
+ "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/plotly.js/node_modules/maplibre-gl": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.7.1.tgz",
+ "integrity": "sha512-lgL7XpIwsgICiL82ITplfS7IGwrB1OJIw/pCvprDp2dhmSSEBgmPzYRvwYYYvJGJD7fxUv1Tvpih4nZ6VrLuaA==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "@mapbox/geojson-rewind": "^0.5.2",
+ "@mapbox/jsonlint-lines-primitives": "^2.0.2",
+ "@mapbox/point-geometry": "^0.1.0",
+ "@mapbox/tiny-sdf": "^2.0.6",
+ "@mapbox/unitbezier": "^0.0.1",
+ "@mapbox/vector-tile": "^1.3.1",
+ "@mapbox/whoots-js": "^3.1.0",
+ "@maplibre/maplibre-gl-style-spec": "^20.3.1",
+ "@types/geojson": "^7946.0.14",
+ "@types/geojson-vt": "3.2.5",
+ "@types/mapbox__point-geometry": "^0.1.4",
+ "@types/mapbox__vector-tile": "^1.3.4",
+ "@types/pbf": "^3.0.5",
+ "@types/supercluster": "^7.1.3",
+ "earcut": "^3.0.0",
+ "geojson-vt": "^4.0.2",
+ "gl-matrix": "^3.4.3",
+ "global-prefix": "^4.0.0",
+ "kdbush": "^4.0.2",
+ "murmurhash-js": "^1.0.0",
+ "pbf": "^3.3.0",
+ "potpack": "^2.0.0",
+ "quickselect": "^3.0.0",
+ "supercluster": "^8.0.1",
+ "tinyqueue": "^3.0.0",
+ "vt-pbf": "^3.1.3"
+ },
+ "engines": {
+ "node": ">=16.14.0",
+ "npm": ">=8.1.0"
+ },
+ "funding": {
+ "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1"
+ }
+ },
+ "node_modules/plotly.js/node_modules/pbf": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz",
+ "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "ieee754": "^1.1.12",
+ "resolve-protobuf-schema": "^2.1.0"
+ },
+ "bin": {
+ "pbf": "bin/pbf"
+ }
+ },
+ "node_modules/point-in-polygon": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz",
+ "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/polybooljs": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz",
+ "integrity": "sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/postcss": {
+ "version": "8.5.4",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
+ "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/glob/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
- "node": "*"
+ "node": "^10 || ^12 || >=14"
}
},
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "node_modules/potpack": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz",
+ "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==",
+ "license": "ISC"
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">= 0.8.0"
}
},
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "node_modules/pretty-format": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^17.0.1"
},
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
"engines": {
"node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true,
+ "node_modules/probe-image-size": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz",
+ "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "lodash.merge": "^4.6.2",
+ "needle": "^2.5.2",
+ "stream-parser": "~0.3.1"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/protocol-buffers-schema": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz",
+ "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==",
+ "license": "MIT"
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/quickselect": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz",
+ "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==",
+ "license": "ISC"
+ },
+ "node_modules/raf": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
+ "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
"license": "MIT",
- "engines": {
- "node": ">= 4"
+ "peer": true,
+ "dependencies": {
+ "performance-now": "^2.1.0"
}
},
- "node_modules/import-fresh": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
- "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
- "dev": true,
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"license": "MIT",
"dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
+ "loose-envify": "^1.1.0"
},
"engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
+ "node_modules/react-chartjs-2": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.3.0.tgz",
+ "integrity": "sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==",
"license": "MIT",
- "engines": {
- "node": ">=0.8.19"
+ "peerDependencies": {
+ "chart.js": "^4.1.1",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "dev": true,
- "license": "ISC",
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "license": "MIT",
"dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
}
},
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "node_modules/react-is": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "peer": true
+ },
+ "node_modules/react-leaflet": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz",
+ "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==",
+ "license": "Hippocratic-2.1",
+ "dependencies": {
+ "@react-leaflet/core": "^2.1.0"
+ },
+ "peerDependencies": {
+ "leaflet": "^1.9.0",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
}
},
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
+ "node_modules/react-map-gl": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-8.1.0.tgz",
+ "integrity": "sha512-vDx/QXR3Tb+8/ap/z6gdMjJQ8ZEyaZf6+uMSPz7jhWF5VZeIsKsGfPvwHVPPwGF43Ryn+YR4bd09uEFNR5OPdg==",
"license": "MIT",
"dependencies": {
- "is-extglob": "^2.1.1"
+ "@vis.gl/react-mapbox": "8.1.0",
+ "@vis.gl/react-maplibre": "8.1.0"
},
- "engines": {
- "node": ">=0.10.0"
+ "peerDependencies": {
+ "mapbox-gl": ">=1.13.0",
+ "maplibre-gl": ">=1.13.0",
+ "react": ">=16.3.0",
+ "react-dom": ">=16.3.0"
+ },
+ "peerDependenciesMeta": {
+ "mapbox-gl": {
+ "optional": true
+ },
+ "maplibre-gl": {
+ "optional": true
+ }
}
},
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
+ "node_modules/react-plotly.js": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz",
+ "integrity": "sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==",
"license": "MIT",
- "engines": {
- "node": ">=0.12.0"
+ "dependencies": {
+ "prop-types": "^15.8.1"
+ },
+ "peerDependencies": {
+ "plotly.js": ">1.34.0",
+ "react": ">0.13.0"
}
},
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "node_modules/react-refresh": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
+ "node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/jsesc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
- "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "node_modules/readable-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/readable-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
"license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
+ "dependencies": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=8"
}
},
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true,
- "license": "MIT"
+ "node_modules/regl": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/regl/-/regl-2.1.1.tgz",
+ "integrity": "sha512-+IOGrxl3FZ8ZM9ixCWQZzFRiRn7Rzn9bu3iFHwg/yz4tlOUQgbO4PHLgG+1ZT60zcIV8tief6Qrmyl8qcoJP0g==",
+ "license": "MIT",
+ "peer": true
},
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true,
- "license": "MIT"
+ "node_modules/regl-error2d": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz",
+ "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "array-bounds": "^1.0.1",
+ "color-normalize": "^1.5.0",
+ "flatten-vertex-data": "^1.0.2",
+ "object-assign": "^4.1.1",
+ "pick-by-alias": "^1.2.0",
+ "to-float32": "^1.1.0",
+ "update-diff": "^1.1.0"
+ }
},
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
+ "node_modules/regl-line2d": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz",
+ "integrity": "sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==",
"license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
+ "peer": true,
+ "dependencies": {
+ "array-bounds": "^1.0.1",
+ "array-find-index": "^1.0.2",
+ "array-normalize": "^1.1.4",
+ "color-normalize": "^1.5.0",
+ "earcut": "^2.1.5",
+ "es6-weak-map": "^2.0.3",
+ "flatten-vertex-data": "^1.0.2",
+ "object-assign": "^4.1.1",
+ "parse-rect": "^1.2.0",
+ "pick-by-alias": "^1.2.0",
+ "to-float32": "^1.1.0"
+ }
+ },
+ "node_modules/regl-scatter2d": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz",
+ "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@plotly/point-cluster": "^3.1.9",
+ "array-range": "^1.0.1",
+ "array-rearrange": "^2.2.2",
+ "clamp": "^1.0.1",
+ "color-id": "^1.1.0",
+ "color-normalize": "^1.5.0",
+ "color-rgba": "^2.1.1",
+ "flatten-vertex-data": "^1.0.2",
+ "glslify": "^7.0.0",
+ "is-iexplorer": "^1.0.0",
+ "object-assign": "^4.1.1",
+ "parse-rect": "^1.2.0",
+ "pick-by-alias": "^1.2.0",
+ "to-float32": "^1.1.0",
+ "update-diff": "^1.1.0"
+ }
+ },
+ "node_modules/regl-scatter2d/node_modules/color-parse": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz",
+ "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "color-name": "^1.0.0"
}
},
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dev": true,
+ "node_modules/regl-scatter2d/node_modules/color-rgba": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.4.0.tgz",
+ "integrity": "sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "json-buffer": "3.0.1"
+ "color-parse": "^1.4.2",
+ "color-space": "^2.0.0"
}
},
- "node_modules/leaflet": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
- "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==",
- "license": "BSD-2-Clause"
+ "node_modules/regl-splom": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz",
+ "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "array-bounds": "^1.0.1",
+ "array-range": "^1.0.1",
+ "color-alpha": "^1.0.4",
+ "flatten-vertex-data": "^1.0.2",
+ "parse-rect": "^1.2.0",
+ "pick-by-alias": "^1.2.0",
+ "raf": "^3.4.1",
+ "regl-scatter2d": "^3.2.3"
+ }
},
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "p-locate": "^5.0.0"
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
- "license": "MIT"
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "license": "ISC",
+ "node_modules/resolve-protobuf-schema": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
+ "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==",
+ "license": "MIT",
"dependencies": {
- "yallist": "^3.0.2"
+ "protocol-buffers-schema": "^3.3.1"
}
},
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 8"
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
}
},
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dev": true,
+ "node_modules/right-now": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
+ "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==",
"license": "MIT",
+ "peer": true
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
+ "glob": "^7.1.3"
},
- "engines": {
- "node": ">=8.6"
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "node_modules/robust-predicates": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz",
+ "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==",
+ "license": "Unlicense",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/rollup": {
+ "version": "4.41.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz",
+ "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "@types/estree": "1.0.7"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.41.1",
+ "@rollup/rollup-android-arm64": "4.41.1",
+ "@rollup/rollup-darwin-arm64": "4.41.1",
+ "@rollup/rollup-darwin-x64": "4.41.1",
+ "@rollup/rollup-freebsd-arm64": "4.41.1",
+ "@rollup/rollup-freebsd-x64": "4.41.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.41.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.41.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.41.1",
+ "@rollup/rollup-linux-arm64-musl": "4.41.1",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.41.1",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.41.1",
+ "@rollup/rollup-linux-riscv64-musl": "4.41.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.41.1",
+ "@rollup/rollup-linux-x64-gnu": "4.41.1",
+ "@rollup/rollup-linux-x64-musl": "4.41.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.41.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.41.1",
+ "@rollup/rollup-win32-x64-msvc": "4.41.1",
+ "fsevents": "~2.3.2"
}
},
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "node_modules/rrweb-cssom": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
+ "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
"dev": true,
"license": "MIT"
},
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
"funding": [
{
"type": "github",
- "url": "https://github.com/sponsors/ai"
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
}
],
"license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
}
},
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true,
- "license": "MIT"
+ "node_modules/rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
+ "license": "BSD-3-Clause"
},
- "node_modules/node-releases": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
- "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
- "dev": true,
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"license": "MIT"
},
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
+ "node_modules/sax": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz",
+ "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==",
+ "license": "BlueOak-1.0.0",
+ "peer": true,
+ "engines": {
+ "node": ">=11.0.0"
}
},
- "node_modules/optionator": {
- "version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "node_modules/saxes": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
+ "xmlchars": "^2.2.0"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=v12.22.7"
}
},
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"license": "MIT",
"dependencies": {
- "yocto-queue": "^0.1.0"
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"license": "MIT",
"dependencies": {
- "p-limit": "^3.0.2"
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "node_modules/shallow-copy": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
+ "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "callsites": "^3.0.0"
+ "shebang-regex": "^3.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=8"
}
},
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/signum": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz",
+ "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sort-asc": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz",
+ "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
+ "node_modules/sort-desc": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz",
+ "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==",
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
+ "node_modules/sort-object": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz",
+ "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==",
"license": "MIT",
+ "dependencies": {
+ "bytewise": "^1.1.0",
+ "get-value": "^2.0.2",
+ "is-extendable": "^0.1.1",
+ "sort-asc": "^0.2.0",
+ "sort-desc": "^0.2.0",
+ "union-value": "^1.0.1"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
- "license": "ISC"
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
- "license": "MIT",
+ "license": "BSD-3-Clause",
"engines": {
- "node": ">=8.6"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/splaytree": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-0.1.4.tgz",
+ "integrity": "sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==",
+ "license": "MIT",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/postcss": {
- "version": "8.5.4",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
- "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "node_modules/split-string/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"license": "MIT",
"dependencies": {
- "nanoid": "^3.3.11",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
},
"engines": {
- "node": "^10 || ^12 || >=14"
+ "node": ">=0.10.0"
}
},
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
+ "node_modules/split-string/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "node_modules/stack-trace": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz",
+ "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==",
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/static-eval": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz",
+ "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==",
"license": "MIT",
- "engines": {
- "node": ">=6"
+ "peer": true,
+ "dependencies": {
+ "escodegen": "^2.1.0"
}
},
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "node_modules/std-env": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
+ "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
"license": "MIT"
},
- "node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "node_modules/stream-parser": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
+ "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "debug": "2"
}
},
- "node_modules/react-chartjs-2": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.3.0.tgz",
- "integrity": "sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==",
+ "node_modules/stream-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
- "peerDependencies": {
- "chart.js": "^4.1.1",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ "peer": true,
+ "dependencies": {
+ "ms": "2.0.0"
}
},
- "node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "node_modules/stream-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/stream-shift": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- },
- "peerDependencies": {
- "react": "^18.3.1"
+ "safe-buffer": "~5.1.0"
}
},
- "node_modules/react-leaflet": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz",
- "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==",
- "license": "Hippocratic-2.1",
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/string-split-by": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz",
+ "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
+ "license": "MIT",
+ "peer": true,
"dependencies": {
- "@react-leaflet/core": "^2.1.0"
- },
- "peerDependencies": {
- "leaflet": "^1.9.0",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
+ "parenthesis": "^3.1.5"
}
},
- "node_modules/react-refresh": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
- "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "node_modules/strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "min-indent": "^1.0.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
"license": "MIT",
"engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "node_modules/strip-literal": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz",
+ "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "js-tokens": "^9.0.1"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/antfu"
}
},
- "node_modules/rollup": {
- "version": "4.41.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz",
- "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==",
+ "node_modules/strip-literal/node_modules/js-tokens": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/strongly-connected-components": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz",
+ "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==",
"license": "MIT",
+ "peer": true
+ },
+ "node_modules/supercluster": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz",
+ "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==",
+ "license": "ISC",
"dependencies": {
- "@types/estree": "1.0.7"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
+ "kdbush": "^4.0.2"
+ }
+ },
+ "node_modules/superscript-text": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz",
+ "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
},
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.41.1",
- "@rollup/rollup-android-arm64": "4.41.1",
- "@rollup/rollup-darwin-arm64": "4.41.1",
- "@rollup/rollup-darwin-x64": "4.41.1",
- "@rollup/rollup-freebsd-arm64": "4.41.1",
- "@rollup/rollup-freebsd-x64": "4.41.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.41.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.41.1",
- "@rollup/rollup-linux-arm64-gnu": "4.41.1",
- "@rollup/rollup-linux-arm64-musl": "4.41.1",
- "@rollup/rollup-linux-loongarch64-gnu": "4.41.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.41.1",
- "@rollup/rollup-linux-riscv64-musl": "4.41.1",
- "@rollup/rollup-linux-s390x-gnu": "4.41.1",
- "@rollup/rollup-linux-x64-gnu": "4.41.1",
- "@rollup/rollup-linux-x64-musl": "4.41.1",
- "@rollup/rollup-win32-arm64-msvc": "4.41.1",
- "@rollup/rollup-win32-ia32-msvc": "4.41.1",
- "@rollup/rollup-win32-x64-msvc": "4.41.1",
- "fsevents": "~2.3.2"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
+ "node_modules/svg-arc-to-cubic-bezier": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz",
+ "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/svg-path-bounds": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz",
+ "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "queue-microtask": "^1.2.2"
+ "abs-svg-path": "^0.1.1",
+ "is-svg-path": "^1.0.1",
+ "normalize-svg-path": "^1.0.0",
+ "parse-svg-path": "^0.1.2"
}
},
- "node_modules/scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "node_modules/svg-path-bounds/node_modules/normalize-svg-path": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz",
+ "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
- "loose-envify": "^1.1.0"
+ "svg-arc-to-cubic-bezier": "^3.0.0"
}
},
- "node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "node_modules/svg-path-sdf": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz",
+ "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "bitmap-sdf": "^1.0.0",
+ "draw-svg-path": "^1.0.0",
+ "is-svg-path": "^1.0.1",
+ "parse-svg-path": "^0.1.2",
+ "svg-path-bounds": "^1.0.1"
+ }
+ },
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
+ "license": "MIT"
+ },
+ "node_modules/table-layout": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz",
+ "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==",
+ "license": "MIT",
+ "dependencies": {
+ "array-back": "^6.2.2",
+ "wordwrapjs": "^5.1.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=12.17"
}
},
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/tinybench": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinycolor2": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
+ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/tinyexec": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
+ "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "shebang-regex": "^3.0.0"
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
},
"engines": {
- "node": ">=8"
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
}
},
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
}
},
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "node_modules/tinypool": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
+ "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
"dev": true,
- "license": "BSD-3-Clause",
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": "^18.0.0 || >=20.0.0"
}
},
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/tinyqueue": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz",
+ "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==",
+ "license": "ISC"
+ },
+ "node_modules/tinyrainbow": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
+ "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
"engines": {
- "node": ">=8"
+ "node": ">=14.0.0"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "node_modules/tinyspy": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz",
+ "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=14.0.0"
}
},
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/tldts": {
+ "version": "7.0.18",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.18.tgz",
+ "integrity": "sha512-lCcgTAgMxQ1JKOWrVGo6E69Ukbnx4Gc1wiYLRf6J5NN4HRYJtCby1rPF8rkQ4a6qqoFBK5dvjJ1zJ0F7VfDSvw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "tldts-core": "^7.0.18"
},
- "engines": {
- "node": ">=8"
+ "bin": {
+ "tldts": "bin/cli.js"
}
},
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "node_modules/tldts-core": {
+ "version": "7.0.18",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.18.tgz",
+ "integrity": "sha512-jqJC13oP4FFAahv4JT/0WTDrCF9Okv7lpKtOZUGPLiAnNbACcSg8Y8T+Z9xthOmRBqi/Sob4yi0TE0miRCvF7Q==",
"dev": true,
"license": "MIT"
},
+ "node_modules/to-float32": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz",
+ "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/to-px": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz",
+ "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "parse-unit": "^1.0.1"
+ }
+ },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -3302,6 +8056,47 @@
"node": ">=8.0"
}
},
+ "node_modules/topojson-client": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz",
+ "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==",
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "commander": "2"
+ },
+ "bin": {
+ "topo2geo": "bin/topo2geo",
+ "topomerge": "bin/topomerge",
+ "topoquantize": "bin/topoquantize"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
+ "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tldts": "^7.0.5"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
+ "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
"node_modules/ts-api-utils": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
@@ -3315,6 +8110,19 @@
"typescript": ">=4.2.0"
}
},
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/type": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz",
+ "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==",
+ "license": "ISC",
+ "peer": true
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -3341,6 +8149,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/typedarray-pool": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz",
+ "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "bit-twiddle": "^1.0.0",
+ "dup": "^1.0.0"
+ }
+ },
"node_modules/typescript": {
"version": "5.8.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
@@ -3355,6 +8181,58 @@
"node": ">=14.17"
}
},
+ "node_modules/typewise": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz",
+ "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "typewise-core": "^1.2.0"
+ }
+ },
+ "node_modules/typewise-core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz",
+ "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==",
+ "license": "MIT"
+ },
+ "node_modules/typical": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz",
+ "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "license": "MIT"
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "license": "MIT",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unquote": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
+ "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/update-browserslist-db": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
@@ -3386,6 +8264,13 @@
"browserslist": ">= 4.21.0"
}
},
+ "node_modules/update-diff": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz",
+ "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -3396,6 +8281,13 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/vite": {
"version": "5.4.19",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz",
@@ -3456,6 +8348,241 @@
}
}
},
+ "node_modules/vite-node": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
+ "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cac": "^6.7.14",
+ "debug": "^4.4.1",
+ "es-module-lexer": "^1.7.0",
+ "pathe": "^2.0.3",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
+ },
+ "bin": {
+ "vite-node": "vite-node.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/vitest": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz",
+ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/chai": "^5.2.2",
+ "@vitest/expect": "3.2.4",
+ "@vitest/mocker": "3.2.4",
+ "@vitest/pretty-format": "^3.2.4",
+ "@vitest/runner": "3.2.4",
+ "@vitest/snapshot": "3.2.4",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "debug": "^4.4.1",
+ "expect-type": "^1.2.1",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.2",
+ "std-env": "^3.9.0",
+ "tinybench": "^2.9.0",
+ "tinyexec": "^0.3.2",
+ "tinyglobby": "^0.2.14",
+ "tinypool": "^1.1.1",
+ "tinyrainbow": "^2.0.0",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
+ "vite-node": "3.2.4",
+ "why-is-node-running": "^2.3.0"
+ },
+ "bin": {
+ "vitest": "vitest.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@edge-runtime/vm": "*",
+ "@types/debug": "^4.1.12",
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "@vitest/browser": "3.2.4",
+ "@vitest/ui": "3.2.4",
+ "happy-dom": "*",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@types/debug": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vitest/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/vt-pbf": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz",
+ "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@mapbox/point-geometry": "0.1.0",
+ "@mapbox/vector-tile": "^1.3.1",
+ "pbf": "^3.2.1"
+ }
+ },
+ "node_modules/vt-pbf/node_modules/@mapbox/point-geometry": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
+ "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==",
+ "license": "ISC",
+ "peer": true
+ },
+ "node_modules/vt-pbf/node_modules/@mapbox/vector-tile": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz",
+ "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "@mapbox/point-geometry": "~0.1.0"
+ }
+ },
+ "node_modules/vt-pbf/node_modules/pbf": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz",
+ "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "ieee754": "^1.1.12",
+ "resolve-protobuf-schema": "^2.1.0"
+ },
+ "bin": {
+ "pbf": "bin/pbf"
+ }
+ },
+ "node_modules/w3c-xmlserializer": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/weak-map": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz",
+ "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==",
+ "license": "Apache-2.0",
+ "peer": true
+ },
+ "node_modules/webgl-context": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz",
+ "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "get-canvas-context": "^1.0.1"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz",
+ "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/wgsl_reflect": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.2.3.tgz",
+ "integrity": "sha512-BQWBIsOn411M+ffBxmA6QRLvAOVbuz3Uk4NusxnqC1H7aeQcVLhdA3k2k/EFFFtqVjhz3z7JOOZF1a9hj2tv4Q==",
+ "license": "MIT"
+ },
+ "node_modules/whatwg-encoding": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "0.6.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz",
+ "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "^6.0.0",
+ "webidl-conversions": "^8.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -3472,6 +8599,23 @@
"node": ">= 8"
}
},
+ "node_modules/why-is-node-running": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ },
+ "bin": {
+ "why-is-node-running": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -3482,13 +8626,80 @@
"node": ">=0.10.0"
}
},
+ "node_modules/wordwrapjs": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.1.tgz",
+ "integrity": "sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.17"
+ }
+ },
+ "node_modules/world-calendars": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.4.tgz",
+ "integrity": "sha512-VGRnLJS+xJmGDPodgJRnGIDwGu0s+Cr9V2HB3EzlDZ5n0qb8h5SJtGUEkjrphZYAglEiXZ6kiXdmk0H/h/uu/w==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "object-assign": "^4.1.0"
+ }
+ },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true,
"license": "ISC"
},
+ "node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
diff --git a/package.json b/package.json
index 39ddbc4..93923db 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,9 @@
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
},
"devDependencies": {
+ "@testing-library/jest-dom": "^6.9.1",
+ "@testing-library/react": "^16.3.0",
+ "@testing-library/user-event": "^14.6.1",
"@types/leaflet": "^1.9.8",
"@types/react": "^18.2.66",
"@types/react-dom": "^18.2.22",
@@ -21,16 +24,28 @@
"eslint": "^8.57.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.6",
+ "jsdom": "^27.0.1",
"typescript": "^5.2.2",
- "vite": "^5.2.0"
+ "vite": "^5.2.0",
+ "vitest": "^3.2.4"
},
"dependencies": {
+ "@deck.gl/core": "^9.2.11",
+ "@deck.gl/layers": "^9.2.11",
+ "@deck.gl/mapbox": "^9.2.11",
+ "@loaders.gl/arrow": "^4.3.4",
+ "@types/react-plotly.js": "^2.6.4",
+ "apache-arrow": "^21.1.0",
"chart.js": "^4.4.1",
"chartjs-adapter-date-fns": "^3.0.0",
"leaflet": "^1.9.4",
+ "maplibre-gl": "^5.21.0",
+ "plotly.js-dist-min": "^3.4.0",
"react": "^18.2.0",
"react-chartjs-2": "^5.2.0",
"react-dom": "^18.2.0",
- "react-leaflet": "^4.2.1"
+ "react-leaflet": "^4.2.1",
+ "react-map-gl": "^8.1.0",
+ "react-plotly.js": "^2.6.0"
}
}
diff --git a/pixi.lock b/pixi.lock
index 9672267..1280f4e 100644
--- a/pixi.lock
+++ b/pixi.lock
@@ -5,6 +5,8 @@ environments:
- url: https://conda.anaconda.org/conda-forge/
indexes:
- https://pypi.org/simple
+ options:
+ pypi-prerelease-mode: if-necessary-or-explicit
packages:
linux-64:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
@@ -341,11 +343,14 @@ environments:
- pypi: https://files.pythonhosted.org/packages/37/44/19e02745cae22bf96440141f94e15a69a1afaa3a64ddfc38004668fcdebf/debugpy-1.8.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/6f/d6/8f9a6b1fbcc669108ec6a4d625a70be9e480b437ed9b70cd56b78cd577a6/duckdb-1.5.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ba/e1/2926925dfc37287661f755937df99dff399d3aea2163e11cfd08ca6af3b2/geojson_pydantic-2.0.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/50/1f/5155f55bd71cabd03765a4aac9ac446be129895271f73872c36ebd4b04b6/greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl
@@ -389,14 +394,20 @@ environments:
- pypi: https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/f1/af/009958cbf23fac551a940d34e3206e6c7eed2b8c940d0c3afd1feb0b0589/playwright-1.58.0-py3-none-manylinux1_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/32/ae/ec06af4fe3ee72d16973474f122541746196aaa16cea6f66d18b963c6177/prometheus_client-0.22.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a0/c4/b4d4827c93ef43c01f599ef31453ccc1c132b353284fc6c87d535c233129/pyee-13.0.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/36/f7/cf8bec9024625947e1a71441906f60a5fa6f9e4c441c4428037e73b1fcc8/pyogrio-0.12.1-cp312-cp312-manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/0f/7c/1b361a24d3087cd922ec1f6dfe02f230507d800ada3f922532f1f906a09e/pystac-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/98/1c/b00940ab9eb8ede7897443b771987f2f4a76f06be02f1b3f01eb7567e24a/pytest_base_url-2.1.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/76/61/4d333d8354ea2bea2c2f01bad0a4aa3c1262de20e1241f78e73360e9b620/pytest_playwright-0.7.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/08/20/0f2523b9e50a8052bc6a8b732dfc8568abbdc42010aef03a2d750bdab3b2/python_json_logger-3.3.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7e/0a/2356305c423a975000867de56888b79e44ec2192c690ff93c3109fd78081/pyzmq-27.0.1-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl
@@ -412,6 +423,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/f7/1f/b876b1f83aef204198a42dc101613fefccb32258e5428b5f9259677864b4/starlette-0.47.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/bc/d6/dc0827918b19c836afd58904c8b856b9bba18b4a0ce0b4866f8f6b4cb42b/starlette_cramjam-0.5.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/10/81/30e176b9ae631ac79e1ad3df3f693f876ffaada7e97d30bbffc97b00185c/titiler_core-0.22.4-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/77/25/1e8bf04e59593367e0fefc78c3f376e78bbdbd9d2fe07ac4dfa41b687745/titiler_xarray-0.22.4-py3-none-any.whl
@@ -695,11 +707,14 @@ environments:
- pypi: https://files.pythonhosted.org/packages/52/57/ecc9ae29fa5b2d90107cd1d9bf8ed19aacb74b2264d986ae9d44fe9bdf87/debugpy-1.8.16-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/87/03/293bccd838a293d42ea26dec7f4eb4f58b57b6c9ffcfabc6518a5f20a24a/duckdb-1.5.1-cp312-cp312-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ba/e1/2926925dfc37287661f755937df99dff399d3aea2163e11cfd08ca6af3b2/geojson_pydantic-2.0.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/ea/ab/1608e5a7578e62113506740b88066bf09888322a311cff602105e619bd87/greenlet-3.3.2-cp312-cp312-macosx_11_0_universal2.whl
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl
@@ -743,14 +758,20 @@ environments:
- pypi: https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/e0/40/59d34a756e02f8c670f0fee987d46f7ee53d05447d43cd114ca015cb168c/playwright-1.58.0-py3-none-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/32/ae/ec06af4fe3ee72d16973474f122541746196aaa16cea6f66d18b963c6177/prometheus_client-0.22.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a0/c4/b4d4827c93ef43c01f599ef31453ccc1c132b353284fc6c87d535c233129/pyee-13.0.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/ad/e0/656b6536549d41b5aec57e0deca1f269b4f17532f0636836f587e581603a/pyogrio-0.12.1-cp312-cp312-macosx_12_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/0f/7c/1b361a24d3087cd922ec1f6dfe02f230507d800ada3f922532f1f906a09e/pystac-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/98/1c/b00940ab9eb8ede7897443b771987f2f4a76f06be02f1b3f01eb7567e24a/pytest_base_url-2.1.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/76/61/4d333d8354ea2bea2c2f01bad0a4aa3c1262de20e1241f78e73360e9b620/pytest_playwright-0.7.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/08/20/0f2523b9e50a8052bc6a8b732dfc8568abbdc42010aef03a2d750bdab3b2/python_json_logger-3.3.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/0e/9b/c0957041067c7724b310f22c398be46399297c12ed834c3bc42200a2756f/pyzmq-27.0.1-cp312-abi3-macosx_10_15_universal2.whl
- pypi: https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl
@@ -766,6 +787,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/f7/1f/b876b1f83aef204198a42dc101613fefccb32258e5428b5f9259677864b4/starlette-0.47.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/bc/d6/dc0827918b19c836afd58904c8b856b9bba18b4a0ce0b4866f8f6b4cb42b/starlette_cramjam-0.5.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/10/81/30e176b9ae631ac79e1ad3df3f693f876ffaada7e97d30bbffc97b00185c/titiler_core-0.22.4-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/77/25/1e8bf04e59593367e0fefc78c3f376e78bbdbd9d2fe07ac4dfa41b687745/titiler_xarray-0.22.4-py3-none-any.whl
@@ -784,6 +806,8 @@ environments:
- url: https://conda.anaconda.org/conda-forge/
indexes:
- https://pypi.org/simple
+ options:
+ pypi-prerelease-mode: if-necessary-or-explicit
packages:
linux-64:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
@@ -1106,12 +1130,15 @@ environments:
- pypi: https://files.pythonhosted.org/packages/00/f0/2ef431fe4141f5e334759d73e81120492b23b2824336883a91ac04ba710b/cachetools-6.1.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e4/f4/e754800604d6449d895d7118b346bc2f3c5176cb759934b245aae530138d/color_operations-0.2.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/6f/5e/2d9fa4d310c9fa7b1db0ba9f27ea64f2975810bb18ba64f2c13e5e5728c9/cramjam-2.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/6f/d6/8f9a6b1fbcc669108ec6a4d625a70be9e480b437ed9b70cd56b78cd577a6/duckdb-1.5.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ba/e1/2926925dfc37287661f755937df99dff399d3aea2163e11cfd08ca6af3b2/geojson_pydantic-2.0.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/09/6c/6ca6ed6b93c9879e6a804515169faefcd99e02114ef113598de9b71d27be/morecantile-6.2.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/70/e8/15e0e077a004db0edd530da96c60c948689c888c464ee5d14b82405ebd86/numexpr-2.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/36/f7/cf8bec9024625947e1a71441906f60a5fa6f9e4c441c4428037e73b1fcc8/pyogrio-0.12.1-cp312-cp312-manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/0f/7c/1b361a24d3087cd922ec1f6dfe02f230507d800ada3f922532f1f906a09e/pystac-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/39/16/8a35212bb8433528e07d52bd1f56f193bed74666019b5e46f6bed9436bb4/rio_tiler-7.8.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e0/bd/400b0bd372a5666addf2540c7358bfc3841b9ce5cdbc5cc4ad2f61627ad8/simplejson-3.20.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
@@ -1376,12 +1403,15 @@ environments:
- pypi: https://files.pythonhosted.org/packages/00/f0/2ef431fe4141f5e334759d73e81120492b23b2824336883a91ac04ba710b/cachetools-6.1.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/b1/57/13dbcc9913967489851f0b7d1c8d27840abe86e02d6e2e133d16db16d0d5/color_operations-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/00/50/09b2cdeee0e757a902cb25559783b0d81aeea2b055034de55f57db64152f/cramjam-2.10.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
+ - pypi: https://files.pythonhosted.org/packages/87/03/293bccd838a293d42ea26dec7f4eb4f58b57b6c9ffcfabc6518a5f20a24a/duckdb-1.5.1-cp312-cp312-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ba/e1/2926925dfc37287661f755937df99dff399d3aea2163e11cfd08ca6af3b2/geojson_pydantic-2.0.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/09/6c/6ca6ed6b93c9879e6a804515169faefcd99e02114ef113598de9b71d27be/morecantile-6.2.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/74/46/3a26b84e44f4739ec98de0ede4b95b4b8096f721e22d0e97517eeb02017e/numexpr-2.11.0-cp312-cp312-macosx_11_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/ad/e0/656b6536549d41b5aec57e0deca1f269b4f17532f0636836f587e581603a/pyogrio-0.12.1-cp312-cp312-macosx_12_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/0f/7c/1b361a24d3087cd922ec1f6dfe02f230507d800ada3f922532f1f906a09e/pystac-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/39/16/8a35212bb8433528e07d52bd1f56f193bed74666019b5e46f6bed9436bb4/rio_tiler-7.8.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/0f/05/2b5ecb33b776c34bb5cace5de5d7669f9b60e3ca13c113037b2ca86edfbd/simplejson-3.20.1-cp312-cp312-macosx_11_0_arm64.whl
@@ -1396,6 +1426,8 @@ environments:
- url: https://conda.anaconda.org/conda-forge/
indexes:
- https://pypi.org/simple
+ options:
+ pypi-prerelease-mode: if-necessary-or-explicit
packages:
linux-64:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
@@ -1720,9 +1752,12 @@ environments:
- pypi: https://files.pythonhosted.org/packages/e4/f4/e754800604d6449d895d7118b346bc2f3c5176cb759934b245aae530138d/color_operations-0.2.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/6f/5e/2d9fa4d310c9fa7b1db0ba9f27ea64f2975810bb18ba64f2c13e5e5728c9/cramjam-2.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/6f/d6/8f9a6b1fbcc669108ec6a4d625a70be9e480b437ed9b70cd56b78cd577a6/duckdb-1.5.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ba/e1/2926925dfc37287661f755937df99dff399d3aea2163e11cfd08ca6af3b2/geojson_pydantic-2.0.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/50/1f/5155f55bd71cabd03765a4aac9ac446be129895271f73872c36ebd4b04b6/greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl
@@ -1734,18 +1769,25 @@ environments:
- pypi: https://files.pythonhosted.org/packages/70/e8/15e0e077a004db0edd530da96c60c948689c888c464ee5d14b82405ebd86/numexpr-2.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/f1/af/009958cbf23fac551a940d34e3206e6c7eed2b8c940d0c3afd1feb0b0589/playwright-1.58.0-py3-none-manylinux1_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a0/c4/b4d4827c93ef43c01f599ef31453ccc1c132b353284fc6c87d535c233129/pyee-13.0.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/36/f7/cf8bec9024625947e1a71441906f60a5fa6f9e4c441c4428037e73b1fcc8/pyogrio-0.12.1-cp312-cp312-manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/0f/7c/1b361a24d3087cd922ec1f6dfe02f230507d800ada3f922532f1f906a09e/pystac-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/98/1c/b00940ab9eb8ede7897443b771987f2f4a76f06be02f1b3f01eb7567e24a/pytest_base_url-2.1.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/76/61/4d333d8354ea2bea2c2f01bad0a4aa3c1262de20e1241f78e73360e9b620/pytest_playwright-0.7.2-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/39/16/8a35212bb8433528e07d52bd1f56f193bed74666019b5e46f6bed9436bb4/rio_tiler-7.8.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e0/bd/400b0bd372a5666addf2540c7358bfc3841b9ce5cdbc5cc4ad2f61627ad8/simplejson-3.20.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f7/1f/b876b1f83aef204198a42dc101613fefccb32258e5428b5f9259677864b4/starlette-0.47.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/bc/d6/dc0827918b19c836afd58904c8b856b9bba18b4a0ce0b4866f8f6b4cb42b/starlette_cramjam-0.5.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/10/81/30e176b9ae631ac79e1ad3df3f693f876ffaada7e97d30bbffc97b00185c/titiler_core-0.22.4-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/77/25/1e8bf04e59593367e0fefc78c3f376e78bbdbd9d2fe07ac4dfa41b687745/titiler_xarray-0.22.4-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl
@@ -2009,9 +2051,12 @@ environments:
- pypi: https://files.pythonhosted.org/packages/b1/57/13dbcc9913967489851f0b7d1c8d27840abe86e02d6e2e133d16db16d0d5/color_operations-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/00/50/09b2cdeee0e757a902cb25559783b0d81aeea2b055034de55f57db64152f/cramjam-2.10.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- pypi: https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/87/03/293bccd838a293d42ea26dec7f4eb4f58b57b6c9ffcfabc6518a5f20a24a/duckdb-1.5.1-cp312-cp312-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ba/e1/2926925dfc37287661f755937df99dff399d3aea2163e11cfd08ca6af3b2/geojson_pydantic-2.0.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/ea/ab/1608e5a7578e62113506740b88066bf09888322a311cff602105e619bd87/greenlet-3.3.2-cp312-cp312-macosx_11_0_universal2.whl
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl
@@ -2023,18 +2068,25 @@ environments:
- pypi: https://files.pythonhosted.org/packages/74/46/3a26b84e44f4739ec98de0ede4b95b4b8096f721e22d0e97517eeb02017e/numexpr-2.11.0-cp312-cp312-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/e0/40/59d34a756e02f8c670f0fee987d46f7ee53d05447d43cd114ca015cb168c/playwright-1.58.0-py3-none-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a0/c4/b4d4827c93ef43c01f599ef31453ccc1c132b353284fc6c87d535c233129/pyee-13.0.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/ad/e0/656b6536549d41b5aec57e0deca1f269b4f17532f0636836f587e581603a/pyogrio-0.12.1-cp312-cp312-macosx_12_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/0f/7c/1b361a24d3087cd922ec1f6dfe02f230507d800ada3f922532f1f906a09e/pystac-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/98/1c/b00940ab9eb8ede7897443b771987f2f4a76f06be02f1b3f01eb7567e24a/pytest_base_url-2.1.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/76/61/4d333d8354ea2bea2c2f01bad0a4aa3c1262de20e1241f78e73360e9b620/pytest_playwright-0.7.2-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/39/16/8a35212bb8433528e07d52bd1f56f193bed74666019b5e46f6bed9436bb4/rio_tiler-7.8.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/0f/05/2b5ecb33b776c34bb5cace5de5d7669f9b60e3ca13c113037b2ca86edfbd/simplejson-3.20.1-cp312-cp312-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f7/1f/b876b1f83aef204198a42dc101613fefccb32258e5428b5f9259677864b4/starlette-0.47.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/bc/d6/dc0827918b19c836afd58904c8b856b9bba18b4a0ce0b4866f8f6b4cb42b/starlette_cramjam-0.5.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/10/81/30e176b9ae631ac79e1ad3df3f693f876ffaada7e97d30bbffc97b00185c/titiler_core-0.22.4-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/77/25/1e8bf04e59593367e0fefc78c3f376e78bbdbd9d2fe07ac4dfa41b687745/titiler_xarray-0.22.4-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl
@@ -2046,6 +2098,8 @@ environments:
- url: https://conda.anaconda.org/conda-forge/
indexes:
- https://pypi.org/simple
+ options:
+ pypi-prerelease-mode: if-necessary-or-explicit
packages:
linux-64:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
@@ -2382,11 +2436,13 @@ environments:
- pypi: https://files.pythonhosted.org/packages/37/44/19e02745cae22bf96440141f94e15a69a1afaa3a64ddfc38004668fcdebf/debugpy-1.8.16-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/6f/d6/8f9a6b1fbcc669108ec6a4d625a70be9e480b437ed9b70cd56b78cd577a6/duckdb-1.5.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ba/e1/2926925dfc37287661f755937df99dff399d3aea2163e11cfd08ca6af3b2/geojson_pydantic-2.0.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/fc/c7/b445faca8deb954fe536abebff4ece5b097b923de482b26e78448c89d1dd/ipykernel-6.30.1-py3-none-any.whl
@@ -2433,6 +2489,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/36/f7/cf8bec9024625947e1a71441906f60a5fa6f9e4c441c4428037e73b1fcc8/pyogrio-0.12.1-cp312-cp312-manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/0f/7c/1b361a24d3087cd922ec1f6dfe02f230507d800ada3f922532f1f906a09e/pystac-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/08/20/0f2523b9e50a8052bc6a8b732dfc8568abbdc42010aef03a2d750bdab3b2/python_json_logger-3.3.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7e/0a/2356305c423a975000867de56888b79e44ec2192c690ff93c3109fd78081/pyzmq-27.0.1-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
@@ -2733,11 +2790,13 @@ environments:
- pypi: https://files.pythonhosted.org/packages/52/57/ecc9ae29fa5b2d90107cd1d9bf8ed19aacb74b2264d986ae9d44fe9bdf87/debugpy-1.8.16-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/87/03/293bccd838a293d42ea26dec7f4eb4f58b57b6c9ffcfabc6518a5f20a24a/duckdb-1.5.1-cp312-cp312-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ba/e1/2926925dfc37287661f755937df99dff399d3aea2163e11cfd08ca6af3b2/geojson_pydantic-2.0.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/fc/c7/b445faca8deb954fe536abebff4ece5b097b923de482b26e78448c89d1dd/ipykernel-6.30.1-py3-none-any.whl
@@ -2784,6 +2843,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/ad/e0/656b6536549d41b5aec57e0deca1f269b4f17532f0636836f587e581603a/pyogrio-0.12.1-cp312-cp312-macosx_12_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/0f/7c/1b361a24d3087cd922ec1f6dfe02f230507d800ada3f922532f1f906a09e/pystac-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/08/20/0f2523b9e50a8052bc6a8b732dfc8568abbdc42010aef03a2d750bdab3b2/python_json_logger-3.3.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/0e/9b/c0957041067c7724b310f22c398be46399297c12ed834c3bc42200a2756f/pyzmq-27.0.1-cp312-abi3-macosx_10_15_universal2.whl
@@ -3701,8 +3761,8 @@ packages:
timestamp: 1755158592822
- pypi: ./
name: bowser-insar
- version: 0.1.0.post1.dev149+gd92e061cd.d20251016
- sha256: d3752128378155cec22075b06a8bbb22f430c9b5a39089d6adbdf19138ae8163
+ version: 0.1.0.post1.dev185+g0f3093a52.d20260325
+ sha256: 1782e2b51c6e11538434b5d9cbcea785ecbd85c662f3b361cdfa2b79a3c2c66d
requires_dist:
- titiler-xarray[http,minimal]
- starlette-cramjam
@@ -3714,6 +3774,10 @@ packages:
- rioxarray
- matplotlib
- pydantic-settings
+ - geopandas
+ - pyarrow
+ - duckdb
+ - shapely>=2
- requests ; extra == 'widget'
- jupyter ; extra == 'widget'
- matplotlib ; extra == 'widget'
@@ -3725,8 +3789,8 @@ packages:
- httpx ; extra == 'test'
- ipython ; extra == 'test'
- types-python-dateutil ; extra == 'test'
+ - pytest-playwright ; extra == 'test'
requires_python: '>=3.11'
- editable: true
- pypi: https://files.pythonhosted.org/packages/73/03/6b5370fc626e6f480c4a0b4cb25b3459d390745010618b21b4b573423a53/bqplot-0.12.45-py2.py3-none-any.whl
name: bqplot
version: 0.12.45
@@ -4416,6 +4480,30 @@ packages:
purls: []
size: 69544
timestamp: 1739569648873
+- pypi: https://files.pythonhosted.org/packages/6f/d6/8f9a6b1fbcc669108ec6a4d625a70be9e480b437ed9b70cd56b78cd577a6/duckdb-1.5.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
+ name: duckdb
+ version: 1.5.1
+ sha256: 8150c569b2aa4573b51ba8475e814aa41fd53a3d510c1ffb96f1139f46faf611
+ requires_dist:
+ - ipython ; extra == 'all'
+ - fsspec ; extra == 'all'
+ - numpy ; extra == 'all'
+ - pandas ; extra == 'all'
+ - pyarrow ; extra == 'all'
+ - adbc-driver-manager ; extra == 'all'
+ requires_python: '>=3.10.0'
+- pypi: https://files.pythonhosted.org/packages/87/03/293bccd838a293d42ea26dec7f4eb4f58b57b6c9ffcfabc6518a5f20a24a/duckdb-1.5.1-cp312-cp312-macosx_11_0_arm64.whl
+ name: duckdb
+ version: 1.5.1
+ sha256: ed6d23a3f806898e69c77430ebd8da0c79c219f97b9acbc9a29a653e09740c59
+ requires_dist:
+ - ipython ; extra == 'all'
+ - fsspec ; extra == 'all'
+ - numpy ; extra == 'all'
+ - pandas ; extra == 'all'
+ - pyarrow ; extra == 'all'
+ - adbc-driver-manager ; extra == 'all'
+ requires_python: '>=3.10.0'
- conda: https://conda.anaconda.org/conda-forge/noarch/eval_type_backport-0.2.2-pyha770c72_0.conda
sha256: 2d721421a60676216e10837a240c75e2190e093920a4016a469fa9a62c95ab5f
md5: 8681d7f876da5e66a1c7fce424509383
@@ -4736,6 +4824,35 @@ packages:
- pytest-cov ; extra == 'test'
- shapely ; extra == 'test'
requires_python: '>=3.9'
+- pypi: https://files.pythonhosted.org/packages/3c/78/6a04792ace63a93e162f1305392d500ae8ddcb620e7eb88a22fd622b35bb/geopandas-1.1.3-py3-none-any.whl
+ name: geopandas
+ version: 1.1.3
+ sha256: 90d62a64f95eaa3be2ccc115c5f3d6e24208bb11983b390fdc0621a3eccd0230
+ requires_dist:
+ - numpy>=1.24
+ - pyogrio>=0.7.2
+ - packaging
+ - pandas>=2.0.0
+ - pyproj>=3.5.0
+ - shapely>=2.0.0
+ - psycopg[binary]>=3.1.0 ; extra == 'all'
+ - sqlalchemy>=2.0 ; extra == 'all'
+ - geopy ; extra == 'all'
+ - matplotlib>=3.7 ; extra == 'all'
+ - mapclassify>=2.5 ; extra == 'all'
+ - xyzservices ; extra == 'all'
+ - folium ; extra == 'all'
+ - geoalchemy2 ; extra == 'all'
+ - pyarrow>=10.0.0 ; extra == 'all'
+ - scipy ; extra == 'all'
+ - pointpats>=2.5.3 ; extra == 'all'
+ - pytest>=3.1.0 ; extra == 'dev'
+ - pytest-cov ; extra == 'dev'
+ - pytest-xdist ; extra == 'dev'
+ - codecov ; extra == 'dev'
+ - pre-commit ; extra == 'dev'
+ - ruff ; extra == 'dev'
+ requires_python: '>=3.10'
- conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.1-h97f6797_0.conda
sha256: 3a9c854fa8cf1165015b6ee994d003c3d6a8b0f532ca22b6b29cd6e8d03942ed
md5: 5bc18c66111bc94532b0d2df00731c66
@@ -4867,6 +4984,28 @@ packages:
purls: []
size: 99596
timestamp: 1755102025473
+- pypi: https://files.pythonhosted.org/packages/50/1f/5155f55bd71cabd03765a4aac9ac446be129895271f73872c36ebd4b04b6/greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
+ name: greenlet
+ version: 3.3.2
+ sha256: 43e99d1749147ac21dde49b99c9abffcbc1e2d55c67501465ef0930d6e78e070
+ requires_dist:
+ - sphinx ; extra == 'docs'
+ - furo ; extra == 'docs'
+ - objgraph ; extra == 'test'
+ - psutil ; extra == 'test'
+ - setuptools ; extra == 'test'
+ requires_python: '>=3.10'
+- pypi: https://files.pythonhosted.org/packages/ea/ab/1608e5a7578e62113506740b88066bf09888322a311cff602105e619bd87/greenlet-3.3.2-cp312-cp312-macosx_11_0_universal2.whl
+ name: greenlet
+ version: 3.3.2
+ sha256: ac8d61d4343b799d1e526db579833d72f23759c71e07181c2d2944e429eb09cd
+ requires_dist:
+ - sphinx ; extra == 'docs'
+ - furo ; extra == 'docs'
+ - objgraph ; extra == 'test'
+ - psutil ; extra == 'test'
+ - setuptools ; extra == 'test'
+ requires_python: '>=3.10'
- conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda
sha256: f64b68148c478c3bfc8f8d519541de7d2616bf59d44485a5271041d40c061887
md5: 4b69232755285701bc86a5afe4d9933a
@@ -8957,6 +9096,22 @@ packages:
- pkg:pypi/platformdirs?source=hash-mapping
size: 23531
timestamp: 1746710438805
+- pypi: https://files.pythonhosted.org/packages/e0/40/59d34a756e02f8c670f0fee987d46f7ee53d05447d43cd114ca015cb168c/playwright-1.58.0-py3-none-macosx_11_0_arm64.whl
+ name: playwright
+ version: 1.58.0
+ sha256: 70c763694739d28df71ed578b9c8202bb83e8fe8fb9268c04dd13afe36301f71
+ requires_dist:
+ - pyee>=13,<14
+ - greenlet>=3.1.1,<4.0.0
+ requires_python: '>=3.9'
+- pypi: https://files.pythonhosted.org/packages/f1/af/009958cbf23fac551a940d34e3206e6c7eed2b8c940d0c3afd1feb0b0589/playwright-1.58.0-py3-none-manylinux1_x86_64.whl
+ name: playwright
+ version: 1.58.0
+ sha256: c95568ba1eda83812598c1dc9be60b4406dffd60b149bc1536180ad108723d6b
+ requires_dist:
+ - pyee>=13,<14
+ - greenlet>=3.1.1,<4.0.0
+ requires_python: '>=3.9'
- pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl
name: pluggy
version: 1.6.0
@@ -9297,6 +9452,35 @@ packages:
- pkg:pypi/pydantic-settings?source=hash-mapping
size: 38816
timestamp: 1750801673349
+- pypi: https://files.pythonhosted.org/packages/a0/c4/b4d4827c93ef43c01f599ef31453ccc1c132b353284fc6c87d535c233129/pyee-13.0.1-py3-none-any.whl
+ name: pyee
+ version: 13.0.1
+ sha256: af2f8fede4171ef667dfded53f96e2ed0d6e6bd7ee3bb46437f77e3b57689228
+ requires_dist:
+ - typing-extensions
+ - build ; extra == 'dev'
+ - flake8 ; extra == 'dev'
+ - flake8-black ; extra == 'dev'
+ - pytest ; extra == 'dev'
+ - pytest-asyncio ; python_full_version >= '3.4' and extra == 'dev'
+ - pytest-trio ; python_full_version >= '3.7' and extra == 'dev'
+ - black ; extra == 'dev'
+ - isort ; extra == 'dev'
+ - jupyter-console ; extra == 'dev'
+ - mkdocs ; extra == 'dev'
+ - mkdocs-include-markdown-plugin ; extra == 'dev'
+ - mkdocstrings[python] ; extra == 'dev'
+ - mypy ; extra == 'dev'
+ - sphinx ; extra == 'dev'
+ - toml ; extra == 'dev'
+ - tox ; extra == 'dev'
+ - trio ; extra == 'dev'
+ - trio ; python_full_version >= '3.7' and extra == 'dev'
+ - trio-typing ; python_full_version >= '3.7' and extra == 'dev'
+ - twine ; extra == 'dev'
+ - twisted ; extra == 'dev'
+ - validate-pyproject[all] ; extra == 'dev'
+ requires_python: '>=3.8'
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a
md5: 6b6ece66ebcae2d5f326c77ef2c5a066
@@ -9308,6 +9492,34 @@ packages:
- pkg:pypi/pygments?source=hash-mapping
size: 889287
timestamp: 1750615908735
+- pypi: https://files.pythonhosted.org/packages/36/f7/cf8bec9024625947e1a71441906f60a5fa6f9e4c441c4428037e73b1fcc8/pyogrio-0.12.1-cp312-cp312-manylinux_2_28_x86_64.whl
+ name: pyogrio
+ version: 0.12.1
+ sha256: 8b65be8c4258b27cc8f919b21929cecdadda4c353e3637fa30850339ef4d15c5
+ requires_dist:
+ - certifi
+ - numpy
+ - packaging
+ - cython>=3.1 ; extra == 'dev'
+ - pytest ; extra == 'test'
+ - pytest-cov ; extra == 'test'
+ - pytest-benchmark ; extra == 'benchmark'
+ - geopandas ; extra == 'geopandas'
+ requires_python: '>=3.10'
+- pypi: https://files.pythonhosted.org/packages/ad/e0/656b6536549d41b5aec57e0deca1f269b4f17532f0636836f587e581603a/pyogrio-0.12.1-cp312-cp312-macosx_12_0_arm64.whl
+ name: pyogrio
+ version: 0.12.1
+ sha256: 7a0d5ca39184030aec4cde30f4258f75b227a854530d2659babc8189d76e657d
+ requires_dist:
+ - certifi
+ - numpy
+ - packaging
+ - cython>=3.1 ; extra == 'dev'
+ - pytest ; extra == 'test'
+ - pytest-cov ; extra == 'test'
+ - pytest-benchmark ; extra == 'benchmark'
+ - geopandas ; extra == 'geopandas'
+ requires_python: '>=3.10'
- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
sha256: afe32182b1090911b64ac0f29eb47e03a015d142833d8a917defd65d91c99b74
md5: aa0028616c0750c773698fdc254b2b8d
@@ -9419,6 +9631,29 @@ packages:
- setuptools ; extra == 'dev'
- xmlschema ; extra == 'dev'
requires_python: '>=3.9'
+- pypi: https://files.pythonhosted.org/packages/98/1c/b00940ab9eb8ede7897443b771987f2f4a76f06be02f1b3f01eb7567e24a/pytest_base_url-2.1.0-py3-none-any.whl
+ name: pytest-base-url
+ version: 2.1.0
+ sha256: 3ad15611778764d451927b2a53240c1a7a591b521ea44cebfe45849d2d2812e6
+ requires_dist:
+ - pytest>=7.0.0
+ - requests>=2.9
+ - black>=22.1.0 ; extra == 'test'
+ - flake8>=4.0.1 ; extra == 'test'
+ - pre-commit>=2.17.0 ; extra == 'test'
+ - pytest-localserver>=0.7.1 ; extra == 'test'
+ - tox>=3.24.5 ; extra == 'test'
+ requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/76/61/4d333d8354ea2bea2c2f01bad0a4aa3c1262de20e1241f78e73360e9b620/pytest_playwright-0.7.2-py3-none-any.whl
+ name: pytest-playwright
+ version: 0.7.2
+ sha256: 8084e015b2b3ecff483c2160f1c8219b38b66c0d4578b23c0f700d1b0240ea38
+ requires_dist:
+ - playwright>=1.18
+ - pytest>=6.2.4,<10.0.0
+ - pytest-base-url>=1.0.0,<3.0.0
+ - python-slugify>=6.0.0,<9.0.0
+ requires_python: '>=3.10'
- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.11-h9e4cc4f_0_cpython.conda
sha256: 6cca004806ceceea9585d4d655059e951152fc774a471593d4f5138e6a54c81d
md5: 94206474a5608243a10c92cefbe0908f
@@ -9519,6 +9754,14 @@ packages:
- mkdocs-literate-nav ; extra == 'dev'
- mike ; extra == 'dev'
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl
+ name: python-slugify
+ version: 8.0.4
+ sha256: 276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8
+ requires_dist:
+ - text-unidecode>=1.3
+ - unidecode>=1.1.1 ; extra == 'unidecode'
+ requires_python: '>=3.7'
- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda
sha256: e8392a8044d56ad017c08fec2b0eb10ae3d1235ac967d0aab8bd7b41c4a5eaf0
md5: 88476ae6ebd24f39261e0854ac244f33
@@ -10275,6 +10518,10 @@ packages:
- mypy~=1.6 ; extra == 'typing'
- traitlets>=5.11.1 ; extra == 'typing'
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl
+ name: text-unidecode
+ version: '1.3'
+ sha256: 1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8
- pypi: https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl
name: tinycss2
version: 1.4.0
diff --git a/pyproject.toml b/pyproject.toml
index 9917360..5bbe303 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -20,6 +20,11 @@ dependencies = [
"rioxarray",
"matplotlib",
"pydantic-settings",
+ # V2: point cloud support
+ "geopandas",
+ "pyarrow",
+ "duckdb",
+ "shapely>=2",
]
classifiers = [
@@ -50,7 +55,8 @@ widget = [
"ipyleaflet",
"bqplot>=0.12",
]
-test = ["pytest", "httpx", "ipython", "types-python-dateutil"]
+gps = ["geepers"]
+test = ["pytest", "httpx", "ipython", "types-python-dateutil", "pytest-playwright"]
# [project.urls]
# Homepage = "https://github.com/opera-adt/bowser"
@@ -92,7 +98,8 @@ python-dateutil = ">=2.9.0.post0,<3"
default = { solve-group = "default" }
widget = { features = ["widget"], solve-group = "default" }
test = { features = ["test"], solve-group = "test" }
-all = { features = ["widget", "test"], solve-group = "all" }
+gps = { features = ["gps"], solve-group = "gps" }
+all = { features = ["widget", "gps", "test"], solve-group = "all" }
[tool.pixi.tasks]
@@ -144,4 +151,8 @@ plugins = ["pydantic.mypy"]
[tool.pytest.ini_options]
addopts = "-W ignore::PendingDeprecationWarning "
-filterwarnings = ["error"]
+filterwarnings = [
+ "error",
+ "default::DeprecationWarning:shapely",
+ "default::DeprecationWarning:geopandas",
+]
diff --git a/src/bowser/_convert_dolphin.py b/src/bowser/_convert_dolphin.py
new file mode 100644
index 0000000..bcdfd59
--- /dev/null
+++ b/src/bowser/_convert_dolphin.py
@@ -0,0 +1,488 @@
+"""Convert dolphin raster outputs to GeoParquet point cloud format.
+
+Reads a dolphin workflow directory, masks by quality metrics, and exports
+surviving pixels as two GeoParquet files (points + timeseries) plus a
+bowser_manifest.json.
+"""
+
+from __future__ import annotations
+
+import concurrent.futures
+from datetime import datetime
+from glob import glob
+from pathlib import Path
+from typing import TYPE_CHECKING
+
+import numpy as np
+import pyarrow as pa
+import pyarrow.parquet as pq
+import rasterio as rio
+import rasterio.transform
+from pyproj import Transformer
+
+if TYPE_CHECKING:
+ from rasterio.crs import CRS
+ from rasterio.transform import Affine
+
+from .manifest import DatasetManifest, LosConfig, LosVectorConstant, PointLayerConfig
+
+
+def _find_dolphin_files(work_dir: str) -> dict[str, list[str]]:
+ """Discover dolphin output files in a workflow directory.
+
+ Parameters
+ ----------
+ work_dir : str
+ Path to dolphin workflow directory.
+
+ Returns
+ -------
+ dict[str, list[str]]
+ Mapping of dataset name to list of file paths.
+ """
+ wd = work_dir.rstrip("/")
+ candidates = {
+ # LOS vector files
+ "los_enu_json": glob(f"{wd}/**/los_enu.json", recursive=True),
+ "los_enu_tif": glob(f"{wd}/**/los_enu*.tif", recursive=True),
+ # Timeseries and quality
+ "timeseries": sorted(glob(f"{wd}/timeseries/2*[0-9].tif")),
+ "velocity": glob(f"{wd}/timeseries/velocity.tif"),
+ "velocity_stderr": glob(f"{wd}/timeseries/velocity_stderr.tif"),
+ "temporal_coherence": sorted(
+ glob(f"{wd}/interferograms/temporal_coherence_[0-9]*.tif")
+ ),
+ "temporal_coherence_average": glob(
+ f"{wd}/interferograms/temporal_coherence_average*.tif"
+ ),
+ "amplitude_dispersion": glob(f"{wd}/interferograms/amp_dispersion_looked*.tif"),
+ "phase_similarity": sorted(glob(f"{wd}/interferograms/similarity_[0-9]*.tif")),
+ "ps_mask": glob(f"{wd}/interferograms/ps_mask_looked*.tif"),
+ }
+ return {k: v for k, v in candidates.items() if v}
+
+
+def _detect_los_config(
+ dolphin_files: dict[str, list[str]],
+) -> tuple[str, dict] | None:
+ """Auto-detect LOS vector from dolphin output files.
+
+ Returns
+ -------
+ tuple or None
+ (type, config_dict) for the manifest LOS config, or None if not found.
+ """
+ import json as _json
+
+ # Prefer JSON constant (simpler, smaller)
+ if "los_enu_json" in dolphin_files and dolphin_files["los_enu_json"]:
+ json_path = dolphin_files["los_enu_json"][0]
+ data = _json.loads(Path(json_path).read_text())
+ # Standard format: {"los_enu_ground_to_satellite": {e, n, u}}
+ if "los_enu_ground_to_satellite" in data:
+ vec = data["los_enu_ground_to_satellite"]
+ return (
+ "constant",
+ {"east": vec["east"], "north": vec["north"], "up": vec["up"]},
+ )
+ # Also handle flat format: {"east": ..., "north": ..., "up": ...}
+ if "east" in data and "north" in data and "up" in data:
+ return (
+ "constant",
+ {"east": data["east"], "north": data["north"], "up": data["up"]},
+ )
+
+ # Fall back to GeoTIFF (spatially varying)
+ if "los_enu_tif" in dolphin_files and dolphin_files["los_enu_tif"]:
+ tif_path = dolphin_files["los_enu_tif"][0]
+ return ("geotiff", {"source": str(Path(tif_path).resolve())})
+
+ return None
+
+
+def _read_single_band(path: str) -> tuple[np.ndarray, Affine, CRS]:
+ """Read a single-band raster, returning data + georeference info."""
+ with rio.open(path) as src:
+ data = src.read(1)
+ return data, src.transform, src.crs
+
+
+def _build_mask(
+ dolphin_files: dict[str, list[str]],
+ coherence_threshold: float,
+ amplitude_dispersion_threshold: float | None,
+) -> tuple[np.ndarray, Affine, CRS]:
+ """Build a boolean mask of pixels that pass quality thresholds.
+
+ Parameters
+ ----------
+ dolphin_files : dict
+ Output of `_find_dolphin_files`.
+ coherence_threshold : float
+ Minimum temporal coherence to keep a pixel.
+ amplitude_dispersion_threshold : float or None
+ Maximum amplitude dispersion to keep a pixel (lower = more stable).
+
+ Returns
+ -------
+ mask : np.ndarray
+ Boolean array, True = keep this pixel.
+ transform : Affine
+ Georeferencing transform.
+ crs : CRS
+ Coordinate reference system.
+ """
+ # Use temporal coherence (average if available, else last single-date)
+ if "temporal_coherence_average" in dolphin_files:
+ coh_path = dolphin_files["temporal_coherence_average"][0]
+ elif "temporal_coherence" in dolphin_files:
+ coh_path = dolphin_files["temporal_coherence"][-1]
+ else:
+ msg = (
+ "No temporal coherence file found. "
+ "Cannot build quality mask without coherence data."
+ )
+ raise FileNotFoundError(msg)
+
+ coh_data, transform, crs = _read_single_band(coh_path)
+ mask = (coh_data > coherence_threshold) & np.isfinite(coh_data)
+
+ if (
+ amplitude_dispersion_threshold is not None
+ and "amplitude_dispersion" in dolphin_files
+ ):
+ amp_data, _, _ = _read_single_band(dolphin_files["amplitude_dispersion"][0])
+ amp_mask = (amp_data < amplitude_dispersion_threshold) & (amp_data > 0)
+ mask &= amp_mask
+
+ return mask, transform, crs
+
+
+def _pixel_coords_to_lonlat(
+ rows: np.ndarray,
+ cols: np.ndarray,
+ transform: rio.transform.Affine,
+ crs: rio.crs.CRS,
+) -> tuple[np.ndarray, np.ndarray]:
+ """Convert pixel row/col indices to WGS84 lon/lat arrays."""
+ # Pixel center coordinates in the raster's CRS
+ xs, ys = rio.transform.xy(transform, rows, cols)
+ xs = np.asarray(xs, dtype=np.float64)
+ ys = np.asarray(ys, dtype=np.float64)
+
+ if crs.to_epsg() == 4326:
+ return xs, ys
+
+ transformer = Transformer.from_crs(crs, "EPSG:4326", always_xy=True)
+ lons, lats = transformer.transform(xs, ys)
+ return np.asarray(lons), np.asarray(lats)
+
+
+def _read_static_attribute(path: str, mask: np.ndarray) -> np.ndarray:
+ """Read a single-band raster and extract values at masked pixel locations."""
+ data, _, _ = _read_single_band(path)
+ return data[mask].astype(np.float32)
+
+
+def _parse_dates_from_filenames(file_list: list[str]) -> list[datetime]:
+ """Extract dates from dolphin timeseries filenames like '20210606.tif'."""
+ from opera_utils import get_dates
+
+ dates = []
+ for f in file_list:
+ d = get_dates(f)
+ assert d, f"Could not parse date from {f}"
+ # For timeseries files, take the last date (secondary)
+ dates.append(d[-1])
+ return dates
+
+
+def convert_dolphin(
+ work_dir: str,
+ output_dir: str,
+ coherence_threshold: float = 0.5,
+ amplitude_dispersion_threshold: float | None = None,
+) -> Path:
+ """Convert a dolphin workflow directory to GeoParquet point cloud.
+
+ Parameters
+ ----------
+ work_dir : str
+ Path to dolphin workflow directory.
+ output_dir : str
+ Directory to write output files.
+ coherence_threshold : float
+ Minimum temporal coherence to include a pixel. Default 0.5.
+ amplitude_dispersion_threshold : float or None
+ Maximum amplitude dispersion to include a pixel. None to skip.
+
+ Returns
+ -------
+ Path
+ Path to the generated bowser_manifest.json.
+ """
+ import geopandas as gpd
+
+ output_path = Path(output_dir)
+ output_path.mkdir(parents=True, exist_ok=True)
+
+ print(f"Scanning dolphin outputs in {work_dir}...")
+ dolphin_files = _find_dolphin_files(work_dir)
+
+ assert (
+ "timeseries" in dolphin_files
+ ), f"No timeseries files found in {work_dir}/timeseries/"
+
+ # Build quality mask
+ print(f"Building quality mask (coherence > {coherence_threshold})...")
+ mask, transform, crs = _build_mask(
+ dolphin_files, coherence_threshold, amplitude_dispersion_threshold
+ )
+ n_points = int(mask.sum())
+ print(f" {n_points:,} pixels pass quality threshold")
+
+ if n_points == 0:
+ print("No pixels pass quality threshold. Writing empty outputs.")
+ # Write empty GeoParquet files
+ import geopandas as gpd
+
+ empty_gdf = gpd.GeoDataFrame(
+ {"point_id": np.array([], dtype=np.uint64)},
+ geometry=[],
+ crs="EPSG:4326",
+ )
+ points_path = output_path / "points.parquet"
+ empty_gdf.to_parquet(points_path)
+
+ ts_table = pa.table(
+ {
+ "point_id": pa.array([], type=pa.uint64()),
+ "date": pa.array([], type=pa.date32()),
+ "displacement": pa.array([], type=pa.float32()),
+ }
+ )
+ ts_path = output_path / "timeseries.parquet"
+ pq.write_table(ts_table, ts_path)
+
+ manifest = DatasetManifest(
+ name=Path(work_dir).name,
+ layers={
+ "ps_points": PointLayerConfig(
+ points_source=str(points_path),
+ timeseries_source=str(ts_path),
+ ),
+ },
+ )
+ manifest_path = output_path / "bowser_manifest.json"
+ manifest.save(manifest_path)
+ return manifest_path
+
+ # Get pixel coordinates of surviving points
+ rows, cols = np.where(mask)
+ lons, lats = _pixel_coords_to_lonlat(rows, cols, transform, crs)
+
+ # Assign point IDs
+ point_ids = np.arange(n_points, dtype=np.uint64)
+
+ # Build points table — read static attributes in parallel
+ print("Reading static attributes...")
+ points_data: dict[str, np.ndarray] = {
+ "point_id": point_ids,
+ }
+ col_metadata: dict[str, dict[str, str]] = {
+ "point_id": {},
+ }
+
+ attr_reads: list[tuple[str, str, dict[str, str]]] = []
+ if "velocity" in dolphin_files:
+ attr_reads.append(
+ ("velocity", dolphin_files["velocity"][0], {"units": "mm/yr"})
+ )
+ if "velocity_stderr" in dolphin_files:
+ attr_reads.append(
+ ("velocity_std", dolphin_files["velocity_stderr"][0], {"units": "mm/yr"})
+ )
+ if "temporal_coherence_average" in dolphin_files:
+ attr_reads.append(
+ ("temporal_coherence", dolphin_files["temporal_coherence_average"][0], {})
+ )
+ elif "temporal_coherence" in dolphin_files:
+ attr_reads.append(
+ ("temporal_coherence", dolphin_files["temporal_coherence"][-1], {})
+ )
+ if "amplitude_dispersion" in dolphin_files:
+ attr_reads.append(
+ ("amplitude_dispersion", dolphin_files["amplitude_dispersion"][0], {})
+ )
+
+ with concurrent.futures.ThreadPoolExecutor() as pool:
+ futures = {
+ pool.submit(_read_static_attribute, path, mask): (name, md)
+ for name, path, md in attr_reads
+ }
+ for future in concurrent.futures.as_completed(futures):
+ name, md = futures[future]
+ points_data[name] = future.result()
+ col_metadata[name] = md
+
+ # Create GeoDataFrame using vectorized geometry construction
+ geometry = gpd.points_from_xy(lons, lats, crs="EPSG:4326")
+ gdf = gpd.GeoDataFrame(points_data, geometry=geometry, crs="EPSG:4326")
+
+ # Sort by spatial locality for better bbox query performance
+ # Use a simple Morton/Z-order approximation: interleave quantized lon/lat bits
+ gdf = gdf.sort_values(
+ by=["point_id"],
+ key=lambda _: _morton_key(lons, lats),
+ )
+
+ points_path = output_path / "points.parquet"
+ print(f"Writing {points_path} ({n_points:,} points)...")
+ gdf.to_parquet(points_path, row_group_size=100_000)
+
+ # Build time series table
+ ts_files = dolphin_files["timeseries"]
+ dates = _parse_dates_from_filenames(ts_files)
+ n_dates = len(dates)
+ print(f"Reading displacement time series ({n_dates} dates)...")
+
+ # Pre-allocate arrays for the long-form table
+ total_rows = n_points * n_dates
+ ts_point_ids = np.repeat(point_ids, n_dates)
+ date_list = [d.date() for d in dates]
+ ts_dates = date_list * n_points
+ ts_displacement = np.empty(total_rows, dtype=np.float32)
+
+ # Read each date's raster and extract values at masked pixels (parallel I/O)
+ def _read_masked(ts_file: str) -> np.ndarray:
+ data, _, _ = _read_single_band(ts_file)
+ return data[mask].astype(np.float32)
+
+ with concurrent.futures.ThreadPoolExecutor() as pool:
+ future_to_idx: dict[concurrent.futures.Future[np.ndarray], int] = {
+ pool.submit(_read_masked, f): i for i, f in enumerate(ts_files)
+ }
+ for future in concurrent.futures.as_completed(future_to_idx):
+ idx = future_to_idx[future]
+ ts_displacement[idx::n_dates] = future.result()
+
+ # Write timeseries as Parquet with row groups organized by point_id
+ # Each row group holds `points_per_group * n_dates` rows
+ points_per_group = max(1, 500)
+ row_group_size = points_per_group * n_dates
+
+ ts_table = pa.table(
+ {
+ "point_id": pa.array(ts_point_ids, type=pa.uint64()),
+ "date": pa.array(ts_dates, type=pa.date32()),
+ "displacement": pa.array(ts_displacement, type=pa.float32()),
+ }
+ )
+
+ ts_path = output_path / "timeseries.parquet"
+ print(f"Writing {ts_path} ({total_rows:,} rows, ~{row_group_size:,} rows/group)...")
+
+ # Add column metadata for units
+ ts_col_metadata = {"displacement": {"units": "mm"}}
+ ts_schema = ts_table.schema
+ new_fields = []
+ for field in ts_schema:
+ if field.name in ts_col_metadata:
+ field_md: dict = {
+ k.encode(): v.encode() for k, v in ts_col_metadata[field.name].items()
+ }
+ new_fields.append(field.with_metadata(field_md))
+ else:
+ new_fields.append(field)
+ ts_table = ts_table.cast(pa.schema(new_fields))
+
+ pq.write_table(ts_table, ts_path, row_group_size=row_group_size)
+
+ # Compute bounds
+ bounds = [
+ float(lons.min()),
+ float(lats.min()),
+ float(lons.max()),
+ float(lats.max()),
+ ]
+
+ # Detect LOS vector for GPS overlay
+ los_config = None
+ los_result = _detect_los_config(dolphin_files)
+ if los_result:
+ los_type, los_data = los_result
+ if los_type == "constant":
+ los_config = LosConfig(
+ type="constant",
+ los_enu=LosVectorConstant(**los_data),
+ )
+ e, n, u = los_data["east"], los_data["north"], los_data["up"]
+ print(f" LOS vector: E={e:.3f}, N={n:.3f}, U={u:.3f}")
+ else:
+ los_config = LosConfig(type="geotiff", source=los_data["source"])
+ print(f" LOS GeoTIFF: {los_data['source']}")
+ else:
+ print(" No LOS vector found (GPS overlay will not be available)")
+
+ # Generate manifest
+ manifest = DatasetManifest(
+ name=Path(work_dir).name,
+ description=f"Dolphin output converted from {work_dir}",
+ layers={
+ "ps_points": PointLayerConfig(
+ points_source=str(points_path),
+ timeseries_source=str(ts_path),
+ default_color_by="velocity",
+ default_colormap="RdBu_r",
+ ),
+ },
+ bounds=bounds,
+ los=los_config,
+ )
+
+ manifest_path = output_path / "bowser_manifest.json"
+ manifest.save(manifest_path)
+ print(f"Manifest written to {manifest_path}")
+
+ return manifest_path
+
+
+def _morton_key(lons: np.ndarray, lats: np.ndarray, bits: int = 16) -> np.ndarray:
+ """Compute approximate Morton/Z-order curve index for spatial sorting.
+
+ Interleaves quantized longitude and latitude bits to produce a sort key
+ that clusters spatially nearby points together.
+
+ Parameters
+ ----------
+ lons, lats : np.ndarray
+ Coordinate arrays.
+ bits : int
+ Quantization precision.
+
+ Returns
+ -------
+ np.ndarray
+ Integer sort keys (uint64).
+ """
+ # Normalize to [0, 2^bits)
+ lon_min, lon_max = lons.min(), lons.max()
+ lat_min, lat_max = lats.min(), lats.max()
+ lon_range = lon_max - lon_min if lon_max > lon_min else 1.0
+ lat_range = lat_max - lat_min if lat_max > lat_min else 1.0
+ max_val = (1 << bits) - 1
+
+ qlon = ((lons - lon_min) / lon_range * max_val).astype(np.uint64)
+ qlat = ((lats - lat_min) / lat_range * max_val).astype(np.uint64)
+
+ # Vectorized bit interleave using part1by1 (spread bits of x)
+ def _part1by1(x: np.ndarray) -> np.ndarray:
+ """Spread the lower 16 bits of x: insert a 0 bit between each."""
+ x = x & np.uint64(0x0000FFFF)
+ x = (x | (x << np.uint64(8))) & np.uint64(0x00FF00FF)
+ x = (x | (x << np.uint64(4))) & np.uint64(0x0F0F0F0F)
+ x = (x | (x << np.uint64(2))) & np.uint64(0x33333333)
+ x = (x | (x << np.uint64(1))) & np.uint64(0x55555555)
+ return x
+
+ return _part1by1(qlon) | (_part1by1(qlat) << np.uint64(1))
diff --git a/src/bowser/_convert_wide_parquet.py b/src/bowser/_convert_wide_parquet.py
new file mode 100644
index 0000000..ccfed2c
--- /dev/null
+++ b/src/bowser/_convert_wide_parquet.py
@@ -0,0 +1,246 @@
+"""Convert wide-form point cloud parquet to Bowser V2 two-table format.
+
+Handles parquet files where displacement time series are stored as
+wide-form date columns (e.g., from sarlet's export_points_to_parquet).
+"""
+
+from __future__ import annotations
+
+import re
+from datetime import datetime
+from pathlib import Path
+
+import numpy as np
+import pyarrow as pa
+import pyarrow.parquet as pq
+
+from .manifest import DatasetManifest, PointLayerConfig
+
+# Pattern for date-pair columns like "20240626_20240629"
+_DATE_PAIR_RE = re.compile(r"^(\d{8})_(\d{8})$")
+# Pattern for single-date columns like "20240626"
+_SINGLE_DATE_RE = re.compile(r"^(\d{8})$")
+
+
+def _identify_date_columns(
+ columns: list[str],
+) -> tuple[list[str], list[tuple[datetime, datetime | None]]]:
+ """Identify which columns are date/date-pair displacement values.
+
+ Parameters
+ ----------
+ columns : list[str]
+ All column names in the parquet file.
+
+ Returns
+ -------
+ date_cols : list[str]
+ Column names that match date patterns.
+ parsed_dates : list[tuple[datetime, datetime | None]]
+ Parsed (reference_date, secondary_date) pairs.
+ For single-date columns, secondary_date is None.
+ """
+ date_cols: list[str] = []
+ parsed_dates: list[tuple[datetime, datetime | None]] = []
+
+ for col in columns:
+ m = _DATE_PAIR_RE.match(col)
+ if m:
+ ref = datetime.strptime(m.group(1), "%Y%m%d")
+ sec = datetime.strptime(m.group(2), "%Y%m%d")
+ date_cols.append(col)
+ parsed_dates.append((ref, sec))
+ continue
+
+ m = _SINGLE_DATE_RE.match(col)
+ if m:
+ d = datetime.strptime(m.group(1), "%Y%m%d")
+ date_cols.append(col)
+ parsed_dates.append((d, None))
+
+ return date_cols, parsed_dates
+
+
+# Columns that are NOT date columns and NOT geometry/coordinate columns
+# These are static point attributes to keep in the points table
+_COORDINATE_COLS = {"longitude", "latitude", "geometry", "lon", "lat"}
+
+
+def convert_wide_parquet(
+ input_file: str,
+ output_dir: str,
+ layer_name: str = "ps_points",
+) -> Path:
+ """Convert a wide-form point cloud parquet to Bowser V2 two-table format.
+
+ Parameters
+ ----------
+ input_file : str
+ Path to the wide-form GeoParquet file.
+ output_dir : str
+ Directory to write output files.
+ layer_name : str
+ Name for the point layer in the manifest.
+
+ Returns
+ -------
+ Path
+ Path to the generated bowser_manifest.json.
+ """
+ output_path = Path(output_dir)
+ output_path.mkdir(parents=True, exist_ok=True)
+
+ print(f"Reading {input_file}...")
+ table = pq.read_table(input_file)
+ all_columns = table.column_names
+ n_points = len(table)
+ print(f" {n_points:,} points, {len(all_columns)} columns")
+
+ # Identify date columns vs static attribute columns
+ date_cols, parsed_dates = _identify_date_columns(all_columns)
+ assert date_cols, f"No date columns found in {all_columns}"
+
+ n_dates = len(date_cols)
+ print(f" {n_dates} date columns: {date_cols[0]} ... {date_cols[-1]}")
+
+ # Check if all date pairs share a reference date (single-reference time series)
+ ref_dates = {d[0] for d in parsed_dates}
+ if len(ref_dates) == 1:
+ ref_date = ref_dates.pop()
+ print(f" Single reference date: {ref_date.strftime('%Y-%m-%d')}")
+ # For display, use secondary dates
+ display_dates = []
+ for _, sec in parsed_dates:
+ display_dates.append(sec if sec is not None else _)
+ else:
+ ref_date = None
+ # Use the first date in each pair
+ display_dates = [d[0] for d in parsed_dates]
+
+ # Separate static attributes from date columns
+ static_cols = [
+ c for c in all_columns if c not in date_cols and c not in _COORDINATE_COLS
+ ]
+ print(f" Static attributes: {static_cols}")
+
+ # --- Build points table ---
+ # Add point_id
+ point_ids = np.arange(n_points, dtype=np.uint64)
+
+ # Extract geometry info from the GeoParquet
+ # Try to get lon/lat from explicit columns first, then from geometry
+ if "longitude" in all_columns and "latitude" in all_columns:
+ lons = table.column("longitude").to_numpy()
+ lats = table.column("latitude").to_numpy()
+ elif "lon" in all_columns and "lat" in all_columns:
+ lons = table.column("lon").to_numpy()
+ lats = table.column("lat").to_numpy()
+ else:
+ # Extract from WKB geometry column
+ import geopandas as gpd
+
+ gdf = gpd.read_parquet(input_file, columns=["geometry"])
+ lons = gdf.geometry.x.to_numpy()
+ lats = gdf.geometry.y.to_numpy()
+
+ # Build points Arrow table
+ points_columns = {
+ "point_id": pa.array(point_ids, type=pa.uint64()),
+ }
+ # Add static attributes, upcasting float16 to float32 for DuckDB compatibility
+ for col in static_cols:
+ arr = table.column(col)
+ if pa.types.is_float16(arr.type):
+ arr = arr.cast(pa.float32())
+ points_columns[col] = arr
+
+ # Add geometry as lon/lat (DuckDB will use these for spatial queries)
+ points_columns["longitude"] = pa.array(lons, type=pa.float64())
+ points_columns["latitude"] = pa.array(lats, type=pa.float64())
+
+ # Also preserve the WKB geometry column if present
+ if "geometry" in all_columns:
+ points_columns["geometry"] = table.column("geometry")
+
+ points_table = pa.table(points_columns)
+ points_path = output_path / "points.parquet"
+
+ # Preserve GeoParquet metadata if present
+ geo_meta = table.schema.metadata.get(b"geo") if table.schema.metadata else None
+ if geo_meta:
+ existing_meta = points_table.schema.metadata or {}
+ points_table = points_table.replace_schema_metadata(
+ {**existing_meta, b"geo": geo_meta}
+ )
+
+ print(
+ f"Writing {points_path} ({n_points:,} points, {len(static_cols)} attributes)..."
+ )
+ pq.write_table(points_table, points_path, row_group_size=100_000)
+
+ # --- Build time series table ---
+ # Melt wide format to long format: (point_id, date, displacement)
+ print(f"Melting {n_dates} date columns to long format...")
+
+ total_rows = n_points * n_dates
+ ts_point_ids = np.repeat(point_ids, n_dates)
+ ts_dates = [d.date() for d in display_dates] * n_points
+ ts_displacement = np.empty(total_rows, dtype=np.float32)
+
+ for i, col_name in enumerate(date_cols):
+ arr = table.column(col_name)
+ # float16 → float32 for DuckDB compatibility
+ if pa.types.is_float16(arr.type):
+ arr = arr.cast(pa.float32())
+ col_data = arr.to_numpy()
+ ts_displacement[i::n_dates] = col_data
+
+ # Row group size: ~500 points worth of dates per group
+ points_per_group = 500
+ row_group_size = points_per_group * n_dates
+
+ ts_table = pa.table(
+ {
+ "point_id": pa.array(ts_point_ids, type=pa.uint64()),
+ "date": pa.array(ts_dates, type=pa.date32()),
+ "displacement": pa.array(ts_displacement, type=pa.float32()),
+ }
+ )
+
+ ts_path = output_path / "timeseries.parquet"
+ print(
+ f"Writing {ts_path} ({total_rows:,} rows, "
+ f"~{row_group_size:,} rows/group)..."
+ )
+ pq.write_table(ts_table, ts_path, row_group_size=row_group_size)
+
+ # --- Build manifest ---
+ bounds = [
+ float(lons.min()),
+ float(lats.min()),
+ float(lons.max()),
+ float(lats.max()),
+ ]
+
+ default_color_by = "velocity" if "velocity" in static_cols else static_cols[0]
+
+ manifest = DatasetManifest(
+ name=Path(input_file).stem,
+ description=f"Converted from {input_file}",
+ reference_date=(ref_date.strftime("%Y-%m-%d") if ref_date else None),
+ layers={
+ layer_name: PointLayerConfig(
+ points_source=str(points_path.resolve()),
+ timeseries_source=str(ts_path.resolve()),
+ default_color_by=default_color_by,
+ default_colormap="RdBu_r",
+ ),
+ },
+ bounds=bounds,
+ )
+
+ manifest_path = output_path / "bowser_manifest.json"
+ manifest.save(manifest_path)
+ print(f"Manifest written to {manifest_path}")
+
+ return manifest_path
diff --git a/src/bowser/_generate_testdata.py b/src/bowser/_generate_testdata.py
new file mode 100644
index 0000000..9843f63
--- /dev/null
+++ b/src/bowser/_generate_testdata.py
@@ -0,0 +1,171 @@
+"""Generate synthetic GeoParquet test data for Bowser V2.
+
+Creates realistic-looking point cloud datasets with clustered spatial
+patterns and linear velocity trends, suitable for both automated testing
+and manual UI exploration.
+"""
+
+from __future__ import annotations
+
+from datetime import date, timedelta
+from pathlib import Path
+
+import geopandas as gpd
+import numpy as np
+import pyarrow as pa
+import pyarrow.parquet as pq
+from shapely.geometry import Point
+
+from .manifest import DatasetManifest, PointLayerConfig
+
+
+def generate_testdata(
+ output_dir: str | Path,
+ n_points: int = 50_000,
+ n_dates: int = 20,
+ center_lon: float = -99.13,
+ center_lat: float = 19.43,
+ spread_deg: float = 0.15,
+ layer_name: str = "synthetic",
+ seed: int = 42,
+) -> Path:
+ """Generate synthetic point cloud + timeseries GeoParquet files.
+
+ Parameters
+ ----------
+ output_dir
+ Directory to write output files.
+ n_points
+ Number of measurement points to generate.
+ n_dates
+ Number of SAR acquisition dates.
+ center_lon, center_lat
+ Center of the synthetic AOI.
+ spread_deg
+ Approximate radius of the AOI in degrees.
+ layer_name
+ Name for the point layer in the manifest.
+ seed
+ Random seed for reproducibility.
+
+ Returns
+ -------
+ Path
+ Path to the generated bowser_manifest.json.
+ """
+ rng = np.random.default_rng(seed)
+ out = Path(output_dir)
+ out.mkdir(parents=True, exist_ok=True)
+
+ print(f"Generating {n_points:,} points x {n_dates} dates...")
+
+ # --- Spatial distribution: clustered, not uniform random ---
+ # Create 5-10 clusters to simulate urban areas / subsidence bowls
+ n_clusters = rng.integers(5, 11)
+ cluster_centers = rng.normal(
+ loc=[[center_lon, center_lat]],
+ scale=spread_deg * 0.5,
+ size=(n_clusters, 2),
+ )
+ cluster_sizes = rng.dirichlet(np.ones(n_clusters)) * n_points
+ cluster_sizes = cluster_sizes.astype(int)
+ cluster_sizes[-1] = n_points - cluster_sizes[:-1].sum() # fix rounding
+
+ lons = np.empty(n_points, dtype=np.float64)
+ lats = np.empty(n_points, dtype=np.float64)
+ cluster_ids = np.empty(n_points, dtype=np.int32)
+ idx = 0
+ for c_idx, (center, size) in enumerate(zip(cluster_centers, cluster_sizes)):
+ cluster_spread = rng.uniform(0.005, 0.03)
+ lons[idx : idx + size] = rng.normal(center[0], cluster_spread, size)
+ lats[idx : idx + size] = rng.normal(center[1], cluster_spread, size)
+ cluster_ids[idx : idx + size] = c_idx
+ idx += size
+
+ # --- Static attributes ---
+ # Velocity: clusters have different mean velocities (some subsiding)
+ cluster_velocities = rng.normal(0, 8, n_clusters)
+ # Make one cluster a clear subsidence bowl
+ cluster_velocities[0] = rng.uniform(-25, -15)
+ velocity = np.empty(n_points, dtype=np.float32)
+ for c_idx in range(n_clusters):
+ mask = cluster_ids == c_idx
+ velocity[mask] = rng.normal(cluster_velocities[c_idx], 2.0, mask.sum()).astype(
+ np.float32
+ )
+
+ temporal_coherence = rng.uniform(0.3, 1.0, n_points).astype(np.float32)
+ amplitude_dispersion = rng.uniform(0.05, 0.5, n_points).astype(np.float32)
+
+ # --- Points GeoParquet ---
+ geometry = [Point(lon, lat) for lon, lat in zip(lons, lats)]
+ gdf = gpd.GeoDataFrame(
+ {
+ "point_id": np.arange(n_points, dtype=np.uint64),
+ "velocity": velocity,
+ "temporal_coherence": temporal_coherence,
+ "amplitude_dispersion": amplitude_dispersion,
+ "longitude": lons.astype(np.float64),
+ "latitude": lats.astype(np.float64),
+ },
+ geometry=geometry,
+ crs="EPSG:4326",
+ )
+
+ points_path = out / "points.parquet"
+ gdf.to_parquet(points_path, row_group_size=min(100_000, n_points))
+ print(f" Wrote {points_path} ({n_points:,} points)")
+
+ # --- Timeseries ---
+ start_date = date(2020, 1, 1)
+ dates = [start_date + timedelta(days=i * 12) for i in range(n_dates)]
+ date_strings = [d.isoformat() for d in dates]
+
+ total_rows = n_points * n_dates
+ ts_point_ids = np.repeat(np.arange(n_points, dtype=np.uint64), n_dates)
+
+ # Compute displacement: linear velocity * time + noise
+ days_from_start = np.array([(d - start_date).days for d in dates], dtype=np.float32)
+ disp = np.outer(velocity / 365.25, days_from_start)
+ noise = rng.normal(0, 1.5, (n_points, n_dates)).astype(np.float32)
+ disp = (disp + noise).astype(np.float32).ravel()
+
+ ts_dates_repeated = np.tile(date_strings, n_points)
+
+ ts_table = pa.table(
+ {
+ "point_id": pa.array(ts_point_ids, type=pa.uint64()),
+ "date": pa.array(ts_dates_repeated, type=pa.string()),
+ "displacement": pa.array(disp, type=pa.float32()),
+ }
+ )
+
+ ts_path = out / "timeseries.parquet"
+ row_group_size = min(n_points, 500) * n_dates
+ pq.write_table(ts_table, ts_path, row_group_size=row_group_size)
+ print(f" Wrote {ts_path} ({total_rows:,} rows)")
+
+ # --- Manifest ---
+ manifest = DatasetManifest(
+ name=f"synthetic_{n_points // 1000}k",
+ description=f"Synthetic test data: {n_points:,} points, {n_dates} dates",
+ layers={
+ layer_name: PointLayerConfig(
+ points_source=str(points_path.resolve()),
+ timeseries_source=str(ts_path.resolve()),
+ default_color_by="velocity",
+ ),
+ },
+ bounds=[
+ float(lons.min()),
+ float(lats.min()),
+ float(lons.max()),
+ float(lats.max()),
+ ],
+ )
+
+ manifest_path = out / "bowser_manifest.json"
+ manifest.save(manifest_path)
+ print(f" Wrote {manifest_path}")
+ print(f"\nTo view:\n bowser run --manifest {manifest_path}")
+ return manifest_path
diff --git a/src/bowser/cli.py b/src/bowser/cli.py
index b5a8f0d..d95370f 100644
--- a/src/bowser/cli.py
+++ b/src/bowser/cli.py
@@ -23,6 +23,13 @@ def cli_app():
default="bowser_rasters.json",
help="Name of JSON file from `bowser set-data`.",
)
+@click.option(
+ "-m",
+ "--manifest",
+ "manifest_file",
+ default=None,
+ help="Path to bowser_manifest.json (V2 mode with point layer support).",
+)
@click.option(
"--port",
"-p",
@@ -72,9 +79,18 @@ def cli_app():
is_flag=True,
help="Don't use recommended mask for `displacement` ",
)
+@click.option(
+ "--los",
+ default=None,
+ help=(
+ "LOS vector for GPS overlay. Either a path to los_enu.json or inline JSON"
+ ' like \'{"east": 0.477, "north": -0.449, "up": 0.755}\''
+ ),
+)
def run(
stack_file,
rasters_file,
+ manifest_file,
port,
reload,
workers,
@@ -82,6 +98,7 @@ def run(
ignore_sidecar_files,
no_spatial_reference,
no_recommended_mask,
+ los,
):
"""Run the web server."""
import uvicorn
@@ -89,7 +106,11 @@ def run(
if port is None:
port = _find_available_port(8000)
_setup_gdal_env(ignore_sidecar_files)
- if stack_file:
+ if manifest_file:
+ os.environ["BOWSER_MANIFEST_FILE"] = manifest_file
+ if los:
+ os.environ["BOWSER_LOS_CONFIG"] = los
+ elif stack_file:
os.environ["BOWSER_STACK_DATA_FILE"] = stack_file
else:
os.environ["BOWSER_DATASET_CONFIG_FILE"] = rasters_file
@@ -263,21 +284,35 @@ def _glob(g):
dolphin_outputs = [
{
- "name": "time series",
+ "name": "Time series",
"file_list": _glob(f"{wd}/timeseries/2*[0-9].tif"),
"uses_spatial_ref": True,
"algorithm": Algorithm.SHIFT.value,
},
{
- "name": "velocity",
+ "name": "Velocity",
"file_list": [f"{wd}/timeseries/velocity.tif"],
"uses_spatial_ref": True,
"algorithm": Algorithm.SHIFT.value,
},
+ {
+ "name": "Velocity Std. Err.",
+ "file_list": [f"{wd}/timeseries/velocity_stderr.tif"],
+ },
+ {
+ "name": "Velocity Confidence Interval Margin",
+ "file_list": [f"{wd}/timeseries/velocity_ci_margin.tif"],
+ },
{
"name": "Filtered time series",
"file_list": _glob(f"{wd}/filtered_timeseries*/2*[0-9].tif"),
},
+ {
+ "name": "Filtered time series (deramped)",
+ "file_list": _glob(f"{wd}/filtered_timeseries*/2*[0-9]_deramped.tif"),
+ "uses_spatial_ref": True,
+ "algorithm": Algorithm.SHIFT.value,
+ },
{
"name": "Filtered velocity",
"file_list": [f"{wd}/filtered_timeseries*/velocity.tif"],
@@ -297,6 +332,10 @@ def _glob(g):
"name": "Nonzero connected component counts",
"file_list": _glob(f"{wd}/timeseries/nonzero_conncomp_count_*.tif"),
},
+ {
+ "name": "Multi-looked coherence",
+ "file_list": _glob(f"{wd}/interferograms/multilooked_coh*.tif"),
+ },
{
"name": "Re-wrapped phase",
"file_list": _glob(f"{wd}/unwrapped/2*[0-9].unw.tif"),
@@ -352,6 +391,14 @@ def _glob(g):
"name": "Time series residuals",
"file_list": _glob(f"{wd}/timeseries/residuals_2*[0-9].tif"),
},
+ {
+ "name": "Point height correction",
+ "file_list": _glob(f"{wd}/timeseries/point_height_correction.tif"),
+ },
+ {
+ "name": "Point height correction std. err.",
+ "file_list": _glob(f"{wd}/timeseries/point_height_correction_stderr.tif"),
+ },
{
"name": "Time series residuals (total sum)",
"file_list": _glob(f"{wd}/timeseries/unw_inversion_residuals.tif"),
@@ -657,3 +704,139 @@ def setup_nisar_gunw(nisar_dir: str, output: str):
raster_groups.append(rg)
_dump_raster_groups(raster_groups, output=output)
+
+
+@cli_app.command("generate-testdata")
+@click.option(
+ "-o",
+ "--output-dir",
+ required=True,
+ help="Directory to write output GeoParquet and manifest files.",
+)
+@click.option(
+ "-n",
+ "--n-points",
+ default=50_000,
+ type=int,
+ show_default=True,
+ help="Number of synthetic measurement points.",
+)
+@click.option(
+ "--n-dates",
+ default=20,
+ type=int,
+ show_default=True,
+ help="Number of SAR acquisition dates.",
+)
+@click.option("--center-lon", default=-99.13, type=float, show_default=True)
+@click.option("--center-lat", default=19.43, type=float, show_default=True)
+@click.option(
+ "--spread",
+ default=0.15,
+ type=float,
+ show_default=True,
+ help="Approximate AOI radius in degrees.",
+)
+@click.option("--seed", default=42, type=int, show_default=True)
+def generate_testdata(
+ output_dir, n_points, n_dates, center_lon, center_lat, spread, seed
+):
+ """Generate synthetic point cloud data for testing.
+
+ Creates realistic clustered point distributions with velocity trends,
+ suitable for testing the V2 point cloud viewer.
+ """
+ from ._generate_testdata import generate_testdata as _gen
+
+ _gen(
+ output_dir=output_dir,
+ n_points=n_points,
+ n_dates=n_dates,
+ center_lon=center_lon,
+ center_lat=center_lat,
+ spread_deg=spread,
+ seed=seed,
+ )
+
+
+@cli_app.group()
+def convert():
+ """Convert InSAR data to GeoParquet point cloud format."""
+
+
+@convert.command()
+@click.argument(
+ "dolphin_work_dir",
+ type=click.Path(exists=True, file_okay=False, dir_okay=True),
+)
+@click.option(
+ "-o",
+ "--output-dir",
+ required=True,
+ help="Directory to write output GeoParquet and manifest files.",
+)
+@click.option(
+ "--coherence-threshold",
+ default=0.5,
+ type=float,
+ show_default=True,
+ help="Minimum temporal coherence to include a pixel.",
+)
+@click.option(
+ "--amplitude-dispersion-threshold",
+ default=None,
+ type=float,
+ help="Maximum amplitude dispersion to include a pixel (lower = more stable).",
+)
+def dolphin(
+ dolphin_work_dir, output_dir, coherence_threshold, amplitude_dispersion_threshold
+):
+ """Convert dolphin workflow outputs to GeoParquet point cloud.
+
+ Reads raster time series and quality layers from DOLPHIN_WORK_DIR,
+ masks by quality thresholds, and writes points.parquet +
+ timeseries.parquet + bowser_manifest.json to OUTPUT_DIR.
+ """
+ from ._convert_dolphin import convert_dolphin
+
+ manifest_path = convert_dolphin(
+ work_dir=dolphin_work_dir,
+ output_dir=output_dir,
+ coherence_threshold=coherence_threshold,
+ amplitude_dispersion_threshold=amplitude_dispersion_threshold,
+ )
+ click.echo(f"\nDone! To view:\n bowser run --manifest {manifest_path}")
+
+
+@convert.command()
+@click.argument(
+ "input_file",
+ type=click.Path(exists=True, file_okay=True, dir_okay=False),
+)
+@click.option(
+ "-o",
+ "--output-dir",
+ required=True,
+ help="Directory to write output GeoParquet and manifest files.",
+)
+@click.option(
+ "--layer-name",
+ default="ps_points",
+ show_default=True,
+ help="Name for the point layer in the manifest.",
+)
+def wide_parquet(input_file, output_dir, layer_name):
+ """Convert a wide-form point cloud parquet to Bowser V2 format.
+
+ Handles parquet files where displacement time series are stored as
+ date-named columns (e.g., '20240626_20240629'). Splits into separate
+ points.parquet + timeseries.parquet files.
+ """
+ from ._convert_wide_parquet import convert_wide_parquet
+
+ manifest_path = convert_wide_parquet(
+ input_file=input_file,
+ output_dir=output_dir,
+ layer_name=layer_name,
+ )
+ click.echo(f"\nDone! To view:\n bowser run --manifest {manifest_path}")
diff --git a/src/bowser/dist/assets/plotly.min-Dxb8YwAJ.js b/src/bowser/dist/assets/plotly.min-Dxb8YwAJ.js
new file mode 100644
index 0000000..7a55625
--- /dev/null
+++ b/src/bowser/dist/assets/plotly.min-Dxb8YwAJ.js
@@ -0,0 +1,111699 @@
+import { g as getDefaultExportFromCjs, c as commonjsGlobal } from "../index.js";
+var plotly_min$2 = { exports: {} };
+(function(module) {
+ var define_process_env_default = {};
+ (function(root, factory) {
+ if (module.exports) {
+ module.exports = factory();
+ } else {
+ root.moduleName = factory();
+ }
+ })(typeof self !== "undefined" ? self : commonjsGlobal, () => {
+ var Plotly = (() => {
+ var ytt = Object.create;
+ var DS = Object.defineProperty, _tt = Object.defineProperties, xtt = Object.getOwnPropertyDescriptor, btt = Object.getOwnPropertyDescriptors, wtt = Object.getOwnPropertyNames, p6 = Object.getOwnPropertySymbols, Ttt = Object.getPrototypeOf, AO = Object.prototype.hasOwnProperty, pee = Object.prototype.propertyIsEnumerable;
+ var vee = (e, t, r) => t in e ? DS(e, t, { enumerable: true, configurable: true, writable: true, value: r }) : e[t] = r, _g = (e, t) => {
+ for (var r in t || (t = {})) AO.call(t, r) && vee(e, r, t[r]);
+ if (p6) for (var r of p6(t)) pee.call(t, r) && vee(e, r, t[r]);
+ return e;
+ }, j1 = (e, t) => _tt(e, btt(t));
+ var gee = (e, t) => {
+ var r = {};
+ for (var n in e) AO.call(e, n) && t.indexOf(n) < 0 && (r[n] = e[n]);
+ if (e != null && p6) for (var n of p6(e)) t.indexOf(n) < 0 && pee.call(e, n) && (r[n] = e[n]);
+ return r;
+ };
+ var gu = (e, t) => () => (e && (t = e(e = 0)), t);
+ var ye = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), mee = (e, t) => {
+ for (var r in t) DS(e, r, { get: t[r], enumerable: true });
+ }, yee = (e, t, r, n) => {
+ if (t && typeof t == "object" || typeof t == "function") for (let i of wtt(t)) !AO.call(e, i) && i !== r && DS(e, i, { get: () => t[i], enumerable: !(n = xtt(t, i)) || n.enumerable });
+ return e;
+ };
+ var Att = (e, t, r) => (r = e != null ? ytt(Ttt(e)) : {}, yee(DS(r, "default", { value: e, enumerable: true }), e)), pb = (e) => yee(DS({}, "__esModule", { value: true }), e);
+ var g6 = ye((_ee) => {
+ _ee.version = "3.4.0";
+ });
+ var bee = ye((xee, m6) => {
+ (function(t, r, n) {
+ r[t] = r[t] || n(), typeof m6 != "undefined" && m6.exports && (m6.exports = r[t]);
+ })("Promise", typeof window != "undefined" ? window : xee, function() {
+ var t, r, n, i = Object.prototype.toString, a = typeof setImmediate != "undefined" ? function(k) {
+ return setImmediate(k);
+ } : setTimeout;
+ try {
+ Object.defineProperty({}, "x", {}), t = function(k, E, T, L) {
+ return Object.defineProperty(k, E, { value: T, writable: true, configurable: L !== false });
+ };
+ } catch (p) {
+ t = function(E, T, L) {
+ return E[T] = L, E;
+ };
+ }
+ n = /* @__PURE__ */ function() {
+ var k, E, T;
+ function L(x, C) {
+ this.fn = x, this.self = C, this.next = void 0;
+ }
+ return { add: function(C, M) {
+ T = new L(C, M), E ? E.next = T : k = T, E = T, T = void 0;
+ }, drain: function() {
+ var C = k;
+ for (k = E = r = void 0; C; ) C.fn.call(C.self), C = C.next;
+ } };
+ }();
+ function o(p, k) {
+ n.add(p, k), r || (r = a(n.drain));
+ }
+ function s(p) {
+ var k, E = typeof p;
+ return p != null && (E == "object" || E == "function") && (k = p.then), typeof k == "function" ? k : false;
+ }
+ function l() {
+ for (var p = 0; p < this.chain.length; p++) u(this, this.state === 1 ? this.chain[p].success : this.chain[p].failure, this.chain[p]);
+ this.chain.length = 0;
+ }
+ function u(p, k, E) {
+ var T, L;
+ try {
+ k === false ? E.reject(p.msg) : (k === true ? T = p.msg : T = k.call(void 0, p.msg), T === E.promise ? E.reject(TypeError("Promise-chain cycle")) : (L = s(T)) ? L.call(T, E.resolve, E.reject) : E.resolve(T));
+ } catch (x) {
+ E.reject(x);
+ }
+ }
+ function c(p) {
+ var k, E = this;
+ if (!E.triggered) {
+ E.triggered = true, E.def && (E = E.def);
+ try {
+ (k = s(p)) ? o(function() {
+ var T = new d(E);
+ try {
+ k.call(p, function() {
+ c.apply(T, arguments);
+ }, function() {
+ f.apply(T, arguments);
+ });
+ } catch (L) {
+ f.call(T, L);
+ }
+ }) : (E.msg = p, E.state = 1, E.chain.length > 0 && o(l, E));
+ } catch (T) {
+ f.call(new d(E), T);
+ }
+ }
+ }
+ function f(p) {
+ var k = this;
+ k.triggered || (k.triggered = true, k.def && (k = k.def), k.msg = p, k.state = 2, k.chain.length > 0 && o(l, k));
+ }
+ function h(p, k, E, T) {
+ for (var L = 0; L < k.length; L++) (function(C) {
+ p.resolve(k[C]).then(function(g) {
+ E(C, g);
+ }, T);
+ })(L);
+ }
+ function d(p) {
+ this.def = p, this.triggered = false;
+ }
+ function v(p) {
+ this.promise = p, this.state = 0, this.triggered = false, this.chain = [], this.msg = void 0;
+ }
+ function _(p) {
+ if (typeof p != "function") throw TypeError("Not a function");
+ if (this.__NPO__ !== 0) throw TypeError("Not a promise");
+ this.__NPO__ = 1;
+ var k = new v(this);
+ this.then = function(T, L) {
+ var x = { success: typeof T == "function" ? T : true, failure: typeof L == "function" ? L : false };
+ return x.promise = new this.constructor(function(M, g) {
+ if (typeof M != "function" || typeof g != "function") throw TypeError("Not a function");
+ x.resolve = M, x.reject = g;
+ }), k.chain.push(x), k.state !== 0 && o(l, k), x.promise;
+ }, this.catch = function(T) {
+ return this.then(void 0, T);
+ };
+ try {
+ p.call(void 0, function(T) {
+ c.call(k, T);
+ }, function(T) {
+ f.call(k, T);
+ });
+ } catch (E) {
+ f.call(k, E);
+ }
+ }
+ var b = t({}, "constructor", _, false);
+ return _.prototype = b, t(b, "__NPO__", 0, false), t(_, "resolve", function(k) {
+ var E = this;
+ return k && typeof k == "object" && k.__NPO__ === 1 ? k : new E(function(L, x) {
+ if (typeof L != "function" || typeof x != "function") throw TypeError("Not a function");
+ L(k);
+ });
+ }), t(_, "reject", function(k) {
+ return new this(function(T, L) {
+ if (typeof T != "function" || typeof L != "function") throw TypeError("Not a function");
+ L(k);
+ });
+ }), t(_, "all", function(k) {
+ var E = this;
+ return i.call(k) != "[object Array]" ? E.reject(TypeError("Not an array")) : k.length === 0 ? E.resolve([]) : new E(function(L, x) {
+ if (typeof L != "function" || typeof x != "function") throw TypeError("Not a function");
+ var C = k.length, M = Array(C), g = 0;
+ h(E, k, function(A, z) {
+ M[A] = z, ++g === C && L(M);
+ }, x);
+ });
+ }), t(_, "race", function(k) {
+ var E = this;
+ return i.call(k) != "[object Array]" ? E.reject(TypeError("Not an array")) : new E(function(L, x) {
+ if (typeof L != "function" || typeof x != "function") throw TypeError("Not a function");
+ h(E, k, function(M, g) {
+ L(g);
+ }, x);
+ });
+ }), _;
+ });
+ });
+ var Oa = ye((prr, y6) => {
+ (function() {
+ var e = { version: "3.8.2" }, t = [].slice, r = function(X) {
+ return t.call(X);
+ }, n = self.document;
+ function i(X) {
+ return X && (X.ownerDocument || X.document || X).documentElement;
+ }
+ function a(X) {
+ return X && (X.ownerDocument && X.ownerDocument.defaultView || X.document && X || X.defaultView);
+ }
+ if (n) try {
+ r(n.documentElement.childNodes)[0].nodeType;
+ } catch (X) {
+ r = function(se) {
+ for (var Te = se.length, Ne = new Array(Te); Te--; ) Ne[Te] = se[Te];
+ return Ne;
+ };
+ }
+ if (Date.now || (Date.now = function() {
+ return +/* @__PURE__ */ new Date();
+ }), n) try {
+ n.createElement("DIV").style.setProperty("opacity", 0, "");
+ } catch (X) {
+ var o = this.Element.prototype, s = o.setAttribute, l = o.setAttributeNS, u = this.CSSStyleDeclaration.prototype, c = u.setProperty;
+ o.setAttribute = function(se, Te) {
+ s.call(this, se, Te + "");
+ }, o.setAttributeNS = function(se, Te, Ne) {
+ l.call(this, se, Te, Ne + "");
+ }, u.setProperty = function(se, Te, Ne) {
+ c.call(this, se, Te + "", Ne);
+ };
+ }
+ e.ascending = f;
+ function f(X, se) {
+ return X < se ? -1 : X > se ? 1 : X >= se ? 0 : NaN;
+ }
+ e.descending = function(X, se) {
+ return se < X ? -1 : se > X ? 1 : se >= X ? 0 : NaN;
+ }, e.min = function(X, se) {
+ var Te = -1, Ne = X.length, He, Ye;
+ if (arguments.length === 1) {
+ for (; ++Te < Ne; ) if ((Ye = X[Te]) != null && Ye >= Ye) {
+ He = Ye;
+ break;
+ }
+ for (; ++Te < Ne; ) (Ye = X[Te]) != null && He > Ye && (He = Ye);
+ } else {
+ for (; ++Te < Ne; ) if ((Ye = se.call(X, X[Te], Te)) != null && Ye >= Ye) {
+ He = Ye;
+ break;
+ }
+ for (; ++Te < Ne; ) (Ye = se.call(X, X[Te], Te)) != null && He > Ye && (He = Ye);
+ }
+ return He;
+ }, e.max = function(X, se) {
+ var Te = -1, Ne = X.length, He, Ye;
+ if (arguments.length === 1) {
+ for (; ++Te < Ne; ) if ((Ye = X[Te]) != null && Ye >= Ye) {
+ He = Ye;
+ break;
+ }
+ for (; ++Te < Ne; ) (Ye = X[Te]) != null && Ye > He && (He = Ye);
+ } else {
+ for (; ++Te < Ne; ) if ((Ye = se.call(X, X[Te], Te)) != null && Ye >= Ye) {
+ He = Ye;
+ break;
+ }
+ for (; ++Te < Ne; ) (Ye = se.call(X, X[Te], Te)) != null && Ye > He && (He = Ye);
+ }
+ return He;
+ }, e.extent = function(X, se) {
+ var Te = -1, Ne = X.length, He, Ye, kt;
+ if (arguments.length === 1) {
+ for (; ++Te < Ne; ) if ((Ye = X[Te]) != null && Ye >= Ye) {
+ He = kt = Ye;
+ break;
+ }
+ for (; ++Te < Ne; ) (Ye = X[Te]) != null && (He > Ye && (He = Ye), kt < Ye && (kt = Ye));
+ } else {
+ for (; ++Te < Ne; ) if ((Ye = se.call(X, X[Te], Te)) != null && Ye >= Ye) {
+ He = kt = Ye;
+ break;
+ }
+ for (; ++Te < Ne; ) (Ye = se.call(X, X[Te], Te)) != null && (He > Ye && (He = Ye), kt < Ye && (kt = Ye));
+ }
+ return [He, kt];
+ };
+ function h(X) {
+ return X === null ? NaN : +X;
+ }
+ function d(X) {
+ return !isNaN(X);
+ }
+ e.sum = function(X, se) {
+ var Te = 0, Ne = X.length, He, Ye = -1;
+ if (arguments.length === 1) for (; ++Ye < Ne; ) d(He = +X[Ye]) && (Te += He);
+ else for (; ++Ye < Ne; ) d(He = +se.call(X, X[Ye], Ye)) && (Te += He);
+ return Te;
+ }, e.mean = function(X, se) {
+ var Te = 0, Ne = X.length, He, Ye = -1, kt = Ne;
+ if (arguments.length === 1) for (; ++Ye < Ne; ) d(He = h(X[Ye])) ? Te += He : --kt;
+ else for (; ++Ye < Ne; ) d(He = h(se.call(X, X[Ye], Ye))) ? Te += He : --kt;
+ if (kt) return Te / kt;
+ }, e.quantile = function(X, se) {
+ var Te = (X.length - 1) * se + 1, Ne = Math.floor(Te), He = +X[Ne - 1], Ye = Te - Ne;
+ return Ye ? He + Ye * (X[Ne] - He) : He;
+ }, e.median = function(X, se) {
+ var Te = [], Ne = X.length, He, Ye = -1;
+ if (arguments.length === 1) for (; ++Ye < Ne; ) d(He = h(X[Ye])) && Te.push(He);
+ else for (; ++Ye < Ne; ) d(He = h(se.call(X, X[Ye], Ye))) && Te.push(He);
+ if (Te.length) return e.quantile(Te.sort(f), 0.5);
+ }, e.variance = function(X, se) {
+ var Te = X.length, Ne = 0, He, Ye, kt = 0, nt = -1, jt = 0;
+ if (arguments.length === 1) for (; ++nt < Te; ) d(He = h(X[nt])) && (Ye = He - Ne, Ne += Ye / ++jt, kt += Ye * (He - Ne));
+ else for (; ++nt < Te; ) d(He = h(se.call(X, X[nt], nt))) && (Ye = He - Ne, Ne += Ye / ++jt, kt += Ye * (He - Ne));
+ if (jt > 1) return kt / (jt - 1);
+ }, e.deviation = function() {
+ var X = e.variance.apply(this, arguments);
+ return X && Math.sqrt(X);
+ };
+ function v(X) {
+ return { left: function(se, Te, Ne, He) {
+ for (arguments.length < 3 && (Ne = 0), arguments.length < 4 && (He = se.length); Ne < He; ) {
+ var Ye = Ne + He >>> 1;
+ X(se[Ye], Te) < 0 ? Ne = Ye + 1 : He = Ye;
+ }
+ return Ne;
+ }, right: function(se, Te, Ne, He) {
+ for (arguments.length < 3 && (Ne = 0), arguments.length < 4 && (He = se.length); Ne < He; ) {
+ var Ye = Ne + He >>> 1;
+ X(se[Ye], Te) > 0 ? He = Ye : Ne = Ye + 1;
+ }
+ return Ne;
+ } };
+ }
+ var _ = v(f);
+ e.bisectLeft = _.left, e.bisect = e.bisectRight = _.right, e.bisector = function(X) {
+ return v(X.length === 1 ? function(se, Te) {
+ return f(X(se), Te);
+ } : X);
+ }, e.shuffle = function(X, se, Te) {
+ (Ne = arguments.length) < 3 && (Te = X.length, Ne < 2 && (se = 0));
+ for (var Ne = Te - se, He, Ye; Ne; ) Ye = Math.random() * Ne-- | 0, He = X[Ne + se], X[Ne + se] = X[Ye + se], X[Ye + se] = He;
+ return X;
+ }, e.permute = function(X, se) {
+ for (var Te = se.length, Ne = new Array(Te); Te--; ) Ne[Te] = X[se[Te]];
+ return Ne;
+ }, e.pairs = function(X) {
+ for (var se = 0, Te = X.length - 1, Ne, He = X[0], Ye = new Array(Te < 0 ? 0 : Te); se < Te; ) Ye[se] = [Ne = He, He = X[++se]];
+ return Ye;
+ }, e.transpose = function(X) {
+ if (!(Ye = X.length)) return [];
+ for (var se = -1, Te = e.min(X, b), Ne = new Array(Te); ++se < Te; ) for (var He = -1, Ye, kt = Ne[se] = new Array(Ye); ++He < Ye; ) kt[He] = X[He][se];
+ return Ne;
+ };
+ function b(X) {
+ return X.length;
+ }
+ e.zip = function() {
+ return e.transpose(arguments);
+ }, e.keys = function(X) {
+ var se = [];
+ for (var Te in X) se.push(Te);
+ return se;
+ }, e.values = function(X) {
+ var se = [];
+ for (var Te in X) se.push(X[Te]);
+ return se;
+ }, e.entries = function(X) {
+ var se = [];
+ for (var Te in X) se.push({ key: Te, value: X[Te] });
+ return se;
+ }, e.merge = function(X) {
+ for (var se = X.length, Te, Ne = -1, He = 0, Ye, kt; ++Ne < se; ) He += X[Ne].length;
+ for (Ye = new Array(He); --se >= 0; ) for (kt = X[se], Te = kt.length; --Te >= 0; ) Ye[--He] = kt[Te];
+ return Ye;
+ };
+ var p = Math.abs;
+ e.range = function(X, se, Te) {
+ if (arguments.length < 3 && (Te = 1, arguments.length < 2 && (se = X, X = 0)), (se - X) / Te === 1 / 0) throw new Error("infinite range");
+ var Ne = [], He = k(p(Te)), Ye = -1, kt;
+ if (X *= He, se *= He, Te *= He, Te < 0) for (; (kt = X + Te * ++Ye) > se; ) Ne.push(kt / He);
+ else for (; (kt = X + Te * ++Ye) < se; ) Ne.push(kt / He);
+ return Ne;
+ };
+ function k(X) {
+ for (var se = 1; X * se % 1; ) se *= 10;
+ return se;
+ }
+ function E(X, se) {
+ for (var Te in se) Object.defineProperty(X.prototype, Te, { value: se[Te], enumerable: false });
+ }
+ e.map = function(X, se) {
+ var Te = new T();
+ if (X instanceof T) X.forEach(function(nt, jt) {
+ Te.set(nt, jt);
+ });
+ else if (Array.isArray(X)) {
+ var Ne = -1, He = X.length, Ye;
+ if (arguments.length === 1) for (; ++Ne < He; ) Te.set(Ne, X[Ne]);
+ else for (; ++Ne < He; ) Te.set(se.call(X, Ye = X[Ne], Ne), Ye);
+ } else for (var kt in X) Te.set(kt, X[kt]);
+ return Te;
+ };
+ function T() {
+ this._ = /* @__PURE__ */ Object.create(null);
+ }
+ var L = "__proto__", x = "\0";
+ E(T, { has: g, get: function(X) {
+ return this._[C(X)];
+ }, set: function(X, se) {
+ return this._[C(X)] = se;
+ }, remove: P, keys: A, values: function() {
+ var X = [];
+ for (var se in this._) X.push(this._[se]);
+ return X;
+ }, entries: function() {
+ var X = [];
+ for (var se in this._) X.push({ key: M(se), value: this._[se] });
+ return X;
+ }, size: z, empty: O, forEach: function(X) {
+ for (var se in this._) X.call(this, M(se), this._[se]);
+ } });
+ function C(X) {
+ return (X += "") === L || X[0] === x ? x + X : X;
+ }
+ function M(X) {
+ return (X += "")[0] === x ? X.slice(1) : X;
+ }
+ function g(X) {
+ return C(X) in this._;
+ }
+ function P(X) {
+ return (X = C(X)) in this._ && delete this._[X];
+ }
+ function A() {
+ var X = [];
+ for (var se in this._) X.push(M(se));
+ return X;
+ }
+ function z() {
+ var X = 0;
+ for (var se in this._) ++X;
+ return X;
+ }
+ function O() {
+ for (var X in this._) return false;
+ return true;
+ }
+ e.nest = function() {
+ var X = {}, se = [], Te = [], Ne, He;
+ function Ye(nt, jt, gr) {
+ if (gr >= se.length) return He ? He.call(X, jt) : Ne ? jt.sort(Ne) : jt;
+ for (var yr = -1, Hr = jt.length, qr = se[gr++], _i, bi, Zr, ai = new T(), gi; ++yr < Hr; ) (gi = ai.get(_i = qr(bi = jt[yr]))) ? gi.push(bi) : ai.set(_i, [bi]);
+ return nt ? (bi = nt(), Zr = function(Ii, Si) {
+ bi.set(Ii, Ye(nt, Si, gr));
+ }) : (bi = {}, Zr = function(Ii, Si) {
+ bi[Ii] = Ye(nt, Si, gr);
+ }), ai.forEach(Zr), bi;
+ }
+ function kt(nt, jt) {
+ if (jt >= se.length) return nt;
+ var gr = [], yr = Te[jt++];
+ return nt.forEach(function(Hr, qr) {
+ gr.push({ key: Hr, values: kt(qr, jt) });
+ }), yr ? gr.sort(function(Hr, qr) {
+ return yr(Hr.key, qr.key);
+ }) : gr;
+ }
+ return X.map = function(nt, jt) {
+ return Ye(jt, nt, 0);
+ }, X.entries = function(nt) {
+ return kt(Ye(e.map, nt, 0), 0);
+ }, X.key = function(nt) {
+ return se.push(nt), X;
+ }, X.sortKeys = function(nt) {
+ return Te[se.length - 1] = nt, X;
+ }, X.sortValues = function(nt) {
+ return Ne = nt, X;
+ }, X.rollup = function(nt) {
+ return He = nt, X;
+ }, X;
+ }, e.set = function(X) {
+ var se = new U();
+ if (X) for (var Te = 0, Ne = X.length; Te < Ne; ++Te) se.add(X[Te]);
+ return se;
+ };
+ function U() {
+ this._ = /* @__PURE__ */ Object.create(null);
+ }
+ E(U, { has: g, add: function(X) {
+ return this._[C(X += "")] = true, X;
+ }, remove: P, values: A, size: z, empty: O, forEach: function(X) {
+ for (var se in this._) X.call(this, M(se));
+ } }), e.behavior = {};
+ function G(X) {
+ return X;
+ }
+ e.rebind = function(X, se) {
+ for (var Te = 1, Ne = arguments.length, He; ++Te < Ne; ) X[He = arguments[Te]] = Z(X, se, se[He]);
+ return X;
+ };
+ function Z(X, se, Te) {
+ return function() {
+ var Ne = Te.apply(se, arguments);
+ return Ne === se ? X : Ne;
+ };
+ }
+ function j(X, se) {
+ if (se in X) return se;
+ se = se.charAt(0).toUpperCase() + se.slice(1);
+ for (var Te = 0, Ne = N.length; Te < Ne; ++Te) {
+ var He = N[Te] + se;
+ if (He in X) return He;
+ }
+ }
+ var N = ["webkit", "ms", "moz", "Moz", "o", "O"];
+ function H() {
+ }
+ e.dispatch = function() {
+ for (var X = new re(), se = -1, Te = arguments.length; ++se < Te; ) X[arguments[se]] = oe(X);
+ return X;
+ };
+ function re() {
+ }
+ re.prototype.on = function(X, se) {
+ var Te = X.indexOf("."), Ne = "";
+ if (Te >= 0 && (Ne = X.slice(Te + 1), X = X.slice(0, Te)), X) return arguments.length < 2 ? this[X].on(Ne) : this[X].on(Ne, se);
+ if (arguments.length === 2) {
+ if (se == null) for (X in this) this.hasOwnProperty(X) && this[X].on(Ne, null);
+ return this;
+ }
+ };
+ function oe(X) {
+ var se = [], Te = new T();
+ function Ne() {
+ for (var He = se, Ye = -1, kt = He.length, nt; ++Ye < kt; ) (nt = He[Ye].on) && nt.apply(this, arguments);
+ return X;
+ }
+ return Ne.on = function(He, Ye) {
+ var kt = Te.get(He), nt;
+ return arguments.length < 2 ? kt && kt.on : (kt && (kt.on = null, se = se.slice(0, nt = se.indexOf(kt)).concat(se.slice(nt + 1)), Te.remove(He)), Ye && se.push(Te.set(He, { on: Ye })), X);
+ }, Ne;
+ }
+ e.event = null;
+ function _e() {
+ e.event.preventDefault();
+ }
+ function Ce() {
+ for (var X = e.event, se; se = X.sourceEvent; ) X = se;
+ return X;
+ }
+ function Le(X) {
+ for (var se = new re(), Te = 0, Ne = arguments.length; ++Te < Ne; ) se[arguments[Te]] = oe(se);
+ return se.of = function(He, Ye) {
+ return function(kt) {
+ try {
+ var nt = kt.sourceEvent = e.event;
+ kt.target = X, e.event = kt, se[kt.type].apply(He, Ye);
+ } finally {
+ e.event = nt;
+ }
+ };
+ }, se;
+ }
+ e.requote = function(X) {
+ return X.replace(ge, "\\$&");
+ };
+ var ge = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g, ie = {}.__proto__ ? function(X, se) {
+ X.__proto__ = se;
+ } : function(X, se) {
+ for (var Te in se) X[Te] = se[Te];
+ };
+ function Se(X) {
+ return ie(X, Pe), X;
+ }
+ var Ee = function(X, se) {
+ return se.querySelector(X);
+ }, Ae = function(X, se) {
+ return se.querySelectorAll(X);
+ }, Be = function(X, se) {
+ var Te = X.matches || X[j(X, "matchesSelector")];
+ return Be = function(Ne, He) {
+ return Te.call(Ne, He);
+ }, Be(X, se);
+ };
+ typeof Sizzle == "function" && (Ee = function(X, se) {
+ return Sizzle(X, se)[0] || null;
+ }, Ae = Sizzle, Be = Sizzle.matchesSelector), e.selection = function() {
+ return e.select(n.documentElement);
+ };
+ var Pe = e.selection.prototype = [];
+ Pe.select = function(X) {
+ var se = [], Te, Ne, He, Ye;
+ X = me(X);
+ for (var kt = -1, nt = this.length; ++kt < nt; ) {
+ se.push(Te = []), Te.parentNode = (He = this[kt]).parentNode;
+ for (var jt = -1, gr = He.length; ++jt < gr; ) (Ye = He[jt]) ? (Te.push(Ne = X.call(Ye, Ye.__data__, jt, kt)), Ne && "__data__" in Ye && (Ne.__data__ = Ye.__data__)) : Te.push(null);
+ }
+ return Se(se);
+ };
+ function me(X) {
+ return typeof X == "function" ? X : function() {
+ return Ee(X, this);
+ };
+ }
+ Pe.selectAll = function(X) {
+ var se = [], Te, Ne;
+ X = De(X);
+ for (var He = -1, Ye = this.length; ++He < Ye; ) for (var kt = this[He], nt = -1, jt = kt.length; ++nt < jt; ) (Ne = kt[nt]) && (se.push(Te = r(X.call(Ne, Ne.__data__, nt, He))), Te.parentNode = Ne);
+ return Se(se);
+ };
+ function De(X) {
+ return typeof X == "function" ? X : function() {
+ return Ae(X, this);
+ };
+ }
+ var ce = "http://www.w3.org/1999/xhtml", je = { svg: "http://www.w3.org/2000/svg", xhtml: ce, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" };
+ e.ns = { prefix: je, qualify: function(X) {
+ var se = X.indexOf(":"), Te = X;
+ return se >= 0 && (Te = X.slice(0, se)) !== "xmlns" && (X = X.slice(se + 1)), je.hasOwnProperty(Te) ? { space: je[Te], local: X } : X;
+ } }, Pe.attr = function(X, se) {
+ if (arguments.length < 2) {
+ if (typeof X == "string") {
+ var Te = this.node();
+ return X = e.ns.qualify(X), X.local ? Te.getAttributeNS(X.space, X.local) : Te.getAttribute(X);
+ }
+ for (se in X) this.each(lt(se, X[se]));
+ return this;
+ }
+ return this.each(lt(X, se));
+ };
+ function lt(X, se) {
+ X = e.ns.qualify(X);
+ function Te() {
+ this.removeAttribute(X);
+ }
+ function Ne() {
+ this.removeAttributeNS(X.space, X.local);
+ }
+ function He() {
+ this.setAttribute(X, se);
+ }
+ function Ye() {
+ this.setAttributeNS(X.space, X.local, se);
+ }
+ function kt() {
+ var jt = se.apply(this, arguments);
+ jt == null ? this.removeAttribute(X) : this.setAttribute(X, jt);
+ }
+ function nt() {
+ var jt = se.apply(this, arguments);
+ jt == null ? this.removeAttributeNS(X.space, X.local) : this.setAttributeNS(X.space, X.local, jt);
+ }
+ return se == null ? X.local ? Ne : Te : typeof se == "function" ? X.local ? nt : kt : X.local ? Ye : He;
+ }
+ function pt(X) {
+ return X.trim().replace(/\s+/g, " ");
+ }
+ Pe.classed = function(X, se) {
+ if (arguments.length < 2) {
+ if (typeof X == "string") {
+ var Te = this.node(), Ne = (X = ot(X)).length, He = -1;
+ if (se = Te.classList) {
+ for (; ++He < Ne; ) if (!se.contains(X[He])) return false;
+ } else for (se = Te.getAttribute("class"); ++He < Ne; ) if (!Vt(X[He]).test(se)) return false;
+ return true;
+ }
+ for (se in X) this.each(ut(se, X[se]));
+ return this;
+ }
+ return this.each(ut(X, se));
+ };
+ function Vt(X) {
+ return new RegExp("(?:^|\\s+)" + e.requote(X) + "(?:\\s+|$)", "g");
+ }
+ function ot(X) {
+ return (X + "").trim().split(/^|\s+/);
+ }
+ function ut(X, se) {
+ X = ot(X).map(Wt);
+ var Te = X.length;
+ function Ne() {
+ for (var Ye = -1; ++Ye < Te; ) X[Ye](this, se);
+ }
+ function He() {
+ for (var Ye = -1, kt = se.apply(this, arguments); ++Ye < Te; ) X[Ye](this, kt);
+ }
+ return typeof se == "function" ? He : Ne;
+ }
+ function Wt(X) {
+ var se = Vt(X);
+ return function(Te, Ne) {
+ if (He = Te.classList) return Ne ? He.add(X) : He.remove(X);
+ var He = Te.getAttribute("class") || "";
+ Ne ? (se.lastIndex = 0, se.test(He) || Te.setAttribute("class", pt(He + " " + X))) : Te.setAttribute("class", pt(He.replace(se, " ")));
+ };
+ }
+ Pe.style = function(X, se, Te) {
+ var Ne = arguments.length;
+ if (Ne < 3) {
+ if (typeof X != "string") {
+ Ne < 2 && (se = "");
+ for (Te in X) this.each(Nt(Te, X[Te], se));
+ return this;
+ }
+ if (Ne < 2) {
+ var He = this.node();
+ return a(He).getComputedStyle(He, null).getPropertyValue(X);
+ }
+ Te = "";
+ }
+ return this.each(Nt(X, se, Te));
+ };
+ function Nt(X, se, Te) {
+ function Ne() {
+ this.style.removeProperty(X);
+ }
+ function He() {
+ this.style.setProperty(X, se, Te);
+ }
+ function Ye() {
+ var kt = se.apply(this, arguments);
+ kt == null ? this.style.removeProperty(X) : this.style.setProperty(X, kt, Te);
+ }
+ return se == null ? Ne : typeof se == "function" ? Ye : He;
+ }
+ Pe.property = function(X, se) {
+ if (arguments.length < 2) {
+ if (typeof X == "string") return this.node()[X];
+ for (se in X) this.each($t(se, X[se]));
+ return this;
+ }
+ return this.each($t(X, se));
+ };
+ function $t(X, se) {
+ function Te() {
+ delete this[X];
+ }
+ function Ne() {
+ this[X] = se;
+ }
+ function He() {
+ var Ye = se.apply(this, arguments);
+ Ye == null ? delete this[X] : this[X] = Ye;
+ }
+ return se == null ? Te : typeof se == "function" ? He : Ne;
+ }
+ Pe.text = function(X) {
+ return arguments.length ? this.each(typeof X == "function" ? function() {
+ var se = X.apply(this, arguments);
+ this.textContent = se == null ? "" : se;
+ } : X == null ? function() {
+ this.textContent = "";
+ } : function() {
+ this.textContent = X;
+ }) : this.node().textContent;
+ }, Pe.html = function(X) {
+ return arguments.length ? this.each(typeof X == "function" ? function() {
+ var se = X.apply(this, arguments);
+ this.innerHTML = se == null ? "" : se;
+ } : X == null ? function() {
+ this.innerHTML = "";
+ } : function() {
+ this.innerHTML = X;
+ }) : this.node().innerHTML;
+ }, Pe.append = function(X) {
+ return X = sr(X), this.select(function() {
+ return this.appendChild(X.apply(this, arguments));
+ });
+ };
+ function sr(X) {
+ function se() {
+ var Ne = this.ownerDocument, He = this.namespaceURI;
+ return He === ce && Ne.documentElement.namespaceURI === ce ? Ne.createElement(X) : Ne.createElementNS(He, X);
+ }
+ function Te() {
+ return this.ownerDocument.createElementNS(X.space, X.local);
+ }
+ return typeof X == "function" ? X : (X = e.ns.qualify(X)).local ? Te : se;
+ }
+ Pe.insert = function(X, se) {
+ return X = sr(X), se = me(se), this.select(function() {
+ return this.insertBefore(X.apply(this, arguments), se.apply(this, arguments) || null);
+ });
+ }, Pe.remove = function() {
+ return this.each(Tr);
+ };
+ function Tr() {
+ var X = this.parentNode;
+ X && X.removeChild(this);
+ }
+ Pe.data = function(X, se) {
+ var Te = -1, Ne = this.length, He, Ye;
+ if (!arguments.length) {
+ for (X = new Array(Ne = (He = this[0]).length); ++Te < Ne; ) (Ye = He[Te]) && (X[Te] = Ye.__data__);
+ return X;
+ }
+ function kt(yr, Hr) {
+ var qr, _i = yr.length, bi = Hr.length, Zr = Math.min(_i, bi), ai = new Array(bi), gi = new Array(bi), Ii = new Array(_i), Si, ei;
+ if (se) {
+ var Ln = new T(), En = new Array(_i), Un;
+ for (qr = -1; ++qr < _i; ) (Si = yr[qr]) && (Ln.has(Un = se.call(Si, Si.__data__, qr)) ? Ii[qr] = Si : Ln.set(Un, Si), En[qr] = Un);
+ for (qr = -1; ++qr < bi; ) (Si = Ln.get(Un = se.call(Hr, ei = Hr[qr], qr))) ? Si !== true && (ai[qr] = Si, Si.__data__ = ei) : gi[qr] = fr(ei), Ln.set(Un, true);
+ for (qr = -1; ++qr < _i; ) qr in En && Ln.get(En[qr]) !== true && (Ii[qr] = yr[qr]);
+ } else {
+ for (qr = -1; ++qr < Zr; ) Si = yr[qr], ei = Hr[qr], Si ? (Si.__data__ = ei, ai[qr] = Si) : gi[qr] = fr(ei);
+ for (; qr < bi; ++qr) gi[qr] = fr(Hr[qr]);
+ for (; qr < _i; ++qr) Ii[qr] = yr[qr];
+ }
+ gi.update = ai, gi.parentNode = ai.parentNode = Ii.parentNode = yr.parentNode, nt.push(gi), jt.push(ai), gr.push(Ii);
+ }
+ var nt = Gt([]), jt = Se([]), gr = Se([]);
+ if (typeof X == "function") for (; ++Te < Ne; ) kt(He = this[Te], X.call(He, He.parentNode.__data__, Te));
+ else for (; ++Te < Ne; ) kt(He = this[Te], X);
+ return jt.enter = function() {
+ return nt;
+ }, jt.exit = function() {
+ return gr;
+ }, jt;
+ };
+ function fr(X) {
+ return { __data__: X };
+ }
+ Pe.datum = function(X) {
+ return arguments.length ? this.property("__data__", X) : this.property("__data__");
+ }, Pe.filter = function(X) {
+ var se = [], Te, Ne, He;
+ typeof X != "function" && (X = $e(X));
+ for (var Ye = 0, kt = this.length; Ye < kt; Ye++) {
+ se.push(Te = []), Te.parentNode = (Ne = this[Ye]).parentNode;
+ for (var nt = 0, jt = Ne.length; nt < jt; nt++) (He = Ne[nt]) && X.call(He, He.__data__, nt, Ye) && Te.push(He);
+ }
+ return Se(se);
+ };
+ function $e(X) {
+ return function() {
+ return Be(this, X);
+ };
+ }
+ Pe.order = function() {
+ for (var X = -1, se = this.length; ++X < se; ) for (var Te = this[X], Ne = Te.length - 1, He = Te[Ne], Ye; --Ne >= 0; ) (Ye = Te[Ne]) && (He && He !== Ye.nextSibling && He.parentNode.insertBefore(Ye, He), He = Ye);
+ return this;
+ }, Pe.sort = function(X) {
+ X = St.apply(this, arguments);
+ for (var se = -1, Te = this.length; ++se < Te; ) this[se].sort(X);
+ return this.order();
+ };
+ function St(X) {
+ return arguments.length || (X = f), function(se, Te) {
+ return se && Te ? X(se.__data__, Te.__data__) : !se - !Te;
+ };
+ }
+ Pe.each = function(X) {
+ return Qt(this, function(se, Te, Ne) {
+ X.call(se, se.__data__, Te, Ne);
+ });
+ };
+ function Qt(X, se) {
+ for (var Te = 0, Ne = X.length; Te < Ne; Te++) for (var He = X[Te], Ye = 0, kt = He.length, nt; Ye < kt; Ye++) (nt = He[Ye]) && se(nt, Ye, Te);
+ return X;
+ }
+ Pe.call = function(X) {
+ var se = r(arguments);
+ return X.apply(se[0] = this, se), this;
+ }, Pe.empty = function() {
+ return !this.node();
+ }, Pe.node = function() {
+ for (var X = 0, se = this.length; X < se; X++) for (var Te = this[X], Ne = 0, He = Te.length; Ne < He; Ne++) {
+ var Ye = Te[Ne];
+ if (Ye) return Ye;
+ }
+ return null;
+ }, Pe.size = function() {
+ var X = 0;
+ return Qt(this, function() {
+ ++X;
+ }), X;
+ };
+ function Gt(X) {
+ return ie(X, _t), X;
+ }
+ var _t = [];
+ e.selection.enter = Gt, e.selection.enter.prototype = _t, _t.append = Pe.append, _t.empty = Pe.empty, _t.node = Pe.node, _t.call = Pe.call, _t.size = Pe.size, _t.select = function(X) {
+ for (var se = [], Te, Ne, He, Ye, kt, nt = -1, jt = this.length; ++nt < jt; ) {
+ He = (Ye = this[nt]).update, se.push(Te = []), Te.parentNode = Ye.parentNode;
+ for (var gr = -1, yr = Ye.length; ++gr < yr; ) (kt = Ye[gr]) ? (Te.push(He[gr] = Ne = X.call(Ye.parentNode, kt.__data__, gr, nt)), Ne.__data__ = kt.__data__) : Te.push(null);
+ }
+ return Se(se);
+ }, _t.insert = function(X, se) {
+ return arguments.length < 2 && (se = It(this)), Pe.insert.call(this, X, se);
+ };
+ function It(X) {
+ var se, Te;
+ return function(Ne, He, Ye) {
+ var kt = X[Ye].update, nt = kt.length, jt;
+ for (Ye != Te && (Te = Ye, se = 0), He >= se && (se = He + 1); !(jt = kt[se]) && ++se < nt; ) ;
+ return jt;
+ };
+ }
+ e.select = function(X) {
+ var se;
+ return typeof X == "string" ? (se = [Ee(X, n)], se.parentNode = n.documentElement) : (se = [X], se.parentNode = i(X)), Se([se]);
+ }, e.selectAll = function(X) {
+ var se;
+ return typeof X == "string" ? (se = r(Ae(X, n)), se.parentNode = n.documentElement) : (se = r(X), se.parentNode = null), Se([se]);
+ }, Pe.on = function(X, se, Te) {
+ var Ne = arguments.length;
+ if (Ne < 3) {
+ if (typeof X != "string") {
+ Ne < 2 && (se = false);
+ for (Te in X) this.each(mt(Te, X[Te], se));
+ return this;
+ }
+ if (Ne < 2) return (Ne = this.node()["__on" + X]) && Ne._;
+ Te = false;
+ }
+ return this.each(mt(X, se, Te));
+ };
+ function mt(X, se, Te) {
+ var Ne = "__on" + X, He = X.indexOf("."), Ye = lr;
+ He > 0 && (X = X.slice(0, He));
+ var kt = er.get(X);
+ kt && (X = kt, Ye = wr);
+ function nt() {
+ var yr = this[Ne];
+ yr && (this.removeEventListener(X, yr, yr.$), delete this[Ne]);
+ }
+ function jt() {
+ var yr = Ye(se, r(arguments));
+ nt.call(this), this.addEventListener(X, this[Ne] = yr, yr.$ = Te), yr._ = se;
+ }
+ function gr() {
+ var yr = new RegExp("^__on([^.]+)" + e.requote(X) + "$"), Hr;
+ for (var qr in this) if (Hr = qr.match(yr)) {
+ var _i = this[qr];
+ this.removeEventListener(Hr[1], _i, _i.$), delete this[qr];
+ }
+ }
+ return He ? se ? jt : nt : se ? H : gr;
+ }
+ var er = e.map({ mouseenter: "mouseover", mouseleave: "mouseout" });
+ n && er.forEach(function(X) {
+ "on" + X in n && er.remove(X);
+ });
+ function lr(X, se) {
+ return function(Te) {
+ var Ne = e.event;
+ e.event = Te, se[0] = this.__data__;
+ try {
+ X.apply(this, se);
+ } finally {
+ e.event = Ne;
+ }
+ };
+ }
+ function wr(X, se) {
+ var Te = lr(X, se);
+ return function(Ne) {
+ var He = this, Ye = Ne.relatedTarget;
+ (!Ye || Ye !== He && !(Ye.compareDocumentPosition(He) & 8)) && Te.call(He, Ne);
+ };
+ }
+ var Lr, ti = 0;
+ function Br(X) {
+ var se = ".dragsuppress-" + ++ti, Te = "click" + se, Ne = e.select(a(X)).on("touchmove" + se, _e).on("dragstart" + se, _e).on("selectstart" + se, _e);
+ if (Lr == null && (Lr = "onselectstart" in X ? false : j(X.style, "userSelect")), Lr) {
+ var He = i(X).style, Ye = He[Lr];
+ He[Lr] = "none";
+ }
+ return function(kt) {
+ if (Ne.on(se, null), Lr && (He[Lr] = Ye), kt) {
+ var nt = function() {
+ Ne.on(Te, null);
+ };
+ Ne.on(Te, function() {
+ _e(), nt();
+ }, true), setTimeout(nt, 0);
+ }
+ };
+ }
+ e.mouse = function(X) {
+ return dt(X, Ce());
+ };
+ var Vr = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
+ function dt(X, se) {
+ se.changedTouches && (se = se.changedTouches[0]);
+ var Te = X.ownerSVGElement || X;
+ if (Te.createSVGPoint) {
+ var Ne = Te.createSVGPoint();
+ if (Vr < 0) {
+ var He = a(X);
+ if (He.scrollX || He.scrollY) {
+ Te = e.select("body").append("svg").style({ position: "absolute", top: 0, left: 0, margin: 0, padding: 0, border: "none" }, "important");
+ var Ye = Te[0][0].getScreenCTM();
+ Vr = !(Ye.f || Ye.e), Te.remove();
+ }
+ }
+ return Vr ? (Ne.x = se.pageX, Ne.y = se.pageY) : (Ne.x = se.clientX, Ne.y = se.clientY), Ne = Ne.matrixTransform(X.getScreenCTM().inverse()), [Ne.x, Ne.y];
+ }
+ var kt = X.getBoundingClientRect();
+ return [se.clientX - kt.left - X.clientLeft, se.clientY - kt.top - X.clientTop];
+ }
+ e.touch = function(X, se, Te) {
+ if (arguments.length < 3 && (Te = se, se = Ce().changedTouches), se) {
+ for (var Ne = 0, He = se.length, Ye; Ne < He; ++Ne) if ((Ye = se[Ne]).identifier === Te) return dt(X, Ye);
+ }
+ }, e.behavior.drag = function() {
+ var X = Le(He, "drag", "dragstart", "dragend"), se = null, Te = Ye(H, e.mouse, a, "mousemove", "mouseup"), Ne = Ye(Ge, e.touch, G, "touchmove", "touchend");
+ function He() {
+ this.on("mousedown.drag", Te).on("touchstart.drag", Ne);
+ }
+ function Ye(kt, nt, jt, gr, yr) {
+ return function() {
+ var Hr = this, qr = e.event.target.correspondingElement || e.event.target, _i = Hr.parentNode, bi = X.of(Hr, arguments), Zr = 0, ai = kt(), gi = ".drag" + (ai == null ? "" : "-" + ai), Ii, Si = e.select(jt(qr)).on(gr + gi, En).on(yr + gi, Un), ei = Br(qr), Ln = nt(_i, ai);
+ se ? (Ii = se.apply(Hr, arguments), Ii = [Ii.x - Ln[0], Ii.y - Ln[1]]) : Ii = [0, 0], bi({ type: "dragstart" });
+ function En() {
+ var ia = nt(_i, ai), Ea, Ia;
+ ia && (Ea = ia[0] - Ln[0], Ia = ia[1] - Ln[1], Zr |= Ea | Ia, Ln = ia, bi({ type: "drag", x: ia[0] + Ii[0], y: ia[1] + Ii[1], dx: Ea, dy: Ia }));
+ }
+ function Un() {
+ nt(_i, ai) && (Si.on(gr + gi, null).on(yr + gi, null), ei(Zr), bi({ type: "dragend" }));
+ }
+ };
+ }
+ return He.origin = function(kt) {
+ return arguments.length ? (se = kt, He) : se;
+ }, e.rebind(He, X, "on");
+ };
+ function Ge() {
+ return e.event.changedTouches[0].identifier;
+ }
+ e.touches = function(X, se) {
+ return arguments.length < 2 && (se = Ce().touches), se ? r(se).map(function(Te) {
+ var Ne = dt(X, Te);
+ return Ne.identifier = Te.identifier, Ne;
+ }) : [];
+ };
+ var Je = 1e-6, We = Je * Je, tt = Math.PI, xt = 2 * tt, Ie = xt - Je, xe = tt / 2, ke = tt / 180, vt = 180 / tt;
+ function ar(X, se, Te) {
+ return (se[0] - X[0]) * (Te[1] - X[1]) - (se[1] - X[1]) * (Te[0] - X[0]);
+ }
+ function ii(X) {
+ return X > 1 ? xe : X < -1 ? -xe : Math.asin(X);
+ }
+ function pi(X) {
+ return ((X = Math.exp(X)) - 1 / X) / 2;
+ }
+ function $r(X) {
+ return ((X = Math.exp(X)) + 1 / X) / 2;
+ }
+ function di(X) {
+ return ((X = Math.exp(2 * X)) - 1) / (X + 1);
+ }
+ var In = Math.SQRT2, wi = 2, On = 4;
+ e.interpolateZoom = function(X, se) {
+ var Te = X[0], Ne = X[1], He = X[2], Ye = se[0], kt = se[1], nt = se[2], jt = Ye - Te, gr = kt - Ne, yr = jt * jt + gr * gr, Hr, qr;
+ if (yr < We) qr = Math.log(nt / He) / In, Hr = function(Ii) {
+ return [Te + Ii * jt, Ne + Ii * gr, He * Math.exp(In * Ii * qr)];
+ };
+ else {
+ var _i = Math.sqrt(yr), bi = (nt * nt - He * He + On * yr) / (2 * He * wi * _i), Zr = (nt * nt - He * He - On * yr) / (2 * nt * wi * _i), ai = Math.log(Math.sqrt(bi * bi + 1) - bi), gi = Math.log(Math.sqrt(Zr * Zr + 1) - Zr);
+ qr = (gi - ai) / In, Hr = function(Ii) {
+ var Si = Ii * qr, ei = $r(ai), Ln = He / (wi * _i) * (ei * di(In * Si + ai) - pi(ai));
+ return [Te + Ln * jt, Ne + Ln * gr, He * ei / $r(In * Si + ai)];
+ };
+ }
+ return Hr.duration = qr * 1e3, Hr;
+ }, e.behavior.zoom = function() {
+ var X = { x: 0, y: 0, k: 1 }, se, Te, Ne, He = [960, 500], Ye = qn, kt = 250, nt = 0, jt = "mousedown.zoom", gr = "mousemove.zoom", yr = "mouseup.zoom", Hr, qr = "touchstart.zoom", _i, bi = Le(Si, "zoomstart", "zoom", "zoomend"), Zr, ai, gi, Ii;
+ ra || (ra = "onwheel" in n ? (Fn = function() {
+ return -e.event.deltaY * (e.event.deltaMode ? 120 : 1);
+ }, "wheel") : "onmousewheel" in n ? (Fn = function() {
+ return e.event.wheelDelta;
+ }, "mousewheel") : (Fn = function() {
+ return -e.event.detail;
+ }, "MozMousePixelScroll"));
+ function Si(Gn) {
+ Gn.on(jt, go).on(ra + ".zoom", Ms).on("dblclick.zoom", Xs).on(qr, Is);
+ }
+ Si.event = function(Gn) {
+ Gn.each(function() {
+ var ja = bi.of(this, arguments), Fo = X;
+ Bo ? e.select(this).transition().each("start.zoom", function() {
+ X = this.__chart__ || { x: 0, y: 0, k: 1 }, Ia(ja);
+ }).tween("zoom:zoom", function() {
+ var Uo = He[0], $s = He[1], Sl = Te ? Te[0] : Uo / 2, bu = Te ? Te[1] : $s / 2, dl = e.interpolateZoom([(Sl - X.x) / X.k, (bu - X.y) / X.k, Uo / X.k], [(Sl - Fo.x) / Fo.k, (bu - Fo.y) / Fo.k, Uo / Fo.k]);
+ return function(Sc) {
+ var Me = dl(Sc), bt = Uo / Me[2];
+ this.__chart__ = X = { x: Sl - Me[0] * bt, y: bu - Me[1] * bt, k: bt }, yo(ja);
+ };
+ }).each("interrupt.zoom", function() {
+ Da(ja);
+ }).each("end.zoom", function() {
+ Da(ja);
+ }) : (this.__chart__ = X, Ia(ja), yo(ja), Da(ja));
+ });
+ }, Si.translate = function(Gn) {
+ return arguments.length ? (X = { x: +Gn[0], y: +Gn[1], k: X.k }, Ea(), Si) : [X.x, X.y];
+ }, Si.scale = function(Gn) {
+ return arguments.length ? (X = { x: X.x, y: X.y, k: null }, En(+Gn), Ea(), Si) : X.k;
+ }, Si.scaleExtent = function(Gn) {
+ return arguments.length ? (Ye = Gn == null ? qn : [+Gn[0], +Gn[1]], Si) : Ye;
+ }, Si.center = function(Gn) {
+ return arguments.length ? (Ne = Gn && [+Gn[0], +Gn[1]], Si) : Ne;
+ }, Si.size = function(Gn) {
+ return arguments.length ? (He = Gn && [+Gn[0], +Gn[1]], Si) : He;
+ }, Si.duration = function(Gn) {
+ return arguments.length ? (kt = +Gn, Si) : kt;
+ }, Si.x = function(Gn) {
+ return arguments.length ? (ai = Gn, Zr = Gn.copy(), X = { x: 0, y: 0, k: 1 }, Si) : ai;
+ }, Si.y = function(Gn) {
+ return arguments.length ? (Ii = Gn, gi = Gn.copy(), X = { x: 0, y: 0, k: 1 }, Si) : Ii;
+ };
+ function ei(Gn) {
+ return [(Gn[0] - X.x) / X.k, (Gn[1] - X.y) / X.k];
+ }
+ function Ln(Gn) {
+ return [Gn[0] * X.k + X.x, Gn[1] * X.k + X.y];
+ }
+ function En(Gn) {
+ X.k = Math.max(Ye[0], Math.min(Ye[1], Gn));
+ }
+ function Un(Gn, ja) {
+ ja = Ln(ja), X.x += Gn[0] - ja[0], X.y += Gn[1] - ja[1];
+ }
+ function ia(Gn, ja, Fo, Uo) {
+ Gn.__chart__ = { x: X.x, y: X.y, k: X.k }, En(Math.pow(2, Uo)), Un(Te = ja, Fo), Gn = e.select(Gn), kt > 0 && (Gn = Gn.transition().duration(kt)), Gn.call(Si.event);
+ }
+ function Ea() {
+ ai && ai.domain(Zr.range().map(function(Gn) {
+ return (Gn - X.x) / X.k;
+ }).map(Zr.invert)), Ii && Ii.domain(gi.range().map(function(Gn) {
+ return (Gn - X.y) / X.k;
+ }).map(gi.invert));
+ }
+ function Ia(Gn) {
+ nt++ || Gn({ type: "zoomstart" });
+ }
+ function yo(Gn) {
+ Ea(), Gn({ type: "zoom", scale: X.k, translate: [X.x, X.y] });
+ }
+ function Da(Gn) {
+ --nt || (Gn({ type: "zoomend" }), Te = null);
+ }
+ function go() {
+ var Gn = this, ja = bi.of(Gn, arguments), Fo = 0, Uo = e.select(a(Gn)).on(gr, bu).on(yr, dl), $s = ei(e.mouse(Gn)), Sl = Br(Gn);
+ fa.call(Gn), Ia(ja);
+ function bu() {
+ Fo = 1, Un(e.mouse(Gn), $s), yo(ja);
+ }
+ function dl() {
+ Uo.on(gr, null).on(yr, null), Sl(Fo), Da(ja);
+ }
+ }
+ function Is() {
+ var Gn = this, ja = bi.of(Gn, arguments), Fo = {}, Uo = 0, $s, Sl = ".zoom-" + e.event.changedTouches[0].identifier, bu = "touchmove" + Sl, dl = "touchend" + Sl, Sc = [], Me = e.select(Gn), bt = Br(Gn);
+ Rr(), Ia(ja), Me.on(jt, null).on(qr, Rr);
+ function zt() {
+ var Gr = e.touches(Gn);
+ return $s = X.k, Gr.forEach(function(mi) {
+ mi.identifier in Fo && (Fo[mi.identifier] = ei(mi));
+ }), Gr;
+ }
+ function Rr() {
+ var Gr = e.event.target;
+ e.select(Gr).on(bu, jr).on(dl, Nr), Sc.push(Gr);
+ for (var mi = e.event.changedTouches, Ui = 0, qi = mi.length; Ui < qi; ++Ui) Fo[mi[Ui].identifier] = null;
+ var Ei = zt(), Hn = Date.now();
+ if (Ei.length === 1) {
+ if (Hn - _i < 500) {
+ var en = Ei[0];
+ ia(Gn, en, Fo[en.identifier], Math.floor(Math.log(X.k) / Math.LN2) + 1), _e();
+ }
+ _i = Hn;
+ } else if (Ei.length > 1) {
+ var en = Ei[0], Wi = Ei[1], si = en[0] - Wi[0], Mr = en[1] - Wi[1];
+ Uo = si * si + Mr * Mr;
+ }
+ }
+ function jr() {
+ var Gr = e.touches(Gn), mi, Ui, qi, Ei;
+ fa.call(Gn);
+ for (var Hn = 0, en = Gr.length; Hn < en; ++Hn, Ei = null) if (qi = Gr[Hn], Ei = Fo[qi.identifier]) {
+ if (Ui) break;
+ mi = qi, Ui = Ei;
+ }
+ if (Ei) {
+ var Wi = (Wi = qi[0] - mi[0]) * Wi + (Wi = qi[1] - mi[1]) * Wi, si = Uo && Math.sqrt(Wi / Uo);
+ mi = [(mi[0] + qi[0]) / 2, (mi[1] + qi[1]) / 2], Ui = [(Ui[0] + Ei[0]) / 2, (Ui[1] + Ei[1]) / 2], En(si * $s);
+ }
+ _i = null, Un(mi, Ui), yo(ja);
+ }
+ function Nr() {
+ if (e.event.touches.length) {
+ for (var Gr = e.event.changedTouches, mi = 0, Ui = Gr.length; mi < Ui; ++mi) delete Fo[Gr[mi].identifier];
+ for (var qi in Fo) return void zt();
+ }
+ e.selectAll(Sc).on(Sl, null), Me.on(jt, go).on(qr, Is), bt(), Da(ja);
+ }
+ }
+ function Ms() {
+ var Gn = bi.of(this, arguments);
+ Hr ? clearTimeout(Hr) : (fa.call(this), se = ei(Te = Ne || e.mouse(this)), Ia(Gn)), Hr = setTimeout(function() {
+ Hr = null, Da(Gn);
+ }, 50), _e(), En(Math.pow(2, Fn() * 2e-3) * X.k), Un(Te, se), yo(Gn);
+ }
+ function Xs() {
+ var Gn = e.mouse(this), ja = Math.log(X.k) / Math.LN2;
+ ia(this, Gn, ei(Gn), e.event.shiftKey ? Math.ceil(ja) - 1 : Math.floor(ja) + 1);
+ }
+ return e.rebind(Si, bi, "on");
+ };
+ var qn = [0, 1 / 0], Fn, ra;
+ e.color = la;
+ function la() {
+ }
+ la.prototype.toString = function() {
+ return this.rgb() + "";
+ }, e.hsl = Ut;
+ function Ut(X, se, Te) {
+ return this instanceof Ut ? (this.h = +X, this.s = +se, void (this.l = +Te)) : arguments.length < 2 ? X instanceof Ut ? new Ut(X.h, X.s, X.l) : Ha("" + X, vo, Ut) : new Ut(X, se, Te);
+ }
+ var wt = Ut.prototype = new la();
+ wt.brighter = function(X) {
+ return X = Math.pow(0.7, arguments.length ? X : 1), new Ut(this.h, this.s, this.l / X);
+ }, wt.darker = function(X) {
+ return X = Math.pow(0.7, arguments.length ? X : 1), new Ut(this.h, this.s, X * this.l);
+ }, wt.rgb = function() {
+ return rr(this.h, this.s, this.l);
+ };
+ function rr(X, se, Te) {
+ var Ne, He;
+ X = isNaN(X) ? 0 : (X %= 360) < 0 ? X + 360 : X, se = isNaN(se) || se < 0 ? 0 : se > 1 ? 1 : se, Te = Te < 0 ? 0 : Te > 1 ? 1 : Te, He = Te <= 0.5 ? Te * (1 + se) : Te + se - Te * se, Ne = 2 * Te - He;
+ function Ye(nt) {
+ return nt > 360 ? nt -= 360 : nt < 0 && (nt += 360), nt < 60 ? Ne + (He - Ne) * nt / 60 : nt < 180 ? He : nt < 240 ? Ne + (He - Ne) * (240 - nt) / 60 : Ne;
+ }
+ function kt(nt) {
+ return Math.round(Ye(nt) * 255);
+ }
+ return new Wa(kt(X + 120), kt(X), kt(X - 120));
+ }
+ e.hcl = nr;
+ function nr(X, se, Te) {
+ return this instanceof nr ? (this.h = +X, this.c = +se, void (this.l = +Te)) : arguments.length < 2 ? X instanceof nr ? new nr(X.h, X.c, X.l) : X instanceof ri ? Sn(X.l, X.a, X.b) : Sn((X = jn((X = e.rgb(X)).r, X.g, X.b)).l, X.a, X.b) : new nr(X, se, Te);
+ }
+ var Er = nr.prototype = new la();
+ Er.brighter = function(X) {
+ return new nr(this.h, this.c, Math.min(100, this.l + Qr * (arguments.length ? X : 1)));
+ }, Er.darker = function(X) {
+ return new nr(this.h, this.c, Math.max(0, this.l - Qr * (arguments.length ? X : 1)));
+ }, Er.rgb = function() {
+ return Xr(this.h, this.c, this.l).rgb();
+ };
+ function Xr(X, se, Te) {
+ return isNaN(X) && (X = 0), isNaN(se) && (se = 0), new ri(Te, Math.cos(X *= ke) * se, Math.sin(X) * se);
+ }
+ e.lab = ri;
+ function ri(X, se, Te) {
+ return this instanceof ri ? (this.l = +X, this.a = +se, void (this.b = +Te)) : arguments.length < 2 ? X instanceof ri ? new ri(X.l, X.a, X.b) : X instanceof nr ? Xr(X.h, X.c, X.l) : jn((X = Wa(X)).r, X.g, X.b) : new ri(X, se, Te);
+ }
+ var Qr = 18, Oi = 0.95047, $i = 1, tn = 1.08883, fn = ri.prototype = new la();
+ fn.brighter = function(X) {
+ return new ri(Math.min(100, this.l + Qr * (arguments.length ? X : 1)), this.a, this.b);
+ }, fn.darker = function(X) {
+ return new ri(Math.max(0, this.l - Qr * (arguments.length ? X : 1)), this.a, this.b);
+ }, fn.rgb = function() {
+ return yn(this.l, this.a, this.b);
+ };
+ function yn(X, se, Te) {
+ var Ne = (X + 16) / 116, He = Ne + se / 500, Ye = Ne - Te / 200;
+ return He = Ba(He) * Oi, Ne = Ba(Ne) * $i, Ye = Ba(Ye) * tn, new Wa(ma(3.2404542 * He - 1.5371385 * Ne - 0.4985314 * Ye), ma(-0.969266 * He + 1.8760108 * Ne + 0.041556 * Ye), ma(0.0556434 * He - 0.2040259 * Ne + 1.0572252 * Ye));
+ }
+ function Sn(X, se, Te) {
+ return X > 0 ? new nr(Math.atan2(Te, se) * vt, Math.sqrt(se * se + Te * Te), X) : new nr(NaN, NaN, X);
+ }
+ function Ba(X) {
+ return X > 0.206893034 ? X * X * X : (X - 4 / 29) / 7.787037;
+ }
+ function ua(X) {
+ return X > 8856e-6 ? Math.pow(X, 1 / 3) : 7.787037 * X + 4 / 29;
+ }
+ function ma(X) {
+ return Math.round(255 * (X <= 304e-5 ? 12.92 * X : 1.055 * Math.pow(X, 1 / 2.4) - 0.055));
+ }
+ e.rgb = Wa;
+ function Wa(X, se, Te) {
+ return this instanceof Wa ? (this.r = ~~X, this.g = ~~se, void (this.b = ~~Te)) : arguments.length < 2 ? X instanceof Wa ? new Wa(X.r, X.g, X.b) : Ha("" + X, Wa, rr) : new Wa(X, se, Te);
+ }
+ function Fa(X) {
+ return new Wa(X >> 16, X >> 8 & 255, X & 255);
+ }
+ function Xo(X) {
+ return Fa(X) + "";
+ }
+ var da = Wa.prototype = new la();
+ da.brighter = function(X) {
+ X = Math.pow(0.7, arguments.length ? X : 1);
+ var se = this.r, Te = this.g, Ne = this.b, He = 30;
+ return !se && !Te && !Ne ? new Wa(He, He, He) : (se && se < He && (se = He), Te && Te < He && (Te = He), Ne && Ne < He && (Ne = He), new Wa(Math.min(255, se / X), Math.min(255, Te / X), Math.min(255, Ne / X)));
+ }, da.darker = function(X) {
+ return X = Math.pow(0.7, arguments.length ? X : 1), new Wa(X * this.r, X * this.g, X * this.b);
+ }, da.hsl = function() {
+ return vo(this.r, this.g, this.b);
+ }, da.toString = function() {
+ return "#" + Wn(this.r) + Wn(this.g) + Wn(this.b);
+ };
+ function Wn(X) {
+ return X < 16 ? "0" + Math.max(0, X).toString(16) : Math.min(255, X).toString(16);
+ }
+ function Ha(X, se, Te) {
+ var Ne = 0, He = 0, Ye = 0, kt, nt, jt;
+ if (kt = /([a-z]+)\((.*)\)/.exec(X = X.toLowerCase()), kt) switch (nt = kt[2].split(","), kt[1]) {
+ case "hsl":
+ return Te(parseFloat(nt[0]), parseFloat(nt[1]) / 100, parseFloat(nt[2]) / 100);
+ case "rgb":
+ return se(kr(nt[0]), kr(nt[1]), kr(nt[2]));
+ }
+ return (jt = Jr.get(X)) ? se(jt.r, jt.g, jt.b) : (X != null && X.charAt(0) === "#" && !isNaN(jt = parseInt(X.slice(1), 16)) && (X.length === 4 ? (Ne = (jt & 3840) >> 4, Ne = Ne >> 4 | Ne, He = jt & 240, He = He >> 4 | He, Ye = jt & 15, Ye = Ye << 4 | Ye) : X.length === 7 && (Ne = (jt & 16711680) >> 16, He = (jt & 65280) >> 8, Ye = jt & 255)), se(Ne, He, Ye));
+ }
+ function vo(X, se, Te) {
+ var Ne = Math.min(X /= 255, se /= 255, Te /= 255), He = Math.max(X, se, Te), Ye = He - Ne, kt, nt, jt = (He + Ne) / 2;
+ return Ye ? (nt = jt < 0.5 ? Ye / (He + Ne) : Ye / (2 - He - Ne), X == He ? kt = (se - Te) / Ye + (se < Te ? 6 : 0) : se == He ? kt = (Te - X) / Ye + 2 : kt = (X - se) / Ye + 4, kt *= 60) : (kt = NaN, nt = jt > 0 && jt < 1 ? 0 : kt), new Ut(kt, nt, jt);
+ }
+ function jn(X, se, Te) {
+ X = Mt(X), se = Mt(se), Te = Mt(Te);
+ var Ne = ua((0.4124564 * X + 0.3575761 * se + 0.1804375 * Te) / Oi), He = ua((0.2126729 * X + 0.7151522 * se + 0.072175 * Te) / $i), Ye = ua((0.0193339 * X + 0.119192 * se + 0.9503041 * Te) / tn);
+ return ri(116 * He - 16, 500 * (Ne - He), 200 * (He - Ye));
+ }
+ function Mt(X) {
+ return (X /= 255) <= 0.04045 ? X / 12.92 : Math.pow((X + 0.055) / 1.055, 2.4);
+ }
+ function kr(X) {
+ var se = parseFloat(X);
+ return X.charAt(X.length - 1) === "%" ? Math.round(se * 2.55) : se;
+ }
+ var Jr = e.map({ aliceblue: 15792383, antiquewhite: 16444375, aqua: 65535, aquamarine: 8388564, azure: 15794175, beige: 16119260, bisque: 16770244, black: 0, blanchedalmond: 16772045, blue: 255, blueviolet: 9055202, brown: 10824234, burlywood: 14596231, cadetblue: 6266528, chartreuse: 8388352, chocolate: 13789470, coral: 16744272, cornflowerblue: 6591981, cornsilk: 16775388, crimson: 14423100, cyan: 65535, darkblue: 139, darkcyan: 35723, darkgoldenrod: 12092939, darkgray: 11119017, darkgreen: 25600, darkgrey: 11119017, darkkhaki: 12433259, darkmagenta: 9109643, darkolivegreen: 5597999, darkorange: 16747520, darkorchid: 10040012, darkred: 9109504, darksalmon: 15308410, darkseagreen: 9419919, darkslateblue: 4734347, darkslategray: 3100495, darkslategrey: 3100495, darkturquoise: 52945, darkviolet: 9699539, deeppink: 16716947, deepskyblue: 49151, dimgray: 6908265, dimgrey: 6908265, dodgerblue: 2003199, firebrick: 11674146, floralwhite: 16775920, forestgreen: 2263842, fuchsia: 16711935, gainsboro: 14474460, ghostwhite: 16316671, gold: 16766720, goldenrod: 14329120, gray: 8421504, green: 32768, greenyellow: 11403055, grey: 8421504, honeydew: 15794160, hotpink: 16738740, indianred: 13458524, indigo: 4915330, ivory: 16777200, khaki: 15787660, lavender: 15132410, lavenderblush: 16773365, lawngreen: 8190976, lemonchiffon: 16775885, lightblue: 11393254, lightcoral: 15761536, lightcyan: 14745599, lightgoldenrodyellow: 16448210, lightgray: 13882323, lightgreen: 9498256, lightgrey: 13882323, lightpink: 16758465, lightsalmon: 16752762, lightseagreen: 2142890, lightskyblue: 8900346, lightslategray: 7833753, lightslategrey: 7833753, lightsteelblue: 11584734, lightyellow: 16777184, lime: 65280, limegreen: 3329330, linen: 16445670, magenta: 16711935, maroon: 8388608, mediumaquamarine: 6737322, mediumblue: 205, mediumorchid: 12211667, mediumpurple: 9662683, mediumseagreen: 3978097, mediumslateblue: 8087790, mediumspringgreen: 64154, mediumturquoise: 4772300, mediumvioletred: 13047173, midnightblue: 1644912, mintcream: 16121850, mistyrose: 16770273, moccasin: 16770229, navajowhite: 16768685, navy: 128, oldlace: 16643558, olive: 8421376, olivedrab: 7048739, orange: 16753920, orangered: 16729344, orchid: 14315734, palegoldenrod: 15657130, palegreen: 10025880, paleturquoise: 11529966, palevioletred: 14381203, papayawhip: 16773077, peachpuff: 16767673, peru: 13468991, pink: 16761035, plum: 14524637, powderblue: 11591910, purple: 8388736, rebeccapurple: 6697881, red: 16711680, rosybrown: 12357519, royalblue: 4286945, saddlebrown: 9127187, salmon: 16416882, sandybrown: 16032864, seagreen: 3050327, seashell: 16774638, sienna: 10506797, silver: 12632256, skyblue: 8900331, slateblue: 6970061, slategray: 7372944, slategrey: 7372944, snow: 16775930, springgreen: 65407, steelblue: 4620980, tan: 13808780, teal: 32896, thistle: 14204888, tomato: 16737095, turquoise: 4251856, violet: 15631086, wheat: 16113331, white: 16777215, whitesmoke: 16119285, yellow: 16776960, yellowgreen: 10145074 });
+ Jr.forEach(function(X, se) {
+ Jr.set(X, Fa(se));
+ });
+ function vi(X) {
+ return typeof X == "function" ? X : function() {
+ return X;
+ };
+ }
+ e.functor = vi, e.xhr = hn(G);
+ function hn(X) {
+ return function(se, Te, Ne) {
+ return arguments.length === 2 && typeof Te == "function" && (Ne = Te, Te = null), An(se, Te, X, Ne);
+ };
+ }
+ function An(X, se, Te, Ne) {
+ var He = {}, Ye = e.dispatch("beforesend", "progress", "load", "error"), kt = {}, nt = new XMLHttpRequest(), jt = null;
+ self.XDomainRequest && !("withCredentials" in nt) && /^(http(s)?:)?\/\//.test(X) && (nt = new XDomainRequest()), "onload" in nt ? nt.onload = nt.onerror = gr : nt.onreadystatechange = function() {
+ nt.readyState > 3 && gr();
+ };
+ function gr() {
+ var yr = nt.status, Hr;
+ if (!yr && Li(nt) || yr >= 200 && yr < 300 || yr === 304) {
+ try {
+ Hr = Te.call(He, nt);
+ } catch (qr) {
+ Ye.error.call(He, qr);
+ return;
+ }
+ Ye.load.call(He, Hr);
+ } else Ye.error.call(He, nt);
+ }
+ return nt.onprogress = function(yr) {
+ var Hr = e.event;
+ e.event = yr;
+ try {
+ Ye.progress.call(He, nt);
+ } finally {
+ e.event = Hr;
+ }
+ }, He.header = function(yr, Hr) {
+ return yr = (yr + "").toLowerCase(), arguments.length < 2 ? kt[yr] : (Hr == null ? delete kt[yr] : kt[yr] = Hr + "", He);
+ }, He.mimeType = function(yr) {
+ return arguments.length ? (se = yr == null ? null : yr + "", He) : se;
+ }, He.responseType = function(yr) {
+ return arguments.length ? (jt = yr, He) : jt;
+ }, He.response = function(yr) {
+ return Te = yr, He;
+ }, ["get", "post"].forEach(function(yr) {
+ He[yr] = function() {
+ return He.send.apply(He, [yr].concat(r(arguments)));
+ };
+ }), He.send = function(yr, Hr, qr) {
+ if (arguments.length === 2 && typeof Hr == "function" && (qr = Hr, Hr = null), nt.open(yr, X, true), se != null && !("accept" in kt) && (kt.accept = se + ",*/*"), nt.setRequestHeader) for (var _i in kt) nt.setRequestHeader(_i, kt[_i]);
+ return se != null && nt.overrideMimeType && nt.overrideMimeType(se), jt != null && (nt.responseType = jt), qr != null && He.on("error", qr).on("load", function(bi) {
+ qr(null, bi);
+ }), Ye.beforesend.call(He, nt), nt.send(Hr == null ? null : Hr), He;
+ }, He.abort = function() {
+ return nt.abort(), He;
+ }, e.rebind(He, Ye, "on"), Ne == null ? He : He.get(Mn(Ne));
+ }
+ function Mn(X) {
+ return X.length === 1 ? function(se, Te) {
+ X(se == null ? Te : null);
+ } : X;
+ }
+ function Li(X) {
+ var se = X.responseType;
+ return se && se !== "text" ? X.response : X.responseText;
+ }
+ e.dsv = function(X, se) {
+ var Te = new RegExp('["' + X + `
+]`), Ne = X.charCodeAt(0);
+ function He(gr, yr, Hr) {
+ arguments.length < 3 && (Hr = yr, yr = null);
+ var qr = An(gr, se, yr == null ? Ye : kt(yr), Hr);
+ return qr.row = function(_i) {
+ return arguments.length ? qr.response((yr = _i) == null ? Ye : kt(_i)) : yr;
+ }, qr;
+ }
+ function Ye(gr) {
+ return He.parse(gr.responseText);
+ }
+ function kt(gr) {
+ return function(yr) {
+ return He.parse(yr.responseText, gr);
+ };
+ }
+ He.parse = function(gr, yr) {
+ var Hr;
+ return He.parseRows(gr, function(qr, _i) {
+ if (Hr) return Hr(qr, _i - 1);
+ var bi = function(Zr) {
+ for (var ai = {}, gi = qr.length, Ii = 0; Ii < gi; ++Ii) ai[qr[Ii]] = Zr[Ii];
+ return ai;
+ };
+ Hr = yr ? function(Zr, ai) {
+ return yr(bi(Zr), ai);
+ } : bi;
+ });
+ }, He.parseRows = function(gr, yr) {
+ var Hr = {}, qr = {}, _i = [], bi = gr.length, Zr = 0, ai = 0, gi, Ii;
+ function Si() {
+ if (Zr >= bi) return qr;
+ if (Ii) return Ii = false, Hr;
+ var Ln = Zr;
+ if (gr.charCodeAt(Ln) === 34) {
+ for (var En = Ln; En++ < bi; ) if (gr.charCodeAt(En) === 34) {
+ if (gr.charCodeAt(En + 1) !== 34) break;
+ ++En;
+ }
+ Zr = En + 2;
+ var Un = gr.charCodeAt(En + 1);
+ return Un === 13 ? (Ii = true, gr.charCodeAt(En + 2) === 10 && ++Zr) : Un === 10 && (Ii = true), gr.slice(Ln + 1, En).replace(/""/g, '"');
+ }
+ for (; Zr < bi; ) {
+ var Un = gr.charCodeAt(Zr++), ia = 1;
+ if (Un === 10) Ii = true;
+ else if (Un === 13) Ii = true, gr.charCodeAt(Zr) === 10 && (++Zr, ++ia);
+ else if (Un !== Ne) continue;
+ return gr.slice(Ln, Zr - ia);
+ }
+ return gr.slice(Ln);
+ }
+ for (; (gi = Si()) !== qr; ) {
+ for (var ei = []; gi !== Hr && gi !== qr; ) ei.push(gi), gi = Si();
+ yr && (ei = yr(ei, ai++)) == null || _i.push(ei);
+ }
+ return _i;
+ }, He.format = function(gr) {
+ if (Array.isArray(gr[0])) return He.formatRows(gr);
+ var yr = new U(), Hr = [];
+ return gr.forEach(function(qr) {
+ for (var _i in qr) yr.has(_i) || Hr.push(yr.add(_i));
+ }), [Hr.map(jt).join(X)].concat(gr.map(function(qr) {
+ return Hr.map(function(_i) {
+ return jt(qr[_i]);
+ }).join(X);
+ })).join(`
+`);
+ }, He.formatRows = function(gr) {
+ return gr.map(nt).join(`
+`);
+ };
+ function nt(gr) {
+ return gr.map(jt).join(X);
+ }
+ function jt(gr) {
+ return Te.test(gr) ? '"' + gr.replace(/\"/g, '""') + '"' : gr;
+ }
+ return He;
+ }, e.csv = e.dsv(",", "text/csv"), e.tsv = e.dsv(" ", "text/tab-separated-values");
+ var _n, ya, $n, Ma, _o = this[j(this, "requestAnimationFrame")] || function(X) {
+ setTimeout(X, 17);
+ };
+ e.timer = function() {
+ No.apply(this, arguments);
+ };
+ function No(X, se, Te) {
+ var Ne = arguments.length;
+ Ne < 2 && (se = 0), Ne < 3 && (Te = Date.now());
+ var He = Te + se, Ye = { c: X, t: He, n: null };
+ return ya ? ya.n = Ye : _n = Ye, ya = Ye, $n || (Ma = clearTimeout(Ma), $n = 1, _o(po)), Ye;
+ }
+ function po() {
+ var X = Lo(), se = ko() - X;
+ se > 24 ? (isFinite(se) && (clearTimeout(Ma), Ma = setTimeout(po, se)), $n = 0) : ($n = 1, _o(po));
+ }
+ e.timer.flush = function() {
+ Lo(), ko();
+ };
+ function Lo() {
+ for (var X = Date.now(), se = _n; se; ) X >= se.t && se.c(X - se.t) && (se.c = null), se = se.n;
+ return X;
+ }
+ function ko() {
+ for (var X, se = _n, Te = 1 / 0; se; ) se.c ? (se.t < Te && (Te = se.t), se = (X = se).n) : se = X ? X.n = se.n : _n = se.n;
+ return ya = X, Te;
+ }
+ e.round = function(X, se) {
+ return se ? Math.round(X * (se = Math.pow(10, se))) / se : Math.round(X);
+ }, e.geom = {};
+ function Ds(X) {
+ return X[0];
+ }
+ function Fs(X) {
+ return X[1];
+ }
+ e.geom.hull = function(X) {
+ var se = Ds, Te = Fs;
+ if (arguments.length) return Ne(X);
+ function Ne(He) {
+ if (He.length < 3) return [];
+ var Ye = vi(se), kt = vi(Te), nt, jt = He.length, gr = [], yr = [];
+ for (nt = 0; nt < jt; nt++) gr.push([+Ye.call(this, He[nt], nt), +kt.call(this, He[nt], nt), nt]);
+ for (gr.sort(ul), nt = 0; nt < jt; nt++) yr.push([gr[nt][0], -gr[nt][1]]);
+ var Hr = ll(gr), qr = ll(yr), _i = qr[0] === Hr[0], bi = qr[qr.length - 1] === Hr[Hr.length - 1], Zr = [];
+ for (nt = Hr.length - 1; nt >= 0; --nt) Zr.push(He[gr[Hr[nt]][2]]);
+ for (nt = +_i; nt < qr.length - bi; ++nt) Zr.push(He[gr[qr[nt]][2]]);
+ return Zr;
+ }
+ return Ne.x = function(He) {
+ return arguments.length ? (se = He, Ne) : se;
+ }, Ne.y = function(He) {
+ return arguments.length ? (Te = He, Ne) : Te;
+ }, Ne;
+ };
+ function ll(X) {
+ for (var se = X.length, Te = [0, 1], Ne = 2, He = 2; He < se; He++) {
+ for (; Ne > 1 && ar(X[Te[Ne - 2]], X[Te[Ne - 1]], X[He]) <= 0; ) --Ne;
+ Te[Ne++] = He;
+ }
+ return Te.slice(0, Ne);
+ }
+ function ul(X, se) {
+ return X[0] - se[0] || X[1] - se[1];
+ }
+ e.geom.polygon = function(X) {
+ return ie(X, zl), X;
+ };
+ var zl = e.geom.polygon.prototype = [];
+ zl.area = function() {
+ for (var X = -1, se = this.length, Te, Ne = this[se - 1], He = 0; ++X < se; ) Te = Ne, Ne = this[X], He += Te[1] * Ne[0] - Te[0] * Ne[1];
+ return He * 0.5;
+ }, zl.centroid = function(X) {
+ var se = -1, Te = this.length, Ne = 0, He = 0, Ye, kt = this[Te - 1], nt;
+ for (arguments.length || (X = -1 / (6 * this.area())); ++se < Te; ) Ye = kt, kt = this[se], nt = Ye[0] * kt[1] - kt[0] * Ye[1], Ne += (Ye[0] + kt[0]) * nt, He += (Ye[1] + kt[1]) * nt;
+ return [Ne * X, He * X];
+ }, zl.clip = function(X) {
+ for (var se, Te = As(X), Ne = -1, He = this.length - As(this), Ye, kt, nt = this[He - 1], jt, gr, yr; ++Ne < He; ) {
+ for (se = X.slice(), X.length = 0, jt = this[Ne], gr = se[(kt = se.length - Te) - 1], Ye = -1; ++Ye < kt; ) yr = se[Ye], us(yr, nt, jt) ? (us(gr, nt, jt) || X.push(il(gr, yr, nt, jt)), X.push(yr)) : us(gr, nt, jt) && X.push(il(gr, yr, nt, jt)), gr = yr;
+ Te && X.push(X[0]), nt = jt;
+ }
+ return X;
+ };
+ function us(X, se, Te) {
+ return (Te[0] - se[0]) * (X[1] - se[1]) < (Te[1] - se[1]) * (X[0] - se[0]);
+ }
+ function il(X, se, Te, Ne) {
+ var He = X[0], Ye = Te[0], kt = se[0] - He, nt = Ne[0] - Ye, jt = X[1], gr = Te[1], yr = se[1] - jt, Hr = Ne[1] - gr, qr = (nt * (jt - gr) - Hr * (He - Ye)) / (Hr * kt - nt * yr);
+ return [He + qr * kt, jt + qr * yr];
+ }
+ function As(X) {
+ var se = X[0], Te = X[X.length - 1];
+ return !(se[0] - Te[0] || se[1] - Te[1]);
+ }
+ var cl, Ks, zs, Io = [], ls, Yl, Su = [];
+ function nc() {
+ Os(this), this.edge = this.site = this.circle = null;
+ }
+ function bs(X) {
+ var se = Io.pop() || new nc();
+ return se.site = X, se;
+ }
+ function Rn(X) {
+ Oo(X), zs.remove(X), Io.push(X), Os(X);
+ }
+ function _a(X) {
+ var se = X.circle, Te = se.x, Ne = se.cy, He = { x: Te, y: Ne }, Ye = X.P, kt = X.N, nt = [X];
+ Rn(X);
+ for (var jt = Ye; jt.circle && p(Te - jt.circle.x) < Je && p(Ne - jt.circle.cy) < Je; ) Ye = jt.P, nt.unshift(jt), Rn(jt), jt = Ye;
+ nt.unshift(jt), Oo(jt);
+ for (var gr = kt; gr.circle && p(Te - gr.circle.x) < Je && p(Ne - gr.circle.cy) < Je; ) kt = gr.N, nt.push(gr), Rn(gr), gr = kt;
+ nt.push(gr), Oo(gr);
+ var yr = nt.length, Hr;
+ for (Hr = 1; Hr < yr; ++Hr) gr = nt[Hr], jt = nt[Hr - 1], pl(gr.edge, jt.site, gr.site, He);
+ jt = nt[0], gr = nt[yr - 1], gr.edge = rf(jt.site, gr.site, null, He), aa(jt), aa(gr);
+ }
+ function Vu(X) {
+ for (var se = X.x, Te = X.y, Ne, He, Ye, kt, nt = zs._; nt; ) if (Ye = Ol(nt, Te) - se, Ye > Je) nt = nt.L;
+ else if (kt = se - xo(nt, Te), kt > Je) {
+ if (!nt.R) {
+ Ne = nt;
+ break;
+ }
+ nt = nt.R;
+ } else {
+ Ye > -1e-6 ? (Ne = nt.P, He = nt) : kt > -1e-6 ? (Ne = nt, He = nt.N) : Ne = He = nt;
+ break;
+ }
+ var jt = bs(X);
+ if (zs.insert(Ne, jt), !(!Ne && !He)) {
+ if (Ne === He) {
+ Oo(Ne), He = bs(Ne.site), zs.insert(jt, He), jt.edge = He.edge = rf(Ne.site, jt.site), aa(Ne), aa(He);
+ return;
+ }
+ if (!He) {
+ jt.edge = rf(Ne.site, jt.site);
+ return;
+ }
+ Oo(Ne), Oo(He);
+ var gr = Ne.site, yr = gr.x, Hr = gr.y, qr = X.x - yr, _i = X.y - Hr, bi = He.site, Zr = bi.x - yr, ai = bi.y - Hr, gi = 2 * (qr * ai - _i * Zr), Ii = qr * qr + _i * _i, Si = Zr * Zr + ai * ai, ei = { x: (ai * Ii - _i * Si) / gi + yr, y: (qr * Si - Zr * Ii) / gi + Hr };
+ pl(He.edge, gr, bi, ei), jt.edge = rf(gr, X, null, ei), He.edge = rf(X, bi, null, ei), aa(Ne), aa(He);
+ }
+ }
+ function Ol(X, se) {
+ var Te = X.site, Ne = Te.x, He = Te.y, Ye = He - se;
+ if (!Ye) return Ne;
+ var kt = X.P;
+ if (!kt) return -1 / 0;
+ Te = kt.site;
+ var nt = Te.x, jt = Te.y, gr = jt - se;
+ if (!gr) return nt;
+ var yr = nt - Ne, Hr = 1 / Ye - 1 / gr, qr = yr / gr;
+ return Hr ? (-qr + Math.sqrt(qr * qr - 2 * Hr * (yr * yr / (-2 * gr) - jt + gr / 2 + He - Ye / 2))) / Hr + Ne : (Ne + nt) / 2;
+ }
+ function xo(X, se) {
+ var Te = X.N;
+ if (Te) return Ol(Te, se);
+ var Ne = X.site;
+ return Ne.y === se ? Ne.x : 1 / 0;
+ }
+ function Kl(X) {
+ this.site = X, this.edges = [];
+ }
+ Kl.prototype.prepare = function() {
+ for (var X = this.edges, se = X.length, Te; se--; ) Te = X[se].edge, (!Te.b || !Te.a) && X.splice(se, 1);
+ return X.sort(Hl), X.length;
+ };
+ function Ns(X) {
+ for (var se = X[0][0], Te = X[1][0], Ne = X[0][1], He = X[1][1], Ye, kt, nt, jt, gr = Ks, yr = gr.length, Hr, qr, _i, bi, Zr, ai; yr--; ) if (Hr = gr[yr], !(!Hr || !Hr.prepare())) for (_i = Hr.edges, bi = _i.length, qr = 0; qr < bi; ) ai = _i[qr].end(), nt = ai.x, jt = ai.y, Zr = _i[++qr % bi].start(), Ye = Zr.x, kt = Zr.y, (p(nt - Ye) > Je || p(jt - kt) > Je) && (_i.splice(qr, 0, new Zc(Vf(Hr.site, ai, p(nt - se) < Je && He - jt > Je ? { x: se, y: p(Ye - se) < Je ? kt : He } : p(jt - He) < Je && Te - nt > Je ? { x: p(kt - He) < Je ? Ye : Te, y: He } : p(nt - Te) < Je && jt - Ne > Je ? { x: Te, y: p(Ye - Te) < Je ? kt : Ne } : p(jt - Ne) < Je && nt - se > Je ? { x: p(kt - Ne) < Je ? Ye : se, y: Ne } : null), Hr.site, null)), ++bi);
+ }
+ function Hl(X, se) {
+ return se.angle - X.angle;
+ }
+ function ac() {
+ Os(this), this.x = this.y = this.arc = this.site = this.cy = null;
+ }
+ function aa(X) {
+ var se = X.P, Te = X.N;
+ if (!(!se || !Te)) {
+ var Ne = se.site, He = X.site, Ye = Te.site;
+ if (Ne !== Ye) {
+ var kt = He.x, nt = He.y, jt = Ne.x - kt, gr = Ne.y - nt, yr = Ye.x - kt, ai = Ye.y - nt, Hr = 2 * (jt * ai - gr * yr);
+ if (!(Hr >= -1e-12)) {
+ var qr = jt * jt + gr * gr, _i = yr * yr + ai * ai, bi = (ai * qr - gr * _i) / Hr, Zr = (jt * _i - yr * qr) / Hr, ai = Zr + nt, gi = Su.pop() || new ac();
+ gi.arc = X, gi.site = He, gi.x = bi + kt, gi.y = ai + Math.sqrt(bi * bi + Zr * Zr), gi.cy = ai, X.circle = gi;
+ for (var Ii = null, Si = Yl._; Si; ) if (gi.y < Si.y || gi.y === Si.y && gi.x <= Si.x) if (Si.L) Si = Si.L;
+ else {
+ Ii = Si.P;
+ break;
+ }
+ else if (Si.R) Si = Si.R;
+ else {
+ Ii = Si;
+ break;
+ }
+ Yl.insert(Ii, gi), Ii || (ls = gi);
+ }
+ }
+ }
+ }
+ function Oo(X) {
+ var se = X.circle;
+ se && (se.P || (ls = se.N), Yl.remove(se), Su.push(se), Os(se), X.circle = null);
+ }
+ function qo(X, se, Te, Ne) {
+ return function(He) {
+ var Ye = He.a, kt = He.b, nt = Ye.x, jt = Ye.y, gr = kt.x, yr = kt.y, Hr = 0, qr = 1, _i = gr - nt, bi = yr - jt, Zr;
+ if (Zr = X - nt, !(!_i && Zr > 0)) {
+ if (Zr /= _i, _i < 0) {
+ if (Zr < Hr) return;
+ Zr < qr && (qr = Zr);
+ } else if (_i > 0) {
+ if (Zr > qr) return;
+ Zr > Hr && (Hr = Zr);
+ }
+ if (Zr = Te - nt, !(!_i && Zr < 0)) {
+ if (Zr /= _i, _i < 0) {
+ if (Zr > qr) return;
+ Zr > Hr && (Hr = Zr);
+ } else if (_i > 0) {
+ if (Zr < Hr) return;
+ Zr < qr && (qr = Zr);
+ }
+ if (Zr = se - jt, !(!bi && Zr > 0)) {
+ if (Zr /= bi, bi < 0) {
+ if (Zr < Hr) return;
+ Zr < qr && (qr = Zr);
+ } else if (bi > 0) {
+ if (Zr > qr) return;
+ Zr > Hr && (Hr = Zr);
+ }
+ if (Zr = Ne - jt, !(!bi && Zr < 0)) {
+ if (Zr /= bi, bi < 0) {
+ if (Zr > qr) return;
+ Zr > Hr && (Hr = Zr);
+ } else if (bi > 0) {
+ if (Zr < Hr) return;
+ Zr < qr && (qr = Zr);
+ }
+ return Hr > 0 && (He.a = { x: nt + Hr * _i, y: jt + Hr * bi }), qr < 1 && (He.b = { x: nt + qr * _i, y: jt + qr * bi }), He;
+ }
+ }
+ }
+ }
+ };
+ }
+ function ql(X) {
+ for (var se = cl, Te = qo(X[0][0], X[0][1], X[1][0], X[1][1]), Ne = se.length, He; Ne--; ) He = se[Ne], (!Pc(He, X) || !Te(He) || p(He.a.x - He.b.x) < Je && p(He.a.y - He.b.y) < Je) && (He.a = He.b = null, se.splice(Ne, 1));
+ }
+ function Pc(X, se) {
+ var Te = X.b;
+ if (Te) return true;
+ var Ne = X.a, He = se[0][0], Ye = se[1][0], kt = se[0][1], nt = se[1][1], jt = X.l, gr = X.r, yr = jt.x, Hr = jt.y, qr = gr.x, _i = gr.y, bi = (yr + qr) / 2, Zr = (Hr + _i) / 2, ai, gi;
+ if (_i === Hr) {
+ if (bi < He || bi >= Ye) return;
+ if (yr > qr) {
+ if (!Ne) Ne = { x: bi, y: kt };
+ else if (Ne.y >= nt) return;
+ Te = { x: bi, y: nt };
+ } else {
+ if (!Ne) Ne = { x: bi, y: nt };
+ else if (Ne.y < kt) return;
+ Te = { x: bi, y: kt };
+ }
+ } else if (ai = (yr - qr) / (_i - Hr), gi = Zr - ai * bi, ai < -1 || ai > 1) if (yr > qr) {
+ if (!Ne) Ne = { x: (kt - gi) / ai, y: kt };
+ else if (Ne.y >= nt) return;
+ Te = { x: (nt - gi) / ai, y: nt };
+ } else {
+ if (!Ne) Ne = { x: (nt - gi) / ai, y: nt };
+ else if (Ne.y < kt) return;
+ Te = { x: (kt - gi) / ai, y: kt };
+ }
+ else if (Hr < _i) {
+ if (!Ne) Ne = { x: He, y: ai * He + gi };
+ else if (Ne.x >= Ye) return;
+ Te = { x: Ye, y: ai * Ye + gi };
+ } else {
+ if (!Ne) Ne = { x: Ye, y: ai * Ye + gi };
+ else if (Ne.x < He) return;
+ Te = { x: He, y: ai * He + gi };
+ }
+ return X.a = Ne, X.b = Te, true;
+ }
+ function Do(X, se) {
+ this.l = X, this.r = se, this.a = this.b = null;
+ }
+ function rf(X, se, Te, Ne) {
+ var He = new Do(X, se);
+ return cl.push(He), Te && pl(He, X, se, Te), Ne && pl(He, se, X, Ne), Ks[X.i].edges.push(new Zc(He, X, se)), Ks[se.i].edges.push(new Zc(He, se, X)), He;
+ }
+ function Vf(X, se, Te) {
+ var Ne = new Do(X, null);
+ return Ne.a = se, Ne.b = Te, cl.push(Ne), Ne;
+ }
+ function pl(X, se, Te, Ne) {
+ !X.a && !X.b ? (X.a = Ne, X.l = se, X.r = Te) : X.l === Te ? X.b = Ne : X.a = Ne;
+ }
+ function Zc(X, se, Te) {
+ var Ne = X.a, He = X.b;
+ this.edge = X, this.site = se, this.angle = Te ? Math.atan2(Te.y - se.y, Te.x - se.x) : X.l === se ? Math.atan2(He.x - Ne.x, Ne.y - He.y) : Math.atan2(Ne.x - He.x, He.y - Ne.y);
+ }
+ Zc.prototype = { start: function() {
+ return this.edge.l === this.site ? this.edge.a : this.edge.b;
+ }, end: function() {
+ return this.edge.l === this.site ? this.edge.b : this.edge.a;
+ } };
+ function Jl() {
+ this._ = null;
+ }
+ function Os(X) {
+ X.U = X.C = X.L = X.R = X.P = X.N = null;
+ }
+ Jl.prototype = { insert: function(X, se) {
+ var Te, Ne, He;
+ if (X) {
+ if (se.P = X, se.N = X.N, X.N && (X.N.P = se), X.N = se, X.R) {
+ for (X = X.R; X.L; ) X = X.L;
+ X.L = se;
+ } else X.R = se;
+ Te = X;
+ } else this._ ? (X = Cf(this._), se.P = null, se.N = X, X.P = X.L = se, Te = X) : (se.P = se.N = null, this._ = se, Te = null);
+ for (se.L = se.R = null, se.U = Te, se.C = true, X = se; Te && Te.C; ) Ne = Te.U, Te === Ne.L ? (He = Ne.R, He && He.C ? (Te.C = He.C = false, Ne.C = true, X = Ne) : (X === Te.R && (yu(this, Te), X = Te, Te = X.U), Te.C = false, Ne.C = true, oc(this, Ne))) : (He = Ne.L, He && He.C ? (Te.C = He.C = false, Ne.C = true, X = Ne) : (X === Te.L && (oc(this, Te), X = Te, Te = X.U), Te.C = false, Ne.C = true, yu(this, Ne))), Te = X.U;
+ this._.C = false;
+ }, remove: function(X) {
+ X.N && (X.N.P = X.P), X.P && (X.P.N = X.N), X.N = X.P = null;
+ var se = X.U, Te, Ne = X.L, He = X.R, Ye, kt;
+ if (Ne ? He ? Ye = Cf(He) : Ye = Ne : Ye = He, se ? se.L === X ? se.L = Ye : se.R = Ye : this._ = Ye, Ne && He ? (kt = Ye.C, Ye.C = X.C, Ye.L = Ne, Ne.U = Ye, Ye !== He ? (se = Ye.U, Ye.U = X.U, X = Ye.R, se.L = X, Ye.R = He, He.U = Ye) : (Ye.U = se, se = Ye, X = Ye.R)) : (kt = X.C, X = Ye), X && (X.U = se), !kt) {
+ if (X && X.C) {
+ X.C = false;
+ return;
+ }
+ do {
+ if (X === this._) break;
+ if (X === se.L) {
+ if (Te = se.R, Te.C && (Te.C = false, se.C = true, yu(this, se), Te = se.R), Te.L && Te.L.C || Te.R && Te.R.C) {
+ (!Te.R || !Te.R.C) && (Te.L.C = false, Te.C = true, oc(this, Te), Te = se.R), Te.C = se.C, se.C = Te.R.C = false, yu(this, se), X = this._;
+ break;
+ }
+ } else if (Te = se.L, Te.C && (Te.C = false, se.C = true, oc(this, se), Te = se.L), Te.L && Te.L.C || Te.R && Te.R.C) {
+ (!Te.L || !Te.L.C) && (Te.R.C = false, Te.C = true, yu(this, Te), Te = se.L), Te.C = se.C, se.C = Te.L.C = false, oc(this, se), X = this._;
+ break;
+ }
+ Te.C = true, X = se, se = se.U;
+ } while (!X.C);
+ X && (X.C = false);
+ }
+ } };
+ function yu(X, se) {
+ var Te = se, Ne = se.R, He = Te.U;
+ He ? He.L === Te ? He.L = Ne : He.R = Ne : X._ = Ne, Ne.U = He, Te.U = Ne, Te.R = Ne.L, Te.R && (Te.R.U = Te), Ne.L = Te;
+ }
+ function oc(X, se) {
+ var Te = se, Ne = se.L, He = Te.U;
+ He ? He.L === Te ? He.L = Ne : He.R = Ne : X._ = Ne, Ne.U = He, Te.U = Ne, Te.L = Ne.R, Te.L && (Te.L.U = Te), Ne.R = Te;
+ }
+ function Cf(X) {
+ for (; X.L; ) X = X.L;
+ return X;
+ }
+ function sc(X, se) {
+ var Te = X.sort(jh).pop(), Ne, He, Ye;
+ for (cl = [], Ks = new Array(X.length), zs = new Jl(), Yl = new Jl(); ; ) if (Ye = ls, Te && (!Ye || Te.y < Ye.y || Te.y === Ye.y && Te.x < Ye.x)) (Te.x !== Ne || Te.y !== He) && (Ks[Te.i] = new Kl(Te), Vu(Te), Ne = Te.x, He = Te.y), Te = X.pop();
+ else if (Ye) _a(Ye.arc);
+ else break;
+ se && (ql(se), Ns(se));
+ var kt = { cells: Ks, edges: cl };
+ return zs = Yl = cl = Ks = null, kt;
+ }
+ function jh(X, se) {
+ return se.y - X.y || se.x - X.x;
+ }
+ e.geom.voronoi = function(X) {
+ var se = Ds, Te = Fs, Ne = se, He = Te, Ye = Lf;
+ if (X) return kt(X);
+ function kt(jt) {
+ var gr = new Array(jt.length), yr = Ye[0][0], Hr = Ye[0][1], qr = Ye[1][0], _i = Ye[1][1];
+ return sc(nt(jt), Ye).cells.forEach(function(bi, Zr) {
+ var ai = bi.edges, gi = bi.site, Ii = gr[Zr] = ai.length ? ai.map(function(Si) {
+ var ei = Si.start();
+ return [ei.x, ei.y];
+ }) : gi.x >= yr && gi.x <= qr && gi.y >= Hr && gi.y <= _i ? [[yr, _i], [qr, _i], [qr, Hr], [yr, Hr]] : [];
+ Ii.point = jt[Zr];
+ }), gr;
+ }
+ function nt(jt) {
+ return jt.map(function(gr, yr) {
+ return { x: Math.round(Ne(gr, yr) / Je) * Je, y: Math.round(He(gr, yr) / Je) * Je, i: yr };
+ });
+ }
+ return kt.links = function(jt) {
+ return sc(nt(jt)).edges.filter(function(gr) {
+ return gr.l && gr.r;
+ }).map(function(gr) {
+ return { source: jt[gr.l.i], target: jt[gr.r.i] };
+ });
+ }, kt.triangles = function(jt) {
+ var gr = [];
+ return sc(nt(jt)).cells.forEach(function(yr, Hr) {
+ for (var qr = yr.site, _i = yr.edges.sort(Hl), bi = -1, Zr = _i.length, ai, gi, Ii = _i[Zr - 1].edge, Si = Ii.l === qr ? Ii.r : Ii.l; ++bi < Zr; ) ai = Ii, gi = Si, Ii = _i[bi].edge, Si = Ii.l === qr ? Ii.r : Ii.l, Hr < gi.i && Hr < Si.i && cs(qr, gi, Si) < 0 && gr.push([jt[Hr], jt[gi.i], jt[Si.i]]);
+ }), gr;
+ }, kt.x = function(jt) {
+ return arguments.length ? (Ne = vi(se = jt), kt) : se;
+ }, kt.y = function(jt) {
+ return arguments.length ? (He = vi(Te = jt), kt) : Te;
+ }, kt.clipExtent = function(jt) {
+ return arguments.length ? (Ye = jt == null ? Lf : jt, kt) : Ye === Lf ? null : Ye;
+ }, kt.size = function(jt) {
+ return arguments.length ? kt.clipExtent(jt && [[0, 0], jt]) : Ye === Lf ? null : Ye && Ye[1];
+ }, kt;
+ };
+ var Lf = [[-1e6, -1e6], [1e6, 1e6]];
+ function cs(X, se, Te) {
+ return (X.x - Te.x) * (se.y - X.y) - (X.x - se.x) * (Te.y - X.y);
+ }
+ e.geom.delaunay = function(X) {
+ return e.geom.voronoi().triangles(X);
+ }, e.geom.quadtree = function(X, se, Te, Ne, He) {
+ var Ye = Ds, kt = Fs, nt;
+ if (nt = arguments.length) return Ye = nf, kt = Gf, nt === 3 && (He = Te, Ne = se, Te = se = 0), jt(X);
+ function jt(gr) {
+ var yr, Hr = vi(Ye), qr = vi(kt), _i, bi, Zr, ai, gi, Ii, Si, ei;
+ if (se != null) gi = se, Ii = Te, Si = Ne, ei = He;
+ else if (Si = ei = -(gi = Ii = 1 / 0), _i = [], bi = [], ai = gr.length, nt) for (Zr = 0; Zr < ai; ++Zr) yr = gr[Zr], yr.x < gi && (gi = yr.x), yr.y < Ii && (Ii = yr.y), yr.x > Si && (Si = yr.x), yr.y > ei && (ei = yr.y), _i.push(yr.x), bi.push(yr.y);
+ else for (Zr = 0; Zr < ai; ++Zr) {
+ var Ln = +Hr(yr = gr[Zr], Zr), En = +qr(yr, Zr);
+ Ln < gi && (gi = Ln), En < Ii && (Ii = En), Ln > Si && (Si = Ln), En > ei && (ei = En), _i.push(Ln), bi.push(En);
+ }
+ var Un = Si - gi, ia = ei - Ii;
+ Un > ia ? ei = Ii + Un : Si = gi + ia;
+ function Ea(Da, go, Is, Ms, Xs, Gn, ja, Fo) {
+ if (!(isNaN(Is) || isNaN(Ms))) if (Da.leaf) {
+ var Uo = Da.x, $s = Da.y;
+ if (Uo != null) if (p(Uo - Is) + p($s - Ms) < 0.01) Ia(Da, go, Is, Ms, Xs, Gn, ja, Fo);
+ else {
+ var Sl = Da.point;
+ Da.x = Da.y = Da.point = null, Ia(Da, Sl, Uo, $s, Xs, Gn, ja, Fo), Ia(Da, go, Is, Ms, Xs, Gn, ja, Fo);
+ }
+ else Da.x = Is, Da.y = Ms, Da.point = go;
+ } else Ia(Da, go, Is, Ms, Xs, Gn, ja, Fo);
+ }
+ function Ia(Da, go, Is, Ms, Xs, Gn, ja, Fo) {
+ var Uo = (Xs + ja) * 0.5, $s = (Gn + Fo) * 0.5, Sl = Is >= Uo, bu = Ms >= $s, dl = bu << 1 | Sl;
+ Da.leaf = false, Da = Da.nodes[dl] || (Da.nodes[dl] = $l()), Sl ? Xs = Uo : ja = Uo, bu ? Gn = $s : Fo = $s, Ea(Da, go, Is, Ms, Xs, Gn, ja, Fo);
+ }
+ var yo = $l();
+ if (yo.add = function(Da) {
+ Ea(yo, Da, +Hr(Da, ++Zr), +qr(Da, Zr), gi, Ii, Si, ei);
+ }, yo.visit = function(Da) {
+ fl(Da, yo, gi, Ii, Si, ei);
+ }, yo.find = function(Da) {
+ return lc(yo, Da[0], Da[1], gi, Ii, Si, ei);
+ }, Zr = -1, se == null) {
+ for (; ++Zr < ai; ) Ea(yo, gr[Zr], _i[Zr], bi[Zr], gi, Ii, Si, ei);
+ --Zr;
+ } else gr.forEach(yo.add);
+ return _i = bi = gr = yr = null, yo;
+ }
+ return jt.x = function(gr) {
+ return arguments.length ? (Ye = gr, jt) : Ye;
+ }, jt.y = function(gr) {
+ return arguments.length ? (kt = gr, jt) : kt;
+ }, jt.extent = function(gr) {
+ return arguments.length ? (gr == null ? se = Te = Ne = He = null : (se = +gr[0][0], Te = +gr[0][1], Ne = +gr[1][0], He = +gr[1][1]), jt) : se == null ? null : [[se, Te], [Ne, He]];
+ }, jt.size = function(gr) {
+ return arguments.length ? (gr == null ? se = Te = Ne = He = null : (se = Te = 0, Ne = +gr[0], He = +gr[1]), jt) : se == null ? null : [Ne - se, He - Te];
+ }, jt;
+ };
+ function nf(X) {
+ return X.x;
+ }
+ function Gf(X) {
+ return X.y;
+ }
+ function $l() {
+ return { leaf: true, nodes: [], point: null, x: null, y: null };
+ }
+ function fl(X, se, Te, Ne, He, Ye) {
+ if (!X(se, Te, Ne, He, Ye)) {
+ var kt = (Te + He) * 0.5, nt = (Ne + Ye) * 0.5, jt = se.nodes;
+ jt[0] && fl(X, jt[0], Te, Ne, kt, nt), jt[1] && fl(X, jt[1], kt, Ne, He, nt), jt[2] && fl(X, jt[2], Te, nt, kt, Ye), jt[3] && fl(X, jt[3], kt, nt, He, Ye);
+ }
+ }
+ function lc(X, se, Te, Ne, He, Ye, kt) {
+ var nt = 1 / 0, jt;
+ return function gr(yr, Hr, qr, _i, bi) {
+ if (!(Hr > Ye || qr > kt || _i < Ne || bi < He)) {
+ if (Zr = yr.point) {
+ var Zr, ai = se - yr.x, gi = Te - yr.y, Ii = ai * ai + gi * gi;
+ if (Ii < nt) {
+ var Si = Math.sqrt(nt = Ii);
+ Ne = se - Si, He = Te - Si, Ye = se + Si, kt = Te + Si, jt = Zr;
+ }
+ }
+ for (var ei = yr.nodes, Ln = (Hr + _i) * 0.5, En = (qr + bi) * 0.5, Un = se >= Ln, ia = Te >= En, Ea = ia << 1 | Un, Ia = Ea + 4; Ea < Ia; ++Ea) if (yr = ei[Ea & 3]) switch (Ea & 3) {
+ case 0:
+ gr(yr, Hr, qr, Ln, En);
+ break;
+ case 1:
+ gr(yr, Ln, qr, _i, En);
+ break;
+ case 2:
+ gr(yr, Hr, En, Ln, bi);
+ break;
+ case 3:
+ gr(yr, Ln, En, _i, bi);
+ break;
+ }
+ }
+ }(X, Ne, He, Ye, kt), jt;
+ }
+ e.interpolateRgb = Fu;
+ function Fu(X, se) {
+ X = e.rgb(X), se = e.rgb(se);
+ var Te = X.r, Ne = X.g, He = X.b, Ye = se.r - Te, kt = se.g - Ne, nt = se.b - He;
+ return function(jt) {
+ return "#" + Wn(Math.round(Te + Ye * jt)) + Wn(Math.round(Ne + kt * jt)) + Wn(Math.round(He + nt * jt));
+ };
+ }
+ e.interpolateObject = Es;
+ function Es(X, se) {
+ var Te = {}, Ne = {}, He;
+ for (He in X) He in se ? Te[He] = xl(X[He], se[He]) : Ne[He] = X[He];
+ for (He in se) He in X || (Ne[He] = se[He]);
+ return function(Ye) {
+ for (He in Te) Ne[He] = Te[He](Ye);
+ return Ne;
+ };
+ }
+ e.interpolateNumber = Hs;
+ function Hs(X, se) {
+ return X = +X, se = +se, function(Te) {
+ return X * (1 - Te) + se * Te;
+ };
+ }
+ e.interpolateString = Go;
+ function Go(X, se) {
+ var Te = ps.lastIndex = uc.lastIndex = 0, Ne, He, Ye, kt = -1, nt = [], jt = [];
+ for (X = X + "", se = se + ""; (Ne = ps.exec(X)) && (He = uc.exec(se)); ) (Ye = He.index) > Te && (Ye = se.slice(Te, Ye), nt[kt] ? nt[kt] += Ye : nt[++kt] = Ye), (Ne = Ne[0]) === (He = He[0]) ? nt[kt] ? nt[kt] += He : nt[++kt] = He : (nt[++kt] = null, jt.push({ i: kt, x: Hs(Ne, He) })), Te = uc.lastIndex;
+ return Te < se.length && (Ye = se.slice(Te), nt[kt] ? nt[kt] += Ye : nt[++kt] = Ye), nt.length < 2 ? jt[0] ? (se = jt[0].x, function(gr) {
+ return se(gr) + "";
+ }) : function() {
+ return se;
+ } : (se = jt.length, function(gr) {
+ for (var yr = 0, Hr; yr < se; ++yr) nt[(Hr = jt[yr]).i] = Hr.x(gr);
+ return nt.join("");
+ });
+ }
+ var ps = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, uc = new RegExp(ps.source, "g");
+ e.interpolate = xl;
+ function xl(X, se) {
+ for (var Te = e.interpolators.length, Ne; --Te >= 0 && !(Ne = e.interpolators[Te](X, se)); ) ;
+ return Ne;
+ }
+ e.interpolators = [function(X, se) {
+ var Te = typeof se;
+ return (Te === "string" ? Jr.has(se.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(se) ? Fu : Go : se instanceof la ? Fu : Array.isArray(se) ? Gu : Te === "object" && isNaN(se) ? Es : Hs)(X, se);
+ }], e.interpolateArray = Gu;
+ function Gu(X, se) {
+ var Te = [], Ne = [], He = X.length, Ye = se.length, kt = Math.min(X.length, se.length), nt;
+ for (nt = 0; nt < kt; ++nt) Te.push(xl(X[nt], se[nt]));
+ for (; nt < He; ++nt) Ne[nt] = X[nt];
+ for (; nt < Ye; ++nt) Ne[nt] = se[nt];
+ return function(jt) {
+ for (nt = 0; nt < kt; ++nt) Ne[nt] = Te[nt](jt);
+ return Ne;
+ };
+ }
+ var qs = function() {
+ return G;
+ }, od = e.map({ linear: qs, poly: Hf, quad: function() {
+ return af;
+ }, cubic: function() {
+ return Hu;
+ }, sin: function() {
+ return Ic;
+ }, exp: function() {
+ return yf;
+ }, circle: function() {
+ return Bl;
+ }, elastic: Ah, back: Qf, bounce: function() {
+ return _f;
+ } }), Po = e.map({ in: G, out: Ko, "in-out": Pa, "out-in": function(X) {
+ return Pa(Ko(X));
+ } });
+ e.ease = function(X) {
+ var se = X.indexOf("-"), Te = se >= 0 ? X.slice(0, se) : X, Ne = se >= 0 ? X.slice(se + 1) : "in";
+ return Te = od.get(Te) || qs, Ne = Po.get(Ne) || G, sd(Ne(Te.apply(null, t.call(arguments, 1))));
+ };
+ function sd(X) {
+ return function(se) {
+ return se <= 0 ? 0 : se >= 1 ? 1 : X(se);
+ };
+ }
+ function Ko(X) {
+ return function(se) {
+ return 1 - X(1 - se);
+ };
+ }
+ function Pa(X) {
+ return function(se) {
+ return 0.5 * (se < 0.5 ? X(2 * se) : 2 - X(2 - 2 * se));
+ };
+ }
+ function af(X) {
+ return X * X;
+ }
+ function Hu(X) {
+ return X * X * X;
+ }
+ function bl(X) {
+ if (X <= 0) return 0;
+ if (X >= 1) return 1;
+ var se = X * X, Te = se * X;
+ return 4 * (X < 0.5 ? Te : 3 * (X - se) + Te - 0.75);
+ }
+ function Hf(X) {
+ return function(se) {
+ return Math.pow(se, X);
+ };
+ }
+ function Ic(X) {
+ return 1 - Math.cos(X * xe);
+ }
+ function yf(X) {
+ return Math.pow(2, 10 * (X - 1));
+ }
+ function Bl(X) {
+ return 1 - Math.sqrt(1 - X * X);
+ }
+ function Ah(X, se) {
+ var Te;
+ return arguments.length < 2 && (se = 0.45), arguments.length ? Te = se / xt * Math.asin(1 / X) : (X = 1, Te = se / 4), function(Ne) {
+ return 1 + X * Math.pow(2, -10 * Ne) * Math.sin((Ne - Te) * xt / se);
+ };
+ }
+ function Qf(X) {
+ return X || (X = 1.70158), function(se) {
+ return se * se * ((X + 1) * se - X);
+ };
+ }
+ function _f(X) {
+ return X < 1 / 2.75 ? 7.5625 * X * X : X < 2 / 2.75 ? 7.5625 * (X -= 1.5 / 2.75) * X + 0.75 : X < 2.5 / 2.75 ? 7.5625 * (X -= 2.25 / 2.75) * X + 0.9375 : 7.5625 * (X -= 2.625 / 2.75) * X + 0.984375;
+ }
+ e.interpolateHcl = Yc;
+ function Yc(X, se) {
+ X = e.hcl(X), se = e.hcl(se);
+ var Te = X.h, Ne = X.c, He = X.l, Ye = se.h - Te, kt = se.c - Ne, nt = se.l - He;
+ return isNaN(kt) && (kt = 0, Ne = isNaN(Ne) ? se.c : Ne), isNaN(Ye) ? (Ye = 0, Te = isNaN(Te) ? se.h : Te) : Ye > 180 ? Ye -= 360 : Ye < -180 && (Ye += 360), function(jt) {
+ return Xr(Te + Ye * jt, Ne + kt * jt, He + nt * jt) + "";
+ };
+ }
+ e.interpolateHsl = eh;
+ function eh(X, se) {
+ X = e.hsl(X), se = e.hsl(se);
+ var Te = X.h, Ne = X.s, He = X.l, Ye = se.h - Te, kt = se.s - Ne, nt = se.l - He;
+ return isNaN(kt) && (kt = 0, Ne = isNaN(Ne) ? se.s : Ne), isNaN(Ye) ? (Ye = 0, Te = isNaN(Te) ? se.h : Te) : Ye > 180 ? Ye -= 360 : Ye < -180 && (Ye += 360), function(jt) {
+ return rr(Te + Ye * jt, Ne + kt * jt, He + nt * jt) + "";
+ };
+ }
+ e.interpolateLab = th;
+ function th(X, se) {
+ X = e.lab(X), se = e.lab(se);
+ var Te = X.l, Ne = X.a, He = X.b, Ye = se.l - Te, kt = se.a - Ne, nt = se.b - He;
+ return function(jt) {
+ return yn(Te + Ye * jt, Ne + kt * jt, He + nt * jt) + "";
+ };
+ }
+ e.interpolateRound = ju;
+ function ju(X, se) {
+ return se -= X, function(Te) {
+ return Math.round(X + se * Te);
+ };
+ }
+ e.transform = function(X) {
+ var se = n.createElementNS(e.ns.prefix.svg, "g");
+ return (e.transform = function(Te) {
+ if (Te != null) {
+ se.setAttribute("transform", Te);
+ var Ne = se.transform.baseVal.consolidate();
+ }
+ return new jf(Ne ? Ne.matrix : Kc);
+ })(X);
+ };
+ function jf(X) {
+ var se = [X.a, X.b], Te = [X.c, X.d], Ne = of(se), He = cc(se, Te), Ye = of(Nl(Te, se, -He)) || 0;
+ se[0] * Te[1] < Te[0] * se[1] && (se[0] *= -1, se[1] *= -1, Ne *= -1, He *= -1), this.rotate = (Ne ? Math.atan2(se[1], se[0]) : Math.atan2(-Te[0], Te[1])) * vt, this.translate = [X.e, X.f], this.scale = [Ne, Ye], this.skew = Ye ? Math.atan2(He, Ye) * vt : 0;
+ }
+ jf.prototype.toString = function() {
+ return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
+ };
+ function cc(X, se) {
+ return X[0] * se[0] + X[1] * se[1];
+ }
+ function of(X) {
+ var se = Math.sqrt(cc(X, X));
+ return se && (X[0] /= se, X[1] /= se), se;
+ }
+ function Nl(X, se, Te) {
+ return X[0] += Te * se[0], X[1] += Te * se[1], X;
+ }
+ var Kc = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };
+ e.interpolateTransform = sf;
+ function Rc(X) {
+ return X.length ? X.pop() + "," : "";
+ }
+ function gs(X, se, Te, Ne) {
+ if (X[0] !== se[0] || X[1] !== se[1]) {
+ var He = Te.push("translate(", null, ",", null, ")");
+ Ne.push({ i: He - 4, x: Hs(X[0], se[0]) }, { i: He - 2, x: Hs(X[1], se[1]) });
+ } else (se[0] || se[1]) && Te.push("translate(" + se + ")");
+ }
+ function Wf(X, se, Te, Ne) {
+ X !== se ? (X - se > 180 ? se += 360 : se - X > 180 && (X += 360), Ne.push({ i: Te.push(Rc(Te) + "rotate(", null, ")") - 2, x: Hs(X, se) })) : se && Te.push(Rc(Te) + "rotate(" + se + ")");
+ }
+ function Wh(X, se, Te, Ne) {
+ X !== se ? Ne.push({ i: Te.push(Rc(Te) + "skewX(", null, ")") - 2, x: Hs(X, se) }) : se && Te.push(Rc(Te) + "skewX(" + se + ")");
+ }
+ function rh(X, se, Te, Ne) {
+ if (X[0] !== se[0] || X[1] !== se[1]) {
+ var He = Te.push(Rc(Te) + "scale(", null, ",", null, ")");
+ Ne.push({ i: He - 4, x: Hs(X[0], se[0]) }, { i: He - 2, x: Hs(X[1], se[1]) });
+ } else (se[0] !== 1 || se[1] !== 1) && Te.push(Rc(Te) + "scale(" + se + ")");
+ }
+ function sf(X, se) {
+ var Te = [], Ne = [];
+ return X = e.transform(X), se = e.transform(se), gs(X.translate, se.translate, Te, Ne), Wf(X.rotate, se.rotate, Te, Ne), Wh(X.skew, se.skew, Te, Ne), rh(X.scale, se.scale, Te, Ne), X = se = null, function(He) {
+ for (var Ye = -1, kt = Ne.length, nt; ++Ye < kt; ) Te[(nt = Ne[Ye]).i] = nt.x(He);
+ return Te.join("");
+ };
+ }
+ function Sh(X, se) {
+ return se = (se -= X = +X) || 1 / se, function(Te) {
+ return (Te - X) / se;
+ };
+ }
+ function Mu(X, se) {
+ return se = (se -= X = +X) || 1 / se, function(Te) {
+ return Math.max(0, Math.min(1, (Te - X) / se));
+ };
+ }
+ e.layout = {}, e.layout.bundle = function() {
+ return function(X) {
+ for (var se = [], Te = -1, Ne = X.length; ++Te < Ne; ) se.push(ih(X[Te]));
+ return se;
+ };
+ };
+ function ih(X) {
+ for (var se = X.source, Te = X.target, Ne = Eu(se, Te), He = [se]; se !== Ne; ) se = se.parent, He.push(se);
+ for (var Ye = He.length; Te !== Ne; ) He.splice(Ye, 0, Te), Te = Te.parent;
+ return He;
+ }
+ function js(X) {
+ for (var se = [], Te = X.parent; Te != null; ) se.push(X), X = Te, Te = Te.parent;
+ return se.push(X), se;
+ }
+ function Eu(X, se) {
+ if (X === se) return X;
+ for (var Te = js(X), Ne = js(se), He = Te.pop(), Ye = Ne.pop(), kt = null; He === Ye; ) kt = He, He = Te.pop(), Ye = Ne.pop();
+ return kt;
+ }
+ e.layout.chord = function() {
+ var X = {}, se, Te, Ne, He, Ye = 0, kt, nt, jt;
+ function gr() {
+ var Hr = {}, qr = [], _i = e.range(He), bi = [], Zr, ai, gi, Ii, Si;
+ for (se = [], Te = [], Zr = 0, Ii = -1; ++Ii < He; ) {
+ for (ai = 0, Si = -1; ++Si < He; ) ai += Ne[Ii][Si];
+ qr.push(ai), bi.push(e.range(He)), Zr += ai;
+ }
+ for (kt && _i.sort(function(yo, Da) {
+ return kt(qr[yo], qr[Da]);
+ }), nt && bi.forEach(function(yo, Da) {
+ yo.sort(function(go, Is) {
+ return nt(Ne[Da][go], Ne[Da][Is]);
+ });
+ }), Zr = (xt - Ye * He) / Zr, ai = 0, Ii = -1; ++Ii < He; ) {
+ for (gi = ai, Si = -1; ++Si < He; ) {
+ var ei = _i[Ii], Ln = bi[ei][Si], En = Ne[ei][Ln], Un = ai, ia = ai += En * Zr;
+ Hr[ei + "-" + Ln] = { index: ei, subindex: Ln, startAngle: Un, endAngle: ia, value: En };
+ }
+ Te[ei] = { index: ei, startAngle: gi, endAngle: ai, value: qr[ei] }, ai += Ye;
+ }
+ for (Ii = -1; ++Ii < He; ) for (Si = Ii - 1; ++Si < He; ) {
+ var Ea = Hr[Ii + "-" + Si], Ia = Hr[Si + "-" + Ii];
+ (Ea.value || Ia.value) && se.push(Ea.value < Ia.value ? { source: Ia, target: Ea } : { source: Ea, target: Ia });
+ }
+ jt && yr();
+ }
+ function yr() {
+ se.sort(function(Hr, qr) {
+ return jt((Hr.source.value + Hr.target.value) / 2, (qr.source.value + qr.target.value) / 2);
+ });
+ }
+ return X.matrix = function(Hr) {
+ return arguments.length ? (He = (Ne = Hr) && Ne.length, se = Te = null, X) : Ne;
+ }, X.padding = function(Hr) {
+ return arguments.length ? (Ye = Hr, se = Te = null, X) : Ye;
+ }, X.sortGroups = function(Hr) {
+ return arguments.length ? (kt = Hr, se = Te = null, X) : kt;
+ }, X.sortSubgroups = function(Hr) {
+ return arguments.length ? (nt = Hr, se = null, X) : nt;
+ }, X.sortChords = function(Hr) {
+ return arguments.length ? (jt = Hr, se && yr(), X) : jt;
+ }, X.chords = function() {
+ return se || gr(), se;
+ }, X.groups = function() {
+ return Te || gr(), Te;
+ }, X;
+ }, e.layout.force = function() {
+ var X = {}, se = e.dispatch("start", "tick", "end"), Te, Ne = [1, 1], He, Ye, kt = 0.9, nt = nl, jt = nh, gr = -30, yr = Mh, Hr = 0.1, qr = 0.64, _i = [], bi = [], Zr, ai, gi;
+ function Ii(ei) {
+ return function(Ln, En, Un, ia) {
+ if (Ln.point !== ei) {
+ var Ea = Ln.cx - ei.x, Ia = Ln.cy - ei.y, yo = ia - En, Da = Ea * Ea + Ia * Ia;
+ if (yo * yo / qr < Da) {
+ if (Da < yr) {
+ var go = Ln.charge / Da;
+ ei.px -= Ea * go, ei.py -= Ia * go;
+ }
+ return true;
+ }
+ if (Ln.point && Da && Da < yr) {
+ var go = Ln.pointCharge / Da;
+ ei.px -= Ea * go, ei.py -= Ia * go;
+ }
+ }
+ return !Ln.charge;
+ };
+ }
+ X.tick = function() {
+ if ((Ye *= 0.99) < 5e-3) return Te = null, se.end({ type: "end", alpha: Ye = 0 }), true;
+ var ei = _i.length, Ln = bi.length, En, Un, ia, Ea, Ia, yo, Da, go, Is;
+ for (Un = 0; Un < Ln; ++Un) ia = bi[Un], Ea = ia.source, Ia = ia.target, go = Ia.x - Ea.x, Is = Ia.y - Ea.y, (yo = go * go + Is * Is) && (yo = Ye * ai[Un] * ((yo = Math.sqrt(yo)) - Zr[Un]) / yo, go *= yo, Is *= yo, Ia.x -= go * (Da = Ea.weight + Ia.weight ? Ea.weight / (Ea.weight + Ia.weight) : 0.5), Ia.y -= Is * Da, Ea.x += go * (Da = 1 - Da), Ea.y += Is * Da);
+ if ((Da = Ye * Hr) && (go = Ne[0] / 2, Is = Ne[1] / 2, Un = -1, Da)) for (; ++Un < ei; ) ia = _i[Un], ia.x += (go - ia.x) * Da, ia.y += (Is - ia.y) * Da;
+ if (gr) for (_u(En = e.geom.quadtree(_i), Ye, gi), Un = -1; ++Un < ei; ) (ia = _i[Un]).fixed || En.visit(Ii(ia));
+ for (Un = -1; ++Un < ei; ) ia = _i[Un], ia.fixed ? (ia.x = ia.px, ia.y = ia.py) : (ia.x -= (ia.px - (ia.px = ia.x)) * kt, ia.y -= (ia.py - (ia.py = ia.y)) * kt);
+ se.tick({ type: "tick", alpha: Ye });
+ }, X.nodes = function(ei) {
+ return arguments.length ? (_i = ei, X) : _i;
+ }, X.links = function(ei) {
+ return arguments.length ? (bi = ei, X) : bi;
+ }, X.size = function(ei) {
+ return arguments.length ? (Ne = ei, X) : Ne;
+ }, X.linkDistance = function(ei) {
+ return arguments.length ? (nt = typeof ei == "function" ? ei : +ei, X) : nt;
+ }, X.distance = X.linkDistance, X.linkStrength = function(ei) {
+ return arguments.length ? (jt = typeof ei == "function" ? ei : +ei, X) : jt;
+ }, X.friction = function(ei) {
+ return arguments.length ? (kt = +ei, X) : kt;
+ }, X.charge = function(ei) {
+ return arguments.length ? (gr = typeof ei == "function" ? ei : +ei, X) : gr;
+ }, X.chargeDistance = function(ei) {
+ return arguments.length ? (yr = ei * ei, X) : Math.sqrt(yr);
+ }, X.gravity = function(ei) {
+ return arguments.length ? (Hr = +ei, X) : Hr;
+ }, X.theta = function(ei) {
+ return arguments.length ? (qr = ei * ei, X) : Math.sqrt(qr);
+ }, X.alpha = function(ei) {
+ return arguments.length ? (ei = +ei, Ye ? ei > 0 ? Ye = ei : (Te.c = null, Te.t = NaN, Te = null, se.end({ type: "end", alpha: Ye = 0 })) : ei > 0 && (se.start({ type: "start", alpha: Ye = ei }), Te = No(X.tick)), X) : Ye;
+ }, X.start = function() {
+ var ei, Ln = _i.length, En = bi.length, Un = Ne[0], ia = Ne[1], Ea, Ia;
+ for (ei = 0; ei < Ln; ++ei) (Ia = _i[ei]).index = ei, Ia.weight = 0;
+ for (ei = 0; ei < En; ++ei) Ia = bi[ei], typeof Ia.source == "number" && (Ia.source = _i[Ia.source]), typeof Ia.target == "number" && (Ia.target = _i[Ia.target]), ++Ia.source.weight, ++Ia.target.weight;
+ for (ei = 0; ei < Ln; ++ei) Ia = _i[ei], isNaN(Ia.x) && (Ia.x = yo("x", Un)), isNaN(Ia.y) && (Ia.y = yo("y", ia)), isNaN(Ia.px) && (Ia.px = Ia.x), isNaN(Ia.py) && (Ia.py = Ia.y);
+ if (Zr = [], typeof nt == "function") for (ei = 0; ei < En; ++ei) Zr[ei] = +nt.call(this, bi[ei], ei);
+ else for (ei = 0; ei < En; ++ei) Zr[ei] = nt;
+ if (ai = [], typeof jt == "function") for (ei = 0; ei < En; ++ei) ai[ei] = +jt.call(this, bi[ei], ei);
+ else for (ei = 0; ei < En; ++ei) ai[ei] = jt;
+ if (gi = [], typeof gr == "function") for (ei = 0; ei < Ln; ++ei) gi[ei] = +gr.call(this, _i[ei], ei);
+ else for (ei = 0; ei < Ln; ++ei) gi[ei] = gr;
+ function yo(Da, go) {
+ if (!Ea) {
+ for (Ea = new Array(Ln), Xs = 0; Xs < Ln; ++Xs) Ea[Xs] = [];
+ for (Xs = 0; Xs < En; ++Xs) {
+ var Is = bi[Xs];
+ Ea[Is.source.index].push(Is.target), Ea[Is.target.index].push(Is.source);
+ }
+ }
+ for (var Ms = Ea[ei], Xs = -1, Gn = Ms.length, ja; ++Xs < Gn; ) if (!isNaN(ja = Ms[Xs][Da])) return ja;
+ return Math.random() * go;
+ }
+ return X.resume();
+ }, X.resume = function() {
+ return X.alpha(0.1);
+ }, X.stop = function() {
+ return X.alpha(0);
+ }, X.drag = function() {
+ if (He || (He = e.behavior.drag().origin(G).on("dragstart.force", Dc).on("drag.force", Si).on("dragend.force", ks)), !arguments.length) return He;
+ this.on("mouseover.force", bc).on("mouseout.force", hu).call(He);
+ };
+ function Si(ei) {
+ ei.px = e.event.x, ei.py = e.event.y, X.resume();
+ }
+ return e.rebind(X, se, "on");
+ };
+ function Dc(X) {
+ X.fixed |= 2;
+ }
+ function ks(X) {
+ X.fixed &= -7;
+ }
+ function bc(X) {
+ X.fixed |= 4, X.px = X.x, X.py = X.y;
+ }
+ function hu(X) {
+ X.fixed &= -5;
+ }
+ function _u(X, se, Te) {
+ var Ne = 0, He = 0;
+ if (X.charge = 0, !X.leaf) for (var Ye = X.nodes, kt = Ye.length, nt = -1, jt; ++nt < kt; ) jt = Ye[nt], jt != null && (_u(jt, se, Te), X.charge += jt.charge, Ne += jt.charge * jt.cx, He += jt.charge * jt.cy);
+ if (X.point) {
+ X.leaf || (X.point.x += Math.random() - 0.5, X.point.y += Math.random() - 0.5);
+ var gr = se * Te[X.point.index];
+ X.charge += X.pointCharge = gr, Ne += gr * X.point.x, He += gr * X.point.y;
+ }
+ X.cx = Ne / X.charge, X.cy = He / X.charge;
+ }
+ var nl = 20, nh = 1, Mh = 1 / 0;
+ e.layout.hierarchy = function() {
+ var X = Pf, se = bd, Te = xf;
+ function Ne(He) {
+ var Ye = [He], kt = [], nt;
+ for (He.depth = 0; (nt = Ye.pop()) != null; ) if (kt.push(nt), (gr = se.call(Ne, nt, nt.depth)) && (jt = gr.length)) {
+ for (var jt, gr, yr; --jt >= 0; ) Ye.push(yr = gr[jt]), yr.parent = nt, yr.depth = nt.depth + 1;
+ Te && (nt.value = 0), nt.children = gr;
+ } else Te && (nt.value = +Te.call(Ne, nt, nt.depth) || 0), delete nt.children;
+ return wc(He, function(Hr) {
+ var qr, _i;
+ X && (qr = Hr.children) && qr.sort(X), Te && (_i = Hr.parent) && (_i.value += Hr.value);
+ }), kt;
+ }
+ return Ne.sort = function(He) {
+ return arguments.length ? (X = He, Ne) : X;
+ }, Ne.children = function(He) {
+ return arguments.length ? (se = He, Ne) : se;
+ }, Ne.value = function(He) {
+ return arguments.length ? (Te = He, Ne) : Te;
+ }, Ne.revalue = function(He) {
+ return Te && (Fc(He, function(Ye) {
+ Ye.children && (Ye.value = 0);
+ }), wc(He, function(Ye) {
+ var kt;
+ Ye.children || (Ye.value = +Te.call(Ne, Ye, Ye.depth) || 0), (kt = Ye.parent) && (kt.value += Ye.value);
+ })), He;
+ }, Ne;
+ };
+ function zu(X, se) {
+ return e.rebind(X, se, "sort", "children", "value"), X.nodes = X, X.links = Ou, X;
+ }
+ function Fc(X, se) {
+ for (var Te = [X]; (X = Te.pop()) != null; ) if (se(X), (He = X.children) && (Ne = He.length)) for (var Ne, He; --Ne >= 0; ) Te.push(He[Ne]);
+ }
+ function wc(X, se) {
+ for (var Te = [X], Ne = []; (X = Te.pop()) != null; ) if (Ne.push(X), (kt = X.children) && (Ye = kt.length)) for (var He = -1, Ye, kt; ++He < Ye; ) Te.push(kt[He]);
+ for (; (X = Ne.pop()) != null; ) se(X);
+ }
+ function bd(X) {
+ return X.children;
+ }
+ function xf(X) {
+ return X.value;
+ }
+ function Pf(X, se) {
+ return se.value - X.value;
+ }
+ function Ou(X) {
+ return e.merge(X.map(function(se) {
+ return (se.children || []).map(function(Te) {
+ return { source: se, target: Te };
+ });
+ }));
+ }
+ e.layout.partition = function() {
+ var X = e.layout.hierarchy(), se = [1, 1];
+ function Te(Ye, kt, nt, jt) {
+ var gr = Ye.children;
+ if (Ye.x = kt, Ye.y = Ye.depth * jt, Ye.dx = nt, Ye.dy = jt, gr && (Hr = gr.length)) {
+ var yr = -1, Hr, qr, _i;
+ for (nt = Ye.value ? nt / Ye.value : 0; ++yr < Hr; ) Te(qr = gr[yr], kt, _i = qr.value * nt, jt), kt += _i;
+ }
+ }
+ function Ne(Ye) {
+ var kt = Ye.children, nt = 0;
+ if (kt && (gr = kt.length)) for (var jt = -1, gr; ++jt < gr; ) nt = Math.max(nt, Ne(kt[jt]));
+ return 1 + nt;
+ }
+ function He(Ye, kt) {
+ var nt = X.call(this, Ye, kt);
+ return Te(nt[0], 0, se[0], se[1] / Ne(nt[0])), nt;
+ }
+ return He.size = function(Ye) {
+ return arguments.length ? (se = Ye, He) : se;
+ }, zu(He, X);
+ }, e.layout.pie = function() {
+ var X = Number, se = bf, Te = 0, Ne = xt, He = 0;
+ function Ye(kt) {
+ var nt = kt.length, jt = kt.map(function(Ii, Si) {
+ return +X.call(Ye, Ii, Si);
+ }), gr = +(typeof Te == "function" ? Te.apply(this, arguments) : Te), yr = (typeof Ne == "function" ? Ne.apply(this, arguments) : Ne) - gr, Hr = Math.min(Math.abs(yr) / nt, +(typeof He == "function" ? He.apply(this, arguments) : He)), qr = Hr * (yr < 0 ? -1 : 1), _i = e.sum(jt), bi = _i ? (yr - nt * qr) / _i : 0, Zr = e.range(nt), ai = [], gi;
+ return se != null && Zr.sort(se === bf ? function(Ii, Si) {
+ return jt[Si] - jt[Ii];
+ } : function(Ii, Si) {
+ return se(kt[Ii], kt[Si]);
+ }), Zr.forEach(function(Ii) {
+ ai[Ii] = { data: kt[Ii], value: gi = jt[Ii], startAngle: gr, endAngle: gr += gi * bi + qr, padAngle: Hr };
+ }), ai;
+ }
+ return Ye.value = function(kt) {
+ return arguments.length ? (X = kt, Ye) : X;
+ }, Ye.sort = function(kt) {
+ return arguments.length ? (se = kt, Ye) : se;
+ }, Ye.startAngle = function(kt) {
+ return arguments.length ? (Te = kt, Ye) : Te;
+ }, Ye.endAngle = function(kt) {
+ return arguments.length ? (Ne = kt, Ye) : Ne;
+ }, Ye.padAngle = function(kt) {
+ return arguments.length ? (He = kt, Ye) : He;
+ }, Ye;
+ };
+ var bf = {};
+ e.layout.stack = function() {
+ var X = G, se = du, Te = ku, Ne = Xh, He = jl, Ye = lf;
+ function kt(nt, jt) {
+ if (!(bi = nt.length)) return nt;
+ var gr = nt.map(function(Ii, Si) {
+ return X.call(kt, Ii, Si);
+ }), yr = gr.map(function(Ii) {
+ return Ii.map(function(Si, ei) {
+ return [He.call(kt, Si, ei), Ye.call(kt, Si, ei)];
+ });
+ }), Hr = se.call(kt, yr, jt);
+ gr = e.permute(gr, Hr), yr = e.permute(yr, Hr);
+ var qr = Te.call(kt, yr, jt), _i = gr[0].length, bi, Zr, ai, gi;
+ for (ai = 0; ai < _i; ++ai) for (Ne.call(kt, gr[0][ai], gi = qr[ai], yr[0][ai][1]), Zr = 1; Zr < bi; ++Zr) Ne.call(kt, gr[Zr][ai], gi += yr[Zr - 1][ai][1], yr[Zr][ai][1]);
+ return nt;
+ }
+ return kt.values = function(nt) {
+ return arguments.length ? (X = nt, kt) : X;
+ }, kt.order = function(nt) {
+ return arguments.length ? (se = typeof nt == "function" ? nt : If.get(nt) || du, kt) : se;
+ }, kt.offset = function(nt) {
+ return arguments.length ? (Te = typeof nt == "function" ? nt : Cs.get(nt) || ku, kt) : Te;
+ }, kt.x = function(nt) {
+ return arguments.length ? (He = nt, kt) : He;
+ }, kt.y = function(nt) {
+ return arguments.length ? (Ye = nt, kt) : Ye;
+ }, kt.out = function(nt) {
+ return arguments.length ? (Ne = nt, kt) : Ne;
+ }, kt;
+ };
+ function jl(X) {
+ return X.x;
+ }
+ function lf(X) {
+ return X.y;
+ }
+ function Xh(X, se, Te) {
+ X.y0 = se, X.y = Te;
+ }
+ var If = e.map({ "inside-out": function(X) {
+ var se = X.length, Te, Ne, He = X.map(Xf), Ye = X.map(Us), kt = e.range(se).sort(function(Hr, qr) {
+ return He[Hr] - He[qr];
+ }), nt = 0, jt = 0, gr = [], yr = [];
+ for (Te = 0; Te < se; ++Te) Ne = kt[Te], nt < jt ? (nt += Ye[Ne], gr.push(Ne)) : (jt += Ye[Ne], yr.push(Ne));
+ return yr.reverse().concat(gr);
+ }, reverse: function(X) {
+ return e.range(X.length).reverse();
+ }, default: du }), Cs = e.map({ silhouette: function(X) {
+ var se = X.length, Te = X[0].length, Ne = [], He = 0, Ye, kt, nt, jt = [];
+ for (kt = 0; kt < Te; ++kt) {
+ for (Ye = 0, nt = 0; Ye < se; Ye++) nt += X[Ye][kt][1];
+ nt > He && (He = nt), Ne.push(nt);
+ }
+ for (kt = 0; kt < Te; ++kt) jt[kt] = (He - Ne[kt]) / 2;
+ return jt;
+ }, wiggle: function(X) {
+ var se = X.length, Te = X[0], Ne = Te.length, He, Ye, kt, nt, jt, gr, yr, Hr, qr, _i = [];
+ for (_i[0] = Hr = qr = 0, Ye = 1; Ye < Ne; ++Ye) {
+ for (He = 0, nt = 0; He < se; ++He) nt += X[He][Ye][1];
+ for (He = 0, jt = 0, yr = Te[Ye][0] - Te[Ye - 1][0]; He < se; ++He) {
+ for (kt = 0, gr = (X[He][Ye][1] - X[He][Ye - 1][1]) / (2 * yr); kt < He; ++kt) gr += (X[kt][Ye][1] - X[kt][Ye - 1][1]) / yr;
+ jt += gr * X[He][Ye][1];
+ }
+ _i[Ye] = Hr -= nt ? jt / nt * yr : 0, Hr < qr && (qr = Hr);
+ }
+ for (Ye = 0; Ye < Ne; ++Ye) _i[Ye] -= qr;
+ return _i;
+ }, expand: function(X) {
+ var se = X.length, Te = X[0].length, Ne = 1 / se, He, Ye, kt, nt = [];
+ for (Ye = 0; Ye < Te; ++Ye) {
+ for (He = 0, kt = 0; He < se; He++) kt += X[He][Ye][1];
+ if (kt) for (He = 0; He < se; He++) X[He][Ye][1] /= kt;
+ else for (He = 0; He < se; He++) X[He][Ye][1] = Ne;
+ }
+ for (Ye = 0; Ye < Te; ++Ye) nt[Ye] = 0;
+ return nt;
+ }, zero: ku });
+ function du(X) {
+ return e.range(X.length);
+ }
+ function ku(X) {
+ for (var se = -1, Te = X[0].length, Ne = []; ++se < Te; ) Ne[se] = 0;
+ return Ne;
+ }
+ function Xf(X) {
+ for (var se = 1, Te = 0, Ne = X[0][1], He, Ye = X.length; se < Ye; ++se) (He = X[se][1]) > Ne && (Te = se, Ne = He);
+ return Te;
+ }
+ function Us(X) {
+ return X.reduce(wf, 0);
+ }
+ function wf(X, se) {
+ return X + se[1];
+ }
+ e.layout.histogram = function() {
+ var X = true, se = Number, Te = Rf, Ne = zc;
+ function He(Ye, qr) {
+ for (var nt = [], jt = Ye.map(se, this), gr = Te.call(this, jt, qr), yr = Ne.call(this, gr, jt, qr), Hr, qr = -1, _i = jt.length, bi = yr.length - 1, Zr = X ? 1 : 1 / _i, ai; ++qr < bi; ) Hr = nt[qr] = [], Hr.dx = yr[qr + 1] - (Hr.x = yr[qr]), Hr.y = 0;
+ if (bi > 0) for (qr = -1; ++qr < _i; ) ai = jt[qr], ai >= gr[0] && ai <= gr[1] && (Hr = nt[e.bisect(yr, ai, 1, bi) - 1], Hr.y += Zr, Hr.push(Ye[qr]));
+ return nt;
+ }
+ return He.value = function(Ye) {
+ return arguments.length ? (se = Ye, He) : se;
+ }, He.range = function(Ye) {
+ return arguments.length ? (Te = vi(Ye), He) : Te;
+ }, He.bins = function(Ye) {
+ return arguments.length ? (Ne = typeof Ye == "number" ? function(kt) {
+ return Wu(kt, Ye);
+ } : vi(Ye), He) : Ne;
+ }, He.frequency = function(Ye) {
+ return arguments.length ? (X = !!Ye, He) : X;
+ }, He;
+ };
+ function zc(X, se) {
+ return Wu(X, Math.ceil(Math.log(se.length) / Math.LN2 + 1));
+ }
+ function Wu(X, se) {
+ for (var Te = -1, Ne = +X[0], He = (X[1] - Ne) / se, Ye = []; ++Te <= se; ) Ye[Te] = He * Te + Ne;
+ return Ye;
+ }
+ function Rf(X) {
+ return [e.min(X), e.max(X)];
+ }
+ e.layout.pack = function() {
+ var X = e.layout.hierarchy().sort(Xu), se = 0, Te = [1, 1], Ne;
+ function He(Ye, kt) {
+ var nt = X.call(this, Ye, kt), jt = nt[0], gr = Te[0], yr = Te[1], Hr = Ne == null ? Math.sqrt : typeof Ne == "function" ? Ne : function() {
+ return Ne;
+ };
+ if (jt.x = jt.y = 0, wc(jt, function(_i) {
+ _i.r = +Hr(_i.value);
+ }), wc(jt, ah), se) {
+ var qr = se * (Ne ? 1 : Math.max(2 * jt.r / gr, 2 * jt.r / yr)) / 2;
+ wc(jt, function(_i) {
+ _i.r += qr;
+ }), wc(jt, ah), wc(jt, function(_i) {
+ _i.r -= qr;
+ });
+ }
+ return Tc(jt, gr / 2, yr / 2, Ne ? 1 : 1 / Math.max(2 * jt.r / gr, 2 * jt.r / yr)), nt;
+ }
+ return He.size = function(Ye) {
+ return arguments.length ? (Te = Ye, He) : Te;
+ }, He.radius = function(Ye) {
+ return arguments.length ? (Ne = Ye == null || typeof Ye == "function" ? Ye : +Ye, He) : Ne;
+ }, He.padding = function(Ye) {
+ return arguments.length ? (se = +Ye, He) : se;
+ }, zu(He, X);
+ };
+ function Xu(X, se) {
+ return X.value - se.value;
+ }
+ function uf(X, se) {
+ var Te = X._pack_next;
+ X._pack_next = se, se._pack_prev = X, se._pack_next = Te, Te._pack_prev = se;
+ }
+ function Zf(X, se) {
+ X._pack_next = se, se._pack_prev = X;
+ }
+ function Wl(X, se) {
+ var Te = se.x - X.x, Ne = se.y - X.y, He = X.r + se.r;
+ return 0.999 * He * He > Te * Te + Ne * Ne;
+ }
+ function ah(X) {
+ if (!(se = X.children) || !(qr = se.length)) return;
+ var se, Te = 1 / 0, Ne = -1 / 0, He = 1 / 0, Ye = -1 / 0, kt, nt, jt, gr, yr, Hr, qr;
+ function _i(ei) {
+ Te = Math.min(ei.x - ei.r, Te), Ne = Math.max(ei.x + ei.r, Ne), He = Math.min(ei.y - ei.r, He), Ye = Math.max(ei.y + ei.r, Ye);
+ }
+ if (se.forEach(Zu), kt = se[0], kt.x = -kt.r, kt.y = 0, _i(kt), qr > 1 && (nt = se[1], nt.x = nt.r, nt.y = 0, _i(nt), qr > 2)) for (jt = se[2], wl(kt, nt, jt), _i(jt), uf(kt, jt), kt._pack_prev = jt, uf(jt, nt), nt = kt._pack_next, gr = 3; gr < qr; gr++) {
+ wl(kt, nt, jt = se[gr]);
+ var bi = 0, Zr = 1, ai = 1;
+ for (yr = nt._pack_next; yr !== nt; yr = yr._pack_next, Zr++) if (Wl(yr, jt)) {
+ bi = 1;
+ break;
+ }
+ if (bi == 1) for (Hr = kt._pack_prev; Hr !== yr._pack_prev && !Wl(Hr, jt); Hr = Hr._pack_prev, ai++) ;
+ bi ? (Zr < ai || Zr == ai && nt.r < kt.r ? Zf(kt, nt = yr) : Zf(kt = Hr, nt), gr--) : (uf(kt, jt), nt = jt, _i(jt));
+ }
+ var gi = (Te + Ne) / 2, Ii = (He + Ye) / 2, Si = 0;
+ for (gr = 0; gr < qr; gr++) jt = se[gr], jt.x -= gi, jt.y -= Ii, Si = Math.max(Si, jt.r + Math.sqrt(jt.x * jt.x + jt.y * jt.y));
+ X.r = Si, se.forEach(Oc);
+ }
+ function Zu(X) {
+ X._pack_next = X._pack_prev = X;
+ }
+ function Oc(X) {
+ delete X._pack_next, delete X._pack_prev;
+ }
+ function Tc(X, se, Te, Ne) {
+ var He = X.children;
+ if (X.x = se += Ne * X.x, X.y = Te += Ne * X.y, X.r *= Ne, He) for (var Ye = -1, kt = He.length; ++Ye < kt; ) Tc(He[Ye], se, Te, Ne);
+ }
+ function wl(X, se, Te) {
+ var Ne = X.r + Te.r, He = se.x - X.x, Ye = se.y - X.y;
+ if (Ne && (He || Ye)) {
+ var kt = se.r + Te.r, nt = He * He + Ye * Ye;
+ kt *= kt, Ne *= Ne;
+ var jt = 0.5 + (Ne - kt) / (2 * nt), gr = Math.sqrt(Math.max(0, 2 * kt * (Ne + nt) - (Ne -= nt) * Ne - kt * kt)) / (2 * nt);
+ Te.x = X.x + jt * He + gr * Ye, Te.y = X.y + jt * Ye - gr * He;
+ } else Te.x = X.x + Ne, Te.y = X.y;
+ }
+ e.layout.tree = function() {
+ var X = e.layout.hierarchy().sort(null).value(null), se = vu, Te = [1, 1], Ne = null;
+ function He(yr, Hr) {
+ var qr = X.call(this, yr, Hr), _i = qr[0], bi = Ye(_i);
+ if (wc(bi, kt), bi.parent.m = -bi.z, Fc(bi, nt), Ne) Fc(_i, gr);
+ else {
+ var Zr = _i, ai = _i, gi = _i;
+ Fc(_i, function(Ln) {
+ Ln.x < Zr.x && (Zr = Ln), Ln.x > ai.x && (ai = Ln), Ln.depth > gi.depth && (gi = Ln);
+ });
+ var Ii = se(Zr, ai) / 2 - Zr.x, Si = Te[0] / (ai.x + se(ai, Zr) / 2 + Ii), ei = Te[1] / (gi.depth || 1);
+ Fc(_i, function(Ln) {
+ Ln.x = (Ln.x + Ii) * Si, Ln.y = Ln.depth * ei;
+ });
+ }
+ return qr;
+ }
+ function Ye(yr) {
+ for (var Hr = { A: null, children: [yr] }, qr = [Hr], _i; (_i = qr.pop()) != null; ) for (var bi = _i.children, Zr, ai = 0, gi = bi.length; ai < gi; ++ai) qr.push((bi[ai] = Zr = { _: bi[ai], parent: _i, children: (Zr = bi[ai].children) && Zr.slice() || [], A: null, a: null, z: 0, m: 0, c: 0, s: 0, t: null, i: ai }).a = Zr);
+ return Hr.children[0];
+ }
+ function kt(yr) {
+ var Hr = yr.children, qr = yr.parent.children, _i = yr.i ? qr[yr.i - 1] : null;
+ if (Hr.length) {
+ Bc(yr);
+ var bi = (Hr[0].z + Hr[Hr.length - 1].z) / 2;
+ _i ? (yr.z = _i.z + se(yr._, _i._), yr.m = yr.z - bi) : yr.z = bi;
+ } else _i && (yr.z = _i.z + se(yr._, _i._));
+ yr.parent.A = jt(yr, _i, yr.parent.A || qr[0]);
+ }
+ function nt(yr) {
+ yr._.x = yr.z + yr.parent.m, yr.m += yr.parent.m;
+ }
+ function jt(yr, Hr, qr) {
+ if (Hr) {
+ for (var _i = yr, bi = yr, Zr = Hr, ai = _i.parent.children[0], gi = _i.m, Ii = bi.m, Si = Zr.m, ei = ai.m, Ln; Zr = cf(Zr), _i = qc(_i), Zr && _i; ) ai = qc(ai), bi = cf(bi), bi.a = yr, Ln = Zr.z + Si - _i.z - gi + se(Zr._, _i._), Ln > 0 && (fc(At(Zr, yr, qr), yr, Ln), gi += Ln, Ii += Ln), Si += Zr.m, gi += _i.m, ei += ai.m, Ii += bi.m;
+ Zr && !cf(bi) && (bi.t = Zr, bi.m += Si - Ii), _i && !qc(ai) && (ai.t = _i, ai.m += gi - ei, qr = yr);
+ }
+ return qr;
+ }
+ function gr(yr) {
+ yr.x *= Te[0], yr.y = yr.depth * Te[1];
+ }
+ return He.separation = function(yr) {
+ return arguments.length ? (se = yr, He) : se;
+ }, He.size = function(yr) {
+ return arguments.length ? (Ne = (Te = yr) == null ? gr : null, He) : Ne ? null : Te;
+ }, He.nodeSize = function(yr) {
+ return arguments.length ? (Ne = (Te = yr) == null ? null : gr, He) : Ne ? Te : null;
+ }, zu(He, X);
+ };
+ function vu(X, se) {
+ return X.parent == se.parent ? 1 : 2;
+ }
+ function qc(X) {
+ var se = X.children;
+ return se.length ? se[0] : X.t;
+ }
+ function cf(X) {
+ var se = X.children, Te;
+ return (Te = se.length) ? se[Te - 1] : X.t;
+ }
+ function fc(X, se, Te) {
+ var Ne = Te / (se.i - X.i);
+ se.c -= Ne, se.s += Te, X.c += Ne, se.z += Te, se.m += Te;
+ }
+ function Bc(X) {
+ for (var se = 0, Te = 0, Ne = X.children, He = Ne.length, Ye; --He >= 0; ) Ye = Ne[He], Ye.z += se, Ye.m += se, se += Ye.s + (Te += Ye.c);
+ }
+ function At(X, se, Te) {
+ return X.a.parent === se.parent ? X.a : Te;
+ }
+ e.layout.cluster = function() {
+ var X = e.layout.hierarchy().sort(null).value(null), se = vu, Te = [1, 1], Ne = false;
+ function He(Ye, kt) {
+ var nt = X.call(this, Ye, kt), jt = nt[0], gr, yr = 0;
+ wc(jt, function(Zr) {
+ var ai = Zr.children;
+ ai && ai.length ? (Zr.x = Cr(ai), Zr.y = Xt(ai)) : (Zr.x = gr ? yr += se(Zr, gr) : 0, Zr.y = 0, gr = Zr);
+ });
+ var Hr = Ar(jt), qr = Kr(jt), _i = Hr.x - se(Hr, qr) / 2, bi = qr.x + se(qr, Hr) / 2;
+ return wc(jt, Ne ? function(Zr) {
+ Zr.x = (Zr.x - jt.x) * Te[0], Zr.y = (jt.y - Zr.y) * Te[1];
+ } : function(Zr) {
+ Zr.x = (Zr.x - _i) / (bi - _i) * Te[0], Zr.y = (1 - (jt.y ? Zr.y / jt.y : 1)) * Te[1];
+ }), nt;
+ }
+ return He.separation = function(Ye) {
+ return arguments.length ? (se = Ye, He) : se;
+ }, He.size = function(Ye) {
+ return arguments.length ? (Ne = (Te = Ye) == null, He) : Ne ? null : Te;
+ }, He.nodeSize = function(Ye) {
+ return arguments.length ? (Ne = (Te = Ye) != null, He) : Ne ? Te : null;
+ }, zu(He, X);
+ };
+ function Xt(X) {
+ return 1 + e.max(X, function(se) {
+ return se.y;
+ });
+ }
+ function Cr(X) {
+ return X.reduce(function(se, Te) {
+ return se + Te.x;
+ }, 0) / X.length;
+ }
+ function Ar(X) {
+ var se = X.children;
+ return se && se.length ? Ar(se[0]) : X;
+ }
+ function Kr(X) {
+ var se = X.children, Te;
+ return se && (Te = se.length) ? Kr(se[Te - 1]) : X;
+ }
+ e.layout.treemap = function() {
+ var X = e.layout.hierarchy(), se = Math.round, Te = [1, 1], Ne = null, He = ki, Ye = false, kt, nt = "squarify", jt = 0.5 * (1 + Math.sqrt(5));
+ function gr(Zr, ai) {
+ for (var gi = -1, Ii = Zr.length, Si, ei; ++gi < Ii; ) ei = (Si = Zr[gi]).value * (ai < 0 ? 0 : ai), Si.area = isNaN(ei) || ei <= 0 ? 0 : ei;
+ }
+ function yr(Zr) {
+ var ai = Zr.children;
+ if (ai && ai.length) {
+ var gi = He(Zr), Ii = [], Si = ai.slice(), ei, Ln = 1 / 0, En, Un = nt === "slice" ? gi.dx : nt === "dice" ? gi.dy : nt === "slice-dice" ? Zr.depth & 1 ? gi.dy : gi.dx : Math.min(gi.dx, gi.dy), ia;
+ for (gr(Si, gi.dx * gi.dy / Zr.value), Ii.area = 0; (ia = Si.length) > 0; ) Ii.push(ei = Si[ia - 1]), Ii.area += ei.area, nt !== "squarify" || (En = qr(Ii, Un)) <= Ln ? (Si.pop(), Ln = En) : (Ii.area -= Ii.pop().area, _i(Ii, Un, gi, false), Un = Math.min(gi.dx, gi.dy), Ii.length = Ii.area = 0, Ln = 1 / 0);
+ Ii.length && (_i(Ii, Un, gi, true), Ii.length = Ii.area = 0), ai.forEach(yr);
+ }
+ }
+ function Hr(Zr) {
+ var ai = Zr.children;
+ if (ai && ai.length) {
+ var gi = He(Zr), Ii = ai.slice(), Si, ei = [];
+ for (gr(Ii, gi.dx * gi.dy / Zr.value), ei.area = 0; Si = Ii.pop(); ) ei.push(Si), ei.area += Si.area, Si.z != null && (_i(ei, Si.z ? gi.dx : gi.dy, gi, !Ii.length), ei.length = ei.area = 0);
+ ai.forEach(Hr);
+ }
+ }
+ function qr(Zr, ai) {
+ for (var gi = Zr.area, Ii, Si = 0, ei = 1 / 0, Ln = -1, En = Zr.length; ++Ln < En; ) (Ii = Zr[Ln].area) && (Ii < ei && (ei = Ii), Ii > Si && (Si = Ii));
+ return gi *= gi, ai *= ai, gi ? Math.max(ai * Si * jt / gi, gi / (ai * ei * jt)) : 1 / 0;
+ }
+ function _i(Zr, ai, gi, Ii) {
+ var Si = -1, ei = Zr.length, Ln = gi.x, En = gi.y, Un = ai ? se(Zr.area / ai) : 0, ia;
+ if (ai == gi.dx) {
+ for ((Ii || Un > gi.dy) && (Un = gi.dy); ++Si < ei; ) ia = Zr[Si], ia.x = Ln, ia.y = En, ia.dy = Un, Ln += ia.dx = Math.min(gi.x + gi.dx - Ln, Un ? se(ia.area / Un) : 0);
+ ia.z = true, ia.dx += gi.x + gi.dx - Ln, gi.y += Un, gi.dy -= Un;
+ } else {
+ for ((Ii || Un > gi.dx) && (Un = gi.dx); ++Si < ei; ) ia = Zr[Si], ia.x = Ln, ia.y = En, ia.dx = Un, En += ia.dy = Math.min(gi.y + gi.dy - En, Un ? se(ia.area / Un) : 0);
+ ia.z = false, ia.dy += gi.y + gi.dy - En, gi.x += Un, gi.dx -= Un;
+ }
+ }
+ function bi(Zr) {
+ var ai = kt || X(Zr), gi = ai[0];
+ return gi.x = gi.y = 0, gi.value ? (gi.dx = Te[0], gi.dy = Te[1]) : gi.dx = gi.dy = 0, kt && X.revalue(gi), gr([gi], gi.dx * gi.dy / gi.value), (kt ? Hr : yr)(gi), Ye && (kt = ai), ai;
+ }
+ return bi.size = function(Zr) {
+ return arguments.length ? (Te = Zr, bi) : Te;
+ }, bi.padding = function(Zr) {
+ if (!arguments.length) return Ne;
+ function ai(Si) {
+ var ei = Zr.call(bi, Si, Si.depth);
+ return ei == null ? ki(Si) : Xi(Si, typeof ei == "number" ? [ei, ei, ei, ei] : ei);
+ }
+ function gi(Si) {
+ return Xi(Si, Zr);
+ }
+ var Ii;
+ return He = (Ne = Zr) == null ? ki : (Ii = typeof Zr) == "function" ? ai : (Ii === "number" && (Zr = [Zr, Zr, Zr, Zr]), gi), bi;
+ }, bi.round = function(Zr) {
+ return arguments.length ? (se = Zr ? Math.round : Number, bi) : se != Number;
+ }, bi.sticky = function(Zr) {
+ return arguments.length ? (Ye = Zr, kt = null, bi) : Ye;
+ }, bi.ratio = function(Zr) {
+ return arguments.length ? (jt = Zr, bi) : jt;
+ }, bi.mode = function(Zr) {
+ return arguments.length ? (nt = Zr + "", bi) : nt;
+ }, zu(bi, X);
+ };
+ function ki(X) {
+ return { x: X.x, y: X.y, dx: X.dx, dy: X.dy };
+ }
+ function Xi(X, se) {
+ var Te = X.x + se[3], Ne = X.y + se[0], He = X.dx - se[1] - se[3], Ye = X.dy - se[0] - se[2];
+ return He < 0 && (Te += He / 2, He = 0), Ye < 0 && (Ne += Ye / 2, Ye = 0), { x: Te, y: Ne, dx: He, dy: Ye };
+ }
+ e.random = { normal: function(X, se) {
+ var Te = arguments.length;
+ return Te < 2 && (se = 1), Te < 1 && (X = 0), function() {
+ var Ne, He, Ye;
+ do
+ Ne = Math.random() * 2 - 1, He = Math.random() * 2 - 1, Ye = Ne * Ne + He * He;
+ while (!Ye || Ye > 1);
+ return X + se * Ne * Math.sqrt(-2 * Math.log(Ye) / Ye);
+ };
+ }, logNormal: function() {
+ var X = e.random.normal.apply(e, arguments);
+ return function() {
+ return Math.exp(X());
+ };
+ }, bates: function(X) {
+ var se = e.random.irwinHall(X);
+ return function() {
+ return se() / X;
+ };
+ }, irwinHall: function(X) {
+ return function() {
+ for (var se = 0, Te = 0; Te < X; Te++) se += Math.random();
+ return se;
+ };
+ } }, e.scale = {};
+ function dn(X) {
+ var se = X[0], Te = X[X.length - 1];
+ return se < Te ? [se, Te] : [Te, se];
+ }
+ function wn(X) {
+ return X.rangeExtent ? X.rangeExtent() : dn(X.range());
+ }
+ function Nn(X, se, Te, Ne) {
+ var He = Te(X[0], X[1]), Ye = Ne(se[0], se[1]);
+ return function(kt) {
+ return Ye(He(kt));
+ };
+ }
+ function Yi(X, se) {
+ var Te = 0, Ne = X.length - 1, He = X[Te], Ye = X[Ne], kt;
+ return Ye < He && (kt = Te, Te = Ne, Ne = kt, kt = He, He = Ye, Ye = kt), X[Te] = se.floor(He), X[Ne] = se.ceil(Ye), X;
+ }
+ function Qi(X) {
+ return X ? { floor: function(se) {
+ return Math.floor(se / X) * X;
+ }, ceil: function(se) {
+ return Math.ceil(se / X) * X;
+ } } : on;
+ }
+ var on = { floor: G, ceil: G };
+ function Fi(X, se, Te, Ne) {
+ var He = [], Ye = [], kt = 0, nt = Math.min(X.length, se.length) - 1;
+ for (X[nt] < X[0] && (X = X.slice().reverse(), se = se.slice().reverse()); ++kt <= nt; ) He.push(Te(X[kt - 1], X[kt])), Ye.push(Ne(se[kt - 1], se[kt]));
+ return function(jt) {
+ var gr = e.bisect(X, jt, 1, nt) - 1;
+ return Ye[gr](He[gr](jt));
+ };
+ }
+ e.scale.linear = function() {
+ return Qn([0, 1], [0, 1], xl, false);
+ };
+ function Qn(X, se, Te, Ne) {
+ var He, Ye;
+ function kt() {
+ var jt = Math.min(X.length, se.length) > 2 ? Fi : Nn, gr = Ne ? Mu : Sh;
+ return He = jt(X, se, gr, Te), Ye = jt(se, X, gr, xl), nt;
+ }
+ function nt(jt) {
+ return He(jt);
+ }
+ return nt.invert = function(jt) {
+ return Ye(jt);
+ }, nt.domain = function(jt) {
+ return arguments.length ? (X = jt.map(Number), kt()) : X;
+ }, nt.range = function(jt) {
+ return arguments.length ? (se = jt, kt()) : se;
+ }, nt.rangeRound = function(jt) {
+ return nt.range(jt).interpolate(ju);
+ }, nt.clamp = function(jt) {
+ return arguments.length ? (Ne = jt, kt()) : Ne;
+ }, nt.interpolate = function(jt) {
+ return arguments.length ? (Te = jt, kt()) : Te;
+ }, nt.ticks = function(jt) {
+ return Na(X, jt);
+ }, nt.tickFormat = function(jt, gr) {
+ return d3_scale_linearTickFormat(X, jt, gr);
+ }, nt.nice = function(jt) {
+ return Ra(X, jt), kt();
+ }, nt.copy = function() {
+ return Qn(X, se, Te, Ne);
+ }, kt();
+ }
+ function Ca(X, se) {
+ return e.rebind(X, se, "range", "rangeRound", "interpolate", "clamp");
+ }
+ function Ra(X, se) {
+ return Yi(X, Qi(La(X, se)[2])), Yi(X, Qi(La(X, se)[2])), X;
+ }
+ function La(X, se) {
+ se == null && (se = 10);
+ var Te = dn(X), Ne = Te[1] - Te[0], He = Math.pow(10, Math.floor(Math.log(Ne / se) / Math.LN10)), Ye = se / Ne * He;
+ return Ye <= 0.15 ? He *= 10 : Ye <= 0.35 ? He *= 5 : Ye <= 0.75 && (He *= 2), Te[0] = Math.ceil(Te[0] / He) * He, Te[1] = Math.floor(Te[1] / He) * He + He * 0.5, Te[2] = He, Te;
+ }
+ function Na(X, se) {
+ return e.range.apply(e, La(X, se));
+ }
+ e.scale.log = function() {
+ return bo(e.scale.linear().domain([0, 1]), 10, true, [1, 10]);
+ };
+ function bo(X, se, Te, Ne) {
+ function He(nt) {
+ return (Te ? Math.log(nt < 0 ? 0 : nt) : -Math.log(nt > 0 ? 0 : -nt)) / Math.log(se);
+ }
+ function Ye(nt) {
+ return Te ? Math.pow(se, nt) : -Math.pow(se, -nt);
+ }
+ function kt(nt) {
+ return X(He(nt));
+ }
+ return kt.invert = function(nt) {
+ return Ye(X.invert(nt));
+ }, kt.domain = function(nt) {
+ return arguments.length ? (Te = nt[0] >= 0, X.domain((Ne = nt.map(Number)).map(He)), kt) : Ne;
+ }, kt.base = function(nt) {
+ return arguments.length ? (se = +nt, X.domain(Ne.map(He)), kt) : se;
+ }, kt.nice = function() {
+ var nt = Yi(Ne.map(He), Te ? Math : Zo);
+ return X.domain(nt), Ne = nt.map(Ye), kt;
+ }, kt.ticks = function() {
+ var nt = dn(Ne), jt = [], gr = nt[0], yr = nt[1], Hr = Math.floor(He(gr)), qr = Math.ceil(He(yr)), _i = se % 1 ? 2 : se;
+ if (isFinite(qr - Hr)) {
+ if (Te) {
+ for (; Hr < qr; Hr++) for (var bi = 1; bi < _i; bi++) jt.push(Ye(Hr) * bi);
+ jt.push(Ye(Hr));
+ } else for (jt.push(Ye(Hr)); Hr++ < qr; ) for (var bi = _i - 1; bi > 0; bi--) jt.push(Ye(Hr) * bi);
+ for (Hr = 0; jt[Hr] < gr; Hr++) ;
+ for (qr = jt.length; jt[qr - 1] > yr; qr--) ;
+ jt = jt.slice(Hr, qr);
+ }
+ return jt;
+ }, kt.copy = function() {
+ return bo(X.copy(), se, Te, Ne);
+ }, Ca(kt, X);
+ }
+ var Zo = { floor: function(X) {
+ return -Math.ceil(-X);
+ }, ceil: function(X) {
+ return -Math.floor(-X);
+ } };
+ e.scale.pow = function() {
+ return Ss(e.scale.linear(), 1, [0, 1]);
+ };
+ function Ss(X, se, Te) {
+ var Ne = as(se), He = as(1 / se);
+ function Ye(kt) {
+ return X(Ne(kt));
+ }
+ return Ye.invert = function(kt) {
+ return He(X.invert(kt));
+ }, Ye.domain = function(kt) {
+ return arguments.length ? (X.domain((Te = kt.map(Number)).map(Ne)), Ye) : Te;
+ }, Ye.ticks = function(kt) {
+ return Na(Te, kt);
+ }, Ye.tickFormat = function(kt, nt) {
+ return d3_scale_linearTickFormat(Te, kt, nt);
+ }, Ye.nice = function(kt) {
+ return Ye.domain(Ra(Te, kt));
+ }, Ye.exponent = function(kt) {
+ return arguments.length ? (Ne = as(se = kt), He = as(1 / se), X.domain(Te.map(Ne)), Ye) : se;
+ }, Ye.copy = function() {
+ return Ss(X.copy(), se, Te);
+ }, Ca(Ye, X);
+ }
+ function as(X) {
+ return function(se) {
+ return se < 0 ? -Math.pow(-se, X) : Math.pow(se, X);
+ };
+ }
+ e.scale.sqrt = function() {
+ return e.scale.pow().exponent(0.5);
+ }, e.scale.ordinal = function() {
+ return ws([], { t: "range", a: [[]] });
+ };
+ function ws(X, se) {
+ var Te, Ne, He;
+ function Ye(nt) {
+ return Ne[((Te.get(nt) || (se.t === "range" ? Te.set(nt, X.push(nt)) : NaN)) - 1) % Ne.length];
+ }
+ function kt(nt, jt) {
+ return e.range(X.length).map(function(gr) {
+ return nt + jt * gr;
+ });
+ }
+ return Ye.domain = function(nt) {
+ if (!arguments.length) return X;
+ X = [], Te = new T();
+ for (var jt = -1, gr = nt.length, yr; ++jt < gr; ) Te.has(yr = nt[jt]) || Te.set(yr, X.push(yr));
+ return Ye[se.t].apply(Ye, se.a);
+ }, Ye.range = function(nt) {
+ return arguments.length ? (Ne = nt, He = 0, se = { t: "range", a: arguments }, Ye) : Ne;
+ }, Ye.rangePoints = function(nt, jt) {
+ arguments.length < 2 && (jt = 0);
+ var gr = nt[0], yr = nt[1], Hr = X.length < 2 ? (gr = (gr + yr) / 2, 0) : (yr - gr) / (X.length - 1 + jt);
+ return Ne = kt(gr + Hr * jt / 2, Hr), He = 0, se = { t: "rangePoints", a: arguments }, Ye;
+ }, Ye.rangeRoundPoints = function(nt, jt) {
+ arguments.length < 2 && (jt = 0);
+ var gr = nt[0], yr = nt[1], Hr = X.length < 2 ? (gr = yr = Math.round((gr + yr) / 2), 0) : (yr - gr) / (X.length - 1 + jt) | 0;
+ return Ne = kt(gr + Math.round(Hr * jt / 2 + (yr - gr - (X.length - 1 + jt) * Hr) / 2), Hr), He = 0, se = { t: "rangeRoundPoints", a: arguments }, Ye;
+ }, Ye.rangeBands = function(nt, jt, gr) {
+ arguments.length < 2 && (jt = 0), arguments.length < 3 && (gr = jt);
+ var yr = nt[1] < nt[0], Hr = nt[yr - 0], qr = nt[1 - yr], _i = (qr - Hr) / (X.length - jt + 2 * gr);
+ return Ne = kt(Hr + _i * gr, _i), yr && Ne.reverse(), He = _i * (1 - jt), se = { t: "rangeBands", a: arguments }, Ye;
+ }, Ye.rangeRoundBands = function(nt, jt, gr) {
+ arguments.length < 2 && (jt = 0), arguments.length < 3 && (gr = jt);
+ var yr = nt[1] < nt[0], Hr = nt[yr - 0], qr = nt[1 - yr], _i = Math.floor((qr - Hr) / (X.length - jt + 2 * gr));
+ return Ne = kt(Hr + Math.round((qr - Hr - (X.length - jt) * _i) / 2), _i), yr && Ne.reverse(), He = Math.round(_i * (1 - jt)), se = { t: "rangeRoundBands", a: arguments }, Ye;
+ }, Ye.rangeBand = function() {
+ return He;
+ }, Ye.rangeExtent = function() {
+ return dn(se.a[0]);
+ }, Ye.copy = function() {
+ return ws(X, se);
+ }, Ye.domain(X);
+ }
+ e.scale.category10 = function() {
+ return e.scale.ordinal().range(Ho);
+ }, e.scale.category20 = function() {
+ return e.scale.ordinal().range(ml);
+ }, e.scale.category20b = function() {
+ return e.scale.ordinal().range(Ws);
+ }, e.scale.category20c = function() {
+ return e.scale.ordinal().range(Ls);
+ };
+ var Ho = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(Xo), ml = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(Xo), Ws = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(Xo), Ls = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(Xo);
+ e.scale.quantile = function() {
+ return va([], []);
+ };
+ function va(X, se) {
+ var Te;
+ function Ne() {
+ var Ye = 0, kt = se.length;
+ for (Te = []; ++Ye < kt; ) Te[Ye - 1] = e.quantile(X, Ye / kt);
+ return He;
+ }
+ function He(Ye) {
+ if (!isNaN(Ye = +Ye)) return se[e.bisect(Te, Ye)];
+ }
+ return He.domain = function(Ye) {
+ return arguments.length ? (X = Ye.map(h).filter(d).sort(f), Ne()) : X;
+ }, He.range = function(Ye) {
+ return arguments.length ? (se = Ye, Ne()) : se;
+ }, He.quantiles = function() {
+ return Te;
+ }, He.invertExtent = function(Ye) {
+ return Ye = se.indexOf(Ye), Ye < 0 ? [NaN, NaN] : [Ye > 0 ? Te[Ye - 1] : X[0], Ye < Te.length ? Te[Ye] : X[X.length - 1]];
+ }, He.copy = function() {
+ return va(X, se);
+ }, Ne();
+ }
+ e.scale.quantize = function() {
+ return no(0, 1, [0, 1]);
+ };
+ function no(X, se, Te) {
+ var Ne, He;
+ function Ye(nt) {
+ return Te[Math.max(0, Math.min(He, Math.floor(Ne * (nt - X))))];
+ }
+ function kt() {
+ return Ne = Te.length / (se - X), He = Te.length - 1, Ye;
+ }
+ return Ye.domain = function(nt) {
+ return arguments.length ? (X = +nt[0], se = +nt[nt.length - 1], kt()) : [X, se];
+ }, Ye.range = function(nt) {
+ return arguments.length ? (Te = nt, kt()) : Te;
+ }, Ye.invertExtent = function(nt) {
+ return nt = Te.indexOf(nt), nt = nt < 0 ? NaN : nt / Ne + X, [nt, nt + 1 / Ne];
+ }, Ye.copy = function() {
+ return no(X, se, Te);
+ }, kt();
+ }
+ e.scale.threshold = function() {
+ return ys([0.5], [0, 1]);
+ };
+ function ys(X, se) {
+ function Te(Ne) {
+ if (Ne <= Ne) return se[e.bisect(X, Ne)];
+ }
+ return Te.domain = function(Ne) {
+ return arguments.length ? (X = Ne, Te) : X;
+ }, Te.range = function(Ne) {
+ return arguments.length ? (se = Ne, Te) : se;
+ }, Te.invertExtent = function(Ne) {
+ return Ne = se.indexOf(Ne), [X[Ne - 1], X[Ne]];
+ }, Te.copy = function() {
+ return ys(X, se);
+ }, Te;
+ }
+ e.scale.identity = function() {
+ return rs([0, 1]);
+ };
+ function rs(X) {
+ function se(Te) {
+ return +Te;
+ }
+ return se.invert = se, se.domain = se.range = function(Te) {
+ return arguments.length ? (X = Te.map(se), se) : X;
+ }, se.ticks = function(Te) {
+ return Na(X, Te);
+ }, se.tickFormat = function(Te, Ne) {
+ return d3_scale_linearTickFormat(X, Te, Ne);
+ }, se.copy = function() {
+ return rs(X);
+ }, se;
+ }
+ e.svg = {};
+ function Ql() {
+ return 0;
+ }
+ e.svg.arc = function() {
+ var X = Yu, se = Nc, Te = Ql, Ne = Cu, He = pu, Ye = Uc, kt = xu;
+ function nt() {
+ var gr = Math.max(0, +X.apply(this, arguments)), yr = Math.max(0, +se.apply(this, arguments)), Hr = He.apply(this, arguments) - xe, qr = Ye.apply(this, arguments) - xe, _i = Math.abs(qr - Hr), bi = Hr > qr ? 0 : 1;
+ if (yr < gr && (Zr = yr, yr = gr, gr = Zr), _i >= Ie) return jt(yr, bi) + (gr ? jt(gr, 1 - bi) : "") + "Z";
+ var Zr, ai, gi, Ii, Si = 0, ei = 0, Ln, En, Un, ia, Ea, Ia, yo, Da, go = [];
+ if ((Ii = (+kt.apply(this, arguments) || 0) / 2) && (gi = Ne === Cu ? Math.sqrt(gr * gr + yr * yr) : +Ne.apply(this, arguments), bi || (ei *= -1), yr && (ei = ii(gi / yr * Math.sin(Ii))), gr && (Si = ii(gi / gr * Math.sin(Ii)))), yr) {
+ Ln = yr * Math.cos(Hr + ei), En = yr * Math.sin(Hr + ei), Un = yr * Math.cos(qr - ei), ia = yr * Math.sin(qr - ei);
+ var Is = Math.abs(qr - Hr - 2 * ei) <= tt ? 0 : 1;
+ if (ei && Ac(Ln, En, Un, ia) === bi ^ Is) {
+ var Ms = (Hr + qr) / 2;
+ Ln = yr * Math.cos(Ms), En = yr * Math.sin(Ms), Un = ia = null;
+ }
+ } else Ln = En = 0;
+ if (gr) {
+ Ea = gr * Math.cos(qr - Si), Ia = gr * Math.sin(qr - Si), yo = gr * Math.cos(Hr + Si), Da = gr * Math.sin(Hr + Si);
+ var Xs = Math.abs(Hr - qr + 2 * Si) <= tt ? 0 : 1;
+ if (Si && Ac(Ea, Ia, yo, Da) === 1 - bi ^ Xs) {
+ var Gn = (Hr + qr) / 2;
+ Ea = gr * Math.cos(Gn), Ia = gr * Math.sin(Gn), yo = Da = null;
+ }
+ } else Ea = Ia = 0;
+ if (_i > Je && (Zr = Math.min(Math.abs(yr - gr) / 2, +Te.apply(this, arguments))) > 1e-3) {
+ ai = gr < yr ^ bi ? 0 : 1;
+ var ja = Zr, Fo = Zr;
+ if (_i < tt) {
+ var Uo = yo == null ? [Ea, Ia] : Un == null ? [Ln, En] : il([Ln, En], [yo, Da], [Un, ia], [Ea, Ia]), $s = Ln - Uo[0], Sl = En - Uo[1], bu = Un - Uo[0], dl = ia - Uo[1], Sc = 1 / Math.sin(Math.acos(($s * bu + Sl * dl) / (Math.sqrt($s * $s + Sl * Sl) * Math.sqrt(bu * bu + dl * dl))) / 2), Me = Math.sqrt(Uo[0] * Uo[0] + Uo[1] * Uo[1]);
+ Fo = Math.min(Zr, (gr - Me) / (Sc - 1)), ja = Math.min(Zr, (yr - Me) / (Sc + 1));
+ }
+ if (Un != null) {
+ var bt = Ua(yo == null ? [Ea, Ia] : [yo, Da], [Ln, En], yr, ja, bi), zt = Ua([Un, ia], [Ea, Ia], yr, ja, bi);
+ Zr === ja ? go.push("M", bt[0], "A", ja, ",", ja, " 0 0,", ai, " ", bt[1], "A", yr, ",", yr, " 0 ", 1 - bi ^ Ac(bt[1][0], bt[1][1], zt[1][0], zt[1][1]), ",", bi, " ", zt[1], "A", ja, ",", ja, " 0 0,", ai, " ", zt[0]) : go.push("M", bt[0], "A", ja, ",", ja, " 0 1,", ai, " ", zt[0]);
+ } else go.push("M", Ln, ",", En);
+ if (yo != null) {
+ var Rr = Ua([Ln, En], [yo, Da], gr, -Fo, bi), jr = Ua([Ea, Ia], Un == null ? [Ln, En] : [Un, ia], gr, -Fo, bi);
+ Zr === Fo ? go.push("L", jr[0], "A", Fo, ",", Fo, " 0 0,", ai, " ", jr[1], "A", gr, ",", gr, " 0 ", bi ^ Ac(jr[1][0], jr[1][1], Rr[1][0], Rr[1][1]), ",", 1 - bi, " ", Rr[1], "A", Fo, ",", Fo, " 0 0,", ai, " ", Rr[0]) : go.push("L", jr[0], "A", Fo, ",", Fo, " 0 0,", ai, " ", Rr[0]);
+ } else go.push("L", Ea, ",", Ia);
+ } else go.push("M", Ln, ",", En), Un != null && go.push("A", yr, ",", yr, " 0 ", Is, ",", bi, " ", Un, ",", ia), go.push("L", Ea, ",", Ia), yo != null && go.push("A", gr, ",", gr, " 0 ", Xs, ",", 1 - bi, " ", yo, ",", Da);
+ return go.push("Z"), go.join("");
+ }
+ function jt(gr, yr) {
+ return "M0," + gr + "A" + gr + "," + gr + " 0 1," + yr + " 0," + -gr + "A" + gr + "," + gr + " 0 1," + yr + " 0," + gr;
+ }
+ return nt.innerRadius = function(gr) {
+ return arguments.length ? (X = vi(gr), nt) : X;
+ }, nt.outerRadius = function(gr) {
+ return arguments.length ? (se = vi(gr), nt) : se;
+ }, nt.cornerRadius = function(gr) {
+ return arguments.length ? (Te = vi(gr), nt) : Te;
+ }, nt.padRadius = function(gr) {
+ return arguments.length ? (Ne = gr == Cu ? Cu : vi(gr), nt) : Ne;
+ }, nt.startAngle = function(gr) {
+ return arguments.length ? (He = vi(gr), nt) : He;
+ }, nt.endAngle = function(gr) {
+ return arguments.length ? (Ye = vi(gr), nt) : Ye;
+ }, nt.padAngle = function(gr) {
+ return arguments.length ? (kt = vi(gr), nt) : kt;
+ }, nt.centroid = function() {
+ var gr = (+X.apply(this, arguments) + +se.apply(this, arguments)) / 2, yr = (+He.apply(this, arguments) + +Ye.apply(this, arguments)) / 2 - xe;
+ return [Math.cos(yr) * gr, Math.sin(yr) * gr];
+ }, nt;
+ };
+ var Cu = "auto";
+ function Yu(X) {
+ return X.innerRadius;
+ }
+ function Nc(X) {
+ return X.outerRadius;
+ }
+ function pu(X) {
+ return X.startAngle;
+ }
+ function Uc(X) {
+ return X.endAngle;
+ }
+ function xu(X) {
+ return X && X.padAngle;
+ }
+ function Ac(X, se, Te, Ne) {
+ return (X - Te) * se - (se - Ne) * X > 0 ? 0 : 1;
+ }
+ function Ua(X, se, Te, Ne, He) {
+ var Ye = X[0] - se[0], kt = X[1] - se[1], nt = (He ? Ne : -Ne) / Math.sqrt(Ye * Ye + kt * kt), jt = nt * kt, gr = -nt * Ye, yr = X[0] + jt, Hr = X[1] + gr, qr = se[0] + jt, _i = se[1] + gr, bi = (yr + qr) / 2, Zr = (Hr + _i) / 2, ai = qr - yr, gi = _i - Hr, Ii = ai * ai + gi * gi, Si = Te - Ne, ei = yr * _i - qr * Hr, Ln = (gi < 0 ? -1 : 1) * Math.sqrt(Math.max(0, Si * Si * Ii - ei * ei)), En = (ei * gi - ai * Ln) / Ii, Un = (-ei * ai - gi * Ln) / Ii, ia = (ei * gi + ai * Ln) / Ii, Ea = (-ei * ai + gi * Ln) / Ii, Ia = En - bi, yo = Un - Zr, Da = ia - bi, go = Ea - Zr;
+ return Ia * Ia + yo * yo > Da * Da + go * go && (En = ia, Un = Ea), [[En - jt, Un - gr], [En * Te / Si, Un * Te / Si]];
+ }
+ function oo() {
+ return true;
+ }
+ function Vc(X) {
+ var se = Ds, Te = Fs, Ne = oo, He = Ku, Ye = He.key, kt = 0.7;
+ function nt(jt) {
+ var gr = [], yr = [], Hr = -1, qr = jt.length, _i, bi = vi(se), Zr = vi(Te);
+ function ai() {
+ gr.push("M", He(X(yr), kt));
+ }
+ for (; ++Hr < qr; ) Ne.call(this, _i = jt[Hr], Hr) ? yr.push([+bi.call(this, _i, Hr), +Zr.call(this, _i, Hr)]) : yr.length && (ai(), yr = []);
+ return yr.length && ai(), gr.length ? gr.join("") : null;
+ }
+ return nt.x = function(jt) {
+ return arguments.length ? (se = jt, nt) : se;
+ }, nt.y = function(jt) {
+ return arguments.length ? (Te = jt, nt) : Te;
+ }, nt.defined = function(jt) {
+ return arguments.length ? (Ne = jt, nt) : Ne;
+ }, nt.interpolate = function(jt) {
+ return arguments.length ? (typeof jt == "function" ? Ye = He = jt : Ye = (He = hc.get(jt) || Ku).key, nt) : Ye;
+ }, nt.tension = function(jt) {
+ return arguments.length ? (kt = jt, nt) : kt;
+ }, nt;
+ }
+ e.svg.line = function() {
+ return Vc(G);
+ };
+ var hc = e.map({ linear: Ku, "linear-closed": ue, step: w, "step-before": B, "step-after": Q, basis: Tt, "basis-open": Yt, "basis-closed": Kt, bundle: xr, cardinal: Oe, "cardinal-open": ee, "cardinal-closed": le, monotone: Ft });
+ hc.forEach(function(X, se) {
+ se.key = X, se.closed = /-closed$/.test(X);
+ });
+ function Ku(X) {
+ return X.length > 1 ? X.join("L") : X + "Z";
+ }
+ function ue(X) {
+ return X.join("L") + "Z";
+ }
+ function w(X) {
+ for (var se = 0, Te = X.length, Ne = X[0], He = [Ne[0], ",", Ne[1]]; ++se < Te; ) He.push("H", (Ne[0] + (Ne = X[se])[0]) / 2, "V", Ne[1]);
+ return Te > 1 && He.push("H", Ne[0]), He.join("");
+ }
+ function B(X) {
+ for (var se = 0, Te = X.length, Ne = X[0], He = [Ne[0], ",", Ne[1]]; ++se < Te; ) He.push("V", (Ne = X[se])[1], "H", Ne[0]);
+ return He.join("");
+ }
+ function Q(X) {
+ for (var se = 0, Te = X.length, Ne = X[0], He = [Ne[0], ",", Ne[1]]; ++se < Te; ) He.push("H", (Ne = X[se])[0], "V", Ne[1]);
+ return He.join("");
+ }
+ function ee(X, se) {
+ return X.length < 4 ? Ku(X) : X[1] + Ze(X.slice(1, -1), st(X, se));
+ }
+ function le(X, se) {
+ return X.length < 3 ? ue(X) : X[0] + Ze((X.push(X[0]), X), st([X[X.length - 2]].concat(X, [X[1]]), se));
+ }
+ function Oe(X, se) {
+ return X.length < 3 ? Ku(X) : X[0] + Ze(X, st(X, se));
+ }
+ function Ze(X, se) {
+ if (se.length < 1 || X.length != se.length && X.length != se.length + 2) return Ku(X);
+ var Te = X.length != se.length, Ne = "", He = X[0], Ye = X[1], kt = se[0], nt = kt, jt = 1;
+ if (Te && (Ne += "Q" + (Ye[0] - kt[0] * 2 / 3) + "," + (Ye[1] - kt[1] * 2 / 3) + "," + Ye[0] + "," + Ye[1], He = X[1], jt = 2), se.length > 1) {
+ nt = se[1], Ye = X[jt], jt++, Ne += "C" + (He[0] + kt[0]) + "," + (He[1] + kt[1]) + "," + (Ye[0] - nt[0]) + "," + (Ye[1] - nt[1]) + "," + Ye[0] + "," + Ye[1];
+ for (var gr = 2; gr < se.length; gr++, jt++) Ye = X[jt], nt = se[gr], Ne += "S" + (Ye[0] - nt[0]) + "," + (Ye[1] - nt[1]) + "," + Ye[0] + "," + Ye[1];
+ }
+ if (Te) {
+ var yr = X[jt];
+ Ne += "Q" + (Ye[0] + nt[0] * 2 / 3) + "," + (Ye[1] + nt[1] * 2 / 3) + "," + yr[0] + "," + yr[1];
+ }
+ return Ne;
+ }
+ function st(X, se) {
+ for (var Te = [], Ne = (1 - se) / 2, He, Ye = X[0], kt = X[1], nt = 1, jt = X.length; ++nt < jt; ) He = Ye, Ye = kt, kt = X[nt], Te.push([Ne * (kt[0] - He[0]), Ne * (kt[1] - He[1])]);
+ return Te;
+ }
+ function Tt(X) {
+ if (X.length < 3) return Ku(X);
+ var se = 1, Te = X.length, Ne = X[0], He = Ne[0], Ye = Ne[1], kt = [He, He, He, (Ne = X[1])[0]], nt = [Ye, Ye, Ye, Ne[1]], jt = [He, ",", Ye, "L", Ir(Re, kt), ",", Ir(Re, nt)];
+ for (X.push(X[Te - 1]); ++se <= Te; ) Ne = X[se], kt.shift(), kt.push(Ne[0]), nt.shift(), nt.push(Ne[1]), qe(jt, kt, nt);
+ return X.pop(), jt.push("L", Ne), jt.join("");
+ }
+ function Yt(X) {
+ if (X.length < 4) return Ku(X);
+ for (var se = [], Te = -1, Ne = X.length, He, Ye = [0], kt = [0]; ++Te < 3; ) He = X[Te], Ye.push(He[0]), kt.push(He[1]);
+ for (se.push(Ir(Re, Ye) + "," + Ir(Re, kt)), --Te; ++Te < Ne; ) He = X[Te], Ye.shift(), Ye.push(He[0]), kt.shift(), kt.push(He[1]), qe(se, Ye, kt);
+ return se.join("");
+ }
+ function Kt(X) {
+ for (var se, Te = -1, Ne = X.length, He = Ne + 4, Ye, kt = [], nt = []; ++Te < 4; ) Ye = X[Te % Ne], kt.push(Ye[0]), nt.push(Ye[1]);
+ for (se = [Ir(Re, kt), ",", Ir(Re, nt)], --Te; ++Te < He; ) Ye = X[Te % Ne], kt.shift(), kt.push(Ye[0]), nt.shift(), nt.push(Ye[1]), qe(se, kt, nt);
+ return se.join("");
+ }
+ function xr(X, se) {
+ var Te = X.length - 1;
+ if (Te) for (var Ne = X[0][0], He = X[0][1], Ye = X[Te][0] - Ne, kt = X[Te][1] - He, nt = -1, jt, gr; ++nt <= Te; ) jt = X[nt], gr = nt / Te, jt[0] = se * jt[0] + (1 - se) * (Ne + gr * Ye), jt[1] = se * jt[1] + (1 - se) * (He + gr * kt);
+ return Tt(X);
+ }
+ function Ir(X, se) {
+ return X[0] * se[0] + X[1] * se[1] + X[2] * se[2] + X[3] * se[3];
+ }
+ var ve = [0, 2 / 3, 1 / 3, 0], be = [0, 1 / 3, 2 / 3, 0], Re = [0, 1 / 6, 2 / 3, 1 / 6];
+ function qe(X, se, Te) {
+ X.push("C", Ir(ve, se), ",", Ir(ve, Te), ",", Ir(be, se), ",", Ir(be, Te), ",", Ir(Re, se), ",", Ir(Re, Te));
+ }
+ function et(X, se) {
+ return (se[1] - X[1]) / (se[0] - X[0]);
+ }
+ function Xe(X) {
+ for (var se = 0, Te = X.length - 1, Ne = [], He = X[0], Ye = X[1], kt = Ne[0] = et(He, Ye); ++se < Te; ) Ne[se] = (kt + (kt = et(He = Ye, Ye = X[se + 1]))) / 2;
+ return Ne[se] = kt, Ne;
+ }
+ function it(X) {
+ for (var se = [], Te, Ne, He, Ye, kt = Xe(X), nt = -1, jt = X.length - 1; ++nt < jt; ) Te = et(X[nt], X[nt + 1]), p(Te) < Je ? kt[nt] = kt[nt + 1] = 0 : (Ne = kt[nt] / Te, He = kt[nt + 1] / Te, Ye = Ne * Ne + He * He, Ye > 9 && (Ye = Te * 3 / Math.sqrt(Ye), kt[nt] = Ye * Ne, kt[nt + 1] = Ye * He));
+ for (nt = -1; ++nt <= jt; ) Ye = (X[Math.min(jt, nt + 1)][0] - X[Math.max(0, nt - 1)][0]) / (6 * (1 + kt[nt] * kt[nt])), se.push([Ye || 0, kt[nt] * Ye || 0]);
+ return se;
+ }
+ function Ft(X) {
+ return X.length < 3 ? Ku(X) : X[0] + Ze(X, it(X));
+ }
+ e.svg.line.radial = function() {
+ var X = Vc(Ht);
+ return X.radius = X.x, delete X.x, X.angle = X.y, delete X.y, X;
+ };
+ function Ht(X) {
+ for (var se, Te = -1, Ne = X.length, He, Ye; ++Te < Ne; ) se = X[Te], He = se[0], Ye = se[1] - xe, se[0] = He * Math.cos(Ye), se[1] = He * Math.sin(Ye);
+ return X;
+ }
+ function tr(X) {
+ var se = Ds, Te = Ds, Ne = 0, He = Fs, Ye = oo, kt = Ku, nt = kt.key, jt = kt, gr = "L", yr = 0.7;
+ function Hr(qr) {
+ var _i = [], bi = [], Zr = [], ai = -1, gi = qr.length, Ii, Si = vi(se), ei = vi(Ne), Ln = se === Te ? function() {
+ return Un;
+ } : vi(Te), En = Ne === He ? function() {
+ return ia;
+ } : vi(He), Un, ia;
+ function Ea() {
+ _i.push("M", kt(X(Zr), yr), gr, jt(X(bi.reverse()), yr), "Z");
+ }
+ for (; ++ai < gi; ) Ye.call(this, Ii = qr[ai], ai) ? (bi.push([Un = +Si.call(this, Ii, ai), ia = +ei.call(this, Ii, ai)]), Zr.push([+Ln.call(this, Ii, ai), +En.call(this, Ii, ai)])) : bi.length && (Ea(), bi = [], Zr = []);
+ return bi.length && Ea(), _i.length ? _i.join("") : null;
+ }
+ return Hr.x = function(qr) {
+ return arguments.length ? (se = Te = qr, Hr) : Te;
+ }, Hr.x0 = function(qr) {
+ return arguments.length ? (se = qr, Hr) : se;
+ }, Hr.x1 = function(qr) {
+ return arguments.length ? (Te = qr, Hr) : Te;
+ }, Hr.y = function(qr) {
+ return arguments.length ? (Ne = He = qr, Hr) : He;
+ }, Hr.y0 = function(qr) {
+ return arguments.length ? (Ne = qr, Hr) : Ne;
+ }, Hr.y1 = function(qr) {
+ return arguments.length ? (He = qr, Hr) : He;
+ }, Hr.defined = function(qr) {
+ return arguments.length ? (Ye = qr, Hr) : Ye;
+ }, Hr.interpolate = function(qr) {
+ return arguments.length ? (typeof qr == "function" ? nt = kt = qr : nt = (kt = hc.get(qr) || Ku).key, jt = kt.reverse || kt, gr = kt.closed ? "M" : "L", Hr) : nt;
+ }, Hr.tension = function(qr) {
+ return arguments.length ? (yr = qr, Hr) : yr;
+ }, Hr;
+ }
+ B.reverse = Q, Q.reverse = B, e.svg.area = function() {
+ return tr(G);
+ }, e.svg.area.radial = function() {
+ var X = tr(Ht);
+ return X.radius = X.x, delete X.x, X.innerRadius = X.x0, delete X.x0, X.outerRadius = X.x1, delete X.x1, X.angle = X.y, delete X.y, X.startAngle = X.y0, delete X.y0, X.endAngle = X.y1, delete X.y1, X;
+ };
+ function dr(X) {
+ return X.source;
+ }
+ function Sr(X) {
+ return X.target;
+ }
+ e.svg.chord = function() {
+ var X = dr, se = Sr, Te = Or, Ne = pu, He = Uc;
+ function Ye(yr, Hr) {
+ var qr = kt(this, X, yr, Hr), _i = kt(this, se, yr, Hr);
+ return "M" + qr.p0 + jt(qr.r, qr.p1, qr.a1 - qr.a0) + (nt(qr, _i) ? gr(qr.r, qr.p1, qr.r, qr.p0) : gr(qr.r, qr.p1, _i.r, _i.p0) + jt(_i.r, _i.p1, _i.a1 - _i.a0) + gr(_i.r, _i.p1, qr.r, qr.p0)) + "Z";
+ }
+ function kt(yr, Hr, qr, _i) {
+ var bi = Hr.call(yr, qr, _i), Zr = Te.call(yr, bi, _i), ai = Ne.call(yr, bi, _i) - xe, gi = He.call(yr, bi, _i) - xe;
+ return { r: Zr, a0: ai, a1: gi, p0: [Zr * Math.cos(ai), Zr * Math.sin(ai)], p1: [Zr * Math.cos(gi), Zr * Math.sin(gi)] };
+ }
+ function nt(yr, Hr) {
+ return yr.a0 == Hr.a0 && yr.a1 == Hr.a1;
+ }
+ function jt(yr, Hr, qr) {
+ return "A" + yr + "," + yr + " 0 " + +(qr > tt) + ",1 " + Hr;
+ }
+ function gr(yr, Hr, qr, _i) {
+ return "Q 0,0 " + _i;
+ }
+ return Ye.radius = function(yr) {
+ return arguments.length ? (Te = vi(yr), Ye) : Te;
+ }, Ye.source = function(yr) {
+ return arguments.length ? (X = vi(yr), Ye) : X;
+ }, Ye.target = function(yr) {
+ return arguments.length ? (se = vi(yr), Ye) : se;
+ }, Ye.startAngle = function(yr) {
+ return arguments.length ? (Ne = vi(yr), Ye) : Ne;
+ }, Ye.endAngle = function(yr) {
+ return arguments.length ? (He = vi(yr), Ye) : He;
+ }, Ye;
+ };
+ function Or(X) {
+ return X.radius;
+ }
+ e.svg.diagonal = function() {
+ var X = dr, se = Sr, Te = Wr;
+ function Ne(He, Ye) {
+ var kt = X.call(this, He, Ye), nt = se.call(this, He, Ye), jt = (kt.y + nt.y) / 2, gr = [kt, { x: kt.x, y: jt }, { x: nt.x, y: jt }, nt];
+ return gr = gr.map(Te), "M" + gr[0] + "C" + gr[1] + " " + gr[2] + " " + gr[3];
+ }
+ return Ne.source = function(He) {
+ return arguments.length ? (X = vi(He), Ne) : X;
+ }, Ne.target = function(He) {
+ return arguments.length ? (se = vi(He), Ne) : se;
+ }, Ne.projection = function(He) {
+ return arguments.length ? (Te = He, Ne) : Te;
+ }, Ne;
+ };
+ function Wr(X) {
+ return [X.x, X.y];
+ }
+ e.svg.diagonal.radial = function() {
+ var X = e.svg.diagonal(), se = Wr, Te = X.projection;
+ return X.projection = function(Ne) {
+ return arguments.length ? Te(ni(se = Ne)) : se;
+ }, X;
+ };
+ function ni(X) {
+ return function() {
+ var se = X.apply(this, arguments), Te = se[0], Ne = se[1] - xe;
+ return [Te * Math.cos(Ne), Te * Math.sin(Ne)];
+ };
+ }
+ e.svg.symbol = function() {
+ var X = cn, se = Pi;
+ function Te(Ne, He) {
+ return (Cn.get(X.call(this, Ne, He)) || ln)(se.call(this, Ne, He));
+ }
+ return Te.type = function(Ne) {
+ return arguments.length ? (X = vi(Ne), Te) : X;
+ }, Te.size = function(Ne) {
+ return arguments.length ? (se = vi(Ne), Te) : se;
+ }, Te;
+ };
+ function Pi() {
+ return 64;
+ }
+ function cn() {
+ return "circle";
+ }
+ function ln(X) {
+ var se = Math.sqrt(X / tt);
+ return "M0," + se + "A" + se + "," + se + " 0 1,1 0," + -se + "A" + se + "," + se + " 0 1,1 0," + se + "Z";
+ }
+ var Cn = e.map({ circle: ln, cross: function(X) {
+ var se = Math.sqrt(X / 5) / 2;
+ return "M" + -3 * se + "," + -se + "H" + -se + "V" + -3 * se + "H" + se + "V" + -se + "H" + 3 * se + "V" + se + "H" + se + "V" + 3 * se + "H" + -se + "V" + se + "H" + -3 * se + "Z";
+ }, diamond: function(X) {
+ var se = Math.sqrt(X / (2 * Aa)), Te = se * Aa;
+ return "M0," + -se + "L" + Te + ",0 0," + se + " " + -Te + ",0Z";
+ }, square: function(X) {
+ var se = Math.sqrt(X) / 2;
+ return "M" + -se + "," + -se + "L" + se + "," + -se + " " + se + "," + se + " " + -se + "," + se + "Z";
+ }, "triangle-down": function(X) {
+ var se = Math.sqrt(X / Kn), Te = se * Kn / 2;
+ return "M0," + Te + "L" + se + "," + -Te + " " + -se + "," + -Te + "Z";
+ }, "triangle-up": function(X) {
+ var se = Math.sqrt(X / Kn), Te = se * Kn / 2;
+ return "M0," + -Te + "L" + se + "," + Te + " " + -se + "," + Te + "Z";
+ } });
+ e.svg.symbolTypes = Cn.keys();
+ var Kn = Math.sqrt(3), Aa = Math.tan(30 * ke);
+ Pe.transition = function(X) {
+ for (var se = Bo || ++mo, Te = To(X), Ne = [], He, Ye, kt = Ps || { time: Date.now(), ease: bl, delay: 0, duration: 250 }, nt = -1, jt = this.length; ++nt < jt; ) {
+ Ne.push(He = []);
+ for (var gr = this[nt], yr = -1, Hr = gr.length; ++yr < Hr; ) (Ye = gr[yr]) && hl(Ye, yr, Te, se, kt), He.push(Ye);
+ }
+ return Co(Ne, Te, se);
+ }, Pe.interrupt = function(X) {
+ return this.each(X == null ? fa : $a(To(X)));
+ };
+ var fa = $a(To());
+ function $a(X) {
+ return function() {
+ var se, Te, Ne;
+ (se = this[X]) && (Ne = se[Te = se.active]) && (Ne.timer.c = null, Ne.timer.t = NaN, --se.count ? delete se[Te] : delete this[X], se.active += 0.5, Ne.event && Ne.event.interrupt.call(this, this.__data__, Ne.index));
+ };
+ }
+ function Co(X, se, Te) {
+ return ie(X, Qa), X.namespace = se, X.id = Te, X;
+ }
+ var Qa = [], mo = 0, Bo, Ps;
+ Qa.call = Pe.call, Qa.empty = Pe.empty, Qa.node = Pe.node, Qa.size = Pe.size, e.transition = function(X, se) {
+ return X && X.transition ? Bo ? X.transition(se) : X : e.selection().transition(X);
+ }, e.transition.prototype = Qa, Qa.select = function(X) {
+ var se = this.id, Te = this.namespace, Ne = [], He, Ye, kt;
+ X = me(X);
+ for (var nt = -1, jt = this.length; ++nt < jt; ) {
+ Ne.push(He = []);
+ for (var gr = this[nt], yr = -1, Hr = gr.length; ++yr < Hr; ) (kt = gr[yr]) && (Ye = X.call(kt, kt.__data__, yr, nt)) ? ("__data__" in kt && (Ye.__data__ = kt.__data__), hl(Ye, yr, Te, se, kt[Te][se]), He.push(Ye)) : He.push(null);
+ }
+ return Co(Ne, Te, se);
+ }, Qa.selectAll = function(X) {
+ var se = this.id, Te = this.namespace, Ne = [], He, Ye, kt, nt, jt;
+ X = De(X);
+ for (var gr = -1, yr = this.length; ++gr < yr; ) for (var Hr = this[gr], qr = -1, _i = Hr.length; ++qr < _i; ) if (kt = Hr[qr]) {
+ jt = kt[Te][se], Ye = X.call(kt, kt.__data__, qr, gr), Ne.push(He = []);
+ for (var bi = -1, Zr = Ye.length; ++bi < Zr; ) (nt = Ye[bi]) && hl(nt, bi, Te, se, jt), He.push(nt);
+ }
+ return Co(Ne, Te, se);
+ }, Qa.filter = function(X) {
+ var se = [], Te, Ne, He;
+ typeof X != "function" && (X = $e(X));
+ for (var Ye = 0, kt = this.length; Ye < kt; Ye++) {
+ se.push(Te = []);
+ for (var Ne = this[Ye], nt = 0, jt = Ne.length; nt < jt; nt++) (He = Ne[nt]) && X.call(He, He.__data__, nt, Ye) && Te.push(He);
+ }
+ return Co(se, this.namespace, this.id);
+ }, Qa.tween = function(X, se) {
+ var Te = this.id, Ne = this.namespace;
+ return arguments.length < 2 ? this.node()[Ne][Te].tween.get(X) : Qt(this, se == null ? function(He) {
+ He[Ne][Te].tween.remove(X);
+ } : function(He) {
+ He[Ne][Te].tween.set(X, se);
+ });
+ };
+ function Ts(X, se, Te, Ne) {
+ var He = X.id, Ye = X.namespace;
+ return Qt(X, typeof Te == "function" ? function(kt, nt, jt) {
+ kt[Ye][He].tween.set(se, Ne(Te.call(kt, kt.__data__, nt, jt)));
+ } : (Te = Ne(Te), function(kt) {
+ kt[Ye][He].tween.set(se, Te);
+ }));
+ }
+ Qa.attr = function(X, se) {
+ if (arguments.length < 2) {
+ for (se in X) this.attr(se, X[se]);
+ return this;
+ }
+ var Te = X == "transform" ? sf : xl, Ne = e.ns.qualify(X);
+ function He() {
+ this.removeAttribute(Ne);
+ }
+ function Ye() {
+ this.removeAttributeNS(Ne.space, Ne.local);
+ }
+ function kt(jt) {
+ return jt == null ? He : (jt += "", function() {
+ var gr = this.getAttribute(Ne), yr;
+ return gr !== jt && (yr = Te(gr, jt), function(Hr) {
+ this.setAttribute(Ne, yr(Hr));
+ });
+ });
+ }
+ function nt(jt) {
+ return jt == null ? Ye : (jt += "", function() {
+ var gr = this.getAttributeNS(Ne.space, Ne.local), yr;
+ return gr !== jt && (yr = Te(gr, jt), function(Hr) {
+ this.setAttributeNS(Ne.space, Ne.local, yr(Hr));
+ });
+ });
+ }
+ return Ts(this, "attr." + X, se, Ne.local ? nt : kt);
+ }, Qa.attrTween = function(X, se) {
+ var Te = e.ns.qualify(X);
+ function Ne(Ye, kt) {
+ var nt = se.call(this, Ye, kt, this.getAttribute(Te));
+ return nt && function(jt) {
+ this.setAttribute(Te, nt(jt));
+ };
+ }
+ function He(Ye, kt) {
+ var nt = se.call(this, Ye, kt, this.getAttributeNS(Te.space, Te.local));
+ return nt && function(jt) {
+ this.setAttributeNS(Te.space, Te.local, nt(jt));
+ };
+ }
+ return this.tween("attr." + X, Te.local ? He : Ne);
+ }, Qa.style = function(X, se, Te) {
+ var Ne = arguments.length;
+ if (Ne < 3) {
+ if (typeof X != "string") {
+ Ne < 2 && (se = "");
+ for (Te in X) this.style(Te, X[Te], se);
+ return this;
+ }
+ Te = "";
+ }
+ function He() {
+ this.style.removeProperty(X);
+ }
+ function Ye(kt) {
+ return kt == null ? He : (kt += "", function() {
+ var nt = a(this).getComputedStyle(this, null).getPropertyValue(X), jt;
+ return nt !== kt && (jt = xl(nt, kt), function(gr) {
+ this.style.setProperty(X, jt(gr), Te);
+ });
+ });
+ }
+ return Ts(this, "style." + X, se, Ye);
+ }, Qa.styleTween = function(X, se, Te) {
+ arguments.length < 3 && (Te = "");
+ function Ne(He, Ye) {
+ var kt = se.call(this, He, Ye, a(this).getComputedStyle(this, null).getPropertyValue(X));
+ return kt && function(nt) {
+ this.style.setProperty(X, kt(nt), Te);
+ };
+ }
+ return this.tween("style." + X, Ne);
+ }, Qa.text = function(X) {
+ return Ts(this, "text", X, wo);
+ };
+ function wo(X) {
+ return X == null && (X = ""), function() {
+ this.textContent = X;
+ };
+ }
+ Qa.remove = function() {
+ var X = this.namespace;
+ return this.each("end.transition", function() {
+ var se;
+ this[X].count < 2 && (se = this.parentNode) && se.removeChild(this);
+ });
+ }, Qa.ease = function(X) {
+ var se = this.id, Te = this.namespace;
+ return arguments.length < 1 ? this.node()[Te][se].ease : (typeof X != "function" && (X = e.ease.apply(e, arguments)), Qt(this, function(Ne) {
+ Ne[Te][se].ease = X;
+ }));
+ }, Qa.delay = function(X) {
+ var se = this.id, Te = this.namespace;
+ return arguments.length < 1 ? this.node()[Te][se].delay : Qt(this, typeof X == "function" ? function(Ne, He, Ye) {
+ Ne[Te][se].delay = +X.call(Ne, Ne.__data__, He, Ye);
+ } : (X = +X, function(Ne) {
+ Ne[Te][se].delay = X;
+ }));
+ }, Qa.duration = function(X) {
+ var se = this.id, Te = this.namespace;
+ return arguments.length < 1 ? this.node()[Te][se].duration : Qt(this, typeof X == "function" ? function(Ne, He, Ye) {
+ Ne[Te][se].duration = Math.max(1, X.call(Ne, Ne.__data__, He, Ye));
+ } : (X = Math.max(1, X), function(Ne) {
+ Ne[Te][se].duration = X;
+ }));
+ }, Qa.each = function(X, se) {
+ var Te = this.id, Ne = this.namespace;
+ if (arguments.length < 2) {
+ var He = Ps, Ye = Bo;
+ try {
+ Bo = Te, Qt(this, function(kt, nt, jt) {
+ Ps = kt[Ne][Te], X.call(kt, kt.__data__, nt, jt);
+ });
+ } finally {
+ Ps = He, Bo = Ye;
+ }
+ } else Qt(this, function(kt) {
+ var nt = kt[Ne][Te];
+ (nt.event || (nt.event = e.dispatch("start", "end", "interrupt"))).on(X, se);
+ });
+ return this;
+ }, Qa.transition = function() {
+ for (var X = this.id, se = ++mo, Te = this.namespace, Ne = [], He, Ye, kt, nt, jt = 0, gr = this.length; jt < gr; jt++) {
+ Ne.push(He = []);
+ for (var Ye = this[jt], yr = 0, Hr = Ye.length; yr < Hr; yr++) (kt = Ye[yr]) && (nt = kt[Te][X], hl(kt, yr, Te, se, { time: nt.time, ease: nt.ease, delay: nt.delay + nt.duration, duration: nt.duration })), He.push(kt);
+ }
+ return Co(Ne, Te, se);
+ };
+ function To(X) {
+ return X == null ? "__transition__" : "__transition_" + X + "__";
+ }
+ function hl(X, se, Te, Ne, He) {
+ var Ye = X[Te] || (X[Te] = { active: 0, count: 0 }), kt = Ye[Ne], nt, jt, gr, yr, Hr;
+ function qr(Zr) {
+ var ai = kt.delay;
+ if (jt.t = ai + nt, ai <= Zr) return _i(Zr - ai);
+ jt.c = _i;
+ }
+ function _i(Zr) {
+ var ai = Ye.active, gi = Ye[ai];
+ gi && (gi.timer.c = null, gi.timer.t = NaN, --Ye.count, delete Ye[ai], gi.event && gi.event.interrupt.call(X, X.__data__, gi.index));
+ for (var Ii in Ye) if (+Ii < Ne) {
+ var Si = Ye[Ii];
+ Si.timer.c = null, Si.timer.t = NaN, --Ye.count, delete Ye[Ii];
+ }
+ jt.c = bi, No(function() {
+ return jt.c && bi(Zr || 1) && (jt.c = null, jt.t = NaN), 1;
+ }, 0, nt), Ye.active = Ne, kt.event && kt.event.start.call(X, X.__data__, se), Hr = [], kt.tween.forEach(function(ei, Ln) {
+ (Ln = Ln.call(X, X.__data__, se)) && Hr.push(Ln);
+ }), yr = kt.ease, gr = kt.duration;
+ }
+ function bi(Zr) {
+ for (var ai = Zr / gr, gi = yr(ai), Ii = Hr.length; Ii > 0; ) Hr[--Ii].call(X, gi);
+ if (ai >= 1) return kt.event && kt.event.end.call(X, X.__data__, se), --Ye.count ? delete Ye[Ne] : delete X[Te], 1;
+ }
+ kt || (nt = He.time, jt = No(qr, 0, nt), kt = Ye[Ne] = { tween: new T(), time: nt, timer: jt, delay: He.delay, duration: He.duration, ease: He.ease, index: se }, He = null, ++Ye.count);
+ }
+ e.svg.axis = function() {
+ var X = e.scale.linear(), se = Ul, Te = 6, Ne = 6, He = 3, Ye = [10], kt = null, nt;
+ function jt(gr) {
+ gr.each(function() {
+ var yr = e.select(this), Hr = this.__chart__ || X, qr = this.__chart__ = X.copy(), _i = kt == null ? qr.ticks ? qr.ticks.apply(qr, Ye) : qr.domain() : kt, bi = nt == null ? qr.tickFormat ? qr.tickFormat.apply(qr, Ye) : G : nt, Zr = yr.selectAll(".tick").data(_i, qr), ai = Zr.enter().insert("g", ".domain").attr("class", "tick").style("opacity", Je), gi = e.transition(Zr.exit()).style("opacity", Je).remove(), Ii = e.transition(Zr.order()).style("opacity", 1), Si = Math.max(Te, 0) + He, ei, Ln = wn(qr), En = yr.selectAll(".domain").data([0]), Un = (En.enter().append("path").attr("class", "domain"), e.transition(En));
+ ai.append("line"), ai.append("text");
+ var ia = ai.select("line"), Ea = Ii.select("line"), Ia = Zr.select("text").text(bi), yo = ai.select("text"), Da = Ii.select("text"), go = se === "top" || se === "left" ? -1 : 1, Is, Ms, Xs, Gn;
+ if (se === "bottom" || se === "top" ? (ei = au, Is = "x", Xs = "y", Ms = "x2", Gn = "y2", Ia.attr("dy", go < 0 ? "0em" : ".71em").style("text-anchor", "middle"), Un.attr("d", "M" + Ln[0] + "," + go * Ne + "V0H" + Ln[1] + "V" + go * Ne)) : (ei = Js, Is = "y", Xs = "x", Ms = "y2", Gn = "x2", Ia.attr("dy", ".32em").style("text-anchor", go < 0 ? "end" : "start"), Un.attr("d", "M" + go * Ne + "," + Ln[0] + "H0V" + Ln[1] + "H" + go * Ne)), ia.attr(Gn, go * Te), yo.attr(Xs, go * Si), Ea.attr(Ms, 0).attr(Gn, go * Te), Da.attr(Is, 0).attr(Xs, go * Si), qr.rangeBand) {
+ var ja = qr, Fo = ja.rangeBand() / 2;
+ Hr = qr = function(Uo) {
+ return ja(Uo) + Fo;
+ };
+ } else Hr.rangeBand ? Hr = qr : gi.call(ei, qr, Hr);
+ ai.call(ei, Hr, qr), Ii.call(ei, qr, qr);
+ });
+ }
+ return jt.scale = function(gr) {
+ return arguments.length ? (X = gr, jt) : X;
+ }, jt.orient = function(gr) {
+ return arguments.length ? (se = gr in Lu ? gr + "" : Ul, jt) : se;
+ }, jt.ticks = function() {
+ return arguments.length ? (Ye = r(arguments), jt) : Ye;
+ }, jt.tickValues = function(gr) {
+ return arguments.length ? (kt = gr, jt) : kt;
+ }, jt.tickFormat = function(gr) {
+ return arguments.length ? (nt = gr, jt) : nt;
+ }, jt.tickSize = function(gr) {
+ var yr = arguments.length;
+ return yr ? (Te = +gr, Ne = +arguments[yr - 1], jt) : Te;
+ }, jt.innerTickSize = function(gr) {
+ return arguments.length ? (Te = +gr, jt) : Te;
+ }, jt.outerTickSize = function(gr) {
+ return arguments.length ? (Ne = +gr, jt) : Ne;
+ }, jt.tickPadding = function(gr) {
+ return arguments.length ? (He = +gr, jt) : He;
+ }, jt.tickSubdivide = function() {
+ return arguments.length && jt;
+ }, jt;
+ };
+ var Ul = "bottom", Lu = { top: 1, right: 1, bottom: 1, left: 1 };
+ function au(X, se, Te) {
+ X.attr("transform", function(Ne) {
+ var He = se(Ne);
+ return "translate(" + (isFinite(He) ? He : Te(Ne)) + ",0)";
+ });
+ }
+ function Js(X, se, Te) {
+ X.attr("transform", function(Ne) {
+ var He = se(Ne);
+ return "translate(0," + (isFinite(He) ? He : Te(Ne)) + ")";
+ });
+ }
+ e.svg.brush = function() {
+ var X = Le(yr, "brushstart", "brush", "brushend"), se = null, Te = null, Ne = [0, 0], He = [0, 0], Ye, kt, nt = true, jt = true, gr = dc[0];
+ function yr(Zr) {
+ Zr.each(function() {
+ var ai = e.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", bi).on("touchstart.brush", bi), gi = ai.selectAll(".background").data([0]);
+ gi.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), ai.selectAll(".extent").data([0]).enter().append("rect").attr("class", "extent").style("cursor", "move");
+ var Ii = ai.selectAll(".resize").data(gr, G);
+ Ii.exit().remove(), Ii.enter().append("g").attr("class", function(En) {
+ return "resize " + En;
+ }).style("cursor", function(En) {
+ return eu[En];
+ }).append("rect").attr("x", function(En) {
+ return /[ew]$/.test(En) ? -3 : null;
+ }).attr("y", function(En) {
+ return /^[ns]/.test(En) ? -3 : null;
+ }).attr("width", 6).attr("height", 6).style("visibility", "hidden"), Ii.style("display", yr.empty() ? "none" : null);
+ var Si = e.transition(ai), ei = e.transition(gi), Ln;
+ se && (Ln = wn(se), ei.attr("x", Ln[0]).attr("width", Ln[1] - Ln[0]), qr(Si)), Te && (Ln = wn(Te), ei.attr("y", Ln[0]).attr("height", Ln[1] - Ln[0]), _i(Si)), Hr(Si);
+ });
+ }
+ yr.event = function(Zr) {
+ Zr.each(function() {
+ var ai = X.of(this, arguments), gi = { x: Ne, y: He, i: Ye, j: kt }, Ii = this.__chart__ || gi;
+ this.__chart__ = gi, Bo ? e.select(this).transition().each("start.brush", function() {
+ Ye = Ii.i, kt = Ii.j, Ne = Ii.x, He = Ii.y, ai({ type: "brushstart" });
+ }).tween("brush:brush", function() {
+ var Si = Gu(Ne, gi.x), ei = Gu(He, gi.y);
+ return Ye = kt = null, function(Ln) {
+ Ne = gi.x = Si(Ln), He = gi.y = ei(Ln), ai({ type: "brush", mode: "resize" });
+ };
+ }).each("end.brush", function() {
+ Ye = gi.i, kt = gi.j, ai({ type: "brush", mode: "resize" }), ai({ type: "brushend" });
+ }) : (ai({ type: "brushstart" }), ai({ type: "brush", mode: "resize" }), ai({ type: "brushend" }));
+ });
+ };
+ function Hr(Zr) {
+ Zr.selectAll(".resize").attr("transform", function(ai) {
+ return "translate(" + Ne[+/e$/.test(ai)] + "," + He[+/^s/.test(ai)] + ")";
+ });
+ }
+ function qr(Zr) {
+ Zr.select(".extent").attr("x", Ne[0]), Zr.selectAll(".extent,.n>rect,.s>rect").attr("width", Ne[1] - Ne[0]);
+ }
+ function _i(Zr) {
+ Zr.select(".extent").attr("y", He[0]), Zr.selectAll(".extent,.e>rect,.w>rect").attr("height", He[1] - He[0]);
+ }
+ function bi() {
+ var Zr = this, ai = e.select(e.event.target), gi = X.of(Zr, arguments), Ii = e.select(Zr), Si = ai.datum(), ei = !/^(n|s)$/.test(Si) && se, Ln = !/^(e|w)$/.test(Si) && Te, En = ai.classed("extent"), Un = Br(Zr), ia, Ea = e.mouse(Zr), Ia, yo = e.select(a(Zr)).on("keydown.brush", Is).on("keyup.brush", Ms);
+ if (e.event.changedTouches ? yo.on("touchmove.brush", Xs).on("touchend.brush", ja) : yo.on("mousemove.brush", Xs).on("mouseup.brush", ja), Ii.interrupt().selectAll("*").interrupt(), En) Ea[0] = Ne[0] - Ea[0], Ea[1] = He[0] - Ea[1];
+ else if (Si) {
+ var Da = +/w$/.test(Si), go = +/^n/.test(Si);
+ Ia = [Ne[1 - Da] - Ea[0], He[1 - go] - Ea[1]], Ea[0] = Ne[Da], Ea[1] = He[go];
+ } else e.event.altKey && (ia = Ea.slice());
+ Ii.style("pointer-events", "none").selectAll(".resize").style("display", null), e.select("body").style("cursor", ai.style("cursor")), gi({ type: "brushstart" }), Xs();
+ function Is() {
+ e.event.keyCode == 32 && (En || (ia = null, Ea[0] -= Ne[1], Ea[1] -= He[1], En = 2), _e());
+ }
+ function Ms() {
+ e.event.keyCode == 32 && En == 2 && (Ea[0] += Ne[1], Ea[1] += He[1], En = 0, _e());
+ }
+ function Xs() {
+ var Fo = e.mouse(Zr), Uo = false;
+ Ia && (Fo[0] += Ia[0], Fo[1] += Ia[1]), En || (e.event.altKey ? (ia || (ia = [(Ne[0] + Ne[1]) / 2, (He[0] + He[1]) / 2]), Ea[0] = Ne[+(Fo[0] < ia[0])], Ea[1] = He[+(Fo[1] < ia[1])]) : ia = null), ei && Gn(Fo, se, 0) && (qr(Ii), Uo = true), Ln && Gn(Fo, Te, 1) && (_i(Ii), Uo = true), Uo && (Hr(Ii), gi({ type: "brush", mode: En ? "move" : "resize" }));
+ }
+ function Gn(Fo, Uo, $s) {
+ var Sl = wn(Uo), bu = Sl[0], dl = Sl[1], Sc = Ea[$s], Me = $s ? He : Ne, bt = Me[1] - Me[0], zt, Rr;
+ if (En && (bu -= Sc, dl -= bt + Sc), zt = ($s ? jt : nt) ? Math.max(bu, Math.min(dl, Fo[$s])) : Fo[$s], En ? Rr = (zt += Sc) + bt : (ia && (Sc = Math.max(bu, Math.min(dl, 2 * ia[$s] - zt))), Sc < zt ? (Rr = zt, zt = Sc) : Rr = Sc), Me[0] != zt || Me[1] != Rr) return $s ? kt = null : Ye = null, Me[0] = zt, Me[1] = Rr, true;
+ }
+ function ja() {
+ Xs(), Ii.style("pointer-events", "all").selectAll(".resize").style("display", yr.empty() ? "none" : null), e.select("body").style("cursor", null), yo.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null), Un(), gi({ type: "brushend" });
+ }
+ }
+ return yr.x = function(Zr) {
+ return arguments.length ? (se = Zr, gr = dc[!se << 1 | !Te], yr) : se;
+ }, yr.y = function(Zr) {
+ return arguments.length ? (Te = Zr, gr = dc[!se << 1 | !Te], yr) : Te;
+ }, yr.clamp = function(Zr) {
+ return arguments.length ? (se && Te ? (nt = !!Zr[0], jt = !!Zr[1]) : se ? nt = !!Zr : Te && (jt = !!Zr), yr) : se && Te ? [nt, jt] : se ? nt : Te ? jt : null;
+ }, yr.extent = function(Zr) {
+ var ai, gi, Ii, Si, ei;
+ return arguments.length ? (se && (ai = Zr[0], gi = Zr[1], Te && (ai = ai[0], gi = gi[0]), Ye = [ai, gi], se.invert && (ai = se(ai), gi = se(gi)), gi < ai && (ei = ai, ai = gi, gi = ei), (ai != Ne[0] || gi != Ne[1]) && (Ne = [ai, gi])), Te && (Ii = Zr[0], Si = Zr[1], se && (Ii = Ii[1], Si = Si[1]), kt = [Ii, Si], Te.invert && (Ii = Te(Ii), Si = Te(Si)), Si < Ii && (ei = Ii, Ii = Si, Si = ei), (Ii != He[0] || Si != He[1]) && (He = [Ii, Si])), yr) : (se && (Ye ? (ai = Ye[0], gi = Ye[1]) : (ai = Ne[0], gi = Ne[1], se.invert && (ai = se.invert(ai), gi = se.invert(gi)), gi < ai && (ei = ai, ai = gi, gi = ei))), Te && (kt ? (Ii = kt[0], Si = kt[1]) : (Ii = He[0], Si = He[1], Te.invert && (Ii = Te.invert(Ii), Si = Te.invert(Si)), Si < Ii && (ei = Ii, Ii = Si, Si = ei))), se && Te ? [[ai, Ii], [gi, Si]] : se ? [ai, gi] : Te && [Ii, Si]);
+ }, yr.clear = function() {
+ return yr.empty() || (Ne = [0, 0], He = [0, 0], Ye = kt = null), yr;
+ }, yr.empty = function() {
+ return !!se && Ne[0] == Ne[1] || !!Te && He[0] == He[1];
+ }, e.rebind(yr, X, "on");
+ };
+ var eu = { n: "ns-resize", e: "ew-resize", s: "ns-resize", w: "ew-resize", nw: "nwse-resize", ne: "nesw-resize", se: "nwse-resize", sw: "nesw-resize" }, dc = [["n", "e", "s", "w", "nw", "ne", "se", "sw"], ["e", "w"], ["n", "s"], []];
+ e.text = hn(function(X) {
+ return X.responseText;
+ }), e.json = function(X, se) {
+ return An(X, "application/json", Tl, se);
+ };
+ function Tl(X) {
+ return JSON.parse(X.responseText);
+ }
+ e.html = function(X, se) {
+ return An(X, "text/html", Al, se);
+ };
+ function Al(X) {
+ var se = n.createRange();
+ return se.selectNode(n.body), se.createContextualFragment(X.responseText);
+ }
+ e.xml = hn(function(X) {
+ return X.responseXML;
+ }), typeof y6 == "object" && y6.exports ? y6.exports = e : this.d3 = e;
+ }).apply(self);
+ });
+ var SO = ye((_6, wee) => {
+ (function(e, t) {
+ typeof _6 == "object" && typeof wee != "undefined" ? t(_6) : (e = e || self, t(e.d3 = e.d3 || {}));
+ })(_6, function(e) {
+ var t = /* @__PURE__ */ new Date(), r = /* @__PURE__ */ new Date();
+ function n($e, St, Qt, Gt) {
+ function _t(It) {
+ return $e(It = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+It)), It;
+ }
+ return _t.floor = function(It) {
+ return $e(It = /* @__PURE__ */ new Date(+It)), It;
+ }, _t.ceil = function(It) {
+ return $e(It = new Date(It - 1)), St(It, 1), $e(It), It;
+ }, _t.round = function(It) {
+ var mt = _t(It), er = _t.ceil(It);
+ return It - mt < er - It ? mt : er;
+ }, _t.offset = function(It, mt) {
+ return St(It = /* @__PURE__ */ new Date(+It), mt == null ? 1 : Math.floor(mt)), It;
+ }, _t.range = function(It, mt, er) {
+ var lr = [], wr;
+ if (It = _t.ceil(It), er = er == null ? 1 : Math.floor(er), !(It < mt) || !(er > 0)) return lr;
+ do
+ lr.push(wr = /* @__PURE__ */ new Date(+It)), St(It, er), $e(It);
+ while (wr < It && It < mt);
+ return lr;
+ }, _t.filter = function(It) {
+ return n(function(mt) {
+ if (mt >= mt) for (; $e(mt), !It(mt); ) mt.setTime(mt - 1);
+ }, function(mt, er) {
+ if (mt >= mt) if (er < 0) for (; ++er <= 0; ) for (; St(mt, -1), !It(mt); ) ;
+ else for (; --er >= 0; ) for (; St(mt, 1), !It(mt); ) ;
+ });
+ }, Qt && (_t.count = function(It, mt) {
+ return t.setTime(+It), r.setTime(+mt), $e(t), $e(r), Math.floor(Qt(t, r));
+ }, _t.every = function(It) {
+ return It = Math.floor(It), !isFinite(It) || !(It > 0) ? null : It > 1 ? _t.filter(Gt ? function(mt) {
+ return Gt(mt) % It === 0;
+ } : function(mt) {
+ return _t.count(0, mt) % It === 0;
+ }) : _t;
+ }), _t;
+ }
+ var i = n(function() {
+ }, function($e, St) {
+ $e.setTime(+$e + St);
+ }, function($e, St) {
+ return St - $e;
+ });
+ i.every = function($e) {
+ return $e = Math.floor($e), !isFinite($e) || !($e > 0) ? null : $e > 1 ? n(function(St) {
+ St.setTime(Math.floor(St / $e) * $e);
+ }, function(St, Qt) {
+ St.setTime(+St + Qt * $e);
+ }, function(St, Qt) {
+ return (Qt - St) / $e;
+ }) : i;
+ };
+ var a = i.range, o = 1e3, s = 6e4, l = 36e5, u = 864e5, c = 6048e5, f = n(function($e) {
+ $e.setTime($e - $e.getMilliseconds());
+ }, function($e, St) {
+ $e.setTime(+$e + St * o);
+ }, function($e, St) {
+ return (St - $e) / o;
+ }, function($e) {
+ return $e.getUTCSeconds();
+ }), h = f.range, d = n(function($e) {
+ $e.setTime($e - $e.getMilliseconds() - $e.getSeconds() * o);
+ }, function($e, St) {
+ $e.setTime(+$e + St * s);
+ }, function($e, St) {
+ return (St - $e) / s;
+ }, function($e) {
+ return $e.getMinutes();
+ }), v = d.range, _ = n(function($e) {
+ $e.setTime($e - $e.getMilliseconds() - $e.getSeconds() * o - $e.getMinutes() * s);
+ }, function($e, St) {
+ $e.setTime(+$e + St * l);
+ }, function($e, St) {
+ return (St - $e) / l;
+ }, function($e) {
+ return $e.getHours();
+ }), b = _.range, p = n(function($e) {
+ $e.setHours(0, 0, 0, 0);
+ }, function($e, St) {
+ $e.setDate($e.getDate() + St);
+ }, function($e, St) {
+ return (St - $e - (St.getTimezoneOffset() - $e.getTimezoneOffset()) * s) / u;
+ }, function($e) {
+ return $e.getDate() - 1;
+ }), k = p.range;
+ function E($e) {
+ return n(function(St) {
+ St.setDate(St.getDate() - (St.getDay() + 7 - $e) % 7), St.setHours(0, 0, 0, 0);
+ }, function(St, Qt) {
+ St.setDate(St.getDate() + Qt * 7);
+ }, function(St, Qt) {
+ return (Qt - St - (Qt.getTimezoneOffset() - St.getTimezoneOffset()) * s) / c;
+ });
+ }
+ var T = E(0), L = E(1), x = E(2), C = E(3), M = E(4), g = E(5), P = E(6), A = T.range, z = L.range, O = x.range, U = C.range, G = M.range, Z = g.range, j = P.range, N = n(function($e) {
+ $e.setDate(1), $e.setHours(0, 0, 0, 0);
+ }, function($e, St) {
+ $e.setMonth($e.getMonth() + St);
+ }, function($e, St) {
+ return St.getMonth() - $e.getMonth() + (St.getFullYear() - $e.getFullYear()) * 12;
+ }, function($e) {
+ return $e.getMonth();
+ }), H = N.range, re = n(function($e) {
+ $e.setMonth(0, 1), $e.setHours(0, 0, 0, 0);
+ }, function($e, St) {
+ $e.setFullYear($e.getFullYear() + St);
+ }, function($e, St) {
+ return St.getFullYear() - $e.getFullYear();
+ }, function($e) {
+ return $e.getFullYear();
+ });
+ re.every = function($e) {
+ return !isFinite($e = Math.floor($e)) || !($e > 0) ? null : n(function(St) {
+ St.setFullYear(Math.floor(St.getFullYear() / $e) * $e), St.setMonth(0, 1), St.setHours(0, 0, 0, 0);
+ }, function(St, Qt) {
+ St.setFullYear(St.getFullYear() + Qt * $e);
+ });
+ };
+ var oe = re.range, _e = n(function($e) {
+ $e.setUTCSeconds(0, 0);
+ }, function($e, St) {
+ $e.setTime(+$e + St * s);
+ }, function($e, St) {
+ return (St - $e) / s;
+ }, function($e) {
+ return $e.getUTCMinutes();
+ }), Ce = _e.range, Le = n(function($e) {
+ $e.setUTCMinutes(0, 0, 0);
+ }, function($e, St) {
+ $e.setTime(+$e + St * l);
+ }, function($e, St) {
+ return (St - $e) / l;
+ }, function($e) {
+ return $e.getUTCHours();
+ }), ge = Le.range, ie = n(function($e) {
+ $e.setUTCHours(0, 0, 0, 0);
+ }, function($e, St) {
+ $e.setUTCDate($e.getUTCDate() + St);
+ }, function($e, St) {
+ return (St - $e) / u;
+ }, function($e) {
+ return $e.getUTCDate() - 1;
+ }), Se = ie.range;
+ function Ee($e) {
+ return n(function(St) {
+ St.setUTCDate(St.getUTCDate() - (St.getUTCDay() + 7 - $e) % 7), St.setUTCHours(0, 0, 0, 0);
+ }, function(St, Qt) {
+ St.setUTCDate(St.getUTCDate() + Qt * 7);
+ }, function(St, Qt) {
+ return (Qt - St) / c;
+ });
+ }
+ var Ae = Ee(0), Be = Ee(1), Pe = Ee(2), me = Ee(3), De = Ee(4), ce = Ee(5), je = Ee(6), lt = Ae.range, pt = Be.range, Vt = Pe.range, ot = me.range, ut = De.range, Wt = ce.range, Nt = je.range, $t = n(function($e) {
+ $e.setUTCDate(1), $e.setUTCHours(0, 0, 0, 0);
+ }, function($e, St) {
+ $e.setUTCMonth($e.getUTCMonth() + St);
+ }, function($e, St) {
+ return St.getUTCMonth() - $e.getUTCMonth() + (St.getUTCFullYear() - $e.getUTCFullYear()) * 12;
+ }, function($e) {
+ return $e.getUTCMonth();
+ }), sr = $t.range, Tr = n(function($e) {
+ $e.setUTCMonth(0, 1), $e.setUTCHours(0, 0, 0, 0);
+ }, function($e, St) {
+ $e.setUTCFullYear($e.getUTCFullYear() + St);
+ }, function($e, St) {
+ return St.getUTCFullYear() - $e.getUTCFullYear();
+ }, function($e) {
+ return $e.getUTCFullYear();
+ });
+ Tr.every = function($e) {
+ return !isFinite($e = Math.floor($e)) || !($e > 0) ? null : n(function(St) {
+ St.setUTCFullYear(Math.floor(St.getUTCFullYear() / $e) * $e), St.setUTCMonth(0, 1), St.setUTCHours(0, 0, 0, 0);
+ }, function(St, Qt) {
+ St.setUTCFullYear(St.getUTCFullYear() + Qt * $e);
+ });
+ };
+ var fr = Tr.range;
+ e.timeDay = p, e.timeDays = k, e.timeFriday = g, e.timeFridays = Z, e.timeHour = _, e.timeHours = b, e.timeInterval = n, e.timeMillisecond = i, e.timeMilliseconds = a, e.timeMinute = d, e.timeMinutes = v, e.timeMonday = L, e.timeMondays = z, e.timeMonth = N, e.timeMonths = H, e.timeSaturday = P, e.timeSaturdays = j, e.timeSecond = f, e.timeSeconds = h, e.timeSunday = T, e.timeSundays = A, e.timeThursday = M, e.timeThursdays = G, e.timeTuesday = x, e.timeTuesdays = O, e.timeWednesday = C, e.timeWednesdays = U, e.timeWeek = T, e.timeWeeks = A, e.timeYear = re, e.timeYears = oe, e.utcDay = ie, e.utcDays = Se, e.utcFriday = ce, e.utcFridays = Wt, e.utcHour = Le, e.utcHours = ge, e.utcMillisecond = i, e.utcMilliseconds = a, e.utcMinute = _e, e.utcMinutes = Ce, e.utcMonday = Be, e.utcMondays = pt, e.utcMonth = $t, e.utcMonths = sr, e.utcSaturday = je, e.utcSaturdays = Nt, e.utcSecond = f, e.utcSeconds = h, e.utcSunday = Ae, e.utcSundays = lt, e.utcThursday = De, e.utcThursdays = ut, e.utcTuesday = Pe, e.utcTuesdays = Vt, e.utcWednesday = me, e.utcWednesdays = ot, e.utcWeek = Ae, e.utcWeeks = lt, e.utcYear = Tr, e.utcYears = fr, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var f3 = ye((x6, Tee) => {
+ (function(e, t) {
+ typeof x6 == "object" && typeof Tee != "undefined" ? t(x6, SO()) : (e = e || self, t(e.d3 = e.d3 || {}, e.d3));
+ })(x6, function(e, t) {
+ function r(Ge) {
+ if (0 <= Ge.y && Ge.y < 100) {
+ var Je = new Date(-1, Ge.m, Ge.d, Ge.H, Ge.M, Ge.S, Ge.L);
+ return Je.setFullYear(Ge.y), Je;
+ }
+ return new Date(Ge.y, Ge.m, Ge.d, Ge.H, Ge.M, Ge.S, Ge.L);
+ }
+ function n(Ge) {
+ if (0 <= Ge.y && Ge.y < 100) {
+ var Je = new Date(Date.UTC(-1, Ge.m, Ge.d, Ge.H, Ge.M, Ge.S, Ge.L));
+ return Je.setUTCFullYear(Ge.y), Je;
+ }
+ return new Date(Date.UTC(Ge.y, Ge.m, Ge.d, Ge.H, Ge.M, Ge.S, Ge.L));
+ }
+ function i(Ge, Je, We) {
+ return { y: Ge, m: Je, d: We, H: 0, M: 0, S: 0, L: 0 };
+ }
+ function a(Ge) {
+ var Je = Ge.dateTime, We = Ge.date, tt = Ge.time, xt = Ge.periods, Ie = Ge.days, xe = Ge.shortDays, ke = Ge.months, vt = Ge.shortMonths, ir = h(xt), ar = d(xt), vr = h(Ie), ii = d(Ie), pi = h(xe), $r = d(xe), di = h(ke), ji = d(ke), In = h(vt), wi = d(vt), On = { a: $i, A: tn, b: fn, B: yn, c: null, d: N, e: N, f: Ce, H, I: re, j: oe, L: _e, m: Le, M: ge, p: Sn, q: Ba, Q: mt, s: er, S: ie, u: Se, U: Ee, V: Ae, w: Be, W: Pe, x: null, X: null, y: me, Y: De, Z: ce, "%": It }, qn = { a: ua, A: ma, b: Wa, B: Fa, c: null, d: je, e: je, f: ut, H: lt, I: pt, j: Vt, L: ot, m: Wt, M: Nt, p: Xo, q: da, Q: mt, s: er, S: $t, u: sr, U: Tr, V: fr, w: $e, W: St, x: null, X: null, y: Qt, Y: Gt, Z: _t, "%": It }, Fn = { a: rr, A: nr, b: Er, B: Xr, c: ri, d: M, e: M, f: U, H: P, I: P, j: g, L: O, m: C, M: A, p: wt, q: x, Q: Z, s: j, S: z, u: _, U: b, V: p, w: v, W: k, x: Qr, X: Oi, y: T, Y: E, Z: L, "%": G };
+ On.x = ra(We, On), On.X = ra(tt, On), On.c = ra(Je, On), qn.x = ra(We, qn), qn.X = ra(tt, qn), qn.c = ra(Je, qn);
+ function ra(Wn, Ha) {
+ return function(vo) {
+ var jn = [], Mt = -1, kr = 0, Jr = Wn.length, vi, hn, An;
+ for (vo instanceof Date || (vo = /* @__PURE__ */ new Date(+vo)); ++Mt < Jr; ) Wn.charCodeAt(Mt) === 37 && (jn.push(Wn.slice(kr, Mt)), (hn = o[vi = Wn.charAt(++Mt)]) != null ? vi = Wn.charAt(++Mt) : hn = vi === "e" ? " " : "0", (An = Ha[vi]) && (vi = An(vo, hn)), jn.push(vi), kr = Mt + 1);
+ return jn.push(Wn.slice(kr, Mt)), jn.join("");
+ };
+ }
+ function la(Wn, Ha) {
+ return function(vo) {
+ var jn = i(1900, void 0, 1), Mt = Ut(jn, Wn, vo += "", 0), kr, Jr;
+ if (Mt != vo.length) return null;
+ if ("Q" in jn) return new Date(jn.Q);
+ if ("s" in jn) return new Date(jn.s * 1e3 + ("L" in jn ? jn.L : 0));
+ if (Ha && !("Z" in jn) && (jn.Z = 0), "p" in jn && (jn.H = jn.H % 12 + jn.p * 12), jn.m === void 0 && (jn.m = "q" in jn ? jn.q : 0), "V" in jn) {
+ if (jn.V < 1 || jn.V > 53) return null;
+ "w" in jn || (jn.w = 1), "Z" in jn ? (kr = n(i(jn.y, 0, 1)), Jr = kr.getUTCDay(), kr = Jr > 4 || Jr === 0 ? t.utcMonday.ceil(kr) : t.utcMonday(kr), kr = t.utcDay.offset(kr, (jn.V - 1) * 7), jn.y = kr.getUTCFullYear(), jn.m = kr.getUTCMonth(), jn.d = kr.getUTCDate() + (jn.w + 6) % 7) : (kr = r(i(jn.y, 0, 1)), Jr = kr.getDay(), kr = Jr > 4 || Jr === 0 ? t.timeMonday.ceil(kr) : t.timeMonday(kr), kr = t.timeDay.offset(kr, (jn.V - 1) * 7), jn.y = kr.getFullYear(), jn.m = kr.getMonth(), jn.d = kr.getDate() + (jn.w + 6) % 7);
+ } else ("W" in jn || "U" in jn) && ("w" in jn || (jn.w = "u" in jn ? jn.u % 7 : "W" in jn ? 1 : 0), Jr = "Z" in jn ? n(i(jn.y, 0, 1)).getUTCDay() : r(i(jn.y, 0, 1)).getDay(), jn.m = 0, jn.d = "W" in jn ? (jn.w + 6) % 7 + jn.W * 7 - (Jr + 5) % 7 : jn.w + jn.U * 7 - (Jr + 6) % 7);
+ return "Z" in jn ? (jn.H += jn.Z / 100 | 0, jn.M += jn.Z % 100, n(jn)) : r(jn);
+ };
+ }
+ function Ut(Wn, Ha, vo, jn) {
+ for (var Mt = 0, kr = Ha.length, Jr = vo.length, vi, hn; Mt < kr; ) {
+ if (jn >= Jr) return -1;
+ if (vi = Ha.charCodeAt(Mt++), vi === 37) {
+ if (vi = Ha.charAt(Mt++), hn = Fn[vi in o ? Ha.charAt(Mt++) : vi], !hn || (jn = hn(Wn, vo, jn)) < 0) return -1;
+ } else if (vi != vo.charCodeAt(jn++)) return -1;
+ }
+ return jn;
+ }
+ function wt(Wn, Ha, vo) {
+ var jn = ir.exec(Ha.slice(vo));
+ return jn ? (Wn.p = ar[jn[0].toLowerCase()], vo + jn[0].length) : -1;
+ }
+ function rr(Wn, Ha, vo) {
+ var jn = pi.exec(Ha.slice(vo));
+ return jn ? (Wn.w = $r[jn[0].toLowerCase()], vo + jn[0].length) : -1;
+ }
+ function nr(Wn, Ha, vo) {
+ var jn = vr.exec(Ha.slice(vo));
+ return jn ? (Wn.w = ii[jn[0].toLowerCase()], vo + jn[0].length) : -1;
+ }
+ function Er(Wn, Ha, vo) {
+ var jn = In.exec(Ha.slice(vo));
+ return jn ? (Wn.m = wi[jn[0].toLowerCase()], vo + jn[0].length) : -1;
+ }
+ function Xr(Wn, Ha, vo) {
+ var jn = di.exec(Ha.slice(vo));
+ return jn ? (Wn.m = ji[jn[0].toLowerCase()], vo + jn[0].length) : -1;
+ }
+ function ri(Wn, Ha, vo) {
+ return Ut(Wn, Je, Ha, vo);
+ }
+ function Qr(Wn, Ha, vo) {
+ return Ut(Wn, We, Ha, vo);
+ }
+ function Oi(Wn, Ha, vo) {
+ return Ut(Wn, tt, Ha, vo);
+ }
+ function $i(Wn) {
+ return xe[Wn.getDay()];
+ }
+ function tn(Wn) {
+ return Ie[Wn.getDay()];
+ }
+ function fn(Wn) {
+ return vt[Wn.getMonth()];
+ }
+ function yn(Wn) {
+ return ke[Wn.getMonth()];
+ }
+ function Sn(Wn) {
+ return xt[+(Wn.getHours() >= 12)];
+ }
+ function Ba(Wn) {
+ return 1 + ~~(Wn.getMonth() / 3);
+ }
+ function ua(Wn) {
+ return xe[Wn.getUTCDay()];
+ }
+ function ma(Wn) {
+ return Ie[Wn.getUTCDay()];
+ }
+ function Wa(Wn) {
+ return vt[Wn.getUTCMonth()];
+ }
+ function Fa(Wn) {
+ return ke[Wn.getUTCMonth()];
+ }
+ function Xo(Wn) {
+ return xt[+(Wn.getUTCHours() >= 12)];
+ }
+ function da(Wn) {
+ return 1 + ~~(Wn.getUTCMonth() / 3);
+ }
+ return { format: function(Wn) {
+ var Ha = ra(Wn += "", On);
+ return Ha.toString = function() {
+ return Wn;
+ }, Ha;
+ }, parse: function(Wn) {
+ var Ha = la(Wn += "", false);
+ return Ha.toString = function() {
+ return Wn;
+ }, Ha;
+ }, utcFormat: function(Wn) {
+ var Ha = ra(Wn += "", qn);
+ return Ha.toString = function() {
+ return Wn;
+ }, Ha;
+ }, utcParse: function(Wn) {
+ var Ha = la(Wn += "", true);
+ return Ha.toString = function() {
+ return Wn;
+ }, Ha;
+ } };
+ }
+ var o = { "-": "", _: " ", 0: "0" }, s = /^\s*\d+/, l = /^%/, u = /[\\^$*+?|[\]().{}]/g;
+ function c(Ge, Je, We) {
+ var tt = Ge < 0 ? "-" : "", xt = (tt ? -Ge : Ge) + "", Ie = xt.length;
+ return tt + (Ie < We ? new Array(We - Ie + 1).join(Je) + xt : xt);
+ }
+ function f(Ge) {
+ return Ge.replace(u, "\\$&");
+ }
+ function h(Ge) {
+ return new RegExp("^(?:" + Ge.map(f).join("|") + ")", "i");
+ }
+ function d(Ge) {
+ for (var Je = {}, We = -1, tt = Ge.length; ++We < tt; ) Je[Ge[We].toLowerCase()] = We;
+ return Je;
+ }
+ function v(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 1));
+ return tt ? (Ge.w = +tt[0], We + tt[0].length) : -1;
+ }
+ function _(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 1));
+ return tt ? (Ge.u = +tt[0], We + tt[0].length) : -1;
+ }
+ function b(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.U = +tt[0], We + tt[0].length) : -1;
+ }
+ function p(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.V = +tt[0], We + tt[0].length) : -1;
+ }
+ function k(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.W = +tt[0], We + tt[0].length) : -1;
+ }
+ function E(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 4));
+ return tt ? (Ge.y = +tt[0], We + tt[0].length) : -1;
+ }
+ function T(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.y = +tt[0] + (+tt[0] > 68 ? 1900 : 2e3), We + tt[0].length) : -1;
+ }
+ function L(Ge, Je, We) {
+ var tt = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(Je.slice(We, We + 6));
+ return tt ? (Ge.Z = tt[1] ? 0 : -(tt[2] + (tt[3] || "00")), We + tt[0].length) : -1;
+ }
+ function x(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 1));
+ return tt ? (Ge.q = tt[0] * 3 - 3, We + tt[0].length) : -1;
+ }
+ function C(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.m = tt[0] - 1, We + tt[0].length) : -1;
+ }
+ function M(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.d = +tt[0], We + tt[0].length) : -1;
+ }
+ function g(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 3));
+ return tt ? (Ge.m = 0, Ge.d = +tt[0], We + tt[0].length) : -1;
+ }
+ function P(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.H = +tt[0], We + tt[0].length) : -1;
+ }
+ function A(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.M = +tt[0], We + tt[0].length) : -1;
+ }
+ function z(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 2));
+ return tt ? (Ge.S = +tt[0], We + tt[0].length) : -1;
+ }
+ function O(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 3));
+ return tt ? (Ge.L = +tt[0], We + tt[0].length) : -1;
+ }
+ function U(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We, We + 6));
+ return tt ? (Ge.L = Math.floor(tt[0] / 1e3), We + tt[0].length) : -1;
+ }
+ function G(Ge, Je, We) {
+ var tt = l.exec(Je.slice(We, We + 1));
+ return tt ? We + tt[0].length : -1;
+ }
+ function Z(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We));
+ return tt ? (Ge.Q = +tt[0], We + tt[0].length) : -1;
+ }
+ function j(Ge, Je, We) {
+ var tt = s.exec(Je.slice(We));
+ return tt ? (Ge.s = +tt[0], We + tt[0].length) : -1;
+ }
+ function N(Ge, Je) {
+ return c(Ge.getDate(), Je, 2);
+ }
+ function H(Ge, Je) {
+ return c(Ge.getHours(), Je, 2);
+ }
+ function re(Ge, Je) {
+ return c(Ge.getHours() % 12 || 12, Je, 2);
+ }
+ function oe(Ge, Je) {
+ return c(1 + t.timeDay.count(t.timeYear(Ge), Ge), Je, 3);
+ }
+ function _e(Ge, Je) {
+ return c(Ge.getMilliseconds(), Je, 3);
+ }
+ function Ce(Ge, Je) {
+ return _e(Ge, Je) + "000";
+ }
+ function Le(Ge, Je) {
+ return c(Ge.getMonth() + 1, Je, 2);
+ }
+ function ge(Ge, Je) {
+ return c(Ge.getMinutes(), Je, 2);
+ }
+ function ie(Ge, Je) {
+ return c(Ge.getSeconds(), Je, 2);
+ }
+ function Se(Ge) {
+ var Je = Ge.getDay();
+ return Je === 0 ? 7 : Je;
+ }
+ function Ee(Ge, Je) {
+ return c(t.timeSunday.count(t.timeYear(Ge) - 1, Ge), Je, 2);
+ }
+ function Ae(Ge, Je) {
+ var We = Ge.getDay();
+ return Ge = We >= 4 || We === 0 ? t.timeThursday(Ge) : t.timeThursday.ceil(Ge), c(t.timeThursday.count(t.timeYear(Ge), Ge) + (t.timeYear(Ge).getDay() === 4), Je, 2);
+ }
+ function Be(Ge) {
+ return Ge.getDay();
+ }
+ function Pe(Ge, Je) {
+ return c(t.timeMonday.count(t.timeYear(Ge) - 1, Ge), Je, 2);
+ }
+ function me(Ge, Je) {
+ return c(Ge.getFullYear() % 100, Je, 2);
+ }
+ function De(Ge, Je) {
+ return c(Ge.getFullYear() % 1e4, Je, 4);
+ }
+ function ce(Ge) {
+ var Je = Ge.getTimezoneOffset();
+ return (Je > 0 ? "-" : (Je *= -1, "+")) + c(Je / 60 | 0, "0", 2) + c(Je % 60, "0", 2);
+ }
+ function je(Ge, Je) {
+ return c(Ge.getUTCDate(), Je, 2);
+ }
+ function lt(Ge, Je) {
+ return c(Ge.getUTCHours(), Je, 2);
+ }
+ function pt(Ge, Je) {
+ return c(Ge.getUTCHours() % 12 || 12, Je, 2);
+ }
+ function Vt(Ge, Je) {
+ return c(1 + t.utcDay.count(t.utcYear(Ge), Ge), Je, 3);
+ }
+ function ot(Ge, Je) {
+ return c(Ge.getUTCMilliseconds(), Je, 3);
+ }
+ function ut(Ge, Je) {
+ return ot(Ge, Je) + "000";
+ }
+ function Wt(Ge, Je) {
+ return c(Ge.getUTCMonth() + 1, Je, 2);
+ }
+ function Nt(Ge, Je) {
+ return c(Ge.getUTCMinutes(), Je, 2);
+ }
+ function $t(Ge, Je) {
+ return c(Ge.getUTCSeconds(), Je, 2);
+ }
+ function sr(Ge) {
+ var Je = Ge.getUTCDay();
+ return Je === 0 ? 7 : Je;
+ }
+ function Tr(Ge, Je) {
+ return c(t.utcSunday.count(t.utcYear(Ge) - 1, Ge), Je, 2);
+ }
+ function fr(Ge, Je) {
+ var We = Ge.getUTCDay();
+ return Ge = We >= 4 || We === 0 ? t.utcThursday(Ge) : t.utcThursday.ceil(Ge), c(t.utcThursday.count(t.utcYear(Ge), Ge) + (t.utcYear(Ge).getUTCDay() === 4), Je, 2);
+ }
+ function $e(Ge) {
+ return Ge.getUTCDay();
+ }
+ function St(Ge, Je) {
+ return c(t.utcMonday.count(t.utcYear(Ge) - 1, Ge), Je, 2);
+ }
+ function Qt(Ge, Je) {
+ return c(Ge.getUTCFullYear() % 100, Je, 2);
+ }
+ function Gt(Ge, Je) {
+ return c(Ge.getUTCFullYear() % 1e4, Je, 4);
+ }
+ function _t() {
+ return "+0000";
+ }
+ function It() {
+ return "%";
+ }
+ function mt(Ge) {
+ return +Ge;
+ }
+ function er(Ge) {
+ return Math.floor(+Ge / 1e3);
+ }
+ var lr;
+ wr({ dateTime: "%x, %X", date: "%-m/%-d/%Y", time: "%-I:%M:%S %p", periods: ["AM", "PM"], days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] });
+ function wr(Ge) {
+ return lr = a(Ge), e.timeFormat = lr.format, e.timeParse = lr.parse, e.utcFormat = lr.utcFormat, e.utcParse = lr.utcParse, lr;
+ }
+ var Lr = "%Y-%m-%dT%H:%M:%S.%LZ";
+ function ti(Ge) {
+ return Ge.toISOString();
+ }
+ var Br = Date.prototype.toISOString ? ti : e.utcFormat(Lr);
+ function Vr(Ge) {
+ var Je = new Date(Ge);
+ return isNaN(Je) ? null : Je;
+ }
+ var dt = +/* @__PURE__ */ new Date("2000-01-01T00:00:00.000Z") ? Vr : e.utcParse(Lr);
+ e.isoFormat = Br, e.isoParse = dt, e.timeFormatDefaultLocale = wr, e.timeFormatLocale = a, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var MO = ye((b6, Aee) => {
+ (function(e, t) {
+ typeof b6 == "object" && typeof Aee != "undefined" ? t(b6) : (e = typeof globalThis != "undefined" ? globalThis : e || self, t(e.d3 = e.d3 || {}));
+ })(b6, function(e) {
+ function t(C) {
+ return Math.abs(C = Math.round(C)) >= 1e21 ? C.toLocaleString("en").replace(/,/g, "") : C.toString(10);
+ }
+ function r(C, M) {
+ if ((g = (C = M ? C.toExponential(M - 1) : C.toExponential()).indexOf("e")) < 0) return null;
+ var g, P = C.slice(0, g);
+ return [P.length > 1 ? P[0] + P.slice(2) : P, +C.slice(g + 1)];
+ }
+ function n(C) {
+ return C = r(Math.abs(C)), C ? C[1] : NaN;
+ }
+ function i(C, M) {
+ return function(g, P) {
+ for (var A = g.length, z = [], O = 0, U = C[0], G = 0; A > 0 && U > 0 && (G + U + 1 > P && (U = Math.max(1, P - G)), z.push(g.substring(A -= U, A + U)), !((G += U + 1) > P)); ) U = C[O = (O + 1) % C.length];
+ return z.reverse().join(M);
+ };
+ }
+ function a(C) {
+ return function(M) {
+ return M.replace(/[0-9]/g, function(g) {
+ return C[+g];
+ });
+ };
+ }
+ var o = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
+ function s(C) {
+ if (!(M = o.exec(C))) throw new Error("invalid format: " + C);
+ var M;
+ return new l({ fill: M[1], align: M[2], sign: M[3], symbol: M[4], zero: M[5], width: M[6], comma: M[7], precision: M[8] && M[8].slice(1), trim: M[9], type: M[10] });
+ }
+ s.prototype = l.prototype;
+ function l(C) {
+ this.fill = C.fill === void 0 ? " " : C.fill + "", this.align = C.align === void 0 ? ">" : C.align + "", this.sign = C.sign === void 0 ? "-" : C.sign + "", this.symbol = C.symbol === void 0 ? "" : C.symbol + "", this.zero = !!C.zero, this.width = C.width === void 0 ? void 0 : +C.width, this.comma = !!C.comma, this.precision = C.precision === void 0 ? void 0 : +C.precision, this.trim = !!C.trim, this.type = C.type === void 0 ? "" : C.type + "";
+ }
+ l.prototype.toString = function() {
+ return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
+ };
+ function u(C) {
+ e: for (var M = C.length, g = 1, P = -1, A; g < M; ++g) switch (C[g]) {
+ case ".":
+ P = A = g;
+ break;
+ case "0":
+ P === 0 && (P = g), A = g;
+ break;
+ default:
+ if (!+C[g]) break e;
+ P > 0 && (P = 0);
+ break;
+ }
+ return P > 0 ? C.slice(0, P) + C.slice(A + 1) : C;
+ }
+ var c;
+ function f(C, M) {
+ var g = r(C, M);
+ if (!g) return C + "";
+ var P = g[0], A = g[1], z = A - (c = Math.max(-8, Math.min(8, Math.floor(A / 3))) * 3) + 1, O = P.length;
+ return z === O ? P : z > O ? P + new Array(z - O + 1).join("0") : z > 0 ? P.slice(0, z) + "." + P.slice(z) : "0." + new Array(1 - z).join("0") + r(C, Math.max(0, M + z - 1))[0];
+ }
+ function h(C, M) {
+ var g = r(C, M);
+ if (!g) return C + "";
+ var P = g[0], A = g[1];
+ return A < 0 ? "0." + new Array(-A).join("0") + P : P.length > A + 1 ? P.slice(0, A + 1) + "." + P.slice(A + 1) : P + new Array(A - P.length + 2).join("0");
+ }
+ var d = { "%": function(C, M) {
+ return (C * 100).toFixed(M);
+ }, b: function(C) {
+ return Math.round(C).toString(2);
+ }, c: function(C) {
+ return C + "";
+ }, d: t, e: function(C, M) {
+ return C.toExponential(M);
+ }, f: function(C, M) {
+ return C.toFixed(M);
+ }, g: function(C, M) {
+ return C.toPrecision(M);
+ }, o: function(C) {
+ return Math.round(C).toString(8);
+ }, p: function(C, M) {
+ return h(C * 100, M);
+ }, r: h, s: f, X: function(C) {
+ return Math.round(C).toString(16).toUpperCase();
+ }, x: function(C) {
+ return Math.round(C).toString(16);
+ } };
+ function v(C) {
+ return C;
+ }
+ var _ = Array.prototype.map, b = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
+ function p(C) {
+ var M = C.grouping === void 0 || C.thousands === void 0 ? v : i(_.call(C.grouping, Number), C.thousands + ""), g = C.currency === void 0 ? "" : C.currency[0] + "", P = C.currency === void 0 ? "" : C.currency[1] + "", A = C.decimal === void 0 ? "." : C.decimal + "", z = C.numerals === void 0 ? v : a(_.call(C.numerals, String)), O = C.percent === void 0 ? "%" : C.percent + "", U = C.minus === void 0 ? "-" : C.minus + "", G = C.nan === void 0 ? "NaN" : C.nan + "";
+ function Z(N) {
+ N = s(N);
+ var H = N.fill, re = N.align, oe = N.sign, _e = N.symbol, Ce = N.zero, Le = N.width, ge = N.comma, ie = N.precision, Se = N.trim, Ee = N.type;
+ Ee === "n" ? (ge = true, Ee = "g") : d[Ee] || (ie === void 0 && (ie = 12), Se = true, Ee = "g"), (Ce || H === "0" && re === "=") && (Ce = true, H = "0", re = "=");
+ var Ae = _e === "$" ? g : _e === "#" && /[boxX]/.test(Ee) ? "0" + Ee.toLowerCase() : "", Be = _e === "$" ? P : /[%p]/.test(Ee) ? O : "", Pe = d[Ee], me = /[defgprs%]/.test(Ee);
+ ie = ie === void 0 ? 6 : /[gprs]/.test(Ee) ? Math.max(1, Math.min(21, ie)) : Math.max(0, Math.min(20, ie));
+ function De(ce) {
+ var je = Ae, lt = Be, pt, Vt, ot;
+ if (Ee === "c") lt = Pe(ce) + lt, ce = "";
+ else {
+ ce = +ce;
+ var ut = ce < 0 || 1 / ce < 0;
+ if (ce = isNaN(ce) ? G : Pe(Math.abs(ce), ie), Se && (ce = u(ce)), ut && +ce == 0 && oe !== "+" && (ut = false), je = (ut ? oe === "(" ? oe : U : oe === "-" || oe === "(" ? "" : oe) + je, lt = (Ee === "s" ? b[8 + c / 3] : "") + lt + (ut && oe === "(" ? ")" : ""), me) {
+ for (pt = -1, Vt = ce.length; ++pt < Vt; ) if (ot = ce.charCodeAt(pt), 48 > ot || ot > 57) {
+ lt = (ot === 46 ? A + ce.slice(pt + 1) : ce.slice(pt)) + lt, ce = ce.slice(0, pt);
+ break;
+ }
+ }
+ }
+ ge && !Ce && (ce = M(ce, 1 / 0));
+ var Wt = je.length + ce.length + lt.length, Nt = Wt < Le ? new Array(Le - Wt + 1).join(H) : "";
+ switch (ge && Ce && (ce = M(Nt + ce, Nt.length ? Le - lt.length : 1 / 0), Nt = ""), re) {
+ case "<":
+ ce = je + ce + lt + Nt;
+ break;
+ case "=":
+ ce = je + Nt + ce + lt;
+ break;
+ case "^":
+ ce = Nt.slice(0, Wt = Nt.length >> 1) + je + ce + lt + Nt.slice(Wt);
+ break;
+ default:
+ ce = Nt + je + ce + lt;
+ break;
+ }
+ return z(ce);
+ }
+ return De.toString = function() {
+ return N + "";
+ }, De;
+ }
+ function j(N, H) {
+ var re = Z((N = s(N), N.type = "f", N)), oe = Math.max(-8, Math.min(8, Math.floor(n(H) / 3))) * 3, _e = Math.pow(10, -oe), Ce = b[8 + oe / 3];
+ return function(Le) {
+ return re(_e * Le) + Ce;
+ };
+ }
+ return { format: Z, formatPrefix: j };
+ }
+ var k;
+ E({ decimal: ".", thousands: ",", grouping: [3], currency: ["$", ""], minus: "-" });
+ function E(C) {
+ return k = p(C), e.format = k.format, e.formatPrefix = k.formatPrefix, k;
+ }
+ function T(C) {
+ return Math.max(0, -n(Math.abs(C)));
+ }
+ function L(C, M) {
+ return Math.max(0, Math.max(-8, Math.min(8, Math.floor(n(M) / 3))) * 3 - n(Math.abs(C)));
+ }
+ function x(C, M) {
+ return C = Math.abs(C), M = Math.abs(M) - C, Math.max(0, n(M) - n(C)) + 1;
+ }
+ e.FormatSpecifier = l, e.formatDefaultLocale = E, e.formatLocale = p, e.formatSpecifier = s, e.precisionFixed = T, e.precisionPrefix = L, e.precisionRound = x, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var Mee = ye((grr, See) => {
+ See.exports = function(e) {
+ for (var t = e.length, r, n = 0; n < t; n++) if (r = e.charCodeAt(n), (r < 9 || r > 13) && r !== 32 && r !== 133 && r !== 160 && r !== 5760 && r !== 6158 && (r < 8192 || r > 8205) && r !== 8232 && r !== 8233 && r !== 8239 && r !== 8287 && r !== 8288 && r !== 12288 && r !== 65279) return false;
+ return true;
+ };
+ });
+ var Eo = ye((mrr, Eee) => {
+ var Stt = Mee();
+ Eee.exports = function(e) {
+ var t = typeof e;
+ if (t === "string") {
+ var r = e;
+ if (e = +e, e === 0 && Stt(r)) return false;
+ } else if (t !== "number") return false;
+ return e - e < 1;
+ };
+ });
+ var fs = ye((yrr, kee) => {
+ kee.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: 1e-3, EPOCHJD: 24405875e-1, ALMOST_EQUAL: 1 - 1e-6, LOG_CLIP: 10, MINUS_SIGN: "−" };
+ });
+ var EO = ye((w6, Cee) => {
+ (function(e, t) {
+ typeof w6 == "object" && typeof Cee != "undefined" ? t(w6) : (e = typeof globalThis != "undefined" ? globalThis : e || self, t(e["base64-arraybuffer"] = {}));
+ })(w6, function(e) {
+ for (var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", r = typeof Uint8Array == "undefined" ? [] : new Uint8Array(256), n = 0; n < t.length; n++) r[t.charCodeAt(n)] = n;
+ var i = function(o) {
+ var s = new Uint8Array(o), l, u = s.length, c = "";
+ for (l = 0; l < u; l += 3) c += t[s[l] >> 2], c += t[(s[l] & 3) << 4 | s[l + 1] >> 4], c += t[(s[l + 1] & 15) << 2 | s[l + 2] >> 6], c += t[s[l + 2] & 63];
+ return u % 3 === 2 ? c = c.substring(0, c.length - 1) + "=" : u % 3 === 1 && (c = c.substring(0, c.length - 2) + "=="), c;
+ }, a = function(o) {
+ var s = o.length * 0.75, l = o.length, u, c = 0, f, h, d, v;
+ o[o.length - 1] === "=" && (s--, o[o.length - 2] === "=" && s--);
+ var _ = new ArrayBuffer(s), b = new Uint8Array(_);
+ for (u = 0; u < l; u += 4) f = r[o.charCodeAt(u)], h = r[o.charCodeAt(u + 1)], d = r[o.charCodeAt(u + 2)], v = r[o.charCodeAt(u + 3)], b[c++] = f << 2 | h >> 4, b[c++] = (h & 15) << 4 | d >> 2, b[c++] = (d & 3) << 6 | v & 63;
+ return _;
+ };
+ e.decode = a, e.encode = i, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var Ty = ye((_rr, Lee) => {
+ Lee.exports = function(t) {
+ return window && window.process && window.process.versions ? Object.prototype.toString.call(t) === "[object Object]" : Object.prototype.toString.call(t) === "[object Object]" && Object.getPrototypeOf(t).hasOwnProperty("hasOwnProperty");
+ };
+ });
+ var vv = ye((xg) => {
+ var Mtt = EO().decode, Ett = Ty(), kO = Array.isArray, ktt = ArrayBuffer, Ctt = DataView;
+ function Pee(e) {
+ return ktt.isView(e) && !(e instanceof Ctt);
+ }
+ xg.isTypedArray = Pee;
+ function T6(e) {
+ return kO(e) || Pee(e);
+ }
+ xg.isArrayOrTypedArray = T6;
+ function Ltt(e) {
+ return !T6(e[0]);
+ }
+ xg.isArray1D = Ltt;
+ xg.ensureArray = function(e, t) {
+ return kO(e) || (e = []), e.length = t, e;
+ };
+ var Ld = { 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 };
+ Ld.uint8c = Ld.u1c;
+ Ld.uint8 = Ld.u1;
+ Ld.int8 = Ld.i1;
+ Ld.uint16 = Ld.u2;
+ Ld.int16 = Ld.i2;
+ Ld.uint32 = Ld.u4;
+ Ld.int32 = Ld.i4;
+ Ld.float32 = Ld.f4;
+ Ld.float64 = Ld.f8;
+ function CO(e) {
+ return e.constructor === ArrayBuffer;
+ }
+ xg.isArrayBuffer = CO;
+ xg.decodeTypedArraySpec = function(e) {
+ var t = [], r = Ptt(e), n = r.dtype, i = Ld[n];
+ if (!i) throw new Error('Error in dtype: "' + n + '"');
+ var a = i.BYTES_PER_ELEMENT, o = r.bdata;
+ CO(o) || (o = Mtt(o));
+ var s = r.shape === void 0 ? [o.byteLength / a] : ("" + r.shape).split(",");
+ s.reverse();
+ var l = s.length, u, c, f = +s[0], h = a * f, d = 0;
+ if (l === 1) t = new i(o);
+ else if (l === 2) for (u = +s[1], c = 0; c < u; c++) t[c] = new i(o, d, f), d += h;
+ else if (l === 3) {
+ u = +s[1];
+ for (var v = +s[2], _ = 0; _ < v; _++) for (t[_] = [], c = 0; c < u; c++) t[_][c] = new i(o, d, f), d += h;
+ } else throw new Error("ndim: " + l + 'is not supported with the shape:"' + r.shape + '"');
+ return t.bdata = r.bdata, t.dtype = r.dtype, t.shape = s.reverse().join(","), e._inputArray = t, t;
+ };
+ xg.isTypedArraySpec = function(e) {
+ return Ett(e) && e.hasOwnProperty("dtype") && typeof e.dtype == "string" && e.hasOwnProperty("bdata") && (typeof e.bdata == "string" || CO(e.bdata)) && (e.shape === void 0 || e.hasOwnProperty("shape") && (typeof e.shape == "string" || typeof e.shape == "number"));
+ };
+ function Ptt(e) {
+ return { bdata: e.bdata, dtype: e.dtype, shape: e.shape };
+ }
+ xg.concat = function() {
+ var e = [], t = true, r = 0, n, i, a, o, s, l, u, c;
+ for (a = 0; a < arguments.length; a++) o = arguments[a], l = o.length, l && (i ? e.push(o) : (i = o, s = l), kO(o) ? n = false : (t = false, r ? n !== o.constructor && (n = false) : n = o.constructor), r += l);
+ if (!r) return [];
+ if (!e.length) return i;
+ if (t) return i.concat.apply(i, e);
+ if (n) {
+ for (u = new n(r), u.set(i), a = 0; a < e.length; a++) o = e[a], u.set(o, s), s += o.length;
+ return u;
+ }
+ for (u = new Array(r), c = 0; c < i.length; c++) u[c] = i[c];
+ for (a = 0; a < e.length; a++) {
+ for (o = e[a], c = 0; c < o.length; c++) u[s + c] = o[c];
+ s += c;
+ }
+ return u;
+ };
+ xg.maxRowLength = function(e) {
+ return Iee(e, Math.max, 0);
+ };
+ xg.minRowLength = function(e) {
+ return Iee(e, Math.min, 1 / 0);
+ };
+ function Iee(e, t, r) {
+ if (T6(e)) if (T6(e[0])) {
+ for (var n = r, i = 0; i < e.length; i++) n = t(n, e[i].length);
+ return n;
+ } else return e.length;
+ return 0;
+ }
+ });
+ var FS = ye((brr, Oee) => {
+ var Ree = Eo(), PO = vv().isArrayOrTypedArray;
+ Oee.exports = function(t, r) {
+ if (Ree(r)) r = String(r);
+ else if (typeof r != "string" || r.slice(-4) === "[-1]") throw "bad property string";
+ var n = r.split("."), i, a, o, s;
+ for (s = 0; s < n.length; s++) if (String(n[s]).slice(0, 2) === "__") throw "bad property string";
+ for (s = 0; s < n.length; ) {
+ if (i = String(n[s]).match(/^([^\[\]]*)((\[\-?[0-9]*\])+)$/), i) {
+ if (i[1]) n[s] = i[1];
+ else if (s === 0) n.splice(0, 1);
+ else throw "bad property string";
+ for (a = i[2].slice(1, -1).split("]["), o = 0; o < a.length; o++) s++, n.splice(s, 0, Number(a[o]));
+ }
+ s++;
+ }
+ return typeof t != "object" ? Ftt(t, r, n) : { set: Fee(t, n, r), get: Dee(t, n), astr: r, parts: n, obj: t };
+ };
+ function Dee(e, t) {
+ return function(r) {
+ var n = e, i, a, o, s, l;
+ for (s = 0; s < t.length - 1; s++) {
+ if (i = t[s], i === -1) {
+ for (a = true, o = [], l = 0; l < n.length; l++) o[l] = Dee(n[l], t.slice(s + 1))(r), o[l] !== o[0] && (a = false);
+ return a ? o[0] : o;
+ }
+ if (typeof i == "number" && !PO(n) || (n = n[i], typeof n != "object" || n === null)) return;
+ }
+ if (!(typeof n != "object" || n === null) && (o = n[t[s]], !(!r && o === null))) return o;
+ };
+ }
+ var Itt = /(^|\.)args\[/;
+ function LO(e, t) {
+ return e === void 0 || e === null && !t.match(Itt);
+ }
+ function Fee(e, t, r) {
+ return function(n) {
+ var i = e, a = "", s = LO(n, r), l, u;
+ for (u = 0; u < t.length - 1; u++) {
+ if (l = t[u], typeof l == "number" && !PO(i)) throw "array index but container is not an array";
+ if (l === -1) {
+ if (s = !Dtt(i, t.slice(u + 1), n, r), s) break;
+ return;
+ }
+ if (!zee(i, l, t[u + 1], s)) break;
+ if (i = i[l], typeof i != "object" || i === null) throw "container is not an object";
+ a = Rtt(a, l);
+ }
+ if (s) {
+ if (u === t.length - 1 && (delete i[t[u]], Array.isArray(i) && +t[u] === i.length - 1)) for (; i.length && i[i.length - 1] === void 0; ) i.pop();
+ } else i[t[u]] = n;
+ };
+ }
+ function Rtt(e, t) {
+ var r = t;
+ return Ree(t) ? r = "[" + t + "]" : e && (r = "." + t), e + r;
+ }
+ function Dtt(e, t, r, n) {
+ var i = PO(r), a = true, o = r, s = n.replace("-1", 0), l = i ? false : LO(r, s), u = t[0], c;
+ for (c = 0; c < e.length; c++) s = n.replace("-1", c), i && (o = r[c % r.length], l = LO(o, s)), l && (a = false), zee(e, c, u, l) && Fee(e[c], t, n.replace("-1", c))(o);
+ return a;
+ }
+ function zee(e, t, r, n) {
+ if (e[t] === void 0) {
+ if (n) return false;
+ typeof r == "number" ? e[t] = [] : e[t] = {};
+ }
+ return true;
+ }
+ function Ftt(e, t, r) {
+ return { set: function() {
+ throw "bad container";
+ }, get: function() {
+ }, astr: t, parts: r, obj: e };
+ }
+ });
+ var Uee = ye((wrr, Nee) => {
+ var h3 = FS(), ztt = /^\w*$/, Ott = 0, qee = 1, A6 = 2, Bee = 3, gb = 4;
+ Nee.exports = function(t, r, n, i) {
+ n = n || "name", i = i || "value";
+ var a, o, s, l = {};
+ r && r.length ? (s = h3(t, r), o = s.get()) : o = t, r = r || "";
+ var u = {};
+ if (o) for (a = 0; a < o.length; a++) u[o[a][n]] = a;
+ var c = ztt.test(i), f = { set: function(h, d) {
+ var v = d === null ? gb : Ott;
+ if (!o) {
+ if (!s || v === gb) return;
+ o = [], s.set(o);
+ }
+ var _ = u[h];
+ if (_ === void 0) {
+ if (v === gb) return;
+ v = v | Bee, _ = o.length, u[h] = _;
+ } else d !== (c ? o[_][i] : h3(o[_], i).get()) && (v = v | A6);
+ var b = o[_] = o[_] || {};
+ return b[n] = h, c ? b[i] = d : h3(b, i).set(d), d !== null && (v = v & -5), l[_] = l[_] | v, f;
+ }, get: function(h) {
+ if (o) {
+ var d = u[h];
+ if (d !== void 0) return c ? o[d][i] : h3(o[d], i).get();
+ }
+ }, rename: function(h, d) {
+ var v = u[h];
+ return v === void 0 || (l[v] = l[v] | qee, u[d] = v, delete u[h], o[v][n] = d), f;
+ }, remove: function(h) {
+ var d = u[h];
+ if (d === void 0) return f;
+ var v = o[d];
+ if (Object.keys(v).length > 2) return l[d] = l[d] | A6, f.set(h, null);
+ if (c) {
+ for (a = d; a < o.length; a++) l[a] = l[a] | Bee;
+ for (a = d; a < o.length; a++) u[o[a][n]]--;
+ o.splice(d, 1), delete u[h];
+ } else h3(v, i).set(null), l[d] = l[d] | A6 | gb;
+ return f;
+ }, constructUpdate: function() {
+ for (var h, d, v = {}, _ = Object.keys(l), b = 0; b < _.length; b++) d = _[b], h = r + "[" + d + "]", o[d] ? (l[d] & qee && (v[h + "." + n] = o[d][n]), l[d] & A6 && (c ? v[h + "." + i] = l[d] & gb ? null : o[d][i] : v[h + "." + i] = l[d] & gb ? null : h3(o[d], i).get())) : v[h] = null;
+ return v;
+ } };
+ return f;
+ };
+ });
+ var Gee = ye((Trr, Vee) => {
+ var qtt = /^(.*)(\.[^\.\[\]]+|\[\d\])$/, Btt = /^[^\.\[\]]+$/;
+ Vee.exports = function(e, t) {
+ for (; t; ) {
+ var r = e.match(qtt);
+ if (r) e = r[1];
+ else if (e.match(Btt)) e = "";
+ else throw new Error("bad relativeAttr call:" + [e, t]);
+ if (t.charAt(0) === "^") t = t.slice(1);
+ else break;
+ }
+ return e && t.charAt(0) !== "[" ? e + "." + t : e + t;
+ };
+ });
+ var S6 = ye((Arr, Hee) => {
+ var Ntt = Eo();
+ Hee.exports = function(t, r) {
+ if (t > 0) return Math.log(t) / Math.LN10;
+ var n = Math.log(Math.min(r[0], r[1])) / Math.LN10;
+ return Ntt(n) || (n = Math.log(Math.max(r[0], r[1])) / Math.LN10 - 6), n;
+ };
+ });
+ var Xee = ye((Srr, Wee) => {
+ var jee = vv().isArrayOrTypedArray, zS = Ty();
+ Wee.exports = function e(t, r) {
+ for (var n in r) {
+ var i = r[n], a = t[n];
+ if (a !== i) if (n.charAt(0) === "_" || typeof i == "function") {
+ if (n in t) continue;
+ t[n] = i;
+ } else if (jee(i) && jee(a) && zS(i[0])) {
+ if (n === "customdata" || n === "ids") continue;
+ for (var o = Math.min(i.length, a.length), s = 0; s < o; s++) a[s] !== i[s] && zS(i[s]) && zS(a[s]) && e(a[s], i[s]);
+ } else zS(i) && zS(a) && (e(a, i), Object.keys(a).length || delete t[n]);
+ }
+ };
+ });
+ var d3 = ye((Mrr, Zee) => {
+ function Utt(e, t) {
+ var r = e % t;
+ return r < 0 ? r + t : r;
+ }
+ function Vtt(e, t) {
+ return Math.abs(e) > t / 2 ? e - Math.round(e / t) * t : e;
+ }
+ Zee.exports = { mod: Utt, modHalf: Vtt };
+ });
+ var fd = ye((Err, M6) => {
+ (function(e) {
+ var t = /^\s+/, r = /\s+$/, n = 0, i = e.round, a = e.min, o = e.max, s = e.random;
+ function l(me, De) {
+ if (me = me || "", De = De || {}, me instanceof l) return me;
+ if (!(this instanceof l)) return new l(me, De);
+ var ce = u(me);
+ this._originalInput = me, this._r = ce.r, this._g = ce.g, this._b = ce.b, this._a = ce.a, this._roundA = i(100 * this._a) / 100, this._format = De.format || ce.format, this._gradientType = De.gradientType, this._r < 1 && (this._r = i(this._r)), this._g < 1 && (this._g = i(this._g)), this._b < 1 && (this._b = i(this._b)), this._ok = ce.ok, this._tc_id = n++;
+ }
+ l.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 me = this.toRgb();
+ return (me.r * 299 + me.g * 587 + me.b * 114) / 1e3;
+ }, getLuminance: function() {
+ var me = this.toRgb(), De, ce, je, lt, pt, Vt;
+ return De = me.r / 255, ce = me.g / 255, je = me.b / 255, De <= 0.03928 ? lt = De / 12.92 : lt = e.pow((De + 0.055) / 1.055, 2.4), ce <= 0.03928 ? pt = ce / 12.92 : pt = e.pow((ce + 0.055) / 1.055, 2.4), je <= 0.03928 ? Vt = je / 12.92 : Vt = e.pow((je + 0.055) / 1.055, 2.4), 0.2126 * lt + 0.7152 * pt + 0.0722 * Vt;
+ }, setAlpha: function(me) {
+ return this._a = N(me), this._roundA = i(100 * this._a) / 100, this;
+ }, toHsv: function() {
+ var me = d(this._r, this._g, this._b);
+ return { h: me.h * 360, s: me.s, v: me.v, a: this._a };
+ }, toHsvString: function() {
+ var me = d(this._r, this._g, this._b), De = i(me.h * 360), ce = i(me.s * 100), je = i(me.v * 100);
+ return this._a == 1 ? "hsv(" + De + ", " + ce + "%, " + je + "%)" : "hsva(" + De + ", " + ce + "%, " + je + "%, " + this._roundA + ")";
+ }, toHsl: function() {
+ var me = f(this._r, this._g, this._b);
+ return { h: me.h * 360, s: me.s, l: me.l, a: this._a };
+ }, toHslString: function() {
+ var me = f(this._r, this._g, this._b), De = i(me.h * 360), ce = i(me.s * 100), je = i(me.l * 100);
+ return this._a == 1 ? "hsl(" + De + ", " + ce + "%, " + je + "%)" : "hsla(" + De + ", " + ce + "%, " + je + "%, " + this._roundA + ")";
+ }, toHex: function(me) {
+ return _(this._r, this._g, this._b, me);
+ }, toHexString: function(me) {
+ return "#" + this.toHex(me);
+ }, toHex8: function(me) {
+ return b(this._r, this._g, this._b, this._a, me);
+ }, toHex8String: function(me) {
+ return "#" + this.toHex8(me);
+ }, toRgb: function() {
+ return { r: i(this._r), g: i(this._g), b: i(this._b), a: this._a };
+ }, toRgbString: function() {
+ return this._a == 1 ? "rgb(" + i(this._r) + ", " + i(this._g) + ", " + i(this._b) + ")" : "rgba(" + i(this._r) + ", " + i(this._g) + ", " + i(this._b) + ", " + this._roundA + ")";
+ }, toPercentageRgb: function() {
+ return { r: i(H(this._r, 255) * 100) + "%", g: i(H(this._g, 255) * 100) + "%", b: i(H(this._b, 255) * 100) + "%", a: this._a };
+ }, toPercentageRgbString: function() {
+ return this._a == 1 ? "rgb(" + i(H(this._r, 255) * 100) + "%, " + i(H(this._g, 255) * 100) + "%, " + i(H(this._b, 255) * 100) + "%)" : "rgba(" + i(H(this._r, 255) * 100) + "%, " + i(H(this._g, 255) * 100) + "%, " + i(H(this._b, 255) * 100) + "%, " + this._roundA + ")";
+ }, toName: function() {
+ return this._a === 0 ? "transparent" : this._a < 1 ? false : Z[_(this._r, this._g, this._b, true)] || false;
+ }, toFilter: function(me) {
+ var De = "#" + p(this._r, this._g, this._b, this._a), ce = De, je = this._gradientType ? "GradientType = 1, " : "";
+ if (me) {
+ var lt = l(me);
+ ce = "#" + p(lt._r, lt._g, lt._b, lt._a);
+ }
+ return "progid:DXImageTransform.Microsoft.gradient(" + je + "startColorstr=" + De + ",endColorstr=" + ce + ")";
+ }, toString: function(me) {
+ var De = !!me;
+ me = me || this._format;
+ var ce = false, je = this._a < 1 && this._a >= 0, lt = !De && je && (me === "hex" || me === "hex6" || me === "hex3" || me === "hex4" || me === "hex8" || me === "name");
+ return lt ? me === "name" && this._a === 0 ? this.toName() : this.toRgbString() : (me === "rgb" && (ce = this.toRgbString()), me === "prgb" && (ce = this.toPercentageRgbString()), (me === "hex" || me === "hex6") && (ce = this.toHexString()), me === "hex3" && (ce = this.toHexString(true)), me === "hex4" && (ce = this.toHex8String(true)), me === "hex8" && (ce = this.toHex8String()), me === "name" && (ce = this.toName()), me === "hsl" && (ce = this.toHslString()), me === "hsv" && (ce = this.toHsvString()), ce || this.toHexString());
+ }, clone: function() {
+ return l(this.toString());
+ }, _applyModification: function(me, De) {
+ var ce = me.apply(null, [this].concat([].slice.call(De)));
+ return this._r = ce._r, this._g = ce._g, this._b = ce._b, this.setAlpha(ce._a), this;
+ }, lighten: function() {
+ return this._applyModification(L, arguments);
+ }, brighten: function() {
+ return this._applyModification(x, arguments);
+ }, darken: function() {
+ return this._applyModification(C, arguments);
+ }, desaturate: function() {
+ return this._applyModification(k, arguments);
+ }, saturate: function() {
+ return this._applyModification(E, arguments);
+ }, greyscale: function() {
+ return this._applyModification(T, arguments);
+ }, spin: function() {
+ return this._applyModification(M, arguments);
+ }, _applyCombination: function(me, De) {
+ return me.apply(null, [this].concat([].slice.call(De)));
+ }, analogous: function() {
+ return this._applyCombination(O, arguments);
+ }, complement: function() {
+ return this._applyCombination(g, arguments);
+ }, monochromatic: function() {
+ return this._applyCombination(U, arguments);
+ }, splitcomplement: function() {
+ return this._applyCombination(z, arguments);
+ }, triad: function() {
+ return this._applyCombination(P, arguments);
+ }, tetrad: function() {
+ return this._applyCombination(A, arguments);
+ } }, l.fromRatio = function(me, De) {
+ if (typeof me == "object") {
+ var ce = {};
+ for (var je in me) me.hasOwnProperty(je) && (je === "a" ? ce[je] = me[je] : ce[je] = ge(me[je]));
+ me = ce;
+ }
+ return l(me, De);
+ };
+ function u(me) {
+ var De = { r: 0, g: 0, b: 0 }, ce = 1, je = null, lt = null, pt = null, Vt = false, ot = false;
+ return typeof me == "string" && (me = Be(me)), typeof me == "object" && (Ae(me.r) && Ae(me.g) && Ae(me.b) ? (De = c(me.r, me.g, me.b), Vt = true, ot = String(me.r).substr(-1) === "%" ? "prgb" : "rgb") : Ae(me.h) && Ae(me.s) && Ae(me.v) ? (je = ge(me.s), lt = ge(me.v), De = v(me.h, je, lt), Vt = true, ot = "hsv") : Ae(me.h) && Ae(me.s) && Ae(me.l) && (je = ge(me.s), pt = ge(me.l), De = h(me.h, je, pt), Vt = true, ot = "hsl"), me.hasOwnProperty("a") && (ce = me.a)), ce = N(ce), { ok: Vt, format: me.format || ot, r: a(255, o(De.r, 0)), g: a(255, o(De.g, 0)), b: a(255, o(De.b, 0)), a: ce };
+ }
+ function c(me, De, ce) {
+ return { r: H(me, 255) * 255, g: H(De, 255) * 255, b: H(ce, 255) * 255 };
+ }
+ function f(me, De, ce) {
+ me = H(me, 255), De = H(De, 255), ce = H(ce, 255);
+ var je = o(me, De, ce), lt = a(me, De, ce), pt, Vt, ot = (je + lt) / 2;
+ if (je == lt) pt = Vt = 0;
+ else {
+ var ut = je - lt;
+ switch (Vt = ot > 0.5 ? ut / (2 - je - lt) : ut / (je + lt), je) {
+ case me:
+ pt = (De - ce) / ut + (De < ce ? 6 : 0);
+ break;
+ case De:
+ pt = (ce - me) / ut + 2;
+ break;
+ case ce:
+ pt = (me - De) / ut + 4;
+ break;
+ }
+ pt /= 6;
+ }
+ return { h: pt, s: Vt, l: ot };
+ }
+ function h(me, De, ce) {
+ var je, lt, pt;
+ me = H(me, 360), De = H(De, 100), ce = H(ce, 100);
+ function Vt(Wt, Nt, $t) {
+ return $t < 0 && ($t += 1), $t > 1 && ($t -= 1), $t < 1 / 6 ? Wt + (Nt - Wt) * 6 * $t : $t < 1 / 2 ? Nt : $t < 2 / 3 ? Wt + (Nt - Wt) * (2 / 3 - $t) * 6 : Wt;
+ }
+ if (De === 0) je = lt = pt = ce;
+ else {
+ var ot = ce < 0.5 ? ce * (1 + De) : ce + De - ce * De, ut = 2 * ce - ot;
+ je = Vt(ut, ot, me + 1 / 3), lt = Vt(ut, ot, me), pt = Vt(ut, ot, me - 1 / 3);
+ }
+ return { r: je * 255, g: lt * 255, b: pt * 255 };
+ }
+ function d(me, De, ce) {
+ me = H(me, 255), De = H(De, 255), ce = H(ce, 255);
+ var je = o(me, De, ce), lt = a(me, De, ce), pt, Vt, ot = je, ut = je - lt;
+ if (Vt = je === 0 ? 0 : ut / je, je == lt) pt = 0;
+ else {
+ switch (je) {
+ case me:
+ pt = (De - ce) / ut + (De < ce ? 6 : 0);
+ break;
+ case De:
+ pt = (ce - me) / ut + 2;
+ break;
+ case ce:
+ pt = (me - De) / ut + 4;
+ break;
+ }
+ pt /= 6;
+ }
+ return { h: pt, s: Vt, v: ot };
+ }
+ function v(me, De, ce) {
+ me = H(me, 360) * 6, De = H(De, 100), ce = H(ce, 100);
+ var je = e.floor(me), lt = me - je, pt = ce * (1 - De), Vt = ce * (1 - lt * De), ot = ce * (1 - (1 - lt) * De), ut = je % 6, Wt = [ce, Vt, pt, pt, ot, ce][ut], Nt = [ot, ce, ce, Vt, pt, pt][ut], $t = [pt, pt, ot, ce, ce, Vt][ut];
+ return { r: Wt * 255, g: Nt * 255, b: $t * 255 };
+ }
+ function _(me, De, ce, je) {
+ var lt = [Le(i(me).toString(16)), Le(i(De).toString(16)), Le(i(ce).toString(16))];
+ return je && lt[0].charAt(0) == lt[0].charAt(1) && lt[1].charAt(0) == lt[1].charAt(1) && lt[2].charAt(0) == lt[2].charAt(1) ? lt[0].charAt(0) + lt[1].charAt(0) + lt[2].charAt(0) : lt.join("");
+ }
+ function b(me, De, ce, je, lt) {
+ var pt = [Le(i(me).toString(16)), Le(i(De).toString(16)), Le(i(ce).toString(16)), Le(ie(je))];
+ return lt && pt[0].charAt(0) == pt[0].charAt(1) && pt[1].charAt(0) == pt[1].charAt(1) && pt[2].charAt(0) == pt[2].charAt(1) && pt[3].charAt(0) == pt[3].charAt(1) ? pt[0].charAt(0) + pt[1].charAt(0) + pt[2].charAt(0) + pt[3].charAt(0) : pt.join("");
+ }
+ function p(me, De, ce, je) {
+ var lt = [Le(ie(je)), Le(i(me).toString(16)), Le(i(De).toString(16)), Le(i(ce).toString(16))];
+ return lt.join("");
+ }
+ l.equals = function(me, De) {
+ return !me || !De ? false : l(me).toRgbString() == l(De).toRgbString();
+ }, l.random = function() {
+ return l.fromRatio({ r: s(), g: s(), b: s() });
+ };
+ function k(me, De) {
+ De = De === 0 ? 0 : De || 10;
+ var ce = l(me).toHsl();
+ return ce.s -= De / 100, ce.s = re(ce.s), l(ce);
+ }
+ function E(me, De) {
+ De = De === 0 ? 0 : De || 10;
+ var ce = l(me).toHsl();
+ return ce.s += De / 100, ce.s = re(ce.s), l(ce);
+ }
+ function T(me) {
+ return l(me).desaturate(100);
+ }
+ function L(me, De) {
+ De = De === 0 ? 0 : De || 10;
+ var ce = l(me).toHsl();
+ return ce.l += De / 100, ce.l = re(ce.l), l(ce);
+ }
+ function x(me, De) {
+ De = De === 0 ? 0 : De || 10;
+ var ce = l(me).toRgb();
+ return ce.r = o(0, a(255, ce.r - i(255 * -(De / 100)))), ce.g = o(0, a(255, ce.g - i(255 * -(De / 100)))), ce.b = o(0, a(255, ce.b - i(255 * -(De / 100)))), l(ce);
+ }
+ function C(me, De) {
+ De = De === 0 ? 0 : De || 10;
+ var ce = l(me).toHsl();
+ return ce.l -= De / 100, ce.l = re(ce.l), l(ce);
+ }
+ function M(me, De) {
+ var ce = l(me).toHsl(), je = (ce.h + De) % 360;
+ return ce.h = je < 0 ? 360 + je : je, l(ce);
+ }
+ function g(me) {
+ var De = l(me).toHsl();
+ return De.h = (De.h + 180) % 360, l(De);
+ }
+ function P(me) {
+ var De = l(me).toHsl(), ce = De.h;
+ return [l(me), l({ h: (ce + 120) % 360, s: De.s, l: De.l }), l({ h: (ce + 240) % 360, s: De.s, l: De.l })];
+ }
+ function A(me) {
+ var De = l(me).toHsl(), ce = De.h;
+ return [l(me), l({ h: (ce + 90) % 360, s: De.s, l: De.l }), l({ h: (ce + 180) % 360, s: De.s, l: De.l }), l({ h: (ce + 270) % 360, s: De.s, l: De.l })];
+ }
+ function z(me) {
+ var De = l(me).toHsl(), ce = De.h;
+ return [l(me), l({ h: (ce + 72) % 360, s: De.s, l: De.l }), l({ h: (ce + 216) % 360, s: De.s, l: De.l })];
+ }
+ function O(me, De, ce) {
+ De = De || 6, ce = ce || 30;
+ var je = l(me).toHsl(), lt = 360 / ce, pt = [l(me)];
+ for (je.h = (je.h - (lt * De >> 1) + 720) % 360; --De; ) je.h = (je.h + lt) % 360, pt.push(l(je));
+ return pt;
+ }
+ function U(me, De) {
+ De = De || 6;
+ for (var ce = l(me).toHsv(), je = ce.h, lt = ce.s, pt = ce.v, Vt = [], ot = 1 / De; De--; ) Vt.push(l({ h: je, s: lt, v: pt })), pt = (pt + ot) % 1;
+ return Vt;
+ }
+ l.mix = function(me, De, ce) {
+ ce = ce === 0 ? 0 : ce || 50;
+ var je = l(me).toRgb(), lt = l(De).toRgb(), pt = ce / 100, Vt = { r: (lt.r - je.r) * pt + je.r, g: (lt.g - je.g) * pt + je.g, b: (lt.b - je.b) * pt + je.b, a: (lt.a - je.a) * pt + je.a };
+ return l(Vt);
+ }, l.readability = function(me, De) {
+ var ce = l(me), je = l(De);
+ return (e.max(ce.getLuminance(), je.getLuminance()) + 0.05) / (e.min(ce.getLuminance(), je.getLuminance()) + 0.05);
+ }, l.isReadable = function(me, De, ce) {
+ var je = l.readability(me, De), lt, pt;
+ switch (pt = false, lt = Pe(ce), lt.level + lt.size) {
+ case "AAsmall":
+ case "AAAlarge":
+ pt = je >= 4.5;
+ break;
+ case "AAlarge":
+ pt = je >= 3;
+ break;
+ case "AAAsmall":
+ pt = je >= 7;
+ break;
+ }
+ return pt;
+ }, l.mostReadable = function(me, De, ce) {
+ var je = null, lt = 0, pt, Vt, ot, ut;
+ ce = ce || {}, Vt = ce.includeFallbackColors, ot = ce.level, ut = ce.size;
+ for (var Wt = 0; Wt < De.length; Wt++) pt = l.readability(me, De[Wt]), pt > lt && (lt = pt, je = l(De[Wt]));
+ return l.isReadable(me, je, { level: ot, size: ut }) || !Vt ? je : (ce.includeFallbackColors = false, l.mostReadable(me, ["#fff", "#000"], ce));
+ };
+ var G = l.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" }, Z = l.hexNames = j(G);
+ function j(me) {
+ var De = {};
+ for (var ce in me) me.hasOwnProperty(ce) && (De[me[ce]] = ce);
+ return De;
+ }
+ function N(me) {
+ return me = parseFloat(me), (isNaN(me) || me < 0 || me > 1) && (me = 1), me;
+ }
+ function H(me, De) {
+ _e(me) && (me = "100%");
+ var ce = Ce(me);
+ return me = a(De, o(0, parseFloat(me))), ce && (me = parseInt(me * De, 10) / 100), e.abs(me - De) < 1e-6 ? 1 : me % De / parseFloat(De);
+ }
+ function re(me) {
+ return a(1, o(0, me));
+ }
+ function oe(me) {
+ return parseInt(me, 16);
+ }
+ function _e(me) {
+ return typeof me == "string" && me.indexOf(".") != -1 && parseFloat(me) === 1;
+ }
+ function Ce(me) {
+ return typeof me == "string" && me.indexOf("%") != -1;
+ }
+ function Le(me) {
+ return me.length == 1 ? "0" + me : "" + me;
+ }
+ function ge(me) {
+ return me <= 1 && (me = me * 100 + "%"), me;
+ }
+ function ie(me) {
+ return e.round(parseFloat(me) * 255).toString(16);
+ }
+ function Se(me) {
+ return oe(me) / 255;
+ }
+ var Ee = function() {
+ var me = "[-\\+]?\\d+%?", De = "[-\\+]?\\d*\\.\\d+%?", ce = "(?:" + De + ")|(?:" + me + ")", je = "[\\s|\\(]+(" + ce + ")[,|\\s]+(" + ce + ")[,|\\s]+(" + ce + ")\\s*\\)?", lt = "[\\s|\\(]+(" + ce + ")[,|\\s]+(" + ce + ")[,|\\s]+(" + ce + ")[,|\\s]+(" + ce + ")\\s*\\)?";
+ return { CSS_UNIT: new RegExp(ce), rgb: new RegExp("rgb" + je), rgba: new RegExp("rgba" + lt), hsl: new RegExp("hsl" + je), hsla: new RegExp("hsla" + lt), hsv: new RegExp("hsv" + je), hsva: new RegExp("hsva" + lt), 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 Ae(me) {
+ return !!Ee.CSS_UNIT.exec(me);
+ }
+ function Be(me) {
+ me = me.replace(t, "").replace(r, "").toLowerCase();
+ var De = false;
+ if (G[me]) me = G[me], De = true;
+ else if (me == "transparent") return { r: 0, g: 0, b: 0, a: 0, format: "name" };
+ var ce;
+ return (ce = Ee.rgb.exec(me)) ? { r: ce[1], g: ce[2], b: ce[3] } : (ce = Ee.rgba.exec(me)) ? { r: ce[1], g: ce[2], b: ce[3], a: ce[4] } : (ce = Ee.hsl.exec(me)) ? { h: ce[1], s: ce[2], l: ce[3] } : (ce = Ee.hsla.exec(me)) ? { h: ce[1], s: ce[2], l: ce[3], a: ce[4] } : (ce = Ee.hsv.exec(me)) ? { h: ce[1], s: ce[2], v: ce[3] } : (ce = Ee.hsva.exec(me)) ? { h: ce[1], s: ce[2], v: ce[3], a: ce[4] } : (ce = Ee.hex8.exec(me)) ? { r: oe(ce[1]), g: oe(ce[2]), b: oe(ce[3]), a: Se(ce[4]), format: De ? "name" : "hex8" } : (ce = Ee.hex6.exec(me)) ? { r: oe(ce[1]), g: oe(ce[2]), b: oe(ce[3]), format: De ? "name" : "hex" } : (ce = Ee.hex4.exec(me)) ? { r: oe(ce[1] + "" + ce[1]), g: oe(ce[2] + "" + ce[2]), b: oe(ce[3] + "" + ce[3]), a: Se(ce[4] + "" + ce[4]), format: De ? "name" : "hex8" } : (ce = Ee.hex3.exec(me)) ? { r: oe(ce[1] + "" + ce[1]), g: oe(ce[2] + "" + ce[2]), b: oe(ce[3] + "" + ce[3]), format: De ? "name" : "hex" } : false;
+ }
+ function Pe(me) {
+ var De, ce;
+ return me = me || { level: "AA", size: "small" }, De = (me.level || "AA").toUpperCase(), ce = (me.size || "small").toLowerCase(), De !== "AA" && De !== "AAA" && (De = "AA"), ce !== "small" && ce !== "large" && (ce = "small"), { level: De, size: ce };
+ }
+ typeof M6 != "undefined" && M6.exports ? M6.exports = l : window.tinycolor = l;
+ })(Math);
+ });
+ var Ao = ye((BS) => {
+ var Yee = Ty(), OS = Array.isArray;
+ function Gtt(e, t) {
+ var r, n;
+ for (r = 0; r < e.length; r++) {
+ if (n = e[r], n !== null && typeof n == "object") return false;
+ n !== void 0 && (t[r] = n);
+ }
+ return true;
+ }
+ BS.extendFlat = function() {
+ return qS(arguments, false, false, false);
+ };
+ BS.extendDeep = function() {
+ return qS(arguments, true, false, false);
+ };
+ BS.extendDeepAll = function() {
+ return qS(arguments, true, true, false);
+ };
+ BS.extendDeepNoArrays = function() {
+ return qS(arguments, true, false, true);
+ };
+ function qS(e, t, r, n) {
+ var i = e[0], a = e.length, o, s, l, u, c, f, h;
+ if (a === 2 && OS(i) && OS(e[1]) && i.length === 0) {
+ if (h = Gtt(e[1], i), h) return i;
+ i.splice(0, i.length);
+ }
+ for (var d = 1; d < a; d++) {
+ o = e[d];
+ for (s in o) l = i[s], u = o[s], n && OS(u) ? i[s] = u : t && u && (Yee(u) || (c = OS(u))) ? (c ? (c = false, f = l && OS(l) ? l : []) : f = l && Yee(l) ? l : {}, i[s] = qS([f, u], t, r, n)) : (typeof u != "undefined" || r) && (i[s] = u);
+ }
+ return i;
+ }
+ });
+ var ec = ye((Crr, Kee) => {
+ Kee.exports = function(e) {
+ var t = e.variantValues, r = e.editType, n = e.colorEditType;
+ n === void 0 && (n = r);
+ var i = { editType: r, valType: "integer", min: 1, max: 1e3, extras: ["normal", "bold"], dflt: "normal" };
+ e.noNumericWeightValues && (i.valType = "enumerated", i.values = i.extras, i.extras = void 0, i.min = void 0, i.max = void 0);
+ var a = { family: { valType: "string", noBlank: true, strict: true, editType: r }, size: { valType: "number", min: 1, editType: r }, color: { valType: "color", editType: n }, weight: i, style: { editType: r, valType: "enumerated", values: ["normal", "italic"], dflt: "normal" }, variant: e.noFontVariant ? void 0 : { editType: r, valType: "enumerated", values: t || ["normal", "small-caps", "all-small-caps", "all-petite-caps", "petite-caps", "unicase"], dflt: "normal" }, textcase: e.noFontTextcase ? void 0 : { editType: r, valType: "enumerated", values: ["normal", "word caps", "upper", "lower"], dflt: "normal" }, lineposition: e.noFontLineposition ? void 0 : { editType: r, valType: "flaglist", flags: ["under", "over", "through"], extras: ["none"], dflt: "none" }, shadow: e.noFontShadow ? void 0 : { editType: r, valType: "string", dflt: e.autoShadowDflt ? "auto" : "none" }, editType: r };
+ return e.autoSize && (a.size.dflt = "auto"), e.autoColor && (a.color.dflt = "auto"), e.arrayOk && (a.family.arrayOk = true, a.weight.arrayOk = true, a.style.arrayOk = true, e.noFontVariant || (a.variant.arrayOk = true), e.noFontTextcase || (a.textcase.arrayOk = true), e.noFontLineposition || (a.lineposition.arrayOk = true), e.noFontShadow || (a.shadow.arrayOk = true), a.size.arrayOk = true, a.color.arrayOk = true), a;
+ };
+ });
+ var NS = ye((Lrr, Jee) => {
+ Jee.exports = { YANGLE: 60, HOVERARROWSIZE: 6, HOVERTEXTPAD: 3, HOVERFONTSIZE: 13, HOVERFONT: "Arial, sans-serif", HOVERMINTIME: 50, HOVERID: "-hover" };
+ });
+ var W1 = ye((Prr, ete) => {
+ var $ee = NS(), Qee = ec(), IO = Qee({ editType: "none" });
+ IO.family.dflt = $ee.HOVERFONT;
+ IO.size.dflt = $ee.HOVERFONTSIZE;
+ ete.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", false], dflt: "zoom", editType: "modebar" }, hovermode: { valType: "enumerated", values: ["x", "y", "closest", false, "x unified", "y unified"], dflt: "closest", editType: "modebar" }, hoversubplots: { valType: "enumerated", values: ["single", "overlaying", "axis"], dflt: "overlaying", 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: IO, grouptitlefont: Qee({ 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: true, editType: "none" }, editType: "none" }, selectdirection: { valType: "enumerated", values: ["h", "v", "d", "any"], dflt: "any", editType: "none" } };
+ });
+ var v3 = ye((Irr, tte) => {
+ var Htt = ec(), US = W1().hoverlabel, VS = Ao().extendFlat;
+ tte.exports = { hoverlabel: { bgcolor: VS({}, US.bgcolor, { arrayOk: true }), bordercolor: VS({}, US.bordercolor, { arrayOk: true }), font: Htt({ arrayOk: true, editType: "none" }), align: VS({}, US.align, { arrayOk: true }), namelength: VS({}, US.namelength, { arrayOk: true }), showarrow: VS({}, US.showarrow), editType: "none" } };
+ });
+ var Gl = ye((Rrr, rte) => {
+ var jtt = ec(), Wtt = v3();
+ rte.exports = { type: { valType: "enumerated", values: [], dflt: "scatter", editType: "calc+clearAxisTypes", _noTemplating: true }, visible: { valType: "enumerated", values: [true, false, "legendonly"], dflt: true, editType: "calc" }, showlegend: { valType: "boolean", dflt: true, editType: "style" }, legend: { valType: "subplotid", dflt: "legend", editType: "style" }, legendgroup: { valType: "string", dflt: "", editType: "style" }, legendgrouptitle: { text: { valType: "string", dflt: "", editType: "style" }, font: jtt({ 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: true }, ids: { valType: "data_array", editType: "calc", anim: true }, customdata: { valType: "data_array", editType: "calc" }, meta: { valType: "any", arrayOk: true, editType: "plot" }, selectedpoints: { valType: "any", editType: "calc" }, hoverinfo: { valType: "flaglist", flags: ["x", "y", "z", "text", "name"], extras: ["all", "none", "skip"], arrayOk: true, dflt: "all", editType: "none" }, hoverlabel: Wtt.hoverlabel, stream: { token: { valType: "string", noBlank: true, strict: true, editType: "calc" }, maxpoints: { valType: "number", min: 0, max: 1e4, dflt: 500, editType: "calc" }, editType: "calc" }, uirevision: { valType: "any", editType: "none" } };
+ });
+ var mb = ye((Drr, ate) => {
+ var Xtt = fd(), E6 = { Greys: [[0, "rgb(0,0,0)"], [1, "rgb(255,255,255)"]], YlGnBu: [[0, "rgb(8,29,88)"], [0.125, "rgb(37,52,148)"], [0.25, "rgb(34,94,168)"], [0.375, "rgb(29,145,192)"], [0.5, "rgb(65,182,196)"], [0.625, "rgb(127,205,187)"], [0.75, "rgb(199,233,180)"], [0.875, "rgb(237,248,217)"], [1, "rgb(255,255,217)"]], Greens: [[0, "rgb(0,68,27)"], [0.125, "rgb(0,109,44)"], [0.25, "rgb(35,139,69)"], [0.375, "rgb(65,171,93)"], [0.5, "rgb(116,196,118)"], [0.625, "rgb(161,217,155)"], [0.75, "rgb(199,233,192)"], [0.875, "rgb(229,245,224)"], [1, "rgb(247,252,245)"]], YlOrRd: [[0, "rgb(128,0,38)"], [0.125, "rgb(189,0,38)"], [0.25, "rgb(227,26,28)"], [0.375, "rgb(252,78,42)"], [0.5, "rgb(253,141,60)"], [0.625, "rgb(254,178,76)"], [0.75, "rgb(254,217,118)"], [0.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)"], [0.35, "rgb(106,137,247)"], [0.5, "rgb(190,190,190)"], [0.6, "rgb(220,170,132)"], [0.7, "rgb(230,145,90)"], [1, "rgb(178,10,28)"]], Reds: [[0, "rgb(220,220,220)"], [0.2, "rgb(245,195,157)"], [0.4, "rgb(245,160,105)"], [1, "rgb(178,10,28)"]], Blues: [[0, "rgb(5,10,172)"], [0.35, "rgb(40,60,190)"], [0.5, "rgb(70,100,245)"], [0.6, "rgb(90,120,245)"], [0.7, "rgb(106,137,247)"], [1, "rgb(220,220,220)"]], Picnic: [[0, "rgb(0,0,255)"], [0.1, "rgb(51,153,255)"], [0.2, "rgb(102,204,255)"], [0.3, "rgb(153,204,255)"], [0.4, "rgb(204,204,255)"], [0.5, "rgb(255,255,255)"], [0.6, "rgb(255,204,255)"], [0.7, "rgb(255,153,255)"], [0.8, "rgb(255,102,204)"], [0.9, "rgb(255,102,102)"], [1, "rgb(255,0,0)"]], Rainbow: [[0, "rgb(150,0,90)"], [0.125, "rgb(0,0,200)"], [0.25, "rgb(0,25,255)"], [0.375, "rgb(0,152,255)"], [0.5, "rgb(44,255,150)"], [0.625, "rgb(151,255,0)"], [0.75, "rgb(255,234,0)"], [0.875, "rgb(255,111,0)"], [1, "rgb(255,0,0)"]], Portland: [[0, "rgb(12,51,131)"], [0.25, "rgb(10,136,186)"], [0.5, "rgb(242,211,56)"], [0.75, "rgb(242,143,56)"], [1, "rgb(217,30,30)"]], Jet: [[0, "rgb(0,0,131)"], [0.125, "rgb(0,60,170)"], [0.375, "rgb(5,255,255)"], [0.625, "rgb(255,255,0)"], [0.875, "rgb(250,0,0)"], [1, "rgb(128,0,0)"]], Hot: [[0, "rgb(0,0,0)"], [0.3, "rgb(230,0,0)"], [0.6, "rgb(255,210,0)"], [1, "rgb(255,255,255)"]], Blackbody: [[0, "rgb(0,0,0)"], [0.2, "rgb(230,0,0)"], [0.4, "rgb(230,210,0)"], [0.7, "rgb(255,255,255)"], [1, "rgb(160,200,255)"]], Earth: [[0, "rgb(0,0,130)"], [0.1, "rgb(0,180,180)"], [0.2, "rgb(40,210,40)"], [0.4, "rgb(230,230,50)"], [0.6, "rgb(120,70,20)"], [1, "rgb(255,255,255)"]], Electric: [[0, "rgb(0,0,0)"], [0.15, "rgb(30,0,100)"], [0.4, "rgb(120,0,100)"], [0.6, "rgb(160,90,0)"], [0.8, "rgb(230,200,0)"], [1, "rgb(255,250,220)"]], Viridis: [[0, "#440154"], [0.06274509803921569, "#48186a"], [0.12549019607843137, "#472d7b"], [0.18823529411764706, "#424086"], [0.25098039215686274, "#3b528b"], [0.3137254901960784, "#33638d"], [0.3764705882352941, "#2c728e"], [0.4392156862745098, "#26828e"], [0.5019607843137255, "#21918c"], [0.5647058823529412, "#1fa088"], [0.6274509803921569, "#28ae80"], [0.6901960784313725, "#3fbc73"], [0.7529411764705882, "#5ec962"], [0.8156862745098039, "#84d44b"], [0.8784313725490196, "#addc30"], [0.9411764705882353, "#d8e219"], [1, "#fde725"]], Cividis: [[0, "rgb(0,32,76)"], [0.058824, "rgb(0,42,102)"], [0.117647, "rgb(0,52,110)"], [0.176471, "rgb(39,63,108)"], [0.235294, "rgb(60,74,107)"], [0.294118, "rgb(76,85,107)"], [0.352941, "rgb(91,95,109)"], [0.411765, "rgb(104,106,112)"], [0.470588, "rgb(117,117,117)"], [0.529412, "rgb(131,129,120)"], [0.588235, "rgb(146,140,120)"], [0.647059, "rgb(161,152,118)"], [0.705882, "rgb(176,165,114)"], [0.764706, "rgb(192,177,109)"], [0.823529, "rgb(209,191,102)"], [0.882353, "rgb(225,204,92)"], [0.941176, "rgb(243,219,79)"], [1, "rgb(255,233,69)"]] }, ite = E6.RdBu;
+ function Ztt(e, t) {
+ if (t || (t = ite), !e) return t;
+ function r() {
+ try {
+ e = E6[e] || JSON.parse(e);
+ } catch (n) {
+ e = t;
+ }
+ }
+ return typeof e == "string" && (r(), typeof e == "string" && r()), nte(e) ? e : t;
+ }
+ function nte(e) {
+ var t = 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 false;
+ for (var r = 0; r < e.length; r++) {
+ var n = e[r];
+ if (n.length !== 2 || +n[0] < t || !Xtt(n[1]).isValid()) return false;
+ t = +n[0];
+ }
+ return true;
+ }
+ function Ytt(e) {
+ return E6[e] !== void 0 ? true : nte(e);
+ }
+ ate.exports = { scales: E6, defaultScale: ite, get: Ztt, isValid: Ytt };
+ });
+ var Ih = ye((yb) => {
+ yb.defaults = ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"];
+ yb.defaultLine = "#444";
+ yb.lightLine = "#eee";
+ yb.background = "#fff";
+ yb.borderLine = "#BEC8D9";
+ yb.lightFraction = 100 * 10 / 11;
+ });
+ var ka = ye((zrr, ote) => {
+ var wp = fd(), Ktt = Eo(), Jtt = vv().isTypedArray, hd = ote.exports = {}, k6 = Ih();
+ hd.defaults = k6.defaults;
+ var $tt = hd.defaultLine = k6.defaultLine;
+ hd.lightLine = k6.lightLine;
+ var DO = hd.background = k6.background;
+ hd.tinyRGB = function(e) {
+ var t = e.toRgb();
+ return "rgb(" + Math.round(t.r) + ", " + Math.round(t.g) + ", " + Math.round(t.b) + ")";
+ };
+ hd.rgb = function(e) {
+ return hd.tinyRGB(wp(e));
+ };
+ hd.opacity = function(e) {
+ return e ? wp(e).getAlpha() : 0;
+ };
+ hd.addOpacity = function(e, t) {
+ var r = wp(e).toRgb();
+ return "rgba(" + Math.round(r.r) + ", " + Math.round(r.g) + ", " + Math.round(r.b) + ", " + t + ")";
+ };
+ hd.combine = function(e, t) {
+ var r = wp(e).toRgb();
+ if (r.a === 1) return wp(e).toRgbString();
+ var n = wp(t || DO).toRgb(), i = n.a === 1 ? n : { r: 255 * (1 - n.a) + n.r * n.a, g: 255 * (1 - n.a) + n.g * n.a, b: 255 * (1 - n.a) + n.b * n.a }, a = { r: i.r * (1 - r.a) + r.r * r.a, g: i.g * (1 - r.a) + r.g * r.a, b: i.b * (1 - r.a) + r.b * r.a };
+ return wp(a).toRgbString();
+ };
+ hd.interpolate = function(e, t, r) {
+ var n = wp(e).toRgb(), i = wp(t).toRgb(), a = { r: r * n.r + (1 - r) * i.r, g: r * n.g + (1 - r) * i.g, b: r * n.b + (1 - r) * i.b };
+ return wp(a).toRgbString();
+ };
+ hd.contrast = function(e, t, r) {
+ var n = wp(e);
+ n.getAlpha() !== 1 && (n = wp(hd.combine(e, DO)));
+ var i = n.isDark() ? t ? n.lighten(t) : DO : r ? n.darken(r) : $tt;
+ return i.toString();
+ };
+ hd.stroke = function(e, t) {
+ var r = wp(t);
+ e.style({ stroke: hd.tinyRGB(r), "stroke-opacity": r.getAlpha() });
+ };
+ hd.fill = function(e, t) {
+ var r = wp(t);
+ e.style({ fill: hd.tinyRGB(r), "fill-opacity": r.getAlpha() });
+ };
+ hd.clean = function(e) {
+ if (!(!e || typeof e != "object")) {
+ var t = Object.keys(e), r, n, i, a;
+ for (r = 0; r < t.length; r++) if (i = t[r], a = e[i], i.slice(-5) === "color") if (Array.isArray(a)) for (n = 0; n < a.length; n++) a[n] = RO(a[n]);
+ else e[i] = RO(a);
+ else if (i.slice(-10) === "colorscale" && Array.isArray(a)) for (n = 0; n < a.length; n++) Array.isArray(a[n]) && (a[n][1] = RO(a[n][1]));
+ else if (Array.isArray(a)) {
+ var o = a[0];
+ if (!Array.isArray(o) && o && typeof o == "object") for (n = 0; n < a.length; n++) hd.clean(a[n]);
+ } else a && typeof a == "object" && !Jtt(a) && hd.clean(a);
+ }
+ };
+ function RO(e) {
+ if (Ktt(e) || typeof e != "string") return e;
+ var t = e.trim();
+ if (t.slice(0, 3) !== "rgb") return e;
+ var r = t.match(/^rgba?\s*\(([^()]*)\)$/);
+ if (!r) return e;
+ var n = r[1].trim().split(/\s*[\s,]\s*/), i = t.charAt(3) === "a" && n.length === 4;
+ if (!i && n.length !== 3) return e;
+ for (var a = 0; a < n.length; a++) {
+ if (!n[a].length || (n[a] = Number(n[a]), !(n[a] >= 0))) return e;
+ if (a === 3) n[a] > 1 && (n[a] = 1);
+ else if (n[a] >= 1) return e;
+ }
+ var o = Math.round(n[0] * 255) + ", " + Math.round(n[1] * 255) + ", " + Math.round(n[2] * 255);
+ return i ? "rgba(" + o + ", " + n[3] + ")" : "rgb(" + o + ")";
+ }
+ });
+ var X1 = ye((Orr, ste) => {
+ ste.exports = { SHOW_PLACEHOLDER: 100, HIDE_PLACEHOLDER: 1e3, DESELECTDIM: 0.2 };
+ });
+ var p3 = ye((lte) => {
+ lte.counter = function(e, t, r, n) {
+ var i = (t || "") + (r ? "" : "$"), a = n === false ? "" : "^";
+ return e === "xy" ? new RegExp(a + "x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?" + i) : new RegExp(a + e + "([2-9]|[1-9][0-9]+)?" + i);
+ };
+ });
+ var hte = ye((Tp) => {
+ var FO = Eo(), ute = fd(), cte = Ao().extendFlat, Qtt = Gl(), ert = mb(), trt = ka(), rrt = X1().DESELECTDIM, g3 = FS(), fte = p3().counter, irt = d3().modHalf, bg = vv().isArrayOrTypedArray, Z1 = vv().isTypedArraySpec, Y1 = vv().decodeTypedArraySpec;
+ Tp.valObjectMeta = { data_array: { coerceFunction: function(e, t, r) {
+ t.set(bg(e) ? e : Z1(e) ? Y1(e) : r);
+ } }, enumerated: { coerceFunction: function(e, t, r, n) {
+ n.coerceNumber && (e = +e), n.values.indexOf(e) === -1 ? t.set(r) : t.set(e);
+ }, validateFunction: function(e, t) {
+ t.coerceNumber && (e = +e);
+ for (var r = t.values, n = 0; n < r.length; n++) {
+ var i = String(r[n]);
+ if (i.charAt(0) === "/" && i.charAt(i.length - 1) === "/") {
+ var a = new RegExp(i.slice(1, -1));
+ if (a.test(e)) return true;
+ } else if (e === r[n]) return true;
+ }
+ return false;
+ } }, boolean: { coerceFunction: function(e, t, r, n) {
+ let i = (a) => a === true || a === false;
+ i(e) || n.arrayOk && Array.isArray(e) && e.length > 0 && e.every(i) ? t.set(e) : t.set(r);
+ } }, number: { coerceFunction: function(e, t, r, n) {
+ Z1(e) && (e = Y1(e)), !FO(e) || n.min !== void 0 && e < n.min || n.max !== void 0 && e > n.max ? t.set(r) : t.set(+e);
+ } }, integer: { coerceFunction: function(e, t, r, n) {
+ if ((n.extras || []).indexOf(e) !== -1) {
+ t.set(e);
+ return;
+ }
+ Z1(e) && (e = Y1(e)), e % 1 || !FO(e) || n.min !== void 0 && e < n.min || n.max !== void 0 && e > n.max ? t.set(r) : t.set(+e);
+ } }, string: { coerceFunction: function(e, t, r, n) {
+ if (typeof e != "string") {
+ var i = typeof e == "number";
+ n.strict === true || !i ? t.set(r) : t.set(String(e));
+ } else n.noBlank && !e ? t.set(r) : t.set(e);
+ } }, color: { coerceFunction: function(e, t, r) {
+ Z1(e) && (e = Y1(e)), ute(e).isValid() ? t.set(e) : t.set(r);
+ } }, colorlist: { coerceFunction: function(e, t, r) {
+ function n(i) {
+ return ute(i).isValid();
+ }
+ !Array.isArray(e) || !e.length ? t.set(r) : e.every(n) ? t.set(e) : t.set(r);
+ } }, colorscale: { coerceFunction: function(e, t, r) {
+ t.set(ert.get(e, r));
+ } }, angle: { coerceFunction: function(e, t, r) {
+ Z1(e) && (e = Y1(e)), e === "auto" ? t.set("auto") : FO(e) ? t.set(irt(+e, 360)) : t.set(r);
+ } }, subplotid: { coerceFunction: function(e, t, r, n) {
+ var i = n.regex || fte(r);
+ let a = (o) => typeof o == "string" && i.test(o);
+ a(e) || n.arrayOk && bg(e) && e.length > 0 && e.every(a) ? t.set(e) : t.set(r);
+ }, validateFunction: function(e, t) {
+ var r = t.dflt;
+ return e === r ? true : typeof e != "string" ? false : !!fte(r).test(e);
+ } }, flaglist: { coerceFunction: function(e, t, r, n) {
+ if ((n.extras || []).indexOf(e) !== -1) {
+ t.set(e);
+ return;
+ }
+ if (typeof e != "string") {
+ t.set(r);
+ return;
+ }
+ for (var i = e.split("+"), a = 0; a < i.length; ) {
+ var o = i[a];
+ n.flags.indexOf(o) === -1 || i.indexOf(o) < a ? i.splice(a, 1) : a++;
+ }
+ i.length ? t.set(i.join("+")) : t.set(r);
+ } }, any: { coerceFunction: function(e, t, r) {
+ e === void 0 ? t.set(r) : t.set(Z1(e) ? Y1(e) : e);
+ } }, info_array: { coerceFunction: function(e, t, r, n) {
+ function i(k, E, T) {
+ var L, x = { set: function(C) {
+ L = C;
+ } };
+ return T === void 0 && (T = E.dflt), Tp.valObjectMeta[E.valType].coerceFunction(k, x, T, E), L;
+ }
+ if (Z1(e) && (e = Y1(e)), !bg(e)) {
+ t.set(r);
+ return;
+ }
+ var a = n.dimensions === 2 || n.dimensions === "1-2" && Array.isArray(e) && bg(e[0]), o = n.items, s = [], l = Array.isArray(o), u = l && a && bg(o[0]), c = a && l && !u, f = l && !c ? o.length : e.length, h, d, v, _, b, p;
+ if (r = Array.isArray(r) ? r : [], a) for (h = 0; h < f; h++) for (s[h] = [], v = bg(e[h]) ? e[h] : [], c ? b = o.length : l ? b = o[h].length : b = v.length, d = 0; d < b; d++) c ? _ = o[d] : l ? _ = o[h][d] : _ = o, p = i(v[d], _, (r[h] || [])[d]), p !== void 0 && (s[h][d] = p);
+ else for (h = 0; h < f; h++) p = i(e[h], l ? o[h] : o, r[h]), p !== void 0 && (s[h] = p);
+ t.set(s);
+ }, validateFunction: function(e, t) {
+ if (!bg(e)) return false;
+ var r = t.items, n = Array.isArray(r), i = t.dimensions === 2;
+ if (!t.freeLength && e.length !== r.length) return false;
+ for (var a = 0; a < e.length; a++) if (i) {
+ if (!bg(e[a]) || !t.freeLength && e[a].length !== r[a].length) return false;
+ for (var o = 0; o < e[a].length; o++) if (!C6(e[a][o], n ? r[a][o] : r)) return false;
+ } else if (!C6(e[a], n ? r[a] : r)) return false;
+ return true;
+ } } };
+ Tp.coerce = function(e, t, r, n, i) {
+ var a = g3(r, n).get(), o = g3(e, n), s = g3(t, n), l = o.get(), u = t._template;
+ if (l === void 0 && u && (l = g3(u, n).get(), u = 0), i === void 0 && (i = a.dflt), a.arrayOk) {
+ if (bg(l)) return s.set(l), l;
+ if (Z1(l)) return l = Y1(l), s.set(l), l;
+ }
+ var c = Tp.valObjectMeta[a.valType].coerceFunction;
+ c(l, s, i, a);
+ var f = s.get();
+ return u && f === i && !C6(l, a) && (l = g3(u, n).get(), c(l, s, i, a), f = s.get()), f;
+ };
+ Tp.coerce2 = function(e, t, r, n, i) {
+ var a = g3(e, n), o = Tp.coerce(e, t, r, n, i), s = a.get();
+ return s != null ? o : false;
+ };
+ Tp.coerceFont = function(e, t, r, n) {
+ n || (n = {}), r = cte({}, r), r = cte(r, n.overrideDflt || {});
+ var i = { family: e(t + ".family", r.family), size: e(t + ".size", r.size), color: e(t + ".color", r.color), weight: e(t + ".weight", r.weight), style: e(t + ".style", r.style) };
+ if (n.noFontVariant || (i.variant = e(t + ".variant", r.variant)), n.noFontLineposition || (i.lineposition = e(t + ".lineposition", r.lineposition)), n.noFontTextcase || (i.textcase = e(t + ".textcase", r.textcase)), !n.noFontShadow) {
+ var a = r.shadow;
+ a === "none" && n.autoShadowDflt && (a = "auto"), i.shadow = e(t + ".shadow", a);
+ }
+ return i;
+ };
+ Tp.coercePattern = function(e, t, r, n) {
+ var i = e(t + ".shape"), a;
+ if (i || (a = e(t + ".path")), i || a) {
+ i && e(t + ".solidity"), e(t + ".size");
+ var o = e(t + ".fillmode"), s = o === "overlay";
+ if (!n) {
+ var l = e(t + ".bgcolor", s ? r : void 0);
+ e(t + ".fgcolor", s ? trt.contrast(l) : r);
+ }
+ e(t + ".fgopacity", s ? 0.5 : 1);
+ }
+ };
+ Tp.coerceHoverinfo = function(e, t, r) {
+ var n = t._module.attributes, i = n.hoverinfo ? n : Qtt, a = i.hoverinfo, o;
+ if (r._dataLength === 1) {
+ var s = a.dflt === "all" ? a.flags.slice() : a.dflt.split("+");
+ s.splice(s.indexOf("name"), 1), o = s.join("+");
+ }
+ return Tp.coerce(e, t, i, "hoverinfo", o);
+ };
+ Tp.coerceSelectionMarkerOpacity = function(e, t) {
+ if (e.marker) {
+ var r = e.marker.opacity;
+ if (r !== void 0) {
+ var n, i;
+ !bg(r) && !e.selected && !e.unselected && (n = r, i = rrt * r), t("selected.marker.opacity", n), t("unselected.marker.opacity", i);
+ }
+ }
+ };
+ function C6(e, t) {
+ var r = Tp.valObjectMeta[t.valType];
+ if (t.arrayOk && bg(e)) return true;
+ if (r.validateFunction) return r.validateFunction(e, t);
+ var n = {}, i = n, a = { set: function(o) {
+ i = o;
+ } };
+ return r.coerceFunction(e, a, n, t), i !== n;
+ }
+ Tp.validate = C6;
+ });
+ var _b = ye((Nrr, gte) => {
+ var dte = { staticPlot: { valType: "boolean", dflt: false }, typesetMath: { valType: "boolean", dflt: true }, plotlyServerURL: { valType: "string", dflt: "" }, editable: { valType: "boolean", dflt: false }, edits: { annotationPosition: { valType: "boolean", dflt: false }, annotationTail: { valType: "boolean", dflt: false }, annotationText: { valType: "boolean", dflt: false }, axisTitleText: { valType: "boolean", dflt: false }, colorbarPosition: { valType: "boolean", dflt: false }, colorbarTitleText: { valType: "boolean", dflt: false }, legendPosition: { valType: "boolean", dflt: false }, legendText: { valType: "boolean", dflt: false }, shapePosition: { valType: "boolean", dflt: false }, titleText: { valType: "boolean", dflt: false } }, editSelection: { valType: "boolean", dflt: true }, autosizable: { valType: "boolean", dflt: false }, responsive: { valType: "boolean", dflt: false }, fillFrame: { valType: "boolean", dflt: false }, frameMargins: { valType: "number", dflt: 0, min: 0, max: 0.5 }, scrollZoom: { valType: "flaglist", flags: ["cartesian", "gl3d", "geo", "mapbox", "map"], extras: [true, false], dflt: "gl3d+geo+map" }, doubleClick: { valType: "enumerated", values: [false, "reset", "autosize", "reset+autosize"], dflt: "reset+autosize" }, doubleClickDelay: { valType: "number", dflt: 300, min: 0 }, showAxisDragHandles: { valType: "boolean", dflt: true }, showAxisRangeEntryBoxes: { valType: "boolean", dflt: true }, showTips: { valType: "boolean", dflt: true }, showLink: { valType: "boolean", dflt: false }, linkText: { valType: "string", dflt: "Edit chart", noBlank: true }, sendData: { valType: "boolean", dflt: true }, showSources: { valType: "any", dflt: false }, displayModeBar: { valType: "enumerated", values: ["hover", true, false], dflt: "hover" }, showSendToCloud: { valType: "boolean", dflt: false }, showEditInChartStudio: { valType: "boolean", dflt: false }, modeBarButtonsToRemove: { valType: "any", dflt: [] }, modeBarButtonsToAdd: { valType: "any", dflt: [] }, modeBarButtons: { valType: "any", dflt: false }, toImageButtonOptions: { valType: "any", dflt: {} }, displaylogo: { valType: "boolean", dflt: true }, watermark: { valType: "boolean", dflt: false }, plotGlPixelRatio: { valType: "number", dflt: 2, min: 1, max: 4 }, setBackground: { valType: "any", dflt: "transparent" }, topojsonURL: { valType: "string", noBlank: true, 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: {} } }, vte = {};
+ function pte(e, t) {
+ for (var r in e) {
+ var n = e[r];
+ n.valType ? t[r] = n.dflt : (t[r] || (t[r] = {}), pte(n, t[r]));
+ }
+ }
+ pte(dte, vte);
+ gte.exports = { configAttributes: dte, dfltConfig: vte };
+ });
+ var OO = ye((Urr, mte) => {
+ var zO = Oa(), nrt = Eo(), GS = [];
+ mte.exports = function(e, t) {
+ if (GS.indexOf(e) !== -1) return;
+ GS.push(e);
+ var r = 1e3;
+ nrt(t) ? r = t : t === "long" && (r = 3e3);
+ var n = zO.select("body").selectAll(".plotly-notifier").data([0]);
+ n.enter().append("div").classed("plotly-notifier", true);
+ var i = n.selectAll(".notifier-note").data(GS);
+ function a(o) {
+ o.duration(700).style("opacity", 0).each("end", function(s) {
+ var l = GS.indexOf(s);
+ l !== -1 && GS.splice(l, 1), zO.select(this).remove();
+ });
+ }
+ i.enter().append("div").classed("notifier-note", true).style("opacity", 0).each(function(o) {
+ var s = zO.select(this);
+ s.append("button").classed("notifier-close", true).html("×").on("click", function() {
+ s.transition().call(a);
+ });
+ for (var l = s.append("p"), u = o.split(/ /g), c = 0; c < u.length; c++) c && l.append("br"), l.append("span").text(u[c]);
+ t === "stick" ? s.transition().duration(350).style("opacity", 1) : s.transition().duration(700).style("opacity", 1).transition().delay(r).call(a);
+ });
+ };
+ });
+ var K1 = ye((Vrr, yte) => {
+ var m3 = _b().dfltConfig, qO = OO(), BO = yte.exports = {};
+ BO.log = function() {
+ var e;
+ if (m3.logging > 1) {
+ var t = ["LOG:"];
+ for (e = 0; e < arguments.length; e++) t.push(arguments[e]);
+ console.trace.apply(console, t);
+ }
+ if (m3.notifyOnLogging > 1) {
+ var r = [];
+ for (e = 0; e < arguments.length; e++) r.push(arguments[e]);
+ qO(r.join(" "), "long");
+ }
+ };
+ BO.warn = function() {
+ var e;
+ if (m3.logging > 0) {
+ var t = ["WARN:"];
+ for (e = 0; e < arguments.length; e++) t.push(arguments[e]);
+ console.trace.apply(console, t);
+ }
+ if (m3.notifyOnLogging > 0) {
+ var r = [];
+ for (e = 0; e < arguments.length; e++) r.push(arguments[e]);
+ qO(r.join(" "), "stick");
+ }
+ };
+ BO.error = function() {
+ var e;
+ if (m3.logging > 0) {
+ var t = ["ERROR:"];
+ for (e = 0; e < arguments.length; e++) t.push(arguments[e]);
+ console.error.apply(console, t);
+ }
+ if (m3.notifyOnLogging > 0) {
+ var r = [];
+ for (e = 0; e < arguments.length; e++) r.push(arguments[e]);
+ qO(r.join(" "), "stick");
+ }
+ };
+ });
+ var L6 = ye((Grr, _te) => {
+ _te.exports = function() {
+ };
+ });
+ var NO = ye((Hrr, xte) => {
+ xte.exports = function(t, r) {
+ if (r instanceof RegExp) {
+ for (var n = r.toString(), i = 0; i < t.length; i++) if (t[i] instanceof RegExp && t[i].toString() === n) return t;
+ t.push(r);
+ } else (r || r === 0) && t.indexOf(r) === -1 && t.push(r);
+ return t;
+ };
+ });
+ var wte = ye((jrr, bte) => {
+ bte.exports = art;
+ function art() {
+ 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 Ate = ye((Wrr, Tte) => {
+ Tte.exports = ort;
+ function ort(e) {
+ var t = new Float32Array(16);
+ return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t[6] = e[6], t[7] = e[7], t[8] = e[8], t[9] = e[9], t[10] = e[10], t[11] = e[11], t[12] = e[12], t[13] = e[13], t[14] = e[14], t[15] = e[15], t;
+ }
+ });
+ var Mte = ye((Xrr, Ste) => {
+ Ste.exports = srt;
+ function srt(e, t) {
+ return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[4] = t[4], e[5] = t[5], e[6] = t[6], e[7] = t[7], e[8] = t[8], e[9] = t[9], e[10] = t[10], e[11] = t[11], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15], e;
+ }
+ });
+ var UO = ye((Zrr, Ete) => {
+ Ete.exports = lrt;
+ function lrt(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 Cte = ye((Yrr, kte) => {
+ kte.exports = urt;
+ function urt(e, t) {
+ if (e === t) {
+ var r = t[1], n = t[2], i = t[3], a = t[6], o = t[7], s = t[11];
+ e[1] = t[4], e[2] = t[8], e[3] = t[12], e[4] = r, e[6] = t[9], e[7] = t[13], e[8] = n, e[9] = a, e[11] = t[14], e[12] = i, e[13] = o, e[14] = s;
+ } else e[0] = t[0], e[1] = t[4], e[2] = t[8], e[3] = t[12], e[4] = t[1], e[5] = t[5], e[6] = t[9], e[7] = t[13], e[8] = t[2], e[9] = t[6], e[10] = t[10], e[11] = t[14], e[12] = t[3], e[13] = t[7], e[14] = t[11], e[15] = t[15];
+ return e;
+ }
+ });
+ var Pte = ye((Krr, Lte) => {
+ Lte.exports = crt;
+ function crt(e, t) {
+ var r = t[0], n = t[1], i = t[2], a = t[3], o = t[4], s = t[5], l = t[6], u = t[7], c = t[8], f = t[9], h = t[10], d = t[11], v = t[12], _ = t[13], b = t[14], p = t[15], k = r * s - n * o, E = r * l - i * o, T = r * u - a * o, L = n * l - i * s, x = n * u - a * s, C = i * u - a * l, M = c * _ - f * v, g = c * b - h * v, P = c * p - d * v, A = f * b - h * _, z = f * p - d * _, O = h * p - d * b, U = k * O - E * z + T * A + L * P - x * g + C * M;
+ return U ? (U = 1 / U, e[0] = (s * O - l * z + u * A) * U, e[1] = (i * z - n * O - a * A) * U, e[2] = (_ * C - b * x + p * L) * U, e[3] = (h * x - f * C - d * L) * U, e[4] = (l * P - o * O - u * g) * U, e[5] = (r * O - i * P + a * g) * U, e[6] = (b * T - v * C - p * E) * U, e[7] = (c * C - h * T + d * E) * U, e[8] = (o * z - s * P + u * M) * U, e[9] = (n * P - r * z - a * M) * U, e[10] = (v * x - _ * T + p * k) * U, e[11] = (f * T - c * x - d * k) * U, e[12] = (s * g - o * A - l * M) * U, e[13] = (r * A - n * g + i * M) * U, e[14] = (_ * E - v * L - b * k) * U, e[15] = (c * L - f * E + h * k) * U, e) : null;
+ }
+ });
+ var Rte = ye((Jrr, Ite) => {
+ Ite.exports = frt;
+ function frt(e, t) {
+ var r = t[0], n = t[1], i = t[2], a = t[3], o = t[4], s = t[5], l = t[6], u = t[7], c = t[8], f = t[9], h = t[10], d = t[11], v = t[12], _ = t[13], b = t[14], p = t[15];
+ return e[0] = s * (h * p - d * b) - f * (l * p - u * b) + _ * (l * d - u * h), e[1] = -(n * (h * p - d * b) - f * (i * p - a * b) + _ * (i * d - a * h)), e[2] = n * (l * p - u * b) - s * (i * p - a * b) + _ * (i * u - a * l), e[3] = -(n * (l * d - u * h) - s * (i * d - a * h) + f * (i * u - a * l)), e[4] = -(o * (h * p - d * b) - c * (l * p - u * b) + v * (l * d - u * h)), e[5] = r * (h * p - d * b) - c * (i * p - a * b) + v * (i * d - a * h), e[6] = -(r * (l * p - u * b) - o * (i * p - a * b) + v * (i * u - a * l)), e[7] = r * (l * d - u * h) - o * (i * d - a * h) + c * (i * u - a * l), e[8] = o * (f * p - d * _) - c * (s * p - u * _) + v * (s * d - u * f), e[9] = -(r * (f * p - d * _) - c * (n * p - a * _) + v * (n * d - a * f)), e[10] = r * (s * p - u * _) - o * (n * p - a * _) + v * (n * u - a * s), e[11] = -(r * (s * d - u * f) - o * (n * d - a * f) + c * (n * u - a * s)), e[12] = -(o * (f * b - h * _) - c * (s * b - l * _) + v * (s * h - l * f)), e[13] = r * (f * b - h * _) - c * (n * b - i * _) + v * (n * h - i * f), e[14] = -(r * (s * b - l * _) - o * (n * b - i * _) + v * (n * l - i * s)), e[15] = r * (s * h - l * f) - o * (n * h - i * f) + c * (n * l - i * s), e;
+ }
+ });
+ var Fte = ye(($rr, Dte) => {
+ Dte.exports = hrt;
+ function hrt(e) {
+ var t = e[0], r = e[1], n = e[2], i = e[3], a = e[4], o = e[5], s = e[6], l = e[7], u = e[8], c = e[9], f = e[10], h = e[11], d = e[12], v = e[13], _ = e[14], b = e[15], p = t * o - r * a, k = t * s - n * a, E = t * l - i * a, T = r * s - n * o, L = r * l - i * o, x = n * l - i * s, C = u * v - c * d, M = u * _ - f * d, g = u * b - h * d, P = c * _ - f * v, A = c * b - h * v, z = f * b - h * _;
+ return p * z - k * A + E * P + T * g - L * M + x * C;
+ }
+ });
+ var Ote = ye((Qrr, zte) => {
+ zte.exports = drt;
+ function drt(e, t, r) {
+ var n = t[0], i = t[1], a = t[2], o = t[3], s = t[4], l = t[5], u = t[6], c = t[7], f = t[8], h = t[9], d = t[10], v = t[11], _ = t[12], b = t[13], p = t[14], k = t[15], E = r[0], T = r[1], L = r[2], x = r[3];
+ return e[0] = E * n + T * s + L * f + x * _, e[1] = E * i + T * l + L * h + x * b, e[2] = E * a + T * u + L * d + x * p, e[3] = E * o + T * c + L * v + x * k, E = r[4], T = r[5], L = r[6], x = r[7], e[4] = E * n + T * s + L * f + x * _, e[5] = E * i + T * l + L * h + x * b, e[6] = E * a + T * u + L * d + x * p, e[7] = E * o + T * c + L * v + x * k, E = r[8], T = r[9], L = r[10], x = r[11], e[8] = E * n + T * s + L * f + x * _, e[9] = E * i + T * l + L * h + x * b, e[10] = E * a + T * u + L * d + x * p, e[11] = E * o + T * c + L * v + x * k, E = r[12], T = r[13], L = r[14], x = r[15], e[12] = E * n + T * s + L * f + x * _, e[13] = E * i + T * l + L * h + x * b, e[14] = E * a + T * u + L * d + x * p, e[15] = E * o + T * c + L * v + x * k, e;
+ }
+ });
+ var Bte = ye((eir, qte) => {
+ qte.exports = vrt;
+ function vrt(e, t, r) {
+ var n = r[0], i = r[1], a = r[2], o, s, l, u, c, f, h, d, v, _, b, p;
+ return t === e ? (e[12] = t[0] * n + t[4] * i + t[8] * a + t[12], e[13] = t[1] * n + t[5] * i + t[9] * a + t[13], e[14] = t[2] * n + t[6] * i + t[10] * a + t[14], e[15] = t[3] * n + t[7] * i + t[11] * a + t[15]) : (o = t[0], s = t[1], l = t[2], u = t[3], c = t[4], f = t[5], h = t[6], d = t[7], v = t[8], _ = t[9], b = t[10], p = t[11], e[0] = o, e[1] = s, e[2] = l, e[3] = u, e[4] = c, e[5] = f, e[6] = h, e[7] = d, e[8] = v, e[9] = _, e[10] = b, e[11] = p, e[12] = o * n + c * i + v * a + t[12], e[13] = s * n + f * i + _ * a + t[13], e[14] = l * n + h * i + b * a + t[14], e[15] = u * n + d * i + p * a + t[15]), e;
+ }
+ });
+ var Ute = ye((tir, Nte) => {
+ Nte.exports = prt;
+ function prt(e, t, r) {
+ var n = r[0], i = r[1], a = r[2];
+ return e[0] = t[0] * n, e[1] = t[1] * n, e[2] = t[2] * n, e[3] = t[3] * n, e[4] = t[4] * i, e[5] = t[5] * i, e[6] = t[6] * i, e[7] = t[7] * i, e[8] = t[8] * a, e[9] = t[9] * a, e[10] = t[10] * a, e[11] = t[11] * a, e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15], e;
+ }
+ });
+ var Gte = ye((rir, Vte) => {
+ Vte.exports = grt;
+ function grt(e, t, r, n) {
+ var i = n[0], a = n[1], o = n[2], s = Math.sqrt(i * i + a * a + o * o), l, u, c, f, h, d, v, _, b, p, k, E, T, L, x, C, M, g, P, A, z, O, U, G;
+ return Math.abs(s) < 1e-6 ? null : (s = 1 / s, i *= s, a *= s, o *= s, l = Math.sin(r), u = Math.cos(r), c = 1 - u, f = t[0], h = t[1], d = t[2], v = t[3], _ = t[4], b = t[5], p = t[6], k = t[7], E = t[8], T = t[9], L = t[10], x = t[11], C = i * i * c + u, M = a * i * c + o * l, g = o * i * c - a * l, P = i * a * c - o * l, A = a * a * c + u, z = o * a * c + i * l, O = i * o * c + a * l, U = a * o * c - i * l, G = o * o * c + u, e[0] = f * C + _ * M + E * g, e[1] = h * C + b * M + T * g, e[2] = d * C + p * M + L * g, e[3] = v * C + k * M + x * g, e[4] = f * P + _ * A + E * z, e[5] = h * P + b * A + T * z, e[6] = d * P + p * A + L * z, e[7] = v * P + k * A + x * z, e[8] = f * O + _ * U + E * G, e[9] = h * O + b * U + T * G, e[10] = d * O + p * U + L * G, e[11] = v * O + k * U + x * G, t !== e && (e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15]), e);
+ }
+ });
+ var jte = ye((iir, Hte) => {
+ Hte.exports = mrt;
+ function mrt(e, t, r) {
+ var n = Math.sin(r), i = Math.cos(r), a = t[4], o = t[5], s = t[6], l = t[7], u = t[8], c = t[9], f = t[10], h = t[11];
+ return t !== e && (e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15]), e[4] = a * i + u * n, e[5] = o * i + c * n, e[6] = s * i + f * n, e[7] = l * i + h * n, e[8] = u * i - a * n, e[9] = c * i - o * n, e[10] = f * i - s * n, e[11] = h * i - l * n, e;
+ }
+ });
+ var Xte = ye((nir, Wte) => {
+ Wte.exports = yrt;
+ function yrt(e, t, r) {
+ var n = Math.sin(r), i = Math.cos(r), a = t[0], o = t[1], s = t[2], l = t[3], u = t[8], c = t[9], f = t[10], h = t[11];
+ return t !== e && (e[4] = t[4], e[5] = t[5], e[6] = t[6], e[7] = t[7], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15]), e[0] = a * i - u * n, e[1] = o * i - c * n, e[2] = s * i - f * n, e[3] = l * i - h * n, e[8] = a * n + u * i, e[9] = o * n + c * i, e[10] = s * n + f * i, e[11] = l * n + h * i, e;
+ }
+ });
+ var Yte = ye((air, Zte) => {
+ Zte.exports = _rt;
+ function _rt(e, t, r) {
+ var n = Math.sin(r), i = Math.cos(r), a = t[0], o = t[1], s = t[2], l = t[3], u = t[4], c = t[5], f = t[6], h = t[7];
+ return t !== e && (e[8] = t[8], e[9] = t[9], e[10] = t[10], e[11] = t[11], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15]), e[0] = a * i + u * n, e[1] = o * i + c * n, e[2] = s * i + f * n, e[3] = l * i + h * n, e[4] = u * i - a * n, e[5] = c * i - o * n, e[6] = f * i - s * n, e[7] = h * i - l * n, e;
+ }
+ });
+ var Jte = ye((oir, Kte) => {
+ Kte.exports = xrt;
+ function xrt(e, t, r) {
+ var n, i, a, o = r[0], s = r[1], l = r[2], u = Math.sqrt(o * o + s * s + l * l);
+ return Math.abs(u) < 1e-6 ? null : (u = 1 / u, o *= u, s *= u, l *= u, n = Math.sin(t), i = Math.cos(t), a = 1 - i, e[0] = o * o * a + i, e[1] = s * o * a + l * n, e[2] = l * o * a - s * n, e[3] = 0, e[4] = o * s * a - l * n, e[5] = s * s * a + i, e[6] = l * s * a + o * n, e[7] = 0, e[8] = o * l * a + s * n, e[9] = s * l * a - o * n, e[10] = l * l * a + i, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e);
+ }
+ });
+ var Qte = ye((sir, $te) => {
+ $te.exports = brt;
+ function brt(e, t, r) {
+ var n = t[0], i = t[1], a = t[2], o = t[3], s = n + n, l = i + i, u = a + a, c = n * s, f = n * l, h = n * u, d = i * l, v = i * u, _ = a * u, b = o * s, p = o * l, k = o * u;
+ return e[0] = 1 - (d + _), e[1] = f + k, e[2] = h - p, e[3] = 0, e[4] = f - k, e[5] = 1 - (c + _), e[6] = v + b, e[7] = 0, e[8] = h + p, e[9] = v - b, e[10] = 1 - (c + d), e[11] = 0, e[12] = r[0], e[13] = r[1], e[14] = r[2], e[15] = 1, e;
+ }
+ });
+ var tre = ye((lir, ere) => {
+ ere.exports = wrt;
+ function wrt(e, t) {
+ return e[0] = t[0], e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = t[1], e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[10] = t[2], e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
+ }
+ });
+ var ire = ye((uir, rre) => {
+ rre.exports = Trt;
+ function Trt(e, t) {
+ 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] = t[0], e[13] = t[1], e[14] = t[2], e[15] = 1, e;
+ }
+ });
+ var are = ye((cir, nre) => {
+ nre.exports = Art;
+ function Art(e, t) {
+ var r = Math.sin(t), n = Math.cos(t);
+ return e[0] = 1, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = n, e[6] = r, e[7] = 0, e[8] = 0, e[9] = -r, e[10] = n, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
+ }
+ });
+ var sre = ye((fir, ore) => {
+ ore.exports = Srt;
+ function Srt(e, t) {
+ var r = Math.sin(t), n = Math.cos(t);
+ return e[0] = n, e[1] = 0, e[2] = -r, e[3] = 0, e[4] = 0, e[5] = 1, e[6] = 0, e[7] = 0, e[8] = r, e[9] = 0, e[10] = n, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
+ }
+ });
+ var ure = ye((hir, lre) => {
+ lre.exports = Mrt;
+ function Mrt(e, t) {
+ var r = Math.sin(t), n = Math.cos(t);
+ return e[0] = n, e[1] = r, e[2] = 0, e[3] = 0, e[4] = -r, e[5] = n, 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 fre = ye((dir, cre) => {
+ cre.exports = Ert;
+ function Ert(e, t) {
+ var r = t[0], n = t[1], i = t[2], a = t[3], o = r + r, s = n + n, l = i + i, u = r * o, c = n * o, f = n * s, h = i * o, d = i * s, v = i * l, _ = a * o, b = a * s, p = a * l;
+ return e[0] = 1 - f - v, e[1] = c + p, e[2] = h - b, e[3] = 0, e[4] = c - p, e[5] = 1 - u - v, e[6] = d + _, e[7] = 0, e[8] = h + b, e[9] = d - _, e[10] = 1 - u - f, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
+ }
+ });
+ var dre = ye((vir, hre) => {
+ hre.exports = krt;
+ function krt(e, t, r, n, i, a, o) {
+ var s = 1 / (r - t), l = 1 / (i - n), u = 1 / (a - o);
+ return e[0] = a * 2 * s, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = a * 2 * l, e[6] = 0, e[7] = 0, e[8] = (r + t) * s, e[9] = (i + n) * l, e[10] = (o + a) * u, e[11] = -1, e[12] = 0, e[13] = 0, e[14] = o * a * 2 * u, e[15] = 0, e;
+ }
+ });
+ var pre = ye((pir, vre) => {
+ vre.exports = Crt;
+ function Crt(e, t, r, n, i) {
+ var a = 1 / Math.tan(t / 2), o = 1 / (n - i);
+ return e[0] = a / r, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = a, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[10] = (i + n) * o, e[11] = -1, e[12] = 0, e[13] = 0, e[14] = 2 * i * n * o, e[15] = 0, e;
+ }
+ });
+ var mre = ye((gir, gre) => {
+ gre.exports = Lrt;
+ function Lrt(e, t, r, n) {
+ var i = Math.tan(t.upDegrees * Math.PI / 180), a = Math.tan(t.downDegrees * Math.PI / 180), o = Math.tan(t.leftDegrees * Math.PI / 180), s = Math.tan(t.rightDegrees * Math.PI / 180), l = 2 / (o + s), u = 2 / (i + a);
+ return e[0] = l, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = u, e[6] = 0, e[7] = 0, e[8] = -((o - s) * l * 0.5), e[9] = (i - a) * u * 0.5, e[10] = n / (r - n), e[11] = -1, e[12] = 0, e[13] = 0, e[14] = n * r / (r - n), e[15] = 0, e;
+ }
+ });
+ var _re = ye((mir, yre) => {
+ yre.exports = Prt;
+ function Prt(e, t, r, n, i, a, o) {
+ var s = 1 / (t - r), l = 1 / (n - i), u = 1 / (a - o);
+ return e[0] = -2 * s, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = -2 * l, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[10] = 2 * u, e[11] = 0, e[12] = (t + r) * s, e[13] = (i + n) * l, e[14] = (o + a) * u, e[15] = 1, e;
+ }
+ });
+ var bre = ye((yir, xre) => {
+ var Irt = UO();
+ xre.exports = Rrt;
+ function Rrt(e, t, r, n) {
+ var i, a, o, s, l, u, c, f, h, d, v = t[0], _ = t[1], b = t[2], p = n[0], k = n[1], E = n[2], T = r[0], L = r[1], x = r[2];
+ return Math.abs(v - T) < 1e-6 && Math.abs(_ - L) < 1e-6 && Math.abs(b - x) < 1e-6 ? Irt(e) : (c = v - T, f = _ - L, h = b - x, d = 1 / Math.sqrt(c * c + f * f + h * h), c *= d, f *= d, h *= d, i = k * h - E * f, a = E * c - p * h, o = p * f - k * c, d = Math.sqrt(i * i + a * a + o * o), d ? (d = 1 / d, i *= d, a *= d, o *= d) : (i = 0, a = 0, o = 0), s = f * o - h * a, l = h * i - c * o, u = c * a - f * i, d = Math.sqrt(s * s + l * l + u * u), d ? (d = 1 / d, s *= d, l *= d, u *= d) : (s = 0, l = 0, u = 0), e[0] = i, e[1] = s, e[2] = c, e[3] = 0, e[4] = a, e[5] = l, e[6] = f, e[7] = 0, e[8] = o, e[9] = u, e[10] = h, e[11] = 0, e[12] = -(i * v + a * _ + o * b), e[13] = -(s * v + l * _ + u * b), e[14] = -(c * v + f * _ + h * b), e[15] = 1, e);
+ }
+ });
+ var Tre = ye((_ir, wre) => {
+ wre.exports = Drt;
+ function Drt(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 VO = ye((xir, Are) => {
+ Are.exports = { create: wte(), clone: Ate(), copy: Mte(), identity: UO(), transpose: Cte(), invert: Pte(), adjoint: Rte(), determinant: Fte(), multiply: Ote(), translate: Bte(), scale: Ute(), rotate: Gte(), rotateX: jte(), rotateY: Xte(), rotateZ: Yte(), fromRotation: Jte(), fromRotationTranslation: Qte(), fromScaling: tre(), fromTranslation: ire(), fromXRotation: are(), fromYRotation: sre(), fromZRotation: ure(), fromQuat: fre(), frustum: dre(), perspective: pre(), perspectiveFromFieldOfView: mre(), ortho: _re(), lookAt: bre(), str: Tre() };
+ });
+ var P6 = ye((fh) => {
+ var Frt = VO();
+ fh.init2dArray = function(e, t) {
+ for (var r = new Array(e), n = 0; n < e; n++) r[n] = new Array(t);
+ return r;
+ };
+ fh.transposeRagged = function(e) {
+ var t = 0, r = e.length, n, i;
+ for (n = 0; n < r; n++) t = Math.max(t, e[n].length);
+ var a = new Array(t);
+ for (n = 0; n < t; n++) for (a[n] = new Array(r), i = 0; i < r; i++) a[n][i] = e[i][n];
+ return a;
+ };
+ fh.dot = function(e, t) {
+ if (!(e.length && t.length) || e.length !== t.length) return null;
+ var r = e.length, n, i;
+ if (e[0].length) for (n = new Array(r), i = 0; i < r; i++) n[i] = fh.dot(e[i], t);
+ else if (t[0].length) {
+ var a = fh.transposeRagged(t);
+ for (n = new Array(a.length), i = 0; i < a.length; i++) n[i] = fh.dot(e, a[i]);
+ } else for (n = 0, i = 0; i < r; i++) n += e[i] * t[i];
+ return n;
+ };
+ fh.translationMatrix = function(e, t) {
+ return [[1, 0, e], [0, 1, t], [0, 0, 1]];
+ };
+ fh.rotationMatrix = function(e) {
+ var t = e * Math.PI / 180;
+ return [[Math.cos(t), -Math.sin(t), 0], [Math.sin(t), Math.cos(t), 0], [0, 0, 1]];
+ };
+ fh.rotationXYMatrix = function(e, t, r) {
+ return fh.dot(fh.dot(fh.translationMatrix(t, r), fh.rotationMatrix(e)), fh.translationMatrix(-t, -r));
+ };
+ fh.apply3DTransform = function(e) {
+ return function() {
+ var t = arguments, r = arguments.length === 1 ? t[0] : [t[0], t[1], t[2] || 0];
+ return fh.dot(e, [r[0], r[1], r[2], 1]).slice(0, 3);
+ };
+ };
+ fh.apply2DTransform = function(e) {
+ return function() {
+ var t = arguments;
+ t.length === 3 && (t = t[0]);
+ var r = arguments.length === 1 ? t[0] : [t[0], t[1]];
+ return fh.dot(e, [r[0], r[1], 1]).slice(0, 2);
+ };
+ };
+ fh.apply2DTransform2 = function(e) {
+ var t = fh.apply2DTransform(e);
+ return function(r) {
+ return t(r.slice(0, 2)).concat(t(r.slice(2, 4)));
+ };
+ };
+ fh.convertCssMatrix = function(e) {
+ if (e) {
+ var t = e.length;
+ if (t === 16) return e;
+ if (t === 6) return [e[0], e[1], 0, 0, e[2], e[3], 0, 0, 0, 0, 1, 0, e[4], e[5], 0, 1];
+ }
+ return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
+ };
+ fh.inverseTransformMatrix = function(e) {
+ var t = [];
+ return Frt.invert(t, e), [[t[0], t[1], t[2], t[3]], [t[4], t[5], t[6], t[7]], [t[8], t[9], t[10], t[11]], [t[12], t[13], t[14], t[15]]];
+ };
+ });
+ var HS = ye((wir, Lre) => {
+ var zrt = Oa(), Sre = K1(), Ort = P6(), qrt = VO();
+ function Brt(e) {
+ var t;
+ if (typeof e == "string") {
+ if (t = document.getElementById(e), t === null) throw new Error("No DOM element with id '" + e + "' exists on the page.");
+ return t;
+ } else if (e == null) throw new Error("DOM element provided is null or undefined");
+ return e;
+ }
+ function Nrt(e) {
+ var t = zrt.select(e);
+ return t.node() instanceof HTMLElement && t.size() && t.classed("js-plotly-plot");
+ }
+ function Mre(e) {
+ var t = e && e.parentNode;
+ t && t.removeChild(e);
+ }
+ function Urt(e, t) {
+ Ere("global", e, t);
+ }
+ function Ere(e, t, r) {
+ var n = "plotly.js-style-" + e, i = document.getElementById(n);
+ if (!(i && i.matches(".no-inline-styles"))) {
+ i || (i = document.createElement("style"), i.setAttribute("id", n), i.appendChild(document.createTextNode("")), document.head.appendChild(i));
+ var a = i.sheet;
+ a ? a.insertRule ? a.insertRule(t + "{" + r + "}", 0) : a.addRule ? a.addRule(t, r, 0) : Sre.warn("addStyleRule failed") : Sre.warn("Cannot addRelatedStyleRule, probably due to strict CSP...");
+ }
+ }
+ function Vrt(e) {
+ var t = "plotly.js-style-" + e, r = document.getElementById(t);
+ r && Mre(r);
+ }
+ function Grt(e, t, r, n, i, a) {
+ var o = n.split(":"), s = i.split(":"), l = "data-btn-style-event-added";
+ a || (a = document), a.querySelectorAll(e).forEach(function(u) {
+ u.getAttribute(l) || (u.addEventListener("mouseenter", function() {
+ var c = this.querySelector(r);
+ c && (c.style[o[0]] = o[1]);
+ }), u.addEventListener("mouseleave", function() {
+ var c = this.querySelector(r);
+ c && (t && this.matches(t) ? c.style[o[0]] = o[1] : c.style[s[0]] = s[1]);
+ }), u.setAttribute(l, true));
+ });
+ }
+ function Hrt(e) {
+ var t = Cre(e), r = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
+ return t.forEach(function(n) {
+ var i = kre(n);
+ if (i) {
+ var a = Ort.convertCssMatrix(i);
+ r = qrt.multiply(r, r, a);
+ }
+ }), r;
+ }
+ function kre(e) {
+ var t = window.getComputedStyle(e, null), r = t.getPropertyValue("-webkit-transform") || t.getPropertyValue("-moz-transform") || t.getPropertyValue("-ms-transform") || t.getPropertyValue("-o-transform") || t.getPropertyValue("transform");
+ return r === "none" ? null : r.replace("matrix", "").replace("3d", "").slice(1, -1).split(",").map(function(n) {
+ return +n;
+ });
+ }
+ function Cre(e) {
+ for (var t = []; jrt(e); ) t.push(e), e = e.parentNode, typeof ShadowRoot == "function" && e instanceof ShadowRoot && (e = e.host);
+ return t;
+ }
+ function jrt(e) {
+ return e && (e instanceof Element || e instanceof HTMLElement);
+ }
+ function Wrt(e, t) {
+ return e && t && e.top === t.top && e.left === t.left && e.right === t.right && e.bottom === t.bottom;
+ }
+ Lre.exports = { getGraphDiv: Brt, isPlotDiv: Nrt, removeElement: Mre, addStyleRule: Urt, addRelatedStyleRule: Ere, deleteRelatedStyleRule: Vrt, setStyleOnHover: Grt, getFullTransformMatrix: Hrt, getElementTransformMatrix: kre, getElementAndAncestors: Cre, equalDomRects: Wrt };
+ });
+ var jS = ye((Tir, Pre) => {
+ Pre.exports = { mode: { valType: "enumerated", dflt: "afterall", values: ["immediate", "next", "afterall"] }, direction: { valType: "enumerated", values: ["forward", "reverse"], dflt: "forward" }, fromcurrent: { valType: "boolean", dflt: false }, frame: { duration: { valType: "number", min: 0, dflt: 500 }, redraw: { valType: "boolean", dflt: true } }, 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 mc = ye((Air, qre) => {
+ var Rre = Ao().extendFlat, Xrt = Ty(), Dre = { valType: "flaglist", extras: ["none"], flags: ["calc", "clearAxisTypes", "plot", "style", "markerSize", "colorbars"] }, Fre = { valType: "flaglist", extras: ["none"], flags: ["calc", "plot", "legend", "ticks", "axrange", "layoutstyle", "modebar", "camera", "arraydraw", "colorbars"] }, Zrt = Dre.flags.slice().concat(["fullReplot"]), Yrt = Fre.flags.slice().concat("layoutReplot");
+ qre.exports = { traces: Dre, layout: Fre, traceFlags: function() {
+ return Ire(Zrt);
+ }, layoutFlags: function() {
+ return Ire(Yrt);
+ }, update: function(e, t) {
+ var r = t.editType;
+ if (r && r !== "none") for (var n = r.split("+"), i = 0; i < n.length; i++) e[n[i]] = true;
+ }, overrideAll: zre };
+ function Ire(e) {
+ for (var t = {}, r = 0; r < e.length; r++) t[e[r]] = false;
+ return t;
+ }
+ function zre(e, t, r) {
+ var n = Rre({}, e);
+ for (var i in n) {
+ var a = n[i];
+ Xrt(a) && (n[i] = Ore(a, t, r, i));
+ }
+ return r === "from-root" && (n.editType = t), n;
+ }
+ function Ore(e, t, r, n) {
+ if (e.valType) {
+ var i = Rre({}, e);
+ if (i.editType = t, Array.isArray(e.items)) {
+ i.items = new Array(e.items.length);
+ for (var a = 0; a < e.items.length; a++) i.items[a] = Ore(e.items[a], t);
+ }
+ return i;
+ } else return zre(e, t, n.charAt(0) === "_" ? "nested" : "from-root");
+ }
+ });
+ var Pd = ye((GO) => {
+ GO.dash = { valType: "string", values: ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"], dflt: "solid", editType: "style" };
+ GO.pattern = { shape: { valType: "enumerated", values: ["", "/", "\\", "x", "-", "|", "+", "."], dflt: "", arrayOk: true, editType: "style" }, path: { valType: "string", arrayOk: true, editType: "style" }, fillmode: { valType: "enumerated", values: ["replace", "overlay"], dflt: "replace", editType: "style" }, bgcolor: { valType: "color", arrayOk: true, editType: "style" }, fgcolor: { valType: "color", arrayOk: true, editType: "style" }, fgopacity: { valType: "number", editType: "style", min: 0, max: 1 }, size: { valType: "number", min: 0, dflt: 8, arrayOk: true, editType: "style" }, solidity: { valType: "number", min: 0, max: 1, dflt: 0.3, arrayOk: true, editType: "style" }, editType: "style" };
+ });
+ var HO = ye((Mir, Bre) => {
+ Bre.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 Ll = ye((y3) => {
+ var { DATE_FORMAT_LINK: Krt, FORMAT_LINK: Jrt } = HO(), $rt = ["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 Qrt({ 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}".`, Jrt, "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}".`, Krt, "for details on the date formatting syntax.", $rt].join(" ");
+ }
+ y3.templateFormatStringDescription = Qrt;
+ y3.hovertemplateAttrs = ({ editType: e = "none", arrayOk: t } = {}, r = {}) => _g({ valType: "string", dflt: "", editType: e }, t !== false ? { arrayOk: true } : {});
+ y3.texttemplateAttrs = ({ editType: e = "calc", arrayOk: t } = {}, r = {}) => _g({ valType: "string", dflt: "", editType: e }, t !== false ? { arrayOk: true } : {});
+ y3.shapeTexttemplateAttrs = ({ editType: e = "arraydraw", newshape: t } = {}, r = {}) => ({ valType: "string", dflt: "", editType: e });
+ y3.templatefallbackAttrs = ({ editType: e = "none" } = {}) => ({ valType: "any", dflt: "-", editType: e });
+ });
+ var D6 = ye((Cir, jre) => {
+ function J1(e, t) {
+ return t ? t.d2l(e) : e;
+ }
+ function Nre(e, t) {
+ return t ? t.l2d(e) : e;
+ }
+ function eit(e) {
+ return e.x0;
+ }
+ function tit(e) {
+ return e.x1;
+ }
+ function rit(e) {
+ return e.y0;
+ }
+ function iit(e) {
+ return e.y1;
+ }
+ function Ure(e) {
+ return e.x0shift || 0;
+ }
+ function Vre(e) {
+ return e.x1shift || 0;
+ }
+ function Gre(e) {
+ return e.y0shift || 0;
+ }
+ function Hre(e) {
+ return e.y1shift || 0;
+ }
+ function I6(e, t) {
+ return J1(e.x1, t) + Vre(e) - J1(e.x0, t) - Ure(e);
+ }
+ function R6(e, t, r) {
+ return J1(e.y1, r) + Hre(e) - J1(e.y0, r) - Gre(e);
+ }
+ function nit(e, t) {
+ return Math.abs(I6(e, t));
+ }
+ function ait(e, t, r) {
+ return Math.abs(R6(e, t, r));
+ }
+ function oit(e, t, r) {
+ return e.type !== "line" ? void 0 : Math.sqrt(Math.pow(I6(e, t), 2) + Math.pow(R6(e, t, r), 2));
+ }
+ function sit(e, t) {
+ return Nre((J1(e.x1, t) + Vre(e) + J1(e.x0, t) + Ure(e)) / 2, t);
+ }
+ function lit(e, t, r) {
+ return Nre((J1(e.y1, r) + Hre(e) + J1(e.y0, r) + Gre(e)) / 2, r);
+ }
+ function uit(e, t, r) {
+ return e.type !== "line" ? void 0 : R6(e, t, r) / I6(e, t);
+ }
+ var cit = ["x0", "x1", "y0", "y1", "dy", "height", "ycenter"], fit = ["x0", "x1", "y0", "y1", "dx", "width", "xcenter"];
+ jre.exports = { x0: eit, x1: tit, y0: rit, y1: iit, slope: uit, dx: I6, dy: R6, width: nit, height: ait, length: oit, xcenter: sit, ycenter: lit, simpleXVariables: cit, simpleYVariables: fit };
+ });
+ var Zre = ye((Lir, Xre) => {
+ var hit = mc().overrideAll, xb = Gl(), Wre = ec(), dit = Pd().dash, $1 = Ao().extendFlat, { shapeTexttemplateAttrs: vit, templatefallbackAttrs: pit } = Ll(), git = D6();
+ Xre.exports = hit({ newshape: { visible: $1({}, xb.visible, {}), showlegend: { valType: "boolean", dflt: false }, legend: $1({}, xb.legend, {}), legendgroup: $1({}, xb.legendgroup, {}), legendgrouptitle: { text: $1({}, xb.legendgrouptitle.text, {}), font: Wre({}) }, legendrank: $1({}, xb.legendrank, {}), legendwidth: $1({}, xb.legendwidth, {}), line: { color: { valType: "color" }, width: { valType: "number", min: 0, dflt: 4 }, dash: $1({}, dit, { 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: $1({}, xb.name, {}), label: { text: { valType: "string", dflt: "" }, texttemplate: vit({ newshape: true }, { keys: Object.keys(git) }), texttemplatefallback: pit({ editType: "arraydraw" }), font: Wre({}), 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: 0.5 } } }, "none", "from-root");
+ });
+ var Kre = ye((Pir, Yre) => {
+ var mit = Pd().dash, yit = Ao().extendFlat;
+ Yre.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: yit({}, mit, { 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: 0.5, editType: "none" }, editType: "none" } };
+ });
+ var F6 = ye((Iir, Jre) => {
+ Jre.exports = function(e) {
+ var t = e.editType;
+ return { t: { valType: "number", dflt: 0, editType: t }, r: { valType: "number", dflt: 0, editType: t }, b: { valType: "number", dflt: 0, editType: t }, l: { valType: "number", dflt: 0, editType: t }, editType: t };
+ };
+ });
+ var _3 = ye((Rir, tie) => {
+ var jO = ec(), _it = jS(), z6 = Ih(), $re = Zre(), Qre = Kre(), xit = F6(), eie = Ao().extendFlat, O6 = jO({ editType: "calc" });
+ O6.family.dflt = '"Open Sans", verdana, arial, sans-serif';
+ O6.size.dflt = 12;
+ O6.color.dflt = z6.defaultLine;
+ tie.exports = { font: O6, title: { text: { valType: "string", editType: "layoutstyle" }, font: jO({ editType: "layoutstyle" }), subtitle: { text: { valType: "string", editType: "layoutstyle" }, font: jO({ 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: 0.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: eie(xit({ editType: "layoutstyle" }), {}), automargin: { valType: "boolean", dflt: false, editType: "plot" }, editType: "layoutstyle" }, uniformtext: { mode: { valType: "enumerated", values: [false, "hide", "show"], dflt: false, editType: "plot" }, minsize: { valType: "number", min: 0, dflt: 0, editType: "plot" }, editType: "plot" }, autosize: { valType: "boolean", dflt: false, 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: true, editType: "plot" }, editType: "plot" }, computed: { valType: "any", editType: "none" }, paper_bgcolor: { valType: "color", dflt: z6.background, editType: "plot" }, plot_bgcolor: { valType: "color", dflt: z6.background, editType: "layoutstyle" }, autotypenumbers: { valType: "enumerated", values: ["convert types", "strict"], dflt: "convert types", editType: "calc" }, separators: { valType: "string", editType: "plot" }, hidesources: { valType: "boolean", dflt: false, editType: "plot" }, showlegend: { valType: "boolean", editType: "legend" }, colorway: { valType: "colorlist", dflt: z6.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: $re.newshape, activeshape: $re.activeshape, newselection: Qre.newselection, activeselection: Qre.activeselection, meta: { valType: "any", arrayOk: true, editType: "plot" }, transition: eie({}, _it.transition, { editType: "none" }) };
+ });
+ var rie = ye(() => {
+ (function() {
+ if (!document.getElementById("a75c73da1cd7a97e8992659f6aed556255838daadea9ca0c9fc3af7f1ddf63c0")) {
+ var e = document.createElement("style");
+ e.id = "a75c73da1cd7a97e8992659f6aed556255838daadea9ca0c9fc3af7f1ddf63c0", 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 qa = ye((el) => {
+ var x3 = K1(), iie = L6(), nie = NO(), bit = Ty(), wit = HS().addStyleRule, aie = Ao(), Tit = Gl(), Ait = _3(), Sit = aie.extendFlat, WO = aie.extendDeepAll;
+ el.modules = {};
+ el.allCategories = {};
+ el.allTypes = [];
+ el.subplotsRegistry = {};
+ el.componentsRegistry = {};
+ el.layoutArrayContainers = [];
+ el.layoutArrayRegexes = [];
+ el.traceLayoutAttributes = {};
+ el.localeRegistry = {};
+ el.apiMethodRegistry = {};
+ el.collectableSubplotTypes = null;
+ el.register = function(t) {
+ if (el.collectableSubplotTypes = null, t) t && !Array.isArray(t) && (t = [t]);
+ else throw new Error("No argument passed to Plotly.register.");
+ for (var r = 0; r < t.length; r++) {
+ var n = t[r];
+ if (!n) throw new Error("Invalid module was attempted to be registered!");
+ switch (n.moduleType) {
+ case "trace":
+ Mit(n);
+ break;
+ case "transform":
+ Cit(n);
+ break;
+ case "component":
+ kit(n);
+ break;
+ case "locale":
+ Lit(n);
+ break;
+ case "apiMethod":
+ var i = n.name;
+ el.apiMethodRegistry[i] = n.fn;
+ break;
+ default:
+ throw new Error("Invalid module was attempted to be registered!");
+ }
+ }
+ };
+ el.getModule = function(e) {
+ var t = el.modules[uie(e)];
+ return t ? t._module : false;
+ };
+ el.traceIs = function(e, t) {
+ if (e = uie(e), e === "various") return false;
+ var r = el.modules[e];
+ return r || (e && x3.log("Unrecognized trace type " + e + "."), r = el.modules[Tit.type.dflt]), !!r.categories[t];
+ };
+ el.getComponentMethod = function(e, t) {
+ var r = el.componentsRegistry[e];
+ return r && r[t] || iie;
+ };
+ el.call = function() {
+ var e = arguments[0], t = [].slice.call(arguments, 1);
+ return el.apiMethodRegistry[e].apply(null, t);
+ };
+ function Mit(e) {
+ var t = e.name, r = e.categories, n = e.meta;
+ if (el.modules[t]) {
+ x3.log("Type " + t + " already registered");
+ return;
+ }
+ el.subplotsRegistry[e.basePlotModule.name] || Eit(e.basePlotModule);
+ for (var i = {}, a = 0; a < r.length; a++) i[r[a]] = true, el.allCategories[r[a]] = true;
+ el.modules[t] = { _module: e, categories: i }, n && Object.keys(n).length && (el.modules[t].meta = n), el.allTypes.push(t);
+ for (var o in el.componentsRegistry) sie(o, t);
+ e.layoutAttributes && Sit(el.traceLayoutAttributes, e.layoutAttributes);
+ var s = e.basePlotModule, l = s.name;
+ if (l === "mapbox") {
+ var u = s.constants.styleRules;
+ for (var c in u) wit(".js-plotly-plot .plotly .mapboxgl-" + c, u[c]);
+ }
+ l === "map" && rie(), (l === "geo" || l === "mapbox" || l === "map") && window.PlotlyGeoAssets === void 0 && (window.PlotlyGeoAssets = { topojson: {} });
+ }
+ function Eit(e) {
+ var t = e.name;
+ if (el.subplotsRegistry[t]) {
+ x3.log("Plot type " + t + " already registered.");
+ return;
+ }
+ oie(e), el.subplotsRegistry[t] = e;
+ for (var r in el.componentsRegistry) lie(r, e.name);
+ }
+ function kit(e) {
+ if (typeof e.name != "string") throw new Error("Component module *name* must be a string.");
+ var t = e.name;
+ el.componentsRegistry[t] = e, e.layoutAttributes && (e.layoutAttributes._isLinkedToArray && nie(el.layoutArrayContainers, t), oie(e));
+ for (var r in el.modules) sie(t, r);
+ for (var n in el.subplotsRegistry) lie(t, n);
+ e.schema && e.schema.layout && WO(Ait, e.schema.layout);
+ }
+ function Cit(e) {
+ if (typeof e.name != "string") throw new Error("Transform module *name* must be a string.");
+ var t = "Transform module " + e.name, r = typeof e.transform == "function", n = typeof e.calcTransform == "function";
+ if (!r && !n) throw new Error(t + " is missing a *transform* or *calcTransform* method.");
+ r && n && x3.log([t + " has both a *transform* and *calcTransform* methods.", "Please note that all *transform* methods are executed", "before all *calcTransform* methods."].join(" ")), bit(e.attributes) || x3.log(t + " registered without an *attributes* object."), typeof e.supplyDefaults != "function" && x3.log(t + " registered without a *supplyDefaults* method.");
+ }
+ function Lit(e) {
+ var t = e.name, r = t.split("-")[0], n = e.dictionary, i = e.format, a = n && Object.keys(n).length, o = i && Object.keys(i).length, s = el.localeRegistry, l = s[t];
+ if (l || (s[t] = l = {}), r !== t) {
+ var u = s[r];
+ u || (s[r] = u = {}), a && u.dictionary === l.dictionary && (u.dictionary = n), o && u.format === l.format && (u.format = i);
+ }
+ a && (l.dictionary = n), o && (l.format = i);
+ }
+ function oie(e) {
+ if (e.layoutAttributes) {
+ var t = e.layoutAttributes._arrayAttrRegexps;
+ if (t) for (var r = 0; r < t.length; r++) nie(el.layoutArrayRegexes, t[r]);
+ }
+ }
+ function sie(e, t) {
+ var r = el.componentsRegistry[e].schema;
+ if (!(!r || !r.traces)) {
+ var n = r.traces[t];
+ n && WO(el.modules[t]._module.attributes, n);
+ }
+ }
+ function lie(e, t) {
+ var r = el.componentsRegistry[e].schema;
+ if (!(!r || !r.subplots)) {
+ var n = el.subplotsRegistry[t], i = n.layoutAttributes, a = n.attr === "subplot" ? n.name : n.attr;
+ Array.isArray(a) && (a = a[0]);
+ var o = r.subplots[a];
+ i && o && WO(i, o);
+ }
+ }
+ function uie(e) {
+ return typeof e == "object" && (e = e.type), e;
+ }
+ });
+ var yie = ye((hh) => {
+ var Pit = f3().timeFormat, gie = Eo(), XO = K1(), e_ = d3().mod, T3 = fs(), _0 = T3.BADNUM, Ap = T3.ONEDAY, WS = T3.ONEHOUR, Q1 = T3.ONEMIN, w3 = T3.ONESEC, XS = T3.EPOCHJD, Ay = qa(), cie = f3().utcFormat, Iit = /^\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, Rit = /^\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, fie = (/* @__PURE__ */ new Date()).getFullYear() - 70;
+ function Sy(e) {
+ return e && Ay.componentsRegistry.calendars && typeof e == "string" && e !== "gregorian";
+ }
+ hh.dateTick0 = function(e, t) {
+ var r = Dit(e, !!t);
+ if (t < 2) return r;
+ var n = hh.dateTime2ms(r, e);
+ return n += Ap * (t - 1), hh.ms2DateTime(n, 0, e);
+ };
+ function Dit(e, t) {
+ return Sy(e) ? t ? Ay.getComponentMethod("calendars", "CANONICAL_SUNDAY")[e] : Ay.getComponentMethod("calendars", "CANONICAL_TICK")[e] : t ? "2000-01-02" : "2000-01-01";
+ }
+ hh.dfltRange = function(e) {
+ return Sy(e) ? Ay.getComponentMethod("calendars", "DFLTRANGE")[e] : ["2000-01-01", "2001-01-01"];
+ };
+ hh.isJSDate = function(e) {
+ return typeof e == "object" && e !== null && typeof e.getTime == "function";
+ };
+ var B6, N6;
+ hh.dateTime2ms = function(e, t) {
+ if (hh.isJSDate(e)) {
+ var r = e.getTimezoneOffset() * Q1, n = (e.getUTCMinutes() - e.getMinutes()) * Q1 + (e.getUTCSeconds() - e.getSeconds()) * w3 + (e.getUTCMilliseconds() - e.getMilliseconds());
+ if (n) {
+ var i = 3 * Q1;
+ r = r - i / 2 + e_(n - r + i / 2, i);
+ }
+ return e = Number(e) - r, e >= B6 && e <= N6 ? e : _0;
+ }
+ if (typeof e != "string" && typeof e != "number") return _0;
+ e = String(e);
+ var a = Sy(t), o = e.charAt(0);
+ a && (o === "G" || o === "g") && (e = e.slice(1), t = "");
+ var s = a && t.slice(0, 7) === "chinese", l = e.match(s ? Rit : Iit);
+ if (!l) return _0;
+ var u = l[1], c = l[3] || "1", f = Number(l[5] || 1), h = Number(l[7] || 0), d = Number(l[9] || 0), v = Number(l[11] || 0);
+ if (a) {
+ if (u.length === 2) return _0;
+ u = Number(u);
+ var _;
+ try {
+ var b = Ay.getComponentMethod("calendars", "getCal")(t);
+ if (s) {
+ var p = c.charAt(c.length - 1) === "i";
+ c = parseInt(c, 10), _ = b.newDate(u, b.toMonthIndex(u, c, p), f);
+ } else _ = b.newDate(u, Number(c), f);
+ } catch (E) {
+ return _0;
+ }
+ return _ ? (_.toJD() - XS) * Ap + h * WS + d * Q1 + v * w3 : _0;
+ }
+ u.length === 2 ? u = (Number(u) + 2e3 - fie) % 100 + fie : u = Number(u), c -= 1;
+ var k = new Date(Date.UTC(2e3, c, f, h, d));
+ return k.setUTCFullYear(u), k.getUTCMonth() !== c || k.getUTCDate() !== f ? _0 : k.getTime() + v * w3;
+ };
+ B6 = hh.MIN_MS = hh.dateTime2ms("-9999");
+ N6 = hh.MAX_MS = hh.dateTime2ms("9999-12-31 23:59:59.9999");
+ hh.isDateTime = function(e, t) {
+ return hh.dateTime2ms(e, t) !== _0;
+ };
+ function b3(e, t) {
+ return String(e + Math.pow(10, t)).slice(1);
+ }
+ var q6 = 90 * Ap, hie = 3 * WS, die = 5 * Q1;
+ hh.ms2DateTime = function(e, t, r) {
+ if (typeof e != "number" || !(e >= B6 && e <= N6)) return _0;
+ t || (t = 0);
+ var n = Math.floor(e_(e + 0.05, 1) * 10), i = Math.round(e - n / 10), a, o, s, l, u, c;
+ if (Sy(r)) {
+ var f = Math.floor(i / Ap) + XS, h = Math.floor(e_(e, Ap));
+ try {
+ a = Ay.getComponentMethod("calendars", "getCal")(r).fromJD(f).formatDate("yyyy-mm-dd");
+ } catch (d) {
+ a = cie("G%Y-%m-%d")(new Date(i));
+ }
+ if (a.charAt(0) === "-") for (; a.length < 11; ) a = "-0" + a.slice(1);
+ else for (; a.length < 10; ) a = "0" + a;
+ o = t < q6 ? Math.floor(h / WS) : 0, s = t < q6 ? Math.floor(h % WS / Q1) : 0, l = t < hie ? Math.floor(h % Q1 / w3) : 0, u = t < die ? h % w3 * 10 + n : 0;
+ } else c = new Date(i), a = cie("%Y-%m-%d")(c), o = t < q6 ? c.getUTCHours() : 0, s = t < q6 ? c.getUTCMinutes() : 0, l = t < hie ? c.getUTCSeconds() : 0, u = t < die ? c.getUTCMilliseconds() * 10 + n : 0;
+ return mie(a, o, s, l, u);
+ };
+ hh.ms2DateTimeLocal = function(e) {
+ if (!(e >= B6 + Ap && e <= N6 - Ap)) return _0;
+ var t = Math.floor(e_(e + 0.05, 1) * 10), r = new Date(Math.round(e - t / 10)), n = Pit("%Y-%m-%d")(r), i = r.getHours(), a = r.getMinutes(), o = r.getSeconds(), s = r.getUTCMilliseconds() * 10 + t;
+ return mie(n, i, a, o, s);
+ };
+ function mie(e, t, r, n, i) {
+ if ((t || r || n || i) && (e += " " + b3(t, 2) + ":" + b3(r, 2), (n || i) && (e += ":" + b3(n, 2), i))) {
+ for (var a = 4; i % 10 === 0; ) a -= 1, i /= 10;
+ e += "." + b3(i, a);
+ }
+ return e;
+ }
+ hh.cleanDate = function(e, t, r) {
+ if (e === _0) return t;
+ if (hh.isJSDate(e) || typeof e == "number" && isFinite(e)) {
+ if (Sy(r)) return XO.error("JS Dates and milliseconds are incompatible with world calendars", e), t;
+ if (e = hh.ms2DateTimeLocal(+e), !e && t !== void 0) return t;
+ } else if (!hh.isDateTime(e, r)) return XO.error("unrecognized date", e), t;
+ return e;
+ };
+ var Fit = /%\d?f/g, zit = /%h/g, Oit = { 1: "1", 2: "1", 3: "2", 4: "2" };
+ function vie(e, t, r, n) {
+ e = e.replace(Fit, function(a) {
+ var o = Math.min(+a.charAt(1) || 6, 6), s = (t / 1e3 % 1 + 2).toFixed(o).slice(2).replace(/0+$/, "") || "0";
+ return s;
+ });
+ var i = new Date(Math.floor(t + 0.05));
+ if (e = e.replace(zit, function() {
+ return Oit[r("%q")(i)];
+ }), Sy(n)) try {
+ e = Ay.getComponentMethod("calendars", "worldCalFmt")(e, t, n);
+ } catch (a) {
+ return "Invalid";
+ }
+ return r(e)(i);
+ }
+ var qit = [59, 59.9, 59.99, 59.999, 59.9999];
+ function Bit(e, t) {
+ var r = e_(e + 0.05, Ap), n = b3(Math.floor(r / WS), 2) + ":" + b3(e_(Math.floor(r / Q1), 60), 2);
+ if (t !== "M") {
+ gie(t) || (t = 0);
+ var i = Math.min(e_(e / w3, 60), qit[t]), a = (100 + i).toFixed(t).slice(1);
+ t > 0 && (a = a.replace(/0+$/, "").replace(/[\.]$/, "")), n += ":" + a;
+ }
+ return n;
+ }
+ hh.formatDate = function(e, t, r, n, i, a) {
+ if (i = Sy(i) && i, !t) if (r === "y") t = a.year;
+ else if (r === "m") t = a.month;
+ else if (r === "d") t = a.dayMonth + `
+` + a.year;
+ else return Bit(e, r) + `
+` + vie(a.dayMonthYear, e, n, i);
+ return vie(t, e, n, i);
+ };
+ var pie = 3 * Ap;
+ hh.incrementMonth = function(e, t, r) {
+ r = Sy(r) && r;
+ var n = e_(e, Ap);
+ if (e = Math.round(e - n), r) try {
+ var i = Math.round(e / Ap) + XS, a = Ay.getComponentMethod("calendars", "getCal")(r), o = a.fromJD(i);
+ return t % 12 ? a.add(o, t, "m") : a.add(o, t / 12, "y"), (o.toJD() - XS) * Ap + n;
+ } catch (l) {
+ XO.error("invalid ms " + e + " in calendar " + r);
+ }
+ var s = new Date(e + pie);
+ return s.setUTCMonth(s.getUTCMonth() + t) + n - pie;
+ };
+ hh.findExactDates = function(e, t) {
+ for (var r = 0, n = 0, i = 0, a = 0, o, s, l = Sy(t) && Ay.getComponentMethod("calendars", "getCal")(t), u = 0; u < e.length; u++) {
+ if (s = e[u], !gie(s)) {
+ a++;
+ continue;
+ }
+ if (!(s % Ap)) if (l) try {
+ o = l.fromJD(s / Ap + XS), o.day() === 1 ? o.month() === 1 ? r++ : n++ : i++;
+ } catch (f) {
+ }
+ else o = new Date(s), o.getUTCDate() === 1 ? o.getUTCMonth() === 0 ? r++ : n++ : i++;
+ }
+ n += r, i += n;
+ var c = e.length - a;
+ return { exactYears: r / c, exactMonths: n / c, exactDays: i / c };
+ };
+ });
+ var ZS = ye((qir, _ie) => {
+ _ie.exports = function(t) {
+ return t;
+ };
+ });
+ var U6 = ye((My) => {
+ var Nit = Eo(), Uit = K1(), Vit = ZS(), Git = fs().BADNUM, ZO = 1e-9;
+ My.findBin = function(e, t, r) {
+ if (Nit(t.start)) return r ? Math.ceil((e - t.start) / t.size - ZO) - 1 : Math.floor((e - t.start) / t.size + ZO);
+ var n = 0, i = t.length, a = 0, o = i > 1 ? (t[i - 1] - t[0]) / (i - 1) : 1, s, l;
+ for (o >= 0 ? l = r ? Hit : jit : l = r ? Xit : Wit, e += o * ZO * (r ? -1 : 1) * (o >= 0 ? 1 : -1); n < i && a++ < 100; ) s = Math.floor((n + i) / 2), l(t[s], e) ? n = s + 1 : i = s;
+ return a > 90 && Uit.log("Long binary search..."), n - 1;
+ };
+ function Hit(e, t) {
+ return e < t;
+ }
+ function jit(e, t) {
+ return e <= t;
+ }
+ function Wit(e, t) {
+ return e > t;
+ }
+ function Xit(e, t) {
+ return e >= t;
+ }
+ My.sorterAsc = function(e, t) {
+ return e - t;
+ };
+ My.sorterDes = function(e, t) {
+ return t - e;
+ };
+ My.distinctVals = function(e) {
+ var t = e.slice();
+ t.sort(My.sorterAsc);
+ var r;
+ for (r = t.length - 1; r > -1 && t[r] === Git; r--) ;
+ for (var n = t[r] - t[0] || 1, i = n / (r || 1) / 1e4, a = [], o, s = 0; s <= r; s++) {
+ var l = t[s], u = l - o;
+ o === void 0 ? (a.push(l), o = l) : u > i && (n = Math.min(n, u), a.push(l), o = l);
+ }
+ return { vals: a, minDiff: n };
+ };
+ My.roundUp = function(e, t, r) {
+ for (var n = 0, i = t.length - 1, a, o = 0, s = r ? 0 : 1, l = r ? 1 : 0, u = r ? Math.ceil : Math.floor; n < i && o++ < 100; ) a = u((n + i) / 2), t[a] <= e ? n = a + s : i = a - l;
+ return t[n];
+ };
+ My.sort = function(e, t) {
+ for (var r = 0, n = 0, i = 1; i < e.length; i++) {
+ var a = t(e[i], e[i - 1]);
+ if (a < 0 ? r = 1 : a > 0 && (n = 1), r && n) return e.sort(t);
+ }
+ return n ? e : e.reverse();
+ };
+ My.findIndexOfMin = function(e, t) {
+ t = t || Vit;
+ for (var r = 1 / 0, n, i = 0; i < e.length; i++) {
+ var a = t(e[i]);
+ a < r && (r = a, n = i);
+ }
+ return n;
+ };
+ });
+ var t_ = ye((Nir, xie) => {
+ xie.exports = function(t) {
+ return Object.keys(t).sort();
+ };
+ });
+ var bie = ye((dh) => {
+ var YS = Eo(), Zit = vv().isArrayOrTypedArray;
+ dh.aggNums = function(e, t, r, n) {
+ var i, a;
+ if ((!n || n > r.length) && (n = r.length), YS(t) || (t = false), Zit(r[0])) {
+ for (a = new Array(n), i = 0; i < n; i++) a[i] = dh.aggNums(e, t, r[i]);
+ r = a;
+ }
+ for (i = 0; i < n; i++) YS(t) ? YS(r[i]) && (t = e(+t, +r[i])) : t = r[i];
+ return t;
+ };
+ dh.len = function(e) {
+ return dh.aggNums(function(t) {
+ return t + 1;
+ }, 0, e);
+ };
+ dh.mean = function(e, t) {
+ return t || (t = dh.len(e)), dh.aggNums(function(r, n) {
+ return r + n;
+ }, 0, e) / t;
+ };
+ dh.geometricMean = function(e, t) {
+ return t || (t = dh.len(e)), Math.pow(dh.aggNums(function(r, n) {
+ return r * n;
+ }, 1, e), 1 / t);
+ };
+ dh.midRange = function(e) {
+ if (!(e === void 0 || e.length === 0)) return (dh.aggNums(Math.max, null, e) + dh.aggNums(Math.min, null, e)) / 2;
+ };
+ dh.variance = function(e, t, r) {
+ return t || (t = dh.len(e)), YS(r) || (r = dh.mean(e, t)), dh.aggNums(function(n, i) {
+ return n + Math.pow(i - r, 2);
+ }, 0, e) / t;
+ };
+ dh.stdev = function(e, t, r) {
+ return Math.sqrt(dh.variance(e, t, r));
+ };
+ dh.median = function(e) {
+ var t = e.slice().sort();
+ return dh.interp(t, 0.5);
+ };
+ dh.interp = function(e, t) {
+ if (!YS(t)) throw "n should be a finite number";
+ if (t = t * e.length - 0.5, t < 0) return e[0];
+ if (t > e.length - 1) return e[e.length - 1];
+ var r = t % 1;
+ return r * e[Math.ceil(t)] + (1 - r) * e[Math.floor(t)];
+ };
+ });
+ var Mie = ye((Vir, Sie) => {
+ var wie = d3(), YO = wie.mod, Yit = wie.modHalf, KS = Math.PI, r_ = 2 * KS;
+ function Kit(e) {
+ return e / 180 * KS;
+ }
+ function Jit(e) {
+ return e / KS * 180;
+ }
+ function KO(e) {
+ return Math.abs(e[1] - e[0]) > r_ - 1e-14;
+ }
+ function Tie(e, t) {
+ return Yit(t - e, r_);
+ }
+ function $it(e, t) {
+ return Math.abs(Tie(e, t));
+ }
+ function Aie(e, t) {
+ if (KO(t)) return true;
+ var r, n;
+ t[0] < t[1] ? (r = t[0], n = t[1]) : (r = t[1], n = t[0]), r = YO(r, r_), n = YO(n, r_), r > n && (n += r_);
+ var i = YO(e, r_), a = i + r_;
+ return i >= r && i <= n || a >= r && a <= n;
+ }
+ function Qit(e, t, r, n) {
+ if (!Aie(t, n)) return false;
+ var i, a;
+ return r[0] < r[1] ? (i = r[0], a = r[1]) : (i = r[1], a = r[0]), e >= i && e <= a;
+ }
+ function JO(e, t, r, n, i, a, o) {
+ i = i || 0, a = a || 0;
+ var s = KO([r, n]), l, u, c, f, h;
+ s ? (l = 0, u = KS, c = r_) : r < n ? (l = r, c = n) : (l = n, c = r), e < t ? (f = e, h = t) : (f = t, h = e);
+ function d(p, k) {
+ return [p * Math.cos(k) + i, a - p * Math.sin(k)];
+ }
+ var v = Math.abs(c - l) <= KS ? 0 : 1;
+ function _(p, k, E) {
+ return "A" + [p, p] + " " + [0, v, E] + " " + d(p, k);
+ }
+ var b;
+ return s ? f === null ? b = "M" + d(h, l) + _(h, u, 0) + _(h, c, 0) + "Z" : b = "M" + d(f, l) + _(f, u, 0) + _(f, c, 0) + "ZM" + d(h, l) + _(h, u, 1) + _(h, c, 1) + "Z" : f === null ? (b = "M" + d(h, l) + _(h, c, 0), o && (b += "L0,0Z")) : b = "M" + d(f, l) + "L" + d(h, l) + _(h, c, 0) + "L" + d(f, c) + _(f, l, 1) + "Z", b;
+ }
+ function ent(e, t, r, n, i) {
+ return JO(null, e, t, r, n, i, 0);
+ }
+ function tnt(e, t, r, n, i) {
+ return JO(null, e, t, r, n, i, 1);
+ }
+ function rnt(e, t, r, n, i, a) {
+ return JO(e, t, r, n, i, a, 1);
+ }
+ Sie.exports = { deg2rad: Kit, rad2deg: Jit, angleDelta: Tie, angleDist: $it, isFullCircle: KO, isAngleInsideSector: Aie, isPtInsideSector: Qit, pathArc: ent, pathSector: tnt, pathAnnulus: rnt };
+ });
+ var Eie = ye((bb) => {
+ bb.isLeftAnchor = function(t) {
+ return t.xanchor === "left" || t.xanchor === "auto" && t.x <= 1 / 3;
+ };
+ bb.isCenterAnchor = function(t) {
+ return t.xanchor === "center" || t.xanchor === "auto" && t.x > 1 / 3 && t.x < 2 / 3;
+ };
+ bb.isRightAnchor = function(t) {
+ return t.xanchor === "right" || t.xanchor === "auto" && t.x >= 2 / 3;
+ };
+ bb.isTopAnchor = function(t) {
+ return t.yanchor === "top" || t.yanchor === "auto" && t.y >= 2 / 3;
+ };
+ bb.isMiddleAnchor = function(t) {
+ return t.yanchor === "middle" || t.yanchor === "auto" && t.y > 1 / 3 && t.y < 2 / 3;
+ };
+ bb.isBottomAnchor = function(t) {
+ return t.yanchor === "bottom" || t.yanchor === "auto" && t.y <= 1 / 3;
+ };
+ });
+ var Lie = ye((wb) => {
+ var $O = d3().mod;
+ wb.segmentsIntersect = Cie;
+ function Cie(e, t, r, n, i, a, o, s) {
+ var l = r - e, u = i - e, c = o - i, f = n - t, h = a - t, d = s - a, v = l * d - c * f;
+ if (v === 0) return null;
+ var _ = (u * d - c * h) / v, b = (u * f - l * h) / v;
+ return b < 0 || b > 1 || _ < 0 || _ > 1 ? null : { x: e + l * _, y: t + f * _ };
+ }
+ wb.segmentDistance = function(t, r, n, i, a, o, s, l) {
+ if (Cie(t, r, n, i, a, o, s, l)) return 0;
+ var u = n - t, c = i - r, f = s - a, h = l - o, d = u * u + c * c, v = f * f + h * h, _ = Math.min(V6(u, c, d, a - t, o - r), V6(u, c, d, s - t, l - r), V6(f, h, v, t - a, r - o), V6(f, h, v, n - a, i - o));
+ return Math.sqrt(_);
+ };
+ function V6(e, t, r, n, i) {
+ var a = n * e + i * t;
+ if (a < 0) return n * n + i * i;
+ if (a > r) {
+ var o = n - e, s = i - t;
+ return o * o + s * s;
+ } else {
+ var l = n * t - i * e;
+ return l * l / r;
+ }
+ }
+ var G6, QO, kie;
+ wb.getTextLocation = function(t, r, n, i) {
+ if ((t !== QO || i !== kie) && (G6 = {}, QO = t, kie = i), G6[n]) return G6[n];
+ var a = t.getPointAtLength($O(n - i / 2, r)), o = t.getPointAtLength($O(n + i / 2, r)), s = Math.atan((o.y - a.y) / (o.x - a.x)), l = t.getPointAtLength($O(n, r)), u = (l.x * 4 + a.x + o.x) / 6, c = (l.y * 4 + a.y + o.y) / 6, f = { x: u, y: c, theta: s };
+ return G6[n] = f, f;
+ };
+ wb.clearLocationCache = function() {
+ QO = null;
+ };
+ wb.getVisibleSegment = function(t, r, n) {
+ var i = r.left, a = r.right, o = r.top, s = r.bottom, l = 0, u = t.getTotalLength(), c = u, f, h;
+ function d(_) {
+ var b = t.getPointAtLength(_);
+ _ === 0 ? f = b : _ === u && (h = b);
+ var p = b.x < i ? i - b.x : b.x > a ? b.x - a : 0, k = b.y < o ? o - b.y : b.y > s ? b.y - s : 0;
+ return Math.sqrt(p * p + k * k);
+ }
+ for (var v = d(l); v; ) {
+ if (l += v + n, l > c) return;
+ v = d(l);
+ }
+ for (v = d(c); v; ) {
+ if (c -= v + n, l > c) return;
+ v = d(c);
+ }
+ return { min: l, max: c, len: c - l, total: u, isClosed: l === 0 && c === u && Math.abs(f.x - h.x) < 0.1 && Math.abs(f.y - h.y) < 0.1 };
+ };
+ wb.findPointOnPath = function(t, r, n, i) {
+ i = i || {};
+ for (var a = i.pathLength || t.getTotalLength(), o = i.tolerance || 1e-3, s = i.iterationLimit || 30, l = t.getPointAtLength(0)[n] > t.getPointAtLength(a)[n] ? -1 : 1, u = 0, c = 0, f = a, h, d, v; u < s; ) {
+ if (h = (c + f) / 2, d = t.getPointAtLength(h), v = d[n] - r, Math.abs(v) < o) return d;
+ l * v > 0 ? f = h : c = h, u++;
+ }
+ return d;
+ };
+ });
+ var H6 = ye((JS) => {
+ var Ey = {};
+ JS.throttle = function(t, r, n) {
+ var i = Ey[t], a = Date.now();
+ if (!i) {
+ for (var o in Ey) Ey[o].ts < a - 6e4 && delete Ey[o];
+ i = Ey[t] = { ts: 0, timer: null };
+ }
+ Pie(i);
+ function s() {
+ n(), i.ts = Date.now(), i.onDone && (i.onDone(), i.onDone = null);
+ }
+ if (a > i.ts + r) {
+ s();
+ return;
+ }
+ i.timer = setTimeout(function() {
+ s(), i.timer = null;
+ }, r);
+ };
+ JS.done = function(e) {
+ var t = Ey[e];
+ return !t || !t.timer ? Promise.resolve() : new Promise(function(r) {
+ var n = t.onDone;
+ t.onDone = function() {
+ n && n(), r(), t.onDone = null;
+ };
+ });
+ };
+ JS.clear = function(e) {
+ if (e) Pie(Ey[e]), delete Ey[e];
+ else for (var t in Ey) JS.clear(t);
+ };
+ function Pie(e) {
+ e && e.timer !== null && (clearTimeout(e.timer), e.timer = null);
+ }
+ });
+ var Rie = ye((Wir, Iie) => {
+ Iie.exports = function(t) {
+ t._responsiveChartHandler && (window.removeEventListener("resize", t._responsiveChartHandler), delete t._responsiveChartHandler);
+ };
+ });
+ var Die = ye((Xir, j6) => {
+ j6.exports = eq;
+ j6.exports.isMobile = eq;
+ j6.exports.default = eq;
+ var int = /(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, nnt = /CrOS/, ant = /android|ipad|playbook|silk/i;
+ function eq(e) {
+ e || (e = {});
+ let t = e.ua;
+ if (!t && typeof navigator != "undefined" && (t = navigator.userAgent), t && t.headers && typeof t.headers["user-agent"] == "string" && (t = t.headers["user-agent"]), typeof t != "string") return false;
+ let r = int.test(t) && !nnt.test(t) || !!e.tablet && ant.test(t);
+ return !r && e.tablet && e.featureDetect && navigator && navigator.maxTouchPoints > 1 && t.indexOf("Macintosh") !== -1 && t.indexOf("Safari") !== -1 && (r = true), r;
+ }
+ });
+ var zie = ye((Zir, Fie) => {
+ var ont = Eo(), snt = Die();
+ Fie.exports = function(t) {
+ var r;
+ if (t && t.hasOwnProperty("userAgent") ? r = t.userAgent : r = lnt(), typeof r != "string") return true;
+ var n = snt({ ua: { headers: { "user-agent": r } }, tablet: true, featureDetect: false });
+ if (!n) for (var i = r.split(" "), a = 1; a < i.length; a++) {
+ var o = i[a];
+ if (o.indexOf("Safari") !== -1) for (var s = a - 1; s > -1; s--) {
+ var l = i[s];
+ if (l.slice(0, 8) === "Version/") {
+ var u = l.slice(8).split(".")[0];
+ if (ont(u) && (u = +u), u >= 13) return true;
+ }
+ }
+ }
+ return n;
+ };
+ function lnt() {
+ 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 qie = ye((Yir, Oie) => {
+ var unt = Oa();
+ Oie.exports = function(t, r, n) {
+ var i = t.selectAll("g." + n.replace(/\s/g, ".")).data(r, function(o) {
+ return o[0].trace.uid;
+ });
+ i.exit().remove(), i.enter().append("g").attr("class", n), i.order();
+ var a = t.classed("rangeplot") ? "nodeRangePlot3" : "node3";
+ return i.each(function(o) {
+ o[0][a] = unt.select(this);
+ }), i;
+ };
+ });
+ var Nie = ye((Kir, Bie) => {
+ var cnt = qa();
+ Bie.exports = function(t, r) {
+ for (var n = t._context.locale, i = 0; i < 2; i++) {
+ for (var a = t._context.locales, o = 0; o < 2; o++) {
+ var s = (a[n] || {}).dictionary;
+ if (s) {
+ var l = s[r];
+ if (l) return l;
+ }
+ a = cnt.localeRegistry;
+ }
+ var u = n.split("-")[0];
+ if (u === n) break;
+ n = u;
+ }
+ return r;
+ };
+ });
+ var tq = ye((Jir, Uie) => {
+ Uie.exports = function(t) {
+ for (var r = {}, n = [], i = 0, a = 0; a < t.length; a++) {
+ var o = t[a];
+ r[o] !== 1 && (r[o] = 1, n[i++] = o);
+ }
+ return n;
+ };
+ });
+ var Gie = ye(($ir, Vie) => {
+ Vie.exports = function(t) {
+ for (var r = dnt(t) ? hnt : fnt, n = [], i = 0; i < t.length; i++) {
+ var a = t[i];
+ r(a) && n.push(a);
+ }
+ return n;
+ };
+ function fnt(e) {
+ return e.visible === true;
+ }
+ function hnt(e) {
+ var t = e[0].trace;
+ return t.visible === true && t._length !== 0;
+ }
+ function dnt(e) {
+ return Array.isArray(e) && Array.isArray(e[0]) && e[0][0] && e[0][0].trace;
+ }
+ });
+ var jie = ye((Qir, Hie) => {
+ Hie.exports = function(t, r) {
+ if (!r) return t;
+ var n = 1 / Math.abs(r), i = n > 1 ? (n * t + n * r) / n : t + r, a = String(i).length;
+ if (a > 16) {
+ var o = String(r).length, s = String(t).length;
+ if (a >= s + o) {
+ var l = parseFloat(i).toPrecision(12);
+ l.indexOf("e+") === -1 && (i = +l);
+ }
+ }
+ return i;
+ };
+ });
+ var Xie = ye((enr, Wie) => {
+ var vnt = Eo(), pnt = fs().BADNUM, gnt = /^['"%,$#\s']+|[, ]|['"%,$#\s']+$/g;
+ Wie.exports = function(t) {
+ return typeof t == "string" && (t = t.replace(gnt, "")), vnt(t) ? Number(t) : pnt;
+ };
+ });
+ var Dr = ye((tnr, one) => {
+ var $S = Oa(), mnt = f3().utcFormat, ynt = MO().format, Qie = Eo(), ene = fs(), tne = ene.FP_SAFE, _nt = -tne, Zie = ene.BADNUM, Mi = one.exports = {};
+ Mi.adjustFormat = function(t) {
+ return !t || /^\d[.]\df/.test(t) || /[.]\d%/.test(t) ? t : t === "0.f" ? "~f" : /^\d%/.test(t) ? "~%" : /^\ds/.test(t) ? "~s" : !/^[~,.0$]/.test(t) && /[&fps]/.test(t) ? "~" + t : t;
+ };
+ var Yie = {};
+ Mi.warnBadFormat = function(e) {
+ var t = String(e);
+ Yie[t] || (Yie[t] = 1, Mi.warn('encountered bad format: "' + t + '"'));
+ };
+ Mi.noFormat = function(e) {
+ return String(e);
+ };
+ Mi.numberFormat = function(e) {
+ var t;
+ try {
+ t = ynt(Mi.adjustFormat(e));
+ } catch (r) {
+ return Mi.warnBadFormat(e), Mi.noFormat;
+ }
+ return t;
+ };
+ Mi.nestedProperty = FS();
+ Mi.keyedContainer = Uee();
+ Mi.relativeAttr = Gee();
+ Mi.isPlainObject = Ty();
+ Mi.toLogRange = S6();
+ Mi.relinkPrivateKeys = Xee();
+ var i_ = vv();
+ Mi.isArrayBuffer = i_.isArrayBuffer;
+ Mi.isTypedArray = i_.isTypedArray;
+ Mi.isArrayOrTypedArray = i_.isArrayOrTypedArray;
+ Mi.isArray1D = i_.isArray1D;
+ Mi.ensureArray = i_.ensureArray;
+ Mi.concat = i_.concat;
+ Mi.maxRowLength = i_.maxRowLength;
+ Mi.minRowLength = i_.minRowLength;
+ var rne = d3();
+ Mi.mod = rne.mod;
+ Mi.modHalf = rne.modHalf;
+ var n_ = hte();
+ Mi.valObjectMeta = n_.valObjectMeta;
+ Mi.coerce = n_.coerce;
+ Mi.coerce2 = n_.coerce2;
+ Mi.coerceFont = n_.coerceFont;
+ Mi.coercePattern = n_.coercePattern;
+ Mi.coerceHoverinfo = n_.coerceHoverinfo;
+ Mi.coerceSelectionMarkerOpacity = n_.coerceSelectionMarkerOpacity;
+ Mi.validate = n_.validate;
+ var jp = yie();
+ Mi.dateTime2ms = jp.dateTime2ms;
+ Mi.isDateTime = jp.isDateTime;
+ Mi.ms2DateTime = jp.ms2DateTime;
+ Mi.ms2DateTimeLocal = jp.ms2DateTimeLocal;
+ Mi.cleanDate = jp.cleanDate;
+ Mi.isJSDate = jp.isJSDate;
+ Mi.formatDate = jp.formatDate;
+ Mi.incrementMonth = jp.incrementMonth;
+ Mi.dateTick0 = jp.dateTick0;
+ Mi.dfltRange = jp.dfltRange;
+ Mi.findExactDates = jp.findExactDates;
+ Mi.MIN_MS = jp.MIN_MS;
+ Mi.MAX_MS = jp.MAX_MS;
+ var Tb = U6();
+ Mi.findBin = Tb.findBin;
+ Mi.sorterAsc = Tb.sorterAsc;
+ Mi.sorterDes = Tb.sorterDes;
+ Mi.distinctVals = Tb.distinctVals;
+ Mi.roundUp = Tb.roundUp;
+ Mi.sort = Tb.sort;
+ Mi.findIndexOfMin = Tb.findIndexOfMin;
+ Mi.sortObjectKeys = t_();
+ var ky = bie();
+ Mi.aggNums = ky.aggNums;
+ Mi.len = ky.len;
+ Mi.mean = ky.mean;
+ Mi.geometricMean = ky.geometricMean;
+ Mi.median = ky.median;
+ Mi.midRange = ky.midRange;
+ Mi.variance = ky.variance;
+ Mi.stdev = ky.stdev;
+ Mi.interp = ky.interp;
+ var wg = P6();
+ Mi.init2dArray = wg.init2dArray;
+ Mi.transposeRagged = wg.transposeRagged;
+ Mi.dot = wg.dot;
+ Mi.translationMatrix = wg.translationMatrix;
+ Mi.rotationMatrix = wg.rotationMatrix;
+ Mi.rotationXYMatrix = wg.rotationXYMatrix;
+ Mi.apply3DTransform = wg.apply3DTransform;
+ Mi.apply2DTransform = wg.apply2DTransform;
+ Mi.apply2DTransform2 = wg.apply2DTransform2;
+ Mi.convertCssMatrix = wg.convertCssMatrix;
+ Mi.inverseTransformMatrix = wg.inverseTransformMatrix;
+ var gm = Mie();
+ Mi.deg2rad = gm.deg2rad;
+ Mi.rad2deg = gm.rad2deg;
+ Mi.angleDelta = gm.angleDelta;
+ Mi.angleDist = gm.angleDist;
+ Mi.isFullCircle = gm.isFullCircle;
+ Mi.isAngleInsideSector = gm.isAngleInsideSector;
+ Mi.isPtInsideSector = gm.isPtInsideSector;
+ Mi.pathArc = gm.pathArc;
+ Mi.pathSector = gm.pathSector;
+ Mi.pathAnnulus = gm.pathAnnulus;
+ var S3 = Eie();
+ Mi.isLeftAnchor = S3.isLeftAnchor;
+ Mi.isCenterAnchor = S3.isCenterAnchor;
+ Mi.isRightAnchor = S3.isRightAnchor;
+ Mi.isTopAnchor = S3.isTopAnchor;
+ Mi.isMiddleAnchor = S3.isMiddleAnchor;
+ Mi.isBottomAnchor = S3.isBottomAnchor;
+ var M3 = Lie();
+ Mi.segmentsIntersect = M3.segmentsIntersect;
+ Mi.segmentDistance = M3.segmentDistance;
+ Mi.getTextLocation = M3.getTextLocation;
+ Mi.clearLocationCache = M3.clearLocationCache;
+ Mi.getVisibleSegment = M3.getVisibleSegment;
+ Mi.findPointOnPath = M3.findPointOnPath;
+ var Z6 = Ao();
+ Mi.extendFlat = Z6.extendFlat;
+ Mi.extendDeep = Z6.extendDeep;
+ Mi.extendDeepAll = Z6.extendDeepAll;
+ Mi.extendDeepNoArrays = Z6.extendDeepNoArrays;
+ var rq = K1();
+ Mi.log = rq.log;
+ Mi.warn = rq.warn;
+ Mi.error = rq.error;
+ var xnt = p3();
+ Mi.counterRegex = xnt.counter;
+ var iq = H6();
+ Mi.throttle = iq.throttle;
+ Mi.throttleDone = iq.done;
+ Mi.clearThrottle = iq.clear;
+ var Tg = HS();
+ Mi.getGraphDiv = Tg.getGraphDiv;
+ Mi.isPlotDiv = Tg.isPlotDiv;
+ Mi.removeElement = Tg.removeElement;
+ Mi.addStyleRule = Tg.addStyleRule;
+ Mi.addRelatedStyleRule = Tg.addRelatedStyleRule;
+ Mi.deleteRelatedStyleRule = Tg.deleteRelatedStyleRule;
+ Mi.setStyleOnHover = Tg.setStyleOnHover;
+ Mi.getFullTransformMatrix = Tg.getFullTransformMatrix;
+ Mi.getElementTransformMatrix = Tg.getElementTransformMatrix;
+ Mi.getElementAndAncestors = Tg.getElementAndAncestors;
+ Mi.equalDomRects = Tg.equalDomRects;
+ Mi.clearResponsive = Rie();
+ Mi.preserveDrawingBuffer = zie();
+ Mi.makeTraceGroups = qie();
+ Mi._ = Nie();
+ Mi.notifier = OO();
+ Mi.filterUnique = tq();
+ Mi.filterVisible = Gie();
+ Mi.pushUnique = NO();
+ Mi.increment = jie();
+ Mi.cleanNumber = Xie();
+ Mi.ensureNumber = function(t) {
+ return Qie(t) ? (t = Number(t), t > tne || t < _nt ? Zie : t) : Zie;
+ };
+ Mi.isIndex = function(e, t) {
+ return t !== void 0 && e >= t ? false : Qie(e) && e >= 0 && e % 1 === 0;
+ };
+ Mi.noop = L6();
+ Mi.identity = ZS();
+ Mi.repeat = function(e, t) {
+ for (var r = new Array(t), n = 0; n < t; n++) r[n] = e;
+ return r;
+ };
+ Mi.swapAttrs = function(e, t, r, n) {
+ r || (r = "x"), n || (n = "y");
+ for (var i = 0; i < t.length; i++) {
+ var a = t[i], o = Mi.nestedProperty(e, a.replace("?", r)), s = Mi.nestedProperty(e, a.replace("?", n)), l = o.get();
+ o.set(s.get()), s.set(l);
+ }
+ };
+ Mi.raiseToTop = function(t) {
+ t.parentNode.appendChild(t);
+ };
+ Mi.cancelTransition = function(e) {
+ return e.transition().duration(0);
+ };
+ Mi.constrain = function(e, t, r) {
+ return t > r ? Math.max(r, Math.min(t, e)) : Math.max(t, Math.min(r, e));
+ };
+ Mi.bBoxIntersect = function(e, t, r) {
+ return r = r || 0, e.left <= t.right + r && t.left <= e.right + r && e.top <= t.bottom + r && t.top <= e.bottom + r;
+ };
+ Mi.simpleMap = function(e, t, r, n, i) {
+ for (var a = e.length, o = new Array(a), s = 0; s < a; s++) o[s] = t(e[s], r, n, i);
+ return o;
+ };
+ Mi.randstr = function e(t, r, n, i) {
+ if (n || (n = 16), r === void 0 && (r = 24), r <= 0) return "0";
+ var a = Math.log(Math.pow(2, r)) / Math.log(n), o = "", s, l, u;
+ for (s = 2; a === 1 / 0; s *= 2) a = Math.log(Math.pow(2, r / s)) / Math.log(n) * s;
+ var c = a - Math.floor(a);
+ for (s = 0; s < Math.floor(a); s++) u = Math.floor(Math.random() * n).toString(n), o = u + o;
+ c && (l = Math.pow(n, c), u = Math.floor(Math.random() * l).toString(n), o = u + o);
+ var f = parseInt(o, n);
+ return t && t[o] || f !== 1 / 0 && f >= Math.pow(2, r) ? i > 10 ? (Mi.warn("randstr failed uniqueness"), o) : e(t, r, n, (i || 0) + 1) : o;
+ };
+ Mi.OptionControl = function(e, t) {
+ e || (e = {}), t || (t = "opt");
+ var r = {};
+ return r.optionList = [], r._newoption = function(n) {
+ n[t] = e, r[n.name] = n, r.optionList.push(n);
+ }, r["_" + t] = e, r;
+ };
+ Mi.smooth = function(e, t) {
+ if (t = Math.round(t) || 0, t < 2) return e;
+ var r = e.length, n = 2 * r, i = 2 * t - 1, a = new Array(i), o = new Array(r), s, l, u, c;
+ for (s = 0; s < i; s++) a[s] = (1 - Math.cos(Math.PI * (s + 1) / t)) / (2 * t);
+ for (s = 0; s < r; s++) {
+ for (c = 0, l = 0; l < i; l++) u = s + l + 1 - t, u < -r ? u -= n * Math.round(u / n) : u >= n && (u -= n * Math.floor(u / n)), u < 0 ? u = -1 - u : u >= r && (u = n - 1 - u), c += e[u] * a[l];
+ o[s] = c;
+ }
+ return o;
+ };
+ Mi.syncOrAsync = function(e, t, r) {
+ var n, i;
+ function a() {
+ return Mi.syncOrAsync(e, t, r);
+ }
+ for (; e.length; ) if (i = e.splice(0, 1)[0], n = i(t), n && n.then) return n.then(a);
+ return r && r(t);
+ };
+ Mi.stripTrailingSlash = function(e) {
+ return e.slice(-1) === "/" ? e.slice(0, -1) : e;
+ };
+ Mi.noneOrAll = function(e, t, r) {
+ if (e) {
+ var n = false, i = true, a, o;
+ for (a = 0; a < r.length; a++) o = e[r[a]], o != null ? n = true : i = false;
+ if (n && !i) for (a = 0; a < r.length; a++) e[r[a]] = t[r[a]];
+ }
+ };
+ Mi.mergeArray = function(e, t, r, n) {
+ var i = typeof n == "function";
+ if (Mi.isArrayOrTypedArray(e)) for (var a = Math.min(e.length, t.length), o = 0; o < a; o++) {
+ var s = e[o];
+ t[o][r] = i ? n(s) : s;
+ }
+ };
+ Mi.mergeArrayCastPositive = function(e, t, r) {
+ return Mi.mergeArray(e, t, r, function(n) {
+ var i = +n;
+ return isFinite(i) && i > 0 ? i : 0;
+ });
+ };
+ Mi.fillArray = function(e, t, r, n) {
+ if (n = n || Mi.identity, Mi.isArrayOrTypedArray(e)) for (var i = 0; i < t.length; i++) t[i][r] = n(e[i]);
+ };
+ Mi.castOption = function(e, t, r, n) {
+ n = n || Mi.identity;
+ var i = Mi.nestedProperty(e, r).get();
+ return Mi.isArrayOrTypedArray(i) ? Array.isArray(t) && Mi.isArrayOrTypedArray(i[t[0]]) ? n(i[t[0]][t[1]]) : n(i[t]) : i;
+ };
+ Mi.extractOption = function(e, t, r, n) {
+ if (r in e) return e[r];
+ var i = Mi.nestedProperty(t, n).get();
+ if (!Array.isArray(i)) return i;
+ };
+ function ine(e) {
+ var t = {};
+ for (var r in e) for (var n = e[r], i = 0; i < n.length; i++) t[n[i]] = +r;
+ return t;
+ }
+ Mi.tagSelected = function(e, t, r) {
+ var n = t.selectedpoints, i = t._indexToPoints, a;
+ i && (a = ine(i));
+ function o(f) {
+ return f !== void 0 && f < e.length;
+ }
+ for (var s = 0; s < n.length; s++) {
+ var l = n[s];
+ if (Mi.isIndex(l) || Mi.isArrayOrTypedArray(l) && Mi.isIndex(l[0]) && Mi.isIndex(l[1])) {
+ var u = a ? a[l] : l, c = r ? r[u] : u;
+ o(c) && (e[c].selected = 1);
+ }
+ }
+ };
+ Mi.selIndices2selPoints = function(e) {
+ var t = e.selectedpoints, r = e._indexToPoints;
+ if (r) {
+ for (var n = ine(r), i = [], a = 0; a < t.length; a++) {
+ var o = t[a];
+ if (Mi.isIndex(o)) {
+ var s = n[o];
+ Mi.isIndex(s) && i.push(s);
+ }
+ }
+ return i;
+ } else return t;
+ };
+ Mi.getTargetArray = function(e, t) {
+ var r = t.target;
+ if (typeof r == "string" && r) {
+ var n = Mi.nestedProperty(e, r).get();
+ return Mi.isArrayOrTypedArray(n) ? n : false;
+ } else if (Mi.isArrayOrTypedArray(r)) return r;
+ return false;
+ };
+ function nne(e, t, r) {
+ var n = {};
+ typeof t != "object" && (t = {});
+ var i = r === "pieLike" ? -1 : 3, a = Object.keys(e), o, s, l;
+ for (o = 0; o < a.length; o++) s = a[o], l = e[s], !(s.charAt(0) === "_" || typeof l == "function") && (s === "module" ? n[s] = l : Array.isArray(l) ? s === "colorscale" || i === -1 ? n[s] = l.slice() : n[s] = l.slice(0, i) : Mi.isTypedArray(l) ? i === -1 ? n[s] = l.subarray() : n[s] = l.subarray(0, i) : l && typeof l == "object" ? n[s] = nne(e[s], t[s], r) : n[s] = l);
+ for (a = Object.keys(t), o = 0; o < a.length; o++) s = a[o], l = t[s], (typeof l != "object" || !(s in n) || typeof n[s] != "object") && (n[s] = l);
+ return n;
+ }
+ Mi.minExtend = nne;
+ Mi.titleCase = function(e) {
+ return e.charAt(0).toUpperCase() + e.slice(1);
+ };
+ Mi.containsAny = function(e, t) {
+ for (var r = 0; r < t.length; r++) if (e.indexOf(t[r]) !== -1) return true;
+ return false;
+ };
+ var bnt = /Version\/[\d\.]+.*Safari/;
+ Mi.isSafari = function() {
+ return bnt.test(window.navigator.userAgent);
+ };
+ var wnt = /iPad|iPhone|iPod/;
+ Mi.isIOS = function() {
+ return wnt.test(window.navigator.userAgent);
+ };
+ var Tnt = /Macintosh.+AppleWebKit.+Gecko\)$/;
+ Mi.isMacWKWebView = () => Tnt.test(window.navigator.userAgent);
+ var Ant = /Firefox\/(\d+)\.\d+/;
+ Mi.getFirefoxVersion = function() {
+ var e = Ant.exec(window.navigator.userAgent);
+ if (e && e.length === 2) {
+ var t = parseInt(e[1]);
+ if (!isNaN(t)) return t;
+ }
+ return null;
+ };
+ Mi.isD3Selection = function(e) {
+ return e instanceof $S.selection;
+ };
+ Mi.ensureSingle = function(e, t, r, n) {
+ var i = e.select(t + (r ? "." + r : ""));
+ if (i.size()) return i;
+ var a = e.append(t);
+ return r && a.classed(r, true), n && a.call(n), a;
+ };
+ Mi.ensureSingleById = function(e, t, r, n) {
+ var i = e.select(t + "#" + r);
+ if (i.size()) return i;
+ var a = e.append(t).attr("id", r);
+ return n && a.call(n), a;
+ };
+ Mi.objectFromPath = function(e, t) {
+ for (var r = e.split("."), n, i = n = {}, a = 0; a < r.length; a++) {
+ var o = r[a], s = null, l = r[a].match(/(.*)\[([0-9]+)\]/);
+ l ? (o = l[1], s = l[2], n = n[o] = [], a === r.length - 1 ? n[s] = t : n[s] = {}, n = n[s]) : (a === r.length - 1 ? n[o] = t : n[o] = {}, n = n[o]);
+ }
+ return i;
+ };
+ var Snt = /^([^\[\.]+)\.(.+)?/, Mnt = /^([^\.]+)\[([0-9]+)\](\.)?(.+)?/;
+ function W6(e) {
+ return e.slice(0, 2) === "__";
+ }
+ Mi.expandObjectPaths = function(e) {
+ var t, r, n, i, a, o, s;
+ if (typeof e == "object" && !Array.isArray(e)) {
+ for (r in e) if (e.hasOwnProperty(r)) if (t = r.match(Snt)) {
+ if (i = e[r], n = t[1], W6(n)) continue;
+ delete e[r], e[n] = Mi.extendDeepNoArrays(e[n] || {}, Mi.objectFromPath(r, Mi.expandObjectPaths(i))[n]);
+ } else if (t = r.match(Mnt)) {
+ if (i = e[r], n = t[1], W6(n)) continue;
+ if (a = parseInt(t[2]), delete e[r], e[n] = e[n] || [], t[3] === ".") s = t[4], o = e[n][a] = e[n][a] || {}, Mi.extendDeepNoArrays(o, Mi.objectFromPath(s, Mi.expandObjectPaths(i)));
+ else {
+ if (W6(n)) continue;
+ e[n][a] = Mi.expandObjectPaths(i);
+ }
+ } else {
+ if (W6(r)) continue;
+ e[r] = Mi.expandObjectPaths(e[r]);
+ }
+ }
+ return e;
+ };
+ Mi.numSeparate = function(e, t, r) {
+ if (r || (r = false), typeof t != "string" || t.length === 0) throw new Error("Separator string required for formatting!");
+ typeof e == "number" && (e = String(e));
+ var n = /(\d+)(\d{3})/, i = t.charAt(0), a = t.charAt(1), o = e.split("."), s = o[0], l = o.length > 1 ? i + o[1] : "";
+ if (a && (o.length > 1 || s.length > 4 || r)) for (; n.test(s); ) s = s.replace(n, "$1" + a + "$2");
+ return s + l;
+ };
+ Mi.TEMPLATE_STRING_REGEX = /%{([^\s%{}:]*)([:|\|][^}]*)?}/g;
+ var ane = /^\w*$/;
+ Mi.templateString = function(e, t) {
+ var r = {};
+ return e.replace(Mi.TEMPLATE_STRING_REGEX, function(n, i) {
+ var a;
+ return ane.test(i) ? a = t[i] : (r[i] = r[i] || Mi.nestedProperty(t, i).get, a = r[i](true)), a !== void 0 ? a : "";
+ });
+ };
+ var Ent = { max: 10, count: 0, name: "hovertemplate" };
+ Mi.hovertemplateString = (e) => nq(j1(_g({}, e), { opts: Ent }));
+ var knt = { max: 10, count: 0, name: "texttemplate" };
+ Mi.texttemplateString = (e) => nq(j1(_g({}, e), { opts: knt }));
+ var Cnt = /^(\S+)([\*\/])(-?\d+(\.\d+)?)$/;
+ function Lnt(e) {
+ var t = e.match(Cnt);
+ return t ? { key: t[1], op: t[2], number: Number(t[3]) } : { key: e, op: null, number: null };
+ }
+ var Pnt = { max: 10, count: 0, name: "texttemplate", parseMultDiv: true };
+ Mi.texttemplateStringForShapes = (e) => nq(j1(_g({}, e), { opts: Pnt }));
+ var Kie = /^[:|\|]/;
+ function nq({ data: e = [], locale: t, fallback: r, labels: n = {}, opts: i, template: a }) {
+ return a.replace(Mi.TEMPLATE_STRING_REGEX, (o, s, l) => {
+ let u = ["xother", "yother"].includes(s), c = ["_xother", "_yother"].includes(s), f = ["_xother_", "_yother_"].includes(s), h = ["xother_", "yother_"].includes(s), d = u || c || h || f;
+ (c || f) && (s = s.substring(1)), (h || f) && (s = s.substring(0, s.length - 1));
+ let v = null, _ = null;
+ if (i.parseMultDiv) {
+ var b = Lnt(s);
+ s = b.key, v = b.op, _ = b.number;
+ }
+ let p;
+ if (d) {
+ if (n[s] === void 0) return "";
+ p = n[s];
+ } else for (let L of e) if (L) {
+ if (L.hasOwnProperty(s)) {
+ p = L[s];
+ break;
+ }
+ if (ane.test(s) || (p = Mi.nestedProperty(L, s).get(true)), p !== void 0) break;
+ }
+ if (p === void 0) {
+ let { count: L, max: x, name: C } = i, M = r === false ? o : r;
+ return L < x && Mi.warn([`Variable '${s}' in ${C} could not be found!`, "Please verify that the template is correct.", `Using value: '${M}'.`].join(" ")), L === x && Mi.warn(`Too many '${C}' warnings - additional warnings will be suppressed.`), i.count++, M;
+ }
+ if (v === "*" && (p *= _), v === "/" && (p /= _), l) {
+ var k;
+ if (l[0] === ":" && (k = t ? t.numberFormat : Mi.numberFormat, p !== "" && (p = k(l.replace(Kie, ""))(p))), l[0] === "|") {
+ k = t ? t.timeFormat : mnt;
+ var E = Mi.dateTime2ms(p);
+ p = Mi.formatDate(E, l.replace(Kie, ""), false, k);
+ }
+ } else {
+ var T = s + "Label";
+ n.hasOwnProperty(T) && (p = n[T]);
+ }
+ return d && (p = "(" + p + ")", (c || f) && (p = " " + p), (h || f) && (p = p + " ")), p;
+ });
+ }
+ var X6 = 48, Jie = 57;
+ Mi.subplotSort = function(e, t) {
+ for (var r = Math.min(e.length, t.length) + 1, n = 0, i = 0, a = 0; a < r; a++) {
+ var o = e.charCodeAt(a) || 0, s = t.charCodeAt(a) || 0, l = o >= X6 && o <= Jie, u = s >= X6 && s <= Jie;
+ if (l && (n = 10 * n + o - X6), u && (i = 10 * i + s - X6), !l || !u) {
+ if (n !== i) return n - i;
+ if (o !== s) return o - s;
+ }
+ }
+ return i - n;
+ };
+ var A3 = 2e9;
+ Mi.seedPseudoRandom = function() {
+ A3 = 2e9;
+ };
+ Mi.pseudoRandom = function() {
+ var e = A3;
+ return A3 = (69069 * A3 + 1) % 4294967296, Math.abs(A3 - e) < 429496729 ? Mi.pseudoRandom() : A3 / 4294967296;
+ };
+ Mi.fillText = function(e, t, r) {
+ var n = Array.isArray(r) ? function(o) {
+ r.push(o);
+ } : function(o) {
+ r.text = o;
+ }, i = Mi.extractOption(e, t, "htx", "hovertext");
+ if (Mi.isValidTextValue(i)) return n(i);
+ var a = Mi.extractOption(e, t, "tx", "text");
+ if (Mi.isValidTextValue(a)) return n(a);
+ };
+ Mi.isValidTextValue = function(e) {
+ return e || e === 0;
+ };
+ Mi.formatPercent = function(e, t) {
+ t = t || 0;
+ for (var r = (Math.round(100 * e * Math.pow(10, t)) * Math.pow(0.1, t)).toFixed(t) + "%", n = 0; n < t; n++) r.indexOf(".") !== -1 && (r = r.replace("0%", "%"), r = r.replace(".%", "%"));
+ return r;
+ };
+ Mi.isHidden = function(e) {
+ var t = window.getComputedStyle(e).display;
+ return !t || t === "none";
+ };
+ Mi.strTranslate = function(e, t) {
+ return e || t ? "translate(" + e + "," + t + ")" : "";
+ };
+ Mi.strRotate = function(e) {
+ return e ? "rotate(" + e + ")" : "";
+ };
+ Mi.strScale = function(e) {
+ return e !== 1 ? "scale(" + e + ")" : "";
+ };
+ Mi.getTextTransform = function(e) {
+ var t = e.noCenter, r = e.textX, n = e.textY, i = e.targetX, a = e.targetY, o = e.anchorX || 0, s = e.anchorY || 0, l = e.rotate, u = e.scale;
+ return u ? u > 1 && (u = 1) : u = 0, Mi.strTranslate(i - u * (r + o), a - u * (n + s)) + Mi.strScale(u) + (l ? "rotate(" + l + (t ? "" : " " + r + " " + n) + ")" : "");
+ };
+ Mi.setTransormAndDisplay = function(e, t) {
+ e.attr("transform", Mi.getTextTransform(t)), e.style("display", t.scale ? null : "none");
+ };
+ Mi.ensureUniformFontSize = function(e, t) {
+ var r = Mi.extendFlat({}, t);
+ return r.size = Math.max(t.size, e._fullLayout.uniformtext.minsize || 0), r;
+ };
+ Mi.join2 = function(e, t, r) {
+ var n = e.length;
+ return n > 1 ? e.slice(0, -1).join(t) + r + e[n - 1] : e.join(t);
+ };
+ Mi.bigFont = function(e) {
+ return Math.round(1.2 * e);
+ };
+ var $ie = Mi.getFirefoxVersion(), Int = $ie !== null && $ie < 86;
+ Mi.getPositionFromD3Event = function() {
+ return Int ? [$S.event.layerX, $S.event.layerY] : [$S.event.offsetX, $S.event.offsetY];
+ };
+ });
+ var une = ye(() => {
+ var Rnt = Dr(), sne = { "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 (aq in sne) lne = aq.replace(/^,/, " ,").replace(/X/g, ".js-plotly-plot .plotly").replace(/Y/g, ".plotly-notifier"), Rnt.addStyleRule(lne, sne[aq]);
+ var lne, aq;
+ });
+ var oq = ye((anr, cne) => {
+ cne.exports = true;
+ });
+ var lq = ye((onr, fne) => {
+ var Dnt = oq(), sq;
+ typeof window.matchMedia == "function" ? sq = !window.matchMedia("(hover: none)").matches : sq = Dnt;
+ fne.exports = sq;
+ });
+ var Ab = ye((snr, uq) => {
+ var E3 = typeof Reflect == "object" ? Reflect : null, hne = E3 && typeof E3.apply == "function" ? E3.apply : function(t, r, n) {
+ return Function.prototype.apply.call(t, r, n);
+ }, Y6;
+ E3 && typeof E3.ownKeys == "function" ? Y6 = E3.ownKeys : Object.getOwnPropertySymbols ? Y6 = function(t) {
+ return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t));
+ } : Y6 = function(t) {
+ return Object.getOwnPropertyNames(t);
+ };
+ function Fnt(e) {
+ console && console.warn && console.warn(e);
+ }
+ var vne = Number.isNaN || function(t) {
+ return t !== t;
+ };
+ function Jc() {
+ Jc.init.call(this);
+ }
+ uq.exports = Jc;
+ uq.exports.once = Bnt;
+ Jc.EventEmitter = Jc;
+ Jc.prototype._events = void 0;
+ Jc.prototype._eventsCount = 0;
+ Jc.prototype._maxListeners = void 0;
+ var dne = 10;
+ function K6(e) {
+ if (typeof e != "function") throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e);
+ }
+ Object.defineProperty(Jc, "defaultMaxListeners", { enumerable: true, get: function() {
+ return dne;
+ }, set: function(e) {
+ if (typeof e != "number" || e < 0 || vne(e)) throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + e + ".");
+ dne = e;
+ } });
+ Jc.init = function() {
+ (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) && (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;
+ };
+ Jc.prototype.setMaxListeners = function(t) {
+ if (typeof t != "number" || t < 0 || vne(t)) throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + t + ".");
+ return this._maxListeners = t, this;
+ };
+ function pne(e) {
+ return e._maxListeners === void 0 ? Jc.defaultMaxListeners : e._maxListeners;
+ }
+ Jc.prototype.getMaxListeners = function() {
+ return pne(this);
+ };
+ Jc.prototype.emit = function(t) {
+ for (var r = [], n = 1; n < arguments.length; n++) r.push(arguments[n]);
+ var i = t === "error", a = this._events;
+ if (a !== void 0) i = i && a.error === void 0;
+ else if (!i) return false;
+ if (i) {
+ var o;
+ if (r.length > 0 && (o = r[0]), o instanceof Error) throw o;
+ var s = new Error("Unhandled error." + (o ? " (" + o.message + ")" : ""));
+ throw s.context = o, s;
+ }
+ var l = a[t];
+ if (l === void 0) return false;
+ if (typeof l == "function") hne(l, this, r);
+ else for (var u = l.length, c = xne(l, u), n = 0; n < u; ++n) hne(c[n], this, r);
+ return true;
+ };
+ function gne(e, t, r, n) {
+ var i, a, o;
+ if (K6(r), a = e._events, a === void 0 ? (a = e._events = /* @__PURE__ */ Object.create(null), e._eventsCount = 0) : (a.newListener !== void 0 && (e.emit("newListener", t, r.listener ? r.listener : r), a = e._events), o = a[t]), o === void 0) o = a[t] = r, ++e._eventsCount;
+ else if (typeof o == "function" ? o = a[t] = n ? [r, o] : [o, r] : n ? o.unshift(r) : o.push(r), i = pne(e), i > 0 && o.length > i && !o.warned) {
+ o.warned = true;
+ var s = new Error("Possible EventEmitter memory leak detected. " + o.length + " " + String(t) + " listeners added. Use emitter.setMaxListeners() to increase limit");
+ s.name = "MaxListenersExceededWarning", s.emitter = e, s.type = t, s.count = o.length, Fnt(s);
+ }
+ return e;
+ }
+ Jc.prototype.addListener = function(t, r) {
+ return gne(this, t, r, false);
+ };
+ Jc.prototype.on = Jc.prototype.addListener;
+ Jc.prototype.prependListener = function(t, r) {
+ return gne(this, t, r, true);
+ };
+ function znt() {
+ if (!this.fired) return this.target.removeListener(this.type, this.wrapFn), this.fired = true, arguments.length === 0 ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);
+ }
+ function mne(e, t, r) {
+ var n = { fired: false, wrapFn: void 0, target: e, type: t, listener: r }, i = znt.bind(n);
+ return i.listener = r, n.wrapFn = i, i;
+ }
+ Jc.prototype.once = function(t, r) {
+ return K6(r), this.on(t, mne(this, t, r)), this;
+ };
+ Jc.prototype.prependOnceListener = function(t, r) {
+ return K6(r), this.prependListener(t, mne(this, t, r)), this;
+ };
+ Jc.prototype.removeListener = function(t, r) {
+ var n, i, a, o, s;
+ if (K6(r), i = this._events, i === void 0) return this;
+ if (n = i[t], n === void 0) return this;
+ if (n === r || n.listener === r) --this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : (delete i[t], i.removeListener && this.emit("removeListener", t, n.listener || r));
+ else if (typeof n != "function") {
+ for (a = -1, o = n.length - 1; o >= 0; o--) if (n[o] === r || n[o].listener === r) {
+ s = n[o].listener, a = o;
+ break;
+ }
+ if (a < 0) return this;
+ a === 0 ? n.shift() : Ont(n, a), n.length === 1 && (i[t] = n[0]), i.removeListener !== void 0 && this.emit("removeListener", t, s || r);
+ }
+ return this;
+ };
+ Jc.prototype.off = Jc.prototype.removeListener;
+ Jc.prototype.removeAllListeners = function(t) {
+ var r, n, i;
+ if (n = this._events, n === void 0) return this;
+ if (n.removeListener === void 0) return arguments.length === 0 ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : n[t] !== void 0 && (--this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : delete n[t]), this;
+ if (arguments.length === 0) {
+ var a = Object.keys(n), o;
+ for (i = 0; i < a.length; ++i) o = a[i], o !== "removeListener" && this.removeAllListeners(o);
+ return this.removeAllListeners("removeListener"), this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0, this;
+ }
+ if (r = n[t], typeof r == "function") this.removeListener(t, r);
+ else if (r !== void 0) for (i = r.length - 1; i >= 0; i--) this.removeListener(t, r[i]);
+ return this;
+ };
+ function yne(e, t, r) {
+ var n = e._events;
+ if (n === void 0) return [];
+ var i = n[t];
+ return i === void 0 ? [] : typeof i == "function" ? r ? [i.listener || i] : [i] : r ? qnt(i) : xne(i, i.length);
+ }
+ Jc.prototype.listeners = function(t) {
+ return yne(this, t, true);
+ };
+ Jc.prototype.rawListeners = function(t) {
+ return yne(this, t, false);
+ };
+ Jc.listenerCount = function(e, t) {
+ return typeof e.listenerCount == "function" ? e.listenerCount(t) : _ne.call(e, t);
+ };
+ Jc.prototype.listenerCount = _ne;
+ function _ne(e) {
+ var t = this._events;
+ if (t !== void 0) {
+ var r = t[e];
+ if (typeof r == "function") return 1;
+ if (r !== void 0) return r.length;
+ }
+ return 0;
+ }
+ Jc.prototype.eventNames = function() {
+ return this._eventsCount > 0 ? Y6(this._events) : [];
+ };
+ function xne(e, t) {
+ for (var r = new Array(t), n = 0; n < t; ++n) r[n] = e[n];
+ return r;
+ }
+ function Ont(e, t) {
+ for (; t + 1 < e.length; t++) e[t] = e[t + 1];
+ e.pop();
+ }
+ function qnt(e) {
+ for (var t = new Array(e.length), r = 0; r < t.length; ++r) t[r] = e[r].listener || e[r];
+ return t;
+ }
+ function Bnt(e, t) {
+ return new Promise(function(r, n) {
+ function i(o) {
+ e.removeListener(t, a), n(o);
+ }
+ function a() {
+ typeof e.removeListener == "function" && e.removeListener("error", i), r([].slice.call(arguments));
+ }
+ bne(e, t, a, { once: true }), t !== "error" && Nnt(e, i, { once: true });
+ });
+ }
+ function Nnt(e, t, r) {
+ typeof e.on == "function" && bne(e, "error", t, r);
+ }
+ function bne(e, t, r, n) {
+ if (typeof e.on == "function") n.once ? e.once(t, r) : e.on(t, r);
+ else if (typeof e.addEventListener == "function") e.addEventListener(t, function i(a) {
+ n.once && e.removeEventListener(t, i), r(a);
+ });
+ else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof e);
+ }
+ });
+ var k3 = ye((lnr, wne) => {
+ var cq = Ab().EventEmitter, Unt = { init: function(e) {
+ if (e._ev instanceof cq) return e;
+ var t = new cq(), r = new cq();
+ return e._ev = t, e._internalEv = r, e.on = t.on.bind(t), e.once = t.once.bind(t), e.removeListener = t.removeListener.bind(t), e.removeAllListeners = t.removeAllListeners.bind(t), e._internalOn = r.on.bind(r), e._internalOnce = r.once.bind(r), e._removeInternalListener = r.removeListener.bind(r), e._removeAllInternalListeners = r.removeAllListeners.bind(r), e.emit = function(n, i) {
+ t.emit(n, i), r.emit(n, i);
+ }, typeof e.addEventListener == "function" && e.addEventListener("wheel", () => {
+ }, { passive: true }), e;
+ }, triggerHandler: function(e, t, r) {
+ var n, i = e._ev;
+ if (!i) return;
+ var a = i._events[t];
+ if (!a) return;
+ function o(l) {
+ if (l.listener) {
+ if (i.removeListener(t, l.listener), !l.fired) return l.fired = true, l.listener.apply(i, [r]);
+ } else return l.apply(i, [r]);
+ }
+ a = Array.isArray(a) ? a : [a];
+ var s;
+ for (s = 0; s < a.length - 1; s++) o(a[s]);
+ return n = o(a[s]), n;
+ }, purge: function(e) {
+ return delete e._ev, delete e.on, delete e.once, delete e.removeListener, delete e.removeAllListeners, delete e.emit, delete e._ev, delete e._internalEv, delete e._internalOn, delete e._internalOnce, delete e._removeInternalListener, delete e._removeAllInternalListeners, e;
+ } };
+ wne.exports = Unt;
+ });
+ var Sne = ye((unr, Ane) => {
+ var Tne = Dr(), Vnt = _b().dfltConfig;
+ function Gnt(e, t) {
+ for (var r = [], n, i = 0; i < t.length; i++) n = t[i], n === e ? r[i] = n : typeof n == "object" ? r[i] = Array.isArray(n) ? Tne.extendDeep([], n) : Tne.extendDeepAll({}, n) : r[i] = n;
+ return r;
+ }
+ var Cy = {};
+ Cy.add = function(e, t, r, n, i) {
+ var a, o;
+ if (e.undoQueue = e.undoQueue || { index: 0, queue: [], sequence: false }, o = e.undoQueue.index, e.autoplay) {
+ e.undoQueue.inSequence || (e.autoplay = false);
+ return;
+ }
+ !e.undoQueue.sequence || e.undoQueue.beginSequence ? (a = { undo: { calls: [], args: [] }, redo: { calls: [], args: [] } }, e.undoQueue.queue.splice(o, e.undoQueue.queue.length - o, a), e.undoQueue.index += 1) : a = e.undoQueue.queue[o - 1], e.undoQueue.beginSequence = false, a && (a.undo.calls.unshift(t), a.undo.args.unshift(r), a.redo.calls.push(n), a.redo.args.push(i)), e.undoQueue.queue.length > Vnt.queueLength && (e.undoQueue.queue.shift(), e.undoQueue.index--);
+ };
+ Cy.startSequence = function(e) {
+ e.undoQueue = e.undoQueue || { index: 0, queue: [], sequence: false }, e.undoQueue.sequence = true, e.undoQueue.beginSequence = true;
+ };
+ Cy.stopSequence = function(e) {
+ e.undoQueue = e.undoQueue || { index: 0, queue: [], sequence: false }, e.undoQueue.sequence = false, e.undoQueue.beginSequence = false;
+ };
+ Cy.undo = function(t) {
+ var r, n;
+ if (!(t.undoQueue === void 0 || isNaN(t.undoQueue.index) || t.undoQueue.index <= 0)) {
+ for (t.undoQueue.index--, r = t.undoQueue.queue[t.undoQueue.index], t.undoQueue.inSequence = true, n = 0; n < r.undo.calls.length; n++) Cy.plotDo(t, r.undo.calls[n], r.undo.args[n]);
+ t.undoQueue.inSequence = false, t.autoplay = false;
+ }
+ };
+ Cy.redo = function(t) {
+ var r, n;
+ if (!(t.undoQueue === void 0 || isNaN(t.undoQueue.index) || t.undoQueue.index >= t.undoQueue.queue.length)) {
+ for (r = t.undoQueue.queue[t.undoQueue.index], t.undoQueue.inSequence = true, n = 0; n < r.redo.calls.length; n++) Cy.plotDo(t, r.redo.calls[n], r.redo.args[n]);
+ t.undoQueue.inSequence = false, t.autoplay = false, t.undoQueue.index++;
+ }
+ };
+ Cy.plotDo = function(e, t, r) {
+ e.autoplay = true, r = Gnt(e, r), t.apply(null, r);
+ };
+ Ane.exports = Cy;
+ });
+ var fq = ye((cnr, Mne) => {
+ Mne.exports = { _isLinkedToArray: "frames_entry", group: { valType: "string" }, name: { valType: "string" }, traces: { valType: "any" }, baseframe: { valType: "string" }, data: { valType: "any" }, layout: { valType: "any" } };
+ });
+ var P3 = ye((ed) => {
+ var x0 = qa(), QS = Dr(), $6 = Gl(), hq = _3(), Hnt = fq(), jnt = jS(), Wnt = _b().configAttributes, Ene = mc(), Ag = QS.extendDeepAll, C3 = QS.isPlainObject, Xnt = QS.isArrayOrTypedArray, Q6 = QS.nestedProperty, Znt = QS.valObjectMeta, dq = "_isSubplotObj", eL = "_isLinkedToArray", Ynt = "_arrayAttrRegexps", Cne = "_deprecated", vq = [dq, eL, Ynt, Cne];
+ ed.IS_SUBPLOT_OBJ = dq;
+ ed.IS_LINKED_TO_ARRAY = eL;
+ ed.DEPRECATED = Cne;
+ ed.UNDERSCORE_ATTRS = vq;
+ ed.get = function() {
+ var e = {};
+ return x0.allTypes.forEach(function(t) {
+ e[t] = Jnt(t);
+ }), { defs: { valObjects: Znt, metaKeys: vq.concat(["description", "role", "editType", "impliedEdits"]), editType: { traces: Ene.traces, layout: Ene.layout }, impliedEdits: {} }, traces: e, layout: $nt(), frames: Qnt(), animation: L3(jnt), config: L3(Wnt) };
+ };
+ ed.crawl = function(e, t, r, n) {
+ var i = r || 0;
+ n = n || "", Object.keys(e).forEach(function(a) {
+ var o = e[a];
+ if (vq.indexOf(a) === -1) {
+ var s = (n ? n + "." : "") + a;
+ t(o, a, e, i, s), !ed.isValObject(o) && C3(o) && a !== "impliedEdits" && ed.crawl(o, t, i + 1, s);
+ }
+ });
+ };
+ ed.isValObject = function(e) {
+ return e && e.valType !== void 0;
+ };
+ ed.findArrayAttributes = function(e) {
+ var t = [], r = [], n = [], i, a;
+ function o(l, u, c, f) {
+ r = r.slice(0, f).concat([u]), n = n.slice(0, f).concat([l && l._isLinkedToArray]);
+ var h = l && (l.valType === "data_array" || l.arrayOk === true) && !(r[f - 1] === "colorbar" && (u === "ticktext" || u === "tickvals"));
+ h && s(i, 0, "");
+ }
+ function s(l, u, c) {
+ var f = l[r[u]], h = c + r[u];
+ if (u === r.length - 1) Xnt(f) && t.push(a + h);
+ else if (n[u]) {
+ if (Array.isArray(f)) for (var d = 0; d < f.length; d++) C3(f[d]) && s(f[d], u + 1, h + "[" + d + "].");
+ } else C3(f) && s(f, u + 1, h + ".");
+ }
+ return i = e, a = "", ed.crawl($6, o), e._module && e._module.attributes && ed.crawl(e._module.attributes, o), t;
+ };
+ ed.getTraceValObject = function(e, t) {
+ var r = t[0], n = 1, i, a, o = e._module;
+ if (o || (o = (x0.modules[e.type || $6.type.dflt] || {})._module), !o) return false;
+ if (i = o.attributes, a = i && i[r], !a) {
+ var s = o.basePlotModule;
+ s && s.attributes && (a = s.attributes[r]);
+ }
+ return a || (a = $6[r]), Lne(a, t, n);
+ };
+ ed.getLayoutValObject = function(e, t) {
+ var r = Knt(e, t[0]);
+ return Lne(r, t, 1);
+ };
+ function Knt(e, t) {
+ var r, n, i, a, o = e._basePlotModules;
+ if (o) {
+ var s;
+ for (r = 0; r < o.length; r++) {
+ if (i = o[r], i.attrRegex && i.attrRegex.test(t)) {
+ if (i.layoutAttrOverrides) return i.layoutAttrOverrides;
+ !s && i.layoutAttributes && (s = i.layoutAttributes);
+ }
+ var l = i.baseLayoutAttrOverrides;
+ if (l && t in l) return l[t];
+ }
+ if (s) return s;
+ }
+ var u = e._modules;
+ if (u) {
+ for (r = 0; r < u.length; r++) if (a = u[r].layoutAttributes, a && t in a) return a[t];
+ }
+ for (n in x0.componentsRegistry) {
+ if (i = x0.componentsRegistry[n], i.name === "colorscale" && t.indexOf("coloraxis") === 0) return i.layoutAttributes[t];
+ if (!i.schema && t === i.name) return i.layoutAttributes;
+ }
+ return t in hq ? hq[t] : false;
+ }
+ function Lne(e, t, r) {
+ if (!e) return false;
+ if (e._isLinkedToArray) {
+ if (J6(t[r])) r++;
+ else if (r < t.length) return false;
+ }
+ for (; r < t.length; r++) {
+ var n = e[t[r]];
+ if (C3(n)) e = n;
+ else break;
+ if (r === t.length - 1) break;
+ if (e._isLinkedToArray) {
+ if (r++, !J6(t[r])) return false;
+ } else if (e.valType === "info_array") {
+ r++;
+ var i = t[r];
+ if (!J6(i)) return false;
+ var a = e.items;
+ if (Array.isArray(a)) {
+ if (i >= a.length) return false;
+ if (e.dimensions === 2) {
+ if (r++, t.length === r) return e;
+ var o = t[r];
+ if (!J6(o)) return false;
+ e = a[i][o];
+ } else e = a[i];
+ } else e = a;
+ }
+ }
+ return e;
+ }
+ function J6(e) {
+ return e === Math.round(e) && e >= 0;
+ }
+ function Jnt(e) {
+ var t, r;
+ t = x0.modules[e]._module, r = t.basePlotModule;
+ var n = {};
+ n.type = null;
+ var i = Ag({}, $6), a = Ag({}, t.attributes);
+ ed.crawl(a, function(l, u, c, f, h) {
+ Q6(i, h).set(void 0), l === void 0 && Q6(a, h).set(void 0);
+ }), Ag(n, i), x0.traceIs(e, "noOpacity") && delete n.opacity, x0.traceIs(e, "showLegend") || (delete n.showlegend, delete n.legendgroup), x0.traceIs(e, "noHover") && (delete n.hoverinfo, delete n.hoverlabel), t.selectPoints || delete n.selectedpoints, Ag(n, a), r.attributes && Ag(n, r.attributes), n.type = e;
+ var o = { meta: t.meta || {}, categories: t.categories || {}, animatable: !!t.animatable, type: e, attributes: L3(n) };
+ if (t.layoutAttributes) {
+ var s = {};
+ Ag(s, t.layoutAttributes), o.layoutAttributes = L3(s);
+ }
+ return t.animatable || ed.crawl(o, function(l) {
+ ed.isValObject(l) && "anim" in l && delete l.anim;
+ }), o;
+ }
+ function $nt() {
+ var e = {}, t, r;
+ Ag(e, hq);
+ for (t in x0.subplotsRegistry) if (r = x0.subplotsRegistry[t], !!r.layoutAttributes) if (Array.isArray(r.attr)) for (var n = 0; n < r.attr.length; n++) kne(e, r, r.attr[n]);
+ else {
+ var i = r.attr === "subplot" ? r.name : r.attr;
+ kne(e, r, i);
+ }
+ for (t in x0.componentsRegistry) {
+ r = x0.componentsRegistry[t];
+ var a = r.schema;
+ if (a && (a.subplots || a.layout)) {
+ var o = a.subplots;
+ if (o && o.xaxis && !o.yaxis) for (var s in o.xaxis) delete e.yaxis[s];
+ delete e.xaxis.shift, delete e.xaxis.autoshift;
+ } else r.name === "colorscale" ? Ag(e, r.layoutAttributes) : r.layoutAttributes && iat(e, r.layoutAttributes, r.name);
+ }
+ return { layoutAttributes: L3(e) };
+ }
+ function Qnt() {
+ var e = { frames: Ag({}, Hnt) };
+ return L3(e), e.frames;
+ }
+ function L3(e) {
+ return eat(e), tat(e), rat(e), e;
+ }
+ function eat(e) {
+ function t(n) {
+ return { valType: "string", editType: "none" };
+ }
+ function r(n, i, a) {
+ ed.isValObject(n) ? (n.arrayOk === true || n.valType === "data_array") && (a[i + "src"] = t()) : C3(n) && (n.role = "object");
+ }
+ ed.crawl(e, r);
+ }
+ function tat(e) {
+ function t(r, n, i) {
+ if (r) {
+ var a = r[eL];
+ a && (delete r[eL], i[n] = { items: {} }, i[n].items[a] = r, i[n].role = "object");
+ }
+ }
+ ed.crawl(e, t);
+ }
+ function rat(e) {
+ function t(r) {
+ for (var n in r) if (C3(r[n])) t(r[n]);
+ else if (Array.isArray(r[n])) for (var i = 0; i < r[n].length; i++) t(r[n][i]);
+ else r[n] instanceof RegExp && (r[n] = r[n].toString());
+ }
+ t(e);
+ }
+ function kne(e, t, r) {
+ var n = Q6(e, r), i = Ag({}, t.layoutAttributes);
+ i[dq] = true, n.set(i);
+ }
+ function iat(e, t, r) {
+ var n = Q6(e, r);
+ n.set(Ag(n.get() || {}, t));
+ }
+ });
+ var vl = ye((Sb) => {
+ var I3 = Dr(), nat = Gl(), a_ = "templateitemname", pq = { name: { valType: "string", editType: "none" } };
+ pq[a_] = { valType: "string", editType: "calc" };
+ Sb.templatedArray = function(e, t) {
+ return t._isLinkedToArray = e, t.name = pq.name, t[a_] = pq[a_], t;
+ };
+ Sb.traceTemplater = function(e) {
+ var t = {}, r, n;
+ for (r in e) n = e[r], Array.isArray(n) && n.length && (t[r] = 0);
+ function i(a) {
+ r = I3.coerce(a, {}, nat, "type");
+ var o = { type: r, _template: null };
+ if (r in t) {
+ n = e[r];
+ var s = t[r] % n.length;
+ t[r]++, o._template = n[s];
+ }
+ return o;
+ }
+ return { newTrace: i };
+ };
+ Sb.newContainer = function(e, t, r) {
+ var n = e._template, i = n && (n[t] || r && n[r]);
+ I3.isPlainObject(i) || (i = null);
+ var a = e[t] = { _template: i };
+ return a;
+ };
+ Sb.arrayTemplater = function(e, t, r) {
+ var n = e._template, i = n && n[Ine(t)], a = n && n[t];
+ (!Array.isArray(a) || !a.length) && (a = []);
+ var o = {};
+ function s(u) {
+ var c = { name: u.name, _input: u }, f = c[a_] = u[a_];
+ if (!Pne(f)) return c._template = i, c;
+ for (var h = 0; h < a.length; h++) {
+ var d = a[h];
+ if (d.name === f) return o[f] = 1, c._template = d, c;
+ }
+ return c[r] = u[r] || false, c._template = false, c;
+ }
+ function l() {
+ for (var u = [], c = 0; c < a.length; c++) {
+ var f = a[c], h = f.name;
+ if (Pne(h) && !o[h]) {
+ var d = { _template: f, name: h, _input: { _templateitemname: h } };
+ d[a_] = f[a_], u.push(d), o[h] = 1;
+ }
+ }
+ return u;
+ }
+ return { newItem: s, defaultItems: l };
+ };
+ function Pne(e) {
+ return e && typeof e == "string";
+ }
+ function Ine(e) {
+ var t = e.length - 1;
+ return e.charAt(t) !== "s" && I3.warn("bad argument to arrayDefaultKey: " + e), e.slice(0, -1) + "defaults";
+ }
+ Sb.arrayDefaultKey = Ine;
+ Sb.arrayEditor = function(e, t, r) {
+ var n = (I3.nestedProperty(e, t).get() || []).length, i = r._index, a = i >= n && (r._input || {})._templateitemname;
+ a && (i = n);
+ var o = t + "[" + i + "]", s;
+ function l() {
+ s = {}, a && (s[o] = {}, s[o][a_] = a);
+ }
+ l();
+ function u(d, v) {
+ s[d] = v;
+ }
+ function c(d, v) {
+ a ? I3.nestedProperty(s[o], d).set(v) : s[o + "." + d] = v;
+ }
+ function f() {
+ var d = s;
+ return l(), d;
+ }
+ function h(d, v) {
+ d && c(d, v);
+ var _ = f();
+ for (var b in _) I3.nestedProperty(e, b).set(_[b]);
+ }
+ return { modifyBase: u, modifyItem: c, getUpdateObj: f, applyUpdate: h };
+ };
+ });
+ var Rh = ye((dnr, Rne) => {
+ var eM = p3().counter;
+ Rne.exports = { idRegex: { x: eM("x", "( domain)?"), y: eM("y", "( domain)?") }, attrRegex: eM("[xy]axis"), xAxisMatch: eM("xaxis"), yAxisMatch: eM("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 hf = ye((Sp) => {
+ var aat = qa(), gq = Rh();
+ Sp.id2name = function(t) {
+ if (!(typeof t != "string" || !t.match(gq.AX_ID_PATTERN))) {
+ var r = t.split(" ")[0].slice(1);
+ return r === "1" && (r = ""), t.charAt(0) + "axis" + r;
+ }
+ };
+ Sp.name2id = function(t) {
+ if (t.match(gq.AX_NAME_PATTERN)) {
+ var r = t.slice(5);
+ return r === "1" && (r = ""), t.charAt(0) + r;
+ }
+ };
+ Sp.cleanId = function(t, r, n) {
+ var i = /( domain)$/.test(t);
+ if (!(typeof t != "string" || !t.match(gq.AX_ID_PATTERN)) && !(r && t.charAt(0) !== r) && !(i && !n)) {
+ var a = t.split(" ")[0].slice(1).replace(/^0+/, "");
+ return a === "1" && (a = ""), t.charAt(0) + a + (i && n ? " domain" : "");
+ }
+ };
+ Sp.list = function(e, t, r) {
+ var n = e._fullLayout;
+ if (!n) return [];
+ var i = Sp.listIds(e, t), a = new Array(i.length), o;
+ for (o = 0; o < i.length; o++) {
+ var s = i[o];
+ a[o] = n[s.charAt(0) + "axis" + s.slice(1)];
+ }
+ if (!r) {
+ var l = n._subplots.gl3d || [];
+ for (o = 0; o < l.length; o++) {
+ var u = n[l[o]];
+ t ? a.push(u[t + "axis"]) : a.push(u.xaxis, u.yaxis, u.zaxis);
+ }
+ }
+ return a;
+ };
+ Sp.listIds = function(e, t) {
+ var r = e._fullLayout;
+ if (!r) return [];
+ var n = r._subplots;
+ return t ? n[t + "axis"] : n.xaxis.concat(n.yaxis);
+ };
+ Sp.getFromId = function(e, t, r) {
+ var n = e._fullLayout;
+ return t = t === void 0 || typeof t != "string" ? t : t.replace(" domain", ""), r === "x" ? t = t.replace(/y[0-9]*/, "") : r === "y" && (t = t.replace(/x[0-9]*/, "")), n[Sp.id2name(t)];
+ };
+ Sp.getFromTrace = function(e, t, r) {
+ var n = e._fullLayout, i = null;
+ if (aat.traceIs(t, "gl3d")) {
+ var a = t.scene;
+ a.slice(0, 5) === "scene" && (i = n[a][r + "axis"]);
+ } else i = Sp.getFromId(e, t[r + "axis"] || r);
+ return i;
+ };
+ Sp.idSort = function(e, t) {
+ var r = e.charAt(0), n = t.charAt(0);
+ return r !== n ? r > n ? 1 : -1 : +(e.slice(1) || 1) - +(t.slice(1) || 1);
+ };
+ Sp.ref2id = function(e) {
+ return /^[xyz]/.test(e) ? e.split(" ")[0] : false;
+ };
+ function Dne(e, t) {
+ if (t && t.length) {
+ for (var r = 0; r < t.length; r++) if (t[r][e]) return true;
+ }
+ return false;
+ }
+ Sp.isLinked = function(e, t) {
+ return Dne(t, e._axisMatchGroups) || Dne(t, e._axisConstraintGroups);
+ };
+ });
+ var o_ = ye((pnr, Fne) => {
+ function oat(e) {
+ var t = e._fullLayout._zoomlayer;
+ t && t.selectAll(".outline-controllers").remove();
+ }
+ function sat(e) {
+ var t = e._fullLayout._zoomlayer;
+ t && t.selectAll(".select-outline").remove(), e._fullLayout._outlining = false;
+ }
+ Fne.exports = { clearOutlineControllers: oat, clearOutline: sat };
+ });
+ var tL = ye((gnr, zne) => {
+ zne.exports = { scattermode: { valType: "enumerated", values: ["group", "overlay"], dflt: "overlay", editType: "calc" }, scattergap: { valType: "number", min: 0, max: 1, editType: "calc" } };
+ });
+ var Id = ye((iL) => {
+ var rL = qa();
+ Rh().SUBPLOT_PATTERN;
+ iL.getSubplotCalcData = function(e, t, r) {
+ var n = rL.subplotsRegistry[t];
+ if (!n) return [];
+ for (var i = n.attr, a = [], o = 0; o < e.length; o++) {
+ var s = e[o], l = s[0].trace;
+ l[i] === r && a.push(s);
+ }
+ return a;
+ };
+ iL.getModuleCalcData = function(e, t, r) {
+ var n = [], i = [], a;
+ if (typeof t == "string" ? a = rL.getModule(t).plot : typeof t == "function" ? a = t : a = t.plot, !a) return [n, e];
+ for (var o = r, s = 0; s < e.length; s++) {
+ var l = e[s], u = l[0].trace, c = u.zorder !== void 0;
+ u.visible !== true || u._length === 0 || (u._module && u._module.plot === a && (!c || u.zorder === o) ? n.push(l) : i.push(l));
+ }
+ return [n, i];
+ };
+ iL.getSubplotData = function(t, r, n) {
+ if (!rL.subplotsRegistry[r]) return [];
+ for (var i = rL.subplotsRegistry[r].attr, a = [], o, s, l, u = 0; u < t.length; u++) o = t[u], o[i] === n && a.push(o);
+ return a;
+ };
+ });
+ var Nne = ye((Mb) => {
+ var lat = qa(), R3 = Dr();
+ Mb.manageCommandObserver = function(e, t, r, n) {
+ var i = {}, a = true;
+ t && t._commandObserver && (i = t._commandObserver), i.cache || (i.cache = {}), i.lookupTable = {};
+ var o = Mb.hasSimpleAPICommandBindings(e, r, i.lookupTable);
+ if (t && t._commandObserver) {
+ if (o) return i;
+ if (t._commandObserver.remove) return t._commandObserver.remove(), t._commandObserver = null, i;
+ }
+ if (o) {
+ One(e, o, i.cache), i.check = function() {
+ if (a) {
+ var c = One(e, o, i.cache);
+ return c.changed && n && i.lookupTable[c.value] !== void 0 && (i.disable(), Promise.resolve(n({ value: c.value, type: o.type, prop: o.prop, traces: o.traces, index: i.lookupTable[c.value] })).then(i.enable, i.enable)), c.changed;
+ }
+ };
+ for (var s = ["plotly_relayout", "plotly_redraw", "plotly_restyle", "plotly_update", "plotly_animatingframe", "plotly_afterplot"], l = 0; l < s.length; l++) e._internalOn(s[l], i.check);
+ i.remove = function() {
+ for (var u = 0; u < s.length; u++) e._removeInternalListener(s[u], i.check);
+ };
+ } else R3.log("Unable to automatically bind plot updates to API command"), i.lookupTable = {}, i.remove = function() {
+ };
+ return i.disable = function() {
+ a = false;
+ }, i.enable = function() {
+ a = true;
+ }, t && (t._commandObserver = i), i;
+ };
+ Mb.hasSimpleAPICommandBindings = function(e, t, r) {
+ var n, i = t.length, a;
+ for (n = 0; n < i; n++) {
+ var o, s = t[n], l = s.method, u = s.args;
+ if (Array.isArray(u) || (u = []), !l) return false;
+ var c = Mb.computeAPICommandBindings(e, l, u);
+ if (c.length !== 1) return false;
+ if (!a) a = c[0], Array.isArray(a.traces) && a.traces.sort();
+ else {
+ if (o = c[0], o.type !== a.type || o.prop !== a.prop) return false;
+ if (Array.isArray(a.traces)) if (Array.isArray(o.traces)) {
+ o.traces.sort();
+ for (var f = 0; f < a.traces.length; f++) if (a.traces[f] !== o.traces[f]) return false;
+ } else return false;
+ else if (o.prop !== a.prop) return false;
+ }
+ o = c[0];
+ var h = o.value;
+ if (Array.isArray(h)) if (h.length === 1) h = h[0];
+ else return false;
+ r && (r[h] = n);
+ }
+ return a;
+ };
+ function One(e, t, r) {
+ var n, i, a, o = false;
+ if (t.type === "data") n = e._fullData[t.traces !== null ? t.traces[0] : 0];
+ else if (t.type === "layout") n = e._fullLayout;
+ else return false;
+ return i = R3.nestedProperty(n, t.prop).get(), a = r[t.type] = r[t.type] || {}, a.hasOwnProperty(t.prop) && a[t.prop] !== i && (o = true), a[t.prop] = i, { changed: o, value: i };
+ }
+ Mb.executeAPICommand = function(e, t, r) {
+ if (t === "skip") return Promise.resolve();
+ var n = lat.apiMethodRegistry[t], i = [e];
+ Array.isArray(r) || (r = []);
+ for (var a = 0; a < r.length; a++) i.push(r[a]);
+ return n.apply(null, i).catch(function(o) {
+ return R3.warn("API call to Plotly." + t + " rejected.", o), Promise.reject(o);
+ });
+ };
+ Mb.computeAPICommandBindings = function(e, t, r) {
+ var n;
+ switch (Array.isArray(r) || (r = []), t) {
+ case "restyle":
+ n = Bne(e, r);
+ break;
+ case "relayout":
+ n = qne(e, r);
+ break;
+ case "update":
+ n = Bne(e, [r[0], r[2]]).concat(qne(e, [r[1]]));
+ break;
+ case "animate":
+ n = uat(e, r);
+ break;
+ default:
+ n = [];
+ }
+ return n;
+ };
+ function uat(e, t) {
+ return Array.isArray(t[0]) && t[0].length === 1 && ["string", "number"].indexOf(typeof t[0][0]) !== -1 ? [{ type: "layout", prop: "_currentFrame", value: t[0][0].toString() }] : [];
+ }
+ function qne(e, t) {
+ var r = [], n = t[0], i = {};
+ if (typeof n == "string") i[n] = t[1];
+ else if (R3.isPlainObject(n)) i = n;
+ else return r;
+ return mq(i, function(a, o, s) {
+ r.push({ type: "layout", prop: a, value: s });
+ }, "", 0), r;
+ }
+ function Bne(e, t) {
+ var r, n, i, a, o = [];
+ if (n = t[0], i = t[1], r = t[2], a = {}, typeof n == "string") a[n] = i;
+ else if (R3.isPlainObject(n)) a = n, r === void 0 && (r = i);
+ else return o;
+ return r === void 0 && (r = null), mq(a, function(s, l, u) {
+ var c, f;
+ if (Array.isArray(u)) {
+ f = u.slice();
+ var h = Math.min(f.length, e.data.length);
+ r && (h = Math.min(h, r.length)), c = [];
+ for (var d = 0; d < h; d++) c[d] = r ? r[d] : d;
+ } else f = u, c = r ? r.slice() : null;
+ if (c === null) Array.isArray(f) && (f = f[0]);
+ else if (Array.isArray(c)) {
+ if (!Array.isArray(f)) {
+ var v = f;
+ f = [];
+ for (var _ = 0; _ < c.length; _++) f[_] = v;
+ }
+ f.length = Math.min(c.length, f.length);
+ }
+ o.push({ type: "data", prop: s, traces: c, value: f });
+ }, "", 0), o;
+ }
+ function mq(e, t, r, n) {
+ Object.keys(e).forEach(function(i) {
+ var a = e[i];
+ if (i[0] !== "_") {
+ var o = r + (n > 0 ? "." : "") + i;
+ R3.isPlainObject(a) ? mq(a, t, o, n + 1) : t(o, i, a);
+ }
+ });
+ }
+ });
+ var Mc = ye((xnr, eae) => {
+ var Xne = Oa(), cat = f3().timeFormatLocale, fat = MO().formatLocale, tM = Eo(), hat = EO(), Xl = qa(), Zne = P3(), dat = vl(), Ga = Dr(), Yne = ka(), Une = fs().BADNUM, Mp = hf(), vat = o_().clearOutline, pat = tL(), yq = jS(), gat = fq(), mat = Id().getModuleCalcData, Vne = Ga.relinkPrivateKeys, Eb = Ga._, xa = eae.exports = {};
+ Ga.extendFlat(xa, Xl);
+ xa.attributes = Gl();
+ xa.attributes.type.values = xa.allTypes;
+ xa.fontAttrs = ec();
+ xa.layoutAttributes = _3();
+ var aL = Nne();
+ xa.executeAPICommand = aL.executeAPICommand;
+ xa.computeAPICommandBindings = aL.computeAPICommandBindings;
+ xa.manageCommandObserver = aL.manageCommandObserver;
+ xa.hasSimpleAPICommandBindings = aL.hasSimpleAPICommandBindings;
+ xa.redrawText = function(e) {
+ return e = Ga.getGraphDiv(e), new Promise(function(t) {
+ setTimeout(function() {
+ e._fullLayout && (Xl.getComponentMethod("annotations", "draw")(e), Xl.getComponentMethod("legend", "draw")(e), Xl.getComponentMethod("colorbar", "draw")(e), t(xa.previousPromises(e)));
+ }, 300);
+ });
+ };
+ xa.resize = function(e) {
+ e = Ga.getGraphDiv(e);
+ var t, r = new Promise(function(n, i) {
+ (!e || Ga.isHidden(e)) && i(new Error("Resize must be passed a displayed plot div element.")), e._redrawTimer && clearTimeout(e._redrawTimer), e._resolveResize && (t = e._resolveResize), e._resolveResize = n, e._redrawTimer = setTimeout(function() {
+ if (!e.layout || e.layout.width && e.layout.height || Ga.isHidden(e)) {
+ n(e);
+ return;
+ }
+ delete e.layout.width, delete e.layout.height;
+ var a = e.changed;
+ e.autoplay = true, Xl.call("relayout", e, { autosize: true }).then(function() {
+ e.changed = a, e._resolveResize === n && (delete e._resolveResize, n(e));
+ });
+ }, 100);
+ });
+ return t && t(r), r;
+ };
+ xa.previousPromises = function(e) {
+ if ((e._promises || []).length) return Promise.all(e._promises).then(function() {
+ e._promises = [];
+ });
+ };
+ xa.addLinks = function(e) {
+ if (!(!e._context.showLink && !e._context.showSources)) {
+ var t = e._fullLayout, r = Ga.ensureSingle(t._paper, "text", "js-plot-link-container", function(l) {
+ l.style({ "font-family": '"Open Sans", Arial, sans-serif', "font-size": "12px", fill: Yne.defaultLine, "pointer-events": "all" }).each(function() {
+ var u = Xne.select(this);
+ u.append("tspan").classed("js-link-to-tool", true), u.append("tspan").classed("js-link-spacer", true), u.append("tspan").classed("js-sourcelinks", true);
+ });
+ }), n = r.node(), i = { y: t._paper.attr("height") - 9 };
+ document.body.contains(n) && n.getComputedTextLength() >= t.width - 20 ? (i["text-anchor"] = "start", i.x = 5) : (i["text-anchor"] = "end", i.x = t._paper.attr("width") - 7), r.attr(i);
+ var a = r.select(".js-link-to-tool"), o = r.select(".js-link-spacer"), s = r.select(".js-sourcelinks");
+ e._context.showSources && e._context.showSources(e), e._context.showLink && yat(e, a), o.text(a.text() && s.text() ? " - " : "");
+ }
+ };
+ function yat(e, t) {
+ t.text("");
+ var r = t.append("a").attr({ "xlink:xlink:href": "#", class: "link--impt link--embedview", "font-weight": "bold" }).text(e._context.linkText + " »");
+ if (e._context.sendData) r.on("click", function() {
+ xa.sendDataToCloud(e);
+ });
+ else {
+ var n = window.location.pathname.split("/"), i = window.location.search;
+ r.attr({ "xlink:xlink:show": "new", "xlink:xlink:href": "/" + n[2].split(".")[0] + "/" + n[1] + i });
+ }
+ }
+ xa.sendDataToCloud = function(e) {
+ var t = (window.PLOTLYENV || {}).BASE_URL || e._context.plotlyServerURL;
+ if (t) {
+ e.emit("plotly_beforeexport");
+ var r = Xne.select(e).append("div").attr("id", "hiddenform").style("display", "none"), n = r.append("form").attr({ action: t + "/external", method: "post", target: "_blank" }), i = n.append("input").attr({ type: "text", name: "data" });
+ return i.node().value = xa.graphJson(e, false, "keepdata"), n.node().submit(), r.remove(), e.emit("plotly_afterexport"), false;
+ }
+ };
+ var _at = ["days", "shortDays", "months", "shortMonths", "periods", "dateTime", "date", "time", "decimal", "thousands", "grouping", "currency"], xat = ["year", "month", "dayMonth", "dayMonthYear"];
+ xa.supplyDefaults = function(e, t) {
+ var r = t && t.skipUpdateCalc, n = e._fullLayout || {};
+ if (n._skipDefaults) {
+ delete n._skipDefaults;
+ return;
+ }
+ var i = e._fullLayout = {}, a = e.layout || {}, o = e._fullData || [], s = e._fullData = [], l = e.data || [], u = e.calcdata || [], c = e._context || {}, f;
+ e._transitionData || xa.createTransitionData(e), i._dfltTitle = { plot: Eb(e, "Click to enter Plot title"), subtitle: Eb(e, "Click to enter Plot subtitle"), x: Eb(e, "Click to enter X axis title"), y: Eb(e, "Click to enter Y axis title"), colorbar: Eb(e, "Click to enter Colorscale title"), annotation: Eb(e, "new text") }, i._traceWord = Eb(e, "trace");
+ var h = Gne(e, _at);
+ if (i._mapboxAccessToken = c.mapboxAccessToken, n._initialAutoSizeIsDone) {
+ var d = n.width, v = n.height;
+ xa.supplyLayoutGlobalDefaults(a, i, h), a.width || (i.width = d), a.height || (i.height = v), xa.sanitizeMargins(i);
+ } else {
+ xa.supplyLayoutGlobalDefaults(a, i, h);
+ var _ = !a.width || !a.height, b = i.autosize, p = c.autosizable, k = _ && (b || p);
+ k ? xa.plotAutoSize(e, a, i) : _ && xa.sanitizeMargins(i), !b && _ && (a.width = i.width, a.height = i.height);
+ }
+ i._d3locale = Tat(h, i.separators), i._extraFormat = Gne(e, xat), i._initialAutoSizeIsDone = true, i._dataLength = l.length, i._modules = [], i._visibleModules = [], i._basePlotModules = [];
+ var E = i._subplots = wat(), T = i._splomAxes = { x: {}, y: {} }, L = i._splomSubplots = {};
+ i._splomGridDflt = {}, i._scatterStackOpts = {}, i._firstScatter = {}, i._alignmentOpts = {}, i._colorAxes = {}, i._requestRangeslider = {}, i._traceUids = bat(o, l), xa.supplyDataDefaults(l, s, a, i);
+ var x = Object.keys(T.x), C = Object.keys(T.y);
+ if (x.length > 1 && C.length > 1) {
+ for (Xl.getComponentMethod("grid", "sizeDefaults")(a, i), f = 0; f < x.length; f++) Ga.pushUnique(E.xaxis, x[f]);
+ for (f = 0; f < C.length; f++) Ga.pushUnique(E.yaxis, C[f]);
+ for (var M in L) Ga.pushUnique(E.cartesian, M);
+ }
+ if (i._has = xa._hasPlotType.bind(i), o.length === s.length) for (f = 0; f < s.length; f++) Vne(s[f], o[f]);
+ xa.supplyLayoutModuleDefaults(a, i, s, e._transitionData);
+ var g = i._visibleModules, P = [];
+ for (f = 0; f < g.length; f++) {
+ var A = g[f].crossTraceDefaults;
+ A && Ga.pushUnique(P, A);
+ }
+ for (f = 0; f < P.length; f++) P[f](s, i);
+ i._hasOnlyLargeSploms = i._basePlotModules.length === 1 && i._basePlotModules[0].name === "splom" && x.length > 15 && C.length > 15 && i.shapes.length === 0 && i.images.length === 0, xa.linkSubplots(s, i, o, n), xa.cleanPlot(s, i, o, n);
+ var z = !!(n._has && n._has("cartesian")), O = !!(i._has && i._has("cartesian")), U = z, G = O;
+ U && !G ? n._bgLayer.remove() : G && !U && (i._shouldCreateBgLayer = true), n._zoomlayer && !e._dragging && vat({ _fullLayout: n }), Aat(s, i), Vne(i, n), Xl.getComponentMethod("colorscale", "crossTraceDefaults")(s, i), i._preGUI || (i._preGUI = {}), i._tracePreGUI || (i._tracePreGUI = {});
+ var Z = i._tracePreGUI, j = {}, N;
+ for (N in Z) j[N] = "old";
+ for (f = 0; f < s.length; f++) N = s[f]._fullInput.uid, j[N] || (Z[N] = {}), j[N] = "new";
+ for (N in j) j[N] === "old" && delete Z[N];
+ Kne(i), Xl.getComponentMethod("rangeslider", "makeData")(i), !r && u.length === s.length && xa.supplyDefaultsUpdateCalc(u, s);
+ };
+ xa.supplyDefaultsUpdateCalc = function(e, t) {
+ for (var r = 0; r < t.length; r++) {
+ var n = t[r], i = (e[r] || [])[0];
+ if (i && i.trace) {
+ var a = i.trace;
+ if (a._hasCalcTransform) {
+ var o = a._arrayAttrs, s, l, u;
+ for (s = 0; s < o.length; s++) l = o[s], u = Ga.nestedProperty(a, l).get().slice(), Ga.nestedProperty(n, l).set(u);
+ }
+ i.trace = n;
+ }
+ }
+ };
+ function bat(e, t) {
+ var r = t.length, n = [], i, a;
+ for (i = 0; i < e.length; i++) {
+ var o = e[i]._fullInput;
+ o !== a && n.push(o), a = o;
+ }
+ var s = n.length, l = new Array(r), u = {};
+ function c(d, v) {
+ l[v] = d, u[d] = 1;
+ }
+ function f(d, v) {
+ if (d && typeof d == "string" && !u[d]) return c(d, v), true;
+ }
+ for (i = 0; i < r; i++) {
+ var h = t[i].uid;
+ typeof h == "number" && (h = String(h)), !f(h, i) && (i < s && f(n[i].uid, i) || c(Ga.randstr(u), i));
+ }
+ return l;
+ }
+ function wat() {
+ var e = Xl.collectableSubplotTypes, t = {}, r, n;
+ if (!e) {
+ e = [];
+ var i = Xl.subplotsRegistry;
+ for (var a in i) {
+ var o = i[a], s = o.attr;
+ if (s && (e.push(a), Array.isArray(s))) for (n = 0; n < s.length; n++) Ga.pushUnique(e, s[n]);
+ }
+ }
+ for (r = 0; r < e.length; r++) t[e[r]] = [];
+ return t;
+ }
+ function Gne(e, t) {
+ var r = e._context.locale;
+ r || (r = "en-US");
+ var n = false, i = {};
+ function a(f) {
+ for (var h = true, d = 0; d < t.length; d++) {
+ var v = t[d];
+ i[v] || (f[v] ? i[v] = f[v] : h = false);
+ }
+ h && (n = true);
+ }
+ for (var o = 0; o < 2; o++) {
+ for (var s = e._context.locales, l = 0; l < 2; l++) {
+ var u = (s[r] || {}).format;
+ if (u && (a(u), n)) break;
+ s = Xl.localeRegistry;
+ }
+ var c = r.split("-")[0];
+ if (n || c === r) break;
+ r = c;
+ }
+ return n || a(Xl.localeRegistry.en.format), i;
+ }
+ function Tat(e, t) {
+ return e.decimal = t.charAt(0), e.thousands = t.charAt(1), { numberFormat: function(r) {
+ try {
+ r = fat(e).format(Ga.adjustFormat(r));
+ } catch (n) {
+ return Ga.warnBadFormat(r), Ga.noFormat;
+ }
+ return r;
+ }, timeFormat: cat(e).utcFormat };
+ }
+ function Aat(e, t) {
+ var r, n = [];
+ t.meta && (r = t._meta = { meta: t.meta, layout: { meta: t.meta } });
+ for (var i = 0; i < e.length; i++) {
+ var a = e[i];
+ a.meta ? n[a.index] = a._meta = { meta: a.meta } : t.meta && (a._meta = { meta: t.meta }), t.meta && (a._meta.layout = { meta: t.meta });
+ }
+ n.length && (r || (r = t._meta = {}), r.data = n);
+ }
+ xa.createTransitionData = function(e) {
+ e._transitionData || (e._transitionData = {}), e._transitionData._frames || (e._transitionData._frames = []), e._transitionData._frameHash || (e._transitionData._frameHash = {}), e._transitionData._counter || (e._transitionData._counter = 0), e._transitionData._interruptCallbacks || (e._transitionData._interruptCallbacks = []);
+ };
+ xa._hasPlotType = function(e) {
+ var t, r = this._basePlotModules || [];
+ for (t = 0; t < r.length; t++) if (r[t].name === e) return true;
+ var n = this._modules || [];
+ for (t = 0; t < n.length; t++) {
+ var i = n[t].name;
+ if (i === e) return true;
+ var a = Xl.modules[i];
+ if (a && a.categories[e]) return true;
+ }
+ return false;
+ };
+ xa.cleanPlot = function(e, t, r, n) {
+ var i, a, o = n._basePlotModules || [];
+ for (i = 0; i < o.length; i++) {
+ var s = o[i];
+ s.clean && s.clean(e, t, r, n);
+ }
+ var l = n._has && n._has("gl"), u = t._has && t._has("gl");
+ l && !u && n._glcontainer !== void 0 && (n._glcontainer.selectAll(".gl-canvas").remove(), n._glcontainer.selectAll(".no-webgl").remove(), n._glcanvas = null);
+ var c = !!n._infolayer;
+ e: for (i = 0; i < r.length; i++) {
+ var f = r[i], h = f.uid;
+ for (a = 0; a < e.length; a++) {
+ var d = e[a];
+ if (h === d.uid) continue e;
+ }
+ c && n._infolayer.select(".cb" + h).remove();
+ }
+ };
+ xa.linkSubplots = function(e, t, r, n) {
+ var i, a, o = n._plots || {}, s = t._plots = {}, l = t._subplots, u = { _fullData: e, _fullLayout: t }, c = l.cartesian || [];
+ for (i = 0; i < c.length; i++) {
+ var f = c[i], h = o[f], d = Mp.getFromId(u, f, "x"), v = Mp.getFromId(u, f, "y"), _;
+ for (h ? _ = s[f] = h : (_ = s[f] = {}, _.id = f), d._counterAxes.push(v._id), v._counterAxes.push(d._id), d._subplotsWith.push(f), v._subplotsWith.push(f), _.xaxis = d, _.yaxis = v, _._hasClipOnAxisFalse = false, a = 0; a < e.length; a++) {
+ var b = e[a];
+ if (b.xaxis === _.xaxis._id && b.yaxis === _.yaxis._id && b.cliponaxis === false) {
+ _._hasClipOnAxisFalse = true;
+ break;
+ }
+ }
+ }
+ var p = Mp.list(u, null, true), k;
+ for (i = 0; i < p.length; i++) {
+ k = p[i];
+ var E = null;
+ k.overlaying && (E = Mp.getFromId(u, k.overlaying), E && E.overlaying && (k.overlaying = false, E = null)), k._mainAxis = E || k, E && (k.domain = E.domain.slice()), k._anchorAxis = k.anchor === "free" ? null : Mp.getFromId(u, k.anchor);
+ }
+ for (i = 0; i < p.length; i++) if (k = p[i], k._counterAxes.sort(Mp.idSort), k._subplotsWith.sort(Ga.subplotSort), k._mainSubplot = Sat(k, t), k._counterAxes.length && (k.spikemode && k.spikemode.indexOf("across") !== -1 || k.automargin && k.mirror && k.anchor !== "free" || Xl.getComponentMethod("rangeslider", "isVisible")(k))) {
+ var T = 1, L = 0;
+ for (a = 0; a < k._counterAxes.length; a++) {
+ var x = Mp.getFromId(u, k._counterAxes[a]);
+ T = Math.min(T, x.domain[0]), L = Math.max(L, x.domain[1]);
+ }
+ T < L && (k._counterDomainMin = T, k._counterDomainMax = L);
+ }
+ };
+ function Sat(e, t) {
+ var r = { _fullLayout: t }, n = e._id.charAt(0) === "x", i = e._mainAxis._anchorAxis, a = "", o = "", s = "";
+ if (i && (s = i._mainAxis._id, a = n ? e._id + s : s + e._id), !a || !t._plots[a]) {
+ a = "";
+ for (var l = e._counterAxes, u = 0; u < l.length; u++) {
+ var c = l[u], f = n ? e._id + c : c + e._id;
+ o || (o = f);
+ var h = Mp.getFromId(r, c);
+ if (s && h.overlaying === s) {
+ a = f;
+ break;
+ }
+ }
+ }
+ return a || o;
+ }
+ xa.clearExpandedTraceDefaultColors = function(e) {
+ var t, r, n;
+ function i(o, s, l, u) {
+ r[u] = s, r.length = u + 1, o.valType === "color" && o.dflt === void 0 && t.push(r.join("."));
+ }
+ for (r = [], t = e._module._colorAttrs, t || (e._module._colorAttrs = t = [], Zne.crawl(e._module.attributes, i)), n = 0; n < t.length; n++) {
+ var a = Ga.nestedProperty(e, "_input." + t[n]);
+ a.get() || Ga.nestedProperty(e, t[n]).set(null);
+ }
+ };
+ xa.supplyDataDefaults = function(e, t, r, n) {
+ var i = n._modules, a = n._visibleModules, o = n._basePlotModules, l = 0, u, c, f;
+ n._transformModules = [];
+ function h(k) {
+ t.push(k);
+ var E = k._module;
+ E && (Ga.pushUnique(i, E), k.visible === true && Ga.pushUnique(a, E), Ga.pushUnique(o, k._module.basePlotModule), k._input.visible !== false && l++);
+ }
+ var d = {}, v = [], _ = (r.template || {}).data || {}, b = dat.traceTemplater(_);
+ for (u = 0; u < e.length; u++) f = e[u], c = b.newTrace(f), c.uid = n._traceUids[u], xa.supplyTraceDefaults(f, c, l, n, u), c.index = u, c._input = f, c._fullInput = c, h(c), Xl.traceIs(c, "carpetAxis") && (d[c.carpet] = c), Xl.traceIs(c, "carpetDependent") && v.push(u);
+ for (u = 0; u < v.length; u++) if (c = t[v[u]], !!c.visible) {
+ var p = d[c.carpet];
+ if (c._carpet = p, !p || !p.visible) {
+ c.visible = false;
+ continue;
+ }
+ c.xaxis = p.xaxis, c.yaxis = p.yaxis;
+ }
+ };
+ xa.supplyAnimationDefaults = function(e) {
+ e = e || {};
+ var t, r = {};
+ function n(i, a) {
+ return Ga.coerce(e || {}, r, yq, i, a);
+ }
+ if (n("mode"), n("direction"), n("fromcurrent"), Array.isArray(e.frame)) for (r.frame = [], t = 0; t < e.frame.length; t++) r.frame[t] = xa.supplyAnimationFrameDefaults(e.frame[t] || {});
+ else r.frame = xa.supplyAnimationFrameDefaults(e.frame || {});
+ if (Array.isArray(e.transition)) for (r.transition = [], t = 0; t < e.transition.length; t++) r.transition[t] = xa.supplyAnimationTransitionDefaults(e.transition[t] || {});
+ else r.transition = xa.supplyAnimationTransitionDefaults(e.transition || {});
+ return r;
+ };
+ xa.supplyAnimationFrameDefaults = function(e) {
+ var t = {};
+ function r(n, i) {
+ return Ga.coerce(e || {}, t, yq.frame, n, i);
+ }
+ return r("duration"), r("redraw"), t;
+ };
+ xa.supplyAnimationTransitionDefaults = function(e) {
+ var t = {};
+ function r(n, i) {
+ return Ga.coerce(e || {}, t, yq.transition, n, i);
+ }
+ return r("duration"), r("easing"), t;
+ };
+ xa.supplyFrameDefaults = function(e) {
+ var t = {};
+ function r(n, i) {
+ return Ga.coerce(e, t, gat, n, i);
+ }
+ return r("group"), r("name"), r("traces"), r("baseframe"), r("data"), r("layout"), t;
+ };
+ xa.supplyTraceDefaults = function(e, t, r, n, i) {
+ var a = n.colorway || Yne.defaults, o = a[r % a.length], s;
+ function l(E, T) {
+ return Ga.coerce(e, t, xa.attributes, E, T);
+ }
+ var u = l("visible");
+ l("type"), l("name", n._traceWord + " " + i), l("uirevision", n.uirevision);
+ var c = xa.getModule(t);
+ if (t._module = c, c) {
+ var f = c.basePlotModule, h = f.attr, d = f.attributes;
+ if (h && d) {
+ var v = n._subplots, _ = "";
+ if (Array.isArray(h)) for (s = 0; s < h.length; s++) {
+ var b = h[s], p = Ga.coerce(e, t, d, b);
+ v[b] && Ga.pushUnique(v[b], p), _ += p;
+ }
+ else _ = Ga.coerce(e, t, d, h);
+ v[f.name] && Ga.pushUnique(v[f.name], _);
+ }
+ }
+ if (u && (l("customdata"), l("ids"), l("meta"), Xl.traceIs(t, "showLegend") ? (Ga.coerce(e, t, c.attributes.showlegend ? c.attributes : xa.attributes, "showlegend"), Ga.coerce(e, t, c.attributes.legend ? c.attributes : xa.attributes, "legend"), l("legendwidth"), l("legendgroup"), l("legendgrouptitle.text"), l("legendrank"), t._dfltShowLegend = true) : t._dfltShowLegend = false, c && c.supplyDefaults(e, t, o, n), Xl.traceIs(t, "noOpacity") || l("opacity"), Xl.traceIs(t, "notLegendIsolatable") && (t.visible = !!t.visible), Xl.traceIs(t, "noHover") || (t.hovertemplate || Ga.coerceHoverinfo(e, t, n), t.type !== "parcats" && Xl.getComponentMethod("fx", "supplyDefaults")(e, t, o, n)), c && c.selectPoints)) {
+ var k = l("selectedpoints");
+ Ga.isTypedArray(k) && (t.selectedpoints = Array.from(k));
+ }
+ return t;
+ };
+ xa.supplyLayoutGlobalDefaults = function(e, t, r) {
+ function n(f, h) {
+ return Ga.coerce(e, t, xa.layoutAttributes, f, h);
+ }
+ var i = e.template;
+ Ga.isPlainObject(i) && (t.template = i, t._template = i.layout, t._dataTemplate = i.data), n("autotypenumbers");
+ var a = Ga.coerceFont(n, "font"), o = a.size;
+ Ga.coerceFont(n, "title.font", a, { overrideDflt: { size: Math.round(o * 1.4) } }), n("title.text", t._dfltTitle.plot), n("title.xref");
+ var s = n("title.yref");
+ n("title.pad.t"), n("title.pad.r"), n("title.pad.b"), n("title.pad.l");
+ var l = n("title.automargin");
+ n("title.x"), n("title.xanchor"), n("title.y"), n("title.yanchor"), n("title.subtitle.text", t._dfltTitle.subtitle), Ga.coerceFont(n, "title.subtitle.font", a, { overrideDflt: { size: Math.round(t.title.font.size * 0.7) } }), l && (s === "paper" && (t.title.y !== 0 && (t.title.y = 1), t.title.yanchor === "auto" && (t.title.yanchor = t.title.y === 0 ? "top" : "bottom")), s === "container" && (t.title.y === "auto" && (t.title.y = 1), t.title.yanchor === "auto" && (t.title.yanchor = t.title.y < 0.5 ? "bottom" : "top")));
+ var u = n("uniformtext.mode");
+ u && n("uniformtext.minsize"), n("autosize", !(e.width && e.height)), n("width"), n("height"), n("minreducedwidth"), n("minreducedheight"), n("margin.l"), n("margin.r"), n("margin.t"), n("margin.b"), n("margin.pad"), n("margin.autoexpand"), e.width && e.height && xa.sanitizeMargins(t), Xl.getComponentMethod("grid", "sizeDefaults")(e, t), n("paper_bgcolor"), n("separators", r.decimal + r.thousands), n("hidesources"), n("colorway"), n("datarevision");
+ var c = n("uirevision");
+ n("editrevision", c), n("selectionrevision", c), Xl.getComponentMethod("modebar", "supplyLayoutDefaults")(e, t), Xl.getComponentMethod("shapes", "supplyDrawNewShapeDefaults")(e, t, n), Xl.getComponentMethod("selections", "supplyDrawNewSelectionDefaults")(e, t, n), n("meta"), Ga.isPlainObject(e.transition) && (n("transition.duration"), n("transition.easing"), n("transition.ordering")), Xl.getComponentMethod("calendars", "handleDefaults")(e, t, "calendar"), Xl.getComponentMethod("fx", "supplyLayoutGlobalDefaults")(e, t, n), Ga.coerce(e, t, pat, "scattermode");
+ };
+ function nL(e) {
+ return typeof e == "string" && e.slice(-2) === "px" && parseFloat(e);
+ }
+ xa.plotAutoSize = function(t, r, n) {
+ var i = t._context || {}, a = i.frameMargins, o, s, l = Ga.isPlotDiv(t);
+ if (l && t.emit("plotly_autosize"), i.fillFrame) o = window.innerWidth, s = window.innerHeight, document.body.style.overflow = "hidden";
+ else {
+ var u = l ? window.getComputedStyle(t) : {};
+ if (o = nL(u.width) || nL(u.maxWidth) || n.width, s = nL(u.height) || nL(u.maxHeight) || n.height, tM(a) && a > 0) {
+ var c = 1 - 2 * a;
+ o = Math.round(c * o), s = Math.round(c * s);
+ }
+ }
+ var f = xa.layoutAttributes.width.min, h = xa.layoutAttributes.height.min;
+ o < f && (o = f), s < h && (s = h);
+ var d = !r.width && Math.abs(n.width - o) > 1, v = !r.height && Math.abs(n.height - s) > 1;
+ (v || d) && (d && (n.width = o), v && (n.height = s)), t._initialAutoSize || (t._initialAutoSize = { width: o, height: s }), xa.sanitizeMargins(n);
+ };
+ xa.supplyLayoutModuleDefaults = function(e, t, r, n) {
+ var i = Xl.componentsRegistry, a = t._basePlotModules, o, s, l, u = Xl.subplotsRegistry.cartesian;
+ for (o in i) l = i[o], l.includeBasePlot && l.includeBasePlot(e, t);
+ a.length || a.push(u), t._has("cartesian") && (Xl.getComponentMethod("grid", "contentDefaults")(e, t), u.finalizeSubplots(e, t));
+ for (var c in t._subplots) t._subplots[c].sort(Ga.subplotSort);
+ for (s = 0; s < a.length; s++) l = a[s], l.supplyLayoutDefaults && l.supplyLayoutDefaults(e, t, r);
+ var f = t._modules;
+ for (s = 0; s < f.length; s++) l = f[s], l.supplyLayoutDefaults && l.supplyLayoutDefaults(e, t, r);
+ var h = t._transformModules;
+ for (s = 0; s < h.length; s++) l = h[s], l.supplyLayoutDefaults && l.supplyLayoutDefaults(e, t, r, n);
+ for (o in i) l = i[o], l.supplyLayoutDefaults && l.supplyLayoutDefaults(e, t, r);
+ };
+ xa.purge = function(e) {
+ var t = e._fullLayout || {};
+ t._glcontainer !== void 0 && (t._glcontainer.selectAll(".gl-canvas").remove(), t._glcontainer.remove(), t._glcanvas = null), t._modeBar && t._modeBar.destroy(), e._transitionData && (e._transitionData._interruptCallbacks && (e._transitionData._interruptCallbacks.length = 0), e._transitionData._animationRaf && window.cancelAnimationFrame(e._transitionData._animationRaf)), Ga.clearThrottle(), Ga.clearResponsive(e), delete e.data, delete e.layout, delete e._fullData, delete e._fullLayout, delete e.calcdata, delete e.empty, delete e.fid, delete e.undoqueue, delete e.undonum, delete e.autoplay, delete e.changed, delete e._promises, delete e._redrawTimer, delete e._hmlumcount, delete e._hmpixcount, delete e._transitionData, delete e._transitioning, delete e._initialAutoSize, delete e._transitioningWithDuration, delete e._dragging, delete e._dragged, delete e._dragdata, delete e._hoverdata, delete e._snapshotInProgress, delete e._editing, delete e._mouseDownTime, delete e._legendMouseDownTime, e.removeAllListeners && e.removeAllListeners();
+ };
+ xa.style = function(e) {
+ var t = e._fullLayout._visibleModules, r = [], n;
+ for (n = 0; n < t.length; n++) {
+ var i = t[n];
+ i.style && Ga.pushUnique(r, i.style);
+ }
+ for (n = 0; n < r.length; n++) r[n](e);
+ };
+ xa.sanitizeMargins = function(e) {
+ if (!(!e || !e.margin)) {
+ var t = e.width, r = e.height, n = e.margin, i = t - (n.l + n.r), a = r - (n.t + n.b), o;
+ i < 0 && (o = (t - 1) / (n.l + n.r), n.l = Math.floor(o * n.l), n.r = Math.floor(o * n.r)), a < 0 && (o = (r - 1) / (n.t + n.b), n.t = Math.floor(o * n.t), n.b = Math.floor(o * n.b));
+ }
+ };
+ xa.clearAutoMarginIds = function(e) {
+ e._fullLayout._pushmarginIds = {};
+ };
+ xa.allowAutoMargin = function(e, t) {
+ e._fullLayout._pushmarginIds[t] = 1;
+ };
+ function Kne(e) {
+ var t = e.margin;
+ if (!e._size) {
+ var r = e._size = { l: Math.round(t.l), r: Math.round(t.r), t: Math.round(t.t), b: Math.round(t.b), p: Math.round(t.pad) };
+ r.w = Math.round(e.width) - r.l - r.r, r.h = Math.round(e.height) - r.t - r.b;
+ }
+ e._pushmargin || (e._pushmargin = {}), e._pushmarginIds || (e._pushmarginIds = {}), e._reservedMargin || (e._reservedMargin = {});
+ }
+ var Jne = 2, $ne = 2;
+ xa.autoMargin = function(e, t, r) {
+ var n = e._fullLayout, i = n.width, a = n.height, o = n.margin, s = n.minreducedwidth, l = n.minreducedheight, u = Ga.constrain(i - o.l - o.r, Jne, s), c = Ga.constrain(a - o.t - o.b, $ne, l), f = Math.max(0, i - u), h = Math.max(0, a - c), d = n._pushmargin, v = n._pushmarginIds;
+ if (o.autoexpand !== false) {
+ if (!r) delete d[t], delete v[t];
+ else {
+ var _ = r.pad;
+ if (_ === void 0 && (_ = Math.min(12, o.l, o.r, o.t, o.b)), f) {
+ var b = (r.l + r.r) / f;
+ b > 1 && (r.l /= b, r.r /= b);
+ }
+ if (h) {
+ var p = (r.t + r.b) / h;
+ p > 1 && (r.t /= p, r.b /= p);
+ }
+ var k = r.xl !== void 0 ? r.xl : r.x, E = r.xr !== void 0 ? r.xr : r.x, T = r.yt !== void 0 ? r.yt : r.y, L = r.yb !== void 0 ? r.yb : r.y;
+ d[t] = { l: { val: k, size: r.l + _ }, r: { val: E, size: r.r + _ }, b: { val: L, size: r.b + _ }, t: { val: T, size: r.t + _ } }, v[t] = 1;
+ }
+ if (!n._replotting) return xa.doAutoMargin(e);
+ }
+ };
+ function Mat(e) {
+ if ("_redrawFromAutoMarginCount" in e._fullLayout) return false;
+ var t = Mp.list(e, "", true);
+ for (var r in t) if (t[r].autoshift || t[r].shift) return true;
+ return false;
+ }
+ xa.doAutoMargin = function(e) {
+ var t = e._fullLayout, r = t.width, n = t.height;
+ t._size || (t._size = {}), Kne(t);
+ var i = t._size, a = t.margin, o = { t: 0, b: 0, l: 0, r: 0 }, s = Ga.extendFlat({}, i), l = a.l, u = a.r, c = a.t, f = a.b, h = t._pushmargin, d = t._pushmarginIds, v = t.minreducedwidth, _ = t.minreducedheight;
+ if (a.autoexpand !== false) {
+ for (var b in h) d[b] || delete h[b];
+ var p = e._fullLayout._reservedMargin;
+ for (var k in p) for (var E in p[k]) {
+ var T = p[k][E];
+ o[E] = Math.max(o[E], T);
+ }
+ h.base = { l: { val: 0, size: l }, r: { val: 1, size: u }, t: { val: 1, size: c }, b: { val: 0, size: f } };
+ for (var L in o) {
+ var x = 0;
+ for (var C in h) C !== "base" && tM(h[C][L].size) && (x = h[C][L].size > x ? h[C][L].size : x);
+ var M = Math.max(0, a[L] - x);
+ o[L] = Math.max(0, o[L] - M);
+ }
+ for (var g in h) {
+ var P = h[g].l || {}, A = h[g].b || {}, z = P.val, O = P.size, U = A.val, G = A.size, Z = r - o.r - o.l, j = n - o.t - o.b;
+ for (var N in h) {
+ if (tM(O) && h[N].r) {
+ var H = h[N].r.val, re = h[N].r.size;
+ if (H > z) {
+ var oe = (O * H + (re - Z) * z) / (H - z), _e = (re * (1 - z) + (O - Z) * (1 - H)) / (H - z);
+ oe + _e > l + u && (l = oe, u = _e);
+ }
+ }
+ if (tM(G) && h[N].t) {
+ var Ce = h[N].t.val, Le = h[N].t.size;
+ if (Ce > U) {
+ var ge = (G * Ce + (Le - j) * U) / (Ce - U), ie = (Le * (1 - U) + (G - j) * (1 - Ce)) / (Ce - U);
+ ge + ie > f + c && (f = ge, c = ie);
+ }
+ }
+ }
+ }
+ }
+ var Se = Ga.constrain(r - a.l - a.r, Jne, v), Ee = Ga.constrain(n - a.t - a.b, $ne, _), Ae = Math.max(0, r - Se), Be = Math.max(0, n - Ee);
+ if (Ae) {
+ var Pe = (l + u) / Ae;
+ Pe > 1 && (l /= Pe, u /= Pe);
+ }
+ if (Be) {
+ var me = (f + c) / Be;
+ me > 1 && (f /= me, c /= me);
+ }
+ if (i.l = Math.round(l) + o.l, i.r = Math.round(u) + o.r, i.t = Math.round(c) + o.t, i.b = Math.round(f) + o.b, i.p = Math.round(a.pad), i.w = Math.round(r) - i.l - i.r, i.h = Math.round(n) - i.t - i.b, !t._replotting && (xa.didMarginChange(s, i) || Mat(e))) {
+ "_redrawFromAutoMarginCount" in t ? t._redrawFromAutoMarginCount++ : t._redrawFromAutoMarginCount = 1;
+ var De = 3 * (1 + Object.keys(d).length);
+ if (t._redrawFromAutoMarginCount < De) return Xl.call("_doPlot", e);
+ t._size = s, Ga.warn("Too many auto-margin redraws.");
+ }
+ Eat(e);
+ };
+ function Eat(e) {
+ var t = Mp.list(e, "", true);
+ ["_adjustTickLabelsOverflow", "_hideCounterAxisInsideTickLabels"].forEach(function(r) {
+ for (var n = 0; n < t.length; n++) {
+ var i = t[n][r];
+ i && i();
+ }
+ });
+ }
+ var Hne = ["l", "r", "t", "b", "p", "w", "h"];
+ xa.didMarginChange = function(e, t) {
+ for (var r = 0; r < Hne.length; r++) {
+ var n = Hne[r], i = e[n], a = t[n];
+ if (!tM(i) || Math.abs(a - i) > 1) return true;
+ }
+ return false;
+ };
+ xa.graphJson = function(e, t, r, n, i, a) {
+ (i && t && !e._fullData || i && !t && !e._fullLayout) && xa.supplyDefaults(e);
+ var o = i ? e._fullData : e.data, s = i ? e._fullLayout : e.layout, l = (e._transitionData || {})._frames;
+ function u(h, d) {
+ if (typeof h == "function") return d ? "_function_" : null;
+ if (Ga.isPlainObject(h)) {
+ var v = {}, _;
+ return Object.keys(h).sort().forEach(function(E) {
+ if (["_", "["].indexOf(E.charAt(0)) === -1) {
+ if (typeof h[E] == "function") {
+ d && (v[E] = "_function");
+ return;
+ }
+ if (r === "keepdata") {
+ if (E.slice(-3) === "src") return;
+ } else if (r === "keepstream") {
+ if (_ = h[E + "src"], typeof _ == "string" && _.indexOf(":") > 0 && !Ga.isPlainObject(h.stream)) return;
+ } else if (r !== "keepall" && (_ = h[E + "src"], typeof _ == "string" && _.indexOf(":") > 0)) return;
+ v[E] = u(h[E], d);
+ }
+ }), v;
+ }
+ var b = Array.isArray(h), p = Ga.isTypedArray(h);
+ if ((b || p) && h.dtype && h.shape) {
+ var k = h.bdata;
+ return u({ dtype: h.dtype, shape: h.shape, bdata: Ga.isArrayBuffer(k) ? hat.encode(k) : k }, d);
+ }
+ return b ? h.map(function(E) {
+ return u(E, d);
+ }) : p ? Ga.simpleMap(h, Ga.identity) : Ga.isJSDate(h) ? Ga.ms2DateTimeLocal(+h) : h;
+ }
+ var c = { data: (o || []).map(function(h) {
+ var d = u(h);
+ return t && delete d.fit, d;
+ }) };
+ if (!t && (c.layout = u(s), i)) {
+ var f = s._size;
+ c.layout.computed = { margin: { b: f.b, l: f.l, r: f.r, t: f.t } };
+ }
+ return l && (c.frames = u(l)), a && (c.config = u(e._context, true)), n === "object" ? c : JSON.stringify(c);
+ };
+ xa.modifyFrames = function(e, t) {
+ var r, n, i, a = e._transitionData._frames, o = e._transitionData._frameHash;
+ for (r = 0; r < t.length; r++) switch (n = t[r], n.type) {
+ case "replace":
+ i = n.value;
+ var s = (a[n.index] || {}).name, l = i.name;
+ a[n.index] = o[l] = i, l !== s && (delete o[s], o[l] = i);
+ break;
+ case "insert":
+ i = n.value, o[i.name] = i, a.splice(n.index, 0, i);
+ break;
+ case "delete":
+ i = a[n.index], delete o[i.name], a.splice(n.index, 1);
+ break;
+ }
+ return Promise.resolve();
+ };
+ xa.computeFrame = function(e, t) {
+ var r = e._transitionData._frameHash, n, i, a, o;
+ if (!t) throw new Error("computeFrame must be given a string frame name");
+ var s = r[t.toString()];
+ if (!s) return false;
+ for (var l = [s], u = [s.name]; s.baseframe && (s = r[s.baseframe.toString()]) && u.indexOf(s.name) === -1; ) l.push(s), u.push(s.name);
+ for (var c = {}; s = l.pop(); ) if (s.layout && (c.layout = xa.extendLayout(c.layout, s.layout)), s.data) {
+ if (c.data || (c.data = []), i = s.traces, !i) for (i = [], n = 0; n < s.data.length; n++) i[n] = n;
+ for (c.traces || (c.traces = []), n = 0; n < s.data.length; n++) a = i[n], a != null && (o = c.traces.indexOf(a), o === -1 && (o = c.data.length, c.traces[o] = a), c.data[o] = xa.extendTrace(c.data[o], s.data[n]));
+ }
+ return c;
+ };
+ xa.recomputeFrameHash = function(e) {
+ for (var t = e._transitionData._frameHash = {}, r = e._transitionData._frames, n = 0; n < r.length; n++) {
+ var i = r[n];
+ i && i.name && (t[i.name] = i);
+ }
+ };
+ xa.extendObjectWithContainers = function(e, t, r) {
+ var n, i, a, o, s, l, u, c, f = Ga.extendDeepNoArrays({}, t || {}), h = Ga.expandObjectPaths(f), d = {};
+ if (r && r.length) for (a = 0; a < r.length; a++) n = Ga.nestedProperty(h, r[a]), i = n.get(), i === void 0 ? Ga.nestedProperty(d, r[a]).set(null) : (n.set(null), Ga.nestedProperty(d, r[a]).set(i));
+ if (e = Ga.extendDeepNoArrays(e || {}, h), r && r.length) {
+ for (a = 0; a < r.length; a++) if (s = Ga.nestedProperty(d, r[a]), u = s.get(), !!u) {
+ for (l = Ga.nestedProperty(e, r[a]), c = l.get(), Array.isArray(c) || (c = [], l.set(c)), o = 0; o < u.length; o++) {
+ var v = u[o];
+ v === null ? c[o] = null : c[o] = xa.extendObjectWithContainers(c[o], v);
+ }
+ l.set(c);
+ }
+ }
+ return e;
+ };
+ xa.dataArrayContainers = ["transforms", "dimensions"];
+ xa.layoutArrayContainers = Xl.layoutArrayContainers;
+ xa.extendTrace = function(e, t) {
+ return xa.extendObjectWithContainers(e, t, xa.dataArrayContainers);
+ };
+ xa.extendLayout = function(e, t) {
+ return xa.extendObjectWithContainers(e, t, xa.layoutArrayContainers);
+ };
+ xa.transition = function(e, t, r, n, i, a) {
+ var o = { redraw: i.redraw }, s = {}, l = [];
+ return o.prepareFn = function() {
+ for (var u = Array.isArray(t) ? t.length : 0, c = n.slice(0, u), f = 0; f < c.length; f++) {
+ var h = c[f], d = e._fullData[h], v = d._module;
+ if (v) {
+ if (v.animatable) {
+ var _ = v.basePlotModule.name;
+ s[_] || (s[_] = []), s[_].push(h);
+ }
+ e.data[c[f]] = xa.extendTrace(e.data[c[f]], t[f]);
+ }
+ }
+ var b = Ga.expandObjectPaths(Ga.extendDeepNoArrays({}, r)), p = /^[xy]axis[0-9]*$/;
+ for (var k in b) p.test(k) && delete b[k].range;
+ xa.extendLayout(e.layout, b), delete e.calcdata, xa.supplyDefaults(e), xa.doCalcdata(e);
+ var E = Ga.expandObjectPaths(r);
+ if (E) {
+ var T = e._fullLayout._plots;
+ for (var L in T) {
+ var x = T[L], C = x.xaxis, M = x.yaxis, g = C.range.slice(), P = M.range.slice(), A = null, z = null, O = null, U = null;
+ Array.isArray(E[C._name + ".range"]) ? A = E[C._name + ".range"].slice() : Array.isArray((E[C._name] || {}).range) && (A = E[C._name].range.slice()), Array.isArray(E[M._name + ".range"]) ? z = E[M._name + ".range"].slice() : Array.isArray((E[M._name] || {}).range) && (z = E[M._name].range.slice()), g && A && (C.r2l(g[0]) !== C.r2l(A[0]) || C.r2l(g[1]) !== C.r2l(A[1])) && (O = { xr0: g, xr1: A }), P && z && (M.r2l(P[0]) !== M.r2l(z[0]) || M.r2l(P[1]) !== M.r2l(z[1])) && (U = { yr0: P, yr1: z }), (O || U) && l.push(Ga.extendFlat({ plotinfo: x }, O, U));
+ }
+ }
+ return Promise.resolve();
+ }, o.runFn = function(u) {
+ var c, f = e._fullLayout._basePlotModules, h = l.length, d;
+ if (r) for (d = 0; d < f.length; d++) f[d].transitionAxes && f[d].transitionAxes(e, l, a, u);
+ h ? (c = Ga.extendFlat({}, a), c.duration = 0, delete s.cartesian) : c = a;
+ for (var v in s) {
+ var _ = s[v], b = e._fullData[_[0]]._module;
+ b.basePlotModule.plot(e, _, c, u);
+ }
+ }, Qne(e, a, o);
+ };
+ xa.transitionFromReact = function(e, t, r, n) {
+ var i = e._fullLayout, a = i.transition, o = {}, s = [];
+ return o.prepareFn = function() {
+ var l = i._plots;
+ o.redraw = false, t.anim === "some" && (o.redraw = true), r.anim === "some" && (o.redraw = true);
+ for (var u in l) {
+ var c = l[u], f = c.xaxis, h = c.yaxis, d = n[f._name].range.slice(), v = n[h._name].range.slice(), _ = f.range.slice(), b = h.range.slice();
+ f.setScale(), h.setScale();
+ var p = null, k = null;
+ (f.r2l(d[0]) !== f.r2l(_[0]) || f.r2l(d[1]) !== f.r2l(_[1])) && (p = { xr0: d, xr1: _ }), (h.r2l(v[0]) !== h.r2l(b[0]) || h.r2l(v[1]) !== h.r2l(b[1])) && (k = { yr0: v, yr1: b }), (p || k) && s.push(Ga.extendFlat({ plotinfo: c }, p, k));
+ }
+ return Promise.resolve();
+ }, o.runFn = function(l) {
+ for (var u = e._fullData, c = e._fullLayout, f = c._basePlotModules, h, d, v, _ = [], b = 0; b < u.length; b++) _.push(b);
+ function p() {
+ if (e._fullLayout) for (var E = 0; E < f.length; E++) f[E].transitionAxes && f[E].transitionAxes(e, s, h, l);
+ }
+ function k() {
+ if (e._fullLayout) for (var E = 0; E < f.length; E++) f[E].plot(e, v, d, l);
+ }
+ s.length && t.anim ? a.ordering === "traces first" ? (h = Ga.extendFlat({}, a, { duration: 0 }), v = _, d = a, setTimeout(p, a.duration), k()) : (h = a, v = null, d = Ga.extendFlat({}, a, { duration: 0 }), setTimeout(k, h.duration), p()) : s.length ? (h = a, p()) : t.anim && (v = _, d = a, k());
+ }, Qne(e, a, o);
+ };
+ function Qne(e, t, r) {
+ var n = false;
+ function i(f) {
+ var h = Promise.resolve();
+ if (!f) return h;
+ for (; f.length; ) h = h.then(f.shift());
+ return h;
+ }
+ function a(f) {
+ if (f) for (; f.length; ) f.shift();
+ }
+ function o() {
+ return e.emit("plotly_transitioning", []), new Promise(function(f) {
+ e._transitioning = true, t.duration > 0 && (e._transitioningWithDuration = true), e._transitionData._interruptCallbacks.push(function() {
+ n = true;
+ }), r.redraw && e._transitionData._interruptCallbacks.push(function() {
+ return Xl.call("redraw", e);
+ }), e._transitionData._interruptCallbacks.push(function() {
+ e.emit("plotly_transitioninterrupted", []);
+ });
+ var h = 0, d = 0;
+ function v() {
+ return h++, function() {
+ d++, !n && d === h && s(f);
+ };
+ }
+ r.runFn(v), setTimeout(v());
+ });
+ }
+ function s(f) {
+ if (e._transitionData) return a(e._transitionData._interruptCallbacks), Promise.resolve().then(function() {
+ if (r.redraw) return Xl.call("redraw", e);
+ }).then(function() {
+ e._transitioning = false, e._transitioningWithDuration = false, e.emit("plotly_transitioned", []);
+ }).then(f);
+ }
+ function l() {
+ if (e._transitionData) return e._transitioning = false, i(e._transitionData._interruptCallbacks);
+ }
+ var u = [xa.previousPromises, l, r.prepareFn, xa.rehover, xa.reselect, o], c = Ga.syncOrAsync(u, e);
+ return (!c || !c.then) && (c = Promise.resolve()), c.then(function() {
+ return e;
+ });
+ }
+ xa.doCalcdata = function(e, t) {
+ var r = Mp.list(e), n = e._fullData, i = e._fullLayout, a, o, s, l, u = new Array(n.length), c = (e.calcdata || []).slice();
+ for (e.calcdata = u, i._numBoxes = 0, i._numViolins = 0, i._violinScaleGroupStats = {}, e._hmpixcount = 0, e._hmlumcount = 0, i._piecolormap = {}, i._sunburstcolormap = {}, i._treemapcolormap = {}, i._iciclecolormap = {}, i._funnelareacolormap = {}, s = 0; s < n.length; s++) if (Array.isArray(t) && t.indexOf(s) === -1) {
+ u[s] = c[s];
+ continue;
+ }
+ for (s = 0; s < n.length; s++) a = n[s], a._arrayAttrs = Zne.findArrayAttributes(a), a._extremes = {};
+ var f = i._subplots.polar || [];
+ for (s = 0; s < f.length; s++) r.push(i[f[s]].radialaxis, i[f[s]].angularaxis);
+ for (var h in i._colorAxes) {
+ var d = i[h];
+ d.cauto !== false && (delete d.cmin, delete d.cmax);
+ }
+ var v = false;
+ function _(k) {
+ if (a = n[k], o = a._module, a.visible === true && a.transforms) {
+ if (o && o.calc) {
+ var E = o.calc(e, a);
+ E[0] && E[0].t && E[0].t._scene && delete E[0].t._scene.dirty;
+ }
+ for (l = 0; l < a.transforms.length; l++) {
+ var T = a.transforms[l];
+ o = transformsRegistry[T.type], o && o.calcTransform && (a._hasCalcTransform = true, v = true, o.calcTransform(e, a, T));
+ }
+ }
+ }
+ function b(k, E) {
+ if (a = n[k], o = a._module, !!o.isContainer === E) {
+ var T = [];
+ if (a.visible === true && a._length !== 0) {
+ delete a._indexToPoints;
+ var L = a.transforms || [];
+ for (l = L.length - 1; l >= 0; l--) if (L[l].enabled) {
+ a._indexToPoints = L[l]._indexToPoints;
+ break;
+ }
+ o && o.calc && (T = o.calc(e, a));
+ }
+ (!Array.isArray(T) || !T[0]) && (T = [{ x: Une, y: Une }]), T[0].t || (T[0].t = {}), T[0].trace = a, u[k] = T;
+ }
+ }
+ for (jne(r, n, i), s = 0; s < n.length; s++) b(s, true);
+ for (s = 0; s < n.length; s++) _(s);
+ for (v && jne(r, n, i), s = 0; s < n.length; s++) b(s, true);
+ for (s = 0; s < n.length; s++) b(s, false);
+ Wne(e);
+ var p = Cat(r, e);
+ if (p.length) {
+ for (i._numBoxes = 0, i._numViolins = 0, s = 0; s < p.length; s++) b(p[s], true);
+ for (s = 0; s < p.length; s++) b(p[s], false);
+ Wne(e);
+ }
+ Xl.getComponentMethod("fx", "calc")(e), Xl.getComponentMethod("errorbars", "calc")(e);
+ };
+ var kat = /(total|sum|min|max|mean|geometric mean|median) (ascending|descending)/;
+ function Cat(e, t) {
+ var r = [], n, i, a, o, s;
+ function l(N, H, re) {
+ var oe = H._id.charAt(0);
+ if (N === "histogram2dcontour") {
+ var _e = H._counterAxes[0], Ce = Mp.getFromId(t, _e), Le = oe === "x" || _e === "x" && Ce.type === "category", ge = oe === "y" || _e === "y" && Ce.type === "category";
+ return function(ie, Se) {
+ return ie === 0 || Se === 0 || Le && ie === re[Se].length - 1 || ge && Se === re.length - 1 ? -1 : (oe === "y" ? Se : ie) - 1;
+ };
+ } else return function(ie, Se) {
+ return oe === "y" ? Se : ie;
+ };
+ }
+ var u = { min: function(N) {
+ return Ga.aggNums(Math.min, null, N);
+ }, max: function(N) {
+ return Ga.aggNums(Math.max, null, N);
+ }, sum: function(N) {
+ return Ga.aggNums(function(H, re) {
+ return H + re;
+ }, null, N);
+ }, total: function(N) {
+ return Ga.aggNums(function(H, re) {
+ return H + re;
+ }, null, N);
+ }, mean: function(N) {
+ return Ga.mean(N);
+ }, "geometric mean": function(N) {
+ return Ga.geometricMean(N);
+ }, median: function(N) {
+ return Ga.median(N);
+ } };
+ function c(N, H) {
+ return N[1] - H[1];
+ }
+ function f(N, H) {
+ return H[1] - N[1];
+ }
+ for (n = 0; n < e.length; n++) {
+ var h = e[n];
+ if (h.type === "category") {
+ var d = h.categoryorder.match(kat);
+ if (d) {
+ var v = d[1], _ = d[2], b = h._id.charAt(0), p = b === "x", k = [];
+ for (i = 0; i < h._categories.length; i++) k.push([h._categories[i], []]);
+ for (i = 0; i < h._traceIndices.length; i++) {
+ var E = h._traceIndices[i], T = t._fullData[E];
+ if (T.visible === true) {
+ var L = T.type;
+ Xl.traceIs(T, "histogram") && (delete T._xautoBinFinished, delete T._yautoBinFinished);
+ var x = L === "splom", C = L === "scattergl", M = t.calcdata[E];
+ for (a = 0; a < M.length; a++) {
+ var g = M[a], P, A;
+ if (x) {
+ var z = T._axesDim[h._id];
+ if (!p) {
+ var O = T._diag[z][0];
+ O && (h = t._fullLayout[Mp.id2name(O)]);
+ }
+ var U = g.trace.dimensions[z].values;
+ for (o = 0; o < U.length; o++) for (P = h._categoriesMap[U[o]], s = 0; s < g.trace.dimensions.length; s++) if (s !== z) {
+ var G = g.trace.dimensions[s];
+ k[P][1].push(G.values[o]);
+ }
+ } else if (C) {
+ for (o = 0; o < g.t.x.length; o++) p ? (P = g.t.x[o], A = g.t.y[o]) : (P = g.t.y[o], A = g.t.x[o]), k[P][1].push(A);
+ g.t && g.t._scene && delete g.t._scene.dirty;
+ } else if (g.hasOwnProperty("z")) {
+ A = g.z;
+ var Z = l(T.type, h, A);
+ for (o = 0; o < A.length; o++) for (s = 0; s < A[o].length; s++) P = Z(s, o), P + 1 && k[P][1].push(A[o][s]);
+ } else for (P = g.p, P === void 0 && (P = g[b]), A = g.s, A === void 0 && (A = g.v), A === void 0 && (A = p ? g.y : g.x), Array.isArray(A) || (A === void 0 ? A = [] : A = [A]), o = 0; o < A.length; o++) k[P][1].push(A[o]);
+ }
+ }
+ }
+ h._categoriesValue = k;
+ var j = [];
+ for (i = 0; i < k.length; i++) j.push([k[i][0], u[v](k[i][1])]);
+ j.sort(_ === "descending" ? f : c), h._categoriesAggregatedValue = j, h._initialCategories = j.map(function(N) {
+ return N[0];
+ }), r = r.concat(h.sortByInitialCategories());
+ }
+ }
+ }
+ return r;
+ }
+ function jne(e, t, r) {
+ var n = {};
+ function i(l) {
+ l.clearCalc(), l.type === "multicategory" && l.setupMultiCategory(t), n[l._id] = 1;
+ }
+ Ga.simpleMap(e, i);
+ for (var a = r._axisMatchGroups || [], o = 0; o < a.length; o++) for (var s in a[o]) n[s] || i(r[Mp.id2name(s)]);
+ }
+ function Wne(e) {
+ var t = e._fullLayout, r = t._visibleModules, n = {}, i, a, o;
+ for (a = 0; a < r.length; a++) {
+ var s = r[a], l = s.crossTraceCalc;
+ if (l) {
+ var u = s.basePlotModule.name;
+ n[u] ? Ga.pushUnique(n[u], l) : n[u] = [l];
+ }
+ }
+ for (o in n) {
+ var c = n[o], f = t._subplots[o];
+ if (Array.isArray(f)) for (i = 0; i < f.length; i++) {
+ var h = f[i], d = o === "cartesian" ? t._plots[h] : t[h];
+ for (a = 0; a < c.length; a++) c[a](e, d, h);
+ }
+ else for (a = 0; a < c.length; a++) c[a](e);
+ }
+ }
+ xa.rehover = function(e) {
+ e._fullLayout._rehover && e._fullLayout._rehover();
+ };
+ xa.redrag = function(e) {
+ e._fullLayout._redrag && e._fullLayout._redrag();
+ };
+ xa.reselect = function(e) {
+ var t = e._fullLayout, r = (e.layout || {}).selections, n = t._previousSelections;
+ t._previousSelections = r;
+ var i = t._reselect || JSON.stringify(r) !== JSON.stringify(n);
+ Xl.getComponentMethod("selections", "reselect")(e, i);
+ };
+ xa.generalUpdatePerTraceModule = function(e, t, r, n) {
+ var i = t.traceHash, a = {}, o;
+ for (o = 0; o < r.length; o++) {
+ var s = r[o], l = s[0].trace;
+ l.visible && (a[l.type] = a[l.type] || [], a[l.type].push(s));
+ }
+ for (var u in i) if (!a[u]) {
+ var c = i[u][0], f = c[0].trace;
+ f.visible = false, a[u] = [c];
+ }
+ for (var h in a) {
+ var d = a[h], v = d[0][0].trace._module;
+ v.plot(e, t, Ga.filterVisible(d), n);
+ }
+ t.traceHash = a;
+ };
+ xa.plotBasePlot = function(e, t, r, n, i) {
+ var a = Xl.getModule(e), o = mat(t.calcdata, a)[0];
+ a.plot(t, o, n, i);
+ };
+ xa.cleanBasePlot = function(e, t, r, n, i) {
+ var a = i._has && i._has(e), o = r._has && r._has(e);
+ a && !o && i["_" + e + "layer"].selectAll("g.trace").remove();
+ };
+ });
+ var Wp = ye((kb) => {
+ kb.xmlns = "http://www.w3.org/2000/xmlns/";
+ kb.svg = "http://www.w3.org/2000/svg";
+ kb.xlink = "http://www.w3.org/1999/xlink";
+ kb.svgAttrs = { xmlns: kb.svg, "xmlns:xlink": kb.xlink };
+ });
+ var Dh = ye((wnr, tae) => {
+ tae.exports = { FROM_BL: { left: 0, center: 0.5, right: 1, bottom: 0, middle: 0.5, top: 1 }, FROM_TL: { left: 0, center: 0.5, right: 1, bottom: 1, middle: 0.5, top: 0 }, FROM_BR: { left: 1, center: 0.5, right: 0, bottom: 0, middle: 0.5, top: 1 }, LINE_SPACING: 1.3, CAP_SHIFT: 0.7, MID_SHIFT: 0.35, OPPOSITE_SIDE: { left: "right", right: "left", top: "bottom", bottom: "top" } };
+ });
+ var Zl = ye((b0) => {
+ var Fh = Oa(), Ly = Dr(), Lat = Ly.strTranslate, _q = Wp(), Pat = Dh().LINE_SPACING, Iat = /([^$]*)([$]+[^$]*[$]+)([^$]*)/;
+ b0.convertToTspans = function(e, t, r) {
+ var n = e.text(), i = !e.attr("data-notex") && t && t._context.typesetMath && typeof MathJax != "undefined" && n.match(Iat), a = Fh.select(e.node().parentNode);
+ if (a.empty()) return;
+ var o = e.attr("class") ? e.attr("class").split(" ")[0] : "text";
+ o += "-math", a.selectAll("svg." + o).remove(), a.selectAll("g." + o + "-group").remove(), e.style("display", null).attr({ "data-unformatted": n, "data-math": "N" });
+ function s() {
+ a.empty() || (o = e.attr("class") + "-math", a.select("svg." + o).remove()), e.text("").style("white-space", "pre");
+ var l = jat(e.node(), n);
+ l && e.style("pointer-events", "all"), b0.positionText(e), r && r.call(e);
+ }
+ return i ? (t && t._promises || []).push(new Promise(function(l) {
+ e.style("display", "none");
+ var u = parseInt(e.node().style.fontSize, 10), c = { fontSize: u };
+ zat(i[2], c, function(f, h, d) {
+ a.selectAll("svg." + o).remove(), a.selectAll("g." + o + "-group").remove();
+ var v = f && f.select("svg");
+ if (!v || !v.node()) {
+ s(), l();
+ return;
+ }
+ var _ = a.append("g").classed(o + "-group", true).attr({ "pointer-events": "none", "data-unformatted": n, "data-math": "Y" });
+ _.node().appendChild(v.node()), h && h.node() && v.node().insertBefore(h.node().cloneNode(true), v.node().firstChild);
+ var b = d.width, p = d.height;
+ v.attr({ class: o, height: p, preserveAspectRatio: "xMinYMin meet" }).style({ overflow: "visible", "pointer-events": "none" });
+ var k = e.node().style.fill || "black", E = v.select("g");
+ E.attr({ fill: k, stroke: k });
+ var T = E.node().getBoundingClientRect(), L = T.width, x = T.height;
+ (L > b || x > p) && (v.style("overflow", "hidden"), T = v.node().getBoundingClientRect(), L = T.width, x = T.height);
+ var C = +e.attr("x"), M = +e.attr("y"), g = u || e.node().getBoundingClientRect().height, P = -g / 4;
+ if (o[0] === "y") _.attr({ transform: "rotate(" + [-90, C, M] + ")" + Lat(-L / 2, P - x / 2) });
+ else if (o[0] === "l") M = P - x / 2;
+ else if (o[0] === "a" && o.indexOf("atitle") !== 0) C = 0, M = P;
+ else {
+ var A = e.attr("text-anchor");
+ C = C - L * (A === "middle" ? 0.5 : A === "end" ? 1 : 0), M = M + P - x / 2;
+ }
+ v.attr({ x: C, y: M }), r && r.call(e, _), l(_);
+ });
+ })) : s(), e;
+ };
+ var Rat = /(<|<|<)/g, Dat = /(>|>|>)/g;
+ function Fat(e) {
+ return e.replace(Rat, "\\lt ").replace(Dat, "\\gt ");
+ }
+ var rae = [["$", "$"], ["\\(", "\\)"]];
+ function zat(e, t, r) {
+ var n = parseInt((MathJax.version || "").split(".")[0]);
+ if (n !== 2 && n !== 3) {
+ Ly.warn("No MathJax version:", MathJax.version);
+ return;
+ }
+ var i, a, o, s, l = function() {
+ return a = Ly.extendDeepAll({}, MathJax.Hub.config), o = MathJax.Hub.processSectionDelay, MathJax.Hub.processSectionDelay !== void 0 && (MathJax.Hub.processSectionDelay = 0), MathJax.Hub.Config({ messageStyle: "none", tex2jax: { inlineMath: rae }, displayAlign: "left" });
+ }, u = function() {
+ a = Ly.extendDeepAll({}, MathJax.config), MathJax.config.tex || (MathJax.config.tex = {}), MathJax.config.tex.inlineMath = rae;
+ }, c = function() {
+ if (i = MathJax.Hub.config.menuSettings.renderer, i !== "SVG") return MathJax.Hub.setRenderer("SVG");
+ }, f = function() {
+ i = MathJax.config.startup.output, i !== "svg" && (MathJax.config.startup.output = "svg");
+ }, h = function() {
+ var k = "math-output-" + Ly.randstr({}, 64);
+ s = Fh.select("body").append("div").attr({ id: k }).style({ visibility: "hidden", position: "absolute", "font-size": t.fontSize + "px" }).text(Fat(e));
+ var E = s.node();
+ return n === 2 ? MathJax.Hub.Typeset(E) : MathJax.typeset([E]);
+ }, d = function() {
+ var k = s.select(n === 2 ? ".MathJax_SVG" : ".MathJax"), E = !k.empty() && s.select("svg").node();
+ if (!E) Ly.log("There was an error in the tex syntax.", e), r();
+ else {
+ var T = E.getBoundingClientRect(), L;
+ n === 2 ? L = Fh.select("body").select("#MathJax_SVG_glyphs") : L = k.select("defs"), r(k, L, T);
+ }
+ s.remove();
+ }, v = function() {
+ if (i !== "SVG") return MathJax.Hub.setRenderer(i);
+ }, _ = function() {
+ i !== "svg" && (MathJax.config.startup.output = i);
+ }, b = function() {
+ return o !== void 0 && (MathJax.Hub.processSectionDelay = o), MathJax.Hub.Config(a);
+ }, p = function() {
+ MathJax.config = a;
+ };
+ n === 2 ? MathJax.Hub.Queue(l, c, h, d, v, b) : n === 3 && (u(), f(), MathJax.startup.defaultReady(), MathJax.startup.promise.then(function() {
+ h(), d(), _(), p();
+ }));
+ }
+ var oae = { 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" }, Oat = { sub: "0.3em", sup: "-0.6em" }, qat = { sub: "-0.21em", sup: "0.42em" }, iae = "", nae = ["http:", "https:", "mailto:", "", void 0, ":"], sae = b0.NEWLINES = /(\r\n?|\n)/g, bq = /(<[^<>]*>)/, wq = /<(\/?)([^ >]*)(\s+(.*))?>/i, Bat = / /i;
+ b0.BR_TAG_ALL = / /gi;
+ var lae = /(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i, uae = /(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i, cae = /(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i, Nat = /(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;
+ function Cb(e, t) {
+ if (!e) return null;
+ var r = e.match(t), n = r && (r[3] || r[4]);
+ return n && oL(n);
+ }
+ var Uat = /(^|;)\s*color:/;
+ b0.plainText = function(e, t) {
+ t = t || {};
+ for (var r = t.len !== void 0 && t.len !== -1 ? t.len : 1 / 0, n = t.allowedTags !== void 0 ? t.allowedTags : ["br"], i = "...", a = i.length, o = e.split(bq), s = [], l = "", u = 0, c = 0; c < o.length; c++) {
+ var f = o[c], h = f.match(wq), d = h && h[2].toLowerCase();
+ if (d) n.indexOf(d) !== -1 && (s.push(f), l = d);
+ else {
+ var v = f.length;
+ if (u + v < r) s.push(f), u += v;
+ else if (u < r) {
+ var _ = r - u;
+ l && (l !== "br" || _ <= a || v <= a) && s.pop(), r > a ? s.push(f.slice(0, Math.max(0, _ - a)) + i) : s.push(f.slice(0, _));
+ break;
+ }
+ l = "";
+ }
+ }
+ return s.join("");
+ };
+ var Vat = { mu: "μ", amp: "&", lt: "<", gt: ">", nbsp: " ", times: "×", plusmn: "±", deg: "°" }, Gat = /&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;
+ function oL(e) {
+ return e.replace(Gat, function(t, r) {
+ var n;
+ return r.charAt(0) === "#" ? n = Hat(r.charAt(1) === "x" ? parseInt(r.slice(2), 16) : parseInt(r.slice(1), 10)) : n = Vat[r], n || t;
+ });
+ }
+ b0.convertEntities = oL;
+ function Hat(e) {
+ if (!(e > 1114111)) {
+ var t = String.fromCodePoint;
+ if (t) return t(e);
+ var r = String.fromCharCode;
+ return e <= 65535 ? r(e) : r((e >> 10) + 55232, e % 1024 + 56320);
+ }
+ }
+ function jat(e, t) {
+ t = t.replace(sae, " ");
+ var r = false, n = [], i, a = -1;
+ function o() {
+ a++;
+ var x = document.createElementNS(_q.svg, "tspan");
+ Fh.select(x).attr({ class: "line", dy: a * Pat + "em" }), e.appendChild(x), i = x;
+ var C = n;
+ if (n = [{ node: x }], C.length > 1) for (var M = 1; M < C.length; M++) s(C[M]);
+ }
+ function s(x) {
+ var C = x.type, M = {}, g;
+ if (C === "a") {
+ g = "a";
+ var P = x.target, A = x.href, z = x.popup;
+ A && (M = { "xlink:xlink:show": P === "_blank" || P.charAt(0) !== "_" ? "new" : "replace", target: P, "xlink:xlink:href": A }, z && (M.onclick = 'window.open(this.href.baseVal,this.target.baseVal,"' + z + '");return false;'));
+ } else g = "tspan";
+ x.style && (M.style = x.style);
+ var O = document.createElementNS(_q.svg, g);
+ if (C === "sup" || C === "sub") {
+ l(i, iae), i.appendChild(O);
+ var U = document.createElementNS(_q.svg, "tspan");
+ l(U, iae), Fh.select(U).attr("dy", qat[C]), M.dy = Oat[C], i.appendChild(O), i.appendChild(U);
+ } else i.appendChild(O);
+ Fh.select(O).attr(M), i = x.node = O, n.push(x);
+ }
+ function l(x, C) {
+ x.appendChild(document.createTextNode(C));
+ }
+ function u(x) {
+ if (n.length === 1) {
+ Ly.log("Ignoring unexpected end tag " + x + ">.", t);
+ return;
+ }
+ var C = n.pop();
+ x !== C.type && Ly.log("Start tag <" + C.type + "> doesnt match end tag <" + x + ">. Pretending it did match.", t), i = n[n.length - 1].node;
+ }
+ var c = Bat.test(t);
+ c ? o() : (i = e, n = [{ node: e }]);
+ for (var f = t.split(bq), h = 0; h < f.length; h++) {
+ var d = f[h], v = d.match(wq), _ = v && v[2].toLowerCase(), b = oae[_];
+ if (_ === "br") o();
+ else if (b === void 0) l(i, oL(d));
+ else if (v[1]) u(_);
+ else {
+ var p = v[4], k = { type: _ }, E = Cb(p, lae);
+ if (E ? (E = E.replace(Uat, "$1 fill:"), b && (E += ";" + b)) : b && (E = b), E && (k.style = E), _ === "a") {
+ r = true;
+ var T = Cb(p, uae);
+ if (T) {
+ var L = fae(T);
+ L && (k.href = L, k.target = Cb(p, cae) || "_blank", k.popup = Cb(p, Nat));
+ }
+ }
+ s(k);
+ }
+ }
+ return r;
+ }
+ function fae(e) {
+ var t = encodeURI(decodeURI(e)), r = document.createElement("a"), n = document.createElement("a");
+ r.href = e, n.href = t;
+ var i = r.protocol, a = n.protocol;
+ return nae.indexOf(i) !== -1 && nae.indexOf(a) !== -1 ? t : "";
+ }
+ b0.sanitizeHTML = function(t) {
+ t = t.replace(sae, " ");
+ for (var r = document.createElement("p"), n = r, i = [], a = t.split(bq), o = 0; o < a.length; o++) {
+ var s = a[o], l = s.match(wq), u = l && l[2].toLowerCase();
+ if (u in oae) if (l[1]) i.length && (n = i.pop());
+ else {
+ var c = l[4], f = Cb(c, lae), h = f ? { style: f } : {};
+ if (u === "a") {
+ var d = Cb(c, uae);
+ if (d) {
+ var v = fae(d);
+ if (v) {
+ h.href = v;
+ var _ = Cb(c, cae);
+ _ && (h.target = _);
+ }
+ }
+ }
+ var b = document.createElement(u);
+ n.appendChild(b), Fh.select(b).attr(h), n = b, i.push(b);
+ }
+ else n.appendChild(document.createTextNode(oL(s)));
+ }
+ var p = "innerHTML";
+ return r[p];
+ };
+ b0.lineCount = function(t) {
+ return t.selectAll("tspan.line").size() || 1;
+ };
+ b0.positionText = function(t, r, n) {
+ return t.each(function() {
+ var i = Fh.select(this);
+ function a(l, u) {
+ return u === void 0 ? (u = i.attr(l), u === null && (i.attr(l, 0), u = 0)) : i.attr(l, u), u;
+ }
+ var o = a("x", r), s = a("y", n);
+ this.nodeName === "text" && i.selectAll("tspan.line").attr({ x: o, y: s });
+ });
+ };
+ function aae(e, t, r) {
+ var n = r.horizontalAlign, i = r.verticalAlign || "top", a = e.node().getBoundingClientRect(), o = t.node().getBoundingClientRect(), s, l, u;
+ return i === "bottom" ? l = function() {
+ return a.bottom - s.height;
+ } : i === "middle" ? l = function() {
+ return a.top + (a.height - s.height) / 2;
+ } : l = function() {
+ return a.top;
+ }, n === "right" ? u = function() {
+ return a.right - s.width;
+ } : n === "center" ? u = function() {
+ return a.left + (a.width - s.width) / 2;
+ } : u = function() {
+ return a.left;
+ }, function() {
+ s = this.node().getBoundingClientRect();
+ var c = u() - o.left, f = l() - o.top, h = r.gd || {};
+ if (r.gd) {
+ h._fullLayout._calcInverseTransform(h);
+ var d = Ly.apply3DTransform(h._fullLayout._invTransform)(c, f);
+ c = d[0], f = d[1];
+ }
+ return this.style({ top: f + "px", left: c + "px", "z-index": 1e3 }), this;
+ };
+ }
+ var xq = "1px ";
+ b0.makeTextShadow = function(e) {
+ var t = xq, r = xq, n = xq;
+ return t + r + n + e + ", -" + t + "-" + r + n + e + ", " + t + "-" + r + n + e + ", -" + t + r + n + e;
+ };
+ b0.makeEditable = function(e, t) {
+ var r = t.gd, n = t.delegate, i = Fh.dispatch("edit", "input", "cancel"), a = n || e;
+ if (e.style({ "pointer-events": n ? "none" : "all" }), e.size() !== 1) throw new Error("boo");
+ function o() {
+ l(), e.style({ opacity: 0 });
+ var u = a.attr("class"), c;
+ u ? c = "." + u.split(" ")[0] + "-math-group" : c = "[class*=-math-group]", c && Fh.select(e.node().parentNode).select(c).style({ opacity: 0 });
+ }
+ function s(u) {
+ var c = u.node(), f = document.createRange();
+ f.selectNodeContents(c);
+ var h = window.getSelection();
+ h.removeAllRanges(), h.addRange(f), c.focus();
+ }
+ function l() {
+ var u = Fh.select(r), c = u.select(".svg-container"), f = c.append("div"), h = e.node().style, d = parseFloat(h.fontSize || 12), v = t.text;
+ v === void 0 && (v = e.attr("data-unformatted")), f.classed("plugin-editable editable", true).style({ position: "absolute", "font-family": h.fontFamily || "Arial", "font-size": d, color: t.fill || h.fill || "black", opacity: 1, "background-color": t.background || "transparent", outline: "#ffffff33 1px solid", margin: [-d / 8 + 1, 0, 0, -1].join("px ") + "px", padding: "0", "box-sizing": "border-box" }).attr({ contenteditable: true }).text(v).call(aae(e, c, t)).on("blur", function() {
+ r._editing = false, e.text(this.textContent).style({ opacity: 1 });
+ var _ = Fh.select(this).attr("class"), b;
+ _ ? b = "." + _.split(" ")[0] + "-math-group" : b = "[class*=-math-group]", b && Fh.select(e.node().parentNode).select(b).style({ opacity: 0 });
+ var p = this.textContent;
+ Fh.select(this).transition().duration(0).remove(), Fh.select(document).on("mouseup", null), i.edit.call(e, p);
+ }).on("focus", function() {
+ var _ = this;
+ r._editing = true, Fh.select(document).on("mouseup", function() {
+ if (Fh.event.target === _) return false;
+ document.activeElement === f.node() && f.node().blur();
+ });
+ }).on("keyup", function() {
+ Fh.event.which === 27 ? (r._editing = false, e.style({ opacity: 1 }), Fh.select(this).style({ opacity: 0 }).on("blur", function() {
+ return false;
+ }).transition().remove(), i.cancel.call(e, this.textContent)) : (i.input.call(e, this.textContent), Fh.select(this).call(aae(e, c, t)));
+ }).on("keydown", function() {
+ Fh.event.which === 13 && this.blur();
+ }).call(s);
+ }
+ return t.immediate ? o() : a.on("click", o), Fh.rebind(e, i, "on");
+ };
+ });
+ var pv = ye((Anr, _ae) => {
+ var Wat = Oa(), lL = fd(), iM = Eo(), sL = Dr(), hae = ka(), Xat = mb().isValid;
+ function Zat(e, t, r) {
+ var n = t ? sL.nestedProperty(e, t).get() || {} : e, i = n[r || "color"];
+ i && i._inputArray && (i = i._inputArray);
+ var a = false;
+ if (sL.isArrayOrTypedArray(i)) {
+ for (var o = 0; o < i.length; o++) if (iM(i[o])) {
+ a = true;
+ break;
+ }
+ }
+ return sL.isPlainObject(n) && (a || n.showscale === true || iM(n.cmin) && iM(n.cmax) || Xat(n.colorscale) || sL.isPlainObject(n.colorbar));
+ }
+ var dae = ["showscale", "autocolorscale", "colorscale", "reversescale", "colorbar"], rM = ["min", "max", "mid", "auto"];
+ function pae(e) {
+ var t = e._colorAx, r = t || e, n = {}, i, a, o;
+ for (a = 0; a < dae.length; a++) o = dae[a], n[o] = r[o];
+ if (t) for (i = "c", a = 0; a < rM.length; a++) o = rM[a], n[o] = r["c" + o];
+ else {
+ var s;
+ for (a = 0; a < rM.length; a++) {
+ if (o = rM[a], s = "c" + o, s in r) {
+ n[o] = r[s];
+ continue;
+ }
+ s = "z" + o, s in r && (n[o] = r[s]);
+ }
+ i = s.charAt(0);
+ }
+ return n._sync = function(l, u) {
+ var c = rM.indexOf(l) !== -1 ? i + l : l;
+ r[c] = r["_" + c] = u;
+ }, n;
+ }
+ function gae(e) {
+ for (var t = pae(e), r = t.min, n = t.max, i = t.reversescale ? mae(t.colorscale) : t.colorscale, a = i.length, o = new Array(a), s = new Array(a), l = 0; l < a; l++) {
+ var u = i[l];
+ o[l] = r + u[0] * (n - r), s[l] = u[1];
+ }
+ return { domain: o, range: s };
+ }
+ function mae(e) {
+ for (var t = e.length, r = new Array(t), n = t - 1, i = 0; n >= 0; n--, i++) {
+ var a = e[n];
+ r[i] = [1 - a[0], a[1]];
+ }
+ return r;
+ }
+ function yae(e, t) {
+ t = t || {};
+ for (var r = e.domain, n = e.range, i = n.length, a = new Array(i), o = 0; o < i; o++) {
+ var s = lL(n[o]).toRgb();
+ a[o] = [s.r, s.g, s.b, s.a];
+ }
+ var l = Wat.scale.linear().domain(r).range(a).clamp(true), u = t.noNumericCheck, c = t.returnArray, f;
+ return u && c ? f = l : u ? f = function(h) {
+ return vae(l(h));
+ } : c ? f = function(h) {
+ return iM(h) ? l(h) : lL(h).isValid() ? h : hae.defaultLine;
+ } : f = function(h) {
+ return iM(h) ? vae(l(h)) : lL(h).isValid() ? h : hae.defaultLine;
+ }, f.domain = l.domain, f.range = function() {
+ return n;
+ }, f;
+ }
+ function Yat(e, t) {
+ return yae(gae(e), t);
+ }
+ function vae(e) {
+ var t = { r: e[0], g: e[1], b: e[2], a: e[3] };
+ return lL(t).toRgbString();
+ }
+ _ae.exports = { hasColorscale: Zat, extractOpts: pae, extractScale: gae, flipScale: mae, makeColorScaleFunc: yae, makeColorScaleFuncFromTrace: Yat };
+ });
+ var df = ye((Snr, wae) => {
+ var xae = HO(), Kat = xae.FORMAT_LINK, Jat = xae.DATE_FORMAT_LINK;
+ function $at(e, t) {
+ return { valType: "string", dflt: "", editType: "none", description: (t ? Tq : bae)("hover text", e) + ["By default the values are formatted using " + (t ? "generic number format" : "`" + e + "axis.hoverformat`") + "."].join(" ") };
+ }
+ function Tq(e, t) {
+ return ["Sets the " + e + " formatting rule" + (t ? "for `" + t + "` " : ""), "using d3 formatting mini-languages", "which are very similar to those in Python. For numbers, see: " + Kat + "."].join(" ");
+ }
+ function bae(e, t) {
+ return Tq(e, t) + [" And for dates see: " + Jat + ".", "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(" ");
+ }
+ wae.exports = { axisHoverFormat: $at, descriptionOnlyNumbers: Tq, descriptionWithDates: bae };
+ });
+ var Rd = ye((Enr, Bae) => {
+ var Tae = ec(), D3 = Ih(), qae = Pd().dash, Sq = Ao().extendFlat, Aae = vl().templatedArray;
+ Ll().templateFormatStringDescription;
+ var Sae = df().descriptionWithDates, Qat = fs().ONEDAY, mm = Rh(), eot = mm.HOUR_PATTERN, tot = mm.WEEKDAY_PATTERN, Aq = { valType: "enumerated", values: ["auto", "linear", "array"], editType: "ticks", impliedEdits: { tick0: void 0, dtick: void 0 } }, rot = Sq({}, Aq, { values: Aq.values.slice().concat(["sync"]) });
+ function Mae(e) {
+ return { valType: "integer", min: 0, dflt: e ? 5 : 0, editType: "ticks" };
+ }
+ var Eae = { valType: "any", editType: "ticks", impliedEdits: { tickmode: "linear" } }, kae = { valType: "any", editType: "ticks", impliedEdits: { tickmode: "linear" } }, Cae = { valType: "data_array", editType: "ticks" }, Lae = { valType: "enumerated", values: ["outside", "inside", ""], editType: "ticks" };
+ function Pae(e) {
+ var t = { valType: "number", min: 0, editType: "ticks" };
+ return e || (t.dflt = 5), t;
+ }
+ function Iae(e) {
+ var t = { valType: "number", min: 0, editType: "ticks" };
+ return e || (t.dflt = 1), t;
+ }
+ var Rae = { valType: "color", dflt: D3.defaultLine, editType: "ticks" }, Dae = { valType: "color", dflt: D3.lightLine, editType: "ticks" };
+ function Fae(e) {
+ var t = { valType: "number", min: 0, editType: "ticks" };
+ return e || (t.dflt = 1), t;
+ }
+ var zae = Sq({}, qae, { editType: "ticks" }), Oae = { valType: "boolean", editType: "ticks" };
+ Bae.exports = { visible: { valType: "boolean", editType: "plot" }, color: { valType: "color", dflt: D3.defaultLine, editType: "ticks" }, title: { text: { valType: "string", editType: "ticks" }, font: Tae({ editType: "ticks" }), standoff: { valType: "number", min: 0, editType: "ticks" }, editType: "ticks" }, type: { valType: "enumerated", values: ["-", "linear", "log", "date", "category", "multicategory"], dflt: "-", editType: "calc", _noTemplating: true }, autotypenumbers: { valType: "enumerated", values: ["convert types", "strict"], dflt: "convert types", editType: "calc" }, autorange: { valType: "enumerated", values: [true, false, "reversed", "min reversed", "max reversed", "min", "max"], dflt: true, 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: true, 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": false }, anim: true }, { valType: "any", editType: "axrange", impliedEdits: { "^autorange": false }, anim: true }], editType: "axrange", impliedEdits: { autorange: false }, anim: true }, minallowed: { valType: "any", editType: "plot", impliedEdits: { "^autorange": false } }, maxallowed: { valType: "any", editType: "plot", impliedEdits: { "^autorange": false } }, fixedrange: { valType: "boolean", dflt: false, 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: [mm.idRegex.x.toString(), mm.idRegex.y.toString(), false], 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: [mm.idRegex.x.toString(), mm.idRegex.y.toString()], editType: "calc" }, rangebreaks: Aae("rangebreak", { enabled: { valType: "boolean", dflt: true, editType: "calc" }, bounds: { valType: "info_array", items: [{ valType: "any", editType: "calc" }, { valType: "any", editType: "calc" }], editType: "calc" }, pattern: { valType: "enumerated", values: [tot, eot, ""], editType: "calc" }, values: { valType: "info_array", freeLength: true, editType: "calc", items: { valType: "any", editType: "calc" } }, dvalue: { valType: "number", editType: "calc", min: 0, dflt: Qat }, editType: "calc" }), tickmode: rot, nticks: Mae(), tick0: Eae, dtick: kae, ticklabelstep: { valType: "integer", min: 1, dflt: 1, editType: "ticks" }, tickvals: Cae, ticktext: { valType: "data_array", editType: "ticks" }, ticks: Lae, 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: true, editType: "calc" }, mirror: { valType: "enumerated", values: [true, "ticks", false, "all", "allticks"], dflt: false, editType: "ticks+layoutstyle" }, ticklen: Pae(), tickwidth: Iae(), tickcolor: Rae, showticklabels: { valType: "boolean", dflt: true, editType: "ticks" }, labelalias: { valType: "any", dflt: false, editType: "ticks" }, automargin: { valType: "flaglist", flags: ["height", "width", "left", "right", "top", "bottom"], extras: [true, false], dflt: false, editType: "ticks" }, showspikes: { valType: "boolean", dflt: false, editType: "modebar" }, spikecolor: { valType: "color", dflt: null, editType: "none" }, spikethickness: { valType: "number", dflt: 3, editType: "none" }, spikedash: Sq({}, qae, { 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: Tae({ editType: "ticks" }), tickangle: { valType: "angle", dflt: "auto", editType: "ticks" }, autotickangles: { valType: "info_array", freeLength: true, 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: false, editType: "ticks" }, tickformat: { valType: "string", dflt: "", editType: "ticks", description: Sae("tick label") }, tickformatstops: Aae("tickformatstop", { enabled: { valType: "boolean", dflt: true, 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: Sae("hover text") }, unifiedhovertitle: { text: { valType: "string", dflt: "", editType: "none" }, editType: "none" }, showline: { valType: "boolean", dflt: false, editType: "ticks+layoutstyle" }, linecolor: { valType: "color", dflt: D3.defaultLine, editType: "layoutstyle" }, linewidth: { valType: "number", min: 0, dflt: 1, editType: "ticks+layoutstyle" }, showgrid: Oae, gridcolor: Dae, gridwidth: Fae(), griddash: zae, zeroline: { valType: "boolean", editType: "ticks" }, zerolinecolor: { valType: "color", dflt: D3.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: true, editType: "ticks" }, dividercolor: { valType: "color", dflt: D3.defaultLine, editType: "ticks" }, dividerwidth: { valType: "number", dflt: 1, editType: "ticks" }, anchor: { valType: "enumerated", values: ["free", mm.idRegex.x.toString(), mm.idRegex.y.toString()], editType: "plot" }, side: { valType: "enumerated", values: ["top", "bottom", "left", "right"], editType: "plot" }, overlaying: { valType: "enumerated", values: ["free", mm.idRegex.x.toString(), mm.idRegex.y.toString()], editType: "plot" }, minor: { tickmode: Aq, nticks: Mae("minor"), tick0: Eae, dtick: kae, tickvals: Cae, ticks: Lae, ticklen: Pae("minor"), tickwidth: Iae("minor"), tickcolor: Rae, gridcolor: Dae, gridwidth: Fae("minor"), griddash: zae, showgrid: Oae, 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: false, 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 uL = ye((knr, Vae) => {
+ var $c = Rd(), Nae = ec(), Uae = Ao().extendFlat, iot = mc().overrideAll;
+ Vae.exports = iot({ 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: $c.linecolor, outlinewidth: $c.linewidth, bordercolor: $c.linecolor, borderwidth: { valType: "number", min: 0, dflt: 0 }, bgcolor: { valType: "color", dflt: "rgba(0,0,0,0)" }, tickmode: $c.minor.tickmode, nticks: $c.nticks, tick0: $c.tick0, dtick: $c.dtick, tickvals: $c.tickvals, ticktext: $c.ticktext, ticks: Uae({}, $c.ticks, { dflt: "" }), ticklabeloverflow: Uae({}, $c.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: $c.ticklen, tickwidth: $c.tickwidth, tickcolor: $c.tickcolor, ticklabelstep: $c.ticklabelstep, showticklabels: $c.showticklabels, labelalias: $c.labelalias, tickfont: Nae({}), tickangle: $c.tickangle, tickformat: $c.tickformat, tickformatstops: $c.tickformatstops, tickprefix: $c.tickprefix, showtickprefix: $c.showtickprefix, ticksuffix: $c.ticksuffix, showticksuffix: $c.showticksuffix, separatethousands: $c.separatethousands, exponentformat: $c.exponentformat, minexponent: $c.minexponent, showexponent: $c.showexponent, title: { text: { valType: "string" }, font: Nae({}), side: { valType: "enumerated", values: ["right", "top", "bottom"] } } }, "colorbars", "from-root");
+ });
+ var Tu = ye((Lnr, Hae) => {
+ var not = uL(), aot = p3().counter, oot = t_(), Gae = mb().scales;
+ oot(Gae);
+ function cL(e) {
+ return "`" + e + "`";
+ }
+ Hae.exports = function(t, r) {
+ t = t || "", r = r || {};
+ var n = r.cLetter || "c";
+ "onlyIfNumerical" in r ? r.onlyIfNumerical : !!t;
+ var a = "noScale" in r ? r.noScale : t === "marker.line", o = "showScaleDflt" in r ? r.showScaleDflt : n === "z", s = typeof r.colorscaleDflt == "string" ? Gae[r.colorscaleDflt] : null, l = r.editTypeOverride || "", u = t ? t + "." : "", c;
+ "colorAttr" in r ? (c = r.colorAttr, r.colorAttr) : (c = { z: "z", c: "color" }[n], "in " + cL(u + c));
+ var d = n + "auto", v = n + "min", _ = n + "max", b = n + "mid", L = {};
+ L[v] = L[_] = void 0;
+ var x = {};
+ x[d] = false;
+ var C = {};
+ return c === "color" && (C.color = { valType: "color", arrayOk: true, editType: l || "style" }, r.anim && (C.color.anim = true)), C[d] = { valType: "boolean", dflt: true, editType: "calc", impliedEdits: L }, C[v] = { valType: "number", dflt: null, editType: l || "plot", impliedEdits: x }, C[_] = { valType: "number", dflt: null, editType: l || "plot", impliedEdits: x }, C[b] = { valType: "number", dflt: null, editType: "calc", impliedEdits: L }, C.colorscale = { valType: "colorscale", editType: "calc", dflt: s, impliedEdits: { autocolorscale: false } }, C.autocolorscale = { valType: "boolean", dflt: r.autoColorDflt !== false, editType: "calc", impliedEdits: { colorscale: void 0 } }, C.reversescale = { valType: "boolean", dflt: false, editType: "plot" }, a || (C.showscale = { valType: "boolean", dflt: o, editType: "calc" }, C.colorbar = not), r.noColorAxis || (C.coloraxis = { valType: "subplotid", regex: aot("coloraxis"), dflt: null, editType: "calc" }), C;
+ };
+ });
+ var Eq = ye((Pnr, jae) => {
+ var sot = Ao().extendFlat, lot = Tu(), Mq = mb().scales;
+ jae.exports = { editType: "calc", colorscale: { editType: "calc", sequential: { valType: "colorscale", dflt: Mq.Reds, editType: "calc" }, sequentialminus: { valType: "colorscale", dflt: Mq.Blues, editType: "calc" }, diverging: { valType: "colorscale", dflt: Mq.RdBu, editType: "calc" } }, coloraxis: sot({ _isSubplotObj: true, editType: "calc" }, lot("", { colorAttr: "corresponding trace color array(s)", noColorAxis: true, showScaleDflt: true })) };
+ });
+ var kq = ye((Inr, Wae) => {
+ var uot = Dr();
+ Wae.exports = function(t) {
+ return uot.isPlainObject(t.colorbar);
+ };
+ });
+ var Pq = ye((Lq) => {
+ var Cq = Eo(), Xae = Dr(), Zae = fs(), cot = Zae.ONEDAY, fot = Zae.ONEWEEK;
+ Lq.dtick = function(e, t) {
+ var r = t === "log", n = t === "date", i = t === "category", a = n ? cot : 1;
+ if (!e) return a;
+ if (Cq(e)) return e = Number(e), e <= 0 ? a : i ? Math.max(1, Math.round(e)) : n ? Math.max(0.1, e) : e;
+ if (typeof e != "string" || !(n || r)) return a;
+ var o = e.charAt(0), s = e.slice(1);
+ return s = Cq(s) ? Number(s) : 0, s <= 0 || !(n && o === "M" && s === Math.round(s) || r && o === "L" || r && o === "D" && (s === 1 || s === 2)) ? a : e;
+ };
+ Lq.tick0 = function(e, t, r, n) {
+ if (t === "date") return Xae.cleanDate(e, Xae.dateTick0(r, n % fot === 0 ? 1 : 0));
+ if (!(n === "D1" || n === "D2")) return Cq(e) ? Number(e) : 0;
+ };
+ });
+ var Lb = ye((Dnr, Kae) => {
+ var Yae = Pq(), hot = Dr().isArrayOrTypedArray, dot = vv().isTypedArraySpec, vot = vv().decodeTypedArraySpec;
+ Kae.exports = function(t, r, n, i, a) {
+ a || (a = {});
+ var o = a.isMinor, s = o ? t.minor || {} : t, l = o ? r.minor : r, u = o ? "minor." : "";
+ function c(k) {
+ var E = s[k];
+ return dot(E) && (E = vot(E)), E !== void 0 ? E : (l._template || {})[k];
+ }
+ var f = c("tick0"), h = c("dtick"), d = c("tickvals"), v = hot(d) ? "array" : h ? "linear" : "auto", _ = n(u + "tickmode", v);
+ if (_ === "auto" || _ === "sync") n(u + "nticks");
+ else if (_ === "linear") {
+ var b = l.dtick = Yae.dtick(h, i);
+ l.tick0 = Yae.tick0(f, i, r.calendar, b);
+ } else if (i !== "multicategory") {
+ var p = n(u + "tickvals");
+ p === void 0 ? l.tickmode = "auto" : o || n("ticktext");
+ }
+ };
+ });
+ var F3 = ye((Fnr, $ae) => {
+ var Iq = Dr(), Jae = Rd();
+ $ae.exports = function(t, r, n, i) {
+ var a = i.isMinor, o = a ? t.minor || {} : t, s = a ? r.minor : r, l = a ? Jae.minor : Jae, u = a ? "minor." : "", c = Iq.coerce2(o, s, l, "ticklen", a ? (r.ticklen || 5) * 0.6 : void 0), f = Iq.coerce2(o, s, l, "tickwidth", a ? r.tickwidth || 1 : void 0), h = Iq.coerce2(o, s, l, "tickcolor", (a ? r.tickcolor : void 0) || s.color), d = n(u + "ticks", !a && i.outerTicks || c || f || h ? "outside" : "");
+ d || (delete s.ticklen, delete s.tickwidth, delete s.tickcolor);
+ };
+ });
+ var Rq = ye((znr, Qae) => {
+ Qae.exports = function(t) {
+ var r = ["showexponent", "showtickprefix", "showticksuffix"], n = r.filter(function(a) {
+ return t[a] !== void 0;
+ }), i = function(a) {
+ return t[a] === t[n[0]];
+ };
+ if (n.every(i) || n.length === 1) return t[n[0]];
+ };
+ });
+ var Zd = ye((Onr, eoe) => {
+ var fL = Dr(), pot = vl();
+ eoe.exports = function(t, r, n) {
+ var i = n.name, a = n.inclusionAttr || "visible", o = r[i], s = fL.isArrayOrTypedArray(t[i]) ? t[i] : [], l = r[i] = [], u = pot.arrayTemplater(r, i, a), c, f;
+ for (c = 0; c < s.length; c++) {
+ var h = s[c];
+ fL.isPlainObject(h) ? f = u.newItem(h) : (f = u.newItem({}), f[a] = false), f._index = c, f[a] !== false && n.handleItemDefaults(h, f, r, n), l.push(f);
+ }
+ var d = u.defaultItems();
+ for (c = 0; c < d.length; c++) f = d[c], f._index = l.length, n.handleItemDefaults({}, f, r, n, {}), l.push(f);
+ if (fL.isArrayOrTypedArray(o)) {
+ var v = Math.min(o.length, l.length);
+ for (c = 0; c < v; c++) fL.relinkPrivateKeys(l[c], o[c]);
+ }
+ return l;
+ };
+ });
+ var s_ = ye((qnr, roe) => {
+ var Dq = Dr(), got = ka().contrast, toe = Rd(), mot = Rq(), yot = Zd();
+ roe.exports = function(t, r, n, i, a) {
+ a || (a = {});
+ var o = n("labelalias");
+ Dq.isPlainObject(o) || delete r.labelalias;
+ var s = mot(t), l = n("showticklabels");
+ if (l) {
+ a.noTicklabelshift || n("ticklabelshift"), a.noTicklabelstandoff || n("ticklabelstandoff");
+ var u = a.font || {}, c = r.color, f = r.ticklabelposition || "", h = f.indexOf("inside") !== -1 ? got(a.bgColor) : c && c !== toe.color.dflt ? c : u.color;
+ if (Dq.coerceFont(n, "tickfont", u, { overrideDflt: { color: h } }), !a.noTicklabelstep && i !== "multicategory" && i !== "log" && n("ticklabelstep"), !a.noAng) {
+ var d = n("tickangle");
+ !a.noAutotickangles && d === "auto" && n("autotickangles");
+ }
+ if (i !== "category") {
+ var v = n("tickformat");
+ yot(t, r, { name: "tickformatstops", inclusionAttr: "enabled", handleItemDefaults: _ot }), r.tickformatstops.length || delete r.tickformatstops, !a.noExp && !v && i !== "date" && (n("showexponent", s), n("exponentformat"), n("minexponent"), n("separatethousands"));
+ }
+ !a.noMinorloglabels && i === "log" && n("minorloglabels");
+ }
+ };
+ function _ot(e, t) {
+ function r(i, a) {
+ return Dq.coerce(e, t, toe.tickformatstops, i, a);
+ }
+ var n = r("enabled");
+ n && (r("dtickrange"), r("value"));
+ }
+ });
+ var l_ = ye((Bnr, ioe) => {
+ var xot = Rq();
+ ioe.exports = function(t, r, n, i, a) {
+ a || (a = {});
+ var o = a.tickSuffixDflt, s = xot(t), l = n("tickprefix");
+ l && n("showtickprefix", s);
+ var u = n("ticksuffix", o);
+ u && n("showticksuffix", s);
+ };
+ });
+ var Fq = ye((Nnr, noe) => {
+ var u_ = Dr(), bot = vl(), wot = Lb(), Tot = F3(), Aot = s_(), Sot = l_(), Mot = uL();
+ noe.exports = function(t, r, n) {
+ var i = bot.newContainer(r, "colorbar"), a = t.colorbar || {};
+ function o(A, z) {
+ return u_.coerce(a, i, Mot, A, z);
+ }
+ var s = n.margin || { t: 0, b: 0, l: 0, r: 0 }, l = n.width - s.l - s.r, u = n.height - s.t - s.b, c = o("orientation"), f = c === "v", h = o("thicknessmode");
+ o("thickness", h === "fraction" ? 30 / (f ? l : u) : 30);
+ var d = o("lenmode");
+ o("len", d === "fraction" ? 1 : f ? u : l);
+ var v = o("yref"), _ = o("xref"), b = v === "paper", p = _ === "paper", k, E, T, L = "left";
+ f ? (T = "middle", L = p ? "left" : "right", k = p ? 1.02 : 1, E = 0.5) : (T = b ? "bottom" : "top", L = "center", k = 0.5, E = b ? 1.02 : 1), u_.coerce(a, i, { x: { valType: "number", min: p ? -2 : 0, max: p ? 3 : 1, dflt: k } }, "x"), u_.coerce(a, i, { y: { valType: "number", min: b ? -2 : 0, max: b ? 3 : 1, dflt: E } }, "y"), o("xanchor", L), o("xpad"), o("yanchor", T), o("ypad"), u_.noneOrAll(a, i, ["x", "y"]), o("outlinecolor"), o("outlinewidth"), o("bordercolor"), o("borderwidth"), o("bgcolor");
+ var x = u_.coerce(a, i, { ticklabelposition: { valType: "enumerated", dflt: "outside", values: f ? ["outside", "inside", "outside top", "inside top", "outside bottom", "inside bottom"] : ["outside", "inside", "outside left", "inside left", "outside right", "inside right"] } }, "ticklabelposition");
+ o("ticklabeloverflow", x.indexOf("inside") !== -1 ? "hide past domain" : "hide past div"), wot(a, i, o, "linear");
+ var C = n.font, M = { noAutotickangles: true, noTicklabelshift: true, noTicklabelstandoff: true, outerTicks: false, font: C };
+ x.indexOf("inside") !== -1 && (M.bgColor = "black"), Sot(a, i, o, "linear", M), Aot(a, i, o, "linear", M), Tot(a, i, o, "linear", M), o("title.text", n._dfltTitle.colorbar);
+ var g = i.showticklabels ? i.tickfont : C, P = u_.extendFlat({}, C, { family: g.family, size: u_.bigFont(g.size) });
+ u_.coerceFont(o, "title.font", P), o("title.side", f ? "top" : "right");
+ };
+ });
+ var td = ye((Unr, soe) => {
+ var aoe = Eo(), Oq = Dr(), Eot = kq(), kot = Fq(), ooe = mb().isValid, Cot = qa().traceIs;
+ function zq(e, t) {
+ var r = t.slice(0, t.length - 1);
+ return t ? Oq.nestedProperty(e, r).get() || {} : e;
+ }
+ soe.exports = function e(t, r, n, i, a) {
+ var o = a.prefix, s = a.cLetter, l = "_module" in r, u = zq(t, o), c = zq(r, o), f = zq(r._template || {}, o) || {}, h = function() {
+ return delete t.coloraxis, delete r.coloraxis, e(t, r, n, i, a);
+ };
+ if (l) {
+ var d = n._colorAxes || {}, v = i(o + "coloraxis");
+ if (v) {
+ var _ = Cot(r, "contour") && Oq.nestedProperty(r, "contours.coloring").get() || "heatmap", b = d[v];
+ b ? (b[2].push(h), b[0] !== _ && (b[0] = false, Oq.warn(["Ignoring coloraxis:", v, "setting", "as it is linked to incompatible colorscales."].join(" ")))) : d[v] = [_, r, [h]];
+ return;
+ }
+ }
+ var p = u[s + "min"], k = u[s + "max"], E = aoe(p) && aoe(k) && p < k, T = i(o + s + "auto", !E);
+ T ? i(o + s + "mid") : (i(o + s + "min"), i(o + s + "max"));
+ var L = u.colorscale, x = f.colorscale, C;
+ if (L !== void 0 && (C = !ooe(L)), x !== void 0 && (C = !ooe(x)), i(o + "autocolorscale", C), i(o + "colorscale"), i(o + "reversescale"), o !== "marker.line.") {
+ var M;
+ o && l && (M = Eot(u));
+ var g = i(o + "showscale", M);
+ g && (o && f && (c._template = f), kot(u, c, n));
+ }
+ };
+ });
+ var foe = ye((Vnr, coe) => {
+ var loe = Dr(), Lot = vl(), uoe = Eq(), Pot = td();
+ coe.exports = function(t, r) {
+ function n(f, h) {
+ return loe.coerce(t, r, uoe, f, h);
+ }
+ n("colorscale.sequential"), n("colorscale.sequentialminus"), n("colorscale.diverging");
+ var i = r._colorAxes, a, o;
+ function s(f, h) {
+ return loe.coerce(a, o, uoe.coloraxis, f, h);
+ }
+ for (var l in i) {
+ var u = i[l];
+ if (u[0]) a = t[l] || {}, o = Lot.newContainer(r, l, "coloraxis"), o._name = l, Pot(a, o, r, s, { prefix: "", cLetter: "c" });
+ else {
+ for (var c = 0; c < u[2].length; c++) u[2][c]();
+ delete r._colorAxes[l];
+ }
+ }
+ };
+ });
+ var doe = ye((Gnr, hoe) => {
+ var Iot = Dr(), Rot = pv().hasColorscale, Dot = pv().extractOpts;
+ hoe.exports = function(t, r) {
+ function n(c, f) {
+ var h = c["_" + f];
+ h !== void 0 && (c[f] = h);
+ }
+ function i(c, f) {
+ var h = f.container ? Iot.nestedProperty(c, f.container).get() : c;
+ if (h) if (h.coloraxis) h._colorAx = r[h.coloraxis];
+ else {
+ var d = Dot(h), v = d.auto;
+ (v || d.min === void 0) && n(h, f.min), (v || d.max === void 0) && n(h, f.max), d.autocolorscale && n(h, "colorscale");
+ }
+ }
+ for (var a = 0; a < t.length; a++) {
+ var o = t[a], s = o._module.colorbar;
+ if (s) if (Array.isArray(s)) for (var l = 0; l < s.length; l++) i(o, s[l]);
+ else i(o, s);
+ Rot(o, "marker.line") && i(o, { container: "marker.line", min: "cmin", max: "cmax" });
+ }
+ for (var u in r._colorAxes) i(r[u], { min: "cmin", max: "cmax" });
+ };
+ });
+ var gv = ye((Hnr, poe) => {
+ var voe = Eo(), qq = Dr(), Fot = pv().extractOpts;
+ poe.exports = function(t, r, n) {
+ var i = t._fullLayout, a = n.vals, o = n.containerStr, s = o ? qq.nestedProperty(r, o).get() : r, l = Fot(s), u = l.auto !== false, c = l.min, f = l.max, h = l.mid, d = function() {
+ return qq.aggNums(Math.min, null, a);
+ }, v = function() {
+ return qq.aggNums(Math.max, null, a);
+ };
+ if (c === void 0 ? c = d() : u && (s._colorAx && voe(c) ? c = Math.min(c, d()) : c = d()), f === void 0 ? f = v() : u && (s._colorAx && voe(f) ? f = Math.max(f, v()) : f = v()), u && h !== void 0 && (f - h > h - c ? c = h - (f - h) : f - h < h - c && (f = h + (h - c))), c === f && (c -= 0.5, f += 0.5), l._sync("min", c), l._sync("max", f), l.autocolorscale) {
+ var _;
+ c * f < 0 ? _ = i.colorscale.diverging : c >= 0 ? _ = i.colorscale.sequential : _ = i.colorscale.sequentialminus, l._sync("colorscale", _);
+ }
+ };
+ });
+ var tc = ye((jnr, goe) => {
+ var hL = mb(), z3 = pv();
+ goe.exports = { moduleType: "component", name: "colorscale", attributes: Tu(), layoutAttributes: Eq(), supplyLayoutDefaults: foe(), handleDefaults: td(), crossTraceDefaults: doe(), calc: gv(), scales: hL.scales, defaultScale: hL.defaultScale, getScale: hL.get, isValidScale: hL.isValid, hasColorscale: z3.hasColorscale, extractOpts: z3.extractOpts, extractScale: z3.extractScale, flipScale: z3.flipScale, makeColorScaleFunc: z3.makeColorScaleFunc, makeColorScaleFuncFromTrace: z3.makeColorScaleFuncFromTrace };
+ });
+ var Ru = ye((Wnr, yoe) => {
+ var moe = Dr(), zot = vv().isTypedArraySpec;
+ yoe.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 t = e.marker;
+ return moe.isPlainObject(t) && (moe.isArrayOrTypedArray(t.size) || zot(t.size));
+ } };
+ });
+ var O3 = ye((Xnr, _oe) => {
+ var Oot = Eo();
+ _oe.exports = function(t, r) {
+ r || (r = 2);
+ var n = t.marker, i = n.sizeref || 1, a = n.sizemin || 0, o = n.sizemode === "area" ? function(s) {
+ return Math.sqrt(s / i);
+ } : function(s) {
+ return s / i;
+ };
+ return function(s) {
+ var l = o(s / r);
+ return Oot(l) && l > 0 ? Math.max(l, a) : 0;
+ };
+ };
+ });
+ var ip = ye((mv) => {
+ var dL = Dr();
+ mv.getSubplot = function(e) {
+ return e.subplot || e.xaxis + e.yaxis || e.geo;
+ };
+ mv.isTraceInSubplots = function(e, t) {
+ if (e.type === "splom") {
+ for (var r = e.xaxes || [], n = e.yaxes || [], i = 0; i < r.length; i++) for (var a = 0; a < n.length; a++) if (t.indexOf(r[i] + n[a]) !== -1) return true;
+ return false;
+ }
+ return t.indexOf(mv.getSubplot(e)) !== -1;
+ };
+ mv.flat = function(e, t) {
+ for (var r = new Array(e.length), n = 0; n < e.length; n++) r[n] = t;
+ return r;
+ };
+ mv.p2c = function(e, t) {
+ for (var r = new Array(e.length), n = 0; n < e.length; n++) r[n] = e[n].p2c(t);
+ return r;
+ };
+ mv.getDistanceFunction = function(e, t, r, n) {
+ return e === "closest" ? n || mv.quadrature(t, r) : e.charAt(0) === "x" ? t : r;
+ };
+ mv.getClosest = function(e, t, r) {
+ if (r.index !== false) r.index >= 0 && r.index < e.length ? r.distance = 0 : r.index = false;
+ else for (var n = 1 / 0, i = e.length, a = 0; a < i; a++) n = t(e[a]), n <= r.distance && (r.index = a, r.distance = n);
+ return r;
+ };
+ mv.inbox = function(e, t, r) {
+ return e * t < 0 || e === 0 ? r : 1 / 0;
+ };
+ mv.quadrature = function(e, t) {
+ return function(r) {
+ var n = e(r), i = t(r);
+ return Math.sqrt(n * n + i * i);
+ };
+ };
+ mv.makeEventData = function(e, t, r) {
+ var n = "index" in e ? e.index : e.pointNumber, i = { data: t._input, fullData: t, curveNumber: t.index, pointNumber: n };
+ if (t._indexToPoints) {
+ var a = t._indexToPoints[n];
+ a.length === 1 ? i.pointIndex = a[0] : i.pointIndices = a;
+ } else i.pointIndex = n;
+ return t._module.eventData ? i = t._module.eventData(i, e, t, r, n) : ("xVal" in e ? i.x = e.xVal : "x" in e && (i.x = e.x), "yVal" in e ? i.y = e.yVal : "y" in e && (i.y = e.y), e.xa && (i.xaxis = e.xa), e.ya && (i.yaxis = e.ya), e.zLabelVal !== void 0 && (i.z = e.zLabelVal)), mv.appendArrayPointValue(i, t, n), i;
+ };
+ mv.appendArrayPointValue = function(e, t, r) {
+ var n = t._arrayAttrs;
+ if (n) for (var i = 0; i < n.length; i++) {
+ var a = n[i], o = xoe(a);
+ if (e[o] === void 0) {
+ var s = dL.nestedProperty(t, a).get(), l = boe(s, r);
+ l !== void 0 && (e[o] = l);
+ }
+ }
+ };
+ mv.appendArrayMultiPointValues = function(e, t, r) {
+ var n = t._arrayAttrs;
+ if (n) for (var i = 0; i < n.length; i++) {
+ var a = n[i], o = xoe(a);
+ if (e[o] === void 0) {
+ for (var s = dL.nestedProperty(t, a).get(), l = new Array(r.length), u = 0; u < r.length; u++) l[u] = boe(s, r[u]);
+ e[o] = l;
+ }
+ }
+ };
+ var qot = { ids: "id", locations: "location", labels: "label", values: "value", "marker.colors": "color", parents: "parent" };
+ function xoe(e) {
+ return qot[e] || e;
+ }
+ function boe(e, t) {
+ if (Array.isArray(t)) {
+ if (dL.isArrayOrTypedArray(e) && dL.isArrayOrTypedArray(e[t[0]])) return e[t[0]][t[1]];
+ } else return e[t];
+ }
+ var Bot = { x: true, y: true }, Not = { "x unified": true, "y unified": true };
+ mv.isUnifiedHover = function(e) {
+ return typeof e != "string" ? false : !!Not[e];
+ };
+ mv.isXYhover = function(e) {
+ return typeof e != "string" ? false : !!Bot[e];
+ };
+ });
+ var nM = ye((Ynr, woe) => {
+ woe.exports = Vot;
+ var Bq = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0 }, Uot = /([astvzqmhlc])([^astvzqmhlc]*)/ig;
+ function Vot(e) {
+ var t = [];
+ return e.replace(Uot, function(r, n, i) {
+ var a = n.toLowerCase();
+ for (i = Hot(i), a == "m" && i.length > 2 && (t.push([n].concat(i.splice(0, 2))), a = "l", n = n == "m" ? "l" : "L"); ; ) {
+ if (i.length == Bq[a]) return i.unshift(n), t.push(i);
+ if (i.length < Bq[a]) throw new Error("malformed path data");
+ t.push([n].concat(i.splice(0, Bq[a])));
+ }
+ }), t;
+ }
+ var Got = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;
+ function Hot(e) {
+ var t = e.match(Got);
+ return t ? t.map(Number) : [];
+ }
+ });
+ var Coe = ye((Knr, koe) => {
+ var jot = nM(), ca = function(e, t) {
+ return t ? Math.round(e * (t = Math.pow(10, t))) / t : Math.round(e);
+ }, hs = "M0,0Z", Toe = Math.sqrt(2), c_ = Math.sqrt(3), Nq = Math.PI, Uq = Math.cos, Vq = Math.sin;
+ koe.exports = { circle: { n: 0, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2), i = "M" + n + ",0A" + n + "," + n + " 0 1,1 0,-" + n + "A" + n + "," + n + " 0 0,1 " + n + ",0Z";
+ return r ? vs(t, r, i) : i;
+ } }, square: { n: 1, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M" + n + "," + n + "H-" + n + "V-" + n + "H" + n + "Z");
+ } }, diamond: { n: 2, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.3, 2);
+ return vs(t, r, "M" + n + ",0L0," + n + "L-" + n + ",0L0,-" + n + "Z");
+ } }, cross: { n: 3, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.4, 2), i = ca(e * 1.2, 2);
+ return vs(t, r, "M" + i + "," + n + "H" + n + "V" + i + "H-" + n + "V" + n + "H-" + i + "V-" + n + "H-" + n + "V-" + i + "H" + n + "V-" + n + "H" + i + "Z");
+ } }, x: { n: 4, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.8 / Toe, 2), i = "l" + n + "," + n, a = "l" + n + ",-" + n, o = "l-" + n + ",-" + n, s = "l-" + n + "," + n;
+ return vs(t, r, "M0," + n + i + a + o + a + o + s + o + s + i + s + i + "Z");
+ } }, "triangle-up": { n: 5, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 2 / c_, 2), i = ca(e / 2, 2), a = ca(e, 2);
+ return vs(t, r, "M-" + n + "," + i + "H" + n + "L0,-" + a + "Z");
+ } }, "triangle-down": { n: 6, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 2 / c_, 2), i = ca(e / 2, 2), a = ca(e, 2);
+ return vs(t, r, "M-" + n + ",-" + i + "H" + n + "L0," + a + "Z");
+ } }, "triangle-left": { n: 7, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 2 / c_, 2), i = ca(e / 2, 2), a = ca(e, 2);
+ return vs(t, r, "M" + i + ",-" + n + "V" + n + "L-" + a + ",0Z");
+ } }, "triangle-right": { n: 8, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 2 / c_, 2), i = ca(e / 2, 2), a = ca(e, 2);
+ return vs(t, r, "M-" + i + ",-" + n + "V" + n + "L" + a + ",0Z");
+ } }, "triangle-ne": { n: 9, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.6, 2), i = ca(e * 1.2, 2);
+ return vs(t, r, "M-" + i + ",-" + n + "H" + n + "V" + i + "Z");
+ } }, "triangle-se": { n: 10, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.6, 2), i = ca(e * 1.2, 2);
+ return vs(t, r, "M" + n + ",-" + i + "V" + n + "H-" + i + "Z");
+ } }, "triangle-sw": { n: 11, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.6, 2), i = ca(e * 1.2, 2);
+ return vs(t, r, "M" + i + "," + n + "H-" + n + "V-" + i + "Z");
+ } }, "triangle-nw": { n: 12, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.6, 2), i = ca(e * 1.2, 2);
+ return vs(t, r, "M-" + n + "," + i + "V-" + n + "H" + i + "Z");
+ } }, pentagon: { n: 13, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.951, 2), i = ca(e * 0.588, 2), a = ca(-e, 2), o = ca(e * -0.309, 2), s = ca(e * 0.809, 2);
+ return vs(t, r, "M" + n + "," + o + "L" + i + "," + s + "H-" + i + "L-" + n + "," + o + "L0," + a + "Z");
+ } }, hexagon: { n: 14, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2), i = ca(e / 2, 2), a = ca(e * c_ / 2, 2);
+ return vs(t, r, "M" + a + ",-" + i + "V" + i + "L0," + n + "L-" + a + "," + i + "V-" + i + "L0,-" + n + "Z");
+ } }, hexagon2: { n: 15, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2), i = ca(e / 2, 2), a = ca(e * c_ / 2, 2);
+ return vs(t, r, "M-" + i + "," + a + "H" + i + "L" + n + ",0L" + i + ",-" + a + "H-" + i + "L-" + n + ",0Z");
+ } }, octagon: { n: 16, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.924, 2), i = ca(e * 0.383, 2);
+ return vs(t, r, "M-" + i + ",-" + n + "H" + i + "L" + n + ",-" + i + "V" + i + "L" + i + "," + n + "H-" + i + "L-" + n + "," + i + "V-" + i + "Z");
+ } }, star: { n: 17, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = e * 1.4, i = ca(n * 0.225, 2), a = ca(n * 0.951, 2), o = ca(n * 0.363, 2), s = ca(n * 0.588, 2), l = ca(-n, 2), u = ca(n * -0.309, 2), c = ca(n * 0.118, 2), f = ca(n * 0.809, 2), h = ca(n * 0.382, 2);
+ return vs(t, r, "M" + i + "," + u + "H" + a + "L" + o + "," + c + "L" + s + "," + f + "L0," + h + "L-" + s + "," + f + "L-" + o + "," + c + "L-" + a + "," + u + "H-" + i + "L0," + l + "Z");
+ } }, hexagram: { n: 18, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.66, 2), i = ca(e * 0.38, 2), a = ca(e * 0.76, 2);
+ return vs(t, r, "M-" + a + ",0l-" + i + ",-" + n + "h" + a + "l" + i + ",-" + n + "l" + i + "," + n + "h" + a + "l-" + i + "," + n + "l" + i + "," + n + "h-" + a + "l-" + i + "," + n + "l-" + i + ",-" + n + "h-" + a + "Z");
+ } }, "star-triangle-up": { n: 19, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * c_ * 0.8, 2), i = ca(e * 0.8, 2), a = ca(e * 1.6, 2), o = ca(e * 4, 2), s = "A " + o + "," + o + " 0 0 1 ";
+ return vs(t, r, "M-" + n + "," + i + s + n + "," + i + s + "0,-" + a + s + "-" + n + "," + i + "Z");
+ } }, "star-triangle-down": { n: 20, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * c_ * 0.8, 2), i = ca(e * 0.8, 2), a = ca(e * 1.6, 2), o = ca(e * 4, 2), s = "A " + o + "," + o + " 0 0 1 ";
+ return vs(t, r, "M" + n + ",-" + i + s + "-" + n + ",-" + i + s + "0," + a + s + n + ",-" + i + "Z");
+ } }, "star-square": { n: 21, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.1, 2), i = ca(e * 2, 2), a = "A " + i + "," + i + " 0 0 1 ";
+ return vs(t, r, "M-" + n + ",-" + n + a + "-" + n + "," + n + a + n + "," + n + a + n + ",-" + n + a + "-" + n + ",-" + n + "Z");
+ } }, "star-diamond": { n: 22, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.4, 2), i = ca(e * 1.9, 2), a = "A " + i + "," + i + " 0 0 1 ";
+ return vs(t, r, "M-" + n + ",0" + a + "0," + n + a + n + ",0" + a + "0,-" + n + a + "-" + n + ",0Z");
+ } }, "diamond-tall": { n: 23, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 0.7, 2), i = ca(e * 1.4, 2);
+ return vs(t, r, "M0," + i + "L" + n + ",0L0,-" + i + "L-" + n + ",0Z");
+ } }, "diamond-wide": { n: 24, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.4, 2), i = ca(e * 0.7, 2);
+ return vs(t, r, "M0," + i + "L" + n + ",0L0,-" + i + "L-" + n + ",0Z");
+ } }, hourglass: { n: 25, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M" + n + "," + n + "H-" + n + "L" + n + ",-" + n + "H-" + n + "Z");
+ }, noDot: true }, bowtie: { n: 26, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M" + n + "," + n + "V-" + n + "L-" + n + "," + n + "V-" + n + "Z");
+ }, noDot: true }, "circle-cross": { n: 27, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M0," + n + "V-" + n + "M" + n + ",0H-" + n + "M" + n + ",0A" + n + "," + n + " 0 1,1 0,-" + n + "A" + n + "," + n + " 0 0,1 " + n + ",0Z");
+ }, needLine: true, noDot: true }, "circle-x": { n: 28, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2), i = ca(e / Toe, 2);
+ return vs(t, r, "M" + i + "," + i + "L-" + i + ",-" + i + "M" + i + ",-" + i + "L-" + i + "," + i + "M" + n + ",0A" + n + "," + n + " 0 1,1 0,-" + n + "A" + n + "," + n + " 0 0,1 " + n + ",0Z");
+ }, needLine: true, noDot: true }, "square-cross": { n: 29, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M0," + n + "V-" + n + "M" + n + ",0H-" + n + "M" + n + "," + n + "H-" + n + "V-" + n + "H" + n + "Z");
+ }, needLine: true, noDot: true }, "square-x": { n: 30, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M" + n + "," + n + "L-" + n + ",-" + n + "M" + n + ",-" + n + "L-" + n + "," + n + "M" + n + "," + n + "H-" + n + "V-" + n + "H" + n + "Z");
+ }, needLine: true, noDot: true }, "diamond-cross": { n: 31, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.3, 2);
+ return vs(t, r, "M" + n + ",0L0," + n + "L-" + n + ",0L0,-" + n + "ZM0,-" + n + "V" + n + "M-" + n + ",0H" + n);
+ }, needLine: true, noDot: true }, "diamond-x": { n: 32, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.3, 2), i = ca(e * 0.65, 2);
+ return vs(t, r, "M" + n + ",0L0," + n + "L-" + n + ",0L0,-" + n + "ZM-" + i + ",-" + i + "L" + i + "," + i + "M-" + i + "," + i + "L" + i + ",-" + i);
+ }, needLine: true, noDot: true }, "cross-thin": { n: 33, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.4, 2);
+ return vs(t, r, "M0," + n + "V-" + n + "M" + n + ",0H-" + n);
+ }, needLine: true, noDot: true, noFill: true }, "x-thin": { n: 34, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M" + n + "," + n + "L-" + n + ",-" + n + "M" + n + ",-" + n + "L-" + n + "," + n);
+ }, needLine: true, noDot: true, noFill: true }, asterisk: { n: 35, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.2, 2), i = ca(e * 0.85, 2);
+ return vs(t, r, "M0," + n + "V-" + n + "M" + n + ",0H-" + n + "M" + i + "," + i + "L-" + i + ",-" + i + "M" + i + ",-" + i + "L-" + i + "," + i);
+ }, needLine: true, noDot: true, noFill: true }, hash: { n: 36, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e / 2, 2), i = ca(e, 2);
+ return vs(t, r, "M" + n + "," + i + "V-" + i + "M" + (n - i) + ",-" + i + "V" + i + "M" + i + "," + n + "H-" + i + "M-" + i + "," + (n - i) + "H" + i);
+ }, needLine: true, noFill: true }, "y-up": { n: 37, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.2, 2), i = ca(e * 1.6, 2), a = ca(e * 0.8, 2);
+ return vs(t, r, "M-" + n + "," + a + "L0,0M" + n + "," + a + "L0,0M0,-" + i + "L0,0");
+ }, needLine: true, noDot: true, noFill: true }, "y-down": { n: 38, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.2, 2), i = ca(e * 1.6, 2), a = ca(e * 0.8, 2);
+ return vs(t, r, "M-" + n + ",-" + a + "L0,0M" + n + ",-" + a + "L0,0M0," + i + "L0,0");
+ }, needLine: true, noDot: true, noFill: true }, "y-left": { n: 39, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.2, 2), i = ca(e * 1.6, 2), a = ca(e * 0.8, 2);
+ return vs(t, r, "M" + a + "," + n + "L0,0M" + a + ",-" + n + "L0,0M-" + i + ",0L0,0");
+ }, needLine: true, noDot: true, noFill: true }, "y-right": { n: 40, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.2, 2), i = ca(e * 1.6, 2), a = ca(e * 0.8, 2);
+ return vs(t, r, "M-" + a + "," + n + "L0,0M-" + a + ",-" + n + "L0,0M" + i + ",0L0,0");
+ }, needLine: true, noDot: true, noFill: true }, "line-ew": { n: 41, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.4, 2);
+ return vs(t, r, "M" + n + ",0H-" + n);
+ }, needLine: true, noDot: true, noFill: true }, "line-ns": { n: 42, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 1.4, 2);
+ return vs(t, r, "M0," + n + "V-" + n);
+ }, needLine: true, noDot: true, noFill: true }, "line-ne": { n: 43, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M" + n + ",-" + n + "L-" + n + "," + n);
+ }, needLine: true, noDot: true, noFill: true }, "line-nw": { n: 44, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2);
+ return vs(t, r, "M" + n + "," + n + "L-" + n + ",-" + n);
+ }, needLine: true, noDot: true, noFill: true }, "arrow-up": { n: 45, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2), i = ca(e * 2, 2);
+ return vs(t, r, "M0,0L-" + n + "," + i + "H" + n + "Z");
+ }, backoff: 1, noDot: true }, "arrow-down": { n: 46, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2), i = ca(e * 2, 2);
+ return vs(t, r, "M0,0L-" + n + ",-" + i + "H" + n + "Z");
+ }, noDot: true }, "arrow-left": { n: 47, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 2, 2), i = ca(e, 2);
+ return vs(t, r, "M0,0L" + n + ",-" + i + "V" + i + "Z");
+ }, noDot: true }, "arrow-right": { n: 48, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 2, 2), i = ca(e, 2);
+ return vs(t, r, "M0,0L-" + n + ",-" + i + "V" + i + "Z");
+ }, noDot: true }, "arrow-bar-up": { n: 49, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2), i = ca(e * 2, 2);
+ return vs(t, r, "M-" + n + ",0H" + n + "M0,0L-" + n + "," + i + "H" + n + "Z");
+ }, backoff: 1, needLine: true, noDot: true }, "arrow-bar-down": { n: 50, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e, 2), i = ca(e * 2, 2);
+ return vs(t, r, "M-" + n + ",0H" + n + "M0,0L-" + n + ",-" + i + "H" + n + "Z");
+ }, needLine: true, noDot: true }, "arrow-bar-left": { n: 51, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 2, 2), i = ca(e, 2);
+ return vs(t, r, "M0,-" + i + "V" + i + "M0,0L" + n + ",-" + i + "V" + i + "Z");
+ }, needLine: true, noDot: true }, "arrow-bar-right": { n: 52, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = ca(e * 2, 2), i = ca(e, 2);
+ return vs(t, r, "M0,-" + i + "V" + i + "M0,0L-" + n + ",-" + i + "V" + i + "Z");
+ }, needLine: true, noDot: true }, arrow: { n: 53, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = Nq / 2.5, i = 2 * e * Uq(n), a = 2 * e * Vq(n);
+ return vs(t, r, "M0,0L" + -i + "," + a + "L" + i + "," + a + "Z");
+ }, backoff: 0.9, noDot: true }, "arrow-wide": { n: 54, f: function(e, t, r) {
+ if (ds(t)) return hs;
+ var n = Nq / 4, i = 2 * e * Uq(n), a = 2 * e * Vq(n);
+ return vs(t, r, "M0,0L" + -i + "," + a + "A " + 2 * e + "," + 2 * e + " 0 0 1 " + i + "," + a + "Z");
+ }, backoff: 0.4, noDot: true } };
+ function ds(e) {
+ return e === null;
+ }
+ var Aoe, Soe, Moe, Eoe;
+ function vs(e, t, r) {
+ if ((!e || e % 360 === 0) && !t) return r;
+ if (Moe === e && Eoe === t && Aoe === r) return Soe;
+ Moe = e, Eoe = t, Aoe = r;
+ function n(b, p) {
+ var k = Uq(b), E = Vq(b), T = p[0], L = p[1] + (t || 0);
+ return [T * k - L * E, T * E + L * k];
+ }
+ for (var i = e / 180 * Nq, a = 0, o = 0, s = jot(r), l = "", u = 0; u < s.length; u++) {
+ var c = s[u], f = c[0], h = a, d = o;
+ if (f === "M" || f === "L") a = +c[1], o = +c[2];
+ else if (f === "m" || f === "l") a += +c[1], o += +c[2];
+ else if (f === "H") a = +c[1];
+ else if (f === "h") a += +c[1];
+ else if (f === "V") o = +c[1];
+ else if (f === "v") o += +c[1];
+ else if (f === "A") {
+ a = +c[1], o = +c[2];
+ var v = n(i, [+c[6], +c[7]]);
+ c[6] = v[0], c[7] = v[1], c[3] = +c[3] + e;
+ }
+ (f === "H" || f === "V") && (f = "L"), (f === "h" || f === "v") && (f = "l"), (f === "m" || f === "l") && (a -= h, o -= d);
+ var _ = n(i, [a, o]);
+ (f === "H" || f === "V") && (f = "L"), (f === "M" || f === "L" || f === "m" || f === "l") && (c[1] = _[0], c[2] = _[1]), c[0] = f, l += c[0] + c.slice(1).join(",");
+ }
+ return Soe = l, l;
+ }
+ });
+ var So = ye((Jnr, Yoe) => {
+ var dd = Oa(), Du = Dr(), Wot = Du.numberFormat, Db = Eo(), Zq = fd(), pL = qa(), Yd = ka(), Xot = tc(), oM = Du.strTranslate, gL = Zl(), Zot = Wp(), Yot = Dh(), Kot = Yot.LINE_SPACING, Boe = X1().DESELECTDIM, Jot = Ru(), $ot = O3(), Qot = ip().appendArrayPointValue, Ta = Yoe.exports = {};
+ Ta.font = function(e, t) {
+ var r = t.variant, n = t.style, i = t.weight, a = t.color, o = t.size, s = t.family, l = t.shadow, u = t.lineposition, c = t.textcase;
+ s && e.style("font-family", s), o + 1 && e.style("font-size", o + "px"), a && e.call(Yd.fill, a), i && e.style("font-weight", i), n && e.style("font-style", n), r && e.style("font-variant", r), c && e.style("text-transform", Gq(tst(c))), l && e.style("text-shadow", l === "auto" ? gL.makeTextShadow(Yd.contrast(a)) : Gq(l)), u && e.style("text-decoration-line", Gq(rst(u)));
+ };
+ function Gq(e) {
+ return e === "none" ? void 0 : e;
+ }
+ var est = { normal: "none", lower: "lowercase", upper: "uppercase", "word caps": "capitalize" };
+ function tst(e) {
+ return est[e];
+ }
+ function rst(e) {
+ return e.replace("under", "underline").replace("over", "overline").replace("through", "line-through").split("+").join(" ");
+ }
+ Ta.setPosition = function(e, t, r) {
+ e.attr("x", t).attr("y", r);
+ };
+ Ta.setSize = function(e, t, r) {
+ e.attr("width", t).attr("height", r);
+ };
+ Ta.setRect = function(e, t, r, n, i) {
+ e.call(Ta.setPosition, t, r).call(Ta.setSize, n, i);
+ };
+ Ta.translatePoint = function(e, t, r, n) {
+ var i = r.c2p(e.x), a = n.c2p(e.y);
+ if (Db(i) && Db(a) && t.node()) t.node().nodeName === "text" ? t.attr("x", i).attr("y", a) : t.attr("transform", oM(i, a));
+ else return false;
+ return true;
+ };
+ Ta.translatePoints = function(e, t, r) {
+ e.each(function(n) {
+ var i = dd.select(this);
+ Ta.translatePoint(n, i, t, r);
+ });
+ };
+ Ta.hideOutsideRangePoint = function(e, t, r, n, i, a) {
+ t.attr("display", r.isPtWithinRange(e, i) && n.isPtWithinRange(e, a) ? null : "none");
+ };
+ Ta.hideOutsideRangePoints = function(e, t) {
+ if (t._hasClipOnAxisFalse) {
+ var r = t.xaxis, n = t.yaxis;
+ e.each(function(i) {
+ var a = i[0].trace, o = a.xcalendar, s = a.ycalendar, l = pL.traceIs(a, "bar-like") ? ".bartext" : ".point,.textpoint";
+ e.selectAll(l).each(function(u) {
+ Ta.hideOutsideRangePoint(u, dd.select(this), r, n, o, s);
+ });
+ });
+ }
+ };
+ Ta.crispRound = function(e, t, r) {
+ return !t || !Db(t) ? r || 0 : e._context.staticPlot ? t : t < 1 ? 1 : Math.round(t);
+ };
+ Ta.singleLineStyle = function(e, t, r, n, i) {
+ t.style("fill", "none");
+ var a = (((e || [])[0] || {}).trace || {}).line || {}, o = r || a.width || 0, s = i || a.dash || "";
+ Yd.stroke(t, n || a.color), Ta.dashLine(t, s, o);
+ };
+ Ta.lineGroupStyle = function(e, t, r, n) {
+ e.style("fill", "none").each(function(i) {
+ var a = (((i || [])[0] || {}).trace || {}).line || {}, o = t || a.width || 0, s = n || a.dash || "";
+ dd.select(this).call(Yd.stroke, r || a.color).call(Ta.dashLine, s, o);
+ });
+ };
+ Ta.dashLine = function(e, t, r) {
+ r = +r || 0, t = Ta.dashStyle(t, r), e.style({ "stroke-dasharray": t, "stroke-width": r + "px" });
+ };
+ Ta.dashStyle = function(e, t) {
+ t = +t || 1;
+ var r = Math.max(t, 3);
+ return e === "solid" ? e = "" : e === "dot" ? e = r + "px," + r + "px" : e === "dash" ? e = 3 * r + "px," + 3 * r + "px" : e === "longdash" ? e = 5 * r + "px," + 5 * r + "px" : e === "dashdot" ? e = 3 * r + "px," + r + "px," + r + "px," + r + "px" : e === "longdashdot" && (e = 5 * r + "px," + 2 * r + "px," + r + "px," + 2 * r + "px"), e;
+ };
+ function Noe(e, t, r, n) {
+ var i = t.fillpattern, a = t.fillgradient, o = Ta.getPatternAttr, s = i && (o(i.shape, 0, "") || o(i.path, 0, ""));
+ if (s) {
+ var l = o(i.bgcolor, 0, null), u = o(i.fgcolor, 0, null), c = i.fgopacity, f = o(i.size, 0, 8), h = o(i.solidity, 0, 0.3), d = t.uid;
+ Ta.pattern(e, "point", r, d, s, f, h, void 0, i.fillmode, l, u, c);
+ } else if (a && a.type !== "none") {
+ var v = a.type, _ = "scatterfill-" + t.uid;
+ if (n && (_ = "legendfill-" + t.uid), !n && (a.start !== void 0 || a.stop !== void 0)) {
+ var b, p;
+ v === "horizontal" ? (b = { x: a.start, y: 0 }, p = { x: a.stop, y: 0 }) : v === "vertical" && (b = { x: 0, y: a.start }, p = { x: 0, y: a.stop }), b.x = t._xA.c2p(b.x === void 0 ? t._extremes.x.min[0].val : b.x, true), b.y = t._yA.c2p(b.y === void 0 ? t._extremes.y.min[0].val : b.y, true), p.x = t._xA.c2p(p.x === void 0 ? t._extremes.x.max[0].val : p.x, true), p.y = t._yA.c2p(p.y === void 0 ? t._extremes.y.max[0].val : p.y, true), e.call(Goe, r, _, "linear", a.colorscale, "fill", b, p, true, false);
+ } else v === "horizontal" && (v = v + "reversed"), e.call(Ta.gradient, r, _, v, a.colorscale, "fill");
+ } else t.fillcolor && e.call(Yd.fill, t.fillcolor);
+ }
+ Ta.singleFillStyle = function(e, t) {
+ var r = dd.select(e.node()), n = r.data(), i = ((n[0] || [])[0] || {}).trace || {};
+ Noe(e, i, t, false);
+ };
+ Ta.fillGroupStyle = function(e, t, r) {
+ e.style("stroke-width", 0).each(function(n) {
+ var i = dd.select(this);
+ n[0].trace && Noe(i, n[0].trace, t, r);
+ });
+ };
+ var Loe = Coe();
+ Ta.symbolNames = [];
+ Ta.symbolFuncs = [];
+ Ta.symbolBackOffs = [];
+ Ta.symbolNeedLines = {};
+ Ta.symbolNoDot = {};
+ Ta.symbolNoFill = {};
+ Ta.symbolList = [];
+ Object.keys(Loe).forEach(function(e) {
+ var t = Loe[e], r = t.n;
+ Ta.symbolList.push(r, String(r), e, r + 100, String(r + 100), e + "-open"), Ta.symbolNames[r] = e, Ta.symbolFuncs[r] = t.f, Ta.symbolBackOffs[r] = t.backoff || 0, t.needLine && (Ta.symbolNeedLines[r] = true), t.noDot ? Ta.symbolNoDot[r] = true : Ta.symbolList.push(r + 200, String(r + 200), e + "-dot", r + 300, String(r + 300), e + "-open-dot"), t.noFill && (Ta.symbolNoFill[r] = true);
+ });
+ var ist = Ta.symbolNames.length, nst = "M0,0.5L0.5,0L0,-0.5L-0.5,0Z";
+ Ta.symbolNumber = function(e) {
+ if (Db(e)) e = +e;
+ else if (typeof e == "string") {
+ var t = 0;
+ e.indexOf("-open") > 0 && (t = 100, e = e.replace("-open", "")), e.indexOf("-dot") > 0 && (t += 200, e = e.replace("-dot", "")), e = Ta.symbolNames.indexOf(e), e >= 0 && (e += t);
+ }
+ return e % 100 >= ist || e >= 400 ? 0 : Math.floor(Math.max(e, 0));
+ };
+ function Uoe(e, t, r, n) {
+ var i = e % 100;
+ return Ta.symbolFuncs[i](t, r, n) + (e >= 200 ? nst : "");
+ }
+ var Poe = Wot("~f"), Voe = { radial: { type: "radial" }, radialreversed: { type: "radial", reversed: true }, 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: true }, 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: true } };
+ Ta.gradient = function(e, t, r, n, i, a) {
+ var o = Voe[n];
+ return Goe(e, t, r, o.type, i, a, o.start, o.stop, false, o.reversed);
+ };
+ function Goe(e, t, r, n, i, a, o, s, l, u) {
+ var c = i.length, f;
+ n === "linear" ? f = { node: "linearGradient", attrs: { x1: o.x, y1: o.y, x2: s.x, y2: s.y, gradientUnits: l ? "userSpaceOnUse" : "objectBoundingBox" }, reversed: u } : n === "radial" && (f = { node: "radialGradient", reversed: u });
+ for (var h = new Array(c), d = 0; d < c; d++) f.reversed ? h[c - 1 - d] = [Poe((1 - i[d][0]) * 100), i[d][1]] : h[d] = [Poe(i[d][0] * 100), i[d][1]];
+ var v = t._fullLayout, _ = "g" + v._uid + "-" + r, b = v._defs.select(".gradients").selectAll("#" + _).data([n + h.join(";")], Du.identity);
+ b.exit().remove(), b.enter().append(f.node).each(function() {
+ var p = dd.select(this);
+ f.attrs && p.attr(f.attrs), p.attr("id", _);
+ var k = p.selectAll("stop").data(h);
+ k.exit().remove(), k.enter().append("stop"), k.each(function(E) {
+ var T = Zq(E[1]);
+ dd.select(this).attr({ offset: E[0] + "%", "stop-color": Yd.tinyRGB(T), "stop-opacity": T.getAlpha() });
+ });
+ }), e.style(a, Yq(_, t)).style(a + "-opacity", null), e.classed("gradient_filled", true);
+ }
+ Ta.pattern = function(e, t, r, n, i, a, o, s, l, u, c, f) {
+ var h = t === "legend";
+ s && (l === "overlay" ? (u = s, c = Yd.contrast(u)) : (u = void 0, c = s));
+ var d = r._fullLayout, v = "p" + d._uid + "-" + n, _, b, p = function(O, U, G, Z, j) {
+ return Z + (j - Z) * (O - U) / (G - U);
+ }, k, E, T, L, x = {}, C = Zq(c), M = Yd.tinyRGB(C), g = C.getAlpha(), P = f * g;
+ switch (i) {
+ case "/":
+ _ = a * Math.sqrt(2), b = a * Math.sqrt(2), k = "M-" + _ / 4 + "," + b / 4 + "l" + _ / 2 + ",-" + b / 2 + "M0," + b + "L" + _ + ",0M" + _ / 4 * 3 + "," + b / 4 * 5 + "l" + _ / 2 + ",-" + b / 2, E = o * a, L = "path", x = { d: k, opacity: P, stroke: M, "stroke-width": E + "px" };
+ break;
+ case "\\":
+ _ = a * Math.sqrt(2), b = a * Math.sqrt(2), k = "M" + _ / 4 * 3 + ",-" + b / 4 + "l" + _ / 2 + "," + b / 2 + "M0,0L" + _ + "," + b + "M-" + _ / 4 + "," + b / 4 * 3 + "l" + _ / 2 + "," + b / 2, E = o * a, L = "path", x = { d: k, opacity: P, stroke: M, "stroke-width": E + "px" };
+ break;
+ case "x":
+ _ = a * Math.sqrt(2), b = a * Math.sqrt(2), k = "M-" + _ / 4 + "," + b / 4 + "l" + _ / 2 + ",-" + b / 2 + "M0," + b + "L" + _ + ",0M" + _ / 4 * 3 + "," + b / 4 * 5 + "l" + _ / 2 + ",-" + b / 2 + "M" + _ / 4 * 3 + ",-" + b / 4 + "l" + _ / 2 + "," + b / 2 + "M0,0L" + _ + "," + b + "M-" + _ / 4 + "," + b / 4 * 3 + "l" + _ / 2 + "," + b / 2, E = a - a * Math.sqrt(1 - o), L = "path", x = { d: k, opacity: P, stroke: M, "stroke-width": E + "px" };
+ break;
+ case "|":
+ _ = a, b = a, L = "path", k = "M" + _ / 2 + ",0L" + _ / 2 + "," + b, E = o * a, L = "path", x = { d: k, opacity: P, stroke: M, "stroke-width": E + "px" };
+ break;
+ case "-":
+ _ = a, b = a, L = "path", k = "M0," + b / 2 + "L" + _ + "," + b / 2, E = o * a, L = "path", x = { d: k, opacity: P, stroke: M, "stroke-width": E + "px" };
+ break;
+ case "+":
+ _ = a, b = a, L = "path", k = "M" + _ / 2 + ",0L" + _ / 2 + "," + b + "M0," + b / 2 + "L" + _ + "," + b / 2, E = a - a * Math.sqrt(1 - o), L = "path", x = { d: k, opacity: P, stroke: M, "stroke-width": E + "px" };
+ break;
+ case ".":
+ _ = a, b = a, o < Math.PI / 4 ? T = Math.sqrt(o * a * a / Math.PI) : T = p(o, Math.PI / 4, 1, a / 2, a / Math.sqrt(2)), L = "circle", x = { cx: _ / 2, cy: b / 2, r: T, opacity: P, fill: M };
+ break;
+ default:
+ _ = a, b = a, L = "path", x = { d: i, opacity: P, fill: M };
+ break;
+ }
+ var A = [i || "noSh", u || "noBg", c || "noFg", a, o].join(";"), z = d._defs.select(".patterns").selectAll("#" + v).data([A], Du.identity);
+ z.exit().remove(), z.enter().append("pattern").each(function() {
+ var O = dd.select(this);
+ if (O.attr({ id: v, width: _ + "px", height: b + "px", patternUnits: "userSpaceOnUse", patternTransform: h ? "scale(0.8)" : "" }), u) {
+ var U = Zq(u), G = Yd.tinyRGB(U), Z = U.getAlpha(), j = O.selectAll("rect").data([0]);
+ j.exit().remove(), j.enter().append("rect").attr({ width: _ + "px", height: b + "px", fill: G, "fill-opacity": Z });
+ }
+ var N = O.selectAll(L).data([0]);
+ N.exit().remove(), N.enter().append(L).attr(x);
+ }), e.style("fill", Yq(v, r)).style("fill-opacity", null), e.classed("pattern_filled", true);
+ };
+ Ta.initGradients = function(e) {
+ var t = e._fullLayout, r = Du.ensureSingle(t._defs, "g", "gradients");
+ r.selectAll("linearGradient,radialGradient").remove(), dd.select(e).selectAll(".gradient_filled").classed("gradient_filled", false);
+ };
+ Ta.initPatterns = function(e) {
+ var t = e._fullLayout, r = Du.ensureSingle(t._defs, "g", "patterns");
+ r.selectAll("pattern").remove(), dd.select(e).selectAll(".pattern_filled").classed("pattern_filled", false);
+ };
+ Ta.getPatternAttr = function(e, t, r) {
+ return e && Du.isArrayOrTypedArray(e) ? t < e.length ? e[t] : r : e;
+ };
+ Ta.pointStyle = function(e, t, r, n) {
+ if (e.size()) {
+ var i = Ta.makePointStyleFns(t);
+ e.each(function(a) {
+ Ta.singlePointStyle(a, dd.select(this), t, i, r, n);
+ });
+ }
+ };
+ Ta.singlePointStyle = function(e, t, r, n, i, a) {
+ var o = r.marker, s = o.line;
+ if (a && a.i >= 0 && e.i === void 0 && (e.i = a.i), t.style("opacity", n.selectedOpacityFn ? n.selectedOpacityFn(e) : e.mo === void 0 ? o.opacity : e.mo), n.ms2mrc) {
+ var l;
+ e.ms === "various" || o.size === "various" ? l = 3 : l = n.ms2mrc(e.ms), e.mrc = l, n.selectedSizeFn && (l = e.mrc = n.selectedSizeFn(e));
+ var u = Ta.symbolNumber(e.mx || o.symbol) || 0;
+ e.om = u % 200 >= 100;
+ var c = Jq(e, r), f = Kq(e, r);
+ t.attr("d", Uoe(u, l, c, f));
+ }
+ var h = false, d, v, _;
+ if (e.so) _ = s.outlierwidth, v = s.outliercolor, d = o.outliercolor;
+ else {
+ var b = (s || {}).width;
+ _ = (e.mlw + 1 || b + 1 || (e.trace ? (e.trace.marker.line || {}).width : 0) + 1) - 1 || 0, "mlc" in e ? v = e.mlcc = n.lineScale(e.mlc) : Du.isArrayOrTypedArray(s.color) ? v = Yd.defaultLine : v = s.color, Du.isArrayOrTypedArray(o.color) && (d = Yd.defaultLine, h = true), "mc" in e ? d = e.mcc = n.markerScale(e.mc) : d = o.color || o.colors || "rgba(0,0,0,0)", n.selectedColorFn && (d = n.selectedColorFn(e));
+ }
+ let p = e.mld || (s || {}).dash;
+ if (p && Ta.dashLine(t, p, _), e.om) t.call(Yd.stroke, d).style({ "stroke-width": (_ || 1) + "px", fill: "none" });
+ else {
+ t.style("stroke-width", (e.isBlank ? 0 : _) + "px");
+ var k = o.gradient, E = e.mgt;
+ E ? h = true : E = k && k.type, Du.isArrayOrTypedArray(E) && (E = E[0], Voe[E] || (E = 0));
+ var T = o.pattern, L = Ta.getPatternAttr, x = T && (L(T.shape, e.i, "") || L(T.path, e.i, ""));
+ if (E && E !== "none") {
+ var C = e.mgc;
+ C ? h = true : C = k.color;
+ var M = r.uid;
+ h && (M += "-" + e.i), Ta.gradient(t, i, M, E, [[0, C], [1, d]], "fill");
+ } else if (x) {
+ var g = false, P = T.fgcolor;
+ !P && a && a.color && (P = a.color, g = true);
+ var A = L(P, e.i, a && a.color || null), z = L(T.bgcolor, e.i, null), O = T.fgopacity, U = L(T.size, e.i, 8), G = L(T.solidity, e.i, 0.3);
+ g = g || e.mcc || Du.isArrayOrTypedArray(T.shape) || Du.isArrayOrTypedArray(T.path) || Du.isArrayOrTypedArray(T.bgcolor) || Du.isArrayOrTypedArray(T.fgcolor) || Du.isArrayOrTypedArray(T.size) || Du.isArrayOrTypedArray(T.solidity);
+ var Z = r.uid;
+ g && (Z += "-" + e.i), Ta.pattern(t, "point", i, Z, x, U, G, e.mcc, T.fillmode, z, A, O);
+ } else Du.isArrayOrTypedArray(d) ? Yd.fill(t, d[e.i]) : Yd.fill(t, d);
+ _ && Yd.stroke(t, v);
+ }
+ };
+ Ta.makePointStyleFns = function(e) {
+ var t = {}, r = e.marker;
+ return t.markerScale = Ta.tryColorscale(r, ""), t.lineScale = Ta.tryColorscale(r, "line"), pL.traceIs(e, "symbols") && (t.ms2mrc = Jot.isBubble(e) ? $ot(e) : function() {
+ return (r.size || 6) / 2;
+ }), e.selectedpoints && Du.extendFlat(t, Ta.makeSelectedPointStyleFns(e)), t;
+ };
+ Ta.makeSelectedPointStyleFns = function(e) {
+ var t = {}, r = e.selected || {}, n = e.unselected || {}, i = e.marker || {}, a = r.marker || {}, o = n.marker || {}, s = i.opacity, l = a.opacity, u = o.opacity, c = l !== void 0, f = u !== void 0;
+ (Du.isArrayOrTypedArray(s) || c || f) && (t.selectedOpacityFn = function(T) {
+ var L = T.mo === void 0 ? i.opacity : T.mo;
+ return T.selected ? c ? l : L : f ? u : Boe * L;
+ });
+ var h = i.color, d = a.color, v = o.color;
+ (d || v) && (t.selectedColorFn = function(T) {
+ var L = T.mcc || h;
+ return T.selected ? d || L : v || L;
+ });
+ var _ = i.size, b = a.size, p = o.size, k = b !== void 0, E = p !== void 0;
+ return pL.traceIs(e, "symbols") && (k || E) && (t.selectedSizeFn = function(T) {
+ var L = T.mrc || _ / 2;
+ return T.selected ? k ? b / 2 : L : E ? p / 2 : L;
+ }), t;
+ };
+ Ta.makeSelectedTextStyleFns = function(e) {
+ var t = {}, r = e.selected || {}, n = e.unselected || {}, i = e.textfont || {}, a = r.textfont || {}, o = n.textfont || {}, s = i.color, l = a.color, u = o.color;
+ return t.selectedTextColorFn = function(c) {
+ var f = c.tc || s;
+ return c.selected ? l || f : u || (l ? f : Yd.addOpacity(f, Boe));
+ }, t;
+ };
+ Ta.selectedPointStyle = function(e, t) {
+ if (!(!e.size() || !t.selectedpoints)) {
+ var r = Ta.makeSelectedPointStyleFns(t), n = t.marker || {}, i = [];
+ r.selectedOpacityFn && i.push(function(a, o) {
+ a.style("opacity", r.selectedOpacityFn(o));
+ }), r.selectedColorFn && i.push(function(a, o) {
+ Yd.fill(a, r.selectedColorFn(o));
+ }), r.selectedSizeFn && i.push(function(a, o) {
+ var s = o.mx || n.symbol || 0, l = r.selectedSizeFn(o);
+ a.attr("d", Uoe(Ta.symbolNumber(s), l, Jq(o, t), Kq(o, t))), o.mrc2 = l;
+ }), i.length && e.each(function(a) {
+ for (var o = dd.select(this), s = 0; s < i.length; s++) i[s](o, a);
+ });
+ }
+ };
+ Ta.tryColorscale = function(e, t) {
+ var r = t ? Du.nestedProperty(e, t).get() : e;
+ if (r) {
+ var n = r.color;
+ if ((r.colorscale || r._colorAx) && Du.isArrayOrTypedArray(n)) return Xot.makeColorScaleFuncFromTrace(r);
+ }
+ return Du.identity;
+ };
+ var Hq = { start: 1, end: -1, middle: 0, bottom: 1, top: -1 };
+ function Hoe(e, t, r, n, i) {
+ var a = dd.select(e.node().parentNode), o = t.indexOf("top") !== -1 ? "top" : t.indexOf("bottom") !== -1 ? "bottom" : "middle", s = t.indexOf("left") !== -1 ? "end" : t.indexOf("right") !== -1 ? "start" : "middle", l = n ? n / 0.8 + 1 : 0, u = (gL.lineCount(e) - 1) * Kot + 1, c = Hq[s] * l, f = r * 0.75 + Hq[o] * l + (Hq[o] - 1) * u * r / 2;
+ e.attr("text-anchor", s), i || a.attr("transform", oM(c, f));
+ }
+ function joe(e, t) {
+ var r = e.ts || t.textfont.size;
+ return Db(r) && r > 0 ? r : 0;
+ }
+ Ta.textPointStyle = function(e, t, r) {
+ if (e.size()) {
+ var n;
+ if (t.selectedpoints) {
+ var i = Ta.makeSelectedTextStyleFns(t);
+ n = i.selectedTextColorFn;
+ }
+ var a = t.texttemplate, o = r._fullLayout;
+ e.each(function(s) {
+ var l = dd.select(this), u = a ? Du.extractOption(s, t, "txt", "texttemplate") : Du.extractOption(s, t, "tx", "text");
+ if (!u && u !== 0) {
+ l.remove();
+ return;
+ }
+ if (a) {
+ var c = t._module.formatLabels, f = c ? c(s, t, o) : {}, h = {};
+ Qot(h, t, s.i), u = Du.texttemplateString({ data: [h, s, t._meta], fallback: t.texttemplatefallback, labels: f, locale: o._d3locale, template: u });
+ }
+ var d = s.tp || t.textposition, v = joe(s, t), _ = n ? n(s) : s.tc || t.textfont.color;
+ l.call(Ta.font, { family: s.tf || t.textfont.family, weight: s.tw || t.textfont.weight, style: s.ty || t.textfont.style, variant: s.tv || t.textfont.variant, textcase: s.tC || t.textfont.textcase, lineposition: s.tE || t.textfont.lineposition, shadow: s.tS || t.textfont.shadow, size: v, color: _ }).text(u).call(gL.convertToTspans, r).call(Hoe, d, v, s.mrc);
+ });
+ }
+ };
+ Ta.selectedTextStyle = function(e, t) {
+ if (!(!e.size() || !t.selectedpoints)) {
+ var r = Ta.makeSelectedTextStyleFns(t);
+ e.each(function(n) {
+ var i = dd.select(this), a = r.selectedTextColorFn(n), o = n.tp || t.textposition, s = joe(n, t);
+ Yd.fill(i, a);
+ var l = pL.traceIs(t, "bar-like");
+ Hoe(i, o, s, n.mrc2 || n.mrc, l);
+ });
+ }
+ };
+ var Ioe = 0.5;
+ Ta.smoothopen = function(e, t) {
+ if (e.length < 3) return "M" + e.join("L");
+ var r = "M" + e[0], n = [], i;
+ for (i = 1; i < e.length - 1; i++) n.push(vL(e[i - 1], e[i], e[i + 1], t));
+ for (r += "Q" + n[0][0] + " " + e[1], i = 2; i < e.length - 1; i++) r += "C" + n[i - 2][1] + " " + n[i - 1][0] + " " + e[i];
+ return r += "Q" + n[e.length - 3][1] + " " + e[e.length - 1], r;
+ };
+ Ta.smoothclosed = function(e, t) {
+ if (e.length < 3) return "M" + e.join("L") + "Z";
+ var r = "M" + e[0], n = e.length - 1, i = [vL(e[n], e[0], e[1], t)], a;
+ for (a = 1; a < n; a++) i.push(vL(e[a - 1], e[a], e[a + 1], t));
+ for (i.push(vL(e[n - 1], e[n], e[0], t)), a = 1; a <= n; a++) r += "C" + i[a - 1][1] + " " + i[a][0] + " " + e[a];
+ return r += "C" + i[n][1] + " " + i[0][0] + " " + e[0] + "Z", r;
+ };
+ var Woe, Xoe;
+ function q3(e, t, r) {
+ return r && (e = Zoe(e)), t ? Rb(e[1]) : Ib(e[0]);
+ }
+ function Ib(e) {
+ var t = dd.round(e, 2);
+ return Woe = t, t;
+ }
+ function Rb(e) {
+ var t = dd.round(e, 2);
+ return Xoe = t, t;
+ }
+ function vL(e, t, r, n) {
+ var i = e[0] - t[0], a = e[1] - t[1], o = r[0] - t[0], s = r[1] - t[1], l = Math.pow(i * i + a * a, Ioe / 2), u = Math.pow(o * o + s * s, Ioe / 2), c = (u * u * i - l * l * o) * n, f = (u * u * a - l * l * s) * n, h = 3 * u * (l + u), d = 3 * l * (l + u);
+ return [[Ib(t[0] + (h && c / h)), Rb(t[1] + (h && f / h))], [Ib(t[0] - (d && c / d)), Rb(t[1] - (d && f / d))]];
+ }
+ var ast = { hv: function(e, t, r) {
+ return "H" + Ib(t[0]) + "V" + q3(t, 1, r);
+ }, vh: function(e, t, r) {
+ return "V" + Rb(t[1]) + "H" + q3(t, 0, r);
+ }, hvh: function(e, t, r) {
+ return "H" + Ib((e[0] + t[0]) / 2) + "V" + Rb(t[1]) + "H" + q3(t, 0, r);
+ }, vhv: function(e, t, r) {
+ return "V" + Rb((e[1] + t[1]) / 2) + "H" + Ib(t[0]) + "V" + q3(t, 1, r);
+ } }, ost = function(e, t, r) {
+ return "L" + q3(t, 0, r) + "," + q3(t, 1, r);
+ };
+ Ta.steps = function(e) {
+ var t = ast[e] || ost;
+ return function(r) {
+ for (var n = "M" + Ib(r[0][0]) + "," + Rb(r[0][1]), i = r.length, a = 1; a < i; a++) n += t(r[a - 1], r[a], a === i - 1);
+ return n;
+ };
+ };
+ function Zoe(e, t) {
+ var r = e.backoff, n = e.trace, i = e.d, a = e.i;
+ if (r && n && n.marker && n.marker.angle % 360 === 0 && n.line && n.line.shape !== "spline") {
+ var o = Du.isArrayOrTypedArray(r), s = e, l = t ? t[0] : Woe || 0, u = t ? t[1] : Xoe || 0, c = s[0], f = s[1], h = c - l, d = f - u, v = Math.atan2(d, h), _ = o ? r[a] : r;
+ if (_ === "auto") {
+ var b = s.i;
+ n.type === "scatter" && b--;
+ var p = s.marker, k = p.symbol;
+ Du.isArrayOrTypedArray(k) && (k = k[b]);
+ var E = p.size;
+ Du.isArrayOrTypedArray(E) && (E = E[b]), _ = p ? Ta.symbolBackOffs[Ta.symbolNumber(k)] * E : 0, _ += Ta.getMarkerStandoff(i[b], n) || 0;
+ }
+ var T = c - _ * Math.cos(v), L = f - _ * Math.sin(v);
+ (T <= c && T >= l || T >= c && T <= l) && (L <= f && L >= u || L >= f && L <= u) && (e = [T, L]);
+ }
+ return e;
+ }
+ Ta.applyBackoff = Zoe;
+ Ta.makeTester = function() {
+ var e = Du.ensureSingleById(dd.select("body"), "svg", "js-plotly-tester", function(r) {
+ r.attr(Zot.svgAttrs).style({ position: "absolute", left: "-10000px", top: "-10000px", width: "9000px", height: "9000px", "z-index": "1" });
+ }), t = Du.ensureSingle(e, "path", "js-reference-point", function(r) {
+ r.attr("d", "M0,0H1V1H0Z").style({ "stroke-width": 0, fill: "black" });
+ });
+ Ta.tester = e, Ta.testref = t;
+ };
+ Ta.savedBBoxes = {};
+ var jq = 0, sst = 1e4;
+ Ta.bBox = function(e, t, r) {
+ r || (r = Roe(e));
+ var n;
+ if (r) {
+ if (n = Ta.savedBBoxes[r], n) return Du.extendFlat({}, n);
+ } else if (e.childNodes.length === 1) {
+ var i = e.childNodes[0];
+ if (r = Roe(i), r) {
+ var a = +i.getAttribute("x") || 0, o = +i.getAttribute("y") || 0, s = i.getAttribute("transform");
+ if (!s) {
+ var l = Ta.bBox(i, false, r);
+ return a && (l.left += a, l.right += a), o && (l.top += o, l.bottom += o), l;
+ }
+ if (r += "~" + a + "~" + o + "~" + s, n = Ta.savedBBoxes[r], n) return Du.extendFlat({}, n);
+ }
+ }
+ var u, c;
+ t ? u = e : (c = Ta.tester.node(), u = e.cloneNode(true), c.appendChild(u)), dd.select(u).attr("transform", null).call(gL.positionText, 0, 0);
+ var f = u.getBoundingClientRect(), h = Ta.testref.node().getBoundingClientRect();
+ t || c.removeChild(u);
+ var d = { height: f.height, width: f.width, left: f.left - h.left, top: f.top - h.top, right: f.right - h.left, bottom: f.bottom - h.top };
+ return jq >= sst && (Ta.savedBBoxes = {}, jq = 0), r && (Ta.savedBBoxes[r] = d), jq++, Du.extendFlat({}, d);
+ };
+ function Roe(e) {
+ var t = e.getAttribute("data-unformatted");
+ if (t !== null) return t + e.getAttribute("data-math") + e.getAttribute("text-anchor") + e.getAttribute("style");
+ }
+ Ta.setClipUrl = function(e, t, r) {
+ e.attr("clip-path", Yq(t, r));
+ };
+ function Yq(e, t) {
+ if (!e) return null;
+ var r = t._context, n = r._exportedPlot ? "" : r._baseUrl || "";
+ return n ? "url('" + n + "#" + e + "')" : "url(#" + e + ")";
+ }
+ Ta.getTranslate = function(e) {
+ var t = /.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/, r = e.attr ? "attr" : "getAttribute", n = e[r]("transform") || "", i = n.replace(t, function(a, o, s) {
+ return [o, s].join(" ");
+ }).split(" ");
+ return { x: +i[0] || 0, y: +i[1] || 0 };
+ };
+ Ta.setTranslate = function(e, t, r) {
+ var n = /(\btranslate\(.*?\);?)/, i = e.attr ? "attr" : "getAttribute", a = e.attr ? "attr" : "setAttribute", o = e[i]("transform") || "";
+ return t = t || 0, r = r || 0, o = o.replace(n, "").trim(), o += oM(t, r), o = o.trim(), e[a]("transform", o), o;
+ };
+ Ta.getScale = function(e) {
+ var t = /.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/, r = e.attr ? "attr" : "getAttribute", n = e[r]("transform") || "", i = n.replace(t, function(a, o, s) {
+ return [o, s].join(" ");
+ }).split(" ");
+ return { x: +i[0] || 1, y: +i[1] || 1 };
+ };
+ Ta.setScale = function(e, t, r) {
+ var n = /(\bscale\(.*?\);?)/, i = e.attr ? "attr" : "getAttribute", a = e.attr ? "attr" : "setAttribute", o = e[i]("transform") || "";
+ return t = t || 1, r = r || 1, o = o.replace(n, "").trim(), o += "scale(" + t + "," + r + ")", o = o.trim(), e[a]("transform", o), o;
+ };
+ var lst = /\s*sc.*/;
+ Ta.setPointGroupScale = function(e, t, r) {
+ if (t = t || 1, r = r || 1, !!e) {
+ var n = t === 1 && r === 1 ? "" : "scale(" + t + "," + r + ")";
+ e.each(function() {
+ var i = (this.getAttribute("transform") || "").replace(lst, "");
+ i += n, i = i.trim(), this.setAttribute("transform", i);
+ });
+ }
+ };
+ var ust = /translate\([^)]*\)\s*$/;
+ Ta.setTextPointsScale = function(e, t, r) {
+ e && e.each(function() {
+ var n, i = dd.select(this), a = i.select("text");
+ if (a.node()) {
+ var o = parseFloat(a.attr("x") || 0), s = parseFloat(a.attr("y") || 0), l = (i.attr("transform") || "").match(ust);
+ t === 1 && r === 1 ? n = [] : n = [oM(o, s), "scale(" + t + "," + r + ")", oM(-o, -s)], l && n.push(l), i.attr("transform", n.join(""));
+ }
+ });
+ };
+ function Kq(e, t) {
+ var r;
+ return e && (r = e.mf), r === void 0 && (r = t.marker && t.marker.standoff || 0), !t._geo && !t._xA ? -r : r;
+ }
+ Ta.getMarkerStandoff = Kq;
+ var aM = Math.atan2, Pb = Math.cos, B3 = Math.sin;
+ function Doe(e, t) {
+ var r = t[0], n = t[1];
+ return [r * Pb(e) - n * B3(e), r * B3(e) + n * Pb(e)];
+ }
+ var Foe, zoe, Ooe, qoe, Wq, Xq;
+ function Jq(e, t) {
+ var r = e.ma;
+ r === void 0 && (r = t.marker.angle, (!r || Du.isArrayOrTypedArray(r)) && (r = 0));
+ var n, i, a = t.marker.angleref;
+ if (a === "previous" || a === "north") {
+ if (t._geo) {
+ var o = t._geo.project(e.lonlat);
+ n = o[0], i = o[1];
+ } else {
+ var s = t._xA, l = t._yA;
+ if (s && l) n = s.c2p(e.x), i = l.c2p(e.y);
+ else return 90;
+ }
+ if (t._geo) {
+ var u = e.lonlat[0], c = e.lonlat[1], f = t._geo.project([u, c + 1e-5]), h = t._geo.project([u + 1e-5, c]), d = aM(h[1] - i, h[0] - n), v = aM(f[1] - i, f[0] - n), _;
+ if (a === "north") _ = r / 180 * Math.PI;
+ else if (a === "previous") {
+ var b = u / 180 * Math.PI, p = c / 180 * Math.PI, k = Foe / 180 * Math.PI, E = zoe / 180 * Math.PI, T = k - b, L = Pb(E) * B3(T), x = B3(E) * Pb(p) - Pb(E) * B3(p) * Pb(T);
+ _ = -aM(L, x) - Math.PI, Foe = u, zoe = c;
+ }
+ var C = Doe(d, [Pb(_), 0]), M = Doe(v, [B3(_), 0]);
+ r = aM(C[1] + M[1], C[0] + M[0]) / Math.PI * 180, a === "previous" && !(Xq === t.uid && e.i === Wq + 1) && (r = null);
+ }
+ if (a === "previous" && !t._geo) if (Xq === t.uid && e.i === Wq + 1 && Db(n) && Db(i)) {
+ var g = n - Ooe, P = i - qoe, A = t.line && t.line.shape || "", z = A.slice(A.length - 1);
+ z === "h" && (P = 0), z === "v" && (g = 0), r += aM(P, g) / Math.PI * 180 + 90;
+ } else r = null;
+ }
+ return Ooe = n, qoe = i, Wq = e.i, Xq = t.uid, r;
+ }
+ Ta.getMarkerAngle = Jq;
+ });
+ var zb = ye(($nr, Qoe) => {
+ var N3 = Oa(), cst = Eo(), fst = Mc(), $q = qa(), Fb = Dr(), Koe = Fb.strTranslate, mL = So(), yL = ka(), U3 = Zl(), Joe = X1(), hst = Dh().OPPOSITE_SIDE, $oe = / [XY][0-9]* /, Qq = 1.6, eB = 1.6;
+ function dst(e, t, r) {
+ var n = e._fullLayout, i = r.propContainer, a = r.propName, o = r.placeholder, s = r.traceIndex, l = r.avoid || {}, u = r.attributes, c = r.transform, f = r.containerGroup, h = 1, d = i.title, v = (d && d.text ? d.text : "").trim(), _ = false, b = d && d.font ? d.font : {}, p = b.family, k = b.size, E = b.color, T = b.weight, L = b.style, x = b.variant, C = b.textcase, M = b.lineposition, g = b.shadow, P = r.subtitlePropName, A = !!P, z = r.subtitlePlaceholder, O = (i.title || {}).subtitle || { text: "", font: {} }, U = (O.text || "").trim(), G = false, Z = 1, j = O.font, N = j.family, H = j.size, re = j.color, oe = j.weight, _e = j.style, Ce = j.variant, Le = j.textcase, ge = j.lineposition, ie = j.shadow, Se;
+ a === "title.text" ? Se = "titleText" : a.indexOf("axis") !== -1 ? Se = "axisTitleText" : a.indexOf("colorbar") !== -1 && (Se = "colorbarTitleText");
+ var Ee = e._context.edits[Se];
+ function Ae(Nt, $t) {
+ return Nt === void 0 || $t === void 0 ? false : Nt.replace($oe, " % ") === $t.replace($oe, " % ");
+ }
+ v === "" ? h = 0 : Ae(v, o) && (Ee || (v = ""), h = 0.2, _ = true), A && (U === "" ? Z = 0 : Ae(U, z) && (Ee || (U = ""), Z = 0.2, G = true)), r._meta ? v = Fb.templateString(v, r._meta) : n._meta && (v = Fb.templateString(v, n._meta));
+ var Be = v || U || Ee, Pe;
+ f || (f = Fb.ensureSingle(n._infolayer, "g", "g-" + t), Pe = n._hColorbarMoveTitle);
+ var me = f.selectAll("text." + t).data(Be ? [0] : []);
+ me.enter().append("text"), me.text(v).attr("class", t), me.exit().remove();
+ var De = null, ce = t + "-subtitle", je = U || Ee;
+ if (A && (De = f.selectAll("text." + ce).data(je ? [0] : []), De.enter().append("text"), De.text(U).attr("class", ce), De.exit().remove()), !Be) return f;
+ function lt(Nt, $t) {
+ Fb.syncOrAsync([pt, Vt], { title: Nt, subtitle: $t });
+ }
+ function pt(Nt) {
+ var $t = Nt.title, sr = Nt.subtitle, Tr;
+ !c && Pe && (c = {}), c ? (Tr = "", c.rotate && (Tr += "rotate(" + [c.rotate, u.x, u.y] + ")"), (c.offset || Pe) && (Tr += Koe(0, (c.offset || 0) - (Pe || 0)))) : Tr = null, $t.attr("transform", Tr);
+ function fr(It) {
+ if (It) {
+ var mt = N3.select(It.node().parentNode).select("." + ce);
+ if (!mt.empty()) {
+ var er = It.node().getBBox();
+ if (er.height) {
+ var lr = er.y + er.height + Qq * H;
+ mt.attr("y", lr);
+ }
+ }
+ }
+ }
+ if ($t.style("opacity", h * yL.opacity(E)).call(mL.font, { color: yL.rgb(E), size: N3.round(k, 2), family: p, weight: T, style: L, variant: x, textcase: C, shadow: g, lineposition: M }).attr(u).call(U3.convertToTspans, e, fr), sr && !sr.empty()) {
+ var $e = f.select("." + t + "-math-group"), St = $t.node().getBBox(), Qt = $e.node() ? $e.node().getBBox() : void 0, Gt = Qt ? Qt.y + Qt.height + Qq * H : St.y + St.height + eB * H, _t = Fb.extendFlat({}, u, { y: Gt });
+ sr.attr("transform", Tr), sr.style("opacity", Z * yL.opacity(re)).call(mL.font, { color: yL.rgb(re), size: N3.round(H, 2), family: N, weight: oe, style: _e, variant: Ce, textcase: Le, shadow: ie, lineposition: ge }).attr(_t).call(U3.convertToTspans, e);
+ }
+ return fst.previousPromises(e);
+ }
+ function Vt(Nt) {
+ var $t = Nt.title, sr = N3.select($t.node().parentNode);
+ if (l && l.selection && l.side && v) {
+ sr.attr("transform", null);
+ var Tr = hst[l.side], fr = l.side === "left" || l.side === "top" ? -1 : 1, $e = cst(l.pad) ? l.pad : 2, St = mL.bBox(sr.node()), Qt = { t: 0, b: 0, l: 0, r: 0 }, Gt = e._fullLayout._reservedMargin;
+ for (var _t in Gt) for (var It in Gt[_t]) {
+ var mt = Gt[_t][It];
+ Qt[It] = Math.max(Qt[It], mt);
+ }
+ var er = { left: Qt.l, top: Qt.t, right: n.width - Qt.r, bottom: n.height - Qt.b }, lr = l.maxShift || fr * (er[l.side] - St[l.side]), wr = 0;
+ if (lr < 0) wr = lr;
+ else {
+ var Lr = l.offsetLeft || 0, ti = l.offsetTop || 0;
+ St.left -= Lr, St.right -= Lr, St.top -= ti, St.bottom -= ti, l.selection.each(function() {
+ var Vr = mL.bBox(this);
+ Fb.bBoxIntersect(St, Vr, $e) && (wr = Math.max(wr, fr * (Vr[l.side] - St[Tr]) + $e));
+ }), wr = Math.min(lr, wr), i._titleScoot = Math.abs(wr);
+ }
+ if (wr > 0 || lr < 0) {
+ var Br = { left: [-wr, 0], right: [wr, 0], top: [0, -wr], bottom: [0, wr] }[l.side];
+ sr.attr("transform", Koe(Br[0], Br[1]));
+ }
+ }
+ }
+ me.call(lt, De);
+ function ot(Nt, $t) {
+ Nt.text($t).on("mouseover.opacity", function() {
+ N3.select(this).transition().duration(Joe.SHOW_PLACEHOLDER).style("opacity", 1);
+ }).on("mouseout.opacity", function() {
+ N3.select(this).transition().duration(Joe.HIDE_PLACEHOLDER).style("opacity", 0);
+ });
+ }
+ if (Ee && (v ? me.on(".opacity", null) : (ot(me, o), _ = true), me.call(U3.makeEditable, { gd: e }).on("edit", function(Nt) {
+ s !== void 0 ? $q.call("_guiRestyle", e, a, Nt, s) : $q.call("_guiRelayout", e, a, Nt);
+ }).on("cancel", function() {
+ this.text(this.attr("data-unformatted")).call(lt);
+ }).on("input", function(Nt) {
+ this.text(Nt || " ").call(U3.positionText, u.x, u.y);
+ }), A)) {
+ if (A && !v) {
+ var ut = me.node().getBBox(), Wt = ut.y + ut.height + eB * H;
+ De.attr("y", Wt);
+ }
+ U ? De.on(".opacity", null) : (ot(De, z), G = true), De.call(U3.makeEditable, { gd: e }).on("edit", function(Nt) {
+ $q.call("_guiRelayout", e, "title.subtitle.text", Nt);
+ }).on("cancel", function() {
+ this.text(this.attr("data-unformatted")).call(lt);
+ }).on("input", function(Nt) {
+ this.text(Nt || " ").call(U3.positionText, De.attr("x"), De.attr("y"));
+ });
+ }
+ return me.classed("js-placeholder", _), De && !De.empty() && De.classed("js-placeholder", G), f;
+ }
+ Qoe.exports = { draw: dst, SUBTITLE_PADDING_EM: eB, SUBTITLE_PADDING_MATHJAX_EM: Qq };
+ });
+ var xm = ye((Qnr, nse) => {
+ var vst = Oa(), pst = f3().utcFormat, yc = Dr(), gst = yc.numberFormat, ym = Eo(), f_ = yc.cleanNumber, mst = yc.ms2DateTime, ese = yc.dateTime2ms, _m = yc.ensureNumber, tse = yc.isArrayOrTypedArray, h_ = fs(), _L = h_.FP_SAFE, Sg = h_.BADNUM, yst = h_.LOG_CLIP, _st = h_.ONEWEEK, xL = h_.ONEDAY, bL = h_.ONEHOUR, rse = h_.ONEMIN, ise = h_.ONESEC, wL = hf(), SL = Rh(), TL = SL.HOUR_PATTERN, AL = SL.WEEKDAY_PATTERN;
+ function sM(e) {
+ return Math.pow(10, e);
+ }
+ function tB(e) {
+ return e != null;
+ }
+ nse.exports = function(t, r) {
+ r = r || {};
+ var n = t._id || "x", i = n.charAt(0);
+ function a(T, L) {
+ if (T > 0) return Math.log(T) / Math.LN10;
+ if (T <= 0 && L && t.range && t.range.length === 2) {
+ var x = t.range[0], C = t.range[1];
+ return 0.5 * (x + C - 2 * yst * Math.abs(x - C));
+ } else return Sg;
+ }
+ function o(T, L, x, C) {
+ if ((C || {}).msUTC && ym(T)) return +T;
+ var M = ese(T, x || t.calendar);
+ if (M === Sg) if (ym(T)) {
+ T = +T;
+ var g = Math.floor(yc.mod(T + 0.05, 1) * 10), P = Math.round(T - g / 10);
+ M = ese(new Date(P)) + g / 10;
+ } else return Sg;
+ return M;
+ }
+ function s(T, L, x) {
+ return mst(T, L, x || t.calendar);
+ }
+ function l(T) {
+ return t._categories[Math.round(T)];
+ }
+ function u(T) {
+ if (tB(T)) {
+ if (t._categoriesMap === void 0 && (t._categoriesMap = {}), t._categoriesMap[T] !== void 0) return t._categoriesMap[T];
+ t._categories.push(typeof T == "number" ? String(T) : T);
+ var L = t._categories.length - 1;
+ return t._categoriesMap[T] = L, L;
+ }
+ return Sg;
+ }
+ function c(T, L) {
+ for (var x = new Array(L), C = 0; C < L; C++) {
+ var M = (T[0] || [])[C], g = (T[1] || [])[C];
+ x[C] = f([M, g]);
+ }
+ return x;
+ }
+ function f(T) {
+ if (t._categoriesMap) return t._categoriesMap[T];
+ }
+ function h(T) {
+ var L = f(T);
+ if (L !== void 0) return L;
+ if (ym(T)) return +T;
+ }
+ function d(T) {
+ return ym(T) ? +T : f(T);
+ }
+ function v(T, L, x) {
+ return vst.round(x + L * T, 2);
+ }
+ function _(T, L, x) {
+ return (T - x) / L;
+ }
+ var b = function(L) {
+ return ym(L) ? v(L, t._m, t._b) : Sg;
+ }, p = function(T) {
+ return _(T, t._m, t._b);
+ };
+ if (t.rangebreaks) {
+ var k = i === "y";
+ b = function(T) {
+ if (!ym(T)) return Sg;
+ var L = t._rangebreaks.length;
+ if (!L) return v(T, t._m, t._b);
+ var x = k;
+ t.range[0] > t.range[1] && (x = !x);
+ for (var C = x ? -1 : 1, M = C * T, g = 0, P = 0; P < L; P++) {
+ var A = C * t._rangebreaks[P].min, z = C * t._rangebreaks[P].max;
+ if (M < A) break;
+ if (M > z) g = P + 1;
+ else {
+ g = M < (A + z) / 2 ? P : P + 1;
+ break;
+ }
+ }
+ var O = t._B[g] || 0;
+ return isFinite(O) ? v(T, t._m2, O) : 0;
+ }, p = function(T) {
+ var L = t._rangebreaks.length;
+ if (!L) return _(T, t._m, t._b);
+ for (var x = 0, C = 0; C < L && !(T < t._rangebreaks[C].pmin); C++) T > t._rangebreaks[C].pmax && (x = C + 1);
+ return _(T, t._m2, t._B[x]);
+ };
+ }
+ t.c2l = t.type === "log" ? a : _m, t.l2c = t.type === "log" ? sM : _m, t.l2p = b, t.p2l = p, t.c2p = t.type === "log" ? function(T, L) {
+ return b(a(T, L));
+ } : b, t.p2c = t.type === "log" ? function(T) {
+ return sM(p(T));
+ } : p, ["linear", "-"].indexOf(t.type) !== -1 ? (t.d2r = t.r2d = t.d2c = t.r2c = t.d2l = t.r2l = f_, t.c2d = t.c2r = t.l2d = t.l2r = _m, t.d2p = t.r2p = function(T) {
+ return t.l2p(f_(T));
+ }, t.p2d = t.p2r = p, t.cleanPos = _m) : t.type === "log" ? (t.d2r = t.d2l = function(T, L) {
+ return a(f_(T), L);
+ }, t.r2d = t.r2c = function(T) {
+ return sM(f_(T));
+ }, t.d2c = t.r2l = f_, t.c2d = t.l2r = _m, t.c2r = a, t.l2d = sM, t.d2p = function(T, L) {
+ return t.l2p(t.d2r(T, L));
+ }, t.p2d = function(T) {
+ return sM(p(T));
+ }, t.r2p = function(T) {
+ return t.l2p(f_(T));
+ }, t.p2r = p, t.cleanPos = _m) : t.type === "date" ? (t.d2r = t.r2d = yc.identity, t.d2c = t.r2c = t.d2l = t.r2l = o, t.c2d = t.c2r = t.l2d = t.l2r = s, t.d2p = t.r2p = function(T, L, x) {
+ return t.l2p(o(T, 0, x));
+ }, t.p2d = t.p2r = function(T, L, x) {
+ return s(p(T), L, x);
+ }, t.cleanPos = function(T) {
+ return yc.cleanDate(T, Sg, t.calendar);
+ }) : t.type === "category" ? (t.d2c = t.d2l = u, t.r2d = t.c2d = t.l2d = l, t.d2r = t.d2l_noadd = h, t.r2c = function(T) {
+ var L = d(T);
+ return L !== void 0 ? L : t.fraction2r(0.5);
+ }, t.l2r = t.c2r = _m, t.r2l = d, t.d2p = function(T) {
+ return t.l2p(t.r2c(T));
+ }, t.p2d = function(T) {
+ return l(p(T));
+ }, t.r2p = t.d2p, t.p2r = p, t.cleanPos = function(T) {
+ return typeof T == "string" && T !== "" ? T : _m(T);
+ }) : t.type === "multicategory" && (t.r2d = t.c2d = t.l2d = l, t.d2r = t.d2l_noadd = h, t.r2c = function(T) {
+ var L = h(T);
+ return L !== void 0 ? L : t.fraction2r(0.5);
+ }, t.r2c_just_indices = f, t.l2r = t.c2r = _m, t.r2l = h, t.d2p = function(T) {
+ return t.l2p(t.r2c(T));
+ }, t.p2d = function(T) {
+ return l(p(T));
+ }, t.r2p = t.d2p, t.p2r = p, t.cleanPos = function(T) {
+ return Array.isArray(T) || typeof T == "string" && T !== "" ? T : _m(T);
+ }, t.setupMultiCategory = function(T) {
+ var L = t._traceIndices, x, C, M = t._matchGroup;
+ if (M && t._categories.length === 0) {
+ for (var g in M) if (g !== n) {
+ var P = r[wL.id2name(g)];
+ L = L.concat(P._traceIndices);
+ }
+ }
+ var A = [[0, {}], [0, {}]], z = [];
+ for (x = 0; x < L.length; x++) {
+ var O = T[L[x]];
+ if (i in O) {
+ var U = O[i], G = O._length || yc.minRowLength(U);
+ if (tse(U[0]) && tse(U[1])) for (C = 0; C < G; C++) {
+ var Z = U[0][C], j = U[1][C];
+ tB(Z) && tB(j) && (z.push([Z, j]), Z in A[0][1] || (A[0][1][Z] = A[0][0]++), j in A[1][1] || (A[1][1][j] = A[1][0]++));
+ }
+ }
+ }
+ for (z.sort(function(N, H) {
+ var re = A[0][1], oe = re[N[0]] - re[H[0]];
+ if (oe) return oe;
+ var _e = A[1][1];
+ return _e[N[1]] - _e[H[1]];
+ }), x = 0; x < z.length; x++) u(z[x]);
+ }), t.fraction2r = function(T) {
+ var L = t.r2l(t.range[0]), x = t.r2l(t.range[1]);
+ return t.l2r(L + T * (x - L));
+ }, t.r2fraction = function(T) {
+ var L = t.r2l(t.range[0]), x = t.r2l(t.range[1]);
+ return (t.r2l(T) - L) / (x - L);
+ }, t.limitRange = function(T) {
+ var L = t.minallowed, x = t.maxallowed;
+ if (!(L === void 0 && x === void 0)) {
+ T || (T = "range");
+ var C = yc.nestedProperty(t, T).get(), M = yc.simpleMap(C, t.r2l), g = M[1] < M[0];
+ g && M.reverse();
+ var P = yc.simpleMap([L, x], t.r2l);
+ if (L !== void 0 && M[0] < P[0] && (C[g ? 1 : 0] = L), x !== void 0 && M[1] > P[1] && (C[g ? 0 : 1] = x), C[0] === C[1]) {
+ var A = t.l2r(L), z = t.l2r(x);
+ if (L !== void 0) {
+ var O = A + 1;
+ x !== void 0 && (O = Math.min(O, z)), C[g ? 1 : 0] = O;
+ }
+ if (x !== void 0) {
+ var U = z + 1;
+ L !== void 0 && (U = Math.max(U, A)), C[g ? 0 : 1] = U;
+ }
+ }
+ }
+ }, t.cleanRange = function(T, L) {
+ t._cleanRange(T, L), t.limitRange(T);
+ }, t._cleanRange = function(T, L) {
+ L || (L = {}), T || (T = "range");
+ var x = yc.nestedProperty(t, T).get(), C, M;
+ if (t.type === "date" ? M = yc.dfltRange(t.calendar) : i === "y" ? M = SL.DFLTRANGEY : t._name === "realaxis" ? M = [0, 1] : M = L.dfltRange || SL.DFLTRANGEX, M = M.slice(), (t.rangemode === "tozero" || t.rangemode === "nonnegative") && (M[0] = 0), !x || x.length !== 2) {
+ yc.nestedProperty(t, T).set(M);
+ return;
+ }
+ var g = x[0] === null, P = x[1] === null;
+ for (t.type === "date" && !t.autorange && (x[0] = yc.cleanDate(x[0], Sg, t.calendar), x[1] = yc.cleanDate(x[1], Sg, t.calendar)), C = 0; C < 2; C++) if (t.type === "date") {
+ if (!yc.isDateTime(x[C], t.calendar)) {
+ t[T] = M;
+ break;
+ }
+ if (t.r2l(x[0]) === t.r2l(x[1])) {
+ var A = yc.constrain(t.r2l(x[0]), yc.MIN_MS + 1e3, yc.MAX_MS - 1e3);
+ x[0] = t.l2r(A - 1e3), x[1] = t.l2r(A + 1e3);
+ break;
+ }
+ } else {
+ if (!ym(x[C])) if (!(g || P) && ym(x[1 - C])) x[C] = x[1 - C] * (C ? 10 : 0.1);
+ else {
+ t[T] = M;
+ break;
+ }
+ if (x[C] < -_L ? x[C] = -_L : x[C] > _L && (x[C] = _L), x[0] === x[1]) {
+ var z = Math.max(1, Math.abs(x[0] * 1e-6));
+ x[0] -= z, x[1] += z;
+ }
+ }
+ }, t.setScale = function(T) {
+ var L = r._size;
+ if (t.overlaying) {
+ var x = wL.getFromId({ _fullLayout: r }, t.overlaying);
+ t.domain = x.domain;
+ }
+ var C = T && t._r ? "_r" : "range", M = t.calendar;
+ t.cleanRange(C);
+ var g = t.r2l(t[C][0], M), P = t.r2l(t[C][1], M), A = i === "y";
+ if (A ? (t._offset = L.t + (1 - t.domain[1]) * L.h, t._length = L.h * (t.domain[1] - t.domain[0]), t._m = t._length / (g - P), t._b = -t._m * P) : (t._offset = L.l + t.domain[0] * L.w, t._length = L.w * (t.domain[1] - t.domain[0]), t._m = t._length / (P - g), t._b = -t._m * g), t._rangebreaks = [], t._lBreaks = 0, t._m2 = 0, t._B = [], t.rangebreaks) {
+ var z, O;
+ if (t._rangebreaks = t.locateBreaks(Math.min(g, P), Math.max(g, P)), t._rangebreaks.length) {
+ for (z = 0; z < t._rangebreaks.length; z++) O = t._rangebreaks[z], t._lBreaks += Math.abs(O.max - O.min);
+ var U = A;
+ g > P && (U = !U), U && t._rangebreaks.reverse();
+ var G = U ? -1 : 1;
+ for (t._m2 = G * t._length / (Math.abs(P - g) - t._lBreaks), t._B.push(-t._m2 * (A ? P : g)), z = 0; z < t._rangebreaks.length; z++) O = t._rangebreaks[z], t._B.push(t._B[t._B.length - 1] - G * t._m2 * (O.max - O.min));
+ for (z = 0; z < t._rangebreaks.length; z++) O = t._rangebreaks[z], O.pmin = b(O.min), O.pmax = b(O.max);
+ }
+ }
+ if (!isFinite(t._m) || !isFinite(t._b) || t._length < 0) throw r._replotting = false, new Error("Something went wrong with axis scaling");
+ }, t.maskBreaks = function(T) {
+ var L = t.rangebreaks || [], x, C, M, g, P;
+ L._cachedPatterns || (L._cachedPatterns = L.map(function(re) {
+ return re.enabled && re.bounds ? yc.simpleMap(re.bounds, re.pattern ? f_ : t.d2c) : null;
+ })), L._cachedValues || (L._cachedValues = L.map(function(re) {
+ return re.enabled && re.values ? yc.simpleMap(re.values, t.d2c).sort(yc.sorterAsc) : null;
+ }));
+ for (var A = 0; A < L.length; A++) {
+ var z = L[A];
+ if (z.enabled) {
+ if (z.bounds) {
+ var O = z.pattern;
+ switch (x = L._cachedPatterns[A], C = x[0], M = x[1], O) {
+ case AL:
+ P = new Date(T), g = P.getUTCDay(), C > M && (M += 7, g < C && (g += 7));
+ break;
+ case TL:
+ P = new Date(T);
+ var U = P.getUTCHours(), G = P.getUTCMinutes(), Z = P.getUTCSeconds(), j = P.getUTCMilliseconds();
+ g = U + (G / 60 + Z / 3600 + j / 36e5), C > M && (M += 24, g < C && (g += 24));
+ break;
+ case "":
+ g = T;
+ break;
+ }
+ if (g >= C && g < M) return Sg;
+ } else for (var N = L._cachedValues[A], H = 0; H < N.length; H++) if (C = N[H], M = C + z.dvalue, T >= C && T < M) return Sg;
+ }
+ }
+ return T;
+ }, t.locateBreaks = function(T, L) {
+ var x, C, M, g, P = [];
+ if (!t.rangebreaks) return P;
+ var A = t.rangebreaks.slice().sort(function(_e, Ce) {
+ return _e.pattern === AL && Ce.pattern === TL ? -1 : Ce.pattern === AL && _e.pattern === TL ? 1 : 0;
+ }), z = function(_e, Ce) {
+ if (_e = yc.constrain(_e, T, L), Ce = yc.constrain(Ce, T, L), _e !== Ce) {
+ for (var Le = true, ge = 0; ge < P.length; ge++) {
+ var ie = P[ge];
+ _e < ie.max && Ce >= ie.min && (_e < ie.min && (ie.min = _e), Ce > ie.max && (ie.max = Ce), Le = false);
+ }
+ Le && P.push({ min: _e, max: Ce });
+ }
+ };
+ for (x = 0; x < A.length; x++) {
+ var O = A[x];
+ if (O.enabled) if (O.bounds) {
+ var U = T, G = L;
+ O.pattern && (U = Math.floor(U)), C = yc.simpleMap(O.bounds, O.pattern ? f_ : t.r2l), M = C[0], g = C[1];
+ var Z = new Date(U), j, N;
+ switch (O.pattern) {
+ case AL:
+ N = _st, j = ((g < M ? 7 : 0) + (g - M)) * xL, U += M * xL - (Z.getUTCDay() * xL + Z.getUTCHours() * bL + Z.getUTCMinutes() * rse + Z.getUTCSeconds() * ise + Z.getUTCMilliseconds());
+ break;
+ case TL:
+ N = xL, j = ((g < M ? 24 : 0) + (g - M)) * bL, U += M * bL - (Z.getUTCHours() * bL + Z.getUTCMinutes() * rse + Z.getUTCSeconds() * ise + Z.getUTCMilliseconds());
+ break;
+ default:
+ U = Math.min(C[0], C[1]), G = Math.max(C[0], C[1]), N = G - U, j = N;
+ }
+ for (var H = U; H < G; H += N) z(H, H + j);
+ } else for (var re = yc.simpleMap(O.values, t.d2c), oe = 0; oe < re.length; oe++) M = re[oe], g = M + O.dvalue, z(M, g);
+ }
+ return P.sort(function(_e, Ce) {
+ return _e.min - Ce.min;
+ }), P;
+ }, t.makeCalcdata = function(T, L, x) {
+ var C, M, g, P, A = t.type, z = A === "date" && T[L + "calendar"];
+ if (L in T) {
+ if (C = T[L], P = T._length || yc.minRowLength(C), yc.isTypedArray(C) && (A === "linear" || A === "log")) {
+ if (P === C.length) return C;
+ if (C.subarray) return C.subarray(0, P);
+ }
+ if (A === "multicategory") return c(C, P);
+ for (M = new Array(P), g = 0; g < P; g++) M[g] = t.d2c(C[g], 0, z, x);
+ } else {
+ var O = L + "0" in T ? t.d2c(T[L + "0"], 0, z) : 0, U = T["d" + L] ? Number(T["d" + L]) : 1;
+ for (C = T[{ x: "y", y: "x" }[L]], P = T._length || C.length, M = new Array(P), g = 0; g < P; g++) M[g] = O + g * U;
+ }
+ if (t.rangebreaks) for (g = 0; g < P; g++) M[g] = t.maskBreaks(M[g]);
+ return M;
+ }, t.isValidRange = function(T, L) {
+ return Array.isArray(T) && T.length === 2 && (L && T[0] === null || ym(t.r2l(T[0]))) && (L && T[1] === null || ym(t.r2l(T[1])));
+ }, t.getAutorangeDflt = function(T, L) {
+ var x = !t.isValidRange(T, "nullOk");
+ return x && L && L.reverseDflt ? x = "reversed" : T && (T[0] === null && T[1] === null ? x = true : T[0] === null && T[1] !== null ? x = "min" : T[0] !== null && T[1] === null && (x = "max")), x;
+ }, t.isReversed = function() {
+ var T = t.autorange;
+ return T === "reversed" || T === "min reversed" || T === "max reversed";
+ }, t.isPtWithinRange = function(T, L) {
+ var x = t.c2l(T[i], null, L), C = t.r2l(t.range[0]), M = t.r2l(t.range[1]);
+ return C < M ? C <= x && x <= M : M <= x && x <= C;
+ }, t._emptyCategories = function() {
+ t._categories = [], t._categoriesMap = {};
+ }, t.clearCalc = function() {
+ var T = t._matchGroup;
+ if (T) {
+ var L = null, x = null;
+ for (var C in T) {
+ var M = r[wL.id2name(C)];
+ if (M._categories) {
+ L = M._categories, x = M._categoriesMap;
+ break;
+ }
+ }
+ L && x ? (t._categories = L, t._categoriesMap = x) : t._emptyCategories();
+ } else t._emptyCategories();
+ if (t._initialCategories) for (var g = 0; g < t._initialCategories.length; g++) u(t._initialCategories[g]);
+ }, t.sortByInitialCategories = function() {
+ var T = [];
+ if (t._emptyCategories(), t._initialCategories) for (var L = 0; L < t._initialCategories.length; L++) u(t._initialCategories[L]);
+ T = T.concat(t._traceIndices);
+ var x = t._matchGroup;
+ for (var C in x) if (n !== C) {
+ var M = r[wL.id2name(C)];
+ M._categories = t._categories, M._categoriesMap = t._categoriesMap, T = T.concat(M._traceIndices);
+ }
+ return T;
+ };
+ var E = r._d3locale;
+ t.type === "date" && (t._dateFormat = E ? E.timeFormat : pst, t._extraFormat = r._extraFormat), t._separators = r.separators, t._numFormat = E ? E.numberFormat : gst, delete t._minDtick, delete t._forceTick0;
+ };
+ });
+ var V3 = ye((ear, lse) => {
+ var ase = Eo(), rB = Dr(), xst = fs().BADNUM, ML = rB.isArrayOrTypedArray, bst = rB.isDateTime, wst = rB.cleanNumber, ose = Math.round;
+ lse.exports = function(t, r, n) {
+ var i = t, a = n.noMultiCategory;
+ if (ML(i) && !i.length) return "-";
+ if (!a && Est(i)) return "multicategory";
+ if (a && Array.isArray(i[0])) {
+ for (var o = [], s = 0; s < i.length; s++) if (ML(i[s])) for (var l = 0; l < i[s].length; l++) o.push(i[s][l]);
+ i = o;
+ }
+ if (Sst(i, r)) return "date";
+ var u = n.autotypenumbers !== "strict";
+ return Mst(i, u) ? "category" : Ast(i, u) ? "linear" : "-";
+ };
+ function Tst(e, t) {
+ return t ? ase(e) : typeof e == "number";
+ }
+ function Ast(e, t) {
+ for (var r = e.length, n = 0; n < r; n++) if (Tst(e[n], t)) return true;
+ return false;
+ }
+ function Sst(e, t) {
+ for (var r = e.length, n = sse(r), i = 0, a = 0, o = {}, s = 0; s < r; s += n) {
+ var l = ose(s), u = e[l], c = String(u);
+ o[c] || (o[c] = 1, bst(u, t) && i++, ase(u) && a++);
+ }
+ return i > a * 2;
+ }
+ function sse(e) {
+ return Math.max(1, (e - 1) / 1e3);
+ }
+ function Mst(e, t) {
+ for (var r = e.length, n = sse(r), i = 0, a = 0, o = {}, s = 0; s < r; s += n) {
+ var l = ose(s), u = e[l], c = String(u);
+ if (!o[c]) {
+ o[c] = 1;
+ var f = typeof u;
+ f === "boolean" ? a++ : (t ? wst(u) !== xst : f === "number") ? i++ : f === "string" && a++;
+ }
+ }
+ return a > i * 2;
+ }
+ function Est(e) {
+ return ML(e[0]) && ML(e[1]);
+ }
+ });
+ var Mg = ye((tar, gse) => {
+ var kst = Oa(), hse = Eo(), d_ = Dr(), EL = fs().FP_SAFE, Cst = qa(), Lst = So(), dse = hf(), Pst = dse.getFromId, Ist = dse.isLinked;
+ gse.exports = { applyAutorangeOptions: pse, getAutoRange: iB, makePadFn: nB, doAutoRange: Dst, findExtremes: Fst, concatExtremes: sB };
+ function iB(e, t) {
+ var r, n, i = [], a = e._fullLayout, o = nB(a, t, 0), s = nB(a, t, 1), l = sB(e, t), u = l.min, c = l.max;
+ if (u.length === 0 || c.length === 0) return d_.simpleMap(t.range, t.r2l);
+ var f = u[0].val, h = c[0].val;
+ for (r = 1; r < u.length && f === h; r++) f = Math.min(f, u[r].val);
+ for (r = 1; r < c.length && f === h; r++) h = Math.max(h, c[r].val);
+ var d = t.autorange, v = d === "reversed" || d === "min reversed" || d === "max reversed";
+ if (!v && t.range) {
+ var _ = d_.simpleMap(t.range, t.r2l);
+ v = _[1] < _[0];
+ }
+ t.autorange === "reversed" && (t.autorange = true);
+ var b = t.rangemode, p = b === "tozero", k = b === "nonnegative", E = t._length, T = E / 10, L = 0, x, C, M, g, P, A;
+ for (r = 0; r < u.length; r++) for (x = u[r], n = 0; n < c.length; n++) C = c[n], A = C.val - x.val - use(t, x.val, C.val), A > 0 && (P = E - o(x) - s(C), P > T ? A / P > L && (M = x, g = C, L = A / P) : A / E > L && (M = { val: x.val, nopad: 1 }, g = { val: C.val, nopad: 1 }, L = A / E));
+ function z(j, N) {
+ return Math.max(j, s(N));
+ }
+ if (f === h) {
+ var O = f - 1, U = f + 1;
+ if (p) if (f === 0) i = [0, 1];
+ else {
+ var G = (f > 0 ? c : u).reduce(z, 0), Z = f / (1 - Math.min(0.5, G / E));
+ i = f > 0 ? [0, Z] : [Z, 0];
+ }
+ else k ? i = [Math.max(0, O), Math.max(1, U)] : i = [O, U];
+ } else p ? (M.val >= 0 && (M = { val: 0, nopad: 1 }), g.val <= 0 && (g = { val: 0, nopad: 1 })) : k && (M.val - L * o(M) < 0 && (M = { val: 0, nopad: 1 }), g.val <= 0 && (g = { val: 1, nopad: 1 })), L = (g.val - M.val - use(t, x.val, C.val)) / (E - o(M) - s(g)), i = [M.val - L * o(M), g.val + L * s(g)];
+ return i = pse(i, t), t.limitRange && t.limitRange(), v && i.reverse(), d_.simpleMap(i, t.l2r || Number);
+ }
+ function use(e, t, r) {
+ var n = 0;
+ if (e.rangebreaks) for (var i = e.locateBreaks(t, r), a = 0; a < i.length; a++) {
+ var o = i[a];
+ n += o.max - o.min;
+ }
+ return n;
+ }
+ function nB(e, t, r) {
+ var n = 0.05 * t._length, i = t._anchorAxis || {};
+ if ((t.ticklabelposition || "").indexOf("inside") !== -1 || (i.ticklabelposition || "").indexOf("inside") !== -1) {
+ var a = t.isReversed();
+ if (!a) {
+ var o = d_.simpleMap(t.range, t.r2l);
+ a = o[1] < o[0];
+ }
+ a && (r = !r);
+ }
+ var s = 0;
+ return Ist(e, t._id) || (s = Rst(e, t, r)), n = Math.max(s, n), t.constrain === "domain" && t._inputDomain && (n *= (t._inputDomain[1] - t._inputDomain[0]) / (t.domain[1] - t.domain[0])), function(u) {
+ return u.nopad ? 0 : u.pad + (u.extrapad ? n : s);
+ };
+ }
+ var cse = 3;
+ function Rst(e, t, r) {
+ var n = 0, i = t._id.charAt(0) === "x";
+ for (var a in e._plots) {
+ var o = e._plots[a];
+ if (!(t._id !== o.xaxis._id && t._id !== o.yaxis._id)) {
+ var s = (i ? o.yaxis : o.xaxis) || {};
+ if ((s.ticklabelposition || "").indexOf("inside") !== -1 && (!r && (s.side === "left" || s.side === "bottom") || r && (s.side === "top" || s.side === "right"))) {
+ if (s._vals) {
+ var l = d_.deg2rad(s._tickAngles[s._id + "tick"] || 0), u = Math.abs(Math.cos(l)), c = Math.abs(Math.sin(l));
+ if (!s._vals[0].bb) {
+ var f = s._id + "tick", h = s._selections[f];
+ h.each(function(k) {
+ var E = kst.select(this), T = E.select(".text-math-group");
+ T.empty() && (k.bb = Lst.bBox(E.node()));
+ });
+ }
+ for (var d = 0; d < s._vals.length; d++) {
+ var v = s._vals[d], _ = v.bb;
+ if (_) {
+ var b = 2 * cse + _.width, p = 2 * cse + _.height;
+ n = Math.max(n, i ? Math.max(b * u, p * c) : Math.max(p * u, b * c));
+ }
+ }
+ }
+ s.ticks === "inside" && s.ticklabelposition === "inside" && (n += s.ticklen || 0);
+ }
+ }
+ }
+ return n;
+ }
+ function sB(e, t, r) {
+ var n = t._id, i = e._fullData, a = e._fullLayout, o = [], s = [], l, u, c;
+ function f(b, p) {
+ for (l = 0; l < p.length; l++) {
+ var k = b[p[l]], E = (k._extremes || {})[n];
+ if (k.visible === true && E) {
+ for (u = 0; u < E.min.length; u++) c = E.min[u], aB(o, c.val, c.pad, { extrapad: c.extrapad });
+ for (u = 0; u < E.max.length; u++) c = E.max[u], oB(s, c.val, c.pad, { extrapad: c.extrapad });
+ }
+ }
+ }
+ if (f(i, t._traceIndices), f(a.annotations || [], t._annIndices || []), f(a.shapes || [], t._shapeIndices || []), t._matchGroup && !r) {
+ for (var h in t._matchGroup) if (h !== t._id) {
+ var d = Pst(e, h), v = sB(e, d, true), _ = t._length / d._length;
+ for (u = 0; u < v.min.length; u++) c = v.min[u], aB(o, c.val, c.pad * _, { extrapad: c.extrapad });
+ for (u = 0; u < v.max.length; u++) c = v.max[u], oB(s, c.val, c.pad * _, { extrapad: c.extrapad });
+ }
+ }
+ return { min: o, max: s };
+ }
+ function Dst(e, t, r) {
+ if (t.setScale(), t.autorange) {
+ t.range = r ? r.slice() : iB(e, t), t._r = t.range.slice(), t._rl = d_.simpleMap(t._r, t.r2l);
+ var n = t._input, i = {};
+ i[t._attr + ".range"] = t.range, i[t._attr + ".autorange"] = t.autorange, Cst.call("_storeDirectGUIEdit", e.layout, e._fullLayout._preGUI, i), n.range = t.range.slice(), n.autorange = t.autorange;
+ }
+ var a = t._anchorAxis;
+ if (a && a.rangeslider) {
+ var o = a.rangeslider[t._name];
+ o && o.rangemode === "auto" && (o.range = iB(e, t)), a._input.rangeslider[t._name] = d_.extendFlat({}, o);
+ }
+ }
+ function Fst(e, t, r) {
+ r || (r = {}), e._m || e.setScale();
+ var n = [], i = [], a = t.length, o = r.padded || false, s = r.tozero && (e.type === "linear" || e.type === "-"), l = e.type === "log", u = false, c = r.vpadLinearized || false, f, h, d, v, _, b, p, k, E;
+ function T(z) {
+ if (Array.isArray(z)) return u = true, function(U) {
+ return Math.max(Number(z[U] || 0), 0);
+ };
+ var O = Math.max(Number(z || 0), 0);
+ return function() {
+ return O;
+ };
+ }
+ var L = T((e._m > 0 ? r.ppadplus : r.ppadminus) || r.ppad || 0), x = T((e._m > 0 ? r.ppadminus : r.ppadplus) || r.ppad || 0), C = T(r.vpadplus || r.vpad), M = T(r.vpadminus || r.vpad);
+ if (!u) {
+ if (k = 1 / 0, E = -1 / 0, l) for (f = 0; f < a; f++) h = t[f], h < k && h > 0 && (k = h), h > E && h < EL && (E = h);
+ else for (f = 0; f < a; f++) h = t[f], h < k && h > -EL && (k = h), h > E && h < EL && (E = h);
+ t = [k, E], a = 2;
+ }
+ var g = { tozero: s, extrapad: o };
+ function P(z) {
+ d = t[z], hse(d) && (b = L(z), p = x(z), c ? (v = e.c2l(d) - M(z), _ = e.c2l(d) + C(z)) : (k = d - M(z), E = d + C(z), l && k < E / 10 && (k = E / 10), v = e.c2l(k), _ = e.c2l(E)), s && (v = Math.min(0, v), _ = Math.max(0, _)), fse(v) && aB(n, v, p, g), fse(_) && oB(i, _, b, g));
+ }
+ var A = Math.min(6, a);
+ for (f = 0; f < A; f++) P(f);
+ for (f = a - 1; f >= A; f--) P(f);
+ return { min: n, max: i, opts: r };
+ }
+ function aB(e, t, r, n) {
+ vse(e, t, r, n, zst);
+ }
+ function oB(e, t, r, n) {
+ vse(e, t, r, n, Ost);
+ }
+ function vse(e, t, r, n, i) {
+ for (var a = n.tozero, o = n.extrapad, s = true, l = 0; l < e.length && s; l++) {
+ var u = e[l];
+ if (i(u.val, t) && u.pad >= r && (u.extrapad || !o)) {
+ s = false;
+ break;
+ } else i(t, u.val) && u.pad <= r && (o || !u.extrapad) && (e.splice(l, 1), l--);
+ }
+ if (s) {
+ var c = a && t === 0;
+ e.push({ val: t, pad: c ? 0 : r, extrapad: c ? false : o });
+ }
+ }
+ function fse(e) {
+ return hse(e) && Math.abs(e) < EL;
+ }
+ function zst(e, t) {
+ return e <= t;
+ }
+ function Ost(e, t) {
+ return e >= t;
+ }
+ function qst(e, t) {
+ var r = t.autorangeoptions;
+ return r && r.minallowed !== void 0 && kL(t, r.minallowed, r.maxallowed) ? r.minallowed : r && r.clipmin !== void 0 && kL(t, r.clipmin, r.clipmax) ? Math.max(e, t.d2l(r.clipmin)) : e;
+ }
+ function Bst(e, t) {
+ var r = t.autorangeoptions;
+ return r && r.maxallowed !== void 0 && kL(t, r.minallowed, r.maxallowed) ? r.maxallowed : r && r.clipmax !== void 0 && kL(t, r.clipmin, r.clipmax) ? Math.min(e, t.d2l(r.clipmax)) : e;
+ }
+ function kL(e, t, r) {
+ return t !== void 0 && r !== void 0 ? (t = e.d2l(t), r = e.d2l(r), t < r) : true;
+ }
+ function pse(e, t) {
+ if (!t || !t.autorangeoptions) return e;
+ var r = e[0], n = e[1], i = t.autorangeoptions.include;
+ if (i !== void 0) {
+ var a = t.d2l(r), o = t.d2l(n);
+ d_.isArrayOrTypedArray(i) || (i = [i]);
+ for (var s = 0; s < i.length; s++) {
+ var l = t.d2l(i[s]);
+ a >= l && (a = l, r = l), o <= l && (o = l, n = l);
+ }
+ }
+ return r = qst(r, t), n = Bst(n, t), [r, n];
+ }
+ });
+ var ho = ye((iar, Bse) => {
+ var w0 = Oa(), zh = Eo(), G3 = Mc(), uM = qa(), Wo = Dr(), H3 = Wo.strTranslate, Ob = Zl(), Nst = zb(), cM = ka(), Xp = So(), Ust = Rd(), mse = Pq();
+ Rh();
+ var Kd = fs(), Vst = Kd.ONEMAXYEAR, PL = Kd.ONEAVGYEAR, IL = Kd.ONEMINYEAR, Gst = Kd.ONEMAXQUARTER, fB = Kd.ONEAVGQUARTER, RL = Kd.ONEMINQUARTER, Hst = Kd.ONEMAXMONTH, j3 = Kd.ONEAVGMONTH, DL = Kd.ONEMINMONTH, Zp = Kd.ONEWEEK, Ov = Kd.ONEDAY, v_ = Ov / 2, wm = Kd.ONEHOUR, fM = Kd.ONEMIN, FL = Kd.ONESEC, jst = Kd.ONEMILLI, Wst = Kd.ONEMICROSEC, qb = Kd.MINUS_SIGN, OL = Kd.BADNUM, hB = { K: "zeroline" }, dB = { K: "gridline", L: "path" }, vB = { K: "minor-gridline", L: "path" }, kse = { K: "tick", L: "path" }, yse = { K: "tick", L: "text" }, _se = { width: ["x", "r", "l", "xl", "xr"], height: ["y", "t", "b", "yt", "yb"], right: ["r", "xr"], left: ["l", "xl"], top: ["t", "yt"], bottom: ["b", "yb"] }, qL = Dh(), lM = qL.MID_SHIFT, Bb = qL.CAP_SHIFT, hM = qL.LINE_SPACING, Xst = qL.OPPOSITE_SIDE, zL = 3, Jn = Bse.exports = {};
+ Jn.setConvert = xm();
+ var Zst = V3(), Tm = hf(), Yst = Tm.idSort, Kst = Tm.isLinked;
+ Jn.id2name = Tm.id2name;
+ Jn.name2id = Tm.name2id;
+ Jn.cleanId = Tm.cleanId;
+ Jn.list = Tm.list;
+ Jn.listIds = Tm.listIds;
+ Jn.getFromId = Tm.getFromId;
+ Jn.getFromTrace = Tm.getFromTrace;
+ var Cse = Mg();
+ Jn.getAutoRange = Cse.getAutoRange;
+ Jn.findExtremes = Cse.findExtremes;
+ var Jst = 1e-4;
+ function yB(e) {
+ var t = (e[1] - e[0]) * Jst;
+ return [e[0] - t, e[1] + t];
+ }
+ Jn.coerceRef = function(e, t, r, n, i, a) {
+ var o = n.charAt(n.length - 1), s = r._fullLayout._subplots[o + "axis"], l = n + "ref", u = {};
+ return i || (i = s[0] || (typeof a == "string" ? a : a[0])), a || (a = i), s = s.concat(s.map(function(c) {
+ return c + " domain";
+ })), u[l] = { valType: "enumerated", values: s.concat(a ? typeof a == "string" ? [a] : a : []), dflt: i }, Wo.coerce(e, t, u, l);
+ };
+ Jn.coerceRefArray = function(e, t, r, n, i, a, o) {
+ let s = n.charAt(n.length - 1);
+ var l = r._fullLayout._subplots[s + "axis"];
+ let u = n + "ref";
+ var c = e[u];
+ i || (i = l[0] || (typeof a == "string" ? a : a[0])), l = l.concat(l.map((h) => h + " domain")), l = l.concat(a || []), c.length > o ? (Wo.warn("Array attribute " + u + " has more entries than expected, truncating to " + o), c = c.slice(0, o)) : c.length < o && (Wo.warn("Array attribute " + u + " has fewer entries than expected, extending with default value"), c = c.concat(Array(o - c.length).fill(i)));
+ for (var f = 0; f < c.length; f++) c[f] = Tm.cleanId(c[f], s, true) || c[f], l.includes(c[f]) || (c[f] = i);
+ return t[u] = c, c;
+ };
+ Jn.getRefType = function(e) {
+ return e === void 0 ? e : Array.isArray(e) ? "array" : e === "paper" ? "paper" : e === "pixel" ? "pixel" : /( domain)$/.test(e) ? "domain" : "range";
+ };
+ Jn.coercePosition = function(e, t, r, n, i, a) {
+ var o, s, l = Jn.getRefType(n);
+ if (l !== "range") o = Wo.ensureNumber, s = r(i, a);
+ else {
+ var u = Jn.getFromId(t, n);
+ a = u.fraction2r(a), s = r(i, a), o = u.cleanPos;
+ }
+ e[i] = o(s);
+ };
+ Jn.cleanPosition = function(e, t, r) {
+ var n = r === "paper" || r === "pixel" ? Wo.ensureNumber : Jn.getFromId(t, r).cleanPos;
+ return n(e);
+ };
+ Jn.redrawComponents = function(e, t) {
+ t = t || Jn.listIds(e);
+ var r = e._fullLayout;
+ function n(i, a, o, s) {
+ for (var l = uM.getComponentMethod(i, a), u = {}, c = 0; c < t.length; c++) for (var f = r[Jn.id2name(t[c])], h = f[o], d = 0; d < h.length; d++) {
+ var v = h[d];
+ if (!u[v] && (l(e, v), u[v] = 1, s)) return;
+ }
+ }
+ n("annotations", "drawOne", "_annIndices"), n("shapes", "drawOne", "_shapeIndices"), n("images", "draw", "_imgIndices", true), n("selections", "drawOne", "_selectionIndices");
+ };
+ var $st = Jn.getDataConversions = function(e, t, r, n) {
+ var i, a = r === "x" || r === "y" || r === "z" ? r : n;
+ if (Wo.isArrayOrTypedArray(a)) {
+ if (i = { type: Zst(n, void 0, { autotypenumbers: e._fullLayout.autotypenumbers }), _categories: [] }, Jn.setConvert(i), i.type === "category") for (var o = 0; o < n.length; o++) i.d2c(n[o]);
+ } else i = Jn.getFromTrace(e, t, a);
+ return i ? { d2c: i.d2c, c2d: i.c2d } : a === "ids" ? { d2c: bse, c2d: bse } : { d2c: xse, c2d: xse };
+ };
+ function xse(e) {
+ return +e;
+ }
+ function bse(e) {
+ return String(e);
+ }
+ Jn.getDataToCoordFunc = function(e, t, r, n) {
+ return $st(e, t, r, n).d2c;
+ };
+ Jn.counterLetter = function(e) {
+ var t = e.charAt(0);
+ if (t === "x") return "y";
+ if (t === "y") return "x";
+ };
+ Jn.minDtick = function(e, t, r, n) {
+ ["log", "category", "multicategory"].indexOf(e.type) !== -1 || !n ? e._minDtick = 0 : e._minDtick === void 0 ? (e._minDtick = t, e._forceTick0 = r) : e._minDtick && ((e._minDtick / t + 1e-6) % 1 < 2e-6 && ((r - e._forceTick0) / t % 1 + 1.000001) % 1 < 2e-6 ? (e._minDtick = t, e._forceTick0 = r) : ((t / e._minDtick + 1e-6) % 1 > 2e-6 || ((r - e._forceTick0) / e._minDtick % 1 + 1.000001) % 1 > 2e-6) && (e._minDtick = 0));
+ };
+ Jn.saveRangeInitial = function(e, t) {
+ for (var r = Jn.list(e, "", true), n = false, i = 0; i < r.length; i++) {
+ var a = r[i], o = a._rangeInitial0 === void 0 && a._rangeInitial1 === void 0, s = o || a.range[0] !== a._rangeInitial0 || a.range[1] !== a._rangeInitial1, l = a.autorange;
+ (o && l !== true || t && s) && (a._rangeInitial0 = l === "min" || l === "max reversed" ? void 0 : a.range[0], a._rangeInitial1 = l === "max" || l === "min reversed" ? void 0 : a.range[1], a._autorangeInitial = l, n = true);
+ }
+ return n;
+ };
+ Jn.saveShowSpikeInitial = function(e, t) {
+ for (var r = Jn.list(e, "", true), n = false, i = "on", a = 0; a < r.length; a++) {
+ var o = r[a], s = o._showSpikeInitial === void 0, l = s || o.showspikes !== o._showspikes;
+ (s || t && l) && (o._showSpikeInitial = o.showspikes, n = true), i === "on" && !o.showspikes && (i = "off");
+ }
+ return e._fullLayout._cartesianSpikesEnabled = i, n;
+ };
+ Jn.autoBin = function(e, t, r, n, i, a) {
+ var o = Wo.aggNums(Math.min, null, e), s = Wo.aggNums(Math.max, null, e);
+ if (t.type === "category" || t.type === "multicategory") return { start: o - 0.5, end: s + 0.5, size: Math.max(1, Math.round(a) || 1), _dataSpan: s - o };
+ i || (i = t.calendar);
+ var l;
+ if (t.type === "log" ? l = { type: "linear", range: [o, s] } : l = { type: t.type, range: Wo.simpleMap([o, s], t.c2r, 0, i), calendar: i }, Jn.setConvert(l), a = a && mse.dtick(a, l.type), a) l.dtick = a, l.tick0 = mse.tick0(void 0, l.type, i);
+ else {
+ var u;
+ if (r) u = (s - o) / r;
+ else {
+ var c = Wo.distinctVals(e), f = Math.pow(10, Math.floor(Math.log(c.minDiff) / Math.LN10)), h = f * Wo.roundUp(c.minDiff / f, [0.9, 1.9, 4.9, 9.9], true);
+ u = Math.max(h, 2 * Wo.stdev(e) / Math.pow(e.length, n ? 0.25 : 0.4)), zh(u) || (u = 1);
+ }
+ Jn.autoTicks(l, u);
+ }
+ var d = l.dtick, v = Jn.tickIncrement(Jn.tickFirst(l), d, "reverse", i), _, b;
+ if (typeof d == "number") v = Qst(v, e, l, o, s), b = 1 + Math.floor((s - v) / d), _ = v + b * d;
+ else for (l.dtick.charAt(0) === "M" && (v = elt(v, e, d, o, i)), _ = v, b = 0; _ <= s; ) _ = Jn.tickIncrement(_, d, false, i), b++;
+ return { start: t.c2r(v, 0, i), end: t.c2r(_, 0, i), size: d, _dataSpan: s - o };
+ };
+ function Qst(e, t, r, n, i) {
+ var a = 0, o = 0, s = 0, l = 0;
+ function u(d) {
+ return (1 + (d - e) * 100 / r.dtick) % 100 < 2;
+ }
+ for (var c = 0; c < t.length; c++) t[c] % 1 === 0 ? s++ : zh(t[c]) || l++, u(t[c]) && a++, u(t[c] + r.dtick / 2) && o++;
+ var f = t.length - l;
+ if (s === f && r.type !== "date") r.dtick < 1 ? e = n - 0.5 * r.dtick : (e -= 0.5, e + r.dtick < n && (e += r.dtick));
+ else if (o < f * 0.1 && (a > f * 0.3 || u(n) || u(i))) {
+ var h = r.dtick / 2;
+ e += e + h < n ? h : -h;
+ }
+ return e;
+ }
+ function elt(e, t, r, n, i) {
+ var a = Wo.findExactDates(t, i), o = 0.8;
+ if (a.exactDays > o) {
+ var s = Number(r.slice(1));
+ a.exactYears > o && s % 12 === 0 ? e = Jn.tickIncrement(e, "M6", "reverse") + Ov * 1.5 : a.exactMonths > o ? e = Jn.tickIncrement(e, "M1", "reverse") + Ov * 15.5 : e -= v_;
+ var l = Jn.tickIncrement(e, r);
+ if (l <= n) return l;
+ }
+ return e;
+ }
+ Jn.prepMinorTicks = function(e, t, r) {
+ if (!t.minor.dtick) {
+ delete e.dtick;
+ var n = t.dtick && zh(t._tmin), i;
+ if (n) {
+ var a = Jn.tickIncrement(t._tmin, t.dtick, true);
+ i = [t._tmin, a * 0.99 + t._tmin * 0.01];
+ } else {
+ var o = Wo.simpleMap(t.range, t.r2l);
+ i = [o[0], 0.8 * o[0] + 0.2 * o[1]];
+ }
+ if (e.range = Wo.simpleMap(i, t.l2r), e._isMinor = true, Jn.prepTicks(e, r), n) {
+ var s = zh(t.dtick), l = zh(e.dtick), u = s ? t.dtick : +t.dtick.substring(1), c = l ? e.dtick : +e.dtick.substring(1);
+ s && l ? lB(u, c) ? u === 2 * Zp && c === 2 * Ov && (e.dtick = Zp) : u === 2 * Zp && c === 3 * Ov ? e.dtick = Zp : u === Zp && !(t._input.minor || {}).nticks ? e.dtick = Ov : wse(u / c, 2.5) ? e.dtick = u / 2 : e.dtick = u : String(t.dtick).charAt(0) === "M" ? l ? e.dtick = "M1" : lB(u, c) ? u >= 12 && c === 2 && (e.dtick = "M3") : e.dtick = t.dtick : String(e.dtick).charAt(0) === "L" ? String(t.dtick).charAt(0) === "L" ? lB(u, c) || (e.dtick = wse(u / c, 2.5) ? t.dtick / 2 : t.dtick) : e.dtick = "D1" : e.dtick === "D2" && +t.dtick > 1 && (e.dtick = 1);
+ }
+ e.range = t.range;
+ }
+ t.minor._tick0Init === void 0 && (e.tick0 = t.tick0);
+ };
+ function lB(e, t) {
+ return Math.abs((e / t + 0.5) % 1 - 0.5) < 1e-3;
+ }
+ function wse(e, t) {
+ return Math.abs(e / t - 1) < 1e-3;
+ }
+ Jn.prepTicks = function(e, t) {
+ var r = Wo.simpleMap(e.range, e.r2l, void 0, void 0, t);
+ if (e.tickmode === "auto" || !e.dtick) {
+ var n = e.nticks, i;
+ n || (e.type === "category" || e.type === "multicategory" ? (i = e.tickfont ? Wo.bigFont(e.tickfont.size || 12) : 15, n = e._length / i) : (i = e._id.charAt(0) === "y" ? 40 : 80, n = Wo.constrain(e._length / i, 4, 9) + 1), e._name === "radialaxis" && (n *= 2)), e.minor && e.minor.tickmode !== "array" || e.tickmode === "array" && (n *= 100), e._roughDTick = Math.abs(r[1] - r[0]) / n, Jn.autoTicks(e, e._roughDTick), e._minDtick > 0 && e.dtick < e._minDtick * 2 && (e.dtick = e._minDtick, e.tick0 = e.l2r(e._forceTick0));
+ }
+ e.ticklabelmode === "period" && tlt(e), e.tick0 || (e.tick0 = e.type === "date" ? "2000-01-01" : 0), e.type === "date" && e.dtick < 0.1 && (e.dtick = 0.1), Rse(e);
+ };
+ function uB(e) {
+ return +e.substring(1);
+ }
+ function tlt(e) {
+ var t;
+ function r() {
+ return !(zh(e.dtick) || e.dtick.charAt(0) !== "M");
+ }
+ var n = r(), i = Jn.getTickFormat(e);
+ if (i) {
+ var a = e._dtickInit !== e.dtick;
+ /%[fLQsSMX]/.test(i) || (/%[HI]/.test(i) ? (t = wm, a && !n && e.dtick < wm && (e.dtick = wm)) : /%p/.test(i) ? (t = v_, a && !n && e.dtick < v_ && (e.dtick = v_)) : /%[Aadejuwx]/.test(i) ? (t = Ov, a && !n && e.dtick < Ov && (e.dtick = Ov)) : /%[UVW]/.test(i) ? (t = Zp, a && !n && e.dtick < Zp && (e.dtick = Zp)) : /%[Bbm]/.test(i) ? (t = j3, a && (n ? uB(e.dtick) < 1 : e.dtick < DL) && (e.dtick = "M1")) : /%[q]/.test(i) ? (t = fB, a && (n ? uB(e.dtick) < 3 : e.dtick < RL) && (e.dtick = "M3")) : /%[Yy]/.test(i) && (t = PL, a && (n ? uB(e.dtick) < 12 : e.dtick < IL) && (e.dtick = "M12")));
+ }
+ n = r(), n && e.tick0 === e._dowTick0 && (e.tick0 = e._rawTick0), e._definedDelta = t;
+ }
+ function rlt(e, t, r) {
+ for (var n = 0; n < e.length; n++) {
+ var i = e[n].value, a = n, o = n + 1;
+ n < e.length - 1 ? (a = n, o = n + 1) : n > 0 ? (a = n - 1, o = n) : (a = n, o = n);
+ var s = e[a].value, l = e[o].value, u = Math.abs(l - s), c = r || u, f = 0;
+ c >= IL ? u >= IL && u <= Vst ? f = u : f = PL : r === fB && c >= RL ? u >= RL && u <= Gst ? f = u : f = fB : c >= DL ? u >= DL && u <= Hst ? f = u : f = j3 : r === Zp && c >= Zp ? f = Zp : c >= Ov ? f = Ov : r === v_ && c >= v_ ? f = v_ : r === wm && c >= wm && (f = wm);
+ var h;
+ f >= u && (f = u, h = true);
+ var d = i + f;
+ if (t.rangebreaks && f > 0) {
+ for (var v = 84, _ = 0, b = 0; b < v; b++) {
+ var p = (b + 0.5) / v;
+ t.maskBreaks(i * (1 - p) + p * d) !== OL && _++;
+ }
+ f *= _ / v, f || (e[n].drop = true), h && u > Zp && (f = u);
+ }
+ (f > 0 || n === 0) && (e[n].periodX = i + f / 2);
+ }
+ }
+ Jn.calcTicks = function(t, r) {
+ for (var n = t.type, i = t.calendar, a = t.ticklabelstep, o = t.ticklabelmode === "period", s = t.range[0] > t.range[1], l = !t.ticklabelindex || Wo.isArrayOrTypedArray(t.ticklabelindex) ? t.ticklabelindex : [t.ticklabelindex], u = Wo.simpleMap(t.range, t.r2l, void 0, void 0, r), c = u[1] < u[0], f = Math.min(u[0], u[1]), h = Math.max(u[0], u[1]), d = Math.max(1e3, t._length || 0), v = [], _ = [], b = [], p = [], k = [], E = t.minor && (t.minor.ticks || t.minor.showgrid), T = 1; T >= (E ? 0 : 1); T--) {
+ var L = !T;
+ T ? (t._dtickInit = t.dtick, t._tick0Init = t.tick0) : (t.minor._dtickInit = t.minor.dtick, t.minor._tick0Init = t.minor.tick0);
+ var x = T ? t : Wo.extendFlat({}, t, t.minor);
+ if (L ? Jn.prepMinorTicks(x, t, r) : Jn.prepTicks(x, r), x.tickmode === "array") {
+ T ? (b = [], v = Tse(t, !L)) : (p = [], _ = Tse(t, !L));
+ continue;
+ }
+ if (x.tickmode === "sync") {
+ b = [], v = ilt(t);
+ continue;
+ }
+ var C = yB(u), M = C[0], g = C[1], P = zh(x.dtick), A = n === "log" && !(P || x.dtick.charAt(0) === "L"), z = Jn.tickFirst(x, r);
+ if (T) {
+ if (t._tmin = z, z < M !== c) break;
+ (n === "category" || n === "multicategory") && (g = c ? Math.max(-0.5, g) : Math.min(t._categories.length - 0.5, g));
+ }
+ var O = null, U = z, G;
+ if (T) {
+ var Z;
+ P ? Z = t.dtick : n === "date" ? typeof t.dtick == "string" && t.dtick.charAt(0) === "M" && (Z = j3 * t.dtick.substring(1)) : Z = t._roughDTick, G = Math.round((t.r2l(U) - t.r2l(t.tick0)) / Z) - 1;
+ }
+ var j = x.dtick;
+ for (x.rangebreaks && x._tick0Init !== x.tick0 && (U = cB(U, t), c || (U = Jn.tickIncrement(U, j, !c, i))), T && o && (U = Jn.tickIncrement(U, j, !c, i), G--); c ? U >= g : U <= g; U = Jn.tickIncrement(U, j, c, i)) {
+ if (T && G++, x.rangebreaks && !c) {
+ if (U < M) continue;
+ if (x.maskBreaks(U) === OL && cB(U, x) >= h) break;
+ }
+ if (b.length > d || U === O) break;
+ O = U;
+ var N = { value: U };
+ T ? (A && U !== (U | 0) && (N.simpleLabel = true), a > 1 && G % a && (N.skipLabel = true), b.push(N)) : (N.minor = true, p.push(N));
+ }
+ }
+ if (!p || p.length < 2) l = false;
+ else {
+ var H = (p[1].value - p[0].value) * (s ? -1 : 1);
+ klt(H, t.tickformat) || (l = false);
+ }
+ if (!l) k = b;
+ else {
+ var re = b.concat(p);
+ o && b.length && (re = re.slice(1)), re = re.sort(function(Wt, Nt) {
+ return Wt.value - Nt.value;
+ }).filter(function(Wt, Nt, $t) {
+ return Nt === 0 || Wt.value !== $t[Nt - 1].value;
+ });
+ var oe = re.map(function(Wt, Nt) {
+ return Wt.minor === void 0 && !Wt.skipLabel ? Nt : null;
+ }).filter(function(Wt) {
+ return Wt !== null;
+ });
+ oe.forEach(function(Wt) {
+ l.map(function(Nt) {
+ var $t = Wt + Nt;
+ $t >= 0 && $t < re.length && Wo.pushUnique(k, re[$t]);
+ });
+ });
+ }
+ if (E) {
+ var _e = t.minor.ticks === "inside" && t.ticks === "outside" || t.minor.ticks === "outside" && t.ticks === "inside";
+ if (!_e) {
+ for (var Ce = b.map(function(Wt) {
+ return Wt.value;
+ }), Le = [], ge = 0; ge < p.length; ge++) {
+ var ie = p[ge], Se = ie.value;
+ if (Ce.indexOf(Se) === -1) {
+ for (var Ee = false, Ae = 0; !Ee && Ae < b.length; Ae++) 1e7 + b[Ae].value === 1e7 + Se && (Ee = true);
+ Ee || Le.push(ie);
+ }
+ }
+ p = Le;
+ }
+ }
+ o && rlt(k, t, t._definedDelta);
+ var Be;
+ if (t.rangebreaks) {
+ var Pe = t._id.charAt(0) === "y", me = 1;
+ t.tickmode === "auto" && (me = t.tickfont ? t.tickfont.size : 12);
+ var De = NaN;
+ for (Be = b.length - 1; Be > -1; Be--) {
+ if (b[Be].drop) {
+ b.splice(Be, 1);
+ continue;
+ }
+ b[Be].value = cB(b[Be].value, t);
+ var ce = t.c2p(b[Be].value);
+ (Pe ? De > ce - me : De < ce + me) ? b.splice(c ? Be + 1 : Be, 1) : De = ce;
+ }
+ }
+ wB(t) && Math.abs(u[1] - u[0]) === 360 && b.pop(), t._tmax = (b[b.length - 1] || {}).value, t._prevDateHead = "", t._inCalcTicks = true;
+ var je, lt = function(Wt) {
+ Wt.text = "", t._prevDateHead = je;
+ };
+ b = b.concat(p);
+ function pt(Wt, Nt) {
+ var $t = Jn.tickText(Wt, Nt.value, false, Nt.simpleLabel), sr = Nt.periodX;
+ return sr !== void 0 && ($t.periodX = sr, (sr > h || sr < f) && (sr > h && ($t.periodX = h), sr < f && ($t.periodX = f), lt($t))), $t;
+ }
+ var Vt;
+ for (Be = 0; Be < b.length; Be++) {
+ var ot = b[Be].minor, ut = b[Be].value;
+ ot ? (l && k.indexOf(b[Be]) !== -1 ? Vt = pt(t, b[Be]) : Vt = { x: ut }, Vt.minor = true, _.push(Vt)) : (je = t._prevDateHead, Vt = pt(t, b[Be]), (b[Be].skipLabel || l && k.indexOf(b[Be]) === -1) && lt(Vt), v.push(Vt));
+ }
+ return v = v.concat(_), t._inCalcTicks = false, o && v.length && (v[0].noTick = true), v;
+ };
+ function Lse(e, t) {
+ return e.rangebreaks && (t = t.filter(function(r) {
+ return e.maskBreaks(r.x) !== OL;
+ })), t;
+ }
+ function ilt(e) {
+ var t = e._mainAxis, r = [];
+ if (t._vals) {
+ for (var n = 0; n < t._vals.length; n++) if (!t._vals[n].noTick) {
+ var i = t.l2p(t._vals[n].x), a = e.p2l(i), o = Jn.tickText(e, a);
+ t._vals[n].minor && (o.minor = true, o.text = ""), r.push(o);
+ }
+ }
+ return r = Lse(e, r), r;
+ }
+ function Tse(e, t) {
+ var r = Wo.simpleMap(e.range, e.r2l), n = yB(r), i = Math.min(n[0], n[1]), a = Math.max(n[0], n[1]), o = e.type === "category" ? e.d2l_noadd : e.d2l;
+ e.type === "log" && String(e.dtick).charAt(0) !== "L" && (e.dtick = "L" + Math.pow(10, Math.floor(Math.min(e.range[0], e.range[1])) - 1));
+ for (var s = [], l = 0; l <= 1; l++) if (!(t !== void 0 && (t && l || t === false && !l)) && !(l && !e.minor)) {
+ var u = l ? e.minor.tickvals : e.tickvals, c = l ? [] : e.ticktext;
+ if (u) {
+ Wo.isArrayOrTypedArray(c) || (c = []);
+ for (var f = 0; f < u.length; f++) {
+ var h = o(u[f]);
+ if (h > i && h < a) {
+ var d = Jn.tickText(e, h, false, String(c[f]));
+ l && (d.minor = true, d.text = ""), s.push(d);
+ }
+ }
+ }
+ }
+ return s = Lse(e, s), s;
+ }
+ var CL = [2, 5, 10], Ase = [1, 2, 3, 6, 12], Sse = [1, 2, 5, 10, 15, 30], nlt = [1, 2, 3, 7, 14], Pse = [-0.046, 0, 0.301, 0.477, 0.602, 0.699, 0.778, 0.845, 0.903, 0.954, 1], Ise = [-0.301, 0, 0.301, 0.699, 1], alt = [15, 30, 45, 90, 180];
+ function bm(e, t, r) {
+ return t * Wo.roundUp(e / t, r);
+ }
+ Jn.autoTicks = function(e, t, r) {
+ var n;
+ function i(f) {
+ return Math.pow(f, Math.floor(Math.log(t) / Math.LN10));
+ }
+ if (e.type === "date") {
+ e.tick0 = Wo.dateTick0(e.calendar, 0);
+ var a = 2 * t;
+ if (a > PL) t /= PL, n = i(10), e.dtick = "M" + 12 * bm(t, n, CL);
+ else if (a > j3) t /= j3, e.dtick = "M" + bm(t, 1, Ase);
+ else if (a > Ov) {
+ if (e.dtick = bm(t, Ov, e._hasDayOfWeekBreaks ? [1, 2, 7, 14] : nlt), !r) {
+ var o = Jn.getTickFormat(e), s = e.ticklabelmode === "period";
+ s && (e._rawTick0 = e.tick0), /%[uVW]/.test(o) ? e.tick0 = Wo.dateTick0(e.calendar, 2) : e.tick0 = Wo.dateTick0(e.calendar, 1), s && (e._dowTick0 = e.tick0);
+ }
+ } else a > wm ? e.dtick = bm(t, wm, Ase) : a > fM ? e.dtick = bm(t, fM, Sse) : a > FL ? e.dtick = bm(t, FL, Sse) : (n = i(10), e.dtick = bm(t, n, CL));
+ } else if (e.type === "log") {
+ e.tick0 = 0;
+ var l = Wo.simpleMap(e.range, e.r2l);
+ if (e._isMinor && (t *= 1.5), t > 0.7) e.dtick = Math.ceil(t);
+ else if (Math.abs(l[1] - l[0]) < 1) {
+ var u = 1.5 * Math.abs((l[1] - l[0]) / t);
+ t = Math.abs(Math.pow(10, l[1]) - Math.pow(10, l[0])) / u, n = i(10), e.dtick = "L" + bm(t, n, CL);
+ } else e.dtick = t > 0.3 ? "D2" : "D1";
+ } else e.type === "category" || e.type === "multicategory" ? (e.tick0 = 0, e.dtick = Math.ceil(Math.max(t, 1))) : wB(e) ? (e.tick0 = 0, n = 1, e.dtick = bm(t, n, alt)) : (e.tick0 = 0, n = i(10), e.dtick = bm(t, n, CL));
+ if (e.dtick === 0 && (e.dtick = 1), !zh(e.dtick) && typeof e.dtick != "string") {
+ var c = e.dtick;
+ throw e.dtick = 1, "ax.dtick error: " + String(c);
+ }
+ };
+ function Rse(e) {
+ var t = e.dtick;
+ if (e._tickexponent = 0, !zh(t) && typeof t != "string" && (t = 1), (e.type === "category" || e.type === "multicategory") && (e._tickround = null), e.type === "date") {
+ var r = e.r2l(e.tick0), n = e.l2r(r).replace(/(^-|i)/g, ""), i = n.length;
+ if (String(t).charAt(0) === "M") i > 10 || n.slice(5) !== "01-01" ? e._tickround = "d" : e._tickround = +t.slice(1) % 12 === 0 ? "y" : "m";
+ else if (t >= Ov && i <= 10 || t >= Ov * 15) e._tickround = "d";
+ else if (t >= fM && i <= 16 || t >= wm) e._tickround = "M";
+ else if (t >= FL && i <= 19 || t >= fM) e._tickround = "S";
+ else {
+ var a = e.l2r(r + t).replace(/^-/, "").length;
+ e._tickround = Math.max(i, a) - 20, e._tickround < 0 && (e._tickround = 4);
+ }
+ } else if (zh(t) || t.charAt(0) === "L") {
+ var o = e.range.map(e.r2d || Number);
+ zh(t) || (t = Number(t.slice(1))), e._tickround = 2 - Math.floor(Math.log(t) / Math.LN10 + 0.01);
+ var s = Math.max(Math.abs(o[0]), Math.abs(o[1])), l = Math.floor(Math.log(s) / Math.LN10 + 0.01), u = e.minexponent === void 0 ? 3 : e.minexponent;
+ Math.abs(l) > u && (W3(e.exponentformat) && e.exponentformat !== "SI extended" && !_B(l) || W3(e.exponentformat) && e.exponentformat === "SI extended" && !xB(l) ? e._tickexponent = 3 * Math.round((l - 1) / 3) : e._tickexponent = l);
+ } else e._tickround = null;
+ }
+ Jn.tickIncrement = function(e, t, r, n) {
+ var i = r ? -1 : 1;
+ if (zh(t)) return Wo.increment(e, i * t);
+ var a = t.charAt(0), o = i * Number(t.slice(1));
+ if (a === "M") return Wo.incrementMonth(e, o, n);
+ if (a === "L") return Math.log(Math.pow(10, e) + o) / Math.LN10;
+ if (a === "D") {
+ var s = t === "D2" ? Ise : Pse, l = e + i * 0.01, u = Wo.roundUp(Wo.mod(l, 1), s, r);
+ return Math.floor(l) + Math.log(w0.round(Math.pow(10, u), 1)) / Math.LN10;
+ }
+ throw "unrecognized dtick " + String(t);
+ };
+ Jn.tickFirst = function(e, t) {
+ var r = e.r2l || Number, n = Wo.simpleMap(e.range, r, void 0, void 0, t), i = n[1] < n[0], a = i ? Math.floor : Math.ceil, o = yB(n)[0], s = e.dtick, l = r(e.tick0);
+ if (zh(s)) {
+ var u = a((o - l) / s) * s + l;
+ return (e.type === "category" || e.type === "multicategory") && (u = Wo.constrain(u, 0, e._categories.length - 1)), u;
+ }
+ var c = s.charAt(0), f = Number(s.slice(1));
+ if (c === "M") {
+ for (var h = 0, d = l, v, _, b; h < 10; ) {
+ if (v = Jn.tickIncrement(d, s, i, e.calendar), (v - o) * (d - o) <= 0) return i ? Math.min(d, v) : Math.max(d, v);
+ _ = (o - (d + v) / 2) / (v - d), b = c + (Math.abs(Math.round(_)) || 1) * f, d = Jn.tickIncrement(d, b, _ < 0 ? !i : i, e.calendar), h++;
+ }
+ return Wo.error("tickFirst did not converge", e), d;
+ } else {
+ if (c === "L") return Math.log(a((Math.pow(10, o) - l) / f) * f + l) / Math.LN10;
+ if (c === "D") {
+ var p = s === "D2" ? Ise : Pse, k = Wo.roundUp(Wo.mod(o, 1), p, i);
+ return Math.floor(o) + Math.log(w0.round(Math.pow(10, k), 1)) / Math.LN10;
+ } else throw "unrecognized dtick " + String(s);
+ }
+ };
+ Jn.tickText = function(e, t, r, n) {
+ var i = Dse(e, t), a = e.tickmode === "array", o = r || a, s = e.type, l = s === "category" ? e.d2l_noadd : e.d2l, u, c = function(b) {
+ var p = e.l2p(b);
+ return p >= 0 && p <= e._length ? b : null;
+ };
+ if (a && Wo.isArrayOrTypedArray(e.ticktext)) {
+ var f = Wo.simpleMap(e.range, e.r2l), h = (Math.abs(f[1] - f[0]) - (e._lBreaks || 0)) / 1e4;
+ for (u = 0; u < e.ticktext.length && !(Math.abs(t - l(e.tickvals[u])) < h); u++) ;
+ if (u < e.ticktext.length) return i.text = String(e.ticktext[u]), i.xbnd = [c(i.x - 0.5), c(i.x + e.dtick - 0.5)], i;
+ }
+ function d(b) {
+ if (b === void 0) return true;
+ if (r) return b === "none";
+ var p = { first: e._tmin, last: e._tmax }[b];
+ return b !== "all" && t !== p;
+ }
+ var v = r ? "never" : e.exponentformat !== "none" && d(e.showexponent) ? "hide" : "";
+ if (s === "date" ? olt(e, i, r, o) : s === "log" ? slt(e, i, r, o, v) : s === "category" ? llt(e, i) : s === "multicategory" ? ult(e, i, r) : wB(e) ? flt(e, i, r, o, v) : clt(e, i, r, o, v), n || (e.tickprefix && !d(e.showtickprefix) && (i.text = e.tickprefix + i.text), e.ticksuffix && !d(e.showticksuffix) && (i.text += e.ticksuffix)), e.labelalias && e.labelalias.hasOwnProperty(i.text)) {
+ var _ = e.labelalias[i.text];
+ typeof _ == "string" && (i.text = _);
+ }
+ return (e.tickson === "boundaries" || e.showdividers) && (i.xbnd = [c(i.x - 0.5), c(i.x + e.dtick - 0.5)]), i;
+ };
+ Jn.hoverLabelText = function(e, t, r) {
+ r && (e = Wo.extendFlat({}, e, { hoverformat: r }));
+ var n = Wo.isArrayOrTypedArray(t) ? t[0] : t, i = Wo.isArrayOrTypedArray(t) ? t[1] : void 0;
+ if (i !== void 0 && i !== n) return Jn.hoverLabelText(e, n, r) + " - " + Jn.hoverLabelText(e, i, r);
+ var a = e.type === "log" && n <= 0, o = Jn.tickText(e, e.c2l(a ? -n : n), "hover").text;
+ return a ? n === 0 ? "0" : qb + o : o;
+ };
+ function Dse(e, t, r) {
+ var n = e.tickfont || {};
+ return { x: t, dx: 0, dy: 0, text: r || "", fontSize: n.size, font: n.family, fontWeight: n.weight, fontStyle: n.style, fontVariant: n.variant, fontTextcase: n.textcase, fontLineposition: n.lineposition, fontShadow: n.shadow, fontColor: n.color };
+ }
+ function olt(e, t, r, n) {
+ var i = e._tickround, a = r && e.hoverformat || Jn.getTickFormat(e);
+ n = !a && n, n && (zh(i) ? i = 4 : i = { y: "m", m: "d", d: "M", M: "S", S: 4 }[i]);
+ var o = Wo.formatDate(t.x, a, i, e._dateFormat, e.calendar, e._extraFormat), s, l = o.indexOf(`
+`);
+ if (l !== -1 && (s = o.slice(l + 1), o = o.slice(0, l)), n && (s !== void 0 && (o === "00:00:00" || o === "00:00") ? (o = s, s = "") : o.length === 8 && (o = o.replace(/:00$/, ""))), s) if (r) i === "d" ? o += ", " + s : o = s + (o ? ", " + o : "");
+ else if (!e._inCalcTicks || e._prevDateHead !== s) e._prevDateHead = s, o += " " + s;
+ else {
+ var u = vM(e), c = e._trueSide || e.side;
+ (!u && c === "top" || u && c === "bottom") && (o += " ");
+ }
+ t.text = o;
+ }
+ function slt(e, t, r, n, i) {
+ var a = e.dtick, o = t.x, s = e.tickformat, l = typeof a == "string" && a.charAt(0);
+ if (i === "never" && (i = ""), n && l !== "L" && (a = "L3", l = "L"), s || l === "L") t.text = dM(Math.pow(10, o), e, i, n);
+ else if (zh(a) || l === "D" && (e.minorloglabels === "complete" || Wo.mod(o + 0.01, 1) < 0.1)) {
+ e.minorloglabels === "complete" && !(Wo.mod(o + 0.01, 1) < 0.1) && (t.fontSize *= 0.75);
+ var c = Math.pow(10, o).toExponential(0), f = c.split("e"), h = +f[1], d = Math.abs(h), v = e.exponentformat;
+ v === "power" || W3(v) && v !== "SI extended" && _B(h) || W3(v) && v === "SI extended" && xB(h) ? (t.text = f[0], d > 0 && (t.text += "x10"), t.text === "1x10" && (t.text = "10"), h !== 0 && h !== 1 && (t.text += "" + (h > 0 ? "" : qb) + d + " "), t.fontSize *= 1.25) : (v === "e" || v === "E") && d > 2 ? t.text = f[0] + v + (h > 0 ? "+" : qb) + d : (t.text = dM(Math.pow(10, o), e, "", "fakehover"), a === "D1" && e._id.charAt(0) === "y" && (t.dy -= t.fontSize / 6));
+ } else if (l === "D") t.text = e.minorloglabels === "none" ? "" : String(Math.round(Math.pow(10, Wo.mod(o, 1)))), t.fontSize *= 0.75;
+ else throw "unrecognized dtick " + String(a);
+ if (e.dtick === "D1") {
+ var _ = String(t.text).charAt(0);
+ (_ === "0" || _ === "1") && (e._id.charAt(0) === "y" ? t.dx -= t.fontSize / 4 : (t.dy += t.fontSize / 2, t.dx += (e.range[1] > e.range[0] ? 1 : -1) * t.fontSize * (o < 0 ? 0.5 : 0.25)));
+ }
+ }
+ function llt(e, t) {
+ var r = e._categories[Math.round(t.x)];
+ r === void 0 && (r = ""), t.text = String(r);
+ }
+ function ult(e, t, r) {
+ var n = Math.round(t.x), i = e._categories[n] || [], a = i[1] === void 0 ? "" : String(i[1]), o = i[0] === void 0 ? "" : String(i[0]);
+ r ? t.text = o + " - " + a : (t.text = a, t.text2 = o);
+ }
+ function clt(e, t, r, n, i) {
+ i === "never" ? i = "" : e.showexponent === "all" && Math.abs(t.x / e.dtick) < 1e-6 && (i = "hide"), t.text = dM(t.x, e, i, n);
+ }
+ function flt(e, t, r, n, i) {
+ if (e.thetaunit === "radians" && !r) {
+ var a = t.x / 180;
+ if (a === 0) t.text = "0";
+ else {
+ var o = hlt(a);
+ if (o[1] >= 100) t.text = dM(Wo.deg2rad(t.x), e, i, n);
+ else {
+ var s = t.x < 0;
+ o[1] === 1 ? o[0] === 1 ? t.text = "π" : t.text = o[0] + "π" : t.text = ["", o[0], " ", "⁄", "", o[1], " ", "π"].join(""), s && (t.text = qb + t.text);
+ }
+ }
+ } else t.text = dM(t.x, e, i, n);
+ }
+ function hlt(e) {
+ function t(s, l) {
+ return Math.abs(s - l) <= 1e-6;
+ }
+ function r(s, l) {
+ return t(l, 0) ? s : r(l, s % l);
+ }
+ function n(s) {
+ for (var l = 1; !t(Math.round(s * l) / l, s); ) l *= 10;
+ return l;
+ }
+ var i = n(e), a = e * i, o = Math.abs(r(a, i));
+ return [Math.round(a / o), Math.round(i / o)];
+ }
+ var Fse = ["f", "p", "n", "μ", "m", "", "k", "M", "G", "T"], dlt = ["q", "r", "y", "z", "a", ...Fse, "P", "E", "Z", "Y", "R", "Q"], W3 = (e) => ["SI", "SI extended", "B"].includes(e);
+ function _B(e) {
+ return e > 14 || e < -15;
+ }
+ function xB(e) {
+ return e > 32 || e < -30;
+ }
+ function vlt(e, t) {
+ return W3(t) ? !!(t === "SI extended" && xB(e) || t !== "SI extended" && _B(e)) : false;
+ }
+ function dM(e, t, r, n) {
+ var i = e < 0, a = t._tickround, o = r || t.exponentformat || "B", s = t._tickexponent, l = Jn.getTickFormat(t), u = t.separatethousands;
+ if (n) {
+ var c = { exponentformat: o, minexponent: t.minexponent, dtick: t.showexponent === "none" ? t.dtick : zh(e) && Math.abs(e) || 1, range: t.showexponent === "none" ? t.range.map(t.r2d) : [0, e || 1] };
+ Rse(c), a = (Number(c._tickround) || 0) + 4, s = c._tickexponent, t.hoverformat && (l = t.hoverformat);
+ }
+ if (l) return t._numFormat(l)(e).replace(/-/g, qb);
+ var f = Math.pow(10, -a) / 2;
+ if (o === "none" && (s = 0), e = Math.abs(e), e < f) e = "0", i = false;
+ else {
+ if (e += f, s && (e *= Math.pow(10, -s), a += s), a === 0) e = String(Math.floor(e));
+ else if (a < 0) {
+ e = String(Math.round(e)), e = e.slice(0, Math.max(0, e.length + a));
+ for (var h = a; h < 0; h++) e += "0";
+ } else {
+ e = String(e);
+ var d = e.indexOf(".") + 1;
+ d && (e = e.slice(0, d + a).replace(/\.?0+$/, ""));
+ }
+ e = Wo.numSeparate(e, t._separators, u);
+ }
+ if (s && o !== "hide") {
+ vlt(s, o) && (o = "power");
+ var v;
+ s < 0 ? v = qb + -s : o !== "power" ? v = "+" + s : v = String(s), o === "e" || o === "E" ? e += o + v : o === "power" ? e += "×10" + v + " " : o === "B" && s === 9 ? e += "B" : W3(o) && (e += o === "SI extended" ? dlt[s / 3 + 10] : Fse[s / 3 + 5]);
+ }
+ return i ? qb + e : e;
+ }
+ Jn.getTickFormat = function(e) {
+ var t;
+ function r(l) {
+ return typeof l != "string" ? l : Number(l.replace("M", "")) * j3;
+ }
+ function n(l, u) {
+ var c = ["L", "D"];
+ if (typeof l == typeof u) {
+ if (typeof l == "number") return l - u;
+ var f = c.indexOf(l.charAt(0)), h = c.indexOf(u.charAt(0));
+ return f === h ? Number(l.replace(/(L|D)/g, "")) - Number(u.replace(/(L|D)/g, "")) : f - h;
+ } else return typeof l == "number" ? 1 : -1;
+ }
+ function i(l, u, c) {
+ var f = c || function(v) {
+ return v;
+ }, h = u[0], d = u[1];
+ return (!h && typeof h != "number" || f(h) <= f(l)) && (!d && typeof d != "number" || f(d) >= f(l));
+ }
+ function a(l, u) {
+ var c = u[0] === null, f = u[1] === null, h = n(l, u[0]) >= 0, d = n(l, u[1]) <= 0;
+ return (c || h) && (f || d);
+ }
+ var o, s;
+ if (e.tickformatstops && e.tickformatstops.length > 0) switch (e.type) {
+ case "date":
+ case "linear": {
+ for (t = 0; t < e.tickformatstops.length; t++) if (s = e.tickformatstops[t], s.enabled && i(e.dtick, s.dtickrange, r)) {
+ o = s;
+ break;
+ }
+ break;
+ }
+ case "log": {
+ for (t = 0; t < e.tickformatstops.length; t++) if (s = e.tickformatstops[t], s.enabled && a(e.dtick, s.dtickrange)) {
+ o = s;
+ break;
+ }
+ break;
+ }
+ }
+ return o ? o.value : e.tickformat;
+ };
+ Jn.getSubplots = function(e, t) {
+ var r = e._fullLayout._subplots, n = r.cartesian.concat(r.gl2d || []), i = t ? Jn.findSubplotsWithAxis(n, t) : n;
+ return i.sort(function(a, o) {
+ var s = a.slice(1).split("y"), l = o.slice(1).split("y");
+ return s[0] === l[0] ? +s[1] - +l[1] : +s[0] - +l[0];
+ }), i;
+ };
+ Jn.findSubplotsWithAxis = function(e, t) {
+ for (var r = new RegExp(t._id.charAt(0) === "x" ? "^" + t._id + "y" : t._id + "$"), n = [], i = 0; i < e.length; i++) {
+ var a = e[i];
+ r.test(a) && n.push(a);
+ }
+ return n;
+ };
+ Jn.makeClipPaths = function(e) {
+ var t = e._fullLayout;
+ if (!t._hasOnlyLargeSploms) {
+ var r = { _offset: 0, _length: t.width, _id: "" }, n = { _offset: 0, _length: t.height, _id: "" }, i = Jn.list(e, "x", true), a = Jn.list(e, "y", true), o = [], s, l;
+ for (s = 0; s < i.length; s++) for (o.push({ x: i[s], y: n }), l = 0; l < a.length; l++) s === 0 && o.push({ x: r, y: a[l] }), o.push({ x: i[s], y: a[l] });
+ var u = t._clips.selectAll(".axesclip").data(o, function(c) {
+ return c.x._id + c.y._id;
+ });
+ u.enter().append("clipPath").classed("axesclip", true).attr("id", function(c) {
+ return "clip" + t._uid + c.x._id + c.y._id;
+ }).append("rect"), u.exit().remove(), u.each(function(c) {
+ w0.select(this).select("rect").attr({ x: c.x._offset || 0, y: c.y._offset || 0, width: c.x._length || 1, height: c.y._length || 1 });
+ });
+ }
+ };
+ Jn.draw = function(e, t, r) {
+ var n = e._fullLayout;
+ t === "redraw" && n._paper.selectAll("g.subplot").each(function(l) {
+ var u = l[0], c = n._plots[u];
+ if (c) {
+ var f = c.xaxis, h = c.yaxis;
+ c.xaxislayer.selectAll("." + f._id + "tick").remove(), c.yaxislayer.selectAll("." + h._id + "tick").remove(), c.xaxislayer.selectAll("." + f._id + "tick2").remove(), c.yaxislayer.selectAll("." + h._id + "tick2").remove(), c.xaxislayer.selectAll("." + f._id + "divider").remove(), c.yaxislayer.selectAll("." + h._id + "divider").remove(), c.minorGridlayer && c.minorGridlayer.selectAll("path").remove(), c.gridlayer && c.gridlayer.selectAll("path").remove(), c.zerolinelayer && c.zerolinelayer.selectAll("path").remove(), c.zerolinelayerAbove && c.zerolinelayerAbove.selectAll("path").remove(), n._infolayer.select(".g-" + f._id + "title").remove(), n._infolayer.select(".g-" + h._id + "title").remove();
+ }
+ });
+ var i = !t || t === "redraw" ? Jn.listIds(e) : t, a = Jn.list(e), o = a.filter(function(l) {
+ return l.autoshift;
+ }).map(function(l) {
+ return l.overlaying;
+ });
+ i.map(function(l) {
+ var u = Jn.getFromId(e, l);
+ if (u.tickmode === "sync" && u.overlaying) {
+ var c = i.findIndex(function(f) {
+ return f === u.overlaying;
+ });
+ c >= 0 && i.unshift(i.splice(c, 1).shift());
+ }
+ });
+ var s = { false: { left: 0, right: 0 } };
+ return Wo.syncOrAsync(i.map(function(l) {
+ return function() {
+ if (l) {
+ var u = Jn.getFromId(e, l);
+ r || (r = {}), r.axShifts = s, r.overlayingShiftedAx = o;
+ var c = Jn.drawOne(e, u, r);
+ return u._shiftPusher && mB(u, u._fullDepth || 0, s, true), u._r = u.range.slice(), u._rl = Wo.simpleMap(u._r, u.r2l), c;
+ }
+ };
+ }));
+ };
+ Jn.drawOne = function(e, t, r) {
+ r = r || {};
+ var n = r.axShifts || {}, i = r.overlayingShiftedAx || [], a, o, s;
+ t.setScale();
+ var l = e._fullLayout, u = t._id, c = u.charAt(0), f = Jn.counterLetter(u), h = l._plots[t._mainSubplot], d = t.zerolinelayer === "above traces";
+ if (!h) return;
+ if (t._shiftPusher = t.autoshift || i.indexOf(t._id) !== -1 || i.indexOf(t.overlaying) !== -1, t._shiftPusher & t.anchor === "free") {
+ var v = t.linewidth / 2 || 0;
+ t.ticks === "inside" && (v += t.ticklen), mB(t, v, n, true), mB(t, t.shift || 0, n, false);
+ }
+ (r.skipTitle !== true || t._shift === void 0) && (t._shift = Elt(t, n));
+ var _ = h[c + "axislayer"], b = t._mainLinePosition, p = b += t._shift, k = t._mainMirrorPosition, E = t._vals = Jn.calcTicks(t), T = [t.mirror, p, k].join("_");
+ for (a = 0; a < E.length; a++) E[a].axInfo = T;
+ t._selections = {}, t._tickAngles && (t._prevTickAngles = t._tickAngles), t._tickAngles = {}, t._depth = null;
+ var L = {};
+ function x(ut) {
+ var Wt = u + (ut || "tick");
+ return L[Wt] || (L[Wt] = ylt(t, Wt, p)), L[Wt];
+ }
+ if (t.visible) {
+ var C = Jn.makeTransTickFn(t), M = Jn.makeTransTickLabelFn(t), g, P, A = t.ticks === "inside", z = t.ticks === "outside";
+ if (t.tickson === "boundaries") {
+ var O = plt(t, E);
+ P = Jn.clipEnds(t, O), g = A ? P : O;
+ } else P = Jn.clipEnds(t, E), g = A && t.ticklabelmode !== "period" ? P : E;
+ var U = t._gridVals = P, G = mlt(t, E);
+ if (!l._hasOnlyLargeSploms) {
+ var Z = t._subplotsWith, j = {};
+ for (a = 0; a < Z.length; a++) {
+ o = Z[a], s = l._plots[o];
+ var N = s[f + "axis"], H = N._mainAxis._id;
+ if (!j[H]) {
+ j[H] = 1;
+ var re = c === "x" ? "M0," + N._offset + "v" + N._length : "M" + N._offset + ",0h" + N._length;
+ Jn.drawGrid(e, t, { vals: U, counterAxis: N, layer: s.gridlayer.select("." + u), minorLayer: s.minorGridlayer.select("." + u), path: re, transFn: C }), Jn.drawZeroLine(e, t, { counterAxis: N, layer: d ? s.zerolinelayerAbove : s.zerolinelayer, path: re, transFn: C });
+ }
+ }
+ }
+ var oe, _e = Jn.getTickSigns(t), Ce = Jn.getTickSigns(t, "minor");
+ if (t.ticks || t.minor && t.minor.ticks) {
+ var Le = Jn.makeTickPath(t, p, _e[2]), ge = Jn.makeTickPath(t, p, Ce[2], { minor: true }), ie, Se, Ee, Ae;
+ if (t._anchorAxis && t.mirror && t.mirror !== true ? (ie = Jn.makeTickPath(t, k, _e[3]), Se = Jn.makeTickPath(t, k, Ce[3], { minor: true }), Ee = Le + ie, Ae = ge + Se) : (ie = "", Se = "", Ee = Le, Ae = ge), t.showdividers && z && t.tickson === "boundaries") {
+ var Be = {};
+ for (a = 0; a < G.length; a++) Be[G[a].x] = 1;
+ oe = function(ut) {
+ return Be[ut.x] ? ie : Ee;
+ };
+ } else oe = function(ut) {
+ return ut.minor ? Ae : Ee;
+ };
+ }
+ if (Jn.drawTicks(e, t, { vals: g, layer: _, path: oe, transFn: C }), t.mirror === "allticks") {
+ var Pe = Object.keys(t._linepositions || {});
+ for (a = 0; a < Pe.length; a++) {
+ o = Pe[a], s = l._plots[o];
+ var me = t._linepositions[o] || [], De = me[0], ce = me[1], je = me[2], lt = Jn.makeTickPath(t, De, je ? _e[0] : Ce[0], { minor: je }) + Jn.makeTickPath(t, ce, je ? _e[1] : Ce[1], { minor: je });
+ Jn.drawTicks(e, t, { vals: g, layer: s[c + "axislayer"], path: lt, transFn: C });
+ }
+ }
+ var pt = [];
+ if (pt.push(function() {
+ return Jn.drawLabels(e, t, { vals: E, layer: _, plotinfo: s, transFn: M, labelFns: Jn.makeLabelFns(t, p) });
+ }), t.type === "multicategory") {
+ var Vt = { x: 2, y: 10 }[c];
+ pt.push(function() {
+ var ut = { x: "height", y: "width" }[c], Wt = x()[ut] + Vt + (t._tickAngles[u + "tick"] ? t.tickfont.size * hM : 0);
+ return Jn.drawLabels(e, t, { vals: glt(t, E), layer: _, cls: u + "tick2", repositionOnUpdate: true, secondary: true, transFn: C, labelFns: Jn.makeLabelFns(t, p + Wt * _e[4]) });
+ }), pt.push(function() {
+ return t._depth = _e[4] * (x("tick2")[t.side] - p), xlt(e, t, { vals: G, layer: _, path: Jn.makeTickPath(t, p, _e[4], { len: t._depth }), transFn: C });
+ });
+ } else t.title.hasOwnProperty("standoff") && pt.push(function() {
+ t._depth = _e[4] * (x()[t.side] - p);
+ });
+ var ot = uM.getComponentMethod("rangeslider", "isVisible")(t);
+ return !r.skipTitle && !(ot && t.side === "bottom") && pt.push(function() {
+ return blt(e, t);
+ }), pt.push(function() {
+ var ut = t.side.charAt(0), Wt = Xst[t.side].charAt(0), Nt = Jn.getPxPosition(e, t), $t = z ? t.ticklen : 0, sr, Tr, fr, $e;
+ (t.automargin || ot || t._shiftPusher) && (t.type === "multicategory" ? sr = x("tick2") : (sr = x(), c === "x" && ut === "b" && (t._depth = Math.max(sr.width > 0 ? sr.bottom - Nt : 0, $t))));
+ var St = 0, Qt = 0;
+ if (t._shiftPusher && (St = Math.max($t, sr.height > 0 ? ut === "l" ? Nt - sr.left : sr.right - Nt : 0), t.title.text !== l._dfltTitle[c] && (Qt = (t._titleStandoff || 0) + (t._titleScoot || 0), ut === "l" && (Qt += Ese(t))), t._fullDepth = Math.max(St, Qt)), t.automargin) {
+ Tr = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 };
+ var Gt = [0, 1], _t = typeof t._shift == "number" ? t._shift : 0;
+ if (c === "x") {
+ if (ut === "b" ? Tr[ut] = t._depth : (Tr[ut] = t._depth = Math.max(sr.width > 0 ? Nt - sr.top : 0, $t), Gt.reverse()), sr.width > 0) {
+ var It = sr.right - (t._offset + t._length);
+ It > 0 && (Tr.xr = 1, Tr.r = It);
+ var mt = t._offset - sr.left;
+ mt > 0 && (Tr.xl = 0, Tr.l = mt);
+ }
+ } else if (ut === "l" ? (t._depth = Math.max(sr.height > 0 ? Nt - sr.left : 0, $t), Tr[ut] = t._depth - _t) : (t._depth = Math.max(sr.height > 0 ? sr.right - Nt : 0, $t), Tr[ut] = t._depth + _t, Gt.reverse()), sr.height > 0) {
+ var er = sr.bottom - (t._offset + t._length);
+ er > 0 && (Tr.yb = 0, Tr.b = er);
+ var lr = t._offset - sr.top;
+ lr > 0 && (Tr.yt = 1, Tr.t = lr);
+ }
+ Tr[f] = t.anchor === "free" ? t.position : t._anchorAxis.domain[Gt[0]], t.title.text !== l._dfltTitle[c] && (Tr[ut] += Ese(t) + (t.title.standoff || 0)), t.mirror && t.anchor !== "free" && (fr = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 }, fr[Wt] = t.linewidth, t.mirror && t.mirror !== true && (fr[Wt] += $t), t.mirror === true || t.mirror === "ticks" ? fr[f] = t._anchorAxis.domain[Gt[1]] : (t.mirror === "all" || t.mirror === "allticks") && (fr[f] = [t._counterDomainMin, t._counterDomainMax][Gt[1]]));
+ }
+ ot && ($e = uM.getComponentMethod("rangeslider", "autoMarginOpts")(e, t)), typeof t.automargin == "string" && (Mse(Tr, t.automargin), Mse(fr, t.automargin)), G3.autoMargin(e, bB(t), Tr), G3.autoMargin(e, Ose(t), fr), G3.autoMargin(e, qse(t), $e);
+ }), Wo.syncOrAsync(pt);
+ }
+ };
+ function Mse(e, t) {
+ if (e) {
+ var r = Object.keys(_se).reduce(function(n, i) {
+ return t.indexOf(i) !== -1 && _se[i].forEach(function(a) {
+ n[a] = 1;
+ }), n;
+ }, {});
+ Object.keys(e).forEach(function(n) {
+ r[n] || (n.length === 1 ? e[n] = 0 : delete e[n]);
+ });
+ }
+ }
+ function plt(e, t) {
+ var r = [], n, i = function(a, o) {
+ var s = a.xbnd[o];
+ s !== null && r.push(Wo.extendFlat({}, a, { x: s }));
+ };
+ if (t.length) {
+ for (n = 0; n < t.length; n++) i(t[n], 0);
+ i(t[n - 1], 1);
+ }
+ return r;
+ }
+ function glt(e, t) {
+ for (var r = [], n = {}, i = 0; i < t.length; i++) {
+ var a = t[i];
+ n[a.text2] ? n[a.text2].push(a.x) : n[a.text2] = [a.x];
+ }
+ for (var o in n) r.push(Dse(e, Wo.interp(n[o], 0.5), o));
+ return r;
+ }
+ function mlt(e, t) {
+ var r = [], n, i, a = t.length && t[t.length - 1].x < t[0].x, o = function(l, u) {
+ var c = l.xbnd[u];
+ c !== null && r.push(Wo.extendFlat({}, l, { x: c }));
+ };
+ if (e.showdividers && t.length) {
+ for (n = 0; n < t.length; n++) {
+ var s = t[n];
+ s.text2 !== i && o(s, a ? 1 : 0), i = s.text2;
+ }
+ o(t[n - 1], a ? 0 : 1);
+ }
+ return r;
+ }
+ function ylt(e, t, r) {
+ var n, i, a, o;
+ if (e._selections[t].size()) n = 1 / 0, i = -1 / 0, a = 1 / 0, o = -1 / 0, e._selections[t].each(function() {
+ var l = gB(this);
+ if (l.node().style.display !== "none") {
+ var u = Xp.bBox(l.node().parentNode);
+ n = Math.min(n, u.top), i = Math.max(i, u.bottom), a = Math.min(a, u.left), o = Math.max(o, u.right);
+ }
+ });
+ else {
+ var s = Jn.makeLabelFns(e, r);
+ n = i = s.yFn({ dx: 0, dy: 0, fontSize: 0 }), a = o = s.xFn({ dx: 0, dy: 0, fontSize: 0 });
+ }
+ return { top: n, bottom: i, left: a, right: o, height: i - n, width: o - a };
+ }
+ Jn.getTickSigns = function(e, t) {
+ var r = e._id.charAt(0), n = { x: "top", y: "right" }[r], i = e.side === n ? 1 : -1, a = [-1, 1, i, -i], o = t ? (e.minor || {}).ticks : e.ticks;
+ return o !== "inside" == (r === "x") && (a = a.map(function(s) {
+ return -s;
+ })), e.side && a.push({ l: -1, t: -1, r: 1, b: 1 }[e.side.charAt(0)]), a;
+ };
+ Jn.makeTransTickFn = function(e) {
+ return e._id.charAt(0) === "x" ? function(t) {
+ return H3(e._offset + e.l2p(t.x), 0);
+ } : function(t) {
+ return H3(0, e._offset + e.l2p(t.x));
+ };
+ };
+ Jn.makeTransTickLabelFn = function(e) {
+ var t = _lt(e), r = e.ticklabelshift || 0, n = e.ticklabelstandoff || 0, i = t[0], a = t[1], o = e.range[0] > e.range[1], s = e.ticklabelposition && e.ticklabelposition.indexOf("inside") !== -1, l = !s;
+ if (r) {
+ var u = o ? -1 : 1;
+ r = r * u;
+ }
+ if (n) {
+ var c = e.side, f = s && (c === "top" || c === "left") || l && (c === "bottom" || c === "right") ? 1 : -1;
+ n = n * f;
+ }
+ return e._id.charAt(0) === "x" ? function(h) {
+ return H3(i + e._offset + e.l2p(pB(h)) + r, a + n);
+ } : function(h) {
+ return H3(a + n, i + e._offset + e.l2p(pB(h)) + r);
+ };
+ };
+ function pB(e) {
+ return e.periodX !== void 0 ? e.periodX : e.x;
+ }
+ function _lt(e) {
+ var t = e.ticklabelposition || "", r = e.tickson || "", n = function(v) {
+ return t.indexOf(v) !== -1;
+ }, i = n("top"), a = n("left"), o = n("right"), s = n("bottom"), l = n("inside"), u = r !== "boundaries" && (s || a || i || o);
+ if (!u && !l) return [0, 0];
+ var c = e.side, f = u ? (e.tickwidth || 0) / 2 : 0, h = zL, d = e.tickfont ? e.tickfont.size : 12;
+ return (s || i) && (f += d * Bb, h += (e.linewidth || 0) / 2), (a || o) && (f += (e.linewidth || 0) / 2, h += zL), l && c === "top" && (h -= d * (1 - Bb)), (a || i) && (f = -f), (c === "bottom" || c === "right") && (h = -h), [u ? f : 0, l ? h : 0];
+ }
+ Jn.makeTickPath = function(e, t, r, n) {
+ n || (n = {});
+ var i = n.minor;
+ if (i && !e.minor) return "";
+ var a = n.len !== void 0 ? n.len : i ? e.minor.ticklen : e.ticklen, o = e._id.charAt(0), s = (e.linewidth || 1) / 2;
+ return o === "x" ? "M0," + (t + s * r) + "v" + a * r : "M" + (t + s * r) + ",0h" + a * r;
+ };
+ Jn.makeLabelFns = function(e, t, r) {
+ var n = e.ticklabelposition || "", i = e.tickson || "", a = function(O) {
+ return n.indexOf(O) !== -1;
+ }, o = a("top"), s = a("left"), l = a("right"), u = a("bottom"), c = i !== "boundaries" && (u || s || o || l), f = a("inside"), h = n === "inside" && e.ticks === "inside" || !f && e.ticks === "outside" && i !== "boundaries", d = 0, v = 0, _ = h ? e.ticklen : 0;
+ if (f ? _ *= -1 : c && (_ = 0), h && (d += _, r)) {
+ var b = Wo.deg2rad(r);
+ d = _ * Math.cos(b) + 1, v = _ * Math.sin(b);
+ }
+ e.showticklabels && (h || e.showline) && (d += 0.2 * e.tickfont.size), d += (e.linewidth || 1) / 2 * (f ? -1 : 1);
+ var p = { labelStandoff: d, labelShift: v }, k, E, T, L, x = 0, C = e.side, M = e._id.charAt(0), g = e.tickangle, P;
+ if (M === "x") P = !f && C === "bottom" || f && C === "top", L = P ? 1 : -1, f && (L *= -1), k = v * L, E = t + d * L, T = P ? 1 : -0.2, Math.abs(g) === 90 && (f ? T += lM : g === -90 && C === "bottom" ? T = Bb : g === 90 && C === "top" ? T = lM : T = 0.5, x = lM / 2 * (g / 90)), p.xFn = function(O) {
+ return O.dx + k + x * O.fontSize;
+ }, p.yFn = function(O) {
+ return O.dy + E + O.fontSize * T;
+ }, p.anchorFn = function(O, U) {
+ if (c) {
+ if (s) return "end";
+ if (l) return "start";
+ }
+ return !zh(U) || U === 0 || U === 180 ? "middle" : U * L < 0 !== f ? "end" : "start";
+ }, p.heightFn = function(O, U, G) {
+ return U < -60 || U > 60 ? -0.5 * G : e.side === "top" !== f ? -G : 0;
+ };
+ else if (M === "y") {
+ if (P = !f && C === "left" || f && C === "right", L = P ? 1 : -1, f && (L *= -1), k = d, E = v * L, T = 0, !f && Math.abs(g) === 90 && (g === -90 && C === "left" || g === 90 && C === "right" ? T = Bb : T = 0.5), f) {
+ var A = zh(g) ? +g : 0;
+ if (A !== 0) {
+ var z = Wo.deg2rad(A);
+ x = Math.abs(Math.sin(z)) * Bb * L, T = 0;
+ }
+ }
+ p.xFn = function(O) {
+ return O.dx + t - (k + O.fontSize * T) * L + x * O.fontSize;
+ }, p.yFn = function(O) {
+ return O.dy + E + O.fontSize * lM;
+ }, p.anchorFn = function(O, U) {
+ return zh(U) && Math.abs(U) === 90 ? "middle" : P ? "end" : "start";
+ }, p.heightFn = function(O, U, G) {
+ return e.side === "right" && (U *= -1), U < -30 ? -G : U < 30 ? -0.5 * G : 0;
+ };
+ }
+ return p;
+ };
+ function BL(e) {
+ return [e.text, e.x, e.axInfo, e.font, e.fontSize, e.fontColor].join("_");
+ }
+ Jn.drawTicks = function(e, t, r) {
+ r = r || {};
+ var n = t._id + "tick", i = [].concat(t.minor && t.minor.ticks ? r.vals.filter(function(o) {
+ return o.minor && !o.noTick;
+ }) : []).concat(t.ticks ? r.vals.filter(function(o) {
+ return !o.minor && !o.noTick;
+ }) : []), a = r.layer.selectAll("path." + n).data(i, BL);
+ a.exit().remove(), a.enter().append("path").classed(n, 1).classed("ticks", 1).classed("crisp", r.crisp !== false).each(function(o) {
+ return cM.stroke(w0.select(this), o.minor ? t.minor.tickcolor : t.tickcolor);
+ }).style("stroke-width", function(o) {
+ return Xp.crispRound(e, o.minor ? t.minor.tickwidth : t.tickwidth, 1) + "px";
+ }).attr("d", r.path).style("display", null), NL(t, [kse]), a.attr("transform", r.transFn);
+ };
+ Jn.drawGrid = function(e, t, r) {
+ if (r = r || {}, t.tickmode !== "sync") {
+ var n = t._id + "grid", i = t.minor && t.minor.showgrid, a = i ? r.vals.filter(function(p) {
+ return p.minor;
+ }) : [], o = t.showgrid ? r.vals.filter(function(p) {
+ return !p.minor;
+ }) : [], s = r.counterAxis;
+ if (s && Jn.shouldShowZeroLine(e, t, s)) for (var l = t.tickmode === "array", u = 0; u < o.length; u++) {
+ var c = o[u].x;
+ if (l ? !c : Math.abs(c) < t.dtick / 100) if (o = o.slice(0, u).concat(o.slice(u + 1)), l) u--;
+ else break;
+ }
+ t._gw = Xp.crispRound(e, t.gridwidth, 1);
+ for (var f = i ? Xp.crispRound(e, t.minor.gridwidth, 1) : 0, h = r.layer, d = r.minorLayer, v = 1; v >= 0; v--) {
+ var _ = v ? h : d;
+ if (_) {
+ var b = _.selectAll("path." + n).data(v ? o : a, BL);
+ b.exit().remove(), b.enter().append("path").classed(n, 1).classed("crisp", r.crisp !== false), b.attr("transform", r.transFn).attr("d", r.path).each(function(p) {
+ return cM.stroke(w0.select(this), p.minor ? t.minor.gridcolor : t.gridcolor || "#ddd");
+ }).style("stroke-dasharray", function(p) {
+ return Xp.dashStyle(p.minor ? t.minor.griddash : t.griddash, p.minor ? t.minor.gridwidth : t.gridwidth);
+ }).style("stroke-width", function(p) {
+ return (p.minor ? f : t._gw) + "px";
+ }).style("display", null), typeof r.path == "function" && b.attr("d", r.path);
+ }
+ }
+ NL(t, [dB, vB]);
+ }
+ };
+ Jn.drawZeroLine = function(e, t, r) {
+ r = r || r;
+ var n = t._id + "zl", i = Jn.shouldShowZeroLine(e, t, r.counterAxis), a = r.layer.selectAll("path." + n).data(i ? [{ x: 0, id: t._id }] : []);
+ a.exit().remove(), a.enter().append("path").classed(n, 1).classed("zl", 1).classed("crisp", r.crisp !== false).each(function() {
+ r.layer.selectAll("path").sort(function(o, s) {
+ return Yst(o.id, s.id);
+ });
+ }), a.attr("transform", r.transFn).attr("d", r.path).call(cM.stroke, t.zerolinecolor || cM.defaultLine).style("stroke-width", Xp.crispRound(e, t.zerolinewidth, t._gw || 1) + "px").style("display", null), NL(t, [hB]);
+ };
+ Jn.drawLabels = function(e, t, r) {
+ r = r || {};
+ var n = e._fullLayout, i = t._id, a = t.zerolinelayer === "above traces", o = r.cls || i + "tick", s = r.vals.filter(function(H) {
+ return H.text;
+ }), l = r.labelFns, u = r.secondary ? 0 : t.tickangle, c = (t._prevTickAngles || {})[o], f = r.layer.selectAll("g." + o).data(t.showticklabels ? s : [], BL), h = [];
+ f.enter().append("g").classed(o, 1).append("text").attr("text-anchor", "middle").each(function(H) {
+ var re = w0.select(this), oe = e._promises.length;
+ re.call(Ob.positionText, l.xFn(H), l.yFn(H)).call(Xp.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(Ob.convertToTspans, e), e._promises[oe] ? h.push(e._promises.pop().then(function() {
+ d(re, u);
+ })) : d(re, u);
+ }), NL(t, [yse]), f.exit().remove(), r.repositionOnUpdate && f.each(function(H) {
+ w0.select(this).select("text").call(Ob.positionText, l.xFn(H), l.yFn(H));
+ });
+ function d(H, re) {
+ H.each(function(oe) {
+ var _e = w0.select(this), Ce = _e.select(".text-math-group"), Le = l.anchorFn(oe, re), ge = r.transFn.call(_e.node(), oe) + (zh(re) && +re != 0 ? " rotate(" + re + "," + l.xFn(oe) + "," + (l.yFn(oe) - oe.fontSize / 2) + ")" : ""), ie = Ob.lineCount(_e), Se = hM * oe.fontSize, Ee = l.heightFn(oe, zh(re) ? +re : 0, (ie - 1) * Se);
+ if (Ee && (ge += H3(0, Ee)), Ce.empty()) {
+ var Ae = _e.select("text");
+ Ae.attr({ transform: ge, "text-anchor": Le }), Ae.style("display", null), t._adjustTickLabelsOverflow && t._adjustTickLabelsOverflow();
+ } else {
+ var Be = Xp.bBox(Ce.node()).width, Pe = Be * { end: -0.5, start: 0.5 }[Le];
+ Ce.attr("transform", ge + H3(Pe, 0));
+ }
+ });
+ }
+ t._adjustTickLabelsOverflow = function() {
+ var H = t.ticklabeloverflow;
+ if (!(!H || H === "allow")) {
+ var re = H.indexOf("hide") !== -1, oe = t._id.charAt(0) === "x", _e = 0, Ce = oe ? e._fullLayout.width : e._fullLayout.height;
+ if (H.indexOf("domain") !== -1) {
+ var Le = Wo.simpleMap(t.range, t.r2l);
+ _e = t.l2p(Le[0]) + t._offset, Ce = t.l2p(Le[1]) + t._offset;
+ }
+ var ge = Math.min(_e, Ce), ie = Math.max(_e, Ce), Se = t.side, Ee = 1 / 0, Ae = -1 / 0;
+ f.each(function(De) {
+ var ce = w0.select(this), je = ce.select(".text-math-group");
+ if (je.empty()) {
+ var lt = Xp.bBox(ce.node()), pt = 0;
+ oe ? (lt.right > ie || lt.left < ge) && (pt = 1) : (lt.bottom > ie || lt.top + (t.tickangle ? 0 : De.fontSize / 4) < ge) && (pt = 1);
+ var Vt = ce.select("text");
+ pt ? re && Vt.style("display", "none") : Vt.node().style.display !== "none" && (Vt.style("display", null), Se === "bottom" || Se === "right" ? Ee = Math.min(Ee, oe ? lt.top : lt.left) : Ee = -1 / 0, Se === "top" || Se === "left" ? Ae = Math.max(Ae, oe ? lt.bottom : lt.right) : Ae = 1 / 0);
+ }
+ });
+ for (var Be in n._plots) {
+ var Pe = n._plots[Be];
+ if (!(t._id !== Pe.xaxis._id && t._id !== Pe.yaxis._id)) {
+ var me = oe ? Pe.yaxis : Pe.xaxis;
+ me && (me["_visibleLabelMin_" + t._id] = Ee, me["_visibleLabelMax_" + t._id] = Ae);
+ }
+ }
+ }
+ }, t._hideCounterAxisInsideTickLabels = function(H) {
+ var re = t._id.charAt(0) === "x", oe = [];
+ for (var _e in n._plots) {
+ var Ce = n._plots[_e];
+ t._id !== Ce.xaxis._id && t._id !== Ce.yaxis._id || oe.push(re ? Ce.yaxis : Ce.xaxis);
+ }
+ oe.forEach(function(Le, ge) {
+ Le && vM(Le) && (H || [hB, vB, dB, kse, yse]).forEach(function(ie) {
+ var Se = ie.K === "tick" && ie.L === "text" && t.ticklabelmode === "period", Ee = n._plots[t._mainSubplot], Ae;
+ if (ie.K === hB.K) {
+ var Be = a ? Ee.zerolinelayerAbove : Ee.zerolinelayer;
+ Ae = Be.selectAll("." + t._id + "zl");
+ } else ie.K === vB.K ? Ae = Ee.minorGridlayer.selectAll("." + t._id) : ie.K === dB.K ? Ae = Ee.gridlayer.selectAll("." + t._id) : Ae = Ee[t._id.charAt(0) + "axislayer"];
+ Ae.each(function() {
+ var Pe = w0.select(this);
+ ie.L && (Pe = Pe.selectAll(ie.L)), Pe.each(function(me) {
+ var De = t.l2p(Se ? pB(me) : me.x) + t._offset, ce = w0.select(this);
+ De < t["_visibleLabelMax_" + Le._id] && De > t["_visibleLabelMin_" + Le._id] ? ce.style("display", "none") : ie.K === "tick" && !ge && ce.node().style.display !== "none" && ce.style("display", null);
+ });
+ });
+ });
+ });
+ }, d(f, c + 1 ? c : u);
+ function v() {
+ return h.length && Promise.all(h);
+ }
+ var _ = null;
+ function b() {
+ if (d(f, u), s.length && t.autotickangles && (t.type !== "log" || String(t.dtick).charAt(0) !== "D")) {
+ _ = t.autotickangles[0];
+ var H = 0, re = [], oe, _e = 1;
+ f.each(function(Tr) {
+ H = Math.max(H, Tr.fontSize);
+ var fr = t.l2p(Tr.x), $e = gB(this), St = Xp.bBox($e.node());
+ _e = Math.max(_e, Ob.lineCount($e)), re.push({ top: 0, bottom: 10, height: 10, left: fr - St.width / 2, right: fr + St.width / 2 + 2, width: St.width + 2 });
+ });
+ var Ce = (t.tickson === "boundaries" || t.showdividers) && !r.secondary, Le = s.length, ge = Math.abs((s[Le - 1].x - s[0].x) * t._m) / (Le - 1), ie = Ce ? ge / 2 : ge, Se = Ce ? t.ticklen : H * 1.25 * _e, Ee = Math.sqrt(Math.pow(ie, 2) + Math.pow(Se, 2)), Ae = ie / Ee, Be = t.autotickangles.map(function(Tr) {
+ return Tr * Math.PI / 180;
+ }), Pe = Be.find(function(Tr) {
+ return Math.abs(Math.cos(Tr)) <= Ae;
+ });
+ Pe === void 0 && (Pe = Be.reduce(function(Tr, fr) {
+ return Math.abs(Math.cos(Tr)) < Math.abs(Math.cos(fr)) ? Tr : fr;
+ }, Be[0]));
+ var me = Pe * (180 / Math.PI);
+ if (Ce) {
+ var De = 2;
+ for (t.ticks && (De += t.tickwidth / 2), oe = 0; oe < re.length; oe++) {
+ var ce = s[oe].xbnd, je = re[oe];
+ if (ce[0] !== null && je.left - t.l2p(ce[0]) < De || ce[1] !== null && t.l2p(ce[1]) - je.right < De) {
+ _ = me;
+ break;
+ }
+ }
+ } else {
+ var lt = t.ticklabelposition || "", pt = t.tickson || "", Vt = function(Tr) {
+ return lt.indexOf(Tr) !== -1;
+ }, ot = Vt("top"), ut = Vt("left"), Wt = Vt("right"), Nt = Vt("bottom"), $t = pt !== "boundaries" && (Nt || ut || ot || Wt), sr = $t ? (t.tickwidth || 0) + 2 * zL : 0;
+ for (oe = 0; oe < re.length - 1; oe++) if (Wo.bBoxIntersect(re[oe], re[oe + 1], sr)) {
+ _ = me;
+ break;
+ }
+ }
+ _ && d(f, _);
+ }
+ }
+ t._selections && (t._selections[o] = f);
+ var p = [v];
+ t.automargin && n._redrawFromAutoMarginCount && c === 90 ? (_ = c, p.push(function() {
+ d(f, c);
+ })) : p.push(b), t._tickAngles && p.push(function() {
+ t._tickAngles[o] = _ === null ? zh(u) ? u : 0 : _;
+ });
+ var k = function() {
+ var H = 0, re = 0;
+ return f.each(function(oe, _e) {
+ var Ce = gB(this), Le = Ce.select(".text-math-group");
+ if (Le.empty()) {
+ var ge;
+ t._vals[_e] && (ge = t._vals[_e].bb || Xp.bBox(Ce.node()), t._vals[_e].bb = ge), H = Math.max(H, ge.width), re = Math.max(re, ge.height);
+ }
+ }), { labelsMaxW: H, labelsMaxH: re };
+ }, E = t._anchorAxis;
+ if (E && (E.autorange || E.insiderange) && vM(t) && !Kst(n, t._id) && (n._insideTickLabelsUpdaterange || (n._insideTickLabelsUpdaterange = {}), E.autorange && (n._insideTickLabelsUpdaterange[E._name + ".autorange"] = E.autorange, p.push(k)), E.insiderange)) {
+ var T = k(), L = t._id.charAt(0) === "y" ? T.labelsMaxW : T.labelsMaxH;
+ L += 2 * zL, t.ticklabelposition === "inside" && (L += t.ticklen || 0);
+ var x = t.side === "right" || t.side === "top" ? 1 : -1, C = x === 1 ? 1 : 0, M = x === 1 ? 0 : 1, g = [];
+ g[M] = E.range[M];
+ var P = E.range, A = E.r2p(P[C]), z = E.r2p(P[M]), O = n._insideTickLabelsUpdaterange[E._name + ".range"];
+ if (O) {
+ var U = E.r2p(O[C]), G = E.r2p(O[M]), Z = x * (t._id.charAt(0) === "y" ? 1 : -1);
+ Z * A < Z * U && (A = U, g[C] = P[C] = O[C]), Z * z > Z * G && (z = G, g[M] = P[M] = O[M]);
+ }
+ var j = Math.abs(z - A);
+ j - L > 0 ? (j -= L, L *= 1 + L / j) : L = 0, t._id.charAt(0) !== "y" && (L = -L), g[C] = E.p2r(E.r2p(P[C]) + x * L), E.autorange === "min" || E.autorange === "max reversed" ? (g[0] = null, E._rangeInitial0 = void 0, E._rangeInitial1 = void 0) : (E.autorange === "max" || E.autorange === "min reversed") && (g[1] = null, E._rangeInitial0 = void 0, E._rangeInitial1 = void 0), n._insideTickLabelsUpdaterange[E._name + ".range"] = g;
+ }
+ var N = Wo.syncOrAsync(p);
+ return N && N.then && e._promises.push(N), N;
+ };
+ function xlt(e, t, r) {
+ var n = t._id + "divider", i = r.vals, a = r.layer.selectAll("path." + n).data(i, BL);
+ a.exit().remove(), a.enter().insert("path", ":first-child").classed(n, 1).classed("crisp", 1).call(cM.stroke, t.dividercolor).style("stroke-width", Xp.crispRound(e, t.dividerwidth, 1) + "px"), a.attr("transform", r.transFn).attr("d", r.path);
+ }
+ Jn.getPxPosition = function(e, t) {
+ var r = e._fullLayout._size, n = t._id.charAt(0), i = t.side, a;
+ if (t.anchor !== "free" ? a = t._anchorAxis : n === "x" ? a = { _offset: r.t + (1 - (t.position || 0)) * r.h, _length: 0 } : n === "y" && (a = { _offset: r.l + (t.position || 0) * r.w + t._shift, _length: 0 }), i === "top" || i === "left") return a._offset;
+ if (i === "bottom" || i === "right") return a._offset + a._length;
+ };
+ function Ese(e) {
+ var t = e.title.font.size, r = (e.title.text.match(Ob.BR_TAG_ALL) || []).length;
+ return e.title.hasOwnProperty("standoff") ? t * (Bb + r * hM) : r ? t * (r + 1) * hM : t;
+ }
+ function blt(e, t) {
+ var r = e._fullLayout, n = t._id, i = n.charAt(0), a = t.title.font.size, o, s = (t.title.text.match(Ob.BR_TAG_ALL) || []).length;
+ if (t.title.hasOwnProperty("standoff")) t.side === "bottom" || t.side === "right" ? o = t._depth + t.title.standoff + a * Bb : (t.side === "top" || t.side === "left") && (o = t._depth + t.title.standoff + a * (lM + s * hM));
+ else {
+ var l = vM(t);
+ if (t.type === "multicategory") o = t._depth;
+ else {
+ var u = 1.5 * a;
+ l && (u = 0.5 * a, t.ticks === "outside" && (u += t.ticklen)), o = 10 + u + (t.linewidth ? t.linewidth - 1 : 0);
+ }
+ l || (i === "x" ? o += t.side === "top" ? a * (t.showticklabels ? 1 : 0) : a * (t.showticklabels ? 1.5 : 0.5) : o += t.side === "right" ? a * (t.showticklabels ? 1 : 0.5) : a * (t.showticklabels ? 0.5 : 0));
+ }
+ var c = Jn.getPxPosition(e, t), f, h, d;
+ i === "x" ? (h = t._offset + t._length / 2, d = t.side === "top" ? c - o : c + o) : (d = t._offset + t._length / 2, h = t.side === "right" ? c + o : c - o, f = { rotate: "-90", offset: 0 });
+ var v;
+ if (t.type !== "multicategory") {
+ var _ = t._selections[t._id + "tick"];
+ if (v = { selection: _, side: t.side }, _ && _.node() && _.node().parentNode) {
+ var b = Xp.getTranslate(_.node().parentNode);
+ v.offsetLeft = b.x, v.offsetTop = b.y;
+ }
+ t.title.hasOwnProperty("standoff") && (v.pad = 0);
+ }
+ return t._titleStandoff = o, Nst.draw(e, n + "title", { propContainer: t, propName: t._name + ".title.text", placeholder: r._dfltTitle[i], avoid: v, transform: f, attributes: { x: h, y: d, "text-anchor": "middle" } });
+ }
+ Jn.shouldShowZeroLine = function(e, t, r) {
+ var n = Wo.simpleMap(t.range, t.r2l);
+ return n[0] * n[1] <= 0 && t.zeroline && (t.type === "linear" || t.type === "-") && !(t.rangebreaks && t.maskBreaks(0) === OL) && (zse(t, 0) || !wlt(e, t, r, n) || Tlt(e, t));
+ };
+ Jn.clipEnds = function(e, t) {
+ return t.filter(function(r) {
+ return zse(e, r.x);
+ });
+ };
+ function zse(e, t) {
+ var r = e.l2p(t);
+ return r > 1 && r < e._length - 1;
+ }
+ function wlt(e, t, r, n) {
+ var i = r._mainAxis;
+ if (!i) return;
+ var a = e._fullLayout, o = t._id.charAt(0), s = Jn.counterLetter(t._id), l = t._offset + (Math.abs(n[0]) < Math.abs(n[1]) == (o === "x") ? 0 : t._length);
+ function u(v) {
+ if (!v.showline || !v.linewidth) return false;
+ var _ = Math.max((v.linewidth + t.zerolinewidth) / 2, 1);
+ function b(E) {
+ return typeof E == "number" && Math.abs(E - l) < _;
+ }
+ if (b(v._mainLinePosition) || b(v._mainMirrorPosition)) return true;
+ var p = v._linepositions || {};
+ for (var k in p) if (b(p[k][0]) || b(p[k][1])) return true;
+ }
+ var c = a._plots[r._mainSubplot];
+ if (!(c.mainplotinfo || c).overlays.length) return u(r);
+ for (var f = Jn.list(e, s), h = 0; h < f.length; h++) {
+ var d = f[h];
+ if (d._mainAxis === i && u(d)) return true;
+ }
+ }
+ function Tlt(e, t) {
+ for (var r = e._fullData, n = t._mainSubplot, i = t._id.charAt(0), a = 0; a < r.length; a++) {
+ var o = r[a];
+ if (o.visible === true && o.xaxis + o.yaxis === n && (uM.traceIs(o, "bar-like") && o.orientation === { x: "h", y: "v" }[i] || o.fill && o.fill.charAt(o.fill.length - 1) === i)) return true;
+ }
+ return false;
+ }
+ function gB(e) {
+ var t = w0.select(e), r = t.select(".text-math-group");
+ return r.empty() ? t.select("text") : r;
+ }
+ Jn.allowAutoMargin = function(e) {
+ for (var t = Jn.list(e, "", true), r = 0; r < t.length; r++) {
+ var n = t[r];
+ n.automargin && (G3.allowAutoMargin(e, bB(n)), n.mirror && G3.allowAutoMargin(e, Ose(n))), uM.getComponentMethod("rangeslider", "isVisible")(n) && G3.allowAutoMargin(e, qse(n));
+ }
+ };
+ function bB(e) {
+ return e._id + ".automargin";
+ }
+ function Ose(e) {
+ return bB(e) + ".mirror";
+ }
+ function qse(e) {
+ return e._id + ".rangeslider";
+ }
+ Jn.swap = function(e, t) {
+ for (var r = Alt(e, t), n = 0; n < r.length; n++) Slt(e, r[n].x, r[n].y);
+ };
+ function Alt(e, t) {
+ var r = [], n, i;
+ for (n = 0; n < t.length; n++) {
+ var a = [], o = e._fullData[t[n]].xaxis, s = e._fullData[t[n]].yaxis;
+ if (!(!o || !s)) {
+ for (i = 0; i < r.length; i++) (r[i].x.indexOf(o) !== -1 || r[i].y.indexOf(s) !== -1) && a.push(i);
+ if (!a.length) {
+ r.push({ x: [o], y: [s] });
+ continue;
+ }
+ var l = r[a[0]], u;
+ if (a.length > 1) for (i = 1; i < a.length; i++) u = r[a[i]], LL(l.x, u.x), LL(l.y, u.y);
+ LL(l.x, [o]), LL(l.y, [s]);
+ }
+ }
+ return r;
+ }
+ function LL(e, t) {
+ for (var r = 0; r < t.length; r++) e.indexOf(t[r]) === -1 && e.push(t[r]);
+ }
+ function Slt(e, t, r) {
+ var n = [], i = [], a = e.layout, o, s;
+ for (o = 0; o < t.length; o++) n.push(Jn.getFromId(e, t[o]));
+ for (o = 0; o < r.length; o++) i.push(Jn.getFromId(e, r[o]));
+ var l = Object.keys(Ust), u = ["anchor", "domain", "overlaying", "position", "side", "tickangle", "editType"], c = ["linear", "log"];
+ for (o = 0; o < l.length; o++) {
+ var f = l[o], h = n[0][f], d = i[0][f], v = true, _ = false, b = false;
+ if (!(f.charAt(0) === "_" || typeof h == "function" || u.indexOf(f) !== -1)) {
+ for (s = 1; s < n.length && v; s++) {
+ var p = n[s][f];
+ f === "type" && c.indexOf(h) !== -1 && c.indexOf(p) !== -1 && h !== p ? _ = true : p !== h && (v = false);
+ }
+ for (s = 1; s < i.length && v; s++) {
+ var k = i[s][f];
+ f === "type" && c.indexOf(d) !== -1 && c.indexOf(k) !== -1 && d !== k ? b = true : i[s][f] !== d && (v = false);
+ }
+ v && (_ && (a[n[0]._name].type = "linear"), b && (a[i[0]._name].type = "linear"), Mlt(a, f, n, i, e._fullLayout._dfltTitle));
+ }
+ }
+ for (o = 0; o < e._fullLayout.annotations.length; o++) {
+ var E = e._fullLayout.annotations[o];
+ t.indexOf(E.xref) !== -1 && r.indexOf(E.yref) !== -1 && Wo.swapAttrs(a.annotations[o], ["?"]);
+ }
+ }
+ function Mlt(e, t, r, n, i) {
+ var a = Wo.nestedProperty, o = a(e[r[0]._name], t).get(), s = a(e[n[0]._name], t).get(), l;
+ for (t === "title" && (o && o.text === i.x && (o.text = i.y), s && s.text === i.y && (s.text = i.x)), l = 0; l < r.length; l++) a(e, r[l]._name + "." + t).set(s);
+ for (l = 0; l < n.length; l++) a(e, n[l]._name + "." + t).set(o);
+ }
+ function wB(e) {
+ return e._id === "angularaxis";
+ }
+ function cB(e, t) {
+ for (var r = t._rangebreaks.length, n = 0; n < r; n++) {
+ var i = t._rangebreaks[n];
+ if (e >= i.min && e < i.max) return i.max;
+ }
+ return e;
+ }
+ function vM(e) {
+ return (e.ticklabelposition || "").indexOf("inside") !== -1;
+ }
+ function NL(e, t) {
+ vM(e._anchorAxis || {}) && e._hideCounterAxisInsideTickLabels && e._hideCounterAxisInsideTickLabels(t);
+ }
+ function mB(e, t, r, n) {
+ var i = e.anchor !== "free" && (e.overlaying === void 0 || e.overlaying === false) ? e._id : e.overlaying, a;
+ n ? a = e.side === "right" ? t : -t : a = t, i in r || (r[i] = {}), e.side in r[i] || (r[i][e.side] = 0), r[i][e.side] += a;
+ }
+ function Elt(e, t) {
+ return e.autoshift ? t[e.overlaying][e.side] : e.shift || 0;
+ }
+ function klt(e, t) {
+ return /%f/.test(t) ? e >= Wst : /%L/.test(t) ? e >= jst : /%[SX]/.test(t) ? e >= FL : /%M/.test(t) ? e >= fM : /%[HI]/.test(t) ? e >= wm : /%p/.test(t) ? e >= v_ : /%[Aadejuwx]/.test(t) ? e >= Ov : /%[UVW]/.test(t) ? e >= Zp : /%[Bbm]/.test(t) ? e >= DL : /%[q]/.test(t) ? e >= RL : /%[Yy]/.test(t) ? e >= IL : true;
+ }
+ });
+ var TB = ye((nar, Nse) => {
+ Nse.exports = function(t, r, n) {
+ var i, a;
+ if (n) {
+ var o = r === "reversed" || r === "min reversed" || r === "max reversed";
+ i = n[o ? 1 : 0], a = n[o ? 0 : 1];
+ }
+ var s = t("autorangeoptions.minallowed", a === null ? i : void 0), l = t("autorangeoptions.maxallowed", i === null ? a : void 0);
+ s === void 0 && t("autorangeoptions.clipmin"), l === void 0 && t("autorangeoptions.clipmax"), t("autorangeoptions.include");
+ };
+ });
+ var AB = ye((aar, Use) => {
+ var Clt = TB();
+ Use.exports = function(t, r, n, i) {
+ var a = r._template || {}, o = r.type || a.type || "-";
+ n("minallowed"), n("maxallowed");
+ var s = n("range");
+ if (!s) {
+ var l;
+ !i.noInsiderange && o !== "log" && (l = n("insiderange"), l && (l[0] === null || l[1] === null) && (r.insiderange = false, l = void 0), l && (s = n("range", l)));
+ }
+ var u = r.getAutorangeDflt(s, i), c = n("autorange", u), f;
+ s && (s[0] === null && s[1] === null || (s[0] === null || s[1] === null) && (c === "reversed" || c === true) || s[0] !== null && (c === "min" || c === "max reversed") || s[1] !== null && (c === "max" || c === "min reversed")) && (s = void 0, delete r.range, r.autorange = true, f = true), f || (u = r.getAutorangeDflt(s, i), c = n("autorange", u)), c && (Clt(n, c, s), (o === "linear" || o === "-") && n("rangemode")), r.cleanRange();
+ };
+ });
+ var Gse = ye((oar, Vse) => {
+ var Llt = { left: 0, top: 0 };
+ Vse.exports = Plt;
+ function Plt(e, t, r) {
+ t = t || e.currentTarget || e.srcElement, Array.isArray(r) || (r = [0, 0]);
+ var n = e.clientX || 0, i = e.clientY || 0, a = Ilt(t);
+ return r[0] = n - a.left, r[1] = i - a.top, r;
+ }
+ function Ilt(e) {
+ return e === window || e === document || e === document.body ? Llt : e.getBoundingClientRect();
+ }
+ });
+ var UL = ye((sar, Hse) => {
+ var Rlt = oq();
+ function Dlt() {
+ var e = false;
+ try {
+ var t = Object.defineProperty({}, "passive", { get: function() {
+ e = true;
+ } });
+ window.addEventListener("test", null, t), window.removeEventListener("test", null, t);
+ } catch (r) {
+ e = false;
+ }
+ return e;
+ }
+ Hse.exports = Rlt && Dlt();
+ });
+ var Wse = ye((lar, jse) => {
+ jse.exports = function(t, r, n, i, a) {
+ var o = (t - n) / (i - n), s = o + r / (i - n), l = (o + s) / 2;
+ return a === "left" || a === "bottom" ? o : a === "center" || a === "middle" ? l : a === "right" || a === "top" ? s : o < 2 / 3 - l ? o : s > 4 / 3 - l ? s : l;
+ };
+ });
+ var Yse = ye((uar, Zse) => {
+ var Xse = Dr(), Flt = [["sw-resize", "s-resize", "se-resize"], ["w-resize", "move", "e-resize"], ["nw-resize", "n-resize", "ne-resize"]];
+ Zse.exports = function(t, r, n, i) {
+ return n === "left" ? t = 0 : n === "center" ? t = 1 : n === "right" ? t = 2 : t = Xse.constrain(Math.floor(t * 3), 0, 2), i === "bottom" ? r = 0 : i === "middle" ? r = 1 : i === "top" ? r = 2 : r = Xse.constrain(Math.floor(r * 3), 0, 2), Flt[r][t];
+ };
+ });
+ var Jse = ye((car, Kse) => {
+ var zlt = k3(), Olt = H6(), qlt = HS().getGraphDiv, Blt = NS(), SB = Kse.exports = {};
+ SB.wrapped = function(e, t, r) {
+ e = qlt(e), e._fullLayout && Olt.clear(e._fullLayout._uid + Blt.HOVERID), SB.raw(e, t, r);
+ };
+ SB.raw = function(t, r) {
+ var n = t._fullLayout, i = t._hoverdata;
+ r || (r = {}), !(r.target && !t._dragged && zlt.triggerHandler(t, "plotly_beforehover", r) === false) && (n._hoverlayer.selectAll("g").remove(), n._hoverlayer.selectAll("line").remove(), n._hoverlayer.selectAll("circle").remove(), t._hoverdata = void 0, r.target && i && t.emit("plotly_unhover", { event: r, points: i }));
+ };
+ });
+ var yv = ye((far, tle) => {
+ var Nlt = Gse(), MB = lq(), Ult = UL(), Vlt = Dr().removeElement, Glt = Rh(), Nb = tle.exports = {};
+ Nb.align = Wse();
+ Nb.getCursor = Yse();
+ var Qse = Jse();
+ Nb.unhover = Qse.wrapped;
+ Nb.unhoverRaw = Qse.raw;
+ Nb.init = function(t) {
+ var r = t.gd, n = 1, i = r._context.doubleClickDelay, a = t.element, o, s, l, u, c, f, h, d;
+ r._mouseDownTime || (r._mouseDownTime = 0), a.style.pointerEvents = "all", a.onmousedown = b, Ult ? (a._ontouchstart && a.removeEventListener("touchstart", a._ontouchstart), a._ontouchstart = b, a.addEventListener("touchstart", b, { passive: false })) : a.ontouchstart = b;
+ function v(E, T, L) {
+ return Math.abs(E) < L && (E = 0), Math.abs(T) < L && (T = 0), [E, T];
+ }
+ var _ = t.clampFn || v;
+ function b(E) {
+ r._dragged = false, r._dragging = true;
+ var T = $se(E);
+ o = T[0], s = T[1], h = E.target, f = E, d = E.buttons === 2 || E.ctrlKey, typeof E.clientX == "undefined" && typeof E.clientY == "undefined" && (E.clientX = o, E.clientY = s), l = (/* @__PURE__ */ new Date()).getTime(), l - r._mouseDownTime < i ? n += 1 : (n = 1, r._mouseDownTime = l), t.prepFn && t.prepFn(E, o, s), MB && !d ? (c = ele(), c.style.cursor = window.getComputedStyle(a).cursor) : MB || (c = document, u = window.getComputedStyle(document.documentElement).cursor, document.documentElement.style.cursor = window.getComputedStyle(a).cursor), document.addEventListener("mouseup", k), document.addEventListener("touchend", k), t.dragmode !== false && (E.preventDefault(), document.addEventListener("mousemove", p), document.addEventListener("touchmove", p, { passive: false }));
+ }
+ function p(E) {
+ E.preventDefault();
+ var T = $se(E), L = t.minDrag || Glt.MINDRAG, x = _(T[0] - o, T[1] - s, L), C = x[0], M = x[1];
+ (C || M) && (r._dragged = true, Nb.unhover(r, E)), r._dragged && t.moveFn && !d && (r._dragdata = { element: a, dx: C, dy: M }, t.moveFn(C, M));
+ }
+ function k(E) {
+ if (delete r._dragdata, t.dragmode !== false && (E.preventDefault(), document.removeEventListener("mousemove", p), document.removeEventListener("touchmove", p)), document.removeEventListener("mouseup", k), document.removeEventListener("touchend", k), MB ? Vlt(c) : u && (c.documentElement.style.cursor = u, u = null), !r._dragging) {
+ r._dragged = false;
+ return;
+ }
+ if (r._dragging = false, (/* @__PURE__ */ new Date()).getTime() - r._mouseDownTime > i && (n = Math.max(n - 1, 1)), r._dragged) t.doneFn && t.doneFn();
+ else {
+ var T;
+ f.target === h ? T = f : (T = { target: h, srcElement: h, toElement: h }, Object.keys(f).concat(Object.keys(f.__proto__)).forEach((L) => {
+ var x = f[L];
+ !T[L] && typeof x != "function" && (T[L] = x);
+ })), t.clickFn && t.clickFn(n, T), d || h.dispatchEvent(new MouseEvent("click", E));
+ }
+ r._dragging = false, r._dragged = false;
+ }
+ };
+ function ele() {
+ var e = document.createElement("div");
+ e.className = "dragcover";
+ var t = e.style;
+ return t.position = "fixed", t.left = 0, t.right = 0, t.top = 0, t.bottom = 0, t.zIndex = 999999999, t.background = "none", document.body.appendChild(e), e;
+ }
+ Nb.coverSlip = ele;
+ function $se(e) {
+ return Nlt(e.changedTouches ? e.changedTouches[0] : e, document.body);
+ }
+ });
+ var Eg = ye((har, rle) => {
+ rle.exports = function(t, r) {
+ (t.attr("class") || "").split(" ").forEach(function(n) {
+ n.indexOf("cursor-") === 0 && t.classed(n, false);
+ }), r && t.classed("cursor-" + r, true);
+ };
+ });
+ var ale = ye((dar, nle) => {
+ var EB = Eg(), pM = "data-savedcursor", ile = "!!";
+ nle.exports = function(t, r) {
+ var n = t.attr(pM);
+ if (r) {
+ if (!n) {
+ for (var i = (t.attr("class") || "").split(" "), a = 0; a < i.length; a++) {
+ var o = i[a];
+ o.indexOf("cursor-") === 0 && t.attr(pM, o.slice(7)).classed(o, false);
+ }
+ t.attr(pM) || t.attr(pM, ile);
+ }
+ EB(t, r);
+ } else n && (t.attr(pM, null), n === ile ? EB(t) : EB(t, n));
+ };
+ });
+ var CB = ye((par, ole) => {
+ var kB = ec(), Hlt = Ih();
+ ole.exports = { _isSubplotObj: true, visible: { valType: "boolean", dflt: true, editType: "legend" }, bgcolor: { valType: "color", editType: "legend" }, bordercolor: { valType: "color", dflt: Hlt.defaultLine, editType: "legend" }, maxheight: { valType: "number", min: 0, editType: "legend" }, borderwidth: { valType: "number", min: 0, dflt: 0, editType: "legend" }, font: kB({ editType: "legend" }), grouptitlefont: kB({ 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", false], dflt: "toggle", editType: "legend" }, itemdoubleclick: { valType: "enumerated", values: ["toggle", "toggleothers", false], dflt: "toggleothers", editType: "legend" }, groupclick: { valType: "enumerated", values: ["toggleitem", "togglegroup"], dflt: "togglegroup", editType: "legend" }, titleclick: { valType: "enumerated", values: ["toggle", "toggleothers", false], editType: "legend" }, titledoubleclick: { valType: "enumerated", values: ["toggle", "toggleothers", false], 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: kB({ editType: "legend" }), side: { valType: "enumerated", values: ["top", "left", "top left", "top center", "top right"], editType: "legend" }, editType: "legend" }, editType: "legend" };
+ });
+ var mM = ye((gM) => {
+ gM.isGrouped = function(t) {
+ return (t.traceorder || "").indexOf("grouped") !== -1;
+ };
+ gM.isVertical = function(t) {
+ return t.orientation !== "h";
+ };
+ gM.isReversed = function(t) {
+ return (t.traceorder || "").indexOf("reversed") !== -1;
+ };
+ gM.getId = function(t) {
+ return t._id || "legend";
+ };
+ });
+ var PB = ye((mar, sle) => {
+ var VL = qa(), Yp = Dr(), jlt = vl(), Wlt = Gl(), Xlt = CB(), Zlt = _3(), LB = mM();
+ function Ylt(e, t, r, n, i) {
+ var a = t[e] || {}, o = jlt.newContainer(r, e);
+ function s(H, re) {
+ return Yp.coerce(a, o, Xlt, H, re);
+ }
+ var l = Yp.coerceFont(s, "font", r.font);
+ s("bgcolor", r.paper_bgcolor), s("bordercolor");
+ var u = s("visible");
+ if (!u) return;
+ var c, f = function(H, re) {
+ var oe = c._input, _e = c;
+ return Yp.coerce(oe, _e, Wlt, H, re);
+ }, h = r.font || {}, d = Yp.coerceFont(s, "grouptitlefont", h, { overrideDflt: { size: Math.round(h.size * 1.1) } }), v = 0, _ = false, b = "normal", p = (r.shapes || []).filter(function(H) {
+ return H.showlegend;
+ });
+ function k(H) {
+ return VL.traceIs(H, "pie-like") && H._length != null && (Array.isArray(H.legend) || Array.isArray(H.showlegend));
+ }
+ n.filter(k).forEach(function(H) {
+ H.visible && v++;
+ for (var re = 0; re < H._length; re++) {
+ var oe = (Array.isArray(H.legend) ? H.legend[re] : H.legend) || "legend";
+ oe === e && ((Array.isArray(H.showlegend) ? H.showlegend[re] : H.showlegend) || H._dfltShowLegend) && (_ = true, v++);
+ }
+ if (e === "legend" && H._length > H.legend.length) for (var _e = H.legend.length; _e < H._length; _e++) _ = true, v++;
+ });
+ for (var E = n.concat(p).filter(function(H) {
+ return !k(c) && e === (H.legend || "legend");
+ }), T = 0; T < E.length; T++) if (c = E[T], !!c.visible) {
+ var L = c._isShape;
+ (c.showlegend || c._dfltShowLegend && !(c._module && c._module.attributes && c._module.attributes.showlegend && c._module.attributes.showlegend.dflt === false)) && (v++, c.showlegend && (_ = true, (!L && VL.traceIs(c, "pie-like") || c._input.showlegend === true) && v++), Yp.coerceFont(f, "legendgrouptitle.font", d)), (!L && VL.traceIs(c, "bar") && r.barmode === "stack" || ["tonextx", "tonexty"].indexOf(c.fill) !== -1) && (b = LB.isGrouped({ traceorder: b }) ? "grouped+reversed" : "reversed"), c.legendgroup !== void 0 && c.legendgroup !== "" && (b = LB.isReversed({ traceorder: b }) ? "reversed+grouped" : "grouped");
+ }
+ var x = Yp.coerce(t, r, Zlt, "showlegend", r.showlegend || _ && v > (e === "legend" ? 1 : 0));
+ if (x === false && (r[e] = void 0), !(x === false && !a.uirevision) && (s("uirevision", r.uirevision), x !== false)) {
+ s("borderwidth");
+ var C = s("orientation"), M = s("yref"), g = s("xref"), P = C === "h", A = M === "paper", z = g === "paper", O, U, G, Z = "left";
+ P ? (O = 0, VL.getComponentMethod("rangeslider", "isVisible")(t.xaxis) ? A ? (U = 1.1, G = "bottom") : (U = 1, G = "top") : A ? (U = -0.1, G = "top") : (U = 0, G = "bottom")) : (U = 1, G = "auto", z ? O = 1.02 : (O = 1, Z = "right")), Yp.coerce(a, o, { x: { valType: "number", editType: "legend", min: z ? -2 : 0, max: z ? 3 : 1, dflt: O } }, "x"), Yp.coerce(a, o, { y: { valType: "number", editType: "legend", min: A ? -2 : 0, max: A ? 3 : 1, dflt: U } }, "y"), s("traceorder", b), LB.isGrouped(r[e]) && s("tracegroupgap"), s("entrywidth"), s("entrywidthmode"), s("indentation"), s("itemsizing"), s("itemwidth"), s("itemclick"), s("itemdoubleclick"), s("groupclick"), s("xanchor", Z), s("yanchor", G), s("maxheight"), s("valign"), Yp.noneOrAll(a, o, ["x", "y"]);
+ var j = s("title.text");
+ if (j) {
+ s("title.side", P ? "left" : "top");
+ var N = Yp.extendFlat({}, l, { size: Yp.bigFont(l.size) });
+ Yp.coerceFont(s, "title.font", N);
+ let H = i > 1;
+ s("titleclick", H ? "toggle" : false), s("titledoubleclick", H ? "toggleothers" : false);
+ }
+ }
+ }
+ sle.exports = function(t, r, n) {
+ var i, a = n.slice(), o = r.shapes;
+ if (o) for (i = 0; i < o.length; i++) {
+ var s = o[i];
+ if (s.showlegend) {
+ var l = { _input: s._input, visible: s.visible, showlegend: s.showlegend, legend: s.legend };
+ a.push(l);
+ }
+ }
+ var u = ["legend"];
+ for (i = 0; i < a.length; i++) Array.isArray(a[i].legend) ? u = u.concat(a[i].legend) : Yp.pushUnique(u, a[i].legend);
+ for (r._legends = [], i = 0; i < u.length; i++) {
+ var c = u[i];
+ Ylt(c, t, r, a, u.length), r[c] && (r[c]._id = c), r._legends.push(c);
+ }
+ };
+ });
+ var DB = ye((RB) => {
+ var p_ = qa(), IB = Dr(), Klt = IB.pushUnique, Jlt = mM(), lle = true;
+ RB.handleItemClick = function(t, r, n, i) {
+ var a = r._fullLayout;
+ if (r._dragged || r._editing) return;
+ var o = t.data()[0][0];
+ if (o.groupTitle && o.noClick) return;
+ var s = n.groupclick;
+ i === "toggle" && n.itemdoubleclick === "toggleothers" && lle && r.data && r._context.showTips && (IB.notifier(IB._(r, "Double-click on legend to isolate one trace"), "long"), lle = false);
+ var l = s === "togglegroup", u = a.hiddenlabels ? a.hiddenlabels.slice() : [], c = r._fullData, f = (a.shapes || []).filter(function(ot) {
+ return ot.showlegend;
+ }), h = c.concat(f), d = o.trace;
+ d._isShape && (d = d._fullInput);
+ var v = d.legendgroup, _, b, p, k, E, T, L = {}, x = [], C = [], M = [];
+ function g(ot, ut) {
+ var Wt = x.indexOf(ot), Nt = L.visible;
+ return Nt || (Nt = L.visible = []), x.indexOf(ot) === -1 && (x.push(ot), Wt = x.length - 1), Nt[Wt] = ut, Wt;
+ }
+ var P = (a.shapes || []).map(function(ot) {
+ return ot._input;
+ }), A = false;
+ function z(ot, ut) {
+ P[ot].visible = ut, A = true;
+ }
+ function O(ot, ut) {
+ if (!(o.groupTitle && !l)) {
+ var Wt = ot._fullInput || ot, Nt = Wt._isShape, $t = Wt.index;
+ $t === void 0 && ($t = Wt._index);
+ var sr = Wt.visible === false ? false : ut;
+ Nt ? z($t, sr) : g($t, sr);
+ }
+ }
+ var U = d.legend, G = d._fullInput, Z = G && G._isShape;
+ if (!Z && p_.traceIs(d, "pie-like")) {
+ var j = o.label, N = u.indexOf(j);
+ if (i === "toggle") N === -1 ? u.push(j) : u.splice(N, 1);
+ else if (i === "toggleothers") {
+ var H = N !== -1, re = [];
+ for (_ = 0; _ < r.calcdata.length; _++) {
+ var oe = r.calcdata[_];
+ for (b = 0; b < oe.length; b++) {
+ var _e = oe[b], Ce = _e.label;
+ U === oe[0].trace.legend && j !== Ce && (u.indexOf(Ce) === -1 && (H = true), Klt(u, Ce), re.push(Ce));
+ }
+ }
+ if (!H) for (var Le = 0; Le < re.length; Le++) {
+ var ge = u.indexOf(re[Le]);
+ ge !== -1 && u.splice(ge, 1);
+ }
+ }
+ p_.call("_guiRelayout", r, "hiddenlabels", u);
+ } else {
+ var ie = v && v.length, Se = [], Ee;
+ if (ie) for (_ = 0; _ < h.length; _++) Ee = h[_], Ee.visible && Ee.legendgroup === v && Se.push(_);
+ if (i === "toggle") {
+ var Ae;
+ switch (d.visible) {
+ case true:
+ Ae = "legendonly";
+ break;
+ case false:
+ Ae = false;
+ break;
+ case "legendonly":
+ Ae = true;
+ break;
+ }
+ if (ie) if (l) for (_ = 0; _ < h.length; _++) {
+ var Be = h[_];
+ Be.visible !== false && Be.legendgroup === v && O(Be, Ae);
+ }
+ else O(d, Ae);
+ else O(d, Ae);
+ } else if (i === "toggleothers") {
+ var Pe, me, De, ce, je, lt = true;
+ for (_ = 0; _ < h.length; _++) if (je = h[_], Pe = je === d, De = je.showlegend !== true, !(Pe || De) && (me = ie && je.legendgroup === v, !me && je.legend === U && je.visible === true && !p_.traceIs(je, "notLegendIsolatable"))) {
+ lt = false;
+ break;
+ }
+ for (_ = 0; _ < h.length; _++) if (je = h[_], !(je.visible === false || je.legend !== U) && !p_.traceIs(je, "notLegendIsolatable")) switch (d.visible) {
+ case "legendonly":
+ O(je, true);
+ break;
+ case true:
+ ce = lt ? true : "legendonly", Pe = je === d, De = je.showlegend !== true && !je.legendgroup, me = Pe || ie && je.legendgroup === v, O(je, me || De ? true : ce);
+ break;
+ }
+ }
+ for (_ = 0; _ < C.length; _++) if (p = C[_], !!p) {
+ var pt = p.constructUpdate(), Vt = Object.keys(pt);
+ for (b = 0; b < Vt.length; b++) k = Vt[b], T = L[k] = L[k] || [], T[M[_]] = pt[k];
+ }
+ for (E = Object.keys(L), _ = 0; _ < E.length; _++) for (k = E[_], b = 0; b < x.length; b++) L[k].hasOwnProperty(b) || (L[k][b] = void 0);
+ A ? p_.call("_guiUpdate", r, L, { shapes: P }, x) : p_.call("_guiRestyle", r, L, x);
+ }
+ };
+ RB.handleTitleClick = function(t, r, n) {
+ let i = t._fullLayout, a = t._fullData, o = Jlt.getId(r), s = (i.shapes || []).filter(function(p) {
+ return p.showlegend;
+ }), l = a.concat(s);
+ function u(p) {
+ return (p.legend || "legend") === o;
+ }
+ var c, f;
+ if (n === "toggle") c = !l.some(function(k) {
+ return u(k) && k.visible === true;
+ }), f = false;
+ else {
+ let p = l.some(function(k) {
+ return !u(k) && k.visible === true && k.showlegend !== false;
+ });
+ c = true, f = !p;
+ }
+ let h = { visible: [] }, d = [], v = (i.shapes || []).map(function(p) {
+ return p._input;
+ });
+ for (var _ = false, b = 0; b < l.length; b++) {
+ let p = l[b], k = u(p);
+ if (!k) {
+ let L = p.showlegend !== true && !p.legendgroup;
+ if (n === "toggle" || L) continue;
+ }
+ let T = (k ? c : f) ? true : "legendonly";
+ p.visible !== false && p.visible !== T && (p._isShape ? (v[p._index].visible = T, _ = true) : (d.push(p.index), h.visible.push(T)));
+ }
+ _ ? p_.call("_guiUpdate", t, h, { shapes: v }, d) : d.length && p_.call("_guiRestyle", t, h, d);
+ };
+ });
+ var FB = ye((_ar, ule) => {
+ ule.exports = { scrollBarWidth: 6, scrollBarMinHeight: 20, scrollBarColor: "#808BA4", scrollBarMargin: 4, scrollBarEnterAttrs: { rx: 20, ry: 3, width: 0, height: 0 }, titlePad: 2, itemGap: 5 };
+ });
+ var hle = ye((xar, fle) => {
+ var cle = qa(), zB = mM();
+ fle.exports = function(t, r, n) {
+ var i = r._inHover, a = zB.isGrouped(r), o = zB.isReversed(r), s = {}, l = [], u = false, c = {}, f = 0, h = 0, d, v;
+ function _(H, re, oe) {
+ if (r.visible !== false && !(n && H !== r._id)) if (re === "" || !zB.isGrouped(r)) {
+ var _e = "~~i" + f;
+ l.push(_e), s[_e] = [oe], f++;
+ } else l.indexOf(re) === -1 ? (l.push(re), u = true, s[re] = [oe]) : s[re].push(oe);
+ }
+ for (d = 0; d < t.length; d++) {
+ var b = t[d], p = b[0], k = p.trace, E = k.legend, T = k.legendgroup;
+ if (!(!i && (!k.visible || !k.showlegend))) if (cle.traceIs(k, "pie-like")) {
+ var L = Array.isArray(k.legend), x = Array.isArray(k.showlegend);
+ for (c[T] || (c[T] = {}), v = 0; v < b.length; v++) if (!(x && k.showlegend[b[v].i] === false)) {
+ L && (E = k.legend[b[v].i] || "legend");
+ var C = b[v].label;
+ c[T][C] || (_(E, T, { label: C, color: b[v].color, i: b[v].i, trace: k, pts: b[v].pts }), c[T][C] = true, h = Math.max(h, (C || "").length));
+ }
+ } else _(E, T, p), h = Math.max(h, (k.name || "").length);
+ }
+ if (!l.length) return [];
+ var M = !u || !a, g = [];
+ for (d = 0; d < l.length; d++) {
+ var P = s[l[d]];
+ M ? g.push(P[0]) : g.push(P);
+ }
+ for (M && (g = [g]), d = 0; d < g.length; d++) {
+ var A = 1 / 0;
+ for (v = 0; v < g[d].length; v++) {
+ var z = g[d][v].trace.legendrank;
+ A > z && (A = z);
+ }
+ g[d][0]._groupMinRank = A, g[d][0]._preGroupSort = d;
+ }
+ var O = function(H, re) {
+ return H[0]._groupMinRank - re[0]._groupMinRank || H[0]._preGroupSort - re[0]._preGroupSort;
+ }, U = function(H, re) {
+ return H.trace.legendrank - re.trace.legendrank || H._preSort - re._preSort;
+ };
+ for (g.forEach(function(H, re) {
+ H[0]._preGroupSort = re;
+ }), g.sort(O), d = 0; d < g.length; d++) {
+ g[d].forEach(function(H, re) {
+ H._preSort = re;
+ }), g[d].sort(U);
+ var G = g[d][0].trace, Z = null;
+ for (v = 0; v < g[d].length; v++) {
+ var j = g[d][v].trace.legendgrouptitle;
+ if (j && j.text) {
+ Z = j, i && (j.font = r._groupTitleFont);
+ break;
+ }
+ }
+ if (o && g[d].reverse(), Z) {
+ var N = false;
+ for (v = 0; v < g[d].length; v++) if (cle.traceIs(g[d][v].trace, "pie-like")) {
+ N = true;
+ break;
+ }
+ g[d].unshift({ i: -1, groupTitle: Z, noClick: N, trace: { showlegend: G.showlegend, legendgroup: G.legendgroup, legend: G.legend, visible: r.groupclick === "toggleitem" ? true : G.visible } });
+ }
+ for (v = 0; v < g[d].length; v++) g[d][v] = [g[d][v]];
+ }
+ return r._lgroupsLength = g.length, r._maxNameLength = h, g;
+ };
+ });
+ var g_ = ye((Ub) => {
+ var GL = Dr();
+ function dle(e) {
+ return e.indexOf("e") !== -1 ? e.replace(/[.]?0+e/, "e") : e.indexOf(".") !== -1 ? e.replace(/[.]?0+$/, "") : e;
+ }
+ Ub.formatPiePercent = function(t, r) {
+ var n = dle((t * 100).toPrecision(3));
+ return GL.numSeparate(n, r) + "%";
+ };
+ Ub.formatPieValue = function(t, r) {
+ var n = dle(t.toPrecision(10));
+ return GL.numSeparate(n, r);
+ };
+ Ub.getFirstFilled = function(t, r) {
+ if (GL.isArrayOrTypedArray(t)) for (var n = 0; n < r.length; n++) {
+ var i = t[r[n]];
+ if (i || i === 0 || i === "") return i;
+ }
+ };
+ Ub.castOption = function(t, r) {
+ if (GL.isArrayOrTypedArray(t)) return Ub.getFirstFilled(t, r);
+ if (t) return t;
+ };
+ Ub.getRotationAngle = function(e) {
+ return (e === "auto" ? 0 : e) * Math.PI / 180;
+ };
+ });
+ var ple = ye((war, vle) => {
+ var $lt = So(), Qlt = ka();
+ vle.exports = function(t, r, n, i) {
+ var a = n.marker.pattern;
+ a && a.shape ? $lt.pointStyle(t, n, i, r) : Qlt.fill(t, r.color);
+ };
+ });
+ var X3 = ye((Tar, yle) => {
+ var gle = ka(), mle = g_().castOption, eut = ple();
+ yle.exports = function(t, r, n, i) {
+ var a = n.marker.line, o = mle(a.color, r.pts) || gle.defaultLine, s = mle(a.width, r.pts) || 0;
+ t.call(eut, r, n, i).style("stroke-width", s).call(gle.stroke, o);
+ };
+ });
+ var NB = ye((Aar, Ale) => {
+ var qv = Oa(), OB = qa(), _v = Dr(), _le = _v.strTranslate, Kp = So(), T0 = ka(), qB = pv().extractOpts, HL = Ru(), tut = X3(), rut = g_().castOption, iut = FB(), xle = 12, ble = 5, Vb = 2, nut = 10, Z3 = 5;
+ Ale.exports = function(t, r, n) {
+ var i = r._fullLayout;
+ n || (n = i.legend);
+ var a = n.itemsizing === "constant", o = n.itemwidth, s = (o + iut.itemGap * 2) / 2, l = _le(s, 0), u = function(C, M, g, P) {
+ var A;
+ if (C + 1) A = C;
+ else if (M && M.width > 0) A = M.width;
+ else return 0;
+ return a ? P : Math.min(A, g);
+ };
+ t.each(function(C) {
+ var M = qv.select(this), g = _v.ensureSingle(M, "g", "layers");
+ g.style("opacity", C[0].trace.opacity);
+ var P = n.indentation, A = n.valign, z = C[0].lineHeight, O = C[0].height;
+ if (A === "middle" && P === 0 || !z || !O) g.attr("transform", null);
+ else {
+ var U = { top: 1, bottom: -1 }[A], G = U * (0.5 * (z - O + 3)) || 0, Z = n.indentation;
+ g.attr("transform", _le(Z, G));
+ }
+ var j = g.selectAll("g.legendfill").data([C]);
+ j.enter().append("g").classed("legendfill", true);
+ var N = g.selectAll("g.legendlines").data([C]);
+ N.enter().append("g").classed("legendlines", true);
+ var H = g.selectAll("g.legendsymbols").data([C]);
+ H.enter().append("g").classed("legendsymbols", true), H.selectAll("g.legendpoints").data([C]).enter().append("g").classed("legendpoints", true);
+ }).each(x).each(h).each(v).each(d).each(b).each(T).each(E).each(c).each(f).each(p).each(k);
+ function c(C) {
+ var M = wle(C), g = M.showFill, P = M.showLine, A = M.showGradientLine, z = M.showGradientFill, O = M.anyFill, U = M.anyLine, G = C[0], Z = G.trace, j, N, H = qB(Z), re = H.colorscale, oe = H.reversescale, _e = function(Ae) {
+ if (Ae.size()) if (g) Kp.fillGroupStyle(Ae, r, true);
+ else {
+ var Be = "legendfill-" + Z.uid;
+ Kp.gradient(Ae, r, Be, BB(oe), re, "fill");
+ }
+ }, Ce = function(Ae) {
+ if (Ae.size()) {
+ var Be = "legendline-" + Z.uid;
+ Kp.lineGroupStyle(Ae), Kp.gradient(Ae, r, Be, BB(oe), re, "stroke");
+ }
+ }, Le = HL.hasMarkers(Z) || !O ? "M5,0" : U ? "M5,-2" : "M5,-3", ge = qv.select(this), ie = ge.select(".legendfill").selectAll("path").data(g || z ? [C] : []);
+ if (ie.enter().append("path").classed("js-fill", true), ie.exit().remove(), ie.attr("d", Le + "h" + o + "v6h-" + o + "z").call(_e), P || A) {
+ var Se = u(void 0, Z.line, nut, ble);
+ N = _v.minExtend(Z, { line: { width: Se } }), j = [_v.minExtend(G, { trace: N })];
+ }
+ var Ee = ge.select(".legendlines").selectAll("path").data(P || A ? [j] : []);
+ Ee.enter().append("path").classed("js-line", true), Ee.exit().remove(), Ee.attr("d", Le + (A ? "l" + o + ",0.0001" : "h" + o)).call(P ? Kp.lineGroupStyle : Ce);
+ }
+ function f(C) {
+ var M = wle(C), g = M.anyFill, P = M.anyLine, A = M.showLine, z = M.showMarker, O = C[0], U = O.trace, G = !z && !P && !g && HL.hasText(U), Z, j;
+ function N(ie, Se, Ee, Ae) {
+ var Be = _v.nestedProperty(U, ie).get(), Pe = _v.isArrayOrTypedArray(Be) && Se ? Se(Be) : Be;
+ if (a && Pe && Ae !== void 0 && (Pe = Ae), Ee) {
+ if (Pe < Ee[0]) return Ee[0];
+ if (Pe > Ee[1]) return Ee[1];
+ }
+ return Pe;
+ }
+ function H(ie) {
+ return O._distinct && O.index && ie[O.index] ? ie[O.index] : ie[0];
+ }
+ if (z || G || A) {
+ var re = {}, oe = {};
+ if (z) {
+ re.mc = N("marker.color", H), re.mx = N("marker.symbol", H), re.mo = N("marker.opacity", _v.mean, [0.2, 1]), re.mlc = N("marker.line.color", H), re.mlw = N("marker.line.width", _v.mean, [0, 5], Vb), re.mld = U._isShape ? "solid" : N("marker.line.dash", H), oe.marker = { sizeref: 1, sizemin: 1, sizemode: "diameter" };
+ var _e = N("marker.size", _v.mean, [2, 16], xle);
+ re.ms = _e, oe.marker.size = _e;
+ }
+ A && (oe.line = { width: N("line.width", H, [0, 10], ble) }), G && (re.tx = "Aa", re.tp = N("textposition", H), re.ts = 10, re.tc = N("textfont.color", H), re.tf = N("textfont.family", H), re.tw = N("textfont.weight", H), re.ty = N("textfont.style", H), re.tv = N("textfont.variant", H), re.tC = N("textfont.textcase", H), re.tE = N("textfont.lineposition", H), re.tS = N("textfont.shadow", H)), Z = [_v.minExtend(O, re)], j = _v.minExtend(U, oe), j.selectedpoints = null, j.texttemplate = null;
+ }
+ var Ce = qv.select(this).select("g.legendpoints"), Le = Ce.selectAll("path.scatterpts").data(z ? Z : []);
+ Le.enter().insert("path", ":first-child").classed("scatterpts", true).attr("transform", l), Le.exit().remove(), Le.call(Kp.pointStyle, j, r), z && (Z[0].mrc = 3);
+ var ge = Ce.selectAll("g.pointtext").data(G ? Z : []);
+ ge.enter().append("g").classed("pointtext", true).append("text").attr("transform", l), ge.exit().remove(), ge.selectAll("text").call(Kp.textPointStyle, j, r);
+ }
+ function h(C) {
+ var M = C[0].trace, g = M.type === "waterfall";
+ if (C[0]._distinct && g) {
+ var P = C[0].trace[C[0].dir].marker;
+ return C[0].mc = P.color, C[0].mlw = P.line.width, C[0].mlc = P.line.color, _(C, this, "waterfall");
+ }
+ var A = [];
+ M.visible && g && (A = C[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 z = qv.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(A);
+ z.enter().append("path").classed("legendwaterfall", true).attr("transform", l).style("stroke-miterlimit", 1), z.exit().remove(), z.each(function(O) {
+ var U = qv.select(this), G = M[O[0]].marker, Z = u(void 0, G.line, Z3, Vb);
+ U.attr("d", O[1]).style("stroke-width", Z + "px").call(T0.fill, G.color), Z && U.call(T0.stroke, G.line.color);
+ });
+ }
+ function d(C) {
+ _(C, this);
+ }
+ function v(C) {
+ _(C, this, "funnel");
+ }
+ function _(C, M, g) {
+ var P = C[0].trace, A = P.marker || {}, z = A.line || {}, O = A.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", U = g ? P.visible && P.type === g : OB.traceIs(P, "bar"), G = qv.select(M).select("g.legendpoints").selectAll("path.legend" + g).data(U ? [C] : []);
+ G.enter().append("path").classed("legend" + g, true).attr("d", O).attr("transform", l), G.exit().remove(), G.each(function(Z) {
+ var j = qv.select(this), N = Z[0], H = u(N.mlw, A.line, Z3, Vb);
+ j.style("stroke-width", H + "px");
+ var re = N.mcc;
+ if (!n._inHover && "mc" in N) {
+ var oe = qB(A), _e = oe.mid;
+ _e === void 0 && (_e = (oe.max + oe.min) / 2), re = Kp.tryColorscale(A, "")(_e);
+ }
+ var Ce = re || N.mc || A.color, Le = A.pattern, ge = Kp.getPatternAttr, ie = Le && (ge(Le.shape, 0, "") || ge(Le.path, 0, ""));
+ if (ie) {
+ var Se = ge(Le.bgcolor, 0, null), Ee = ge(Le.fgcolor, 0, null), Ae = Le.fgopacity, Be = Tle(Le.size, 8, 10), Pe = Tle(Le.solidity, 0.5, 1), me = "legend-" + P.uid;
+ j.call(Kp.pattern, "legend", r, me, ie, Be, Pe, re, Le.fillmode, Se, Ee, Ae);
+ } else j.call(T0.fill, Ce);
+ H && T0.stroke(j, N.mlc || z.color);
+ });
+ }
+ function b(C) {
+ var M = C[0].trace, g = qv.select(this).select("g.legendpoints").selectAll("path.legendbox").data(M.visible && OB.traceIs(M, "box-violin") ? [C] : []);
+ g.enter().append("path").classed("legendbox", true).attr("d", "M6,6H-6V-6H6Z").attr("transform", l), g.exit().remove(), g.each(function() {
+ var P = qv.select(this);
+ if ((M.boxpoints === "all" || M.points === "all") && T0.opacity(M.fillcolor) === 0 && T0.opacity((M.line || {}).color) === 0) {
+ var A = _v.minExtend(M, { marker: { size: a ? xle : _v.constrain(M.marker.size, 2, 16), sizeref: 1, sizemin: 1, sizemode: "diameter" } });
+ g.call(Kp.pointStyle, A, r);
+ } else {
+ var z = u(void 0, M.line, Z3, Vb);
+ P.style("stroke-width", z + "px").call(T0.fill, M.fillcolor), z && T0.stroke(P, M.line.color);
+ }
+ });
+ }
+ function p(C) {
+ var M = C[0].trace, g = qv.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(M.visible && M.type === "candlestick" ? [C, C] : []);
+ g.enter().append("path").classed("legendcandle", true).attr("d", function(P, A) {
+ return A ? "M-15,0H-8M-8,6V-6H8Z" : "M15,0H8M8,-6V6H-8Z";
+ }).attr("transform", l).style("stroke-miterlimit", 1), g.exit().remove(), g.each(function(P, A) {
+ var z = qv.select(this), O = M[A ? "increasing" : "decreasing"], U = u(void 0, O.line, Z3, Vb);
+ z.style("stroke-width", U + "px").call(T0.fill, O.fillcolor), U && T0.stroke(z, O.line.color);
+ });
+ }
+ function k(C) {
+ var M = C[0].trace, g = qv.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(M.visible && M.type === "ohlc" ? [C, C] : []);
+ g.enter().append("path").classed("legendohlc", true).attr("d", function(P, A) {
+ return A ? "M-15,0H0M-8,-6V0" : "M15,0H0M8,6V0";
+ }).attr("transform", l).style("stroke-miterlimit", 1), g.exit().remove(), g.each(function(P, A) {
+ var z = qv.select(this), O = M[A ? "increasing" : "decreasing"], U = u(void 0, O.line, Z3, Vb);
+ z.style("fill", "none").call(Kp.dashLine, O.line.dash, U), U && T0.stroke(z, O.line.color);
+ });
+ }
+ function E(C) {
+ L(C, this, "pie");
+ }
+ function T(C) {
+ L(C, this, "funnelarea");
+ }
+ function L(C, M, g) {
+ var P = C[0], A = P.trace, z = g ? A.visible && A.type === g : OB.traceIs(A, g), O = qv.select(M).select("g.legendpoints").selectAll("path.legend" + g).data(z ? [C] : []);
+ if (O.enter().append("path").classed("legend" + g, true).attr("d", "M6,6H-6V-6H6Z").attr("transform", l), O.exit().remove(), O.size()) {
+ var U = A.marker || {}, G = u(rut(U.line.width, P.pts), U.line, Z3, Vb), Z = "pieLike", j = _v.minExtend(A, { marker: { line: { width: G } } }, Z), N = _v.minExtend(P, { trace: j }, Z);
+ tut(O, N, j, r);
+ }
+ }
+ function x(C) {
+ var M = C[0].trace, g, P = [];
+ if (M.visible) switch (M.type) {
+ case "histogram2d":
+ case "heatmap":
+ P = [["M-15,-2V4H15V-2Z"]], g = true;
+ break;
+ case "choropleth":
+ case "choroplethmapbox":
+ case "choroplethmap":
+ P = [["M-6,-6V6H6V-6Z"]], g = true;
+ break;
+ case "densitymapbox":
+ case "densitymap":
+ P = [["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]], g = "radial";
+ break;
+ case "cone":
+ P = [["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"]], g = false;
+ break;
+ case "streamtube":
+ P = [["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"]], g = false;
+ break;
+ case "surface":
+ P = [["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"]], g = true;
+ break;
+ case "mesh3d":
+ P = [["M-6,6H0L-6,-6Z"], ["M6,6H0L6,-6Z"], ["M-6,-6H6L0,6Z"]], g = false;
+ break;
+ case "volume":
+ P = [["M-6,6H0L-6,-6Z"], ["M6,6H0L6,-6Z"], ["M-6,-6H6L0,6Z"]], g = true;
+ break;
+ case "isosurface":
+ P = [["M-6,6H0L-6,-6Z"], ["M6,6H0L6,-6Z"], ["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]], g = false;
+ break;
+ }
+ var A = qv.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(P);
+ A.enter().append("path").classed("legend3dandfriends", true).attr("transform", l).style("stroke-miterlimit", 1), A.exit().remove(), A.each(function(z, O) {
+ var U = qv.select(this), G = qB(M), Z = G.colorscale, j = G.reversescale, N = function(_e) {
+ if (_e.size()) {
+ var Ce = "legendfill-" + M.uid;
+ Kp.gradient(_e, r, Ce, BB(j, g === "radial"), Z, "fill");
+ }
+ }, H;
+ if (Z) {
+ if (!g) {
+ var oe = Z.length;
+ H = O === 0 ? Z[j ? oe - 1 : 0][1] : O === 1 ? Z[j ? 0 : oe - 1][1] : Z[Math.floor((oe - 1) / 2)][1];
+ }
+ } else {
+ var re = M.vertexcolor || M.facecolor || M.color;
+ H = _v.isArrayOrTypedArray(re) ? re[O] || re[0] : re;
+ }
+ U.attr("d", z[0]), H ? U.call(T0.fill, H) : U.call(N);
+ });
+ }
+ };
+ function BB(e, t) {
+ var r = t ? "radial" : "horizontal";
+ return r + (e ? "" : "reversed");
+ }
+ function wle(e) {
+ var t = e[0].trace, r = t.contours, n = HL.hasLines(t), i = HL.hasMarkers(t), a = t.visible && t.fill && t.fill !== "none", o = false, s = false;
+ if (r) {
+ var l = r.coloring;
+ l === "lines" ? o = true : n = l === "none" || l === "heatmap" || r.showlines, r.type === "constraint" ? a = r._operation !== "=" : (l === "fill" || l === "heatmap") && (s = true);
+ }
+ return { showMarker: i, showLine: n, showFill: a, showGradientLine: o, showGradientFill: s, anyLine: n || o, anyFill: a || s };
+ }
+ function Tle(e, t, r) {
+ return e && _v.isArrayOrTypedArray(e) ? t : e > r ? r : e;
+ }
+ });
+ var HB = ye((Sar, Rle) => {
+ var np = Oa(), vh = Dr(), VB = Mc(), Gb = qa(), XL = k3(), UB = yv(), ph = So(), yM = ka(), Hb = Zl(), Sle = DB().handleItemClick, Mle = DB().handleTitleClick, Oh = FB(), GB = Dh(), Ple = GB.LINE_SPACING, K3 = GB.FROM_TL, Ele = GB.FROM_BR, kle = hle(), aut = NB(), J3 = mM(), Y3 = 1, out = /^legend[0-9]*$/;
+ Rle.exports = function(t, r) {
+ if (r) Cle(t, r);
+ else {
+ var n = t._fullLayout, i = n._legends, a = n._infolayer.selectAll('[class^="legend"]');
+ a.each(function() {
+ var u = np.select(this), c = u.attr("class"), f = c.split(" ")[0];
+ f.match(out) && i.indexOf(f) === -1 && u.remove();
+ });
+ for (var o = 0; o < i.length; o++) {
+ var s = i[o], l = t._fullLayout[s];
+ Cle(t, l);
+ }
+ }
+ };
+ function sut(e, t, r) {
+ if (!(t.title.side !== "top center" && t.title.side !== "top right")) {
+ var n = t.title.font, i = n.size * Ple, a = 0, o = e.node(), s = ph.bBox(o).width;
+ t.title.side === "top center" ? a = 0.5 * (t._width - 2 * r - 2 * Oh.titlePad - s) : t.title.side === "top right" && (a = t._width - 2 * r - 2 * Oh.titlePad - s), Hb.positionText(e, r + Oh.titlePad + a, r + i);
+ }
+ }
+ function Cle(e, t) {
+ var r = t || {}, n = e._fullLayout, i = J3.getId(r), a, o, s = r._inHover;
+ if (s ? (o = r.layer, a = "hover") : (o = n._infolayer, a = i), !!o) {
+ a += n._uid, e._legendMouseDownTime || (e._legendMouseDownTime = 0);
+ var l;
+ if (s) {
+ if (!r.entries) return;
+ l = kle(r.entries, r);
+ } else {
+ for (var u = (e.calcdata || []).slice(), c = n.shapes, f = 0; f < c.length; f++) {
+ var h = c[f];
+ if (h.showlegend) {
+ var d = { _isShape: true, _fullInput: h, index: h._index, name: h.name || h.label.text || "shape " + h._index, legend: h.legend, legendgroup: h.legendgroup, legendgrouptitle: h.legendgrouptitle, legendrank: h.legendrank, legendwidth: h.legendwidth, showlegend: h.showlegend, visible: h.visible, opacity: h.opacity, mode: h.type === "line" ? "lines" : "markers", line: h.line, marker: { line: h.line, color: h.fillcolor, size: 12, symbol: h.type === "rect" ? "square" : h.type === "circle" ? "circle" : "hexagon2" } };
+ u.push([{ trace: d }]);
+ }
+ }
+ l = n.showlegend && kle(u, r, n._legends.length > 1);
+ }
+ var v = n.hiddenlabels || [];
+ if (!s && (!n.showlegend || !l.length)) return o.selectAll("." + i).remove(), n._topdefs.select("#" + a).remove(), VB.autoMargin(e, i);
+ var _ = vh.ensureSingle(o, "g", i, function(M) {
+ s || M.attr("pointer-events", "all");
+ }), b = vh.ensureSingleById(n._topdefs, "clipPath", a, function(M) {
+ M.append("rect");
+ }), p = vh.ensureSingle(_, "rect", "bg", function(M) {
+ M.attr("shape-rendering", "crispEdges");
+ });
+ p.call(yM.stroke, r.bordercolor).call(yM.fill, r.bgcolor).style("stroke-width", r.borderwidth + "px");
+ var k = vh.ensureSingle(_, "g", "scrollbox"), E = r.title;
+ r._titleWidth = 0, r._titleHeight = 0;
+ var T;
+ E.text ? (T = vh.ensureSingle(k, "text", i + "titletext"), T.attr("text-anchor", "start").call(ph.font, E.font).text(E.text), WL(T, k, e, r, Y3), !s && (r.titleclick || r.titledoubleclick) && cut(k, e, r, i)) : (k.selectAll("." + i + "titletext").remove(), k.selectAll("." + i + "titletoggle").remove());
+ var L = vh.ensureSingle(_, "rect", "scrollbar", function(M) {
+ M.attr(Oh.scrollBarEnterAttrs).call(yM.fill, Oh.scrollBarColor);
+ }), x = k.selectAll("g.groups").data(l);
+ x.enter().append("g").attr("class", "groups"), x.exit().remove();
+ var C = x.selectAll("g.traces").data(vh.identity);
+ C.enter().append("g").attr("class", "traces"), C.exit().remove(), C.style("opacity", function(M) {
+ let g = M[0], P = g.trace;
+ if (g.groupTitle) {
+ let A = P.legendgroup, z = (n.shapes || []).filter(function(U) {
+ return U.showlegend;
+ });
+ return e._fullData.concat(z).some(function(U) {
+ return U.legendgroup === A && (U.legend || "legend") === i && U.visible === true;
+ }) ? 1 : 0.5;
+ }
+ return Gb.traceIs(P, "pie-like") ? v.indexOf(M[0].label) !== -1 ? 0.5 : 1 : P.visible === "legendonly" ? 0.5 : 1;
+ }).each(function() {
+ np.select(this).call(lut, e, r);
+ }).call(aut, e, r).each(function(M) {
+ s || M[0].groupTitle && r.groupclick === "toggleitem" || np.select(this).call(uut, e, i);
+ }), vh.syncOrAsync([VB.previousPromises, function() {
+ return dut(e, x, C, r, k);
+ }, function() {
+ var M = n._size, g = r.borderwidth, P = r.xref === "paper", A = r.yref === "paper";
+ if (E.text) {
+ let je = (n.shapes || []).filter(function(pt) {
+ return pt.showlegend;
+ }), lt = e._fullData.concat(je).some(function(pt) {
+ let Vt = pt.legend || "legend";
+ var ot = Array.isArray(Vt) ? Vt.includes(i) : Vt === i;
+ return ot && pt.visible === true;
+ });
+ T.style("opacity", lt ? 1 : 0.5);
+ }
+ if (!s) {
+ var z, O;
+ P ? z = M.l + M.w * r.x - K3[ZL(r)] * r._width : z = n.width * r.x - K3[ZL(r)] * r._width, A ? O = M.t + M.h * (1 - r.y) - K3[YL(r)] * r._effHeight : O = n.height * (1 - r.y) - K3[YL(r)] * r._effHeight;
+ var U = vut(e, i, z, O);
+ if (U) return;
+ if (n.margin.autoexpand) {
+ var G = z, Z = O;
+ z = P ? vh.constrain(z, 0, n.width - r._width) : G, O = A ? vh.constrain(O, 0, n.height - r._effHeight) : Z, z !== G && vh.log("Constrain " + i + ".x to make legend fit inside graph"), O !== Z && vh.log("Constrain " + i + ".y to make legend fit inside graph");
+ }
+ ph.setTranslate(_, z, O);
+ }
+ if (L.on(".drag", null), _.on("wheel", null), s || r._height <= r._maxHeight || e._context.staticPlot) {
+ var j = r._effHeight;
+ s && (j = r._height), p.attr({ width: r._width - g, height: j - g, x: g / 2, y: g / 2 }), ph.setTranslate(k, 0, 0), b.select("rect").attr({ width: r._width - 2 * g, height: j - 2 * g, x: g, y: g }), ph.setClipUrl(k, a, e), ph.setRect(L, 0, 0, 0, 0), delete r._scrollY;
+ } else {
+ var N = Math.max(Oh.scrollBarMinHeight, r._effHeight * r._effHeight / r._height), H = r._effHeight - N - 2 * Oh.scrollBarMargin, re = r._height - r._effHeight, oe = H / re, _e = Math.min(r._scrollY || 0, re);
+ p.attr({ width: r._width - 2 * g + Oh.scrollBarWidth + Oh.scrollBarMargin, height: r._effHeight - g, x: g / 2, y: g / 2 }), b.select("rect").attr({ width: r._width - 2 * g + Oh.scrollBarWidth + Oh.scrollBarMargin, height: r._effHeight - 2 * g, x: g, y: g + _e }), ph.setClipUrl(k, a, e), Be(_e, N, oe), _.on("wheel", function() {
+ _e = vh.constrain(r._scrollY + np.event.deltaY / re * H, 0, re), Be(_e, N, oe), _e !== 0 && _e !== re && np.event.preventDefault();
+ });
+ var Ce, Le, ge, ie = function(je, lt, pt) {
+ var Vt = (pt - lt) / oe + je;
+ return vh.constrain(Vt, 0, re);
+ }, Se = function(je, lt, pt) {
+ var Vt = (lt - pt) / oe + je;
+ return vh.constrain(Vt, 0, re);
+ }, Ee = np.behavior.drag().on("dragstart", function() {
+ var je = np.event.sourceEvent;
+ je.type === "touchstart" ? Ce = je.changedTouches[0].clientY : Ce = je.clientY, ge = _e;
+ }).on("drag", function() {
+ var je = np.event.sourceEvent;
+ je.buttons === 2 || je.ctrlKey || (je.type === "touchmove" ? Le = je.changedTouches[0].clientY : Le = je.clientY, _e = ie(ge, Ce, Le), Be(_e, N, oe));
+ });
+ L.call(Ee);
+ var Ae = np.behavior.drag().on("dragstart", function() {
+ var je = np.event.sourceEvent;
+ je.type === "touchstart" && (Ce = je.changedTouches[0].clientY, ge = _e);
+ }).on("drag", function() {
+ var je = np.event.sourceEvent;
+ je.type === "touchmove" && (Le = je.changedTouches[0].clientY, _e = Se(ge, Ce, Le), Be(_e, N, oe));
+ });
+ k.call(Ae);
+ }
+ function Be(je, lt, pt) {
+ r._scrollY = e._fullLayout[i]._scrollY = je, ph.setTranslate(k, 0, -je), ph.setRect(L, r._width, Oh.scrollBarMargin + je * pt, Oh.scrollBarWidth, lt), b.select("rect").attr("y", g + je);
+ }
+ if (e._context.edits.legendPosition) {
+ var Pe, me, De, ce;
+ _.classed("cursor-move", true), UB.init({ element: _.node(), gd: e, prepFn: function(je) {
+ if (je.target !== L.node()) {
+ var lt = ph.getTranslate(_);
+ De = lt.x, ce = lt.y;
+ }
+ }, moveFn: function(je, lt) {
+ if (De !== void 0 && ce !== void 0) {
+ var pt = De + je, Vt = ce + lt;
+ ph.setTranslate(_, pt, Vt), Pe = UB.align(pt, r._width, M.l, M.l + M.w, r.xanchor), me = UB.align(Vt + r._height, -r._height, M.t + M.h, M.t, r.yanchor);
+ }
+ }, doneFn: function() {
+ if (Pe !== void 0 && me !== void 0) {
+ var je = {};
+ je[i + ".x"] = Pe, je[i + ".y"] = me, Gb.call("_guiRelayout", e, je);
+ }
+ }, clickFn: function(je, lt) {
+ var pt = o.selectAll("g.traces").filter(function() {
+ var Vt = this.getBoundingClientRect();
+ return lt.clientX >= Vt.left && lt.clientX <= Vt.right && lt.clientY >= Vt.top && lt.clientY <= Vt.bottom;
+ });
+ pt.size() > 0 && Ile(e, r, pt, je, lt);
+ } });
+ }
+ }], e);
+ }
+ }
+ function jL(e, t, r) {
+ var n = e[0], i = n.width, a = t.entrywidthmode, o = n.trace.legendwidth || t.entrywidth;
+ return a === "fraction" ? t._maxWidth * o : r + (o || i);
+ }
+ function Ile(e, t, r, n, i) {
+ var a = e._fullLayout, o = r.data()[0][0].trace, s = t.itemclick, l = t.itemdoubleclick, u = { event: i, node: r.node(), curveNumber: o.index, expandedIndex: o.index, data: e.data, layout: e.layout, frames: e._transitionData._frames, config: e._context, fullData: e._fullData, fullLayout: a };
+ o._group && (u.group = o._group), Gb.traceIs(o, "pie-like") && (u.label = r.datum()[0].label);
+ var c = XL.triggerHandler(e, "plotly_legendclick", u);
+ if (n === 1) {
+ if (c === false) return;
+ t._clickTimeout = setTimeout(function() {
+ e._fullLayout && s && Sle(r, e, t, s);
+ }, e._context.doubleClickDelay);
+ } else if (n === 2) {
+ t._clickTimeout && clearTimeout(t._clickTimeout), e._legendMouseDownTime = 0;
+ var f = XL.triggerHandler(e, "plotly_legenddoubleclick", u);
+ f !== false && c !== false && l && Sle(r, e, t, l);
+ }
+ }
+ function lut(e, t, r) {
+ var n = J3.getId(r), i = e.data()[0][0], a = i.trace, o = Gb.traceIs(a, "pie-like"), s = !r._inHover && t._context.edits.legendText && !o, l = r._maxNameLength, u, c;
+ i.groupTitle ? (u = i.groupTitle.text, c = i.groupTitle.font) : (c = r.font, r.entries ? u = i.text : (u = o ? i.label : a.name, a._meta && (u = vh.templateString(u, a._meta))));
+ var f = vh.ensureSingle(e, "text", n + "text");
+ f.attr("text-anchor", "start").call(ph.font, c).text(s ? Lle(u, l) : u);
+ var h = r.indentation + r.itemwidth + Oh.itemGap * 2;
+ Hb.positionText(f, h, 0), s ? f.call(Hb.makeEditable, { gd: t, text: u }).call(WL, e, t, r).on("edit", function(d) {
+ this.text(Lle(d, l)).call(WL, e, t, r);
+ var v = i.trace._fullInput || {}, _ = {};
+ return _.name = d, v._isShape ? Gb.call("_guiRelayout", t, "shapes[" + a.index + "].name", _.name) : Gb.call("_guiRestyle", t, _, a.index);
+ }) : WL(f, e, t, r);
+ }
+ function Lle(e, t) {
+ var r = Math.max(4, t);
+ if (e && e.trim().length >= r / 2) return e;
+ e = e || "";
+ for (var n = r - e.length; n > 0; n--) e += " ";
+ return e;
+ }
+ function uut(e, t, r) {
+ var n = t._context.doubleClickDelay, i, a = 1, o = vh.ensureSingle(e, "rect", r + "toggle", function(s) {
+ t._context.staticPlot || s.style("cursor", "pointer").attr("pointer-events", "all"), s.call(yM.fill, "rgba(0,0,0,0)");
+ });
+ t._context.staticPlot || (o.on("mousedown", function() {
+ i = (/* @__PURE__ */ new Date()).getTime(), i - t._legendMouseDownTime < n ? a += 1 : (a = 1, t._legendMouseDownTime = i);
+ }), o.on("mouseup", function() {
+ if (!(t._dragged || t._editing)) {
+ var s = t._fullLayout[r];
+ (/* @__PURE__ */ new Date()).getTime() - t._legendMouseDownTime > n && (a = Math.max(a - 1, 1)), Ile(t, s, e, a, np.event);
+ }
+ }));
+ }
+ function cut(e, t, r, n) {
+ if (t._fullData.some(function(u) {
+ let c = u.legend || "legend";
+ return (Array.isArray(c) ? c.includes(n) : c === n) && Gb.traceIs(u, "pie-like");
+ })) return;
+ let a = t._context.doubleClickDelay;
+ var o, s = 1;
+ let l = vh.ensureSingle(e, "rect", n + "titletoggle", function(u) {
+ t._context.staticPlot || u.style("cursor", "pointer").attr("pointer-events", "all"), u.call(yM.fill, "rgba(0,0,0,0)");
+ });
+ t._context.staticPlot || (l.on("mousedown", function() {
+ o = (/* @__PURE__ */ new Date()).getTime(), o - t._legendMouseDownTime < a ? s += 1 : (s = 1, t._legendMouseDownTime = o);
+ }), l.on("mouseup", function() {
+ if (t._dragged || t._editing) return;
+ (/* @__PURE__ */ new Date()).getTime() - t._legendMouseDownTime > a && (s = Math.max(s - 1, 1));
+ let u = { event: np.event, legendId: n, data: t.data, layout: t.layout, fullData: t._fullData, fullLayout: t._fullLayout };
+ if (s === 1 && r.titleclick) {
+ if (XL.triggerHandler(t, "plotly_legendtitleclick", u) === false) return;
+ r._titleClickTimeout = setTimeout(function() {
+ t._fullLayout && Mle(t, r, r.titleclick);
+ }, a);
+ } else s === 2 && (r._titleClickTimeout && clearTimeout(r._titleClickTimeout), t._legendMouseDownTime = 0, XL.triggerHandler(t, "plotly_legendtitledoubleclick", u) !== false && r.titledoubleclick && Mle(t, r, r.titledoubleclick));
+ }));
+ }
+ function WL(e, t, r, n, i) {
+ n._inHover && e.attr("data-notex", true), Hb.convertToTspans(e, r, function() {
+ fut(t, r, n, i);
+ });
+ }
+ function fut(e, t, r, n) {
+ var i = e.data()[0][0], a = i && i.trace.showlegend;
+ if (Array.isArray(a) && (a = a[i.i] !== false), !r._inHover && i && !a) {
+ e.remove();
+ return;
+ }
+ var o = e.select("g[class*=math-group]"), s = o.node(), l = J3.getId(r);
+ r || (r = t._fullLayout[l]);
+ var u = r.borderwidth, c;
+ n === Y3 ? c = r.title.font : i.groupTitle ? c = i.groupTitle.font : c = r.font;
+ var f = c.size * Ple, h, d;
+ if (s) {
+ var v = ph.bBox(s);
+ h = v.height, d = v.width, n === Y3 ? ph.setTranslate(o, u, u + h * 0.75) : ph.setTranslate(o, 0, h * 0.25);
+ } else {
+ var _ = "." + l + (n === Y3 ? "title" : "") + "text", b = e.select(_), p = Hb.lineCount(b), k = b.node();
+ if (h = f * p, d = k ? ph.bBox(k).width : 0, n === Y3) r.title.side === "left" && (d += Oh.itemGap * 2), Hb.positionText(b, u + Oh.titlePad, u + f);
+ else {
+ var E = Oh.itemGap * 2 + r.indentation + r.itemwidth;
+ i.groupTitle && (E = Oh.itemGap, d -= r.indentation + r.itemwidth), Hb.positionText(b, E, -f * ((p - 1) / 2 - 0.3));
+ }
+ }
+ n === Y3 ? (r._titleWidth = d, r._titleHeight = h) : (i.lineHeight = f, i.height = Math.max(h, 16) + 3, i.width = d);
+ }
+ function hut(e) {
+ var t = 0, r = 0, n = e.title.side;
+ return n && (n.indexOf("left") !== -1 && (t = e._titleWidth), n.indexOf("top") !== -1 && (r = e._titleHeight)), [t, r];
+ }
+ function dut(e, t, r, n, i) {
+ var a = e._fullLayout, o = J3.getId(n);
+ n || (n = a[o]);
+ var s = a._size, l = J3.isVertical(n), u = J3.isGrouped(n), c = n.entrywidthmode === "fraction", f = n.borderwidth, h = 2 * f, d = Oh.itemGap, v = n.indentation + n.itemwidth + d * 2, _ = 2 * (f + d), b = YL(n), p = n.y < 0 || n.y === 0 && b === "top", k = n.y > 1 || n.y === 1 && b === "bottom", E = n.tracegroupgap, T = {};
+ let { orientation: L, yref: x } = n, { maxheight: C } = n, M = p || k || L !== "v" || x !== "paper";
+ C || (C = M ? 0.5 : 1);
+ let g = M ? a.height : s.h;
+ n._maxHeight = Math.max(C > 1 ? C : C * g, 30);
+ var P = 0;
+ n._width = 0, n._height = 0;
+ var A = hut(n);
+ if (l) r.each(function(je) {
+ var lt = je[0].height;
+ ph.setTranslate(this, f + A[0], f + A[1] + n._height + lt / 2 + d), n._height += lt, n._width = Math.max(n._width, je[0].width);
+ }), P = v + n._width, n._width += d + v + h, n._height += _, u && (t.each(function(je, lt) {
+ ph.setTranslate(this, 0, lt * n.tracegroupgap);
+ }), n._height += (n._lgroupsLength - 1) * n.tracegroupgap);
+ else {
+ var z = ZL(n), O = n.x < 0 || n.x === 0 && z === "right", U = n.x > 1 || n.x === 1 && z === "left", G = k || p, Z = a.width / 2;
+ n._maxWidth = Math.max(O ? G && z === "left" ? s.l + s.w : Z : U ? G && z === "right" ? s.r + s.w : Z : s.w, 2 * v);
+ var j = 0, N = 0;
+ r.each(function(je) {
+ var lt = jL(je, n, v);
+ j = Math.max(j, lt), N += lt;
+ }), P = null;
+ var H = 0;
+ if (u) {
+ var re = 0, oe = 0, _e = 0;
+ t.each(function() {
+ var je = 0, lt = 0;
+ np.select(this).selectAll("g.traces").each(function(Vt) {
+ var ot = jL(Vt, n, v), ut = Vt[0].height;
+ ph.setTranslate(this, A[0], A[1] + f + d + ut / 2 + lt), lt += ut, je = Math.max(je, ot), T[Vt[0].trace.legendgroup] = je;
+ });
+ var pt = je + d;
+ oe > 0 && pt + f + oe > n._maxWidth ? (H = Math.max(H, oe), oe = 0, _e += re + E, re = lt) : re = Math.max(re, lt), ph.setTranslate(this, oe, _e), oe += pt;
+ }), n._width = Math.max(H, oe) + f, n._height = _e + re + _;
+ } else {
+ var Ce = r.size(), Le = N + h + (Ce - 1) * d < n._maxWidth, ge = 0, ie = 0, Se = 0, Ee = 0;
+ r.each(function(je) {
+ var lt = je[0].height, pt = jL(je, n, v), Vt = Le ? pt : j;
+ c || (Vt += d), Vt + f + ie - d >= n._maxWidth && (H = Math.max(H, Ee), ie = 0, Se += ge, n._height += ge, ge = 0), ph.setTranslate(this, A[0] + f + ie, A[1] + f + Se + lt / 2 + d), Ee = ie + pt + d, ie += Vt, ge = Math.max(ge, lt);
+ }), Le ? (n._width = ie + h, n._height = ge + _) : (n._width = Math.max(H, Ee) + h, n._height += ge + _);
+ }
+ }
+ n._width = Math.ceil(Math.max(n._width + A[0], n._titleWidth + 2 * (f + Oh.titlePad))), n._height = Math.ceil(Math.max(n._height + A[1], n._titleHeight + 2 * (f + Oh.itemGap))), n._effHeight = Math.min(n._height, n._maxHeight);
+ var Ae = e._context.edits, Be = Ae.legendText || Ae.legendPosition;
+ r.each(function(je) {
+ var lt = np.select(this).select("." + o + "toggle"), pt = je[0].height, Vt = je[0].trace.legendgroup, ot = jL(je, n, v);
+ u && Vt !== "" && (ot = T[Vt]);
+ var ut = Be ? v : P || ot;
+ !l && !c && (ut += d / 2), ph.setRect(lt, 0, -pt / 2, ut, pt);
+ });
+ var Pe = i.select("." + o + "titletext");
+ Pe.node() && sut(Pe, n, f);
+ var me = i.select("." + o + "titletoggle");
+ if (me.size() && Pe.node()) {
+ var De = Pe.attr("x") || 0, ce = Oh.titlePad;
+ ph.setRect(me, De - ce, f, n._titleWidth + 2 * ce, n._titleHeight + 2 * ce);
+ }
+ }
+ function vut(e, t, r, n) {
+ var i = e._fullLayout, a = i[t], o = ZL(a), s = YL(a), l = a.xref === "paper", u = a.yref === "paper";
+ e._fullLayout._reservedMargin[t] = {};
+ var c = a.y < 0.5 ? "b" : "t", f = a.x < 0.5 ? "l" : "r", h = { r: i.width - r, l: r + a._width, b: i.height - n, t: n + a._effHeight };
+ if (l && u) return VB.autoMargin(e, t, { x: a.x, y: a.y, l: a._width * K3[o], r: a._width * Ele[o], b: a._effHeight * Ele[s], t: a._effHeight * K3[s] });
+ l ? e._fullLayout._reservedMargin[t][c] = h[c] : u || a.orientation === "v" ? e._fullLayout._reservedMargin[t][f] = h[f] : e._fullLayout._reservedMargin[t][c] = h[c];
+ }
+ function ZL(e) {
+ return vh.isRightAnchor(e) ? "right" : vh.isCenterAnchor(e) ? "center" : "left";
+ }
+ function YL(e) {
+ return vh.isBottomAnchor(e) ? "bottom" : vh.isMiddleAnchor(e) ? "middle" : "top";
+ }
+ });
+ var ZB = ye((XB) => {
+ var jb = Oa(), Py = Eo(), Dle = fd(), zf = Dr(), put = zf.pushUnique, jB = zf.strTranslate, gut = zf.strRotate, mut = k3(), A0 = Zl(), yut = ale(), Am = So(), vd = ka(), KL = yv(), Sm = ho(), _ut = Rh().zindexSeparator, Q3 = qa(), kg = ip(), Wb = NS(), xut = PB(), but = HB(), Vle = Wb.YANGLE, WB = Math.PI * Vle / 180, wut = 1 / Math.sin(WB), Tut = Math.cos(WB), Aut = Math.sin(WB), Qc = Wb.HOVERARROWSIZE, sl = Wb.HOVERTEXTPAD, Fle = { box: true, ohlc: true, violin: true, candlestick: true }, Sut = { scatter: true, scattergl: true, splom: true };
+ function zle(e, t) {
+ return e.distance - t.distance;
+ }
+ XB.hover = function(t, r, n, i) {
+ t = zf.getGraphDiv(t);
+ var a = r.target;
+ zf.throttle(t._fullLayout._uid + Wb.HOVERID, Wb.HOVERMINTIME, function() {
+ Mut(t, r, n, i, a);
+ });
+ };
+ XB.loneHover = function(t, r) {
+ var n = true;
+ Array.isArray(t) || (n = false, t = [t]);
+ var i = r.gd, a = Xle(i), o = Zle(i), s = t.map(function(b) {
+ var p = b._x0 || b.x0 || b.x || 0, k = b._x1 || b.x1 || b.x || 0, E = b._y0 || b.y0 || b.y || 0, T = b._y1 || b.y1 || b.y || 0, L = b.eventData;
+ if (L) {
+ var x = Math.min(p, k), C = Math.max(p, k), M = Math.min(E, T), g = Math.max(E, T), P = b.trace;
+ if (Q3.traceIs(P, "gl3d")) {
+ var A = i._fullLayout[P.scene]._scene.container, z = A.offsetLeft, O = A.offsetTop;
+ x += z, C += z, M += O, g += O;
+ }
+ L.bbox = { x0: x + o, x1: C + o, y0: M + a, y1: g + a }, r.inOut_bbox && r.inOut_bbox.push(L.bbox);
+ } else L = false;
+ return { color: b.color || vd.defaultLine, x0: b.x0 || b.x || 0, x1: b.x1 || b.x || 0, y0: b.y0 || b.y || 0, y1: b.y1 || b.y || 0, xLabel: b.xLabel, yLabel: b.yLabel, zLabel: b.zLabel, text: b.text, name: b.name, idealAlign: b.idealAlign, borderColor: b.borderColor, fontFamily: b.fontFamily, fontSize: b.fontSize, fontColor: b.fontColor, fontWeight: b.fontWeight, fontStyle: b.fontStyle, fontVariant: b.fontVariant, nameLength: b.nameLength, textAlign: b.textAlign, trace: b.trace || { index: 0, hoverinfo: "" }, xa: { _offset: 0 }, ya: { _offset: 0 }, index: 0, hovertemplate: b.hovertemplate || false, hovertemplateLabels: b.hovertemplateLabels || false, eventData: L };
+ }), l = false, u = Hle(s, { gd: i, hovermode: "closest", rotateLabels: l, bgColor: r.bgColor || vd.background, container: jb.select(r.container), outerContainer: r.outerContainer || r.container }), c = u.hoverLabels, f = 5, h = 0, d = 0;
+ c.sort(function(b, p) {
+ return b.y0 - p.y0;
+ }).each(function(b, p) {
+ var k = b.y0 - b.by / 2;
+ k - f < h ? b.offset = h - k + f : b.offset = 0, h = k + b.by + b.offset, p === r.anchorIndex && (d = b.offset);
+ }).each(function(b) {
+ b.offset -= d;
+ });
+ var v = i._fullLayout._invScaleX, _ = i._fullLayout._invScaleY;
+ return Wle(c, l, v, _), n ? c : c.node();
+ };
+ function Mut(e, t, r, n, i) {
+ r || (r = "xy"), typeof r == "string" && (r = r.split(_ut)[0]);
+ var a = Array.isArray(r) ? r : [r], o, s = e._fullLayout, l = s.hoversubplots, u = s._plots || [], c = u[r], f = s._has("cartesian"), h = t.hovermode || s.hovermode, d = (h || "").charAt(0) === "x", v = (h || "").charAt(0) === "y", _, b;
+ if (f && (d || v) && l === "axis") {
+ for (var p = a.length, k = 0; k < p; k++) if (o = a[k], u[o]) {
+ _ = Sm.getFromId(e, o, "x"), b = Sm.getFromId(e, o, "y");
+ var E = (d ? _ : b)._subplotsWith;
+ if (E && E.length) for (var T = 0; T < E.length; T++) put(a, E[T]);
+ }
+ }
+ if (c && l !== "single") {
+ var L = c.overlays.map(function(wi) {
+ return wi.id;
+ });
+ a = a.concat(L);
+ }
+ for (var x = a.length, C = new Array(x), M = new Array(x), g = false, P = 0; P < x; P++) if (o = a[P], u[o]) g = true, C[P] = u[o].xaxis, M[P] = u[o].yaxis;
+ else if (s[o] && s[o]._subplot) {
+ var A = s[o]._subplot;
+ C[P] = A.xaxis, M[P] = A.yaxis;
+ } else {
+ zf.warn("Unrecognized subplot: " + o);
+ return;
+ }
+ if (h && !g && (h = "closest"), ["x", "y", "closest", "x unified", "y unified"].indexOf(h) === -1 || !e.calcdata || e.querySelector(".zoombox") || e._dragging) return KL.unhoverRaw(e, t);
+ var z = s.hoverdistance;
+ z === -1 && (z = 1 / 0);
+ var O = s.spikedistance;
+ O === -1 && (O = 1 / 0);
+ var U = [], G = [], Z, j, N, H, re, oe, _e, Ce, Le, ge, ie, Se, Ee, Ae = { hLinePoint: null, vLinePoint: null }, Be = false;
+ if (Array.isArray(t)) for (h = "array", N = 0; N < t.length; N++) re = e.calcdata[t[N].curveNumber || 0], re && (oe = re[0].trace, re[0].trace.hoverinfo !== "skip" && (G.push(re), oe.orientation === "h" && (Be = true)));
+ else {
+ var Pe = e.calcdata.slice();
+ for (Pe.sort(function(wi, On) {
+ var qn = wi[0].trace.zorder || 0, Fn = On[0].trace.zorder || 0;
+ return qn - Fn;
+ }), H = 0; H < Pe.length; H++) re = Pe[H], oe = re[0].trace, oe.hoverinfo !== "skip" && kg.isTraceInSubplots(oe, a) && (G.push(re), oe.orientation === "h" && (Be = true));
+ var me = !i, De, ce;
+ if (me) "xpx" in t ? De = t.xpx : De = C[0]._length / 2, "ypx" in t ? ce = t.ypx : ce = M[0]._length / 2;
+ else {
+ if (mut.triggerHandler(e, "plotly_beforehover", t) === false) return;
+ var je = i.getBoundingClientRect();
+ De = t.clientX - je.left, ce = t.clientY - je.top, s._calcInverseTransform(e);
+ var lt = zf.apply3DTransform(s._invTransform)(De, ce);
+ if (De = lt[0], ce = lt[1], De < 0 || De > C[0]._length || ce < 0 || ce > M[0]._length) return KL.unhoverRaw(e, t);
+ }
+ if (t.pointerX = De + C[0]._offset, t.pointerY = ce + M[0]._offset, "xval" in t ? Z = kg.flat(a, t.xval) : Z = kg.p2c(C, De), "yval" in t ? j = kg.flat(a, t.yval) : j = kg.p2c(M, ce), !Py(Z[0]) || !Py(j[0])) return zf.warn("Fx.hover failed", t, e), KL.unhoverRaw(e, t);
+ }
+ var pt = 1 / 0;
+ function Vt(wi, On) {
+ for (H = 0; H < G.length; H++) if (re = G[H], !(!re || !re[0] || !re[0].trace) && (oe = re[0].trace, !(oe.visible !== true || oe._length === 0) && ["carpet", "contourcarpet"].indexOf(oe._module.name) === -1)) {
+ if (Le = h, kg.isUnifiedHover(Le) && (Le = Le.charAt(0)), oe.type === "splom" ? (Ce = 0, _e = a[Ce]) : (_e = kg.getSubplot(oe), Ce = a.indexOf(_e)), Se = { cd: re, trace: oe, xa: C[Ce], ya: M[Ce], maxHoverDistance: z, maxSpikeDistance: O, index: false, distance: Math.min(pt, z), spikeDistance: 1 / 0, xSpike: void 0, ySpike: void 0, color: vd.defaultLine, name: oe.name, x0: void 0, x1: void 0, y0: void 0, y1: void 0, xLabelVal: void 0, yLabelVal: void 0, zLabelVal: void 0, text: void 0 }, s[_e] && (Se.subplot = s[_e]._subplot), s._splomScenes && s._splomScenes[oe.uid] && (Se.scene = s._splomScenes[oe.uid]), Le === "array") {
+ var qn = t[H];
+ "pointNumber" in qn ? (Se.index = qn.pointNumber, Le = "closest") : (Le = "", "xval" in qn && (ge = qn.xval, Le = "x"), "yval" in qn && (ie = qn.yval, Le = Le ? "closest" : "y"));
+ } else wi !== void 0 && On !== void 0 ? (ge = wi, ie = On) : (ge = Z[Ce], ie = j[Ce]);
+ if (Ee = U.length, z !== 0) if (oe._module && oe._module.hoverPoints) {
+ var Fn = oe._module.hoverPoints(Se, ge, ie, Le, { finiteRange: true, hoverLayer: s._hoverlayer, hoversubplots: l, gd: e });
+ if (Fn) for (var ra, la = 0; la < Fn.length; la++) ra = Fn[la], Py(ra.x0) && Py(ra.y0) && U.push(Lut(ra, h));
+ } else zf.log("Unrecognized trace type in hover:", oe);
+ if (h === "closest" && U.length > Ee && (U.splice(0, Ee), pt = U[0].distance), f && O !== 0 && U.length === 0) {
+ Se.distance = O, Se.index = false;
+ var Ut = oe._module.hoverPoints(Se, ge, ie, "closest", { hoverLayer: s._hoverlayer });
+ if (Ut && (Ut = Ut.filter(function(ri) {
+ return ri.spikeDistance <= O;
+ })), Ut && Ut.length) {
+ var wt, rr = Ut.filter(function(ri) {
+ return ri.xa.showspikes && ri.xa.spikesnap !== "hovered data";
+ });
+ if (rr.length) {
+ var nr = rr[0];
+ Py(nr.x0) && Py(nr.y0) && (wt = ut(nr), (!Ae.vLinePoint || Ae.vLinePoint.spikeDistance > wt.spikeDistance) && (Ae.vLinePoint = wt));
+ }
+ var Er = Ut.filter(function(ri) {
+ return ri.ya.showspikes && ri.ya.spikesnap !== "hovered data";
+ });
+ if (Er.length) {
+ var Xr = Er[0];
+ Py(Xr.x0) && Py(Xr.y0) && (wt = ut(Xr), (!Ae.hLinePoint || Ae.hLinePoint.spikeDistance > wt.spikeDistance) && (Ae.hLinePoint = wt));
+ }
+ }
+ }
+ }
+ }
+ Vt();
+ function ot(wi, On, qn) {
+ for (var Fn = null, ra = 1 / 0, la, Ut = 0; Ut < wi.length; Ut++) _ && _._id !== wi[Ut].xa._id || b && b._id !== wi[Ut].ya._id || (la = wi[Ut].spikeDistance, qn && Ut === 0 && (la = -1 / 0), la <= ra && la <= On && (Fn = wi[Ut], ra = la));
+ return Fn;
+ }
+ function ut(wi) {
+ return wi ? { xa: wi.xa, ya: wi.ya, x: wi.xSpike !== void 0 ? wi.xSpike : (wi.x0 + wi.x1) / 2, y: wi.ySpike !== void 0 ? wi.ySpike : (wi.y0 + wi.y1) / 2, distance: wi.distance, spikeDistance: wi.spikeDistance, curveNumber: wi.trace.index, color: wi.color, pointNumber: wi.index } : null;
+ }
+ var Wt = { fullLayout: s, container: s._hoverlayer, event: t };
+ e._spikepoints;
+ var $t = { vLinePoint: Ae.vLinePoint, hLinePoint: Ae.hLinePoint };
+ e._spikepoints = $t;
+ var sr = function() {
+ var wi = U.filter(function(qn) {
+ return _ && _._id === qn.xa._id && b && b._id === qn.ya._id;
+ }), On = U.filter(function(qn) {
+ return !(_ && _._id === qn.xa._id && b && b._id === qn.ya._id);
+ });
+ wi.sort(zle), On.sort(zle), U = wi.concat(On), U = Iut(U, h);
+ };
+ sr();
+ var Tr = h.charAt(0), fr = (Tr === "x" || Tr === "y") && U[0] && Sut[U[0].trace.type];
+ if (f && O !== 0 && U.length !== 0) {
+ var $e = U.filter(function(wi) {
+ return wi.ya.showspikes;
+ }), St = ot($e, O, fr);
+ Ae.hLinePoint = ut(St);
+ var Qt = U.filter(function(wi) {
+ return wi.xa.showspikes;
+ }), Gt = ot(Qt, O, fr);
+ Ae.vLinePoint = ut(Gt);
+ }
+ if (U.length === 0) {
+ var _t = KL.unhoverRaw(e, t);
+ return f && (Ae.hLinePoint !== null || Ae.vLinePoint !== null) && Ble() && qle(e, Ae, Wt), _t;
+ }
+ if (f && Ble() && qle(e, Ae, Wt), kg.isXYhover(Le) && U[0].length !== 0 && U[0].trace.type !== "splom") {
+ var It = U[0];
+ Fle[It.trace.type] ? U = U.filter((wi) => wi.trace.index === It.trace.index) : U = [It];
+ var mt = U.length, er = Ule("x", It, s), lr = Ule("y", It, s);
+ Vt(er, lr);
+ var wr = [], Lr = {}, ti = 0, Br = function(wi) {
+ var On = Fle[wi.trace.type] ? Gle(wi) : wi.trace.index;
+ if (!Lr[On]) ti++, Lr[On] = ti, wr.push(wi);
+ else {
+ var qn = Lr[On] - 1, Fn = wr[qn];
+ qn > 0 && Math.abs(wi.distance) < Math.abs(Fn.distance) && (wr[qn] = wi);
+ }
+ }, Vr;
+ for (Vr = 0; Vr < mt; Vr++) Br(U[Vr]);
+ for (Vr = U.length - 1; Vr > mt - 1; Vr--) Br(U[Vr]);
+ U = wr, sr();
+ }
+ var dt = e._hoverdata, Ge = [], Je = Xle(e), We = Zle(e);
+ for (let wi of U) {
+ var tt = kg.makeEventData(wi, wi.trace, wi.cd);
+ if (wi.hovertemplate !== false) {
+ var xt = false;
+ wi.cd[wi.index] && wi.cd[wi.index].ht && (xt = wi.cd[wi.index].ht), wi.hovertemplate = xt || wi.trace.hovertemplate || false;
+ }
+ if (wi.xa && wi.ya) {
+ var Ie = wi.x0 + wi.xa._offset, xe = wi.x1 + wi.xa._offset, ke = wi.y0 + wi.ya._offset, vt = wi.y1 + wi.ya._offset, ir = Math.min(Ie, xe), ar = Math.max(Ie, xe), vr = Math.min(ke, vt), ii = Math.max(ke, vt);
+ tt.bbox = { x0: ir + We, x1: ar + We, y0: vr + Je, y1: ii + Je };
+ }
+ wi.eventData = [tt], Ge.push(tt);
+ }
+ e._hoverdata = Ge;
+ var pi = h === "y" && (G.length > 1 || U.length > 1) || h === "closest" && Be && U.length > 1, $r = vd.combine(s.plot_bgcolor || vd.background, s.paper_bgcolor), di = Hle(U, { gd: e, hovermode: h, rotateLabels: pi, bgColor: $r, container: s._hoverlayer, outerContainer: s._paper.node(), commonLabelOpts: s.hoverlabel, hoverdistance: s.hoverdistance }), ji = di.hoverLabels;
+ if (kg.isUnifiedHover(h) || (kut(ji, pi, s, di.commonLabelBoundingBox), Wle(ji, pi, s._invScaleX, s._invScaleY)), i && i.tagName) {
+ var In = Q3.getComponentMethod("annotations", "hasClickToShow")(e, Ge);
+ yut(jb.select(i), In ? "pointer" : "");
+ }
+ !i || n || !Put(e, t, dt) || (dt && e.emit("plotly_unhover", { event: t, points: dt }), e.emit("plotly_hover", { event: t, points: e._hoverdata, xaxes: C, yaxes: M, xvals: Z, yvals: j }));
+ }
+ function Gle(e) {
+ return [e.trace.index, e.index, e.x0, e.y0, e.name, e.attr, e.xa ? e.xa._id : "", e.ya ? e.ya._id : ""].join(",");
+ }
+ var Eut = /([\s\S]*)<\/extra>/;
+ function Hle(e, t) {
+ var r = t.gd, n = r._fullLayout, i = t.hovermode, a = t.rotateLabels, o = t.bgColor, s = t.container, l = t.outerContainer, u = t.commonLabelOpts || {};
+ if (e.length === 0) return [[]];
+ var c = t.fontFamily || Wb.HOVERFONT, f = t.fontSize || Wb.HOVERFONTSIZE, h = t.fontWeight || n.font.weight, d = t.fontStyle || n.font.style, v = t.fontVariant || n.font.variant, _ = t.fontTextcase || n.font.textcase, b = t.fontLineposition || n.font.lineposition, p = t.fontShadow || n.font.shadow, k = e[0], E = k.xa, T = k.ya, L = i.charAt(0), x = L + "Label", C = k[x];
+ if (C === void 0 && E.type === "multicategory") for (var M = 0; M < e.length && (C = e[M][x], C === void 0); M++) ;
+ var g = $3(r, l), P = g.top, A = g.width, z = g.height, O = C !== void 0 && k.distance <= t.hoverdistance && (i === "x" || i === "y");
+ if (O) {
+ var U = true, G, Z;
+ for (G = 0; G < e.length; G++) if (U && e[G].zLabel === void 0 && (U = false), Z = e[G].hoverinfo || e[G].trace.hoverinfo, Z) {
+ var j = Array.isArray(Z) ? Z : Z.split("+");
+ if (j.indexOf("all") === -1 && j.indexOf(i) === -1) {
+ O = false;
+ break;
+ }
+ }
+ U && (O = false);
+ }
+ var N = s.selectAll("g.axistext").data(O ? [0] : []);
+ N.enter().append("g").classed("axistext", true), N.exit().remove();
+ var H = { minX: 0, maxX: 0, minY: 0, maxY: 0 };
+ if (N.each(function() {
+ var _t = jb.select(this), It = zf.ensureSingle(_t, "path", "", function(ii) {
+ ii.style({ "stroke-width": "1px" });
+ }), mt = zf.ensureSingle(_t, "text", "", function(ii) {
+ ii.attr("data-notex", 1);
+ }), er = u.bgcolor || vd.defaultLine, lr = u.bordercolor || vd.contrast(er), wr = vd.contrast(er), Lr = u.font, ti = { weight: Lr.weight || h, style: Lr.style || d, variant: Lr.variant || v, textcase: Lr.textcase || _, lineposition: Lr.lineposition || b, shadow: Lr.shadow || p, family: Lr.family || c, size: Lr.size || f, color: Lr.color || wr };
+ It.style({ fill: er, stroke: lr }), mt.text(C).call(Am.font, ti).call(A0.positionText, 0, 0).call(A0.convertToTspans, r), _t.attr("transform", "");
+ var Br = $3(r, mt.node()), Vr, dt;
+ if (i === "x") {
+ var Ge = E.side === "top" ? "-" : "";
+ mt.attr("text-anchor", "middle").call(A0.positionText, 0, E.side === "top" ? P - Br.bottom - Qc - sl : P - Br.top + Qc + sl), Vr = E._offset + (k.x0 + k.x1) / 2, dt = T._offset + (E.side === "top" ? 0 : T._length);
+ var Je = Br.width / 2 + sl, We = Vr;
+ Vr < Je ? We = Je : Vr > n.width - Je && (We = n.width - Je), It.attr("d", "M" + (Vr - We) + ",0L" + (Vr - We + Qc) + "," + Ge + Qc + "H" + Je + "v" + Ge + (sl * 2 + Br.height) + "H" + -Je + "V" + Ge + Qc + "H" + (Vr - We - Qc) + "Z"), Vr = We, H.minX = Vr - Je, H.maxX = Vr + Je, E.side === "top" ? (H.minY = dt - (sl * 2 + Br.height), H.maxY = dt - sl) : (H.minY = dt + sl, H.maxY = dt + (sl * 2 + Br.height));
+ } else {
+ var tt, xt, Ie;
+ T.side === "right" ? (tt = "start", xt = 1, Ie = "", Vr = E._offset + E._length) : (tt = "end", xt = -1, Ie = "-", Vr = E._offset), dt = T._offset + (k.y0 + k.y1) / 2, mt.attr("text-anchor", tt), It.attr("d", "M0,0L" + Ie + Qc + "," + Qc + "V" + (sl + Br.height / 2) + "h" + Ie + (sl * 2 + Br.width) + "V-" + (sl + Br.height / 2) + "H" + Ie + Qc + "V-" + Qc + "Z"), H.minY = dt - (sl + Br.height / 2), H.maxY = dt + (sl + Br.height / 2), T.side === "right" ? (H.minX = Vr + Qc, H.maxX = Vr + Qc + (sl * 2 + Br.width)) : (H.minX = Vr - Qc - (sl * 2 + Br.width), H.maxX = Vr - Qc);
+ var xe = Br.height / 2, ke = P - Br.top - xe, vt = "clip" + n._uid + "commonlabel" + T._id, ir;
+ if (Vr < Br.width + 2 * sl + Qc) {
+ ir = "M-" + (Qc + sl) + "-" + xe + "h-" + (Br.width - sl) + "V" + xe + "h" + (Br.width - sl) + "Z";
+ var ar = Br.width - Vr + sl;
+ A0.positionText(mt, ar, ke), tt === "end" && mt.selectAll("tspan").each(function() {
+ var ii = jb.select(this), pi = Am.tester.append("text").text(ii.text()).call(Am.font, ti), $r = $3(r, pi.node());
+ Math.round($r.width) < Math.round(Br.width) && ii.attr("x", ar - $r.width), pi.remove();
+ });
+ } else A0.positionText(mt, xt * (sl + Qc), ke), ir = null;
+ var vr = n._topclips.selectAll("#" + vt).data(ir ? [0] : []);
+ vr.enter().append("clipPath").attr("id", vt).append("path"), vr.exit().remove(), vr.select("path").attr("d", ir), Am.setClipUrl(mt, ir ? vt : null, r);
+ }
+ _t.attr("transform", jB(Vr, dt));
+ }), kg.isUnifiedHover(i)) {
+ s.selectAll("g.hovertext").remove();
+ let _t = e.filter((It) => It.hoverinfo !== "none");
+ if (_t.length === 0) return [];
+ var re = n.hoverlabel, oe = re.font, _e = _t[0], Ce = ((i === "x unified" ? _e.xa : _e.ya).unifiedhovertitle || {}).text, Le = Ce ? zf.hovertemplateString({ data: i === "x unified" ? [{ xa: _e.xa, x: _e.xVal }] : [{ ya: _e.ya, y: _e.yVal }], fallback: _e.trace.hovertemplatefallback, locale: n._d3locale, template: Ce }) : C, ge = { showlegend: true, legend: { title: { text: Le, font: oe }, font: oe, bgcolor: re.bgcolor, bordercolor: re.bordercolor, borderwidth: 1, tracegroupgap: 7, traceorder: n.legend ? n.legend.traceorder : void 0, orientation: "v" } }, ie = { font: oe };
+ xut(ge, ie, r._fullData);
+ var Se = ie.legend;
+ Se.entries = [];
+ for (var Ee = 0; Ee < _t.length; Ee++) {
+ var Ae = _t[Ee];
+ if (Ae.hoverinfo !== "none") {
+ var Be = Ole(Ae, true, i, n, C), Pe = Be[0], me = Be[1];
+ Ae.name = me, me !== "" ? Ae.text = me + " : " + Pe : Ae.text = Pe;
+ var De = Ae.cd[Ae.index];
+ De && (De.mc && (Ae.mc = De.mc), De.mcc && (Ae.mc = De.mcc), De.mlc && (Ae.mlc = De.mlc), De.mlcc && (Ae.mlc = De.mlcc), De.mlw && (Ae.mlw = De.mlw), De.mrc && (Ae.mrc = De.mrc), De.dir && (Ae.dir = De.dir)), Ae._distinct = true, Se.entries.push([Ae]);
+ }
+ }
+ Se.entries.sort(function(It, mt) {
+ return It[0].trace.index - mt[0].trace.index;
+ }), Se.layer = s, Se._inHover = true, Se._groupTitleFont = re.grouptitlefont, but(r, Se);
+ var ce = s.select("g.legend"), je = $3(r, ce.node()), lt = je.width + 2 * sl, pt = je.height + 2 * sl, Vt = _t[0], ot = (Vt.x0 + Vt.x1) / 2, ut = (Vt.y0 + Vt.y1) / 2, Wt = !(Q3.traceIs(Vt.trace, "bar-like") || Q3.traceIs(Vt.trace, "box-violin")), Nt, $t;
+ L === "y" ? Wt ? ($t = ut - sl, Nt = ut + sl) : ($t = Math.min.apply(null, _t.map(function(It) {
+ return Math.min(It.y0, It.y1);
+ })), Nt = Math.max.apply(null, _t.map(function(It) {
+ return Math.max(It.y0, It.y1);
+ }))) : $t = Nt = zf.mean(_t.map(function(It) {
+ return (It.y0 + It.y1) / 2;
+ })) - pt / 2;
+ var sr, Tr;
+ L === "x" ? Wt ? (sr = ot + sl, Tr = ot - sl) : (sr = Math.max.apply(null, _t.map(function(It) {
+ return Math.max(It.x0, It.x1);
+ })), Tr = Math.min.apply(null, _t.map(function(It) {
+ return Math.min(It.x0, It.x1);
+ }))) : sr = Tr = zf.mean(_t.map(function(It) {
+ return (It.x0 + It.x1) / 2;
+ })) - lt / 2;
+ var fr = E._offset, $e = T._offset;
+ Nt += $e, sr += fr, Tr += fr - lt, $t += $e - pt;
+ var St, Qt;
+ return sr + lt < A && sr >= 0 ? St = sr : Tr + lt < A && Tr >= 0 ? St = Tr : fr + lt < A ? St = fr : sr - ot < ot - Tr + lt ? St = A - lt : St = 0, St += sl, Nt + pt < z && Nt >= 0 ? Qt = Nt : $t + pt < z && $t >= 0 ? Qt = $t : $e + pt < z ? Qt = $e : Nt - ut < ut - $t + pt ? Qt = z - pt : Qt = 0, Qt += sl, ce.attr("transform", jB(St - 1, Qt - 1)), ce;
+ }
+ var Gt = s.selectAll("g.hovertext").data(e, function(_t) {
+ return Gle(_t);
+ });
+ return Gt.enter().append("g").classed("hovertext", true).each(function() {
+ var _t = jb.select(this);
+ _t.append("rect").call(vd.fill, vd.addOpacity(o, 0.8)), _t.append("text").classed("name", true), _t.append("path").style("stroke-width", "1px"), _t.append("text").classed("nums", true).call(Am.font, { weight: h, style: d, variant: v, textcase: _, lineposition: b, shadow: p, family: c, size: f });
+ }), Gt.exit().remove(), Gt.each(function(_t) {
+ var It = jb.select(this).attr("transform", ""), mt = _t.color;
+ Array.isArray(mt) && (mt = mt[_t.eventData[0].pointNumber]);
+ var er = _t.bgcolor || mt, lr = vd.combine(vd.opacity(er) ? er : vd.defaultLine, o), wr = vd.combine(vd.opacity(mt) ? mt : vd.defaultLine, o), Lr = _t.borderColor || vd.contrast(lr), ti = Ole(_t, O, i, n, C, It), Br = ti[0], Vr = ti[1], dt = It.select("text.nums").call(Am.font, { family: _t.fontFamily || c, size: _t.fontSize || f, color: _t.fontColor || Lr, weight: _t.fontWeight || h, style: _t.fontStyle || d, variant: _t.fontVariant || v, textcase: _t.fontTextcase || _, lineposition: _t.fontLineposition || b, shadow: _t.fontShadow || p }).text(Br).attr("data-notex", 1).call(A0.positionText, 0, 0).call(A0.convertToTspans, r), Ge = It.select("text.name"), Je = 0, We = 0;
+ if (Vr && Vr !== Br) {
+ Ge.call(Am.font, { family: _t.fontFamily || c, size: _t.fontSize || f, color: wr, weight: _t.fontWeight || h, style: _t.fontStyle || d, variant: _t.fontVariant || v, textcase: _t.fontTextcase || _, lineposition: _t.fontLineposition || b, shadow: _t.fontShadow || p }).text(Vr).attr("data-notex", 1).call(A0.positionText, 0, 0).call(A0.convertToTspans, r);
+ var tt = $3(r, Ge.node());
+ Je = tt.width + 2 * sl, We = tt.height + 2 * sl;
+ } else Ge.remove(), It.select("rect").remove();
+ It.select("path").style({ fill: lr, stroke: Lr });
+ var xt = _t.xa._offset + (_t.x0 + _t.x1) / 2, Ie = _t.ya._offset + (_t.y0 + _t.y1) / 2, xe = Math.abs(_t.x1 - _t.x0), ke = Math.abs(_t.y1 - _t.y0), vt = $3(r, dt.node()), ir = vt.width / n._invScaleX, ar = vt.height / n._invScaleY;
+ _t.ty0 = (P - vt.top) / n._invScaleY, _t.bx = ir + 2 * sl, _t.by = Math.max(ar + 2 * sl, We), _t.anchor = "start", _t.txwidth = ir, _t.tx2width = Je, _t.offset = 0;
+ var vr = (ir + Qc + sl + Je) * n._invScaleX, ii, pi;
+ if (a) _t.pos = xt, ii = Ie + ke / 2 + vr <= z, pi = Ie - ke / 2 - vr >= 0, (_t.idealAlign === "top" || !ii) && pi ? (Ie -= ke / 2, _t.anchor = "end") : ii ? (Ie += ke / 2, _t.anchor = "start") : _t.anchor = "middle", _t.crossPos = Ie;
+ else {
+ if (_t.pos = Ie, ii = xt + xe / 2 + vr <= A, pi = xt - xe / 2 - vr >= 0, (_t.idealAlign === "left" || !ii) && pi) xt -= xe / 2, _t.anchor = "end";
+ else if (ii) xt += xe / 2, _t.anchor = "start";
+ else {
+ _t.anchor = "middle";
+ var $r = vr / 2, di = xt + $r - A, ji = xt - $r;
+ di > 0 && (xt -= di), ji < 0 && (xt += -ji);
+ }
+ _t.crossPos = xt;
+ }
+ dt.attr("text-anchor", _t.anchor), Je && Ge.attr("text-anchor", _t.anchor), It.attr("transform", jB(xt, Ie) + (a ? gut(Vle) : ""));
+ }), { hoverLabels: Gt, commonLabelBoundingBox: H };
+ }
+ function Ole(e, t, r, n, i, a) {
+ var f, h;
+ var o = "", s = "";
+ e.nameOverride !== void 0 && (e.name = e.nameOverride), e.name && (e.trace._meta && (e.name = zf.templateString(e.name, e.trace._meta)), o = Nle(e.name, e.nameLength));
+ var l = r.charAt(0), u = l === "x" ? "y" : "x";
+ e.zLabel !== void 0 ? (e.xLabel !== void 0 && (s += "x: " + e.xLabel + " "), e.yLabel !== void 0 && (s += "y: " + e.yLabel + " "), e.trace.type !== "choropleth" && e.trace.type !== "choroplethmapbox" && e.trace.type !== "choroplethmap" && (s += (s ? "z: " : "") + e.zLabel)) : t && e[l + "Label"] === i ? s = e[u + "Label"] || "" : e.xLabel === void 0 ? e.yLabel !== void 0 && e.trace.type !== "scattercarpet" && (s = e.yLabel) : e.yLabel === void 0 ? s = e.xLabel : s = "(" + e.xLabel + ", " + e.yLabel + ")", (e.text || e.text === 0) && !Array.isArray(e.text) && (s += (s ? " " : "") + e.text), e.extraText !== void 0 && (s += (s ? " " : "") + e.extraText), a && s === "" && !e.hovertemplate && (o === "" && a.remove(), s = o), (h = (f = e.trace) == null ? void 0 : f.hoverlabel) != null && h.split && (e.hovertemplate = "");
+ let { hovertemplate: c = false } = e;
+ if (c) {
+ let d = e.hovertemplateLabels || e;
+ e[l + "Label"] !== i && (d[l + "other"] = d[l + "Val"], d[l + "otherLabel"] = d[l + "Label"]), s = zf.hovertemplateString({ data: [e.eventData[0] || {}, e.trace._meta], fallback: e.trace.hovertemplatefallback, labels: d, locale: n._d3locale, template: c }), s = s.replace(Eut, (v, _) => (o = Nle(_, e.nameLength), ""));
+ }
+ return [s, o];
+ }
+ function kut(e, t, r, n) {
+ var i = t ? "xa" : "ya", a = t ? "ya" : "xa", o = 0, s = 1, l = e.size(), u = new Array(l), c = 0, f = n.minX, h = n.maxX, d = n.minY, v = n.maxY, _ = function(Z) {
+ return Z * r._invScaleX;
+ }, b = function(Z) {
+ return Z * r._invScaleY;
+ };
+ e.each(function(Z) {
+ var j = Z[i], N = Z[a], H = j._id.charAt(0) === "x", re = j.range;
+ c === 0 && re && re[0] > re[1] !== H && (s = -1);
+ var oe = 0, _e = H ? r.width : r.height;
+ if (r.hovermode === "x" || r.hovermode === "y") {
+ var Ce = jle(Z, t), Le = Z.anchor, ge = Le === "end" ? -1 : 1, ie, Se;
+ if (Le === "middle") ie = Z.crossPos + (H ? b(Ce.y - Z.by / 2) : _(Z.bx / 2 + Z.tx2width / 2)), Se = ie + (H ? b(Z.by) : _(Z.bx));
+ else if (H) ie = Z.crossPos + b(Qc + Ce.y) - b(Z.by / 2 - Qc), Se = ie + b(Z.by);
+ else {
+ var Ee = _(ge * Qc + Ce.x), Ae = Ee + _(ge * Z.bx);
+ ie = Z.crossPos + Math.min(Ee, Ae), Se = Z.crossPos + Math.max(Ee, Ae);
+ }
+ H ? d !== void 0 && v !== void 0 && Math.min(Se, v) - Math.max(ie, d) > 1 && (N.side === "left" ? (oe = N._mainLinePosition, _e = r.width) : _e = N._mainLinePosition) : f !== void 0 && h !== void 0 && Math.min(Se, h) - Math.max(ie, f) > 1 && (N.side === "top" ? (oe = N._mainLinePosition, _e = r.height) : _e = N._mainLinePosition);
+ }
+ u[c++] = [{ datum: Z, traceIndex: Z.trace.index, dp: 0, pos: Z.pos, posref: Z.posref, size: Z.by * (H ? wut : 1) / 2, pmin: oe, pmax: _e }];
+ }), u.sort(function(Z, j) {
+ return Z[0].posref - j[0].posref || s * (j[0].traceIndex - Z[0].traceIndex);
+ });
+ var p, k, E, T, L, x, C;
+ function M(Z) {
+ var j = Z[0], N = Z[Z.length - 1];
+ if (k = j.pmin - j.pos - j.dp + j.size, E = N.pos + N.dp + N.size - j.pmax, k > 0.01) {
+ for (L = Z.length - 1; L >= 0; L--) Z[L].dp += k;
+ p = false;
+ }
+ if (!(E < 0.01)) {
+ if (k < -0.01) {
+ for (L = Z.length - 1; L >= 0; L--) Z[L].dp -= E;
+ p = false;
+ }
+ if (p) {
+ var H = 0;
+ for (T = 0; T < Z.length; T++) x = Z[T], x.pos + x.dp + x.size > j.pmax && H++;
+ for (T = Z.length - 1; T >= 0 && !(H <= 0); T--) x = Z[T], x.pos > j.pmax - 1 && (x.del = true, H--);
+ for (T = 0; T < Z.length && !(H <= 0); T++) if (x = Z[T], x.pos < j.pmin + 1) for (x.del = true, H--, E = x.size * 2, L = Z.length - 1; L >= 0; L--) Z[L].dp -= E;
+ for (T = Z.length - 1; T >= 0 && !(H <= 0); T--) x = Z[T], x.pos + x.dp + x.size > j.pmax && (x.del = true, H--);
+ }
+ }
+ }
+ for (; !p && o <= l; ) {
+ for (o++, p = true, T = 0; T < u.length - 1; ) {
+ var g = u[T], P = u[T + 1], A = g[g.length - 1], z = P[0];
+ if (k = A.pos + A.dp + A.size - z.pos - z.dp + z.size, k > 0.01) {
+ for (L = P.length - 1; L >= 0; L--) P[L].dp += k;
+ for (g.push.apply(g, P), u.splice(T + 1, 1), C = 0, L = g.length - 1; L >= 0; L--) C += g[L].dp;
+ for (E = C / g.length, L = g.length - 1; L >= 0; L--) g[L].dp -= E;
+ p = false;
+ } else T++;
+ }
+ u.forEach(M);
+ }
+ for (T = u.length - 1; T >= 0; T--) {
+ var O = u[T];
+ for (L = O.length - 1; L >= 0; L--) {
+ var U = O[L], G = U.datum;
+ G.offset = U.dp, G.del = U.del;
+ }
+ }
+ }
+ function jle(e, t) {
+ var r = 0, n = e.offset;
+ return t && (n *= -Aut, r = e.offset * Tut), { x: r, y: n };
+ }
+ function Cut(e) {
+ var t = { start: 1, end: -1, middle: 0 }[e.anchor], r = t * (Qc + sl), n = r + t * (e.txwidth + sl), i = e.anchor === "middle";
+ return i && (r -= e.tx2width / 2, n += e.txwidth / 2 + sl), { alignShift: t, textShiftX: r, text2ShiftX: n };
+ }
+ function Wle(e, t, r, n) {
+ var i = function(o) {
+ return o * r;
+ }, a = function(o) {
+ return o * n;
+ };
+ e.each(function(o) {
+ var s = jb.select(this);
+ if (o.del) return s.remove();
+ var l = s.select("text.nums"), u = o.anchor, c = u === "end" ? -1 : 1, f = Cut(o), h = jle(o, t), d = h.x, v = h.y, _ = u === "middle", b = "hoverlabel" in o.trace ? o.trace.hoverlabel.showarrow : true, p;
+ _ ? p = "M-" + i(o.bx / 2 + o.tx2width / 2) + "," + a(v - o.by / 2) + "h" + i(o.bx) + "v" + a(o.by) + "h-" + i(o.bx) + "Z" : b ? p = "M0,0L" + i(c * Qc + d) + "," + a(Qc + v) + "v" + a(o.by / 2 - Qc) + "h" + i(c * o.bx) + "v-" + a(o.by) + "H" + i(c * Qc + d) + "V" + a(v - Qc) + "Z" : p = "M" + i(c * Qc + d) + "," + a(v - o.by / 2) + "h" + i(c * o.bx) + "v" + a(o.by) + "h" + i(-c * o.bx) + "Z", s.select("path").attr("d", p);
+ var k = d + f.textShiftX, E = v + o.ty0 - o.by / 2 + sl, T = o.textAlign || "auto";
+ T !== "auto" && (T === "left" && u !== "start" ? (l.attr("text-anchor", "start"), k = _ ? -o.bx / 2 - o.tx2width / 2 + sl : -o.bx - sl) : T === "right" && u !== "end" && (l.attr("text-anchor", "end"), k = _ ? o.bx / 2 - o.tx2width / 2 - sl : o.bx + sl)), l.call(A0.positionText, i(k), a(E)), o.tx2width && (s.select("text.name").call(A0.positionText, i(f.text2ShiftX + f.alignShift * sl + d), a(v + o.ty0 - o.by / 2 + sl)), s.select("rect").call(Am.setRect, i(f.text2ShiftX + (f.alignShift - 1) * o.tx2width / 2 + d), a(v - o.by / 2 - 1), i(o.tx2width), a(o.by + 2)));
+ });
+ }
+ function Lut(e, t) {
+ var r = e.index, n = e.trace || {}, i = e.cd[0], a = e.cd[r] || {};
+ function o(h) {
+ return h || Py(h) && h === 0;
+ }
+ var s = Array.isArray(r) ? function(h, d) {
+ var v = zf.castOption(i, r, h);
+ return o(v) ? v : zf.extractOption({}, n, "", d);
+ } : function(h, d) {
+ return zf.extractOption(a, n, h, d);
+ };
+ function l(h, d, v) {
+ var _ = s(d, v);
+ o(_) && (e[h] = _);
+ }
+ if (l("hoverinfo", "hi", "hoverinfo"), l("bgcolor", "hbg", "hoverlabel.bgcolor"), l("borderColor", "hbc", "hoverlabel.bordercolor"), l("fontFamily", "htf", "hoverlabel.font.family"), l("fontSize", "hts", "hoverlabel.font.size"), l("fontColor", "htc", "hoverlabel.font.color"), l("fontWeight", "htw", "hoverlabel.font.weight"), l("fontStyle", "hty", "hoverlabel.font.style"), l("fontVariant", "htv", "hoverlabel.font.variant"), l("nameLength", "hnl", "hoverlabel.namelength"), l("textAlign", "hta", "hoverlabel.align"), e.posref = t === "y" || t === "closest" && n.orientation === "h" ? e.xa._offset + (e.x0 + e.x1) / 2 : e.ya._offset + (e.y0 + e.y1) / 2, e.x0 = zf.constrain(e.x0, 0, e.xa._length), e.x1 = zf.constrain(e.x1, 0, e.xa._length), e.y0 = zf.constrain(e.y0, 0, e.ya._length), e.y1 = zf.constrain(e.y1, 0, e.ya._length), e.xLabelVal !== void 0 && (e.xLabel = "xLabel" in e ? e.xLabel : Sm.hoverLabelText(e.xa, e.xLabelVal, n.xhoverformat), e.xVal = e.xa.c2d(e.xLabelVal)), e.yLabelVal !== void 0 && (e.yLabel = "yLabel" in e ? e.yLabel : Sm.hoverLabelText(e.ya, e.yLabelVal, n.yhoverformat), e.yVal = e.ya.c2d(e.yLabelVal)), e.zLabelVal !== void 0 && e.zLabel === void 0 && (e.zLabel = String(e.zLabelVal)), !isNaN(e.xerr) && !(e.xa.type === "log" && e.xerr <= 0)) {
+ var u = Sm.tickText(e.xa, e.xa.c2l(e.xerr), "hover").text;
+ e.xerrneg !== void 0 ? e.xLabel += " +" + u + " / -" + Sm.tickText(e.xa, e.xa.c2l(e.xerrneg), "hover").text : e.xLabel += " ± " + u, t === "x" && (e.distance += 1);
+ }
+ if (!isNaN(e.yerr) && !(e.ya.type === "log" && e.yerr <= 0)) {
+ var c = Sm.tickText(e.ya, e.ya.c2l(e.yerr), "hover").text;
+ e.yerrneg !== void 0 ? e.yLabel += " +" + c + " / -" + Sm.tickText(e.ya, e.ya.c2l(e.yerrneg), "hover").text : e.yLabel += " ± " + c, t === "y" && (e.distance += 1);
+ }
+ var f = e.hoverinfo || e.trace.hoverinfo;
+ return f && f !== "all" && (f = Array.isArray(f) ? f : f.split("+"), f.indexOf("x") === -1 && (e.xLabel = void 0), f.indexOf("y") === -1 && (e.yLabel = void 0), f.indexOf("z") === -1 && (e.zLabel = void 0), f.indexOf("text") === -1 && (e.text = void 0), f.indexOf("name") === -1 && (e.name = void 0)), e;
+ }
+ function qle(e, t, r) {
+ var n = r.container, i = r.fullLayout, a = i._size, o = r.event, s = !!t.hLinePoint, l = !!t.vLinePoint, u, c;
+ if (n.selectAll(".spikeline").remove(), !!(l || s)) {
+ var f = vd.combine(i.plot_bgcolor, i.paper_bgcolor);
+ if (s) {
+ var h = t.hLinePoint, d, v;
+ u = h && h.xa, c = h && h.ya;
+ var _ = c.spikesnap;
+ _ === "cursor" ? (d = o.pointerX, v = o.pointerY) : (d = u._offset + h.x, v = c._offset + h.y);
+ var b = Dle.readability(h.color, f) < 1.5 ? vd.contrast(f) : h.color, p = c.spikemode, k = c.spikethickness, E = c.spikecolor || b, T = Sm.getPxPosition(e, c), L, x;
+ if (p.indexOf("toaxis") !== -1 || p.indexOf("across") !== -1) {
+ if (p.indexOf("toaxis") !== -1 && (L = T, x = d), p.indexOf("across") !== -1) {
+ var C = c._counterDomainMin, M = c._counterDomainMax;
+ c.anchor === "free" && (C = Math.min(C, c.position), M = Math.max(M, c.position)), L = a.l + C * a.w, x = a.l + M * a.w;
+ }
+ n.insert("line", ":first-child").attr({ x1: L, x2: x, y1: v, y2: v, "stroke-width": k, stroke: E, "stroke-dasharray": Am.dashStyle(c.spikedash, k) }).classed("spikeline", true).classed("crisp", true), n.insert("line", ":first-child").attr({ x1: L, x2: x, y1: v, y2: v, "stroke-width": k + 2, stroke: f }).classed("spikeline", true).classed("crisp", true);
+ }
+ p.indexOf("marker") !== -1 && n.insert("circle", ":first-child").attr({ cx: T + (c.side !== "right" ? k : -k), cy: v, r: k, fill: E }).classed("spikeline", true);
+ }
+ if (l) {
+ var g = t.vLinePoint, P, A;
+ u = g && g.xa, c = g && g.ya;
+ var z = u.spikesnap;
+ z === "cursor" ? (P = o.pointerX, A = o.pointerY) : (P = u._offset + g.x, A = c._offset + g.y);
+ var O = Dle.readability(g.color, f) < 1.5 ? vd.contrast(f) : g.color, U = u.spikemode, G = u.spikethickness, Z = u.spikecolor || O, j = Sm.getPxPosition(e, u), N, H;
+ if (U.indexOf("toaxis") !== -1 || U.indexOf("across") !== -1) {
+ if (U.indexOf("toaxis") !== -1 && (N = j, H = A), U.indexOf("across") !== -1) {
+ var re = u._counterDomainMin, oe = u._counterDomainMax;
+ u.anchor === "free" && (re = Math.min(re, u.position), oe = Math.max(oe, u.position)), N = a.t + (1 - oe) * a.h, H = a.t + (1 - re) * a.h;
+ }
+ n.insert("line", ":first-child").attr({ x1: P, x2: P, y1: N, y2: H, "stroke-width": G, stroke: Z, "stroke-dasharray": Am.dashStyle(u.spikedash, G) }).classed("spikeline", true).classed("crisp", true), n.insert("line", ":first-child").attr({ x1: P, x2: P, y1: N, y2: H, "stroke-width": G + 2, stroke: f }).classed("spikeline", true).classed("crisp", true);
+ }
+ U.indexOf("marker") !== -1 && n.insert("circle", ":first-child").attr({ cx: P, cy: j - (u.side !== "top" ? G : -G), r: G, fill: Z }).classed("spikeline", true);
+ }
+ }
+ }
+ function Put(e, t, r) {
+ if (!r || r.length !== e._hoverdata.length) return true;
+ for (var n = r.length - 1; n >= 0; n--) {
+ var i = r[n], a = e._hoverdata[n];
+ if (i.curveNumber !== a.curveNumber || String(i.pointNumber) !== String(a.pointNumber) || String(i.pointNumbers) !== String(a.pointNumbers) || i.binNumber !== a.binNumber) return true;
+ }
+ return false;
+ }
+ function Ble(e, t) {
+ return true;
+ }
+ function Nle(e, t) {
+ return A0.plainText(e || "", { len: t, allowedTags: ["br", "sub", "sup", "b", "i", "em", "s", "u"] });
+ }
+ function Iut(e, t) {
+ for (var r = t.charAt(0), n = [], i = [], a = [], o = 0; o < e.length; o++) {
+ var s = e[o];
+ Q3.traceIs(s.trace, "bar-like") || Q3.traceIs(s.trace, "box-violin") ? a.push(s) : s.trace[r + "period"] ? i.push(s) : n.push(s);
+ }
+ return n.concat(i).concat(a);
+ }
+ function Ule(e, t, r) {
+ var n = t[e + "a"], i = t[e + "Val"], a = t.cd[0];
+ if (n.type === "category" || n.type === "multicategory") i = n._categoriesMap[i];
+ else if (n.type === "date") {
+ var o = t.trace[e + "periodalignment"];
+ if (o) {
+ var s = t.cd[t.index], l = s[e + "Start"];
+ l === void 0 && (l = s[e]);
+ var u = s[e + "End"];
+ u === void 0 && (u = s[e]);
+ var c = u - l;
+ o === "end" ? i += c : o === "middle" && (i += c / 2);
+ }
+ i = n.d2c(i);
+ }
+ return a && a.t && a.t.posLetter === n._id && (r.boxmode === "group" || r.violinmode === "group") && (i += a.t.dPos), i;
+ }
+ var Xle = (e) => e.offsetTop + e.clientTop, Zle = (e) => e.offsetLeft + e.clientLeft;
+ function $3(e, t) {
+ var r = e._fullLayout, n = t.getBoundingClientRect(), i = n.left, a = n.top, o = i + n.width, s = a + n.height, l = zf.apply3DTransform(r._invTransform)(i, a), u = zf.apply3DTransform(r._invTransform)(o, s), c = l[0], f = l[1], h = u[0], d = u[1];
+ return { x: c, y: f, width: h - c, height: d - f, top: Math.min(f, d), left: Math.min(c, h), right: Math.max(c, h), bottom: Math.max(f, d) };
+ }
+ });
+ var _M = ye((Ear, Yle) => {
+ var Rut = Dr(), Dut = ka(), Fut = ip().isUnifiedHover;
+ Yle.exports = function(t, r, n, i) {
+ i = i || {};
+ var a = r.legend;
+ function o(s) {
+ i.font[s] || (i.font[s] = a ? r.legend.font[s] : r.font[s]);
+ }
+ r && Fut(r.hovermode) && (i.font || (i.font = {}), o("size"), o("family"), o("color"), o("weight"), o("style"), o("variant"), a ? (i.bgcolor || (i.bgcolor = Dut.combine(r.legend.bgcolor, r.paper_bgcolor)), i.bordercolor || (i.bordercolor = r.legend.bordercolor)) : i.bgcolor || (i.bgcolor = r.paper_bgcolor)), n("hoverlabel.bgcolor", i.bgcolor), n("hoverlabel.bordercolor", i.bordercolor), n("hoverlabel.namelength", i.namelength), n("hoverlabel.showarrow", i.showarrow), Rut.coerceFont(n, "hoverlabel.font", i.font), n("hoverlabel.align", i.align);
+ };
+ });
+ var Jle = ye((kar, Kle) => {
+ var zut = Dr(), Out = _M(), qut = W1();
+ Kle.exports = function(t, r) {
+ function n(i, a) {
+ return zut.coerce(t, r, qut, i, a);
+ }
+ Out(t, r, n);
+ };
+ });
+ var eue = ye((Car, Qle) => {
+ var $le = Dr(), But = v3(), Nut = _M();
+ Qle.exports = function(t, r, n, i) {
+ function a(s, l) {
+ return $le.coerce(t, r, But, s, l);
+ }
+ var o = $le.extendFlat({}, i.hoverlabel);
+ r.hovertemplate && (o.namelength = -1), Nut(t, r, a, o);
+ };
+ });
+ var YB = ye((Lar, tue) => {
+ var Uut = Dr(), Vut = W1();
+ tue.exports = function(t, r) {
+ function n(i, a) {
+ return r[i] !== void 0 ? r[i] : Uut.coerce(t, r, Vut, i, a);
+ }
+ return n("clickmode"), n("hoversubplots"), n("hovermode");
+ };
+ });
+ var nue = ye((Par, iue) => {
+ var rue = Dr(), Gut = W1(), Hut = YB(), jut = _M();
+ iue.exports = function(t, r) {
+ function n(c, f) {
+ return rue.coerce(t, r, Gut, c, f);
+ }
+ var i = Hut(t, r);
+ i && (n("hoverdistance"), n("spikedistance"));
+ var a = n("dragmode");
+ a === "select" && n("selectdirection");
+ var o = r._has("mapbox"), s = r._has("map"), l = r._has("geo"), u = r._basePlotModules.length;
+ r.dragmode === "zoom" && ((o || s || l) && u === 1 || (o || s) && l && u === 2) && (r.dragmode = "pan"), jut(t, r, n), rue.coerceFont(n, "hoverlabel.grouptitlefont", r.hoverlabel.font);
+ };
+ });
+ var sue = ye((Iar, oue) => {
+ var KB = Dr(), aue = qa();
+ oue.exports = function(t) {
+ var r = t.calcdata, n = t._fullLayout;
+ function i(u) {
+ return function(c) {
+ return KB.coerceHoverinfo({ hoverinfo: c }, { _module: u._module }, n);
+ };
+ }
+ for (var a = 0; a < r.length; a++) {
+ var o = r[a], s = o[0].trace;
+ if (!aue.traceIs(s, "pie-like")) {
+ var l = aue.traceIs(s, "2dMap") ? Wut : KB.fillArray;
+ l(s.hoverinfo, o, "hi", i(s)), s.hovertemplate && l(s.hovertemplate, o, "ht"), s.hoverlabel && (l(s.hoverlabel.bgcolor, o, "hbg"), l(s.hoverlabel.bordercolor, o, "hbc"), l(s.hoverlabel.font.size, o, "hts"), l(s.hoverlabel.font.color, o, "htc"), l(s.hoverlabel.font.family, o, "htf"), l(s.hoverlabel.font.weight, o, "htw"), l(s.hoverlabel.font.style, o, "hty"), l(s.hoverlabel.font.variant, o, "htv"), l(s.hoverlabel.namelength, o, "hnl"), l(s.hoverlabel.align, o, "hta"), l(s.hoverlabel.showarrow, o, "htsa"));
+ }
+ }
+ };
+ function Wut(e, t, r, n) {
+ n = n || KB.identity, Array.isArray(e) && (t[0][r] = n(e));
+ }
+ });
+ var uue = ye((Rar, lue) => {
+ var Xut = qa(), Zut = ZB().hover;
+ lue.exports = function(t, r, n) {
+ var i = Xut.getComponentMethod("annotations", "onClick")(t, t._hoverdata);
+ n !== void 0 && Zut(t, r, n, true);
+ function a() {
+ t.emit("plotly_click", { points: t._hoverdata, event: r });
+ }
+ t._hoverdata && r && r.target && (i && i.then ? i.then(a) : a(), r.stopImmediatePropagation && r.stopImmediatePropagation());
+ };
+ });
+ var vf = ye((Dar, hue) => {
+ var Yut = Oa(), JL = Dr(), Kut = yv(), xM = ip(), cue = W1(), fue = ZB();
+ hue.exports = { moduleType: "component", name: "fx", constants: NS(), schema: { layout: cue }, attributes: v3(), layoutAttributes: cue, supplyLayoutGlobalDefaults: Jle(), supplyDefaults: eue(), supplyLayoutDefaults: nue(), calc: sue(), getDistanceFunction: xM.getDistanceFunction, getClosest: xM.getClosest, inbox: xM.inbox, quadrature: xM.quadrature, appendArrayPointValue: xM.appendArrayPointValue, castHoverOption: $ut, castHoverinfo: Qut, hover: fue.hover, unhover: Kut.unhover, loneHover: fue.loneHover, loneUnhover: Jut, click: uue() };
+ function Jut(e) {
+ var t = JL.isD3Selection(e) ? e : Yut.select(e);
+ t.selectAll("g.hovertext").remove(), t.selectAll(".spikeline").remove();
+ }
+ function $ut(e, t, r) {
+ return JL.castOption(e, t, "hoverlabel." + r);
+ }
+ function Qut(e, t, r) {
+ function n(i) {
+ return JL.coerceHoverinfo({ hoverinfo: i }, { _module: e._module }, t);
+ }
+ return JL.castOption(e, r, "hoverinfo", n);
+ }
+ });
+ var Cg = ye((Iy) => {
+ Iy.selectMode = function(e) {
+ return e === "lasso" || e === "select";
+ };
+ Iy.drawMode = function(e) {
+ return e === "drawclosedpath" || e === "drawopenpath" || e === "drawline" || e === "drawrect" || e === "drawcircle";
+ };
+ Iy.openMode = function(e) {
+ return e === "drawline" || e === "drawopenpath";
+ };
+ Iy.rectMode = function(e) {
+ return e === "select" || e === "drawline" || e === "drawrect" || e === "drawcircle";
+ };
+ Iy.freeMode = function(e) {
+ return e === "lasso" || e === "drawclosedpath" || e === "drawopenpath";
+ };
+ Iy.selectingOrDrawing = function(e) {
+ return Iy.freeMode(e) || Iy.rectMode(e);
+ };
+ });
+ var bM = ye((zar, due) => {
+ due.exports = function(t) {
+ var r = t._fullLayout;
+ r._glcanvas && r._glcanvas.size() && r._glcanvas.each(function(n) {
+ n.regl && n.regl.clear({ color: true, depth: true });
+ });
+ };
+ });
+ var $L = ye((Oar, vue) => {
+ vue.exports = { undo: { width: 857.1, height: 1e3, path: "m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z", transform: "matrix(1 0 0 -1 0 850)" }, home: { width: 928.6, height: 1e3, path: "m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z", transform: "matrix(1 0 0 -1 0 850)" }, "camera-retro": { width: 1e3, height: 1e3, path: "m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z", transform: "matrix(1 0 0 -1 0 850)" }, zoombox: { width: 1e3, height: 1e3, path: "m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z", transform: "matrix(1 0 0 -1 0 850)" }, pan: { width: 1e3, height: 1e3, path: "m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z", transform: "matrix(1 0 0 -1 0 850)" }, zoom_plus: { width: 875, height: 1e3, path: "m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z", transform: "matrix(1 0 0 -1 0 850)" }, zoom_minus: { width: 875, height: 1e3, path: "m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z", transform: "matrix(1 0 0 -1 0 850)" }, autoscale: { width: 1e3, height: 1e3, path: "m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z", transform: "matrix(1 0 0 -1 0 850)" }, tooltip_basic: { width: 1500, height: 1e3, path: "m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z", transform: "matrix(1 0 0 -1 0 850)" }, tooltip_compare: { width: 1125, height: 1e3, path: "m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z", transform: "matrix(1 0 0 -1 0 850)" }, plotlylogo: { width: 1542, height: 1e3, path: "m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z", transform: "matrix(1 0 0 -1 0 850)" }, "z-axis": { width: 1e3, height: 1e3, path: "m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z", transform: "matrix(1 0 0 -1 0 850)" }, "3d_rotate": { width: 1e3, height: 1e3, path: "m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z", transform: "matrix(1 0 0 -1 0 850)" }, camera: { width: 1e3, height: 1e3, path: "m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z", transform: "matrix(1 0 0 -1 0 850)" }, movie: { width: 1e3, height: 1e3, path: "m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z", transform: "matrix(1 0 0 -1 0 850)" }, question: { width: 857.1, height: 1e3, path: "m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z", transform: "matrix(1 0 0 -1 0 850)" }, disk: { width: 857.1, height: 1e3, path: "m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z", transform: "matrix(1 0 0 -1 0 850)" }, drawopenpath: { width: 70, height: 70, path: "M33.21,85.65a7.31,7.31,0,0,1-2.59-.48c-8.16-3.11-9.27-19.8-9.88-41.3-.1-3.58-.19-6.68-.35-9-.15-2.1-.67-3.48-1.43-3.79-2.13-.88-7.91,2.32-12,5.86L3,32.38c1.87-1.64,11.55-9.66,18.27-6.9,2.13.87,4.75,3.14,5.17,9,.17,2.43.26,5.59.36,9.25a224.17,224.17,0,0,0,1.5,23.4c1.54,10.76,4,12.22,4.48,12.4.84.32,2.79-.46,5.76-3.59L43,80.07C41.53,81.57,37.68,85.64,33.21,85.65ZM74.81,69a11.34,11.34,0,0,0,6.09-6.72L87.26,44.5,74.72,32,56.9,38.35c-2.37.86-5.57,3.42-6.61,6L38.65,72.14l8.42,8.43ZM55,46.27a7.91,7.91,0,0,1,3.64-3.17l14.8-5.3,8,8L76.11,60.6l-.06.19a6.37,6.37,0,0,1-3,3.43L48.25,74.59,44.62,71Zm16.57,7.82A6.9,6.9,0,1,0,64.64,61,6.91,6.91,0,0,0,71.54,54.09Zm-4.05,0a2.85,2.85,0,1,1-2.85-2.85A2.86,2.86,0,0,1,67.49,54.09Zm-4.13,5.22L60.5,56.45,44.26,72.7l2.86,2.86ZM97.83,35.67,84.14,22l-8.57,8.57L89.26,44.24Zm-13.69-8,8,8-2.85,2.85-8-8Z", transform: "matrix(1 0 0 1 -15 -15)" }, drawclosedpath: { width: 90, height: 90, path: "M88.41,21.12a26.56,26.56,0,0,0-36.18,0l-2.07,2-2.07-2a26.57,26.57,0,0,0-36.18,0,23.74,23.74,0,0,0,0,34.8L48,90.12a3.22,3.22,0,0,0,4.42,0l36-34.21a23.73,23.73,0,0,0,0-34.79ZM84,51.24,50.16,83.35,16.35,51.25a17.28,17.28,0,0,1,0-25.47,20,20,0,0,1,27.3,0l4.29,4.07a3.23,3.23,0,0,0,4.44,0l4.29-4.07a20,20,0,0,1,27.3,0,17.27,17.27,0,0,1,0,25.46ZM66.76,47.68h-33v6.91h33ZM53.35,35H46.44V68h6.91Z", transform: "matrix(1 0 0 1 -5 -5)" }, lasso: { width: 1031, height: 1e3, path: "m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z", transform: "matrix(1 0 0 -1 0 850)" }, selectbox: { width: 1e3, height: 1e3, path: "m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z", transform: "matrix(1 0 0 -1 0 850)" }, drawline: { width: 70, height: 70, path: "M60.64,62.3a11.29,11.29,0,0,0,6.09-6.72l6.35-17.72L60.54,25.31l-17.82,6.4c-2.36.86-5.57,3.41-6.6,6L24.48,65.5l8.42,8.42ZM40.79,39.63a7.89,7.89,0,0,1,3.65-3.17l14.79-5.31,8,8L61.94,54l-.06.19a6.44,6.44,0,0,1-3,3.43L34.07,68l-3.62-3.63Zm16.57,7.81a6.9,6.9,0,1,0-6.89,6.9A6.9,6.9,0,0,0,57.36,47.44Zm-4,0a2.86,2.86,0,1,1-2.85-2.85A2.86,2.86,0,0,1,53.32,47.44Zm-4.13,5.22L46.33,49.8,30.08,66.05l2.86,2.86ZM83.65,29,70,15.34,61.4,23.9,75.09,37.59ZM70,21.06l8,8-2.84,2.85-8-8ZM87,80.49H10.67V87H87Z", transform: "matrix(1 0 0 1 -15 -15)" }, drawrect: { width: 80, height: 80, path: "M78,22V79H21V22H78m9-9H12V88H87V13ZM68,46.22H31V54H68ZM53,32H45.22V69H53Z", transform: "matrix(1 0 0 1 -10 -10)" }, drawcircle: { width: 80, height: 80, path: "M50,84.72C26.84,84.72,8,69.28,8,50.3S26.84,15.87,50,15.87,92,31.31,92,50.3,73.16,84.72,50,84.72Zm0-60.59c-18.6,0-33.74,11.74-33.74,26.17S31.4,76.46,50,76.46,83.74,64.72,83.74,50.3,68.6,24.13,50,24.13Zm17.15,22h-34v7.11h34Zm-13.8-13H46.24v34h7.11Z", transform: "matrix(1 0 0 1 -10 -10)" }, eraseshape: { width: 80, height: 80, path: "M82.77,78H31.85L6,49.57,31.85,21.14H82.77a8.72,8.72,0,0,1,8.65,8.77V69.24A8.72,8.72,0,0,1,82.77,78ZM35.46,69.84H82.77a.57.57,0,0,0,.49-.6V29.91a.57.57,0,0,0-.49-.61H35.46L17,49.57Zm32.68-34.7-24,24,5,5,24-24Zm-19,.53-5,5,24,24,5-5Z", transform: "matrix(1 0 0 1 -10 -10)" }, spikeline: { width: 1e3, height: 1e3, path: "M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z", transform: "matrix(1.5 0 0 -1.5 0 850)" }, pencil: { width: 1792, height: 1792, path: "M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z", transform: "matrix(1 0 0 1 0 1)" }, newplotlylogo: { name: "newplotlylogo", svg: ["", " plotly-logomark ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "].join("") } };
+ });
+ var eP = ye((qar, pue) => {
+ var QL = 32;
+ pue.exports = { CIRCLE_SIDES: QL, i000: 0, i090: QL / 4, i180: QL / 2, i270: QL / 4 * 3, cos45: Math.cos(Math.PI / 4), sin45: Math.sin(Math.PI / 4), SQRT2: Math.sqrt(2) };
+ });
+ var tP = ye((Bar, mue) => {
+ var ect = Dr().strTranslate;
+ function gue(e, t) {
+ switch (e.type) {
+ case "log":
+ return e.p2d(t);
+ case "date":
+ return e.p2r(t, 0, e.calendar);
+ default:
+ return e.p2r(t);
+ }
+ }
+ function tct(e, t) {
+ switch (e.type) {
+ case "log":
+ return e.d2p(t);
+ case "date":
+ return e.r2p(t, 0, e.calendar);
+ default:
+ return e.r2p(t);
+ }
+ }
+ function rct(e) {
+ var t = e._id.charAt(0) === "y" ? 1 : 0;
+ return function(r) {
+ return gue(e, r[t]);
+ };
+ }
+ function ict(e) {
+ return ect(e.xaxis._offset, e.yaxis._offset);
+ }
+ mue.exports = { p2r: gue, r2p: tct, axValue: rct, getTransform: ict };
+ });
+ var m_ = ye((Ry) => {
+ var nct = nM(), xue = eP(), eT = xue.CIRCLE_SIDES, JB = xue.SQRT2, bue = tP(), yue = bue.p2r, _ue = bue.r2p, act = [0, 3, 4, 5, 6, 1, 2], oct = [0, 3, 4, 1, 2];
+ Ry.writePaths = function(e) {
+ var t = e.length;
+ if (!t) return "M0,0Z";
+ for (var r = "", n = 0; n < t; n++) for (var i = e[n].length, a = 0; a < i; a++) {
+ var o = e[n][a][0];
+ if (o === "Z") r += "Z";
+ else for (var s = e[n][a].length, l = 0; l < s; l++) {
+ var u = l;
+ o === "Q" || o === "S" ? u = oct[l] : o === "C" && (u = act[l]), r += e[n][a][u], l > 0 && l < s - 1 && (r += ",");
+ }
+ }
+ return r;
+ };
+ Ry.readPaths = function(e, t, r, n) {
+ var i = nct(e), a = [], o = -1, s = function() {
+ o++, a[o] = [];
+ }, l, u = 0, c = 0, f, h, d = function() {
+ f = u, h = c;
+ };
+ d();
+ for (var v = 0; v < i.length; v++) {
+ var _ = [], b, p, k, E, T = i[v][0], L = T;
+ switch (T) {
+ case "M":
+ s(), u = +i[v][1], c = +i[v][2], _.push([L, u, c]), d();
+ break;
+ case "Q":
+ case "S":
+ b = +i[v][1], k = +i[v][2], u = +i[v][3], c = +i[v][4], _.push([L, u, c, b, k]);
+ break;
+ case "C":
+ b = +i[v][1], k = +i[v][2], p = +i[v][3], E = +i[v][4], u = +i[v][5], c = +i[v][6], _.push([L, u, c, b, k, p, E]);
+ break;
+ case "T":
+ case "L":
+ u = +i[v][1], c = +i[v][2], _.push([L, u, c]);
+ break;
+ case "H":
+ L = "L", u = +i[v][1], _.push([L, u, c]);
+ break;
+ case "V":
+ L = "L", c = +i[v][1], _.push([L, u, c]);
+ break;
+ case "A":
+ L = "L";
+ var x = +i[v][1], C = +i[v][2];
+ +i[v][4] || (x = -x, C = -C);
+ var M = u - x, g = c;
+ for (l = 1; l <= eT / 2; l++) {
+ var P = 2 * Math.PI * l / eT;
+ _.push([L, M + x * Math.cos(P), g + C * Math.sin(P)]);
+ }
+ break;
+ case "Z":
+ (u !== f || c !== h) && (u = f, c = h, _.push([L, u, c]));
+ break;
+ }
+ for (var A = (r || {}).domain, z = t._fullLayout._size, O = r && r.xsizemode === "pixel", U = r && r.ysizemode === "pixel", G = n === false, Z = 0; Z < _.length; Z++) {
+ for (l = 0; l + 2 < 7; l += 2) {
+ var j = _[Z][l + 1], N = _[Z][l + 2];
+ j === void 0 || N === void 0 || (u = j, c = N, r && (r.xaxis && r.xaxis.p2r ? (G && (j -= r.xaxis._offset), O ? j = _ue(r.xaxis, r.xanchor) + j : j = yue(r.xaxis, j)) : (G && (j -= z.l), A ? j = A.x[0] + j / z.w : j = j / z.w), r.yaxis && r.yaxis.p2r ? (G && (N -= r.yaxis._offset), U ? N = _ue(r.yaxis, r.yanchor) - N : N = yue(r.yaxis, N)) : (G && (N -= z.t), A ? N = A.y[1] - N / z.h : N = 1 - N / z.h)), _[Z][l + 1] = j, _[Z][l + 2] = N);
+ }
+ a[o].push(_[Z].slice());
+ }
+ }
+ return a;
+ };
+ function wM(e, t) {
+ return Math.abs(e - t) <= 1e-6;
+ }
+ function rP(e, t) {
+ var r = t[1] - e[1], n = t[2] - e[2];
+ return Math.sqrt(r * r + n * n);
+ }
+ Ry.pointsOnRectangle = function(e) {
+ var t = e.length;
+ if (t !== 5) return false;
+ for (var r = 1; r < 3; r++) {
+ var n = e[0][r] - e[1][r], i = e[3][r] - e[2][r];
+ if (!wM(n, i)) return false;
+ var a = e[0][r] - e[3][r], o = e[1][r] - e[2][r];
+ if (!wM(a, o)) return false;
+ }
+ return !wM(e[0][1], e[1][1]) && !wM(e[0][1], e[3][1]) ? false : !!(rP(e[0], e[1]) * rP(e[0], e[3]));
+ };
+ Ry.pointsOnEllipse = function(e) {
+ var t = e.length;
+ if (t !== eT + 1) return false;
+ t = eT;
+ for (var r = 0; r < t; r++) {
+ var n = (t * 2 - r) % t, i = (t / 2 + n) % t, a = (t / 2 + r) % t;
+ if (!wM(rP(e[r], e[a]), rP(e[n], e[i]))) return false;
+ }
+ return true;
+ };
+ Ry.handleEllipse = function(e, t, r) {
+ if (!e) return [t, r];
+ var n = Ry.ellipseOver({ x0: t[0], y0: t[1], x1: r[0], y1: r[1] }), i = (n.x1 + n.x0) / 2, a = (n.y1 + n.y0) / 2, o = (n.x1 - n.x0) / 2, s = (n.y1 - n.y0) / 2;
+ o || (o = s = s / JB), s || (s = o = o / JB);
+ for (var l = [], u = 0; u < eT; u++) {
+ var c = u * 2 * Math.PI / eT;
+ l.push([i + o * Math.cos(c), a + s * Math.sin(c)]);
+ }
+ return l;
+ };
+ Ry.ellipseOver = function(e) {
+ var t = e.x0, r = e.y0, n = e.x1, i = e.y1, a = n - t, o = i - r;
+ t -= a, r -= o;
+ var s = (t + n) / 2, l = (r + i) / 2, u = JB;
+ return a *= u, o *= u, { x0: s - a, y0: l - o, x1: s + a, y1: l + o };
+ };
+ Ry.fixDatesForPaths = function(e, t, r) {
+ var n = t.type === "date", i = r.type === "date";
+ if (!n && !i) return e;
+ for (var a = 0; a < e.length; a++) for (var o = 0; o < e[a].length; o++) for (var s = 0; s + 2 < e[a][o].length; s += 2) n && (e[a][o][s + 1] = e[a][o][s + 1].replace(" ", "_")), i && (e[a][o][s + 2] = e[a][o][s + 2].replace(" ", "_"));
+ return e;
+ };
+ });
+ var aP = ye((Uar, Lue) => {
+ var wue = hf(), Eue = Cg(), sct = Eue.drawMode, lct = Eue.openMode, tT = eP(), Tue = tT.i000, Aue = tT.i090, Sue = tT.i180, Mue = tT.i270, uct = tT.cos45, cct = tT.sin45, kue = tP(), iP = kue.p2r, y_ = kue.r2p, fct = o_(), hct = fct.clearOutline, nP = m_(), dct = nP.readPaths, vct = nP.writePaths, pct = nP.ellipseOver, gct = nP.fixDatesForPaths;
+ function mct(e, t) {
+ if (e.length) {
+ var r = e[0][0];
+ if (r) {
+ var n = t.gd, i = t.isActiveShape, a = t.dragmode, o = (n.layout || {}).shapes || [];
+ if (!sct(a) && i !== void 0) {
+ var s = n._fullLayout._activeShapeIndex;
+ if (s < o.length) switch (n._fullLayout.shapes[s].type) {
+ case "rect":
+ a = "drawrect";
+ break;
+ case "circle":
+ a = "drawcircle";
+ break;
+ case "line":
+ a = "drawline";
+ break;
+ case "path":
+ var l = o[s].path || "";
+ l[l.length - 1] === "Z" ? a = "drawclosedpath" : a = "drawopenpath";
+ break;
+ }
+ }
+ var u = Cue(e, t, a);
+ hct(n);
+ for (var c = t.editHelpers, f = (c || {}).modifyItem, h = [], d = 0; d < o.length; d++) {
+ var v = n._fullLayout.shapes[d];
+ if (h[d] = v._input, i !== void 0 && d === n._fullLayout._activeShapeIndex) {
+ var _ = u;
+ switch (v.type) {
+ case "line":
+ case "rect":
+ case "circle":
+ var b = wue.getFromId(n, v.xref);
+ v.xref.charAt(0) === "x" && b.type.includes("category") ? (f("x0", _.x0 - (v.x0shift || 0)), f("x1", _.x1 - (v.x1shift || 0))) : (f("x0", _.x0), f("x1", _.x1));
+ var p = wue.getFromId(n, v.yref);
+ v.yref.charAt(0) === "y" && p.type.includes("category") ? (f("y0", _.y0 - (v.y0shift || 0)), f("y1", _.y1 - (v.y1shift || 0))) : (f("y0", _.y0), f("y1", _.y1));
+ break;
+ case "path":
+ f("path", _.path);
+ break;
+ }
+ }
+ }
+ return i === void 0 ? (h.push(u), h) : c ? c.getUpdateObj() : {};
+ }
+ }
+ }
+ function Cue(e, t, r) {
+ var n = e[0][0], i = t.gd, a = n.getAttribute("d"), o = i._fullLayout.newshape, s = t.plotinfo, l = t.isActiveShape, u = s.xaxis, c = s.yaxis, f = !!s.domain || !s.xaxis, h = !!s.domain || !s.yaxis, d = lct(r), v = dct(a, i, s, l), _ = { editable: true, visible: o.visible, name: o.name, showlegend: o.showlegend, legend: o.legend, legendwidth: o.legendwidth, legendgroup: o.legendgroup, legendgrouptitle: { text: o.legendgrouptitle.text, font: o.legendgrouptitle.font }, legendrank: o.legendrank, label: o.label, xref: f ? "paper" : u._id, yref: h ? "paper" : c._id, layer: o.layer, opacity: o.opacity, line: { color: o.line.color, width: o.line.width, dash: o.line.dash } };
+ d || (_.fillcolor = o.fillcolor, _.fillrule = o.fillrule);
+ var b;
+ if (v.length === 1 && (b = v[0]), b && b.length === 5 && r === "drawrect") _.type = "rect", _.x0 = b[0][1], _.y0 = b[0][2], _.x1 = b[2][1], _.y1 = b[2][2];
+ else if (b && r === "drawline") _.type = "line", _.x0 = b[0][1], _.y0 = b[0][2], _.x1 = b[1][1], _.y1 = b[1][2];
+ else if (b && r === "drawcircle") {
+ _.type = "circle";
+ var p = b[Tue][1], k = b[Aue][1], E = b[Sue][1], T = b[Mue][1], L = b[Tue][2], x = b[Aue][2], C = b[Sue][2], M = b[Mue][2], g = s.xaxis && (s.xaxis.type === "date" || s.xaxis.type === "log"), P = s.yaxis && (s.yaxis.type === "date" || s.yaxis.type === "log");
+ g && (p = y_(s.xaxis, p), k = y_(s.xaxis, k), E = y_(s.xaxis, E), T = y_(s.xaxis, T)), P && (L = y_(s.yaxis, L), x = y_(s.yaxis, x), C = y_(s.yaxis, C), M = y_(s.yaxis, M));
+ var A = (k + T) / 2, z = (L + C) / 2, O = (T - k + E - p) / 2, U = (M - x + C - L) / 2, G = pct({ x0: A, y0: z, x1: A + O * uct, y1: z + U * cct });
+ g && (G.x0 = iP(s.xaxis, G.x0), G.x1 = iP(s.xaxis, G.x1)), P && (G.y0 = iP(s.yaxis, G.y0), G.y1 = iP(s.yaxis, G.y1)), _.x0 = G.x0, _.y0 = G.y0, _.x1 = G.x1, _.y1 = G.y1;
+ } else _.type = "path", u && c && gct(v, u, c), _.path = vct(v), b = null;
+ return _;
+ }
+ Lue.exports = { newShapes: mct, createShapeObj: Cue };
+ });
+ var QB = ye((Var, Pue) => {
+ var yct = Cg(), _ct = yct.selectMode, xct = o_(), bct = xct.clearOutline, $B = m_(), wct = $B.readPaths, Tct = $B.writePaths, Act = $B.fixDatesForPaths;
+ Pue.exports = function(t, r) {
+ if (t.length) {
+ var n = t[0][0];
+ if (n) {
+ var i = n.getAttribute("d"), a = r.gd, o = a._fullLayout.newselection, s = r.plotinfo, l = s.xaxis, u = s.yaxis, c = r.isActiveSelection, f = r.dragmode, h = (a.layout || {}).selections || [];
+ if (!_ct(f) && c !== void 0) {
+ var d = a._fullLayout._activeSelectionIndex;
+ if (d < h.length) switch (a._fullLayout.selections[d].type) {
+ case "rect":
+ f = "select";
+ break;
+ case "path":
+ f = "lasso";
+ break;
+ }
+ }
+ var v = wct(i, a, s, c), _ = { xref: l._id, yref: u._id, opacity: o.opacity, line: { color: o.line.color, width: o.line.width, dash: o.line.dash } }, b;
+ v.length === 1 && (b = v[0]), b && b.length === 5 && f === "select" ? (_.type = "rect", _.x0 = b[0][1], _.y0 = b[0][2], _.x1 = b[2][1], _.y1 = b[2][2]) : (_.type = "path", l && u && Act(v, l, u), _.path = Tct(v), b = null), bct(a);
+ for (var p = r.editHelpers, k = (p || {}).modifyItem, E = [], T = 0; T < h.length; T++) {
+ var L = a._fullLayout.selections[T];
+ if (!L) {
+ E[T] = L;
+ continue;
+ }
+ if (E[T] = L._input, c !== void 0 && T === a._fullLayout._activeSelectionIndex) {
+ var x = _;
+ switch (L.type) {
+ case "rect":
+ k("x0", x.x0), k("x1", x.x1), k("y0", x.y0), k("y1", x.y1);
+ break;
+ case "path":
+ k("path", x.path);
+ break;
+ }
+ }
+ }
+ return c === void 0 ? (E.push(_), E) : p ? p.getUpdateObj() : {};
+ }
+ }
+ };
+ });
+ var TM = ye((Gar, Iue) => {
+ Iue.exports = { segmentRE: /[MLHVQCTSZ][^MLHVQCTSZ]*/g, paramRE: /[^\s,]+/g, paramIsX: { M: { 0: true, drawn: 0 }, L: { 0: true, drawn: 0 }, H: { 0: true, drawn: 0 }, V: {}, Q: { 0: true, 2: true, drawn: 2 }, C: { 0: true, 2: true, 4: true, drawn: 4 }, T: { 0: true, drawn: 0 }, S: { 0: true, 2: true, drawn: 2 }, Z: {} }, paramIsY: { M: { 1: true, drawn: 1 }, L: { 1: true, drawn: 1 }, H: {}, V: { 0: true, drawn: 0 }, Q: { 1: true, 3: true, drawn: 3 }, C: { 1: true, 3: true, 5: true, drawn: 5 }, T: { 1: true, drawn: 1 }, S: { 1: true, 3: true, drawn: 3 }, Z: {} }, numParams: { M: 2, L: 2, H: 1, V: 1, Q: 4, C: 6, T: 2, S: 4, Z: 0 } };
+ });
+ var x_ = ye((Jd) => {
+ var Mm = TM(), Rue = Dr(), __ = ho();
+ Jd.rangeToShapePosition = function(e) {
+ return e.type === "log" ? e.r2d : function(t) {
+ return t;
+ };
+ };
+ Jd.shapePositionToRange = function(e) {
+ return e.type === "log" ? e.d2r : function(t) {
+ return t;
+ };
+ };
+ Jd.decodeDate = function(e) {
+ return function(t) {
+ return t.replace && (t = t.replace("_", " ")), e(t);
+ };
+ };
+ Jd.encodeDate = function(e) {
+ return function(t) {
+ return e(t).replace(" ", "_");
+ };
+ };
+ Jd.extractPathCoords = function(e, t, r) {
+ var n = [], i = e.match(Mm.segmentRE);
+ return i.forEach(function(a) {
+ var o = t[a.charAt(0)].drawn;
+ if (o !== void 0) {
+ var s = a.slice(1).match(Mm.paramRE);
+ if (!(!s || s.length < o)) {
+ var l = s[o], u = r ? l : Rue.cleanNumber(l);
+ n.push(u);
+ }
+ }
+ }), n;
+ };
+ Jd.countDefiningCoords = function(e, t, r) {
+ if (e !== "path") return 2;
+ if (!t) return 0;
+ let n = t.match(Mm.segmentRE);
+ if (!n) return 0;
+ let i = r === "x" ? Mm.paramIsX : Mm.paramIsY;
+ return n.reduce((a, o) => {
+ let s = o.charAt(0), l = i[s].drawn !== void 0;
+ return a + (l ? 1 : 0);
+ }, 0);
+ };
+ Jd.getDataToPixel = function(e, t, r, n, i) {
+ var a = e._fullLayout._size, o;
+ if (t) if (i === "domain") o = function(l) {
+ return t._length * (n ? 1 - l : l) + t._offset;
+ };
+ else {
+ var s = Jd.shapePositionToRange(t);
+ o = function(l) {
+ var u = Dy(t, r);
+ return t._offset + t.r2p(s(l, true)) + u;
+ }, t.type === "date" && (o = Jd.decodeDate(o));
+ }
+ else n ? o = function(l) {
+ return a.t + a.h * (1 - l);
+ } : o = function(l) {
+ return a.l + a.w * l;
+ };
+ return o;
+ };
+ Jd.getPixelToData = function(e, t, r, n) {
+ var i = e._fullLayout._size, a;
+ if (t) if (n === "domain") a = function(s) {
+ var l = (s - t._offset) / t._length;
+ return r ? 1 - l : l;
+ };
+ else {
+ var o = Jd.rangeToShapePosition(t);
+ a = function(s) {
+ return o(t.p2r(s - t._offset));
+ };
+ }
+ else r ? a = function(s) {
+ return 1 - (s - i.t) / i.h;
+ } : a = function(s) {
+ return (s - i.l) / i.w;
+ };
+ return a;
+ };
+ Jd.roundPositionForSharpStrokeRendering = function(e, t) {
+ var r = Math.round(t % 2) === 1, n = Math.round(e);
+ return r ? n + 0.5 : n;
+ };
+ Jd.makeShapesOptionsAndPlotinfo = function(e, t) {
+ var r = e._fullLayout.shapes[t] || {}, n = e._fullLayout._plots[r.xref + r.yref], i = !!n;
+ return i ? n._hadPlotinfo = true : (n = {}, r.xref && r.xref !== "paper" && (n.xaxis = e._fullLayout[r.xref + "axis"]), r.yref && r.yref !== "paper" && (n.yaxis = e._fullLayout[r.yref + "axis"])), n.xsizemode = r.xsizemode, n.ysizemode = r.ysizemode, n.xanchor = r.xanchor, n.yanchor = r.yanchor, { options: r, plotinfo: n };
+ };
+ Jd.makeSelectionsOptionsAndPlotinfo = function(e, t) {
+ var r = e._fullLayout.selections[t] || {}, n = e._fullLayout._plots[r.xref + r.yref], i = !!n;
+ return i ? n._hadPlotinfo = true : (n = {}, r.xref && (n.xaxis = e._fullLayout[r.xref + "axis"]), r.yref && (n.yaxis = e._fullLayout[r.yref + "axis"])), { options: r, plotinfo: n };
+ };
+ Jd.getPathString = function(e, t) {
+ let r = t.type, n = __.getRefType(t.xref), i = __.getRefType(t.yref), a = e._fullLayout._size;
+ var o, s, l, u, c, f, h, d, v, _, b, p;
+ function k(P, A, z, O) {
+ var U;
+ if (P) if (A === "domain") O ? U = function(G) {
+ return P._offset + P._length * (1 - G);
+ } : U = function(G) {
+ return P._offset + P._length * G;
+ };
+ else {
+ let G = Jd.shapePositionToRange(P);
+ U = function(Z) {
+ return P._offset + P.r2p(G(Z, true));
+ }, z === "path" && P.type === "date" && (U = Jd.decodeDate(U));
+ }
+ else O ? U = function(G) {
+ return a.t + a.h * (1 - G);
+ } : U = function(G) {
+ return a.l + a.w * G;
+ };
+ return U;
+ }
+ if (n === "array" ? (h = [], o = t.xref.map(function(P) {
+ return __.getFromId(e, P);
+ }), h = t.xref.map(function(P, A) {
+ return k(o[A], __.getRefType(P), r, false);
+ })) : (o = __.getFromId(e, t.xref), h = k(o, n, r, false)), i === "array" ? (d = [], s = t.yref.map(function(P) {
+ return __.getFromId(e, P);
+ }), d = t.yref.map(function(P, A) {
+ return k(s[A], __.getRefType(P), r, true);
+ })) : (s = __.getFromId(e, t.yref), d = k(s, i, r, true)), r === "path") return Sct(t, h, d);
+ if (n === "array") l = Dy(o[0], t.x0shift), u = Dy(o[1], t.x1shift), v = h[0](t.x0) + l, _ = h[1](t.x1) + u;
+ else if (l = Dy(o, t.x0shift), u = Dy(o, t.x1shift), t.xsizemode === "pixel") {
+ let P = h(t.xanchor);
+ v = P + t.x0 + l, _ = P + t.x1 + u;
+ } else v = h(t.x0) + l, _ = h(t.x1) + u;
+ if (i === "array") c = Dy(s[0], t.y0shift), f = Dy(s[1], t.y1shift), b = d[0](t.y0) + c, p = d[1](t.y1) + f;
+ else if (c = Dy(s, t.y0shift), f = Dy(s, t.y1shift), t.ysizemode === "pixel") {
+ let P = d(t.yanchor);
+ b = P - t.y0 + c, p = P - t.y1 + f;
+ } else b = d(t.y0) + c, p = d(t.y1) + f;
+ if (r === "line") return "M" + v + "," + b + "L" + _ + "," + p;
+ if (r === "rect") return "M" + v + "," + b + "H" + _ + "V" + p + "H" + v + "Z";
+ var E = (v + _) / 2, T = (b + p) / 2, L = Math.abs(E - v), x = Math.abs(T - b), C = "A" + L + "," + x, M = E + L + "," + T, g = E + "," + (T - x);
+ return "M" + M + C + " 0 1,1 " + g + C + " 0 0,1 " + M + "Z";
+ };
+ function Sct(e, t, r) {
+ let n = e.path, i = e.xsizemode, a = e.ysizemode, o = e.xanchor, s = e.yanchor, l = Array.isArray(e.xref), u = Array.isArray(e.yref);
+ var c = 0, f = 0;
+ return n.replace(Mm.segmentRE, function(h) {
+ var d = 0, v = h.charAt(0), _ = Mm.paramIsX[v], b = Mm.paramIsY[v], p = Mm.numParams[v];
+ let k = _.drawn !== void 0, E = b.drawn !== void 0, T = l ? t[c] : t, L = u ? r[f] : r;
+ var x = h.slice(1).replace(Mm.paramRE, function(C) {
+ return _[d] ? i === "pixel" ? C = T(o) + Number(C) : C = T(C) : b[d] && (a === "pixel" ? C = L(s) - Number(C) : C = L(C)), d++, d > p && (C = "X"), C;
+ });
+ return d > p && (x = x.replace(/[\s,]*X.*/, ""), Rue.log("Ignoring extra params in segment " + h)), k && c++, E && f++, v + x;
+ });
+ }
+ function Dy(e, t) {
+ t = t || 0;
+ var r = 0;
+ return t && e && (e.type === "category" || e.type === "multicategory") && (r = (e.r2p(1) - e.r2p(0)) * t), r;
+ }
+ });
+ var tN = ye((jar, zue) => {
+ var Mct = Dr(), Em = ho(), Due = Zl(), Fue = So(), Ect = m_().readPaths, eN = x_(), kct = eN.getPathString, AM = D6(), Cct = Dh().FROM_TL;
+ zue.exports = function(t, r, n, i) {
+ if (i.selectAll(".shape-label").remove(), !!(n.label.text || n.label.texttemplate)) {
+ var a;
+ if (n.label.texttemplate) {
+ var o = {};
+ if (n.type !== "path") {
+ var s = Em.getFromId(t, n.xref), l = Em.getFromId(t, n.yref);
+ let oe = Array.isArray(n.xref), _e = Array.isArray(n.yref);
+ for (var u in AM) {
+ var c = typeof AM[u] == "function", f = !oe || AM.simpleXVariables.includes(u), h = !_e || AM.simpleYVariables.includes(u);
+ if (c && f && h) {
+ var d = AM[u](n, s, l);
+ d !== void 0 && (o[u] = d);
+ }
+ }
+ }
+ a = Mct.texttemplateStringForShapes({ data: [o], fallback: n.label.texttemplatefallback, locale: t._fullLayout._d3locale, template: n.label.texttemplate });
+ } else a = n.label.text;
+ var v = { "data-index": r }, _ = n.label.font, b = { "data-notex": 1 }, p = i.append("g").attr(v).classed("shape-label", true), k = p.append("text").attr(b).classed("shape-label-text", true).text(a), E, T, L, x;
+ if (n.path) {
+ var C = kct(t, n), M = Ect(C, t);
+ E = 1 / 0, L = 1 / 0, T = -1 / 0, x = -1 / 0;
+ for (var g = 0; g < M.length; g++) for (var P = 0; P < M[g].length; P++) for (var A = M[g][P], z = 1; z < A.length; z += 2) {
+ var O = A[z], U = A[z + 1];
+ E = Math.min(E, O), T = Math.max(T, O), L = Math.min(L, U), x = Math.max(x, U);
+ }
+ } else {
+ let oe = Array.isArray(n.xref), _e = Array.isArray(n.yref), Ce = Em.getFromId(t, oe ? n.xref[0] : n.xref), Le = Em.getFromId(t, oe ? n.xref[1] : n.xref), ge = Em.getFromId(t, _e ? n.yref[0] : n.yref), ie = Em.getFromId(t, _e ? n.yref[1] : n.yref), Se = Em.getRefType(oe ? n.xref[0] : n.xref), Ee = Em.getRefType(oe ? n.xref[1] : n.xref), Ae = Em.getRefType(_e ? n.yref[0] : n.yref), Be = Em.getRefType(_e ? n.yref[1] : n.yref), Pe = function(De, ce, je, lt) {
+ return eN.getDataToPixel(t, je, ce, false, lt)(De);
+ }, me = function(De, ce, je, lt) {
+ return eN.getDataToPixel(t, je, ce, true, lt)(De);
+ };
+ E = Pe(n.x0, n.x0shift, Ce, Se), T = Pe(n.x1, n.x1shift, Le, Ee), L = me(n.y0, n.y0shift, ge, Ae), x = me(n.y1, n.y1shift, ie, Be);
+ }
+ var G = n.label.textangle;
+ G === "auto" && (n.type === "line" ? G = Lct(E, L, T, x) : G = 0), k.call(function(oe) {
+ return oe.call(Fue.font, _).attr({}), Due.convertToTspans(oe, t), oe;
+ });
+ var Z = Fue.bBox(k.node()), j = Pct(E, L, T, x, n, G, Z), N = j.textx, H = j.texty, re = j.xanchor;
+ k.attr({ "text-anchor": { left: "start", center: "middle", right: "end" }[re], y: H, x: N, transform: "rotate(" + G + "," + N + "," + H + ")" }).call(Due.positionText, N, H);
+ }
+ };
+ function Lct(e, t, r, n) {
+ var i, a;
+ return a = Math.abs(r - e), r >= e ? i = t - n : i = n - t, -180 / Math.PI * Math.atan2(i, a);
+ }
+ function Pct(e, t, r, n, i, a, o) {
+ var s = i.label.textposition, l = i.label.textangle, u = i.label.padding, c = i.type, f = Math.PI / 180 * a, h = Math.sin(f), d = Math.cos(f), v = i.label.xanchor, _ = i.label.yanchor, b, p, k, E;
+ if (c === "line") {
+ s === "start" ? (b = e, p = t) : s === "end" ? (b = r, p = n) : (b = (e + r) / 2, p = (t + n) / 2), v === "auto" && (s === "start" ? l === "auto" ? r > e ? v = "left" : r < e ? v = "right" : v = "center" : r > e ? v = "right" : r < e ? v = "left" : v = "center" : s === "end" ? l === "auto" ? r > e ? v = "right" : r < e ? v = "left" : v = "center" : r > e ? v = "left" : r < e ? v = "right" : v = "center" : v = "center");
+ var T = { left: 1, center: 0, right: -1 }, L = { bottom: -1, middle: 0, top: 1 };
+ if (l === "auto") {
+ var x = L[_];
+ k = -u * h * x, E = u * d * x;
+ } else {
+ var C = T[v], M = L[_];
+ k = u * C, E = u * M;
+ }
+ b = b + k, p = p + E;
+ } else k = u + 3, s.indexOf("right") !== -1 ? (b = Math.max(e, r) - k, v === "auto" && (v = "right")) : s.indexOf("left") !== -1 ? (b = Math.min(e, r) + k, v === "auto" && (v = "left")) : (b = (e + r) / 2, v === "auto" && (v = "center")), s.indexOf("top") !== -1 ? p = Math.min(t, n) : s.indexOf("bottom") !== -1 ? p = Math.max(t, n) : p = (t + n) / 2, E = u, _ === "bottom" ? p = p - E : _ === "top" && (p = p + E);
+ var g = Cct[_], P = i.label.font.size, A = o.height, z = (A * g - P) * h, O = -(A * g - P) * d;
+ return { textx: b + z, texty: p + O, xanchor: v };
+ }
+ });
+ var lP = ye((War, Hue) => {
+ var Ict = Dr(), Rct = Ict.strTranslate, Oue = yv(), Nue = Cg(), Dct = Nue.drawMode, Uue = Nue.selectMode, Vue = qa(), que = ka(), sP = eP(), Fct = sP.i000, zct = sP.i090, Oct = sP.i180, qct = sP.i270, Bct = o_(), Gue = Bct.clearOutlineControllers, iN = m_(), oP = iN.pointsOnRectangle, rN = iN.pointsOnEllipse, Nct = iN.writePaths, Uct = aP().newShapes, Vct = aP().createShapeObj, Gct = QB(), Hct = tN();
+ Hue.exports = function e(t, r, n, i) {
+ i || (i = 0);
+ var a = n.gd;
+ function o() {
+ e(t, r, n, i++), (rN(t[0]) || n.hasText) && s({ redrawing: true });
+ }
+ function s(j) {
+ var N = {};
+ n.isActiveShape !== void 0 && (n.isActiveShape = false, N = Uct(r, n)), n.isActiveSelection !== void 0 && (n.isActiveSelection = false, N = Gct(r, n), a._fullLayout._reselect = true), Object.keys(N).length && Vue.call((j || {}).redrawing ? "relayout" : "_guiRelayout", a, N);
+ }
+ var l = a._fullLayout, u = l._zoomlayer, c = n.dragmode, f = Dct(c), h = Uue(c);
+ (f || h) && (a._fullLayout._outlining = true), Gue(a), r.attr("d", Nct(t));
+ var d, v, _, b, p;
+ if (!i && (n.isActiveShape || n.isActiveSelection)) {
+ p = jct([], t);
+ var k = u.append("g").attr("class", "outline-controllers");
+ P(k), Z();
+ }
+ if (f && n.hasText) {
+ var E = u.select(".label-temp"), T = Vct(r, n, n.dragmode);
+ Hct(a, "label-temp", T, E);
+ }
+ function L(j) {
+ _ = +j.srcElement.getAttribute("data-i"), b = +j.srcElement.getAttribute("data-j"), d[_][b].moveFn = x;
+ }
+ function x(j, N) {
+ if (t.length) {
+ var H = p[_][b][1], re = p[_][b][2], oe = t[_], _e = oe.length;
+ if (oP(oe)) {
+ var Ce = j, Le = N;
+ if (n.isActiveSelection) {
+ var ge = Bue(oe, b);
+ ge[1] === oe[b][1] ? Le = 0 : Ce = 0;
+ }
+ for (var ie = 0; ie < _e; ie++) if (ie !== b) {
+ var Se = oe[ie];
+ Se[1] === oe[b][1] && (Se[1] = H + Ce), Se[2] === oe[b][2] && (Se[2] = re + Le);
+ }
+ if (oe[b][1] = H + Ce, oe[b][2] = re + Le, !oP(oe)) for (var Ee = 0; Ee < _e; Ee++) for (var Ae = 0; Ae < oe[Ee].length; Ae++) oe[Ee][Ae] = p[_][Ee][Ae];
+ } else oe[b][1] = H + j, oe[b][2] = re + N;
+ o();
+ }
+ }
+ function C() {
+ s();
+ }
+ function M() {
+ if (t.length && t[_] && t[_].length) {
+ for (var j = [], N = 0; N < t[_].length; N++) N !== b && j.push(t[_][N]);
+ j.length > 1 && !(j.length === 2 && j[1][0] === "Z") && (b === 0 && (j[0][0] = "M"), t[_] = j, o(), s());
+ }
+ }
+ function g(j, N) {
+ if (j === 2) {
+ _ = +N.srcElement.getAttribute("data-i"), b = +N.srcElement.getAttribute("data-j");
+ var H = t[_];
+ !oP(H) && !rN(H) && M();
+ }
+ }
+ function P(j) {
+ d = [];
+ for (var N = 0; N < t.length; N++) {
+ var H = t[N], re = oP(H), oe = !re && rN(H);
+ d[N] = [];
+ for (var _e = H.length, Ce = 0; Ce < _e; Ce++) if (H[Ce][0] !== "Z" && !(oe && Ce !== Fct && Ce !== zct && Ce !== Oct && Ce !== qct)) {
+ var Le = re && n.isActiveSelection, ge;
+ Le && (ge = Bue(H, Ce));
+ var ie = H[Ce][1], Se = H[Ce][2], Ee = j.append(Le ? "rect" : "circle").attr("data-i", N).attr("data-j", Ce).style({ fill: que.background, stroke: que.defaultLine, "stroke-width": 1, "shape-rendering": "crispEdges" });
+ if (Le) {
+ var Ae = ge[1] - ie, Be = ge[2] - Se, Pe = Be ? 5 : Math.max(Math.min(25, Math.abs(Ae) - 5), 5), me = Ae ? 5 : Math.max(Math.min(25, Math.abs(Be) - 5), 5);
+ Ee.classed(Be ? "cursor-ew-resize" : "cursor-ns-resize", true).attr("width", Pe).attr("height", me).attr("x", ie - Pe / 2).attr("y", Se - me / 2).attr("transform", Rct(Ae / 2, Be / 2));
+ } else Ee.classed("cursor-grab", true).attr("r", 5).attr("cx", ie).attr("cy", Se);
+ d[N][Ce] = { element: Ee.node(), gd: a, prepFn: L, doneFn: C, clickFn: g }, Oue.init(d[N][Ce]);
+ }
+ }
+ }
+ function A(j, N) {
+ if (t.length) for (var H = 0; H < t.length; H++) for (var re = 0; re < t[H].length; re++) for (var oe = 0; oe + 2 < t[H][re].length; oe += 2) t[H][re][oe + 1] = p[H][re][oe + 1] + j, t[H][re][oe + 2] = p[H][re][oe + 2] + N;
+ }
+ function z(j, N) {
+ A(j, N), o();
+ }
+ function O(j) {
+ _ = +j.srcElement.getAttribute("data-i"), _ || (_ = 0), v[_].moveFn = z;
+ }
+ function U() {
+ s();
+ }
+ function G(j) {
+ j === 2 && Wct(a);
+ }
+ function Z() {
+ if (v = [], !!t.length) {
+ var j = 0;
+ v[j] = { element: r[0][0], gd: a, prepFn: O, doneFn: U, clickFn: G }, Oue.init(v[j]);
+ }
+ }
+ };
+ function jct(e, t) {
+ for (var r = 0; r < t.length; r++) {
+ var n = t[r];
+ e[r] = [];
+ for (var i = 0; i < n.length; i++) {
+ e[r][i] = [];
+ for (var a = 0; a < n[i].length; a++) e[r][i][a] = n[i][a];
+ }
+ }
+ return e;
+ }
+ function Bue(e, t) {
+ var r = e[t][1], n = e[t][2], i = e.length, a, o, s;
+ return a = (t + 1) % i, o = e[a][1], s = e[a][2], o === r && s === n && (a = (t + 2) % i, o = e[a][1], s = e[a][2]), [a, o, s];
+ }
+ function Wct(e) {
+ if (Uue(e._fullLayout.dragmode)) {
+ Gue(e);
+ var t = e._fullLayout._activeSelectionIndex, r = (e.layout || {}).selections || [];
+ if (t < r.length) {
+ for (var n = [], i = 0; i < r.length; i++) i !== t && n.push(r[i]);
+ delete e._fullLayout._activeSelectionIndex;
+ var a = e._fullLayout.selections[t];
+ e._fullLayout._deselect = { xref: a.xref, yref: a.yref }, Vue.call("_guiRelayout", e, { selections: n });
+ }
+ }
+ }
+ });
+ var dP = ye((Xar, Que) => {
+ var Xct = Oa(), Yue = qa(), aN = Dr(), Xb = ho(), Zct = m_().readPaths, Yct = lP(), cP = tN(), Kue = o_().clearOutlineControllers, nN = ka(), fP = So(), Kct = vl().arrayEditor, jue = yv(), Wue = Eg(), Zb = TM(), Ep = x_(), oN = Ep.getPathString;
+ Que.exports = { draw: sN, drawOne: Jue, eraseActiveShape: eft, drawLabel: cP };
+ function sN(e) {
+ var t = e._fullLayout;
+ t._shapeUpperLayer.selectAll("path").remove(), t._shapeLowerLayer.selectAll("path").remove(), t._shapeUpperLayer.selectAll("text").remove(), t._shapeLowerLayer.selectAll("text").remove();
+ for (var r in t._plots) {
+ var n = t._plots[r].shapelayer;
+ n && (n.selectAll("path").remove(), n.selectAll("text").remove());
+ }
+ for (var i = 0; i < t.shapes.length; i++) t.shapes[i].visible === true && Jue(e, i);
+ }
+ function uP(e) {
+ return !!e._fullLayout._outlining;
+ }
+ function hP(e) {
+ return !e._context.edits.shapePosition;
+ }
+ function Jue(e, t) {
+ e._fullLayout._paperdiv.selectAll('.shapelayer [data-index="' + t + '"]').remove();
+ var r = Ep.makeShapesOptionsAndPlotinfo(e, t), n = r.options, i = r.plotinfo;
+ if (!n._input || n.visible !== true) return;
+ let a = Array.isArray(n.xref) || Array.isArray(n.yref);
+ if (n.layer === "above") s(e._fullLayout._shapeUpperLayer);
+ else if (n.xref.includes("paper") || n.yref.includes("paper")) s(e._fullLayout._shapeLowerLayer);
+ else if (n.layer === "between" && !a) s(i.shapelayerBetween);
+ else if (i._hadPlotinfo) {
+ var o = i.mainplotinfo || i;
+ s(o.shapelayer);
+ } else s(e._fullLayout._shapeLowerLayer);
+ function s(l) {
+ var u = oN(e, n), c = { "data-index": t, "fill-rule": n.fillrule, d: u }, f = n.opacity, h = n.fillcolor, d = n.line.width ? n.line.color : "rgba(0,0,0,0)", v = n.line.width, _ = n.line.dash;
+ !v && n.editable === true && (v = 5, _ = "solid");
+ var b = u[u.length - 1] !== "Z", p = hP(e) && n.editable && e._fullLayout._activeShapeIndex === t;
+ p && (h = b ? "rgba(0,0,0,0)" : e._fullLayout.activeshape.fillcolor, f = e._fullLayout.activeshape.opacity);
+ var k = l.append("g").classed("shape-group", true).attr({ "data-index": t }), E = k.append("path").attr(c).style("opacity", f).call(nN.stroke, d).call(nN.fill, h).call(fP.dashLine, _, v);
+ $ue(k, e, n), cP(e, t, n, k);
+ var T;
+ if ((p || e._context.edits.shapePosition) && (T = Kct(e.layout, "shapes", n)), p) {
+ E.style({ cursor: "move" });
+ var L = { element: E.node(), plotinfo: i, gd: e, editHelpers: T, hasText: n.label.text || n.label.texttemplate, isActiveShape: true }, x = Zct(u, e);
+ Yct(x, E, L);
+ } else e._context.edits.shapePosition ? $ct(e, E, n, t, l, T) : n.editable === true && E.style("pointer-events", b || nN.opacity(h) * f <= 0.5 ? "stroke" : "all");
+ E.node().addEventListener("click", function() {
+ return Qct(e, E);
+ });
+ }
+ }
+ function $ue(e, t, r) {
+ let n = r.xref, i = r.yref;
+ if (Array.isArray(n) || Array.isArray(i)) {
+ let a = "clip" + t._fullLayout._uid + "shape" + r._index, o = Jct(t, n, i);
+ aN.ensureSingleById(t._fullLayout._clips, "clipPath", a, function(s) {
+ s.append("rect");
+ }).select("rect").attr(o), fP.setClipUrl(e, a, t);
+ } else {
+ let a = (n + i).replace(/paper/g, "").replace(/[xyz][0-9]* *domain/g, "");
+ fP.setClipUrl(e, a ? "clip" + t._fullLayout._uid + a : null, t);
+ }
+ }
+ function Jct(e, t, r) {
+ let n = e._fullLayout._size;
+ function i(s, l) {
+ let u = (Array.isArray(s) ? s : [s]).map((h) => Xb.getFromId(e, h)).filter(Boolean);
+ if (!u.length) return l ? [n.t, n.t + n.h] : [n.l, n.l + n.w];
+ let c = u.map(function(h) {
+ return h._offset;
+ }), f = u.map(function(h) {
+ return h._offset + h._length;
+ });
+ return [Math.min(...c), Math.max(...f)];
+ }
+ let a = i(t, false), o = i(r, true);
+ return { x: a[0], y: o[0], width: a[1] - a[0], height: o[1] - o[0] };
+ }
+ function $ct(e, t, r, n, i, a) {
+ var o = 10, s = 10, l = r.xsizemode === "pixel", u = r.ysizemode === "pixel", c = r.type === "line", f = r.type === "path", h = a.modifyItem, d, v, _, b, p, k, E, T, L, x, C, M, g, P, A, z = Xct.select(t.node().parentNode), O = Xb.getFromId(e, r.xref), U = Xb.getRefType(r.xref), G = Xb.getFromId(e, r.yref), Z = Xb.getRefType(r.yref), j = r.x0shift, N = r.x1shift, H = r.y0shift, re = r.y1shift, oe = function(ot, ut) {
+ var Wt = Ep.getDataToPixel(e, O, ut, false, U);
+ return Wt(ot);
+ }, _e = function(ot, ut) {
+ var Wt = Ep.getDataToPixel(e, G, ut, true, Z);
+ return Wt(ot);
+ }, Ce = Ep.getPixelToData(e, O, false, U), Le = Ep.getPixelToData(e, G, true, Z), ge = Ee(), ie = { element: ge.node(), gd: e, prepFn: Pe, doneFn: me, clickFn: De }, Se;
+ jue.init(ie), ge.node().onmousemove = Be;
+ function Ee() {
+ return c ? Ae() : t;
+ }
+ function Ae() {
+ var ot = 10, ut = Math.max(r.line.width, ot), Wt = i.append("g").attr("data-index", n).attr("drag-helper", true);
+ Wt.append("path").attr("d", t.attr("d")).style({ cursor: "move", "stroke-width": ut, "stroke-opacity": "0" });
+ var Nt = { "fill-opacity": "0" }, $t = Math.max(ut / 2, ot);
+ return Wt.append("circle").attr({ "data-line-point": "start-point", cx: l ? oe(r.xanchor) + r.x0 : oe(r.x0, j), cy: u ? _e(r.yanchor) - r.y0 : _e(r.y0, H), r: $t }).style(Nt).classed("cursor-grab", true), Wt.append("circle").attr({ "data-line-point": "end-point", cx: l ? oe(r.xanchor) + r.x1 : oe(r.x1, N), cy: u ? _e(r.yanchor) - r.y1 : _e(r.y1, re), r: $t }).style(Nt).classed("cursor-grab", true), Wt;
+ }
+ function Be(ot) {
+ if (uP(e)) {
+ Se = null;
+ return;
+ }
+ if (c) ot.target.tagName === "path" ? Se = "move" : Se = ot.target.attributes["data-line-point"].value === "start-point" ? "resize-over-start-point" : "resize-over-end-point";
+ else {
+ var ut = ie.element.getBoundingClientRect(), Wt = ut.right - ut.left, Nt = ut.bottom - ut.top, $t = ot.clientX - ut.left, sr = ot.clientY - ut.top, Tr = !f && Wt > o && Nt > s && !ot.shiftKey ? jue.getCursor($t / Wt, 1 - sr / Nt) : "move";
+ Wue(t, Tr), Se = Tr.split("-")[0];
+ }
+ }
+ function Pe(ot) {
+ uP(e) || (l && (p = oe(r.xanchor)), u && (k = _e(r.yanchor)), r.type === "path" ? A = r.path : (d = l ? r.x0 : oe(r.x0), v = u ? r.y0 : _e(r.y0), _ = l ? r.x1 : oe(r.x1), b = u ? r.y1 : _e(r.y1)), d < _ ? (L = d, g = "x0", x = _, P = "x1") : (L = _, g = "x1", x = d, P = "x0"), !u && v < b || u && v > b ? (E = v, C = "y0", T = b, M = "y1") : (E = b, C = "y1", T = v, M = "y0"), Be(ot), lt(i, r), Vt(t, r, e), ie.moveFn = Se === "move" ? ce : je, ie.altKey = ot.altKey);
+ }
+ function me() {
+ uP(e) || (Wue(t), pt(i), $ue(t, e, r), Yue.call("_guiRelayout", e, a.getUpdateObj()));
+ }
+ function De() {
+ uP(e) || pt(i);
+ }
+ function ce(ot, ut) {
+ if (r.type === "path") {
+ var Wt = function(sr) {
+ return sr;
+ }, Nt = Wt, $t = Wt;
+ l ? h("xanchor", r.xanchor = Ce(p + ot)) : (Nt = function(Tr) {
+ return Ce(oe(Tr) + ot);
+ }, O && O.type === "date" && (Nt = Ep.encodeDate(Nt))), u ? h("yanchor", r.yanchor = Le(k + ut)) : ($t = function(Tr) {
+ return Le(_e(Tr) + ut);
+ }, G && G.type === "date" && ($t = Ep.encodeDate($t))), h("path", r.path = Xue(A, Nt, $t));
+ } else l ? h("xanchor", r.xanchor = Ce(p + ot)) : (h("x0", r.x0 = Ce(d + ot)), h("x1", r.x1 = Ce(_ + ot))), u ? h("yanchor", r.yanchor = Le(k + ut)) : (h("y0", r.y0 = Le(v + ut)), h("y1", r.y1 = Le(b + ut)));
+ t.attr("d", oN(e, r)), lt(i, r), cP(e, n, r, z);
+ }
+ function je(ot, ut) {
+ if (f) {
+ var Wt = function(Lr) {
+ return Lr;
+ }, Nt = Wt, $t = Wt;
+ l ? h("xanchor", r.xanchor = Ce(p + ot)) : (Nt = function(ti) {
+ return Ce(oe(ti) + ot);
+ }, O && O.type === "date" && (Nt = Ep.encodeDate(Nt))), u ? h("yanchor", r.yanchor = Le(k + ut)) : ($t = function(ti) {
+ return Le(_e(ti) + ut);
+ }, G && G.type === "date" && ($t = Ep.encodeDate($t))), h("path", r.path = Xue(A, Nt, $t));
+ } else if (c) {
+ if (Se === "resize-over-start-point") {
+ var sr = d + ot, Tr = u ? v - ut : v + ut;
+ h("x0", r.x0 = l ? sr : Ce(sr)), h("y0", r.y0 = u ? Tr : Le(Tr));
+ } else if (Se === "resize-over-end-point") {
+ var fr = _ + ot, $e = u ? b - ut : b + ut;
+ h("x1", r.x1 = l ? fr : Ce(fr)), h("y1", r.y1 = u ? $e : Le($e));
+ }
+ } else {
+ var St = function(Lr) {
+ return Se.indexOf(Lr) !== -1;
+ }, Qt = St("n"), Gt = St("s"), _t = St("w"), It = St("e"), mt = Qt ? E + ut : E, er = Gt ? T + ut : T, lr = _t ? L + ot : L, wr = It ? x + ot : x;
+ u && (Qt && (mt = E - ut), Gt && (er = T - ut)), (!u && er - mt > s || u && mt - er > s) && (h(C, r[C] = u ? mt : Le(mt)), h(M, r[M] = u ? er : Le(er))), wr - lr > o && (h(g, r[g] = l ? lr : Ce(lr)), h(P, r[P] = l ? wr : Ce(wr)));
+ }
+ t.attr("d", oN(e, r)), lt(i, r), cP(e, n, r, z);
+ }
+ function lt(ot, ut) {
+ (l || u) && Wt();
+ function Wt() {
+ var Nt = ut.type !== "path", $t = ot.selectAll(".visual-cue").data([0]), sr = 1;
+ $t.enter().append("path").attr({ fill: "#fff", "fill-rule": "evenodd", stroke: "#000", "stroke-width": sr }).classed("visual-cue", true);
+ var Tr = oe(l ? ut.xanchor : aN.midRange(Nt ? [ut.x0, ut.x1] : Ep.extractPathCoords(ut.path, Zb.paramIsX))), fr = _e(u ? ut.yanchor : aN.midRange(Nt ? [ut.y0, ut.y1] : Ep.extractPathCoords(ut.path, Zb.paramIsY)));
+ if (Tr = Ep.roundPositionForSharpStrokeRendering(Tr, sr), fr = Ep.roundPositionForSharpStrokeRendering(fr, sr), l && u) {
+ var $e = "M" + (Tr - 1 - sr) + "," + (fr - 1 - sr) + "h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";
+ $t.attr("d", $e);
+ } else if (l) {
+ var St = "M" + (Tr - 1 - sr) + "," + (fr - 9 - sr) + "v18 h2 v-18 Z";
+ $t.attr("d", St);
+ } else {
+ var Qt = "M" + (Tr - 9 - sr) + "," + (fr - 1 - sr) + "h18 v2 h-18 Z";
+ $t.attr("d", Qt);
+ }
+ }
+ }
+ function pt(ot) {
+ ot.selectAll(".visual-cue").remove();
+ }
+ function Vt(ot, ut, Wt) {
+ var Nt = ut.xref, $t = ut.yref, sr = Xb.getFromId(Wt, Nt), Tr = Xb.getFromId(Wt, $t), fr = "";
+ Nt !== "paper" && !sr.autorange && (fr += Nt), $t !== "paper" && !Tr.autorange && (fr += $t), fP.setClipUrl(ot, fr ? "clip" + Wt._fullLayout._uid + fr : null, Wt);
+ }
+ }
+ function Xue(e, t, r) {
+ return e.replace(Zb.segmentRE, function(n) {
+ var i = 0, a = n.charAt(0), o = Zb.paramIsX[a], s = Zb.paramIsY[a], l = Zb.numParams[a], u = n.slice(1).replace(Zb.paramRE, function(c) {
+ return i >= l || (o[i] ? c = t(c) : s[i] && (c = r(c)), i++), c;
+ });
+ return a + u;
+ });
+ }
+ function Qct(e, t) {
+ if (hP(e)) {
+ var r = t.node(), n = +r.getAttribute("data-index");
+ if (n >= 0) {
+ if (n === e._fullLayout._activeShapeIndex) {
+ Zue(e);
+ return;
+ }
+ e._fullLayout._activeShapeIndex = n, e._fullLayout._deactivateShape = Zue, sN(e);
+ }
+ }
+ }
+ function Zue(e) {
+ if (hP(e)) {
+ var t = e._fullLayout._activeShapeIndex;
+ t >= 0 && (Kue(e), delete e._fullLayout._activeShapeIndex, sN(e));
+ }
+ }
+ function eft(e) {
+ if (hP(e)) {
+ Kue(e);
+ var t = e._fullLayout._activeShapeIndex, r = (e.layout || {}).shapes || [];
+ if (t < r.length) {
+ for (var n = [], i = 0; i < r.length; i++) i !== t && n.push(r[i]);
+ return delete e._fullLayout._activeShapeIndex, Yue.call("_guiRelayout", e, { shapes: n });
+ }
+ }
+ }
+ });
+ var cN = ye((Zar, lce) => {
+ var S0 = qa(), ece = Mc(), tce = hf(), Pl = $L(), tft = dP().eraseActiveShape, vP = Dr(), tl = vP._, Il = lce.exports = {};
+ Il.toImage = { name: "toImage", title: function(e) {
+ var t = e._context.toImageButtonOptions || {}, r = t.format || "png";
+ return r === "png" ? tl(e, "Download plot as a PNG") : tl(e, "Download plot");
+ }, icon: Pl.camera, click: function(e) {
+ var t = e._context.toImageButtonOptions, r = { format: t.format || "png" };
+ vP.notifier(tl(e, "Taking snapshot - this may take a few seconds"), "long"), ["filename", "width", "height", "scale"].forEach(function(n) {
+ n in t && (r[n] = t[n]);
+ }), S0.call("downloadImage", e, r).then(function(n) {
+ vP.notifier(tl(e, "Snapshot succeeded") + " - " + n, "long");
+ }).catch(function() {
+ vP.notifier(tl(e, "Sorry, there was a problem downloading your snapshot!"), "long");
+ });
+ } };
+ Il.sendDataToCloud = { name: "sendDataToCloud", title: function(e) {
+ return tl(e, "Edit in Chart Studio");
+ }, icon: Pl.disk, click: function(e) {
+ ece.sendDataToCloud(e);
+ } };
+ Il.editInChartStudio = { name: "editInChartStudio", title: function(e) {
+ return tl(e, "Edit in Chart Studio");
+ }, icon: Pl.pencil, click: function(e) {
+ ece.sendDataToCloud(e);
+ } };
+ Il.zoom2d = { name: "zoom2d", _cat: "zoom", title: function(e) {
+ return tl(e, "Zoom");
+ }, attr: "dragmode", val: "zoom", icon: Pl.zoombox, click: Bv };
+ Il.pan2d = { name: "pan2d", _cat: "pan", title: function(e) {
+ return tl(e, "Pan");
+ }, attr: "dragmode", val: "pan", icon: Pl.pan, click: Bv };
+ Il.select2d = { name: "select2d", _cat: "select", title: function(e) {
+ return tl(e, "Box Select");
+ }, attr: "dragmode", val: "select", icon: Pl.selectbox, click: Bv };
+ Il.lasso2d = { name: "lasso2d", _cat: "lasso", title: function(e) {
+ return tl(e, "Lasso Select");
+ }, attr: "dragmode", val: "lasso", icon: Pl.lasso, click: Bv };
+ Il.drawclosedpath = { name: "drawclosedpath", title: function(e) {
+ return tl(e, "Draw closed freeform");
+ }, attr: "dragmode", val: "drawclosedpath", icon: Pl.drawclosedpath, click: Bv };
+ Il.drawopenpath = { name: "drawopenpath", title: function(e) {
+ return tl(e, "Draw open freeform");
+ }, attr: "dragmode", val: "drawopenpath", icon: Pl.drawopenpath, click: Bv };
+ Il.drawline = { name: "drawline", title: function(e) {
+ return tl(e, "Draw line");
+ }, attr: "dragmode", val: "drawline", icon: Pl.drawline, click: Bv };
+ Il.drawrect = { name: "drawrect", title: function(e) {
+ return tl(e, "Draw rectangle");
+ }, attr: "dragmode", val: "drawrect", icon: Pl.drawrect, click: Bv };
+ Il.drawcircle = { name: "drawcircle", title: function(e) {
+ return tl(e, "Draw circle");
+ }, attr: "dragmode", val: "drawcircle", icon: Pl.drawcircle, click: Bv };
+ Il.eraseshape = { name: "eraseshape", title: function(e) {
+ return tl(e, "Erase active shape");
+ }, icon: Pl.eraseshape, click: tft };
+ Il.zoomIn2d = { name: "zoomIn2d", _cat: "zoomin", title: function(e) {
+ return tl(e, "Zoom in");
+ }, attr: "zoom", val: "in", icon: Pl.zoom_plus, click: Bv };
+ Il.zoomOut2d = { name: "zoomOut2d", _cat: "zoomout", title: function(e) {
+ return tl(e, "Zoom out");
+ }, attr: "zoom", val: "out", icon: Pl.zoom_minus, click: Bv };
+ Il.autoScale2d = { name: "autoScale2d", _cat: "autoscale", title: function(e) {
+ return tl(e, "Autoscale");
+ }, attr: "zoom", val: "auto", icon: Pl.autoscale, click: Bv };
+ Il.resetScale2d = { name: "resetScale2d", _cat: "resetscale", title: function(e) {
+ return tl(e, "Reset axes");
+ }, attr: "zoom", val: "reset", icon: Pl.home, click: Bv };
+ Il.hoverClosestCartesian = { name: "hoverClosestCartesian", _cat: "hoverclosest", title: function(e) {
+ return tl(e, "Show closest data on hover");
+ }, attr: "hovermode", val: "closest", icon: Pl.tooltip_basic, gravity: "ne", click: Bv };
+ Il.hoverCompareCartesian = { name: "hoverCompareCartesian", _cat: "hoverCompare", title: function(e) {
+ return tl(e, "Compare data on hover");
+ }, attr: "hovermode", val: function(e) {
+ return e._fullLayout._isHoriz ? "y" : "x";
+ }, icon: Pl.tooltip_compare, gravity: "ne", click: Bv };
+ function Bv(e, t) {
+ var r = t.currentTarget, n = r.getAttribute("data-attr"), i = r.getAttribute("data-val") || true, a = e._fullLayout, o = {}, s = tce.list(e, null, true), l = a._cartesianSpikesEnabled, u, c;
+ if (n === "zoom") {
+ var f = i === "in" ? 0.5 : 2, h = (1 + f) / 2, d = (1 - f) / 2, v, _;
+ for (c = 0; c < s.length; c++) if (u = s[c], _ = u.modebardisable === "none" || u.modebardisable.indexOf(i === "auto" || i === "reset" ? "autoscale" : "zoominout") === -1, _ && !u.fixedrange) if (v = u._name, i === "auto") o[v + ".autorange"] = true;
+ else if (i === "reset") u._rangeInitial0 === void 0 && u._rangeInitial1 === void 0 ? o[v + ".autorange"] = true : u._rangeInitial0 === void 0 ? (o[v + ".autorange"] = u._autorangeInitial, o[v + ".range"] = [null, u._rangeInitial1]) : u._rangeInitial1 === void 0 ? (o[v + ".range"] = [u._rangeInitial0, null], o[v + ".autorange"] = u._autorangeInitial) : o[v + ".range"] = [u._rangeInitial0, u._rangeInitial1], u._showSpikeInitial !== void 0 && (o[v + ".showspikes"] = u._showSpikeInitial, l === "on" && !u._showSpikeInitial && (l = "off"));
+ else {
+ var b = [u.r2l(u.range[0]), u.r2l(u.range[1])], p = [h * b[0] + d * b[1], h * b[1] + d * b[0]];
+ o[v + ".range[0]"] = u.l2r(p[0]), o[v + ".range[1]"] = u.l2r(p[1]);
+ }
+ } else n === "hovermode" && (i === "x" || i === "y") && (i = a._isHoriz ? "y" : "x", r.setAttribute("data-val", i)), o[n] = i;
+ a._cartesianSpikesEnabled = l, S0.call("_guiRelayout", e, o);
+ }
+ Il.zoom3d = { name: "zoom3d", _cat: "zoom", title: function(e) {
+ return tl(e, "Zoom");
+ }, attr: "scene.dragmode", val: "zoom", icon: Pl.zoombox, click: pP };
+ Il.pan3d = { name: "pan3d", _cat: "pan", title: function(e) {
+ return tl(e, "Pan");
+ }, attr: "scene.dragmode", val: "pan", icon: Pl.pan, click: pP };
+ Il.orbitRotation = { name: "orbitRotation", title: function(e) {
+ return tl(e, "Orbital rotation");
+ }, attr: "scene.dragmode", val: "orbit", icon: Pl["3d_rotate"], click: pP };
+ Il.tableRotation = { name: "tableRotation", title: function(e) {
+ return tl(e, "Turntable rotation");
+ }, attr: "scene.dragmode", val: "turntable", icon: Pl["z-axis"], click: pP };
+ function pP(e, t) {
+ for (var r = t.currentTarget, n = r.getAttribute("data-attr"), i = r.getAttribute("data-val") || true, a = e._fullLayout._subplots.gl3d || [], o = {}, s = n.split("."), l = 0; l < a.length; l++) o[a[l] + "." + s[1]] = i;
+ var u = i === "pan" ? i : "zoom";
+ o.dragmode = u, S0.call("_guiRelayout", e, o);
+ }
+ Il.resetCameraDefault3d = { name: "resetCameraDefault3d", _cat: "resetCameraDefault", title: function(e) {
+ return tl(e, "Reset camera to default");
+ }, attr: "resetDefault", icon: Pl.home, click: lN };
+ Il.resetCameraLastSave3d = { name: "resetCameraLastSave3d", _cat: "resetCameraLastSave", title: function(e) {
+ return tl(e, "Reset camera to last save");
+ }, attr: "resetLastSave", icon: Pl.movie, click: lN };
+ function lN(e, t) {
+ for (var r = t.currentTarget, n = r.getAttribute("data-attr"), i = n === "resetLastSave", a = n === "resetDefault", o = e._fullLayout, s = o._subplots.gl3d || [], l = {}, u = 0; u < s.length; u++) {
+ var c = s[u], f = c + ".camera", h = c + ".aspectratio", d = c + ".aspectmode", v = o[c]._scene, _;
+ i ? (l[f + ".up"] = v.viewInitial.up, l[f + ".eye"] = v.viewInitial.eye, l[f + ".center"] = v.viewInitial.center, _ = true) : a && (l[f + ".up"] = null, l[f + ".eye"] = null, l[f + ".center"] = null, _ = true), _ && (l[h + ".x"] = v.viewInitial.aspectratio.x, l[h + ".y"] = v.viewInitial.aspectratio.y, l[h + ".z"] = v.viewInitial.aspectratio.z, l[d] = v.viewInitial.aspectmode);
+ }
+ S0.call("_guiRelayout", e, l);
+ }
+ Il.hoverClosest3d = { name: "hoverClosest3d", _cat: "hoverclosest", title: function(e) {
+ return tl(e, "Toggle show closest data on hover");
+ }, attr: "hovermode", val: null, toggle: true, icon: Pl.tooltip_basic, gravity: "ne", click: rft };
+ function rce(e, t) {
+ var r = t.currentTarget, n = r._previousVal, i = e._fullLayout, a = i._subplots.gl3d || [], o = ["xaxis", "yaxis", "zaxis"], s = {}, l = {};
+ if (n) l = n, r._previousVal = null;
+ else {
+ for (var u = 0; u < a.length; u++) {
+ var c = a[u], f = i[c], h = c + ".hovermode";
+ s[h] = f.hovermode, l[h] = false;
+ for (var d = 0; d < 3; d++) {
+ var v = o[d], _ = c + "." + v + ".showspikes";
+ l[_] = false, s[_] = f[v].showspikes;
+ }
+ }
+ r._previousVal = s;
+ }
+ return l;
+ }
+ function rft(e, t) {
+ var r = rce(e, t);
+ S0.call("_guiRelayout", e, r);
+ }
+ Il.zoomInGeo = { name: "zoomInGeo", _cat: "zoomin", title: function(e) {
+ return tl(e, "Zoom in");
+ }, attr: "zoom", val: "in", icon: Pl.zoom_plus, click: uN };
+ Il.zoomOutGeo = { name: "zoomOutGeo", _cat: "zoomout", title: function(e) {
+ return tl(e, "Zoom out");
+ }, attr: "zoom", val: "out", icon: Pl.zoom_minus, click: uN };
+ Il.resetGeo = { name: "resetGeo", _cat: "reset", title: function(e) {
+ return tl(e, "Reset");
+ }, attr: "reset", val: null, icon: Pl.autoscale, click: uN };
+ Il.hoverClosestGeo = { name: "hoverClosestGeo", _cat: "hoverclosest", title: function(e) {
+ return tl(e, "Toggle show closest data on hover");
+ }, attr: "hovermode", val: null, toggle: true, icon: Pl.tooltip_basic, gravity: "ne", click: nce };
+ function uN(e, t) {
+ for (var r = t.currentTarget, n = r.getAttribute("data-attr"), i = r.getAttribute("data-val") || true, a = e._fullLayout, o = a._subplots.geo || [], s = 0; s < o.length; s++) {
+ var l = o[s], u = a[l];
+ if (n === "zoom") {
+ var c = u.projection.scale, f = i === "in" ? 2 * c : 0.5 * c;
+ S0.call("_guiRelayout", e, l + ".projection.scale", f);
+ }
+ }
+ n === "reset" && rT(e, "geo");
+ }
+ Il.hoverClosestPie = { name: "hoverClosestPie", _cat: "hoverclosest", title: function(e) {
+ return tl(e, "Toggle show closest data on hover");
+ }, attr: "hovermode", val: "closest", icon: Pl.tooltip_basic, gravity: "ne", click: nce };
+ function ice(e) {
+ var t = e._fullLayout;
+ return t.hovermode ? false : t._has("cartesian") ? t._isHoriz ? "y" : "x" : "closest";
+ }
+ function nce(e) {
+ var t = ice(e);
+ S0.call("_guiRelayout", e, "hovermode", t);
+ }
+ Il.resetViewSankey = { name: "resetSankeyGroup", title: function(e) {
+ return tl(e, "Reset view");
+ }, icon: Pl.home, click: function(e) {
+ for (var t = { "node.groups": [], "node.x": [], "node.y": [] }, r = 0; r < e._fullData.length; r++) {
+ var n = e._fullData[r]._viewInitial;
+ t["node.groups"].push(n.node.groups.slice()), t["node.x"].push(n.node.x.slice()), t["node.y"].push(n.node.y.slice());
+ }
+ S0.call("restyle", e, t);
+ } };
+ Il.toggleHover = { name: "toggleHover", title: function(e) {
+ return tl(e, "Toggle show closest data on hover");
+ }, attr: "hovermode", val: null, toggle: true, icon: Pl.tooltip_basic, gravity: "ne", click: function(e, t) {
+ var r = rce(e, t);
+ r.hovermode = ice(e), S0.call("_guiRelayout", e, r);
+ } };
+ Il.resetViews = { name: "resetViews", title: function(e) {
+ return tl(e, "Reset views");
+ }, icon: Pl.home, click: function(e, t) {
+ var r = t.currentTarget;
+ r.setAttribute("data-attr", "zoom"), r.setAttribute("data-val", "reset"), Bv(e, t), r.setAttribute("data-attr", "resetLastSave"), lN(e, t), rT(e, "geo"), rT(e, "mapbox"), rT(e, "map");
+ } };
+ Il.toggleSpikelines = { name: "toggleSpikelines", title: function(e) {
+ return tl(e, "Toggle Spike Lines");
+ }, icon: Pl.spikeline, attr: "_cartesianSpikesEnabled", val: "on", click: function(e) {
+ var t = e._fullLayout, r = t._cartesianSpikesEnabled;
+ t._cartesianSpikesEnabled = r === "on" ? "off" : "on", S0.call("_guiRelayout", e, ift(e));
+ } };
+ function ift(e) {
+ for (var t = e._fullLayout, r = t._cartesianSpikesEnabled === "on", n = tce.list(e, null, true), i = {}, a = 0; a < n.length; a++) {
+ var o = n[a];
+ i[o._name + ".showspikes"] = r ? true : o._showSpikeInitial;
+ }
+ return i;
+ }
+ Il.resetViewMapbox = { name: "resetViewMapbox", _cat: "resetView", title: function(e) {
+ return tl(e, "Reset view");
+ }, attr: "reset", icon: Pl.home, click: function(e) {
+ rT(e, "mapbox");
+ } };
+ Il.resetViewMap = { name: "resetViewMap", _cat: "resetView", title: function(e) {
+ return tl(e, "Reset view");
+ }, attr: "reset", icon: Pl.home, click: function(e) {
+ rT(e, "map");
+ } };
+ Il.zoomInMapbox = { name: "zoomInMapbox", _cat: "zoomin", title: function(e) {
+ return tl(e, "Zoom in");
+ }, attr: "zoom", val: "in", icon: Pl.zoom_plus, click: ace };
+ Il.zoomInMap = { name: "zoomInMap", _cat: "zoomin", title: function(e) {
+ return tl(e, "Zoom in");
+ }, attr: "zoom", val: "in", icon: Pl.zoom_plus, click: oce };
+ Il.zoomOutMapbox = { name: "zoomOutMapbox", _cat: "zoomout", title: function(e) {
+ return tl(e, "Zoom out");
+ }, attr: "zoom", val: "out", icon: Pl.zoom_minus, click: ace };
+ Il.zoomOutMap = { name: "zoomOutMap", _cat: "zoomout", title: function(e) {
+ return tl(e, "Zoom out");
+ }, attr: "zoom", val: "out", icon: Pl.zoom_minus, click: oce };
+ function ace(e, t) {
+ sce(e, t, "mapbox");
+ }
+ function oce(e, t) {
+ sce(e, t, "map");
+ }
+ function sce(e, t, r) {
+ for (var n = t.currentTarget, i = n.getAttribute("data-val"), a = e._fullLayout, o = a._subplots[r] || [], s = 1.05, l = {}, u = 0; u < o.length; u++) {
+ var c = o[u], f = a[c].zoom, h = i === "in" ? s * f : f / s;
+ l[c + ".zoom"] = h;
+ }
+ S0.call("_guiRelayout", e, l);
+ }
+ function rT(e, t) {
+ for (var r = e._fullLayout, n = r._subplots[t] || [], i = {}, a = 0; a < n.length; a++) for (var o = n[a], s = r[o]._subplot, l = s.viewInitial, u = Object.keys(l), c = 0; c < u.length; c++) {
+ var f = u[c];
+ i[o + "." + f] = l[f];
+ }
+ S0.call("_guiRelayout", e, i);
+ }
+ });
+ var fN = ye((Yar, hce) => {
+ var uce = cN(), nft = Object.keys(uce), cce = ["drawline", "drawopenpath", "drawclosedpath", "drawcircle", "drawrect", "eraseshape"], fce = ["v1hovermode", "hoverclosest", "hovercompare", "togglehover", "togglespikelines"].concat(cce), iT = [], aft = function(e) {
+ if (fce.indexOf(e._cat || e.name) === -1) {
+ var t = e.name, r = (e._cat || e.name).toLowerCase();
+ iT.indexOf(t) === -1 && iT.push(t), iT.indexOf(r) === -1 && iT.push(r);
+ }
+ };
+ nft.forEach(function(e) {
+ aft(uce[e]);
+ });
+ iT.sort();
+ hce.exports = { DRAW_MODES: cce, backButtons: fce, foreButtons: iT };
+ });
+ var hN = ye((Jar, dce) => {
+ fN();
+ dce.exports = { editType: "modebar", orientation: { valType: "enumerated", values: ["v", "h"], dflt: "h", editType: "modebar" }, bgcolor: { valType: "color", editType: "modebar" }, color: { valType: "color", editType: "modebar" }, activecolor: { valType: "color", editType: "modebar" }, uirevision: { valType: "any", editType: "none" }, add: { valType: "string", arrayOk: true, dflt: "", editType: "modebar" }, remove: { valType: "string", arrayOk: true, dflt: "", editType: "modebar" } };
+ });
+ var pce = ye(($ar, vce) => {
+ var oft = Dr(), SM = ka(), sft = vl(), lft = hN();
+ vce.exports = function(t, r) {
+ var n = t.modebar || {}, i = sft.newContainer(r, "modebar");
+ function a(s, l) {
+ return oft.coerce(n, i, lft, s, l);
+ }
+ a("orientation"), a("bgcolor", SM.addOpacity(r.paper_bgcolor, 0.5));
+ var o = SM.contrast(SM.rgb(r.modebar.bgcolor));
+ a("color", SM.addOpacity(o, 0.3)), a("activecolor", SM.addOpacity(o, 0.7)), a("uirevision", r.uirevision), a("add"), a("remove");
+ };
+ });
+ var _ce = ye((Qar, yce) => {
+ var dN = Oa(), uft = Eo(), gP = Dr(), gce = $L(), cft = g6().version, fft = new DOMParser();
+ function mce(e) {
+ this.container = e.container, this.element = document.createElement("div"), this.update(e.graphInfo, e.buttons), this.container.appendChild(this.element);
+ }
+ var km = mce.prototype;
+ km.update = function(e, t) {
+ this.graphInfo = e;
+ var r = this.graphInfo._context, n = this.graphInfo._fullLayout, i = "modebar-" + n._uid;
+ this.element.setAttribute("id", i), this.element.setAttribute("role", "toolbar"), this._uid = i, this.element.className = "modebar modebar--custom", r.displayModeBar === "hover" && (this.element.className += " modebar--hover ease-bg"), n.modebar.orientation === "v" && (this.element.className += " vertical", t = t.reverse());
+ var a = n.modebar, o = "#" + i + " .modebar-group";
+ document.querySelectorAll(o).forEach(function(f) {
+ f.style.backgroundColor = a.bgcolor;
+ });
+ var s = !this.hasButtons(t), l = this.hasLogo !== r.displaylogo, u = this.locale !== r.locale;
+ if (this.locale = r.locale, (s || l || u) && (this.removeAllButtons(), this.updateButtons(t), r.watermark || r.displaylogo)) {
+ var c = this.getLogo();
+ r.watermark && (c.className = c.className + " watermark"), n.modebar.orientation === "v" ? this.element.insertBefore(c, this.element.childNodes[0]) : this.element.appendChild(c), this.hasLogo = true;
+ }
+ this.updateActiveButton(), gP.setStyleOnHover("#" + i + " .modebar-btn", ".active", ".icon path", "fill: " + a.activecolor, "fill: " + a.color, this.element);
+ };
+ km.updateButtons = function(e) {
+ var t = this;
+ this.buttons = e, this.buttonElements = [], this.buttonsNames = [], this.buttons.forEach(function(r) {
+ var n = t.createGroup();
+ r.forEach(function(i) {
+ var a = i.name;
+ if (!a) throw new Error("must provide button 'name' in button config");
+ if (t.buttonsNames.indexOf(a) !== -1) throw new Error("button name '" + a + "' is taken");
+ t.buttonsNames.push(a);
+ var o = t.createButton(i);
+ t.buttonElements.push(o), n.appendChild(o);
+ }), t.element.appendChild(n);
+ });
+ };
+ km.createGroup = function() {
+ var e = document.createElement("div");
+ e.className = "modebar-group";
+ var t = this.graphInfo._fullLayout.modebar;
+ return e.style.backgroundColor = t.bgcolor, e;
+ };
+ km.createButton = function(e) {
+ var t = this, r = document.createElement("button");
+ r.setAttribute("type", "button"), r.setAttribute("rel", "tooltip"), r.className = "modebar-btn";
+ var n = e.title;
+ n === void 0 ? n = e.name : typeof n == "function" && (n = n(this.graphInfo)), (n || n === 0) && (r.setAttribute("data-title", n), r.setAttribute("aria-label", n)), e.attr !== void 0 && r.setAttribute("data-attr", e.attr);
+ var i = e.val;
+ i !== void 0 && (typeof i == "function" && (i = i(this.graphInfo)), r.setAttribute("data-val", i));
+ var a = e.click;
+ if (typeof a != "function") throw new Error("must provide button 'click' function in button config");
+ r.addEventListener("click", function(s) {
+ e.click(t.graphInfo, s), t.updateActiveButton(s.currentTarget);
+ }), r.setAttribute("data-toggle", e.toggle || false), e.toggle && dN.select(r).classed("active", true);
+ var o = e.icon;
+ return typeof o == "function" ? r.appendChild(o()) : r.appendChild(this.createIcon(o || gce.question)), r.setAttribute("data-gravity", e.gravity || "n"), r;
+ };
+ km.createIcon = function(e) {
+ var t = uft(e.height) ? Number(e.height) : e.ascent - e.descent, r = "http://www.w3.org/2000/svg", n;
+ if (e.path) {
+ n = document.createElementNS(r, "svg"), n.setAttribute("viewBox", [0, 0, e.width, t].join(" ")), n.setAttribute("class", "icon");
+ var i = document.createElementNS(r, "path");
+ i.setAttribute("d", e.path), e.transform ? i.setAttribute("transform", e.transform) : e.ascent !== void 0 && i.setAttribute("transform", "matrix(1 0 0 -1 0 " + e.ascent + ")"), n.appendChild(i);
+ }
+ if (e.svg) {
+ var a = fft.parseFromString(e.svg, "application/xml");
+ n = a.childNodes[0];
+ }
+ return n.setAttribute("height", "1em"), n.setAttribute("width", "1em"), n;
+ };
+ km.updateActiveButton = function(e) {
+ var t = this.graphInfo._fullLayout, r = e !== void 0 ? e.getAttribute("data-attr") : null;
+ this.buttonElements.forEach(function(n) {
+ var i = n.getAttribute("data-val") || true, a = n.getAttribute("data-attr"), o = n.getAttribute("data-toggle") === "true", s = dN.select(n), l = function(f, h) {
+ var d = t.modebar, v = f.querySelector(".icon path");
+ v && (h || f.matches(":hover") ? v.style.fill = d.activecolor : v.style.fill = d.color);
+ };
+ if (o) {
+ if (a === r) {
+ var u = !s.classed("active");
+ s.classed("active", u), l(n, u);
+ }
+ } else {
+ var c = a === null ? a : gP.nestedProperty(t, a).get();
+ s.classed("active", c === i), l(n, c === i);
+ }
+ });
+ };
+ km.hasButtons = function(e) {
+ var t = this.buttons;
+ if (!t || e.length !== t.length) return false;
+ for (var r = 0; r < e.length; ++r) {
+ if (e[r].length !== t[r].length) return false;
+ for (var n = 0; n < e[r].length; n++) if (e[r][n].name !== t[r][n].name) return false;
+ }
+ return true;
+ };
+ function hft(e) {
+ return e + " (v" + cft + ")";
+ }
+ km.getLogo = function() {
+ var e = this.createGroup(), t = document.createElement("a");
+ return t.href = "https://plotly.com/", t.target = "_blank", t.setAttribute("data-title", hft(gP._(this.graphInfo, "Produced with Plotly.js"))), t.className = "modebar-btn plotlyjsicon modebar-btn--logo", t.appendChild(this.createIcon(gce.newplotlylogo)), e.appendChild(t), e;
+ };
+ km.removeAllButtons = function() {
+ for (; this.element.firstChild; ) this.element.removeChild(this.element.firstChild);
+ this.hasLogo = false;
+ };
+ km.destroy = function() {
+ gP.removeElement(this.container.querySelector(".modebar"));
+ };
+ function dft(e, t) {
+ var r = e._fullLayout, n = new mce({ graphInfo: e, container: r._modebardiv.node(), buttons: t });
+ return r._privateplot && dN.select(n.element).append("span").classed("badge-private float--left", true).text("PRIVATE"), n;
+ }
+ yce.exports = dft;
+ });
+ var wce = ye((eor, bce) => {
+ var vft = hf(), xce = Ru(), vN = qa(), pft = ip().isUnifiedHover, gft = _ce(), mP = cN(), mft = fN().DRAW_MODES, yft = Dr().extendDeep;
+ bce.exports = function(t) {
+ var r = t._fullLayout, n = t._context, i = r._modeBar;
+ if (!n.displayModeBar && !n.watermark) {
+ i && (i.destroy(), delete r._modeBar);
+ return;
+ }
+ if (!Array.isArray(n.modeBarButtonsToRemove)) throw new Error(["*modeBarButtonsToRemove* configuration options", "must be an array."].join(" "));
+ if (!Array.isArray(n.modeBarButtonsToAdd)) throw new Error(["*modeBarButtonsToAdd* configuration options", "must be an array."].join(" "));
+ var a = n.modeBarButtons, o;
+ Array.isArray(a) && a.length ? o = Aft(a) : !n.displayModeBar && n.watermark ? o = [] : o = _ft(t), i ? i.update(t, o) : r._modeBar = gft(t, o);
+ };
+ function _ft(e) {
+ var t = e._fullLayout, r = e._fullData, n = e._context;
+ function i(N, H) {
+ if (typeof H == "string") {
+ if (H.toLowerCase() === N.toLowerCase()) return true;
+ } else {
+ var re = H.name, oe = H._cat || H.name;
+ if (re === N || oe === N.toLowerCase()) return true;
+ }
+ return false;
+ }
+ var a = t.modebar.add;
+ typeof a == "string" && (a = [a]);
+ var o = t.modebar.remove;
+ typeof o == "string" && (o = [o]);
+ var s = n.modeBarButtonsToAdd.concat(a.filter(function(N) {
+ for (var H = 0; H < n.modeBarButtonsToRemove.length; H++) if (i(N, n.modeBarButtonsToRemove[H])) return false;
+ return true;
+ })), l = n.modeBarButtonsToRemove.concat(o.filter(function(N) {
+ for (var H = 0; H < n.modeBarButtonsToAdd.length; H++) if (i(N, n.modeBarButtonsToAdd[H])) return false;
+ return true;
+ })), u = t._has("cartesian"), c = t._has("gl3d"), f = t._has("geo"), h = t._has("pie"), d = t._has("funnelarea"), v = t._has("ternary"), _ = t._has("mapbox"), b = t._has("map"), p = t._has("polar"), k = t._has("smith"), E = t._has("sankey"), T = xft(t), L = pft(t.hovermode), x = [];
+ function C(N) {
+ if (N.length) {
+ for (var H = [], re = 0; re < N.length; re++) {
+ for (var oe = N[re], _e = mP[oe], Ce = _e.name.toLowerCase(), Le = (_e._cat || _e.name).toLowerCase(), ge = false, ie = 0; ie < l.length; ie++) {
+ var Se = l[ie].toLowerCase();
+ if (Se === Ce || Se === Le) {
+ ge = true;
+ break;
+ }
+ }
+ ge || H.push(mP[oe]);
+ }
+ x.push(H);
+ }
+ }
+ var M = ["toImage"];
+ n.showEditInChartStudio ? M.push("editInChartStudio") : n.showSendToCloud && M.push("sendDataToCloud"), C(M);
+ var g = [], P = [], A = [], z = [];
+ (u || h || d || v) + f + c + _ + b + p + k > 1 ? (P = ["toggleHover"], A = ["resetViews"]) : f ? (g = ["zoomInGeo", "zoomOutGeo"], P = ["hoverClosestGeo"], A = ["resetGeo"]) : c ? (P = ["hoverClosest3d"], A = ["resetCameraDefault3d", "resetCameraLastSave3d"]) : _ ? (g = ["zoomInMapbox", "zoomOutMapbox"], P = ["toggleHover"], A = ["resetViewMapbox"]) : b ? (g = ["zoomInMap", "zoomOutMap"], P = ["toggleHover"], A = ["resetViewMap"]) : h ? P = ["hoverClosestPie"] : E ? (P = ["hoverClosestCartesian", "hoverCompareCartesian"], A = ["resetViewSankey"]) : P = ["toggleHover"], u && P.push("toggleSpikelines", "hoverClosestCartesian", "hoverCompareCartesian"), (wft(r) || L) && (P = []), u && !T && (g = ["zoomIn2d", "zoomOut2d", "autoScale2d"], A[0] !== "resetViews" && (A = ["resetScale2d"])), c ? z = ["zoom3d", "pan3d", "orbitRotation", "tableRotation"] : u && !T || v ? z = ["zoom2d", "pan2d"] : _ || b || f ? z = ["pan2d"] : p && (z = ["zoom2d"]), bft(r) && z.push("select2d", "lasso2d");
+ var O = [], U = function(N) {
+ O.indexOf(N) === -1 && P.indexOf(N) !== -1 && O.push(N);
+ };
+ if (Array.isArray(s)) {
+ for (var G = [], Z = 0; Z < s.length; Z++) {
+ var j = s[Z];
+ typeof j == "string" ? (j = j.toLowerCase(), mft.indexOf(j) !== -1 ? (t._has("mapbox") || t._has("map") || t._has("cartesian")) && z.push(j) : j === "togglespikelines" ? U("toggleSpikelines") : j === "togglehover" ? U("toggleHover") : j === "hovercompare" ? U("hoverCompareCartesian") : j === "hoverclosest" ? (U("hoverClosestCartesian"), U("hoverClosestGeo"), U("hoverClosest3d"), U("hoverClosestPie")) : j === "v1hovermode" && (U("hoverClosestCartesian"), U("hoverCompareCartesian"), U("hoverClosestGeo"), U("hoverClosest3d"), U("hoverClosestPie"))) : G.push(j);
+ }
+ s = G;
+ }
+ return C(z), C(g.concat(A)), C(O), Tft(x, s);
+ }
+ function xft(e) {
+ for (var t = vft.list({ _fullLayout: e }, null, true), r = 0; r < t.length; r++) {
+ var n = t[r].modebardisable;
+ if (!t[r].fixedrange && n !== "autoscale+zoominout" && n !== "zoominout+autoscale") return false;
+ }
+ return true;
+ }
+ function bft(e) {
+ for (var t = false, r = 0; r < e.length && !t; r++) {
+ var n = e[r];
+ !n._module || !n._module.selectPoints || (vN.traceIs(n, "scatter-like") ? (xce.hasMarkers(n) || xce.hasText(n)) && (t = true) : vN.traceIs(n, "box-violin") ? (n.boxpoints === "all" || n.points === "all") && (t = true) : t = true);
+ }
+ return t;
+ }
+ function wft(e) {
+ for (var t = 0; t < e.length; t++) if (!vN.traceIs(e[t], "noHover")) return false;
+ return true;
+ }
+ function Tft(e, t) {
+ if (t.length) if (Array.isArray(t[0])) for (var r = 0; r < t.length; r++) e.push(t[r]);
+ else e.push(t);
+ return e;
+ }
+ function Aft(e) {
+ for (var t = yft([], e), r = 0; r < t.length; r++) for (var n = t[r], i = 0; i < n.length; i++) {
+ var a = n[i];
+ if (typeof a == "string") if (mP[a] !== void 0) t[r][i] = mP[a];
+ else throw new Error(["*modeBarButtons* configuration options", "invalid button name"].join(" "));
+ }
+ return t;
+ }
+ });
+ var pN = ye((tor, Tce) => {
+ Tce.exports = { moduleType: "component", name: "modebar", layoutAttributes: hN(), supplyLayoutDefaults: pce(), manage: wce() };
+ });
+ var gN = ye((ror, Ace) => {
+ var Sft = Dh().FROM_BL;
+ Ace.exports = function(t, r, n) {
+ n === void 0 && (n = Sft[t.constraintoward || "center"]);
+ var i = [t.r2l(t.range[0]), t.r2l(t.range[1])], a = i[0] + (i[1] - i[0]) * n;
+ t.range = t._input.range = [t.l2r(a + (i[0] - a) * r), t.l2r(a + (i[1] - a) * r)], t.setScale();
+ };
+ });
+ var Kb = ye((MM) => {
+ var Yb = Dr(), mN = Mg(), Lg = hf().id2name, Mft = Rd(), Sce = gN(), Eft = xm(), kft = fs().ALMOST_EQUAL, Cft = Dh().FROM_BL;
+ MM.handleDefaults = function(e, t, r) {
+ var n = r.axIds, i = r.axHasImage, a = t._axisConstraintGroups = [], o = t._axisMatchGroups = [], s, l, u, c, f, h, d, v;
+ for (s = 0; s < n.length; s++) c = Lg(n[s]), f = e[c], h = t[c], Lft(f, h, { axIds: n, layoutOut: t, hasImage: i[c] });
+ function _(M, g) {
+ for (s = 0; s < M.length; s++) {
+ l = M[s];
+ for (u in l) t[Lg(u)][g] = l;
+ }
+ }
+ for (_(o, "_matchGroup"), s = 0; s < a.length; s++) {
+ l = a[s];
+ for (u in l) if (h = t[Lg(u)], h.fixedrange) {
+ for (var b in l) {
+ var p = Lg(b);
+ (e[p] || {}).fixedrange === false && Yb.warn("fixedrange was specified as false for axis " + p + " but was overridden because another axis in its constraint group has fixedrange true"), t[p].fixedrange = true;
+ }
+ break;
+ }
+ }
+ for (s = 0; s < a.length; ) {
+ l = a[s];
+ for (u in l) {
+ h = t[Lg(u)], h._matchGroup && Object.keys(h._matchGroup).length === Object.keys(l).length && (a.splice(s, 1), s--);
+ break;
+ }
+ s++;
+ }
+ _(a, "_constraintGroup");
+ var k = ["constrain", "range", "autorange", "rangemode", "rangebreaks", "categoryorder", "categoryarray"], E = false, T = false;
+ function L() {
+ v = h[d], d === "rangebreaks" && (T = h._hasDayOfWeekBreaks);
+ }
+ for (s = 0; s < o.length; s++) {
+ l = o[s];
+ for (var x = 0; x < k.length; x++) {
+ d = k[x], v = null;
+ var C;
+ for (u in l) if (c = Lg(u), f = e[c], h = t[c], d in h) {
+ if (!h.matches && (C = h, d in f)) {
+ L();
+ break;
+ }
+ v === null && d in f && L();
+ }
+ if (d === "range" && v && f.range && f.range.length === 2 && f.range[0] !== null && f.range[1] !== null && (E = true), d === "autorange" && v === null && E && (v = false), v === null && d in C && (v = C[d]), v !== null) for (u in l) h = t[Lg(u)], h[d] = d === "range" ? v.slice() : v, d === "rangebreaks" && (h._hasDayOfWeekBreaks = T, Eft(h, t));
+ }
+ }
+ };
+ function Lft(e, t, r) {
+ var n = r.axIds, i = r.layoutOut, a = r.hasImage, o = i._axisConstraintGroups, s = i._axisMatchGroups, l = t._id, u = l.charAt(0), c = ((i._splomAxes || {})[u] || {})[l] || {}, f = t._id, h = f.charAt(0) === "x";
+ t._matchGroup = null, t._constraintGroup = null;
+ function d(z, O) {
+ return Yb.coerce(e, t, Mft, z, O);
+ }
+ d("constrain", a ? "domain" : "range"), Yb.coerce(e, t, { constraintoward: { valType: "enumerated", values: h ? ["left", "center", "right"] : ["bottom", "middle", "top"], dflt: h ? "center" : "middle" } }, "constraintoward");
+ var v = t.type, _, b, p = [];
+ for (_ = 0; _ < n.length; _++) if (b = n[_], b !== f) {
+ var k = i[Lg(b)];
+ k.type === v && p.push(b);
+ }
+ var E = kce(o, f);
+ if (E) {
+ var T = [];
+ for (_ = 0; _ < p.length; _++) b = p[_], E[b] || T.push(b);
+ p = T;
+ }
+ var L = p.length, x, C;
+ L && (e.matches || c.matches) && (x = Yb.coerce(e, t, { matches: { valType: "enumerated", values: p, dflt: p.indexOf(c.matches) !== -1 ? c.matches : void 0 } }, "matches"));
+ var M = a && !h ? t.anchor : void 0;
+ if (L && !x && (e.scaleanchor || M) && (C = Yb.coerce(e, t, { scaleanchor: { valType: "enumerated", values: p.concat([false]) } }, "scaleanchor", M)), x) {
+ t._matchGroup = yN(s, f, x, 1);
+ var g = i[Lg(x)], P = Mce(i, t) / Mce(i, g);
+ h !== (x.charAt(0) === "x") && (P = (h ? "x" : "y") + P), yN(o, f, x, P);
+ } else e.matches && n.indexOf(e.matches) !== -1 && Yb.warn("ignored " + t._name + '.matches: "' + e.matches + '" to avoid an infinite loop');
+ if (C) {
+ var A = d("scaleratio");
+ A || (A = t.scaleratio = 1), yN(o, f, C, A);
+ } else e.scaleanchor && n.indexOf(e.scaleanchor) !== -1 && Yb.warn("ignored " + t._name + '.scaleanchor: "' + e.scaleanchor + '" to avoid either an infinite loop and possibly inconsistent scaleratios, or because this axis declares a *matches* constraint.');
+ }
+ function Mce(e, t) {
+ var r = t.domain;
+ return r || (r = e[Lg(t.overlaying)].domain), r[1] - r[0];
+ }
+ function kce(e, t) {
+ for (var r = 0; r < e.length; r++) if (e[r][t]) return e[r];
+ return null;
+ }
+ function yN(e, t, r, n) {
+ var i, a, o, s, l, u = kce(e, t);
+ u === null ? (u = {}, u[t] = 1, l = e.length, e.push(u)) : l = e.indexOf(u);
+ var c = Object.keys(u);
+ for (i = 0; i < e.length; i++) if (o = e[i], i !== l && o[r]) {
+ var f = o[r];
+ for (a = 0; a < c.length; a++) s = c[a], o[s] = _N(f, _N(n, u[s]));
+ e.splice(l, 1);
+ return;
+ }
+ if (n !== 1) for (a = 0; a < c.length; a++) {
+ var h = c[a];
+ u[h] = _N(n, u[h]);
+ }
+ u[r] = 1;
+ }
+ function _N(e, t) {
+ var r = "", n = "", i, a;
+ typeof e == "string" && (r = e.match(/^[xy]*/)[0], i = r.length, e = +e.slice(i)), typeof t == "string" && (n = t.match(/^[xy]*/)[0], a = n.length, t = +t.slice(a));
+ var o = e * t;
+ return !i && !a ? o : !i || !a || r.charAt(0) === n.charAt(0) ? r + n + e * t : i === a ? o : (i > a ? r.slice(a) : n.slice(i)) + o;
+ }
+ function Pft(e, t) {
+ for (var r = t._size, n = r.h / r.w, i = {}, a = Object.keys(e), o = 0; o < a.length; o++) {
+ var s = a[o], l = e[s];
+ if (typeof l == "string") {
+ var u = l.match(/^[xy]*/)[0], c = u.length;
+ l = +l.slice(c);
+ for (var f = u.charAt(0) === "y" ? n : 1 / n, h = 0; h < c; h++) l *= f;
+ }
+ i[s] = l;
+ }
+ return i;
+ }
+ MM.enforce = function(t) {
+ var r = t._fullLayout, n = r._axisConstraintGroups || [], i, a, o, s, l, u, c, f;
+ for (i = 0; i < n.length; i++) {
+ o = Pft(n[i], r);
+ var h = Object.keys(o), d = 1 / 0, v = 0, _ = 1 / 0, b = {}, p = {}, k = false;
+ for (a = 0; a < h.length; a++) s = h[a], p[s] = l = r[Lg(s)], l._inputDomain ? l.domain = l._inputDomain.slice() : l._inputDomain = l.domain.slice(), l._inputRange || (l._inputRange = l.range.slice()), l.setScale(), b[s] = u = Math.abs(l._m) / o[s], d = Math.min(d, u), (l.constrain === "domain" || !l._constraintShrinkable) && (_ = Math.min(_, u)), delete l._constraintShrinkable, v = Math.max(v, u), l.constrain === "domain" && (k = true);
+ if (!(d > kft * v && !k)) {
+ for (a = 0; a < h.length; a++) if (s = h[a], u = b[s], l = p[s], c = l.constrain, u !== _ || c === "domain") if (f = u / _, c === "range") Sce(l, f);
+ else {
+ var E = l._inputDomain, T = (l.domain[1] - l.domain[0]) / (E[1] - E[0]), L = (l.r2l(l.range[1]) - l.r2l(l.range[0])) / (l.r2l(l._inputRange[1]) - l.r2l(l._inputRange[0]));
+ if (f /= T, f * L < 1) {
+ l.domain = l._input.domain = E.slice(), Sce(l, f);
+ continue;
+ }
+ if (L < 1 && (l.range = l._input.range = l._inputRange.slice(), f *= L), l.autorange) {
+ var x = l.r2l(l.range[0]), C = l.r2l(l.range[1]), M = (x + C) / 2, g = M, P = M, A = Math.abs(C - M), z = M - A * f * 1.0001, O = M + A * f * 1.0001, U = mN.makePadFn(r, l, 0), G = mN.makePadFn(r, l, 1);
+ Ece(l, f);
+ var Z = Math.abs(l._m), j = mN.concatExtremes(t, l), N = j.min, H = j.max, re, oe;
+ for (oe = 0; oe < N.length; oe++) re = N[oe].val - U(N[oe]) / Z, re > z && re < g && (g = re);
+ for (oe = 0; oe < H.length; oe++) re = H[oe].val + G(H[oe]) / Z, re < O && re > P && (P = re);
+ var _e = (P - g) / (2 * A);
+ f /= _e, g = l.l2r(g), P = l.l2r(P), l.range = l._input.range = x < C ? [g, P] : [P, g];
+ }
+ Ece(l, f);
+ }
+ }
+ }
+ };
+ MM.getAxisGroup = function(t, r) {
+ for (var n = t._axisMatchGroups, i = 0; i < n.length; i++) {
+ var a = n[i];
+ if (a[r]) return "g" + i;
+ }
+ return r;
+ };
+ MM.clean = function(t, r) {
+ if (r._inputDomain) {
+ for (var n = false, i = r._id, a = t._fullLayout._axisConstraintGroups, o = 0; o < a.length; o++) if (a[o][i]) {
+ n = true;
+ break;
+ }
+ (!n || r.constrain !== "domain") && (r._input.domain = r.domain = r._inputDomain, delete r._inputDomain);
+ }
+ };
+ function Ece(e, t) {
+ var r = e._inputDomain, n = Cft[e.constraintoward], i = r[0] + (r[1] - r[0]) * n;
+ e.domain = e._input.domain = [i + (r[0] - i) / t, i + (r[1] - i) / t], e.setScale();
+ }
+ });
+ var CM = ye((pd) => {
+ var _P = Oa(), Nv = qa(), Jp = Mc(), M0 = Dr(), xN = Zl(), bN = bM(), EM = ka(), nT = So(), Cce = zb(), Dce = pN(), kM = ho(), Fy = Dh(), Fce = Kb(), Ift = Fce.enforce, Rft = Fce.clean, Lce = Mg().doAutoRange, zce = "start", Dft = "middle", Oce = "end", Fft = Rh().zindexSeparator;
+ pd.layoutStyles = function(e) {
+ return M0.syncOrAsync([Jp.doAutoMargin, Oft], e);
+ };
+ function zft(e, t, r) {
+ for (var n = 0; n < r.length; n++) {
+ var i = r[n][0], a = r[n][1];
+ if (!(i[0] >= e[1] || i[1] <= e[0]) && a[0] < t[1] && a[1] > t[0]) return true;
+ }
+ return false;
+ }
+ function Oft(e) {
+ var t = e._fullLayout, r = t._size, n = r.p, i = kM.list(e, "", true), a, o, s, l, u, c;
+ if (t._paperdiv.style({ width: e._context.responsive && t.autosize && !e._context._hasZeroWidth && !e.layout.width ? "100%" : t.width + "px", height: e._context.responsive && t.autosize && !e._context._hasZeroHeight && !e.layout.height ? "100%" : t.height + "px" }).selectAll(".main-svg").call(nT.setSize, t.width, t.height), e._context.setBackground(e, t.paper_bgcolor), pd.drawMainTitle(e), Dce.manage(e), !t._has("cartesian")) return Jp.previousPromises(e);
+ function f(Pe, me, De) {
+ var ce = Pe._lw / 2;
+ if (Pe._id.charAt(0) === "x") {
+ if (me) {
+ if (De === "top") return me._offset - n - ce;
+ } else return r.t + r.h * (1 - (Pe.position || 0)) + ce % 1;
+ return me._offset + me._length + n + ce;
+ }
+ if (me) {
+ if (De === "right") return me._offset + me._length + n + ce;
+ } else return r.l + r.w * (Pe.position || 0) + ce % 1;
+ return me._offset - n - ce;
+ }
+ for (a = 0; a < i.length; a++) {
+ l = i[a];
+ var h = l._anchorAxis;
+ l._linepositions = {}, l._lw = nT.crispRound(e, l.linewidth, 1), l._mainLinePosition = f(l, h, l.side), l._mainMirrorPosition = l.mirror && h ? f(l, h, Fy.OPPOSITE_SIDE[l.side]) : null;
+ }
+ var d = [], v = [], _ = [], b = EM.opacity(t.paper_bgcolor) === 1 && EM.opacity(t.plot_bgcolor) === 1 && t.paper_bgcolor === t.plot_bgcolor;
+ for (o in t._plots) if (s = t._plots[o], s.mainplot) s.bg && s.bg.remove(), s.bg = void 0;
+ else {
+ var p = s.xaxis.domain, k = s.yaxis.domain, E = s.plotgroup;
+ if (zft(p, k, _) && o.indexOf(Fft) === -1) {
+ var T = E.node(), L = s.bg = M0.ensureSingle(E, "rect", "bg");
+ T.insertBefore(L.node(), T.childNodes[0]), v.push(o);
+ } else E.select("rect.bg").remove(), _.push([p, k]), b || (d.push(o), v.push(o));
+ }
+ var x = t._bgLayer.selectAll(".bg").data(d);
+ for (x.enter().append("rect").classed("bg", true), x.exit().remove(), x.each(function(Pe) {
+ t._plots[Pe].bg = _P.select(this);
+ }), a = 0; a < v.length; a++) s = t._plots[v[a]], u = s.xaxis, c = s.yaxis, s.bg && u._offset !== void 0 && c._offset !== void 0 && s.bg.call(nT.setRect, u._offset - n, c._offset - n, u._length + 2 * n, c._length + 2 * n).call(EM.fill, t.plot_bgcolor).style("stroke-width", 0);
+ if (!t._hasOnlyLargeSploms) for (o in t._plots) {
+ s = t._plots[o], u = s.xaxis, c = s.yaxis;
+ var C = s.clipId = "clip" + t._uid + o + "plot", M = M0.ensureSingleById(t._clips, "clipPath", C, function(Pe) {
+ Pe.classed("plotclip", true).append("rect");
+ });
+ s.clipRect = M.select("rect").attr({ width: u._length, height: c._length }), nT.setTranslate(s.plot, u._offset, c._offset);
+ var g, P;
+ s._hasClipOnAxisFalse ? (g = null, P = C) : (g = C, P = null), nT.setClipUrl(s.plot, g, e), s.layerClipId = P;
+ }
+ var A, z, O, U, G, Z, j, N, H, re, oe, _e, Ce;
+ function Le(Pe) {
+ return "M" + A + "," + Pe + "H" + z;
+ }
+ function ge(Pe) {
+ return "M" + u._offset + "," + Pe + "h" + u._length;
+ }
+ function ie(Pe) {
+ return "M" + Pe + "," + N + "V" + j;
+ }
+ function Se(Pe) {
+ return c._shift !== void 0 && (Pe += c._shift), "M" + Pe + "," + c._offset + "v" + c._length;
+ }
+ function Ee(Pe, me, De) {
+ if (!Pe.showline || o !== Pe._mainSubplot) return "";
+ if (!Pe._anchorAxis) return De(Pe._mainLinePosition);
+ var ce = me(Pe._mainLinePosition);
+ return Pe.mirror && (ce += me(Pe._mainMirrorPosition)), ce;
+ }
+ for (o in t._plots) {
+ s = t._plots[o], u = s.xaxis, c = s.yaxis;
+ var Ae = "M0,0";
+ Pce(u, o) && (G = yP(u, "left", c, i), A = u._offset - (G ? n + G : 0), Z = yP(u, "right", c, i), z = u._offset + u._length + (Z ? n + Z : 0), O = f(u, c, "bottom"), U = f(u, c, "top"), Ce = !u._anchorAxis || o !== u._mainSubplot, Ce && (u.mirror === "allticks" || u.mirror === "all") && (u._linepositions[o] = [O, U]), Ae = Ee(u, Le, ge), Ce && u.showline && (u.mirror === "all" || u.mirror === "allticks") && (Ae += Le(O) + Le(U)), s.xlines.style("stroke-width", u._lw + "px").call(EM.stroke, u.showline ? u.linecolor : "rgba(0,0,0,0)")), s.xlines.attr("d", Ae);
+ var Be = "M0,0";
+ Pce(c, o) && (oe = yP(c, "bottom", u, i), j = c._offset + c._length + (oe ? n : 0), _e = yP(c, "top", u, i), N = c._offset - (_e ? n : 0), H = f(c, u, "left"), re = f(c, u, "right"), Ce = !c._anchorAxis || o !== c._mainSubplot, Ce && (c.mirror === "allticks" || c.mirror === "all") && (c._linepositions[o] = [H, re]), Be = Ee(c, ie, Se), Ce && c.showline && (c.mirror === "all" || c.mirror === "allticks") && (Be += ie(H) + ie(re)), s.ylines.style("stroke-width", c._lw + "px").call(EM.stroke, c.showline ? c.linecolor : "rgba(0,0,0,0)")), s.ylines.attr("d", Be);
+ }
+ return kM.makeClipPaths(e), Jp.previousPromises(e);
+ }
+ function Pce(e, t) {
+ return (e.ticks || e.showline) && (t === e._mainSubplot || e.mirror === "all" || e.mirror === "allticks");
+ }
+ function Ice(e, t, r) {
+ if (!r.showline || !r._lw) return false;
+ if (r.mirror === "all" || r.mirror === "allticks") return true;
+ var n = r._anchorAxis;
+ if (!n) return false;
+ var i = Fy.FROM_BL[t];
+ return r.side === t ? n.domain[i] === e.domain[i] : r.mirror && n.domain[1 - i] === e.domain[1 - i];
+ }
+ function yP(e, t, r, n) {
+ if (Ice(e, t, r)) return r._lw;
+ for (var i = 0; i < n.length; i++) {
+ var a = n[i];
+ if (a._mainAxis === r._mainAxis && Ice(e, t, a)) return a._lw;
+ }
+ return 0;
+ }
+ pd.drawMainTitle = function(e) {
+ var t = e._fullLayout.title, r = e._fullLayout, n = Hft(r), i = jft(r), a = Gft(r, i), o = Vft(r, n);
+ if (Cce.draw(e, "gtitle", { propContainer: r, propName: "title.text", subtitlePropName: "title.subtitle.text", placeholder: r._dfltTitle.plot, subtitlePlaceholder: r._dfltTitle.subtitle, attributes: { x: o, y: a, "text-anchor": n, dy: i } }), t.text && t.automargin) {
+ var s = _P.select(e).selectAll(".gtitle"), l = nT.bBox(_P.select(e).selectAll(".g-gtitle").node()).height, u = Nft(e, t, l);
+ if (u > 0) {
+ Uft(e, a, u, l), s.attr({ x: o, y: a, "text-anchor": n, dy: Rce(t.yanchor) }).call(xN.positionText, o, a);
+ var c = (t.text.match(xN.BR_TAG_ALL) || []).length;
+ if (c) {
+ var f = Fy.LINE_SPACING * c + Fy.MID_SHIFT;
+ t.y === 0 && (f = -f), s.selectAll(".line").each(function() {
+ var b = +this.getAttribute("dy").slice(0, -2) - f + "em";
+ this.setAttribute("dy", b);
+ });
+ }
+ var h = _P.select(e).selectAll(".gtitle-subtitle");
+ if (h.node()) {
+ var d = s.node().getBBox(), v = d.y + d.height, _ = v + Cce.SUBTITLE_PADDING_EM * t.subtitle.font.size;
+ h.attr({ x: o, y: _, "text-anchor": n, dy: Rce(t.yanchor) }).call(xN.positionText, o, _);
+ }
+ }
+ }
+ };
+ function qft(e, t, r, n, i) {
+ var a = t.yref === "paper" ? e._fullLayout._size.h : e._fullLayout.height, o = M0.isTopAnchor(t) ? n : n - i, s = r === "b" ? a - o : o;
+ return M0.isTopAnchor(t) && r === "t" || M0.isBottomAnchor(t) && r === "b" ? false : s < i;
+ }
+ function Bft(e, t, r, n, i) {
+ var a = 0;
+ return r === "middle" && (a += i / 2), e === "t" ? (r === "top" && (a += i), a += n - t * n) : (r === "bottom" && (a += i), a += t * n), a;
+ }
+ function Nft(e, t, r) {
+ var n = t.y, i = t.yanchor, a = n > 0.5 ? "t" : "b", o = e._fullLayout.margin[a], s = 0;
+ return t.yref === "paper" ? s = r + t.pad.t + t.pad.b : t.yref === "container" && (s = Bft(a, n, i, e._fullLayout.height, r) + t.pad.t + t.pad.b), s > o ? s : 0;
+ }
+ function Uft(e, t, r, n) {
+ var i = "title.automargin", a = e._fullLayout.title, o = a.y > 0.5 ? "t" : "b", s = { x: a.x, y: a.y, t: 0, b: 0 }, l = {};
+ a.yref === "paper" && qft(e, a, o, t, n) ? s[o] = r : a.yref === "container" && (l[o] = r, e._fullLayout._reservedMargin[i] = l), Jp.allowAutoMargin(e, i), Jp.autoMargin(e, i, s);
+ }
+ function Vft(e, t) {
+ var r = e.title, n = e._size, i = 0;
+ switch (t === zce ? i = r.pad.l : t === Oce && (i = -r.pad.r), r.xref) {
+ case "paper":
+ return n.l + n.w * r.x + i;
+ case "container":
+ default:
+ return e.width * r.x + i;
+ }
+ }
+ function Gft(e, t) {
+ var r = e.title, n = e._size, i = 0;
+ if (t === "0em" || !t ? i = -r.pad.b : t === Fy.CAP_SHIFT + "em" && (i = r.pad.t), r.y === "auto") return n.t / 2;
+ switch (r.yref) {
+ case "paper":
+ return n.t + n.h - n.h * r.y + i;
+ case "container":
+ default:
+ return e.height - e.height * r.y + i;
+ }
+ }
+ function Rce(e) {
+ return e === "top" ? Fy.CAP_SHIFT + 0.3 + "em" : e === "bottom" ? "-0.3em" : Fy.MID_SHIFT + "em";
+ }
+ function Hft(e) {
+ var t = e.title, r = Dft;
+ return M0.isRightAnchor(t) ? r = Oce : M0.isLeftAnchor(t) && (r = zce), r;
+ }
+ function jft(e) {
+ var t = e.title, r = "0em";
+ return M0.isTopAnchor(t) ? r = Fy.CAP_SHIFT + "em" : M0.isMiddleAnchor(t) && (r = Fy.MID_SHIFT + "em"), r;
+ }
+ pd.doTraceStyle = function(e) {
+ var t = e.calcdata, r = [], n;
+ for (n = 0; n < t.length; n++) {
+ var i = t[n], a = i[0] || {}, o = a.trace || {}, s = o._module || {}, l = s.arraysToCalcdata;
+ l && l(i, o);
+ var u = s.editStyle;
+ u && r.push({ fn: u, cd0: a });
+ }
+ if (r.length) {
+ for (n = 0; n < r.length; n++) {
+ var c = r[n];
+ c.fn(e, c.cd0);
+ }
+ bN(e), pd.redrawReglTraces(e);
+ }
+ return Jp.style(e), Nv.getComponentMethod("legend", "draw")(e), Jp.previousPromises(e);
+ };
+ pd.doColorBars = function(e) {
+ return Nv.getComponentMethod("colorbar", "draw")(e), Jp.previousPromises(e);
+ };
+ pd.layoutReplot = function(e) {
+ var t = e.layout;
+ return e.layout = void 0, Nv.call("_doPlot", e, "", t);
+ };
+ pd.doLegend = function(e) {
+ return Nv.getComponentMethod("legend", "draw")(e), Jp.previousPromises(e);
+ };
+ pd.doTicksRelayout = function(e) {
+ return kM.draw(e, "redraw"), e._fullLayout._hasOnlyLargeSploms && (Nv.subplotsRegistry.splom.updateGrid(e), bN(e), pd.redrawReglTraces(e)), pd.drawMainTitle(e), Jp.previousPromises(e);
+ };
+ pd.doModeBar = function(e) {
+ var t = e._fullLayout;
+ Dce.manage(e);
+ for (var r = 0; r < t._basePlotModules.length; r++) {
+ var n = t._basePlotModules[r].updateFx;
+ n && n(e);
+ }
+ return Jp.previousPromises(e);
+ };
+ pd.doCamera = function(e) {
+ for (var t = e._fullLayout, r = t._subplots.gl3d, n = 0; n < r.length; n++) {
+ var i = t[r[n]], a = i._scene;
+ a.setViewport(i);
+ }
+ };
+ pd.drawData = function(e) {
+ var t = e._fullLayout;
+ bN(e);
+ for (var r = t._basePlotModules, n = 0; n < r.length; n++) r[n].plot(e);
+ return pd.redrawReglTraces(e), Jp.style(e), Nv.getComponentMethod("selections", "draw")(e), Nv.getComponentMethod("shapes", "draw")(e), Nv.getComponentMethod("annotations", "draw")(e), Nv.getComponentMethod("images", "draw")(e), t._replotting = false, Jp.previousPromises(e);
+ };
+ pd.redrawReglTraces = function(e) {
+ var t = e._fullLayout;
+ if (t._has("regl")) {
+ var r = e._fullData, n = [], i = [], a, o;
+ for (t._hasOnlyLargeSploms && t._splomGrid.draw(), a = 0; a < r.length; a++) {
+ var s = r[a];
+ s.visible === true && s._length !== 0 && (s.type === "splom" ? t._splomScenes[s.uid].draw() : s.type === "scattergl" ? M0.pushUnique(n, s.xaxis + s.yaxis) : s.type === "scatterpolargl" && M0.pushUnique(i, s.subplot));
+ }
+ for (a = 0; a < n.length; a++) o = t._plots[n[a]], o._scene && o._scene.draw();
+ for (a = 0; a < i.length; a++) o = t[i[a]]._subplot, o._scene && o._scene.draw();
+ }
+ };
+ pd.doAutoRangeAndConstraints = function(e) {
+ for (var t = kM.list(e, "", true), r, n = {}, i = 0; i < t.length; i++) if (r = t[i], !n[r._id]) {
+ n[r._id] = 1, Rft(e, r), Lce(e, r);
+ var a = r._matchGroup;
+ if (a) for (var o in a) {
+ var s = kM.getFromId(e, o);
+ Lce(e, s, r.range), n[o] = 1;
+ }
+ }
+ Ift(e);
+ };
+ pd.finalDraw = function(e) {
+ Nv.getComponentMethod("rangeslider", "draw")(e), Nv.getComponentMethod("rangeselector", "draw")(e);
+ };
+ pd.drawMarginPushers = function(e) {
+ Nv.getComponentMethod("legend", "draw")(e), Nv.getComponentMethod("rangeselector", "draw")(e), Nv.getComponentMethod("sliders", "draw")(e), Nv.getComponentMethod("updatemenus", "draw")(e), Nv.getComponentMethod("colorbar", "draw")(e);
+ };
+ });
+ var AN = ye((aor, Vce) => {
+ var Wft = m_().readPaths, Xft = lP(), qce = o_().clearOutlineControllers, wN = ka(), Bce = So(), Zft = vl().arrayEditor, Nce = x_(), Yft = Nce.getPathString;
+ Vce.exports = { draw: xP, drawOne: Uce, activateLastSelection: $ft };
+ function xP(e) {
+ var t = e._fullLayout;
+ qce(e), t._selectionLayer.selectAll("path").remove();
+ for (var r in t._plots) {
+ var n = t._plots[r].selectionLayer;
+ n && n.selectAll("path").remove();
+ }
+ for (var i = 0; i < t.selections.length; i++) Uce(e, i);
+ }
+ function bP(e) {
+ return e._context.editSelection;
+ }
+ function Uce(e, t) {
+ e._fullLayout._paperdiv.selectAll('.selectionlayer [data-index="' + t + '"]').remove();
+ var r = Nce.makeSelectionsOptionsAndPlotinfo(e, t), n = r.options, i = r.plotinfo;
+ if (!n._input) return;
+ a(e._fullLayout._selectionLayer);
+ function a(o) {
+ var s = Yft(e, n), l = { "data-index": t, "fill-rule": "evenodd", d: s }, u = n.opacity, c = "rgba(0,0,0,0)", f = n.line.color || wN.contrast(e._fullLayout.plot_bgcolor), h = n.line.width, d = n.line.dash;
+ h || (h = 5, d = "solid");
+ var v = bP(e) && e._fullLayout._activeSelectionIndex === t;
+ v && (c = e._fullLayout.activeselection.fillcolor, u = e._fullLayout.activeselection.opacity);
+ for (var _ = [], b = 1; b >= 0; b--) {
+ var p = o.append("path").attr(l).style("opacity", b ? 0.1 : u).call(wN.stroke, f).call(wN.fill, c).call(Bce.dashLine, b ? "solid" : d, b ? 4 + h : h);
+ if (Kft(p, e, n), v) {
+ var k = Zft(e.layout, "selections", n);
+ p.style({ cursor: "move" });
+ var E = { element: p.node(), plotinfo: i, gd: e, editHelpers: k, isActiveSelection: true }, T = Wft(s, e);
+ Xft(T, p, E);
+ } else p.style("pointer-events", b ? "all" : "none");
+ _[b] = p;
+ }
+ var L = _[0], x = _[1];
+ x.node().addEventListener("click", function() {
+ return Jft(e, L);
+ });
+ }
+ }
+ function Kft(e, t, r) {
+ var n = r.xref + r.yref;
+ Bce.setClipUrl(e, "clip" + t._fullLayout._uid + n, t);
+ }
+ function Jft(e, t) {
+ if (bP(e)) {
+ var r = t.node(), n = +r.getAttribute("data-index");
+ if (n >= 0) {
+ if (n === e._fullLayout._activeSelectionIndex) {
+ TN(e);
+ return;
+ }
+ e._fullLayout._activeSelectionIndex = n, e._fullLayout._deactivateSelection = TN, xP(e);
+ }
+ }
+ }
+ function $ft(e) {
+ if (bP(e)) {
+ var t = e._fullLayout.selections.length - 1;
+ e._fullLayout._activeSelectionIndex = t, e._fullLayout._deactivateSelection = TN, xP(e);
+ }
+ }
+ function TN(e) {
+ if (bP(e)) {
+ var t = e._fullLayout._activeSelectionIndex;
+ t >= 0 && (qce(e), delete e._fullLayout._activeSelectionIndex, xP(e));
+ }
+ }
+ });
+ var Hce = ye((oor, Gce) => {
+ function Qft() {
+ var e, t = 0, r = false;
+ function n(i, a) {
+ return e.list.push({ type: i, data: a ? JSON.parse(JSON.stringify(a)) : void 0 }), e;
+ }
+ return e = { list: [], segmentId: function() {
+ return t++;
+ }, checkIntersection: function(i, a) {
+ return n("check", { seg1: i, seg2: a });
+ }, segmentChop: function(i, a) {
+ return n("div_seg", { seg: i, pt: a }), n("chop", { seg: i, pt: a });
+ }, statusRemove: function(i) {
+ return n("pop_seg", { seg: i });
+ }, segmentUpdate: function(i) {
+ return n("seg_update", { seg: i });
+ }, segmentNew: function(i, a) {
+ return n("new_seg", { seg: i, primary: a });
+ }, segmentRemove: function(i) {
+ return n("rem_seg", { seg: i });
+ }, tempStatus: function(i, a, o) {
+ return n("temp_status", { seg: i, above: a, below: o });
+ }, rewind: function(i) {
+ return n("rewind", { seg: i });
+ }, status: function(i, a, o) {
+ return n("status", { seg: i, above: a, below: o });
+ }, vert: function(i) {
+ return i === r ? e : (r = i, n("vert", { x: i }));
+ }, log: function(i) {
+ return typeof i != "string" && (i = JSON.stringify(i, false, " ")), n("log", { txt: i });
+ }, reset: function() {
+ return n("reset");
+ }, selected: function(i) {
+ return n("selected", { segs: i });
+ }, chainStart: function(i) {
+ return n("chain_start", { seg: i });
+ }, chainRemoveHead: function(i, a) {
+ return n("chain_rem_head", { index: i, pt: a });
+ }, chainRemoveTail: function(i, a) {
+ return n("chain_rem_tail", { index: i, pt: a });
+ }, chainNew: function(i, a) {
+ return n("chain_new", { pt1: i, pt2: a });
+ }, chainMatch: function(i) {
+ return n("chain_match", { index: i });
+ }, chainClose: function(i) {
+ return n("chain_close", { index: i });
+ }, chainAddHead: function(i, a) {
+ return n("chain_add_head", { index: i, pt: a });
+ }, chainAddTail: function(i, a) {
+ return n("chain_add_tail", { index: i, pt: a });
+ }, chainConnect: function(i, a) {
+ return n("chain_con", { index1: i, index2: a });
+ }, chainReverse: function(i) {
+ return n("chain_rev", { index: i });
+ }, chainJoin: function(i, a) {
+ return n("chain_join", { index1: i, index2: a });
+ }, done: function() {
+ return n("done");
+ } }, e;
+ }
+ Gce.exports = Qft;
+ });
+ var Wce = ye((sor, jce) => {
+ function eht(e) {
+ typeof e != "number" && (e = 1e-10);
+ var t = { epsilon: function(r) {
+ return typeof r == "number" && (e = r), e;
+ }, pointAboveOrOnLine: function(r, n, i) {
+ var a = n[0], o = n[1], s = i[0], l = i[1], u = r[0], c = r[1];
+ return (s - a) * (c - o) - (l - o) * (u - a) >= -e;
+ }, pointBetween: function(r, n, i) {
+ var a = r[1] - n[1], o = i[0] - n[0], s = r[0] - n[0], l = i[1] - n[1], u = s * o + a * l;
+ if (u < e) return false;
+ var c = o * o + l * l;
+ return !(u - c > -e);
+ }, pointsSameX: function(r, n) {
+ return Math.abs(r[0] - n[0]) < e;
+ }, pointsSameY: function(r, n) {
+ return Math.abs(r[1] - n[1]) < e;
+ }, pointsSame: function(r, n) {
+ return t.pointsSameX(r, n) && t.pointsSameY(r, n);
+ }, pointsCompare: function(r, n) {
+ return t.pointsSameX(r, n) ? t.pointsSameY(r, n) ? 0 : r[1] < n[1] ? -1 : 1 : r[0] < n[0] ? -1 : 1;
+ }, pointsCollinear: function(r, n, i) {
+ var a = r[0] - n[0], o = r[1] - n[1], s = n[0] - i[0], l = n[1] - i[1];
+ return Math.abs(a * l - s * o) < e;
+ }, linesIntersect: function(r, n, i, a) {
+ var o = n[0] - r[0], s = n[1] - r[1], l = a[0] - i[0], u = a[1] - i[1], c = o * u - s * l;
+ if (Math.abs(c) < e) return false;
+ var f = r[0] - i[0], h = r[1] - i[1], d = (l * h - u * f) / c, v = (o * h - s * f) / c, _ = { alongA: 0, alongB: 0, pt: [r[0] + d * o, r[1] + d * s] };
+ return d <= -e ? _.alongA = -2 : d < e ? _.alongA = -1 : d - 1 <= -e ? _.alongA = 0 : d - 1 < e ? _.alongA = 1 : _.alongA = 2, v <= -e ? _.alongB = -2 : v < e ? _.alongB = -1 : v - 1 <= -e ? _.alongB = 0 : v - 1 < e ? _.alongB = 1 : _.alongB = 2, _;
+ }, pointInsideRegion: function(r, n) {
+ for (var i = r[0], a = r[1], o = n[n.length - 1][0], s = n[n.length - 1][1], l = false, u = 0; u < n.length; u++) {
+ var c = n[u][0], f = n[u][1];
+ f - a > e != s - a > e && (o - c) * (a - f) / (s - f) + c - i > e && (l = !l), o = c, s = f;
+ }
+ return l;
+ } };
+ return t;
+ }
+ jce.exports = eht;
+ });
+ var Zce = ye((lor, Xce) => {
+ var tht = { create: function() {
+ var e = { root: { root: true, next: null }, exists: function(t) {
+ return !(t === null || t === e.root);
+ }, isEmpty: function() {
+ return e.root.next === null;
+ }, getHead: function() {
+ return e.root.next;
+ }, insertBefore: function(t, r) {
+ for (var n = e.root, i = e.root.next; i !== null; ) {
+ if (r(i)) {
+ t.prev = i.prev, t.next = i, i.prev.next = t, i.prev = t;
+ return;
+ }
+ n = i, i = i.next;
+ }
+ n.next = t, t.prev = n, t.next = null;
+ }, findTransition: function(t) {
+ for (var r = e.root, n = e.root.next; n !== null && !t(n); ) r = n, n = n.next;
+ return { before: r === e.root ? null : r, after: n, insert: function(i) {
+ return i.prev = r, i.next = n, r.next = i, n !== null && (n.prev = i), i;
+ } };
+ } };
+ return e;
+ }, node: function(e) {
+ return e.prev = null, e.next = null, e.remove = function() {
+ e.prev.next = e.next, e.next && (e.next.prev = e.prev), e.prev = null, e.next = null;
+ }, e;
+ } };
+ Xce.exports = tht;
+ });
+ var Kce = ye((uor, Yce) => {
+ var LM = Zce();
+ function rht(e, t, r) {
+ function n(v, _) {
+ return { id: r ? r.segmentId() : -1, start: v, end: _, myFill: { above: null, below: null }, otherFill: null };
+ }
+ function i(v, _, b) {
+ return { id: r ? r.segmentId() : -1, start: v, end: _, myFill: { above: b.myFill.above, below: b.myFill.below }, otherFill: null };
+ }
+ var a = LM.create();
+ function o(v, _, b, p, k, E) {
+ var T = t.pointsCompare(_, k);
+ return T !== 0 ? T : t.pointsSame(b, E) ? 0 : v !== p ? v ? 1 : -1 : t.pointAboveOrOnLine(b, p ? k : E, p ? E : k) ? 1 : -1;
+ }
+ function s(v, _) {
+ a.insertBefore(v, function(b) {
+ var p = o(v.isStart, v.pt, _, b.isStart, b.pt, b.other.pt);
+ return p < 0;
+ });
+ }
+ function l(v, _) {
+ var b = LM.node({ isStart: true, pt: v.start, seg: v, primary: _, other: null, status: null });
+ return s(b, v.end), b;
+ }
+ function u(v, _, b) {
+ var p = LM.node({ isStart: false, pt: _.end, seg: _, primary: b, other: v, status: null });
+ v.other = p, s(p, v.pt);
+ }
+ function c(v, _) {
+ var b = l(v, _);
+ return u(b, v, _), b;
+ }
+ function f(v, _) {
+ r && r.segmentChop(v.seg, _), v.other.remove(), v.seg.end = _, v.other.pt = _, s(v.other, v.pt);
+ }
+ function h(v, _) {
+ var b = i(_, v.seg.end, v.seg);
+ return f(v, _), c(b, v.primary);
+ }
+ function d(v, _) {
+ var b = LM.create();
+ function p(G, Z) {
+ var j = G.seg.start, N = G.seg.end, H = Z.seg.start, re = Z.seg.end;
+ return t.pointsCollinear(j, H, re) ? t.pointsCollinear(N, H, re) || t.pointAboveOrOnLine(N, H, re) ? 1 : -1 : t.pointAboveOrOnLine(j, H, re) ? 1 : -1;
+ }
+ function k(G) {
+ return b.findTransition(function(Z) {
+ var j = p(G, Z.ev);
+ return j > 0;
+ });
+ }
+ function E(G, Z) {
+ var j = G.seg, N = Z.seg, H = j.start, re = j.end, oe = N.start, _e = N.end;
+ r && r.checkIntersection(j, N);
+ var Ce = t.linesIntersect(H, re, oe, _e);
+ if (Ce === false) {
+ if (!t.pointsCollinear(H, re, oe) || t.pointsSame(H, _e) || t.pointsSame(re, oe)) return false;
+ var Le = t.pointsSame(H, oe), ge = t.pointsSame(re, _e);
+ if (Le && ge) return Z;
+ var ie = !Le && t.pointBetween(H, oe, _e), Se = !ge && t.pointBetween(re, oe, _e);
+ if (Le) return Se ? h(Z, re) : h(G, _e), Z;
+ ie && (ge || (Se ? h(Z, re) : h(G, _e)), h(Z, H));
+ } else Ce.alongA === 0 && (Ce.alongB === -1 ? h(G, oe) : Ce.alongB === 0 ? h(G, Ce.pt) : Ce.alongB === 1 && h(G, _e)), Ce.alongB === 0 && (Ce.alongA === -1 ? h(Z, H) : Ce.alongA === 0 ? h(Z, Ce.pt) : Ce.alongA === 1 && h(Z, re));
+ return false;
+ }
+ for (var T = []; !a.isEmpty(); ) {
+ var L = a.getHead();
+ if (r && r.vert(L.pt[0]), L.isStart) {
+ let G = function() {
+ if (C) {
+ var Z = E(L, C);
+ if (Z) return Z;
+ }
+ return M ? E(L, M) : false;
+ };
+ r && r.segmentNew(L.seg, L.primary);
+ var x = k(L), C = x.before ? x.before.ev : null, M = x.after ? x.after.ev : null;
+ r && r.tempStatus(L.seg, C ? C.seg : false, M ? M.seg : false);
+ var g = G();
+ if (g) {
+ if (e) {
+ var P;
+ L.seg.myFill.below === null ? P = true : P = L.seg.myFill.above !== L.seg.myFill.below, P && (g.seg.myFill.above = !g.seg.myFill.above);
+ } else g.seg.otherFill = L.seg.myFill;
+ r && r.segmentUpdate(g.seg), L.other.remove(), L.remove();
+ }
+ if (a.getHead() !== L) {
+ r && r.rewind(L.seg);
+ continue;
+ }
+ if (e) {
+ var P;
+ L.seg.myFill.below === null ? P = true : P = L.seg.myFill.above !== L.seg.myFill.below, M ? L.seg.myFill.below = M.seg.myFill.above : L.seg.myFill.below = v, P ? L.seg.myFill.above = !L.seg.myFill.below : L.seg.myFill.above = L.seg.myFill.below;
+ } else if (L.seg.otherFill === null) {
+ var A;
+ M ? L.primary === M.primary ? A = M.seg.otherFill.above : A = M.seg.myFill.above : A = L.primary ? _ : v, L.seg.otherFill = { above: A, below: A };
+ }
+ r && r.status(L.seg, C ? C.seg : false, M ? M.seg : false), L.other.status = x.insert(LM.node({ ev: L }));
+ } else {
+ var z = L.status;
+ if (z === null) throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");
+ if (b.exists(z.prev) && b.exists(z.next) && E(z.prev.ev, z.next.ev), r && r.statusRemove(z.ev.seg), z.remove(), !L.primary) {
+ var O = L.seg.myFill;
+ L.seg.myFill = L.seg.otherFill, L.seg.otherFill = O;
+ }
+ T.push(L.seg);
+ }
+ a.getHead().remove();
+ }
+ return r && r.done(), T;
+ }
+ return e ? { addRegion: function(v) {
+ for (var _, b = v[v.length - 1], p = 0; p < v.length; p++) {
+ _ = b, b = v[p];
+ var k = t.pointsCompare(_, b);
+ k !== 0 && c(n(k < 0 ? _ : b, k < 0 ? b : _), true);
+ }
+ }, calculate: function(v) {
+ return d(v, false);
+ } } : { calculate: function(v, _, b, p) {
+ return v.forEach(function(k) {
+ c(i(k.start, k.end, k), true);
+ }), b.forEach(function(k) {
+ c(i(k.start, k.end, k), false);
+ }), d(_, p);
+ } };
+ }
+ Yce.exports = rht;
+ });
+ var $ce = ye((cor, Jce) => {
+ function iht(e, t, r) {
+ var n = [], i = [];
+ return e.forEach(function(a) {
+ var o = a.start, s = a.end;
+ if (t.pointsSame(o, s)) {
+ console.warn("PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large");
+ return;
+ }
+ r && r.chainStart(a);
+ var l = { index: 0, matches_head: false, matches_pt1: false }, u = { index: 0, matches_head: false, matches_pt1: false }, c = l;
+ function f(U, G, Z) {
+ return c.index = U, c.matches_head = G, c.matches_pt1 = Z, c === l ? (c = u, false) : (c = null, true);
+ }
+ for (var h = 0; h < n.length; h++) {
+ var d = n[h], v = d[0];
+ d[1];
+ var b = d[d.length - 1];
+ d[d.length - 2];
+ if (t.pointsSame(v, o)) {
+ if (f(h, true, true)) break;
+ } else if (t.pointsSame(v, s)) {
+ if (f(h, true, false)) break;
+ } else if (t.pointsSame(b, o)) {
+ if (f(h, false, true)) break;
+ } else if (t.pointsSame(b, s) && f(h, false, false)) break;
+ }
+ if (c === l) {
+ n.push([o, s]), r && r.chainNew(o, s);
+ return;
+ }
+ if (c === u) {
+ r && r.chainMatch(l.index);
+ var k = l.index, E = l.matches_pt1 ? s : o, T = l.matches_head, d = n[k], L = T ? d[0] : d[d.length - 1], x = T ? d[1] : d[d.length - 2], C = T ? d[d.length - 1] : d[0], M = T ? d[d.length - 2] : d[1];
+ if (t.pointsCollinear(x, L, E) && (T ? (r && r.chainRemoveHead(l.index, E), d.shift()) : (r && r.chainRemoveTail(l.index, E), d.pop()), L = x), t.pointsSame(C, E)) {
+ n.splice(k, 1), t.pointsCollinear(M, C, L) && (T ? (r && r.chainRemoveTail(l.index, L), d.pop()) : (r && r.chainRemoveHead(l.index, L), d.shift())), r && r.chainClose(l.index), i.push(d);
+ return;
+ }
+ T ? (r && r.chainAddHead(l.index, E), d.unshift(E)) : (r && r.chainAddTail(l.index, E), d.push(E));
+ return;
+ }
+ function g(U) {
+ r && r.chainReverse(U), n[U].reverse();
+ }
+ function P(U, G) {
+ var Z = n[U], j = n[G], N = Z[Z.length - 1], H = Z[Z.length - 2], re = j[0], oe = j[1];
+ t.pointsCollinear(H, N, re) && (r && r.chainRemoveTail(U, N), Z.pop(), N = H), t.pointsCollinear(N, re, oe) && (r && r.chainRemoveHead(G, re), j.shift()), r && r.chainJoin(U, G), n[U] = Z.concat(j), n.splice(G, 1);
+ }
+ var A = l.index, z = u.index;
+ r && r.chainConnect(A, z);
+ var O = n[A].length < n[z].length;
+ l.matches_head ? u.matches_head ? O ? (g(A), P(A, z)) : (g(z), P(z, A)) : P(z, A) : u.matches_head ? P(A, z) : O ? (g(A), P(z, A)) : (g(z), P(A, z));
+ }), i;
+ }
+ Jce.exports = iht;
+ });
+ var efe = ye((hor, Qce) => {
+ function PM(e, t, r) {
+ var n = [];
+ return e.forEach(function(i) {
+ var a = (i.myFill.above ? 8 : 0) + (i.myFill.below ? 4 : 0) + (i.otherFill && i.otherFill.above ? 2 : 0) + (i.otherFill && i.otherFill.below ? 1 : 0);
+ t[a] !== 0 && n.push({ id: r ? r.segmentId() : -1, start: i.start, end: i.end, myFill: { above: t[a] === 1, below: t[a] === 2 }, otherFill: null });
+ }), r && r.selected(n), n;
+ }
+ var nht = { union: function(e, t) {
+ return PM(e, [0, 2, 1, 0, 2, 2, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0], t);
+ }, intersect: function(e, t) {
+ return PM(e, [0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 1, 1, 0, 2, 1, 0], t);
+ }, difference: function(e, t) {
+ return PM(e, [0, 0, 0, 0, 2, 0, 2, 0, 1, 1, 0, 0, 0, 1, 2, 0], t);
+ }, differenceRev: function(e, t) {
+ return PM(e, [0, 2, 1, 0, 0, 0, 1, 1, 0, 2, 0, 2, 0, 0, 0, 0], t);
+ }, xor: function(e, t) {
+ return PM(e, [0, 2, 1, 0, 2, 0, 0, 1, 1, 0, 0, 2, 0, 1, 2, 0], t);
+ } };
+ Qce.exports = nht;
+ });
+ var rfe = ye((dor, tfe) => {
+ var aht = { toPolygon: function(e, t) {
+ function r(a) {
+ if (a.length <= 0) return e.segments({ inverted: false, regions: [] });
+ function o(u) {
+ var c = u.slice(0, u.length - 1);
+ return e.segments({ inverted: false, regions: [c] });
+ }
+ for (var s = o(a[0]), l = 1; l < a.length; l++) s = e.selectDifference(e.combine(s, o(a[l])));
+ return s;
+ }
+ if (t.type === "Polygon") return e.polygon(r(t.coordinates));
+ if (t.type === "MultiPolygon") {
+ for (var n = e.segments({ inverted: false, regions: [] }), i = 0; i < t.coordinates.length; i++) n = e.selectUnion(e.combine(n, r(t.coordinates[i])));
+ return e.polygon(n);
+ }
+ throw new Error("PolyBool: Cannot convert GeoJSON object to PolyBool polygon");
+ }, fromPolygon: function(e, t, r) {
+ r = e.polygon(e.segments(r));
+ function n(d, v) {
+ return t.pointInsideRegion([(d[0][0] + d[1][0]) * 0.5, (d[0][1] + d[1][1]) * 0.5], v);
+ }
+ function i(d) {
+ return { region: d, children: [] };
+ }
+ var a = i(null);
+ function o(d, v) {
+ for (var _ = 0; _ < d.children.length; _++) {
+ var b = d.children[_];
+ if (n(v, b.region)) {
+ o(b, v);
+ return;
+ }
+ }
+ for (var p = i(v), _ = 0; _ < d.children.length; _++) {
+ var b = d.children[_];
+ n(b.region, v) && (p.children.push(b), d.children.splice(_, 1), _--);
+ }
+ d.children.push(p);
+ }
+ for (var s = 0; s < r.regions.length; s++) {
+ var l = r.regions[s];
+ l.length < 3 || o(a, l);
+ }
+ function u(d, v) {
+ for (var _ = 0, b = d[d.length - 1][0], p = d[d.length - 1][1], k = [], E = 0; E < d.length; E++) {
+ var T = d[E][0], L = d[E][1];
+ k.push([T, L]), _ += L * b - T * p, b = T, p = L;
+ }
+ var x = _ < 0;
+ return x !== v && k.reverse(), k.push([k[0][0], k[0][1]]), k;
+ }
+ var c = [];
+ function f(d) {
+ var v = [u(d.region, false)];
+ c.push(v);
+ for (var _ = 0; _ < d.children.length; _++) v.push(h(d.children[_]));
+ }
+ function h(d) {
+ for (var v = 0; v < d.children.length; v++) f(d.children[v]);
+ return u(d.region, true);
+ }
+ for (var s = 0; s < a.children.length; s++) f(a.children[s]);
+ return c.length <= 0 ? { type: "Polygon", coordinates: [] } : c.length == 1 ? { type: "Polygon", coordinates: c[0] } : { type: "MultiPolygon", coordinates: c };
+ } };
+ tfe.exports = aht;
+ });
+ var ofe = ye((vor, afe) => {
+ var oht = Hce(), sht = Wce(), ife = Kce(), lht = $ce(), IM = efe(), nfe = rfe(), E0 = false, RM = sht(), kp;
+ kp = { buildLog: function(e) {
+ return e === true ? E0 = oht() : e === false && (E0 = false), E0 === false ? false : E0.list;
+ }, epsilon: function(e) {
+ return RM.epsilon(e);
+ }, segments: function(e) {
+ var t = ife(true, RM, E0);
+ return e.regions.forEach(t.addRegion), { segments: t.calculate(e.inverted), inverted: e.inverted };
+ }, combine: function(e, t) {
+ var r = ife(false, RM, E0);
+ return { combined: r.calculate(e.segments, e.inverted, t.segments, t.inverted), inverted1: e.inverted, inverted2: t.inverted };
+ }, selectUnion: function(e) {
+ return { segments: IM.union(e.combined, E0), inverted: e.inverted1 || e.inverted2 };
+ }, selectIntersect: function(e) {
+ return { segments: IM.intersect(e.combined, E0), inverted: e.inverted1 && e.inverted2 };
+ }, selectDifference: function(e) {
+ return { segments: IM.difference(e.combined, E0), inverted: e.inverted1 && !e.inverted2 };
+ }, selectDifferenceRev: function(e) {
+ return { segments: IM.differenceRev(e.combined, E0), inverted: !e.inverted1 && e.inverted2 };
+ }, selectXor: function(e) {
+ return { segments: IM.xor(e.combined, E0), inverted: e.inverted1 !== e.inverted2 };
+ }, polygon: function(e) {
+ return { regions: lht(e.segments, RM, E0), inverted: e.inverted };
+ }, polygonFromGeoJSON: function(e) {
+ return nfe.toPolygon(kp, e);
+ }, polygonToGeoJSON: function(e) {
+ return nfe.fromPolygon(kp, RM, e);
+ }, union: function(e, t) {
+ return DM(e, t, kp.selectUnion);
+ }, intersect: function(e, t) {
+ return DM(e, t, kp.selectIntersect);
+ }, difference: function(e, t) {
+ return DM(e, t, kp.selectDifference);
+ }, differenceRev: function(e, t) {
+ return DM(e, t, kp.selectDifferenceRev);
+ }, xor: function(e, t) {
+ return DM(e, t, kp.selectXor);
+ } };
+ function DM(e, t, r) {
+ var n = kp.segments(e), i = kp.segments(t), a = kp.combine(n, i), o = r(a);
+ return kp.polygon(o);
+ }
+ typeof window == "object" && (window.PolyBool = kp);
+ afe.exports = kp;
+ });
+ var lfe = ye((por, sfe) => {
+ sfe.exports = function(t, r, n, i) {
+ var a = t[0], o = t[1], s = false;
+ n === void 0 && (n = 0), i === void 0 && (i = r.length);
+ for (var l = i - n, u = 0, c = l - 1; u < l; c = u++) {
+ var f = r[u + n][0], h = r[u + n][1], d = r[c + n][0], v = r[c + n][1], _ = h > o != v > o && a < (d - f) * (o - h) / (v - h) + f;
+ _ && (s = !s);
+ }
+ return s;
+ };
+ });
+ var FM = ye((gor, ufe) => {
+ var SN = P6().dot, wP = fs().BADNUM, TP = ufe.exports = {};
+ TP.tester = function(t) {
+ var r = t.slice(), n = r[0][0], i = n, a = r[0][1], o = a, s;
+ for ((r[r.length - 1][0] !== r[0][0] || r[r.length - 1][1] !== r[0][1]) && r.push(r[0]), s = 1; s < r.length; s++) n = Math.min(n, r[s][0]), i = Math.max(i, r[s][0]), a = Math.min(a, r[s][1]), o = Math.max(o, r[s][1]);
+ var l = false, u;
+ r.length === 5 && (r[0][0] === r[1][0] ? r[2][0] === r[3][0] && r[0][1] === r[3][1] && r[1][1] === r[2][1] && (l = true, u = function(v) {
+ return v[0] === r[0][0];
+ }) : r[0][1] === r[1][1] && r[2][1] === r[3][1] && r[0][0] === r[3][0] && r[1][0] === r[2][0] && (l = true, u = function(v) {
+ return v[1] === r[0][1];
+ }));
+ function c(v, _) {
+ var b = v[0], p = v[1];
+ return !(b === wP || b < n || b > i || p === wP || p < a || p > o || _ && u(v));
+ }
+ function f(v, _) {
+ var b = v[0], p = v[1];
+ if (b === wP || b < n || b > i || p === wP || p < a || p > o) return false;
+ var k = r.length, E = r[0][0], T = r[0][1], L = 0, x, C, M, g, P;
+ for (x = 1; x < k; x++) if (C = E, M = T, E = r[x][0], T = r[x][1], g = Math.min(C, E), !(b < g || b > Math.max(C, E) || p > Math.max(M, T))) if (p < Math.min(M, T)) b !== g && L++;
+ else {
+ if (E === C ? P = p : P = M + (b - C) * (T - M) / (E - C), p === P) return !(x === 1 && _);
+ p <= P && b !== g && L++;
+ }
+ return L % 2 === 1;
+ }
+ var h = true, d = r[0];
+ for (s = 1; s < r.length; s++) if (d[0] !== r[s][0] || d[1] !== r[s][1]) {
+ h = false;
+ break;
+ }
+ return { xmin: n, xmax: i, ymin: a, ymax: o, pts: r, contains: l ? c : f, isRect: l, degenerate: h };
+ };
+ TP.isSegmentBent = function(t, r, n, i) {
+ var a = t[r], o = [t[n][0] - a[0], t[n][1] - a[1]], s = SN(o, o), l = Math.sqrt(s), u = [-o[1] / l, o[0] / l], c, f, h;
+ for (c = r + 1; c < n; c++) if (f = [t[c][0] - a[0], t[c][1] - a[1]], h = SN(f, o), h < 0 || h > s || Math.abs(SN(f, u)) > i) return true;
+ return false;
+ };
+ TP.filter = function(t, r) {
+ var n = [t[0]], i = 0, a = 0;
+ function o(l) {
+ t.push(l);
+ var u = n.length, c = i;
+ n.splice(a + 1);
+ for (var f = c + 1; f < t.length; f++) (f === t.length - 1 || TP.isSegmentBent(t, c, f + 1, r)) && (n.push(t[f]), n.length < u - 2 && (i = f, a = n.length - 1), c = f);
+ }
+ if (t.length > 1) {
+ var s = t.pop();
+ o(s);
+ }
+ return { addPt: o, raw: t, filtered: n };
+ };
+ });
+ var ffe = ye((mor, cfe) => {
+ cfe.exports = { BENDPX: 1.5, MINSELECT: 12, SELECTDELAY: 100, SELECTID: "-select" };
+ });
+ var Rfe = ye((yor, Ife) => {
+ var hfe = ofe(), uht = lfe(), qM = qa(), cht = So().dashStyle, zM = ka(), fht = vf(), hht = ip().makeEventData, GM = Cg(), dht = GM.freeMode, vht = GM.rectMode, BM = GM.drawMode, CN = GM.openMode, LN = GM.selectMode, dfe = x_(), vfe = TM(), _fe = lP(), xfe = o_().clearOutline, bfe = m_(), MN = bfe.handleEllipse, pht = bfe.readPaths, ght = aP().newShapes, mht = QB(), yht = AN().activateLastSelection, SP = Dr(), _ht = SP.sorterAsc, wfe = FM(), OM = H6(), k0 = hf().getFromId, xht = bM(), bht = CM().redrawReglTraces, MP = ffe(), Cm = MP.MINSELECT, wht = wfe.filter, PN = wfe.tester, IN = tP(), pfe = IN.p2r, Tht = IN.axValue, Aht = IN.getTransform;
+ function RN(e) {
+ return e.subplot !== void 0;
+ }
+ function Sht(e, t, r, n, i) {
+ var a = !RN(n), o = dht(i), s = vht(i), l = CN(i), u = BM(i), c = LN(i), f = i === "drawline", h = i === "drawcircle", d = f || h, v = n.gd, _ = v._fullLayout, b = c && _.newselection.mode === "immediate" && a, p = _._zoomlayer, k = n.element.getBoundingClientRect(), E = n.plotinfo, T = Aht(E), L = t - k.left, x = r - k.top;
+ _._calcInverseTransform(v);
+ var C = SP.apply3DTransform(_._invTransform)(L, x);
+ L = C[0], x = C[1];
+ var M = _._invScaleX, g = _._invScaleY, P = L, A = x, z = "M" + L + "," + x, O = n.xaxes[0], U = n.yaxes[0], G = O._length, Z = U._length, j = e.altKey && !(BM(i) && l), N, H, re, oe, _e, Ce, Le;
+ Afe(e, v, n), o && (N = wht([[L, x]], MP.BENDPX));
+ var ge = p.selectAll("path.select-outline-" + E.id).data([1]), ie = u ? _.newshape : _.newselection;
+ u && (n.hasText = ie.label.text || ie.label.texttemplate);
+ var Se = u && !l ? ie.fillcolor : "rgba(0,0,0,0)", Ee = ie.line.color || (a ? zM.contrast(v._fullLayout.plot_bgcolor) : "#7f7f7f");
+ ge.enter().append("path").attr("class", "select-outline select-outline-" + E.id).style({ opacity: u ? ie.opacity / 2 : 1, "stroke-dasharray": cht(ie.line.dash, ie.line.width), "stroke-width": ie.line.width + "px", "shape-rendering": "crispEdges" }).call(zM.stroke, Ee).call(zM.fill, Se).attr("fill-rule", "evenodd").classed("cursor-move", !!u).attr("transform", T).attr("d", z + "Z");
+ var Ae = p.append("path").attr("class", "zoombox-corners").style({ fill: zM.background, stroke: zM.defaultLine, "stroke-width": 1 }).attr("transform", T).attr("d", "M0,0Z");
+ if (u && n.hasText) {
+ var Be = p.select(".label-temp");
+ Be.empty() && (Be = p.append("g").classed("label-temp", true).classed("select-outline", true).style({ opacity: 0.8 }));
+ }
+ var Pe = _._uid + MP.SELECTID, me = [], De = EP(v, n.xaxes, n.yaxes, n.subplot);
+ b && !e.shiftKey && (n._clearSubplotSelections = function() {
+ if (a) {
+ var je = O._id, lt = U._id;
+ Cfe(v, je, lt, De);
+ for (var pt = (v.layout || {}).selections || [], Vt = [], ot = false, ut = 0; ut < pt.length; ut++) {
+ var Wt = _.selections[ut];
+ !Wt || Wt.xref !== je || Wt.yref !== lt ? Vt.push(pt[ut]) : ot = true;
+ }
+ ot && (v._fullLayout._noEmitSelectedAtStart = true, qM.call("_guiRelayout", v, { selections: Vt }));
+ }
+ });
+ var ce = Bht(n);
+ n.moveFn = function(je, lt) {
+ n._clearSubplotSelections && (n._clearSubplotSelections(), n._clearSubplotSelections = void 0), P = Math.max(0, Math.min(G, M * je + L)), A = Math.max(0, Math.min(Z, g * lt + x));
+ var pt = Math.abs(P - L), Vt = Math.abs(A - x);
+ if (s) {
+ var ot, ut, Wt;
+ if (c) {
+ var Nt = _.selectdirection;
+ switch (Nt === "any" ? Vt < Math.min(pt * 0.6, Cm) ? ot = "h" : pt < Math.min(Vt * 0.6, Cm) ? ot = "v" : ot = "d" : ot = Nt, ot) {
+ case "h":
+ ut = h ? Z / 2 : 0, Wt = Z;
+ break;
+ case "v":
+ ut = h ? G / 2 : 0, Wt = G;
+ break;
+ }
+ }
+ if (u) switch (_.newshape.drawdirection) {
+ case "vertical":
+ ot = "h", ut = h ? Z / 2 : 0, Wt = Z;
+ break;
+ case "horizontal":
+ ot = "v", ut = h ? G / 2 : 0, Wt = G;
+ break;
+ case "ortho":
+ pt < Vt ? (ot = "h", ut = x, Wt = A) : (ot = "v", ut = L, Wt = P);
+ break;
+ default:
+ ot = "d";
+ }
+ ot === "h" ? (oe = d ? MN(h, [P, ut], [P, Wt]) : [[L, ut], [L, Wt], [P, Wt], [P, ut]], oe.xmin = d ? P : Math.min(L, P), oe.xmax = d ? P : Math.max(L, P), oe.ymin = Math.min(ut, Wt), oe.ymax = Math.max(ut, Wt), Ae.attr("d", "M" + oe.xmin + "," + (x - Cm) + "h-4v" + 2 * Cm + "h4ZM" + (oe.xmax - 1) + "," + (x - Cm) + "h4v" + 2 * Cm + "h-4Z")) : ot === "v" ? (oe = d ? MN(h, [ut, A], [Wt, A]) : [[ut, x], [ut, A], [Wt, A], [Wt, x]], oe.xmin = Math.min(ut, Wt), oe.xmax = Math.max(ut, Wt), oe.ymin = d ? A : Math.min(x, A), oe.ymax = d ? A : Math.max(x, A), Ae.attr("d", "M" + (L - Cm) + "," + oe.ymin + "v-4h" + 2 * Cm + "v4ZM" + (L - Cm) + "," + (oe.ymax - 1) + "v4h" + 2 * Cm + "v-4Z")) : ot === "d" && (oe = d ? MN(h, [L, x], [P, A]) : [[L, x], [L, A], [P, A], [P, x]], oe.xmin = Math.min(L, P), oe.xmax = Math.max(L, P), oe.ymin = Math.min(x, A), oe.ymax = Math.max(x, A), Ae.attr("d", "M0,0Z"));
+ } else o && (N.addPt([P, A]), oe = N.filtered);
+ if (n.selectionDefs && n.selectionDefs.length ? (re = Sfe(n.mergedPolygons, oe, j), oe.subtract = j, H = DN(n.selectionDefs.concat([oe]))) : (re = [oe], H = PN(oe)), _fe(Efe(re, l), ge, n), c) {
+ var $t = kN(v, false), sr = $t.eventData ? $t.eventData.points.slice() : [];
+ $t = kN(v, false, H, De, n), H = $t.selectionTesters, Le = $t.eventData;
+ var Tr;
+ N ? Tr = N.filtered : Tr = Lfe(re), OM.throttle(Pe, MP.SELECTDELAY, function() {
+ me = kfe(H, De);
+ for (var fr = me.slice(), $e = 0; $e < sr.length; $e++) {
+ for (var St = sr[$e], Qt = false, Gt = 0; Gt < fr.length; Gt++) if (fr[Gt].curveNumber === St.curveNumber && fr[Gt].pointNumber === St.pointNumber) {
+ Qt = true;
+ break;
+ }
+ Qt || fr.push(St);
+ }
+ fr.length && (Le || (Le = {}), Le.points = fr), ce(Le, Tr), Nht(v, Le);
+ });
+ }
+ }, n.clickFn = function(je, lt) {
+ if (Ae.remove(), v._fullLayout._activeShapeIndex >= 0) {
+ v._fullLayout._deactivateShape(v);
+ return;
+ }
+ if (!u) {
+ var pt = _.clickmode;
+ OM.done(Pe).then(function() {
+ if (OM.clear(Pe), je === 2) {
+ for (ge.remove(), _e = 0; _e < De.length; _e++) Ce = De[_e], Ce._module.selectPoints(Ce, false);
+ if (UM(v, De), NM(n), zN(v), De.length) {
+ var Vt = De[0].xaxis, ot = De[0].yaxis;
+ if (Vt && ot) {
+ for (var ut = [], Wt = v._fullLayout.selections, Nt = 0; Nt < Wt.length; Nt++) {
+ var $t = Wt[Nt];
+ $t && ($t.xref !== Vt._id || $t.yref !== ot._id) && ut.push($t);
+ }
+ ut.length < Wt.length && (v._fullLayout._noEmitSelectedAtStart = true, qM.call("_guiRelayout", v, { selections: ut }));
+ }
+ }
+ } else pt.indexOf("select") > -1 && Tfe(lt, v, n.xaxes, n.yaxes, n.subplot, n, ge), pt === "event" && VM(v, void 0);
+ fht.click(v, lt, E.id);
+ }).catch(SP.error);
+ }
+ }, n.doneFn = function() {
+ Ae.remove(), OM.done(Pe).then(function() {
+ OM.clear(Pe), !b && oe && n.selectionDefs && (oe.subtract = j, n.selectionDefs.push(oe), n.mergedPolygons.length = 0, [].push.apply(n.mergedPolygons, re)), (b || u) && NM(n, b), n.doneFnCompleted && n.doneFnCompleted(me), c && VM(v, Le);
+ }).catch(SP.error);
+ };
+ }
+ function Tfe(e, t, r, n, i, a, o) {
+ var s = t._hoverdata, l = t._fullLayout, u = l.clickmode, c = u.indexOf("event") > -1, f = [], h, d, v, _, b, p, k, E, T, L;
+ if (Lht(s)) {
+ Afe(e, t, a), h = EP(t, r, n, i);
+ var x = Pht(s, h), C = x.pointNumbers.length > 0;
+ if (C ? Iht(h, x) : Rht(h) && (k = mfe(x))) {
+ for (o && o.remove(), L = 0; L < h.length; L++) d = h[L], d._module.selectPoints(d, false);
+ UM(t, h), NM(a), c && zN(t);
+ } else {
+ E = e.shiftKey && (k !== void 0 ? k : mfe(x)), v = Mht(x.pointNumber, x.searchInfo, E);
+ var M = a.selectionDefs.concat([v]);
+ for (_ = DN(M), L = 0; L < h.length; L++) if (b = h[L]._module.selectPoints(h[L], _), p = Mfe(b, h[L]), f.length) for (var g = 0; g < p.length; g++) f.push(p[g]);
+ else f = p;
+ if (T = { points: f }, UM(t, h, T), v && a && a.selectionDefs.push(v), o) {
+ var P = a.mergedPolygons, A = CN(a.dragmode);
+ _fe(Efe(P, A), o, a);
+ }
+ c && VM(t, T);
+ }
+ }
+ }
+ function Mht(e, t, r) {
+ return { pointNumber: e, searchInfo: t, subtract: !!r };
+ }
+ function EN(e) {
+ return "pointNumber" in e && "searchInfo" in e;
+ }
+ function Eht(e) {
+ return { xmin: 0, xmax: 0, ymin: 0, ymax: 0, pts: [], contains: function(t, r, n, i) {
+ var a = e.searchInfo.cd[0].trace.index, o = i.cd[0].trace.index;
+ return o === a && n === e.pointNumber;
+ }, isRect: false, degenerate: false, subtract: !!e.subtract };
+ }
+ function DN(e) {
+ if (!e.length) return;
+ for (var t = [], r = EN(e[0]) ? 0 : e[0][0][0], n = r, i = EN(e[0]) ? 0 : e[0][0][1], a = i, o = 0; o < e.length; o++) if (EN(e[o])) t.push(Eht(e[o]));
+ else {
+ var s = PN(e[o]);
+ s.subtract = !!e[o].subtract, t.push(s), r = Math.min(r, s.xmin), n = Math.max(n, s.xmax), i = Math.min(i, s.ymin), a = Math.max(a, s.ymax);
+ }
+ function l(u, c, f, h) {
+ for (var d = false, v = 0; v < t.length; v++) t[v].contains(u, c, f, h) && (d = !t[v].subtract);
+ return d;
+ }
+ return { xmin: r, xmax: n, ymin: i, ymax: a, pts: [], contains: l, isRect: false, degenerate: false };
+ }
+ function Afe(e, t, r) {
+ var n = t._fullLayout, i = r.plotinfo, a = r.dragmode, o = n._lastSelectedSubplot && n._lastSelectedSubplot === i.id, s = (e.shiftKey || e.altKey) && !(BM(a) && CN(a));
+ o && s && i.selection && i.selection.selectionDefs && !r.selectionDefs ? (r.selectionDefs = i.selection.selectionDefs, r.mergedPolygons = i.selection.mergedPolygons) : (!s || !i.selection) && NM(r), o || (xfe(t), n._lastSelectedSubplot = i.id);
+ }
+ function kht(e) {
+ return e._fullLayout._activeShapeIndex >= 0;
+ }
+ function Cht(e) {
+ return e._fullLayout._activeSelectionIndex >= 0;
+ }
+ function NM(e, t) {
+ var r = e.dragmode, n = e.plotinfo, i = e.gd;
+ kht(i) && i._fullLayout._deactivateShape(i), Cht(i) && i._fullLayout._deactivateSelection(i);
+ var a = i._fullLayout, o = a._zoomlayer, s = BM(r), l = LN(r);
+ if (s || l) {
+ var u = o.selectAll(".select-outline-" + n.id);
+ if (u && i._fullLayout._outlining) {
+ var c;
+ s && (c = ght(u, e)), c && qM.call("_guiRelayout", i, { shapes: c });
+ var f;
+ l && !RN(e) && (f = mht(u, e)), f && (i._fullLayout._noEmitSelectedAtStart = true, qM.call("_guiRelayout", i, { selections: f }).then(function() {
+ t && yht(i);
+ })), i._fullLayout._outlining = false;
+ }
+ }
+ n.selection = {}, n.selection.selectionDefs = e.selectionDefs = [], n.selection.mergedPolygons = e.mergedPolygons = [];
+ }
+ function gfe(e) {
+ return e._id;
+ }
+ function EP(e, t, r, n) {
+ if (!e.calcdata) return [];
+ var i = [], a = t.map(gfe), o = r.map(gfe), s, l, u;
+ for (u = 0; u < e.calcdata.length; u++) if (s = e.calcdata[u], l = s[0].trace, !(l.visible !== true || !l._module || !l._module.selectPoints)) if (RN({ subplot: n }) && (l.subplot === n || l.geo === n)) i.push(AP(l._module, s, t[0], r[0]));
+ else if (l.type === "splom") {
+ if (l._xaxes[a[0]] && l._yaxes[o[0]]) {
+ var c = AP(l._module, s, t[0], r[0]);
+ c.scene = e._fullLayout._splomScenes[l.uid], i.push(c);
+ }
+ } else if (l.type === "sankey") {
+ var f = AP(l._module, s, t[0], r[0]);
+ i.push(f);
+ } else {
+ if (a.indexOf(l.xaxis) === -1 && (!l._xA || !l._xA.overlaying) || o.indexOf(l.yaxis) === -1 && (!l._yA || !l._yA.overlaying)) continue;
+ i.push(AP(l._module, s, k0(e, l.xaxis), k0(e, l.yaxis)));
+ }
+ return i;
+ }
+ function AP(e, t, r, n) {
+ return { _module: e, cd: t, xaxis: r, yaxis: n };
+ }
+ function Lht(e) {
+ return e && Array.isArray(e) && e[0].hoverOnBox !== true;
+ }
+ function Pht(e, t) {
+ var r = e[0], n = -1, i = [], a, o;
+ for (o = 0; o < t.length; o++) if (a = t[o], r.fullData.index === a.cd[0].trace.index) {
+ if (r.hoverOnBox === true) break;
+ r.pointNumber !== void 0 ? n = r.pointNumber : r.binNumber !== void 0 && (n = r.binNumber, i = r.pointNumbers);
+ break;
+ }
+ return { pointNumber: n, pointNumbers: i, searchInfo: a };
+ }
+ function mfe(e) {
+ var t = e.searchInfo.cd[0].trace, r = e.pointNumber, n = e.pointNumbers, i = n.length > 0, a = i ? n[0] : r;
+ return t.selectedpoints ? t.selectedpoints.indexOf(a) > -1 : false;
+ }
+ function Iht(e, t) {
+ var r = [], n, i, a, o;
+ for (o = 0; o < e.length; o++) n = e[o], n.cd[0].trace.selectedpoints && n.cd[0].trace.selectedpoints.length > 0 && r.push(n);
+ if (r.length === 1 && (a = r[0] === t.searchInfo, a && (i = t.searchInfo.cd[0].trace, i.selectedpoints.length === t.pointNumbers.length))) {
+ for (o = 0; o < t.pointNumbers.length; o++) if (i.selectedpoints.indexOf(t.pointNumbers[o]) < 0) return false;
+ return true;
+ }
+ return false;
+ }
+ function Rht(e) {
+ var t = 0, r, n, i;
+ for (i = 0; i < e.length; i++) if (r = e[i], n = r.cd[0].trace, n.selectedpoints && (n.selectedpoints.length > 1 || (t += n.selectedpoints.length, t > 1))) return false;
+ return t === 1;
+ }
+ function UM(e, t, r) {
+ var n;
+ for (n = 0; n < t.length; n++) {
+ var i = t[n].cd[0].trace._fullInput, a = e._fullLayout._tracePreGUI[i.uid] || {};
+ a.selectedpoints === void 0 && (a.selectedpoints = i._input.selectedpoints || null);
+ }
+ var o;
+ if (r) {
+ var s = r.points || [];
+ for (n = 0; n < t.length; n++) o = t[n].cd[0].trace, o._input.selectedpoints = o._fullInput.selectedpoints = [], o._fullInput !== o && (o.selectedpoints = []);
+ for (var l = 0; l < s.length; l++) {
+ var u = s[l], c = u.data, f = u.fullData, h = u.pointIndex, d = u.pointIndices;
+ d ? ([].push.apply(c.selectedpoints, d), o._fullInput !== o && [].push.apply(f.selectedpoints, d)) : (c.selectedpoints.push(h), o._fullInput !== o && f.selectedpoints.push(h));
+ }
+ } else for (n = 0; n < t.length; n++) o = t[n].cd[0].trace, delete o.selectedpoints, delete o._input.selectedpoints, o._fullInput !== o && delete o._fullInput.selectedpoints;
+ Dht(e, t);
+ }
+ function Dht(e, t) {
+ for (var r = false, n = 0; n < t.length; n++) {
+ var i = t[n], a = i.cd;
+ qM.traceIs(a[0].trace, "regl") && (r = true);
+ var o = i._module, s = o.styleOnSelect || o.style;
+ s && (s(e, a, a[0].node3), a[0].nodeRangePlot3 && s(e, a, a[0].nodeRangePlot3));
+ }
+ r && (xht(e), bht(e));
+ }
+ function Sfe(e, t, r) {
+ for (var n = r ? hfe.difference : hfe.union, i = n({ regions: e }, { regions: [t] }), a = i.regions.reverse(), o = 0; o < a.length; o++) {
+ var s = a[o];
+ s.subtract = FN(s, a.slice(0, o));
+ }
+ return a;
+ }
+ function Mfe(e, t) {
+ if (Array.isArray(e)) for (var r = t.cd, n = t.cd[0].trace, i = 0; i < e.length; i++) e[i] = hht(e[i], n, r);
+ return e;
+ }
+ function Efe(e, t) {
+ for (var r = [], n = 0; n < e.length; n++) {
+ r[n] = [];
+ for (var i = 0; i < e[n].length; i++) {
+ r[n][i] = [], r[n][i][0] = i ? "L" : "M";
+ for (var a = 0; a < e[n][i].length; a++) r[n][i].push(e[n][i][a]);
+ }
+ t || r[n].push(["Z", r[n][0][1], r[n][0][2]]);
+ }
+ return r;
+ }
+ function kfe(e, t) {
+ for (var r = [], n, i = [], a, o = 0; o < t.length; o++) {
+ var s = t[o];
+ a = s._module.selectPoints(s, e), i.push(a), n = Mfe(a, s), r = r.concat(n);
+ }
+ return r;
+ }
+ function kN(e, t, r, n, i) {
+ var a = !!n, o, s, l;
+ i && (o = i.plotinfo, s = i.xaxes[0]._id, l = i.yaxes[0]._id);
+ var u = [], c = [], f = yfe(e), h = e._fullLayout;
+ if (o) {
+ var d = h._zoomlayer, v = h.dragmode, _ = BM(v), b = LN(v);
+ if (_ || b) {
+ var p = k0(e, s, "x"), k = k0(e, l, "y");
+ if (p && k) {
+ var E = d.selectAll(".select-outline-" + o.id);
+ if (E && e._fullLayout._outlining && E.length) {
+ for (var T = E[0][0], L = T.getAttribute("d"), x = pht(L, e, o), C = [], M = 0; M < x.length; M++) {
+ for (var g = x[M], P = [], A = 0; A < g.length; A++) P.push([b_(p, g[A][1]), b_(k, g[A][2])]);
+ P.xref = s, P.yref = l, P.subtract = FN(P, C), C.push(P);
+ }
+ f = f.concat(C);
+ }
+ }
+ }
+ }
+ var z = s && l ? [s + l] : h._subplots.cartesian;
+ Fht(e);
+ for (var O = {}, U = 0; U < z.length; U++) {
+ var G = z[U], Z = G.indexOf("y"), j = G.slice(0, Z), N = G.slice(Z), H = s && l ? r : void 0;
+ if (H = Oht(f, j, N, H), H) {
+ var re = n;
+ if (!a) {
+ var oe = k0(e, j, "x"), _e = k0(e, N, "y");
+ re = EP(e, [oe], [_e], G);
+ for (var Ce = 0; Ce < re.length; Ce++) {
+ var Le = re[Ce], ge = Le.cd[0], ie = ge.trace;
+ if (Le._module.name === "scattergl" && !ge.t.xpx) {
+ var Se = ie.x, Ee = ie.y, Ae = ie._length;
+ ge.t.xpx = [], ge.t.ypx = [];
+ for (var Be = 0; Be < Ae; Be++) ge.t.xpx[Be] = oe.c2p(Se[Be]), ge.t.ypx[Be] = _e.c2p(Ee[Be]);
+ }
+ Le._module.name === "splom" && (O[ie.uid] || (O[ie.uid] = true));
+ }
+ }
+ var Pe = kfe(H, re);
+ u = u.concat(Pe), c = c.concat(re);
+ }
+ }
+ var me = { points: u };
+ UM(e, c, me);
+ var De = h.clickmode, ce = De.indexOf("event") > -1 && t;
+ if (!o && t) {
+ var je = yfe(e, true);
+ if (je.length) {
+ var lt = je[0].xref, pt = je[0].yref;
+ if (lt && pt) {
+ var Vt = Lfe(je), ot = Pfe([k0(e, lt, "x"), k0(e, pt, "y")]);
+ ot(me, Vt);
+ }
+ }
+ e._fullLayout._noEmitSelectedAtStart ? e._fullLayout._noEmitSelectedAtStart = false : ce && VM(e, me), h._reselect = false;
+ }
+ if (!o && h._deselect) {
+ var ut = h._deselect;
+ s = ut.xref, l = ut.yref, zht(s, l, c) || Cfe(e, s, l, n), ce && (me.points.length ? VM(e, me) : zN(e)), h._deselect = false;
+ }
+ return { eventData: me, selectionTesters: r };
+ }
+ function Fht(e) {
+ var t = e.calcdata;
+ if (t) for (var r = 0; r < t.length; r++) {
+ var n = t[r][0], i = n.trace, a = e._fullLayout._splomScenes;
+ if (a) {
+ var o = a[i.uid];
+ o && (o.selectBatch = []);
+ }
+ }
+ }
+ function zht(e, t, r) {
+ for (var n = 0; n < r.length; n++) {
+ var i = r[n];
+ if (i.xaxis && i.xaxis._id === e && i.yaxis && i.yaxis._id === t) return true;
+ }
+ return false;
+ }
+ function Cfe(e, t, r, n) {
+ n = EP(e, [k0(e, t, "x")], [k0(e, r, "y")], t + r);
+ for (var i = 0; i < n.length; i++) {
+ var a = n[i];
+ a._module.selectPoints(a, false);
+ }
+ UM(e, n);
+ }
+ function Oht(e, t, r, n) {
+ for (var i, a = 0; a < e.length; a++) {
+ var o = e[a];
+ if (!(t !== o.xref || r !== o.yref)) if (i) {
+ var s = !!o.subtract;
+ i = Sfe(i, o, s), n = DN(i);
+ } else i = [o], n = PN(o);
+ }
+ return n;
+ }
+ function yfe(e, t) {
+ for (var r = [], n = e._fullLayout, i = n.selections, a = i.length, o = 0; o < a; o++) if (!(t && o !== n._activeSelectionIndex)) {
+ var s = i[o];
+ if (s) {
+ var l = s.xref, u = s.yref, c = k0(e, l, "x"), f = k0(e, u, "y"), h, d, v, _, b;
+ if (s.type === "rect") {
+ b = [];
+ var p = b_(c, s.x0), k = b_(c, s.x1), E = b_(f, s.y0), T = b_(f, s.y1);
+ b = [[p, E], [p, T], [k, T], [k, E]], h = Math.min(p, k), d = Math.max(p, k), v = Math.min(E, T), _ = Math.max(E, T), b.xmin = h, b.xmax = d, b.ymin = v, b.ymax = _, b.xref = l, b.yref = u, b.subtract = false, b.isRect = true, r.push(b);
+ } else if (s.type === "path") for (var L = s.path.split("Z"), x = [], C = 0; C < L.length; C++) {
+ var M = L[C];
+ if (M) {
+ M += "Z";
+ var g = dfe.extractPathCoords(M, vfe.paramIsX, "raw"), P = dfe.extractPathCoords(M, vfe.paramIsY, "raw");
+ h = 1 / 0, d = -1 / 0, v = 1 / 0, _ = -1 / 0, b = [];
+ for (var A = 0; A < g.length; A++) {
+ var z = b_(c, g[A]), O = b_(f, P[A]);
+ b.push([z, O]), h = Math.min(z, h), d = Math.max(z, d), v = Math.min(O, v), _ = Math.max(O, _);
+ }
+ b.xmin = h, b.xmax = d, b.ymin = v, b.ymax = _, b.xref = l, b.yref = u, b.subtract = FN(b, x), x.push(b), r.push(b);
+ }
+ }
+ }
+ }
+ return r;
+ }
+ function FN(e, t) {
+ for (var r = false, n = 0; n < t.length; n++) for (var i = t[n], a = 0; a < e.length; a++) if (uht(e[a], i)) {
+ r = !r;
+ break;
+ }
+ return r;
+ }
+ function b_(e, t) {
+ return e.type === "date" && (t = t.replace("_", " ")), e.type === "log" ? e.c2p(t) : e.r2p(t, null, e.calendar);
+ }
+ function Lfe(e) {
+ for (var t = e.length, r = [], n = 0; n < t; n++) {
+ var i = e[n];
+ r = r.concat(i), r = r.concat([i[0]]);
+ }
+ return qht(r);
+ }
+ function qht(e) {
+ return e.isRect = e.length === 5 && e[0][0] === e[4][0] && e[0][1] === e[4][1] && e[0][0] === e[1][0] && e[2][0] === e[3][0] && e[0][1] === e[3][1] && e[1][1] === e[2][1] || e[0][1] === e[1][1] && e[2][1] === e[3][1] && e[0][0] === e[3][0] && e[1][0] === e[2][0], e.isRect && (e.xmin = Math.min(e[0][0], e[2][0]), e.xmax = Math.max(e[0][0], e[2][0]), e.ymin = Math.min(e[0][1], e[2][1]), e.ymax = Math.max(e[0][1], e[2][1])), e;
+ }
+ function Pfe(e) {
+ return function(t, r) {
+ for (var n, i, a = 0; a < e.length; a++) {
+ var o = e[a], s = o._id, l = s.charAt(0);
+ if (r.isRect) {
+ n || (n = {});
+ var u = r[l + "min"], c = r[l + "max"];
+ u !== void 0 && c !== void 0 && (n[s] = [pfe(o, u), pfe(o, c)].sort(_ht));
+ } else i || (i = {}), i[s] = r.map(Tht(o));
+ }
+ n && (t.range = n), i && (t.lassoPoints = i);
+ };
+ }
+ function Bht(e) {
+ var t = e.plotinfo;
+ return t.fillRangeItems || Pfe(e.xaxes.concat(e.yaxes));
+ }
+ function Nht(e, t) {
+ e.emit("plotly_selecting", t);
+ }
+ function VM(e, t) {
+ t && (t.selections = (e.layout || {}).selections || []), e.emit("plotly_selected", t);
+ }
+ function zN(e) {
+ e.emit("plotly_deselect", null);
+ }
+ Ife.exports = { reselect: kN, prepSelect: Sht, clearOutline: xfe, clearSelectionsCache: NM, selectOnClick: Tfe };
+ });
+ var ON = ye((_or, Dfe) => {
+ Dfe.exports = [{ path: "", backoff: 0 }, { path: "M-2.4,-3V3L0.6,0Z", backoff: 0.6 }, { path: "M-3.7,-2.5V2.5L1.3,0Z", backoff: 1.3 }, { path: "M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z", backoff: 1.55 }, { path: "M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z", backoff: 1.6 }, { path: "M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z", backoff: 2 }, { path: "M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z", backoff: 0, noRotate: true }, { path: "M2,2V-2H-2V2Z", backoff: 0, noRotate: true }];
+ });
+ var HM = ye((xor, Ffe) => {
+ Ffe.exports = { axisRefDescription: function(e, t, r) {
+ return ["If set to a", e, "axis id (e.g. *" + e + "* or", "*" + e + "2*), the `" + e + "` position refers to a", e, "coordinate. If set to *paper*, the `" + e + "`", "position refers to the distance from the", t, "of the plotting", "area in normalized coordinates where *0* (*1*) corresponds to the", t, "(" + r + "). If set to a", e, "axis ID followed by", "*domain* (separated by a space), the position behaves like for", "*paper*, but refers to the distance in fractions of the domain", "length from the", t, "of the domain of that axis: e.g.,", "*" + e + "2 domain* refers to the domain of the second", e, " axis and a", e, "position of 0.5 refers to the", "point between the", t, "and the", r, "of the domain of the", "second", e, "axis."].join(" ");
+ } };
+ });
+ var Jb = ye((wor, qfe) => {
+ var zfe = ON(), Ofe = ec(), kP = Rh(), Uht = vl().templatedArray;
+ HM();
+ qfe.exports = Uht("annotation", { visible: { valType: "boolean", dflt: true, editType: "calc+arraydraw" }, text: { valType: "string", editType: "calc+arraydraw" }, textangle: { valType: "angle", dflt: 0, editType: "calc+arraydraw" }, font: Ofe({ editType: "calc+arraydraw", colorEditType: "arraydraw" }), width: { valType: "number", min: 1, dflt: null, editType: "calc+arraydraw" }, height: { valType: "number", min: 1, dflt: null, editType: "calc+arraydraw" }, opacity: { valType: "number", min: 0, max: 1, dflt: 1, editType: "arraydraw" }, align: { valType: "enumerated", values: ["left", "center", "right"], dflt: "center", editType: "arraydraw" }, valign: { valType: "enumerated", values: ["top", "middle", "bottom"], dflt: "middle", editType: "arraydraw" }, bgcolor: { valType: "color", dflt: "rgba(0,0,0,0)", editType: "arraydraw" }, bordercolor: { valType: "color", dflt: "rgba(0,0,0,0)", editType: "arraydraw" }, borderpad: { valType: "number", min: 0, dflt: 1, editType: "calc+arraydraw" }, borderwidth: { valType: "number", min: 0, dflt: 1, editType: "calc+arraydraw" }, showarrow: { valType: "boolean", dflt: true, editType: "calc+arraydraw" }, arrowcolor: { valType: "color", editType: "arraydraw" }, arrowhead: { valType: "integer", min: 0, max: zfe.length, dflt: 1, editType: "arraydraw" }, startarrowhead: { valType: "integer", min: 0, max: zfe.length, dflt: 1, editType: "arraydraw" }, arrowside: { valType: "flaglist", flags: ["end", "start"], extras: ["none"], dflt: "end", editType: "arraydraw" }, arrowsize: { valType: "number", min: 0.3, dflt: 1, editType: "calc+arraydraw" }, startarrowsize: { valType: "number", min: 0.3, dflt: 1, editType: "calc+arraydraw" }, arrowwidth: { valType: "number", min: 0.1, editType: "calc+arraydraw" }, standoff: { valType: "number", min: 0, dflt: 0, editType: "calc+arraydraw" }, startstandoff: { valType: "number", min: 0, dflt: 0, editType: "calc+arraydraw" }, ax: { valType: "any", editType: "calc+arraydraw" }, ay: { valType: "any", editType: "calc+arraydraw" }, axref: { valType: "enumerated", dflt: "pixel", values: ["pixel", kP.idRegex.x.toString()], editType: "calc" }, ayref: { valType: "enumerated", dflt: "pixel", values: ["pixel", kP.idRegex.y.toString()], editType: "calc" }, xref: { valType: "enumerated", values: ["paper", kP.idRegex.x.toString()], editType: "calc" }, x: { valType: "any", editType: "calc+arraydraw" }, xanchor: { valType: "enumerated", values: ["auto", "left", "center", "right"], dflt: "auto", editType: "calc+arraydraw" }, xshift: { valType: "number", dflt: 0, editType: "calc+arraydraw" }, yref: { valType: "enumerated", values: ["paper", kP.idRegex.y.toString()], editType: "calc" }, y: { valType: "any", editType: "calc+arraydraw" }, yanchor: { valType: "enumerated", values: ["auto", "top", "middle", "bottom"], dflt: "auto", editType: "calc+arraydraw" }, yshift: { valType: "number", dflt: 0, editType: "calc+arraydraw" }, clicktoshow: { valType: "enumerated", values: [false, "onoff", "onout"], dflt: false, editType: "arraydraw" }, xclick: { valType: "any", editType: "arraydraw" }, yclick: { valType: "any", editType: "arraydraw" }, hovertext: { valType: "string", editType: "arraydraw" }, hoverlabel: { bgcolor: { valType: "color", editType: "arraydraw" }, bordercolor: { valType: "color", editType: "arraydraw" }, font: Ofe({ editType: "arraydraw" }), editType: "arraydraw" }, captureevents: { valType: "boolean", editType: "arraydraw" }, editType: "calc" });
+ });
+ var Lm = ye((Tor, Bfe) => {
+ Bfe.exports = { PTS_LINESONLY: 20, minTolerance: 0.2, toleranceGrowth: 10, maxScreensAway: 20, eventDataKeys: [] };
+ });
+ var Pg = ye((Aor, Nfe) => {
+ Nfe.exports = function(t) {
+ return { valType: "color", editType: "style", anim: true };
+ };
+ });
+ var pf = ye((Sor, Zfe) => {
+ var Ufe = df().axisHoverFormat, { hovertemplateAttrs: Vht, texttemplateAttrs: Ght, templatefallbackAttrs: Vfe } = Ll(), Gfe = Tu(), Hht = ec(), Hfe = Pd().dash, jht = Pd().pattern, Wht = So(), Xht = Lm(), jM = Ao().extendFlat, Zht = Pg();
+ function jfe(e) {
+ return { valType: "any", dflt: 0, editType: "calc" };
+ }
+ function Wfe(e) {
+ return { valType: "any", editType: "calc" };
+ }
+ function Xfe(e) {
+ return { valType: "enumerated", values: ["start", "middle", "end"], dflt: "middle", editType: "calc" };
+ }
+ Zfe.exports = { x: { valType: "data_array", editType: "calc+clearAxisTypes", anim: true }, x0: { valType: "any", dflt: 0, editType: "calc+clearAxisTypes", anim: true }, dx: { valType: "number", dflt: 1, editType: "calc", anim: true }, y: { valType: "data_array", editType: "calc+clearAxisTypes", anim: true }, y0: { valType: "any", dflt: 0, editType: "calc+clearAxisTypes", anim: true }, dy: { valType: "number", dflt: 1, editType: "calc", anim: true }, xperiod: jfe(), yperiod: jfe(), xperiod0: Wfe(), yperiod0: Wfe(), xperiodalignment: Xfe(), yperiodalignment: Xfe(), xhoverformat: Ufe("x"), yhoverformat: Ufe("y"), offsetgroup: { valType: "string", dflt: "", editType: "calc" }, alignmentgroup: { valType: "string", dflt: "", editType: "calc" }, stackgroup: { valType: "string", dflt: "", editType: "calc" }, orientation: { valType: "enumerated", values: ["v", "h"], editType: "calc" }, groupnorm: { valType: "enumerated", values: ["", "fraction", "percent"], dflt: "", editType: "calc" }, stackgaps: { valType: "enumerated", values: ["infer zero", "interpolate"], dflt: "infer zero", editType: "calc" }, text: { valType: "string", dflt: "", arrayOk: true, editType: "calc" }, texttemplate: Ght(), texttemplatefallback: Vfe({ editType: "calc" }), hovertext: { valType: "string", dflt: "", arrayOk: true, editType: "style" }, mode: { valType: "flaglist", flags: ["lines", "markers", "text"], extras: ["none"], editType: "calc" }, hoveron: { valType: "flaglist", flags: ["points", "fills"], editType: "style" }, hovertemplate: Vht({}, { keys: Xht.eventDataKeys }), hovertemplatefallback: Vfe(), line: { color: { valType: "color", editType: "style", anim: true }, width: { valType: "number", min: 0, dflt: 2, editType: "style", anim: true }, shape: { valType: "enumerated", values: ["linear", "spline", "hv", "vh", "hvh", "vhv"], dflt: "linear", editType: "plot" }, smoothing: { valType: "number", min: 0, max: 1.3, dflt: 1, editType: "plot" }, dash: jM({}, Hfe, { editType: "style" }), backoff: { valType: "number", min: 0, dflt: "auto", arrayOk: true, editType: "plot" }, simplify: { valType: "boolean", dflt: true, editType: "plot" }, editType: "plot" }, connectgaps: { valType: "boolean", dflt: false, editType: "calc" }, cliponaxis: { valType: "boolean", dflt: true, editType: "plot" }, fill: { valType: "enumerated", values: ["none", "tozeroy", "tozerox", "tonexty", "tonextx", "toself", "tonext"], editType: "calc" }, fillcolor: Zht(true), fillgradient: jM({ type: { valType: "enumerated", values: ["radial", "horizontal", "vertical", "none"], dflt: "none", editType: "calc" }, start: { valType: "number", editType: "calc" }, stop: { valType: "number", editType: "calc" }, colorscale: { valType: "colorscale", editType: "style" }, editType: "calc" }), fillpattern: jht, marker: jM({ symbol: { valType: "enumerated", values: Wht.symbolList, dflt: "circle", arrayOk: true, editType: "style" }, opacity: { valType: "number", min: 0, max: 1, arrayOk: true, editType: "style", anim: true }, angle: { valType: "angle", dflt: 0, arrayOk: true, editType: "plot", anim: false }, angleref: { valType: "enumerated", values: ["previous", "up"], dflt: "up", editType: "plot", anim: false }, standoff: { valType: "number", min: 0, dflt: 0, arrayOk: true, editType: "plot", anim: true }, size: { valType: "number", min: 0, dflt: 6, arrayOk: true, editType: "calc", anim: true }, maxdisplayed: { valType: "number", min: 0, dflt: 0, editType: "plot" }, sizeref: { valType: "number", dflt: 1, editType: "calc" }, sizemin: { valType: "number", min: 0, dflt: 0, editType: "calc" }, sizemode: { valType: "enumerated", values: ["diameter", "area"], dflt: "diameter", editType: "calc" }, line: jM({ width: { valType: "number", min: 0, arrayOk: true, editType: "style", anim: true }, dash: jM({}, Hfe, { arrayOk: true }), editType: "calc" }, Gfe("marker.line", { anim: true })), gradient: { type: { valType: "enumerated", values: ["radial", "horizontal", "vertical", "none"], arrayOk: true, dflt: "none", editType: "calc" }, color: { valType: "color", arrayOk: true, editType: "calc" }, editType: "calc" }, editType: "calc" }, Gfe("marker", { anim: true })), selected: { marker: { opacity: { valType: "number", min: 0, max: 1, editType: "style" }, color: { valType: "color", editType: "style" }, size: { valType: "number", min: 0, editType: "style" }, editType: "style" }, textfont: { color: { valType: "color", editType: "style" }, editType: "style" }, editType: "style" }, unselected: { marker: { opacity: { valType: "number", min: 0, max: 1, editType: "style" }, color: { valType: "color", editType: "style" }, size: { valType: "number", min: 0, editType: "style" }, editType: "style" }, textfont: { color: { valType: "color", editType: "style" }, editType: "style" }, editType: "style" }, textposition: { valType: "enumerated", values: ["top left", "top center", "top right", "middle left", "middle center", "middle right", "bottom left", "bottom center", "bottom right"], dflt: "middle center", arrayOk: true, editType: "calc" }, textfont: Hht({ editType: "calc", colorEditType: "style", arrayOk: true }), zorder: { valType: "integer", dflt: 0, editType: "plot" } };
+ });
+ var qN = ye((Eor, Jfe) => {
+ var Yfe = Jb(), Kfe = pf().line, Yht = Pd().dash, CP = Ao().extendFlat, Kht = mc().overrideAll, Jht = vl().templatedArray;
+ HM();
+ Jfe.exports = Kht(Jht("selection", { type: { valType: "enumerated", values: ["rect", "path"] }, xref: CP({}, Yfe.xref, {}), yref: CP({}, Yfe.yref, {}), x0: { valType: "any" }, x1: { valType: "any" }, y0: { valType: "any" }, y1: { valType: "any" }, path: { valType: "string", editType: "arraydraw" }, opacity: { valType: "number", min: 0, max: 1, dflt: 0.7, editType: "arraydraw" }, line: { color: Kfe.color, width: CP({}, Kfe.width, { min: 1, dflt: 1 }), dash: CP({}, Yht, { dflt: "dot" }) } }), "arraydraw", "from-root");
+ });
+ var the = ye((kor, ehe) => {
+ var $fe = Dr(), LP = ho(), $ht = Zd(), Qht = qN(), Qfe = x_();
+ ehe.exports = function(t, r) {
+ $ht(t, r, { name: "selections", handleItemDefaults: edt });
+ for (var n = r.selections, i = 0; i < n.length; i++) {
+ var a = n[i];
+ a && a.path === void 0 && (a.x0 === void 0 || a.x1 === void 0 || a.y0 === void 0 || a.y1 === void 0) && (r.selections[i] = null);
+ }
+ };
+ function edt(e, t, r) {
+ function n(x, C) {
+ return $fe.coerce(e, t, Qht, x, C);
+ }
+ var i = n("path"), a = i ? "path" : "rect", o = n("type", a), s = o !== "path";
+ s && delete t.path, n("opacity"), n("line.color"), n("line.width"), n("line.dash");
+ for (var l = ["x", "y"], u = 0; u < 2; u++) {
+ var c = l[u], f = { _fullLayout: r }, h, d, v, _ = LP.coerceRef(e, t, f, c);
+ if (h = LP.getFromId(f, _), h._selectionIndices.push(t._index), v = Qfe.rangeToShapePosition(h), d = Qfe.shapePositionToRange(h), s) {
+ var b = c + "0", p = c + "1", k = e[b], E = e[p];
+ e[b] = d(e[b], true), e[p] = d(e[p], true), LP.coercePosition(t, f, n, _, b), LP.coercePosition(t, f, n, _, p);
+ var T = t[b], L = t[p];
+ T !== void 0 && L !== void 0 && (t[b] = v(T), t[p] = v(L), e[b] = k, e[p] = E);
+ }
+ }
+ s && $fe.noneOrAll(e, t, ["x0", "x1", "y0", "y1"]);
+ }
+ });
+ var ihe = ye((Cor, rhe) => {
+ rhe.exports = function(t, r, n) {
+ n("newselection.mode");
+ var i = n("newselection.line.width");
+ i && (n("newselection.line.color"), n("newselection.line.dash")), n("activeselection.fillcolor"), n("activeselection.opacity");
+ };
+ });
+ var WM = ye((Lor, ohe) => {
+ var tdt = qa(), nhe = Dr(), ahe = hf();
+ ohe.exports = function(t) {
+ return function(n, i) {
+ var a = n[t];
+ if (Array.isArray(a)) for (var o = tdt.subplotsRegistry.cartesian, s = o.idRegex, l = i._subplots, u = l.xaxis, c = l.yaxis, f = l.cartesian, h = i._has("cartesian"), d = 0; d < a.length; d++) {
+ var v = a[d];
+ if (nhe.isPlainObject(v)) {
+ var _ = ahe.cleanId(v.xref, "x", false), b = ahe.cleanId(v.yref, "y", false), p = s.x.test(_), k = s.y.test(b);
+ if (p || k) {
+ h || nhe.pushUnique(i._basePlotModules, o);
+ var E = false;
+ p && u.indexOf(_) === -1 && (u.push(_), E = true), k && c.indexOf(b) === -1 && (c.push(b), E = true), E && p && k && f.push(_ + b);
+ }
+ }
+ }
+ };
+ };
+ });
+ var Of = ye((Por, lhe) => {
+ var she = AN(), XM = Rfe();
+ lhe.exports = { moduleType: "component", name: "selections", layoutAttributes: qN(), supplyLayoutDefaults: the(), supplyDrawNewSelectionDefaults: ihe(), includeBasePlot: WM()("selections"), draw: she.draw, drawOne: she.drawOne, reselect: XM.reselect, prepSelect: XM.prepSelect, clearOutline: XM.clearOutline, clearSelectionsCache: XM.clearSelectionsCache, selectOnClick: XM.selectOnClick };
+ });
+ var jN = ye((Ior, khe) => {
+ var GN = Oa(), C0 = Dr(), uhe = C0.numberFormat, rdt = fd(), idt = UL(), PP = qa(), yhe = C0.strTranslate, ndt = Zl(), che = ka(), w_ = So(), adt = vf(), fhe = ho(), odt = Eg(), sdt = yv(), _he = Cg(), IP = _he.selectingOrDrawing, ldt = _he.freeMode, udt = Dh().FROM_TL, cdt = bM(), fdt = CM().redrawReglTraces, hdt = Mc(), NN = hf().getFromId, ddt = Of().prepSelect, vdt = Of().clearOutline, pdt = Of().selectOnClick, BN = gN(), HN = Rh(), hhe = HN.MINDRAG, ap = HN.MINZOOM, dhe = true;
+ function gdt(e, t, r, n, i, a, o, s) {
+ var l = e._fullLayout._zoomlayer, u = o + s === "nsew", c = (o + s).length === 1, f, h, d, v, _, b, p, k, E, T, L, x, C, M, g, P, A, z, O, U, G, Z, j;
+ r += t.yaxis._shift;
+ function N() {
+ if (f = t.xaxis, h = t.yaxis, E = f._length, T = h._length, p = f._offset, k = h._offset, d = {}, d[f._id] = f, v = {}, v[h._id] = h, o && s) for (var It = t.overlays, mt = 0; mt < It.length; mt++) {
+ var er = It[mt].xaxis;
+ d[er._id] = er;
+ var lr = It[mt].yaxis;
+ v[lr._id] = lr;
+ }
+ _ = mhe(d), b = mhe(v), C = vhe(_, s), M = vhe(b, o), g = !M && !C, x = ghe(e, e._fullLayout._axisMatchGroups, d, v), L = ghe(e, e._fullLayout._axisConstraintGroups, d, v, x);
+ var wr = L.isSubplotConstrained || x.isSubplotConstrained;
+ P = s || wr, A = o || wr;
+ var Lr = e._fullLayout;
+ z = Lr._has("scattergl"), O = Lr._has("splom"), U = Lr._has("svg");
+ }
+ N();
+ var H = _dt(M + C, e._fullLayout.dragmode, u), re = bhe(t, o + s + "drag", H, r, n, i, a);
+ if (g && !u) return re.onmousedown = null, re.style.pointerEvents = "none", re;
+ var oe = { element: re, gd: e, plotinfo: t };
+ oe.prepFn = function(It, mt, er) {
+ var lr = oe.dragmode, wr = e._fullLayout.dragmode;
+ wr !== lr && (oe.dragmode = wr), N(), Z = e._fullLayout._invScaleX, j = e._fullLayout._invScaleY, g || (u ? It.shiftKey ? wr === "pan" ? wr = "zoom" : IP(wr) || (wr = "pan") : It.ctrlKey && (wr = "pan") : wr = "pan"), ldt(wr) ? oe.minDrag = 1 : oe.minDrag = void 0, IP(wr) ? (oe.xaxes = _, oe.yaxes = b, ddt(It, mt, er, oe, wr)) : (oe.clickFn = Ce, IP(lr) && _e(), g || (wr === "zoom" ? (oe.moveFn = je, oe.doneFn = pt, oe.minDrag = 1, ce(It, mt, er)) : wr === "pan" && (oe.moveFn = $t, oe.doneFn = $e))), e._fullLayout._redrag = function() {
+ var Lr = e._dragdata;
+ if (Lr && Lr.element === re) {
+ var ti = e._fullLayout.dragmode;
+ IP(ti) || (N(), St([0, 0, E, T]), oe.moveFn(Lr.dx, Lr.dy));
+ }
+ };
+ };
+ function _e() {
+ oe.plotinfo.selection = false, vdt(e);
+ }
+ function Ce(It, mt) {
+ var er = oe.gd;
+ if (er._fullLayout._activeShapeIndex >= 0) {
+ er._fullLayout._deactivateShape(er);
+ return;
+ }
+ var lr = er._fullLayout.clickmode;
+ if (VN(er), It === 2 && !c && fr(), u) lr.indexOf("select") > -1 && pdt(mt, er, _, b, t.id, oe), lr.indexOf("event") > -1 && adt.click(er, mt, t.id);
+ else if (It === 1 && c) {
+ var wr = o ? h : f, Lr = o === "s" || s === "w" ? 0 : 1, ti = wr._name + ".range[" + Lr + "]", Br = mdt(wr, Lr), Vr = "left", dt = "middle";
+ if (wr.fixedrange) return;
+ o ? (dt = o === "n" ? "top" : "bottom", wr.side === "right" && (Vr = "right")) : s === "e" && (Vr = "right"), er._context.showAxisRangeEntryBoxes && GN.select(re).call(ndt.makeEditable, { gd: er, immediate: true, background: er._fullLayout.paper_bgcolor, text: String(Br), fill: wr.tickfont ? wr.tickfont.color : "#444", horizontalAlign: Vr, verticalAlign: dt }).on("edit", function(Ge) {
+ var Je = wr.d2r(Ge);
+ Je !== void 0 && PP.call("_guiRelayout", er, ti, Je);
+ });
+ }
+ }
+ sdt.init(oe);
+ var Le, ge, ie, Se, Ee, Ae, Be, Pe, me, De;
+ function ce(It, mt, er) {
+ var lr = re.getBoundingClientRect();
+ Le = mt - lr.left, ge = er - lr.top, e._fullLayout._calcInverseTransform(e);
+ var wr = C0.apply3DTransform(e._fullLayout._invTransform)(Le, ge);
+ Le = wr[0], ge = wr[1], ie = { l: Le, r: Le, w: 0, t: ge, b: ge, h: 0 }, Se = e._hmpixcount ? e._hmlumcount / e._hmpixcount : rdt(e._fullLayout.plot_bgcolor).getLuminance(), Ee = "M0,0H" + E + "V" + T + "H0V0", Ae = false, Be = "xy", De = false, Pe = whe(l, Se, p, k, Ee), me = The(l, p, k);
+ }
+ function je(It, mt) {
+ if (e._transitioningWithDuration) return false;
+ var er = Math.max(0, Math.min(E, Z * It + Le)), lr = Math.max(0, Math.min(T, j * mt + ge)), wr = Math.abs(er - Le), Lr = Math.abs(lr - ge);
+ ie.l = Math.min(Le, er), ie.r = Math.max(Le, er), ie.t = Math.min(ge, lr), ie.b = Math.max(ge, lr);
+ function ti() {
+ Be = "", ie.r = ie.l, ie.t = ie.b, me.attr("d", "M0,0Z");
+ }
+ if (L.isSubplotConstrained) wr > ap || Lr > ap ? (Be = "xy", wr / E > Lr / T ? (Lr = wr * T / E, ge > lr ? ie.t = ge - Lr : ie.b = ge + Lr) : (wr = Lr * E / T, Le > er ? ie.l = Le - wr : ie.r = Le + wr), me.attr("d", RP(ie))) : ti();
+ else if (x.isSubplotConstrained) if (wr > ap || Lr > ap) {
+ Be = "xy";
+ var Br = Math.min(ie.l / E, (T - ie.b) / T), Vr = Math.max(ie.r / E, (T - ie.t) / T);
+ ie.l = Br * E, ie.r = Vr * E, ie.b = (1 - Br) * T, ie.t = (1 - Vr) * T, me.attr("d", RP(ie));
+ } else ti();
+ else !M || Lr < Math.min(Math.max(wr * 0.6, hhe), ap) ? wr < hhe || !C ? ti() : (ie.t = 0, ie.b = T, Be = "x", me.attr("d", xdt(ie, ge))) : !C || wr < Math.min(Lr * 0.6, ap) ? (ie.l = 0, ie.r = E, Be = "y", me.attr("d", bdt(ie, Le))) : (Be = "xy", me.attr("d", RP(ie)));
+ ie.w = ie.r - ie.l, ie.h = ie.b - ie.t, Be && (De = true), e._dragged = De, Ahe(Pe, me, ie, Ee, Ae, Se), lt(), e.emit("plotly_relayouting", G), Ae = true;
+ }
+ function lt() {
+ G = {}, (Be === "xy" || Be === "x") && (UN(_, ie.l / E, ie.r / E, G, L.xaxes), sr("x", G)), (Be === "xy" || Be === "y") && (UN(b, (T - ie.b) / T, (T - ie.t) / T, G, L.yaxes), sr("y", G));
+ }
+ function pt() {
+ lt(), VN(e), $e(), Mhe(e);
+ }
+ var Vt = [0, 0, E, T], ot = null, ut = HN.REDRAWDELAY, Wt = t.mainplot ? e._fullLayout._plots[t.mainplot] : t;
+ function Nt(It) {
+ if (!e._context._scrollZoom.cartesian && !e._fullLayout._enablescrollzoom) return;
+ if (_e(), e._transitioningWithDuration) {
+ It.preventDefault(), It.stopPropagation();
+ return;
+ }
+ N(), clearTimeout(ot);
+ var mt = -It.deltaY;
+ if (isFinite(mt) || (mt = It.wheelDelta / 10), !isFinite(mt)) {
+ C0.log("Did not find wheel motion attributes: ", It);
+ return;
+ }
+ var er = Math.exp(-Math.min(Math.max(mt, -20), 20) / 200), lr = Wt.draglayer.select(".nsewdrag").node().getBoundingClientRect(), wr = (It.clientX - lr.left) / lr.width, Lr = (lr.bottom - It.clientY) / lr.height, ti;
+ function Br(Vr, dt, Ge) {
+ if (Vr.fixedrange) return;
+ var Je = C0.simpleMap(Vr.range, Vr.r2l), We = Je[0] + (Je[1] - Je[0]) * dt;
+ function tt(xt) {
+ return Vr.l2r(We + (xt - We) * Ge);
+ }
+ Vr.range = Je.map(tt);
+ }
+ if (P) {
+ for (s || (wr = 0.5), ti = 0; ti < _.length; ti++) Br(_[ti], wr, er);
+ sr("x"), Vt[2] *= er, Vt[0] += Vt[2] * wr * (1 / er - 1);
+ }
+ if (A) {
+ for (o || (Lr = 0.5), ti = 0; ti < b.length; ti++) Br(b[ti], Lr, er);
+ sr("y"), Vt[3] *= er, Vt[1] += Vt[3] * (1 - Lr) * (1 / er - 1);
+ }
+ St(Vt), Tr(), e.emit("plotly_relayouting", G), ot = setTimeout(function() {
+ e._fullLayout && (Vt = [0, 0, E, T], $e());
+ }, ut), It.preventDefault();
+ }
+ o.length * s.length !== 1 && Ehe(re, Nt);
+ function $t(It, mt) {
+ if (It = It * Z, mt = mt * j, e._transitioningWithDuration) return;
+ if (e._fullLayout._replotting = true, C === "ew" || M === "ns") {
+ var er = C ? -It : 0, lr = M ? -mt : 0;
+ if (x.isSubplotConstrained) {
+ if (C && M) {
+ var wr = (It / E - mt / T) / 2;
+ It = wr * E, mt = -wr * T, er = -It, lr = -mt;
+ }
+ M ? er = -lr * E / T : lr = -er * T / E;
+ }
+ C && (phe(_, It), sr("x")), M && (phe(b, mt), sr("y")), St([er, lr, E, T]), Tr(), e.emit("plotly_relayouting", G);
+ return;
+ }
+ function Lr(tt, xt, Ie) {
+ for (var xe = 1 - xt, ke, vt, ir = 0; ir < tt.length; ir++) {
+ var ar = tt[ir];
+ if (!ar.fixedrange) {
+ ke = ar, vt = ar._rl[xe] + (ar._rl[xt] - ar._rl[xe]) / ydt(Ie / ar._length);
+ var vr = ar.l2r(vt);
+ vr !== false && vr !== void 0 && (ar.range[xt] = vr);
+ }
+ }
+ return ke._length * (ke._rl[xt] - vt) / (ke._rl[xt] - ke._rl[xe]);
+ }
+ var ti = C === "w" == (M === "n") ? 1 : -1;
+ if (C && M && (L.isSubplotConstrained || x.isSubplotConstrained)) {
+ var Br = (It / E + ti * mt / T) / 2;
+ It = Br * E, mt = ti * Br * T;
+ }
+ var Vr, dt;
+ if (C === "w" ? It = Lr(_, 0, It) : C === "e" ? It = Lr(_, 1, -It) : C || (It = 0), M === "n" ? mt = Lr(b, 1, mt) : M === "s" ? mt = Lr(b, 0, -mt) : M || (mt = 0), Vr = C === "w" ? It : 0, dt = M === "n" ? mt : 0, L.isSubplotConstrained && !x.isSubplotConstrained || x.isSubplotConstrained && C && M && ti > 0) {
+ var Ge;
+ if (x.isSubplotConstrained || !C && M.length === 1) {
+ for (Ge = 0; Ge < _.length; Ge++) _[Ge].range = _[Ge]._r.slice(), BN(_[Ge], 1 - mt / T);
+ It = mt * E / T, Vr = It / 2;
+ }
+ if (x.isSubplotConstrained || !M && C.length === 1) {
+ for (Ge = 0; Ge < b.length; Ge++) b[Ge].range = b[Ge]._r.slice(), BN(b[Ge], 1 - It / E);
+ mt = It * T / E, dt = mt / 2;
+ }
+ }
+ (!x.isSubplotConstrained || !M) && sr("x"), (!x.isSubplotConstrained || !C) && sr("y");
+ var Je = E - It, We = T - mt;
+ x.isSubplotConstrained && !(C && M) && (C ? (dt = Vr ? 0 : It * T / E, We = Je * T / E) : (Vr = dt ? 0 : mt * E / T, Je = We * E / T)), St([Vr, dt, Je, We]), Tr(), e.emit("plotly_relayouting", G);
+ }
+ function sr(It, mt) {
+ for (var er = x.isSubplotConstrained ? { x: b, y: _ }[It] : x[It + "axes"], lr = x.isSubplotConstrained ? { x: _, y: b }[It] : [], wr = 0; wr < er.length; wr++) {
+ var Lr = er[wr], ti = Lr._id, Br = x.xLinks[ti] || x.yLinks[ti], Vr = lr[0] || d[Br] || v[Br];
+ Vr && (mt ? (mt[Lr._name + ".range[0]"] = mt[Vr._name + ".range[0]"], mt[Lr._name + ".range[1]"] = mt[Vr._name + ".range[1]"]) : Lr.range = Vr.range.slice());
+ }
+ }
+ function Tr() {
+ var It = [], mt;
+ function er(ti) {
+ for (mt = 0; mt < ti.length; mt++) ti[mt].fixedrange || It.push(ti[mt]._id);
+ }
+ function lr(ti, Br) {
+ for (mt = 0; mt < ti.length; mt++) {
+ var Vr = ti[mt], dt = Vr[Br];
+ !Vr.fixedrange && dt.tickmode === "sync" && It.push(dt._id);
+ }
+ }
+ for (P && (er(_), er(L.xaxes), er(x.xaxes), lr(t.overlays, "xaxis")), A && (er(b), er(L.yaxes), er(x.yaxes), lr(t.overlays, "yaxis")), G = {}, mt = 0; mt < It.length; mt++) {
+ var wr = It[mt], Lr = NN(e, wr);
+ fhe.drawOne(e, Lr, { skipTitle: true }), G[Lr._name + ".range[0]"] = Lr.range[0], G[Lr._name + ".range[1]"] = Lr.range[1];
+ }
+ fhe.redrawComponents(e, It);
+ }
+ function fr() {
+ if (!e._transitioningWithDuration) {
+ var It = e._context.doubleClick, mt = [];
+ C && (mt = mt.concat(_)), M && (mt = mt.concat(b)), x.xaxes && (mt = mt.concat(x.xaxes)), x.yaxes && (mt = mt.concat(x.yaxes));
+ var er = {}, lr, wr;
+ if (It === "reset+autosize") for (It = "autosize", wr = 0; wr < mt.length; wr++) {
+ lr = mt[wr];
+ var Lr = lr._rangeInitial0, ti = lr._rangeInitial1, Br = Lr !== void 0 || ti !== void 0;
+ if (Br && (Lr !== void 0 && Lr !== lr.range[0] || ti !== void 0 && ti !== lr.range[1]) || !Br && lr.autorange !== true) {
+ It = "reset";
+ break;
+ }
+ }
+ if (It === "autosize") for (wr = 0; wr < mt.length; wr++) lr = mt[wr], lr.fixedrange || (er[lr._name + ".autorange"] = true);
+ else if (It === "reset") {
+ for ((C || L.isSubplotConstrained) && (mt = mt.concat(L.xaxes)), M && !L.isSubplotConstrained && (mt = mt.concat(L.yaxes)), L.isSubplotConstrained && (C ? M || (mt = mt.concat(b)) : mt = mt.concat(_)), wr = 0; wr < mt.length; wr++) if (lr = mt[wr], !lr.fixedrange) {
+ var Vr = lr._name, dt = lr._autorangeInitial;
+ lr._rangeInitial0 === void 0 && lr._rangeInitial1 === void 0 ? er[Vr + ".autorange"] = true : lr._rangeInitial0 === void 0 ? (er[Vr + ".autorange"] = dt, er[Vr + ".range"] = [null, lr._rangeInitial1]) : lr._rangeInitial1 === void 0 ? (er[Vr + ".range"] = [lr._rangeInitial0, null], er[Vr + ".autorange"] = dt) : er[Vr + ".range"] = [lr._rangeInitial0, lr._rangeInitial1];
+ }
+ }
+ e.emit("plotly_doubleclick", null), PP.call("_guiRelayout", e, er);
+ }
+ }
+ function $e() {
+ St([0, 0, E, T]), C0.syncOrAsync([hdt.previousPromises, function() {
+ e._fullLayout._replotting = false, PP.call("_guiRelayout", e, G);
+ }], e);
+ }
+ function St(It) {
+ var mt = e._fullLayout, er = mt._plots, lr = mt._subplots.cartesian, wr, Lr, ti, Br;
+ if (O && PP.subplotsRegistry.splom.drag(e), z) {
+ for (wr = 0; wr < lr.length; wr++) if (Lr = er[lr[wr]], ti = Lr.xaxis, Br = Lr.yaxis, Lr._scene) {
+ ti.limitRange && ti.limitRange(), Br.limitRange && Br.limitRange();
+ var Vr = C0.simpleMap(ti.range, ti.r2l), dt = C0.simpleMap(Br.range, Br.r2l);
+ Lr._scene.update({ range: [Vr[0], dt[0], Vr[1], dt[1]] });
+ }
+ }
+ if ((O || z) && (cdt(e), fdt(e)), U) {
+ var Ge = It[2] / f._length, Je = It[3] / h._length;
+ for (wr = 0; wr < lr.length; wr++) {
+ Lr = er[lr[wr]], ti = Lr.xaxis, Br = Lr.yaxis;
+ var We = (P || x.isSubplotConstrained) && !ti.fixedrange && d[ti._id], tt = (A || x.isSubplotConstrained) && !Br.fixedrange && v[Br._id], xt, Ie, xe, ke;
+ if (We ? (xt = Ge, xe = s || x.isSubplotConstrained ? It[0] : _t(ti, xt)) : x.xaHash[ti._id] ? (xt = Ge, xe = It[0] * ti._length / f._length) : x.yaHash[ti._id] ? (xt = Je, xe = M === "ns" ? -It[1] * ti._length / h._length : _t(ti, xt, { n: "top", s: "bottom" }[M])) : (xt = Qt(ti, Ge, Je), xe = Gt(ti, xt)), xt > 1 && (ti.maxallowed !== void 0 && P === (ti.range[0] < ti.range[1] ? "e" : "w") || ti.minallowed !== void 0 && P === (ti.range[0] < ti.range[1] ? "w" : "e")) && (xt = 1, xe = 0), tt ? (Ie = Je, ke = o || x.isSubplotConstrained ? It[1] : _t(Br, Ie)) : x.yaHash[Br._id] ? (Ie = Je, ke = It[1] * Br._length / h._length) : x.xaHash[Br._id] ? (Ie = Ge, ke = C === "ew" ? -It[0] * Br._length / f._length : _t(Br, Ie, { e: "right", w: "left" }[C])) : (Ie = Qt(Br, Ge, Je), ke = Gt(Br, Ie)), Ie > 1 && (Br.maxallowed !== void 0 && A === (Br.range[0] < Br.range[1] ? "n" : "s") || Br.minallowed !== void 0 && A === (Br.range[0] < Br.range[1] ? "s" : "n")) && (Ie = 1, ke = 0), !(!xt && !Ie)) {
+ xt || (xt = 1), Ie || (Ie = 1);
+ var vt = ti._offset - xe / xt, ir = Br._offset - ke / Ie;
+ Lr.clipRect.call(w_.setTranslate, xe, ke).call(w_.setScale, xt, Ie), Lr.plot.call(w_.setTranslate, vt, ir).call(w_.setScale, 1 / xt, 1 / Ie), (xt !== Lr.xScaleFactor || Ie !== Lr.yScaleFactor) && (w_.setPointGroupScale(Lr.zoomScalePts, xt, Ie), w_.setTextPointsScale(Lr.zoomScaleTxt, xt, Ie)), w_.hideOutsideRangePoints(Lr.clipOnAxisFalseTraces, Lr), Lr.xScaleFactor = xt, Lr.yScaleFactor = Ie;
+ }
+ }
+ }
+ }
+ function Qt(It, mt, er) {
+ return It.fixedrange ? 0 : P && L.xaHash[It._id] ? mt : A && (L.isSubplotConstrained ? L.xaHash : L.yaHash)[It._id] ? er : 0;
+ }
+ function Gt(It, mt) {
+ return mt ? (It.range = It._r.slice(), BN(It, mt), _t(It, mt)) : 0;
+ }
+ function _t(It, mt, er) {
+ return It._length * (1 - mt) * udt[er || It.constraintoward || "middle"];
+ }
+ return re;
+ }
+ function xhe(e, t, r, n) {
+ var i = C0.ensureSingle(e.draglayer, t, r, function(a) {
+ a.classed("drag", true).style({ fill: "transparent", "stroke-width": 0 }).attr("data-subplot", e.id);
+ });
+ return i.call(odt, n), i.node();
+ }
+ function bhe(e, t, r, n, i, a, o) {
+ var s = xhe(e, "rect", t, r);
+ return GN.select(s).call(w_.setRect, n, i, a, o), s;
+ }
+ function vhe(e, t) {
+ for (var r = 0; r < e.length; r++) if (!e[r].fixedrange) return t;
+ return "";
+ }
+ function mdt(e, t) {
+ var r = e.range[t], n = Math.abs(r - e.range[1 - t]), i;
+ return e.type === "date" ? r : e.type === "log" ? (i = Math.ceil(Math.max(0, -Math.log(n) / Math.LN10)) + 3, uhe("." + i + "g")(Math.pow(10, r))) : (i = Math.floor(Math.log(Math.abs(r)) / Math.LN10) - Math.floor(Math.log(n) / Math.LN10) + 4, uhe("." + String(i) + "g")(r));
+ }
+ function UN(e, t, r, n, i) {
+ for (var a = 0; a < e.length; a++) {
+ var o = e[a];
+ if (!o.fixedrange) if (o.rangebreaks) {
+ var s = o._id.charAt(0) === "y", l = s ? 1 - t : t, u = s ? 1 - r : r;
+ n[o._name + ".range[0]"] = o.l2r(o.p2l(l * o._length)), n[o._name + ".range[1]"] = o.l2r(o.p2l(u * o._length));
+ } else {
+ var c = o._rl[0], f = o._rl[1] - c;
+ n[o._name + ".range[0]"] = o.l2r(c + f * t), n[o._name + ".range[1]"] = o.l2r(c + f * r);
+ }
+ }
+ if (i && i.length) {
+ var h = (t + (1 - r)) / 2;
+ UN(i, h, 1 - h, n, []);
+ }
+ }
+ function phe(e, t) {
+ for (var r = 0; r < e.length; r++) {
+ var n = e[r];
+ if (!n.fixedrange) {
+ if (n.rangebreaks) {
+ var i = 0, a = n._length, o = n.p2l(i + t) - n.p2l(i), s = n.p2l(a + t) - n.p2l(a), l = (o + s) / 2;
+ n.range = [n.l2r(n._rl[0] - l), n.l2r(n._rl[1] - l)];
+ } else n.range = [n.l2r(n._rl[0] - t / n._m), n.l2r(n._rl[1] - t / n._m)];
+ n.limitRange && n.limitRange();
+ }
+ }
+ }
+ function ydt(e) {
+ return 1 - (e >= 0 ? Math.min(e, 0.9) : 1 / (1 / Math.max(e, -0.3) + 3.222));
+ }
+ function _dt(e, t, r) {
+ return e ? e === "nsew" ? r ? "" : t === "pan" ? "move" : "crosshair" : e.toLowerCase() + "-resize" : "pointer";
+ }
+ function whe(e, t, r, n, i) {
+ return e.append("path").attr("class", "zoombox").style({ fill: t > 0.2 ? "rgba(0,0,0,0)" : "rgba(255,255,255,0)", "stroke-width": 0 }).attr("transform", yhe(r, n)).attr("d", i + "Z");
+ }
+ function The(e, t, r) {
+ return e.append("path").attr("class", "zoombox-corners").style({ fill: che.background, stroke: che.defaultLine, "stroke-width": 1, opacity: 0 }).attr("transform", yhe(t, r)).attr("d", "M0,0Z");
+ }
+ function Ahe(e, t, r, n, i, a) {
+ e.attr("d", n + "M" + r.l + "," + r.t + "v" + r.h + "h" + r.w + "v-" + r.h + "h-" + r.w + "Z"), She(e, t, i, a);
+ }
+ function She(e, t, r, n) {
+ r || (e.transition().style("fill", n > 0.2 ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.3)").duration(200), t.transition().style("opacity", 1).duration(200));
+ }
+ function VN(e) {
+ GN.select(e).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove();
+ }
+ function Mhe(e) {
+ dhe && e.data && e._context.showTips && (C0.notifier(C0._(e, "Double-click to zoom back out"), "long"), dhe = false);
+ }
+ function xdt(e, t) {
+ return "M" + (e.l - 0.5) + "," + (t - ap - 0.5) + "h-3v" + (2 * ap + 1) + "h3ZM" + (e.r + 0.5) + "," + (t - ap - 0.5) + "h3v" + (2 * ap + 1) + "h-3Z";
+ }
+ function bdt(e, t) {
+ return "M" + (t - ap - 0.5) + "," + (e.t - 0.5) + "v-3h" + (2 * ap + 1) + "v3ZM" + (t - ap - 0.5) + "," + (e.b + 0.5) + "v3h" + (2 * ap + 1) + "v-3Z";
+ }
+ function RP(e) {
+ var t = Math.floor(Math.min(e.b - e.t, e.r - e.l, ap) / 2);
+ return "M" + (e.l - 3.5) + "," + (e.t - 0.5 + t) + "h3v" + -t + "h" + t + "v-3h-" + (t + 3) + "ZM" + (e.r + 3.5) + "," + (e.t - 0.5 + t) + "h-3v" + -t + "h" + -t + "v-3h" + (t + 3) + "ZM" + (e.r + 3.5) + "," + (e.b + 0.5 - t) + "h-3v" + t + "h" + -t + "v3h" + (t + 3) + "ZM" + (e.l - 3.5) + "," + (e.b + 0.5 - t) + "h3v" + t + "h" + t + "v3h-" + (t + 3) + "Z";
+ }
+ function ghe(e, t, r, n, i) {
+ for (var a = false, o = {}, s = {}, l, u, c, f, h = (i || {}).xaHash, d = (i || {}).yaHash, v = 0; v < t.length; v++) {
+ var _ = t[v];
+ for (l in r) if (_[l]) {
+ for (c in _) !(i && (h[c] || d[c])) && !(c.charAt(0) === "x" ? r : n)[c] && (o[c] = l);
+ for (u in n) !(i && (h[u] || d[u])) && _[u] && (a = true);
+ }
+ for (u in n) if (_[u]) for (f in _) !(i && (h[f] || d[f])) && !(f.charAt(0) === "x" ? r : n)[f] && (s[f] = u);
+ }
+ a && (C0.extendFlat(o, s), s = {});
+ var b = {}, p = [];
+ for (c in o) {
+ var k = NN(e, c);
+ p.push(k), b[k._id] = k;
+ }
+ var E = {}, T = [];
+ for (f in s) {
+ var L = NN(e, f);
+ T.push(L), E[L._id] = L;
+ }
+ return { xaHash: b, yaHash: E, xaxes: p, yaxes: T, xLinks: o, yLinks: s, isSubplotConstrained: a };
+ }
+ function Ehe(e, t) {
+ if (!idt) e.onwheel !== void 0 ? e.onwheel = t : e.onmousewheel !== void 0 ? e.onmousewheel = t : e.isAddedWheelEvent || (e.isAddedWheelEvent = true, e.addEventListener("wheel", t, { passive: false }));
+ else {
+ var r = e.onwheel !== void 0 ? "wheel" : "mousewheel";
+ e._onwheel && e.removeEventListener(r, e._onwheel), e._onwheel = t, e.addEventListener(r, t, { passive: false });
+ }
+ }
+ function mhe(e) {
+ var t = [];
+ for (var r in e) t.push(e[r]);
+ return t;
+ }
+ khe.exports = { makeDragBox: gdt, makeDragger: xhe, makeRectDragger: bhe, makeZoombox: whe, makeCorners: The, updateZoombox: Ahe, xyCorners: RP, transitionZoombox: She, removeZoombox: VN, showDoubleClickNotifier: Mhe, attachWheelEventHandler: Ehe };
+ });
+ var WN = ye((FP) => {
+ var wdt = Oa(), DP = vf(), Tdt = yv(), Adt = Eg(), Ig = jN().makeDragBox, gd = Rh().DRAGGERSIZE;
+ FP.initInteractions = function(t) {
+ var r = t._fullLayout;
+ if (t._context.staticPlot) {
+ wdt.select(t).selectAll(".drag").remove();
+ return;
+ }
+ if (!(!r._has("cartesian") && !r._has("splom"))) {
+ var n = Object.keys(r._plots || {}).sort(function(a, o) {
+ if ((r._plots[a].mainplot && true) === (r._plots[o].mainplot && true)) {
+ var s = a.split("y"), l = o.split("y");
+ return s[0] === l[0] ? Number(s[1] || 1) - Number(l[1] || 1) : Number(s[0] || 1) - Number(l[0] || 1);
+ }
+ return r._plots[a].mainplot ? 1 : -1;
+ });
+ n.forEach(function(a) {
+ var o = r._plots[a], s = o.xaxis, l = o.yaxis;
+ if (!o.mainplot) {
+ var u = Ig(t, o, s._offset, l._offset, s._length, l._length, "ns", "ew");
+ u.onmousemove = function(h) {
+ t._fullLayout._rehover = function() {
+ t._fullLayout._hoversubplot === a && t._fullLayout._plots[a] && DP.hover(t, h, a);
+ }, DP.hover(t, h, a), t._fullLayout._lasthover = u, t._fullLayout._hoversubplot = a;
+ }, u.onmouseout = function(h) {
+ t._dragging || (t._fullLayout._hoversubplot = null, Tdt.unhover(t, h));
+ }, t._context.showAxisDragHandles && (Ig(t, o, s._offset - gd, l._offset - gd, gd, gd, "n", "w"), Ig(t, o, s._offset + s._length, l._offset - gd, gd, gd, "n", "e"), Ig(t, o, s._offset - gd, l._offset + l._length, gd, gd, "s", "w"), Ig(t, o, s._offset + s._length, l._offset + l._length, gd, gd, "s", "e"));
+ }
+ if (t._context.showAxisDragHandles) {
+ if (a === s._mainSubplot) {
+ var c = s._mainLinePosition;
+ s.side === "top" && (c -= gd), Ig(t, o, s._offset + s._length * 0.1, c, s._length * 0.8, gd, "", "ew"), Ig(t, o, s._offset, c, s._length * 0.1, gd, "", "w"), Ig(t, o, s._offset + s._length * 0.9, c, s._length * 0.1, gd, "", "e");
+ }
+ if (a === l._mainSubplot) {
+ var f = l._mainLinePosition;
+ l.side !== "right" && (f -= gd), Ig(t, o, f, l._offset + l._length * 0.1, gd, l._length * 0.8, "ns", ""), Ig(t, o, f, l._offset + l._length * 0.9, gd, l._length * 0.1, "s", ""), Ig(t, o, f, l._offset, gd, l._length * 0.1, "n", "");
+ }
+ }
+ });
+ var i = r._hoverlayer.node();
+ i.onmousemove = function(a) {
+ a.target = t._fullLayout._lasthover, DP.hover(t, a, r._hoversubplot);
+ }, i.onclick = function(a) {
+ a.target = t._fullLayout._lasthover, DP.click(t, a);
+ }, i.onmousedown = function(a) {
+ t._fullLayout._lasthover.onmousedown(a);
+ }, FP.updateFx(t);
+ }
+ };
+ FP.updateFx = function(e) {
+ var t = e._fullLayout, r = t.dragmode === "pan" ? "move" : "crosshair";
+ Adt(t._draggers, r);
+ };
+ });
+ var Phe = ye((Dor, Lhe) => {
+ var Che = qa();
+ Lhe.exports = function(t) {
+ for (var r = Che.layoutArrayContainers, n = Che.layoutArrayRegexes, i = t.split("[")[0], a, o, s = 0; s < n.length; s++) if (o = t.match(n[s]), o && o.index === 0) {
+ a = o[0];
+ break;
+ }
+ if (a || (a = r[r.indexOf(i)]), !a) return false;
+ var l = t.slice(a.length);
+ return l ? (o = l.match(/^\[(0|[1-9][0-9]*)\](\.(.+))?$/), o ? { array: a, index: Number(o[1]), property: o[3] || "" } : false) : { array: a, index: "", property: "" };
+ };
+ });
+ var Rhe = ye((YM) => {
+ var Sdt = Ty(), XN = L6(), ZM = K1(), Mdt = U6().sorterAsc, ZN = qa();
+ YM.containerArrayMatch = Phe();
+ var Edt = YM.isAddVal = function(t) {
+ return t === "add" || Sdt(t);
+ }, Ihe = YM.isRemoveVal = function(t) {
+ return t === null || t === "remove";
+ };
+ YM.applyContainerArrayChanges = function(t, r, n, i, a) {
+ var o = r.astr, s = ZN.getComponentMethod(o, "supplyLayoutDefaults"), l = ZN.getComponentMethod(o, "draw"), u = ZN.getComponentMethod(o, "drawOne"), c = i.replot || i.recalc || s === XN || l === XN, f = t.layout, h = t._fullLayout;
+ if (n[""]) {
+ Object.keys(n).length > 1 && ZM.warn("Full array edits are incompatible with other edits", o);
+ var d = n[""][""];
+ if (Ihe(d)) r.set(null);
+ else if (Array.isArray(d)) r.set(d);
+ else return ZM.warn("Unrecognized full array edit value", o, d), true;
+ return c ? false : (s(f, h), l(t), true);
+ }
+ var v = Object.keys(n).map(Number).sort(Mdt), _ = r.get(), b = _ || [], p = a(h, o).get(), k = [], E = -1, T = b.length, L, x, C, M, g, P, A, z;
+ for (L = 0; L < v.length; L++) {
+ if (C = v[L], M = n[C], g = Object.keys(M), P = M[""], A = Edt(P), C < 0 || C > b.length - (A ? 0 : 1)) {
+ ZM.warn("index out of range", o, C);
+ continue;
+ }
+ if (P !== void 0) g.length > 1 && ZM.warn("Insertion & removal are incompatible with edits to the same index.", o, C), Ihe(P) ? k.push(C) : A ? (P === "add" && (P = {}), b.splice(C, 0, P), p && p.splice(C, 0, {})) : ZM.warn("Unrecognized full object edit value", o, C, P), E === -1 && (E = C);
+ else for (x = 0; x < g.length; x++) z = o + "[" + C + "].", a(b[C], g[x], z).set(M[g[x]]);
+ }
+ for (L = k.length - 1; L >= 0; L--) b.splice(k[L], 1), p && p.splice(k[L], 1);
+ if (b.length ? _ || r.set(b) : r.set(null), c) return false;
+ if (s(f, h), u !== XN) {
+ var O;
+ if (E === -1) O = v;
+ else {
+ for (T = Math.max(b.length, T), O = [], L = 0; L < v.length && (C = v[L], !(C >= E)); L++) O.push(C);
+ for (L = E; L < T; L++) O.push(L);
+ }
+ for (L = 0; L < O.length; L++) u(t, O[L]);
+ } else l(t);
+ return true;
+ };
+ });
+ var Uhe = ye((L0) => {
+ var Ohe = Eo(), qhe = qa(), Uv = Dr(), KM = Mc(), Bhe = hf(), Nhe = ka(), JM = Bhe.cleanId, kdt = Bhe.getFromTrace, YN = qhe.traceIs, Cdt = ["x", "y", "z"];
+ L0.clearPromiseQueue = function(e) {
+ Array.isArray(e._promises) && e._promises.length > 0 && Uv.log("Clearing previous rejected promises from queue."), e._promises = [];
+ };
+ L0.cleanLayout = function(e) {
+ var t;
+ e || (e = {}), e.xaxis1 && (e.xaxis || (e.xaxis = e.xaxis1), delete e.xaxis1), e.yaxis1 && (e.yaxis || (e.yaxis = e.yaxis1), delete e.yaxis1), e.scene1 && (e.scene || (e.scene = e.scene1), delete e.scene1);
+ var n = (KM.subplotsRegistry.cartesian || {}).attrRegex;
+ (KM.subplotsRegistry.polar || {}).attrRegex;
+ (KM.subplotsRegistry.ternary || {}).attrRegex;
+ (KM.subplotsRegistry.gl3d || {}).attrRegex;
+ var s = Object.keys(e);
+ for (t = 0; t < s.length; t++) {
+ var l = s[t];
+ if (n && n.test(l)) {
+ var u = e[l];
+ u.anchor && u.anchor !== "free" && (u.anchor = JM(u.anchor)), u.overlaying && (u.overlaying = JM(u.overlaying)), u.type || (u.isdate ? u.type = "date" : u.islog ? u.type = "log" : u.isdate === false && u.islog === false && (u.type = "linear")), (u.autorange === "withzero" || u.autorange === "tozero") && (u.autorange = true, u.rangemode = "tozero"), u.insiderange && delete u.range, delete u.islog, delete u.isdate, delete u.categories, zP(u, "domain") && delete u.domain;
+ }
+ }
+ var c = Array.isArray(e.annotations) ? e.annotations.length : 0;
+ for (t = 0; t < c; t++) {
+ var f = e.annotations[t];
+ Uv.isPlainObject(f) && (aT(f, "xref"), aT(f, "yref"));
+ }
+ var h = Array.isArray(e.shapes) ? e.shapes.length : 0;
+ for (t = 0; t < h; t++) {
+ var d = e.shapes[t];
+ Uv.isPlainObject(d) && (aT(d, "xref", true), aT(d, "yref", true));
+ }
+ var v = Array.isArray(e.images) ? e.images.length : 0;
+ for (t = 0; t < v; t++) {
+ var _ = e.images[t];
+ Uv.isPlainObject(_) && (aT(_, "xref"), aT(_, "yref"));
+ }
+ var b = e.legend;
+ return b && (b.x > 3 ? (b.x = 1.02, b.xanchor = "left") : b.x < -2 && (b.x = -0.02, b.xanchor = "right"), b.y > 3 ? (b.y = 1.02, b.yanchor = "bottom") : b.y < -2 && (b.y = -0.02, b.yanchor = "top")), e.dragmode === "rotate" && (e.dragmode = "orbit"), Nhe.clean(e), e.template && e.template.layout && L0.cleanLayout(e.template.layout), e;
+ };
+ function aT(e, t, r = false) {
+ var n = e[t], i = t.charAt(0);
+ r && Array.isArray(n) || n && n !== "paper" && (e[t] = JM(n, i, true));
+ }
+ L0.cleanData = function(e) {
+ for (var t = 0; t < e.length; t++) {
+ var r = e[t], n;
+ if (r.type === "histogramy" && "xbins" in r && !("ybins" in r) && (r.ybins = r.xbins, delete r.xbins), r.type === "histogramy" && L0.swapXYData(r), (r.type === "histogramx" || r.type === "histogramy") && (r.type = "histogram"), "scl" in r && !("colorscale" in r) && (r.colorscale = r.scl, delete r.scl), "reversescl" in r && !("reversescale" in r) && (r.reversescale = r.reversescl, delete r.reversescl), r.xaxis && (r.xaxis = JM(r.xaxis, "x")), r.yaxis && (r.yaxis = JM(r.yaxis, "y")), YN(r, "gl3d") && r.scene && (r.scene = KM.subplotsRegistry.gl3d.cleanId(r.scene)), !YN(r, "pie-like") && !YN(r, "bar-like")) if (Array.isArray(r.textposition)) for (n = 0; n < r.textposition.length; n++) r.textposition[n] = Fhe(r.textposition[n]);
+ else r.textposition && (r.textposition = Fhe(r.textposition));
+ var i = qhe.getModule(r);
+ if (i && i.colorbar) {
+ var a = i.colorbar.container, o = a ? r[a] : r;
+ o && o.colorscale && (o.colorscale === "YIGnBu" && (o.colorscale = "YlGnBu"), o.colorscale === "YIOrRd" && (o.colorscale = "YlOrRd"));
+ }
+ if (r.type === "surface" && Uv.isPlainObject(r.contours)) {
+ var s = ["x", "y", "z"];
+ for (n = 0; n < s.length; n++) {
+ var l = r.contours[s[n]];
+ Uv.isPlainObject(l) && (l.highlightColor && (l.highlightcolor = l.highlightColor, delete l.highlightColor), l.highlightWidth && (l.highlightwidth = l.highlightWidth, delete l.highlightWidth));
+ }
+ }
+ if (r.type === "candlestick" || r.type === "ohlc") {
+ var u = (r.increasing || {}).showlegend !== false, c = (r.decreasing || {}).showlegend !== false, f = Dhe(r.increasing), h = Dhe(r.decreasing);
+ if (f !== false && h !== false) {
+ var d = Ldt(f, h, u, c);
+ d && (r.name = d);
+ } else (f || h) && !r.name && (r.name = f || h);
+ }
+ zP(r, "line") && delete r.line, "marker" in r && (zP(r.marker, "line") && delete r.marker.line, zP(r, "marker") && delete r.marker), Nhe.clean(r), r.autobinx && (delete r.autobinx, delete r.xbins), r.autobiny && (delete r.autobiny, delete r.ybins);
+ }
+ };
+ function Dhe(e) {
+ if (!Uv.isPlainObject(e)) return false;
+ var t = e.name;
+ return delete e.name, delete e.showlegend, (typeof t == "string" || typeof t == "number") && String(t);
+ }
+ function Ldt(e, t, r, n) {
+ if (r && !n) return e;
+ if (n && !r || !e.trim()) return t;
+ if (!t.trim()) return e;
+ var i = Math.min(e.length, t.length), a;
+ for (a = 0; a < i && e.charAt(a) === t.charAt(a); a++) ;
+ var o = e.slice(0, a);
+ return o.trim();
+ }
+ function Fhe(e) {
+ var t = "middle", r = "center";
+ return typeof e == "string" && (e.indexOf("top") !== -1 ? t = "top" : e.indexOf("bottom") !== -1 && (t = "bottom"), e.indexOf("left") !== -1 ? r = "left" : e.indexOf("right") !== -1 && (r = "right")), t + " " + r;
+ }
+ function zP(e, t) {
+ return t in e && typeof e[t] == "object" && Object.keys(e[t]).length === 0;
+ }
+ L0.swapXYData = function(e) {
+ var t;
+ if (Uv.swapAttrs(e, ["?", "?0", "d?", "?bins", "nbins?", "autobin?", "?src", "error_?"]), Array.isArray(e.z) && Array.isArray(e.z[0]) && (e.transpose ? delete e.transpose : e.transpose = true), e.error_x && e.error_y) {
+ var r = e.error_y, n = "copy_ystyle" in r ? r.copy_ystyle : !(r.color || r.thickness || r.width);
+ Uv.swapAttrs(e, ["error_?.copy_ystyle"]), n && Uv.swapAttrs(e, ["error_?.color", "error_?.thickness", "error_?.width"]);
+ }
+ if (typeof e.hoverinfo == "string") {
+ var i = e.hoverinfo.split("+");
+ for (t = 0; t < i.length; t++) i[t] === "x" ? i[t] = "y" : i[t] === "y" && (i[t] = "x");
+ e.hoverinfo = i.join("+");
+ }
+ };
+ L0.coerceTraceIndices = function(e, t) {
+ if (Ohe(t)) return [t];
+ if (!Array.isArray(t) || !t.length) return e.data.map(function(i, a) {
+ return a;
+ });
+ if (Array.isArray(t)) {
+ for (var r = [], n = 0; n < t.length; n++) Uv.isIndex(t[n], e.data.length) ? r.push(t[n]) : Uv.warn("trace index (", t[n], ") is not a number or is out of bounds");
+ return r;
+ }
+ return t;
+ };
+ L0.manageArrayContainers = function(e, t, r) {
+ var n = e.obj, i = e.parts, a = i.length, o = i[a - 1], s = Ohe(o);
+ if (s && t === null) {
+ var l = i.slice(0, a - 1).join("."), u = Uv.nestedProperty(n, l).get();
+ u.splice(o, 1);
+ } else s && e.get() === void 0 && e.get() === void 0 && (r[e.astr] = null), e.set(t);
+ };
+ var Pdt = /(\.[^\[\]\.]+|\[[^\[\]\.]+\])$/;
+ function zhe(e) {
+ var t = e.search(Pdt);
+ if (t > 0) return e.slice(0, t);
+ }
+ L0.hasParent = function(e, t) {
+ for (var r = zhe(t); r; ) {
+ if (r in e) return true;
+ r = zhe(r);
+ }
+ return false;
+ };
+ L0.clearAxisTypes = function(e, t, r) {
+ for (var n = 0; n < t.length; n++) for (var i = e._fullData[n], a = 0; a < 3; a++) {
+ var o = kdt(e, i, Cdt[a]);
+ if (o && o.type !== "log") {
+ var s = o._name, l = o._id.slice(1);
+ if (l.slice(0, 5) === "scene") {
+ if (r[l] !== void 0) continue;
+ s = l + "." + s;
+ }
+ var u = s + ".type";
+ r[s] === void 0 && r[u] === void 0 && Uv.nestedProperty(e.layout, u).set(null);
+ }
+ }
+ };
+ var KN = (e, t) => {
+ let r = (...n) => n.every((i) => Uv.isPlainObject(i)) || n.every((i) => Array.isArray(i));
+ if ([e, t].every((n) => Array.isArray(n))) {
+ if (e.length !== t.length) return false;
+ for (let n = 0; n < e.length; n++) {
+ let i = e[n], a = t[n];
+ if (i !== a && !(r(i, a) ? KN(i, a) : false)) return false;
+ }
+ return true;
+ } else if ([e, t].every((n) => Uv.isPlainObject(n))) {
+ if (Object.keys(e).length !== Object.keys(t).length) return false;
+ for (let n in e) {
+ if (n.startsWith("_")) continue;
+ let i = e[n], a = t[n];
+ if (i !== a && !(r(i, a) ? KN(i, a) : false)) return false;
+ }
+ return true;
+ }
+ return false;
+ };
+ L0.collectionsAreEqual = KN;
+ });
+ var ZP = ye((_l) => {
+ var BP = Oa(), Idt = Eo(), Rdt = lq(), Sa = Dr(), Ec = Sa.nestedProperty, QN = k3(), op = Sne(), P0 = qa(), WP = P3(), Qo = Mc(), Vv = ho(), Ddt = AB(), Fdt = Rd(), JN = So(), zdt = ka(), Odt = WN().initInteractions, qdt = Wp(), Bdt = Of().clearOutline, Whe = _b().dfltConfig, OP = Rhe(), gh = Uhe(), Au = CM(), T_ = mc(), Ndt = Rh().AX_NAME_PATTERN, $N = 0, Vhe = 5;
+ function Udt(e, t, r, n) {
+ var i;
+ if (e = Sa.getGraphDiv(e), QN.init(e), Sa.isPlainObject(t)) {
+ var a = t;
+ t = a.data, r = a.layout, n = a.config, i = a.frames;
+ }
+ var o = QN.triggerHandler(e, "plotly_beforeplot", [t, r, n]);
+ if (o === false) return Promise.reject();
+ !t && !r && !Sa.isPlotDiv(e) && Sa.warn("Calling _doPlot as if redrawing but this container doesn't yet have a plot.", e);
+ function s() {
+ if (i) return _l.addFrames(e, i);
+ }
+ Zhe(e, n), r || (r = {}), BP.select(e).classed("js-plotly-plot", true), JN.makeTester(), Array.isArray(e._promises) || (e._promises = []);
+ var l = (e.data || []).length === 0 && Array.isArray(t);
+ Array.isArray(t) && (gh.cleanData(t), l ? e.data = t : e.data.push.apply(e.data, t), e.empty = false), (!e.layout || l) && (e.layout = gh.cleanLayout(r)), Qo.supplyDefaults(e);
+ var u = e._fullLayout, c = u._has("cartesian");
+ u._replotting = true, (l || u._shouldCreateBgLayer) && (cvt(e), u._shouldCreateBgLayer && delete u._shouldCreateBgLayer), JN.initGradients(e), JN.initPatterns(e), l && Vv.saveShowSpikeInitial(e);
+ var f = !e.calcdata || e.calcdata.length !== (e._fullData || []).length;
+ f && Qo.doCalcdata(e);
+ for (var h = 0; h < e.calcdata.length; h++) e.calcdata[h][0].trace = e._fullData[h];
+ e._context.responsive ? e._responsiveChartHandler || (e._responsiveChartHandler = function() {
+ Sa.isHidden(e) || Qo.resize(e);
+ }, window.addEventListener("resize", e._responsiveChartHandler)) : Sa.clearResponsive(e);
+ var d = Sa.extendFlat({}, u._size), v = 0;
+ function _() {
+ for (var C = u._basePlotModules, M = 0; M < C.length; M++) C[M].drawFramework && C[M].drawFramework(e);
+ !u._glcanvas && u._has("gl") && (u._glcanvas = u._glcontainer.selectAll(".gl-canvas").data([{ key: "contextLayer", context: true, pick: false }, { key: "focusLayer", context: false, pick: false }, { key: "pickLayer", context: false, pick: true }], function(z) {
+ return z.key;
+ }), u._glcanvas.enter().append("canvas").attr("class", function(z) {
+ return "gl-canvas gl-canvas-" + z.key.replace("Layer", "");
+ }).style({ position: "absolute", top: 0, left: 0, overflow: "visible", "pointer-events": "none" }));
+ var g = e._context.plotGlPixelRatio;
+ if (u._glcanvas) {
+ u._glcanvas.attr("width", u.width * g).attr("height", u.height * g).style("width", u.width + "px").style("height", u.height + "px");
+ var P = u._glcanvas.data()[0].regl;
+ if (P && (Math.floor(u.width * g) !== P._gl.drawingBufferWidth || Math.floor(u.height * g) !== P._gl.drawingBufferHeight)) {
+ var A = "WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.";
+ if (v) Sa.error(A);
+ else return Sa.log(A + " Clearing graph and plotting again."), Qo.cleanPlot([], {}, e._fullData, u), Qo.supplyDefaults(e), u = e._fullLayout, Qo.doCalcdata(e), v++, _();
+ }
+ }
+ return u.modebar.orientation === "h" ? u._modebardiv.style("height", null).style("width", "100%") : u._modebardiv.style("width", null).style("height", u.height + "px"), Qo.previousPromises(e);
+ }
+ function b() {
+ if (Qo.clearAutoMarginIds(e), Au.drawMarginPushers(e), Vv.allowAutoMargin(e), e._fullLayout.title.text && e._fullLayout.title.automargin && Qo.allowAutoMargin(e, "title.automargin"), u._has("pie")) for (var C = e._fullData, M = 0; M < C.length; M++) {
+ var g = C[M];
+ g.type === "pie" && g.automargin && Qo.allowAutoMargin(e, "pie." + g.uid + ".automargin");
+ }
+ return Qo.doAutoMargin(e), Qo.previousPromises(e);
+ }
+ function p() {
+ if (Qo.didMarginChange(d, u._size)) return Sa.syncOrAsync([b, Au.layoutStyles], e);
+ }
+ function k() {
+ if (!f) {
+ E();
+ return;
+ }
+ return Sa.syncOrAsync([P0.getComponentMethod("shapes", "calcAutorange"), P0.getComponentMethod("annotations", "calcAutorange"), E], e);
+ }
+ function E() {
+ e._transitioning || (Au.doAutoRangeAndConstraints(e), l && Vv.saveRangeInitial(e), P0.getComponentMethod("rangeslider", "calcAutorange")(e));
+ }
+ function T() {
+ return Vv.draw(e, l ? "" : "redraw");
+ }
+ var L = [Qo.previousPromises, s, _, b, p];
+ c && L.push(k), L.push(Au.layoutStyles), c && L.push(T, function(M) {
+ var g = M._fullLayout._insideTickLabelsUpdaterange;
+ if (g) return M._fullLayout._insideTickLabelsUpdaterange = void 0, $M(M, g).then(function() {
+ Vv.saveRangeInitial(M, true);
+ });
+ }), L.push(Au.drawData, Au.finalDraw, Odt, Qo.addLinks, Qo.rehover, Qo.redrag, Qo.reselect, Qo.doAutoMargin, Qo.previousPromises);
+ var x = Sa.syncOrAsync(L, e);
+ return (!x || !x.then) && (x = Promise.resolve()), x.then(function() {
+ return QM(e), e;
+ });
+ }
+ function QM(e) {
+ var t = e._fullLayout;
+ t._redrawFromAutoMarginCount ? t._redrawFromAutoMarginCount-- : e.emit("plotly_afterplot");
+ }
+ function Vdt(e) {
+ return Sa.extendFlat(Whe, e);
+ }
+ function Xhe(e, t) {
+ try {
+ e._fullLayout._paper.style("background", t);
+ } catch (r) {
+ Sa.error(r);
+ }
+ }
+ function Gdt(e, t) {
+ var r = zdt.combine(t, "white");
+ Xhe(e, r);
+ }
+ function Zhe(e, t) {
+ if (!e._context) {
+ e._context = Sa.extendDeep({}, Whe);
+ var r = BP.select("base");
+ e._context._baseUrl = r.size() && r.attr("href") ? window.location.href.split("#")[0] : "";
+ }
+ var n = e._context, i, a, o;
+ if (t) {
+ for (a = Object.keys(t), i = 0; i < a.length; i++) o = a[i], !(o === "editable" || o === "edits") && o in n && (o === "setBackground" && t[o] === "opaque" ? n[o] = Gdt : n[o] = t[o]);
+ var s = t.editable;
+ if (s !== void 0) for (n.editable = s, a = Object.keys(n.edits), i = 0; i < a.length; i++) n.edits[a[i]] = s;
+ if (t.edits) for (a = Object.keys(t.edits), i = 0; i < a.length; i++) o = a[i], o in n.edits && (n.edits[o] = t.edits[o]);
+ n._exportedPlot = t._exportedPlot;
+ }
+ n.staticPlot && (n.editable = false, n.edits = {}, n.autosizable = false, n.scrollZoom = false, n.doubleClick = false, n.showTips = false, n.showLink = false, n.displayModeBar = false), n.displayModeBar === "hover" && !Rdt && (n.displayModeBar = true), (n.setBackground === "transparent" || typeof n.setBackground != "function") && (n.setBackground = Xhe), n._hasZeroHeight = n._hasZeroHeight || e.clientHeight === 0, n._hasZeroWidth = n._hasZeroWidth || e.clientWidth === 0;
+ var l = n.scrollZoom, u = n._scrollZoom = {};
+ if (l === true) u.cartesian = 1, u.gl3d = 1, u.geo = 1, u.mapbox = 1, u.map = 1;
+ else if (typeof l == "string") {
+ var c = l.split("+");
+ for (i = 0; i < c.length; i++) u[c[i]] = 1;
+ } else l !== false && (u.gl3d = 1, u.geo = 1, u.mapbox = 1, u.map = 1);
+ }
+ function Hdt(e) {
+ if (e = Sa.getGraphDiv(e), !Sa.isPlotDiv(e)) throw new Error("This element is not a Plotly plot: " + e);
+ return gh.cleanData(e.data), gh.cleanLayout(e.layout), e.calcdata = void 0, _l._doPlot(e).then(function() {
+ return e.emit("plotly_redraw"), e;
+ });
+ }
+ function jdt(e, t, r, n) {
+ return e = Sa.getGraphDiv(e), Qo.cleanPlot([], {}, e._fullData || [], e._fullLayout || {}), Qo.purge(e), _l._doPlot(e, t, r, n);
+ }
+ function NP(e, t) {
+ var r = t + 1, n = [], i, a;
+ for (i = 0; i < e.length; i++) a = e[i], a < 0 ? n.push(r + a) : n.push(a);
+ return n;
+ }
+ function UP(e, t, r) {
+ var n, i;
+ for (n = 0; n < t.length; n++) {
+ if (i = t[n], i !== parseInt(i, 10)) throw new Error("all values in " + r + " must be integers");
+ if (i >= e.data.length || i < -e.data.length) throw new Error(r + " must be valid indices for gd.data.");
+ if (t.indexOf(i, n + 1) > -1 || i >= 0 && t.indexOf(-e.data.length + i) > -1 || i < 0 && t.indexOf(e.data.length + i) > -1) throw new Error("each index in " + r + " must be unique.");
+ }
+ }
+ function Yhe(e, t, r) {
+ if (!Array.isArray(e.data)) throw new Error("gd.data must be an array.");
+ if (typeof t == "undefined") throw new Error("currentIndices is a required argument.");
+ if (Array.isArray(t) || (t = [t]), UP(e, t, "currentIndices"), typeof r != "undefined" && !Array.isArray(r) && (r = [r]), typeof r != "undefined" && UP(e, r, "newIndices"), typeof r != "undefined" && t.length !== r.length) throw new Error("current and new indices must be of equal length.");
+ }
+ function Wdt(e, t, r) {
+ var n, i;
+ if (!Array.isArray(e.data)) throw new Error("gd.data must be an array.");
+ if (typeof t == "undefined") throw new Error("traces must be defined.");
+ for (Array.isArray(t) || (t = [t]), n = 0; n < t.length; n++) if (i = t[n], typeof i != "object" || Array.isArray(i) || i === null) throw new Error("all values in traces array must be non-array objects");
+ if (typeof r != "undefined" && !Array.isArray(r) && (r = [r]), typeof r != "undefined" && r.length !== t.length) throw new Error("if indices is specified, traces.length must equal indices.length");
+ }
+ function Xdt(e, t, r, n) {
+ var i = Sa.isPlainObject(n);
+ if (!Array.isArray(e.data)) throw new Error("gd.data must be an array");
+ if (!Sa.isPlainObject(t)) throw new Error("update must be a key:value object");
+ if (typeof r == "undefined") throw new Error("indices must be an integer or array of integers");
+ UP(e, r, "indices");
+ for (var a in t) {
+ if (!Array.isArray(t[a]) || t[a].length !== r.length) throw new Error("attribute " + a + " must be an array of length equal to indices array length");
+ if (i && (!(a in n) || !Array.isArray(n[a]) || n[a].length !== t[a].length)) throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 correspondence with the keys and number of traces in the update object");
+ }
+ }
+ function Zdt(e, t, r, n) {
+ var i = Sa.isPlainObject(n), a = [], o, s, l, u, c;
+ Array.isArray(r) || (r = [r]), r = NP(r, e.data.length - 1);
+ for (var f in t) for (var h = 0; h < r.length; h++) {
+ if (o = e.data[r[h]], l = Ec(o, f), s = l.get(), u = t[f][h], !Sa.isArrayOrTypedArray(u)) throw new Error("attribute: " + f + " index: " + h + " must be an array");
+ if (!Sa.isArrayOrTypedArray(s)) throw new Error("cannot extend missing or non-array attribute: " + f);
+ if (s.constructor !== u.constructor) throw new Error("cannot extend array with an array of a different type: " + f);
+ c = i ? n[f][h] : n, Idt(c) || (c = -1), a.push({ prop: l, target: s, insert: u, maxp: Math.floor(c) });
+ }
+ return a;
+ }
+ function Khe(e, t, r, n, i) {
+ Xdt(e, t, r, n);
+ for (var a = Zdt(e, t, r, n), o = {}, s = {}, l = 0; l < a.length; l++) {
+ var u = a[l].prop, c = a[l].maxp, f = i(a[l].target, a[l].insert, c);
+ u.set(f[0]), Array.isArray(o[u.astr]) || (o[u.astr] = []), o[u.astr].push(f[1]), Array.isArray(s[u.astr]) || (s[u.astr] = []), s[u.astr].push(a[l].target.length);
+ }
+ return { update: o, maxPoints: s };
+ }
+ function Jhe(e, t) {
+ var r = new e.constructor(e.length + t.length);
+ return r.set(e), r.set(t, e.length), r;
+ }
+ function $he(e, t, r, n) {
+ e = Sa.getGraphDiv(e);
+ function i(l, u, c) {
+ var f, h;
+ if (Sa.isTypedArray(l)) if (c < 0) {
+ var d = new l.constructor(0), v = Jhe(l, u);
+ c < 0 ? (f = v, h = d) : (f = d, h = v);
+ } else if (f = new l.constructor(c), h = new l.constructor(l.length + u.length - c), c === u.length) f.set(u), h.set(l);
+ else if (c < u.length) {
+ var _ = u.length - c;
+ f.set(u.subarray(_)), h.set(l), h.set(u.subarray(0, _), l.length);
+ } else {
+ var b = c - u.length, p = l.length - b;
+ f.set(l.subarray(p)), f.set(u, b), h.set(l.subarray(0, p));
+ }
+ else f = l.concat(u), h = c >= 0 && c < f.length ? f.splice(0, f.length - c) : [];
+ return [f, h];
+ }
+ var a = Khe(e, t, r, n, i), o = _l.redraw(e), s = [e, a.update, r, a.maxPoints];
+ return op.add(e, _l.prependTraces, s, $he, arguments), o;
+ }
+ function Qhe(e, t, r, n) {
+ e = Sa.getGraphDiv(e);
+ function i(l, u, c) {
+ var f, h;
+ if (Sa.isTypedArray(l)) if (c <= 0) {
+ var d = new l.constructor(0), v = Jhe(u, l);
+ c < 0 ? (f = v, h = d) : (f = d, h = v);
+ } else if (f = new l.constructor(c), h = new l.constructor(l.length + u.length - c), c === u.length) f.set(u), h.set(l);
+ else if (c < u.length) {
+ var _ = u.length - c;
+ f.set(u.subarray(0, _)), h.set(u.subarray(_)), h.set(l, _);
+ } else {
+ var b = c - u.length;
+ f.set(u), f.set(l.subarray(0, b), u.length), h.set(l.subarray(b));
+ }
+ else f = u.concat(l), h = c >= 0 && c < f.length ? f.splice(c, f.length) : [];
+ return [f, h];
+ }
+ var a = Khe(e, t, r, n, i), o = _l.redraw(e), s = [e, a.update, r, a.maxPoints];
+ return op.add(e, _l.extendTraces, s, Qhe, arguments), o;
+ }
+ function ede(e, t, r) {
+ e = Sa.getGraphDiv(e);
+ var n = [], i = _l.deleteTraces, a = ede, o = [e, n], s = [e, t], l, u;
+ for (Wdt(e, t, r), Array.isArray(t) || (t = [t]), t = t.map(function(c) {
+ return Sa.extendFlat({}, c);
+ }), gh.cleanData(t), l = 0; l < t.length; l++) e.data.push(t[l]);
+ for (l = 0; l < t.length; l++) n.push(-t.length + l);
+ if (typeof r == "undefined") return u = _l.redraw(e), op.add(e, i, o, a, s), u;
+ Array.isArray(r) || (r = [r]);
+ try {
+ Yhe(e, n, r);
+ } catch (c) {
+ throw e.data.splice(e.data.length - t.length, t.length), c;
+ }
+ return op.startSequence(e), op.add(e, i, o, a, s), u = _l.moveTraces(e, n, r), op.stopSequence(e), u;
+ }
+ function tde(e, t) {
+ e = Sa.getGraphDiv(e);
+ var r = [], n = _l.addTraces, i = tde, a = [e, r, t], o = [e, t], s, l;
+ if (typeof t == "undefined") throw new Error("indices must be an integer or array of integers.");
+ for (Array.isArray(t) || (t = [t]), UP(e, t, "indices"), t = NP(t, e.data.length - 1), t.sort(Sa.sorterDes), s = 0; s < t.length; s += 1) l = e.data.splice(t[s], 1)[0], r.push(l);
+ var u = _l.redraw(e);
+ return op.add(e, n, a, i, o), u;
+ }
+ function eU(e, t, r) {
+ e = Sa.getGraphDiv(e);
+ var n = [], i = [], a = eU, o = eU, s = [e, r, t], l = [e, t, r], u;
+ if (Yhe(e, t, r), t = Array.isArray(t) ? t : [t], typeof r == "undefined") for (r = [], u = 0; u < t.length; u++) r.push(-t.length + u);
+ for (r = Array.isArray(r) ? r : [r], t = NP(t, e.data.length - 1), r = NP(r, e.data.length - 1), u = 0; u < e.data.length; u++) t.indexOf(u) === -1 && n.push(e.data[u]);
+ for (u = 0; u < t.length; u++) i.push({ newIndex: r[u], trace: e.data[t[u]] });
+ for (i.sort(function(f, h) {
+ return f.newIndex - h.newIndex;
+ }), u = 0; u < i.length; u += 1) n.splice(i[u].newIndex, 0, i[u].trace);
+ e.data = n;
+ var c = _l.redraw(e);
+ return op.add(e, a, s, o, l), c;
+ }
+ function VP(e, t, r, n) {
+ e = Sa.getGraphDiv(e), gh.clearPromiseQueue(e);
+ var i = {};
+ if (typeof t == "string") i[t] = r;
+ else if (Sa.isPlainObject(t)) i = Sa.extendFlat({}, t), n === void 0 && (n = r);
+ else return Sa.warn("Restyle fail.", t, r, n), Promise.reject();
+ Object.keys(i).length && (e.changed = true);
+ var a = gh.coerceTraceIndices(e, n), o = rde(e, i, a), s = o.flags;
+ s.calc && (e.calcdata = void 0), s.clearAxisTypes && gh.clearAxisTypes(e, a, {});
+ var l = [];
+ s.fullReplot ? l.push(_l._doPlot) : (l.push(Qo.previousPromises), Qo.supplyDefaults(e), s.markerSize && (Qo.doCalcdata(e), XP(l)), s.style && l.push(Au.doTraceStyle), s.colorbars && l.push(Au.doColorBars), l.push(QM)), l.push(Qo.rehover, Qo.redrag, Qo.reselect), op.add(e, VP, [e, o.undoit, o.traces], VP, [e, o.redoit, o.traces]);
+ var u = Sa.syncOrAsync(l, e);
+ return (!u || !u.then) && (u = Promise.resolve()), u.then(function() {
+ return e.emit("plotly_restyle", o.eventData), e;
+ });
+ }
+ function zy(e) {
+ return e === void 0 ? null : e;
+ }
+ function qP(e, t) {
+ return t ? function(r, n, i) {
+ var a = Ec(r, n), o = a.set;
+ return a.set = function(s) {
+ var l = (i || "") + n;
+ GP(l, a.get(), s, e), o(s);
+ }, a;
+ } : Ec;
+ }
+ function GP(e, t, r, n) {
+ if (Array.isArray(t) || Array.isArray(r)) for (var i = Array.isArray(t) ? t : [], a = Array.isArray(r) ? r : [], o = Math.max(i.length, a.length), s = 0; s < o; s++) GP(e + "[" + s + "]", i[s], a[s], n);
+ else if (Sa.isPlainObject(t) || Sa.isPlainObject(r)) {
+ var l = Sa.isPlainObject(t) ? t : {}, u = Sa.isPlainObject(r) ? r : {}, c = Sa.extendFlat({}, l, u);
+ for (var f in c) GP(e + "." + f, l[f], u[f], n);
+ } else n[e] === void 0 && (n[e] = zy(t));
+ }
+ function Ydt(e, t, r) {
+ for (var n in r) {
+ var i = Ec(e, n);
+ GP(n, i.get(), r[n], t);
+ }
+ }
+ function rde(e, t, r) {
+ var n = e._fullLayout, i = e._fullData, a = e.data, o = n._guiEditing, s = qP(n._preGUI, o), l = Sa.extendDeepAll({}, t), u, c = T_.traceFlags(), f = {}, h = {}, d;
+ function v() {
+ return r.map(function() {
+ });
+ }
+ function _(me) {
+ var De = Vv.id2name(me);
+ d.indexOf(De) === -1 && d.push(De);
+ }
+ function b(me) {
+ return "LAYOUT" + me + ".autorange";
+ }
+ function p(me) {
+ return "LAYOUT" + me + ".range";
+ }
+ function k(me) {
+ for (var De = me; De < i.length; De++) if (i[De]._input === a[me]) return i[De];
+ }
+ function E(me, De, ce) {
+ if (Array.isArray(me)) {
+ me.forEach(function(Vt) {
+ E(Vt, De, ce);
+ });
+ return;
+ }
+ if (!(me in t || gh.hasParent(t, me))) {
+ var je;
+ if (me.slice(0, 6) === "LAYOUT") je = s(e.layout, me.replace("LAYOUT", ""));
+ else {
+ var lt = r[ce], pt = n._tracePreGUI[k(lt)._fullInput.uid];
+ je = qP(pt, o)(a[lt], me);
+ }
+ me in h || (h[me] = v()), h[me][ce] === void 0 && (h[me][ce] = zy(je.get())), De !== void 0 && je.set(De);
+ }
+ }
+ function T(me) {
+ return function(De) {
+ return i[De][me];
+ };
+ }
+ function L(me) {
+ return function(De, ce) {
+ return De === false ? i[r[ce]][me] : null;
+ };
+ }
+ for (var x in t) {
+ if (gh.hasParent(t, x)) throw new Error("cannot set " + x + " and a parent attribute simultaneously");
+ var C = t[x], M, g, P, A, z, O;
+ if ((x === "autobinx" || x === "autobiny") && (x = x.charAt(x.length - 1) + "bins", Array.isArray(C) ? C = C.map(L(x)) : C === false ? C = r.map(T(x)) : C = null), f[x] = C, x.slice(0, 6) === "LAYOUT") {
+ P = s(e.layout, x.replace("LAYOUT", "")), h[x] = [zy(P.get())], P.set(Array.isArray(C) ? C[0] : C), c.calc = true;
+ continue;
+ }
+ for (h[x] = v(), u = 0; u < r.length; u++) {
+ M = a[r[u]], g = k(r[u]);
+ var U = n._tracePreGUI[g._fullInput.uid];
+ if (P = qP(U, o)(M, x), A = P.get(), z = Array.isArray(C) ? C[u % C.length] : C, z !== void 0) {
+ var G = P.parts[P.parts.length - 1], Z = x.slice(0, x.length - G.length - 1), j = Z ? Z + "." : "", N = Z ? Ec(g, Z).get() : g;
+ if (O = WP.getTraceValObject(g, P.parts), O && O.impliedEdits && z !== null) for (var H in O.impliedEdits) E(Sa.relativeAttr(x, H), O.impliedEdits[H], u);
+ else if ((G === "thicknessmode" || G === "lenmode") && A !== z && (z === "fraction" || z === "pixels") && N) {
+ var re = n._size, oe = N.orient, _e = oe === "top" || oe === "bottom";
+ if (G === "thicknessmode") {
+ var Ce = _e ? re.h : re.w;
+ E(j + "thickness", N.thickness * (z === "fraction" ? 1 / Ce : Ce), u);
+ } else {
+ var Le = _e ? re.w : re.h;
+ E(j + "len", N.len * (z === "fraction" ? 1 / Le : Le), u);
+ }
+ } else if (x === "type" && (z === "pie" != (A === "pie") || z === "funnelarea" != (A === "funnelarea"))) {
+ var ge = "x", ie = "y";
+ (z === "bar" || A === "bar") && M.orientation === "h" && (ge = "y", ie = "x"), Sa.swapAttrs(M, ["?", "?src"], "labels", ge), Sa.swapAttrs(M, ["d?", "?0"], "label", ge), Sa.swapAttrs(M, ["?", "?src"], "values", ie), A === "pie" || A === "funnelarea" ? (Ec(M, "marker.color").set(Ec(M, "marker.colors").get()), n._pielayer.selectAll("g.trace").remove()) : P0.traceIs(M, "cartesian") && Ec(M, "marker.colors").set(Ec(M, "marker.color").get());
+ }
+ h[x][u] = zy(A);
+ var Se = ["swapxy", "swapxyaxes", "orientation", "orientationaxes"];
+ if (Se.indexOf(x) !== -1) {
+ if (x === "orientation") {
+ P.set(z);
+ var Ee = M.x && !M.y ? "h" : "v";
+ if ((P.get() || Ee) === g.orientation) continue;
+ } else x === "orientationaxes" && (M.orientation = { v: "h", h: "v" }[g.orientation]);
+ gh.swapXYData(M), c.calc = c.clearAxisTypes = true;
+ } else Qo.dataArrayContainers.indexOf(P.parts[0]) !== -1 ? (gh.manageArrayContainers(P, z, h), c.calc = true) : (O ? O.arrayOk && !P0.traceIs(g, "regl") && (Sa.isArrayOrTypedArray(z) || Sa.isArrayOrTypedArray(A)) ? c.calc = true : T_.update(c, O) : c.calc = true, P.set(z));
+ }
+ }
+ if (["swapxyaxes", "orientationaxes"].indexOf(x) !== -1 && Vv.swap(e, r), x === "orientationaxes") {
+ var Ae = Ec(e.layout, "hovermode"), Be = Ae.get();
+ Be === "x" ? Ae.set("y") : Be === "y" ? Ae.set("x") : Be === "x unified" ? Ae.set("y unified") : Be === "y unified" && Ae.set("x unified");
+ }
+ if (["orientation", "type"].indexOf(x) !== -1) {
+ for (d = [], u = 0; u < r.length; u++) {
+ var Pe = a[r[u]];
+ P0.traceIs(Pe, "cartesian") && (_(Pe.xaxis || "x"), _(Pe.yaxis || "y"));
+ }
+ E(d.map(b), true, 0), E(d.map(p), [0, 1], 0);
+ }
+ }
+ return (c.calc || c.plot) && (c.fullReplot = true), { flags: c, undoit: h, redoit: f, traces: r, eventData: Sa.extendDeepNoArrays([], [l, r]) };
+ }
+ function $M(e, t, r) {
+ e = Sa.getGraphDiv(e), gh.clearPromiseQueue(e);
+ var n = {};
+ if (typeof t == "string") n[t] = r;
+ else if (Sa.isPlainObject(t)) n = Sa.extendFlat({}, t);
+ else return Sa.warn("Relayout fail.", t, r), Promise.reject();
+ Object.keys(n).length && (e.changed = true);
+ var i = ode(e, n), a = i.flags;
+ a.calc && (e.calcdata = void 0);
+ var o = [Qo.previousPromises];
+ a.layoutReplot ? o.push(Au.layoutReplot) : Object.keys(n).length && (ide(e, a, i) || Qo.supplyDefaults(e), a.legend && o.push(Au.doLegend), a.layoutstyle && o.push(Au.layoutStyles), a.axrange && XP(o, i.rangesAltered), a.ticks && o.push(Au.doTicksRelayout), a.modebar && o.push(Au.doModeBar), a.camera && o.push(Au.doCamera), a.colorbars && o.push(Au.doColorBars), o.push(QM)), o.push(Qo.rehover, Qo.redrag, Qo.reselect), op.add(e, $M, [e, i.undoit], $M, [e, i.redoit]);
+ var s = Sa.syncOrAsync(o, e);
+ return (!s || !s.then) && (s = Promise.resolve(e)), s.then(function() {
+ return e.emit("plotly_relayout", i.eventData), e;
+ });
+ }
+ function ide(e, t, r) {
+ var n = e._fullLayout;
+ if (!t.axrange) return false;
+ for (var i in t) if (i !== "axrange" && t[i]) return false;
+ var a, o, s = function(d, v) {
+ return Sa.coerce(a, o, Fdt, d, v);
+ }, l = {};
+ for (var u in r.rangesAltered) {
+ var c = Vv.id2name(u);
+ if (a = e.layout[c], o = n[c], Ddt(a, o, s, l), o._matchGroup) {
+ for (var f in o._matchGroup) if (f !== u) {
+ var h = n[Vv.id2name(f)];
+ h.autorange = o.autorange, h.range = o.range.slice(), h._input.range = o.range.slice();
+ }
+ }
+ }
+ return true;
+ }
+ function XP(e, t) {
+ var r = t ? function(n) {
+ var i = [], a = true;
+ for (var o in t) {
+ var s = Vv.getFromId(n, o);
+ if (i.push(o), (s.ticklabelposition || "").indexOf("inside") !== -1 && s._anchorAxis && i.push(s._anchorAxis._id), s._matchGroup) for (var l in s._matchGroup) t[l] || i.push(l);
+ }
+ return Vv.draw(n, i, { skipTitle: a });
+ } : function(n) {
+ return Vv.draw(n, "redraw");
+ };
+ e.push(Bdt, Au.doAutoRangeAndConstraints, r, Au.drawData, Au.finalDraw);
+ }
+ var nde = /^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/, ade = /^[xyz]axis[0-9]*\.autorange$/, Kdt = /^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;
+ function ode(e, t) {
+ var r = e.layout, n = e._fullLayout, i = n._guiEditing, a = qP(n._preGUI, i), o = Object.keys(t), s = Vv.list(e), l = Sa.extendDeepAll({}, t), u = {}, c, f, h;
+ for (o = Object.keys(t), f = 0; f < o.length; f++) if (o[f].indexOf("allaxes") === 0) {
+ for (h = 0; h < s.length; h++) {
+ var d = s[h]._id.slice(1), v = d.indexOf("scene") !== -1 ? d + "." : "", _ = o[f].replace("allaxes", v + s[h]._name);
+ t[_] || (t[_] = t[o[f]]);
+ }
+ delete t[o[f]];
+ }
+ var b = T_.layoutFlags(), p = {}, k = {};
+ function E(pt, Vt) {
+ if (Array.isArray(pt)) {
+ pt.forEach(function(ut) {
+ E(ut, Vt);
+ });
+ return;
+ }
+ if (!(pt in t || gh.hasParent(t, pt))) {
+ var ot = a(r, pt);
+ pt in k || (k[pt] = zy(ot.get())), Vt !== void 0 && ot.set(Vt);
+ }
+ }
+ var T = {}, L;
+ function x(pt) {
+ var Vt = Vv.name2id(pt.split(".")[0]);
+ return T[Vt] = 1, Vt;
+ }
+ for (var C in t) {
+ if (gh.hasParent(t, C)) throw new Error("cannot set " + C + " and a parent attribute simultaneously");
+ for (var M = a(r, C), g = t[C], P = M.parts.length, A = P - 1; A > 0 && typeof M.parts[A] != "string"; ) A--;
+ var z = M.parts[A], O = M.parts[A - 1] + "." + z, U = M.parts.slice(0, A).join("."), G = Ec(e.layout, U).get(), Z = Ec(n, U).get(), j = M.get();
+ if (g !== void 0) {
+ p[C] = g, k[C] = z === "reverse" ? g : zy(j);
+ var N = WP.getLayoutValObject(n, M.parts);
+ if (N && N.impliedEdits && g !== null) for (var H in N.impliedEdits) E(Sa.relativeAttr(C, H), N.impliedEdits[H]);
+ if (["width", "height"].indexOf(C) !== -1) if (g) {
+ E("autosize", null);
+ var re = C === "height" ? "width" : "height";
+ E(re, n[re]);
+ } else n[C] = e._initialAutoSize[C];
+ else if (C === "autosize") E("width", g ? null : n.width), E("height", g ? null : n.height);
+ else if (O.match(nde)) x(O), Ec(n, U + "._inputRange").set(null);
+ else if (O.match(ade)) {
+ x(O), Ec(n, U + "._inputRange").set(null);
+ var oe = Ec(n, U).get();
+ oe._inputDomain && (oe._input.domain = oe._inputDomain.slice());
+ } else O.match(Kdt) && Ec(n, U + "._inputDomain").set(null);
+ if (z === "type") {
+ L = G;
+ var _e = Z.type === "linear" && g === "log", Ce = Z.type === "log" && g === "linear";
+ if (_e || Ce) {
+ if (!L || !L.range) E(U + ".autorange", true);
+ else if (Z.autorange) _e && (L.range = L.range[1] > L.range[0] ? [1, 2] : [2, 1]);
+ else {
+ var Le = L.range[0], ge = L.range[1];
+ _e ? (Le <= 0 && ge <= 0 && E(U + ".autorange", true), Le <= 0 ? Le = ge / 1e6 : ge <= 0 && (ge = Le / 1e6), E(U + ".range[0]", Math.log(Le) / Math.LN10), E(U + ".range[1]", Math.log(ge) / Math.LN10)) : (E(U + ".range[0]", Math.pow(10, Le)), E(U + ".range[1]", Math.pow(10, ge)));
+ }
+ Array.isArray(n._subplots.polar) && n._subplots.polar.length && n[M.parts[0]] && M.parts[1] === "radialaxis" && delete n[M.parts[0]]._subplot.viewInitial["radialaxis.range"], P0.getComponentMethod("annotations", "convertCoords")(e, Z, g, E), P0.getComponentMethod("images", "convertCoords")(e, Z, g, E);
+ } else E(U + ".autorange", true), E(U + ".range", null);
+ Ec(n, U + "._inputRange").set(null);
+ } else if (z.match(Ndt)) {
+ var ie = Ec(n, C).get(), Se = (g || {}).type;
+ (!Se || Se === "-") && (Se = "linear"), P0.getComponentMethod("annotations", "convertCoords")(e, ie, Se, E), P0.getComponentMethod("images", "convertCoords")(e, ie, Se, E);
+ }
+ var Ee = OP.containerArrayMatch(C);
+ if (Ee) {
+ c = Ee.array, f = Ee.index;
+ var Ae = Ee.property, Be = N || { editType: "calc" };
+ f !== "" && Ae === "" && (OP.isAddVal(g) ? k[C] = null : OP.isRemoveVal(g) ? k[C] = (Ec(r, c).get() || [])[f] : Sa.warn("unrecognized full object value", t)), T_.update(b, Be), u[c] || (u[c] = {});
+ var Pe = u[c][f];
+ Pe || (Pe = u[c][f] = {}), Pe[Ae] = g, delete t[C];
+ } else z === "reverse" ? (G.range ? G.range.reverse() : (E(U + ".autorange", true), G.range = [1, 0]), Z.autorange ? b.calc = true : b.plot = true) : (C === "dragmode" && (g === false && j !== false || g !== false && j === false) || n._has("scatter-like") && n._has("regl") && C === "dragmode" && (g === "lasso" || g === "select") && !(j === "lasso" || j === "select") ? b.plot = true : N ? T_.update(b, N) : b.calc = true, M.set(g));
+ }
+ }
+ for (c in u) {
+ var me = OP.applyContainerArrayChanges(e, a(r, c), u[c], b, a);
+ me || (b.plot = true);
+ }
+ for (var De in T) {
+ L = Vv.getFromId(e, De);
+ var ce = L && L._constraintGroup;
+ if (ce) {
+ b.calc = true;
+ for (var je in ce) T[je] || (Vv.getFromId(e, je)._constraintShrinkable = true);
+ }
+ }
+ (sde(e) || t.height || t.width) && (b.plot = true);
+ var lt = n.shapes;
+ for (f = 0; f < lt.length; f++) if (lt[f].showlegend) {
+ b.calc = true;
+ break;
+ }
+ return (b.plot || b.calc) && (b.layoutReplot = true), { flags: b, rangesAltered: T, undoit: k, redoit: p, eventData: l };
+ }
+ function sde(e) {
+ var t = e._fullLayout, r = t.width, n = t.height;
+ return e.layout.autosize && Qo.plotAutoSize(e, e.layout, t), t.width !== r || t.height !== n;
+ }
+ function HP(e, t, r, n) {
+ e = Sa.getGraphDiv(e), gh.clearPromiseQueue(e), Sa.isPlainObject(t) || (t = {}), Sa.isPlainObject(r) || (r = {}), Object.keys(t).length && (e.changed = true), Object.keys(r).length && (e.changed = true);
+ var i = gh.coerceTraceIndices(e, n), a = rde(e, Sa.extendFlat({}, t), i), o = a.flags, s = ode(e, Sa.extendFlat({}, r)), l = s.flags;
+ (o.calc || l.calc) && (e.calcdata = void 0), o.clearAxisTypes && gh.clearAxisTypes(e, i, r);
+ var u = [];
+ l.layoutReplot ? u.push(Au.layoutReplot) : o.fullReplot ? u.push(_l._doPlot) : (u.push(Qo.previousPromises), ide(e, l, s) || Qo.supplyDefaults(e), o.style && u.push(Au.doTraceStyle), (o.colorbars || l.colorbars) && u.push(Au.doColorBars), l.legend && u.push(Au.doLegend), l.layoutstyle && u.push(Au.layoutStyles), l.axrange && XP(u, s.rangesAltered), l.ticks && u.push(Au.doTicksRelayout), l.modebar && u.push(Au.doModeBar), l.camera && u.push(Au.doCamera), u.push(QM)), u.push(Qo.rehover, Qo.redrag, Qo.reselect), op.add(e, HP, [e, a.undoit, s.undoit, a.traces], HP, [e, a.redoit, s.redoit, a.traces]);
+ var c = Sa.syncOrAsync(u, e);
+ return (!c || !c.then) && (c = Promise.resolve(e)), c.then(function() {
+ return e.emit("plotly_update", { data: a.eventData, layout: s.eventData }), e;
+ });
+ }
+ function tU(e) {
+ return function(r) {
+ r._fullLayout._guiEditing = true;
+ var n = e.apply(null, arguments);
+ return r._fullLayout._guiEditing = false, n;
+ };
+ }
+ var Jdt = [{ pattern: /^hiddenlabels/, attr: "legend.uirevision" }, { pattern: /^((x|y)axis\d*)\.((auto)?range|title\.text)/ }, { pattern: /axis\d*\.showspikes$/, attr: "modebar.uirevision" }, { pattern: /(hover|drag)mode$/, attr: "modebar.uirevision" }, { pattern: /^(scene\d*)\.camera/ }, { pattern: /^(geo\d*)\.(projection|center|fitbounds)/ }, { pattern: /^(ternary\d*\.[abc]axis)\.(min|title\.text)$/ }, { pattern: /^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/ }, { pattern: /^(polar\d*\.angularaxis)\.rotation/ }, { pattern: /^(mapbox\d*)\.(center|zoom|bearing|pitch)/ }, { pattern: /^(map\d*)\.(center|zoom|bearing|pitch)/ }, { pattern: /^legend\.(x|y)$/, attr: "editrevision" }, { pattern: /^(shapes|annotations)/, attr: "editrevision" }, { pattern: /^title\.text$/, attr: "editrevision" }], $dt = [{ pattern: /^selectedpoints$/, attr: "selectionrevision" }, { pattern: /(^|value\.)visible$/, attr: "legend.uirevision" }, { pattern: /^dimensions\[\d+\]\.constraintrange/ }, { pattern: /^node\.(x|y|groups)/ }, { pattern: /^level$/ }, { pattern: /(^|value\.)name$/ }, { pattern: /colorbar\.title\.text$/ }, { pattern: /colorbar\.(x|y)$/, attr: "editrevision" }];
+ function Ghe(e, t) {
+ for (var r = 0; r < t.length; r++) {
+ var n = t[r], i = e.match(n.pattern);
+ if (i) {
+ var a = i[1] || "";
+ return { head: a, tail: e.slice(a.length + 1), attr: n.attr };
+ }
+ }
+ }
+ function Hhe(e, t) {
+ var r = Ec(t, e).get();
+ if (r !== void 0) return r;
+ var n = e.split(".");
+ for (n.pop(); n.length > 1; ) if (n.pop(), r = Ec(t, n.join(".") + ".uirevision").get(), r !== void 0) return r;
+ return t.uirevision;
+ }
+ function Qdt(e, t) {
+ for (var r = 0; r < t.length; r++) if (t[r]._fullInput.uid === e) return r;
+ return -1;
+ }
+ function evt(e, t, r) {
+ for (var n = 0; n < t.length; n++) if (t[n].uid === e) return n;
+ return !t[r] || t[r].uid ? -1 : r;
+ }
+ function jhe(e, t) {
+ var r = Sa.isPlainObject(e), n = Array.isArray(e);
+ return r || n ? (r && Sa.isPlainObject(t) || n && Array.isArray(t)) && JSON.stringify(e) === JSON.stringify(t) : e === t;
+ }
+ function tvt(e, t, r, n) {
+ var i = n._preGUI, a, o, s, l, u, c, f, h, d, v, _ = [], b = {}, p = {};
+ for (a in i) {
+ if (u = Ghe(a, Jdt), u) {
+ if (d = u.head, v = u.tail, o = u.attr || d + ".uirevision", s = Ec(n, o).get(), l = s && Hhe(o, t), l && l === s) {
+ if (c = i[a], c === null && (c = void 0), f = Ec(t, a), h = f.get(), jhe(h, c)) {
+ h === void 0 && v === "autorange" && _.push(d), f.set(zy(Ec(n, a).get()));
+ continue;
+ } else if (v === "autorange" || v.slice(0, 6) === "range[") {
+ var k = i[d + ".range[0]"], E = i[d + ".range[1]"], T = i[d + ".autorange"];
+ if (T || T === null && k === null && E === null) {
+ if (!(d in b)) {
+ var L = Ec(t, d).get();
+ b[d] = L && (L.autorange || L.autorange !== false && (!L.range || L.range.length !== 2));
+ }
+ if (b[d]) {
+ f.set(zy(Ec(n, a).get()));
+ continue;
+ }
+ }
+ }
+ }
+ } else Sa.warn("unrecognized GUI edit: " + a);
+ delete i[a], u && u.tail.slice(0, 6) === "range[" && (p[u.head] = 1);
+ }
+ for (var x = 0; x < _.length; x++) {
+ var C = _[x];
+ if (p[C]) {
+ var M = Ec(t, C).get();
+ M && delete M.autorange;
+ }
+ }
+ var g = n._tracePreGUI;
+ for (var P in g) {
+ var A = g[P], z = null, O;
+ for (a in A) {
+ if (!z) {
+ var U = Qdt(P, r);
+ if (U < 0) {
+ delete g[P];
+ break;
+ }
+ var G = r[U];
+ O = G._fullInput;
+ var Z = evt(P, e, O.index);
+ if (Z < 0) {
+ delete g[P];
+ break;
+ }
+ z = e[Z];
+ }
+ if (u = Ghe(a, $dt), u) {
+ if (u.attr ? (s = Ec(n, u.attr).get(), l = s && Hhe(u.attr, t)) : (s = O.uirevision, l = z.uirevision, l === void 0 && (l = t.uirevision)), l && l === s && (c = A[a], c === null && (c = void 0), f = Ec(z, a), h = f.get(), jhe(h, c))) {
+ f.set(zy(Ec(O, a).get()));
+ continue;
+ }
+ } else Sa.warn("unrecognized GUI edit: " + a + " in trace uid " + P);
+ delete A[a];
+ }
+ }
+ }
+ function rvt(e, t, r, n) {
+ var i, a;
+ function o() {
+ return _l.addFrames(e, i);
+ }
+ e = Sa.getGraphDiv(e), gh.clearPromiseQueue(e);
+ var s = e._fullData, l = e._fullLayout;
+ if (!Sa.isPlotDiv(e) || !s || !l) a = _l.newPlot(e, t, r, n);
+ else {
+ if (Sa.isPlainObject(t)) {
+ var u = t;
+ t = u.data, r = u.layout, n = u.config, i = u.frames;
+ }
+ var c = false;
+ if (n) {
+ let O = Sa.extendDeepAll({}, e._context);
+ e._context = void 0, Zhe(e, n), c = !gh.collectionsAreEqual(O, e._context);
+ }
+ if (c) {
+ let O = e._ev.eventNames().map((U) => [U, e._ev.listeners(U)]);
+ a = _l.newPlot(e, t, r, n).then(() => {
+ for (let [U, G] of O) G.forEach((Z) => e.on(U, Z));
+ return _l.react(e, t, r, n);
+ });
+ } else {
+ e.data = t || [], gh.cleanData(e.data), e.layout = r || {}, gh.cleanLayout(e.layout), tvt(e.data, e.layout, s, l), Qo.supplyDefaults(e, { skipUpdateCalc: true });
+ var f = e._fullData, h = e._fullLayout, d = h.datarevision === void 0, v = h.transition, _ = nvt(e, l, h, d, v), b = _.newDataRevision, p = ivt(e, s, f, d, v, b);
+ if (sde(e) && (_.layoutReplot = true), p.calc || _.calc) {
+ e.calcdata = void 0;
+ for (var k = Object.getOwnPropertyNames(h), E = 0; E < k.length; E++) {
+ var T = k[E], L = T.substring(0, 5);
+ if (L === "xaxis" || L === "yaxis") {
+ var x = h[T]._emptyCategories;
+ x && x();
+ }
+ }
+ } else Qo.supplyDefaultsUpdateCalc(e.calcdata, f);
+ var C = [];
+ if (i && (e._transitionData = {}, Qo.createTransitionData(e), C.push(o)), h.transition && (p.anim || _.anim)) _.ticks && C.push(Au.doTicksRelayout), Qo.doCalcdata(e), Au.doAutoRangeAndConstraints(e), C.push(function() {
+ return Qo.transitionFromReact(e, p, _, l);
+ });
+ else if (p.fullReplot || _.layoutReplot) e._fullLayout._skipDefaults = true, C.push(_l._doPlot);
+ else {
+ for (var M in _.arrays) {
+ var g = _.arrays[M];
+ if (g.length) {
+ var P = P0.getComponentMethod(M, "drawOne");
+ if (P !== Sa.noop) for (var A = 0; A < g.length; A++) P(e, g[A]);
+ else {
+ var z = P0.getComponentMethod(M, "draw");
+ if (z === Sa.noop) throw new Error("cannot draw components: " + M);
+ z(e);
+ }
+ }
+ }
+ C.push(Qo.previousPromises), p.style && C.push(Au.doTraceStyle), (p.colorbars || _.colorbars) && C.push(Au.doColorBars), _.legend && C.push(Au.doLegend), _.layoutstyle && C.push(Au.layoutStyles), _.axrange && XP(C), _.ticks && C.push(Au.doTicksRelayout), _.modebar && C.push(Au.doModeBar), _.camera && C.push(Au.doCamera), C.push(QM);
+ }
+ C.push(Qo.rehover, Qo.redrag, Qo.reselect), a = Sa.syncOrAsync(C, e), (!a || !a.then) && (a = Promise.resolve(e));
+ }
+ }
+ return a.then(() => (c || e.emit("plotly_react", { config: n, data: t, layout: r }), e));
+ }
+ function ivt(e, t, r, n, i, a) {
+ var o = t.length === r.length;
+ if (!i && !o) return { fullReplot: true, calc: true };
+ var s = T_.traceFlags();
+ s.arrays = {}, s.nChanges = 0, s.nChangesAnim = 0;
+ var l, u;
+ function c(d) {
+ var v = WP.getTraceValObject(u, d);
+ return !u._module.animatable && v.anim && (v.anim = false), v;
+ }
+ var f = { getValObject: c, flags: s, immutable: n, transition: i, newDataRevision: a, gd: e }, h = {};
+ for (l = 0; l < t.length; l++) if (r[l]) {
+ if (u = r[l]._fullInput, h[u.uid]) continue;
+ h[u.uid] = 1, jP(t[l]._fullInput, u, [], f);
+ }
+ return (s.calc || s.plot) && (s.fullReplot = true), i && s.nChanges && s.nChangesAnim && (s.anim = s.nChanges === s.nChangesAnim && o ? "all" : "some"), s;
+ }
+ function nvt(e, t, r, n, i) {
+ var a = T_.layoutFlags();
+ a.arrays = {}, a.rangesAltered = {}, a.nChanges = 0, a.nChangesAnim = 0;
+ function o(h) {
+ return WP.getLayoutValObject(r, h);
+ }
+ for (var s in r) if (!(!s.startsWith("xaxis") && !s.startsWith("yaxis")) && t[s]) {
+ var l = r[s].domain, u = t[s].domain, c = t[s]._inputDomain;
+ t[s]._inputDomain && (l[0] === c[0] && l[1] === c[1] ? r[s].domain = t[s].domain : (l[0] !== u[0] || l[1] !== u[1]) && (r[s]._inputDomain = null));
+ }
+ var f = { getValObject: o, flags: a, immutable: n, transition: i, gd: e };
+ return jP(t, r, [], f), (a.plot || a.calc) && (a.layoutReplot = true), i && a.nChanges && a.nChangesAnim && (a.anim = a.nChanges === a.nChangesAnim ? "all" : "some"), a;
+ }
+ function jP(e, t, r, n) {
+ var i, a, o, s = n.getValObject, l = n.flags, u = n.immutable, c = n.inArray, f = n.arrayIndex;
+ function h() {
+ var U = i.editType;
+ if (c && U.indexOf("arraydraw") !== -1) {
+ Sa.pushUnique(l.arrays[c], f);
+ return;
+ }
+ T_.update(l, i), U !== "none" && l.nChanges++, n.transition && i.anim && l.nChangesAnim++, (nde.test(o) || ade.test(o)) && (l.rangesAltered[r[0]] = 1), a === "datarevision" && (l.newDataRevision = 1);
+ }
+ function d(U) {
+ return U.valType === "data_array" || U.arrayOk;
+ }
+ for (a in e) {
+ if (l.calc && !n.transition) return;
+ var v = e[a], _ = t[a], b = r.concat(a);
+ if (o = b.join("."), !(a.charAt(0) === "_" || typeof v == "function" || v === _)) {
+ if ((a === "tick0" || a === "dtick") && r[0] !== "geo") {
+ var p = t.tickmode;
+ if (p === "auto" || p === "array" || !p) continue;
+ }
+ if (!(a === "range" && t.autorange) && !((a === "zmin" || a === "zmax") && t.type === "contourcarpet") && (i = s(b), !!i && !(i._compareAsJSON && JSON.stringify(v) === JSON.stringify(_)))) {
+ var k = i.valType, E, T = d(i), L = Array.isArray(v), x = Array.isArray(_);
+ if (L && x) {
+ var C = "_input_" + a, M = e[C], g = t[C];
+ if (Array.isArray(M) && M === g) continue;
+ }
+ if (_ === void 0) T && L ? l.calc = true : h();
+ else if (i._isLinkedToArray) {
+ var P = [], A = false;
+ c || (l.arrays[a] = P);
+ var z = Math.min(v.length, _.length), O = Math.max(v.length, _.length);
+ if (z !== O) if (i.editType === "arraydraw") A = true;
+ else {
+ h();
+ continue;
+ }
+ for (E = 0; E < z; E++) jP(v[E], _[E], b.concat(E), Sa.extendFlat({ inArray: a, arrayIndex: E }, n));
+ if (A) for (E = z; E < O; E++) P.push(E);
+ } else !k && Sa.isPlainObject(v) ? jP(v, _, b, n) : T ? L && x ? (u && (l.calc = true), (u || n.newDataRevision) && h()) : L !== x ? l.calc = true : h() : L && x ? (v.length !== _.length || String(v) !== String(_)) && h() : h();
+ }
+ }
+ }
+ for (a in t) if (!(a in e || a.charAt(0) === "_" || typeof t[a] == "function")) if (i = s(r.concat(a)), d(i) && Array.isArray(t[a])) {
+ l.calc = true;
+ return;
+ } else h();
+ }
+ function avt(e, t, r) {
+ if (e = Sa.getGraphDiv(e), !Sa.isPlotDiv(e)) throw new Error("This element is not a Plotly plot: " + e + ". It's likely that you've failed to create a plot before animating it. For more details, see https://plotly.com/javascript/animations/");
+ var n = e._transitionData;
+ n._frameQueue || (n._frameQueue = []), r = Qo.supplyAnimationDefaults(r);
+ var i = r.transition, a = r.frame;
+ n._frameWaitingCnt === void 0 && (n._frameWaitingCnt = 0);
+ function o(u) {
+ return Array.isArray(i) ? u >= i.length ? i[0] : i[u] : i;
+ }
+ function s(u) {
+ return Array.isArray(a) ? u >= a.length ? a[0] : a[u] : a;
+ }
+ function l(u, c) {
+ var f = 0;
+ return function() {
+ if (u && ++f === c) return u();
+ };
+ }
+ return new Promise(function(u, c) {
+ function f() {
+ if (n._frameQueue.length !== 0) {
+ for (; n._frameQueue.length; ) {
+ var z = n._frameQueue.pop();
+ z.onInterrupt && z.onInterrupt();
+ }
+ e.emit("plotly_animationinterrupted", []);
+ }
+ }
+ function h(z) {
+ if (z.length !== 0) {
+ for (var O = 0; O < z.length; O++) {
+ var U;
+ z[O].type === "byname" ? U = Qo.computeFrame(e, z[O].name) : U = z[O].data;
+ var G = s(O), Z = o(O);
+ Z.duration = Math.min(Z.duration, G.duration);
+ var j = { frame: U, name: z[O].name, frameOpts: G, transitionOpts: Z };
+ O === z.length - 1 && (j.onComplete = l(u, 2), j.onInterrupt = c), n._frameQueue.push(j);
+ }
+ r.mode === "immediate" && (n._lastFrameAt = -1 / 0), n._animationRaf || _();
+ }
+ }
+ function d() {
+ e.emit("plotly_animated"), window.cancelAnimationFrame(n._animationRaf), n._animationRaf = null;
+ }
+ function v() {
+ n._currentFrame && n._currentFrame.onComplete && n._currentFrame.onComplete();
+ var z = n._currentFrame = n._frameQueue.shift();
+ if (z) {
+ var O = z.name ? z.name.toString() : null;
+ e._fullLayout._currentFrame = O, n._lastFrameAt = Date.now(), n._timeToNext = z.frameOpts.duration, Qo.transition(e, z.frame.data, z.frame.layout, gh.coerceTraceIndices(e, z.frame.traces), z.frameOpts, z.transitionOpts).then(function() {
+ z.onComplete && z.onComplete();
+ }), e.emit("plotly_animatingframe", { name: O, frame: z.frame, animation: { frame: z.frameOpts, transition: z.transitionOpts } });
+ } else d();
+ }
+ function _() {
+ e.emit("plotly_animating"), n._lastFrameAt = -1 / 0, n._timeToNext = 0, n._runningTransitions = 0, n._currentFrame = null;
+ var z = function() {
+ n._animationRaf = window.requestAnimationFrame(z), Date.now() - n._lastFrameAt > n._timeToNext && v();
+ };
+ z();
+ }
+ var b = 0;
+ function p(z) {
+ return Array.isArray(i) ? b >= i.length ? z.transitionOpts = i[b] : z.transitionOpts = i[0] : z.transitionOpts = i, b++, z;
+ }
+ var k, E, T = [], L = t == null, x = Array.isArray(t), C = !L && !x && Sa.isPlainObject(t);
+ if (C) T.push({ type: "object", data: p(Sa.extendFlat({}, t)) });
+ else if (L || ["string", "number"].indexOf(typeof t) !== -1) for (k = 0; k < n._frames.length; k++) E = n._frames[k], E && (L || String(E.group) === String(t)) && T.push({ type: "byname", name: String(E.name), data: p({ name: E.name }) });
+ else if (x) for (k = 0; k < t.length; k++) {
+ var M = t[k];
+ ["number", "string"].indexOf(typeof M) !== -1 ? (M = String(M), T.push({ type: "byname", name: M, data: p({ name: M }) })) : Sa.isPlainObject(M) && T.push({ type: "object", data: p(Sa.extendFlat({}, M)) });
+ }
+ for (k = 0; k < T.length; k++) if (E = T[k], E.type === "byname" && !n._frameHash[E.data.name]) {
+ Sa.warn('animate failure: frame not found: "' + E.data.name + '"'), c();
+ return;
+ }
+ ["next", "immediate"].indexOf(r.mode) !== -1 && f(), r.direction === "reverse" && T.reverse();
+ var g = e._fullLayout._currentFrame;
+ if (g && r.fromcurrent) {
+ var P = -1;
+ for (k = 0; k < T.length; k++) if (E = T[k], E.type === "byname" && E.name === g) {
+ P = k;
+ break;
+ }
+ if (P > 0 && P < T.length - 1) {
+ var A = [];
+ for (k = 0; k < T.length; k++) E = T[k], (T[k].type !== "byname" || k > P) && A.push(E);
+ T = A;
+ }
+ }
+ T.length > 0 ? h(T) : (e.emit("plotly_animated"), u());
+ });
+ }
+ function ovt(e, t, r) {
+ if (e = Sa.getGraphDiv(e), t == null) return Promise.resolve();
+ if (!Sa.isPlotDiv(e)) throw new Error("This element is not a Plotly plot: " + e + ". It's likely that you've failed to create a plot before adding frames. For more details, see https://plotly.com/javascript/animations/");
+ var n, i, a, o, s = e._transitionData._frames, l = e._transitionData._frameHash;
+ if (!Array.isArray(t)) throw new Error("addFrames failure: frameList must be an Array of frame definitions" + t);
+ var u = s.length + t.length * 2, c = [], f = {};
+ for (n = t.length - 1; n >= 0; n--) if (Sa.isPlainObject(t[n])) {
+ var h = t[n].name, d = (l[h] || f[h] || {}).name, v = t[n].name, _ = l[d] || f[d];
+ d && v && typeof v == "number" && _ && $N < Vhe && ($N++, Sa.warn('addFrames: overwriting frame "' + (l[d] || f[d]).name + '" with a frame whose name of type "number" also equates to "' + d + '". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'), $N === Vhe && Sa.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")), f[h] = { name: h }, c.push({ frame: Qo.supplyFrameDefaults(t[n]), index: r && r[n] !== void 0 && r[n] !== null ? r[n] : u + n });
+ }
+ c.sort(function(C, M) {
+ return C.index > M.index ? -1 : C.index < M.index ? 1 : 0;
+ });
+ var b = [], p = [], k = s.length;
+ for (n = c.length - 1; n >= 0; n--) {
+ if (i = c[n].frame, typeof i.name == "number" && Sa.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"), !i.name) for (; l[i.name = "frame " + e._transitionData._counter++]; ) ;
+ if (l[i.name]) {
+ for (a = 0; a < s.length && (s[a] || {}).name !== i.name; a++) ;
+ b.push({ type: "replace", index: a, value: i }), p.unshift({ type: "replace", index: a, value: s[a] });
+ } else o = Math.max(0, Math.min(c[n].index, k)), b.push({ type: "insert", index: o, value: i }), p.unshift({ type: "delete", index: o }), k++;
+ }
+ var E = Qo.modifyFrames, T = Qo.modifyFrames, L = [e, p], x = [e, b];
+ return op && op.add(e, E, L, T, x), Qo.modifyFrames(e, b);
+ }
+ function svt(e, t) {
+ if (e = Sa.getGraphDiv(e), !Sa.isPlotDiv(e)) throw new Error("This element is not a Plotly plot: " + e);
+ var r, n, i = e._transitionData._frames, a = [], o = [];
+ if (!t) for (t = [], r = 0; r < i.length; r++) t.push(r);
+ for (t = t.slice(), t.sort(), r = t.length - 1; r >= 0; r--) n = t[r], a.push({ type: "delete", index: n }), o.unshift({ type: "insert", index: n, value: i[n] });
+ var s = Qo.modifyFrames, l = Qo.modifyFrames, u = [e, o], c = [e, a];
+ return op && op.add(e, s, u, l, c), Qo.modifyFrames(e, a);
+ }
+ function lvt(e) {
+ e = Sa.getGraphDiv(e);
+ var t = e._fullLayout || {}, r = e._fullData || [];
+ return Qo.cleanPlot([], {}, r, t), Qo.purge(e), QN.purge(e), t._container && t._container.remove(), delete e._context, e;
+ }
+ function uvt(e) {
+ var t = e._fullLayout, r = e.getBoundingClientRect();
+ if (!Sa.equalDomRects(r, t._lastBBox)) {
+ var n = t._invTransform = Sa.inverseTransformMatrix(Sa.getFullTransformMatrix(e));
+ t._invScaleX = Math.sqrt(n[0][0] * n[0][0] + n[0][1] * n[0][1] + n[0][2] * n[0][2]), t._invScaleY = Math.sqrt(n[1][0] * n[1][0] + n[1][1] * n[1][1] + n[1][2] * n[1][2]), t._lastBBox = r;
+ }
+ }
+ function cvt(e) {
+ var t = BP.select(e), r = e._fullLayout;
+ if (r._calcInverseTransform = uvt, r._calcInverseTransform(e), r._container = t.selectAll(".plot-container").data([0]), r._container.enter().insert("div", ":first-child").classed("plot-container", true).classed("plotly", true).style({ width: "100%", height: "100%" }), r._paperdiv = r._container.selectAll(".svg-container").data([0]), r._paperdiv.enter().append("div").classed("user-select-none", true).classed("svg-container", true).style("position", "relative"), r._glcontainer = r._paperdiv.selectAll(".gl-container").data([{}]), r._glcontainer.enter().append("div").classed("gl-container", true), r._paperdiv.selectAll(".main-svg").remove(), r._paperdiv.select(".modebar-container").remove(), r._paper = r._paperdiv.insert("svg", ":first-child").classed("main-svg", true), r._toppaper = r._paperdiv.append("svg").classed("main-svg", true), r._modebardiv = r._paperdiv.append("div"), delete r._modeBar, r._hoverpaper = r._paperdiv.append("svg").classed("main-svg", true), !r._uid) {
+ var n = {};
+ BP.selectAll("defs").each(function() {
+ this.id && (n[this.id.split("-")[1]] = 1);
+ }), r._uid = Sa.randstr(n);
+ }
+ r._paperdiv.selectAll(".main-svg").attr(qdt.svgAttrs), r._defs = r._paper.append("defs").attr("id", "defs-" + r._uid), r._clips = r._defs.append("g").classed("clips", true), r._topdefs = r._toppaper.append("defs").attr("id", "topdefs-" + r._uid), r._topclips = r._topdefs.append("g").classed("clips", true), r._bgLayer = r._paper.append("g").classed("bglayer", true), r._draggers = r._paper.append("g").classed("draglayer", true);
+ var i = r._paper.append("g").classed("layer-below", true);
+ r._imageLowerLayer = i.append("g").classed("imagelayer", true), r._shapeLowerLayer = i.append("g").classed("shapelayer", true), r._cartesianlayer = r._paper.append("g").classed("cartesianlayer", true), r._polarlayer = r._paper.append("g").classed("polarlayer", true), r._smithlayer = r._paper.append("g").classed("smithlayer", true), r._ternarylayer = r._paper.append("g").classed("ternarylayer", true), r._geolayer = r._paper.append("g").classed("geolayer", true), r._funnelarealayer = r._paper.append("g").classed("funnelarealayer", true), r._pielayer = r._paper.append("g").classed("pielayer", true), r._iciclelayer = r._paper.append("g").classed("iciclelayer", true), r._treemaplayer = r._paper.append("g").classed("treemaplayer", true), r._sunburstlayer = r._paper.append("g").classed("sunburstlayer", true), r._indicatorlayer = r._toppaper.append("g").classed("indicatorlayer", true), r._glimages = r._paper.append("g").classed("glimages", true);
+ var a = r._toppaper.append("g").classed("layer-above", true);
+ r._imageUpperLayer = a.append("g").classed("imagelayer", true), r._shapeUpperLayer = a.append("g").classed("shapelayer", true), r._selectionLayer = r._toppaper.append("g").classed("selectionlayer", true), r._infolayer = r._toppaper.append("g").classed("infolayer", true), r._menulayer = r._toppaper.append("g").classed("menulayer", true), r._zoomlayer = r._toppaper.append("g").classed("zoomlayer", true), r._hoverlayer = r._hoverpaper.append("g").classed("hoverlayer", true), r._modebardiv.classed("modebar-container", true).style("position", "absolute").style("top", "0px").style("right", "0px"), e.emit("plotly_framework");
+ }
+ _l.animate = avt;
+ _l.addFrames = ovt;
+ _l.deleteFrames = svt;
+ _l.addTraces = ede;
+ _l.deleteTraces = tde;
+ _l.extendTraces = $he;
+ _l.moveTraces = eU;
+ _l.prependTraces = Qhe;
+ _l.newPlot = jdt;
+ _l._doPlot = Udt;
+ _l.purge = lvt;
+ _l.react = rvt;
+ _l.redraw = Hdt;
+ _l.relayout = $M;
+ _l.restyle = VP;
+ _l.setPlotConfig = Vdt;
+ _l.update = HP;
+ _l._guiRelayout = tU($M);
+ _l._guiRestyle = tU(VP);
+ _l._guiUpdate = tU(HP);
+ _l._storeDirectGUIEdit = Ydt;
+ });
+ var Oy = ye((Pm) => {
+ var fvt = qa();
+ Pm.getDelay = function(e) {
+ return e._has && (e._has("gl3d") || e._has("mapbox") || e._has("map")) ? 500 : 0;
+ };
+ Pm.getRedrawFunc = function(e) {
+ return function() {
+ fvt.getComponentMethod("colorbar", "draw")(e);
+ };
+ };
+ Pm.encodeSVG = function(e) {
+ return "data:image/svg+xml," + encodeURIComponent(e);
+ };
+ Pm.encodeJSON = function(e) {
+ return "data:application/json," + encodeURIComponent(e);
+ };
+ var lde = window.URL || window.webkitURL;
+ Pm.createObjectURL = function(e) {
+ return lde.createObjectURL(e);
+ };
+ Pm.revokeObjectURL = function(e) {
+ return lde.revokeObjectURL(e);
+ };
+ Pm.createBlob = function(e, t) {
+ if (t === "svg") return new window.Blob([e], { type: "image/svg+xml;charset=utf-8" });
+ if (t === "full-json") return new window.Blob([e], { type: "application/json;charset=utf-8" });
+ var r = hvt(window.atob(e));
+ return new window.Blob([r], { type: "image/" + t });
+ };
+ Pm.octetStream = function(e) {
+ document.location.href = "data:application/octet-stream" + e;
+ };
+ function hvt(e) {
+ for (var t = e.length, r = new ArrayBuffer(t), n = new Uint8Array(r), i = 0; i < t; i++) n[i] = e.charCodeAt(i);
+ return r;
+ }
+ Pm.IMAGE_URL_PREFIX = /^data:image\/\w+;base64,/;
+ });
+ var YP = ye((Uor, ude) => {
+ var iU = Oa();
+ Dr();
+ var dvt = So(), vvt = ka();
+ Wp();
+ var rU = /"/g, e4 = "TOBESTRIPPED", pvt = new RegExp('("' + e4 + ")|(" + e4 + '")', "g");
+ function gvt(e) {
+ var t = iU.select("body").append("div").style({ display: "none" }).html(""), r = e.replace(/(&[^;]*;)/gi, function(n) {
+ return n === "<" ? "<" : n === "&rt;" ? ">" : n.indexOf("<") !== -1 || n.indexOf(">") !== -1 ? "" : t.html(n).text();
+ });
+ return t.remove(), r;
+ }
+ function mvt(e) {
+ return e.replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g, "&");
+ }
+ ude.exports = function(t, r, n) {
+ var i = t._fullLayout, a = i._paper, o = i._toppaper, s = i.width, l = i.height, u;
+ a.insert("rect", ":first-child").call(dvt.setRect, 0, 0, s, l).call(vvt.fill, i.paper_bgcolor);
+ var c = i._basePlotModules || [];
+ for (u = 0; u < c.length; u++) {
+ var f = c[u];
+ f.toSVG && f.toSVG(t);
+ }
+ if (o) {
+ var h = o.node().childNodes, d = Array.prototype.slice.call(h);
+ for (u = 0; u < d.length; u++) {
+ var v = d[u];
+ v.childNodes.length && a.node().appendChild(v);
+ }
+ }
+ i._draggers && i._draggers.remove(), a.node().style.background = "", a.selectAll("text").attr({ "data-unformatted": null, "data-math": null }).each(function() {
+ var b = iU.select(this);
+ if (this.style.visibility === "hidden" || this.style.display === "none") {
+ b.remove();
+ return;
+ } else b.style({ visibility: null, display: null });
+ var p = this.style.fontFamily;
+ p && p.indexOf('"') !== -1 && b.style("font-family", p.replace(rU, e4));
+ var k = this.style.fontWeight;
+ k && (k === "normal" || k === "400") && b.style("font-weight", void 0);
+ var E = this.style.fontStyle;
+ E && E === "normal" && b.style("font-style", void 0);
+ var T = this.style.fontVariant;
+ T && T === "normal" && b.style("font-variant", void 0);
+ }), a.selectAll(".gradient_filled,.pattern_filled").each(function() {
+ var b = iU.select(this), p = this.style.fill;
+ p && p.indexOf("url(") !== -1 && b.style("fill", p.replace(rU, e4));
+ var k = this.style.stroke;
+ k && k.indexOf("url(") !== -1 && b.style("stroke", k.replace(rU, e4));
+ }), (r === "pdf" || r === "eps") && a.selectAll("#MathJax_SVG_glyphs path").attr("stroke-width", 0), r === "svg" && n && (a.attr("width", n * s), a.attr("height", n * l), a.attr("viewBox", "0 0 " + s + " " + l));
+ var _ = new window.XMLSerializer().serializeToString(a.node());
+ return _ = gvt(_), _ = mvt(_), _ = _.replace(pvt, "'"), _;
+ };
+ });
+ var KP = ye((Vor, cde) => {
+ var yvt = Dr(), _vt = Ab().EventEmitter, t4 = Oy();
+ function xvt(e) {
+ var t = e.emitter || new _vt(), r = new Promise(function(n, i) {
+ var a = window.Image, o = e.svg, s = e.format || "png", l = e.canvas, u = e.scale || 1, c = e.width || 300, f = e.height || 150, h = u * c, d = u * f, v = l.getContext("2d", { willReadFrequently: true }), _ = new a(), b, p;
+ s === "svg" || yvt.isSafari() ? p = t4.encodeSVG(o) : (b = t4.createBlob(o, "svg"), p = t4.createObjectURL(b)), l.width = h, l.height = d, _.onload = function() {
+ var k;
+ switch (b = null, t4.revokeObjectURL(p), s !== "svg" && v.drawImage(_, 0, 0, h, d), s) {
+ case "jpeg":
+ k = l.toDataURL("image/jpeg");
+ break;
+ case "png":
+ k = l.toDataURL("image/png");
+ break;
+ case "webp":
+ k = l.toDataURL("image/webp");
+ break;
+ case "svg":
+ k = p;
+ break;
+ default:
+ var E = "Image format is not jpeg, png, svg or webp.";
+ if (i(new Error(E)), !e.promise) return t.emit("error", E);
+ }
+ n(k), e.promise || t.emit("success", k);
+ }, _.onerror = function(k) {
+ if (b = null, t4.revokeObjectURL(p), i(k), !e.promise) return t.emit("error", k);
+ }, _.src = p;
+ });
+ return e.promise ? r : t;
+ }
+ cde.exports = xvt;
+ });
+ var aU = ye((Gor, dde) => {
+ var fde = Eo(), hde = ZP(), bvt = Mc(), Im = Dr(), r4 = Oy(), wvt = YP(), Tvt = KP(), Avt = g6().version, nU = { format: { valType: "enumerated", values: ["png", "jpeg", "webp", "svg", "full-json"], dflt: "png" }, width: { valType: "number", min: 1 }, height: { valType: "number", min: 1 }, scale: { valType: "number", min: 0, dflt: 1 }, setBackground: { valType: "any", dflt: false }, imageDataOnly: { valType: "boolean", dflt: false } };
+ function Svt(e, t) {
+ t = t || {};
+ var r, n, i, a;
+ Im.isPlainObject(e) ? (r = e.data || [], n = e.layout || {}, i = e.config || {}, a = {}) : (e = Im.getGraphDiv(e), r = Im.extendDeep([], e.data), n = Im.extendDeep({}, e.layout), i = e._context, a = e._fullLayout || {});
+ function o(x) {
+ return !(x in t) || Im.validate(t[x], nU[x]);
+ }
+ if (!o("width") && t.width !== null || !o("height") && t.height !== null) throw new Error("Height and width should be pixel values.");
+ if (!o("format")) throw new Error("Export format is not " + Im.join2(nU.format.values, ", ", " or ") + ".");
+ var s = {};
+ function l(x, C) {
+ return Im.coerce(t, s, nU, x, C);
+ }
+ var u = l("format"), c = l("width"), f = l("height"), h = l("scale"), d = l("setBackground"), v = l("imageDataOnly"), _ = document.createElement("div");
+ _.style.position = "absolute", _.style.left = "-5000px", document.body.appendChild(_);
+ var b = Im.extendFlat({}, n);
+ c ? b.width = c : t.width === null && fde(a.width) && (b.width = a.width), f ? b.height = f : t.height === null && fde(a.height) && (b.height = a.height);
+ var p = Im.extendFlat({}, i, { _exportedPlot: true, staticPlot: true, setBackground: d }), k = r4.getRedrawFunc(_);
+ function E() {
+ return new Promise(function(x) {
+ setTimeout(x, r4.getDelay(_._fullLayout));
+ });
+ }
+ function T() {
+ return new Promise(function(x, C) {
+ var M = wvt(_, u, h), g = _._fullLayout.width, P = _._fullLayout.height;
+ function A() {
+ hde.purge(_), document.body.removeChild(_);
+ }
+ if (u === "full-json") {
+ var z = bvt.graphJson(_, false, "keepdata", "object", true, true);
+ return z.version = Avt, z = JSON.stringify(z), A(), x(v ? z : r4.encodeJSON(z));
+ }
+ if (A(), u === "svg") return x(v ? M : r4.encodeSVG(M));
+ var O = document.createElement("canvas");
+ O.id = Im.randstr(), Tvt({ format: u, width: g, height: P, scale: h, canvas: O, svg: M, promise: true }).then(x).catch(C);
+ });
+ }
+ function L(x) {
+ return v ? x.replace(r4.IMAGE_URL_PREFIX, "") : x;
+ }
+ return new Promise(function(x, C) {
+ hde.newPlot(_, r, b, p).then(k).then(E).then(T).then(function(M) {
+ x(L(M));
+ }).catch(function(M) {
+ C(M);
+ });
+ });
+ }
+ dde.exports = Svt;
+ });
+ var gde = ye((Hor, pde) => {
+ var I0 = Dr(), Mvt = Mc(), Evt = P3(), kvt = _b().dfltConfig, Rg = I0.isPlainObject, Qb = Array.isArray, oU = I0.isArrayOrTypedArray;
+ pde.exports = function(t, r) {
+ t === void 0 && (t = []), r === void 0 && (r = {});
+ var n = Evt.get(), i = [], a = { _context: I0.extendFlat({}, kvt) }, o, s;
+ Qb(t) ? (a.data = I0.extendDeep([], t), o = t) : (a.data = [], o = [], i.push(md("array", "data"))), Rg(r) ? (a.layout = I0.extendDeep({}, r), s = r) : (a.layout = {}, s = {}, arguments.length > 1 && i.push(md("object", "layout"))), Mvt.supplyDefaults(a);
+ for (var l = a._fullData, u = o.length, c = 0; c < u; c++) {
+ var f = o[c], h = ["data", c];
+ if (!Rg(f)) {
+ i.push(md("object", h));
+ continue;
+ }
+ var d = l[c], v = d.type, _ = n.traces[v].attributes;
+ _.type = { valType: "enumerated", values: [v] }, d.visible === false && f.visible !== false && i.push(md("invisible", h)), JP(f, d, _, i, h);
+ }
+ var b = a._fullLayout, p = Cvt(n, l);
+ return JP(s, b, p, i, "layout"), i.length === 0 ? void 0 : i;
+ };
+ function JP(e, t, r, n, i, a) {
+ a = a || [];
+ for (var o = Object.keys(e), s = 0; s < o.length; s++) {
+ var l = o[s], u = a.slice();
+ u.push(l);
+ var c = e[l], f = t[l], h = Ivt(r, l), d = (h || {}).valType, v = d === "info_array", _ = d === "colorscale", b = (h || {}).items;
+ if (!Pvt(r, l)) n.push(md("schema", i, u));
+ else if (Rg(c) && Rg(f) && d !== "any") JP(c, f, h, n, i, u);
+ else if (v && Qb(c)) {
+ c.length > f.length && n.push(md("unused", i, u.concat(f.length)));
+ var p = f.length, k = Array.isArray(b);
+ k && (p = Math.min(p, b.length));
+ var E, T, L, x, C;
+ if (h.dimensions === 2) for (T = 0; T < p; T++) if (Qb(c[T])) {
+ c[T].length > f[T].length && n.push(md("unused", i, u.concat(T, f[T].length)));
+ var M = f[T].length;
+ for (E = 0; E < (k ? Math.min(M, b[T].length) : M); E++) L = k ? b[T][E] : b, x = c[T][E], C = f[T][E], I0.validate(x, L) ? C !== x && C !== +x && n.push(md("dynamic", i, u.concat(T, E), x, C)) : n.push(md("value", i, u.concat(T, E), x));
+ } else n.push(md("array", i, u.concat(T), c[T]));
+ else for (T = 0; T < p; T++) L = k ? b[T] : b, x = c[T], C = f[T], I0.validate(x, L) ? C !== x && C !== +x && n.push(md("dynamic", i, u.concat(T), x, C)) : n.push(md("value", i, u.concat(T), x));
+ } else if (h.items && !v && Qb(c)) {
+ var g = b[Object.keys(b)[0]], P = [], A, z;
+ for (A = 0; A < f.length; A++) {
+ var O = f[A]._index || A;
+ if (z = u.slice(), z.push(O), Rg(c[O]) && Rg(f[A])) {
+ P.push(O);
+ var U = c[O], G = f[A];
+ Rg(U) && U.visible !== false && G.visible === false ? n.push(md("invisible", i, z)) : JP(U, G, g, n, i, z);
+ }
+ }
+ for (A = 0; A < c.length; A++) z = u.slice(), z.push(A), Rg(c[A]) ? P.indexOf(A) === -1 && n.push(md("unused", i, z)) : n.push(md("object", i, z, c[A]));
+ } else !Rg(c) && Rg(f) ? n.push(md("object", i, u, c)) : !oU(c) && oU(f) && !v && !_ ? n.push(md("array", i, u, c)) : l in t ? I0.validate(c, h) ? h.valType === "enumerated" && (h.coerceNumber && c !== +f || !oU(c) && c !== f || String(c) !== String(f)) && n.push(md("dynamic", i, u, c, f)) : n.push(md("value", i, u, c)) : n.push(md("unused", i, u, c));
+ }
+ return n;
+ }
+ function Cvt(e, t) {
+ for (var r = e.layout.layoutAttributes, n = 0; n < t.length; n++) {
+ var i = t[n], a = e.traces[i.type], o = a.layoutAttributes;
+ o && (i.subplot ? I0.extendFlat(r[a.attributes.subplot.dflt], o) : I0.extendFlat(r, o));
+ }
+ return r;
+ }
+ var Lvt = { object: function(e, t) {
+ var r;
+ return e === "layout" && t === "" ? r = "The layout argument" : e[0] === "data" && t === "" ? r = "Trace " + e[1] + " in the data argument" : r = $b(e) + "key " + t, r + " must be linked to an object container";
+ }, array: function(e, t) {
+ var r;
+ return e === "data" ? r = "The data argument" : r = $b(e) + "key " + t, r + " must be linked to an array container";
+ }, schema: function(e, t) {
+ return $b(e) + "key " + t + " is not part of the schema";
+ }, unused: function(e, t, r) {
+ var n = Rg(r) ? "container" : "key";
+ return $b(e) + n + " " + t + " did not get coerced";
+ }, dynamic: function(e, t, r, n) {
+ return [$b(e) + "key", t, "(set to '" + r + "')", "got reset to", "'" + n + "'", "during defaults."].join(" ");
+ }, invisible: function(e, t) {
+ return (t ? $b(e) + "item " + t : "Trace " + e[1]) + " got defaulted to be not visible";
+ }, value: function(e, t, r) {
+ return [$b(e) + "key " + t, "is set to an invalid value (" + r + ")"].join(" ");
+ } };
+ function $b(e) {
+ return Qb(e) ? "In data trace " + e[1] + ", " : "In " + e + ", ";
+ }
+ function md(e, t, r, n, i) {
+ r = r || "";
+ var a, o;
+ Qb(t) ? (a = t[0], o = t[1]) : (a = t, o = null);
+ var s = Dvt(r), l = Lvt[e](t, s, n, i);
+ return I0.log(l), { code: e, container: a, trace: o, path: r, astr: s, msg: l };
+ }
+ function Pvt(e, t) {
+ var r = vde(t), n = r.keyMinusId, i = r.id;
+ return n in e && e[n]._isSubplotObj && i ? true : t in e;
+ }
+ function Ivt(e, t) {
+ if (t in e) return e[t];
+ var r = vde(t);
+ return e[r.keyMinusId];
+ }
+ var Rvt = I0.counterRegex("([a-z]+)");
+ function vde(e) {
+ var t = e.match(Rvt);
+ return { keyMinusId: t && t[1], id: t && t[2] };
+ }
+ function Dvt(e) {
+ if (!Qb(e)) return String(e);
+ for (var t = "", r = 0; r < e.length; r++) {
+ var n = e[r];
+ typeof n == "number" ? t = t.slice(0, -1) + "[" + n + "]" : t += n, r < e.length - 1 && (t += ".");
+ }
+ return t;
+ }
+ });
+ var yde = ye((jor, mde) => {
+ var Fvt = Dr(), $P = Oy();
+ function zvt(e, t, r) {
+ var n = document.createElement("a"), i = "download" in n, a = new Promise(function(o, s) {
+ var l, u;
+ if (i) return l = $P.createBlob(e, r), u = $P.createObjectURL(l), n.href = u, n.download = t, document.body.appendChild(n), n.click(), document.body.removeChild(n), $P.revokeObjectURL(u), l = null, o(t);
+ if (Fvt.isSafari()) {
+ var c = r === "svg" ? "," : ";base64,";
+ return $P.octetStream(c + encodeURIComponent(e)), o(t);
+ }
+ s(new Error("download error"));
+ });
+ return a;
+ }
+ mde.exports = zvt;
+ });
+ var sU = ye((Xor, xde) => {
+ var _de = Dr(), Ovt = aU(), qvt = yde();
+ Oy();
+ function Bvt(e, t) {
+ var r;
+ return _de.isPlainObject(e) || (r = _de.getGraphDiv(e)), t = t || {}, t.format = t.format || "png", t.width = t.width || null, t.height = t.height || null, t.imageDataOnly = true, new Promise(function(n, i) {
+ r && r._snapshotInProgress && i(new Error("Snapshotting already in progress.")), r && (r._snapshotInProgress = true);
+ var a = Ovt(e, t), o = t.filename || e.fn || "newplot";
+ o += "." + t.format.replace("-", "."), a.then(function(s) {
+ return r && (r._snapshotInProgress = false), qvt(s, o, t.format);
+ }).then(function(s) {
+ n(s);
+ }).catch(function(s) {
+ r && (r._snapshotInProgress = false), i(s);
+ });
+ });
+ }
+ xde.exports = Bvt;
+ });
+ var Sde = ye((lU) => {
+ var Cp = Dr(), Lp = Cp.isPlainObject, bde = P3(), wde = Mc(), Nvt = Gl(), Tde = vl(), Ade = _b().dfltConfig;
+ lU.makeTemplate = function(e) {
+ e = Cp.isPlainObject(e) ? e : Cp.getGraphDiv(e), e = Cp.extendDeep({ _context: Ade }, { data: e.data, layout: e.layout }), wde.supplyDefaults(e);
+ var t = e.data || [], r = e.layout || {};
+ r._basePlotModules = e._fullLayout._basePlotModules, r._modules = e._fullLayout._modules;
+ var n = { data: {}, layout: {} };
+ t.forEach(function(d) {
+ var v = {};
+ i4(d, v, Vvt.bind(null, d));
+ var _ = Cp.coerce(d, {}, Nvt, "type"), b = n.data[_];
+ b || (b = n.data[_] = []), b.push(v);
+ }), i4(r, n.layout, Uvt.bind(null, r)), delete n.layout.template;
+ var i = r.template;
+ if (Lp(i)) {
+ var a = i.layout, o, s, l, u, c, f;
+ Lp(a) && QP(a, n.layout);
+ var h = i.data;
+ if (Lp(h)) {
+ for (s in n.data) if (l = h[s], Array.isArray(l)) {
+ for (c = n.data[s], f = c.length, u = l.length, o = 0; o < f; o++) QP(l[o % u], c[o]);
+ for (o = f; o < u; o++) c.push(Cp.extendDeep({}, l[o]));
+ }
+ for (s in h) s in n.data || (n.data[s] = Cp.extendDeep([], h[s]));
+ }
+ }
+ return n;
+ };
+ function QP(e, t) {
+ e = Cp.extendDeep({}, e);
+ var r = Object.keys(e).sort(), n, i;
+ function a(c, f, h) {
+ if (Lp(f) && Lp(c)) QP(c, f);
+ else if (Array.isArray(f) && Array.isArray(c)) {
+ var d = Tde.arrayTemplater({ _template: e }, h);
+ for (i = 0; i < f.length; i++) {
+ var v = f[i], _ = d.newItem(v)._template;
+ _ && QP(_, v);
+ }
+ var b = d.defaultItems();
+ for (i = 0; i < b.length; i++) f.push(b[i]._template);
+ for (i = 0; i < f.length; i++) delete f[i].templateitemname;
+ }
+ }
+ for (n = 0; n < r.length; n++) {
+ var o = r[n], s = e[o];
+ if (o in t ? a(s, t[o], o) : t[o] = s, eI(o) === o) for (var l in t) {
+ var u = eI(l);
+ l !== u && u === o && !(l in e) && a(s, t[l], o);
+ }
+ }
+ }
+ function eI(e) {
+ return e.replace(/[0-9]+$/, "");
+ }
+ function i4(e, t, r, n, i) {
+ var a = i && r(i);
+ for (var o in e) {
+ var s = e[o], l = R0(e, o, n), u = R0(e, o, i), c = r(u);
+ if (!c) {
+ var f = eI(o);
+ f !== o && (u = R0(e, f, i), c = r(u));
+ }
+ if (!(a && a === c) && !(!c || c._noTemplating || c.valType === "data_array" || c.arrayOk && Array.isArray(s))) if (!c.valType && Lp(s)) i4(s, t, r, l, u);
+ else if (c._isLinkedToArray && Array.isArray(s)) for (var h = false, d = 0, v = {}, _ = 0; _ < s.length; _++) {
+ var b = s[_];
+ if (Lp(b)) {
+ var p = b.name;
+ if (p) v[p] || (i4(b, t, r, R0(s, d, l), R0(s, d, u)), d++, v[p] = 1);
+ else if (!h) {
+ var k = Tde.arrayDefaultKey(o), E = R0(e, k, n), T = R0(s, d, l);
+ i4(b, t, r, T, R0(s, d, u));
+ var L = Cp.nestedProperty(t, T), x = Cp.nestedProperty(t, E);
+ x.set(L.get()), L.set(null), h = true;
+ }
+ }
+ }
+ else {
+ var C = Cp.nestedProperty(t, l);
+ C.set(s);
+ }
+ }
+ }
+ function Uvt(e, t) {
+ return bde.getLayoutValObject(e, Cp.nestedProperty({}, t).parts);
+ }
+ function Vvt(e, t) {
+ return bde.getTraceValObject(e, Cp.nestedProperty({}, t).parts);
+ }
+ function R0(e, t, r) {
+ var n;
+ return r ? Array.isArray(e) ? n = r + "[" + t + "]" : n = r + "." + t : n = t, n;
+ }
+ lU.validateTemplate = function(e, t) {
+ var r = Cp.extendDeep({}, { _context: Ade, data: e.data, layout: e.layout }), n = r.layout || {};
+ Lp(t) || (t = n.template || {});
+ var i = t.layout, a = t.data, o = [];
+ r.layout = n, r.layout.template = t, wde.supplyDefaults(r);
+ var s = r._fullLayout, l = r._fullData, u = {};
+ function c(E, T) {
+ for (var L in E) if (L.charAt(0) !== "_" && Lp(E[L])) {
+ var x = eI(L), C = [], M;
+ for (M = 0; M < T.length; M++) C.push(R0(E, L, T[M])), x !== L && C.push(R0(E, x, T[M]));
+ for (M = 0; M < C.length; M++) u[C[M]] = 1;
+ c(E[L], C);
+ }
+ }
+ function f(E, T) {
+ for (var L in E) if (L.indexOf("defaults") === -1 && Lp(E[L])) {
+ var x = R0(E, L, T);
+ u[x] ? f(E[L], x) : o.push({ code: "unused", path: x });
+ }
+ }
+ if (Lp(i) ? (c(s, ["layout"]), f(i, "layout")) : o.push({ code: "layout" }), !Lp(a)) o.push({ code: "data" });
+ else {
+ for (var h = {}, d, v = 0; v < l.length; v++) {
+ var _ = l[v];
+ d = _.type, h[d] = (h[d] || 0) + 1, _._fullInput._template || o.push({ code: "missing", index: _.index, traceType: d });
+ }
+ for (d in a) {
+ var b = a[d].length, p = h[d] || 0;
+ b > p ? o.push({ code: "unused", traceType: d, templateCount: b, dataCount: p }) : p > b && o.push({ code: "reused", traceType: d, templateCount: b, dataCount: p });
+ }
+ }
+ function k(E, T) {
+ for (var L in E) if (L.charAt(0) !== "_") {
+ var x = E[L], C = R0(E, L, T);
+ Lp(x) ? (Array.isArray(E) && x._template === false && x.templateitemname && o.push({ code: "missing", path: C, templateitemname: x.templateitemname }), k(x, C)) : Array.isArray(x) && Gvt(x) && k(x, C);
+ }
+ }
+ if (k({ data: l, layout: s }, ""), o.length) return o.map(Hvt);
+ };
+ function Gvt(e) {
+ for (var t = 0; t < e.length; t++) if (Lp(e[t])) return true;
+ }
+ function Hvt(e) {
+ var t;
+ switch (e.code) {
+ case "data":
+ t = "The template has no key data.";
+ break;
+ case "layout":
+ t = "The template has no key layout.";
+ break;
+ case "missing":
+ e.path ? t = "There are no templates for item " + e.path + " with name " + e.templateitemname : t = "There are no templates for trace " + e.index + ", of type " + e.traceType + ".";
+ break;
+ case "unused":
+ e.path ? t = "The template item at " + e.path + " was not used in constructing the plot." : e.dataCount ? t = "Some of the templates of type " + e.traceType + " were not used. The template has " + e.templateCount + " traces, the data only has " + e.dataCount + " of this type." : t = "The template has " + e.templateCount + " traces of type " + e.traceType + " but there are none in the data.";
+ break;
+ case "reused":
+ t = "Some of the templates of type " + e.traceType + " were used more than once. The template has " + e.templateCount + " traces, the data has " + e.dataCount + " of this type.";
+ break;
+ }
+ return e.msg = t, e;
+ }
+ });
+ var Ede = ye((ef) => {
+ var rd = ZP();
+ ef._doPlot = rd._doPlot;
+ ef.newPlot = rd.newPlot;
+ ef.restyle = rd.restyle;
+ ef.relayout = rd.relayout;
+ ef.redraw = rd.redraw;
+ ef.update = rd.update;
+ ef._guiRestyle = rd._guiRestyle;
+ ef._guiRelayout = rd._guiRelayout;
+ ef._guiUpdate = rd._guiUpdate;
+ ef._storeDirectGUIEdit = rd._storeDirectGUIEdit;
+ ef.react = rd.react;
+ ef.extendTraces = rd.extendTraces;
+ ef.prependTraces = rd.prependTraces;
+ ef.addTraces = rd.addTraces;
+ ef.deleteTraces = rd.deleteTraces;
+ ef.moveTraces = rd.moveTraces;
+ ef.purge = rd.purge;
+ ef.addFrames = rd.addFrames;
+ ef.deleteFrames = rd.deleteFrames;
+ ef.animate = rd.animate;
+ ef.setPlotConfig = rd.setPlotConfig;
+ var jvt = HS().getGraphDiv, Wvt = dP().eraseActiveShape;
+ ef.deleteActiveShape = function(e) {
+ return Wvt(jvt(e));
+ };
+ ef.toImage = aU();
+ ef.validate = gde();
+ ef.downloadImage = sU();
+ var Mde = Sde();
+ ef.makeTemplate = Mde.makeTemplate;
+ ef.validateTemplate = Mde.validateTemplate;
+ });
+ var oT = ye((Kor, kde) => {
+ var uU = Dr(), Xvt = qa();
+ kde.exports = function(t, r, n, i) {
+ var a = i("x"), o = i("y"), s, l = Xvt.getComponentMethod("calendars", "handleTraceDefaults");
+ if (l(t, r, ["x", "y"], n), a) {
+ var u = uU.minRowLength(a);
+ o ? s = Math.min(u, uU.minRowLength(o)) : (s = u, i("y0"), i("dy"));
+ } else {
+ if (!o) return 0;
+ s = uU.minRowLength(o), i("x0"), i("dx");
+ }
+ return r._length = s, s;
+ };
+ });
+ var Dg = ye((Jor, Pde) => {
+ var Cde = Dr().dateTick0, Zvt = fs(), Yvt = Zvt.ONEWEEK;
+ function Lde(e, t) {
+ return e % Yvt === 0 ? Cde(t, 1) : Cde(t, 0);
+ }
+ Pde.exports = function(t, r, n, i, a) {
+ if (a || (a = { x: true, y: true }), a.x) {
+ var o = i("xperiod");
+ o && (i("xperiod0", Lde(o, r.xcalendar)), i("xperiodalignment"));
+ }
+ if (a.y) {
+ var s = i("yperiod");
+ s && (i("yperiod0", Lde(s, r.ycalendar)), i("yperiodalignment"));
+ }
+ };
+ });
+ var Dde = ye(($or, Rde) => {
+ var Ide = ["orientation", "groupnorm", "stackgaps"];
+ Rde.exports = function(t, r, n, i) {
+ var a = n._scatterStackOpts, o = i("stackgroup");
+ if (o) {
+ var s = r.xaxis + r.yaxis, l = a[s];
+ l || (l = a[s] = {});
+ var u = l[o], c = false;
+ u ? u.traces.push(r) : (u = l[o] = { traceIndices: [], traces: [r] }, c = true);
+ for (var f = { orientation: r.x && !r.y ? "h" : "v" }, h = 0; h < Ide.length; h++) {
+ var d = Ide[h], v = d + "Found";
+ if (!u[v]) {
+ var _ = t[d] !== void 0, b = d === "orientation";
+ if ((_ || c) && (u[d] = i(d, f[d]), b && (u.fillDflt = u[d] === "h" ? "tonextx" : "tonexty"), _ && (u[v] = true, !c && (delete u.traces[0][d], b)))) for (var p = 0; p < u.traces.length - 1; p++) {
+ var k = u.traces[p];
+ k._input.fill !== k.fill && (k.fill = u.fillDflt);
+ }
+ }
+ }
+ return u;
+ }
+ };
+ });
+ var $p = ye((Qor, qde) => {
+ var Fde = ka(), zde = pv().hasColorscale, Ode = td(), Kvt = Ru();
+ qde.exports = function(t, r, n, i, a, o = {}) {
+ var s = Kvt.isBubble(t), l = (t.line || {}).color, u;
+ if (l && (n = l), a("marker.symbol"), a("marker.opacity", s ? 0.7 : 1), a("marker.size"), o.noAngle || (a("marker.angle"), o.noAngleRef || a("marker.angleref"), o.noStandOff || a("marker.standoff")), a("marker.color", n), zde(t, "marker") && Ode(t, r, i, a, { prefix: "marker.", cLetter: "c" }), o.noSelect || (a("selected.marker.color"), a("unselected.marker.color"), a("selected.marker.size"), a("unselected.marker.size")), o.noLine || (l && !Array.isArray(l) && r.marker.color !== l ? u = l : s ? u = Fde.background : u = Fde.defaultLine, a("marker.line.color", u), zde(t, "marker.line") && Ode(t, r, i, a, { prefix: "marker.line.", cLetter: "c" }), a("marker.line.width", s ? 1 : 0), o.noLineDash || a("marker.line.dash")), s && (a("marker.sizeref"), a("marker.sizemin"), a("marker.sizemode")), o.gradient) {
+ var c = a("marker.gradient.type");
+ c !== "none" && a("marker.gradient.color");
+ }
+ };
+ });
+ var D0 = ye((esr, Bde) => {
+ var Jvt = Dr().isArrayOrTypedArray, $vt = pv().hasColorscale, Qvt = td();
+ Bde.exports = function(t, r, n, i, a, o) {
+ o || (o = {});
+ var s = (t.marker || {}).color;
+ if (s && s._inputArray && (s = s._inputArray), a("line.color", n), $vt(t, "line")) Qvt(t, r, i, a, { prefix: "line.", cLetter: "c" });
+ else {
+ var l = (Jvt(s) ? false : s) || n;
+ a("line.color", l);
+ }
+ a("line.width"), o.noDash || a("line.dash"), o.backoff && a("line.backoff");
+ };
+ });
+ var sT = ye((tsr, Nde) => {
+ Nde.exports = function(t, r, n) {
+ var i = n("line.shape");
+ i === "spline" && n("line.smoothing");
+ };
+ });
+ var F0 = ye((rsr, Ude) => {
+ var ept = Dr();
+ Ude.exports = function(e, t, r, n, i) {
+ i = i || {}, n("textposition"), ept.coerceFont(n, "textfont", i.font || r.font, i), i.noSelect || (n("selected.textfont.color"), n("unselected.textfont.color"));
+ };
+ });
+ var Fg = ye((isr, Gde) => {
+ var tI = ka(), Vde = Dr().isArrayOrTypedArray;
+ function tpt(e) {
+ for (var t = tI.interpolate(e[0][1], e[1][1], 0.5), r = 2; r < e.length; r++) {
+ var n = tI.interpolate(e[r - 1][1], e[r][1], 0.5);
+ t = tI.interpolate(t, n, e[r - 1][0] / e[r][0]);
+ }
+ return t;
+ }
+ Gde.exports = function(t, r, n, i, a) {
+ a || (a = {});
+ var o = false;
+ if (r.marker) {
+ var s = r.marker.color, l = (r.marker.line || {}).color;
+ s && !Vde(s) ? o = s : l && !Vde(l) && (o = l);
+ }
+ var u;
+ if (a.moduleHasFillgradient) {
+ var c = i("fillgradient.type");
+ if (c !== "none") {
+ i("fillgradient.start"), i("fillgradient.stop");
+ var f = i("fillgradient.colorscale");
+ f && (u = tpt(f));
+ }
+ }
+ i("fillcolor", tI.addOpacity((r.line || {}).color || o || u || n, 0.5));
+ };
+ });
+ var Xde = ye((nsr, Wde) => {
+ var Hde = Dr(), rpt = qa(), ipt = pf(), npt = Lm(), lT = Ru(), apt = oT(), opt = Dg(), spt = Dde(), lpt = $p(), upt = D0(), jde = sT(), cpt = F0(), fpt = Fg(), hpt = Dr().coercePattern;
+ Wde.exports = function(t, r, n, i) {
+ function a(d, v) {
+ return Hde.coerce(t, r, ipt, d, v);
+ }
+ var o = apt(t, r, i, a);
+ if (o || (r.visible = false), !!r.visible) {
+ opt(t, r, i, a), a("xhoverformat"), a("yhoverformat"), a("zorder");
+ var s = spt(t, r, i, a);
+ i.scattermode === "group" && r.orientation === void 0 && a("orientation", "v");
+ var l = !s && o < npt.PTS_LINESONLY ? "lines+markers" : "lines";
+ a("text"), a("hovertext"), a("mode", l), lT.hasMarkers(r) && lpt(t, r, n, i, a, { gradient: true }), lT.hasLines(r) && (upt(t, r, n, i, a, { backoff: true }), jde(t, r, a), a("connectgaps"), a("line.simplify")), lT.hasText(r) && (a("texttemplate"), a("texttemplatefallback"), cpt(t, r, i, a));
+ var u = [];
+ (lT.hasMarkers(r) || lT.hasText(r)) && (a("cliponaxis"), a("marker.maxdisplayed"), u.push("points")), a("fill", s ? s.fillDflt : "none"), r.fill !== "none" && (fpt(t, r, n, a, { moduleHasFillgradient: true }), lT.hasLines(r) || jde(t, r, a), hpt(a, "fillpattern", r.fillcolor, false));
+ var c = (r.line || {}).color, f = (r.marker || {}).color;
+ (r.fill === "tonext" || r.fill === "toself") && u.push("fills"), a("hoveron", u.join("+") || "points"), r.hoveron !== "fills" && (a("hovertemplate"), a("hovertemplatefallback"));
+ var h = rpt.getComponentMethod("errorbars", "supplyDefaults");
+ h(t, r, c || f || n, { axis: "y" }), h(t, r, c || f || n, { axis: "x", inherit: "y" }), Hde.coerceSelectionMarkerOpacity(r, a);
+ }
+ };
+ });
+ var e2 = ye((asr, Zde) => {
+ var dpt = Kb().getAxisGroup;
+ Zde.exports = function(t, r, n, i, a) {
+ var o = r.orientation, s = r[{ v: "x", h: "y" }[o] + "axis"], l = dpt(n, s) + o, u = n._alignmentOpts || {}, c = i("alignmentgroup"), f = u[l];
+ f || (f = u[l] = {});
+ var h = f[c];
+ h ? h.traces.push(r) : h = f[c] = { traces: [r], alignmentIndex: Object.keys(f).length, offsetGroups: {} };
+ var d = i("offsetgroup") || "", v = h.offsetGroups, _ = v[d];
+ r._offsetIndex = 0, (a !== "group" || d) && (_ || (_ = v[d] = { offsetIndex: Object.keys(v).length }), r._offsetIndex = _.offsetIndex);
+ };
+ });
+ var cU = ye((osr, Yde) => {
+ var vpt = Dr(), ppt = e2(), gpt = pf();
+ Yde.exports = function(t, r) {
+ var n, i, a, o = r.scattermode;
+ function s(h) {
+ return vpt.coerce(i._input, i, gpt, h);
+ }
+ if (r.scattermode === "group") for (a = 0; a < t.length; a++) i = t[a], i.type === "scatter" && (n = i._input, ppt(n, i, r, s, o));
+ for (a = 0; a < t.length; a++) {
+ var l = t[a];
+ if (l.type === "scatter") {
+ var u = l.fill;
+ if (!(u === "none" || u === "toself") && (l.opacity = void 0, u === "tonexty" || u === "tonextx")) for (var c = a - 1; c >= 0; c--) {
+ var f = t[c];
+ if (f.type === "scatter" && f.xaxis === l.xaxis && f.yaxis === l.yaxis) {
+ f.opacity = void 0;
+ break;
+ }
+ }
+ }
+ }
+ };
+ });
+ var Jde = ye((ssr, Kde) => {
+ var mpt = Dr(), ypt = tL();
+ Kde.exports = function(e, t) {
+ function r(i, a) {
+ return mpt.coerce(e, t, ypt, i, a);
+ }
+ var n = t.barmode === "group";
+ t.scattermode === "group" && r("scattergap", n ? t.bargap : 0.2);
+ };
+ });
+ var zg = ye((lsr, Qde) => {
+ var _pt = Eo(), $de = Dr(), xpt = $de.dateTime2ms, rI = $de.incrementMonth, bpt = fs(), wpt = bpt.ONEAVGMONTH;
+ Qde.exports = function(t, r, n, i) {
+ if (r.type !== "date") return { vals: i };
+ var a = t[n + "periodalignment"];
+ if (!a) return { vals: i };
+ var o = t[n + "period"], s;
+ if (_pt(o)) {
+ if (o = +o, o <= 0) return { vals: i };
+ } else if (typeof o == "string" && o.charAt(0) === "M") {
+ var l = +o.substring(1);
+ if (l > 0 && Math.round(l) === l) s = l;
+ else return { vals: i };
+ }
+ for (var u = r.calendar, c = a === "start", f = a === "end", h = t[n + "period0"], d = xpt(h, u) || 0, v = [], _ = [], b = [], p = i.length, k = 0; k < p; k++) {
+ var E = i[k], T, L, x;
+ if (s) {
+ for (T = Math.round((E - d) / (s * wpt)), x = rI(d, s * T, u); x > E; ) x = rI(x, -s, u);
+ for (; x <= E; ) x = rI(x, s, u);
+ L = rI(x, -s, u);
+ } else {
+ for (T = Math.round((E - d) / o), x = d + T * o; x > E; ) x -= o;
+ for (; x <= E; ) x += o;
+ L = x - o;
+ }
+ v[k] = c ? L : f ? x : (L + x) / 2, _[k] = L, b[k] = x;
+ }
+ return { vals: v, starts: _, ends: b };
+ };
+ });
+ var z0 = ye((usr, tve) => {
+ var fU = pv().hasColorscale, hU = gv(), eve = Ru();
+ tve.exports = function(t, r) {
+ eve.hasLines(r) && fU(r, "line") && hU(t, r, { vals: r.line.color, containerStr: "line", cLetter: "c" }), eve.hasMarkers(r) && (fU(r, "marker") && hU(t, r, { vals: r.marker.color, containerStr: "marker", cLetter: "c" }), fU(r, "marker.line") && hU(t, r, { vals: r.marker.line.color, containerStr: "marker.line", cLetter: "c" }));
+ };
+ });
+ var Rm = ye((csr, rve) => {
+ var qf = Dr();
+ rve.exports = function(t, r) {
+ for (var n = 0; n < t.length; n++) t[n].i = n;
+ qf.mergeArray(r.text, t, "tx"), qf.mergeArray(r.texttemplate, t, "txt"), qf.mergeArray(r.hovertext, t, "htx"), qf.mergeArray(r.customdata, t, "data"), qf.mergeArray(r.textposition, t, "tp"), r.textfont && (qf.mergeArrayCastPositive(r.textfont.size, t, "ts"), qf.mergeArray(r.textfont.color, t, "tc"), qf.mergeArray(r.textfont.family, t, "tf"), qf.mergeArray(r.textfont.weight, t, "tw"), qf.mergeArray(r.textfont.style, t, "ty"), qf.mergeArray(r.textfont.variant, t, "tv"), qf.mergeArray(r.textfont.textcase, t, "tC"), qf.mergeArray(r.textfont.lineposition, t, "tE"), qf.mergeArray(r.textfont.shadow, t, "tS"));
+ var i = r.marker;
+ if (i) {
+ qf.mergeArrayCastPositive(i.size, t, "ms"), qf.mergeArrayCastPositive(i.opacity, t, "mo"), qf.mergeArray(i.symbol, t, "mx"), qf.mergeArray(i.angle, t, "ma"), qf.mergeArray(i.standoff, t, "mf"), qf.mergeArray(i.color, t, "mc");
+ var a = i.line;
+ i.line && (qf.mergeArray(a.color, t, "mlc"), qf.mergeArrayCastPositive(a.width, t, "mlw"), qf.mergeArray(a.dash, t, "mld"));
+ var o = i.gradient;
+ o && o.type !== "none" && (qf.mergeArray(o.type, t, "mgt"), qf.mergeArray(o.color, t, "mgc"));
+ }
+ };
+ });
+ var O0 = ye((fsr, nve) => {
+ var ive = Dr();
+ nve.exports = function(t, r) {
+ ive.isArrayOrTypedArray(r.selectedpoints) && ive.tagSelected(t, r);
+ };
+ });
+ var q0 = ye((hsr, fve) => {
+ var ave = Eo(), vU = Dr(), n4 = ho(), ove = zg(), dU = fs().BADNUM, pU = Ru(), Tpt = z0(), Apt = Rm(), Spt = O0();
+ function Mpt(e, t) {
+ var r = e._fullLayout, n = t._xA = n4.getFromId(e, t.xaxis || "x", "x"), i = t._yA = n4.getFromId(e, t.yaxis || "y", "y"), a = n.makeCalcdata(t, "x"), o = i.makeCalcdata(t, "y"), s = ove(t, n, "x", a), l = ove(t, i, "y", o), u = s.vals, c = l.vals, f = t._length, h = new Array(f), d = t.ids, v = gU(t, r, n, i), _ = false, b, p, k, E, T, L;
+ uve(r, t);
+ var x = "x", C = "y", M;
+ if (v) vU.pushUnique(v.traceIndices, t.index), b = v.orientation === "v", b ? (C = "s", M = "x") : (x = "s", M = "y"), T = v.stackgaps === "interpolate";
+ else {
+ var g = lve(t, f);
+ sve(e, t, n, i, u, c, g);
+ }
+ var P = !!t.xperiodalignment, A = !!t.yperiodalignment;
+ for (p = 0; p < f; p++) {
+ var z = h[p] = {}, O = ave(u[p]), U = ave(c[p]);
+ O && U ? (z[x] = u[p], z[C] = c[p], P && (z.orig_x = a[p], z.xEnd = s.ends[p], z.xStart = s.starts[p]), A && (z.orig_y = o[p], z.yEnd = l.ends[p], z.yStart = l.starts[p])) : v && (b ? O : U) ? (z[M] = b ? u[p] : c[p], z.gap = true, T ? (z.s = dU, _ = true) : z.s = 0) : z[x] = z[C] = dU, d && (z.id = String(d[p]));
+ }
+ if (Apt(h, t), Tpt(e, t), Spt(h, t), v) {
+ for (p = 0; p < h.length; ) h[p][M] === dU ? h.splice(p, 1) : p++;
+ if (vU.sort(h, function(N, H) {
+ return N[M] - H[M] || N.i - H.i;
+ }), _) {
+ for (p = 0; p < h.length - 1 && h[p].gap; ) p++;
+ for (L = h[p].s, L || (L = h[p].s = 0), k = 0; k < p; k++) h[k].s = L;
+ for (E = h.length - 1; E > p && h[E].gap; ) E--;
+ for (L = h[E].s, k = h.length - 1; k > E; k--) h[k].s = L;
+ for (; p < E; ) if (p++, h[p].gap) {
+ for (k = p + 1; h[k].gap; ) k++;
+ for (var G = h[p - 1][M], Z = h[p - 1].s, j = (h[k].s - Z) / (h[k][M] - G); p < k; ) h[p].s = Z + (h[p][M] - G) * j, p++;
+ }
+ }
+ }
+ return h;
+ }
+ function sve(e, t, r, n, i, a, o) {
+ var s = t._length, l = e._fullLayout, u = r._id, c = n._id, f = l._firstScatter[cve(t)] === t.uid, h = (gU(t, l, r, n) || {}).orientation, d = t.fill;
+ r._minDtick = 0, n._minDtick = 0;
+ var v = { padded: true }, _ = { padded: true };
+ o && (v.ppad = _.ppad = o);
+ var b = s < 2 || i[0] !== i[s - 1] || a[0] !== a[s - 1];
+ b && (d === "tozerox" || d === "tonextx" && (f || h === "h")) ? v.tozero = true : !(t.error_y || {}).visible && (d === "tonexty" || d === "tozeroy" || !pU.hasMarkers(t) && !pU.hasText(t)) && (v.padded = false, v.ppad = 0), b && (d === "tozeroy" || d === "tonexty" && (f || h === "v")) ? _.tozero = true : (d === "tonextx" || d === "tozerox") && (_.padded = false), u && (t._extremes[u] = n4.findExtremes(r, i, v)), c && (t._extremes[c] = n4.findExtremes(n, a, _));
+ }
+ function lve(e, t) {
+ if (pU.hasMarkers(e)) {
+ var r = e.marker, n = 1.6 * (e.marker.sizeref || 1), i;
+ if (e.marker.sizemode === "area" ? i = function(u) {
+ return Math.max(Math.sqrt((u || 0) / n), 3);
+ } : i = function(u) {
+ return Math.max((u || 0) / n, 3);
+ }, vU.isArrayOrTypedArray(r.size)) {
+ var a = { type: "linear" };
+ n4.setConvert(a);
+ for (var o = a.makeCalcdata(e.marker, "size"), s = new Array(t), l = 0; l < t; l++) s[l] = i(o[l]);
+ return s;
+ } else return i(r.size);
+ }
+ }
+ function uve(e, t) {
+ var r = cve(t), n = e._firstScatter;
+ n[r] || (n[r] = t.uid);
+ }
+ function cve(e) {
+ var t = e.stackgroup;
+ return e.xaxis + e.yaxis + e.type + (t ? "-" + t : "");
+ }
+ function gU(e, t, r, n) {
+ var i = e.stackgroup;
+ if (i) {
+ var a = t._scatterStackOpts[r._id + n._id][i], o = a.orientation === "v" ? n : r;
+ if (o.type === "linear" || o.type === "log") return a;
+ }
+ }
+ fve.exports = { calc: Mpt, calcMarkerSize: lve, calcAxisExpansion: sve, setFirstScatter: uve, getStackOpts: gU };
+ });
+ var dve = ye((dsr, hve) => {
+ hve.exports = iI;
+ var Ept = Dr().distinctVals;
+ function iI(e, t) {
+ this.traces = e, this.sepNegVal = t.sepNegVal, this.overlapNoMerge = t.overlapNoMerge;
+ for (var r = 1 / 0, n = t.posAxis._id.charAt(0), i = [], a = 0; a < e.length; a++) {
+ for (var o = e[a], s = 0; s < o.length; s++) {
+ var l = o[s], u = l.p;
+ u === void 0 && (u = l[n]), u !== void 0 && i.push(u);
+ }
+ o[0] && o[0].width1 && (r = Math.min(o[0].width1, r));
+ }
+ this.positions = i;
+ var c = Ept(i);
+ this.distinctPositions = c.vals, c.vals.length === 1 && r !== 1 / 0 ? this.minDiff = r : this.minDiff = Math.min(c.minDiff, r);
+ var f = (t.posAxis || {}).type;
+ (f === "category" || f === "multicategory") && (this.minDiff = 1), this.binWidth = this.minDiff, this.bins = {};
+ }
+ iI.prototype.put = function(t, r, n) {
+ var i = this.getLabel(t, r, n), a = this.bins[i] || 0;
+ return this.bins[i] = a + n, a;
+ };
+ iI.prototype.get = function(t, r, n) {
+ var i = this.getLabel(t, r, n);
+ return this.bins[i] || 0;
+ };
+ iI.prototype.getLabel = function(t, r, n) {
+ var i = n < 0 && this.sepNegVal ? "v" : "^", a = this.overlapNoMerge ? t : Math.round(t / this.binWidth);
+ return i + a + "g" + r;
+ };
+ });
+ var A_ = ye((vsr, vve) => {
+ vve.exports = { TEXTPAD: 3, eventDataKeys: ["value", "label"] };
+ });
+ var t2 = ye((psr, yve) => {
+ var B0 = Eo(), { isArrayOrTypedArray: qy } = Dr(), { BADNUM: uT } = fs(), kpt = qa(), a4 = ho(), { getAxisGroup: Cpt } = Kb(), nI = dve(), { TEXTPAD: Lpt } = A_(), { LINE_SPACING: Ppt } = Dh(), { BR_TAG_ALL: Ipt } = Zl();
+ function Rpt(e, t) {
+ for (var r = t.xaxis, n = t.yaxis, i = e._fullLayout, a = e._fullData, o = e.calcdata, s = [], l = [], u = 0; u < a.length; u++) {
+ var c = a[u];
+ if (c.visible === true && kpt.traceIs(c, "bar") && c.xaxis === r._id && c.yaxis === n._id && (c.orientation === "h" ? s.push(o[u]) : l.push(o[u]), c._computePh)) for (var f = e.calcdata[u], h = 0; h < f.length; h++) typeof f[h].ph0 == "function" && (f[h].ph0 = f[h].ph0()), typeof f[h].ph1 == "function" && (f[h].ph1 = f[h].ph1());
+ }
+ var d = { xCat: r.type === "category" || r.type === "multicategory", yCat: n.type === "category" || n.type === "multicategory", mode: i.barmode, norm: i.barnorm, gap: i.bargap, groupgap: i.bargroupgap };
+ yU(e, r, n, l, d), yU(e, n, r, s, d);
+ }
+ function yU(e, t, r, n, i) {
+ if (n.length) {
+ var a, o, s, l, u;
+ switch (zpt(r, n), i.mode) {
+ case "overlay":
+ mU(e, t, r, n, i);
+ break;
+ case "group":
+ for (a = [], o = [], s = 0; s < n.length; s++) l = n[s], u = l[0].trace, u.offset === void 0 ? o.push(l) : a.push(l);
+ o.length && Opt(e, t, r, o, i), a.length && mU(e, t, r, a, i);
+ break;
+ case "stack":
+ case "relative":
+ for (a = [], o = [], s = 0; s < n.length; s++) l = n[s], u = l[0].trace, u.base === void 0 ? o.push(l) : a.push(l);
+ Fpt(o), o.length && qpt(e, t, r, o, i), a.length && mU(e, t, r, a, i);
+ break;
+ }
+ Dpt(n), Hpt(n, t);
+ }
+ }
+ function Dpt(e) {
+ var t, r, n, i, a, o, s;
+ for (t = 0; t < e.length; t++) r = e[t], n = r[0].trace, i = r[0].t, i.cornerradiusvalue === void 0 && (a = n.marker ? n.marker.cornerradius : void 0, a !== void 0 && (o = B0(a) ? +a : +a.slice(0, -1), s = B0(a) ? "px" : "%", i.cornerradiusvalue = o, i.cornerradiusform = s));
+ }
+ function Fpt(e) {
+ if (!(e.length < 2)) {
+ var t, r, n, i, a, o, s;
+ for (t = 0; t < e.length && (r = e[t], n = r[0].trace, a = n.marker ? n.marker.cornerradius : void 0, a === void 0); t++) ;
+ if (a !== void 0) for (o = B0(a) ? +a : +a.slice(0, -1), s = B0(a) ? "px" : "%", t = 0; t < e.length; t++) r = e[t], i = r[0].t, i.cornerradiusvalue = o, i.cornerradiusform = s;
+ }
+ }
+ function zpt(e, t) {
+ var r, n;
+ for (r = 0; r < t.length; r++) {
+ var i = t[r], a = i[0].trace, o = a.type === "funnel" ? a._base : a.base, s, l = a.orientation === "h" ? a.xcalendar : a.ycalendar, u = e.type === "category" || e.type === "multicategory" ? function() {
+ return null;
+ } : e.d2c;
+ if (qy(o)) {
+ for (n = 0; n < Math.min(o.length, i.length); n++) s = u(o[n], 0, l), B0(s) ? (i[n].b = +s, i[n].hasB = 1) : i[n].b = 0;
+ for (; n < i.length; n++) i[n].b = 0;
+ } else {
+ s = u(o, 0, l);
+ var c = B0(s);
+ for (s = c ? s : 0, n = 0; n < i.length; n++) i[n].b = s, c && (i[n].hasB = 1);
+ }
+ }
+ }
+ function mU(e, t, r, n, i) {
+ for (var a = 0; a < n.length; a++) {
+ var o = n[a], s = new nI([o], { posAxis: t, sepNegVal: false, overlapNoMerge: !i.norm });
+ _U(e, t, s, i), i.norm ? (mve(s), xU(r, s, i)) : gve(r, s);
+ }
+ }
+ function Opt(e, t, r, n, i) {
+ var a = new nI(n, { posAxis: t, sepNegVal: false, overlapNoMerge: !i.norm });
+ _U(e, t, a, i), Vpt(a, t), i.norm ? (mve(a), xU(r, a, i)) : gve(r, a);
+ }
+ function qpt(e, t, r, n, i) {
+ var a = new nI(n, { posAxis: t, sepNegVal: i.mode === "relative", overlapNoMerge: !(i.norm || i.mode === "stack" || i.mode === "relative") });
+ _U(e, t, a, i), Upt(r, a, i);
+ for (var o = 0; o < n.length; o++) for (var s = n[o], l = s[0].t.offsetindex, u = 0; u < s.length; u++) {
+ var c = s[u];
+ if (c.s !== uT) {
+ var f = c.b + c.s === a.get(c.p, l, c.s);
+ f && (c._outmost = true);
+ }
+ }
+ i.norm && xU(r, a, i);
+ }
+ function _U(e, t, r, n) {
+ var i = e._fullLayout, a = r.positions, o = r.distinctPositions, s = r.minDiff, l = r.traces, u = l.length, c = a.length !== o.length, f = s * (1 - n.gap), h, d, v, _;
+ if (t._id === "angularaxis") h = f, d = h * (1 - (n.groupgap || 0)), v = -d / 2;
+ else {
+ var b = Cpt(i, t._id) + l[0][0].trace.orientation;
+ _ = i._alignmentOpts[b] || {};
+ }
+ for (var p = 0; p < u; p++) {
+ var k = l[p], E = k[0].trace;
+ if (t._id !== "angularaxis") {
+ var T = _[E.alignmentgroup] || {}, L = Object.keys(T.offsetGroups || {}).length;
+ L ? h = f / L : h = c ? f / u : f, d = h * (1 - (n.groupgap || 0)), L ? v = ((2 * E._offsetIndex + 1 - L) * h - d) / 2 : v = c ? ((2 * p + 1 - u) * h - d) / 2 : -d / 2;
+ }
+ var x = k[0].t;
+ x.barwidth = d, x.offsetindex = E._offsetIndex || 0, x.poffset = v, x.bargroupwidth = f, x.bardelta = s;
+ }
+ r.binWidth = l[0][0].t.barwidth / 100, Bpt(r), Npt(t, r), t._id === "angularaxis" ? pve(t, r) : pve(t, r, c);
+ }
+ function Bpt(e) {
+ var t = e.traces, r, n;
+ for (r = 0; r < t.length; r++) {
+ var i = t[r], a = i[0], o = a.trace, s = a.t, l = o._offset || o.offset, u = s.poffset, c;
+ if (qy(l)) {
+ for (c = Array.prototype.slice.call(l, 0, i.length), n = 0; n < c.length; n++) B0(c[n]) || (c[n] = u);
+ for (n = c.length; n < i.length; n++) c.push(u);
+ s.poffset = c;
+ } else l !== void 0 && (s.poffset = l);
+ var f = o._width || o.width, h = s.barwidth;
+ if (qy(f)) {
+ var d = Array.prototype.slice.call(f, 0, i.length);
+ for (n = 0; n < d.length; n++) B0(d[n]) || (d[n] = h);
+ for (n = d.length; n < i.length; n++) d.push(h);
+ if (s.barwidth = d, l === void 0) {
+ for (c = [], n = 0; n < i.length; n++) c.push(u + (h - d[n]) / 2);
+ s.poffset = c;
+ }
+ } else f !== void 0 && (s.barwidth = f, l === void 0 && (s.poffset = u + (h - f) / 2));
+ }
+ }
+ function Npt(e, t) {
+ for (var r = t.traces, n = cT(e), i = 0; i < r.length; i++) for (var a = r[i], o = a[0].t, s = o.poffset, l = qy(s), u = o.barwidth, c = qy(u), f = 0; f < a.length; f++) {
+ var h = a[f], d = h.w = c ? u[f] : u;
+ h.p === void 0 && (h.p = h[n], h["orig_" + n] = h[n]);
+ var v = (l ? s[f] : s) + d / 2;
+ h[n] = h.p + v;
+ }
+ }
+ function pve(e, t, r) {
+ var n = t.traces, i = t.minDiff, a = i / 2;
+ a4.minDtick(e, t.minDiff, t.distinctPositions[0], r);
+ for (var o = 0; o < n.length; o++) {
+ var s = n[o], l = s[0], u = l.trace, c = [], f, h, d, v;
+ for (v = 0; v < s.length; v++) f = s[v], h = f.p - a, d = f.p + a, c.push(h, d);
+ if (u.width || u.offset) {
+ var _ = l.t, b = _.poffset, p = _.barwidth, k = qy(b), E = qy(p);
+ for (v = 0; v < s.length; v++) {
+ f = s[v];
+ var T = k ? b[v] : b, L = E ? p[v] : p;
+ h = f.p + T, d = h + L, c.push(h, d);
+ }
+ }
+ u._extremes[e._id] = a4.findExtremes(e, c, { padded: false });
+ }
+ }
+ function gve(e, t) {
+ for (var r = t.traces, n = cT(e), i = 0; i < r.length; i++) {
+ for (var a = r[i], o = a[0].trace, s = o.type === "scatter", l = o.orientation === "v", u = [], c = false, f = 0; f < a.length; f++) {
+ var h = a[f], d = s ? 0 : h.b, v = s ? l ? h.y : h.x : d + h.s;
+ h[n] = v, u.push(v), h.hasB && u.push(d), (!h.hasB || !h.b) && (c = true);
+ }
+ let { ppadminus: _, ppadplus: b } = bU(o, a);
+ o._extremes[e._id] = a4.findExtremes(e, u, { tozero: c, padded: true, ppadplus: b, ppadminus: _ });
+ }
+ }
+ function Upt(e, t, r) {
+ var n = cT(e), i = t.traces, a, o, s, l, u, c, f;
+ for (l = 0; l < i.length; l++) if (a = i[l], o = a[0].trace, o.type === "funnel") for (f = a[0].t.offsetindex, u = 0; u < a.length; u++) c = a[u], c.s !== uT && t.put(c.p, f, -0.5 * c.s);
+ for (l = 0; l < i.length; l++) {
+ a = i[l], o = a[0].trace, s = o.type === "funnel", f = o.type === "barpolar" ? 0 : a[0].t.offsetindex;
+ var h = [];
+ for (u = 0; u < a.length; u++) if (c = a[u], c.s !== uT) {
+ var d;
+ s ? d = c.s : d = c.s + c.b;
+ var v = t.put(c.p, f, d), _ = v + d;
+ c.b = v, c[n] = _, r.norm || (h.push(_), c.hasB && h.push(v));
+ }
+ if (!r.norm) {
+ let { ppadminus: b, ppadplus: p } = bU(o, a);
+ o._extremes[e._id] = a4.findExtremes(e, h, { tozero: true, padded: true, ppadplus: p, ppadminus: b });
+ }
+ }
+ }
+ function mve(e) {
+ for (var t = e.traces, r = 0; r < t.length; r++) for (var n = t[r], i = n[0].t.offsetindex, a = 0; a < n.length; a++) {
+ var o = n[a];
+ o.s !== uT && e.put(o.p, i, o.b + o.s);
+ }
+ }
+ function Vpt(e, t) {
+ for (var r = e.traces, n = 0; n < r.length; n++) {
+ var i = r[n], a = i[0].trace, o = i[0].t.offsetindex;
+ if (a.base === void 0) for (var s = new nI([i], { posAxis: t, sepNegVal: true, overlapNoMerge: true }), l = 0; l < i.length; l++) {
+ var u = i[l];
+ if (u.p !== uT) {
+ var c = s.put(u.p, o, u.b + u.s);
+ c && (u.b = c);
+ }
+ }
+ }
+ }
+ function xU(e, t, r) {
+ var n = t.traces, i = cT(e), a = r.norm === "fraction" ? 1 : 100, o = a / 1e9, s = e.l2c(e.c2l(0)), l = r.mode === "stack" ? a : s;
+ function u(x) {
+ return B0(e.c2l(x)) && (x < s - o || x > l + o || !B0(s));
+ }
+ for (var c = 0; c < n.length; c++) {
+ for (var f = n[c], h = f[0].t.offsetindex, d = f[0].trace, v = [], _ = false, b = false, p = 0; p < f.length; p++) {
+ var k = f[p];
+ if (k.s !== uT) {
+ var E = Math.abs(a / t.get(k.p, h, k.s));
+ k.b *= E, k.s *= E;
+ var T = k.b, L = T + k.s;
+ k[i] = L, v.push(L), b = b || u(L), k.hasB && (v.push(T), b = b || u(T)), (!k.hasB || !k.b) && (_ = true);
+ }
+ }
+ let { ppadminus: x, ppadplus: C } = bU(d, f);
+ d._extremes[e._id] = a4.findExtremes(e, v, { tozero: _, padded: b, ppadplus: C, ppadminus: x });
+ }
+ }
+ function bU(e, t) {
+ if (e.orientation === "v" && (e.text || e.texttemplate) && e.textposition === "outside" && (e.textangle === "auto" || e.textangle === 0)) {
+ let n = function(a) {
+ return !a || typeof a != "string" ? 0 : (a.match(Ipt) || []).length + 1;
+ };
+ var r;
+ e.texttemplate ? r = n(e.texttemplate) : r = qy(e.text) ? Math.max(...e.text.map((a) => n(a))) : n(e.text);
+ let i = e.outsidetextfont.size * Ppt * r + Lpt;
+ return { ppadplus: t.some((a) => a.s < 0) ? i : 0, ppadminus: t.some((a) => a.s >= 0) ? i : 0 };
+ }
+ return { ppadplus: void 0, ppadminus: void 0 };
+ }
+ function Gpt(e, t, r, n) {
+ for (var i = cT(n), a = 0; a < e.length; a++) for (var o = e[a], s = 0; s < o.length; s++) {
+ var l = o[s], u = l[i];
+ l._sMin = t[u], l._sMax = r[u];
+ }
+ }
+ function Hpt(e, t) {
+ var r = cT(t), n = {}, i, a, o, s = 1 / 0, l = -1 / 0;
+ for (i = 0; i < e.length; i++) for (o = e[i], a = 0; a < o.length; a++) {
+ var u = o[a].p;
+ B0(u) && (s = Math.min(s, u), l = Math.max(l, u));
+ }
+ var c = 1e4 / (l - s), f = n.round = function(M) {
+ return String(Math.round(c * (M - s)));
+ }, h = {}, d = {}, v = e.some(function(M) {
+ var g = M[0].trace;
+ return "marker" in g && g.marker.cornerradius;
+ });
+ for (i = 0; i < e.length; i++) {
+ o = e[i], o[0].t.extents = n;
+ var _ = o[0].t.poffset, b = qy(_);
+ for (a = 0; a < o.length; a++) {
+ var p = o[a], k = p[r] - p.w / 2;
+ if (B0(k)) {
+ var E = p[r] + p.w / 2, T = f(p.p);
+ n[T] ? n[T] = [Math.min(k, n[T][0]), Math.max(E, n[T][1])] : n[T] = [k, E];
+ }
+ if (p.p0 = p.p + (b ? _[a] : _), p.p1 = p.p0 + p.w, p.s0 = p.b, p.s1 = p.s0 + p.s, v) {
+ var L = Math.min(p.s0, p.s1) || 0, x = Math.max(p.s0, p.s1) || 0, C = p[r];
+ h[C] = C in h ? Math.min(h[C], L) : L, d[C] = C in d ? Math.max(d[C], x) : x;
+ }
+ }
+ }
+ v && Gpt(e, h, d, t);
+ }
+ function cT(e) {
+ return e._id.charAt(0);
+ }
+ yve.exports = { crossTraceCalc: Rpt, setGroupPositions: yU };
+ });
+ var wve = ye((gsr, bve) => {
+ var _ve = q0(), xve = t2().setGroupPositions;
+ function jpt(e, t) {
+ for (var r = t.xaxis, n = t.yaxis, i = e._fullLayout, a = e._fullData, o = e.calcdata, s = [], l = [], u = 0; u < a.length; u++) {
+ var c = a[u];
+ c.visible === true && c.type === "scatter" && c.xaxis === r._id && c.yaxis === n._id && (c.orientation === "h" ? s.push(o[u]) : c.orientation === "v" && l.push(o[u]));
+ }
+ var f = { mode: i.scattermode, gap: i.scattergap };
+ xve(e, r, n, l, f), xve(e, n, r, s, f);
+ }
+ bve.exports = function(t, r) {
+ t._fullLayout.scattermode === "group" && jpt(t, r);
+ var n = r.xaxis, i = r.yaxis, a = n._id + i._id, o = t._fullLayout._scatterStackOpts[a];
+ if (o) {
+ var s = t.calcdata, l, u, c, f, h, d, v, _, b, p, k, E, T, L, x;
+ for (var C in o) {
+ p = o[C];
+ var M = p.traceIndices;
+ if (M.length) {
+ for (k = p.stackgaps === "interpolate", E = p.groupnorm, p.orientation === "v" ? (T = "x", L = "y") : (T = "y", L = "x"), x = new Array(M.length), l = 0; l < x.length; l++) x[l] = false;
+ d = s[M[0]];
+ var g = new Array(d.length);
+ for (l = 0; l < d.length; l++) g[l] = d[l][T];
+ for (l = 1; l < M.length; l++) {
+ for (h = s[M[l]], u = c = 0; u < h.length; u++) {
+ for (v = h[u][T]; v > g[c] && c < g.length; c++) wU(h, u, g[c], l, x, k, T), u++;
+ if (v !== g[c]) {
+ for (f = 0; f < l; f++) wU(s[M[f]], c, v, f, x, k, T);
+ g.splice(c, 0, v);
+ }
+ c++;
+ }
+ for (; c < g.length; c++) wU(h, u, g[c], l, x, k, T), u++;
+ }
+ var P = g.length;
+ for (u = 0; u < d.length; u++) {
+ for (_ = d[u][L] = d[u].s, l = 1; l < M.length; l++) h = s[M[l]], h[0].trace._rawLength = h[0].trace._length, h[0].trace._length = P, _ += h[u].s, h[u][L] = _;
+ if (E) for (b = (E === "fraction" ? _ : _ / 100) || 1, l = 0; l < M.length; l++) {
+ var A = s[M[l]][u];
+ A[L] /= b, A.sNorm = A.s / b;
+ }
+ }
+ for (l = 0; l < M.length; l++) {
+ h = s[M[l]];
+ var z = h[0].trace, O = _ve.calcMarkerSize(z, z._rawLength), U = Array.isArray(O);
+ if (O && x[l] || U) {
+ var G = O;
+ for (O = new Array(P), u = 0; u < P; u++) O[u] = h[u].gap ? 0 : U ? G[h[u].i] : G;
+ }
+ var Z = new Array(P), j = new Array(P);
+ for (u = 0; u < P; u++) Z[u] = h[u].x, j[u] = h[u].y;
+ _ve.calcAxisExpansion(t, z, n, i, Z, j, O), h[0].t.orientation = p.orientation;
+ }
+ }
+ }
+ }
+ };
+ function wU(e, t, r, n, i, a, o) {
+ i[n] = true;
+ var s = { i: null, gap: true, s: 0 };
+ if (s[o] = r, e.splice(t, 0, s), t && r === e[t - 1][o]) {
+ var l = e[t - 1];
+ s.s = l.s, s.i = l.i, s.gap = l.gap;
+ } else a && (s.s = Wpt(e, t, r, o));
+ t || (e[0].t = e[1].t, e[0].trace = e[1].trace, delete e[1].t, delete e[1].trace);
+ }
+ function Wpt(e, t, r, n) {
+ var i = e[t - 1], a = e[t + 1];
+ return a ? i ? i.s + (a.s - i.s) * (r - i[n]) / (a[n] - i[n]) : a.s : i.s;
+ }
+ });
+ var AU = ye((msr, kve) => {
+ var Xpt = So(), Mve = fs(), o4 = Mve.BADNUM, Eve = Mve.LOG_CLIP, Tve = Eve + 0.5, Ave = Eve - 0.5, aI = Dr(), Zpt = aI.segmentsIntersect, Sve = aI.constrain, TU = Lm();
+ kve.exports = function(t, r) {
+ var n = r.trace || {}, i = r.xaxis, a = r.yaxis, o = i.type === "log", s = a.type === "log", l = i._length, u = a._length, c = r.backoff, f = n.marker, h = r.connectGaps, d = r.baseTolerance, v = r.shape, _ = v === "linear", b = n.fill && n.fill !== "none", p = [], k = TU.minTolerance, E = t.length, T = new Array(E), L = 0, x, C, M, g, P, A, z, O, U, G, Z, j, N, H, re, oe;
+ function _e(dt) {
+ var Ge = t[dt];
+ if (!Ge) return false;
+ var Je = r.linearized ? i.l2p(Ge.x) : i.c2p(Ge.x), We = r.linearized ? a.l2p(Ge.y) : a.c2p(Ge.y);
+ if (Je === o4) {
+ if (o && (Je = i.c2p(Ge.x, true)), Je === o4) return false;
+ s && We === o4 && (Je *= Math.abs(i._m * u * (i._m > 0 ? Tve : Ave) / (a._m * l * (a._m > 0 ? Tve : Ave)))), Je *= 1e3;
+ }
+ if (We === o4) {
+ if (s && (We = a.c2p(Ge.y, true)), We === o4) return false;
+ We *= 1e3;
+ }
+ return [Je, We];
+ }
+ function Ce(dt, Ge, Je, We) {
+ var tt = Je - dt, xt = We - Ge, Ie = 0.5 - dt, xe = 0.5 - Ge, ke = tt * tt + xt * xt, vt = tt * Ie + xt * xe;
+ if (vt > 0 && vt < ke) {
+ var ir = Ie * xt - xe * tt;
+ if (ir * ir < ke) return true;
+ }
+ }
+ var Le, ge;
+ function ie(dt, Ge) {
+ var Je = dt[0] / l, We = dt[1] / u, tt = Math.max(0, -Je, Je - 1, -We, We - 1);
+ return tt && Le !== void 0 && Ce(Je, We, Le, ge) && (tt = 0), tt && Ge && Ce(Je, We, Ge[0] / l, Ge[1] / u) && (tt = 0), (1 + TU.toleranceGrowth * tt) * d;
+ }
+ function Se(dt, Ge) {
+ var Je = dt[0] - Ge[0], We = dt[1] - Ge[1];
+ return Math.sqrt(Je * Je + We * We);
+ }
+ var Ee = TU.maxScreensAway, Ae = -l * Ee, Be = l * (1 + Ee), Pe = -u * Ee, me = u * (1 + Ee), De = [[Ae, Pe, Be, Pe], [Be, Pe, Be, me], [Be, me, Ae, me], [Ae, me, Ae, Pe]], ce, je, lt, pt, Vt, ot;
+ function ut(dt, Ge) {
+ for (var Je = [], We = 0, tt = 0; tt < 4; tt++) {
+ var xt = De[tt], Ie = Zpt(dt[0], dt[1], Ge[0], Ge[1], xt[0], xt[1], xt[2], xt[3]);
+ Ie && (!We || Math.abs(Ie.x - Je[0][0]) > 1 || Math.abs(Ie.y - Je[0][1]) > 1) && (Ie = [Ie.x, Ie.y], We && Se(Ie, dt) < Se(Je[0], dt) ? Je.unshift(Ie) : Je.push(Ie), We++);
+ }
+ return Je;
+ }
+ function Wt(dt) {
+ if (dt[0] < Ae || dt[0] > Be || dt[1] < Pe || dt[1] > me) return [Sve(dt[0], Ae, Be), Sve(dt[1], Pe, me)];
+ }
+ function Nt(dt, Ge) {
+ if (dt[0] === Ge[0] && (dt[0] === Ae || dt[0] === Be) || dt[1] === Ge[1] && (dt[1] === Pe || dt[1] === me)) return true;
+ }
+ function $t(dt, Ge) {
+ var Je = [], We = Wt(dt), tt = Wt(Ge);
+ return We && tt && Nt(We, tt) || (We && Je.push(We), tt && Je.push(tt)), Je;
+ }
+ function sr(dt, Ge, Je) {
+ return function(We, tt) {
+ var xt = Wt(We), Ie = Wt(tt), xe = [];
+ if (xt && Ie && Nt(xt, Ie)) return xe;
+ xt && xe.push(xt), Ie && xe.push(Ie);
+ var ke = 2 * aI.constrain((We[dt] + tt[dt]) / 2, Ge, Je) - ((xt || We)[dt] + (Ie || tt)[dt]);
+ if (ke) {
+ var vt;
+ xt && Ie ? vt = ke > 0 == xt[dt] > Ie[dt] ? xt : Ie : vt = xt || Ie, vt[dt] += ke;
+ }
+ return xe;
+ };
+ }
+ var Tr;
+ v === "linear" || v === "spline" ? Tr = ut : v === "hv" || v === "vh" ? Tr = $t : v === "hvh" ? Tr = sr(0, Ae, Be) : v === "vhv" && (Tr = sr(1, Pe, me));
+ function fr(dt, Ge) {
+ var Je = Ge[0] - dt[0], We = (Ge[1] - dt[1]) / Je, tt = (dt[1] * Ge[0] - Ge[1] * dt[0]) / Je;
+ return tt > 0 ? [We > 0 ? Ae : Be, me] : [We > 0 ? Be : Ae, Pe];
+ }
+ function $e(dt) {
+ var Ge = dt[0], Je = dt[1], We = Ge === T[L - 1][0], tt = Je === T[L - 1][1];
+ if (!(We && tt)) if (L > 1) {
+ var xt = Ge === T[L - 2][0], Ie = Je === T[L - 2][1];
+ We && (Ge === Ae || Ge === Be) && xt ? Ie ? L-- : T[L - 1] = dt : tt && (Je === Pe || Je === me) && Ie ? xt ? L-- : T[L - 1] = dt : T[L++] = dt;
+ } else T[L++] = dt;
+ }
+ function St(dt) {
+ T[L - 1][0] !== dt[0] && T[L - 1][1] !== dt[1] && $e([lt, pt]), $e(dt), Vt = null, lt = pt = 0;
+ }
+ var Qt = aI.isArrayOrTypedArray(f);
+ function Gt(dt) {
+ if (dt && c && (dt.i = x, dt.d = t, dt.trace = n, dt.marker = Qt ? f[dt.i] : f, dt.backoff = c), Le = dt[0] / l, ge = dt[1] / u, ce = dt[0] < Ae ? Ae : dt[0] > Be ? Be : 0, je = dt[1] < Pe ? Pe : dt[1] > me ? me : 0, ce || je) {
+ if (!L) T[L++] = [ce || dt[0], je || dt[1]];
+ else if (Vt) {
+ var Ge = Tr(Vt, dt);
+ Ge.length > 1 && (St(Ge[0]), T[L++] = Ge[1]);
+ } else ot = Tr(T[L - 1], dt)[0], T[L++] = ot;
+ var Je = T[L - 1];
+ ce && je && (Je[0] !== ce || Je[1] !== je) ? (Vt && (lt !== ce && pt !== je ? $e(lt && pt ? fr(Vt, dt) : [lt || ce, pt || je]) : lt && pt && $e([lt, pt])), $e([ce, je])) : lt - ce && pt - je && $e([ce || lt, je || pt]), Vt = dt, lt = ce, pt = je;
+ } else Vt && St(Tr(Vt, dt)[0]), T[L++] = dt;
+ }
+ for (x = 0; x < E; x++) if (C = _e(x), !!C) {
+ for (L = 0, Vt = null, Gt(C), x++; x < E; x++) {
+ if (g = _e(x), !g) {
+ if (h) continue;
+ break;
+ }
+ if (!_ || !r.simplify) {
+ Gt(g);
+ continue;
+ }
+ var _t = _e(x + 1);
+ if (G = Se(g, C), !(!(b && (L === 0 || L === E - 1)) && G < ie(g, _t) * k)) {
+ for (O = [(g[0] - C[0]) / G, (g[1] - C[1]) / G], P = C, Z = G, j = H = re = 0, z = false, M = g, x++; x < t.length; x++) {
+ if (A = _t, _t = _e(x + 1), !A) {
+ if (h) continue;
+ break;
+ }
+ if (U = [A[0] - C[0], A[1] - C[1]], oe = U[0] * O[1] - U[1] * O[0], H = Math.min(H, oe), re = Math.max(re, oe), re - H > ie(A, _t)) break;
+ M = A, N = U[0] * O[0] + U[1] * O[1], N > Z ? (Z = N, g = A, z = false) : N < j && (j = N, P = A, z = true);
+ }
+ if (z ? (Gt(g), M !== P && Gt(P)) : (P !== C && Gt(P), M !== g && Gt(g)), Gt(M), x >= t.length || !A) break;
+ Gt(A), C = A;
+ }
+ }
+ Vt && $e([lt || Vt[0], pt || Vt[1]]), p.push(T.slice(0, L));
+ }
+ var It = v.slice(v.length - 1);
+ if (c && It !== "h" && It !== "v") {
+ for (var mt = false, er = -1, lr = [], wr = 0; wr < p.length; wr++) for (var Lr = 0; Lr < p[wr].length - 1; Lr++) {
+ var ti = p[wr][Lr], Br = p[wr][Lr + 1], Vr = Xpt.applyBackoff(Br, ti);
+ (Vr[0] !== Br[0] || Vr[1] !== Br[1]) && (mt = true), lr[er + 1] || (er++, lr[er] = [ti, [Vr[0], Vr[1]]]);
+ }
+ return mt ? lr : p;
+ }
+ return p;
+ };
+ });
+ var SU = ye((ysr, Lve) => {
+ var Cve = { tonextx: 1, tonexty: 1, tonext: 1 };
+ Lve.exports = function(t, r, n) {
+ var i, a, o, s, l, u = {}, c = false, f = -1, h = 0, d = -1;
+ for (a = 0; a < n.length; a++) i = n[a][0].trace, o = i.stackgroup || "", o ? o in u ? l = u[o] : (l = u[o] = h, h++) : i.fill in Cve && d >= 0 ? l = d : (l = d = h, h++), l < f && (c = true), i._groupIndex = f = l;
+ var v = n.slice();
+ c && v.sort(function(b, p) {
+ var k = b[0].trace, E = p[0].trace;
+ return k._groupIndex - E._groupIndex || k.index - E.index;
+ });
+ var _ = {};
+ for (a = 0; a < v.length; a++) i = v[a][0].trace, o = i.stackgroup || "", i.visible === true ? (i._nexttrace = null, i.fill in Cve && (s = _[o], i._prevtrace = s || null, s && (s._nexttrace = i)), i._ownfill = i.fill && (i.fill.slice(0, 6) === "tozero" || i.fill === "toself" || i.fill.slice(0, 2) === "to" && !i._prevtrace), _[o] = i) : i._prevtrace = i._nexttrace = i._ownfill = null;
+ return v;
+ };
+ });
+ var dT = ye((_sr, Rve) => {
+ var Og = Oa(), Ypt = qa(), s4 = Dr(), fT = s4.ensureSingle, Ive = s4.identity, Kf = So(), hT = Ru(), Kpt = AU(), Jpt = SU(), oI = FM().tester;
+ Rve.exports = function(t, r, n, i, a, o) {
+ var s, l, u = !a, c = !!a && a.duration > 0, f = Jpt(t, r, n);
+ if (s = i.selectAll("g.trace").data(f, function(d) {
+ return d[0].trace.uid;
+ }), s.enter().append("g").attr("class", function(d) {
+ return "trace scatter trace" + d[0].trace.uid;
+ }).style("stroke-miterlimit", 2), s.order(), $pt(t, s, r), c) {
+ o && (l = o());
+ var h = Og.transition().duration(a.duration).ease(a.easing).each("end", function() {
+ l && l();
+ }).each("interrupt", function() {
+ l && l();
+ });
+ h.each(function() {
+ i.selectAll("g.trace").each(function(d, v) {
+ Pve(t, v, r, d, f, this, a);
+ });
+ });
+ } else s.each(function(d, v) {
+ Pve(t, v, r, d, f, this, a);
+ });
+ u && s.exit().remove(), i.selectAll("path:not([d])").remove();
+ };
+ function $pt(e, t, r) {
+ t.each(function(n) {
+ var i = fT(Og.select(this), "g", "fills");
+ Kf.setClipUrl(i, r.layerClipId, e);
+ var a = n[0].trace;
+ a._ownFill = null, a._nextFill = null;
+ var o = [];
+ a._ownfill && o.push("_ownFill"), a._nexttrace && o.push("_nextFill");
+ var s = i.selectAll("g").data(o, Ive);
+ s.enter().append("g"), s.exit().remove(), s.order().each(function(l) {
+ a[l] = fT(Og.select(this), "path", "js-fill");
+ });
+ });
+ }
+ function Pve(e, t, r, n, i, a, o) {
+ var s = e._context.staticPlot, l;
+ Qpt(e, t, r, n, i);
+ var u = !!o && o.duration > 0;
+ function c(sr) {
+ return u ? sr.transition() : sr;
+ }
+ var f = r.xaxis, h = r.yaxis, d = n[0].trace, v = d.line, _ = Og.select(a), b = fT(_, "g", "errorbars"), p = fT(_, "g", "lines"), k = fT(_, "g", "points"), E = fT(_, "g", "text");
+ if (Ypt.getComponentMethod("errorbars", "plot")(e, b, r, o), d.visible !== true) return;
+ c(_).style("opacity", d.opacity);
+ var T, L, x = d.fill.charAt(d.fill.length - 1);
+ x !== "x" && x !== "y" && (x = "");
+ var C, M;
+ x === "y" ? (C = 1, M = h.c2p(0, true)) : x === "x" && (C = 0, M = f.c2p(0, true)), n[0][r.isRangePlot ? "nodeRangePlot3" : "node3"] = _;
+ var g = "", P = [], A = d._prevtrace, z = null, O = null;
+ A && (g = A._prevRevpath || "", L = A._nextFill, P = A._ownPolygons, z = A._fillsegments, O = A._fillElement);
+ var U, G, Z = "", j = "", N, H, re, oe, _e, Ce, Le = [];
+ d._polygons = [];
+ var ge = [], ie = [], Se = s4.noop;
+ if (T = d._ownFill, hT.hasLines(d) || d.fill !== "none") {
+ L && L.datum(n), ["hv", "vh", "hvh", "vhv"].indexOf(v.shape) !== -1 ? (N = Kf.steps(v.shape), H = Kf.steps(v.shape.split("").reverse().join(""))) : v.shape === "spline" ? N = H = function(sr) {
+ var Tr = sr[sr.length - 1];
+ return sr.length > 1 && sr[0][0] === Tr[0] && sr[0][1] === Tr[1] ? Kf.smoothclosed(sr.slice(1), v.smoothing) : Kf.smoothopen(sr, v.smoothing);
+ } : N = H = function(sr) {
+ return "M" + sr.join("L");
+ }, re = function(sr) {
+ return H(sr.reverse());
+ }, ie = Kpt(n, { xaxis: f, yaxis: h, trace: d, connectGaps: d.connectgaps, baseTolerance: Math.max(v.width || 1, 3) / 4, shape: v.shape, backoff: v.backoff, simplify: v.simplify, fill: d.fill }), ge = new Array(ie.length);
+ var Ee = 0;
+ for (l = 0; l < ie.length; l++) {
+ var Ae, Be = ie[l];
+ !Ae || !x ? (Ae = Be.slice(), ge[Ee] = Ae, Ee++) : Ae.push.apply(Ae, Be);
+ }
+ d._fillElement = null, d._fillExclusionElement = O, d._fillsegments = ge.slice(0, Ee), ge = d._fillsegments, ie.length && (oe = ie[0][0].slice(), _e = ie[ie.length - 1], Ce = _e[_e.length - 1].slice()), Se = function(sr) {
+ return function(Tr) {
+ if (U = N(Tr), G = re(Tr), Z ? x ? (Z += "L" + U.slice(1), j = G + ("L" + j.slice(1))) : (Z += "Z" + U, j = G + "Z" + j) : (Z = U, j = G), hT.hasLines(d)) {
+ var fr = Og.select(this);
+ if (fr.datum(n), sr) c(fr.style("opacity", 0).attr("d", U).call(Kf.lineGroupStyle)).style("opacity", 1);
+ else {
+ var $e = c(fr);
+ $e.attr("d", U), Kf.singleLineStyle(n, $e);
+ }
+ }
+ };
+ };
+ }
+ var Pe = p.selectAll(".js-line").data(ie);
+ c(Pe.exit()).style("opacity", 0).remove(), Pe.each(Se(false)), Pe.enter().append("path").classed("js-line", true).style("vector-effect", s ? "none" : "non-scaling-stroke").call(Kf.lineGroupStyle).each(Se(true)), Kf.setClipUrl(Pe, r.layerClipId, e);
+ function me(sr) {
+ c(sr).attr("d", "M0,0Z");
+ }
+ var De = function() {
+ var sr = new Array(ge.length);
+ for (l = 0; l < ge.length; l++) sr[l] = oI(ge[l]);
+ return sr;
+ }, ce = function(sr) {
+ var Tr, fr;
+ if (!sr || sr.length === 0) for (Tr = new Array(ge.length), fr = 0; fr < ge.length; fr++) {
+ var $e = ge[fr][0].slice(), St = ge[fr][ge[fr].length - 1].slice();
+ $e[C] = St[C] = M;
+ var Qt = [St, $e], Gt = Qt.concat(ge[fr]);
+ Tr[fr] = oI(Gt);
+ }
+ else {
+ for (Tr = new Array(sr.length - 1 + ge.length), fr = 0; fr < sr.length - 1; fr++) Tr[fr] = oI(sr[fr]);
+ var _t = sr[sr.length - 1].slice();
+ for (_t.reverse(), fr = 0; fr < ge.length; fr++) Tr[sr.length - 1 + fr] = oI(ge[fr].concat(_t));
+ }
+ return Tr;
+ };
+ ie.length ? (T ? (T.datum(n), oe && Ce && (x ? (oe[C] = Ce[C] = M, c(T).attr("d", "M" + Ce + "L" + oe + "L" + Z.slice(1)).call(Kf.singleFillStyle, e), Le = ce(null)) : (c(T).attr("d", Z + "Z").call(Kf.singleFillStyle, e), Le = De())), d._polygons = Le, d._fillElement = T) : L && (d.fill.slice(0, 6) === "tonext" && Z && g ? (d.fill === "tonext" ? (c(L).attr("d", Z + "Z" + g + "Z").call(Kf.singleFillStyle, e), Le = De(), d._polygons = Le.concat(P)) : (c(L).attr("d", Z + "L" + g.slice(1) + "Z").call(Kf.singleFillStyle, e), Le = ce(z), d._polygons = Le), d._fillElement = L) : me(L)), d._prevRevpath = j) : (T ? me(T) : L && me(L), d._prevRevpath = null), d._ownPolygons = Le;
+ function je(sr) {
+ return sr.filter(function(Tr) {
+ return !Tr.gap && Tr.vis;
+ });
+ }
+ function lt(sr) {
+ return sr.filter(function(Tr) {
+ return Tr.vis;
+ });
+ }
+ function pt(sr) {
+ return sr.filter(function(Tr) {
+ return !Tr.gap;
+ });
+ }
+ function Vt(sr) {
+ return sr.id;
+ }
+ function ot(sr) {
+ if (sr.ids) return Vt;
+ }
+ function ut() {
+ return false;
+ }
+ function Wt(sr, Tr, fr) {
+ var $e, St, Qt, Gt = fr[0].trace, _t = hT.hasMarkers(Gt), It = hT.hasText(Gt), mt = ot(Gt), er = ut, lr = ut;
+ if (_t || It) {
+ var wr = Ive, Lr = Gt.stackgroup, ti = Lr && e._fullLayout._scatterStackOpts[f._id + h._id][Lr].stackgaps === "infer zero";
+ Gt.marker.maxdisplayed || Gt._needsCull ? wr = ti ? lt : je : Lr && !ti && (wr = pt), _t && (er = wr), It && (lr = wr);
+ }
+ St = sr.selectAll("path.point"), $e = St.data(er, mt);
+ var Br = $e.enter().append("path").classed("point", true);
+ u && Br.call(Kf.pointStyle, Gt, e).call(Kf.translatePoints, f, h).style("opacity", 0).transition().style("opacity", 1), $e.order();
+ var Vr;
+ _t && (Vr = Kf.makePointStyleFns(Gt)), $e.each(function(dt) {
+ var Ge = Og.select(this), Je = c(Ge);
+ Qt = Kf.translatePoint(dt, Je, f, h), Qt ? (Kf.singlePointStyle(dt, Je, Gt, Vr, e), r.layerClipId && Kf.hideOutsideRangePoint(dt, Je, f, h, Gt.xcalendar, Gt.ycalendar), Gt.customdata && Ge.classed("plotly-customdata", dt.data !== null && dt.data !== void 0)) : Je.remove();
+ }), u ? $e.exit().transition().style("opacity", 0).remove() : $e.exit().remove(), St = Tr.selectAll("g"), $e = St.data(lr, mt), $e.enter().append("g").classed("textpoint", true).append("text"), $e.order(), $e.each(function(dt) {
+ var Ge = Og.select(this), Je = c(Ge.select("text"));
+ Qt = Kf.translatePoint(dt, Je, f, h), Qt ? r.layerClipId && Kf.hideOutsideRangePoint(dt, Ge, f, h, Gt.xcalendar, Gt.ycalendar) : Ge.remove();
+ }), $e.selectAll("text").call(Kf.textPointStyle, Gt, e).each(function(dt) {
+ var Ge = f.c2p(dt.x), Je = h.c2p(dt.y);
+ Og.select(this).selectAll("tspan.line").each(function() {
+ c(Og.select(this)).attr({ x: Ge, y: Je });
+ });
+ }), $e.exit().remove();
+ }
+ k.datum(n), E.datum(n), Wt(k, E, n);
+ var Nt = d.cliponaxis === false, $t = Nt ? null : r.layerClipId;
+ Kf.setClipUrl(k, $t, e), Kf.setClipUrl(E, $t, e);
+ }
+ function Qpt(e, t, r, n, i) {
+ var a = r.xaxis, o = r.yaxis, s = Og.extent(s4.simpleMap(a.range, a.r2c)), l = Og.extent(s4.simpleMap(o.range, o.r2c)), u = n[0].trace;
+ if (hT.hasMarkers(u)) {
+ var c = u.marker.maxdisplayed;
+ if (c !== 0) {
+ var f = n.filter(function(_) {
+ return _.x >= s[0] && _.x <= s[1] && _.y >= l[0] && _.y <= l[1];
+ }), h = Math.ceil(f.length / c), d = 0;
+ i.forEach(function(_, b) {
+ var p = _[0].trace;
+ hT.hasMarkers(p) && p.marker.maxdisplayed > 0 && b < t && d++;
+ });
+ var v = Math.round(d * h / 3 + Math.floor(d / 3) * h / 7.1);
+ n.forEach(function(_) {
+ delete _.vis;
+ }), f.forEach(function(_, b) {
+ Math.round((b + v) % h) === 0 && (_.vis = true);
+ });
+ }
+ }
+ }
+ });
+ var $d = ye((xsr, Dve) => {
+ Dve.exports = { container: "marker", min: "cmin", max: "cmax" };
+ });
+ var lI = ye((bsr, Fve) => {
+ var sI = ho();
+ Fve.exports = function(t, r, n) {
+ var i = {}, a = { _fullLayout: n }, o = sI.getFromTrace(a, r, "x"), s = sI.getFromTrace(a, r, "y"), l = t.orig_x;
+ l === void 0 && (l = t.x);
+ var u = t.orig_y;
+ return u === void 0 && (u = t.y), i.xLabel = sI.tickText(o, o.c2l(l), true).text, i.yLabel = sI.tickText(s, s.c2l(u), true).text, i;
+ };
+ });
+ var sp = ye((wsr, zve) => {
+ var MU = Oa(), vT = So(), e0t = qa();
+ function t0t(e) {
+ var t = MU.select(e).selectAll("g.trace.scatter");
+ t.style("opacity", function(r) {
+ return r[0].trace.opacity;
+ }), t.selectAll("g.points").each(function(r) {
+ var n = MU.select(this), i = r.trace || r[0].trace;
+ EU(n, i, e);
+ }), t.selectAll("g.text").each(function(r) {
+ var n = MU.select(this), i = r.trace || r[0].trace;
+ kU(n, i, e);
+ }), t.selectAll("g.trace path.js-line").call(vT.lineGroupStyle), t.selectAll("g.trace path.js-fill").call(vT.fillGroupStyle, e, false), e0t.getComponentMethod("errorbars", "style")(t);
+ }
+ function EU(e, t, r) {
+ vT.pointStyle(e.selectAll("path.point"), t, r);
+ }
+ function kU(e, t, r) {
+ vT.textPointStyle(e.selectAll("text"), t, r);
+ }
+ function r0t(e, t, r) {
+ var n = t[0].trace;
+ n.selectedpoints ? (vT.selectedPointStyle(r.selectAll("path.point"), n), vT.selectedTextStyle(r.selectAll("text"), n)) : (EU(r, n, e), kU(r, n, e));
+ }
+ zve.exports = { style: t0t, stylePoints: EU, styleText: kU, styleOnSelect: r0t };
+ });
+ var gT = ye((Tsr, Ove) => {
+ var pT = ka(), i0t = Ru();
+ Ove.exports = function(t, r) {
+ var n, i;
+ if (t.mode === "lines") return n = t.line.color, n && pT.opacity(n) ? n : t.fillcolor;
+ if (t.mode === "none") return t.fill ? t.fillcolor : "";
+ var a = r.mcc || (t.marker || {}).color, o = r.mlcc || ((t.marker || {}).line || {}).color;
+ return i = a && pT.opacity(a) ? a : o && pT.opacity(o) && (r.mlw || ((t.marker || {}).line || {}).width) ? o : "", i ? pT.opacity(i) < 0.3 ? pT.addOpacity(i, 0.3) : i : (n = (t.line || {}).color, n && pT.opacity(n) && i0t.hasLines(t) && t.line.width ? n : t.fillcolor);
+ };
+ });
+ var mT = ye((Asr, Bve) => {
+ var uI = Dr(), qve = vf(), n0t = qa(), a0t = gT(), CU = ka(), o0t = uI.fillText;
+ Bve.exports = function(t, r, n, i) {
+ var a = t.cd, o = a[0].trace, s = t.xa, l = t.ya, u = s.c2p(r), c = l.c2p(n), f = [u, c], h = o.hoveron || "", d = o.mode.indexOf("markers") !== -1 ? 3 : 0.5, v = !!o.xperiodalignment, _ = !!o.yperiodalignment;
+ if (h.indexOf("points") !== -1) {
+ var b = function(j) {
+ if (v) {
+ var N = s.c2p(j.xStart), H = s.c2p(j.xEnd);
+ return u >= Math.min(N, H) && u <= Math.max(N, H) ? 0 : 1 / 0;
+ }
+ var re = Math.max(3, j.mrc || 0), oe = 1 - 1 / re, _e = Math.abs(s.c2p(j.x) - u);
+ return _e < re ? oe * _e / re : _e - re + oe;
+ }, p = function(j) {
+ if (_) {
+ var N = l.c2p(j.yStart), H = l.c2p(j.yEnd);
+ return c >= Math.min(N, H) && c <= Math.max(N, H) ? 0 : 1 / 0;
+ }
+ var re = Math.max(3, j.mrc || 0), oe = 1 - 1 / re, _e = Math.abs(l.c2p(j.y) - c);
+ return _e < re ? oe * _e / re : _e - re + oe;
+ }, k = function(j) {
+ var N = Math.max(d, j.mrc || 0), H = s.c2p(j.x) - u, re = l.c2p(j.y) - c;
+ return Math.max(Math.sqrt(H * H + re * re) - N, 1 - d / N);
+ }, E = qve.getDistanceFunction(i, b, p, k);
+ if (qve.getClosest(a, E, t), t.index !== false) {
+ var T = a[t.index], L = s.c2p(T.x, true), x = l.c2p(T.y, true), C = T.mrc || 1;
+ t.index = T.i;
+ var M = a[0].t.orientation, g = M && (T.sNorm || T.s), P = M === "h" ? g : T.orig_x !== void 0 ? T.orig_x : T.x, A = M === "v" ? g : T.orig_y !== void 0 ? T.orig_y : T.y;
+ return uI.extendFlat(t, { color: a0t(o, T), x0: L - C, x1: L + C, xLabelVal: P, y0: x - C, y1: x + C, yLabelVal: A, spikeDistance: k(T), hovertemplate: o.hovertemplate }), o0t(T, o, t), n0t.getComponentMethod("errorbars", "hoverInfo")(T, o, t), [t];
+ }
+ }
+ function z(j) {
+ if (!j) return false;
+ var N = j.node();
+ try {
+ var H = new DOMPoint(f[0], f[1]);
+ return N.isPointInFill(H);
+ } catch (oe) {
+ var re = N.ownerSVGElement.createSVGPoint();
+ return re.x = f[0], re.y = f[1], N.isPointInFill(re);
+ }
+ }
+ function O(j) {
+ var N, H = [], re = 1 / 0, oe = -1 / 0, _e = 1 / 0, Ce = -1 / 0, Le;
+ for (N = 0; N < j.length; N++) {
+ var ge = j[N];
+ ge.contains(f) && (H.push(ge), _e = Math.min(_e, ge.ymin), Ce = Math.max(Ce, ge.ymax));
+ }
+ if (H.length === 0) return null;
+ _e = Math.max(_e, 0), Ce = Math.min(Ce, l._length), Le = (_e + Ce) / 2;
+ var ie, Se, Ee, Ae, Be, Pe, me;
+ for (N = 0; N < H.length; N++) for (Se = H[N].pts, ie = 1; ie < Se.length; ie++) Pe = Se[ie - 1][1], me = Se[ie][1], Pe > Le != me >= Le && (Ae = Se[ie - 1][0], Be = Se[ie][0], me - Pe && (Ee = Ae + (Be - Ae) * (Le - Pe) / (me - Pe), re = Math.min(re, Ee), oe = Math.max(oe, Ee)));
+ return re = Math.max(re, 0), oe = Math.min(oe, s._length), { x0: re, x1: oe, y0: Le, y1: Le };
+ }
+ if (h.indexOf("fills") !== -1 && o._fillElement) {
+ var U = z(o._fillElement) && !z(o._fillExclusionElement);
+ if (U) {
+ var G = O(o._polygons);
+ G === null && (G = { x0: f[0], x1: f[0], y0: f[1], y1: f[1] });
+ var Z = CU.defaultLine;
+ return CU.opacity(o.fillcolor) ? Z = o.fillcolor : CU.opacity((o.line || {}).color) && (Z = o.line.color), uI.extendFlat(t, { distance: t.maxHoverDistance, x0: G.x0, x1: G.x1, y0: G.y0, y1: G.y1, color: Z, hovertemplate: false }), delete t.index, o.text && !uI.isArrayOrTypedArray(o.text) ? t.text = String(o.text) : t.text = o.name, [t];
+ }
+ }
+ };
+ });
+ var yT = ye((Ssr, Uve) => {
+ var Nve = Ru();
+ Uve.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = [], s = n[0].trace, l, u, c, f, h = !Nve.hasMarkers(s) && !Nve.hasText(s);
+ if (h) return [];
+ if (r === false) for (l = 0; l < n.length; l++) n[l].selected = 0;
+ else for (l = 0; l < n.length; l++) u = n[l], c = i.c2p(u.x), f = a.c2p(u.y), u.i !== null && r.contains([c, f], false, l, t) ? (o.push({ pointNumber: u.i, x: i.c2d(u.x), y: a.c2d(u.y) }), u.selected = 1) : u.selected = 0;
+ return o;
+ };
+ });
+ var Gve = ye((Msr, Vve) => {
+ Vve.exports = { xaxis: { valType: "subplotid", dflt: "x", editType: "calc+clearAxisTypes" }, yaxis: { valType: "subplotid", dflt: "y", editType: "calc+clearAxisTypes" } };
+ });
+ var PU = ye((Esr, Wve) => {
+ var l4 = qa().traceIs, LU = V3();
+ Wve.exports = function(t, r, n, i) {
+ n("autotypenumbers", i.autotypenumbersDflt);
+ var a = n("type", (i.splomStash || {}).type);
+ a === "-" && (s0t(r, i.data), r.type === "-" ? r.type = "linear" : t.type = r.type);
+ };
+ function s0t(e, t) {
+ if (e.type === "-") {
+ var r = e._id, n = r.charAt(0), i;
+ r.indexOf("scene") !== -1 && (r = n);
+ var a = l0t(t, r, n);
+ if (a) {
+ if (a.type === "histogram" && n === { v: "y", h: "x" }[a.orientation || "v"]) {
+ e.type = "linear";
+ return;
+ }
+ var o = n + "calendar", s = a[o], l = { noMultiCategory: !l4(a, "cartesian") || l4(a, "noMultiCategory") };
+ if (a.type === "box" && a._hasPreCompStats && n === { h: "x", v: "y" }[a.orientation || "v"] && (l.noMultiCategory = true), l.autotypenumbers = e.autotypenumbers, jve(a, n)) {
+ var u = Hve(a), c = [];
+ for (i = 0; i < t.length; i++) {
+ var f = t[i];
+ !l4(f, "box-violin") || (f[n + "axis"] || n) !== r || (f[u] !== void 0 ? c.push(f[u][0]) : f.name !== void 0 ? c.push(f.name) : c.push("text"), f[o] !== s && (s = void 0));
+ }
+ e.type = LU(c, s, l);
+ } else if (a.type === "splom") {
+ var h = a.dimensions, d = h[a._axesDim[r]];
+ d.visible && (e.type = LU(d.values, s, l));
+ } else e.type = LU(a[n] || [a[n + "0"]], s, l);
+ }
+ }
+ }
+ function l0t(e, t, r) {
+ for (var n = 0; n < e.length; n++) {
+ var i = e[n];
+ if (i.type === "splom" && i._length > 0 && (i["_" + r + "axes"] || {})[t]) return i;
+ if ((i[r + "axis"] || r) === t) {
+ if (jve(i, r)) return i;
+ if ((i[r] || []).length || i[r + "0"]) return i;
+ }
+ }
+ }
+ function Hve(e) {
+ return { v: "x", h: "y" }[e.orientation || "v"];
+ }
+ function jve(e, t) {
+ var r = Hve(e), n = l4(e, "box-violin"), i = l4(e._fullInput || {}, "candlestick");
+ return n && !i && t === r && e[r] === void 0 && e[r + "0"] === void 0;
+ }
+ });
+ var cI = ye((ksr, Xve) => {
+ var u0t = vv().isTypedArraySpec;
+ function c0t(e, t) {
+ var r = t.dataAttr || e._id.charAt(0), n = {}, i, a, o;
+ if (t.axData) i = t.axData;
+ else for (i = [], a = 0; a < t.data.length; a++) {
+ var s = t.data[a];
+ s[r + "axis"] === e._id && i.push(s);
+ }
+ for (a = 0; a < i.length; a++) {
+ var l = i[a][r];
+ for (o = 0; o < l.length; o++) {
+ var u = l[o];
+ u != null && (n[u] = 1);
+ }
+ }
+ return Object.keys(n);
+ }
+ Xve.exports = function(t, r, n, i) {
+ if (r.type === "category") {
+ var a = t.categoryarray, o = Array.isArray(a) && a.length > 0 || u0t(a), s;
+ o && (s = "array");
+ var l = n("categoryorder", s), u;
+ l === "array" && (u = n("categoryarray")), !o && l === "array" && (l = r.categoryorder = "trace"), l === "trace" ? r._initialCategories = [] : l === "array" ? r._initialCategories = u.slice() : (u = c0t(r, i).sort(), l === "category ascending" ? r._initialCategories = u : l === "category descending" && (r._initialCategories = u.reverse()));
+ }
+ };
+ });
+ var u4 = ye((Csr, Yve) => {
+ var Zve = fd().mix, f0t = Ih(), h0t = Dr();
+ Yve.exports = function(t, r, n, i) {
+ i = i || {};
+ var a = i.dfltColor;
+ function o(M, g) {
+ return h0t.coerce2(t, r, i.attributes, M, g);
+ }
+ var s = o("linecolor", a), l = o("linewidth"), u = n("showline", i.showLine || !!s || !!l);
+ u || (delete r.linecolor, delete r.linewidth);
+ var c = Zve(a, i.bgColor, i.blend || f0t.lightFraction).toRgbString(), f = o("gridcolor", c), h = o("gridwidth"), d = o("griddash"), v = n("showgrid", i.showGrid || !!f || !!h || !!d);
+ if (v || (delete r.gridcolor, delete r.gridwidth, delete r.griddash), i.hasMinor) {
+ var _ = Zve(r.gridcolor, i.bgColor, 67).toRgbString(), b = o("minor.gridcolor", _), p = o("minor.gridwidth", r.gridwidth || 1), k = o("minor.griddash", r.griddash || "solid"), E = n("minor.showgrid", !!b || !!p || !!k);
+ E || (delete r.minor.gridcolor, delete r.minor.gridwidth, delete r.minor.griddash);
+ }
+ if (!i.noZeroLine) {
+ o("zerolinelayer");
+ var L = o("zerolinecolor", a), x = o("zerolinewidth"), C = n("zeroline", i.showGrid || !!L || !!x);
+ C || (delete r.zerolinelayer, delete r.zerolinecolor, delete r.zerolinewidth);
+ }
+ };
+ });
+ var f4 = ye((Lsr, tpe) => {
+ var Kve = Eo(), d0t = qa(), c4 = Dr(), v0t = vl(), p0t = Zd(), IU = Rd(), Jve = Lb(), $ve = F3(), g0t = s_(), m0t = l_(), y0t = cI(), _0t = u4(), x0t = AB(), Qve = xm(), fI = Rh().WEEKDAY_PATTERN, b0t = Rh().HOUR_PATTERN;
+ tpe.exports = function(t, r, n, i, a) {
+ var o = i.letter, s = i.font || {}, l = i.splomStash || {}, u = n("visible", !i.visibleDflt), c = r._template || {}, f = r.type || c.type || "-", h;
+ if (f === "date") {
+ var d = d0t.getComponentMethod("calendars", "handleDefaults");
+ d(t, r, "calendar", i.calendar), i.noTicklabelmode || (h = n("ticklabelmode"));
+ }
+ !i.noTicklabelindex && (f === "date" || f === "linear") && n("ticklabelindex");
+ var v = "";
+ (!i.noTicklabelposition || f === "multicategory") && (v = c4.coerce(t, r, { ticklabelposition: { valType: "enumerated", dflt: "outside", values: h === "period" ? ["outside", "inside"] : o === "x" ? ["outside", "inside", "outside left", "inside left", "outside right", "inside right"] : ["outside", "inside", "outside top", "inside top", "outside bottom", "inside bottom"] } }, "ticklabelposition")), i.noTicklabeloverflow || n("ticklabeloverflow", v.indexOf("inside") !== -1 ? "hide past domain" : f === "category" || f === "multicategory" ? "allow" : "hide past div"), Qve(r, a), x0t(t, r, n, i), y0t(t, r, n, i), i.noHover || (f !== "category" && n("hoverformat"), i.noUnifiedhovertitle || n("unifiedhovertitle.text"));
+ var _ = n("color"), b = _ !== IU.color.dflt ? _ : s.color, p = l.label || a._dfltTitle[o];
+ if (m0t(t, r, n, f, i), !u) return r;
+ n("title.text", p), c4.coerceFont(n, "title.font", s, { overrideDflt: { size: c4.bigFont(s.size), color: b } }), Jve(t, r, n, f);
+ var k = i.hasMinor;
+ if (k && (v0t.newContainer(r, "minor"), Jve(t, r, n, f, { isMinor: true })), g0t(t, r, n, f, i), $ve(t, r, n, i), k) {
+ var E = i.isMinor;
+ i.isMinor = true, $ve(t, r, n, i), i.isMinor = E;
+ }
+ _0t(t, r, n, { dfltColor: _, bgColor: i.bgColor, showGrid: i.showGrid, hasMinor: k, attributes: IU }), k && !r.minor.ticks && !r.minor.showgrid && delete r.minor, (r.showline || r.ticks) && n("mirror");
+ var T = f === "multicategory";
+ if (!i.noTickson && (f === "category" || T) && (r.ticks || r.showgrid) && (T ? (n("tickson", "boundaries"), delete r.ticklabelposition) : n("tickson")), T) {
+ var L = n("showdividers");
+ L && (n("dividercolor"), n("dividerwidth"));
+ }
+ if (f === "date") if (p0t(t, r, { name: "rangebreaks", inclusionAttr: "enabled", handleItemDefaults: w0t }), !r.rangebreaks.length) delete r.rangebreaks;
+ else {
+ for (var x = 0; x < r.rangebreaks.length; x++) if (r.rangebreaks[x].pattern === fI) {
+ r._hasDayOfWeekBreaks = true;
+ break;
+ }
+ if (Qve(r, a), a._has("scattergl") || a._has("splom")) for (var C = 0; C < i.data.length; C++) {
+ var M = i.data[C];
+ (M.type === "scattergl" || M.type === "splom") && (M.visible = false, c4.warn(M.type + " traces do not work on axes with rangebreaks. Setting trace " + M.index + " to `visible: false`."));
+ }
+ }
+ return r;
+ };
+ function w0t(e, t, r) {
+ function n(h, d) {
+ return c4.coerce(e, t, IU.rangebreaks, h, d);
+ }
+ var i = n("enabled");
+ if (i) {
+ var a = n("bounds");
+ if (a && a.length >= 2) {
+ var o = "", s, l;
+ if (a.length === 2) {
+ for (s = 0; s < 2; s++) if (l = epe(a[s]), l) {
+ o = fI;
+ break;
+ }
+ }
+ var u = n("pattern", o);
+ if (u === fI) for (s = 0; s < 2; s++) l = epe(a[s]), l && (t.bounds[s] = a[s] = l - 1);
+ if (u) for (s = 0; s < 2; s++) switch (l = a[s], u) {
+ case fI:
+ if (!Kve(l)) {
+ t.enabled = false;
+ return;
+ }
+ if (l = +l, l !== Math.floor(l) || l < 0 || l >= 7) {
+ t.enabled = false;
+ return;
+ }
+ t.bounds[s] = a[s] = l;
+ break;
+ case b0t:
+ if (!Kve(l)) {
+ t.enabled = false;
+ return;
+ }
+ if (l = +l, l < 0 || l > 24) {
+ t.enabled = false;
+ return;
+ }
+ t.bounds[s] = a[s] = l;
+ break;
+ }
+ if (r.autorange === false) {
+ var c = r.range;
+ if (c[0] < c[1]) {
+ if (a[0] < c[0] && a[1] > c[1]) {
+ t.enabled = false;
+ return;
+ }
+ } else if (a[0] > c[0] && a[1] < c[1]) {
+ t.enabled = false;
+ return;
+ }
+ }
+ } else {
+ var f = n("values");
+ if (f && f.length) n("dvalue");
+ else {
+ t.enabled = false;
+ return;
+ }
+ }
+ }
+ }
+ var T0t = { sun: 1, mon: 2, tue: 3, wed: 4, thu: 5, fri: 6, sat: 7 };
+ function epe(e) {
+ if (typeof e == "string") return T0t[e.slice(0, 3).toLowerCase()];
+ }
+ });
+ var dI = ye((Psr, rpe) => {
+ var A0t = Eo(), hI = Dr();
+ rpe.exports = function(t, r, n, i) {
+ var a = i.counterAxes || [], o = i.overlayableAxes || [], s = i.letter, l = i.grid, u = i.overlayingDomain, c, f, h, d, v, _;
+ l && (f = l._domains[s][l._axisMap[r._id]], c = l._anchors[r._id], f && (h = l[s + "side"].split(" ")[0], d = l.domain[s][h === "right" || h === "top" ? 1 : 0])), f = f || [0, 1], c = c || (A0t(t.position) ? "free" : a[0] || "free"), h = h || (s === "x" ? "bottom" : "left"), d = d || 0, v = 0, _ = false;
+ var b = hI.coerce(t, r, { anchor: { valType: "enumerated", values: ["free"].concat(a), dflt: c } }, "anchor"), p = hI.coerce(t, r, { side: { valType: "enumerated", values: s === "x" ? ["bottom", "top"] : ["left", "right"], dflt: h } }, "side");
+ if (b === "free") {
+ if (s === "y") {
+ var k = n("autoshift");
+ k && (d = p === "left" ? u[0] : u[1], _ = r.automargin ? r.automargin : true, v = p === "left" ? -3 : 3), n("shift", v);
+ }
+ n("position", d);
+ }
+ n("automargin", _);
+ var E = false;
+ if (o.length && (E = hI.coerce(t, r, { overlaying: { valType: "enumerated", values: [false].concat(o), dflt: false } }, "overlaying")), !E) {
+ var T = n("domain", f);
+ T[0] > T[1] - 1 / 4096 && (r.domain = f), hI.noneOrAll(t.domain, r.domain, f), r.tickmode === "sync" && (r.tickmode = "auto");
+ }
+ return n("layer"), r;
+ };
+ });
+ var fpe = ye((Isr, cpe) => {
+ var r2 = Dr(), ipe = ka(), S0t = ip().isUnifiedHover, M0t = YB(), npe = vl(), E0t = _3(), ape = Rd(), k0t = PU(), ope = f4(), C0t = Kb(), spe = dI(), DU = hf(), Dm = DU.id2name, lpe = DU.name2id, L0t = Rh().AX_ID_PATTERN, upe = qa(), vI = upe.traceIs, RU = upe.getComponentMethod;
+ function pI(e, t, r) {
+ Array.isArray(e[t]) ? e[t].push(r) : e[t] = [r];
+ }
+ cpe.exports = function(t, r, n) {
+ var i = r.autotypenumbers, a = {}, o = {}, s = {}, l = {}, u = {}, c = {}, f = {}, h = {}, d = {}, v = {}, _, b;
+ for (_ = 0; _ < n.length; _++) {
+ var p = n[_];
+ if (vI(p, "cartesian")) {
+ var k;
+ if (p.xaxis) k = Dm(p.xaxis), pI(a, k, p);
+ else if (p.xaxes) for (b = 0; b < p.xaxes.length; b++) pI(a, Dm(p.xaxes[b]), p);
+ var E;
+ if (p.yaxis) E = Dm(p.yaxis), pI(a, E, p);
+ else if (p.yaxes) for (b = 0; b < p.yaxes.length; b++) pI(a, Dm(p.yaxes[b]), p);
+ if (p.type === "funnel" ? p.orientation === "h" ? (k && (o[k] = true), E && (f[E] = true)) : E && (s[E] = true) : p.type === "image" ? (E && (h[E] = true), k && (h[k] = true)) : (E && (u[E] = true, c[E] = true), (!vI(p, "carpet") || p.type === "carpet" && !p._cheater) && k && (l[k] = true)), p.type === "carpet" && p._cheater && k && (o[k] = true), vI(p, "2dMap") && (d[k] = true, d[E] = true), vI(p, "oriented")) {
+ var T = p.orientation === "h" ? E : k;
+ v[T] = true;
+ }
+ }
+ }
+ var L = r._subplots, x = L.xaxis, C = L.yaxis, M = r2.simpleMap(x, Dm), g = r2.simpleMap(C, Dm), P = M.concat(g), A = ipe.background;
+ x.length && C.length && (A = r2.coerce(t, r, E0t, "plot_bgcolor"));
+ var z = ipe.combine(A, r.paper_bgcolor), O, U, G, Z, j;
+ function N() {
+ var St = a[O] || [];
+ j._traceIndices = St.map(function(Qt) {
+ return Qt.index;
+ }), j._annIndices = [], j._shapeIndices = [], j._selectionIndices = [], j._imgIndices = [], j._subplotsWith = [], j._counterAxes = [], j._name = j._attr = O, j._id = U;
+ }
+ function H(St, Qt) {
+ return r2.coerce(Z, j, ape, St, Qt);
+ }
+ function re(St, Qt) {
+ return r2.coerce2(Z, j, ape, St, Qt);
+ }
+ function oe(St) {
+ return St === "x" ? C : x;
+ }
+ function _e(St, Qt) {
+ for (var Gt = St === "x" ? M : g, _t = [], It = 0; It < Gt.length; It++) {
+ var mt = Gt[It];
+ mt !== Qt && !(t[mt] || {}).overlaying && _t.push(lpe(mt));
+ }
+ return _t;
+ }
+ var Ce = { x: oe("x"), y: oe("y") }, Le = Ce.x.concat(Ce.y), ge = {}, ie = [];
+ function Se() {
+ var St = Z.matches;
+ L0t.test(St) && Le.indexOf(St) === -1 && (ge[St] = Z.type, ie = Object.keys(ge));
+ }
+ var Ee = M0t(t, r), Ae = S0t(Ee);
+ for (_ = 0; _ < P.length; _++) {
+ O = P[_], U = lpe(O), G = O.charAt(0), r2.isPlainObject(t[O]) || (t[O] = {}), Z = t[O], j = npe.newContainer(r, O, G + "axis"), N();
+ var Be = G === "x" && !l[O] && o[O] || G === "y" && !u[O] && s[O], Pe = G === "y" && (!c[O] && f[O] || h[O]), me = { hasMinor: true, letter: G, font: r.font, outerTicks: d[O], showGrid: !v[O], data: a[O] || [], bgColor: z, calendar: r.calendar, automargin: true, visibleDflt: Be, reverseDflt: Pe, autotypenumbersDflt: i, splomStash: ((r._splomAxes || {})[G] || {})[U], noAutotickangles: G === "y" };
+ H("uirevision", r.uirevision), k0t(Z, j, H, me), ope(Z, j, H, me, r);
+ var De = Ae && G === Ee.charAt(0), ce = re("spikecolor", Ae ? j.color : void 0), je = re("spikethickness", Ae ? 1.5 : void 0), lt = re("spikedash", Ae ? "dot" : void 0), pt = re("spikemode", Ae ? "across" : void 0), Vt = re("spikesnap"), ot = H("showspikes", !!De || !!ce || !!je || !!lt || !!pt || !!Vt);
+ ot || (delete j.spikecolor, delete j.spikethickness, delete j.spikedash, delete j.spikemode, delete j.spikesnap);
+ var ut = Dm(Z.overlaying), Wt = [0, 1];
+ if (r[ut] !== void 0) {
+ var Nt = Dm(r[ut].anchor);
+ r[Nt] !== void 0 && (Wt = r[Nt].domain);
+ }
+ spe(Z, j, H, { letter: G, counterAxes: Ce[G], overlayableAxes: _e(G, O), grid: r.grid, overlayingDomain: Wt }), H("title.standoff"), Se(), j._input = Z;
+ }
+ for (_ = 0; _ < ie.length; ) {
+ U = ie[_++], O = Dm(U), G = O.charAt(0), r2.isPlainObject(t[O]) || (t[O] = {}), Z = t[O], j = npe.newContainer(r, O, G + "axis"), N();
+ var $t = { letter: G, font: r.font, outerTicks: d[O], showGrid: !v[O], data: [], bgColor: z, calendar: r.calendar, automargin: true, visibleDflt: false, reverseDflt: false, autotypenumbersDflt: i, splomStash: ((r._splomAxes || {})[G] || {})[U] };
+ H("uirevision", r.uirevision), j.type = ge[U] || "linear", ope(Z, j, H, $t, r), spe(Z, j, H, { letter: G, counterAxes: Ce[G], overlayableAxes: _e(G, O), grid: r.grid }), H("fixedrange"), H("modebardisable"), Se(), j._input = Z;
+ }
+ var sr = RU("rangeslider", "handleDefaults"), Tr = RU("rangeselector", "handleDefaults");
+ for (_ = 0; _ < M.length; _++) O = M[_], Z = t[O], j = r[O], sr(t, r, O), j.type === "date" && Tr(Z, j, r, g, j.calendar), H("fixedrange"), H("modebardisable");
+ for (_ = 0; _ < g.length; _++) {
+ O = g[_], Z = t[O], j = r[O];
+ var fr = r[Dm(j.anchor)], $e = RU("rangeslider", "isVisible")(fr);
+ H("fixedrange", $e), H("modebardisable");
+ }
+ C0t.handleDefaults(t, r, { axIds: Le.concat(ie).sort(DU.idSort), axHasImage: h });
+ };
+ });
+ var vpe = ye((Rsr, dpe) => {
+ var P0t = Oa(), hpe = qa(), gI = Dr(), Qp = So(), mI = ho();
+ dpe.exports = function(t, r, n, i) {
+ var a = t._fullLayout;
+ if (r.length === 0) {
+ mI.redrawComponents(t);
+ return;
+ }
+ function o(b) {
+ var p = b.xaxis, k = b.yaxis;
+ a._defs.select("#" + b.clipId + "> rect").call(Qp.setTranslate, 0, 0).call(Qp.setScale, 1, 1), b.plot.call(Qp.setTranslate, p._offset, k._offset).call(Qp.setScale, 1, 1);
+ var E = b.plot.selectAll(".scatterlayer .trace");
+ E.selectAll(".point").call(Qp.setPointGroupScale, 1, 1), E.selectAll(".textpoint").call(Qp.setTextPointsScale, 1, 1), E.call(Qp.hideOutsideRangePoints, b);
+ }
+ function s(b, p) {
+ var k = b.plotinfo, E = k.xaxis, T = k.yaxis, L = E._length, x = T._length, C = !!b.xr1, M = !!b.yr1, g = [];
+ if (C) {
+ var P = gI.simpleMap(b.xr0, E.r2l), A = gI.simpleMap(b.xr1, E.r2l), z = P[1] - P[0], O = A[1] - A[0];
+ g[0] = (P[0] * (1 - p) + p * A[0] - P[0]) / (P[1] - P[0]) * L, g[2] = L * (1 - p + p * O / z), E.range[0] = E.l2r(P[0] * (1 - p) + p * A[0]), E.range[1] = E.l2r(P[1] * (1 - p) + p * A[1]);
+ } else g[0] = 0, g[2] = L;
+ if (M) {
+ var U = gI.simpleMap(b.yr0, T.r2l), G = gI.simpleMap(b.yr1, T.r2l), Z = U[1] - U[0], j = G[1] - G[0];
+ g[1] = (U[1] * (1 - p) + p * G[1] - U[1]) / (U[0] - U[1]) * x, g[3] = x * (1 - p + p * j / Z), T.range[0] = E.l2r(U[0] * (1 - p) + p * G[0]), T.range[1] = T.l2r(U[1] * (1 - p) + p * G[1]);
+ } else g[1] = 0, g[3] = x;
+ mI.drawOne(t, E, { skipTitle: true }), mI.drawOne(t, T, { skipTitle: true }), mI.redrawComponents(t, [E._id, T._id]);
+ var N = C ? L / g[2] : 1, H = M ? x / g[3] : 1, re = C ? g[0] : 0, oe = M ? g[1] : 0, _e = C ? g[0] / g[2] * L : 0, Ce = M ? g[1] / g[3] * x : 0, Le = E._offset - _e, ge = T._offset - Ce;
+ k.clipRect.call(Qp.setTranslate, re, oe).call(Qp.setScale, 1 / N, 1 / H), k.plot.call(Qp.setTranslate, Le, ge).call(Qp.setScale, N, H), Qp.setPointGroupScale(k.zoomScalePts, 1 / N, 1 / H), Qp.setTextPointsScale(k.zoomScaleTxt, 1 / N, 1 / H);
+ }
+ var l;
+ i && (l = i());
+ function u() {
+ for (var b = {}, p = 0; p < r.length; p++) {
+ var k = r[p], E = k.plotinfo.xaxis, T = k.plotinfo.yaxis;
+ k.xr1 && (b[E._name + ".range"] = k.xr1.slice()), k.yr1 && (b[T._name + ".range"] = k.yr1.slice());
+ }
+ return l && l(), hpe.call("relayout", t, b).then(function() {
+ for (var L = 0; L < r.length; L++) o(r[L].plotinfo);
+ });
+ }
+ function c() {
+ for (var b = {}, p = 0; p < r.length; p++) {
+ var k = r[p], E = k.plotinfo.xaxis, T = k.plotinfo.yaxis;
+ k.xr0 && (b[E._name + ".range"] = k.xr0.slice()), k.yr0 && (b[T._name + ".range"] = k.yr0.slice());
+ }
+ return hpe.call("relayout", t, b).then(function() {
+ for (var L = 0; L < r.length; L++) o(r[L].plotinfo);
+ });
+ }
+ var f, h, d, v = P0t.ease(n.easing);
+ t._transitionData._interruptCallbacks.push(function() {
+ return window.cancelAnimationFrame(d), d = null, c();
+ });
+ function _() {
+ h = Date.now();
+ for (var b = Math.min(1, (h - f) / n.duration), p = v(b), k = 0; k < r.length; k++) s(r[k], p);
+ h - f > n.duration ? (u(), d = window.cancelAnimationFrame(_)) : d = window.requestAnimationFrame(_);
+ }
+ return f = Date.now(), d = window.requestAnimationFrame(_), Promise.resolve();
+ };
+ });
+ var mh = ye((xv) => {
+ var _I = Oa(), ppe = qa(), i2 = Dr(), I0t = Mc(), R0t = So(), gpe = Id().getModuleCalcData, S_ = hf(), qg = Rh(), D0t = Wp(), iu = i2.ensureSingle;
+ function yI(e, t, r) {
+ return i2.ensureSingle(e, t, r, function(n) {
+ n.datum(r);
+ });
+ }
+ var n2 = qg.zindexSeparator;
+ xv.name = "cartesian";
+ xv.attr = ["xaxis", "yaxis"];
+ xv.idRoot = ["x", "y"];
+ xv.idRegex = qg.idRegex;
+ xv.attrRegex = qg.attrRegex;
+ xv.attributes = Gve();
+ xv.layoutAttributes = Rd();
+ xv.supplyLayoutDefaults = fpe();
+ xv.transitionAxes = vpe();
+ xv.finalizeSubplots = function(e, t) {
+ var r = t._subplots, n = r.xaxis, i = r.yaxis, a = r.cartesian, o = a, s = {}, l = {}, u, c, f;
+ for (u = 0; u < o.length; u++) {
+ var h = o[u].split("y");
+ s[h[0]] = 1, l["y" + h[1]] = 1;
+ }
+ for (u = 0; u < n.length; u++) c = n[u], s[c] || (f = (e[S_.id2name(c)] || {}).anchor, qg.idRegex.y.test(f) || (f = "y"), a.push(c + f), o.push(c + f), l[f] || (l[f] = 1, i2.pushUnique(i, f)));
+ for (u = 0; u < i.length; u++) f = i[u], l[f] || (c = (e[S_.id2name(f)] || {}).anchor, qg.idRegex.x.test(c) || (c = "x"), a.push(c + f), o.push(c + f), s[c] || (s[c] = 1, i2.pushUnique(n, c)));
+ if (!o.length) {
+ c = "", f = "";
+ for (var d in e) if (qg.attrRegex.test(d)) {
+ var v = d.charAt(0);
+ v === "x" ? (!c || +d.slice(5) < +c.slice(5)) && (c = d) : (!f || +d.slice(5) < +f.slice(5)) && (f = d);
+ }
+ c = c ? S_.name2id(c) : "x", f = f ? S_.name2id(f) : "y", n.push(c), i.push(f), a.push(c + f);
+ }
+ };
+ xv.plot = function(e, t, r, n) {
+ var i = e._fullLayout, a = i._subplots.cartesian, o = e.calcdata, s;
+ if (!Array.isArray(t)) for (t = [], s = 0; s < o.length; s++) t.push(s);
+ for (var l = i._zindices, u = 0; u < l.length; u++) {
+ var c = l[u];
+ for (s = 0; s < a.length; s++) {
+ var f = a[s], h = i._plots[f];
+ if (u > 0) {
+ var d = h.id;
+ if (d.indexOf(n2) !== -1) continue;
+ d += n2 + (u + 1), h = i2.extendFlat({}, h, { id: d, plot: i._cartesianlayer.selectAll(".subplot").select("." + d) });
+ }
+ for (var v = [], _, b = 0; b < o.length; b++) {
+ var p = o[b], k = p[0].trace;
+ c === (k.zorder || 0) && k.xaxis + k.yaxis === f && ((t.indexOf(k.index) !== -1 || k.carpet) && (_ && _[0].trace.xaxis + _[0].trace.yaxis === f && ["tonextx", "tonexty", "tonext"].indexOf(k.fill) !== -1 && v.indexOf(_) === -1 && v.push(_), v.push(p)), _ = p);
+ }
+ mpe(e, h, v, r, n);
+ }
+ }
+ };
+ function mpe(e, t, r, n, i) {
+ for (var a = qg.traceLayerClasses, o = e._fullLayout, s = o._zindices, l = o._modules, u, c, f, h = [], d = [], v = 0; v < s.length; v++) for (var _ = s[v], b = 0; b < l.length; b++) {
+ u = l[b];
+ var p = u.name, k = ppe.modules[p].categories;
+ if (k.svg) {
+ var E = u.layerName || p + "layer", T = E + (v ? Number(v) + 1 : ""), L = u.plot;
+ c = gpe(r, L, _), f = c[0], r = c[1], f.length && h.push({ i: a.indexOf(E), zindex: v, className: T, plotMethod: L, cdModule: f }), k.zoomScale && d.push("." + T);
+ }
+ }
+ h.sort(function(M, g) {
+ return (M.zindex || 0) - (g.zindex || 0) || M.i - g.i;
+ });
+ var x = t.plot.selectAll("g.mlayer").data(h, function(M) {
+ return M.className;
+ });
+ if (x.enter().append("g").attr("class", function(M) {
+ return M.className;
+ }).classed("mlayer", true).classed("rangeplot", t.isRangePlot), x.exit().remove(), x.order(), x.each(function(M) {
+ var g = _I.select(this), P = M.className;
+ M.plotMethod(e, t, M.cdModule, g, n, i), qg.clipOnAxisFalseQuery.indexOf("." + P) === -1 && R0t.setClipUrl(g, t.layerClipId, e);
+ }), o._has("scattergl") && (u = ppe.getModule("scattergl"), f = gpe(r, u)[0], u.plot(e, t, f)), !e._context.staticPlot && (t._hasClipOnAxisFalse && (t.clipOnAxisFalseTraces = t.plot.selectAll(qg.clipOnAxisFalseQuery.join(",")).selectAll(".trace")), d.length)) {
+ var C = t.plot.selectAll(d.join(",")).selectAll(".trace");
+ t.zoomScalePts = C.selectAll("path.point"), t.zoomScaleTxt = C.selectAll(".textpoint");
+ }
+ }
+ xv.clean = function(e, t, r, n) {
+ var i = n._plots || {}, a = t._plots || {}, o = n._subplots || {}, s, l, u;
+ if (n._hasOnlyLargeSploms && !t._hasOnlyLargeSploms) for (u in i) s = i[u], s.plotgroup && s.plotgroup.remove();
+ var c = n._has && n._has("gl"), f = t._has && t._has("gl");
+ if (c && !f) for (u in i) s = i[u], s._scene && s._scene.destroy();
+ if (o.xaxis && o.yaxis) {
+ var h = S_.listIds({ _fullLayout: n });
+ for (l = 0; l < h.length; l++) {
+ var d = h[l];
+ t[S_.id2name(d)] || n._infolayer.selectAll(".g-" + d + "title").remove();
+ }
+ }
+ var v = n._has && n._has("cartesian"), _ = t._has && t._has("cartesian");
+ if (v && !_) _pe(n._cartesianlayer.selectAll(".subplot"), n), n._defs.selectAll(".axesclip").remove(), delete n._axisConstraintGroups, delete n._axisMatchGroups;
+ else if (o.cartesian) for (l = 0; l < o.cartesian.length; l++) {
+ var b = o.cartesian[l];
+ if (b.indexOf(n2) === -1 && !a[b]) {
+ var p = "." + b + ",." + b + "-x,." + b + "-y";
+ n._cartesianlayer.selectAll(p).remove(), xpe(b, n);
+ }
+ }
+ };
+ xv.drawFramework = function(e) {
+ var t = e._fullLayout, r = e.calcdata, n, i = {};
+ for (n = 0; n < r.length; n++) {
+ var a = r[n][0], o = a.trace, s = o.zorder || 0;
+ i[s] || (i[s] = []), i[s].push(a);
+ }
+ var l = Object.keys(i).map(Number).sort(i2.sorterAsc);
+ l.length || (l = [0]), t._zindices = l;
+ var u = F0t(e), c = u.length, f = [];
+ for (n = 0; n < c; n++) f[n] = u[n].slice();
+ for (var h = 1; h < l.length; h++) {
+ var d = [];
+ for (n = 0; n < c; n++) d[n] = u[n].slice(), d[n][0] += n2 + (h + 1);
+ f = f.concat(d);
+ }
+ var v = t._cartesianlayer.selectAll(".subplot").data(f, String);
+ v.enter().append("g").attr("class", function(_) {
+ return "subplot " + _[0];
+ }), v.order(), v.exit().call(_pe, t), v.each(function(_) {
+ var b = _[0], p = b.indexOf(n2), k = p !== -1, E = k ? b.slice(0, p) : b, T = t._plots[b];
+ T || (T = i2.extendFlat({}, t._plots[E]), T && (T.id = b, t._plots[b] = T, t._subplots.cartesian.push(b))), T && (T.plotgroup = _I.select(this), ype(e, T), k || (T.draglayer = iu(t._draggers, "g", b)));
+ });
+ };
+ xv.rangePlot = function(e, t, r) {
+ ype(e, t), mpe(e, t, r), I0t.style(e);
+ };
+ function F0t(e) {
+ var t = e._fullLayout, r = t._zindices.length, n = t._subplots.cartesian, i = n.length, a, o, s, l, u, c, f = [], h = [];
+ for (a = 0; a < i; a++) {
+ s = n[a], l = t._plots[s], u = l.xaxis, c = l.yaxis;
+ var d = u._mainAxis, v = c._mainAxis, _ = d._id + v._id, b = t._plots[_];
+ l.overlays = [], _ !== s && b ? (l.mainplot = _, l.mainplotinfo = b, h.push(s)) : (l.mainplot = void 0, l.mainplotinfo = void 0, f.push(s));
+ }
+ for (a = 0; a < h.length; a++) s = h[a], l = t._plots[s], l.mainplotinfo.overlays.push(l);
+ var p = f.concat(h), k = [];
+ for (a = 0; a < i; a++) {
+ s = p[a], l = t._plots[s], u = l.xaxis, c = l.yaxis;
+ for (var E = [], T = 1; T <= r; T++) {
+ var L = "";
+ for (T > 1 && (L += n2 + T), E.push(s + L), o = 0; o < l.overlays.length; o++) E.push(l.overlays[o].id + L);
+ }
+ E = E.concat([u.layer, c.layer, u.overlaying || "", c.overlaying || ""]), k.push(E);
+ }
+ return k;
+ }
+ function ype(e, t) {
+ var r = e._fullLayout, n = t.plotgroup, i = t.id, a = i.indexOf(n2), o = a !== -1, s = qg.layerValue2layerClass[t.xaxis.layer], l = qg.layerValue2layerClass[t.yaxis.layer], u = r._hasOnlyLargeSploms, c = r._zindices.length > 1, f = t.mainplotinfo;
+ if (!t.mainplot || c) if (u) t.xlines = iu(n, "path", "xlines-above"), t.ylines = iu(n, "path", "ylines-above"), t.xaxislayer = iu(n, "g", "xaxislayer-above"), t.yaxislayer = iu(n, "g", "yaxislayer-above");
+ else {
+ if (!o) {
+ var h = iu(n, "g", "layer-subplot");
+ t.shapelayer = iu(h, "g", "shapelayer"), t.imagelayer = iu(h, "g", "imagelayer"), f && c ? (t.minorGridlayer = f.minorGridlayer, t.gridlayer = f.gridlayer, t.zerolinelayer = f.zerolinelayer) : (t.minorGridlayer = iu(n, "g", "minor-gridlayer"), t.gridlayer = iu(n, "g", "gridlayer"), t.zerolinelayer = iu(n, "g", "zerolinelayer"));
+ var d = iu(n, "g", "layer-between");
+ t.shapelayerBetween = iu(d, "g", "shapelayer"), t.imagelayerBetween = iu(d, "g", "imagelayer"), iu(n, "path", "xlines-below"), iu(n, "path", "ylines-below"), t.overlinesBelow = iu(n, "g", "overlines-below"), iu(n, "g", "xaxislayer-below"), iu(n, "g", "yaxislayer-below"), t.overaxesBelow = iu(n, "g", "overaxes-below");
+ }
+ t.overplot = iu(n, "g", "overplot"), t.plot = iu(t.overplot, "g", i), f && c ? t.zerolinelayerAbove = f.zerolinelayerAbove : t.zerolinelayerAbove = iu(n, "g", "zerolinelayer-above"), o || (t.xlines = iu(n, "path", "xlines-above"), t.ylines = iu(n, "path", "ylines-above"), t.overlinesAbove = iu(n, "g", "overlines-above"), iu(n, "g", "xaxislayer-above"), iu(n, "g", "yaxislayer-above"), t.overaxesAbove = iu(n, "g", "overaxes-above"), t.xlines = n.select(".xlines-" + s), t.ylines = n.select(".ylines-" + l), t.xaxislayer = n.select(".xaxislayer-" + s), t.yaxislayer = n.select(".yaxislayer-" + l));
+ }
+ else {
+ var v = f.plotgroup, _ = i + "-x", b = i + "-y";
+ t.minorGridlayer = f.minorGridlayer, t.gridlayer = f.gridlayer, t.zerolinelayer = f.zerolinelayer, t.zerolinelayerAbove = f.zerolinelayerAbove, iu(f.overlinesBelow, "path", _), iu(f.overlinesBelow, "path", b), iu(f.overaxesBelow, "g", _), iu(f.overaxesBelow, "g", b), t.plot = iu(f.overplot, "g", i), iu(f.overlinesAbove, "path", _), iu(f.overlinesAbove, "path", b), iu(f.overaxesAbove, "g", _), iu(f.overaxesAbove, "g", b), t.xlines = v.select(".overlines-" + s).select("." + _), t.ylines = v.select(".overlines-" + l).select("." + b), t.xaxislayer = v.select(".overaxes-" + s).select("." + _), t.yaxislayer = v.select(".overaxes-" + l).select("." + b);
+ }
+ o || (u || (yI(t.minorGridlayer, "g", t.xaxis._id), yI(t.minorGridlayer, "g", t.yaxis._id), t.minorGridlayer.selectAll("g").map(function(p) {
+ return p[0];
+ }).sort(S_.idSort), yI(t.gridlayer, "g", t.xaxis._id), yI(t.gridlayer, "g", t.yaxis._id), t.gridlayer.selectAll("g").map(function(p) {
+ return p[0];
+ }).sort(S_.idSort)), t.xlines.style("fill", "none").classed("crisp", true), t.ylines.style("fill", "none").classed("crisp", true));
+ }
+ function _pe(e, t) {
+ if (e) {
+ var r = {};
+ e.each(function(l) {
+ var u = l[0], c = _I.select(this);
+ c.remove(), xpe(u, t), r[u] = true;
+ });
+ for (var n in t._plots) for (var i = t._plots[n], a = i.overlays || [], o = 0; o < a.length; o++) {
+ var s = a[o];
+ r[s.id] && s.plot.selectAll(".trace").remove();
+ }
+ }
+ }
+ function xpe(e, t) {
+ t._draggers.selectAll("g." + e).remove(), t._defs.select("#clip" + t._uid + e + "plot").remove();
+ }
+ xv.toSVG = function(e) {
+ var t = e._fullLayout._glimages, r = _I.select(e).selectAll(".svg-container"), n = r.filter(function(a, o) {
+ return o === r.size() - 1;
+ }).selectAll(".gl-canvas-context, .gl-canvas-focus");
+ function i() {
+ var a = this, o = a.toDataURL("image/png"), s = t.append("svg:image");
+ s.attr({ xmlns: D0t.svg, "xlink:href": o, preserveAspectRatio: "none", x: 0, y: 0, width: a.style.width, height: a.style.height });
+ }
+ n.each(i);
+ };
+ xv.updateFx = WN().updateFx;
+ });
+ var wpe = ye((Fsr, bpe) => {
+ var xI = Ru();
+ bpe.exports = { hasLines: xI.hasLines, hasMarkers: xI.hasMarkers, hasText: xI.hasText, isBubble: xI.isBubble, attributes: pf(), layoutAttributes: tL(), supplyDefaults: Xde(), crossTraceDefaults: cU(), supplyLayoutDefaults: Jde(), calc: q0().calc, crossTraceCalc: wve(), arraysToCalcdata: Rm(), plot: dT(), colorbar: $d(), formatLabels: lI(), style: sp().style, styleOnSelect: sp().styleOnSelect, hoverPoints: mT(), selectPoints: yT(), animatable: true, moduleType: "trace", name: "scatter", basePlotModule: mh(), categories: ["cartesian", "svg", "symbols", "errorBarsOK", "showLegend", "scatter-like", "zoomScale"], meta: {} };
+ });
+ var Spe = ye((zsr, Ape) => {
+ var z0t = Oa(), O0t = ka(), Tpe = ON(), FU = Dr(), q0t = FU.strScale, B0t = FU.strRotate, N0t = FU.strTranslate;
+ Ape.exports = function(t, r, n) {
+ var i = t.node(), a = Tpe[n.arrowhead || 0], o = Tpe[n.startarrowhead || 0], s = (n.arrowwidth || 1) * (n.arrowsize || 1), l = (n.arrowwidth || 1) * (n.startarrowsize || 1), u = r.indexOf("start") >= 0, c = r.indexOf("end") >= 0, f = a.backoff * s + n.standoff, h = o.backoff * l + n.startstandoff, d, v, _, b;
+ if (i.nodeName === "line") {
+ d = { x: +t.attr("x1"), y: +t.attr("y1") }, v = { x: +t.attr("x2"), y: +t.attr("y2") };
+ var p = d.x - v.x, k = d.y - v.y;
+ if (_ = Math.atan2(k, p), b = _ + Math.PI, f && h && f + h > Math.sqrt(p * p + k * k)) {
+ U();
+ return;
+ }
+ if (f) {
+ if (f * f > p * p + k * k) {
+ U();
+ return;
+ }
+ var E = f * Math.cos(_), T = f * Math.sin(_);
+ v.x += E, v.y += T, t.attr({ x2: v.x, y2: v.y });
+ }
+ if (h) {
+ if (h * h > p * p + k * k) {
+ U();
+ return;
+ }
+ var L = h * Math.cos(_), x = h * Math.sin(_);
+ d.x -= L, d.y -= x, t.attr({ x1: d.x, y1: d.y });
+ }
+ } else if (i.nodeName === "path") {
+ var C = i.getTotalLength(), M = "";
+ if (C < f + h) {
+ U();
+ return;
+ }
+ var g = i.getPointAtLength(0), P = i.getPointAtLength(0.1);
+ _ = Math.atan2(g.y - P.y, g.x - P.x), d = i.getPointAtLength(Math.min(h, C)), M = "0px," + h + "px,";
+ var A = i.getPointAtLength(C), z = i.getPointAtLength(C - 0.1);
+ b = Math.atan2(A.y - z.y, A.x - z.x), v = i.getPointAtLength(Math.max(0, C - f));
+ var O = M ? h + f : f;
+ M += C - O + "px," + C + "px", t.style("stroke-dasharray", M);
+ }
+ function U() {
+ t.style("stroke-dasharray", "0px,100px");
+ }
+ function G(Z, j, N, H) {
+ Z.path && (Z.noRotate && (N = 0), z0t.select(i.parentNode).append("path").attr({ class: t.attr("class"), d: Z.path, transform: N0t(j.x, j.y) + B0t(N * 180 / Math.PI) + q0t(H) }).style({ fill: O0t.rgb(n.arrowcolor), "stroke-width": 0 }));
+ }
+ u && G(o, d, _, l), c && G(a, v, b, s);
+ };
+ });
+ var bI = ye((Osr, Lpe) => {
+ var Mpe = Oa(), zU = qa(), U0t = Mc(), E_ = Dr(), OU = E_.strTranslate, d4 = ho(), a2 = ka(), By = So(), Epe = vf(), qU = Zl(), BU = Eg(), h4 = yv(), V0t = vl().arrayEditor, G0t = Spe();
+ Lpe.exports = { draw: H0t, drawOne: kpe, drawRaw: Cpe };
+ function H0t(e) {
+ var t = e._fullLayout;
+ t._infolayer.selectAll(".annotation").remove();
+ for (var r = 0; r < t.annotations.length; r++) t.annotations[r].visible && kpe(e, r);
+ return U0t.previousPromises(e);
+ }
+ function kpe(e, t) {
+ var r = e._fullLayout, n = r.annotations[t] || {}, i = d4.getFromId(e, n.xref), a = d4.getFromId(e, n.yref);
+ i && i.setScale(), a && a.setScale(), Cpe(e, n, t, false, i, a);
+ }
+ function M_(e, t, r, n, i) {
+ var a = i[r], o = i[r + "ref"], s = r.indexOf("y") !== -1, l = d4.getRefType(o) === "domain", u = s ? n.h : n.w;
+ return e ? l ? a + (s ? -t : t) / e._length : e.p2r(e.r2p(a) + t) : a + (s ? -t : t) / u;
+ }
+ function Cpe(e, t, r, n, i, a) {
+ var o = e._fullLayout, s = e._fullLayout._size, l = e._context.edits, u, c;
+ n ? (u = "annotation-" + n, c = n + ".annotations") : (u = "annotation", c = "annotations");
+ var f = V0t(e.layout, c, t), h = f.modifyBase, d = f.modifyItem, v = f.getUpdateObj;
+ o._infolayer.selectAll("." + u + '[data-index="' + r + '"]').remove();
+ var _ = "clip" + o._uid + "_ann" + r;
+ if (!t._input || t.visible === false) {
+ Mpe.selectAll("#" + _).remove();
+ return;
+ }
+ var b = { x: {}, y: {} }, p = +t.textangle || 0, k = o._infolayer.append("g").classed(u, true).attr("data-index", String(r)).style("opacity", t.opacity), E = k.append("g").classed("annotation-text-g", true), T = l[t.showarrow ? "annotationTail" : "annotationPosition"], L = t.captureevents || l.annotationText || T;
+ function x(H) {
+ var re = { index: r, annotation: t._input, fullAnnotation: t, event: H };
+ return n && (re.subplotId = n), re;
+ }
+ var C = E.append("g").style("pointer-events", L ? "all" : null).call(BU, "pointer").on("click", function() {
+ e._dragging = false, e.emit("plotly_clickannotation", x(Mpe.event));
+ });
+ t.hovertext && C.on("mouseover", function() {
+ var H = t.hoverlabel, re = H.font, oe = this.getBoundingClientRect(), _e = e.getBoundingClientRect();
+ Epe.loneHover({ x0: oe.left - _e.left, x1: oe.right - _e.left, y: (oe.top + oe.bottom) / 2 - _e.top, text: t.hovertext, color: H.bgcolor, borderColor: H.bordercolor, fontFamily: re.family, fontSize: re.size, fontColor: re.color, fontWeight: re.weight, fontStyle: re.style, fontVariant: re.variant, fontShadow: re.fontShadow, fontLineposition: re.fontLineposition, fontTextcase: re.fontTextcase }, { container: o._hoverlayer.node(), outerContainer: o._paper.node(), gd: e });
+ }).on("mouseout", function() {
+ Epe.loneUnhover(o._hoverlayer.node());
+ });
+ var M = t.borderwidth, g = t.borderpad, P = M + g, A = C.append("rect").attr("class", "bg").style("stroke-width", M + "px").call(a2.stroke, t.bordercolor).call(a2.fill, t.bgcolor), z = t.width || t.height, O = o._topclips.selectAll("#" + _).data(z ? [0] : []);
+ O.enter().append("clipPath").classed("annclip", true).attr("id", _).append("rect"), O.exit().remove();
+ var U = t.font, G = o._meta ? E_.templateString(t.text, o._meta) : t.text, Z = C.append("text").classed("annotation-text", true).text(G);
+ function j(H) {
+ return H.call(By.font, U).attr({ "text-anchor": { left: "start", right: "end" }[t.align] || "middle" }), qU.convertToTspans(H, e, N), H;
+ }
+ function N() {
+ var H = Z.selectAll("a");
+ if (H.size() === 1 && H.text() === Z.text()) {
+ var re = C.insert("a", ":first-child").attr({ "xlink:xlink:href": H.attr("xlink:href"), "xlink:xlink:show": H.attr("xlink:show") }).style({ cursor: "pointer" });
+ re.node().appendChild(A.node());
+ }
+ var oe = C.select(".annotation-text-math-group"), _e = !oe.empty(), Ce = By.bBox((_e ? oe : Z).node()), Le = Ce.width, ge = Ce.height, ie = t.width || Le, Se = t.height || ge, Ee = Math.round(ie + 2 * P), Ae = Math.round(Se + 2 * P);
+ function Be(We, tt) {
+ return tt === "auto" && (We < 1 / 3 ? tt = "left" : We > 2 / 3 ? tt = "right" : tt = "center"), { center: 0, middle: 0, left: 0.5, bottom: -0.5, right: -0.5, top: 0.5 }[tt];
+ }
+ for (var Pe = false, me = ["x", "y"], De = 0; De < me.length; De++) {
+ var ce = me[De], je = t[ce + "ref"] || ce, lt = t["a" + ce + "ref"], pt = { x: i, y: a }[ce], Vt = (p + (ce === "x" ? 0 : -90)) * Math.PI / 180, ot = Ee * Math.cos(Vt), ut = Ae * Math.sin(Vt), Wt = Math.abs(ot) + Math.abs(ut), Nt = t[ce + "anchor"], $t = t[ce + "shift"] * (ce === "x" ? 1 : -1), sr = b[ce], Tr, fr, $e, St, Qt, Gt = d4.getRefType(je);
+ if (pt && Gt !== "domain") {
+ var _t = pt.r2fraction(t[ce]);
+ (_t < 0 || _t > 1) && (lt === je ? (_t = pt.r2fraction(t["a" + ce]), (_t < 0 || _t > 1) && (Pe = true)) : Pe = true), Tr = pt._offset + pt.r2p(t[ce]), St = 0.5;
+ } else {
+ var It = Gt === "domain";
+ ce === "x" ? ($e = t[ce], Tr = It ? pt._offset + pt._length * $e : Tr = s.l + s.w * $e) : ($e = 1 - t[ce], Tr = It ? pt._offset + pt._length * $e : Tr = s.t + s.h * $e), St = t.showarrow ? 0.5 : $e;
+ }
+ if (t.showarrow) {
+ sr.head = Tr;
+ var mt = t["a" + ce];
+ if (Qt = ot * Be(0.5, t.xanchor) - ut * Be(0.5, t.yanchor), lt === je) {
+ var er = d4.getRefType(lt);
+ er === "domain" ? (ce === "y" && (mt = 1 - mt), sr.tail = pt._offset + pt._length * mt) : er === "paper" ? ce === "y" ? (mt = 1 - mt, sr.tail = s.t + s.h * mt) : sr.tail = s.l + s.w * mt : sr.tail = pt._offset + pt.r2p(mt), fr = Qt;
+ } else sr.tail = Tr + mt, fr = Qt + mt;
+ sr.text = sr.tail + Qt;
+ var lr = o[ce === "x" ? "width" : "height"];
+ if (je === "paper" && (sr.head = E_.constrain(sr.head, 1, lr - 1)), lt === "pixel") {
+ var wr = -Math.max(sr.tail - 3, sr.text), Lr = Math.min(sr.tail + 3, sr.text) - lr;
+ wr > 0 ? (sr.tail += wr, sr.text += wr) : Lr > 0 && (sr.tail -= Lr, sr.text -= Lr);
+ }
+ sr.tail += $t, sr.head += $t;
+ } else Qt = Wt * Be(St, Nt), fr = Qt, sr.text = Tr + Qt;
+ sr.text += $t, Qt += $t, fr += $t, t["_" + ce + "padplus"] = Wt / 2 + fr, t["_" + ce + "padminus"] = Wt / 2 - fr, t["_" + ce + "size"] = Wt, t["_" + ce + "shift"] = Qt;
+ }
+ if (Pe) {
+ C.remove();
+ return;
+ }
+ var ti = 0, Br = 0;
+ if (t.align !== "left" && (ti = (ie - Le) * (t.align === "center" ? 0.5 : 1)), t.valign !== "top" && (Br = (Se - ge) * (t.valign === "middle" ? 0.5 : 1)), _e) oe.select("svg").attr({ x: P + ti - 1, y: P + Br }).call(By.setClipUrl, z ? _ : null, e);
+ else {
+ var Vr = P + Br - Ce.top, dt = P + ti - Ce.left;
+ Z.call(qU.positionText, dt, Vr).call(By.setClipUrl, z ? _ : null, e);
+ }
+ O.select("rect").call(By.setRect, P, P, ie, Se), A.call(By.setRect, M / 2, M / 2, Ee - M, Ae - M), C.call(By.setTranslate, Math.round(b.x.text - Ee / 2), Math.round(b.y.text - Ae / 2)), E.attr({ transform: "rotate(" + p + "," + b.x.text + "," + b.y.text + ")" });
+ var Ge = function(We, tt) {
+ k.selectAll(".annotation-arrow-g").remove();
+ var xt = b.x.head, Ie = b.y.head, xe = b.x.tail + We, ke = b.y.tail + tt, vt = b.x.text + We, ir = b.y.text + tt, ar = E_.rotationXYMatrix(p, vt, ir), vr = E_.apply2DTransform(ar), ii = E_.apply2DTransform2(ar), pi = +A.attr("width"), $r = +A.attr("height"), di = vt - 0.5 * pi, ji = di + pi, In = ir - 0.5 * $r, wi = In + $r, On = [[di, In, di, wi], [di, wi, ji, wi], [ji, wi, ji, In], [ji, In, di, In]].map(ii);
+ if (!On.reduce(function(Qr, Oi) {
+ return Qr ^ !!E_.segmentsIntersect(xt, Ie, xt + 1e6, Ie + 1e6, Oi[0], Oi[1], Oi[2], Oi[3]);
+ }, false)) {
+ On.forEach(function(Qr) {
+ var Oi = E_.segmentsIntersect(xe, ke, xt, Ie, Qr[0], Qr[1], Qr[2], Qr[3]);
+ Oi && (xe = Oi.x, ke = Oi.y);
+ });
+ var qn = t.arrowwidth, Fn = t.arrowcolor, ra = t.arrowside, la = k.append("g").style({ opacity: a2.opacity(Fn) }).classed("annotation-arrow-g", true), Ut = la.append("path").attr("d", "M" + xe + "," + ke + "L" + xt + "," + Ie).style("stroke-width", qn + "px").call(a2.stroke, a2.rgb(Fn));
+ if (G0t(Ut, ra, t), l.annotationPosition && Ut.node().parentNode && !n) {
+ var wt = xt, rr = Ie;
+ if (t.standoff) {
+ var nr = Math.sqrt(Math.pow(xt - xe, 2) + Math.pow(Ie - ke, 2));
+ wt += t.standoff * (xe - xt) / nr, rr += t.standoff * (ke - Ie) / nr;
+ }
+ var Er = la.append("path").classed("annotation-arrow", true).classed("anndrag", true).classed("cursor-move", true).attr({ d: "M3,3H-3V-3H3ZM0,0L" + (xe - wt) + "," + (ke - rr), transform: OU(wt, rr) }).style("stroke-width", qn + 6 + "px").call(a2.stroke, "rgba(0,0,0,0)").call(a2.fill, "rgba(0,0,0,0)"), Xr, ri;
+ h4.init({ element: Er.node(), gd: e, prepFn: function() {
+ var Qr = By.getTranslate(C);
+ Xr = Qr.x, ri = Qr.y, i && i.autorange && h(i._name + ".autorange", true), a && a.autorange && h(a._name + ".autorange", true);
+ }, moveFn: function(Qr, Oi) {
+ var $i = vr(Xr, ri), tn = $i[0] + Qr, fn = $i[1] + Oi;
+ C.call(By.setTranslate, tn, fn), d("x", M_(i, Qr, "x", s, t)), d("y", M_(a, Oi, "y", s, t)), t.axref === t.xref && d("ax", M_(i, Qr, "ax", s, t)), t.ayref === t.yref && d("ay", M_(a, Oi, "ay", s, t)), la.attr("transform", OU(Qr, Oi)), E.attr({ transform: "rotate(" + p + "," + tn + "," + fn + ")" });
+ }, doneFn: function() {
+ zU.call("_guiRelayout", e, v());
+ var Qr = document.querySelector(".js-notes-box-panel");
+ Qr && Qr.redraw(Qr.selectedObj);
+ } });
+ }
+ }
+ };
+ if (t.showarrow && Ge(0, 0), T) {
+ var Je;
+ h4.init({ element: C.node(), gd: e, prepFn: function() {
+ Je = E.attr("transform");
+ }, moveFn: function(We, tt) {
+ var xt = "pointer";
+ if (t.showarrow) t.axref === t.xref ? d("ax", M_(i, We, "ax", s, t)) : d("ax", t.ax + We), t.ayref === t.yref ? d("ay", M_(a, tt, "ay", s.w, t)) : d("ay", t.ay + tt), Ge(We, tt);
+ else {
+ if (n) return;
+ var Ie, xe;
+ if (i) Ie = M_(i, We, "x", s, t);
+ else {
+ var ke = t._xsize / s.w, vt = t.x + (t._xshift - t.xshift) / s.w - ke / 2;
+ Ie = h4.align(vt + We / s.w, ke, 0, 1, t.xanchor);
+ }
+ if (a) xe = M_(a, tt, "y", s, t);
+ else {
+ var ir = t._ysize / s.h, ar = t.y - (t._yshift + t.yshift) / s.h - ir / 2;
+ xe = h4.align(ar - tt / s.h, ir, 0, 1, t.yanchor);
+ }
+ d("x", Ie), d("y", xe), (!i || !a) && (xt = h4.getCursor(i ? 0.5 : Ie, a ? 0.5 : xe, t.xanchor, t.yanchor));
+ }
+ E.attr({ transform: OU(We, tt) + Je }), BU(C, xt);
+ }, clickFn: function(We, tt) {
+ t.captureevents && e.emit("plotly_clickannotation", x(tt));
+ }, doneFn: function() {
+ BU(C), zU.call("_guiRelayout", e, v());
+ var We = document.querySelector(".js-notes-box-panel");
+ We && We.redraw(We.selectedObj);
+ } });
+ }
+ }
+ l.annotationText ? Z.call(qU.makeEditable, { delegate: C, gd: e }).call(j).on("edit", function(H) {
+ t.text = H, this.call(j), d("text", H), i && i.autorange && h(i._name + ".autorange", true), a && a.autorange && h(a._name + ".autorange", true), zU.call("_guiRelayout", e, v());
+ }) : Z.call(j);
+ }
+ });
+ var zpe = ye((qsr, Fpe) => {
+ var Ppe = Dr(), j0t = qa(), Ipe = vl().arrayEditor;
+ Fpe.exports = { hasClickToShow: W0t, onClick: X0t };
+ function W0t(e, t) {
+ var r = Dpe(e, t);
+ return r.on.length > 0 || r.explicitOff.length > 0;
+ }
+ function X0t(e, t) {
+ var r = Dpe(e, t), n = r.on, i = r.off.concat(r.explicitOff), a = {}, o = e._fullLayout.annotations, s, l;
+ if (n.length || i.length) {
+ for (s = 0; s < n.length; s++) l = Ipe(e.layout, "annotations", o[n[s]]), l.modifyItem("visible", true), Ppe.extendFlat(a, l.getUpdateObj());
+ for (s = 0; s < i.length; s++) l = Ipe(e.layout, "annotations", o[i[s]]), l.modifyItem("visible", false), Ppe.extendFlat(a, l.getUpdateObj());
+ return j0t.call("update", e, {}, a);
+ }
+ }
+ function Dpe(e, t) {
+ var r = e._fullLayout.annotations, n = [], i = [], a = [], o = (t || []).length, s, l, u, c, f, h, d, v;
+ for (s = 0; s < r.length; s++) if (u = r[s], c = u.clicktoshow, c) {
+ for (l = 0; l < o; l++) if (f = t[l], h = f.xaxis, d = f.yaxis, h._id === u.xref && d._id === u.yref && h.d2r(f.x) === Rpe(u._xclick, h) && d.d2r(f.y) === Rpe(u._yclick, d)) {
+ u.visible ? c === "onout" ? v = i : v = a : v = n, v.push(s);
+ break;
+ }
+ l === o && u.visible && c === "onout" && i.push(s);
+ }
+ return { on: n, off: i, explicitOff: a };
+ }
+ function Rpe(e, t) {
+ return t.type === "log" ? t.l2r(e) : t.d2r(e);
+ }
+ });
+ var UU = ye((Bsr, Ope) => {
+ var NU = Dr(), _T = ka();
+ Ope.exports = function(t, r, n, i) {
+ i("opacity");
+ var a = i("bgcolor"), o = i("bordercolor"), s = _T.opacity(o);
+ i("borderpad");
+ var l = i("borderwidth"), u = i("showarrow");
+ i("text", u ? " " : n._dfltTitle.annotation), i("textangle"), NU.coerceFont(i, "font", n.font), i("width"), i("align");
+ var c = i("height");
+ if (c && i("valign"), u) {
+ var f = i("arrowside"), h, d;
+ f.indexOf("end") !== -1 && (h = i("arrowhead"), d = i("arrowsize")), f.indexOf("start") !== -1 && (i("startarrowhead", h), i("startarrowsize", d)), i("arrowcolor", s ? r.bordercolor : _T.defaultLine), i("arrowwidth", (s && l || 1) * 2), i("standoff"), i("startstandoff");
+ }
+ var v = i("hovertext"), _ = n.hoverlabel || {};
+ if (v) {
+ var b = i("hoverlabel.bgcolor", _.bgcolor || (_T.opacity(a) ? _T.rgb(a) : _T.defaultLine)), p = i("hoverlabel.bordercolor", _.bordercolor || _T.contrast(b)), k = NU.extendFlat({}, _.font);
+ k.color || (k.color = p), NU.coerceFont(i, "hoverlabel.font", k);
+ }
+ i("captureevents", !!v);
+ };
+ });
+ var Bpe = ye((Nsr, qpe) => {
+ var VU = Dr(), o2 = ho(), Z0t = Zd(), Y0t = UU(), K0t = Jb();
+ qpe.exports = function(t, r) {
+ Z0t(t, r, { name: "annotations", handleItemDefaults: J0t });
+ };
+ function J0t(e, t, r) {
+ function n(E, T) {
+ return VU.coerce(e, t, K0t, E, T);
+ }
+ var i = n("visible"), a = n("clicktoshow");
+ if (i || a) {
+ Y0t(e, t, r, n);
+ for (var o = t.showarrow, s = ["x", "y"], l = [-10, -30], u = { _fullLayout: r }, c = 0; c < 2; c++) {
+ var f = s[c], h = o2.coerceRef(e, t, u, f, "", "paper");
+ if (h !== "paper") {
+ var d = o2.getFromId(u, h);
+ d._annIndices.push(t._index);
+ }
+ if (o2.coercePosition(t, u, n, h, f, 0.5), o) {
+ var v = "a" + f, _ = o2.coerceRef(e, t, u, v, "pixel", ["pixel", "paper"]);
+ _ !== "pixel" && _ !== h && (_ = t[v] = "pixel");
+ var b = _ === "pixel" ? l[c] : 0.4;
+ o2.coercePosition(t, u, n, _, v, b);
+ }
+ n(f + "anchor"), n(f + "shift");
+ }
+ if (VU.noneOrAll(e, t, ["x", "y"]), o && VU.noneOrAll(e, t, ["ax", "ay"]), a) {
+ var p = n("xclick"), k = n("yclick");
+ t._xclick = p === void 0 ? t.x : o2.cleanPosition(p, u, t.xref), t._yclick = k === void 0 ? t.y : o2.cleanPosition(k, u, t.yref);
+ }
+ }
+ }
+ });
+ var Vpe = ye((Usr, Upe) => {
+ var GU = Dr(), s2 = ho(), $0t = bI().draw;
+ Upe.exports = function(t) {
+ var r = t._fullLayout, n = GU.filterVisible(r.annotations);
+ if (n.length && t._fullData.length) return GU.syncOrAsync([$0t, Q0t], t);
+ };
+ function Q0t(e) {
+ var t = e._fullLayout;
+ GU.filterVisible(t.annotations).forEach(function(r) {
+ var n = s2.getFromId(e, r.xref), i = s2.getFromId(e, r.yref), a = s2.getRefType(r.xref), o = s2.getRefType(r.yref);
+ r._extremes = {}, a === "range" && Npe(r, n), o === "range" && Npe(r, i);
+ });
+ }
+ function Npe(e, t) {
+ var r = t._id, n = r.charAt(0), i = e[n], a = e["a" + n], o = e[n + "ref"], s = e["a" + n + "ref"], l = e["_" + n + "padplus"], u = e["_" + n + "padminus"], c = { x: 1, y: -1 }[n] * e[n + "shift"], f = 3 * e.arrowsize * e.arrowwidth || 0, h = f + c, d = f - c, v = 3 * e.startarrowsize * e.arrowwidth || 0, _ = v + c, b = v - c, p;
+ if (s === o) {
+ var k = s2.findExtremes(t, [t.r2c(i)], { ppadplus: h, ppadminus: d }), E = s2.findExtremes(t, [t.r2c(a)], { ppadplus: Math.max(l, _), ppadminus: Math.max(u, b) });
+ p = { min: [k.min[0], E.min[0]], max: [k.max[0], E.max[0]] };
+ } else _ = a ? _ + a : _, b = a ? b - a : b, p = s2.findExtremes(t, [t.r2c(i)], { ppadplus: Math.max(l, h, _), ppadminus: Math.max(u, d, b) });
+ e._extremes[r] = p;
+ }
+ });
+ var Hpe = ye((Vsr, Gpe) => {
+ var egt = Eo(), tgt = S6();
+ Gpe.exports = function(t, r, n, i) {
+ r = r || {};
+ var a = n === "log" && r.type === "linear", o = n === "linear" && r.type === "log";
+ if (!(a || o)) return;
+ var s = t._fullLayout.annotations, l = r._id.charAt(0), u, c;
+ function f(d) {
+ var v = u[d], _ = null;
+ a ? _ = tgt(v, r.range) : _ = Math.pow(10, v), egt(_) || (_ = null), i(c + d, _);
+ }
+ for (var h = 0; h < s.length; h++) u = s[h], c = "annotations[" + h + "].", u[l + "ref"] === r._id && f(l), u["a" + l + "ref"] === r._id && f("a" + l);
+ };
+ });
+ var Xpe = ye((Gsr, Wpe) => {
+ var HU = bI(), jpe = zpe();
+ Wpe.exports = { moduleType: "component", name: "annotations", layoutAttributes: Jb(), supplyLayoutDefaults: Bpe(), includeBasePlot: WM()("annotations"), calcAutorange: Vpe(), draw: HU.draw, drawOne: HU.drawOne, drawRaw: HU.drawRaw, hasClickToShow: jpe.hasClickToShow, onClick: jpe.onClick, convertCoords: Hpe() };
+ });
+ var wI = ye((Hsr, Zpe) => {
+ var kc = Jb(), rgt = mc().overrideAll, igt = vl().templatedArray;
+ Zpe.exports = rgt(igt("annotation", { visible: kc.visible, x: { valType: "any" }, y: { valType: "any" }, z: { valType: "any" }, ax: { valType: "number" }, ay: { valType: "number" }, xanchor: kc.xanchor, xshift: kc.xshift, yanchor: kc.yanchor, yshift: kc.yshift, text: kc.text, textangle: kc.textangle, font: kc.font, width: kc.width, height: kc.height, opacity: kc.opacity, align: kc.align, valign: kc.valign, bgcolor: kc.bgcolor, bordercolor: kc.bordercolor, borderpad: kc.borderpad, borderwidth: kc.borderwidth, showarrow: kc.showarrow, arrowcolor: kc.arrowcolor, arrowhead: kc.arrowhead, startarrowhead: kc.startarrowhead, arrowside: kc.arrowside, arrowsize: kc.arrowsize, startarrowsize: kc.startarrowsize, arrowwidth: kc.arrowwidth, standoff: kc.standoff, startstandoff: kc.startstandoff, hovertext: kc.hovertext, hoverlabel: kc.hoverlabel, captureevents: kc.captureevents }), "calc", "from-root");
+ });
+ var Kpe = ye((jsr, Ype) => {
+ var jU = Dr(), ngt = ho(), agt = Zd(), ogt = UU(), sgt = wI();
+ Ype.exports = function(t, r, n) {
+ agt(t, r, { name: "annotations", handleItemDefaults: lgt, fullLayout: n.fullLayout });
+ };
+ function lgt(e, t, r, n) {
+ function i(s, l) {
+ return jU.coerce(e, t, sgt, s, l);
+ }
+ function a(s) {
+ var l = s + "axis", u = { _fullLayout: {} };
+ return u._fullLayout[l] = r[l], ngt.coercePosition(t, u, i, s, s, 0.5);
+ }
+ var o = i("visible");
+ o && (ogt(e, t, n.fullLayout, i), a("x"), a("y"), a("z"), jU.noneOrAll(e, t, ["x", "y", "z"]), t.xref = "x", t.yref = "y", t.zref = "z", i("xanchor"), i("yanchor"), i("xshift"), i("yshift"), t.showarrow && (t.axref = "pixel", t.ayref = "pixel", i("ax", -10), i("ay", -30), jU.noneOrAll(e, t, ["ax", "ay"])));
+ }
+ });
+ var e0e = ye((Wsr, Qpe) => {
+ var Jpe = Dr(), $pe = ho();
+ Qpe.exports = function(t) {
+ for (var r = t.fullSceneLayout, n = r.annotations, i = 0; i < n.length; i++) ugt(n[i], t);
+ t.fullLayout._infolayer.selectAll(".annotation-" + t.id).remove();
+ };
+ function ugt(e, t) {
+ var r = t.fullSceneLayout, n = r.domain, i = t.fullLayout._size, a = { pdata: null, type: "linear", autorange: false, range: [-1 / 0, 1 / 0] };
+ e._xa = {}, Jpe.extendFlat(e._xa, a), $pe.setConvert(e._xa), e._xa._offset = i.l + n.x[0] * i.w, e._xa.l2p = function() {
+ return 0.5 * (1 + e._pdata[0] / e._pdata[3]) * i.w * (n.x[1] - n.x[0]);
+ }, e._ya = {}, Jpe.extendFlat(e._ya, a), $pe.setConvert(e._ya), e._ya._offset = i.t + (1 - n.y[1]) * i.h, e._ya.l2p = function() {
+ return 0.5 * (1 - e._pdata[1] / e._pdata[3]) * i.h * (n.y[1] - n.y[0]);
+ };
+ }
+ });
+ var XU = ye((Xsr, t0e) => {
+ function WU(e, t) {
+ var r = [0, 0, 0, 0], n, i;
+ for (n = 0; n < 4; ++n) for (i = 0; i < 4; ++i) r[i] += e[4 * n + i] * t[n];
+ return r;
+ }
+ function cgt(e, t) {
+ var r = WU(e.projection, WU(e.view, WU(e.model, [t[0], t[1], t[2], 1])));
+ return r;
+ }
+ t0e.exports = cgt;
+ });
+ var i0e = ye((Zsr, r0e) => {
+ var fgt = bI().drawRaw, hgt = XU(), dgt = ["x", "y", "z"];
+ r0e.exports = function(t) {
+ for (var r = t.fullSceneLayout, n = t.dataScale, i = r.annotations, a = 0; a < i.length; a++) {
+ for (var o = i[a], s = false, l = 0; l < 3; l++) {
+ var u = dgt[l], c = o[u], f = r[u + "axis"], h = f.r2fraction(c);
+ if (h < 0 || h > 1) {
+ s = true;
+ break;
+ }
+ }
+ s ? t.fullLayout._infolayer.select(".annotation-" + t.id + '[data-index="' + a + '"]').remove() : (o._pdata = hgt(t.glplot.cameraParams, [r.xaxis.r2l(o.x) * n[0], r.yaxis.r2l(o.y) * n[1], r.zaxis.r2l(o.z) * n[2]]), fgt(t.graphDiv, o, a, t.id, o._xa, o._ya));
+ }
+ };
+ });
+ var o0e = ye((Ysr, a0e) => {
+ var vgt = qa(), n0e = Dr();
+ a0e.exports = { moduleType: "component", name: "annotations3d", schema: { subplots: { scene: { annotations: wI() } } }, layoutAttributes: wI(), handleDefaults: Kpe(), includeBasePlot: pgt, convert: e0e(), draw: i0e() };
+ function pgt(e, t) {
+ var r = vgt.subplotsRegistry.gl3d;
+ if (r) for (var n = r.attrRegex, i = Object.keys(e), a = 0; a < i.length; a++) {
+ var o = i[a];
+ n.test(o) && (e[o].annotations || []).length && (n0e.pushUnique(t._basePlotModules, r), n0e.pushUnique(t._subplots.gl3d, o));
+ }
+ }
+ });
+ var ZU = ye(($sr, c0e) => {
+ Rh();
+ var s0e = ec(), l0e = pf().line, ggt = Pd().dash, Bg = Ao().extendFlat, mgt = vl().templatedArray;
+ HM();
+ var xT = Gl(), u0e = Jb(), { shapeTexttemplateAttrs: ygt, templatefallbackAttrs: _gt } = Ll(), xgt = D6();
+ c0e.exports = mgt("shape", { visible: Bg({}, xT.visible, { editType: "calc+arraydraw" }), showlegend: { valType: "boolean", dflt: false, editType: "calc+arraydraw" }, legend: Bg({}, xT.legend, { editType: "calc+arraydraw" }), legendgroup: Bg({}, xT.legendgroup, { editType: "calc+arraydraw" }), legendgrouptitle: { text: Bg({}, xT.legendgrouptitle.text, { editType: "calc+arraydraw" }), font: s0e({ editType: "calc+arraydraw" }), editType: "calc+arraydraw" }, legendrank: Bg({}, xT.legendrank, { editType: "calc+arraydraw" }), legendwidth: Bg({}, xT.legendwidth, { editType: "calc+arraydraw" }), type: { valType: "enumerated", values: ["circle", "rect", "path", "line"], editType: "calc+arraydraw" }, layer: { valType: "enumerated", values: ["below", "above", "between"], dflt: "above", editType: "arraydraw" }, xref: Bg({}, u0e.xref, { arrayOk: true }), xsizemode: { valType: "enumerated", values: ["scaled", "pixel"], dflt: "scaled", editType: "calc+arraydraw" }, xanchor: { valType: "any", editType: "calc+arraydraw" }, x0: { valType: "any", editType: "calc+arraydraw" }, x1: { valType: "any", editType: "calc+arraydraw" }, x0shift: { valType: "number", dflt: 0, min: -1, max: 1, editType: "calc" }, x1shift: { valType: "number", dflt: 0, min: -1, max: 1, editType: "calc" }, yref: Bg({}, u0e.yref, { arrayOk: true }), ysizemode: { valType: "enumerated", values: ["scaled", "pixel"], dflt: "scaled", editType: "calc+arraydraw" }, yanchor: { valType: "any", editType: "calc+arraydraw" }, y0: { valType: "any", editType: "calc+arraydraw" }, y1: { valType: "any", editType: "calc+arraydraw" }, y0shift: { valType: "number", dflt: 0, min: -1, max: 1, editType: "calc" }, y1shift: { valType: "number", dflt: 0, min: -1, max: 1, editType: "calc" }, path: { valType: "string", editType: "calc+arraydraw" }, opacity: { valType: "number", min: 0, max: 1, dflt: 1, editType: "arraydraw" }, line: { color: Bg({}, l0e.color, { editType: "arraydraw" }), width: Bg({}, l0e.width, { editType: "calc+arraydraw" }), dash: Bg({}, ggt, { editType: "arraydraw" }), editType: "calc+arraydraw" }, fillcolor: { valType: "color", dflt: "rgba(0,0,0,0)", editType: "arraydraw" }, fillrule: { valType: "enumerated", values: ["evenodd", "nonzero"], dflt: "evenodd", editType: "arraydraw" }, editable: { valType: "boolean", dflt: false, editType: "calc+arraydraw" }, label: { text: { valType: "string", dflt: "", editType: "arraydraw" }, texttemplate: ygt({}, { keys: Object.keys(xgt) }), texttemplatefallback: _gt({ editType: "arraydraw" }), font: s0e({ editType: "calc+arraydraw", colorEditType: "arraydraw" }), 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"], editType: "arraydraw" }, textangle: { valType: "angle", dflt: "auto", editType: "calc+arraydraw" }, xanchor: { valType: "enumerated", values: ["auto", "left", "center", "right"], dflt: "auto", editType: "calc+arraydraw" }, yanchor: { valType: "enumerated", values: ["top", "middle", "bottom"], editType: "calc+arraydraw" }, padding: { valType: "number", dflt: 3, min: 0, editType: "arraydraw" }, editType: "arraydraw" }, editType: "arraydraw" });
+ });
+ var h0e = ye((Qsr, f0e) => {
+ var bT = Dr(), e0 = ho(), bgt = Zd(), wgt = ZU(), v4 = x_();
+ f0e.exports = function(t, r) {
+ bgt(t, r, { name: "shapes", handleItemDefaults: Agt });
+ };
+ function Tgt(e, t) {
+ return e ? "bottom" : t.indexOf("top") !== -1 ? "top" : t.indexOf("bottom") !== -1 ? "bottom" : "middle";
+ }
+ function Agt(e, t, r) {
+ function n(E, T) {
+ return bT.coerce(e, t, wgt, E, T);
+ }
+ t._isShape = true;
+ var i = n("visible");
+ if (!i) return;
+ var a = n("showlegend");
+ a && (n("legend"), n("legendwidth"), n("legendgroup"), n("legendgrouptitle.text"), bT.coerceFont(n, "legendgrouptitle.font"), n("legendrank"));
+ var o = n("path"), s = o ? "path" : "rect", l = n("type", s), u = l !== "path";
+ u && delete t.path, n("editable"), n("layer"), n("opacity"), n("fillcolor"), n("fillrule");
+ var c = n("line.width");
+ c && (n("line.color"), n("line.dash"));
+ var f = n("xsizemode"), h = n("ysizemode");
+ let d = [0.25, 0.75], v = [0, 10];
+ ["x", "y"].forEach((E) => {
+ var T = E + "anchor", L = E === "x" ? f : h, x = { _fullLayout: r }, C, M, g, P;
+ let A = E + "ref", z = e[A];
+ if (Array.isArray(z) && z.length > 0) {
+ let O = v4.countDefiningCoords(l, o, E);
+ P = e0.coerceRefArray(e, t, x, E, void 0, "paper", O), t["_" + E + "refArray"] = true;
+ } else P = e0.coerceRef(e, t, x, E, void 0, "paper");
+ if (Array.isArray(P)) P.forEach(function(O) {
+ e0.getRefType(O) === "range" && (C = e0.getFromId(x, O), C && C._shapeIndices.indexOf(t._index) === -1 && C._shapeIndices.push(t._index));
+ }), u && [0, 1].forEach(function(O) {
+ let U = P[O];
+ e0.getRefType(U) === "range" ? (C = e0.getFromId(x, U), M = v4.shapePositionToRange(C), g = v4.rangeToShapePosition(C), (C.type === "category" || C.type === "multicategory") && n(E + O + "shift")) : M = g = bT.identity;
+ let Z = E + O, j = e[Z];
+ if (e[Z] = M(e[Z], true), L === "pixel" ? n(Z, v[O]) : e0.coercePosition(t, x, n, U, Z, d[O]), t[Z] = g(t[Z]), e[Z] = j, O === 0 && L === "pixel") {
+ let N = e[T];
+ e[T] = M(e[T], true), e0.coercePosition(t, x, n, U, T, 0.25), t[T] = g(t[T]), e[T] = N;
+ }
+ });
+ else {
+ if (e0.getRefType(P) === "range" ? (C = e0.getFromId(x, P), C._shapeIndices.push(t._index), g = v4.rangeToShapePosition(C), M = v4.shapePositionToRange(C), u && (C.type === "category" || C.type === "multicategory") && (n(E + "0shift"), n(E + "1shift"))) : M = g = bT.identity, u) {
+ let U = E + "0", G = E + "1", Z = e[U], j = e[G];
+ e[U] = M(e[U], true), e[G] = M(e[G], true), L === "pixel" ? (n(U, v[0]), n(G, v[1])) : (e0.coercePosition(t, x, n, P, U, d[0]), e0.coercePosition(t, x, n, P, G, d[1])), t[U] = g(t[U]), t[G] = g(t[G]), e[U] = Z, e[G] = j;
+ }
+ if (L === "pixel") {
+ let U = e[T];
+ e[T] = M(e[T], true), e0.coercePosition(t, x, n, P, T, 0.25), t[T] = g(t[T]), e[T] = U;
+ }
+ }
+ }), u && bT.noneOrAll(e, t, ["x0", "x1", "y0", "y1"]);
+ var _ = l === "line", b, p;
+ if (u && (b = n("label.texttemplate"), n("label.texttemplatefallback")), b || (p = n("label.text")), p || b) {
+ n("label.textangle");
+ var k = n("label.textposition", _ ? "middle" : "middle center");
+ n("label.xanchor"), n("label.yanchor", Tgt(_, k)), n("label.padding"), bT.coerceFont(n, "label.font", r.font);
+ }
+ }
+ });
+ var p0e = ye((elr, v0e) => {
+ var Sgt = ka(), d0e = Dr();
+ function Mgt(e, t) {
+ return e ? "bottom" : t.indexOf("top") !== -1 ? "top" : t.indexOf("bottom") !== -1 ? "bottom" : "middle";
+ }
+ v0e.exports = function(t, r, n) {
+ n("newshape.visible"), n("newshape.name"), n("newshape.showlegend"), n("newshape.legend"), n("newshape.legendwidth"), n("newshape.legendgroup"), n("newshape.legendgrouptitle.text"), d0e.coerceFont(n, "newshape.legendgrouptitle.font"), n("newshape.legendrank"), n("newshape.drawdirection"), n("newshape.layer"), n("newshape.fillcolor"), n("newshape.fillrule"), n("newshape.opacity");
+ var i = n("newshape.line.width");
+ if (i) {
+ var a = (t || {}).plot_bgcolor || "#FFF";
+ n("newshape.line.color", Sgt.contrast(a)), n("newshape.line.dash");
+ }
+ var o = t.dragmode === "drawline", s = n("newshape.label.text"), l = n("newshape.label.texttemplate");
+ if (n("newshape.label.texttemplatefallback"), s || l) {
+ n("newshape.label.textangle");
+ var u = n("newshape.label.textposition", o ? "middle" : "middle center");
+ n("newshape.label.xanchor"), n("newshape.label.yanchor", Mgt(o, u)), n("newshape.label.padding"), d0e.coerceFont(n, "newshape.label.font", r.font);
+ }
+ n("activeshape.fillcolor"), n("activeshape.opacity");
+ };
+ });
+ var w0e = ye((tlr, b0e) => {
+ var YU = Dr(), N0 = ho(), Fm = TM(), KU = x_();
+ b0e.exports = function(t) {
+ var r = t._fullLayout, n = YU.filterVisible(r.shapes);
+ if (!(!n.length || !t._fullData.length)) for (var i = 0; i < n.length; i++) {
+ var a = n[i];
+ a._extremes = {};
+ var o, s, l = N0.getRefType(a.xref), u = N0.getRefType(a.yref);
+ if (l === "array") {
+ let c = g0e(t, a, "x");
+ Object.entries(c).forEach(([f, h]) => {
+ o = N0.getFromId(t, f), a._extremes[o._id] = N0.findExtremes(o, h, m0e(a));
+ });
+ } else a.xref !== "paper" && l !== "domain" && (o = N0.getFromId(t, a.xref), s = _0e(o, a, Fm.paramIsX), s && (a._extremes[o._id] = N0.findExtremes(o, s, m0e(a))));
+ if (u === "array") {
+ let c = g0e(t, a, "y");
+ Object.entries(c).forEach(([f, h]) => {
+ o = N0.getFromId(t, f), a._extremes[o._id] = N0.findExtremes(o, h, y0e(a));
+ });
+ } else a.yref !== "paper" && u !== "domain" && (o = N0.getFromId(t, a.yref), s = _0e(o, a, Fm.paramIsY), s && (a._extremes[o._id] = N0.findExtremes(o, s, y0e(a))));
+ }
+ };
+ function g0e(e, t, r) {
+ let n = t[r + "ref"], i = r === "x" ? Fm.paramIsX : Fm.paramIsY;
+ function a(f, h) {
+ f === "paper" || N0.getRefType(f) === "domain" || (o[f] || (o[f] = []), o[f].push(h));
+ }
+ let o = {};
+ if (t.type === "path" && t.path) {
+ let f = t.path.match(Fm.segmentRE) || [];
+ for (var s = 0, l = 0; l < f.length; l++) {
+ let h = f[l], d = h.charAt(0), v = i[d].drawn;
+ if (v === void 0) continue;
+ let _ = h.slice(1).match(Fm.paramRE);
+ _ && _.length > v && (a(n[s], _[v]), s++);
+ }
+ } else a(n[0], t[r + "0"]), a(n[1], t[r + "1"]);
+ let u = {};
+ for (let f in o) {
+ let h = N0.getFromId(e, f);
+ if (h) {
+ var c = h.type === "category" || h.type === "multicategory" ? h.r2c : h.d2c;
+ h.type === "date" && (c = KU.decodeDate(c)), u[h._id] = o[f].map(c);
+ }
+ }
+ return u;
+ }
+ function m0e(e) {
+ return x0e(e.line.width, e.xsizemode, e.x0, e.x1, e.path, false);
+ }
+ function y0e(e) {
+ return x0e(e.line.width, e.ysizemode, e.y0, e.y1, e.path, true);
+ }
+ function x0e(e, t, r, n, i, a) {
+ var o = e / 2, s = a;
+ if (t === "pixel") {
+ var l = i ? KU.extractPathCoords(i, a ? Fm.paramIsY : Fm.paramIsX) : [r, n], u = YU.aggNums(Math.max, null, l), c = YU.aggNums(Math.min, null, l), f = c < 0 ? Math.abs(c) + o : o, h = u > 0 ? u + o : o;
+ return { ppad: o, ppadplus: s ? f : h, ppadminus: s ? h : f };
+ } else return { ppad: o };
+ }
+ function _0e(e, t, r) {
+ var n = e._id.charAt(0) === "x" ? "x" : "y", i = e.type === "category" || e.type === "multicategory", a, o, s = 0, l = 0, u = i ? e.r2c : e.d2c, c = t[n + "sizemode"] === "scaled";
+ if (c ? (a = t[n + "0"], o = t[n + "1"], i && (s = t[n + "0shift"], l = t[n + "1shift"])) : (a = t[n + "anchor"], o = t[n + "anchor"]), a !== void 0) return [u(a) + s, u(o) + l];
+ if (t.path) {
+ var f = 1 / 0, h = -1 / 0, d = t.path.match(Fm.segmentRE), v, _, b, p, k;
+ for (e.type === "date" && (u = KU.decodeDate(u)), v = 0; v < d.length; v++) _ = d[v], b = r[_.charAt(0)].drawn, b !== void 0 && (p = d[v].slice(1).match(Fm.paramRE), !(!p || p.length < b) && (k = u(p[b]), k < f && (f = k), k > h && (h = k)));
+ if (h >= f) return [f, h];
+ }
+ }
+ });
+ var S0e = ye((rlr, A0e) => {
+ var T0e = dP();
+ A0e.exports = { moduleType: "component", name: "shapes", layoutAttributes: ZU(), supplyLayoutDefaults: h0e(), supplyDrawNewShapeDefaults: p0e(), includeBasePlot: WM()("shapes"), calcAutorange: w0e(), draw: T0e.draw, drawOne: T0e.drawOne };
+ });
+ var JU = ye((nlr, E0e) => {
+ var M0e = Rh(), Egt = vl().templatedArray;
+ HM();
+ E0e.exports = Egt("image", { visible: { valType: "boolean", dflt: true, editType: "arraydraw" }, source: { valType: "string", editType: "arraydraw" }, layer: { valType: "enumerated", values: ["below", "above"], dflt: "above", editType: "arraydraw" }, sizex: { valType: "number", dflt: 0, editType: "arraydraw" }, sizey: { valType: "number", dflt: 0, editType: "arraydraw" }, sizing: { valType: "enumerated", values: ["fill", "contain", "stretch"], dflt: "contain", editType: "arraydraw" }, opacity: { valType: "number", min: 0, max: 1, dflt: 1, editType: "arraydraw" }, x: { valType: "any", dflt: 0, editType: "arraydraw" }, y: { valType: "any", dflt: 0, editType: "arraydraw" }, xanchor: { valType: "enumerated", values: ["left", "center", "right"], dflt: "left", editType: "arraydraw" }, yanchor: { valType: "enumerated", values: ["top", "middle", "bottom"], dflt: "top", editType: "arraydraw" }, xref: { valType: "enumerated", values: ["paper", M0e.idRegex.x.toString()], dflt: "paper", editType: "arraydraw" }, yref: { valType: "enumerated", values: ["paper", M0e.idRegex.y.toString()], dflt: "paper", editType: "arraydraw" }, editType: "arraydraw" });
+ });
+ var C0e = ye((alr, k0e) => {
+ var kgt = Dr(), $U = ho(), Cgt = Zd(), Lgt = JU(), Pgt = "images";
+ k0e.exports = function(t, r) {
+ var n = { name: Pgt, handleItemDefaults: Igt };
+ Cgt(t, r, n);
+ };
+ function Igt(e, t, r) {
+ function n(h, d) {
+ return kgt.coerce(e, t, Lgt, h, d);
+ }
+ var i = n("source"), a = n("visible", !!i);
+ if (!a) return t;
+ n("layer"), n("xanchor"), n("yanchor"), n("sizex"), n("sizey"), n("sizing"), n("opacity");
+ for (var o = { _fullLayout: r }, s = ["x", "y"], l = 0; l < 2; l++) {
+ var u = s[l], c = $U.coerceRef(e, t, o, u, "paper", void 0);
+ if (c !== "paper") {
+ var f = $U.getFromId(o, c);
+ f._imgIndices.push(t._index);
+ }
+ $U.coercePosition(t, o, n, c, u, 0);
+ }
+ return t;
+ }
+ });
+ var R0e = ye((olr, I0e) => {
+ var L0e = Oa(), Rgt = So(), wT = ho(), P0e = hf(), Dgt = Wp();
+ I0e.exports = function(t) {
+ var r = t._fullLayout, n = [], i = {}, a = [], o, s;
+ for (s = 0; s < r.images.length; s++) {
+ var l = r.images[s];
+ if (l.visible) if (l.layer === "below" && l.xref !== "paper" && l.yref !== "paper") {
+ o = P0e.ref2id(l.xref) + P0e.ref2id(l.yref);
+ var u = r._plots[o];
+ if (!u) {
+ a.push(l);
+ continue;
+ }
+ u.mainplot && (o = u.mainplot.id), i[o] || (i[o] = []), i[o].push(l);
+ } else l.layer === "above" ? n.push(l) : a.push(l);
+ }
+ var c = { x: { left: { sizing: "xMin", offset: 0 }, center: { sizing: "xMid", offset: -1 / 2 }, right: { sizing: "xMax", offset: -1 } }, y: { top: { sizing: "YMin", offset: 0 }, middle: { sizing: "YMid", offset: -1 / 2 }, bottom: { sizing: "YMax", offset: -1 } } };
+ function f(T) {
+ var L = L0e.select(this);
+ if (this._imgSrc !== T.source) if (L.attr("xmlns", Dgt.svg), !t._context.staticPlot || T.source && T.source.slice(0, 5) === "data:") L.attr("xlink:href", T.source), this._imgSrc = T.source;
+ else {
+ var x = new Promise((function(C) {
+ var M = new Image();
+ this.img = M, M.setAttribute("crossOrigin", "anonymous"), M.onerror = g, M.onload = function() {
+ var P = document.createElement("canvas");
+ P.width = this.width, P.height = this.height;
+ var A = P.getContext("2d", { willReadFrequently: true });
+ A.drawImage(this, 0, 0);
+ var z = P.toDataURL("image/png");
+ L.attr("xlink:href", z), C();
+ }, L.on("error", g), M.src = T.source, this._imgSrc = T.source;
+ function g() {
+ L.remove(), C();
+ }
+ }).bind(this));
+ t._promises.push(x);
+ }
+ }
+ function h(T) {
+ var L = L0e.select(this), x = wT.getFromId(t, T.xref), C = wT.getFromId(t, T.yref), M = wT.getRefType(T.xref) === "domain", g = wT.getRefType(T.yref) === "domain", P = r._size, A, z;
+ x !== void 0 ? A = typeof T.xref == "string" && M ? x._length * T.sizex : Math.abs(x.l2p(T.sizex) - x.l2p(0)) : A = T.sizex * P.w, C !== void 0 ? z = typeof T.yref == "string" && g ? C._length * T.sizey : Math.abs(C.l2p(T.sizey) - C.l2p(0)) : z = T.sizey * P.h;
+ var O = A * c.x[T.xanchor].offset, U = z * c.y[T.yanchor].offset, G = c.x[T.xanchor].sizing + c.y[T.yanchor].sizing, Z, j;
+ switch (x !== void 0 ? Z = typeof T.xref == "string" && M ? x._length * T.x + x._offset : x.r2p(T.x) + x._offset : Z = T.x * P.w + P.l, Z += O, C !== void 0 ? j = typeof T.yref == "string" && g ? C._length * (1 - T.y) + C._offset : C.r2p(T.y) + C._offset : j = P.h - T.y * P.h + P.t, j += U, T.sizing) {
+ case "fill":
+ G += " slice";
+ break;
+ case "stretch":
+ G = "none";
+ break;
+ }
+ L.attr({ x: Z, y: j, width: A, height: z, preserveAspectRatio: G, opacity: T.opacity });
+ var N = x && wT.getRefType(T.xref) !== "domain" ? x._id : "", H = C && wT.getRefType(T.yref) !== "domain" ? C._id : "", re = N + H;
+ Rgt.setClipUrl(L, re ? "clip" + r._uid + re : null, t);
+ }
+ function d(T) {
+ return [T.xref, T.x, T.sizex, T.yref, T.y, T.sizey].join("_");
+ }
+ function v(T, L) {
+ return T._index - L._index;
+ }
+ var _ = r._imageLowerLayer.selectAll("image").data(a, d), b = r._imageUpperLayer.selectAll("image").data(n, d);
+ _.enter().append("image"), b.enter().append("image"), _.exit().remove(), b.exit().remove(), _.each(function(T) {
+ f.bind(this)(T), h.bind(this)(T);
+ }), b.each(function(T) {
+ f.bind(this)(T), h.bind(this)(T);
+ }), _.sort(v), b.sort(v);
+ var p = Object.keys(r._plots);
+ for (s = 0; s < p.length; s++) {
+ o = p[s];
+ var k = r._plots[o];
+ if (k.imagelayer) {
+ var E = k.imagelayer.selectAll("image").data(i[o] || [], d);
+ E.enter().append("image"), E.exit().remove(), E.each(function(T) {
+ f.bind(this)(T), h.bind(this)(T);
+ }), E.sort(v);
+ }
+ }
+ };
+ });
+ var z0e = ye((slr, F0e) => {
+ var D0e = Eo(), Fgt = S6();
+ F0e.exports = function(t, r, n, i) {
+ r = r || {};
+ var a = n === "log" && r.type === "linear", o = n === "linear" && r.type === "log";
+ if (a || o) {
+ for (var s = t._fullLayout.images, l = r._id.charAt(0), u, c, f = 0; f < s.length; f++) if (u = s[f], c = "images[" + f + "].", u[l + "ref"] === r._id) {
+ var h = u[l], d = u["size" + l], v = null, _ = null;
+ if (a) {
+ v = Fgt(h, r.range);
+ var b = d / Math.pow(10, v) / 2;
+ _ = 2 * Math.log(b + Math.sqrt(1 + b * b)) / Math.LN10;
+ } else v = Math.pow(10, h), _ = v * (Math.pow(10, d / 2) - Math.pow(10, -d / 2));
+ D0e(v) ? D0e(_) || (_ = null) : (v = null, _ = null), i(c + l, v), i(c + "size" + l, _);
+ }
+ }
+ };
+ });
+ var q0e = ye((llr, O0e) => {
+ O0e.exports = { moduleType: "component", name: "images", layoutAttributes: JU(), supplyLayoutDefaults: C0e(), includeBasePlot: WM()("images"), draw: R0e(), convertCoords: z0e() };
+ });
+ var TI = ye((ulr, B0e) => {
+ B0e.exports = { name: "updatemenus", containerClassName: "updatemenu-container", headerGroupClassName: "updatemenu-header-group", headerClassName: "updatemenu-header", headerArrowClassName: "updatemenu-header-arrow", dropdownButtonGroupClassName: "updatemenu-dropdown-button-group", dropdownButtonClassName: "updatemenu-dropdown-button", buttonClassName: "updatemenu-button", itemRectClassName: "updatemenu-item-rect", itemTextClassName: "updatemenu-item-text", menuIndexAttrName: "updatemenu-active-index", autoMarginIdRoot: "updatemenu-", blankHeaderOpts: { label: " " }, minWidth: 30, minHeight: 30, textPadX: 24, arrowPadX: 16, rx: 2, ry: 2, textOffsetX: 12, textOffsetY: 3, arrowOffsetX: 4, gapButtonHeader: 5, gapButton: 2, activeColor: "#F4FAFF", hoverColor: "#F4FAFF", arrowSymbol: { left: "◄", right: "►", up: "▲", down: "▼" } };
+ });
+ var QU = ye((clr, U0e) => {
+ var zgt = ec(), Ogt = Ih(), qgt = Ao().extendFlat, Bgt = mc().overrideAll, Ngt = F6(), N0e = vl().templatedArray, Ugt = N0e("button", { visible: { valType: "boolean" }, method: { valType: "enumerated", values: ["restyle", "relayout", "animate", "update", "skip"], dflt: "restyle" }, args: { valType: "info_array", freeLength: true, items: [{ valType: "any" }, { valType: "any" }, { valType: "any" }] }, args2: { valType: "info_array", freeLength: true, items: [{ valType: "any" }, { valType: "any" }, { valType: "any" }] }, label: { valType: "string", dflt: "" }, execute: { valType: "boolean", dflt: true } });
+ U0e.exports = Bgt(N0e("updatemenu", { _arrayAttrRegexps: [/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/], visible: { valType: "boolean" }, type: { valType: "enumerated", values: ["dropdown", "buttons"], dflt: "dropdown" }, direction: { valType: "enumerated", values: ["left", "right", "up", "down"], dflt: "down" }, active: { valType: "integer", min: -1, dflt: 0 }, showactive: { valType: "boolean", dflt: true }, buttons: Ugt, x: { valType: "number", min: -2, max: 3, dflt: -0.05 }, xanchor: { valType: "enumerated", values: ["auto", "left", "center", "right"], dflt: "right" }, y: { valType: "number", min: -2, max: 3, dflt: 1 }, yanchor: { valType: "enumerated", values: ["auto", "top", "middle", "bottom"], dflt: "top" }, pad: qgt(Ngt({ editType: "arraydraw" }), {}), font: zgt({}), bgcolor: { valType: "color" }, bordercolor: { valType: "color", dflt: Ogt.borderLine }, borderwidth: { valType: "number", min: 0, dflt: 1, editType: "arraydraw" } }), "arraydraw", "from-root");
+ });
+ var j0e = ye((flr, H0e) => {
+ var AI = Dr(), V0e = Zd(), G0e = QU(), Vgt = TI(), Ggt = Vgt.name, Hgt = G0e.buttons;
+ H0e.exports = function(t, r) {
+ var n = { name: Ggt, handleItemDefaults: jgt };
+ V0e(t, r, n);
+ };
+ function jgt(e, t, r) {
+ function n(o, s) {
+ return AI.coerce(e, t, G0e, o, s);
+ }
+ var i = V0e(e, t, { name: "buttons", handleItemDefaults: Wgt }), a = n("visible", i.length > 0);
+ a && (n("active"), n("direction"), n("type"), n("showactive"), n("x"), n("y"), AI.noneOrAll(e, t, ["x", "y"]), n("xanchor"), n("yanchor"), n("pad.t"), n("pad.r"), n("pad.b"), n("pad.l"), AI.coerceFont(n, "font", r.font), n("bgcolor", r.paper_bgcolor), n("bordercolor"), n("borderwidth"));
+ }
+ function Wgt(e, t) {
+ function r(i, a) {
+ return AI.coerce(e, t, Hgt, i, a);
+ }
+ var n = r("visible", e.method === "skip" || Array.isArray(e.args));
+ n && (r("method"), r("args"), r("args2"), r("label"), r("execute"));
+ }
+ });
+ var Z0e = ye((hlr, X0e) => {
+ X0e.exports = Mf;
+ var Ng = Oa(), W0e = ka(), TT = So(), SI = Dr();
+ function Mf(e, t, r) {
+ this.gd = e, this.container = t, this.id = r, this.position = null, this.translateX = null, this.translateY = null, this.hbar = null, this.vbar = null, this.bg = this.container.selectAll("rect.scrollbox-bg").data([0]), this.bg.exit().on(".drag", null).on("wheel", null).remove(), this.bg.enter().append("rect").classed("scrollbox-bg", true).style("pointer-events", "all").attr({ opacity: 0, x: 0, y: 0, width: 0, height: 0 });
+ }
+ Mf.barWidth = 2;
+ Mf.barLength = 20;
+ Mf.barRadius = 2;
+ Mf.barPad = 1;
+ Mf.barColor = "#808BA4";
+ Mf.prototype.enable = function(t, r, n) {
+ var i = this.gd._fullLayout, a = i.width, o = i.height;
+ this.position = t;
+ var s = this.position.l, l = this.position.w, u = this.position.t, c = this.position.h, f = this.position.direction, h = f === "down", d = f === "left", v = f === "right", _ = f === "up", b = l, p = c, k, E, T, L;
+ !h && !d && !v && !_ && (this.position.direction = "down", h = true);
+ var x = h || _;
+ x ? (k = s, E = k + b, h ? (T = u, L = Math.min(T + p, o), p = L - T) : (L = u + p, T = Math.max(L - p, 0), p = L - T)) : (T = u, L = T + p, d ? (E = s + b, k = Math.max(E - b, 0), b = E - k) : (k = s, E = Math.min(k + b, a), b = E - k)), this._box = { l: k, t: T, w: b, h: p };
+ var C = l > b, M = Mf.barLength + 2 * Mf.barPad, g = Mf.barWidth + 2 * Mf.barPad, P = s, A = u + c;
+ A + g > o && (A = o - g);
+ var z = this.container.selectAll("rect.scrollbar-horizontal").data(C ? [0] : []);
+ z.exit().on(".drag", null).remove(), z.enter().append("rect").classed("scrollbar-horizontal", true).call(W0e.fill, Mf.barColor), C ? (this.hbar = z.attr({ rx: Mf.barRadius, ry: Mf.barRadius, x: P, y: A, width: M, height: g }), this._hbarXMin = P + M / 2, this._hbarTranslateMax = b - M) : (delete this.hbar, delete this._hbarXMin, delete this._hbarTranslateMax);
+ var O = c > p, U = Mf.barWidth + 2 * Mf.barPad, G = Mf.barLength + 2 * Mf.barPad, Z = s + l, j = u;
+ Z + U > a && (Z = a - U);
+ var N = this.container.selectAll("rect.scrollbar-vertical").data(O ? [0] : []);
+ N.exit().on(".drag", null).remove(), N.enter().append("rect").classed("scrollbar-vertical", true).call(W0e.fill, Mf.barColor), O ? (this.vbar = N.attr({ rx: Mf.barRadius, ry: Mf.barRadius, x: Z, y: j, width: U, height: G }), this._vbarYMin = j + G / 2, this._vbarTranslateMax = p - G) : (delete this.vbar, delete this._vbarYMin, delete this._vbarTranslateMax);
+ var H = this.id, re = k - 0.5, oe = O ? E + U + 0.5 : E + 0.5, _e = T - 0.5, Ce = C ? L + g + 0.5 : L + 0.5, Le = i._topdefs.selectAll("#" + H).data(C || O ? [0] : []);
+ if (Le.exit().remove(), Le.enter().append("clipPath").attr("id", H).append("rect"), C || O ? (this._clipRect = Le.select("rect").attr({ x: Math.floor(re), y: Math.floor(_e), width: Math.ceil(oe) - Math.floor(re), height: Math.ceil(Ce) - Math.floor(_e) }), this.container.call(TT.setClipUrl, H, this.gd), this.bg.attr({ x: s, y: u, width: l, height: c })) : (this.bg.attr({ width: 0, height: 0 }), this.container.on("wheel", null).on(".drag", null).call(TT.setClipUrl, null), delete this._clipRect), C || O) {
+ var ge = Ng.behavior.drag().on("dragstart", function() {
+ Ng.event.sourceEvent.preventDefault();
+ }).on("drag", this._onBoxDrag.bind(this));
+ this.container.on("wheel", null).on("wheel", this._onBoxWheel.bind(this)).on(".drag", null).call(ge);
+ var ie = Ng.behavior.drag().on("dragstart", function() {
+ Ng.event.sourceEvent.preventDefault(), Ng.event.sourceEvent.stopPropagation();
+ }).on("drag", this._onBarDrag.bind(this));
+ C && this.hbar.on(".drag", null).call(ie), O && this.vbar.on(".drag", null).call(ie);
+ }
+ this.setTranslate(r, n);
+ };
+ Mf.prototype.disable = function() {
+ (this.hbar || this.vbar) && (this.bg.attr({ width: 0, height: 0 }), this.container.on("wheel", null).on(".drag", null).call(TT.setClipUrl, null), delete this._clipRect), this.hbar && (this.hbar.on(".drag", null), this.hbar.remove(), delete this.hbar, delete this._hbarXMin, delete this._hbarTranslateMax), this.vbar && (this.vbar.on(".drag", null), this.vbar.remove(), delete this.vbar, delete this._vbarYMin, delete this._vbarTranslateMax);
+ };
+ Mf.prototype._onBoxDrag = function() {
+ var t = this.translateX, r = this.translateY;
+ this.hbar && (t -= Ng.event.dx), this.vbar && (r -= Ng.event.dy), this.setTranslate(t, r);
+ };
+ Mf.prototype._onBoxWheel = function() {
+ var t = this.translateX, r = this.translateY;
+ this.hbar && (t += Ng.event.deltaY), this.vbar && (r += Ng.event.deltaY), this.setTranslate(t, r);
+ };
+ Mf.prototype._onBarDrag = function() {
+ var t = this.translateX, r = this.translateY;
+ if (this.hbar) {
+ var n = t + this._hbarXMin, i = n + this._hbarTranslateMax, a = SI.constrain(Ng.event.x, n, i), o = (a - n) / (i - n), s = this.position.w - this._box.w;
+ t = o * s;
+ }
+ if (this.vbar) {
+ var l = r + this._vbarYMin, u = l + this._vbarTranslateMax, c = SI.constrain(Ng.event.y, l, u), f = (c - l) / (u - l), h = this.position.h - this._box.h;
+ r = f * h;
+ }
+ this.setTranslate(t, r);
+ };
+ Mf.prototype.setTranslate = function(t, r) {
+ var n = this.position.w - this._box.w, i = this.position.h - this._box.h;
+ if (t = SI.constrain(t || 0, 0, n), r = SI.constrain(r || 0, 0, i), this.translateX = t, this.translateY = r, this.container.call(TT.setTranslate, this._box.l - this.position.l - t, this._box.t - this.position.t - r), this._clipRect && this._clipRect.attr({ x: Math.floor(this.position.l + t - 0.5), y: Math.floor(this.position.t + r - 0.5) }), this.hbar) {
+ var a = t / n;
+ this.hbar.call(TT.setTranslate, t + a * this._hbarTranslateMax, r);
+ }
+ if (this.vbar) {
+ var o = r / i;
+ this.vbar.call(TT.setTranslate, t, r + o * this._vbarTranslateMax);
+ }
+ };
+ });
+ var nge = ye((dlr, ige) => {
+ var AT = Oa(), p4 = Mc(), g4 = ka(), ST = So(), t0 = Dr(), MI = Zl(), Xgt = vl().arrayEditor, K0e = Dh().LINE_SPACING, es = TI(), Zgt = Z0e();
+ ige.exports = function(t) {
+ var r = t._fullLayout, n = t0.filterVisible(r[es.name]);
+ function i(h) {
+ p4.autoMargin(t, tge(h));
+ }
+ var a = r._menulayer.selectAll("g." + es.containerClassName).data(n.length > 0 ? [0] : []);
+ if (a.enter().append("g").classed(es.containerClassName, true).style("cursor", "pointer"), a.exit().each(function() {
+ AT.select(this).selectAll("g." + es.headerGroupClassName).each(i);
+ }).remove(), n.length !== 0) {
+ var o = a.selectAll("g." + es.headerGroupClassName).data(n, Ygt);
+ o.enter().append("g").classed(es.headerGroupClassName, true);
+ for (var s = t0.ensureSingle(a, "g", es.dropdownButtonGroupClassName, function(h) {
+ h.style("pointer-events", "all");
+ }), l = 0; l < n.length; l++) {
+ var u = n[l];
+ tmt(t, u);
+ }
+ var c = "updatemenus" + r._uid, f = new Zgt(t, s, c);
+ o.enter().size() && (s.node().parentNode.appendChild(s.node()), s.call(tV)), o.exit().each(function(h) {
+ s.call(tV), i(h);
+ }).remove(), o.each(function(h) {
+ var d = AT.select(this), v = h.type === "dropdown" ? s : null;
+ p4.manageCommandObserver(t, h, h.buttons, function(_) {
+ eV(t, h, h.buttons[_.index], d, v, f, _.index, true);
+ }), h.type === "dropdown" ? ($0e(t, d, s, f, h), J0e(s, h) && m4(t, d, s, f, h)) : m4(t, d, null, null, h);
+ });
+ }
+ };
+ function Ygt(e) {
+ return e._index;
+ }
+ function Kgt(e) {
+ return +e.attr(es.menuIndexAttrName) == -1;
+ }
+ function J0e(e, t) {
+ return +e.attr(es.menuIndexAttrName) === t._index;
+ }
+ function eV(e, t, r, n, i, a, o, s) {
+ t.active = o, Xgt(e.layout, es.name, t).applyUpdate("active", o), t.type === "buttons" ? m4(e, n, null, null, t) : t.type === "dropdown" && (i.attr(es.menuIndexAttrName, "-1"), $0e(e, n, i, a, t), s || m4(e, n, i, a, t));
+ }
+ function $0e(e, t, r, n, i) {
+ var a = t0.ensureSingle(t, "g", es.headerClassName, function(h) {
+ h.style("pointer-events", "all");
+ }), o = i._dims, s = i.active, l = i.buttons[s] || es.blankHeaderOpts, u = { y: i.pad.t, yPad: 0, x: i.pad.l, xPad: 0, index: 0 }, c = { width: o.headerWidth, height: o.headerHeight };
+ a.call(rV, i, l, e).call(rge, i, u, c);
+ var f = t0.ensureSingle(t, "text", es.headerArrowClassName, function(h) {
+ h.attr("text-anchor", "end").call(ST.font, i.font).text(es.arrowSymbol[i.direction]);
+ });
+ f.attr({ x: o.headerWidth - es.arrowOffsetX + i.pad.l, y: o.headerHeight / 2 + es.textOffsetY + i.pad.t }), a.on("click", function() {
+ r.call(tV, String(J0e(r, i) ? -1 : i._index)), m4(e, t, r, n, i);
+ }), a.on("mouseover", function() {
+ a.call(Q0e);
+ }), a.on("mouseout", function() {
+ a.call(ege, i);
+ }), ST.setTranslate(t, o.lx, o.ly);
+ }
+ function m4(e, t, r, n, i) {
+ r || (r = t, r.attr("pointer-events", "all"));
+ var a = !Kgt(r) || i.type === "buttons" ? i.buttons : [], o = i.type === "dropdown" ? es.dropdownButtonClassName : es.buttonClassName, s = r.selectAll("g." + o).data(t0.filterVisible(a)), l = s.enter().append("g").classed(o, true), u = s.exit();
+ i.type === "dropdown" ? (l.attr("opacity", "0").transition().attr("opacity", "1"), u.transition().attr("opacity", "0").remove()) : u.remove();
+ var c = 0, f = 0, h = i._dims, d = ["up", "down"].indexOf(i.direction) !== -1;
+ i.type === "dropdown" && (d ? f = h.headerHeight + es.gapButtonHeader : c = h.headerWidth + es.gapButtonHeader), i.type === "dropdown" && i.direction === "up" && (f = -es.gapButtonHeader + es.gapButton - h.openHeight), i.type === "dropdown" && i.direction === "left" && (c = -es.gapButtonHeader + es.gapButton - h.openWidth);
+ var v = { x: h.lx + c + i.pad.l, y: h.ly + f + i.pad.t, yPad: es.gapButton, xPad: es.gapButton, index: 0 }, _ = { l: v.x + i.borderwidth, t: v.y + i.borderwidth };
+ s.each(function(b, p) {
+ var k = AT.select(this);
+ k.call(rV, i, b, e).call(rge, i, v), k.on("click", function() {
+ AT.event.defaultPrevented || (b.execute && (b.args2 && i.active === p ? (eV(e, i, b, t, r, n, -1), p4.executeAPICommand(e, b.method, b.args2)) : (eV(e, i, b, t, r, n, p), p4.executeAPICommand(e, b.method, b.args))), e.emit("plotly_buttonclicked", { menu: i, button: b, active: i.active }));
+ }), k.on("mouseover", function() {
+ k.call(Q0e);
+ }), k.on("mouseout", function() {
+ k.call(ege, i), s.call(Y0e, i);
+ });
+ }), s.call(Y0e, i), d ? (_.w = Math.max(h.openWidth, h.headerWidth), _.h = v.y - _.t) : (_.w = v.x - _.l, _.h = Math.max(h.openHeight, h.headerHeight)), _.direction = i.direction, n && (s.size() ? Jgt(e, t, r, n, i, _) : $gt(n));
+ }
+ function Jgt(e, t, r, n, i, a) {
+ var o = i.direction, s = o === "up" || o === "down", l = i._dims, u = i.active, c, f, h;
+ if (s) for (f = 0, h = 0; h < u; h++) f += l.heights[h] + es.gapButton;
+ else for (c = 0, h = 0; h < u; h++) c += l.widths[h] + es.gapButton;
+ n.enable(a, c, f), n.hbar && n.hbar.attr("opacity", "0").transition().attr("opacity", "1"), n.vbar && n.vbar.attr("opacity", "0").transition().attr("opacity", "1");
+ }
+ function $gt(e) {
+ var t = !!e.hbar, r = !!e.vbar;
+ t && e.hbar.transition().attr("opacity", "0").each("end", function() {
+ t = false, r || e.disable();
+ }), r && e.vbar.transition().attr("opacity", "0").each("end", function() {
+ r = false, t || e.disable();
+ });
+ }
+ function rV(e, t, r, n) {
+ e.call(Qgt, t).call(emt, t, r, n);
+ }
+ function Qgt(e, t) {
+ var r = t0.ensureSingle(e, "rect", es.itemRectClassName, function(n) {
+ n.attr({ rx: es.rx, ry: es.ry, "shape-rendering": "crispEdges" });
+ });
+ r.call(g4.stroke, t.bordercolor).call(g4.fill, t.bgcolor).style("stroke-width", t.borderwidth + "px");
+ }
+ function emt(e, t, r, n) {
+ var i = t0.ensureSingle(e, "text", es.itemTextClassName, function(s) {
+ s.attr({ "text-anchor": "start", "data-notex": 1 });
+ }), a = r.label, o = n._fullLayout._meta;
+ o && (a = t0.templateString(a, o)), i.call(ST.font, t.font).text(a).call(MI.convertToTspans, n);
+ }
+ function Y0e(e, t) {
+ var r = t.active;
+ e.each(function(n, i) {
+ var a = AT.select(this);
+ i === r && t.showactive && a.select("rect." + es.itemRectClassName).call(g4.fill, es.activeColor);
+ });
+ }
+ function Q0e(e) {
+ e.select("rect." + es.itemRectClassName).call(g4.fill, es.hoverColor);
+ }
+ function ege(e, t) {
+ e.select("rect." + es.itemRectClassName).call(g4.fill, t.bgcolor);
+ }
+ function tmt(e, t) {
+ var r = t._dims = { width1: 0, height1: 0, heights: [], widths: [], totalWidth: 0, totalHeight: 0, openWidth: 0, openHeight: 0, lx: 0, ly: 0 }, n = ST.tester.selectAll("g." + es.dropdownButtonClassName).data(t0.filterVisible(t.buttons));
+ n.enter().append("g").classed(es.dropdownButtonClassName, true);
+ var i = ["up", "down"].indexOf(t.direction) !== -1;
+ n.each(function(c, f) {
+ var h = AT.select(this);
+ h.call(rV, t, c, e);
+ var d = h.select("." + es.itemTextClassName), v = d.node() && ST.bBox(d.node()).width, _ = Math.max(v + es.textPadX, es.minWidth), b = t.font.size * K0e, p = MI.lineCount(d), k = Math.max(b * p, es.minHeight) + es.textOffsetY;
+ k = Math.ceil(k), _ = Math.ceil(_), r.widths[f] = _, r.heights[f] = k, r.height1 = Math.max(r.height1, k), r.width1 = Math.max(r.width1, _), i ? (r.totalWidth = Math.max(r.totalWidth, _), r.openWidth = r.totalWidth, r.totalHeight += k + es.gapButton, r.openHeight += k + es.gapButton) : (r.totalWidth += _ + es.gapButton, r.openWidth += _ + es.gapButton, r.totalHeight = Math.max(r.totalHeight, k), r.openHeight = r.totalHeight);
+ }), i ? r.totalHeight -= es.gapButton : r.totalWidth -= es.gapButton, r.headerWidth = r.width1 + es.arrowPadX, r.headerHeight = r.height1, t.type === "dropdown" && (i ? (r.width1 += es.arrowPadX, r.totalHeight = r.height1) : r.totalWidth = r.width1, r.totalWidth += es.arrowPadX), n.remove();
+ var a = r.totalWidth + t.pad.l + t.pad.r, o = r.totalHeight + t.pad.t + t.pad.b, s = e._fullLayout._size;
+ r.lx = s.l + s.w * t.x, r.ly = s.t + s.h * (1 - t.y);
+ var l = "left";
+ t0.isRightAnchor(t) && (r.lx -= a, l = "right"), t0.isCenterAnchor(t) && (r.lx -= a / 2, l = "center");
+ var u = "top";
+ t0.isBottomAnchor(t) && (r.ly -= o, u = "bottom"), t0.isMiddleAnchor(t) && (r.ly -= o / 2, u = "middle"), r.totalWidth = Math.ceil(r.totalWidth), r.totalHeight = Math.ceil(r.totalHeight), r.lx = Math.round(r.lx), r.ly = Math.round(r.ly), p4.autoMargin(e, tge(t), { x: t.x, y: t.y, l: a * ({ right: 1, center: 0.5 }[l] || 0), r: a * ({ left: 1, center: 0.5 }[l] || 0), b: o * ({ top: 1, middle: 0.5 }[u] || 0), t: o * ({ bottom: 1, middle: 0.5 }[u] || 0) });
+ }
+ function tge(e) {
+ return es.autoMarginIdRoot + e._index;
+ }
+ function rge(e, t, r, n) {
+ n = n || {};
+ var i = e.select("." + es.itemRectClassName), a = e.select("." + es.itemTextClassName), o = t.borderwidth, s = r.index, l = t._dims;
+ ST.setTranslate(e, o + r.x, o + r.y);
+ var u = ["up", "down"].indexOf(t.direction) !== -1, c = n.height || (u ? l.heights[s] : l.height1);
+ i.attr({ x: 0, y: 0, width: n.width || (u ? l.width1 : l.widths[s]), height: c });
+ var f = t.font.size * K0e, h = MI.lineCount(a), d = (h - 1) * f / 2;
+ MI.positionText(a, es.textOffsetX, c / 2 - d + es.textOffsetY), u ? r.y += l.heights[s] + r.yPad : r.x += l.widths[s] + r.xPad, r.index++;
+ }
+ function tV(e, t) {
+ e.attr(es.menuIndexAttrName, t || "-1").selectAll("g." + es.dropdownButtonClassName).remove();
+ }
+ });
+ var oge = ye((vlr, age) => {
+ var rmt = TI();
+ age.exports = { moduleType: "component", name: rmt.name, layoutAttributes: QU(), supplyLayoutDefaults: j0e(), draw: nge() };
+ });
+ var y4 = ye((plr, sge) => {
+ sge.exports = { name: "sliders", containerClassName: "slider-container", groupClassName: "slider-group", inputAreaClass: "slider-input-area", railRectClass: "slider-rail-rect", railTouchRectClass: "slider-rail-touch-rect", gripRectClass: "slider-grip-rect", tickRectClass: "slider-tick-rect", inputProxyClass: "slider-input-proxy", labelsClass: "slider-labels", labelGroupClass: "slider-label-group", labelClass: "slider-label", currentValueClass: "slider-current-value", railHeight: 5, menuIndexAttrName: "slider-active-index", autoMarginIdRoot: "slider-", minWidth: 30, minHeight: 30, textPadX: 40, arrowOffsetX: 4, railRadius: 2, railWidth: 5, railBorder: 4, railBorderWidth: 1, railBorderColor: "#bec8d9", railBgColor: "#f8fafc", railInset: 8, stepInset: 10, gripRadius: 10, gripWidth: 20, gripHeight: 20, gripBorder: 20, gripBorderWidth: 1, gripBorderColor: "#bec8d9", gripBgColor: "#f6f8fa", gripBgActiveColor: "#dbdde0", labelPadding: 8, labelOffset: 0, tickWidth: 1, tickColor: "#333", tickOffset: 25, tickLength: 7, minorTickOffset: 25, minorTickColor: "#333", minorTickLength: 4, currentValuePadding: 8, currentValueInset: 0 };
+ });
+ var iV = ye((glr, cge) => {
+ var lge = ec(), imt = F6(), nmt = Ao().extendDeepAll, amt = mc().overrideAll, omt = jS(), uge = vl().templatedArray, l2 = y4(), smt = uge("step", { visible: { valType: "boolean", dflt: true }, method: { valType: "enumerated", values: ["restyle", "relayout", "animate", "update", "skip"], dflt: "restyle" }, args: { valType: "info_array", freeLength: true, items: [{ valType: "any" }, { valType: "any" }, { valType: "any" }] }, label: { valType: "string" }, value: { valType: "string" }, execute: { valType: "boolean", dflt: true } });
+ cge.exports = amt(uge("slider", { visible: { valType: "boolean", dflt: true }, active: { valType: "number", min: 0, dflt: 0 }, steps: smt, lenmode: { valType: "enumerated", values: ["fraction", "pixels"], dflt: "fraction" }, len: { valType: "number", min: 0, dflt: 1 }, x: { valType: "number", min: -2, max: 3, dflt: 0 }, pad: nmt(imt({ editType: "arraydraw" }), {}, { t: { dflt: 20 } }), xanchor: { valType: "enumerated", values: ["auto", "left", "center", "right"], dflt: "left" }, y: { valType: "number", min: -2, max: 3, dflt: 0 }, yanchor: { valType: "enumerated", values: ["auto", "top", "middle", "bottom"], dflt: "top" }, transition: { duration: { valType: "number", min: 0, dflt: 150 }, easing: { valType: "enumerated", values: omt.transition.easing.values, dflt: "cubic-in-out" } }, currentvalue: { visible: { valType: "boolean", dflt: true }, xanchor: { valType: "enumerated", values: ["left", "center", "right"], dflt: "left" }, offset: { valType: "number", dflt: 10 }, prefix: { valType: "string" }, suffix: { valType: "string" }, font: lge({}) }, font: lge({}), activebgcolor: { valType: "color", dflt: l2.gripBgActiveColor }, bgcolor: { valType: "color", dflt: l2.railBgColor }, bordercolor: { valType: "color", dflt: l2.railBorderColor }, borderwidth: { valType: "number", min: 0, dflt: l2.railBorderWidth }, ticklen: { valType: "number", min: 0, dflt: l2.tickLength }, tickcolor: { valType: "color", dflt: l2.tickColor }, tickwidth: { valType: "number", min: 0, dflt: 1 }, minorticklen: { valType: "number", min: 0, dflt: l2.minorTickLength } }), "arraydraw", "from-root");
+ });
+ var vge = ye((mlr, dge) => {
+ var MT = Dr(), fge = Zd(), hge = iV(), lmt = y4(), umt = lmt.name, cmt = hge.steps;
+ dge.exports = function(t, r) {
+ fge(t, r, { name: umt, handleItemDefaults: fmt });
+ };
+ function fmt(e, t, r) {
+ function n(f, h) {
+ return MT.coerce(e, t, hge, f, h);
+ }
+ for (var i = fge(e, t, { name: "steps", handleItemDefaults: hmt }), a = 0, o = 0; o < i.length; o++) i[o].visible && a++;
+ var s;
+ if (a < 2 ? s = t.visible = false : s = n("visible"), !!s) {
+ t._stepCount = a;
+ var l = t._visibleSteps = MT.filterVisible(i), u = n("active");
+ (i[u] || {}).visible || (t.active = l[0]._index), n("x"), n("y"), MT.noneOrAll(e, t, ["x", "y"]), n("xanchor"), n("yanchor"), n("len"), n("lenmode"), n("pad.t"), n("pad.r"), n("pad.b"), n("pad.l"), MT.coerceFont(n, "font", r.font);
+ var c = n("currentvalue.visible");
+ c && (n("currentvalue.xanchor"), n("currentvalue.prefix"), n("currentvalue.suffix"), n("currentvalue.offset"), MT.coerceFont(n, "currentvalue.font", t.font)), n("transition.duration"), n("transition.easing"), n("bgcolor"), n("activebgcolor"), n("bordercolor"), n("borderwidth"), n("ticklen"), n("tickwidth"), n("tickcolor"), n("minorticklen");
+ }
+ }
+ function hmt(e, t) {
+ function r(a, o) {
+ return MT.coerce(e, t, cmt, a, o);
+ }
+ var n;
+ if (e.method !== "skip" && !Array.isArray(e.args) ? n = t.visible = false : n = r("visible"), n) {
+ r("method"), r("args");
+ var i = r("label", "step-" + t._index);
+ r("value", i), r("execute");
+ }
+ }
+ });
+ var Age = ye((ylr, Tge) => {
+ var Ug = Oa(), EI = Mc(), k_ = ka(), Vg = So(), r0 = Dr(), dmt = r0.strTranslate, _4 = Zl(), vmt = vl().arrayEditor, Rs = y4(), oV = Dh(), mge = oV.LINE_SPACING, nV = oV.FROM_TL, aV = oV.FROM_BR;
+ Tge.exports = function(t) {
+ var r = t._context.staticPlot, n = t._fullLayout, i = pmt(n, t), a = n._infolayer.selectAll("g." + Rs.containerClassName).data(i.length > 0 ? [0] : []);
+ a.enter().append("g").classed(Rs.containerClassName, true).style("cursor", r ? null : "ew-resize");
+ function o(c) {
+ c._commandObserver && (c._commandObserver.remove(), delete c._commandObserver), EI.autoMargin(t, yge(c));
+ }
+ if (a.exit().each(function() {
+ Ug.select(this).selectAll("g." + Rs.groupClassName).each(o);
+ }).remove(), i.length !== 0) {
+ var s = a.selectAll("g." + Rs.groupClassName).data(i, gmt);
+ s.enter().append("g").classed(Rs.groupClassName, true), s.exit().each(o).remove();
+ for (var l = 0; l < i.length; l++) {
+ var u = i[l];
+ mmt(t, u);
+ }
+ s.each(function(c) {
+ var f = Ug.select(this);
+ wmt(c), EI.manageCommandObserver(t, c, c._visibleSteps, function(h) {
+ var d = f.data()[0];
+ d.active !== h.index && (d._dragging || xge(t, f, d, h.index, false, true));
+ }), ymt(t, Ug.select(this), c);
+ });
+ }
+ };
+ function yge(e) {
+ return Rs.autoMarginIdRoot + e._index;
+ }
+ function pmt(e, t) {
+ for (var r = e[Rs.name], n = [], i = 0; i < r.length; i++) {
+ var a = r[i];
+ a.visible && (a._gd = t, n.push(a));
+ }
+ return n;
+ }
+ function gmt(e) {
+ return e._index;
+ }
+ function mmt(e, t) {
+ var r = Vg.tester.selectAll("g." + Rs.labelGroupClass).data(t._visibleSteps);
+ r.enter().append("g").classed(Rs.labelGroupClass, true);
+ var n = 0, i = 0;
+ r.each(function(v) {
+ var _ = Ug.select(this), b = _ge(_, { step: v }, t), p = b.node();
+ if (p) {
+ var k = Vg.bBox(p);
+ i = Math.max(i, k.height), n = Math.max(n, k.width);
+ }
+ }), r.remove();
+ var a = t._dims = {};
+ a.inputAreaWidth = Math.max(Rs.railWidth, Rs.gripHeight);
+ var o = e._fullLayout._size;
+ a.lx = o.l + o.w * t.x, a.ly = o.t + o.h * (1 - t.y), t.lenmode === "fraction" ? a.outerLength = Math.round(o.w * t.len) : a.outerLength = t.len, a.inputAreaStart = 0, a.inputAreaLength = Math.round(a.outerLength - t.pad.l - t.pad.r);
+ var s = a.inputAreaLength - 2 * Rs.stepInset, l = s / (t._stepCount - 1), u = n + Rs.labelPadding;
+ if (a.labelStride = Math.max(1, Math.ceil(u / l)), a.labelHeight = i, a.currentValueMaxWidth = 0, a.currentValueHeight = 0, a.currentValueTotalHeight = 0, a.currentValueMaxLines = 1, t.currentvalue.visible) {
+ var c = Vg.tester.append("g");
+ r.each(function(v) {
+ var _ = kI(c, t, v.label), b = _.node() && Vg.bBox(_.node()) || { width: 0, height: 0 }, p = _4.lineCount(_);
+ a.currentValueMaxWidth = Math.max(a.currentValueMaxWidth, Math.ceil(b.width)), a.currentValueHeight = Math.max(a.currentValueHeight, Math.ceil(b.height)), a.currentValueMaxLines = Math.max(a.currentValueMaxLines, p);
+ }), a.currentValueTotalHeight = a.currentValueHeight + t.currentvalue.offset, c.remove();
+ }
+ a.height = a.currentValueTotalHeight + Rs.tickOffset + t.ticklen + Rs.labelOffset + a.labelHeight + t.pad.t + t.pad.b;
+ var f = "left";
+ r0.isRightAnchor(t) && (a.lx -= a.outerLength, f = "right"), r0.isCenterAnchor(t) && (a.lx -= a.outerLength / 2, f = "center");
+ var h = "top";
+ r0.isBottomAnchor(t) && (a.ly -= a.height, h = "bottom"), r0.isMiddleAnchor(t) && (a.ly -= a.height / 2, h = "middle"), a.outerLength = Math.ceil(a.outerLength), a.height = Math.ceil(a.height), a.lx = Math.round(a.lx), a.ly = Math.round(a.ly);
+ var d = { y: t.y, b: a.height * aV[h], t: a.height * nV[h] };
+ t.lenmode === "fraction" ? (d.l = 0, d.xl = t.x - t.len * nV[f], d.r = 0, d.xr = t.x + t.len * aV[f]) : (d.x = t.x, d.l = a.outerLength * nV[f], d.r = a.outerLength * aV[f]), EI.autoMargin(e, yge(t), d);
+ }
+ function ymt(e, t, r) {
+ (r.steps[r.active] || {}).visible || (r.active = r._visibleSteps[0]._index), t.call(kI, r).call(Amt, r).call(xmt, r).call(bmt, r).call(Tmt, e, r).call(_mt, e, r);
+ var n = r._dims;
+ Vg.setTranslate(t, n.lx + r.pad.l, n.ly + r.pad.t), t.call(wge, r, false), t.call(kI, r);
+ }
+ function kI(e, t, r) {
+ if (t.currentvalue.visible) {
+ var n = t._dims, i, a;
+ switch (t.currentvalue.xanchor) {
+ case "right":
+ i = n.inputAreaLength - Rs.currentValueInset - n.currentValueMaxWidth, a = "left";
+ break;
+ case "center":
+ i = n.inputAreaLength * 0.5, a = "middle";
+ break;
+ default:
+ i = Rs.currentValueInset, a = "left";
+ }
+ var o = r0.ensureSingle(e, "text", Rs.labelClass, function(h) {
+ h.attr({ "text-anchor": a, "data-notex": 1 });
+ }), s = t.currentvalue.prefix ? t.currentvalue.prefix : "";
+ if (typeof r == "string") s += r;
+ else {
+ var l = t.steps[t.active].label, u = t._gd._fullLayout._meta;
+ u && (l = r0.templateString(l, u)), s += l;
+ }
+ t.currentvalue.suffix && (s += t.currentvalue.suffix), o.call(Vg.font, t.currentvalue.font).text(s).call(_4.convertToTspans, t._gd);
+ var c = _4.lineCount(o), f = (n.currentValueMaxLines + 1 - c) * t.currentvalue.font.size * mge;
+ return _4.positionText(o, i, f), o;
+ }
+ }
+ function _mt(e, t, r) {
+ var n = r0.ensureSingle(e, "rect", Rs.gripRectClass, function(i) {
+ i.call(bge, t, e, r).style("pointer-events", "all");
+ });
+ n.attr({ width: Rs.gripWidth, height: Rs.gripHeight, rx: Rs.gripRadius, ry: Rs.gripRadius }).call(k_.stroke, r.bordercolor).call(k_.fill, r.bgcolor).style("stroke-width", r.borderwidth + "px");
+ }
+ function _ge(e, t, r) {
+ var n = r0.ensureSingle(e, "text", Rs.labelClass, function(o) {
+ o.attr({ "text-anchor": "middle", "data-notex": 1 });
+ }), i = t.step.label, a = r._gd._fullLayout._meta;
+ return a && (i = r0.templateString(i, a)), n.call(Vg.font, r.font).text(i).call(_4.convertToTspans, r._gd), n;
+ }
+ function xmt(e, t) {
+ var r = r0.ensureSingle(e, "g", Rs.labelsClass), n = t._dims, i = r.selectAll("g." + Rs.labelGroupClass).data(n.labelSteps);
+ i.enter().append("g").classed(Rs.labelGroupClass, true), i.exit().remove(), i.each(function(a) {
+ var o = Ug.select(this);
+ o.call(_ge, a, t), Vg.setTranslate(o, sV(t, a.fraction), Rs.tickOffset + t.ticklen + t.font.size * mge + Rs.labelOffset + n.currentValueTotalHeight);
+ });
+ }
+ function pge(e, t, r, n, i) {
+ var a = Math.round(n * (r._stepCount - 1)), o = r._visibleSteps[a]._index;
+ o !== r.active && xge(e, t, r, o, true, i);
+ }
+ function xge(e, t, r, n, i, a) {
+ var o = r.active;
+ r.active = n, vmt(e.layout, Rs.name, r).applyUpdate("active", n);
+ var s = r.steps[r.active];
+ t.call(wge, r, a), t.call(kI, r), e.emit("plotly_sliderchange", { slider: r, step: r.steps[r.active], interaction: i, previousActive: o }), s && s.method && i && (t._nextMethod ? (t._nextMethod.step = s, t._nextMethod.doCallback = i, t._nextMethod.doTransition = a) : (t._nextMethod = { step: s, doCallback: i, doTransition: a }, t._nextMethodRaf = window.requestAnimationFrame(function() {
+ var l = t._nextMethod.step;
+ l.method && (l.execute && EI.executeAPICommand(e, l.method, l.args), t._nextMethod = null, t._nextMethodRaf = null);
+ })));
+ }
+ function bge(e, t, r) {
+ if (t._context.staticPlot) return;
+ var n = r.node(), i = Ug.select(t);
+ function a() {
+ return r.data()[0];
+ }
+ function o() {
+ var s = a();
+ t.emit("plotly_sliderstart", { slider: s });
+ var l = r.select("." + Rs.gripRectClass);
+ Ug.event.stopPropagation(), Ug.event.preventDefault(), l.call(k_.fill, s.activebgcolor);
+ var u = gge(s, Ug.mouse(n)[0]);
+ pge(t, r, s, u, true), s._dragging = true;
+ function c() {
+ var h = a(), d = gge(h, Ug.mouse(n)[0]);
+ pge(t, r, h, d, false);
+ }
+ i.on("mousemove", c), i.on("touchmove", c);
+ function f() {
+ var h = a();
+ h._dragging = false, l.call(k_.fill, h.bgcolor), i.on("mouseup", null), i.on("mousemove", null), i.on("touchend", null), i.on("touchmove", null), t.emit("plotly_sliderend", { slider: h, step: h.steps[h.active] });
+ }
+ i.on("mouseup", f), i.on("touchend", f);
+ }
+ e.on("mousedown", o), e.on("touchstart", o);
+ }
+ function bmt(e, t) {
+ var r = e.selectAll("rect." + Rs.tickRectClass).data(t._visibleSteps), n = t._dims;
+ r.enter().append("rect").classed(Rs.tickRectClass, true), r.exit().remove(), r.attr({ width: t.tickwidth + "px", "shape-rendering": "crispEdges" }), r.each(function(i, a) {
+ var o = a % n.labelStride === 0, s = Ug.select(this);
+ s.attr({ height: o ? t.ticklen : t.minorticklen }).call(k_.fill, t.tickcolor), Vg.setTranslate(s, sV(t, a / (t._stepCount - 1)) - 0.5 * t.tickwidth, (o ? Rs.tickOffset : Rs.minorTickOffset) + n.currentValueTotalHeight);
+ });
+ }
+ function wmt(e) {
+ var t = e._dims;
+ t.labelSteps = [];
+ for (var r = e._stepCount, n = 0; n < r; n += t.labelStride) t.labelSteps.push({ fraction: n / (r - 1), step: e._visibleSteps[n] });
+ }
+ function wge(e, t, r) {
+ for (var n = e.select("rect." + Rs.gripRectClass), i = 0, a = 0; a < t._stepCount; a++) if (t._visibleSteps[a]._index === t.active) {
+ i = a;
+ break;
+ }
+ var o = sV(t, i / (t._stepCount - 1));
+ if (!t._invokingCommand) {
+ var s = n;
+ r && t.transition.duration > 0 && (s = s.transition().duration(t.transition.duration).ease(t.transition.easing)), s.attr("transform", dmt(o - Rs.gripWidth * 0.5, t._dims.currentValueTotalHeight));
+ }
+ }
+ function sV(e, t) {
+ var r = e._dims;
+ return r.inputAreaStart + Rs.stepInset + (r.inputAreaLength - 2 * Rs.stepInset) * Math.min(1, Math.max(0, t));
+ }
+ function gge(e, t) {
+ var r = e._dims;
+ return Math.min(1, Math.max(0, (t - Rs.stepInset - r.inputAreaStart) / (r.inputAreaLength - 2 * Rs.stepInset - 2 * r.inputAreaStart)));
+ }
+ function Tmt(e, t, r) {
+ var n = r._dims, i = r0.ensureSingle(e, "rect", Rs.railTouchRectClass, function(a) {
+ a.call(bge, t, e, r).style("pointer-events", "all");
+ });
+ i.attr({ width: n.inputAreaLength, height: Math.max(n.inputAreaWidth, Rs.tickOffset + r.ticklen + n.labelHeight) }).call(k_.fill, r.bgcolor).attr("opacity", 0), Vg.setTranslate(i, 0, n.currentValueTotalHeight);
+ }
+ function Amt(e, t) {
+ var r = t._dims, n = r.inputAreaLength - Rs.railInset * 2, i = r0.ensureSingle(e, "rect", Rs.railRectClass);
+ i.attr({ width: n, height: Rs.railWidth, rx: Rs.railRadius, ry: Rs.railRadius, "shape-rendering": "crispEdges" }).call(k_.stroke, t.bordercolor).call(k_.fill, t.bgcolor).style("stroke-width", t.borderwidth + "px"), Vg.setTranslate(i, Rs.railInset, (r.inputAreaWidth - Rs.railWidth) * 0.5 + r.currentValueTotalHeight);
+ }
+ });
+ var Mge = ye((_lr, Sge) => {
+ var Smt = y4();
+ Sge.exports = { moduleType: "component", name: Smt.name, layoutAttributes: iV(), supplyLayoutDefaults: vge(), draw: Age() };
+ });
+ var CI = ye((xlr, kge) => {
+ var Ege = Ih();
+ kge.exports = { bgcolor: { valType: "color", dflt: Ege.background, editType: "plot" }, bordercolor: { valType: "color", dflt: Ege.defaultLine, editType: "plot" }, borderwidth: { valType: "integer", dflt: 0, min: 0, editType: "plot" }, autorange: { valType: "boolean", dflt: true, editType: "calc", impliedEdits: { "range[0]": void 0, "range[1]": void 0 } }, range: { valType: "info_array", items: [{ valType: "any", editType: "calc", impliedEdits: { "^autorange": false } }, { valType: "any", editType: "calc", impliedEdits: { "^autorange": false } }], editType: "calc", impliedEdits: { autorange: false } }, thickness: { valType: "number", dflt: 0.15, min: 0, max: 1, editType: "plot" }, visible: { valType: "boolean", dflt: true, editType: "calc" }, editType: "calc" };
+ });
+ var lV = ye((blr, Cge) => {
+ Cge.exports = { _isSubplotObj: true, rangemode: { valType: "enumerated", values: ["auto", "fixed", "match"], dflt: "match", editType: "calc" }, range: { valType: "info_array", items: [{ valType: "any", editType: "plot" }, { valType: "any", editType: "plot" }], editType: "plot" }, editType: "calc" };
+ });
+ var LI = ye((wlr, Lge) => {
+ Lge.exports = { name: "rangeslider", containerClassName: "rangeslider-container", bgClassName: "rangeslider-bg", rangePlotClassName: "rangeslider-rangeplot", maskMinClassName: "rangeslider-mask-min", maskMaxClassName: "rangeslider-mask-max", slideBoxClassName: "rangeslider-slidebox", grabberMinClassName: "rangeslider-grabber-min", grabAreaMinClassName: "rangeslider-grabarea-min", handleMinClassName: "rangeslider-handle-min", grabberMaxClassName: "rangeslider-grabber-max", grabAreaMaxClassName: "rangeslider-grabarea-max", handleMaxClassName: "rangeslider-handle-max", maskMinOppAxisClassName: "rangeslider-mask-min-opp-axis", maskMaxOppAxisClassName: "rangeslider-mask-max-opp-axis", maskColor: "rgba(0,0,0,0.4)", maskOppAxisColor: "rgba(0,0,0,0.2)", slideBoxFill: "transparent", slideBoxCursor: "ew-resize", grabAreaFill: "transparent", grabAreaCursor: "col-resize", grabAreaWidth: 10, handleWidth: 4, handleRadius: 1, handleStrokeWidth: 1, extraPad: 15 };
+ });
+ var Rge = ye((II) => {
+ var Mmt = hf(), Emt = Zl(), Pge = LI(), kmt = Dh().LINE_SPACING, PI = Pge.name;
+ function Ige(e) {
+ var t = e && e[PI];
+ return t && t.visible;
+ }
+ II.isVisible = Ige;
+ II.makeData = function(e) {
+ for (var t = Mmt.list({ _fullLayout: e }, "x", true), r = e.margin, n = [], i = 0; i < t.length; i++) {
+ var a = t[i];
+ if (Ige(a)) {
+ n.push(a);
+ var o = a[PI];
+ o._id = PI + a._id, o._height = (e.height - r.b - r.t) * o.thickness, o._offsetShift = Math.floor(o.borderwidth / 2);
+ }
+ }
+ e._rangeSliderData = n;
+ };
+ II.autoMarginOpts = function(e, t) {
+ var r = e._fullLayout, n = t[PI], i = t._id.charAt(0), a = 0, o = 0;
+ if (t.side === "bottom" && (a = t._depth, t.title.text !== r._dfltTitle[i])) {
+ o = 1.5 * t.title.font.size + 10 + n._offsetShift;
+ var s = (t.title.text.match(Emt.BR_TAG_ALL) || []).length;
+ o += s * t.title.font.size * kmt;
+ }
+ return { x: 0, y: t._counterDomainMin, l: 0, r: 0, t: 0, b: n._height + a + Math.max(r.margin.b, o), pad: Pge.extraPad + n._offsetShift * 2 };
+ };
+ });
+ var Oge = ye((Alr, zge) => {
+ var RI = Dr(), Dge = vl(), Fge = hf(), Cmt = CI(), Lmt = lV();
+ zge.exports = function(t, r, n) {
+ var i = t[n], a = r[n];
+ if (!(i.rangeslider || r._requestRangeslider[a._id])) return;
+ RI.isPlainObject(i.rangeslider) || (i.rangeslider = {});
+ var o = i.rangeslider, s = Dge.newContainer(a, "rangeslider");
+ function l(L, x) {
+ return RI.coerce(o, s, Cmt, L, x);
+ }
+ var u, c;
+ function f(L, x) {
+ return RI.coerce(u, c, Lmt, L, x);
+ }
+ var h = l("visible");
+ if (h) {
+ l("bgcolor", r.plot_bgcolor), l("bordercolor"), l("borderwidth"), l("thickness"), l("autorange", !a.isValidRange(o.range)), l("range");
+ var d = r._subplots;
+ if (d) for (var v = d.cartesian.filter(function(L) {
+ return L.slice(0, Math.max(0, L.indexOf("y"))) === Fge.name2id(n);
+ }).map(function(L) {
+ return L.slice(L.indexOf("y"), L.length);
+ }), _ = RI.simpleMap(v, Fge.id2name), b = 0; b < _.length; b++) {
+ var p = _[b];
+ u = o[p] || {}, c = Dge.newContainer(s, p, "yaxis");
+ var k = r[p], E;
+ u.range && k.isValidRange(u.range) && (E = "fixed");
+ var T = f("rangemode", E);
+ T !== "match" && f("range", k.range.slice());
+ }
+ s._input = o;
+ }
+ };
+ });
+ var Bge = ye((Slr, qge) => {
+ var Pmt = hf().list, Imt = Mg().getAutoRange, Rmt = LI();
+ qge.exports = function(t) {
+ for (var r = Pmt(t, "x", true), n = 0; n < r.length; n++) {
+ var i = r[n], a = i[Rmt.name];
+ a && a.visible && a.autorange && (a._input.autorange = true, a._input.range = a.range = Imt(t, i));
+ }
+ };
+ });
+ var Gge = ye((Mlr, Vge) => {
+ var DI = Oa(), Dmt = qa(), Fmt = Mc(), Jf = Dr(), FI = Jf.strTranslate, Uge = So(), C_ = ka(), zmt = zb(), Omt = mh(), uV = hf(), qmt = yv(), Bmt = Eg(), rl = LI();
+ Vge.exports = function(e) {
+ for (var t = e._fullLayout, r = t._rangeSliderData, n = 0; n < r.length; n++) {
+ var i = r[n][rl.name];
+ i._clipId = i._id + "-" + t._uid;
+ }
+ function a(s) {
+ return s._name;
+ }
+ var o = t._infolayer.selectAll("g." + rl.containerClassName).data(r, a);
+ o.exit().each(function(s) {
+ var l = s[rl.name];
+ t._topdefs.select("#" + l._clipId).remove();
+ }).remove(), r.length !== 0 && (o.enter().append("g").classed(rl.containerClassName, true).attr("pointer-events", "all"), o.each(function(s) {
+ var l = DI.select(this), u = s[rl.name], c = t[uV.id2name(s.anchor)], f = u[uV.id2name(s.anchor)];
+ if (u.range) {
+ var h = Jf.simpleMap(u.range, s.r2l), d = Jf.simpleMap(s.range, s.r2l), v;
+ d[0] < d[1] ? v = [Math.min(h[0], d[0]), Math.max(h[1], d[1])] : v = [Math.max(h[0], d[0]), Math.min(h[1], d[1])], u.range = u._input.range = Jf.simpleMap(v, s.l2r);
+ }
+ s.cleanRange("rangeslider.range");
+ var _ = t._size, b = s.domain;
+ u._width = _.w * (b[1] - b[0]);
+ var p = Math.round(_.l + _.w * b[0]), k = Math.round(_.t + _.h * (1 - s._counterDomainMin) + (s.side === "bottom" ? s._depth : 0) + u._offsetShift + rl.extraPad);
+ l.attr("transform", FI(p, k)), u._rl = Jf.simpleMap(u.range, s.r2l);
+ var E = u._rl[0], T = u._rl[1], L = T - E;
+ if (u.p2d = function(G) {
+ return G / u._width * L + E;
+ }, u.d2p = function(G) {
+ return (G - E) / L * u._width;
+ }, s.rangebreaks) {
+ var x = s.locateBreaks(E, T);
+ if (x.length) {
+ var C, M, g = 0;
+ for (C = 0; C < x.length; C++) M = x[C], g += M.max - M.min;
+ var P = u._width / (T - E - g), A = [-P * E];
+ for (C = 0; C < x.length; C++) M = x[C], A.push(A[A.length - 1] - P * (M.max - M.min));
+ for (u.d2p = function(G) {
+ for (var Z = A[0], j = 0; j < x.length; j++) {
+ var N = x[j];
+ if (G >= N.max) Z = A[j + 1];
+ else if (G < N.min) break;
+ }
+ return Z + P * G;
+ }, C = 0; C < x.length; C++) M = x[C], M.pmin = u.d2p(M.min), M.pmax = u.d2p(M.max);
+ u.p2d = function(G) {
+ for (var Z = A[0], j = 0; j < x.length; j++) {
+ var N = x[j];
+ if (G >= N.pmax) Z = A[j + 1];
+ else if (G < N.pmin) break;
+ }
+ return (G - Z) / P;
+ };
+ }
+ }
+ if (f.rangemode !== "match") {
+ var z = c.r2l(f.range[0]), O = c.r2l(f.range[1]), U = O - z;
+ u.d2pOppAxis = function(G) {
+ return (G - z) / U * u._height;
+ };
+ }
+ l.call(Gmt, e, s, u).call(Hmt, e, s, u).call(jmt, e, s, u).call(Xmt, e, s, u, f).call(Zmt, e, s, u).call(Ymt, e, s, u), Nmt(l, e, s, u), Vmt(l, e, s, u, c, f), s.side === "bottom" && zmt.draw(e, s._id + "title", { propContainer: s, propName: s._name + ".title.text", placeholder: t._dfltTitle.x, attributes: { x: s._offset + s._length / 2, y: k + u._height + u._offsetShift + 10 + 1.5 * s.title.font.size, "text-anchor": "middle" } });
+ }));
+ };
+ function Nge(e) {
+ return typeof e.clientX == "number" ? e.clientX : e.touches && e.touches.length > 0 ? e.touches[0].clientX : 0;
+ }
+ function Nmt(e, t, r, n) {
+ if (t._context.staticPlot) return;
+ var i = e.select("rect." + rl.slideBoxClassName).node(), a = e.select("rect." + rl.grabAreaMinClassName).node(), o = e.select("rect." + rl.grabAreaMaxClassName).node();
+ function s() {
+ var l = DI.event, u = l.target, c = Nge(l), f = c - e.node().getBoundingClientRect().left, h = n.d2p(r._rl[0]), d = n.d2p(r._rl[1]), v = qmt.coverSlip();
+ this.addEventListener("touchmove", _), this.addEventListener("touchend", b), v.addEventListener("mousemove", _), v.addEventListener("mouseup", b);
+ function _(p) {
+ var k = Nge(p), E = +k - c, T, L, x;
+ switch (u) {
+ case i:
+ if (x = "ew-resize", h + E > r._length || d + E < 0) return;
+ T = h + E, L = d + E;
+ break;
+ case a:
+ if (x = "col-resize", h + E > r._length) return;
+ T = h + E, L = d;
+ break;
+ case o:
+ if (x = "col-resize", d + E < 0) return;
+ T = h, L = d + E;
+ break;
+ default:
+ x = "ew-resize", T = f, L = f + E;
+ break;
+ }
+ if (L < T) {
+ var C = L;
+ L = T, T = C;
+ }
+ n._pixelMin = T, n._pixelMax = L, Bmt(DI.select(v), x), Umt(e, t, r, n);
+ }
+ function b() {
+ v.removeEventListener("mousemove", _), v.removeEventListener("mouseup", b), this.removeEventListener("touchmove", _), this.removeEventListener("touchend", b), Jf.removeElement(v);
+ }
+ }
+ e.on("mousedown", s), e.on("touchstart", s);
+ }
+ function Umt(e, t, r, n) {
+ function i(s) {
+ return r.l2r(Jf.constrain(s, n._rl[0], n._rl[1]));
+ }
+ var a = i(n.p2d(n._pixelMin)), o = i(n.p2d(n._pixelMax));
+ window.requestAnimationFrame(function() {
+ Dmt.call("_guiRelayout", t, r._name + ".range", [a, o]);
+ });
+ }
+ function Vmt(e, t, r, n, i, a) {
+ var o = rl.handleWidth / 2;
+ function s(p) {
+ return Jf.constrain(p, 0, n._width);
+ }
+ function l(p) {
+ return Jf.constrain(p, 0, n._height);
+ }
+ function u(p) {
+ return Jf.constrain(p, -o, n._width + o);
+ }
+ var c = s(n.d2p(r._rl[0])), f = s(n.d2p(r._rl[1]));
+ if (e.select("rect." + rl.slideBoxClassName).attr("x", c).attr("width", f - c), e.select("rect." + rl.maskMinClassName).attr("width", c), e.select("rect." + rl.maskMaxClassName).attr("x", f).attr("width", n._width - f), a.rangemode !== "match") {
+ var h = n._height - l(n.d2pOppAxis(i._rl[1])), d = n._height - l(n.d2pOppAxis(i._rl[0]));
+ e.select("rect." + rl.maskMinOppAxisClassName).attr("x", c).attr("height", h).attr("width", f - c), e.select("rect." + rl.maskMaxOppAxisClassName).attr("x", c).attr("y", d).attr("height", n._height - d).attr("width", f - c), e.select("rect." + rl.slideBoxClassName).attr("y", h).attr("height", d - h);
+ }
+ var v = 0.5, _ = Math.round(u(c - o)) - v, b = Math.round(u(f - o)) + v;
+ e.select("g." + rl.grabberMinClassName).attr("transform", FI(_, v)), e.select("g." + rl.grabberMaxClassName).attr("transform", FI(b, v));
+ }
+ function Gmt(e, t, r, n) {
+ var i = Jf.ensureSingle(e, "rect", rl.bgClassName, function(l) {
+ l.attr({ x: 0, y: 0, "shape-rendering": "crispEdges" });
+ }), a = n.borderwidth % 2 === 0 ? n.borderwidth : n.borderwidth - 1, o = -n._offsetShift, s = Uge.crispRound(t, n.borderwidth);
+ i.attr({ width: n._width + a, height: n._height + a, transform: FI(o, o), "stroke-width": s }).call(C_.stroke, n.bordercolor).call(C_.fill, n.bgcolor);
+ }
+ function Hmt(e, t, r, n) {
+ var i = t._fullLayout, a = Jf.ensureSingleById(i._topdefs, "clipPath", n._clipId, function(o) {
+ o.append("rect").attr({ x: 0, y: 0 });
+ });
+ a.select("rect").attr({ width: n._width, height: n._height });
+ }
+ function jmt(e, t, r, n) {
+ var i = t.calcdata, a = e.selectAll("g." + rl.rangePlotClassName).data(r._subplotsWith, Jf.identity);
+ a.enter().append("g").attr("class", function(s) {
+ return rl.rangePlotClassName + " " + s;
+ }).call(Uge.setClipUrl, n._clipId, t), a.order(), a.exit().remove();
+ var o;
+ a.each(function(s, l) {
+ var u = DI.select(this), c = l === 0, f = uV.getFromId(t, s, "y"), h = f._name, d = n[h], v = { data: [], layout: { xaxis: { type: r.type, domain: [0, 1], range: n.range.slice(), calendar: r.calendar }, width: n._width, height: n._height, margin: { t: 0, b: 0, l: 0, r: 0 } }, _context: t._context };
+ r.rangebreaks && (v.layout.xaxis.rangebreaks = r.rangebreaks), v.layout[h] = { type: f.type, domain: [0, 1], range: d.rangemode !== "match" ? d.range.slice() : f.range.slice(), calendar: f.calendar }, f.rangebreaks && (v.layout[h].rangebreaks = f.rangebreaks), Fmt.supplyDefaults(v);
+ var _ = v._fullLayout.xaxis, b = v._fullLayout[h];
+ _.clearCalc(), _.setScale(), b.clearCalc(), b.setScale();
+ var p = { id: s, plotgroup: u, xaxis: _, yaxis: b, isRangePlot: true };
+ c ? o = p : (p.mainplot = "xy", p.mainplotinfo = o), Omt.rangePlot(t, p, Wmt(i, s));
+ });
+ }
+ function Wmt(e, t) {
+ for (var r = [], n = 0; n < e.length; n++) {
+ var i = e[n], a = i[0].trace;
+ a.xaxis + a.yaxis === t && r.push(i);
+ }
+ return r;
+ }
+ function Xmt(e, t, r, n, i) {
+ var a = Jf.ensureSingle(e, "rect", rl.maskMinClassName, function(u) {
+ u.attr({ x: 0, y: 0, "shape-rendering": "crispEdges" });
+ });
+ a.attr("height", n._height).call(C_.fill, rl.maskColor);
+ var o = Jf.ensureSingle(e, "rect", rl.maskMaxClassName, function(u) {
+ u.attr({ y: 0, "shape-rendering": "crispEdges" });
+ });
+ if (o.attr("height", n._height).call(C_.fill, rl.maskColor), i.rangemode !== "match") {
+ var s = Jf.ensureSingle(e, "rect", rl.maskMinOppAxisClassName, function(u) {
+ u.attr({ y: 0, "shape-rendering": "crispEdges" });
+ });
+ s.attr("width", n._width).call(C_.fill, rl.maskOppAxisColor);
+ var l = Jf.ensureSingle(e, "rect", rl.maskMaxOppAxisClassName, function(u) {
+ u.attr({ y: 0, "shape-rendering": "crispEdges" });
+ });
+ l.attr("width", n._width).style("border-top", rl.maskOppBorder).call(C_.fill, rl.maskOppAxisColor);
+ }
+ }
+ function Zmt(e, t, r, n) {
+ if (!t._context.staticPlot) {
+ var i = Jf.ensureSingle(e, "rect", rl.slideBoxClassName, function(a) {
+ a.attr({ y: 0, cursor: rl.slideBoxCursor, "shape-rendering": "crispEdges" });
+ });
+ i.attr({ height: n._height, fill: rl.slideBoxFill });
+ }
+ }
+ function Ymt(e, t, r, n) {
+ var i = Jf.ensureSingle(e, "g", rl.grabberMinClassName), a = Jf.ensureSingle(e, "g", rl.grabberMaxClassName), o = { x: 0, width: rl.handleWidth, rx: rl.handleRadius, fill: C_.background, stroke: C_.defaultLine, "stroke-width": rl.handleStrokeWidth, "shape-rendering": "crispEdges" }, s = { y: Math.round(n._height / 4), height: Math.round(n._height / 2) }, l = Jf.ensureSingle(i, "rect", rl.handleMinClassName, function(d) {
+ d.attr(o);
+ });
+ l.attr(s);
+ var u = Jf.ensureSingle(a, "rect", rl.handleMaxClassName, function(d) {
+ d.attr(o);
+ });
+ u.attr(s);
+ var c = { width: rl.grabAreaWidth, x: 0, y: 0, fill: rl.grabAreaFill, cursor: t._context.staticPlot ? void 0 : rl.grabAreaCursor }, f = Jf.ensureSingle(i, "rect", rl.grabAreaMinClassName, function(d) {
+ d.attr(c);
+ });
+ f.attr("height", n._height);
+ var h = Jf.ensureSingle(a, "rect", rl.grabAreaMaxClassName, function(d) {
+ d.attr(c);
+ });
+ h.attr("height", n._height);
+ }
+ });
+ var jge = ye((Elr, Hge) => {
+ var Kmt = Dr(), Jmt = CI(), $mt = lV(), cV = Rge();
+ Hge.exports = { moduleType: "component", name: "rangeslider", schema: { subplots: { xaxis: { rangeslider: Kmt.extendFlat({}, Jmt, { yaxis: $mt }) } } }, layoutAttributes: CI(), handleDefaults: Oge(), calcAutorange: Bge(), draw: Gge(), isVisible: cV.isVisible, makeData: cV.makeData, autoMarginOpts: cV.autoMarginOpts };
+ });
+ var zI = ye((klr, Xge) => {
+ var Qmt = ec(), Wge = Ih(), eyt = vl().templatedArray, tyt = eyt("button", { visible: { valType: "boolean", dflt: true, editType: "plot" }, step: { valType: "enumerated", values: ["month", "year", "day", "hour", "minute", "second", "all"], dflt: "month", editType: "plot" }, stepmode: { valType: "enumerated", values: ["backward", "todate"], dflt: "backward", editType: "plot" }, count: { valType: "number", min: 0, dflt: 1, editType: "plot" }, label: { valType: "string", editType: "plot" }, editType: "plot" });
+ Xge.exports = { visible: { valType: "boolean", editType: "plot" }, buttons: tyt, x: { valType: "number", min: -2, max: 3, editType: "plot" }, xanchor: { valType: "enumerated", values: ["auto", "left", "center", "right"], dflt: "left", editType: "plot" }, y: { valType: "number", min: -2, max: 3, editType: "plot" }, yanchor: { valType: "enumerated", values: ["auto", "top", "middle", "bottom"], dflt: "bottom", editType: "plot" }, font: Qmt({ editType: "plot" }), bgcolor: { valType: "color", dflt: Wge.lightLine, editType: "plot" }, activecolor: { valType: "color", editType: "plot" }, bordercolor: { valType: "color", dflt: Wge.defaultLine, editType: "plot" }, borderwidth: { valType: "number", min: 0, dflt: 0, editType: "plot" }, editType: "plot" };
+ });
+ var fV = ye((Clr, Zge) => {
+ Zge.exports = { yPad: 0.02, minButtonWidth: 30, rx: 3, ry: 3, lightAmount: 25, darkAmount: 10 };
+ });
+ var Jge = ye((Llr, Kge) => {
+ var OI = Dr(), ryt = ka(), iyt = vl(), nyt = Zd(), Yge = zI(), hV = fV();
+ Kge.exports = function(t, r, n, i, a) {
+ var o = t.rangeselector || {}, s = iyt.newContainer(r, "rangeselector");
+ function l(d, v) {
+ return OI.coerce(o, s, Yge, d, v);
+ }
+ var u = nyt(o, s, { name: "buttons", handleItemDefaults: ayt, calendar: a }), c = l("visible", u.length > 0);
+ if (c) {
+ var f = oyt(r, n, i);
+ l("x", f[0]), l("y", f[1]), OI.noneOrAll(t, r, ["x", "y"]), l("xanchor"), l("yanchor"), OI.coerceFont(l, "font", n.font);
+ var h = l("bgcolor");
+ l("activecolor", ryt.contrast(h, hV.lightAmount, hV.darkAmount)), l("bordercolor"), l("borderwidth");
+ }
+ };
+ function ayt(e, t, r, n) {
+ var i = n.calendar;
+ function a(l, u) {
+ return OI.coerce(e, t, Yge.buttons, l, u);
+ }
+ var o = a("visible");
+ if (o) {
+ var s = a("step");
+ s !== "all" && (i && i !== "gregorian" && (s === "month" || s === "year") ? t.stepmode = "backward" : a("stepmode"), a("count")), a("label");
+ }
+ }
+ function oyt(e, t, r) {
+ for (var n = r.filter(function(s) {
+ return t[s].anchor === e._id;
+ }), i = 0, a = 0; a < n.length; a++) {
+ var o = t[n[a]].domain;
+ o && (i = Math.max(o[1], i));
+ }
+ return [e.domain[0], i + hV.yPad];
+ }
+ });
+ var Qge = ye((Plr, $ge) => {
+ var syt = SO(), lyt = Dr().titleCase;
+ $ge.exports = function(t, r) {
+ var n = t._name, i = {};
+ if (r.step === "all") i[n + ".autorange"] = true;
+ else {
+ var a = uyt(t, r);
+ i[n + ".range[0]"] = a[0], i[n + ".range[1]"] = a[1];
+ }
+ return i;
+ };
+ function uyt(e, t) {
+ var r = e.range, n = new Date(e.r2l(r[1])), i = t.step, a = syt["utc" + lyt(i)], o = t.count, s;
+ switch (t.stepmode) {
+ case "backward":
+ s = e.l2r(+a.offset(n, -o));
+ break;
+ case "todate":
+ var l = a.offset(n, -o);
+ s = e.l2r(+a.ceil(l));
+ break;
+ }
+ var u = r[1];
+ return [s, u];
+ }
+ });
+ var sme = ye((Ilr, ome) => {
+ var BI = Oa(), cyt = qa(), fyt = Mc(), eme = ka(), ame = So(), Ny = Dr(), tme = Ny.strTranslate, qI = Zl(), hyt = hf(), pV = Dh(), rme = pV.LINE_SPACING, ime = pV.FROM_TL, nme = pV.FROM_BR, vV = fV(), dyt = Qge();
+ ome.exports = function(t) {
+ var r = t._fullLayout, n = r._infolayer.selectAll(".rangeselector").data(vyt(t), pyt);
+ n.enter().append("g").classed("rangeselector", true), n.exit().remove(), n.style({ cursor: "pointer", "pointer-events": "all" }), n.each(function(i) {
+ var a = BI.select(this), o = i, s = o.rangeselector, l = a.selectAll("g.button").data(Ny.filterVisible(s.buttons));
+ l.enter().append("g").classed("button", true), l.exit().remove(), l.each(function(u) {
+ var c = BI.select(this), f = dyt(o, u);
+ u._isActive = gyt(o, u, f), c.call(dV, s, u), c.call(yyt, s, u, t), c.on("click", function() {
+ t._dragged || cyt.call("_guiRelayout", t, f);
+ }), c.on("mouseover", function() {
+ u._isHovered = true, c.call(dV, s, u);
+ }), c.on("mouseout", function() {
+ u._isHovered = false, c.call(dV, s, u);
+ });
+ }), xyt(t, l, s, o._name, a);
+ });
+ };
+ function vyt(e) {
+ for (var t = hyt.list(e, "x", true), r = [], n = 0; n < t.length; n++) {
+ var i = t[n];
+ i.rangeselector && i.rangeselector.visible && r.push(i);
+ }
+ return r;
+ }
+ function pyt(e) {
+ return e._id;
+ }
+ function gyt(e, t, r) {
+ if (t.step === "all") return e.autorange === true;
+ var n = Object.keys(r);
+ return e.range[0] === r[n[0]] && e.range[1] === r[n[1]];
+ }
+ function dV(e, t, r) {
+ var n = Ny.ensureSingle(e, "rect", "selector-rect", function(i) {
+ i.attr("shape-rendering", "crispEdges");
+ });
+ n.attr({ rx: vV.rx, ry: vV.ry }), n.call(eme.stroke, t.bordercolor).call(eme.fill, myt(t, r)).style("stroke-width", t.borderwidth + "px");
+ }
+ function myt(e, t) {
+ return t._isActive || t._isHovered ? e.activecolor : e.bgcolor;
+ }
+ function yyt(e, t, r, n) {
+ function i(o) {
+ qI.convertToTspans(o, n);
+ }
+ var a = Ny.ensureSingle(e, "text", "selector-text", function(o) {
+ o.attr("text-anchor", "middle");
+ });
+ a.call(ame.font, t.font).text(_yt(r, n._fullLayout._meta)).call(i);
+ }
+ function _yt(e, t) {
+ return e.label ? t ? Ny.templateString(e.label, t) : e.label : e.step === "all" ? "all" : e.count + e.step.charAt(0);
+ }
+ function xyt(e, t, r, n, i) {
+ var a = 0, o = 0, s = r.borderwidth;
+ t.each(function() {
+ var d = BI.select(this), v = d.select(".selector-text"), _ = r.font.size * rme, b = Math.max(_ * qI.lineCount(v), 16) + 3;
+ o = Math.max(o, b);
+ }), t.each(function() {
+ var d = BI.select(this), v = d.select(".selector-rect"), _ = d.select(".selector-text"), b = _.node() && ame.bBox(_.node()).width, p = r.font.size * rme, k = qI.lineCount(_), E = Math.max(b + 10, vV.minButtonWidth);
+ d.attr("transform", tme(s + a, s)), v.attr({ x: 0, y: 0, width: E, height: o }), qI.positionText(_, E / 2, o / 2 - (k - 1) * p / 2 + 3), a += E + 5;
+ });
+ var l = e._fullLayout._size, u = l.l + l.w * r.x, c = l.t + l.h * (1 - r.y), f = "left";
+ Ny.isRightAnchor(r) && (u -= a, f = "right"), Ny.isCenterAnchor(r) && (u -= a / 2, f = "center");
+ var h = "top";
+ Ny.isBottomAnchor(r) && (c -= o, h = "bottom"), Ny.isMiddleAnchor(r) && (c -= o / 2, h = "middle"), a = Math.ceil(a), o = Math.ceil(o), u = Math.round(u), c = Math.round(c), fyt.autoMargin(e, n + "-range-selector", { x: r.x, y: r.y, l: a * ime[f], r: a * nme[f], b: o * nme[h], t: o * ime[h] }), i.attr("transform", tme(u, c));
+ }
+ });
+ var ume = ye((Rlr, lme) => {
+ lme.exports = { moduleType: "component", name: "rangeselector", schema: { subplots: { xaxis: { rangeselector: zI() } } }, layoutAttributes: zI(), handleDefaults: Jge(), draw: sme() };
+ });
+ var Cc = ye((gV) => {
+ var cme = Ao().extendFlat;
+ gV.attributes = function(e, t) {
+ e = e || {}, t = t || {};
+ var r = { valType: "info_array", editType: e.editType, items: [{ valType: "number", min: 0, max: 1, editType: e.editType }, { valType: "number", min: 0, max: 1, editType: e.editType }], dflt: [0, 1] };
+ e.name ? e.name + " " : "";
+ e.trace ? "trace " : "subplot ";
+ t.description ? " " + t.description : "";
+ var o = { x: cme({}, r, {}), y: cme({}, r, {}), editType: e.editType };
+ return e.noGridCell || (o.row = { valType: "integer", min: 0, dflt: 0, editType: e.editType }, o.column = { valType: "integer", min: 0, dflt: 0, editType: e.editType }), o;
+ };
+ gV.defaults = function(e, t, r, n) {
+ var i = n && n.x || [0, 1], a = n && n.y || [0, 1], o = t.grid;
+ if (o) {
+ var s = r("domain.column");
+ s !== void 0 && (s < o.columns ? i = o._domains.x[s] : delete e.domain.column);
+ var l = r("domain.row");
+ l !== void 0 && (l < o.rows ? a = o._domains.y[l] : delete e.domain.row);
+ }
+ var u = r("domain.x", i), c = r("domain.y", a);
+ u[0] < u[1] || (e.domain.x = i.slice()), c[0] < c[1] || (e.domain.y = a.slice());
+ };
+ });
+ var yV = ye((Flr, vme) => {
+ var byt = Dr(), wyt = p3().counter, Tyt = Cc().attributes, fme = Rh().idRegex, Ayt = vl(), mV = { rows: { valType: "integer", min: 1, editType: "plot" }, roworder: { valType: "enumerated", values: ["top to bottom", "bottom to top"], dflt: "top to bottom", editType: "plot" }, columns: { valType: "integer", min: 1, editType: "plot" }, subplots: { valType: "info_array", freeLength: true, dimensions: 2, items: { valType: "enumerated", values: [wyt("xy").toString(), ""], editType: "plot" }, editType: "plot" }, xaxes: { valType: "info_array", freeLength: true, items: { valType: "enumerated", values: [fme.x.toString(), ""], editType: "plot" }, editType: "plot" }, yaxes: { valType: "info_array", freeLength: true, items: { valType: "enumerated", values: [fme.y.toString(), ""], editType: "plot" }, editType: "plot" }, pattern: { valType: "enumerated", values: ["independent", "coupled"], dflt: "coupled", editType: "plot" }, xgap: { valType: "number", min: 0, max: 1, editType: "plot" }, ygap: { valType: "number", min: 0, max: 1, editType: "plot" }, domain: Tyt({ name: "grid", editType: "plot", noGridCell: true }, {}), xside: { valType: "enumerated", values: ["bottom", "bottom plot", "top plot", "top"], dflt: "bottom plot", editType: "plot" }, yside: { valType: "enumerated", values: ["left", "left plot", "right plot", "right"], dflt: "left plot", editType: "plot" }, editType: "plot" };
+ function NI(e, t, r) {
+ var n = t[r + "axes"], i = Object.keys((e._splomAxes || {})[r] || {});
+ if (Array.isArray(n)) return n;
+ if (i.length) return i;
+ }
+ function Syt(e, t) {
+ var r = e.grid || {}, n = NI(t, r, "x"), i = NI(t, r, "y");
+ if (!e.grid && !n && !i) return;
+ var a = Array.isArray(r.subplots) && Array.isArray(r.subplots[0]), o = Array.isArray(n), s = Array.isArray(i), l = o && n !== r.xaxes && s && i !== r.yaxes, u, c;
+ a ? (u = r.subplots.length, c = r.subplots[0].length) : (s && (u = i.length), o && (c = n.length));
+ var f = Ayt.newContainer(t, "grid");
+ function h(x, C) {
+ return byt.coerce(r, f, mV, x, C);
+ }
+ var d = h("rows", u), v = h("columns", c);
+ if (!(d * v > 1)) {
+ delete t.grid;
+ return;
+ }
+ if (!a && !o && !s) {
+ var _ = h("pattern") === "independent";
+ _ && (a = true);
+ }
+ f._hasSubplotGrid = a;
+ var b = h("roworder"), p = b === "top to bottom", k = a ? 0.2 : 0.1, E = a ? 0.3 : 0.1, T, L;
+ l && t._splomGridDflt && (T = t._splomGridDflt.xside, L = t._splomGridDflt.yside), f._domains = { x: hme("x", h, k, T, v), y: hme("y", h, E, L, d, p) };
+ }
+ function hme(e, t, r, n, i, a) {
+ var o = t(e + "gap", r), s = t("domain." + e);
+ t(e + "side", n);
+ for (var l = new Array(i), u = s[0], c = (s[1] - u) / (i - o), f = c * (1 - o), h = 0; h < i; h++) {
+ var d = u + c * h;
+ l[a ? i - 1 - h : h] = [d, d + f];
+ }
+ return l;
+ }
+ function Myt(e, t) {
+ var r = t.grid;
+ if (!(!r || !r._domains)) {
+ var n = e.grid || {}, i = t._subplots, a = r._hasSubplotGrid, o = r.rows, s = r.columns, l = r.pattern === "independent", u, c, f, h, d, v, _, b = r._axisMap = {};
+ if (a) {
+ var p = n.subplots || [];
+ v = r.subplots = new Array(o);
+ var k = 1;
+ for (u = 0; u < o; u++) {
+ var E = v[u] = new Array(s), T = p[u] || [];
+ for (c = 0; c < s; c++) if (l ? (d = k === 1 ? "xy" : "x" + k + "y" + k, k++) : d = T[c], E[c] = "", i.cartesian.indexOf(d) !== -1) {
+ if (_ = d.indexOf("y"), f = d.slice(0, _), h = d.slice(_), b[f] !== void 0 && b[f] !== c || b[h] !== void 0 && b[h] !== u) continue;
+ E[c] = d, b[f] = c, b[h] = u;
+ }
+ }
+ } else {
+ var L = NI(t, n, "x"), x = NI(t, n, "y");
+ r.xaxes = dme(L, i.xaxis, s, b, "x"), r.yaxes = dme(x, i.yaxis, o, b, "y");
+ }
+ var C = r._anchors = {}, M = r.roworder === "top to bottom";
+ for (var g in b) {
+ var P = g.charAt(0), A = r[P + "side"], z, O, U;
+ if (A.length < 8) C[g] = "free";
+ else if (P === "x") {
+ if (A.charAt(0) === "t" === M ? (z = 0, O = 1, U = o) : (z = o - 1, O = -1, U = -1), a) {
+ var G = b[g];
+ for (u = z; u !== U; u += O) if (d = v[u][G], !!d && (_ = d.indexOf("y"), d.slice(0, _) === g)) {
+ C[g] = d.slice(_);
+ break;
+ }
+ } else for (u = z; u !== U; u += O) if (h = r.yaxes[u], i.cartesian.indexOf(g + h) !== -1) {
+ C[g] = h;
+ break;
+ }
+ } else if (A.charAt(0) === "l" ? (z = 0, O = 1, U = s) : (z = s - 1, O = -1, U = -1), a) {
+ var Z = b[g];
+ for (u = z; u !== U; u += O) if (d = v[Z][u], !!d && (_ = d.indexOf("y"), d.slice(_) === g)) {
+ C[g] = d.slice(0, _);
+ break;
+ }
+ } else for (u = z; u !== U; u += O) if (f = r.xaxes[u], i.cartesian.indexOf(f + g) !== -1) {
+ C[g] = f;
+ break;
+ }
+ }
+ }
+ }
+ function dme(e, t, r, n, i) {
+ var a = new Array(r), o;
+ function s(l, u) {
+ t.indexOf(u) !== -1 && n[u] === void 0 ? (a[l] = u, n[u] = l) : a[l] = "";
+ }
+ if (Array.isArray(e)) for (o = 0; o < r; o++) s(o, e[o]);
+ else for (s(0, i), o = 1; o < r; o++) s(o, i + (o + 1));
+ return a;
+ }
+ vme.exports = { moduleType: "component", name: "grid", schema: { layout: { grid: mV } }, layoutAttributes: mV, sizeDefaults: Syt, contentDefaults: Myt };
+ });
+ var _V = ye((zlr, pme) => {
+ pme.exports = { visible: { valType: "boolean", editType: "calc" }, type: { valType: "enumerated", values: ["percent", "constant", "sqrt", "data"], editType: "calc" }, symmetric: { valType: "boolean", editType: "calc" }, array: { valType: "data_array", editType: "calc" }, arrayminus: { valType: "data_array", editType: "calc" }, value: { valType: "number", min: 0, dflt: 10, editType: "calc" }, valueminus: { valType: "number", min: 0, dflt: 10, editType: "calc" }, traceref: { valType: "integer", min: 0, dflt: 0, editType: "style" }, tracerefminus: { valType: "integer", min: 0, dflt: 0, editType: "style" }, copy_ystyle: { valType: "boolean", editType: "plot" }, copy_zstyle: { valType: "boolean", editType: "style" }, color: { valType: "color", editType: "style" }, thickness: { valType: "number", min: 0, dflt: 2, editType: "style" }, width: { valType: "number", min: 0, editType: "plot" }, editType: "calc" };
+ });
+ var yme = ye((Olr, mme) => {
+ var gme = Eo(), Eyt = qa(), kyt = Dr(), Cyt = vl(), Lyt = _V();
+ mme.exports = function(e, t, r, n) {
+ var i = "error_" + n.axis, a = Cyt.newContainer(t, i), o = e[i] || {};
+ function s(v, _) {
+ return kyt.coerce(o, a, Lyt, v, _);
+ }
+ var l = o.array !== void 0 || o.value !== void 0 || o.type === "sqrt", u = s("visible", l);
+ if (u !== false) {
+ var c = s("type", "array" in o ? "data" : "percent"), f = true;
+ c !== "sqrt" && (f = s("symmetric", !((c === "data" ? "arrayminus" : "valueminus") in o))), c === "data" ? (s("array"), s("traceref"), f || (s("arrayminus"), s("tracerefminus"))) : (c === "percent" || c === "constant") && (s("value"), f || s("valueminus"));
+ var h = "copy_" + n.inherit + "style";
+ if (n.inherit) {
+ var d = t["error_" + n.inherit];
+ (d || {}).visible && s(h, !(o.color || gme(o.thickness) || gme(o.width)));
+ }
+ (!n.inherit || !a[h]) && (s("color", r), s("thickness"), s("width", Eyt.traceIs(t, "gl3d") ? 0 : 4));
+ }
+ };
+ });
+ var xV = ye((qlr, xme) => {
+ xme.exports = function(t) {
+ var r = t.type, n = t.symmetric;
+ if (r === "data") {
+ var i = t.array || [];
+ if (n) return function(u, c) {
+ var f = +i[c];
+ return [f, f];
+ };
+ var a = t.arrayminus || [];
+ return function(u, c) {
+ var f = +i[c], h = +a[c];
+ return !isNaN(f) || !isNaN(h) ? [h || 0, f || 0] : [NaN, NaN];
+ };
+ } else {
+ var o = _me(r, t.value), s = _me(r, t.valueminus);
+ return n || t.valueminus === void 0 ? function(u) {
+ var c = o(u);
+ return [c, c];
+ } : function(u) {
+ return [s(u), o(u)];
+ };
+ }
+ };
+ function _me(e, t) {
+ if (e === "percent") return function(r) {
+ return Math.abs(r * t / 100);
+ };
+ if (e === "constant") return function() {
+ return Math.abs(t);
+ };
+ if (e === "sqrt") return function(r) {
+ return Math.sqrt(Math.abs(r));
+ };
+ }
+ });
+ var Tme = ye((Blr, wme) => {
+ var bV = Eo(), Pyt = qa(), wV = ho(), Iyt = Dr(), Ryt = xV();
+ wme.exports = function(t) {
+ for (var r = t.calcdata, n = 0; n < r.length; n++) {
+ var i = r[n], a = i[0].trace;
+ if (a.visible === true && Pyt.traceIs(a, "errorBarsOK")) {
+ var o = wV.getFromId(t, a.xaxis), s = wV.getFromId(t, a.yaxis);
+ bme(i, a, o, "x"), bme(i, a, s, "y");
+ }
+ }
+ };
+ function bme(e, t, r, n) {
+ var i = t["error_" + n] || {}, a = i.visible && ["linear", "log"].indexOf(r.type) !== -1, o = [];
+ if (a) {
+ for (var s = Ryt(i), l = 0; l < e.length; l++) {
+ var u = e[l], c = u.i;
+ if (c === void 0) c = l;
+ else if (c === null) continue;
+ var f = u[n];
+ if (bV(r.c2l(f))) {
+ var h = s(f, c);
+ if (bV(h[0]) && bV(h[1])) {
+ var d = u[n + "s"] = f - h[0], v = u[n + "h"] = f + h[1];
+ o.push(d, v);
+ }
+ }
+ }
+ var _ = r._id, b = t._extremes[_], p = wV.findExtremes(r, o, Iyt.extendFlat({ tozero: b.opts.tozero }, { padded: true }));
+ b.min = b.min.concat(p.min), b.max = b.max.concat(p.max);
+ }
+ }
+ });
+ var Mme = ye((Nlr, Sme) => {
+ var Ame = Oa(), L_ = Eo(), Dyt = So(), Fyt = Ru();
+ Sme.exports = function(t, r, n, i) {
+ var a, o = n.xaxis, s = n.yaxis, l = i && i.duration > 0, u = t._context.staticPlot;
+ r.each(function(c) {
+ var f = c[0].trace, h = f.error_x || {}, d = f.error_y || {}, v;
+ f.ids && (v = function(k) {
+ return k.id;
+ });
+ var _ = Fyt.hasMarkers(f) && f.marker.maxdisplayed > 0;
+ !d.visible && !h.visible && (c = []);
+ var b = Ame.select(this).selectAll("g.errorbar").data(c, v);
+ if (b.exit().remove(), !!c.length) {
+ h.visible || b.selectAll("path.xerror").remove(), d.visible || b.selectAll("path.yerror").remove(), b.style("opacity", 1);
+ var p = b.enter().append("g").classed("errorbar", true);
+ l && p.style("opacity", 0).transition().duration(i.duration).style("opacity", 1), Dyt.setClipUrl(b, n.layerClipId, t), b.each(function(k) {
+ var E = Ame.select(this), T = zyt(k, o, s);
+ if (!(_ && !k.vis)) {
+ var L, x = E.select("path.yerror");
+ if (d.visible && L_(T.x) && L_(T.yh) && L_(T.ys)) {
+ var C = d.width;
+ L = "M" + (T.x - C) + "," + T.yh + "h" + 2 * C + "m-" + C + ",0V" + T.ys, T.noYS || (L += "m-" + C + ",0h" + 2 * C), a = !x.size(), a ? x = E.append("path").style("vector-effect", u ? "none" : "non-scaling-stroke").classed("yerror", true) : l && (x = x.transition().duration(i.duration).ease(i.easing)), x.attr("d", L);
+ } else x.remove();
+ var M = E.select("path.xerror");
+ if (h.visible && L_(T.y) && L_(T.xh) && L_(T.xs)) {
+ var g = (h.copy_ystyle ? d : h).width;
+ L = "M" + T.xh + "," + (T.y - g) + "v" + 2 * g + "m0,-" + g + "H" + T.xs, T.noXS || (L += "m0,-" + g + "v" + 2 * g), a = !M.size(), a ? M = E.append("path").style("vector-effect", u ? "none" : "non-scaling-stroke").classed("xerror", true) : l && (M = M.transition().duration(i.duration).ease(i.easing)), M.attr("d", L);
+ } else M.remove();
+ }
+ });
+ }
+ });
+ };
+ function zyt(e, t, r) {
+ var n = { x: t.c2p(e.x), y: r.c2p(e.y) };
+ return e.yh !== void 0 && (n.yh = r.c2p(e.yh), n.ys = r.c2p(e.ys), L_(n.ys) || (n.noYS = true, n.ys = r.c2p(e.ys, true))), e.xh !== void 0 && (n.xh = t.c2p(e.xh), n.xs = t.c2p(e.xs), L_(n.xs) || (n.noXS = true, n.xs = t.c2p(e.xs, true))), n;
+ }
+ });
+ var Cme = ye((Ulr, kme) => {
+ var Oyt = Oa(), Eme = ka();
+ kme.exports = function(t) {
+ t.each(function(r) {
+ var n = r[0].trace, i = n.error_y || {}, a = n.error_x || {}, o = Oyt.select(this);
+ o.selectAll("path.yerror").style("stroke-width", i.thickness + "px").call(Eme.stroke, i.color), a.copy_ystyle && (a = i), o.selectAll("path.xerror").style("stroke-width", a.thickness + "px").call(Eme.stroke, a.color);
+ });
+ };
+ });
+ var Ime = ye((Vlr, Pme) => {
+ var x4 = Dr(), Lme = mc().overrideAll, b4 = _V(), u2 = { error_x: x4.extendFlat({}, b4), error_y: x4.extendFlat({}, b4) };
+ delete u2.error_x.copy_zstyle;
+ delete u2.error_y.copy_zstyle;
+ delete u2.error_y.copy_ystyle;
+ var w4 = { error_x: x4.extendFlat({}, b4), error_y: x4.extendFlat({}, b4), error_z: x4.extendFlat({}, b4) };
+ delete w4.error_x.copy_ystyle;
+ delete w4.error_y.copy_ystyle;
+ delete w4.error_z.copy_ystyle;
+ delete w4.error_z.copy_zstyle;
+ Pme.exports = { moduleType: "component", name: "errorbars", schema: { traces: { scatter: u2, bar: u2, histogram: u2, scatter3d: Lme(w4, "calc", "nested"), scattergl: Lme(u2, "calc", "nested") } }, supplyDefaults: yme(), calc: Tme(), makeComputeError: xV(), plot: Mme(), style: Cme(), hoverInfo: qyt };
+ function qyt(e, t, r) {
+ (t.error_y || {}).visible && (r.yerr = e.yh - e.y, t.error_y.symmetric || (r.yerrneg = e.y - e.ys)), (t.error_x || {}).visible && (r.xerr = e.xh - e.x, t.error_x.symmetric || (r.xerrneg = e.x - e.xs));
+ }
+ });
+ var Dme = ye((Glr, Rme) => {
+ Rme.exports = { cn: { colorbar: "colorbar", cbbg: "cbbg", cbfill: "cbfill", cbfills: "cbfills", cbline: "cbline", cblines: "cblines", cbaxis: "cbaxis", cbtitleunshift: "cbtitleunshift", cbtitle: "cbtitle", cboutline: "cboutline", crisp: "crisp", jsPlaceholder: "js-placeholder" } };
+ });
+ var Ume = ye((Hlr, Nme) => {
+ var P_ = Oa(), TV = fd(), VI = Mc(), Fme = qa(), Uy = ho(), UI = yv(), U0 = Dr(), Hg = U0.strTranslate, Bme = Ao().extendFlat, AV = Eg(), Gg = So(), SV = ka(), Byt = zb(), Nyt = Zl(), Uyt = pv().flipScale, Vyt = f4(), Gyt = dI(), Hyt = Rd(), MV = Dh(), zme = MV.LINE_SPACING, Ome = MV.FROM_TL, qme = MV.FROM_BR, gf = Dme().cn;
+ function jyt(e) {
+ var t = e._fullLayout, r = t._infolayer.selectAll("g." + gf.colorbar).data(Wyt(e), function(n) {
+ return n._id;
+ });
+ r.enter().append("g").attr("class", function(n) {
+ return n._id;
+ }).classed(gf.colorbar, true), r.each(function(n) {
+ var i = P_.select(this);
+ U0.ensureSingle(i, "rect", gf.cbbg), U0.ensureSingle(i, "g", gf.cbfills), U0.ensureSingle(i, "g", gf.cblines), U0.ensureSingle(i, "g", gf.cbaxis, function(o) {
+ o.classed(gf.crisp, true);
+ }), U0.ensureSingle(i, "g", gf.cbtitleunshift, function(o) {
+ o.append("g").classed(gf.cbtitle, true);
+ }), U0.ensureSingle(i, "rect", gf.cboutline);
+ var a = Xyt(i, n, e);
+ a && a.then && (e._promises || []).push(a), e._context.edits.colorbarPosition && Zyt(i, n, e);
+ }), r.exit().each(function(n) {
+ VI.autoMargin(e, n._id);
+ }).remove(), r.order();
+ }
+ function Wyt(e) {
+ var t = e._fullLayout, r = e.calcdata, n = [], i, a, o, s;
+ function l(E) {
+ return Bme(E, { _fillcolor: null, _line: { color: null, width: null, dash: null }, _levels: { start: null, end: null, size: null }, _filllevels: null, _fillgradient: null, _zrange: null });
+ }
+ function u() {
+ typeof s.calc == "function" ? s.calc(e, o, i) : (i._fillgradient = a.reversescale ? Uyt(a.colorscale) : a.colorscale, i._zrange = [a[s.min], a[s.max]]);
+ }
+ for (var c = 0; c < r.length; c++) {
+ var f = r[c];
+ if (o = f[0].trace, !!o._module) {
+ var h = o._module.colorbar;
+ if (o.visible === true && h) for (var d = Array.isArray(h), v = d ? h : [h], _ = 0; _ < v.length; _++) {
+ s = v[_];
+ var b = s.container;
+ a = b ? o[b] : o, a && a.showscale && (i = l(a.colorbar), i._id = "cb" + o.uid + (d && b ? "-" + b : ""), i._traceIndex = o.index, i._propPrefix = (b ? b + "." : "") + "colorbar.", i._meta = o._meta, u(), n.push(i));
+ }
+ }
+ }
+ for (var p in t._colorAxes) if (a = t[p], a.showscale) {
+ var k = t._colorAxes[p];
+ i = l(a.colorbar), i._id = "cb" + p, i._propPrefix = p + ".colorbar.", i._meta = t._meta, s = { min: "cmin", max: "cmax" }, k[0] !== "heatmap" && (o = k[1], s.calc = o._module.colorbar.calc), u(), n.push(i);
+ }
+ return n;
+ }
+ function Xyt(e, t, r) {
+ var n = t.orientation === "v", i = t.len, a = t.lenmode, o = t.thickness, s = t.thicknessmode, l = t.outlinewidth, u = t.borderwidth, c = t.bgcolor, f = t.xanchor, h = t.yanchor, d = t.xpad, v = t.ypad, _ = t.x, b = n ? t.y : 1 - t.y, p = t.yref === "paper", k = t.xref === "paper", E = r._fullLayout, T = E._size, L = t._fillcolor, x = t._line, C = t.title, M = C.side, g = t._zrange || P_.extent((typeof L == "function" ? L : x.color).domain()), P = typeof x.color == "function" ? x.color : function() {
+ return x.color;
+ }, A = typeof L == "function" ? L : function() {
+ return L;
+ }, z = t._levels, O = Yyt(r, t, g), U = O.fill, G = O.line, Z = Math.round(o * (s === "fraction" ? n ? T.w : T.h : 1)), j = Z / (n ? T.w : T.h), N = Math.round(i * (a === "fraction" ? n ? T.h : T.w : 1)), H = N / (n ? T.h : T.w), re = k ? T.w : r._fullLayout.width, oe = p ? T.h : r._fullLayout.height, _e = Math.round(n ? _ * re + d : b * oe + v), Ce = { center: 0.5, right: 1 }[f] || 0, Le = { top: 1, middle: 0.5 }[h] || 0, ge = n ? _ - Ce * j : b - Le * j, ie = n ? b - Le * H : _ - Ce * H, Se = Math.round(n ? oe * (1 - ie) : re * ie);
+ t._lenFrac = H, t._thickFrac = j, t._uFrac = ge, t._vFrac = ie;
+ var Ee = t._axis = Kyt(r, t, g);
+ Ee.position = j + (n ? _ + d / T.w : b + v / T.h);
+ var Ae = ["top", "bottom"].indexOf(M) !== -1;
+ if (n && Ae && (Ee.title.side = M, Ee.titlex = _ + d / T.w, Ee.titley = ie + (C.side === "top" ? H - v / T.h : v / T.h)), !n && !Ae && (Ee.title.side = M, Ee.titley = b + v / T.h, Ee.titlex = ie + d / T.w), x.color && t.tickmode === "auto") {
+ Ee.tickmode = "linear", Ee.tick0 = z.start;
+ var Be = z.size, Pe = U0.constrain(N / 50, 4, 15) + 1, me = (g[1] - g[0]) / ((t.nticks || Pe) * Be);
+ if (me > 1) {
+ var De = Math.pow(10, Math.floor(Math.log(me) / Math.LN10));
+ Be *= De * U0.roundUp(me / De, [2, 5, 10]), (Math.abs(z.start) / z.size + 1e-6) % 1 < 2e-6 && (Ee.tick0 = 0);
+ }
+ Ee.dtick = Be;
+ }
+ Ee.domain = n ? [ie + v / T.h, ie + H - v / T.h] : [ie + d / T.w, ie + H - d / T.w], Ee.setScale(), e.attr("transform", Hg(Math.round(T.l), Math.round(T.t)));
+ var ce = e.select("." + gf.cbtitleunshift).attr("transform", Hg(-Math.round(T.l), -Math.round(T.t))), je = Ee.ticklabelposition, lt = Ee.title.font.size, pt = e.select("." + gf.cbaxis), Vt, ot = 0, ut = 0;
+ function Wt(fr, $e) {
+ var St = { propContainer: Ee, propName: t._propPrefix + "title.text", traceIndex: t._traceIndex, _meta: t._meta, placeholder: E._dfltTitle.colorbar, containerGroup: e.select("." + gf.cbtitle) }, Qt = fr.charAt(0) === "h" ? fr.slice(1) : "h" + fr;
+ e.selectAll("." + Qt + ",." + Qt + "-math-group").remove(), Byt.draw(r, fr, Bme(St, $e || {}));
+ }
+ function Nt() {
+ if (n && Ae || !n && !Ae) {
+ var fr, $e;
+ M === "top" && (fr = d + T.l + re * _, $e = v + T.t + oe * (1 - ie - H) + 3 + lt * 0.75), M === "bottom" && (fr = d + T.l + re * _, $e = v + T.t + oe * (1 - ie) - 3 - lt * 0.25), M === "right" && ($e = v + T.t + oe * b + 3 + lt * 0.75, fr = d + T.l + re * ie), Wt(Ee._id + "title", { attributes: { x: fr, y: $e, "text-anchor": n ? "start" : "middle" } });
+ }
+ }
+ function $t() {
+ if (n && !Ae || !n && Ae) {
+ var fr = Ee.position || 0, $e = Ee._offset + Ee._length / 2, St, Qt;
+ if (M === "right") Qt = $e, St = T.l + re * fr + 10 + lt * (Ee.showticklabels ? 1 : 0.5);
+ else if (St = $e, M === "bottom" && (Qt = T.t + oe * fr + 10 + (je.indexOf("inside") === -1 ? Ee.tickfont.size : 0) + (Ee.ticks !== "inside" && t.ticklen || 0)), M === "top") {
+ var Gt = C.text.split(" ").length;
+ Qt = T.t + oe * fr + 10 - Z - zme * lt * Gt;
+ }
+ Wt((n ? "h" : "v") + Ee._id + "title", { avoid: { selection: P_.select(r).selectAll("g." + Ee._id + "tick"), side: M, offsetTop: n ? 0 : T.t, offsetLeft: n ? T.l : 0, maxShift: n ? E.width : E.height }, attributes: { x: St, y: Qt, "text-anchor": "middle" }, transform: { rotate: n ? -90 : 0, offset: 0 } });
+ }
+ }
+ function sr() {
+ if (!n && !Ae || n && Ae) {
+ var fr = e.select("." + gf.cbtitle), $e = fr.select("text"), St = [-l / 2, l / 2], Qt = fr.select(".h" + Ee._id + "title-math-group").node(), Gt = 15.6;
+ $e.node() && (Gt = parseInt($e.node().style.fontSize, 10) * zme);
+ var _t;
+ if (Qt ? (_t = Gg.bBox(Qt), ut = _t.width, ot = _t.height, ot > Gt && (St[1] -= (ot - Gt) / 2)) : $e.node() && !$e.classed(gf.jsPlaceholder) && (_t = Gg.bBox($e.node()), ut = _t.width, ot = _t.height), n) {
+ if (ot) {
+ if (ot += 5, M === "top") Ee.domain[1] -= ot / T.h, St[1] *= -1;
+ else {
+ Ee.domain[0] += ot / T.h;
+ var It = Nyt.lineCount($e);
+ St[1] += (1 - It) * Gt;
+ }
+ fr.attr("transform", Hg(St[0], St[1])), Ee.setScale();
+ }
+ } else ut && (M === "right" && (Ee.domain[0] += (ut + lt / 2) / T.w), fr.attr("transform", Hg(St[0], St[1])), Ee.setScale());
+ }
+ e.selectAll("." + gf.cbfills + ",." + gf.cblines).attr("transform", n ? Hg(0, Math.round(T.h * (1 - Ee.domain[1]))) : Hg(Math.round(T.w * Ee.domain[0]), 0)), pt.attr("transform", n ? Hg(0, Math.round(-T.t)) : Hg(Math.round(-T.l), 0));
+ var mt = e.select("." + gf.cbfills).selectAll("rect." + gf.cbfill).attr("style", "").data(U);
+ mt.enter().append("rect").classed(gf.cbfill, true).attr("style", ""), mt.exit().remove();
+ var er = g.map(Ee.c2p).map(Math.round).sort(function(Br, Vr) {
+ return Br - Vr;
+ });
+ mt.each(function(Br, Vr) {
+ var dt = [Vr === 0 ? g[0] : (U[Vr] + U[Vr - 1]) / 2, Vr === U.length - 1 ? g[1] : (U[Vr] + U[Vr + 1]) / 2].map(Ee.c2p).map(Math.round);
+ n && (dt[1] = U0.constrain(dt[1] + (dt[1] > dt[0]) ? 1 : -1, er[0], er[1]));
+ var Ge = P_.select(this).attr(n ? "x" : "y", _e).attr(n ? "y" : "x", P_.min(dt)).attr(n ? "width" : "height", Math.max(Z, 2)).attr(n ? "height" : "width", Math.max(P_.max(dt) - P_.min(dt), 2));
+ if (t._fillgradient) Gg.gradient(Ge, r, t._id, n ? "vertical" : "horizontalreversed", t._fillgradient, "fill");
+ else {
+ var Je = A(Br).replace("e-", "");
+ Ge.attr("fill", TV(Je).toHexString());
+ }
+ });
+ var lr = e.select("." + gf.cblines).selectAll("path." + gf.cbline).data(x.color && x.width ? G : []);
+ lr.enter().append("path").classed(gf.cbline, true), lr.exit().remove(), lr.each(function(Br) {
+ var Vr = _e, dt = Math.round(Ee.c2p(Br)) + x.width / 2 % 1;
+ P_.select(this).attr("d", "M" + (n ? Vr + "," + dt : dt + "," + Vr) + (n ? "h" : "v") + Z).call(Gg.lineGroupStyle, x.width, P(Br), x.dash);
+ }), pt.selectAll("g." + Ee._id + "tick,path").remove();
+ var wr = _e + Z + (l || 0) / 2 - (t.ticks === "outside" ? 1 : 0), Lr = Uy.calcTicks(Ee), ti = Uy.getTickSigns(Ee)[2];
+ return Uy.drawTicks(r, Ee, { vals: Ee.ticks === "inside" ? Uy.clipEnds(Ee, Lr) : Lr, layer: pt, path: Uy.makeTickPath(Ee, wr, ti), transFn: Uy.makeTransTickFn(Ee) }), Uy.drawLabels(r, Ee, { vals: Lr, layer: pt, transFn: Uy.makeTransTickLabelFn(Ee), labelFns: Uy.makeLabelFns(Ee, wr) });
+ }
+ function Tr() {
+ var fr, $e = Z + l / 2;
+ je.indexOf("inside") === -1 && (fr = Gg.bBox(pt.node()), $e += n ? fr.width : fr.height), Vt = ce.select("text");
+ var St = 0, Qt = n && M === "top", Gt = !n && M === "right", _t = 0;
+ if (Vt.node() && !Vt.classed(gf.jsPlaceholder)) {
+ var It, mt = ce.select(".h" + Ee._id + "title-math-group").node();
+ mt && (n && Ae || !n && !Ae) ? (fr = Gg.bBox(mt), St = fr.width, It = fr.height) : (fr = Gg.bBox(ce.node()), St = fr.right - T.l - (n ? _e : Se), It = fr.bottom - T.t - (n ? Se : _e), !n && M === "top" && ($e += fr.height, _t = fr.height)), Gt && (Vt.attr("transform", Hg(St / 2 + lt / 2, 0)), St *= 2), $e = Math.max($e, n ? St : It);
+ }
+ var er = (n ? d : v) * 2 + $e + u + l / 2, lr = 0;
+ !n && C.text && h === "bottom" && b <= 0 && (lr = er / 2, er += lr, _t += lr), E._hColorbarMoveTitle = lr, E._hColorbarMoveCBTitle = _t;
+ var wr = u + l, Lr = (n ? _e : Se) - wr / 2 - (n ? d : 0), ti = (n ? Se : _e) - (n ? N : v + _t - lr);
+ e.select("." + gf.cbbg).attr("x", Lr).attr("y", ti).attr(n ? "width" : "height", Math.max(er - lr, 2)).attr(n ? "height" : "width", Math.max(N + wr, 2)).call(SV.fill, c).call(SV.stroke, t.bordercolor).style("stroke-width", u);
+ var Br = Gt ? Math.max(St - 10, 0) : 0;
+ e.selectAll("." + gf.cboutline).attr("x", (n ? _e : Se + d) + Br).attr("y", (n ? Se + v - N : _e) + (Qt ? ot : 0)).attr(n ? "width" : "height", Math.max(Z, 2)).attr(n ? "height" : "width", Math.max(N - (n ? 2 * v + ot : 2 * d + Br), 2)).call(SV.stroke, t.outlinecolor).style({ fill: "none", "stroke-width": l });
+ var Vr = n ? Ce * er : 0, dt = n ? 0 : (1 - Le) * er - _t;
+ if (Vr = k ? T.l - Vr : -Vr, dt = p ? T.t - dt : -dt, e.attr("transform", Hg(Vr, dt)), !n && (u || TV(c).getAlpha() && !TV.equals(E.paper_bgcolor, c))) {
+ var Ge = pt.selectAll("text"), Je = Ge[0].length, We = e.select("." + gf.cbbg).node(), tt = Gg.bBox(We), xt = Gg.getTranslate(e), Ie = 2;
+ Ge.each(function(di, ji) {
+ var In = 0, wi = Je - 1;
+ if (ji === In || ji === wi) {
+ var On = Gg.bBox(this), qn = Gg.getTranslate(this), Fn;
+ if (ji === wi) {
+ var ra = On.right + qn.x, la = tt.right + xt.x + Se - u - Ie + _;
+ Fn = la - ra, Fn > 0 && (Fn = 0);
+ } else if (ji === In) {
+ var Ut = On.left + qn.x, wt = tt.left + xt.x + Se + u + Ie;
+ Fn = wt - Ut, Fn < 0 && (Fn = 0);
+ }
+ Fn && (Je < 3 ? this.setAttribute("transform", "translate(" + Fn + ",0) " + this.getAttribute("transform")) : this.setAttribute("visibility", "hidden"));
+ }
+ });
+ }
+ var xe = {}, ke = Ome[f], vt = qme[f], ir = Ome[h], ar = qme[h], vr = er - Z;
+ n ? (a === "pixels" ? (xe.y = b, xe.t = N * ir, xe.b = N * ar) : (xe.t = xe.b = 0, xe.yt = b + i * ir, xe.yb = b - i * ar), s === "pixels" ? (xe.x = _, xe.l = er * ke, xe.r = er * vt) : (xe.l = vr * ke, xe.r = vr * vt, xe.xl = _ - o * ke, xe.xr = _ + o * vt)) : (a === "pixels" ? (xe.x = _, xe.l = N * ke, xe.r = N * vt) : (xe.l = xe.r = 0, xe.xl = _ + i * ke, xe.xr = _ - i * vt), s === "pixels" ? (xe.y = 1 - b, xe.t = er * ir, xe.b = er * ar) : (xe.t = vr * ir, xe.b = vr * ar, xe.yt = b - o * ir, xe.yb = b + o * ar));
+ var ii = t.y < 0.5 ? "b" : "t", pi = t.x < 0.5 ? "l" : "r";
+ r._fullLayout._reservedMargin[t._id] = {};
+ var $r = { r: E.width - Lr - Vr, l: Lr + xe.r, b: E.height - ti - dt, t: ti + xe.b };
+ k && p ? VI.autoMargin(r, t._id, xe) : k ? r._fullLayout._reservedMargin[t._id][ii] = $r[ii] : p || n ? r._fullLayout._reservedMargin[t._id][pi] = $r[pi] : r._fullLayout._reservedMargin[t._id][ii] = $r[ii];
+ }
+ return U0.syncOrAsync([VI.previousPromises, Nt, sr, $t, VI.previousPromises, Tr], r);
+ }
+ function Zyt(e, t, r) {
+ var n = t.orientation === "v", i = r._fullLayout, a = i._size, o, s, l;
+ UI.init({ element: e.node(), gd: r, prepFn: function() {
+ o = e.attr("transform"), AV(e);
+ }, moveFn: function(u, c) {
+ e.attr("transform", o + Hg(u, c)), s = UI.align((n ? t._uFrac : t._vFrac) + u / a.w, n ? t._thickFrac : t._lenFrac, 0, 1, t.xanchor), l = UI.align((n ? t._vFrac : 1 - t._uFrac) - c / a.h, n ? t._lenFrac : t._thickFrac, 0, 1, t.yanchor);
+ var f = UI.getCursor(s, l, t.xanchor, t.yanchor);
+ AV(e, f);
+ }, doneFn: function() {
+ if (AV(e), s !== void 0 && l !== void 0) {
+ var u = {};
+ u[t._propPrefix + "x"] = s, u[t._propPrefix + "y"] = l, t._traceIndex !== void 0 ? Fme.call("_guiRestyle", r, u, t._traceIndex) : Fme.call("_guiRelayout", r, u);
+ }
+ } });
+ }
+ function Yyt(e, t, r) {
+ var n = t._levels, i = [], a = [], o, s, l = n.end + n.size / 100, u = n.size, c = 1.001 * r[0] - 1e-3 * r[1], f = 1.001 * r[1] - 1e-3 * r[0];
+ for (s = 0; s < 1e5 && (o = n.start + s * u, !(u > 0 ? o >= l : o <= l)); s++) o > c && o < f && i.push(o);
+ if (t._fillgradient) a = [0];
+ else if (typeof t._fillcolor == "function") {
+ var h = t._filllevels;
+ if (h) for (l = h.end + h.size / 100, u = h.size, s = 0; s < 1e5 && (o = h.start + s * u, !(u > 0 ? o >= l : o <= l)); s++) o > r[0] && o < r[1] && a.push(o);
+ else a = i.map(function(d) {
+ return d - n.size / 2;
+ }), a.push(a[a.length - 1] + n.size);
+ } else t._fillcolor && typeof t._fillcolor == "string" && (a = [0]);
+ return n.size < 0 && (i.reverse(), a.reverse()), { line: i, fill: a };
+ }
+ function Kyt(e, t, r) {
+ var n = e._fullLayout, i = t.orientation === "v", a = { type: "linear", range: r, tickmode: t.tickmode, nticks: t.nticks, tick0: t.tick0, dtick: t.dtick, tickvals: t.tickvals, ticktext: t.ticktext, ticks: t.ticks, ticklen: t.ticklen, tickwidth: t.tickwidth, tickcolor: t.tickcolor, showticklabels: t.showticklabels, labelalias: t.labelalias, ticklabelposition: t.ticklabelposition, ticklabeloverflow: t.ticklabeloverflow, ticklabelstep: t.ticklabelstep, tickfont: t.tickfont, tickangle: t.tickangle, tickformat: t.tickformat, exponentformat: t.exponentformat, minexponent: t.minexponent, separatethousands: t.separatethousands, showexponent: t.showexponent, showtickprefix: t.showtickprefix, tickprefix: t.tickprefix, showticksuffix: t.showticksuffix, ticksuffix: t.ticksuffix, title: t.title, showline: true, anchor: "free", side: i ? "right" : "bottom", position: 1 }, o = i ? "y" : "x", s = { type: "linear", _id: o + t._id }, l = { letter: o, font: n.font, noAutotickangles: o === "y", noHover: true, noTickson: true, noTicklabelmode: true, noInsideRange: true, calendar: n.calendar };
+ function u(c, f) {
+ return U0.coerce(a, s, Hyt, c, f);
+ }
+ return Vyt(a, s, u, l, n), Gyt(a, s, u, l), s;
+ }
+ Nme.exports = { draw: jyt };
+ });
+ var Gme = ye((jlr, Vme) => {
+ Vme.exports = { moduleType: "component", name: "colorbar", attributes: uL(), supplyDefaults: Fq(), draw: Ume().draw, hasColorbar: kq() };
+ });
+ var jme = ye((Wlr, Hme) => {
+ Hme.exports = { moduleType: "component", name: "legend", layoutAttributes: CB(), supplyLayoutDefaults: PB(), draw: HB(), style: NB() };
+ });
+ var Xme = ye((Xlr, Wme) => {
+ Wme.exports = { moduleType: "locale", name: "en", dictionary: { "Click to enter Colorscale title": "Click to enter Colourscale title" }, format: { days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], periods: ["AM", "PM"], dateTime: "%a %b %e %X %Y", date: "%d/%m/%Y", time: "%H:%M:%S", decimal: ".", thousands: ",", grouping: [3], currency: ["$", ""], year: "%Y", month: "%b %Y", dayMonth: "%b %-d", dayMonthYear: "%b %-d, %Y" } };
+ });
+ var Yme = ye((Zlr, Zme) => {
+ Zme.exports = { moduleType: "locale", name: "en-US", dictionary: { "Click to enter Colorscale title": "Click to enter Colorscale title" }, format: { date: "%m/%d/%Y" } };
+ });
+ var kV = ye((Ylr, Qme) => {
+ var Jyt = qa(), $me = Dr(), EV = $me.extendFlat, Kme = $me.extendDeep;
+ function Jme(e) {
+ var t;
+ switch (e) {
+ case "themes__thumb":
+ t = { autosize: true, width: 150, height: 150, title: { text: "" }, showlegend: false, margin: { l: 5, r: 5, t: 5, b: 5, pad: 0 }, annotations: [] };
+ break;
+ case "thumbnail":
+ t = { title: { text: "" }, hidesources: true, showlegend: false, borderwidth: 0, bordercolor: "", margin: { l: 1, r: 1, t: 1, b: 1, pad: 0 }, annotations: [] };
+ break;
+ default:
+ t = {};
+ }
+ return t;
+ }
+ function $yt(e) {
+ var t = ["xaxis", "yaxis", "zaxis"];
+ return t.indexOf(e.slice(0, 5)) > -1;
+ }
+ Qme.exports = function(t, r) {
+ var n, i = t.data, a = t.layout, o = Kme([], i), s = Kme({}, a, Jme(r.tileClass)), l = t._context || {};
+ if (r.width && (s.width = r.width), r.height && (s.height = r.height), r.tileClass === "thumbnail" || r.tileClass === "themes__thumb") {
+ s.annotations = [];
+ var u = Object.keys(s);
+ for (n = 0; n < u.length; n++) $yt(u[n]) && (s[u[n]].title = { text: "" });
+ for (n = 0; n < o.length; n++) {
+ var c = o[n];
+ c.showscale = false, c.marker && (c.marker.showscale = false), Jyt.traceIs(c, "pie-like") && (c.textposition = "none");
+ }
+ }
+ if (Array.isArray(r.annotations)) for (n = 0; n < r.annotations.length; n++) s.annotations.push(r.annotations[n]);
+ var f = Object.keys(s).filter(function(b) {
+ return b.match(/^scene\d*$/);
+ });
+ if (f.length) {
+ var h = {};
+ for (r.tileClass === "thumbnail" && (h = { title: { text: "" }, showaxeslabels: false, showticklabels: false, linetickenable: false }), n = 0; n < f.length; n++) {
+ var d = s[f[n]];
+ d.xaxis || (d.xaxis = {}), d.yaxis || (d.yaxis = {}), d.zaxis || (d.zaxis = {}), EV(d.xaxis, h), EV(d.yaxis, h), EV(d.zaxis, h), d._scene = null;
+ }
+ }
+ var v = document.createElement("div");
+ r.tileClass && (v.className = r.tileClass);
+ var _ = { gd: v, td: v, layout: s, data: o, config: { staticPlot: r.staticPlot === void 0 ? true : r.staticPlot, plotGlPixelRatio: r.plotGlPixelRatio === void 0 ? 2 : r.plotGlPixelRatio, displaylogo: r.displaylogo || false, showLink: r.showLink || false, showTips: r.showTips || false, mapboxAccessToken: l.mapboxAccessToken } };
+ return r.setBackground !== "transparent" && (_.config.setBackground = r.setBackground || "opaque"), _.gd.defaultLayout = Jme(r.tileClass), _;
+ };
+ });
+ var rye = ye((Klr, tye) => {
+ var Qyt = Ab().EventEmitter, e1t = qa(), t1t = Dr(), eye = Oy(), r1t = kV(), i1t = YP(), n1t = KP();
+ function a1t(e, t) {
+ var r = new Qyt(), n = r1t(e, { format: "png" }), i = n.gd;
+ i.style.position = "absolute", i.style.left = "-5000px", document.body.appendChild(i);
+ function a() {
+ var s = eye.getDelay(i._fullLayout);
+ setTimeout(function() {
+ var l = i1t(i), u = document.createElement("canvas");
+ u.id = t1t.randstr(), r = n1t({ format: t.format, width: i._fullLayout.width, height: i._fullLayout.height, canvas: u, emitter: r, svg: l }), r.clean = function() {
+ i && document.body.removeChild(i);
+ };
+ }, s);
+ }
+ var o = eye.getRedrawFunc(i);
+ return e1t.call("_doPlot", i, n.data, n.layout, n.config).then(o).then(a).catch(function(s) {
+ r.emit("error", s);
+ }), r;
+ }
+ tye.exports = a1t;
+ });
+ var aye = ye((Jlr, nye) => {
+ var iye = Oy(), o1t = { getDelay: iye.getDelay, getRedrawFunc: iye.getRedrawFunc, clone: kV(), toSVG: YP(), svgToImg: KP(), toImage: rye(), downloadImage: sU() };
+ nye.exports = o1t;
+ });
+ var sye = ye((Vy) => {
+ Vy.version = g6().version;
+ bee();
+ une();
+ var s1t = qa(), T4 = Vy.register = s1t.register, LV = Ede(), oye = Object.keys(LV);
+ for (GI = 0; GI < oye.length; GI++) ET = oye[GI], ET.charAt(0) !== "_" && (Vy[ET] = LV[ET]), T4({ moduleType: "apiMethod", name: ET, fn: LV[ET] });
+ var ET, GI;
+ T4(wpe());
+ T4([Xpe(), o0e(), Of(), S0e(), q0e(), oge(), Mge(), jge(), ume(), yV(), Ime(), tc(), Gme(), jme(), vf(), pN()]);
+ T4([Xme(), Yme()]);
+ window.PlotlyLocales && Array.isArray(window.PlotlyLocales) && (T4(window.PlotlyLocales), delete window.PlotlyLocales);
+ Vy.Icons = $L();
+ var HI = vf(), CV = Mc();
+ Vy.Plots = { resize: CV.resize, graphJson: CV.graphJson, sendDataToCloud: CV.sendDataToCloud };
+ Vy.Fx = { hover: HI.hover, unhover: HI.unhover, loneHover: HI.loneHover, loneUnhover: HI.loneUnhover };
+ Vy.Snapshot = aye();
+ Vy.PlotSchema = P3();
+ });
+ var uye = ye((Qlr, lye) => {
+ lye.exports = sye();
+ });
+ var zm = ye((eur, vye) => {
+ var Bf = pf(), cye = df().axisHoverFormat, { hovertemplateAttrs: l1t, texttemplateAttrs: u1t, templatefallbackAttrs: fye } = Ll(), dye = Tu(), c1t = ec(), hye = A_(), f1t = Pd().pattern, c2 = Ao().extendFlat, PV = c1t({ editType: "calc", arrayOk: true, colorEditType: "style" }), h1t = Bf.marker, d1t = h1t.line, v1t = c2({}, d1t.width, { dflt: 0 }), p1t = c2({ width: v1t, editType: "calc" }, dye("marker.line")), g1t = c2({ line: p1t, editType: "calc" }, dye("marker"), { opacity: { valType: "number", arrayOk: true, dflt: 1, min: 0, max: 1, editType: "style" }, pattern: f1t, cornerradius: { valType: "any", editType: "calc" } });
+ vye.exports = { x: Bf.x, x0: Bf.x0, dx: Bf.dx, y: Bf.y, y0: Bf.y0, dy: Bf.dy, xperiod: Bf.xperiod, yperiod: Bf.yperiod, xperiod0: Bf.xperiod0, yperiod0: Bf.yperiod0, xperiodalignment: Bf.xperiodalignment, yperiodalignment: Bf.yperiodalignment, xhoverformat: cye("x"), yhoverformat: cye("y"), text: Bf.text, texttemplate: u1t({ editType: "plot" }, { keys: hye.eventDataKeys }), texttemplatefallback: fye({ editType: "plot" }), hovertext: Bf.hovertext, hovertemplate: l1t({}, { keys: hye.eventDataKeys }), hovertemplatefallback: fye(), textposition: { valType: "enumerated", values: ["inside", "outside", "auto", "none"], dflt: "auto", arrayOk: true, editType: "calc" }, insidetextanchor: { valType: "enumerated", values: ["end", "middle", "start"], dflt: "end", editType: "plot" }, textangle: { valType: "angle", dflt: "auto", editType: "plot" }, textfont: c2({}, PV, {}), insidetextfont: c2({}, PV, {}), outsidetextfont: c2({}, PV, {}), constraintext: { valType: "enumerated", values: ["inside", "outside", "both", "none"], dflt: "both", editType: "calc" }, cliponaxis: c2({}, Bf.cliponaxis, {}), orientation: { valType: "enumerated", values: ["v", "h"], editType: "calc+clearAxisTypes" }, base: { valType: "any", dflt: null, arrayOk: true, editType: "calc" }, offset: { valType: "number", dflt: null, arrayOk: true, editType: "calc" }, width: { valType: "number", dflt: null, min: 0, arrayOk: true, editType: "calc" }, marker: g1t, offsetgroup: Bf.offsetgroup, alignmentgroup: Bf.alignmentgroup, selected: { marker: { opacity: Bf.selected.marker.opacity, color: Bf.selected.marker.color, editType: "style" }, textfont: Bf.selected.textfont, editType: "style" }, unselected: { marker: { opacity: Bf.unselected.marker.opacity, color: Bf.unselected.marker.color, editType: "style" }, textfont: Bf.unselected.textfont, editType: "style" }, zorder: Bf.zorder };
+ });
+ var jI = ye((tur, pye) => {
+ pye.exports = { barmode: { valType: "enumerated", values: ["stack", "group", "overlay", "relative"], dflt: "group", editType: "calc" }, barnorm: { valType: "enumerated", values: ["", "fraction", "percent"], dflt: "", editType: "calc" }, bargap: { valType: "number", min: 0, max: 1, editType: "calc" }, bargroupgap: { valType: "number", min: 0, max: 1, dflt: 0, editType: "calc" }, barcornerradius: { valType: "any", editType: "calc" } };
+ });
+ var WI = ye((rur, yye) => {
+ var m1t = ka(), gye = pv().hasColorscale, mye = td(), y1t = Dr().coercePattern;
+ yye.exports = function(t, r, n, i, a) {
+ var o = n("marker.color", i), s = gye(t, "marker");
+ s && mye(t, r, a, n, { prefix: "marker.", cLetter: "c" }), n("marker.line.color", m1t.defaultLine), gye(t, "marker.line") && mye(t, r, a, n, { prefix: "marker.line.", cLetter: "c" }), n("marker.line.width"), n("marker.opacity"), y1t(n, "marker.pattern", o, s), n("selected.marker.color"), n("unselected.marker.color");
+ };
+ });
+ var i0 = ye((iur, Aye) => {
+ var _ye = Eo(), kT = Dr(), xye = ka(), _1t = qa(), x1t = oT(), b1t = Dg(), w1t = WI(), T1t = e2(), bye = zm(), XI = kT.coerceFont;
+ function A1t(e, t, r, n) {
+ function i(u, c) {
+ return kT.coerce(e, t, bye, u, c);
+ }
+ var a = x1t(e, t, n, i);
+ if (!a) {
+ t.visible = false;
+ return;
+ }
+ b1t(e, t, n, i), i("xhoverformat"), i("yhoverformat"), i("zorder"), i("orientation", t.x && !t.y ? "h" : "v"), i("base"), i("offset"), i("width"), i("text"), i("hovertext"), i("hovertemplate"), i("hovertemplatefallback");
+ var o = i("textposition");
+ Tye(e, t, n, i, o, { moduleHasSelected: true, moduleHasUnselected: true, moduleHasConstrain: true, moduleHasCliponaxis: true, moduleHasTextangle: true, moduleHasInsideanchor: true }), w1t(e, t, i, r, n);
+ var s = (t.marker.line || {}).color, l = _1t.getComponentMethod("errorbars", "supplyDefaults");
+ l(e, t, s || xye.defaultLine, { axis: "y" }), l(e, t, s || xye.defaultLine, { axis: "x", inherit: "y" }), kT.coerceSelectionMarkerOpacity(t, i);
+ }
+ function S1t(e, t) {
+ var r, n;
+ function i(s, l) {
+ return kT.coerce(n._input, n, bye, s, l);
+ }
+ for (var a = 0; a < e.length; a++) if (n = e[a], n.type === "bar") {
+ r = n._input;
+ var o = i("marker.cornerradius", t.barcornerradius);
+ n.marker && (n.marker.cornerradius = wye(o)), T1t(r, n, t, i, t.barmode);
+ }
+ }
+ function wye(e) {
+ if (_ye(e)) {
+ if (e = +e, e >= 0) return e;
+ } else if (typeof e == "string" && (e = e.trim(), e.slice(-1) === "%" && _ye(e.slice(0, -1)) && (e = +e.slice(0, -1), e >= 0))) return e + "%";
+ }
+ function Tye(e, t, r, n, i, a) {
+ a = a || {};
+ var o = a.moduleHasSelected !== false, s = a.moduleHasUnselected !== false, l = a.moduleHasConstrain !== false, u = a.moduleHasCliponaxis !== false, c = a.moduleHasTextangle !== false, f = a.moduleHasInsideanchor !== false, h = !!a.hasPathbar, d = Array.isArray(i) || i === "auto", v = d || i === "inside", _ = d || i === "outside";
+ if (v || _) {
+ var b = XI(n, "textfont", r.font), p = kT.extendFlat({}, b), k = e.textfont && e.textfont.color, E = !k;
+ if (E && delete p.color, XI(n, "insidetextfont", p), h) {
+ var T = kT.extendFlat({}, b);
+ E && delete T.color, XI(n, "pathbar.textfont", T);
+ }
+ _ && XI(n, "outsidetextfont", b), o && n("selected.textfont.color"), s && n("unselected.textfont.color"), l && n("constraintext"), u && n("cliponaxis"), c && n("textangle"), n("texttemplate"), n("texttemplatefallback");
+ }
+ v && f && n("insidetextanchor");
+ }
+ Aye.exports = { supplyDefaults: A1t, crossTraceDefaults: S1t, handleText: Tye, validateCornerradius: wye };
+ });
+ var IV = ye((nur, Sye) => {
+ var M1t = qa(), E1t = ho(), k1t = Dr(), C1t = jI(), L1t = i0().validateCornerradius;
+ Sye.exports = function(e, t, r) {
+ function n(_, b) {
+ return k1t.coerce(e, t, C1t, _, b);
+ }
+ for (var i = false, a = false, o = false, s = {}, l = n("barmode"), u = l === "group", c = 0; c < r.length; c++) {
+ var f = r[c];
+ if (M1t.traceIs(f, "bar") && f.visible) i = true;
+ else continue;
+ var h = f.xaxis + f.yaxis;
+ if (u ? (s[h] && (o = true), s[h] = true) : (h += f._input.offsetgroup, s.length > 0 && !s[h] && (o = true), s[h] = true), f.visible && f.type === "histogram") {
+ var d = E1t.getFromId({ _fullLayout: t }, f[f.orientation === "v" ? "xaxis" : "yaxis"]);
+ d.type !== "category" && (a = true);
+ }
+ }
+ if (!i) {
+ delete t.barmode;
+ return;
+ }
+ l !== "overlay" && n("barnorm"), n("bargap", a && !o ? 0 : 0.2), n("bargroupgap");
+ var v = n("barcornerradius");
+ t.barcornerradius = L1t(v);
+ };
+ });
+ var A4 = ye((aur, Mye) => {
+ var CT = Dr();
+ Mye.exports = function(t, r) {
+ for (var n = 0; n < t.length; n++) t[n].i = n;
+ CT.mergeArray(r.text, t, "tx"), CT.mergeArray(r.hovertext, t, "htx");
+ var i = r.marker;
+ if (i) {
+ CT.mergeArray(i.opacity, t, "mo", true), CT.mergeArray(i.color, t, "mc");
+ var a = i.line;
+ a && (CT.mergeArray(a.color, t, "mlc"), CT.mergeArrayCastPositive(a.width, t, "mlw"));
+ }
+ };
+ });
+ var Iye = ye((our, Pye) => {
+ var Eye = ho(), kye = zg(), Cye = pv().hasColorscale, Lye = gv(), P1t = A4(), I1t = O0();
+ Pye.exports = function(t, r) {
+ var n = Eye.getFromId(t, r.xaxis || "x"), i = Eye.getFromId(t, r.yaxis || "y"), a, o, s, l, u, c, f = { msUTC: !!(r.base || r.base === 0) };
+ r.orientation === "h" ? (a = n.makeCalcdata(r, "x", f), s = i.makeCalcdata(r, "y"), l = kye(r, i, "y", s), u = !!r.yperiodalignment, c = "y") : (a = i.makeCalcdata(r, "y", f), s = n.makeCalcdata(r, "x"), l = kye(r, n, "x", s), u = !!r.xperiodalignment, c = "x"), o = l.vals;
+ for (var h = Math.min(o.length, a.length), d = new Array(h), v = 0; v < h; v++) d[v] = { p: o[v], s: a[v] }, u && (d[v].orig_p = s[v], d[v][c + "End"] = l.ends[v], d[v][c + "Start"] = l.starts[v]), r.ids && (d[v].id = String(r.ids[v]));
+ return Cye(r, "marker") && Lye(t, r, { vals: r.marker.color, containerStr: "marker", cLetter: "c" }), Cye(r, "marker.line") && Lye(t, r, { vals: r.marker.line.color, containerStr: "marker.line", cLetter: "c" }), P1t(d, r), I1t(d, r), d;
+ };
+ });
+ var bv = ye((sur, Dye) => {
+ var R1t = Oa(), D1t = Dr();
+ function F1t(e, t, r) {
+ var n = e._fullLayout, i = n["_" + r + "Text_minsize"];
+ if (i) {
+ var a = n.uniformtext.mode === "hide", o;
+ switch (r) {
+ case "funnelarea":
+ case "pie":
+ case "sunburst":
+ o = "g.slice";
+ break;
+ case "treemap":
+ case "icicle":
+ o = "g.slice, g.pathbar";
+ break;
+ default:
+ o = "g.points > g.point";
+ }
+ t.selectAll(o).each(function(s) {
+ var l = s.transform;
+ if (l) {
+ l.scale = a && l.hide ? 0 : i / l.fontSize;
+ var u = R1t.select(this).select("text");
+ D1t.setTransormAndDisplay(u, l);
+ }
+ });
+ }
+ }
+ function z1t(e, t, r) {
+ if (r.uniformtext.mode) {
+ var n = Rye(e), i = r.uniformtext.minsize, a = t.scale * t.fontSize;
+ t.hide = a < i, r[n] = r[n] || 1 / 0, t.hide || (r[n] = Math.min(r[n], Math.max(a, i)));
+ }
+ }
+ function O1t(e, t) {
+ var r = Rye(e);
+ t[r] = void 0;
+ }
+ function Rye(e) {
+ return "_" + e + "Text_minsize";
+ }
+ Dye.exports = { recordMinTextSize: z1t, clearMinTextSize: O1t, resizeText: F1t };
+ });
+ var ZI = ye((f2) => {
+ var q1t = Eo(), B1t = fd(), Fye = Dr().isArrayOrTypedArray;
+ f2.coerceString = function(e, t, r) {
+ if (typeof t == "string") {
+ if (t || !e.noBlank) return t;
+ } else if ((typeof t == "number" || t === true) && !e.strict) return String(t);
+ return r !== void 0 ? r : e.dflt;
+ };
+ f2.coerceNumber = function(e, t, r) {
+ if (q1t(t)) {
+ t = +t;
+ var n = e.min, i = e.max, a = n !== void 0 && t < n || i !== void 0 && t > i;
+ if (!a) return t;
+ }
+ return r !== void 0 ? r : e.dflt;
+ };
+ f2.coerceColor = function(e, t, r) {
+ return B1t(t).isValid() ? t : r !== void 0 ? r : e.dflt;
+ };
+ f2.coerceEnumerated = function(e, t, r) {
+ return e.coerceNumber && (t = +t), e.values.indexOf(t) !== -1 ? t : r !== void 0 ? r : e.dflt;
+ };
+ f2.getValue = function(e, t) {
+ var r;
+ return Fye(e) ? t < e.length && (r = e[t]) : r = e, r;
+ };
+ f2.getLineWidth = function(e, t) {
+ var r = 0 < t.mlw ? t.mlw : Fye(e.marker.line.width) ? 0 : e.marker.line.width;
+ return r;
+ };
+ });
+ var V0 = ye((uur, Wye) => {
+ var S4 = Oa(), N1t = ka(), M4 = So(), zye = Dr(), Oye = qa(), qye = bv().resizeText, RV = zm(), U1t = RV.textfont, V1t = RV.insidetextfont, G1t = RV.outsidetextfont, Qd = ZI();
+ function H1t(e) {
+ var t = S4.select(e).selectAll('g[class^="barlayer"]').selectAll("g.trace");
+ qye(e, t, "bar");
+ var r = t.size(), n = e._fullLayout;
+ t.style("opacity", function(i) {
+ return i[0].trace.opacity;
+ }).each(function(i) {
+ (n.barmode === "stack" && r > 1 || n.bargap === 0 && n.bargroupgap === 0 && !i[0].trace.marker.line.width) && S4.select(this).attr("shape-rendering", "crispEdges");
+ }), t.selectAll("g.points").each(function(i) {
+ var a = S4.select(this), o = i[0].trace;
+ Bye(a, o, e);
+ }), Oye.getComponentMethod("errorbars", "style")(t);
+ }
+ function Bye(e, t, r) {
+ M4.pointStyle(e.selectAll("path"), t, r), Nye(e, t, r);
+ }
+ function Nye(e, t, r) {
+ e.selectAll("text").each(function(n) {
+ var i = S4.select(this), a = zye.ensureUniformFontSize(r, Uye(i, n, t, r));
+ M4.font(i, a);
+ });
+ }
+ function j1t(e, t, r) {
+ var n = t[0].trace;
+ n.selectedpoints ? W1t(r, n, e) : (Bye(r, n, e), Oye.getComponentMethod("errorbars", "style")(r));
+ }
+ function W1t(e, t, r) {
+ M4.selectedPointStyle(e.selectAll("path"), t), X1t(e.selectAll("text"), t, r);
+ }
+ function X1t(e, t, r) {
+ e.each(function(n) {
+ var i = S4.select(this), a;
+ if (n.selected) {
+ a = zye.ensureUniformFontSize(r, Uye(i, n, t, r));
+ var o = t.selected.textfont && t.selected.textfont.color;
+ o && (a.color = o), M4.font(i, a);
+ } else M4.selectedTextStyle(i, t);
+ });
+ }
+ function Uye(e, t, r, n) {
+ var i = n._fullLayout.font, a = r.textfont;
+ if (e.classed("bartext-inside")) {
+ var o = jye(t, r);
+ a = Gye(r, t.i, i, o);
+ } else e.classed("bartext-outside") && (a = Hye(r, t.i, i));
+ return a;
+ }
+ function Vye(e, t, r) {
+ return DV(U1t, e.textfont, t, r);
+ }
+ function Gye(e, t, r, n) {
+ var i = Vye(e, t, r), a = e._input.textfont === void 0 || e._input.textfont.color === void 0 || Array.isArray(e.textfont.color) && e.textfont.color[t] === void 0;
+ return a && (i = { color: N1t.contrast(n), family: i.family, size: i.size, weight: i.weight, style: i.style, variant: i.variant, textcase: i.textcase, lineposition: i.lineposition, shadow: i.shadow }), DV(V1t, e.insidetextfont, t, i);
+ }
+ function Hye(e, t, r) {
+ var n = Vye(e, t, r);
+ return DV(G1t, e.outsidetextfont, t, n);
+ }
+ function DV(e, t, r, n) {
+ t = t || {};
+ var i = Qd.getValue(t.family, r), a = Qd.getValue(t.size, r), o = Qd.getValue(t.color, r), s = Qd.getValue(t.weight, r), l = Qd.getValue(t.style, r), u = Qd.getValue(t.variant, r), c = Qd.getValue(t.textcase, r), f = Qd.getValue(t.lineposition, r), h = Qd.getValue(t.shadow, r);
+ return { family: Qd.coerceString(e.family, i, n.family), size: Qd.coerceNumber(e.size, a, n.size), color: Qd.coerceColor(e.color, o, n.color), weight: Qd.coerceString(e.weight, s, n.weight), style: Qd.coerceString(e.style, l, n.style), variant: Qd.coerceString(e.variant, u, n.variant), textcase: Qd.coerceString(e.variant, c, n.textcase), lineposition: Qd.coerceString(e.variant, f, n.lineposition), shadow: Qd.coerceString(e.variant, h, n.shadow) };
+ }
+ function jye(e, t) {
+ return t.type === "waterfall" ? t[e.dir].marker.color : e.mcc || e.mc || t.marker.color;
+ }
+ Wye.exports = { style: H1t, styleTextPoints: Nye, styleOnSelect: j1t, getInsideTextFont: Gye, getOutsideTextFont: Hye, getBarColor: jye, resizeText: qye };
+ });
+ var d2 = ye((cur, e1e) => {
+ var YI = Oa(), KI = Eo(), Dd = Dr(), Z1t = Zl(), Y1t = ka(), I_ = So(), K1t = qa(), JI = ho().tickText, Xye = bv(), J1t = Xye.recordMinTextSize, $1t = Xye.clearMinTextSize, FV = V0(), LT = ZI(), Q1t = A_(), Zye = zm(), e_t = Zye.text, t_t = Zye.textposition, r_t = ip().appendArrayPointValue, Gv = Q1t.TEXTPAD;
+ function i_t(e) {
+ return e.id;
+ }
+ function n_t(e) {
+ if (e.ids) return i_t;
+ }
+ function zV(e) {
+ return (e > 0) - (e < 0);
+ }
+ function Om(e, t) {
+ return e < t ? 1 : -1;
+ }
+ function a_t(e, t, r, n) {
+ var i = [], a = [], o = n ? t : r, s = n ? r : t;
+ return i[0] = o.c2p(e.s0, true), a[0] = s.c2p(e.p0, true), i[1] = o.c2p(e.s1, true), a[1] = s.c2p(e.p1, true), n ? [i, a] : [a, i];
+ }
+ function Yye(e, t, r, n) {
+ if (!t.uniformtext.mode && Kye(r)) {
+ var i;
+ return n && (i = n()), e.transition().duration(r.duration).ease(r.easing).each("end", function() {
+ i && i();
+ }).each("interrupt", function() {
+ i && i();
+ });
+ } else return e;
+ }
+ function Kye(e) {
+ return e && e.duration > 0;
+ }
+ function o_t(e, t, r, n, i, a) {
+ var o = t.xaxis, s = t.yaxis, l = e._fullLayout, u = e._context.staticPlot;
+ i || (i = { mode: l.barmode, norm: l.barmode, gap: l.bargap, groupgap: l.bargroupgap }, $1t("bar", l));
+ var c = Dd.makeTraceGroups(n, r, "trace bars").each(function(f) {
+ var h = YI.select(this), d = f[0].trace, v = f[0].t, _ = d.type === "waterfall", b = d.type === "funnel", p = d.type === "histogram", k = d.type === "bar", E = k || b, T = 0;
+ _ && d.connector.visible && d.connector.mode === "between" && (T = d.connector.line.width / 2);
+ var L = d.orientation === "h", x = Kye(i), C = Dd.ensureSingle(h, "g", "points"), M = n_t(d), g = C.selectAll("g.point").data(Dd.identity, M);
+ g.enter().append("g").classed("point", true), g.exit().remove(), g.each(function(A, z) {
+ var O = YI.select(this), U = a_t(A, o, s, L), G = U[0][0], Z = U[0][1], j = U[1][0], N = U[1][1], H = (L ? Z - G : N - j) === 0;
+ H && E && LT.getLineWidth(d, A) && (H = false), H || (H = !KI(G) || !KI(Z) || !KI(j) || !KI(N)), A.isBlank = H, H && (L ? Z = G : N = j), T && !H && (L ? (G -= Om(G, Z) * T, Z += Om(G, Z) * T) : (j -= Om(j, N) * T, N += Om(j, N) * T));
+ var re, oe;
+ if (d.type === "waterfall") {
+ if (!H) {
+ var _e = d[A.dir].marker;
+ re = _e.line.width, oe = _e.color;
+ }
+ } else re = LT.getLineWidth(d, A), oe = A.mc || d.marker.color;
+ function Ce($e) {
+ var St = YI.round(re / 2 % 1, 2);
+ return i.gap === 0 && i.groupgap === 0 ? YI.round(Math.round($e) - St, 2) : $e;
+ }
+ function Le($e, St, Qt) {
+ return Qt && $e === St ? $e : Math.abs($e - St) >= 2 ? Ce($e) : $e > St ? Math.ceil($e) : Math.floor($e);
+ }
+ var ge = Y1t.opacity(oe), ie = ge < 1 || re > 0.01 ? Ce : Le;
+ e._context.staticPlot || (G = ie(G, Z, L), Z = ie(Z, G, L), j = ie(j, N, !L), N = ie(N, j, !L));
+ var Se = L ? o.c2p : s.c2p, Ee;
+ A.s0 > 0 ? Ee = A._sMax : A.s0 < 0 ? Ee = A._sMin : Ee = A.s1 > 0 ? A._sMax : A._sMin;
+ function Ae($e, St) {
+ if (!$e) return 0;
+ var Qt = Math.abs(L ? N - j : Z - G), Gt = Math.abs(L ? Z - G : N - j), _t = ie(Math.abs(Se(Ee, true) - Se(0, true))), It = A.hasB ? Math.min(Qt / 2, Gt / 2) : Math.min(Qt / 2, _t), mt;
+ if (St === "%") {
+ var er = Math.min(50, $e);
+ mt = Qt * (er / 100);
+ } else mt = $e;
+ return ie(Math.max(Math.min(mt, It), 0));
+ }
+ var Be = k || p ? Ae(v.cornerradiusvalue, v.cornerradiusform) : 0, Pe, me, De = "M" + G + "," + j + "V" + N + "H" + Z + "V" + j + "Z", ce = 0;
+ if (Be && A.s) {
+ var je = zV(A.s0) === 0 || zV(A.s) === zV(A.s0) ? A.s1 : A.s0;
+ if (ce = ie(A.hasB ? 0 : Math.abs(Se(Ee, true) - Se(je, true))), ce < Be) {
+ var lt = Om(G, Z), pt = Om(j, N), Vt = lt === -pt ? 1 : 0;
+ if (L) if (A.hasB) Pe = "M" + (G + Be * lt) + "," + j + "A " + Be + "," + Be + " 0 0 " + Vt + " " + G + "," + (j + Be * pt) + "V" + (N - Be * pt) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + (G + Be * lt) + "," + N + "H" + (Z - Be * lt) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + Z + "," + (N - Be * pt) + "V" + (j + Be * pt) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + (Z - Be * lt) + "," + j + "Z";
+ else {
+ me = Math.abs(Z - G) + ce;
+ var ot = me < Be ? Be - Math.sqrt(me * (2 * Be - me)) : 0, ut = ce > 0 ? Math.sqrt(ce * (2 * Be - ce)) : 0, Wt = lt > 0 ? Math.max : Math.min;
+ Pe = "M" + G + "," + j + "V" + (N - ot * pt) + "H" + Wt(Z - (Be - ce) * lt, G) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + Z + "," + (N - Be * pt - ut) + "V" + (j + Be * pt + ut) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + Wt(Z - (Be - ce) * lt, G) + "," + (j + ot * pt) + "Z";
+ }
+ else if (A.hasB) Pe = "M" + (G + Be * lt) + "," + j + "A " + Be + "," + Be + " 0 0 " + Vt + " " + G + "," + (j + Be * pt) + "V" + (N - Be * pt) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + (G + Be * lt) + "," + N + "H" + (Z - Be * lt) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + Z + "," + (N - Be * pt) + "V" + (j + Be * pt) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + (Z - Be * lt) + "," + j + "Z";
+ else {
+ me = Math.abs(N - j) + ce;
+ var Nt = me < Be ? Be - Math.sqrt(me * (2 * Be - me)) : 0, $t = ce > 0 ? Math.sqrt(ce * (2 * Be - ce)) : 0, sr = pt > 0 ? Math.max : Math.min;
+ Pe = "M" + (G + Nt * lt) + "," + j + "V" + sr(N - (Be - ce) * pt, j) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + (G + Be * lt - $t) + "," + N + "H" + (Z - Be * lt + $t) + "A " + Be + "," + Be + " 0 0 " + Vt + " " + (Z - Nt * lt) + "," + sr(N - (Be - ce) * pt, j) + "V" + j + "Z";
+ }
+ } else Pe = De;
+ } else Pe = De;
+ var Tr = Yye(Dd.ensureSingle(O, "path"), l, i, a);
+ if (Tr.style("vector-effect", u ? "none" : "non-scaling-stroke").attr("d", isNaN((Z - G) * (N - j)) || H && e._context.staticPlot ? "M0,0Z" : Pe).call(I_.setClipUrl, t.layerClipId, e), !l.uniformtext.mode && x) {
+ var fr = I_.makePointStyleFns(d);
+ I_.singlePointStyle(A, Tr, d, fr, e);
+ }
+ s_t(e, t, O, f, z, G, Z, j, N, Be, ce, i, a), t.layerClipId && I_.hideOutsideRangePoint(A, O.select("text"), o, s, d.xcalendar, d.ycalendar);
+ });
+ var P = d.cliponaxis === false;
+ I_.setClipUrl(h, P ? null : t.layerClipId, e);
+ });
+ K1t.getComponentMethod("errorbars", "plot")(e, c, t, i);
+ }
+ function s_t(e, t, r, n, i, a, o, s, l, u, c, f, h) {
+ var d = t.xaxis, v = t.yaxis, _ = e._fullLayout, b;
+ function p(me, De, ce) {
+ var je = Dd.ensureSingle(me, "text").text(De).attr({ class: "bartext bartext-" + b, "text-anchor": "middle", "data-notex": 1 }).call(I_.font, ce).call(Z1t.convertToTspans, e);
+ return je;
+ }
+ var k = n[0].trace, E = k.orientation === "h", T = c_t(_, n, i, d, v);
+ b = f_t(k, i);
+ var L = f.mode === "stack" || f.mode === "relative", x = n[i], C = !L || x._outmost, M = x.hasB, g = u && u - c > Gv;
+ if (!T || b === "none" || (x.isBlank || a === o || s === l) && (b === "auto" || b === "inside")) {
+ r.select("text").remove();
+ return;
+ }
+ var P = _.font, A = FV.getBarColor(n[i], k), z = FV.getInsideTextFont(k, i, P, A), O = FV.getOutsideTextFont(k, i, P), U = k.insidetextanchor || "end", G = r.datum();
+ E ? d.type === "log" && G.s0 <= 0 && (d.range[0] < d.range[1] ? a = 0 : a = d._length) : v.type === "log" && G.s0 <= 0 && (v.range[0] < v.range[1] ? s = v._length : s = 0);
+ var Z = Math.abs(o - a), j = Math.abs(l - s), N = Z - 2 * Gv, H = j - 2 * Gv, re, oe, _e, Ce, Le;
+ if (b === "outside" && !C && !x.hasB && (b = "inside"), b === "auto") if (C) {
+ b = "inside", Le = Dd.ensureUniformFontSize(e, z), re = p(r, T, Le), oe = I_.bBox(re.node()), _e = oe.width, Ce = oe.height;
+ var ge = _e > 0 && Ce > 0, ie;
+ g ? M ? ie = h2(N - 2 * u, H, _e, Ce, E) || h2(N, H - 2 * u, _e, Ce, E) : E ? ie = h2(N - (u - c), H, _e, Ce, E) || h2(N, H - 2 * (u - c), _e, Ce, E) : ie = h2(N, H - (u - c), _e, Ce, E) || h2(N - 2 * (u - c), H, _e, Ce, E) : ie = h2(N, H, _e, Ce, E), ge && ie ? b = "inside" : (b = "outside", re.remove(), re = null);
+ } else b = "inside";
+ if (!re) {
+ Le = Dd.ensureUniformFontSize(e, b === "outside" ? O : z), re = p(r, T, Le);
+ var Se = re.attr("transform");
+ if (re.attr("transform", ""), oe = I_.bBox(re.node()), _e = oe.width, Ce = oe.height, re.attr("transform", Se), _e <= 0 || Ce <= 0) {
+ re.remove();
+ return;
+ }
+ }
+ var Ee = k.textangle, Ae, Be;
+ b === "outside" ? (Be = k.constraintext === "both" || k.constraintext === "outside", Ae = u_t(a, o, s, l, oe, { isHorizontal: E, constrained: Be, angle: Ee })) : (Be = k.constraintext === "both" || k.constraintext === "inside", Ae = Qye(a, o, s, l, oe, { isHorizontal: E, constrained: Be, angle: Ee, anchor: U, hasB: M, r: u, overhead: c })), Ae.fontSize = Le.size, J1t(k.type === "histogram" ? "bar" : k.type, Ae, _), x.transform = Ae;
+ var Pe = Yye(re, _, f, h);
+ Dd.setTransormAndDisplay(Pe, Ae);
+ }
+ function h2(e, t, r, n, i) {
+ if (e < 0 || t < 0) return false;
+ var a = r <= e && n <= t, o = r <= t && n <= e, s = i ? e >= r * (t / n) : t >= n * (e / r);
+ return a || o || s;
+ }
+ function Jye(e) {
+ return e === "auto" ? 0 : e;
+ }
+ function $ye(e, t) {
+ var r = Math.PI / 180 * t, n = Math.abs(Math.sin(r)), i = Math.abs(Math.cos(r));
+ return { x: e.width * i + e.height * n, y: e.width * n + e.height * i };
+ }
+ function Qye(e, t, r, n, i, a) {
+ var o = !!a.isHorizontal, s = !!a.constrained, l = a.angle || 0, u = a.anchor, c = u === "end", f = u === "start", h = a.leftToRight || 0, d = (h + 1) / 2, v = 1 - d, _ = a.hasB, b = a.r, p = a.overhead, k = i.width, E = i.height, T = Math.abs(t - e), L = Math.abs(n - r), x = T > 2 * Gv && L > 2 * Gv ? Gv : 0;
+ T -= 2 * x, L -= 2 * x;
+ var C = Jye(l);
+ l === "auto" && !(k <= T && E <= L) && (k > T || E > L) && (!(k > L || E > T) || k < E != T < L) && (C += 90);
+ var M = $ye(i, C), g, P;
+ if (b && b - p > Gv) {
+ var A = l_t(e, t, r, n, M, b, p, o, _);
+ g = A.scale, P = A.pad;
+ } else g = 1, s && (g = Math.min(1, T / M.x, L / M.y)), P = 0;
+ var z = i.left * v + i.right * d, O = (i.top + i.bottom) / 2, U = (e + Gv) * v + (t - Gv) * d, G = (r + n) / 2, Z = 0, j = 0;
+ if (f || c) {
+ var N = (o ? M.x : M.y) / 2;
+ b && (c || _) && (x += P);
+ var H = o ? Om(e, t) : Om(r, n);
+ o ? f ? (U = e + H * x, Z = -H * N) : (U = t - H * x, Z = H * N) : f ? (G = r + H * x, j = -H * N) : (G = n - H * x, j = H * N);
+ }
+ return { textX: z, textY: O, targetX: U, targetY: G, anchorX: Z, anchorY: j, scale: g, rotate: C };
+ }
+ function l_t(e, t, r, n, i, a, o, s, l) {
+ var u = Math.max(0, Math.abs(t - e) - 2 * Gv), c = Math.max(0, Math.abs(n - r) - 2 * Gv), f = a - Gv, h = o ? f - Math.sqrt(f * f - (f - o) * (f - o)) : f, d = l ? f * 2 : s ? f - o : 2 * h, v = l ? f * 2 : s ? 2 * h : f - o, _, b, p, k, E;
+ return i.y / i.x >= c / (u - d) ? k = c / i.y : i.y / i.x <= (c - v) / u ? k = u / i.x : !l && s ? (_ = i.x * i.x + i.y * i.y / 4, b = -2 * i.x * (u - f) - i.y * (c / 2 - f), p = (u - f) * (u - f) + (c / 2 - f) * (c / 2 - f) - f * f, k = (-b + Math.sqrt(b * b - 4 * _ * p)) / (2 * _)) : l ? (_ = (i.x * i.x + i.y * i.y) / 4, b = -i.x * (u / 2 - f) - i.y * (c / 2 - f), p = (u / 2 - f) * (u / 2 - f) + (c / 2 - f) * (c / 2 - f) - f * f, k = (-b + Math.sqrt(b * b - 4 * _ * p)) / (2 * _)) : (_ = i.x * i.x / 4 + i.y * i.y, b = -i.x * (u / 2 - f) - 2 * i.y * (c - f), p = (u / 2 - f) * (u / 2 - f) + (c - f) * (c - f) - f * f, k = (-b + Math.sqrt(b * b - 4 * _ * p)) / (2 * _)), k = Math.min(1, k), s ? E = Math.max(0, f - Math.sqrt(Math.max(0, f * f - (f - (c - i.y * k) / 2) * (f - (c - i.y * k) / 2))) - o) : E = Math.max(0, f - Math.sqrt(Math.max(0, f * f - (f - (u - i.x * k) / 2) * (f - (u - i.x * k) / 2))) - o), { scale: k, pad: E };
+ }
+ function u_t(e, t, r, n, i, a) {
+ var o = !!a.isHorizontal, s = !!a.constrained, l = a.angle || 0, u = i.width, c = i.height, f = Math.abs(t - e), h = Math.abs(n - r), d;
+ o ? d = h > 2 * Gv ? Gv : 0 : d = f > 2 * Gv ? Gv : 0;
+ var v = 1;
+ s && (v = o ? Math.min(1, h / c) : Math.min(1, f / u));
+ var _ = Jye(l), b = $ye(i, _), p = (o ? b.x : b.y) / 2, k = (i.left + i.right) / 2, E = (i.top + i.bottom) / 2, T = (e + t) / 2, L = (r + n) / 2, x = 0, C = 0, M = o ? Om(t, e) : Om(r, n);
+ return o ? (T = t - M * d, x = M * p) : (L = n + M * d, C = -M * p), { textX: k, textY: E, targetX: T, targetY: L, anchorX: x, anchorY: C, scale: v, rotate: _ };
+ }
+ function c_t(e, t, r, n, i) {
+ var a = t[0].trace, o = a.texttemplate, s;
+ return o ? s = h_t(e, t, r, n, i) : a.textinfo ? s = d_t(t, r, n, i) : s = LT.getValue(a.text, r), LT.coerceString(e_t, s);
+ }
+ function f_t(e, t) {
+ var r = LT.getValue(e.textposition, t);
+ return LT.coerceEnumerated(t_t, r);
+ }
+ function h_t(e, t, r, n, i) {
+ var a = t[0].trace, o = Dd.castOption(a, r, "texttemplate");
+ if (!o) return "";
+ var s = a.type === "histogram", l = a.type === "waterfall", u = a.type === "funnel", c = a.orientation === "h", f, h, d, v;
+ c ? (f = "y", h = i, d = "x", v = n) : (f = "x", h = n, d = "y", v = i);
+ function _(x) {
+ return JI(h, h.c2l(x), true).text;
+ }
+ function b(x) {
+ return JI(v, v.c2l(x), true).text;
+ }
+ var p = t[r], k = {};
+ k.label = p.p, k.labelLabel = k[f + "Label"] = _(p.p);
+ var E = Dd.castOption(a, p.i, "text");
+ (E === 0 || E) && (k.text = E), k.value = p.s, k.valueLabel = k[d + "Label"] = b(p.s);
+ var T = {};
+ r_t(T, a, p.i), (s || T.x === void 0) && (T.x = c ? k.value : k.label), (s || T.y === void 0) && (T.y = c ? k.label : k.value), (s || T.xLabel === void 0) && (T.xLabel = c ? k.valueLabel : k.labelLabel), (s || T.yLabel === void 0) && (T.yLabel = c ? k.labelLabel : k.valueLabel), l && (k.delta = +p.rawS || p.s, k.deltaLabel = b(k.delta), k.final = p.v, k.finalLabel = b(k.final), k.initial = k.final - k.delta, k.initialLabel = b(k.initial)), u && (k.value = p.s, k.valueLabel = b(k.value), k.percentInitial = p.begR, k.percentInitialLabel = Dd.formatPercent(p.begR), k.percentPrevious = p.difR, k.percentPreviousLabel = Dd.formatPercent(p.difR), k.percentTotal = p.sumR, k.percenTotalLabel = Dd.formatPercent(p.sumR));
+ var L = Dd.castOption(a, p.i, "customdata");
+ return L && (k.customdata = L), Dd.texttemplateString({ data: [T, k, a._meta], fallback: a.texttemplatefallback, labels: k, locale: e._d3locale, template: o });
+ }
+ function d_t(e, t, r, n) {
+ var i = e[0].trace, a = i.orientation === "h", o = i.type === "waterfall", s = i.type === "funnel";
+ function l(L) {
+ var x = a ? n : r;
+ return JI(x, L, true).text;
+ }
+ function u(L) {
+ var x = a ? r : n;
+ return JI(x, +L, true).text;
+ }
+ var c = i.textinfo, f = e[t], h = c.split("+"), d = [], v, _ = function(L) {
+ return h.indexOf(L) !== -1;
+ };
+ if (_("label") && d.push(l(e[t].p)), _("text") && (v = Dd.castOption(i, f.i, "text"), (v === 0 || v) && d.push(v)), o) {
+ var b = +f.rawS || f.s, p = f.v, k = p - b;
+ _("initial") && d.push(u(k)), _("delta") && d.push(u(b)), _("final") && d.push(u(p));
+ }
+ if (s) {
+ _("value") && d.push(u(f.s));
+ var E = 0;
+ _("percent initial") && E++, _("percent previous") && E++, _("percent total") && E++;
+ var T = E > 1;
+ _("percent initial") && (v = Dd.formatPercent(f.begR), T && (v += " of initial"), d.push(v)), _("percent previous") && (v = Dd.formatPercent(f.difR), T && (v += " of previous"), d.push(v)), _("percent total") && (v = Dd.formatPercent(f.sumR), T && (v += " of total"), d.push(v));
+ }
+ return d.join(" ");
+ }
+ e1e.exports = { plot: o_t, toMoveInsideBar: Qye };
+ });
+ var PT = ye((fur, n1e) => {
+ var E4 = vf(), v_t = qa(), t1e = ka(), p_t = Dr().fillText, g_t = ZI().getLineWidth, OV = ho().hoverLabelText, m_t = fs().BADNUM;
+ function y_t(e, t, r, n, i) {
+ var a = r1e(e, t, r, n, i);
+ if (a) {
+ var o = a.cd, s = o[0].trace, l = o[a.index];
+ return a.color = i1e(s, l), v_t.getComponentMethod("errorbars", "hoverInfo")(l, s, a), [a];
+ }
+ }
+ function r1e(e, t, r, n, i) {
+ var a = e.cd, o = a[0].trace, s = a[0].t, l = n === "closest", u = o.type === "waterfall", c = e.maxHoverDistance, f = e.maxSpikeDistance, h, d, v, _, b, p, k;
+ o.orientation === "h" ? (h = r, d = t, v = "y", _ = "x", b = G, p = z) : (h = t, d = r, v = "x", _ = "y", p = G, b = z);
+ var E = o[v + "period"], T = l || E;
+ function L(ie) {
+ return C(ie, -1);
+ }
+ function x(ie) {
+ return C(ie, 1);
+ }
+ function C(ie, Se) {
+ var Ee = ie.w;
+ return ie[v] + Se * Ee / 2;
+ }
+ function M(ie) {
+ return ie[v + "End"] - ie[v + "Start"];
+ }
+ var g = l ? L : E ? function(ie) {
+ return ie.p - M(ie) / 2;
+ } : function(ie) {
+ return Math.min(L(ie), ie.p - s.bardelta / 2);
+ }, P = l ? x : E ? function(ie) {
+ return ie.p + M(ie) / 2;
+ } : function(ie) {
+ return Math.max(x(ie), ie.p + s.bardelta / 2);
+ };
+ function A(ie, Se, Ee) {
+ return i.finiteRange && (Ee = 0), E4.inbox(ie - h, Se - h, Ee + Math.min(1, Math.abs(Se - ie) / k) - 1);
+ }
+ function z(ie) {
+ return A(g(ie), P(ie), c);
+ }
+ function O(ie) {
+ return A(L(ie), x(ie), f);
+ }
+ function U(ie) {
+ var Se = ie[_];
+ if (u) {
+ var Ee = Math.abs(ie.rawS) || 0;
+ d > 0 ? Se += Ee : d < 0 && (Se -= Ee);
+ }
+ return Se;
+ }
+ function G(ie) {
+ var Se = d, Ee = ie.b, Ae = U(ie);
+ return E4.inbox(Ee - Se, Ae - Se, c + (Ae - Se) / (Ae - Ee) - 1);
+ }
+ function Z(ie) {
+ var Se = d, Ee = ie.b, Ae = U(ie);
+ return E4.inbox(Ee - Se, Ae - Se, f + (Ae - Se) / (Ae - Ee) - 1);
+ }
+ var j = e[v + "a"], N = e[_ + "a"];
+ k = Math.abs(j.r2c(j.range[1]) - j.r2c(j.range[0]));
+ function H(ie) {
+ return (b(ie) + p(ie)) / 2;
+ }
+ var re = E4.getDistanceFunction(n, b, p, H);
+ if (E4.getClosest(a, re, e), e.index !== false && a[e.index].p !== m_t) {
+ T || (g = function(ie) {
+ return Math.min(L(ie), ie.p - s.bargroupwidth / 2);
+ }, P = function(ie) {
+ return Math.max(x(ie), ie.p + s.bargroupwidth / 2);
+ });
+ var oe = e.index, _e = a[oe], Ce = o.base ? _e.b + _e.s : _e.s;
+ e[_ + "0"] = e[_ + "1"] = N.c2p(_e[_], true), e[_ + "LabelVal"] = Ce;
+ var Le = s.extents[s.extents.round(_e.p)];
+ e[v + "0"] = j.c2p(l ? g(_e) : Le[0], true), e[v + "1"] = j.c2p(l ? P(_e) : Le[1], true);
+ var ge = _e.orig_p !== void 0;
+ return e[v + "LabelVal"] = ge ? _e.orig_p : _e.p, e.labelLabel = OV(j, e[v + "LabelVal"], o[v + "hoverformat"]), e.valueLabel = OV(N, e[_ + "LabelVal"], o[_ + "hoverformat"]), e.baseLabel = OV(N, _e.b, o[_ + "hoverformat"]), e.spikeDistance = (Z(_e) + O(_e)) / 2, e[v + "Spike"] = j.c2p(_e.p, true), p_t(_e, o, e), e.hovertemplate = o.hovertemplate, e;
+ }
+ }
+ function i1e(e, t) {
+ var r = t.mcc || e.marker.color, n = t.mlcc || e.marker.line.color, i = g_t(e, t);
+ if (t1e.opacity(r)) return r;
+ if (t1e.opacity(n) && i) return n;
+ }
+ n1e.exports = { hoverPoints: y_t, hoverOnBars: r1e, getTraceColor: i1e };
+ });
+ var o1e = ye((hur, a1e) => {
+ a1e.exports = function(t, r, n) {
+ return t.x = "xVal" in r ? r.xVal : r.x, t.y = "yVal" in r ? r.yVal : r.y, r.xa && (t.xaxis = r.xa), r.ya && (t.yaxis = r.ya), n.orientation === "h" ? (t.label = t.y, t.value = t.x) : (t.label = t.x, t.value = t.y), t;
+ };
+ });
+ var IT = ye((dur, s1e) => {
+ s1e.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = n[0].trace, s = o.type === "funnel", l = o.orientation === "h", u = [], c;
+ if (r === false) for (c = 0; c < n.length; c++) n[c].selected = 0;
+ else for (c = 0; c < n.length; c++) {
+ var f = n[c], h = "ct" in f ? f.ct : __t(f, i, a, l, s);
+ r.contains(h, false, c, t) ? (u.push({ pointNumber: c, x: i.c2d(f.x), y: a.c2d(f.y) }), f.selected = 1) : f.selected = 0;
+ }
+ return u;
+ };
+ function __t(e, t, r, n, i) {
+ var a = t.c2p(n ? e.s0 : e.p0, true), o = t.c2p(n ? e.s1 : e.p1, true), s = r.c2p(n ? e.p0 : e.s0, true), l = r.c2p(n ? e.p1 : e.s1, true);
+ return i ? [(a + o) / 2, (s + l) / 2] : n ? [o, (s + l) / 2] : [(a + o) / 2, l];
+ }
+ });
+ var u1e = ye((vur, l1e) => {
+ l1e.exports = { attributes: zm(), layoutAttributes: jI(), supplyDefaults: i0().supplyDefaults, crossTraceDefaults: i0().crossTraceDefaults, supplyLayoutDefaults: IV(), calc: Iye(), crossTraceCalc: t2().crossTraceCalc, colorbar: $d(), arraysToCalcdata: A4(), plot: d2().plot, style: V0().style, styleOnSelect: V0().styleOnSelect, hoverPoints: PT().hoverPoints, eventData: o1e(), selectPoints: IT(), moduleType: "trace", name: "bar", basePlotModule: mh(), categories: ["bar-like", "cartesian", "svg", "bar", "oriented", "errorBarsOK", "showLegend", "zoomScale"], animatable: true, meta: {} };
+ });
+ var f1e = ye((pur, c1e) => {
+ c1e.exports = u1e();
+ });
+ var k4 = ye((gur, p1e) => {
+ var x_t = Pg(), G0 = pf(), h1e = zm(), b_t = Ih(), d1e = df().axisHoverFormat, { hovertemplateAttrs: w_t, templatefallbackAttrs: T_t } = Ll(), Gy = Ao().extendFlat, RT = G0.marker, v1e = RT.line;
+ p1e.exports = { y: { valType: "data_array", editType: "calc+clearAxisTypes" }, x: { valType: "data_array", editType: "calc+clearAxisTypes" }, x0: { valType: "any", editType: "calc+clearAxisTypes" }, y0: { valType: "any", editType: "calc+clearAxisTypes" }, dx: { valType: "number", editType: "calc" }, dy: { valType: "number", editType: "calc" }, xperiod: G0.xperiod, yperiod: G0.yperiod, xperiod0: G0.xperiod0, yperiod0: G0.yperiod0, xperiodalignment: G0.xperiodalignment, yperiodalignment: G0.yperiodalignment, xhoverformat: d1e("x"), yhoverformat: d1e("y"), name: { valType: "string", editType: "calc+clearAxisTypes" }, q1: { valType: "data_array", editType: "calc+clearAxisTypes" }, median: { valType: "data_array", editType: "calc+clearAxisTypes" }, q3: { valType: "data_array", editType: "calc+clearAxisTypes" }, lowerfence: { valType: "data_array", editType: "calc" }, upperfence: { valType: "data_array", editType: "calc" }, notched: { valType: "boolean", editType: "calc" }, notchwidth: { valType: "number", min: 0, max: 0.5, dflt: 0.25, editType: "calc" }, notchspan: { valType: "data_array", editType: "calc" }, boxpoints: { valType: "enumerated", values: ["all", "outliers", "suspectedoutliers", false], editType: "calc" }, jitter: { valType: "number", min: 0, max: 1, editType: "calc" }, pointpos: { valType: "number", min: -2, max: 2, editType: "calc" }, sdmultiple: { valType: "number", min: 0, editType: "calc", dflt: 1 }, sizemode: { valType: "enumerated", values: ["quartiles", "sd"], editType: "calc", dflt: "quartiles" }, boxmean: { valType: "enumerated", values: [true, "sd", false], editType: "calc" }, mean: { valType: "data_array", editType: "calc" }, sd: { valType: "data_array", editType: "calc" }, orientation: { valType: "enumerated", values: ["v", "h"], editType: "calc+clearAxisTypes" }, quartilemethod: { valType: "enumerated", values: ["linear", "exclusive", "inclusive"], dflt: "linear", editType: "calc" }, width: { valType: "number", min: 0, dflt: 0, editType: "calc" }, marker: { outliercolor: { valType: "color", dflt: "rgba(0, 0, 0, 0)", editType: "style" }, symbol: Gy({}, RT.symbol, { arrayOk: false, editType: "plot" }), opacity: Gy({}, RT.opacity, { arrayOk: false, dflt: 1, editType: "style" }), angle: Gy({}, RT.angle, { arrayOk: false, editType: "calc" }), size: Gy({}, RT.size, { arrayOk: false, editType: "calc" }), color: Gy({}, RT.color, { arrayOk: false, editType: "style" }), line: { color: Gy({}, v1e.color, { arrayOk: false, dflt: b_t.defaultLine, editType: "style" }), width: Gy({}, v1e.width, { arrayOk: false, dflt: 0, editType: "style" }), outliercolor: { valType: "color", editType: "style" }, outlierwidth: { valType: "number", min: 0, dflt: 1, editType: "style" }, editType: "style" }, editType: "plot" }, line: { color: { valType: "color", editType: "style" }, width: { valType: "number", min: 0, dflt: 2, editType: "style" }, editType: "plot" }, fillcolor: x_t(), whiskerwidth: { valType: "number", min: 0, max: 1, dflt: 0.5, editType: "calc" }, showwhiskers: { valType: "boolean", editType: "calc" }, offsetgroup: h1e.offsetgroup, alignmentgroup: h1e.alignmentgroup, selected: { marker: G0.selected.marker, editType: "style" }, unselected: { marker: G0.unselected.marker, editType: "style" }, text: Gy({}, G0.text, {}), hovertext: Gy({}, G0.hovertext, {}), hovertemplate: w_t({}), hovertemplatefallback: T_t(), hoveron: { valType: "flaglist", flags: ["boxes", "points"], dflt: "boxes+points", editType: "style" }, zorder: G0.zorder };
+ });
+ var C4 = ye((mur, g1e) => {
+ g1e.exports = { boxmode: { valType: "enumerated", values: ["group", "overlay"], dflt: "overlay", editType: "calc" }, boxgap: { valType: "number", min: 0, max: 1, dflt: 0.3, editType: "calc" }, boxgroupgap: { valType: "number", min: 0, max: 1, dflt: 0.3, editType: "calc" } };
+ });
+ var P4 = ye((yur, x1e) => {
+ var H0 = Dr(), A_t = qa(), S_t = ka(), M_t = Dg(), E_t = e2(), m1e = V3(), L4 = k4();
+ function k_t(e, t, r, n) {
+ function i(v, _) {
+ return H0.coerce(e, t, L4, v, _);
+ }
+ if (y1e(e, t, i, n), t.visible !== false) {
+ M_t(e, t, n, i), i("xhoverformat"), i("yhoverformat");
+ var a = t._hasPreCompStats;
+ a && (i("lowerfence"), i("upperfence")), i("line.color", (e.marker || {}).color || r), i("line.width"), i("fillcolor", S_t.addOpacity(t.line.color, 0.5));
+ var o = false;
+ if (a) {
+ var s = i("mean"), l = i("sd");
+ s && s.length && (o = true, l && l.length && (o = "sd"));
+ }
+ i("whiskerwidth");
+ var u = i("sizemode"), c;
+ u === "quartiles" && (c = i("boxmean", o)), i("showwhiskers", u === "quartiles"), (u === "sd" || c === "sd") && i("sdmultiple"), i("width"), i("quartilemethod");
+ var f = false;
+ if (a) {
+ var h = i("notchspan");
+ h && h.length && (f = true);
+ } else H0.validate(e.notchwidth, L4.notchwidth) && (f = true);
+ var d = i("notched", f);
+ d && i("notchwidth"), _1e(e, t, i, { prefix: "box" }), i("zorder");
+ }
+ }
+ function y1e(e, t, r, n) {
+ function i(P) {
+ var A = 0;
+ return P && P.length && (A += 1, H0.isArrayOrTypedArray(P[0]) && P[0].length && (A += 1)), A;
+ }
+ function a(P) {
+ return H0.validate(e[P], L4[P]);
+ }
+ var o = r("y"), s = r("x"), l;
+ if (t.type === "box") {
+ var u = r("q1"), c = r("median"), f = r("q3");
+ t._hasPreCompStats = u && u.length && c && c.length && f && f.length, l = Math.min(H0.minRowLength(u), H0.minRowLength(c), H0.minRowLength(f));
+ }
+ var h = i(o), d = i(s), v = h && H0.minRowLength(o), _ = d && H0.minRowLength(s), b = n.calendar, p = { autotypenumbers: n.autotypenumbers }, k, E;
+ if (t._hasPreCompStats) switch (String(d) + String(h)) {
+ case "00":
+ var T = a("x0") || a("dx"), L = a("y0") || a("dy");
+ L && !T ? k = "h" : k = "v", E = l;
+ break;
+ case "10":
+ k = "v", E = Math.min(l, _);
+ break;
+ case "20":
+ k = "h", E = Math.min(l, s.length);
+ break;
+ case "01":
+ k = "h", E = Math.min(l, v);
+ break;
+ case "02":
+ k = "v", E = Math.min(l, o.length);
+ break;
+ case "12":
+ k = "v", E = Math.min(l, _, o.length);
+ break;
+ case "21":
+ k = "h", E = Math.min(l, s.length, v);
+ break;
+ case "11":
+ E = 0;
+ break;
+ case "22":
+ var x = false, C;
+ for (C = 0; C < s.length; C++) if (m1e(s[C], b, p) === "category") {
+ x = true;
+ break;
+ }
+ if (x) k = "v", E = Math.min(l, _, o.length);
+ else {
+ for (C = 0; C < o.length; C++) if (m1e(o[C], b, p) === "category") {
+ x = true;
+ break;
+ }
+ x ? (k = "h", E = Math.min(l, s.length, v)) : (k = "v", E = Math.min(l, _, o.length));
+ }
+ break;
+ }
+ else h > 0 ? (k = "v", d > 0 ? E = Math.min(_, v) : E = Math.min(v)) : d > 0 ? (k = "h", E = Math.min(_)) : E = 0;
+ if (!E) {
+ t.visible = false;
+ return;
+ }
+ t._length = E;
+ var M = r("orientation", k);
+ t._hasPreCompStats ? M === "v" && d === 0 ? (r("x0", 0), r("dx", 1)) : M === "h" && h === 0 && (r("y0", 0), r("dy", 1)) : M === "v" && d === 0 ? r("x0") : M === "h" && h === 0 && r("y0");
+ var g = A_t.getComponentMethod("calendars", "handleTraceDefaults");
+ g(e, t, ["x", "y"], n);
+ }
+ function _1e(e, t, r, n) {
+ var i = n.prefix, a = H0.coerce2(e, t, L4, "marker.outliercolor"), o = r("marker.line.outliercolor"), s = "outliers";
+ t._hasPreCompStats ? s = "all" : (a || o) && (s = "suspectedoutliers");
+ var l = r(i + "points", s);
+ l ? (r("jitter", l === "all" ? 0.3 : 0), r("pointpos", l === "all" ? -1.5 : 0), r("marker.symbol"), r("marker.opacity"), r("marker.size"), r("marker.angle"), r("marker.color", t.line.color), r("marker.line.color"), r("marker.line.width"), l === "suspectedoutliers" && (r("marker.line.outliercolor", t.marker.color), r("marker.line.outlierwidth")), r("selected.marker.color"), r("unselected.marker.color"), r("selected.marker.size"), r("unselected.marker.size"), r("text"), r("hovertext")) : delete t.marker;
+ var u = r("hoveron");
+ (u === "all" || u.indexOf("points") !== -1) && (r("hovertemplate"), r("hovertemplatefallback")), H0.coerceSelectionMarkerOpacity(t, r);
+ }
+ function C_t(e, t) {
+ var r, n;
+ function i(l) {
+ return H0.coerce(n._input, n, L4, l);
+ }
+ for (var a = 0; a < e.length; a++) {
+ n = e[a];
+ var o = n.type;
+ if (o === "box" || o === "violin") {
+ r = n._input;
+ var s = t[o + "mode"];
+ s === "group" && E_t(r, n, t, i, s);
+ }
+ }
+ }
+ x1e.exports = { supplyDefaults: k_t, crossTraceDefaults: C_t, handleSampleDefaults: y1e, handlePointsDefaults: _1e };
+ });
+ var $I = ye((_ur, w1e) => {
+ var L_t = qa(), P_t = Dr(), I_t = C4();
+ function b1e(e, t, r, n, i) {
+ for (var a = i + "Layout", o = false, s = 0; s < r.length; s++) {
+ var l = r[s];
+ if (L_t.traceIs(l, a)) {
+ o = true;
+ break;
+ }
+ }
+ o && (n(i + "mode"), n(i + "gap"), n(i + "groupgap"));
+ }
+ function R_t(e, t, r) {
+ function n(i, a) {
+ return P_t.coerce(e, t, I_t, i, a);
+ }
+ b1e(e, t, r, n, "box");
+ }
+ w1e.exports = { supplyLayoutDefaults: R_t, _supply: b1e };
+ });
+ var NV = ye((xur, P1e) => {
+ var BV = Eo(), QI = ho(), D_t = zg(), yh = Dr(), n0 = fs().BADNUM, Hy = yh._;
+ P1e.exports = function(t, r) {
+ var n = t._fullLayout, i = QI.getFromId(t, r.xaxis || "x"), a = QI.getFromId(t, r.yaxis || "y"), o = [], s = r.type === "violin" ? "_numViolins" : "_numBoxes", l, u, c, f, h, d, v;
+ r.orientation === "h" ? (c = i, f = "x", h = a, d = "y", v = !!r.yperiodalignment) : (c = a, f = "y", h = i, d = "x", v = !!r.xperiodalignment);
+ var _ = F_t(r, d, h, n[s]), b = _[0], p = _[1], k = yh.distinctVals(b, h), E = k.vals, T = k.minDiff / 2, L, x, C, M, g, P, A = (r.boxpoints || r.points) === "all" ? yh.identity : function(Vt) {
+ return Vt.v < L.lf || Vt.v > L.uf;
+ };
+ if (r._hasPreCompStats) {
+ var z = r[f], O = function(Vt) {
+ return c.d2c((r[Vt] || [])[l]);
+ }, U = 1 / 0, G = -1 / 0;
+ for (l = 0; l < r._length; l++) {
+ var Z = b[l];
+ if (BV(Z)) {
+ if (L = {}, L.pos = L[d] = Z, v && p && (L.orig_p = p[l]), L.q1 = O("q1"), L.med = O("median"), L.q3 = O("q3"), x = [], z && yh.isArrayOrTypedArray(z[l])) for (u = 0; u < z[l].length; u++) P = c.d2c(z[l][u]), P !== n0 && (g = { v: P, i: [l, u] }, T1e(g, r, [l, u]), x.push(g));
+ if (L.pts = x.sort(A1e), C = L[f] = x.map(S1e), M = C.length, L.med !== n0 && L.q1 !== n0 && L.q3 !== n0 && L.med >= L.q1 && L.q3 >= L.med) {
+ var j = O("lowerfence");
+ L.lf = j !== n0 && j <= L.q1 ? j : M1e(L, C, M);
+ var N = O("upperfence");
+ L.uf = N !== n0 && N >= L.q3 ? N : E1e(L, C, M);
+ var H = O("mean");
+ L.mean = H !== n0 ? H : M ? yh.mean(C, M) : (L.q1 + L.q3) / 2;
+ var re = O("sd");
+ L.sd = H !== n0 && re >= 0 ? re : M ? yh.stdev(C, M, L.mean) : L.q3 - L.q1, L.lo = k1e(L), L.uo = C1e(L);
+ var oe = O("notchspan");
+ oe = oe !== n0 && oe > 0 ? oe : L1e(L, M), L.ln = L.med - oe, L.un = L.med + oe;
+ var _e = L.lf, Ce = L.uf;
+ r.boxpoints && C.length && (_e = Math.min(_e, C[0]), Ce = Math.max(Ce, C[M - 1])), r.notched && (_e = Math.min(_e, L.ln), Ce = Math.max(Ce, L.un)), L.min = _e, L.max = Ce;
+ } else {
+ yh.warn(["Invalid input - make sure that q1 <= median <= q3", "q1 = " + L.q1, "median = " + L.med, "q3 = " + L.q3].join(`
+`));
+ var Le;
+ L.med !== n0 ? Le = L.med : L.q1 !== n0 ? L.q3 !== n0 ? Le = (L.q1 + L.q3) / 2 : Le = L.q1 : L.q3 !== n0 ? Le = L.q3 : Le = 0, L.med = Le, L.q1 = L.q3 = Le, L.lf = L.uf = Le, L.mean = L.sd = Le, L.ln = L.un = Le, L.min = L.max = Le;
+ }
+ U = Math.min(U, L.min), G = Math.max(G, L.max), L.pts2 = x.filter(A), o.push(L);
+ }
+ }
+ r._extremes[c._id] = QI.findExtremes(c, [U, G], { padded: true });
+ } else {
+ var ge = c.makeCalcdata(r, f), ie = z_t(E, T), Se = E.length, Ee = O_t(Se);
+ for (l = 0; l < r._length; l++) if (P = ge[l], !!BV(P)) {
+ var Ae = yh.findBin(b[l], ie);
+ Ae >= 0 && Ae < Se && (g = { v: P, i: l }, T1e(g, r, l), Ee[Ae].push(g));
+ }
+ var Be = 1 / 0, Pe = -1 / 0, me = r.quartilemethod, De = me === "exclusive", ce = me === "inclusive";
+ for (l = 0; l < Se; l++) if (Ee[l].length > 0) {
+ if (L = {}, L.pos = L[d] = E[l], x = L.pts = Ee[l].sort(A1e), C = L[f] = x.map(S1e), M = C.length, L.min = C[0], L.max = C[M - 1], L.mean = yh.mean(C, M), L.sd = yh.stdev(C, M, L.mean) * r.sdmultiple, L.med = yh.interp(C, 0.5), M % 2 && (De || ce)) {
+ var je, lt;
+ De ? (je = C.slice(0, M / 2), lt = C.slice(M / 2 + 1)) : ce && (je = C.slice(0, M / 2 + 1), lt = C.slice(M / 2)), L.q1 = yh.interp(je, 0.5), L.q3 = yh.interp(lt, 0.5);
+ } else L.q1 = yh.interp(C, 0.25), L.q3 = yh.interp(C, 0.75);
+ L.lf = M1e(L, C, M), L.uf = E1e(L, C, M), L.lo = k1e(L), L.uo = C1e(L);
+ var pt = L1e(L, M);
+ L.ln = L.med - pt, L.un = L.med + pt, Be = Math.min(Be, L.ln), Pe = Math.max(Pe, L.un), L.pts2 = x.filter(A), o.push(L);
+ }
+ r.notched && yh.isTypedArray(ge) && (ge = Array.from(ge)), r._extremes[c._id] = QI.findExtremes(c, r.notched ? ge.concat([Be, Pe]) : ge, { padded: true });
+ }
+ return q_t(o, r), o.length > 0 ? (o[0].t = { num: n[s], dPos: T, posLetter: d, valLetter: f, labels: { med: Hy(t, "median:"), min: Hy(t, "min:"), q1: Hy(t, "q1:"), q3: Hy(t, "q3:"), max: Hy(t, "max:"), mean: r.boxmean === "sd" || r.sizemode === "sd" ? Hy(t, "mean ± σ:").replace("σ", r.sdmultiple === 1 ? "σ" : r.sdmultiple + "σ") : Hy(t, "mean:"), lf: Hy(t, "lower fence:"), uf: Hy(t, "upper fence:") } }, n[s]++, o) : [{ t: { empty: true } }];
+ };
+ function F_t(e, t, r, n) {
+ var i = t in e, a = t + "0" in e, o = "d" + t in e;
+ if (i || a && o) {
+ var s = r.makeCalcdata(e, t), l = D_t(e, r, t, s).vals;
+ return [l, s];
+ }
+ var u;
+ a ? u = e[t + "0"] : "name" in e && (r.type === "category" || BV(e.name) && ["linear", "log"].indexOf(r.type) !== -1 || yh.isDateTime(e.name) && r.type === "date") ? u = e.name : u = n;
+ for (var c = r.type === "multicategory" ? r.r2c_just_indices(u) : r.d2c(u, 0, e[t + "calendar"]), f = e._length, h = new Array(f), d = 0; d < f; d++) h[d] = c;
+ return [h];
+ }
+ function z_t(e, t) {
+ for (var r = e.length, n = new Array(r + 1), i = 0; i < r; i++) n[i] = e[i] - t;
+ return n[r] = e[r - 1] + t, n;
+ }
+ function O_t(e) {
+ for (var t = new Array(e), r = 0; r < e; r++) t[r] = [];
+ return t;
+ }
+ var qV = { text: "tx", hovertext: "htx" };
+ function T1e(e, t, r) {
+ for (var n in qV) yh.isArrayOrTypedArray(t[n]) && (Array.isArray(r) ? yh.isArrayOrTypedArray(t[n][r[0]]) && (e[qV[n]] = t[n][r[0]][r[1]]) : e[qV[n]] = t[n][r]);
+ }
+ function q_t(e, t) {
+ if (yh.isArrayOrTypedArray(t.selectedpoints)) for (var r = 0; r < e.length; r++) {
+ for (var n = e[r].pts || [], i = {}, a = 0; a < n.length; a++) i[n[a].i] = a;
+ yh.tagSelected(n, t, i);
+ }
+ }
+ function A1e(e, t) {
+ return e.v - t.v;
+ }
+ function S1e(e) {
+ return e.v;
+ }
+ function M1e(e, t, r) {
+ return r === 0 ? e.q1 : Math.min(e.q1, t[Math.min(yh.findBin(2.5 * e.q1 - 1.5 * e.q3, t, true) + 1, r - 1)]);
+ }
+ function E1e(e, t, r) {
+ return r === 0 ? e.q3 : Math.max(e.q3, t[Math.max(yh.findBin(2.5 * e.q3 - 1.5 * e.q1, t), 0)]);
+ }
+ function k1e(e) {
+ return 4 * e.q1 - 3 * e.q3;
+ }
+ function C1e(e) {
+ return 4 * e.q3 - 3 * e.q1;
+ }
+ function L1e(e, t) {
+ return t === 0 ? 0 : 1.57 * (e.q3 - e.q1) / Math.sqrt(t);
+ }
+ });
+ var e8 = ye((bur, F1e) => {
+ var I1e = ho(), B_t = Dr(), N_t = Kb().getAxisGroup, R1e = ["v", "h"];
+ function U_t(e, t) {
+ for (var r = e.calcdata, n = t.xaxis, i = t.yaxis, a = 0; a < R1e.length; a++) {
+ for (var o = R1e[a], s = o === "h" ? i : n, l = [], u = 0; u < r.length; u++) {
+ var c = r[u], f = c[0].t, h = c[0].trace;
+ h.visible === true && (h.type === "box" || h.type === "candlestick") && !f.empty && (h.orientation || "v") === o && h.xaxis === n._id && h.yaxis === i._id && l.push(u);
+ }
+ D1e("box", e, l, s);
+ }
+ }
+ function D1e(e, t, r, n) {
+ var i = t.calcdata, a = t._fullLayout, o = n._id, s = o.charAt(0), l, u, c, f = [], h = 0;
+ for (l = 0; l < r.length; l++) for (c = i[r[l]], u = 0; u < c.length; u++) f.push(n.c2l(c[u].pos, true)), h += (c[u].pts2 || []).length;
+ if (f.length) {
+ var d = B_t.distinctVals(f);
+ (n.type === "category" || n.type === "multicategory") && (d.minDiff = 1);
+ var v = d.minDiff / 2;
+ I1e.minDtick(n, d.minDiff, d.vals[0], true);
+ var _ = e === "violin" ? "_numViolins" : "_numBoxes", b = a[_], p = a[e + "mode"] === "group" && b > 1, k = 1 - a[e + "gap"], E = 1 - a[e + "groupgap"];
+ for (l = 0; l < r.length; l++) {
+ c = i[r[l]];
+ var T = c[0].trace, L = c[0].t, x = T.width, C = T.side, M, g, P, A;
+ if (x) M = g = A = x / 2, P = 0;
+ else if (M = v, p) {
+ var z = N_t(a, n._id) + T.orientation, O = a._alignmentOpts[z] || {}, U = O[T.alignmentgroup] || {}, G = Object.keys(U.offsetGroups || {}).length, Z = G || b, j = G ? T._offsetIndex : L.num;
+ g = M * k * E / Z, P = 2 * M * (-0.5 + (j + 0.5) / Z) * k, A = M * k / Z;
+ } else g = M * k * E, P = 0, A = M;
+ L.dPos = M, L.bPos = P, L.bdPos = g, L.wHover = A;
+ var N, H, re = P + g, oe, _e, Ce, Le, ge, ie, Se = !!x, Ee = (T.boxpoints || T.points) && h > 0;
+ if (C === "positive" ? (N = M * (x ? 1 : 0.5), oe = re, H = oe = P) : C === "negative" ? (N = oe = P, H = M * (x ? 1 : 0.5), _e = re) : (N = H = M, oe = _e = re), Ee) {
+ var Ae = T.pointpos, Be = T.jitter, Pe = T.marker.size / 2, me = 0;
+ Ae + Be >= 0 && (me = re * (Ae + Be), me > N ? (Se = true, ge = Pe, Ce = me) : me > oe && (ge = Pe, Ce = N)), me <= N && (Ce = N);
+ var De = 0;
+ Ae - Be <= 0 && (De = -re * (Ae - Be), De > H ? (Se = true, ie = Pe, Le = De) : De > _e && (ie = Pe, Le = H)), De <= H && (Le = H);
+ } else Ce = N, Le = H;
+ var ce = new Array(c.length);
+ for (u = 0; u < c.length; u++) ce[u] = c[u].pos;
+ T._extremes[o] = I1e.findExtremes(n, ce, { padded: Se, vpadminus: Le, vpadplus: Ce, vpadLinearized: true, ppadminus: { x: ie, y: ge }[s], ppadplus: { x: ge, y: ie }[s] });
+ }
+ }
+ }
+ F1e.exports = { crossTraceCalc: U_t, setPositionOffset: D1e };
+ });
+ var t8 = ye((wur, N1e) => {
+ var DT = Oa(), v2 = Dr(), V_t = So(), z1e = 5, G_t = 0.01;
+ function H_t(e, t, r, n) {
+ var i = e._context.staticPlot, a = t.xaxis, o = t.yaxis;
+ v2.makeTraceGroups(n, r, "trace boxes").each(function(s) {
+ var l = DT.select(this), u = s[0], c = u.t, f = u.trace;
+ if (c.wdPos = c.bdPos * f.whiskerwidth, f.visible !== true || c.empty) {
+ l.remove();
+ return;
+ }
+ var h, d;
+ f.orientation === "h" ? (h = o, d = a) : (h = a, d = o), O1e(l, { pos: h, val: d }, f, c, i), q1e(l, { x: a, y: o }, f, c), B1e(l, { pos: h, val: d }, f, c);
+ });
+ }
+ function O1e(e, t, r, n, i) {
+ var a = r.orientation === "h", o = t.val, s = t.pos, l = !!s.rangebreaks, u = n.bPos, c = n.wdPos || 0, f = n.bPosPxOffset || 0, h = r.whiskerwidth || 0, d = r.showwhiskers !== false, v = r.notched || false, _ = v ? 1 - 2 * r.notchwidth : 1, b, p;
+ Array.isArray(n.bdPos) ? (b = n.bdPos[0], p = n.bdPos[1]) : (b = n.bdPos, p = n.bdPos);
+ var k = e.selectAll("path.box").data(r.type !== "violin" || r.box.visible ? v2.identity : []);
+ k.enter().append("path").style("vector-effect", i ? "none" : "non-scaling-stroke").attr("class", "box"), k.exit().remove(), k.each(function(E) {
+ if (E.empty) return DT.select(this).attr("d", "M0,0Z");
+ var T = s.c2l(E.pos + u, true), L = s.l2p(T - b) + f, x = s.l2p(T + p) + f, C = l ? (L + x) / 2 : s.l2p(T) + f, M = r.whiskerwidth, g = l ? L * M + (1 - M) * C : s.l2p(T - c) + f, P = l ? x * M + (1 - M) * C : s.l2p(T + c) + f, A = s.l2p(T - b * _) + f, z = s.l2p(T + p * _) + f, O = r.sizemode === "sd", U = o.c2p(O ? E.mean - E.sd : E.q1, true), G = O ? o.c2p(E.mean + E.sd, true) : o.c2p(E.q3, true), Z = v2.constrain(O ? o.c2p(E.mean, true) : o.c2p(E.med, true), Math.min(U, G) + 1, Math.max(U, G) - 1), j = E.lf === void 0 || r.boxpoints === false || O, N = o.c2p(j ? E.min : E.lf, true), H = o.c2p(j ? E.max : E.uf, true), re = o.c2p(E.ln, true), oe = o.c2p(E.un, true);
+ a ? DT.select(this).attr("d", "M" + Z + "," + A + "V" + z + "M" + U + "," + L + "V" + x + (v ? "H" + re + "L" + Z + "," + z + "L" + oe + "," + x : "") + "H" + G + "V" + L + (v ? "H" + oe + "L" + Z + "," + A + "L" + re + "," + L : "") + "Z" + (d ? "M" + U + "," + C + "H" + N + "M" + G + "," + C + "H" + H + (h === 0 ? "" : "M" + N + "," + g + "V" + P + "M" + H + "," + g + "V" + P) : "")) : DT.select(this).attr("d", "M" + A + "," + Z + "H" + z + "M" + L + "," + U + "H" + x + (v ? "V" + re + "L" + z + "," + Z + "L" + x + "," + oe : "") + "V" + G + "H" + L + (v ? "V" + oe + "L" + A + "," + Z + "L" + L + "," + re : "") + "Z" + (d ? "M" + C + "," + U + "V" + N + "M" + C + "," + G + "V" + H + (h === 0 ? "" : "M" + g + "," + N + "H" + P + "M" + g + "," + H + "H" + P) : ""));
+ });
+ }
+ function q1e(e, t, r, n) {
+ var i = t.x, a = t.y, o = n.bdPos, s = n.bPos, l = r.boxpoints || r.points;
+ v2.seedPseudoRandom();
+ var u = function(h) {
+ return h.forEach(function(d) {
+ d.t = n, d.trace = r;
+ }), h;
+ }, c = e.selectAll("g.points").data(l ? u : []);
+ c.enter().append("g").attr("class", "points"), c.exit().remove();
+ var f = c.selectAll("path").data(function(h) {
+ var d, v = h.pts2, _ = Math.max((h.max - h.min) / 10, h.q3 - h.q1), b = _ * 1e-9, p = _ * G_t, k = [], E = 0, T;
+ if (r.jitter) {
+ if (_ === 0) for (E = 1, k = new Array(v.length), d = 0; d < v.length; d++) k[d] = 1;
+ else for (d = 0; d < v.length; d++) {
+ var L = Math.max(0, d - z1e), x = v[L].v, C = Math.min(v.length - 1, d + z1e), M = v[C].v;
+ l !== "all" && (v[d].v < h.lf ? M = Math.min(M, h.lf) : x = Math.max(x, h.uf));
+ var g = Math.sqrt(p * (C - L) / (M - x + b)) || 0;
+ g = v2.constrain(Math.abs(g), 0, 1), k.push(g), E = Math.max(g, E);
+ }
+ T = r.jitter * 2 / (E || 1);
+ }
+ for (d = 0; d < v.length; d++) {
+ var P = v[d], A = P.v, z = r.jitter ? T * k[d] * (v2.pseudoRandom() - 0.5) : 0, O = h.pos + s + o * (r.pointpos + z);
+ r.orientation === "h" ? (P.y = O, P.x = A) : (P.x = O, P.y = A), l === "suspectedoutliers" && A < h.uo && A > h.lo && (P.so = true);
+ }
+ return v;
+ });
+ f.enter().append("path").classed("point", true), f.exit().remove(), f.call(V_t.translatePoints, i, a);
+ }
+ function B1e(e, t, r, n) {
+ var i = t.val, a = t.pos, o = !!a.rangebreaks, s = n.bPos, l = n.bPosPxOffset || 0, u = r.boxmean || (r.meanline || {}).visible, c, f;
+ Array.isArray(n.bdPos) ? (c = n.bdPos[0], f = n.bdPos[1]) : (c = n.bdPos, f = n.bdPos);
+ var h = e.selectAll("path.mean").data(r.type === "box" && r.boxmean || r.type === "violin" && r.box.visible && r.meanline.visible ? v2.identity : []);
+ h.enter().append("path").attr("class", "mean").style({ fill: "none", "vector-effect": "non-scaling-stroke" }), h.exit().remove(), h.each(function(d) {
+ var v = a.c2l(d.pos + s, true), _ = a.l2p(v - c) + l, b = a.l2p(v + f) + l, p = o ? (_ + b) / 2 : a.l2p(v) + l, k = i.c2p(d.mean, true), E = i.c2p(d.mean - d.sd, true), T = i.c2p(d.mean + d.sd, true);
+ r.orientation === "h" ? DT.select(this).attr("d", "M" + k + "," + _ + "V" + b + (u === "sd" ? "m0,0L" + E + "," + p + "L" + k + "," + _ + "L" + T + "," + p + "Z" : "")) : DT.select(this).attr("d", "M" + _ + "," + k + "H" + b + (u === "sd" ? "m0,0L" + p + "," + E + "L" + _ + "," + k + "L" + p + "," + T + "Z" : ""));
+ });
+ }
+ N1e.exports = { plot: H_t, plotBoxAndWhiskers: O1e, plotPoints: q1e, plotBoxMean: B1e };
+ });
+ var r8 = ye((Tur, U1e) => {
+ var UV = Oa(), VV = ka(), GV = So();
+ function j_t(e, t, r) {
+ var n = r || UV.select(e).selectAll("g.trace.boxes");
+ n.style("opacity", function(i) {
+ return i[0].trace.opacity;
+ }), n.each(function(i) {
+ var a = UV.select(this), o = i[0].trace, s = o.line.width;
+ function l(f, h, d, v) {
+ f.style("stroke-width", h + "px").call(VV.stroke, d).call(VV.fill, v);
+ }
+ var u = a.selectAll("path.box");
+ if (o.type === "candlestick") u.each(function(f) {
+ if (!f.empty) {
+ var h = UV.select(this), d = o[f.dir];
+ l(h, d.line.width, d.line.color, d.fillcolor), h.style("opacity", o.selectedpoints && !f.selected ? 0.3 : 1);
+ }
+ });
+ else {
+ l(u, s, o.line.color, o.fillcolor), a.selectAll("path.mean").style({ "stroke-width": s, "stroke-dasharray": 2 * s + "px," + s + "px" }).call(VV.stroke, o.line.color);
+ var c = a.selectAll("path.point");
+ GV.pointStyle(c, o, e);
+ }
+ });
+ }
+ function W_t(e, t, r) {
+ var n = t[0].trace, i = r.selectAll("path.point");
+ n.selectedpoints ? GV.selectedPointStyle(i, n) : GV.pointStyle(i, n, e);
+ }
+ U1e.exports = { style: j_t, styleOnSelect: W_t };
+ });
+ var jV = ye((Aur, j1e) => {
+ var X_t = ho(), HV = Dr(), R_ = vf(), V1e = ka(), Z_t = HV.fillText;
+ function Y_t(e, t, r, n) {
+ var i = e.cd, a = i[0].trace, o = a.hoveron, s = [], l;
+ return o.indexOf("boxes") !== -1 && (s = s.concat(G1e(e, t, r, n))), o.indexOf("points") !== -1 && (l = H1e(e, t, r)), n === "closest" ? l ? [l] : s : (l && s.push(l), s);
+ }
+ function G1e(e, t, r, n) {
+ var i = e.cd, a = e.xa, o = e.ya, s = i[0].trace, l = i[0].t, u = s.type === "violin", c, f, h, d, v, _, b, p, k, E, T, L = l.bdPos, x, C, M = l.wHover, g = function(Pe) {
+ return h.c2l(Pe.pos) + l.bPos - h.c2l(_);
+ };
+ u && s.side !== "both" ? (s.side === "positive" && (k = function(Pe) {
+ var me = g(Pe);
+ return R_.inbox(me, me + M, E);
+ }, x = L, C = 0), s.side === "negative" && (k = function(Pe) {
+ var me = g(Pe);
+ return R_.inbox(me - M, me, E);
+ }, x = 0, C = L)) : (k = function(Pe) {
+ var me = g(Pe);
+ return R_.inbox(me - M, me + M, E);
+ }, x = C = L);
+ var P;
+ u ? P = function(Pe) {
+ return R_.inbox(Pe.span[0] - v, Pe.span[1] - v, E);
+ } : P = function(Pe) {
+ return R_.inbox(Pe.min - v, Pe.max - v, E);
+ }, s.orientation === "h" ? (v = t, _ = r, b = P, p = k, c = "y", h = o, f = "x", d = a) : (v = r, _ = t, b = k, p = P, c = "x", h = a, f = "y", d = o);
+ var A = Math.min(1, L / Math.abs(h.r2c(h.range[1]) - h.r2c(h.range[0])));
+ E = e.maxHoverDistance - A, T = e.maxSpikeDistance - A;
+ function z(Pe) {
+ return (b(Pe) + p(Pe)) / 2;
+ }
+ var O = R_.getDistanceFunction(n, b, p, z);
+ if (R_.getClosest(i, O, e), e.index === false) return [];
+ var U = i[e.index], G = s.line.color, Z = (s.marker || {}).color;
+ V1e.opacity(G) && s.line.width ? e.color = G : V1e.opacity(Z) && s.boxpoints ? e.color = Z : e.color = s.fillcolor, e[c + "0"] = h.c2p(U.pos + l.bPos - C, true), e[c + "1"] = h.c2p(U.pos + l.bPos + x, true), e[c + "LabelVal"] = U.orig_p !== void 0 ? U.orig_p : U.pos;
+ var j = c + "Spike";
+ e.spikeDistance = z(U) * T / E, e[j] = h.c2p(U.pos, true);
+ var N = s.boxmean || s.sizemode === "sd" || (s.meanline || {}).visible, H = s.boxpoints || s.points, re = H && N ? ["max", "uf", "q3", "med", "mean", "q1", "lf", "min"] : H && !N ? ["max", "uf", "q3", "med", "q1", "lf", "min"] : !H && N ? ["max", "q3", "med", "mean", "q1", "min"] : ["max", "q3", "med", "q1", "min"], oe = d.range[1] < d.range[0];
+ s.orientation === (oe ? "v" : "h") && re.reverse();
+ for (var _e = e.spikeDistance, Ce = e[j], Le = [], ge = 0; ge < re.length; ge++) {
+ var ie = re[ge];
+ if (ie in U) {
+ var Se = U[ie], Ee = d.c2p(Se, true), Ae = HV.extendFlat({}, e);
+ Ae.attr = ie, Ae[f + "0"] = Ae[f + "1"] = Ee, Ae[f + "LabelVal"] = Se, Ae[f + "Label"] = (l.labels ? l.labels[ie] + " " : "") + X_t.hoverLabelText(d, Se, s[f + "hoverformat"]), Ae.hoverOnBox = true, ie === "mean" && "sd" in U && (s.boxmean === "sd" || s.sizemode === "sd") && (Ae[f + "err"] = U.sd), Ae.hovertemplate = false, Le.push(Ae);
+ }
+ }
+ e.name = "", e.spikeDistance = void 0, e[j] = void 0;
+ for (var Be = 0; Be < Le.length; Be++) Le[Be].attr !== "med" ? (Le[Be].name = "", Le[Be].spikeDistance = void 0, Le[Be][j] = void 0) : (Le[Be].spikeDistance = _e, Le[Be][j] = Ce);
+ return Le;
+ }
+ function H1e(e, t, r) {
+ for (var n = e.cd, i = e.xa, a = e.ya, o = n[0].trace, s = i.c2p(t), l = a.c2p(r), u, c = function(P) {
+ var A = Math.max(3, P.mrc || 0);
+ return Math.max(Math.abs(i.c2p(P.x) - s) - A, 1 - 3 / A);
+ }, f = function(P) {
+ var A = Math.max(3, P.mrc || 0);
+ return Math.max(Math.abs(a.c2p(P.y) - l) - A, 1 - 3 / A);
+ }, h = R_.quadrature(c, f), d = false, v, _, b = 0; b < n.length; b++) {
+ v = n[b];
+ for (var p = 0; p < (v.pts || []).length; p++) {
+ _ = v.pts[p];
+ var k = h(_);
+ k <= e.distance && (e.distance = k, d = [b, p]);
+ }
+ }
+ if (!d) return false;
+ v = n[d[0]], _ = v.pts[d[1]];
+ var E = i.c2p(_.x, true), T = a.c2p(_.y, true), L = _.mrc || 1;
+ u = HV.extendFlat({}, e, { index: _.i, color: (o.marker || {}).color, name: o.name, x0: E - L, x1: E + L, y0: T - L, y1: T + L, spikeDistance: e.distance, hovertemplate: o.hovertemplate });
+ var x = v.orig_p, C = x !== void 0 ? x : v.pos, M;
+ o.orientation === "h" ? (M = a, u.xLabelVal = _.x, u.yLabelVal = C) : (M = i, u.xLabelVal = C, u.yLabelVal = _.y);
+ var g = M._id.charAt(0);
+ return u[g + "Spike"] = M.c2p(v.pos, true), Z_t(_, o, u), u;
+ }
+ j1e.exports = { hoverPoints: Y_t, hoverOnBoxes: G1e, hoverOnPoints: H1e };
+ });
+ var X1e = ye((Sur, W1e) => {
+ W1e.exports = function(t, r) {
+ return r.hoverOnBox && (t.hoverOnBox = r.hoverOnBox), "xVal" in r && (t.x = r.xVal), "yVal" in r && (t.y = r.yVal), r.xa && (t.xaxis = r.xa), r.ya && (t.yaxis = r.ya), t;
+ };
+ });
+ var WV = ye((Mur, Z1e) => {
+ Z1e.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = [], s, l;
+ if (r === false) for (s = 0; s < n.length; s++) for (l = 0; l < (n[s].pts || []).length; l++) n[s].pts[l].selected = 0;
+ else for (s = 0; s < n.length; s++) for (l = 0; l < (n[s].pts || []).length; l++) {
+ var u = n[s].pts[l], c = i.c2p(u.x), f = a.c2p(u.y);
+ r.contains([c, f], null, u.i, t) ? (o.push({ pointNumber: u.i, x: i.c2d(u.x), y: a.c2d(u.y) }), u.selected = 1) : u.selected = 0;
+ }
+ return o;
+ };
+ });
+ var K1e = ye((Eur, Y1e) => {
+ Y1e.exports = { attributes: k4(), layoutAttributes: C4(), supplyDefaults: P4().supplyDefaults, crossTraceDefaults: P4().crossTraceDefaults, supplyLayoutDefaults: $I().supplyLayoutDefaults, calc: NV(), crossTraceCalc: e8().crossTraceCalc, plot: t8().plot, style: r8().style, styleOnSelect: r8().styleOnSelect, hoverPoints: jV().hoverPoints, eventData: X1e(), selectPoints: WV(), moduleType: "trace", name: "box", basePlotModule: mh(), categories: ["cartesian", "svg", "symbols", "oriented", "box-violin", "showLegend", "boxLayout", "zoomScale"], meta: {} };
+ });
+ var $1e = ye((kur, J1e) => {
+ J1e.exports = K1e();
+ });
+ var FT = ye((Cur, e_e) => {
+ var K_t = Tu(), { extendFlat: Pp } = Ao(), J_t = Gl(), { axisHoverFormat: XV } = df(), $_t = ec(), { hovertemplateAttrs: Q_t, templatefallbackAttrs: Q1e, texttemplateAttrs: ext } = Ll(), a0 = pf();
+ e_e.exports = Pp({ z: { valType: "data_array", editType: "calc" }, x: Pp({}, a0.x, { impliedEdits: { xtype: "array" } }), x0: Pp({}, a0.x0, { impliedEdits: { xtype: "scaled" } }), dx: Pp({}, a0.dx, { impliedEdits: { xtype: "scaled" } }), y: Pp({}, a0.y, { impliedEdits: { ytype: "array" } }), y0: Pp({}, a0.y0, { impliedEdits: { ytype: "scaled" } }), dy: Pp({}, a0.dy, { impliedEdits: { ytype: "scaled" } }), xperiod: Pp({}, a0.xperiod, { impliedEdits: { xtype: "scaled" } }), yperiod: Pp({}, a0.yperiod, { impliedEdits: { ytype: "scaled" } }), xperiod0: Pp({}, a0.xperiod0, { impliedEdits: { xtype: "scaled" } }), yperiod0: Pp({}, a0.yperiod0, { impliedEdits: { ytype: "scaled" } }), xperiodalignment: Pp({}, a0.xperiodalignment, { impliedEdits: { xtype: "scaled" } }), yperiodalignment: Pp({}, a0.yperiodalignment, { impliedEdits: { ytype: "scaled" } }), text: { valType: "data_array", editType: "calc" }, hovertext: { valType: "data_array", editType: "calc" }, transpose: { valType: "boolean", dflt: false, editType: "calc" }, xtype: { valType: "enumerated", values: ["array", "scaled"], editType: "calc+clearAxisTypes" }, ytype: { valType: "enumerated", values: ["array", "scaled"], editType: "calc+clearAxisTypes" }, zsmooth: { valType: "enumerated", values: ["fast", "best", false], dflt: false, editType: "calc" }, hoverongaps: { valType: "boolean", dflt: true, editType: "none" }, connectgaps: { valType: "boolean", editType: "calc" }, xgap: { valType: "number", dflt: 0, min: 0, editType: "plot" }, ygap: { valType: "number", dflt: 0, min: 0, editType: "plot" }, xhoverformat: XV("x"), yhoverformat: XV("y"), zhoverformat: XV("z", 1), hovertemplate: Q_t(), hovertemplatefallback: Q1e(), texttemplate: ext({ arrayOk: false, editType: "plot" }, { keys: ["x", "y", "z", "text"] }), texttemplatefallback: Q1e({ editType: "plot" }), textfont: $_t({ editType: "plot", autoSize: true, autoColor: true, colorEditType: "style" }), showlegend: Pp({}, J_t.showlegend, { dflt: false }), zorder: a0.zorder }, K_t("", { cLetter: "z", autoColorDflt: false }));
+ });
+ var n8 = ye((Lur, r_e) => {
+ var txt = Eo(), i8 = Dr(), rxt = qa();
+ r_e.exports = function(t, r, n, i, a, o) {
+ var s = n("z");
+ a = a || "x", o = o || "y";
+ var l, u;
+ if (s === void 0 || !s.length) return 0;
+ if (i8.isArray1D(s)) {
+ l = n(a), u = n(o);
+ var c = i8.minRowLength(l), f = i8.minRowLength(u);
+ if (c === 0 || f === 0) return 0;
+ r._length = Math.min(c, f, s.length);
+ } else {
+ if (l = t_e(a, n), u = t_e(o, n), !ixt(s)) return 0;
+ n("transpose"), r._length = null;
+ }
+ var h = rxt.getComponentMethod("calendars", "handleTraceDefaults");
+ return h(t, r, [a, o], i), true;
+ };
+ function t_e(e, t) {
+ var r = t(e), n = r ? t(e + "type", "array") : "scaled";
+ return n === "scaled" && (t(e + "0"), t("d" + e)), r;
+ }
+ function ixt(e) {
+ for (var t = true, r = false, n = false, i, a = 0; a < e.length; a++) {
+ if (i = e[a], !i8.isArrayOrTypedArray(i)) {
+ t = false;
+ break;
+ }
+ i.length > 0 && (r = true);
+ for (var o = 0; o < i.length; o++) if (txt(i[o])) {
+ n = true;
+ break;
+ }
+ }
+ return t && r && n;
+ }
+ });
+ var I4 = ye((Pur, n_e) => {
+ var i_e = Dr();
+ n_e.exports = function(t, r) {
+ t("texttemplate"), t("texttemplatefallback");
+ var n = i_e.extendFlat({}, r.font, { color: "auto", size: "auto" });
+ i_e.coerceFont(t, "textfont", n);
+ };
+ });
+ var ZV = ye((Iur, a_e) => {
+ a_e.exports = function(t, r, n) {
+ var i = n("zsmooth");
+ i === false && (n("xgap"), n("ygap")), n("zhoverformat");
+ };
+ });
+ var l_e = ye((Rur, s_e) => {
+ var o_e = Dr(), nxt = n8(), axt = I4(), oxt = Dg(), sxt = ZV(), lxt = td(), uxt = FT();
+ s_e.exports = function(t, r, n, i) {
+ function a(s, l) {
+ return o_e.coerce(t, r, uxt, s, l);
+ }
+ var o = nxt(t, r, a, i);
+ if (!o) {
+ r.visible = false;
+ return;
+ }
+ oxt(t, r, i, a), a("xhoverformat"), a("yhoverformat"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), axt(a, i), sxt(t, r, a, i), a("hoverongaps"), a("connectgaps", o_e.isArray1D(r.z) && r.zsmooth !== false), lxt(t, r, i, a, { prefix: "", cLetter: "z" }), a("zorder");
+ };
+ });
+ var YV = ye((Dur, u_e) => {
+ var zT = Eo();
+ u_e.exports = { count: function(e, t, r) {
+ return r[e]++, 1;
+ }, sum: function(e, t, r, n) {
+ var i = n[t];
+ return zT(i) ? (i = Number(i), r[e] += i, i) : 0;
+ }, avg: function(e, t, r, n, i) {
+ var a = n[t];
+ return zT(a) && (a = Number(a), r[e] += a, i[e]++), 0;
+ }, min: function(e, t, r, n) {
+ var i = n[t];
+ if (zT(i)) if (i = Number(i), zT(r[e])) {
+ if (r[e] > i) {
+ var a = i - r[e];
+ return r[e] = i, a;
+ }
+ } else return r[e] = i, i;
+ return 0;
+ }, max: function(e, t, r, n) {
+ var i = n[t];
+ if (zT(i)) if (i = Number(i), zT(r[e])) {
+ if (r[e] < i) {
+ var a = i - r[e];
+ return r[e] = i, a;
+ }
+ } else return r[e] = i, i;
+ return 0;
+ } };
+ });
+ var KV = ye((Fur, c_e) => {
+ c_e.exports = { percent: function(e, t) {
+ for (var r = e.length, n = 100 / t, i = 0; i < r; i++) e[i] *= n;
+ }, probability: function(e, t) {
+ for (var r = e.length, n = 0; n < r; n++) e[n] /= t;
+ }, density: function(e, t, r, n) {
+ var i = e.length;
+ n = n || 1;
+ for (var a = 0; a < i; a++) e[a] *= r[a] * n;
+ }, "probability density": function(e, t, r, n) {
+ var i = e.length;
+ n && (t /= n);
+ for (var a = 0; a < i; a++) e[a] *= r[a] / t;
+ } };
+ });
+ var JV = ye((zur, f_e) => {
+ f_e.exports = function(t, r) {
+ for (var n = t.length, i = 0, a = 0; a < n; a++) r[a] ? (t[a] /= r[a], i += t[a]) : t[a] = null;
+ return i;
+ };
+ });
+ var $V = ye((Our, __e) => {
+ var OT = fs(), p2 = OT.ONEAVGYEAR, h_e = OT.ONEAVGMONTH, o8 = OT.ONEDAY, d_e = OT.ONEHOUR, v_e = OT.ONEMIN, p_e = OT.ONESEC, g_e = ho().tickIncrement;
+ __e.exports = function(t, r, n, i, a) {
+ var o = -1.1 * r, s = -0.1 * r, l = t - s, u = n[0], c = n[1], f = Math.min(a8(u + s, u + l, i, a), a8(c + s, c + l, i, a)), h = Math.min(a8(u + o, u + s, i, a), a8(c + o, c + s, i, a)), d, v;
+ if (f > h && h < Math.abs(c - u) / 4e3 ? (d = f, v = false) : (d = Math.min(f, h), v = true), i.type === "date" && d > o8) {
+ var _ = d === p2 ? 1 : 6, b = d === p2 ? "M12" : "M1";
+ return function(p, k) {
+ var E = i.c2d(p, p2, a), T = E.indexOf("-", _);
+ T > 0 && (E = E.slice(0, T));
+ var L = i.d2c(E, 0, a);
+ if (L < p) {
+ var x = g_e(L, b, false, a);
+ (L + x) / 2 < p + t && (L = x);
+ }
+ return k && v ? g_e(L, b, true, a) : L;
+ };
+ }
+ return function(p, k) {
+ var E = d * Math.round(p / d);
+ return E + d / 10 < p && E + d * 0.9 < p + t && (E += d), k && v && (E -= d), E;
+ };
+ };
+ function a8(e, t, r, n) {
+ if (e * t <= 0) return 1 / 0;
+ for (var i = Math.abs(t - e), a = r.type === "date", o = m_e(i, a), s = 0; s < 10; s++) {
+ var l = m_e(o * 80, a);
+ if (o === l) break;
+ if (cxt(l, e, t, a, r, n)) o = l;
+ else break;
+ }
+ return o;
+ }
+ function m_e(e, t) {
+ return t && e > p_e ? e > o8 ? e > p2 * 1.1 ? p2 : e > h_e * 1.1 ? h_e : o8 : e > d_e ? d_e : e > v_e ? v_e : p_e : Math.pow(10, Math.floor(Math.log(e) / Math.LN10));
+ }
+ function cxt(e, t, r, n, i, a) {
+ if (n && e > o8) {
+ var o = y_e(t, i, a), s = y_e(r, i, a), l = e === p2 ? 0 : 1;
+ return o[l] !== s[l];
+ }
+ return Math.floor(r / e) - Math.floor(t / e) > 0.1;
+ }
+ function y_e(e, t, r) {
+ var n = t.c2d(e, p2, r).split("-");
+ return n[0] === "" && (n.unshift(), n[0] = "-" + n[0]), n;
+ }
+ });
+ var tG = ye((qur, A_e) => {
+ var QV = Eo(), Hv = Dr(), x_e = qa(), j0 = ho(), { hasColorscale: b_e } = pv(), w_e = gv(), fxt = A4(), T_e = YV(), hxt = KV(), dxt = JV(), vxt = $V();
+ function pxt(e, t) {
+ var r = [], n = [], i = t.orientation === "h", a = j0.getFromId(e, i ? t.yaxis : t.xaxis), o = i ? "y" : "x", s = { x: "y", y: "x" }[o], l = t[o + "calendar"], u = t.cumulative, c, f = eG(e, t, a, o), h = f[0], d = f[1], v = typeof h.size == "string", _ = [], b = v ? _ : h, p = [], k = [], E = [], T = 0, L = t.histnorm, x = t.histfunc, C = L.indexOf("density") !== -1, M, g, P;
+ u.enabled && C && (L = L.replace(/ ?density$/, ""), C = false);
+ var A = x === "max" || x === "min", z = A ? null : 0, O = T_e.count, U = hxt[L], G = false, Z = function(me) {
+ return a.r2c(me, 0, l);
+ }, j;
+ for (Hv.isArrayOrTypedArray(t[s]) && x !== "count" && (j = t[s], G = x === "avg", O = T_e[x]), c = Z(h.start), g = Z(h.end) + (c - j0.tickIncrement(c, h.size, false, l)) / 1e6; c < g && r.length < 1e6 && (M = j0.tickIncrement(c, h.size, false, l), r.push((c + M) / 2), n.push(z), E.push([]), _.push(c), C && p.push(1 / (M - c)), G && k.push(0), !(M <= c)); ) c = M;
+ _.push(c), !v && a.type === "date" && (b = { start: Z(b.start), end: Z(b.end), size: b.size }), e._fullLayout._roundFnOpts || (e._fullLayout._roundFnOpts = {});
+ var N = t["_" + o + "bingroup"], H = { leftGap: 1 / 0, rightGap: 1 / 0 };
+ N && (e._fullLayout._roundFnOpts[N] || (e._fullLayout._roundFnOpts[N] = H), H = e._fullLayout._roundFnOpts[N]);
+ var re = n.length, oe = true, _e = H.leftGap, Ce = H.rightGap, Le = {};
+ for (c = 0; c < d.length; c++) {
+ var ge = d[c];
+ P = Hv.findBin(ge, b), P >= 0 && P < re && (T += O(P, c, n, j, k), oe && E[P].length && ge !== d[E[P][0]] && (oe = false), E[P].push(c), Le[c] = P, _e = Math.min(_e, ge - _[P]), Ce = Math.min(Ce, _[P + 1] - ge));
+ }
+ H.leftGap = _e, H.rightGap = Ce;
+ var ie;
+ oe || (ie = function(me, De) {
+ return function() {
+ var ce = e._fullLayout._roundFnOpts[N];
+ return vxt(ce.leftGap, ce.rightGap, _, a, l)(me, De);
+ };
+ }), G && (T = dxt(n, k)), U && U(n, T, p), u.enabled && yxt(n, u.direction, u.currentbin);
+ var Se = Math.min(r.length, n.length), Ee = [], Ae = 0, Be = Se - 1;
+ for (c = 0; c < Se; c++) if (n[c]) {
+ Ae = c;
+ break;
+ }
+ for (c = Se - 1; c >= Ae; c--) if (n[c]) {
+ Be = c;
+ break;
+ }
+ for (c = Ae; c <= Be; c++) if (QV(r[c]) && QV(n[c])) {
+ var Pe = { p: r[c], s: n[c], b: 0 };
+ u.enabled || (Pe.pts = E[c], oe ? Pe.ph0 = Pe.ph1 = E[c].length ? d[E[c][0]] : r[c] : (t._computePh = true, Pe.ph0 = ie(_[c]), Pe.ph1 = ie(_[c + 1], true))), Ee.push(Pe);
+ }
+ return Ee.length === 1 && (Ee[0].width1 = j0.tickIncrement(Ee[0].p, h.size, false, l) - Ee[0].p), b_e(t, "marker") && w_e(e, t, { vals: t.marker.color, containerStr: "marker", cLetter: "c" }), b_e(t, "marker.line") && w_e(e, t, { vals: t.marker.line.color, containerStr: "marker.line", cLetter: "c" }), fxt(Ee, t), Hv.isArrayOrTypedArray(t.selectedpoints) && Hv.tagSelected(Ee, t, Le), Ee;
+ }
+ function eG(e, t, r, n, i) {
+ var a = n + "bins", o = e._fullLayout, s = t["_" + n + "bingroup"], l = o._histogramBinOpts[s], u = o.barmode === "overlay", c, f, h, d, v, _, b, p = function(ge) {
+ return r.r2c(ge, 0, d);
+ }, k = function(ge) {
+ return r.c2r(ge, 0, d);
+ }, E = r.type === "date" ? function(ge) {
+ return ge || ge === 0 ? Hv.cleanDate(ge, null, d) : null;
+ } : function(ge) {
+ return QV(ge) ? Number(ge) : null;
+ };
+ function T(ge, ie, Se) {
+ ie[ge + "Found"] ? (ie[ge] = E(ie[ge]), ie[ge] === null && (ie[ge] = Se[ge])) : (_[ge] = ie[ge] = Se[ge], Hv.nestedProperty(f[0], a + "." + ge).set(Se[ge]));
+ }
+ if (t["_" + n + "autoBinFinished"]) delete t["_" + n + "autoBinFinished"];
+ else {
+ f = l.traces;
+ var L = [], x = true, C = false, M = false;
+ for (c = 0; c < f.length; c++) if (h = f[c], h.visible) {
+ var g = l.dirs[c];
+ v = h["_" + g + "pos0"] = r.makeCalcdata(h, g), L = Hv.concat(L, v), delete h["_" + n + "autoBinFinished"], t.visible === true && (x ? x = false : (delete h._autoBin, h["_" + n + "autoBinFinished"] = 1), x_e.traceIs(h, "2dMap") && (C = true), h.type === "histogram2dcontour" && (M = true));
+ }
+ d = f[0][n + "calendar"];
+ var P = j0.autoBin(L, r, l.nbins, C, d, l.sizeFound && l.size), A = f[0]._autoBin = {};
+ if (_ = A[l.dirs[0]] = {}, M && (l.size || (P.start = k(j0.tickIncrement(p(P.start), P.size, true, d))), l.end === void 0 && (P.end = k(j0.tickIncrement(p(P.end), P.size, false, d)))), u && !x_e.traceIs(t, "2dMap") && P._dataSpan === 0 && r.type !== "category" && r.type !== "multicategory" && t.bingroup === "" && typeof t.xbins == "undefined") {
+ if (i) return [P, v, true];
+ P = gxt(e, t, r, n, a);
+ }
+ b = h.cumulative || {}, b.enabled && b.currentbin !== "include" && (b.direction === "decreasing" ? P.start = k(j0.tickIncrement(p(P.start), P.size, true, d)) : P.end = k(j0.tickIncrement(p(P.end), P.size, false, d))), l.size = P.size, l.sizeFound || (_.size = P.size, Hv.nestedProperty(f[0], a + ".size").set(P.size)), T("start", l, P), T("end", l, P);
+ }
+ v = t["_" + n + "pos0"], delete t["_" + n + "pos0"];
+ var z = t._input[a] || {}, O = Hv.extendFlat({}, l), U = l.start, G = r.r2l(z.start), Z = G !== void 0;
+ if ((l.startFound || Z) && G !== r.r2l(U)) {
+ var j = Z ? G : Hv.aggNums(Math.min, null, v), N = { type: r.type === "category" || r.type === "multicategory" ? "linear" : r.type, r2l: r.r2l, dtick: l.size, tick0: U, calendar: d, range: [j, j0.tickIncrement(j, l.size, false, d)].map(r.l2r) }, H = j0.tickFirst(N);
+ H > r.r2l(j) && (H = j0.tickIncrement(H, l.size, true, d)), O.start = r.l2r(H), Z || Hv.nestedProperty(t, a + ".start").set(O.start);
+ }
+ var re = l.end, oe = r.r2l(z.end), _e = oe !== void 0;
+ if ((l.endFound || _e) && oe !== r.r2l(re)) {
+ var Ce = _e ? oe : Hv.aggNums(Math.max, null, v);
+ O.end = r.l2r(Ce), _e || Hv.nestedProperty(t, a + ".start").set(O.end);
+ }
+ var Le = "autobin" + n;
+ return t._input[Le] === false && (t._input[a] = Hv.extendFlat({}, t[a] || {}), delete t._input[Le], delete t[Le]), [O, v];
+ }
+ function gxt(e, t, r, n, i) {
+ var a = e._fullLayout, o = mxt(e, t), s = false, l = 1 / 0, u = [t], c, f, h;
+ for (c = 0; c < o.length; c++) if (f = o[c], f === t) s = true;
+ else if (!s) h = a._histogramBinOpts[f["_" + n + "bingroup"]], l = Math.min(l, h.size || f[i].size);
+ else {
+ var d = eG(e, f, r, n, true), v = d[0], _ = d[2];
+ f["_" + n + "autoBinFinished"] = 1, f["_" + n + "pos0"] = d[1], _ ? u.push(f) : l = Math.min(l, v.size);
+ }
+ var b = new Array(u.length);
+ for (c = 0; c < u.length; c++) for (var p = u[c]["_" + n + "pos0"], k = 0; k < p.length; k++) if (p[k] !== void 0) {
+ b[c] = p[k];
+ break;
+ }
+ for (isFinite(l) || (l = Hv.distinctVals(b).minDiff), c = 0; c < u.length; c++) {
+ f = u[c];
+ var E = f[n + "calendar"], T = { start: r.c2r(b[c] - l / 2, 0, E), end: r.c2r(b[c] + l / 2, 0, E), size: l };
+ f._input[i] = f[i] = T, h = a._histogramBinOpts[f["_" + n + "bingroup"]], h && Hv.extendFlat(h, T);
+ }
+ return t[i];
+ }
+ function mxt(e, t) {
+ for (var r = t.xaxis, n = t.yaxis, i = t.orientation, a = [], o = e._fullData, s = 0; s < o.length; s++) {
+ var l = o[s];
+ l.type === "histogram" && l.visible === true && l.orientation === i && l.xaxis === r && l.yaxis === n && a.push(l);
+ }
+ return a;
+ }
+ function yxt(e, t, r) {
+ var n, i, a;
+ function o(l) {
+ a = e[l], e[l] /= 2;
+ }
+ function s(l) {
+ i = e[l], e[l] = a + i / 2, a += i;
+ }
+ if (r === "half") if (t === "increasing") for (o(0), n = 1; n < e.length; n++) s(n);
+ else for (o(e.length - 1), n = e.length - 2; n >= 0; n--) s(n);
+ else if (t === "increasing") {
+ for (n = 1; n < e.length; n++) e[n] += e[n - 1];
+ r === "exclude" && (e.unshift(0), e.pop());
+ } else {
+ for (n = e.length - 2; n >= 0; n--) e[n] += e[n + 1];
+ r === "exclude" && (e.push(0), e.shift());
+ }
+ }
+ A_e.exports = { calc: pxt, calcAllAutoBins: eG };
+ });
+ var I_e = ye((Bur, P_e) => {
+ var S_e = Dr(), qT = ho(), M_e = YV(), _xt = KV(), xxt = JV(), bxt = $V(), E_e = tG().calcAllAutoBins;
+ P_e.exports = function(t, r) {
+ var n = qT.getFromId(t, r.xaxis), i = qT.getFromId(t, r.yaxis), a = r.xcalendar, o = r.ycalendar, s = function(It) {
+ return n.r2c(It, 0, a);
+ }, l = function(It) {
+ return i.r2c(It, 0, o);
+ }, u = function(It) {
+ return n.c2r(It, 0, a);
+ }, c = function(It) {
+ return i.c2r(It, 0, o);
+ }, f, h, d, v, _ = E_e(t, r, n, "x"), b = _[0], p = _[1], k = E_e(t, r, i, "y"), E = k[0], T = k[1], L = r._length;
+ p.length > L && p.splice(L, p.length - L), T.length > L && T.splice(L, T.length - L);
+ var x = [], C = [], M = [], g = typeof b.size == "string", P = typeof E.size == "string", A = [], z = [], O = g ? A : b, U = P ? z : E, G = 0, Z = [], j = [], N = r.histnorm, H = r.histfunc, re = N.indexOf("density") !== -1, oe = H === "max" || H === "min", _e = oe ? null : 0, Ce = M_e.count, Le = _xt[N], ge = false, ie = [], Se = [], Ee = "z" in r ? r.z : "marker" in r && Array.isArray(r.marker.color) ? r.marker.color : "";
+ Ee && H !== "count" && (ge = H === "avg", Ce = M_e[H]);
+ var Ae = b.size, Be = s(b.start), Pe = s(b.end) + (Be - qT.tickIncrement(Be, Ae, false, a)) / 1e6;
+ for (f = Be; f < Pe; f = qT.tickIncrement(f, Ae, false, a)) C.push(_e), A.push(f), ge && M.push(0);
+ A.push(f);
+ var me = C.length, De = (f - Be) / me, ce = u(Be + De / 2), je = E.size, lt = l(E.start), pt = l(E.end) + (lt - qT.tickIncrement(lt, je, false, o)) / 1e6;
+ for (f = lt; f < pt; f = qT.tickIncrement(f, je, false, o)) {
+ x.push(C.slice()), z.push(f);
+ var Vt = new Array(me);
+ for (h = 0; h < me; h++) Vt[h] = [];
+ j.push(Vt), ge && Z.push(M.slice());
+ }
+ z.push(f);
+ var ot = x.length, ut = (f - lt) / ot, Wt = c(lt + ut / 2);
+ re && (ie = k_e(C.length, O, De, g), Se = k_e(x.length, U, ut, P)), !g && n.type === "date" && (O = C_e(s, O)), !P && i.type === "date" && (U = C_e(l, U));
+ var Nt = true, $t = true, sr = new Array(me), Tr = new Array(ot), fr = 1 / 0, $e = 1 / 0, St = 1 / 0, Qt = 1 / 0;
+ for (f = 0; f < L; f++) {
+ var Gt = p[f], _t = T[f];
+ d = S_e.findBin(Gt, O), v = S_e.findBin(_t, U), d >= 0 && d < me && v >= 0 && v < ot && (G += Ce(d, f, x[v], Ee, Z[v]), j[v][d].push(f), Nt && (sr[d] === void 0 ? sr[d] = Gt : sr[d] !== Gt && (Nt = false)), $t && (Tr[v] === void 0 ? Tr[v] = _t : Tr[v] !== _t && ($t = false)), fr = Math.min(fr, Gt - A[d]), $e = Math.min($e, A[d + 1] - Gt), St = Math.min(St, _t - z[v]), Qt = Math.min(Qt, z[v + 1] - _t));
+ }
+ if (ge) for (v = 0; v < ot; v++) G += xxt(x[v], Z[v]);
+ if (Le) for (v = 0; v < ot; v++) Le(x[v], G, ie, Se[v]);
+ return { x: p, xRanges: L_e(A, Nt && sr, fr, $e, n, a), x0: ce, dx: De, y: T, yRanges: L_e(z, $t && Tr, St, Qt, i, o), y0: Wt, dy: ut, z: x, pts: j };
+ };
+ function k_e(e, t, r, n) {
+ var i = new Array(e), a;
+ if (n) for (a = 0; a < e; a++) i[a] = 1 / (t[a + 1] - t[a]);
+ else {
+ var o = 1 / r;
+ for (a = 0; a < e; a++) i[a] = o;
+ }
+ return i;
+ }
+ function C_e(e, t) {
+ return { start: e(t.start), end: e(t.end), size: t.size };
+ }
+ function L_e(e, t, r, n, i, a) {
+ var o, s = e.length - 1, l = new Array(s), u = bxt(r, n, e, i, a);
+ for (o = 0; o < s; o++) {
+ var c = (t || [])[o];
+ l[o] = c === void 0 ? [u(e[o]), u(e[o + 1], true)] : [c, c];
+ }
+ return l;
+ }
+ });
+ var s8 = ye((Nur, F_e) => {
+ var qm = Dr(), R_e = fs().BADNUM, D_e = zg();
+ F_e.exports = function(t, r, n, i, a, o) {
+ var s = t._length, l = r.makeCalcdata(t, i), u = n.makeCalcdata(t, a);
+ l = D_e(t, r, i, l).vals, u = D_e(t, n, a, u).vals;
+ var c = t.text, f = c !== void 0 && qm.isArray1D(c), h = t.hovertext, d = h !== void 0 && qm.isArray1D(h), v, _, b = qm.distinctVals(l), p = b.vals, k = qm.distinctVals(u), E = k.vals, T = [], L, x, C = E.length, M = p.length;
+ for (v = 0; v < o.length; v++) T[v] = qm.init2dArray(C, M);
+ f && (L = qm.init2dArray(C, M)), d && (x = qm.init2dArray(C, M));
+ var g = qm.init2dArray(C, M);
+ for (v = 0; v < s; v++) if (l[v] !== R_e && u[v] !== R_e) {
+ var P = qm.findBin(l[v] + b.minDiff / 2, p), A = qm.findBin(u[v] + k.minDiff / 2, E);
+ for (_ = 0; _ < o.length; _++) {
+ var z = o[_], O = t[z], U = T[_];
+ U[A][P] = O[v], g[A][P] = v;
+ }
+ f && (L[A][P] = c[v]), d && (x[A][P] = h[v]);
+ }
+ for (t["_" + i] = p, t["_" + a] = E, _ = 0; _ < o.length; _++) t["_" + o[_]] = T[_];
+ f && (t._text = L), d && (t._hovertext = x), r && r.type === "category" && (t["_" + i + "CategoryMap"] = p.map(function(G) {
+ return r._categories[G];
+ })), n && n.type === "category" && (t["_" + a + "CategoryMap"] = E.map(function(G) {
+ return n._categories[G];
+ })), t._after2before = g;
+ };
+ });
+ var u8 = ye((Uur, z_e) => {
+ var wxt = Eo(), Txt = Dr(), l8 = fs().BADNUM;
+ z_e.exports = function(t, r, n, i) {
+ var a, o, s, l, u, c;
+ function f(p) {
+ if (wxt(p)) return +p;
+ }
+ if (r && r.transpose) {
+ for (a = 0, u = 0; u < t.length; u++) a = Math.max(a, t[u].length);
+ if (a === 0) return false;
+ s = function(p) {
+ return p.length;
+ }, l = function(p, k, E) {
+ return (p[E] || [])[k];
+ };
+ } else a = t.length, s = function(p, k) {
+ return p[k].length;
+ }, l = function(p, k, E) {
+ return (p[k] || [])[E];
+ };
+ var h = function(p, k, E) {
+ return k === l8 || E === l8 ? l8 : l(p, k, E);
+ };
+ function d(p) {
+ if (r && r.type !== "carpet" && r.type !== "contourcarpet" && p && p.type === "category" && r["_" + p._id.charAt(0)].length) {
+ var k = p._id.charAt(0), E = {}, T = r["_" + k + "CategoryMap"] || r[k];
+ for (u = 0; u < T.length; u++) E[T[u]] = u;
+ return function(L) {
+ var x = E[p._categories[L]];
+ return x + 1 ? x : l8;
+ };
+ } else return Txt.identity;
+ }
+ var v = d(n), _ = d(i);
+ i && i.type === "category" && (a = i._categories.length);
+ var b = new Array(a);
+ for (u = 0; u < a; u++) for (n && n.type === "category" ? o = n._categories.length : o = s(t, u), b[u] = new Array(o), c = 0; c < o; c++) b[u][c] = f(h(t, _(u), v(c)));
+ return b;
+ };
+ });
+ var c8 = ye((Vur, B_e) => {
+ var Axt = Dr(), O_e = 0.01, Sxt = [[-1, 0], [1, 0], [0, -1], [0, 1]];
+ function Mxt(e) {
+ return 0.5 - 0.25 * Math.min(1, e * 0.5);
+ }
+ B_e.exports = function(t, r) {
+ var n = 1, i;
+ for (q_e(t, r), i = 0; i < r.length && !(r[i][2] < 4); i++) ;
+ for (r = r.slice(i), i = 0; i < 100 && n > O_e; i++) n = q_e(t, r, Mxt(n));
+ return n > O_e && Axt.log("interp2d didn't converge quickly", n), t;
+ };
+ function q_e(e, t, r) {
+ var n = 0, i, a, o, s, l, u, c, f, h, d, v, _, b;
+ for (s = 0; s < t.length; s++) {
+ for (i = t[s], a = i[0], o = i[1], v = e[a][o], d = 0, h = 0, l = 0; l < 4; l++) u = Sxt[l], c = e[a + u[0]], c && (f = c[o + u[1]], f !== void 0 && (d === 0 ? _ = b = f : (_ = Math.min(_, f), b = Math.max(b, f)), h++, d += f));
+ if (h === 0) throw "iterateInterp2d order is wrong: no defined neighbors";
+ e[a][o] = d / h, v === void 0 ? h < 4 && (n = 1) : (e[a][o] = (1 + r) * e[a][o] - r * v, b > _ && (n = Math.max(n, Math.abs(e[a][o] - v) / (b - _))));
+ }
+ return n;
+ }
+ });
+ var f8 = ye((Gur, N_e) => {
+ var Ext = Dr().maxRowLength;
+ N_e.exports = function(t) {
+ var r = [], n = {}, i = [], a = t[0], o = [], s = [0, 0, 0], l = Ext(t), u, c, f, h, d, v, _, b;
+ for (c = 0; c < t.length; c++) for (u = o, o = a, a = t[c + 1] || [], f = 0; f < l; f++) o[f] === void 0 && (v = (o[f - 1] !== void 0 ? 1 : 0) + (o[f + 1] !== void 0 ? 1 : 0) + (u[f] !== void 0 ? 1 : 0) + (a[f] !== void 0 ? 1 : 0), v ? (c === 0 && v++, f === 0 && v++, c === t.length - 1 && v++, f === o.length - 1 && v++, v < 4 && (n[[c, f]] = [c, f, v]), r.push([c, f, v])) : i.push([c, f]));
+ for (; i.length; ) {
+ for (_ = {}, b = false, d = i.length - 1; d >= 0; d--) h = i[d], c = h[0], f = h[1], v = ((n[[c - 1, f]] || s)[2] + (n[[c + 1, f]] || s)[2] + (n[[c, f - 1]] || s)[2] + (n[[c, f + 1]] || s)[2]) / 20, v && (_[h] = [c, f, v], i.splice(d, 1), b = true);
+ if (!b) throw "findEmpties iterated with no new neighbors";
+ for (h in _) n[h] = _[h], r.push(_[h]);
+ }
+ return r.sort(function(p, k) {
+ return k[2] - p[2];
+ });
+ };
+ });
+ var rG = ye((Hur, G_e) => {
+ var U_e = qa(), V_e = Dr().isArrayOrTypedArray;
+ G_e.exports = function(t, r, n, i, a, o) {
+ var s = [], l = U_e.traceIs(t, "contour"), u = U_e.traceIs(t, "histogram"), c, f, h, d = V_e(r) && r.length > 1;
+ if (d && !u && o.type !== "category") {
+ var v = r.length;
+ if (v <= a) {
+ if (l) s = Array.from(r).slice(0, a);
+ else if (a === 1) o.type === "log" ? s = [0.5 * r[0], 2 * r[0]] : s = [r[0] - 0.5, r[0] + 0.5];
+ else if (o.type === "log") {
+ for (s = [Math.pow(r[0], 1.5) / Math.pow(r[1], 0.5)], h = 1; h < v; h++) s.push(Math.sqrt(r[h - 1] * r[h]));
+ s.push(Math.pow(r[v - 1], 1.5) / Math.pow(r[v - 2], 0.5));
+ } else {
+ for (s = [1.5 * r[0] - 0.5 * r[1]], h = 1; h < v; h++) s.push((r[h - 1] + r[h]) * 0.5);
+ s.push(1.5 * r[v - 1] - 0.5 * r[v - 2]);
+ }
+ if (v < a) {
+ var _ = s[s.length - 1], b;
+ if (o.type === "log") for (b = _ / s[s.length - 2], h = v; h < a; h++) _ *= b, s.push(_);
+ else for (b = _ - s[s.length - 2], h = v; h < a; h++) _ += b, s.push(_);
+ }
+ } else return l ? r.slice(0, a) : r.slice(0, a + 1);
+ } else {
+ var p = t[o._id.charAt(0) + "calendar"];
+ if (u) c = o.r2c(n, 0, p);
+ else if (V_e(r) && r.length === 1) c = r[0];
+ else if (n === void 0) c = 0;
+ else {
+ var k = o.type === "log" ? o.d2c : o.r2c;
+ c = k(n, 0, p);
+ }
+ for (f = i || 1, h = l ? 0 : -0.5; h < a; h++) s.push(c + f * h);
+ }
+ return s;
+ };
+ });
+ var v8 = ye((jur, X_e) => {
+ var H_e = qa(), iG = Dr(), h8 = ho(), j_e = zg(), kxt = I_e(), Cxt = gv(), Lxt = s8(), Pxt = u8(), Ixt = c8(), Rxt = f8(), d8 = rG(), nG = fs().BADNUM;
+ X_e.exports = function(t, r) {
+ var n = h8.getFromId(t, r.xaxis || "x"), i = h8.getFromId(t, r.yaxis || "y"), a = H_e.traceIs(r, "contour"), o = H_e.traceIs(r, "histogram"), s = a ? "best" : r.zsmooth, l, u, c, f, h, d, v, _, b, p, k;
+ if (n._minDtick = 0, i._minDtick = 0, o) k = kxt(t, r), f = k.orig_x, l = k.x, u = k.x0, c = k.dx, _ = k.orig_y, h = k.y, d = k.y0, v = k.dy, b = k.z;
+ else {
+ var E = r.z;
+ iG.isArray1D(E) ? (Lxt(r, n, i, "x", "y", ["z"]), l = r._x, h = r._y, E = r._z) : (f = r.x ? n.makeCalcdata(r, "x") : [], _ = r.y ? i.makeCalcdata(r, "y") : [], l = j_e(r, n, "x", f).vals, h = j_e(r, i, "y", _).vals, r._x = l, r._y = h), u = r.x0, c = r.dx, d = r.y0, v = r.dy, b = Pxt(E, r, n, i);
+ }
+ (n.rangebreaks || i.rangebreaks) && (b = Dxt(l, h, b), o || (l = W_e(l), h = W_e(h), r._x = l, r._y = h)), !o && (a || r.connectgaps) && (r._emptypoints = Rxt(b), Ixt(b, r._emptypoints));
+ function T(O) {
+ s = r._input.zsmooth = r.zsmooth = false, iG.warn('cannot use zsmooth: "fast": ' + O);
+ }
+ function L(O) {
+ if (O.length > 1) {
+ var U = (O[O.length - 1] - O[0]) / (O.length - 1), G = Math.abs(U / 100);
+ for (p = 0; p < O.length - 1; p++) if (Math.abs(O[p + 1] - O[p] - U) > G) return false;
+ }
+ return true;
+ }
+ r._islinear = false, n.type === "log" || i.type === "log" ? s === "fast" && T("log axis found") : L(l) ? L(h) ? r._islinear = true : s === "fast" && T("y scale is not linear") : s === "fast" && T("x scale is not linear");
+ var x = iG.maxRowLength(b), C = r.xtype === "scaled" ? "" : l, M = d8(r, C, u, c, x, n), g = r.ytype === "scaled" ? "" : h, P = d8(r, g, d, v, b.length, i);
+ r._extremes[n._id] = h8.findExtremes(n, M), r._extremes[i._id] = h8.findExtremes(i, P);
+ var A = { x: M, y: P, z: b, text: r._text || r.text, hovertext: r._hovertext || r.hovertext };
+ if (r.xperiodalignment && f && (A.orig_x = f), r.yperiodalignment && _ && (A.orig_y = _), C && C.length === M.length - 1 && (A.xCenter = C), g && g.length === P.length - 1 && (A.yCenter = g), o && (A.xRanges = k.xRanges, A.yRanges = k.yRanges, A.pts = k.pts), a || Cxt(t, r, { vals: b, cLetter: "z" }), a && r.contours && r.contours.coloring === "heatmap") {
+ var z = { type: r.type === "contour" ? "heatmap" : "histogram2d", xcalendar: r.xcalendar, ycalendar: r.ycalendar };
+ A.xfill = d8(z, C, u, c, x, n), A.yfill = d8(z, g, d, v, b.length, i);
+ }
+ return [A];
+ };
+ function W_e(e) {
+ for (var t = [], r = e.length, n = 0; n < r; n++) {
+ var i = e[n];
+ i !== nG && t.push(i);
+ }
+ return t;
+ }
+ function Dxt(e, t, r) {
+ for (var n = [], i = -1, a = 0; a < r.length; a++) if (t[a] !== nG) {
+ i++, n[i] = [];
+ for (var o = 0; o < r[a].length; o++) e[o] !== nG && n[i].push(r[a][o]);
+ }
+ return n;
+ }
+ });
+ var g8 = ye((p8) => {
+ p8.CSS_DECLARATIONS = [["image-rendering", "optimizeSpeed"], ["image-rendering", "-moz-crisp-edges"], ["image-rendering", "-o-crisp-edges"], ["image-rendering", "-webkit-optimize-contrast"], ["image-rendering", "optimize-contrast"], ["image-rendering", "crisp-edges"], ["image-rendering", "pixelated"]];
+ p8.STYLE = p8.CSS_DECLARATIONS.map(function(e) {
+ return e.join(": ") + "; ";
+ }).join("");
+ });
+ var oG = ye((Xur, Y_e) => {
+ var Z_e = g8(), Fxt = So(), aG = Dr(), BT = null;
+ function zxt() {
+ if (BT !== null) return BT;
+ BT = false;
+ var e = aG.isSafari() || aG.isMacWKWebView() || aG.isIOS();
+ if (window.navigator.userAgent && !e) {
+ var t = Array.from(Z_e.CSS_DECLARATIONS).reverse(), r = window.CSS && window.CSS.supports || window.supportsCSS;
+ if (typeof r == "function") BT = t.some(function(o) {
+ return r.apply(null, o);
+ });
+ else {
+ var n = Fxt.tester.append("image").attr("style", Z_e.STYLE), i = window.getComputedStyle(n.node()), a = i.imageRendering;
+ BT = t.some(function(o) {
+ var s = o[1];
+ return a === s || a === s.toLowerCase();
+ }), n.remove();
+ }
+ }
+ return BT;
+ }
+ Y_e.exports = zxt;
+ });
+ var m8 = ye((Zur, nxe) => {
+ var K_e = Oa(), Oxt = fd(), qxt = qa(), Bxt = So(), Nxt = ho(), W0 = Dr(), J_e = Zl(), Uxt = lI(), Vxt = ka(), Gxt = tc().extractOpts, Hxt = tc().makeColorScaleFuncFromTrace, jxt = Wp(), Wxt = Dh(), sG = Wxt.LINE_SPACING, Xxt = oG(), Zxt = g8().STYLE, rxe = "heatmap-label";
+ function ixe(e) {
+ return e.selectAll("g." + rxe);
+ }
+ function $_e(e) {
+ ixe(e).remove();
+ }
+ nxe.exports = function(e, t, r, n) {
+ var i = t.xaxis, a = t.yaxis;
+ W0.makeTraceGroups(n, r, "hm").each(function(o) {
+ var s = K_e.select(this), l = o[0], u = l.trace, c = u.xgap || 0, f = u.ygap || 0, h = l.z, d = l.x, v = l.y, _ = l.xCenter, b = l.yCenter, p = qxt.traceIs(u, "contour"), k = p ? "best" : u.zsmooth, E = h.length, T = W0.maxRowLength(h), L = false, x = false, C, M, g, P, A, z, O, U;
+ for (z = 0; C === void 0 && z < d.length - 1; ) C = i.c2p(d[z]), z++;
+ for (z = d.length - 1; M === void 0 && z > 0; ) M = i.c2p(d[z]), z--;
+ for (M < C && (g = M, M = C, C = g, L = true), z = 0; P === void 0 && z < v.length - 1; ) P = a.c2p(v[z]), z++;
+ for (z = v.length - 1; A === void 0 && z > 0; ) A = a.c2p(v[z]), z--;
+ A < P && (g = P, P = A, A = g, x = true), p && (_ = d, b = v, d = l.xfill, v = l.yfill);
+ var G = "default";
+ if (k ? G = k === "best" ? "smooth" : "fast" : u._islinear && c === 0 && f === 0 && Xxt() && (G = "fast"), G !== "fast") {
+ var Z = k === "best" ? 0 : 0.5;
+ C = Math.max(-Z * i._length, C), M = Math.min((1 + Z) * i._length, M), P = Math.max(-Z * a._length, P), A = Math.min((1 + Z) * a._length, A);
+ }
+ var j = Math.round(M - C), N = Math.round(A - P), H = C >= i._length || M <= 0 || P >= a._length || A <= 0;
+ if (H) {
+ var re = s.selectAll("image").data([]);
+ re.exit().remove(), $_e(s);
+ return;
+ }
+ var oe, _e;
+ G === "fast" ? (oe = T, _e = E) : (oe = j, _e = N);
+ var Ce = document.createElement("canvas");
+ Ce.width = oe, Ce.height = _e;
+ var Le = Ce.getContext("2d", { willReadFrequently: true }), ge = Hxt(u, { noNumericCheck: true, returnArray: true }), ie, Se;
+ G === "fast" ? (ie = L ? function(fn) {
+ return T - 1 - fn;
+ } : W0.identity, Se = x ? function(fn) {
+ return E - 1 - fn;
+ } : W0.identity) : (ie = function(fn) {
+ return W0.constrain(Math.round(i.c2p(d[fn]) - C), 0, j);
+ }, Se = function(fn) {
+ return W0.constrain(Math.round(a.c2p(v[fn]) - P), 0, N);
+ });
+ var Ee = Se(0), Ae = [Ee, Ee], Be = L ? 0 : 1, Pe = x ? 0 : 1, me = 0, De = 0, ce = 0, je = 0, lt, pt, Vt, ot, ut;
+ function Wt(fn, yn) {
+ if (fn !== void 0) {
+ var Sn = ge(fn);
+ return Sn[0] = Math.round(Sn[0]), Sn[1] = Math.round(Sn[1]), Sn[2] = Math.round(Sn[2]), me += yn, De += Sn[0] * yn, ce += Sn[1] * yn, je += Sn[2] * yn, Sn;
+ }
+ return [0, 0, 0, 0];
+ }
+ function Nt(fn, yn, Sn, Ba) {
+ var ua = fn[Sn.bin0];
+ if (ua === void 0) return Wt(void 0, 1);
+ var ma = fn[Sn.bin1], Wa = yn[Sn.bin0], Fa = yn[Sn.bin1], Xo = ma - ua || 0, da = Wa - ua || 0, Wn;
+ return ma === void 0 ? Fa === void 0 ? Wn = 0 : Wa === void 0 ? Wn = 2 * (Fa - ua) : Wn = (2 * Fa - Wa - ua) * 2 / 3 : Fa === void 0 ? Wa === void 0 ? Wn = 0 : Wn = (2 * ua - ma - Wa) * 2 / 3 : Wa === void 0 ? Wn = (2 * Fa - ma - ua) * 2 / 3 : Wn = Fa + ua - ma - Wa, Wt(ua + Sn.frac * Xo + Ba.frac * (da + Sn.frac * Wn));
+ }
+ if (G !== "default") {
+ var $t = 0, sr;
+ try {
+ sr = new Uint8Array(oe * _e * 4);
+ } catch (fn) {
+ sr = new Array(oe * _e * 4);
+ }
+ if (G === "smooth") {
+ var Tr = _ || d, fr = b || v, $e = new Array(Tr.length), St = new Array(fr.length), Qt = new Array(j), Gt = _ ? exe : Q_e, _t = b ? exe : Q_e, It, mt, er;
+ for (z = 0; z < Tr.length; z++) $e[z] = Math.round(i.c2p(Tr[z]) - C);
+ for (z = 0; z < fr.length; z++) St[z] = Math.round(a.c2p(fr[z]) - P);
+ for (z = 0; z < j; z++) Qt[z] = Gt(z, $e);
+ for (O = 0; O < N; O++) for (It = _t(O, St), mt = h[It.bin0], er = h[It.bin1], z = 0; z < j; z++, $t += 4) ut = Nt(mt, er, Qt[z], It), txe(sr, $t, ut);
+ } else for (O = 0; O < E; O++) for (ot = h[O], Ae = Se(O), z = 0; z < T; z++) ut = Wt(ot[z], 1), $t = (Ae * T + ie(z)) * 4, txe(sr, $t, ut);
+ var lr = Le.createImageData(oe, _e);
+ try {
+ lr.data.set(sr);
+ } catch (fn) {
+ var wr = lr.data, Lr = wr.length;
+ for (O = 0; O < Lr; O++) wr[O] = sr[O];
+ }
+ Le.putImageData(lr, 0, 0);
+ } else {
+ var ti = Math.floor(c / 2), Br = Math.floor(f / 2);
+ for (O = 0; O < E; O++) if (ot = h[O], Ae.reverse(), Ae[Pe] = Se(O + 1), !(Ae[0] === Ae[1] || Ae[0] === void 0 || Ae[1] === void 0)) for (pt = ie(0), lt = [pt, pt], z = 0; z < T; z++) lt.reverse(), lt[Be] = ie(z + 1), !(lt[0] === lt[1] || lt[0] === void 0 || lt[1] === void 0) && (Vt = ot[z], ut = Wt(Vt, (lt[1] - lt[0]) * (Ae[1] - Ae[0])), Le.fillStyle = "rgba(" + ut.join(",") + ")", Le.fillRect(lt[0] + ti, Ae[0] + Br, lt[1] - lt[0] - c, Ae[1] - Ae[0] - f));
+ }
+ De = Math.round(De / me), ce = Math.round(ce / me), je = Math.round(je / me);
+ var Vr = Oxt("rgb(" + De + "," + ce + "," + je + ")");
+ e._hmpixcount = (e._hmpixcount || 0) + me, e._hmlumcount = (e._hmlumcount || 0) + me * Vr.getLuminance();
+ var dt = s.selectAll("image").data(o);
+ dt.enter().append("svg:image").attr({ xmlns: jxt.svg, preserveAspectRatio: "none" }), dt.attr({ height: N, width: j, x: C, y: P, "xlink:href": Ce.toDataURL("image/png") }), G === "fast" && !k && dt.attr("style", Zxt), $_e(s);
+ var Ge = u.texttemplate;
+ if (Ge) {
+ var Je = Gxt(u), We = { type: "linear", range: [Je.min, Je.max], _separators: i._separators, _numFormat: i._numFormat }, tt = u.type === "histogram2dcontour", xt = u.type === "contour", Ie = xt ? 1 : 0, xe = xt ? E - 1 : E, ke = xt ? 1 : 0, vt = xt ? T - 1 : T, ir = [];
+ for (z = Ie; z < xe; z++) {
+ var ar;
+ if (xt) ar = l.y[z];
+ else if (tt) {
+ if (z === 0 || z === E - 1) continue;
+ ar = l.y[z];
+ } else if (l.yCenter) ar = l.yCenter[z];
+ else {
+ if (z + 1 === E && l.y[z + 1] === void 0) continue;
+ ar = (l.y[z] + l.y[z + 1]) / 2;
+ }
+ var vr = Math.round(a.c2p(ar));
+ if (!(0 > vr || vr > a._length)) for (O = ke; O < vt; O++) {
+ var ii;
+ if (xt) ii = l.x[O];
+ else if (tt) {
+ if (O === 0 || O === T - 1) continue;
+ ii = l.x[O];
+ } else if (l.xCenter) ii = l.xCenter[O];
+ else {
+ if (O + 1 === T && l.x[O + 1] === void 0) continue;
+ ii = (l.x[O] + l.x[O + 1]) / 2;
+ }
+ var pi = Math.round(i.c2p(ii));
+ if (!(0 > pi || pi > i._length)) {
+ var $r = Uxt({ x: ii, y: ar }, u, e._fullLayout);
+ $r.x = ii, $r.y = ar;
+ var di = l.z[z][O];
+ di === void 0 ? ($r.z = "", $r.zLabel = "") : ($r.z = di, $r.zLabel = Nxt.tickText(We, di, "hover").text);
+ var ji = l.text && l.text[z] && l.text[z][O];
+ (ji === void 0 || ji === false) && (ji = ""), $r.text = ji;
+ var In = W0.texttemplateString({ data: [$r, u._meta], fallback: u.texttemplatefallback, labels: $r, locale: e._fullLayout._d3locale, template: Ge });
+ if (In) {
+ var wi = In.split(" "), On = wi.length, qn = 0;
+ for (U = 0; U < On; U++) qn = Math.max(qn, wi[U].length);
+ ir.push({ l: On, c: qn, t: In, x: pi, y: vr, z: di });
+ }
+ }
+ }
+ }
+ var Fn = u.textfont, ra = Fn.size, la = e._fullLayout.font.size;
+ if (!ra || ra === "auto") {
+ var Ut = 1 / 0, wt = 1 / 0, rr = 0, nr = 0;
+ for (U = 0; U < ir.length; U++) {
+ var Er = ir[U];
+ if (rr = Math.max(rr, Er.l), nr = Math.max(nr, Er.c), U < ir.length - 1) {
+ var Xr = ir[U + 1], ri = Math.abs(Xr.x - Er.x), Qr = Math.abs(Xr.y - Er.y);
+ ri && (Ut = Math.min(Ut, ri)), Qr && (wt = Math.min(wt, Qr));
+ }
+ }
+ !isFinite(Ut) || !isFinite(wt) ? ra = la : (Ut -= c, wt -= f, Ut /= nr, wt /= rr, Ut /= sG / 2, wt /= sG, ra = Math.min(Math.floor(Ut), Math.floor(wt), la));
+ }
+ if (ra <= 0 || !isFinite(ra)) return;
+ var Oi = function(fn) {
+ return fn.x;
+ }, $i = function(fn) {
+ return fn.y - ra * (fn.l * sG / 2 - 1);
+ }, tn = ixe(s).data(ir);
+ tn.enter().append("g").classed(rxe, 1).append("text").attr("text-anchor", "middle").each(function(fn) {
+ var yn = K_e.select(this), Sn = Fn.color;
+ (!Sn || Sn === "auto") && (Sn = Vxt.contrast(fn.z === void 0 ? e._fullLayout.plot_bgcolor : "rgba(" + ge(fn.z).join() + ")")), yn.attr("data-notex", 1).call(J_e.positionText, Oi(fn), $i(fn)).call(Bxt.font, { family: Fn.family, size: ra, color: Sn, weight: Fn.weight, style: Fn.style, variant: Fn.variant, textcase: Fn.textcase, lineposition: Fn.lineposition, shadow: Fn.shadow }).text(fn.t).call(J_e.convertToTspans, e);
+ });
+ }
+ });
+ };
+ function Q_e(e, t) {
+ var r = t.length - 2, n = W0.constrain(W0.findBin(e, t), 0, r), i = t[n], a = t[n + 1], o = W0.constrain(n + (e - i) / (a - i) - 0.5, 0, r), s = Math.round(o), l = Math.abs(o - s);
+ return !o || o === r || !l ? { bin0: s, bin1: s, frac: 0 } : { bin0: s, frac: l, bin1: Math.round(s + l / (o - s)) };
+ }
+ function exe(e, t) {
+ var r = t.length - 1, n = W0.constrain(W0.findBin(e, t), 0, r), i = t[n], a = t[n + 1], o = (e - i) / (a - i) || 0;
+ return o <= 0 ? { bin0: n, bin1: n, frac: 0 } : o < 0.5 ? { bin0: n, bin1: n + 1, frac: o } : { bin0: n + 1, bin1: n, frac: 1 - o };
+ }
+ function txe(e, t, r) {
+ e[t] = r[0], e[t + 1] = r[1], e[t + 2] = r[2], e[t + 3] = Math.round(r[3] * 255);
+ }
+ });
+ var D_ = ye((Yur, axe) => {
+ axe.exports = { min: "zmin", max: "zmax" };
+ });
+ var y8 = ye((Kur, oxe) => {
+ var Yxt = Oa();
+ oxe.exports = function(t) {
+ Yxt.select(t).selectAll(".hm image").style("opacity", function(r) {
+ return r.trace.opacity;
+ });
+ };
+ });
+ var x8 = ye((Jur, lxe) => {
+ var sxe = vf(), R4 = Dr(), _8 = R4.isArrayOrTypedArray, Kxt = ho(), Jxt = tc().extractOpts;
+ lxe.exports = function(t, r, n, i, a) {
+ a || (a = {});
+ var o = a.isContour, s = t.cd[0], l = s.trace, u = t.xa, c = t.ya, f = s.x, h = s.y, d = s.z, v = s.xCenter, _ = s.yCenter, b = s.zmask, p = l.zhoverformat, k = f, E = h, T, L, x, C;
+ if (t.index !== false) {
+ try {
+ x = Math.round(t.index[1]), C = Math.round(t.index[0]);
+ } catch (re) {
+ R4.error("Error hovering on heatmap, pointNumber must be [row,col], found:", t.index);
+ return;
+ }
+ if (x < 0 || x >= d[0].length || C < 0 || C > d.length) return;
+ } else {
+ if (sxe.inbox(r - f[0], r - f[f.length - 1], 0) > 0 || sxe.inbox(n - h[0], n - h[h.length - 1], 0) > 0) return;
+ if (o) {
+ var M;
+ for (k = [2 * f[0] - f[1]], M = 1; M < f.length; M++) k.push((f[M] + f[M - 1]) / 2);
+ for (k.push([2 * f[f.length - 1] - f[f.length - 2]]), E = [2 * h[0] - h[1]], M = 1; M < h.length; M++) E.push((h[M] + h[M - 1]) / 2);
+ E.push([2 * h[h.length - 1] - h[h.length - 2]]);
+ }
+ x = Math.max(0, Math.min(k.length - 2, R4.findBin(r, k))), C = Math.max(0, Math.min(E.length - 2, R4.findBin(n, E)));
+ }
+ var g = u.c2p(f[x]), P = u.c2p(f[x + 1]), A = c.c2p(h[C]), z = c.c2p(h[C + 1]), O, U;
+ o ? (O = s.orig_x || f, U = s.orig_y || h, P = g, T = O[x], z = A, L = U[C]) : (O = s.orig_x || v || f, U = s.orig_y || _ || h, T = v ? O[x] : (O[x] + O[x + 1]) / 2, L = _ ? U[C] : (U[C] + U[C + 1]) / 2, u && u.type === "category" && (T = f[x]), c && c.type === "category" && (L = h[C]), l.zsmooth && (g = P = u.c2p(T), A = z = c.c2p(L)));
+ var G = d[C][x];
+ if (b && !b[C][x] && (G = void 0), !(G === void 0 && !l.hoverongaps)) {
+ var Z;
+ _8(s.hovertext) && _8(s.hovertext[C]) ? Z = s.hovertext[C][x] : _8(s.text) && _8(s.text[C]) && (Z = s.text[C][x]);
+ var j = Jxt(l), N = { type: "linear", range: [j.min, j.max], hoverformat: p, _separators: u._separators, _numFormat: u._numFormat }, H = Kxt.tickText(N, G, "hover").text;
+ return [R4.extendFlat(t, { index: l._after2before ? l._after2before[C][x] : [C, x], distance: t.maxHoverDistance, spikeDistance: t.maxSpikeDistance, x0: g, x1: P, y0: A, y1: z, xLabelVal: T, yLabelVal: L, zLabelVal: G, zLabel: H, text: Z })];
+ }
+ };
+ });
+ var cxe = ye(($ur, uxe) => {
+ uxe.exports = { attributes: FT(), supplyDefaults: l_e(), calc: v8(), plot: m8(), colorbar: D_(), style: y8(), hoverPoints: x8(), moduleType: "trace", name: "heatmap", basePlotModule: mh(), categories: ["cartesian", "svg", "2dMap", "showLegend"], meta: {} };
+ });
+ var hxe = ye((Qur, fxe) => {
+ fxe.exports = cxe();
+ });
+ var lG = ye((ecr, dxe) => {
+ dxe.exports = function(t, r) {
+ return { start: { valType: "any", editType: "calc" }, end: { valType: "any", editType: "calc" }, size: { valType: "any", editType: "calc" }, editType: "calc" };
+ };
+ });
+ var pxe = ye((tcr, vxe) => {
+ vxe.exports = { eventDataKeys: ["binNumber"] };
+ });
+ var b8 = ye((rcr, _xe) => {
+ var Ip = zm(), gxe = df().axisHoverFormat, { hovertemplateAttrs: $xt, texttemplateAttrs: Qxt, templatefallbackAttrs: mxe } = Ll(), uG = ec(), yxe = lG(), ebt = pxe(), cG = Ao().extendFlat;
+ _xe.exports = { x: { valType: "data_array", editType: "calc+clearAxisTypes" }, y: { valType: "data_array", editType: "calc+clearAxisTypes" }, xhoverformat: gxe("x"), yhoverformat: gxe("y"), text: cG({}, Ip.text, {}), hovertext: cG({}, Ip.hovertext, {}), orientation: Ip.orientation, histfunc: { valType: "enumerated", values: ["count", "sum", "avg", "min", "max"], dflt: "count", editType: "calc" }, histnorm: { valType: "enumerated", values: ["", "percent", "probability", "density", "probability density"], dflt: "", editType: "calc" }, cumulative: { enabled: { valType: "boolean", dflt: false, editType: "calc" }, direction: { valType: "enumerated", values: ["increasing", "decreasing"], dflt: "increasing", editType: "calc" }, currentbin: { valType: "enumerated", values: ["include", "exclude", "half"], dflt: "include", editType: "calc" }, editType: "calc" }, nbinsx: { valType: "integer", min: 0, dflt: 0, editType: "calc" }, xbins: yxe("x", true), nbinsy: { valType: "integer", min: 0, dflt: 0, editType: "calc" }, ybins: yxe("y", true), autobinx: { valType: "boolean", dflt: null, editType: "calc" }, autobiny: { valType: "boolean", dflt: null, editType: "calc" }, bingroup: { valType: "string", dflt: "", editType: "calc" }, hovertemplate: $xt({}, { keys: ebt.eventDataKeys }), hovertemplatefallback: mxe(), texttemplate: Qxt({ arrayOk: false, editType: "plot" }, { keys: ["label", "value"] }), texttemplatefallback: mxe({ editType: "plot" }), textposition: cG({}, Ip.textposition, { arrayOk: false }), textfont: uG({ arrayOk: false, editType: "plot", colorEditType: "style" }), outsidetextfont: uG({ arrayOk: false, editType: "plot", colorEditType: "style" }), insidetextfont: uG({ arrayOk: false, editType: "plot", colorEditType: "style" }), insidetextanchor: Ip.insidetextanchor, textangle: Ip.textangle, cliponaxis: Ip.cliponaxis, constraintext: Ip.constraintext, marker: Ip.marker, offsetgroup: Ip.offsetgroup, alignmentgroup: Ip.alignmentgroup, selected: Ip.selected, unselected: Ip.unselected, zorder: Ip.zorder };
+ });
+ var Txe = ye((icr, wxe) => {
+ var xxe = qa(), D4 = Dr(), bxe = ka(), tbt = i0().handleText, rbt = WI(), ibt = b8();
+ wxe.exports = function(t, r, n, i) {
+ function a(k, E) {
+ return D4.coerce(t, r, ibt, k, E);
+ }
+ var o = a("x"), s = a("y"), l = a("cumulative.enabled");
+ l && (a("cumulative.direction"), a("cumulative.currentbin")), a("text");
+ var u = a("textposition");
+ tbt(t, r, i, a, u, { moduleHasSelected: true, moduleHasUnselected: true, moduleHasConstrain: true, moduleHasCliponaxis: true, moduleHasTextangle: true, moduleHasInsideanchor: true }), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("xhoverformat"), a("yhoverformat");
+ var c = a("orientation", s && !o ? "h" : "v"), f = c === "v" ? "x" : "y", h = c === "v" ? "y" : "x", d = o && s ? Math.min(D4.minRowLength(o) && D4.minRowLength(s)) : D4.minRowLength(r[f] || []);
+ if (!d) {
+ r.visible = false;
+ return;
+ }
+ r._length = d;
+ var v = xxe.getComponentMethod("calendars", "handleTraceDefaults");
+ v(t, r, ["x", "y"], i);
+ var _ = r[h];
+ _ && a("histfunc"), a("histnorm"), a("autobin" + f), rbt(t, r, a, n, i), D4.coerceSelectionMarkerOpacity(r, a);
+ var b = (r.marker.line || {}).color, p = xxe.getComponentMethod("errorbars", "supplyDefaults");
+ p(t, r, b || bxe.defaultLine, { axis: "y" }), p(t, r, b || bxe.defaultLine, { axis: "x", inherit: "y" }), a("zorder");
+ };
+ });
+ var T8 = ye((ncr, Mxe) => {
+ var F4 = Dr(), nbt = hf(), w8 = qa().traceIs, abt = e2(), obt = i0().validateCornerradius, Axe = F4.nestedProperty, fG = Kb().getAxisGroup, Sxe = [{ aStr: { x: "xbins.start", y: "ybins.start" }, name: "start" }, { aStr: { x: "xbins.end", y: "ybins.end" }, name: "end" }, { aStr: { x: "xbins.size", y: "ybins.size" }, name: "size" }, { aStr: { x: "nbinsx", y: "nbinsy" }, name: "nbins" }], sbt = ["x", "y"];
+ Mxe.exports = function(t, r) {
+ var n = r._histogramBinOpts = {}, i = [], a = {}, o = [], s, l, u, c, f, h, d;
+ function v(G, Z) {
+ return F4.coerce(s._input, s, s._module.attributes, G, Z);
+ }
+ function _(G) {
+ return G.orientation === "v" ? "x" : "y";
+ }
+ function b(G, Z) {
+ var j = nbt.getFromTrace({ _fullLayout: r }, G, Z);
+ return j.type;
+ }
+ function p(G, Z, j) {
+ var N = G.uid + "__" + j;
+ Z || (Z = N);
+ var H = b(G, j), re = G[j + "calendar"] || "", oe = n[Z], _e = true;
+ oe && (H === oe.axType && re === oe.calendar ? (_e = false, oe.traces.push(G), oe.dirs.push(j)) : (Z = N, H !== oe.axType && F4.warn(["Attempted to group the bins of trace", G.index, "set on a", "type:" + H, "axis", "with bins on", "type:" + oe.axType, "axis."].join(" ")), re !== oe.calendar && F4.warn(["Attempted to group the bins of trace", G.index, "set with a", re, "calendar", "with bins", oe.calendar ? "on a " + oe.calendar + " calendar" : "w/o a set calendar"].join(" ")))), _e && (n[Z] = { traces: [G], dirs: [j], axType: H, calendar: G[j + "calendar"] || "" }), G["_" + j + "bingroup"] = Z;
+ }
+ for (f = 0; f < t.length; f++) if (s = t[f], w8(s, "histogram")) {
+ if (i.push(s), delete s._xautoBinFinished, delete s._yautoBinFinished, s.type === "histogram") {
+ var k = v("marker.cornerradius", r.barcornerradius);
+ s.marker && (s.marker.cornerradius = obt(k));
+ }
+ w8(s, "2dMap") || abt(s._input, s, r, v, r.barmode);
+ }
+ var E = r._alignmentOpts || {};
+ for (f = 0; f < i.length; f++) {
+ if (s = i[f], u = "", !w8(s, "2dMap")) {
+ if (c = _(s), r.barmode === "group" && s.alignmentgroup) {
+ var T = s[c + "axis"], L = fG(r, T) + s.orientation;
+ (E[L] || {})[s.alignmentgroup] && (u = L);
+ }
+ !u && r.barmode !== "overlay" && (u = fG(r, s.xaxis) + fG(r, s.yaxis) + _(s));
+ }
+ u ? (a[u] || (a[u] = []), a[u].push(s)) : o.push(s);
+ }
+ for (u in a) {
+ if (l = a[u], l.length === 1) {
+ o.push(l[0]);
+ continue;
+ }
+ var x = false;
+ for (l.length && (s = l[0], x = v("bingroup")), u = x || u, f = 0; f < l.length; f++) {
+ s = l[f];
+ var C = s._input.bingroup;
+ C && C !== u && F4.warn(["Trace", s.index, "must match", "within bingroup", u + ".", "Ignoring its bingroup:", C, "setting."].join(" ")), s.bingroup = u, p(s, u, _(s));
+ }
+ }
+ for (f = 0; f < o.length; f++) {
+ s = o[f];
+ var M = v("bingroup");
+ if (w8(s, "2dMap")) for (d = 0; d < 2; d++) {
+ c = sbt[d];
+ var g = v(c + "bingroup", M ? M + "__" + c : null);
+ p(s, g, c);
+ }
+ else p(s, M, _(s));
+ }
+ for (u in n) {
+ var P = n[u];
+ for (l = P.traces, h = 0; h < Sxe.length; h++) {
+ var A = Sxe[h], z = A.name, O, U;
+ if (!(z === "nbins" && P.sizeFound)) {
+ for (f = 0; f < l.length; f++) {
+ if (s = l[f], c = P.dirs[f], O = A.aStr[c], Axe(s._input, O).get() !== void 0) {
+ P[z] = v(O), P[z + "Found"] = true;
+ break;
+ }
+ U = (s._autoBin || {})[c] || {}, U[z] && Axe(s, O).set(U[z]);
+ }
+ if (z === "start" || z === "end") for (; f < l.length; f++) s = l[f], s["_" + c + "bingroup"] && (U = (s._autoBin || {})[c] || {}, v(O, U[z]));
+ z === "nbins" && !P.sizeFound && !P.nbinsFound && (s = l[0], P[z] = v(O));
+ }
+ }
+ }
+ };
+ });
+ var kxe = ye((acr, Exe) => {
+ var lbt = PT().hoverPoints, ubt = ho().hoverLabelText;
+ Exe.exports = function(t, r, n, i, a) {
+ var o = lbt(t, r, n, i, a);
+ if (o) {
+ t = o[0];
+ var s = t.cd[t.index], l = t.cd[0].trace;
+ if (!l.cumulative.enabled) {
+ var u = l.orientation === "h" ? "y" : "x";
+ t[u + "Label"] = ubt(t[u + "a"], [s.ph0, s.ph1], l[u + "hoverformat"]);
+ }
+ return o;
+ }
+ };
+ });
+ var hG = ye((ocr, Cxe) => {
+ Cxe.exports = function(t, r, n, i, a) {
+ if (t.x = "xVal" in r ? r.xVal : r.x, t.y = "yVal" in r ? r.yVal : r.y, "zLabelVal" in r && (t.z = r.zLabelVal), r.xa && (t.xaxis = r.xa), r.ya && (t.yaxis = r.ya), !(n.cumulative || {}).enabled) {
+ var o = Array.isArray(a) ? i[0].pts[a[0]][a[1]] : i[a].pts;
+ t.pointNumbers = o, t.binNumber = t.pointNumber, delete t.pointNumber, delete t.pointIndex;
+ var s;
+ if (n._indexToPoints) {
+ s = [];
+ for (var l = 0; l < o.length; l++) s = s.concat(n._indexToPoints[o[l]]);
+ } else s = o;
+ t.pointIndices = s;
+ }
+ return t;
+ };
+ });
+ var Pxe = ye((scr, Lxe) => {
+ Lxe.exports = { attributes: b8(), layoutAttributes: jI(), supplyDefaults: Txe(), crossTraceDefaults: T8(), supplyLayoutDefaults: IV(), calc: tG().calc, crossTraceCalc: t2().crossTraceCalc, plot: d2().plot, layerName: "barlayer", style: V0().style, styleOnSelect: V0().styleOnSelect, colorbar: $d(), hoverPoints: kxe(), selectPoints: IT(), eventData: hG(), moduleType: "trace", name: "histogram", basePlotModule: mh(), categories: ["bar-like", "cartesian", "svg", "bar", "histogram", "oriented", "errorBarsOK", "showLegend"], meta: {} };
+ });
+ var Rxe = ye((lcr, Ixe) => {
+ Ixe.exports = Pxe();
+ });
+ var S8 = ye((ucr, zxe) => {
+ var jg = b8(), Dxe = lG(), A8 = FT(), cbt = Gl(), dG = df().axisHoverFormat, { hovertemplateAttrs: fbt, texttemplateAttrs: hbt, templatefallbackAttrs: Fxe } = Ll(), dbt = Tu(), z4 = Ao().extendFlat;
+ zxe.exports = z4({ x: jg.x, y: jg.y, z: { valType: "data_array", editType: "calc" }, marker: { color: { valType: "data_array", editType: "calc" }, editType: "calc" }, histnorm: jg.histnorm, histfunc: jg.histfunc, nbinsx: jg.nbinsx, xbins: Dxe("x"), nbinsy: jg.nbinsy, ybins: Dxe("y"), autobinx: jg.autobinx, autobiny: jg.autobiny, bingroup: z4({}, jg.bingroup, {}), xbingroup: z4({}, jg.bingroup, {}), ybingroup: z4({}, jg.bingroup, {}), xgap: A8.xgap, ygap: A8.ygap, zsmooth: A8.zsmooth, xhoverformat: dG("x"), yhoverformat: dG("y"), zhoverformat: dG("z", 1), hovertemplate: fbt({}, { keys: ["z"] }), hovertemplatefallback: Fxe(), texttemplate: hbt({ arrayOk: false, editType: "plot" }, { keys: ["z"] }), texttemplatefallback: Fxe({ editType: "plot" }), textfont: A8.textfont, showlegend: z4({}, cbt.showlegend, { dflt: false }) }, dbt("", { cLetter: "z", autoColorDflt: false }));
+ });
+ var vG = ye((ccr, qxe) => {
+ var vbt = qa(), Oxe = Dr();
+ qxe.exports = function(t, r, n, i) {
+ var a = n("x"), o = n("y"), s = Oxe.minRowLength(a), l = Oxe.minRowLength(o);
+ if (!s || !l) {
+ r.visible = false;
+ return;
+ }
+ r._length = Math.min(s, l);
+ var u = vbt.getComponentMethod("calendars", "handleTraceDefaults");
+ u(t, r, ["x", "y"], i);
+ var c = n("z") || n("marker.color");
+ c && n("histfunc"), n("histnorm"), n("autobinx"), n("autobiny");
+ };
+ });
+ var Nxe = ye((fcr, Bxe) => {
+ var pbt = Dr(), gbt = vG(), mbt = ZV(), ybt = td(), _bt = I4(), xbt = S8();
+ Bxe.exports = function(t, r, n, i) {
+ function a(o, s) {
+ return pbt.coerce(t, r, xbt, o, s);
+ }
+ gbt(t, r, a, i), r.visible !== false && (mbt(t, r, a, i), ybt(t, r, i, a, { prefix: "", cLetter: "z" }), a("hovertemplate"), a("hovertemplatefallback"), _bt(a, i), a("xhoverformat"), a("yhoverformat"));
+ };
+ });
+ var Gxe = ye((hcr, Vxe) => {
+ var bbt = x8(), Uxe = ho().hoverLabelText;
+ Vxe.exports = function(t, r, n, i, a) {
+ var o = bbt(t, r, n, i, a);
+ if (o) {
+ t = o[0];
+ var s = t.index, l = s[0], u = s[1], c = t.cd[0], f = c.trace, h = c.xRanges[u], d = c.yRanges[l];
+ return t.xLabel = Uxe(t.xa, [h[0], h[1]], f.xhoverformat), t.yLabel = Uxe(t.ya, [d[0], d[1]], f.yhoverformat), o;
+ }
+ };
+ });
+ var jxe = ye((dcr, Hxe) => {
+ Hxe.exports = { attributes: S8(), supplyDefaults: Nxe(), crossTraceDefaults: T8(), calc: v8(), plot: m8(), layerName: "heatmaplayer", colorbar: D_(), style: y8(), hoverPoints: Gxe(), eventData: hG(), moduleType: "trace", name: "histogram2d", basePlotModule: mh(), categories: ["cartesian", "svg", "2dMap", "histogram", "showLegend"], meta: {} };
+ });
+ var Xxe = ye((vcr, Wxe) => {
+ Wxe.exports = jxe();
+ });
+ var M8 = ye((pcr, Zxe) => {
+ Zxe.exports = { COMPARISON_OPS: ["=", "!=", "<", ">=", ">", "<="], COMPARISON_OPS2: ["=", "<", ">=", ">", "<="], INTERVAL_OPS: ["[]", "()", "[)", "(]", "][", ")(", "](", ")["], SET_OPS: ["{}", "}{"], CONSTRAINT_REDUCTION: { "=": "=", "<": "<", "<=": "<", ">": ">", ">=": ">", "[]": "[]", "()": "[]", "[)": "[]", "(]": "[]", "][": "][", ")(": "][", "](": "][", ")[": "][" } };
+ });
+ var O4 = ye((gcr, $xe) => {
+ var _h = FT(), E8 = pf(), Kxe = df(), pG = Kxe.axisHoverFormat, wbt = Kxe.descriptionOnlyNumbers, Tbt = Tu(), Abt = Pd().dash, Sbt = ec(), NT = Ao().extendFlat, Jxe = M8(), Mbt = Jxe.COMPARISON_OPS2, Ebt = Jxe.INTERVAL_OPS, Yxe = E8.line;
+ $xe.exports = NT({ z: _h.z, x: _h.x, x0: _h.x0, dx: _h.dx, y: _h.y, y0: _h.y0, dy: _h.dy, xperiod: _h.xperiod, yperiod: _h.yperiod, xperiod0: E8.xperiod0, yperiod0: E8.yperiod0, xperiodalignment: _h.xperiodalignment, yperiodalignment: _h.yperiodalignment, text: _h.text, hovertext: _h.hovertext, transpose: _h.transpose, xtype: _h.xtype, ytype: _h.ytype, xhoverformat: pG("x"), yhoverformat: pG("y"), zhoverformat: pG("z", 1), hovertemplate: _h.hovertemplate, hovertemplatefallback: _h.hovertemplatefallback, texttemplate: NT({}, _h.texttemplate, {}), texttemplatefallback: _h.texttemplatefallback, textfont: NT({}, _h.textfont, {}), hoverongaps: _h.hoverongaps, connectgaps: NT({}, _h.connectgaps, {}), fillcolor: { valType: "color", editType: "calc" }, autocontour: { valType: "boolean", dflt: true, editType: "calc", impliedEdits: { "contours.start": void 0, "contours.end": void 0, "contours.size": void 0 } }, ncontours: { valType: "integer", dflt: 15, min: 1, editType: "calc" }, contours: { type: { valType: "enumerated", values: ["levels", "constraint"], dflt: "levels", editType: "calc" }, start: { valType: "number", dflt: null, editType: "plot", impliedEdits: { "^autocontour": false } }, end: { valType: "number", dflt: null, editType: "plot", impliedEdits: { "^autocontour": false } }, size: { valType: "number", dflt: null, min: 0, editType: "plot", impliedEdits: { "^autocontour": false } }, coloring: { valType: "enumerated", values: ["fill", "heatmap", "lines", "none"], dflt: "fill", editType: "calc" }, showlines: { valType: "boolean", dflt: true, editType: "plot" }, showlabels: { valType: "boolean", dflt: false, editType: "plot" }, labelfont: Sbt({ editType: "plot", colorEditType: "style" }), labelformat: { valType: "string", dflt: "", editType: "plot", description: wbt("contour label") }, operation: { valType: "enumerated", values: [].concat(Mbt).concat(Ebt), dflt: "=", editType: "calc" }, value: { valType: "any", dflt: 0, editType: "calc" }, editType: "calc", impliedEdits: { autocontour: false } }, line: { color: NT({}, Yxe.color, { editType: "style+colorbars" }), width: { valType: "number", min: 0, editType: "style+colorbars" }, dash: Abt, smoothing: NT({}, Yxe.smoothing, {}), editType: "plot" }, zorder: E8.zorder }, Tbt("", { cLetter: "z", autoColorDflt: false, editTypeOverride: "calc" }));
+ });
+ var mG = ye((mcr, ebe) => {
+ var wv = S8(), Bm = O4(), kbt = Tu(), gG = df().axisHoverFormat, Qxe = Ao().extendFlat;
+ ebe.exports = Qxe({ x: wv.x, y: wv.y, z: wv.z, marker: wv.marker, histnorm: wv.histnorm, histfunc: wv.histfunc, nbinsx: wv.nbinsx, xbins: wv.xbins, nbinsy: wv.nbinsy, ybins: wv.ybins, autobinx: wv.autobinx, autobiny: wv.autobiny, bingroup: wv.bingroup, xbingroup: wv.xbingroup, ybingroup: wv.ybingroup, autocontour: Bm.autocontour, ncontours: Bm.ncontours, contours: Bm.contours, line: { color: Bm.line.color, width: Qxe({}, Bm.line.width, { dflt: 0.5 }), dash: Bm.line.dash, smoothing: Bm.line.smoothing, editType: "plot" }, xhoverformat: gG("x"), yhoverformat: gG("y"), zhoverformat: gG("z", 1), hovertemplate: wv.hovertemplate, hovertemplatefallback: wv.hovertemplatefallback, texttemplate: Bm.texttemplate, texttemplatefallback: Bm.texttemplatefallback, textfont: Bm.textfont }, kbt("", { cLetter: "z", editTypeOverride: "calc" }));
+ });
+ var k8 = ye((ycr, tbe) => {
+ tbe.exports = function(t, r, n, i) {
+ var a = i("contours.start"), o = i("contours.end"), s = a === false || o === false, l = n("contours.size"), u;
+ s ? u = r.autocontour = true : u = n("autocontour", false), (u || !l) && n("ncontours");
+ };
+ });
+ var yG = ye((_cr, rbe) => {
+ var Cbt = Dr();
+ rbe.exports = function(t, r, n, i) {
+ i || (i = {});
+ var a = t("contours.showlabels");
+ if (a) {
+ var o = r.font;
+ Cbt.coerceFont(t, "contours.labelfont", o, { overrideDflt: { color: n } }), t("contours.labelformat");
+ }
+ i.hasHover !== false && t("zhoverformat");
+ };
+ });
+ var C8 = ye((xcr, ibe) => {
+ var Lbt = td(), Pbt = yG();
+ ibe.exports = function(t, r, n, i, a) {
+ var o = n("contours.coloring"), s, l = "";
+ o === "fill" && (s = n("contours.showlines")), s !== false && (o !== "lines" && (l = n("line.color", "#000")), n("line.width", 0.5), n("line.dash")), o !== "none" && (t.showlegend !== true && (r.showlegend = false), r._dfltShowLegend = false, Lbt(t, r, i, n, { prefix: "", cLetter: "z" })), n("line.smoothing"), Pbt(n, i, l, a);
+ };
+ });
+ var sbe = ye((bcr, obe) => {
+ var nbe = Dr(), Ibt = vG(), Rbt = k8(), Dbt = C8(), Fbt = I4(), abe = mG();
+ obe.exports = function(t, r, n, i) {
+ function a(s, l) {
+ return nbe.coerce(t, r, abe, s, l);
+ }
+ function o(s) {
+ return nbe.coerce2(t, r, abe, s);
+ }
+ Ibt(t, r, a, i), r.visible !== false && (Rbt(t, r, a, o), Dbt(t, r, a, i), a("xhoverformat"), a("yhoverformat"), a("hovertemplate"), a("hovertemplatefallback"), r.contours && r.contours.coloring === "heatmap" && Fbt(a, i));
+ };
+ });
+ var bG = ye((wcr, ube) => {
+ var xG = ho(), _G = Dr();
+ ube.exports = function(t, r) {
+ var n = t.contours;
+ if (t.autocontour) {
+ var i = t.zmin, a = t.zmax;
+ (t.zauto || i === void 0) && (i = _G.aggNums(Math.min, null, r)), (t.zauto || a === void 0) && (a = _G.aggNums(Math.max, null, r));
+ var o = lbe(i, a, t.ncontours);
+ n.size = o.dtick, n.start = xG.tickFirst(o), o.range.reverse(), n.end = xG.tickFirst(o), n.start === i && (n.start += n.size), n.end === a && (n.end -= n.size), n.start > n.end && (n.start = n.end = (n.start + n.end) / 2), t._input.contours || (t._input.contours = {}), _G.extendFlat(t._input.contours, { start: n.start, end: n.end, size: n.size }), t._input.autocontour = true;
+ } else if (n.type !== "constraint") {
+ var s = n.start, l = n.end, u = t._input.contours;
+ if (s > l && (n.start = u.start = l, l = n.end = u.end = s, s = n.start), !(n.size > 0)) {
+ var c;
+ s === l ? c = 1 : c = lbe(s, l, t.ncontours).dtick, u.size = n.size = c;
+ }
+ }
+ };
+ function lbe(e, t, r) {
+ var n = { type: "linear", range: [e, t] };
+ return xG.autoTicks(n, (t - e) / (r || 15)), n;
+ }
+ });
+ var q4 = ye((Tcr, cbe) => {
+ cbe.exports = function(t) {
+ return t.end + t.size / 1e6;
+ };
+ });
+ var wG = ye((Acr, hbe) => {
+ var fbe = tc(), zbt = v8(), Obt = bG(), qbt = q4();
+ hbe.exports = function(t, r) {
+ var n = zbt(t, r), i = n[0].z;
+ Obt(r, i);
+ var a = r.contours, o = fbe.extractOpts(r), s;
+ if (a.coloring === "heatmap" && o.auto && r.autocontour === false) {
+ var l = a.start, u = qbt(a), c = a.size || 1, f = Math.floor((u - l) / c) + 1;
+ isFinite(c) || (c = 1, f = 1);
+ var h = l - c / 2, d = h + f * c;
+ s = [h, d];
+ } else s = i;
+ return fbe.calc(t, r, { vals: s, cLetter: "z" }), n;
+ };
+ });
+ var B4 = ye((Scr, dbe) => {
+ dbe.exports = { BOTTOMSTART: [1, 9, 13, 104, 713], TOPSTART: [4, 6, 7, 104, 713], LEFTSTART: [8, 12, 14, 208, 1114], RIGHTSTART: [2, 3, 11, 208, 1114], NEWDELTA: [null, [-1, 0], [0, -1], [-1, 0], [1, 0], null, [0, -1], [-1, 0], [0, 1], [0, 1], null, [0, 1], [1, 0], [1, 0], [0, -1]], CHOOSESADDLE: { 104: [4, 1], 208: [2, 8], 713: [7, 13], 1114: [11, 14] }, SADDLEREMAINDER: { 1: 4, 2: 8, 4: 1, 7: 13, 8: 2, 11: 14, 13: 7, 14: 11 }, LABELDISTANCE: 2, LABELINCREASE: 10, LABELMIN: 3, LABELMAX: 10, LABELOPTIMIZER: { EDGECOST: 1, ANGLECOST: 1, NEIGHBORCOST: 5, SAMELEVELFACTOR: 10, SAMELEVELDISTANCE: 5, MAXCOST: 100, INITIALSEARCHPOINTS: 10, ITERATIONS: 5 } };
+ });
+ var TG = ye((Mcr, vbe) => {
+ var L8 = B4();
+ vbe.exports = function(t) {
+ var r = t[0].z, n = r.length, i = r[0].length, a = n === 2 || i === 2, o, s, l, u, c, f, h, d, v;
+ for (s = 0; s < n - 1; s++) for (u = [], s === 0 && (u = u.concat(L8.BOTTOMSTART)), s === n - 2 && (u = u.concat(L8.TOPSTART)), o = 0; o < i - 1; o++) for (l = u.slice(), o === 0 && (l = l.concat(L8.LEFTSTART)), o === i - 2 && (l = l.concat(L8.RIGHTSTART)), c = o + "," + s, f = [[r[s][o], r[s][o + 1]], [r[s + 1][o], r[s + 1][o + 1]]], v = 0; v < t.length; v++) d = t[v], h = Bbt(d.level, f), h && (d.crossings[c] = h, l.indexOf(h) !== -1 && (d.starts.push([o, s]), a && l.indexOf(h, l.indexOf(h) + 1) !== -1 && d.starts.push([o, s])));
+ };
+ function Bbt(e, t) {
+ var r = (t[0][0] > e ? 0 : 1) + (t[0][1] > e ? 0 : 2) + (t[1][1] > e ? 0 : 4) + (t[1][0] > e ? 0 : 8);
+ if (r === 5 || r === 10) {
+ var n = (t[0][0] + t[0][1] + t[1][0] + t[1][1]) / 4;
+ return e > n ? r === 5 ? 713 : 1114 : r === 5 ? 104 : 208;
+ }
+ return r === 15 ? 0 : r;
+ }
+ });
+ var AG = ye((Ecr, mbe) => {
+ var P8 = Dr(), UT = B4();
+ mbe.exports = function(t, r, n) {
+ var i, a, o, s, l;
+ for (r = r || 0.01, n = n || 0.01, o = 0; o < t.length; o++) {
+ for (s = t[o], l = 0; l < s.starts.length; l++) a = s.starts[l], pbe(s, a, "edge", r, n);
+ for (i = 0; Object.keys(s.crossings).length && i < 1e4; ) i++, a = Object.keys(s.crossings)[0].split(",").map(Number), pbe(s, a, void 0, r, n);
+ i === 1e4 && P8.log("Infinite loop in contour?");
+ }
+ };
+ function N4(e, t, r, n) {
+ return Math.abs(e[0] - t[0]) < r && Math.abs(e[1] - t[1]) < n;
+ }
+ function Nbt(e, t) {
+ var r = e[2] - t[2], n = e[3] - t[3];
+ return Math.sqrt(r * r + n * n);
+ }
+ function pbe(e, t, r, n, i) {
+ var a = t.join(","), o = e.crossings[a], s = Ubt(o, r, t), l = [gbe(e, t, [-s[0], -s[1]])], u = e.z.length, c = e.z[0].length, f = t.slice(), h = s.slice(), d;
+ for (d = 0; d < 1e4; d++) {
+ if (o > 20 ? (o = UT.CHOOSESADDLE[o][(s[0] || s[1]) < 0 ? 0 : 1], e.crossings[a] = UT.SADDLEREMAINDER[o]) : delete e.crossings[a], s = UT.NEWDELTA[o], !s) {
+ P8.log("Found bad marching index:", o, t, e.level);
+ break;
+ }
+ l.push(gbe(e, t, s)), t[0] += s[0], t[1] += s[1], a = t.join(","), N4(l[l.length - 1], l[l.length - 2], n, i) && l.pop();
+ var v = s[0] && (t[0] < 0 || t[0] > c - 2) || s[1] && (t[1] < 0 || t[1] > u - 2), _ = t[0] === f[0] && t[1] === f[1] && s[0] === h[0] && s[1] === h[1];
+ if (_ || r && v) break;
+ o = e.crossings[a];
+ }
+ d === 1e4 && P8.log("Infinite loop in contour?");
+ var b = N4(l[0], l[l.length - 1], n, i), p = 0, k = 0.2 * e.smoothing, E = [], T = 0, L, x, C, M, g, P, A, z, O, U, G;
+ for (d = 1; d < l.length; d++) A = Nbt(l[d], l[d - 1]), p += A, E.push(A);
+ var Z = p / E.length * k;
+ function j(re) {
+ return l[re % l.length];
+ }
+ for (d = l.length - 2; d >= T; d--) if (L = E[d], L < Z) {
+ for (C = 0, x = d - 1; x >= T && L + E[x] < Z; x--) L += E[x];
+ if (b && d === l.length - 2) for (C = 0; C < x && L + E[C] < Z; C++) L += E[C];
+ g = d - x + C + 1, P = Math.floor((d + x + C + 2) / 2), !b && d === l.length - 2 ? M = l[l.length - 1] : !b && x === -1 ? M = l[0] : g % 2 ? M = j(P) : M = [(j(P)[0] + j(P + 1)[0]) / 2, (j(P)[1] + j(P + 1)[1]) / 2], l.splice(x + 1, d - x + 1, M), d = x + 1, C && (T = C), b && (d === l.length - 2 ? l[C] = l[l.length - 1] : d === 0 && (l[l.length - 1] = l[0]));
+ }
+ for (l.splice(0, T), d = 0; d < l.length; d++) l[d].length = 2;
+ if (!(l.length < 2)) if (b) l.pop(), e.paths.push(l);
+ else {
+ r || P8.log("Unclosed interior contour?", e.level, f.join(","), l.join("L"));
+ var N = false;
+ for (z = 0; z < e.edgepaths.length; z++) if (U = e.edgepaths[z], !N && N4(U[0], l[l.length - 1], n, i)) {
+ l.pop(), N = true;
+ var H = false;
+ for (O = 0; O < e.edgepaths.length; O++) if (G = e.edgepaths[O], N4(G[G.length - 1], l[0], n, i)) {
+ H = true, l.shift(), e.edgepaths.splice(z, 1), O === z ? e.paths.push(l.concat(G)) : (O > z && O--, e.edgepaths[O] = G.concat(l, U));
+ break;
+ }
+ H || (e.edgepaths[z] = l.concat(U));
+ }
+ for (z = 0; z < e.edgepaths.length && !N; z++) U = e.edgepaths[z], N4(U[U.length - 1], l[0], n, i) && (l.shift(), e.edgepaths[z] = U.concat(l), N = true);
+ N || e.edgepaths.push(l);
+ }
+ }
+ function Ubt(e, t, r) {
+ var n = 0, i = 0;
+ return e > 20 && t ? e === 208 || e === 1114 ? n = r[0] === 0 ? 1 : -1 : i = r[1] === 0 ? 1 : -1 : UT.BOTTOMSTART.indexOf(e) !== -1 ? i = 1 : UT.LEFTSTART.indexOf(e) !== -1 ? n = 1 : UT.TOPSTART.indexOf(e) !== -1 ? i = -1 : n = -1, [n, i];
+ }
+ function gbe(e, t, r) {
+ var n = t[0] + Math.max(r[0], 0), i = t[1] + Math.max(r[1], 0), a = e.z[i][n], o = e.xaxis, s = e.yaxis;
+ if (r[1]) {
+ var l = (e.level - a) / (e.z[i][n + 1] - a), u = (l !== 1 ? (1 - l) * o.c2l(e.x[n]) : 0) + (l !== 0 ? l * o.c2l(e.x[n + 1]) : 0);
+ return [o.c2p(o.l2c(u), true), s.c2p(e.y[i], true), n + l, i];
+ } else {
+ var c = (e.level - a) / (e.z[i + 1][n] - a), f = (c !== 1 ? (1 - c) * s.c2l(e.y[i]) : 0) + (c !== 0 ? c * s.c2l(e.y[i + 1]) : 0);
+ return [o.c2p(e.x[n], true), s.c2p(s.l2c(f), true), n, i + c];
+ }
+ }
+ });
+ var bbe = ye((kcr, xbe) => {
+ var SG = M8(), Vbt = Eo();
+ xbe.exports = { "[]": ybe("[]"), "][": ybe("]["), ">": MG(">"), "<": MG("<"), "=": MG("=") };
+ function _be(e, t) {
+ var r = Array.isArray(t), n;
+ function i(a) {
+ return Vbt(a) ? +a : null;
+ }
+ return SG.COMPARISON_OPS2.indexOf(e) !== -1 ? n = i(r ? t[0] : t) : SG.INTERVAL_OPS.indexOf(e) !== -1 ? n = r ? [i(t[0]), i(t[1])] : [i(t), i(t)] : SG.SET_OPS.indexOf(e) !== -1 && (n = r ? t.map(i) : [i(t)]), n;
+ }
+ function ybe(e) {
+ return function(t) {
+ t = _be(e, t);
+ var r = Math.min(t[0], t[1]), n = Math.max(t[0], t[1]);
+ return { start: r, end: n, size: n - r };
+ };
+ }
+ function MG(e) {
+ return function(t) {
+ return t = _be(e, t), { start: t, end: 1 / 0, size: 1 / 0 };
+ };
+ }
+ });
+ var EG = ye((Ccr, Tbe) => {
+ var wbe = Dr(), Gbt = bbe(), Hbt = q4();
+ Tbe.exports = function(t, r, n) {
+ for (var i = t.type === "constraint" ? Gbt[t._operation](t.value) : t, a = i.size, o = [], s = Hbt(i), l = n.trace._carpetTrace, u = l ? { xaxis: l.aaxis, yaxis: l.baxis, x: n.a, y: n.b } : { xaxis: r.xaxis, yaxis: r.yaxis, x: n.x, y: n.y }, c = i.start; c < s; c += a) if (o.push(wbe.extendFlat({ level: c, crossings: {}, starts: [], edgepaths: [], paths: [], z: n.z, smoothing: n.trace.line.smoothing }, u)), o.length > 1e3) {
+ wbe.warn("Too many contours, clipping at 1000", t);
+ break;
+ }
+ return o;
+ };
+ });
+ var kG = ye((Lcr, Sbe) => {
+ var VT = Dr();
+ Sbe.exports = function(e, t) {
+ var r, n, i, a = function(l) {
+ return l.reverse();
+ }, o = function(l) {
+ return l;
+ };
+ switch (t) {
+ case "=":
+ case "<":
+ return e;
+ case ">":
+ for (e.length !== 1 && VT.warn("Contour data invalid for the specified inequality operation."), n = e[0], r = 0; r < n.edgepaths.length; r++) n.edgepaths[r] = a(n.edgepaths[r]);
+ for (r = 0; r < n.paths.length; r++) n.paths[r] = a(n.paths[r]);
+ for (r = 0; r < n.starts.length; r++) n.starts[r] = a(n.starts[r]);
+ return e;
+ case "][":
+ var s = a;
+ a = o, o = s;
+ case "[]":
+ for (e.length !== 2 && VT.warn("Contour data invalid for the specified inequality range operation."), n = Abe(e[0]), i = Abe(e[1]), r = 0; r < n.edgepaths.length; r++) n.edgepaths[r] = a(n.edgepaths[r]);
+ for (r = 0; r < n.paths.length; r++) n.paths[r] = a(n.paths[r]);
+ for (r = 0; r < n.starts.length; r++) n.starts[r] = a(n.starts[r]);
+ for (; i.edgepaths.length; ) n.edgepaths.push(o(i.edgepaths.shift()));
+ for (; i.paths.length; ) n.paths.push(o(i.paths.shift()));
+ for (; i.starts.length; ) n.starts.push(o(i.starts.shift()));
+ return [n];
+ }
+ };
+ function Abe(e) {
+ return VT.extendFlat({}, e, { edgepaths: VT.extendDeep([], e.edgepaths), paths: VT.extendDeep([], e.paths), starts: VT.extendDeep([], e.starts) });
+ }
+ });
+ var CG = ye((Pcr, Mbe) => {
+ Mbe.exports = function(e, t) {
+ var r = e[0], n = r.z, i;
+ switch (t.type) {
+ case "levels":
+ var a = Math.min(n[0][0], n[0][1]);
+ for (i = 0; i < e.length; i++) {
+ var o = e[i];
+ o.prefixBoundary = !o.edgepaths.length && (a > o.level || o.starts.length && a === o.level);
+ }
+ break;
+ case "constraint":
+ if (r.prefixBoundary = false, r.edgepaths.length) return;
+ var s = r.x.length, l = r.y.length, u = -1 / 0, c = 1 / 0;
+ for (i = 0; i < l; i++) c = Math.min(c, n[i][0]), c = Math.min(c, n[i][s - 1]), u = Math.max(u, n[i][0]), u = Math.max(u, n[i][s - 1]);
+ for (i = 1; i < s - 1; i++) c = Math.min(c, n[0][i]), c = Math.min(c, n[l - 1][i]), u = Math.max(u, n[0][i]), u = Math.max(u, n[l - 1][i]);
+ var f = t.value, h, d;
+ switch (t._operation) {
+ case ">":
+ f > u && (r.prefixBoundary = true);
+ break;
+ case "<":
+ (f < c || r.starts.length && f === c) && (r.prefixBoundary = true);
+ break;
+ case "[]":
+ h = Math.min(f[0], f[1]), d = Math.max(f[0], f[1]), (d < c || h > u || r.starts.length && d === c) && (r.prefixBoundary = true);
+ break;
+ case "][":
+ h = Math.min(f[0], f[1]), d = Math.max(f[0], f[1]), h < c && d > u && (r.prefixBoundary = true);
+ break;
+ }
+ break;
+ }
+ };
+ });
+ var I8 = ye((jv) => {
+ var V4 = Oa(), Fd = Dr(), jy = So(), jbt = tc(), Cbe = Zl(), Ebe = ho(), kbe = xm(), Wbt = m8(), Lbe = TG(), Pbe = AG(), Xbt = EG(), Zbt = kG(), Ibe = CG(), U4 = B4(), Nm = U4.LABELOPTIMIZER;
+ jv.plot = function(t, r, n, i) {
+ var a = r.xaxis, o = r.yaxis;
+ Fd.makeTraceGroups(i, n, "contour").each(function(s) {
+ var l = V4.select(this), u = s[0], c = u.trace, f = u.x, h = u.y, d = c.contours, v = Xbt(d, r, u), _ = Fd.ensureSingle(l, "g", "heatmapcoloring"), b = [];
+ d.coloring === "heatmap" && (b = [s]), Wbt(t, r, b, _), Lbe(v), Pbe(v);
+ var p = a.c2p(f[0], true), k = a.c2p(f[f.length - 1], true), E = o.c2p(h[0], true), T = o.c2p(h[h.length - 1], true), L = [[p, T], [k, T], [k, E], [p, E]], x = v;
+ d.type === "constraint" && (x = Zbt(v, d._operation)), Ybt(l, L, d), Kbt(l, x, L, d), Jbt(l, v, t, u, d), Qbt(l, r, t, u, L);
+ });
+ };
+ function Ybt(e, t, r) {
+ var n = Fd.ensureSingle(e, "g", "contourbg"), i = n.selectAll("path").data(r.coloring === "fill" ? [0] : []);
+ i.enter().append("path"), i.exit().remove(), i.attr("d", "M" + t.join("L") + "Z").style("stroke", "none");
+ }
+ function Kbt(e, t, r, n) {
+ var i = n.coloring === "fill" || n.type === "constraint" && n._operation !== "=", a = "M" + r.join("L") + "Z";
+ i && Ibe(t, n);
+ var o = Fd.ensureSingle(e, "g", "contourfill"), s = o.selectAll("path").data(i ? t : []);
+ s.enter().append("path"), s.exit().remove(), s.each(function(l) {
+ var u = (l.prefixBoundary ? a : "") + Rbe(l, r);
+ u ? V4.select(this).attr("d", u).style("stroke", "none") : V4.select(this).remove();
+ });
+ }
+ function Rbe(e, t) {
+ var r = "", n = 0, i = e.edgepaths.map(function(p, k) {
+ return k;
+ }), a = true, o, s, l, u, c, f;
+ function h(p) {
+ return Math.abs(p[1] - t[0][1]) < 0.01;
+ }
+ function d(p) {
+ return Math.abs(p[1] - t[2][1]) < 0.01;
+ }
+ function v(p) {
+ return Math.abs(p[0] - t[0][0]) < 0.01;
+ }
+ function _(p) {
+ return Math.abs(p[0] - t[2][0]) < 0.01;
+ }
+ for (; i.length; ) {
+ for (f = jy.smoothopen(e.edgepaths[n], e.smoothing), r += a ? f : f.replace(/^M/, "L"), i.splice(i.indexOf(n), 1), o = e.edgepaths[n][e.edgepaths[n].length - 1], u = -1, l = 0; l < 4; l++) {
+ if (!o) {
+ Fd.log("Missing end?", n, e);
+ break;
+ }
+ for (h(o) && !_(o) ? s = t[1] : v(o) ? s = t[0] : d(o) ? s = t[3] : _(o) && (s = t[2]), c = 0; c < e.edgepaths.length; c++) {
+ var b = e.edgepaths[c][0];
+ Math.abs(o[0] - s[0]) < 0.01 ? Math.abs(o[0] - b[0]) < 0.01 && (b[1] - o[1]) * (s[1] - b[1]) >= 0 && (s = b, u = c) : Math.abs(o[1] - s[1]) < 0.01 ? Math.abs(o[1] - b[1]) < 0.01 && (b[0] - o[0]) * (s[0] - b[0]) >= 0 && (s = b, u = c) : Fd.log("endpt to newendpt is not vert. or horz.", o, s, b);
+ }
+ if (o = s, u >= 0) break;
+ r += "L" + s;
+ }
+ if (u === e.edgepaths.length) {
+ Fd.log("unclosed perimeter path");
+ break;
+ }
+ n = u, a = i.indexOf(n) === -1, a && (n = i[0], r += "Z");
+ }
+ for (n = 0; n < e.paths.length; n++) r += jy.smoothclosed(e.paths[n], e.smoothing);
+ return r;
+ }
+ function Jbt(e, t, r, n, i) {
+ var a = r._context.staticPlot, o = Fd.ensureSingle(e, "g", "contourlines"), s = i.showlines !== false, l = i.showlabels, u = s && l, c = jv.createLines(o, s || l, t, a), f = jv.createLineClip(o, u, r, n.trace.uid), h = e.selectAll("g.contourlabels").data(l ? [0] : []);
+ if (h.exit().remove(), h.enter().append("g").classed("contourlabels", true), l) {
+ var d = [], v = [];
+ Fd.clearLocationCache();
+ var _ = jv.labelFormatter(r, n), b = jy.tester.append("text").attr("data-notex", 1).call(jy.font, i.labelfont), p = t[0].xaxis, k = t[0].yaxis, E = p._length, T = k._length, L = p.range, x = k.range, C = Fd.aggNums(Math.min, null, n.x), M = Fd.aggNums(Math.max, null, n.x), g = Fd.aggNums(Math.min, null, n.y), P = Fd.aggNums(Math.max, null, n.y), A = Math.max(p.c2p(C, true), 0), z = Math.min(p.c2p(M, true), E), O = Math.max(k.c2p(P, true), 0), U = Math.min(k.c2p(g, true), T), G = {};
+ L[0] < L[1] ? (G.left = A, G.right = z) : (G.left = z, G.right = A), x[0] < x[1] ? (G.top = O, G.bottom = U) : (G.top = U, G.bottom = O), G.middle = (G.top + G.bottom) / 2, G.center = (G.left + G.right) / 2, d.push([[G.left, G.top], [G.right, G.top], [G.right, G.bottom], [G.left, G.bottom]]);
+ var Z = Math.sqrt(E * E + T * T), j = U4.LABELDISTANCE * Z / Math.max(1, t.length / U4.LABELINCREASE);
+ c.each(function(N) {
+ var H = jv.calcTextOpts(N.level, _, b, r);
+ V4.select(this).selectAll("path").each(function() {
+ var re = this, oe = Fd.getVisibleSegment(re, G, H.height / 2);
+ if (oe && !(oe.len < (H.width + H.height) * U4.LABELMIN)) for (var _e = Math.min(Math.ceil(oe.len / j), U4.LABELMAX), Ce = 0; Ce < _e; Ce++) {
+ var Le = jv.findBestTextLocation(re, oe, H, v, G);
+ if (!Le) break;
+ jv.addLabelData(Le, H, v, d);
+ }
+ });
+ }), b.remove(), jv.drawLabels(h, v, r, f, u ? d : null);
+ }
+ l && !s && c.remove();
+ }
+ jv.createLines = function(e, t, r, n) {
+ var i = r[0].smoothing, a = e.selectAll("g.contourlevel").data(t ? r : []);
+ if (a.exit().remove(), a.enter().append("g").classed("contourlevel", true), t) {
+ var o = a.selectAll("path.openline").data(function(l) {
+ return l.pedgepaths || l.edgepaths;
+ });
+ o.exit().remove(), o.enter().append("path").classed("openline", true), o.attr("d", function(l) {
+ return jy.smoothopen(l, i);
+ }).style("stroke-miterlimit", 1).style("vector-effect", n ? "none" : "non-scaling-stroke");
+ var s = a.selectAll("path.closedline").data(function(l) {
+ return l.ppaths || l.paths;
+ });
+ s.exit().remove(), s.enter().append("path").classed("closedline", true), s.attr("d", function(l) {
+ return jy.smoothclosed(l, i);
+ }).style("stroke-miterlimit", 1).style("vector-effect", n ? "none" : "non-scaling-stroke");
+ }
+ return a;
+ };
+ jv.createLineClip = function(e, t, r, n) {
+ var i = r._fullLayout._clips, a = t ? "clipline" + n : null, o = i.selectAll("#" + a).data(t ? [0] : []);
+ return o.exit().remove(), o.enter().append("clipPath").classed("contourlineclip", true).attr("id", a), jy.setClipUrl(e, a, r), o;
+ };
+ jv.labelFormatter = function(e, t) {
+ var r = e._fullLayout, n = t.trace, i = n.contours, a = { type: "linear", _id: "ycontour", showexponent: "all", exponentformat: "B" };
+ if (i.labelformat) a.tickformat = i.labelformat, kbe(a, r);
+ else {
+ var o = jbt.extractOpts(n);
+ if (o && o.colorbar && o.colorbar._axis) a = o.colorbar._axis;
+ else {
+ if (i.type === "constraint") {
+ var s = i.value;
+ Fd.isArrayOrTypedArray(s) ? a.range = [s[0], s[s.length - 1]] : a.range = [s, s];
+ } else a.range = [i.start, i.end], a.nticks = (i.end - i.start) / i.size;
+ a.range[0] === a.range[1] && (a.range[1] += a.range[0] || 1), a.nticks || (a.nticks = 1e3), kbe(a, r), Ebe.prepTicks(a), a._tmin = null, a._tmax = null;
+ }
+ }
+ return function(l) {
+ return Ebe.tickText(a, l).text;
+ };
+ };
+ jv.calcTextOpts = function(e, t, r, n) {
+ var i = t(e);
+ r.text(i).call(Cbe.convertToTspans, n);
+ var a = r.node(), o = jy.bBox(a, true);
+ return { text: i, width: o.width, height: o.height, fontSize: +a.style["font-size"].replace("px", ""), level: e, dy: (o.top + o.bottom) / 2 };
+ };
+ jv.findBestTextLocation = function(e, t, r, n, i) {
+ var a = r.width, o, s, l, u, c;
+ t.isClosed ? (s = t.len / Nm.INITIALSEARCHPOINTS, o = t.min + s / 2, l = t.max) : (s = (t.len - a) / (Nm.INITIALSEARCHPOINTS + 1), o = t.min + s + a / 2, l = t.max - (s + a) / 2);
+ for (var f = 1 / 0, h = 0; h < Nm.ITERATIONS; h++) {
+ for (var d = o; d < l; d += s) {
+ var v = Fd.getTextLocation(e, t.total, d, a), _ = $bt(v, r, n, i);
+ _ < f && (f = _, c = v, u = d);
+ }
+ if (f > Nm.MAXCOST * 2) break;
+ h && (s /= 2), o = u - s / 2, l = o + s * 1.5;
+ }
+ if (f <= Nm.MAXCOST) return c;
+ };
+ function $bt(e, t, r, n) {
+ var i = t.width / 2, a = t.height / 2, o = e.x, s = e.y, l = e.theta, u = Math.cos(l) * i, c = Math.sin(l) * i, f = (o > n.center ? n.right - o : o - n.left) / (u + Math.abs(Math.sin(l) * a)), h = (s > n.middle ? n.bottom - s : s - n.top) / (Math.abs(c) + Math.cos(l) * a);
+ if (f < 1 || h < 1) return 1 / 0;
+ var d = Nm.EDGECOST * (1 / (f - 1) + 1 / (h - 1));
+ d += Nm.ANGLECOST * l * l;
+ for (var v = o - u, _ = s - c, b = o + u, p = s + c, k = 0; k < r.length; k++) {
+ var E = r[k], T = Math.cos(E.theta) * E.width / 2, L = Math.sin(E.theta) * E.width / 2, x = Fd.segmentDistance(v, _, b, p, E.x - T, E.y - L, E.x + T, E.y + L) * 2 / (t.height + E.height), C = E.level === t.level, M = C ? Nm.SAMELEVELDISTANCE : 1;
+ if (x <= M) return 1 / 0;
+ var g = Nm.NEIGHBORCOST * (C ? Nm.SAMELEVELFACTOR : 1);
+ d += g / (x - M);
+ }
+ return d;
+ }
+ jv.addLabelData = function(e, t, r, n) {
+ var i = t.fontSize, a = t.width + i / 3, o = Math.max(0, t.height - i / 3), s = e.x, l = e.y, u = e.theta, c = Math.sin(u), f = Math.cos(u), h = function(v, _) {
+ return [s + v * f - _ * c, l + v * c + _ * f];
+ }, d = [h(-a / 2, -o / 2), h(-a / 2, o / 2), h(a / 2, o / 2), h(a / 2, -o / 2)];
+ r.push({ text: t.text, x: s, y: l, dy: t.dy, theta: u, level: t.level, width: a, height: o }), n.push(d);
+ };
+ jv.drawLabels = function(e, t, r, n, i) {
+ var a = e.selectAll("text").data(t, function(u) {
+ return u.text + "," + u.x + "," + u.y + "," + u.theta;
+ });
+ if (a.exit().remove(), a.enter().append("text").attr({ "data-notex": 1, "text-anchor": "middle" }).each(function(u) {
+ var c = u.x + Math.sin(u.theta) * u.dy, f = u.y - Math.cos(u.theta) * u.dy;
+ V4.select(this).text(u.text).attr({ x: c, y: f, transform: "rotate(" + 180 * u.theta / Math.PI + " " + c + " " + f + ")" }).call(Cbe.convertToTspans, r);
+ }), i) {
+ for (var o = "", s = 0; s < i.length; s++) o += "M" + i[s].join("L") + "Z";
+ var l = Fd.ensureSingle(n, "path", "");
+ l.attr("d", o);
+ }
+ };
+ function Qbt(e, t, r, n, i) {
+ var a = n.trace, o = r._fullLayout._clips, s = "clip" + a.uid, l = o.selectAll("#" + s).data(a.connectgaps ? [] : [0]);
+ if (l.enter().append("clipPath").classed("contourclip", true).attr("id", s), l.exit().remove(), a.connectgaps === false) {
+ var u = { level: 0.9, crossings: {}, starts: [], edgepaths: [], paths: [], xaxis: t.xaxis, yaxis: t.yaxis, x: n.x, y: n.y, z: e2t(n), smoothing: 0 };
+ Lbe([u]), Pbe([u]), Ibe([u], { type: "levels" });
+ var c = Fd.ensureSingle(l, "path", "");
+ c.attr("d", (u.prefixBoundary ? "M" + i.join("L") + "Z" : "") + Rbe(u, i));
+ } else s = null;
+ jy.setClipUrl(e, s, r);
+ }
+ function e2t(e) {
+ var t = e.trace._emptypoints, r = [], n = e.z.length, i = e.z[0].length, a, o = [], s;
+ for (a = 0; a < i; a++) o.push(1);
+ for (a = 0; a < n; a++) r.push(o.slice());
+ for (a = 0; a < t.length; a++) s = t[a], r[s[0]][s[1]] = 0;
+ return e.zmask = r, r;
+ }
+ });
+ var PG = ye((Rcr, Dbe) => {
+ var t2t = Oa(), LG = tc(), r2t = q4();
+ Dbe.exports = function(t) {
+ var r = t.contours, n = r.start, i = r2t(r), a = r.size || 1, o = Math.floor((i - n) / a) + 1, s = r.coloring === "lines" ? 0 : 1, l = LG.extractOpts(t);
+ isFinite(a) || (a = 1, o = 1);
+ var u = l.reversescale ? LG.flipScale(l.colorscale) : l.colorscale, c = u.length, f = new Array(c), h = new Array(c), d, v, _ = l.min, b = l.max;
+ if (r.coloring === "heatmap") {
+ for (v = 0; v < c; v++) d = u[v], f[v] = d[0] * (b - _) + _, h[v] = d[1];
+ var p = t2t.extent([_, b, r.start, r.start + a * (o - 1)]), k = p[_ < b ? 0 : 1], E = p[_ < b ? 1 : 0];
+ k !== _ && (f.splice(0, 0, k), h.splice(0, 0, h[0])), E !== b && (f.push(E), h.push(h[h.length - 1]));
+ } else {
+ var T = t._input && typeof t._input.zmin == "number" && typeof t._input.zmax == "number";
+ for (T && (n <= _ || i >= b) && (n <= _ && (n = _), i >= b && (i = b), o = Math.floor((i - n) / a) + 1, s = 0), v = 0; v < c; v++) d = u[v], f[v] = (d[0] * (o + s - 1) - s / 2) * a + n, h[v] = d[1];
+ (T || t.autocontour) && (f[0] > _ && (f.unshift(_), h.unshift(h[0])), f[f.length - 1] < b && (f.push(b), h.push(h[h.length - 1])));
+ }
+ return LG.makeColorScaleFunc({ domain: f, range: h }, { noNumericCheck: true });
+ };
+ });
+ var D8 = ye((Dcr, zbe) => {
+ var R8 = Oa(), Fbe = So(), i2t = y8(), n2t = PG();
+ zbe.exports = function(t) {
+ var r = R8.select(t).selectAll("g.contour");
+ r.style("opacity", function(n) {
+ return n[0].trace.opacity;
+ }), r.each(function(n) {
+ var i = R8.select(this), a = n[0].trace, o = a.contours, s = a.line, l = o.size || 1, u = o.start, c = o.type === "constraint", f = !c && o.coloring === "lines", h = !c && o.coloring === "fill", d = f || h ? n2t(a) : null;
+ i.selectAll("g.contourlevel").each(function(b) {
+ R8.select(this).selectAll("path").call(Fbe.lineGroupStyle, s.width, f ? d(b.level) : s.color, s.dash);
+ });
+ var v = o.labelfont;
+ if (i.selectAll("g.contourlabels text").each(function(b) {
+ Fbe.font(R8.select(this), { weight: v.weight, style: v.style, variant: v.variant, textcase: v.textcase, lineposition: v.lineposition, shadow: v.shadow, family: v.family, size: v.size, color: v.color || (f ? d(b.level) : s.color) });
+ }), c) i.selectAll("g.contourfill path").style("fill", a.fillcolor);
+ else if (h) {
+ var _;
+ i.selectAll("g.contourfill path").style("fill", function(b) {
+ return _ === void 0 && (_ = b.level), d(b.level + 0.5 * l);
+ }), _ === void 0 && (_ = u), i.selectAll("g.contourbg path").style("fill", d(_ - 0.5 * l));
+ }
+ }), i2t(t);
+ };
+ });
+ var F8 = ye((Fcr, qbe) => {
+ var Obe = tc(), a2t = PG(), o2t = q4();
+ function s2t(e, t, r) {
+ var n = t.contours, i = t.line, a = n.size || 1, o = n.coloring, s = a2t(t, { isColorbar: true });
+ if (o === "heatmap") {
+ var l = Obe.extractOpts(t);
+ r._fillgradient = l.reversescale ? Obe.flipScale(l.colorscale) : l.colorscale, r._zrange = [l.min, l.max];
+ } else o === "fill" && (r._fillcolor = s);
+ r._line = { color: o === "lines" ? s : i.color, width: n.showlines !== false ? i.width : 0, dash: i.dash }, r._levels = { start: n.start, end: o2t(n), size: a };
+ }
+ qbe.exports = { min: "zmin", max: "zmax", calc: s2t };
+ });
+ var IG = ye((zcr, Bbe) => {
+ var z8 = ka(), l2t = x8();
+ Bbe.exports = function(t, r, n, i, a) {
+ a || (a = {}), a.isContour = true;
+ var o = l2t(t, r, n, i, a);
+ return o && o.forEach(function(s) {
+ var l = s.trace;
+ l.contours.type === "constraint" && (l.fillcolor && z8.opacity(l.fillcolor) ? s.color = z8.addOpacity(l.fillcolor, 1) : l.contours.showlines && z8.opacity(l.line.color) && (s.color = z8.addOpacity(l.line.color, 1)));
+ }), o;
+ };
+ });
+ var Ube = ye((Ocr, Nbe) => {
+ Nbe.exports = { attributes: mG(), supplyDefaults: sbe(), crossTraceDefaults: T8(), calc: wG(), plot: I8().plot, layerName: "contourlayer", style: D8(), colorbar: F8(), hoverPoints: IG(), moduleType: "trace", name: "histogram2dcontour", basePlotModule: mh(), categories: ["cartesian", "svg", "2dMap", "contour", "histogram", "showLegend"], meta: {} };
+ });
+ var Gbe = ye((qcr, Vbe) => {
+ Vbe.exports = Ube();
+ });
+ var RG = ye((Bcr, Ybe) => {
+ var Hbe = Eo(), u2t = yG(), Xbe = ka(), jbe = Xbe.addOpacity, c2t = Xbe.opacity, Zbe = M8(), Wbe = Dr().isArrayOrTypedArray, f2t = Zbe.CONSTRAINT_REDUCTION, h2t = Zbe.COMPARISON_OPS2;
+ Ybe.exports = function(t, r, n, i, a, o) {
+ var s = r.contours, l, u, c, f = n("contours.operation");
+ if (s._operation = f2t[f], d2t(n, s), f === "=" ? l = s.showlines = true : (l = n("contours.showlines"), c = n("fillcolor", jbe((t.line || {}).color || a, 0.5))), l) {
+ var h = c && c2t(c) ? jbe(r.fillcolor, 1) : a;
+ u = n("line.color", h), n("line.width", 2), n("line.dash");
+ }
+ n("line.smoothing"), u2t(n, i, u, o);
+ };
+ function d2t(e, t) {
+ var r;
+ h2t.indexOf(t.operation) === -1 ? (e("contours.value", [0, 1]), Wbe(t.value) ? t.value.length > 2 ? t.value = t.value.slice(2) : t.length === 0 ? t.value = [0, 1] : t.length < 2 ? (r = parseFloat(t.value[0]), t.value = [r, r + 1]) : t.value = [parseFloat(t.value[0]), parseFloat(t.value[1])] : Hbe(t.value) && (r = parseFloat(t.value), t.value = [r, r + 1])) : (e("contours.value", 0), Hbe(t.value) || (Wbe(t.value) ? t.value = parseFloat(t.value[0]) : t.value = 0));
+ }
+ });
+ var $be = ye((Ncr, Jbe) => {
+ var DG = Dr(), v2t = n8(), p2t = Dg(), g2t = RG(), m2t = k8(), y2t = C8(), _2t = I4(), Kbe = O4();
+ Jbe.exports = function(t, r, n, i) {
+ function a(u, c) {
+ return DG.coerce(t, r, Kbe, u, c);
+ }
+ function o(u) {
+ return DG.coerce2(t, r, Kbe, u);
+ }
+ var s = v2t(t, r, a, i);
+ if (!s) {
+ r.visible = false;
+ return;
+ }
+ p2t(t, r, i, a), a("xhoverformat"), a("yhoverformat"), a("text"), a("hovertext"), a("hoverongaps"), a("hovertemplate"), a("hovertemplatefallback");
+ var l = a("contours.type") === "constraint";
+ a("connectgaps", DG.isArray1D(r.z)), l ? g2t(t, r, a, i, n) : (m2t(t, r, a, o), y2t(t, r, a, i)), r.contours && r.contours.coloring === "heatmap" && _2t(a, i), a("zorder");
+ };
+ });
+ var e2e = ye((Ucr, Qbe) => {
+ Qbe.exports = { attributes: O4(), supplyDefaults: $be(), calc: wG(), plot: I8().plot, style: D8(), colorbar: F8(), hoverPoints: IG(), moduleType: "trace", name: "contour", basePlotModule: mh(), categories: ["cartesian", "svg", "2dMap", "contour", "showLegend"], meta: {} };
+ });
+ var r2e = ye((Vcr, t2e) => {
+ t2e.exports = e2e();
+ });
+ var FG = ye((Gcr, o2e) => {
+ var { hovertemplateAttrs: x2t, texttemplateAttrs: b2t, templatefallbackAttrs: i2e } = Ll(), w2t = Pg(), o0 = pf(), T2t = Gl(), n2e = Tu(), A2t = Pd().dash, F_ = Ao().extendFlat, X0 = o0.marker, G4 = o0.line, a2e = X0.line;
+ o2e.exports = { a: { valType: "data_array", editType: "calc" }, b: { valType: "data_array", editType: "calc" }, c: { valType: "data_array", editType: "calc" }, sum: { valType: "number", dflt: 0, min: 0, editType: "calc" }, mode: F_({}, o0.mode, { dflt: "markers" }), text: F_({}, o0.text, {}), texttemplate: b2t({ editType: "plot" }, { keys: ["a", "b", "c", "text"] }), texttemplatefallback: i2e({ editType: "plot" }), hovertext: F_({}, o0.hovertext, {}), line: { color: G4.color, width: G4.width, dash: A2t, backoff: G4.backoff, shape: F_({}, G4.shape, { values: ["linear", "spline"] }), smoothing: G4.smoothing, editType: "calc" }, connectgaps: o0.connectgaps, cliponaxis: o0.cliponaxis, fill: F_({}, o0.fill, { values: ["none", "toself", "tonext"], dflt: "none" }), fillcolor: w2t(), marker: F_({ symbol: X0.symbol, opacity: X0.opacity, angle: X0.angle, angleref: X0.angleref, standoff: X0.standoff, maxdisplayed: X0.maxdisplayed, size: X0.size, sizeref: X0.sizeref, sizemin: X0.sizemin, sizemode: X0.sizemode, line: F_({ width: a2e.width, dash: a2e.dash, editType: "calc" }, n2e("marker.line")), gradient: X0.gradient, editType: "calc" }, n2e("marker")), textfont: o0.textfont, textposition: o0.textposition, selected: o0.selected, unselected: o0.unselected, hoverinfo: F_({}, T2t.hoverinfo, { flags: ["a", "b", "c", "text", "name"] }), hoveron: o0.hoveron, hovertemplate: x2t(), hovertemplatefallback: i2e() };
+ });
+ var c2e = ye((Hcr, u2e) => {
+ var s2e = Dr(), S2t = Lm(), GT = Ru(), M2t = $p(), E2t = D0(), l2e = sT(), k2t = F0(), C2t = Fg(), L2t = FG();
+ u2e.exports = function(t, r, n, i) {
+ function a(h, d) {
+ return s2e.coerce(t, r, L2t, h, d);
+ }
+ var o = a("a"), s = a("b"), l = a("c"), u;
+ if (o ? (u = o.length, s ? (u = Math.min(u, s.length), l && (u = Math.min(u, l.length))) : l ? u = Math.min(u, l.length) : u = 0) : s && l && (u = Math.min(s.length, l.length)), !u) {
+ r.visible = false;
+ return;
+ }
+ r._length = u, a("sum"), a("text"), a("hovertext"), r.hoveron !== "fills" && (a("hovertemplate"), a("hovertemplatefallback"));
+ var c = u < S2t.PTS_LINESONLY ? "lines+markers" : "lines";
+ a("mode", c), GT.hasMarkers(r) && M2t(t, r, n, i, a, { gradient: true }), GT.hasLines(r) && (E2t(t, r, n, i, a, { backoff: true }), l2e(t, r, a), a("connectgaps")), GT.hasText(r) && (a("texttemplate"), a("texttemplatefallback"), k2t(t, r, i, a));
+ var f = [];
+ (GT.hasMarkers(r) || GT.hasText(r)) && (a("cliponaxis"), a("marker.maxdisplayed"), f.push("points")), a("fill"), r.fill !== "none" && (C2t(t, r, n, a), GT.hasLines(r) || l2e(t, r, a)), (r.fill === "tonext" || r.fill === "toself") && f.push("fills"), a("hoveron", f.join("+") || "points"), s2e.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var h2e = ye((jcr, f2e) => {
+ var zG = ho();
+ f2e.exports = function(t, r, n) {
+ var i = {}, a = n[r.subplot]._subplot;
+ return i.aLabel = zG.tickText(a.aaxis, t.a, true).text, i.bLabel = zG.tickText(a.baxis, t.b, true).text, i.cLabel = zG.tickText(a.caxis, t.c, true).text, i;
+ };
+ });
+ var g2e = ye((Wcr, p2e) => {
+ var OG = Eo(), P2t = z0(), I2t = Rm(), R2t = O0(), D2t = q0().calcMarkerSize, d2e = ["a", "b", "c"], v2e = { a: ["b", "c"], b: ["a", "c"], c: ["a", "b"] };
+ p2e.exports = function(t, r) {
+ var n = t._fullLayout[r.subplot], i = n.sum, a = r.sum || i, o = { a: r.a, b: r.b, c: r.c }, s = r.ids, l, u, c, f, h, d;
+ for (l = 0; l < d2e.length; l++) if (c = d2e[l], !o[c]) {
+ for (h = o[v2e[c][0]], d = o[v2e[c][1]], f = new Array(h.length), u = 0; u < h.length; u++) f[u] = a - h[u] - d[u];
+ o[c] = f;
+ }
+ var v = r._length, _ = new Array(v), b, p, k, E, T, L;
+ for (l = 0; l < v; l++) b = o.a[l], p = o.b[l], k = o.c[l], OG(b) && OG(p) && OG(k) ? (b = +b, p = +p, k = +k, E = i / (b + p + k), E !== 1 && (b *= E, p *= E, k *= E), L = b, T = k - p, _[l] = { x: T, y: L, a: b, b: p, c: k }, s && (_[l].id = s[l])) : _[l] = { x: false, y: false };
+ return D2t(r, v), P2t(t, r), I2t(_, r), R2t(_, r), _;
+ };
+ });
+ var y2e = ye((Xcr, m2e) => {
+ var F2t = dT();
+ m2e.exports = function(t, r, n) {
+ var i = r.plotContainer;
+ i.select(".scatterlayer").selectAll("*").remove();
+ for (var a = r.xaxis, o = r.yaxis, s = { xaxis: a, yaxis: o, plot: i, layerClipId: r._hasClipOnAxisFalse ? r.clipIdRelative : null }, l = r.layers.frontplot.select("g.scatterlayer"), u = 0; u < n.length; u++) {
+ var c = n[u];
+ c.length && (c[0].trace._xA = a, c[0].trace._yA = o);
+ }
+ F2t(t, s, n, l);
+ };
+ });
+ var x2e = ye((Zcr, _2e) => {
+ var z2t = mT();
+ _2e.exports = function(t, r, n, i) {
+ var a = z2t(t, r, n, i);
+ if (!a || a[0].index === false) return;
+ var o = a[0];
+ if (o.index === void 0) {
+ var s = 1 - o.y0 / t.ya._length, l = t.xa._length, u = l * s / 2, c = l - u;
+ return o.x0 = Math.max(Math.min(o.x0, c), u), o.x1 = Math.max(Math.min(o.x1, c), u), a;
+ }
+ var f = o.cd[o.index], h = o.trace, d = o.subplot;
+ o.a = f.a, o.b = f.b, o.c = f.c, o.xLabelVal = void 0, o.yLabelVal = void 0;
+ var v = {};
+ v[h.subplot] = { _subplot: d };
+ var _ = h._module.formatLabels(f, h, v);
+ o.aLabel = _.aLabel, o.bLabel = _.bLabel, o.cLabel = _.cLabel;
+ var b = f.hi || h.hoverinfo, p = [];
+ function k(T, L) {
+ p.push(T._hovertitle + ": " + L);
+ }
+ if (!h.hovertemplate) {
+ var E = b.split("+");
+ E.indexOf("all") !== -1 && (E = ["a", "b", "c"]), E.indexOf("a") !== -1 && k(d.aaxis, o.aLabel), E.indexOf("b") !== -1 && k(d.baxis, o.bLabel), E.indexOf("c") !== -1 && k(d.caxis, o.cLabel);
+ }
+ return o.extraText = p.join(" "), o.hovertemplate = h.hovertemplate, a;
+ };
+ });
+ var w2e = ye((Ycr, b2e) => {
+ b2e.exports = function(t, r, n, i, a) {
+ if (r.xa && (t.xaxis = r.xa), r.ya && (t.yaxis = r.ya), i[a]) {
+ var o = i[a];
+ t.a = o.a, t.b = o.b, t.c = o.c;
+ } else t.a = r.a, t.b = r.b, t.c = r.c;
+ return t;
+ };
+ });
+ var R2e = ye((Kcr, I2e) => {
+ var k2e = Oa(), O2t = fd(), qG = qa(), Wy = Dr(), Um = Wy.strTranslate, O8 = Wy._, jT = ka(), q8 = So(), H4 = xm(), BG = Ao().extendFlat, q2t = Mc(), z_ = ho(), T2e = yv(), A2e = vf(), C2e = Cg(), S2e = C2e.freeMode, B2t = C2e.rectMode, NG = zb(), N2t = Of().prepSelect, U2t = Of().selectOnClick, V2t = Of().clearOutline, G2t = Of().clearSelectionsCache, L2e = Rh();
+ function P2e(e, t) {
+ this.id = e.id, this.graphDiv = e.graphDiv, this.init(t), this.makeFramework(t), this.updateFx(t), this.aTickLayout = null, this.bTickLayout = null, this.cTickLayout = null;
+ }
+ I2e.exports = P2e;
+ var Vm = P2e.prototype;
+ Vm.init = function(e) {
+ this.container = e._ternarylayer, this.defs = e._defs, this.layoutId = e._uid, this.traceHash = {}, this.layers = {};
+ };
+ Vm.plot = function(e, t) {
+ var r = this, n = t[r.id], i = t._size;
+ r._hasClipOnAxisFalse = false;
+ for (var a = 0; a < e.length; a++) {
+ var o = e[a][0].trace;
+ if (o.cliponaxis === false) {
+ r._hasClipOnAxisFalse = true;
+ break;
+ }
+ }
+ r.updateLayers(n), r.adjustLayout(n, i), q2t.generalUpdatePerTraceModule(r.graphDiv, r, e, n), r.layers.plotbg.select("path").call(jT.fill, n.bgcolor);
+ };
+ Vm.makeFramework = function(e) {
+ var t = this, r = t.graphDiv, n = e[t.id], i = t.clipId = "clip" + t.layoutId + t.id, a = t.clipIdRelative = "clip-relative" + t.layoutId + t.id;
+ t.clipDef = Wy.ensureSingleById(e._clips, "clipPath", i, function(o) {
+ o.append("path").attr("d", "M0,0Z");
+ }), t.clipDefRelative = Wy.ensureSingleById(e._clips, "clipPath", a, function(o) {
+ o.append("path").attr("d", "M0,0Z");
+ }), t.plotContainer = Wy.ensureSingle(t.container, "g", t.id), t.updateLayers(n), q8.setClipUrl(t.layers.backplot, i, r), q8.setClipUrl(t.layers.grids, i, r);
+ };
+ Vm.updateFx = function(e) {
+ e._ternarylayer.selectAll("g.toplevel").style("cursor", e.dragmode === "pan" ? "move" : "crosshair");
+ };
+ Vm.updateLayers = function(e) {
+ var t = this, r = t.layers, n = ["draglayer", "plotbg", "backplot", "grids"];
+ e.aaxis.layer === "below traces" && n.push("aaxis", "aline"), e.baxis.layer === "below traces" && n.push("baxis", "bline"), e.caxis.layer === "below traces" && n.push("caxis", "cline"), n.push("frontplot"), e.aaxis.layer === "above traces" && n.push("aaxis", "aline"), e.baxis.layer === "above traces" && n.push("baxis", "bline"), e.caxis.layer === "above traces" && n.push("caxis", "cline");
+ var i = t.plotContainer.selectAll("g.toplevel").data(n, String), a = ["agrid", "bgrid", "cgrid"];
+ i.enter().append("g").attr("class", function(o) {
+ return "toplevel " + o;
+ }).each(function(o) {
+ var s = k2e.select(this);
+ r[o] = s, o === "frontplot" ? s.append("g").classed("scatterlayer", true) : o === "backplot" ? s.append("g").classed("maplayer", true) : o === "plotbg" ? s.append("path").attr("d", "M0,0Z") : o === "aline" || o === "bline" || o === "cline" ? s.append("path") : o === "grids" && a.forEach(function(l) {
+ r[l] = s.append("g").classed("grid " + l, true);
+ });
+ }), i.order();
+ };
+ var HT = Math.sqrt(4 / 3);
+ Vm.adjustLayout = function(e, t) {
+ var r = this, n = e.domain, i = (n.x[0] + n.x[1]) / 2, a = (n.y[0] + n.y[1]) / 2, o = n.x[1] - n.x[0], s = n.y[1] - n.y[0], l = o * t.w, u = s * t.h, c = e.sum, f = e.aaxis.min, h = e.baxis.min, d = e.caxis.min, v, _, b, p, k, E;
+ l > HT * u ? (p = u, b = p * HT) : (b = l, p = b / HT), k = o * b / l, E = s * p / u, v = t.l + t.w * i - b / 2, _ = t.t + t.h * (1 - a) - p / 2, r.x0 = v, r.y0 = _, r.w = b, r.h = p, r.sum = c, r.xaxis = { type: "linear", range: [f + 2 * d - c, c - f - 2 * h], domain: [i - k / 2, i + k / 2], _id: "x" }, H4(r.xaxis, r.graphDiv._fullLayout), r.xaxis.setScale(), r.xaxis.isPtWithinRange = function(U) {
+ return U.a >= r.aaxis.range[0] && U.a <= r.aaxis.range[1] && U.b >= r.baxis.range[1] && U.b <= r.baxis.range[0] && U.c >= r.caxis.range[1] && U.c <= r.caxis.range[0];
+ }, r.yaxis = { type: "linear", range: [f, c - h - d], domain: [a - E / 2, a + E / 2], _id: "y" }, H4(r.yaxis, r.graphDiv._fullLayout), r.yaxis.setScale(), r.yaxis.isPtWithinRange = function() {
+ return true;
+ };
+ var T = r.yaxis.domain[0], L = r.aaxis = BG({}, e.aaxis, { range: [f, c - h - d], side: "left", tickangle: (+e.aaxis.tickangle || 0) - 30, domain: [T, T + E * HT], anchor: "free", position: 0, _id: "y", _length: b });
+ H4(L, r.graphDiv._fullLayout), L.setScale();
+ var x = r.baxis = BG({}, e.baxis, { range: [c - f - d, h], side: "bottom", domain: r.xaxis.domain, anchor: "free", position: 0, _id: "x", _length: b });
+ H4(x, r.graphDiv._fullLayout), x.setScale();
+ var C = r.caxis = BG({}, e.caxis, { range: [c - f - h, d], side: "right", tickangle: (+e.caxis.tickangle || 0) + 30, domain: [T, T + E * HT], anchor: "free", position: 0, _id: "y", _length: b });
+ H4(C, r.graphDiv._fullLayout), C.setScale();
+ var M = "M" + v + "," + (_ + p) + "h" + b + "l-" + b / 2 + ",-" + p + "Z";
+ r.clipDef.select("path").attr("d", M), r.layers.plotbg.select("path").attr("d", M);
+ var g = "M0," + p + "h" + b + "l-" + b / 2 + ",-" + p + "Z";
+ r.clipDefRelative.select("path").attr("d", g);
+ var P = Um(v, _);
+ r.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform", P), r.clipDefRelative.select("path").attr("transform", null);
+ var A = Um(v - x._offset, _ + p);
+ r.layers.baxis.attr("transform", A), r.layers.bgrid.attr("transform", A);
+ var z = Um(v + b / 2, _) + "rotate(30)" + Um(0, -L._offset);
+ r.layers.aaxis.attr("transform", z), r.layers.agrid.attr("transform", z);
+ var O = Um(v + b / 2, _) + "rotate(-30)" + Um(0, -C._offset);
+ r.layers.caxis.attr("transform", O), r.layers.cgrid.attr("transform", O), r.drawAxes(true), r.layers.aline.select("path").attr("d", L.showline ? "M" + v + "," + (_ + p) + "l" + b / 2 + ",-" + p : "M0,0").call(jT.stroke, L.linecolor || "#000").style("stroke-width", (L.linewidth || 0) + "px"), r.layers.bline.select("path").attr("d", x.showline ? "M" + v + "," + (_ + p) + "h" + b : "M0,0").call(jT.stroke, x.linecolor || "#000").style("stroke-width", (x.linewidth || 0) + "px"), r.layers.cline.select("path").attr("d", C.showline ? "M" + (v + b / 2) + "," + _ + "l" + b / 2 + "," + p : "M0,0").call(jT.stroke, C.linecolor || "#000").style("stroke-width", (C.linewidth || 0) + "px"), r.graphDiv._context.staticPlot || r.initInteractions(), q8.setClipUrl(r.layers.frontplot, r._hasClipOnAxisFalse ? null : r.clipId, r.graphDiv);
+ };
+ Vm.drawAxes = function(e) {
+ var t = this, r = t.graphDiv, n = t.id.slice(7) + "title", i = t.layers, a = t.aaxis, o = t.baxis, s = t.caxis;
+ if (t.drawAx(a), t.drawAx(o), t.drawAx(s), e) {
+ var l = Math.max(a.showticklabels ? a.tickfont.size / 2 : 0, (s.showticklabels ? s.tickfont.size * 0.75 : 0) + (s.ticks === "outside" ? s.ticklen * 0.87 : 0)), u = (o.showticklabels ? o.tickfont.size : 0) + (o.ticks === "outside" ? o.ticklen : 0) + 3;
+ i["a-title"] = NG.draw(r, "a" + n, { propContainer: a, propName: t.id + ".aaxis.title.text", placeholder: O8(r, "Click to enter Component A title"), attributes: { x: t.x0 + t.w / 2, y: t.y0 - a.title.font.size / 3 - l, "text-anchor": "middle" } }), i["b-title"] = NG.draw(r, "b" + n, { propContainer: o, propName: t.id + ".baxis.title.text", placeholder: O8(r, "Click to enter Component B title"), attributes: { x: t.x0 - u, y: t.y0 + t.h + o.title.font.size * 0.83 + u, "text-anchor": "middle" } }), i["c-title"] = NG.draw(r, "c" + n, { propContainer: s, propName: t.id + ".caxis.title.text", placeholder: O8(r, "Click to enter Component C title"), attributes: { x: t.x0 + t.w + u, y: t.y0 + t.h + s.title.font.size * 0.83 + u, "text-anchor": "middle" } });
+ }
+ };
+ Vm.drawAx = function(e) {
+ var t = this, r = t.graphDiv, n = e._name, i = n.charAt(0), a = e._id, o = t.layers[n], s = 30, l = i + "tickLayout", u = H2t(e);
+ t[l] !== u && (o.selectAll("." + a + "tick").remove(), t[l] = u), e.setScale();
+ var c = z_.calcTicks(e), f = z_.clipEnds(e, c), h = z_.makeTransTickFn(e), d = z_.getTickSigns(e)[2], v = Wy.deg2rad(s), _ = d * (e.linewidth || 1) / 2, b = d * e.ticklen, p = t.w, k = t.h, E = i === "b" ? "M0," + _ + "l" + Math.sin(v) * b + "," + Math.cos(v) * b : "M" + _ + ",0l" + Math.cos(v) * b + "," + -Math.sin(v) * b, T = { a: "M0,0l" + k + ",-" + p / 2, b: "M0,0l-" + p / 2 + ",-" + k, c: "M0,0l-" + k + "," + p / 2 }[i];
+ z_.drawTicks(r, e, { vals: e.ticks === "inside" ? f : c, layer: o, path: E, transFn: h, crisp: false }), z_.drawGrid(r, e, { vals: f, layer: t.layers[i + "grid"], path: T, transFn: h, crisp: false }), z_.drawLabels(r, e, { vals: c, layer: o, transFn: h, labelFns: z_.makeLabelFns(e, 0, s) });
+ };
+ function H2t(e) {
+ return e.ticks + String(e.ticklen) + String(e.showticklabels);
+ }
+ var yd = L2e.MINZOOM / 2 + 0.87, j2t = "m-0.87,.5h" + yd + "v3h-" + (yd + 5.2) + "l" + (yd / 2 + 2.6) + ",-" + (yd * 0.87 + 4.5) + "l2.6,1.5l-" + yd / 2 + "," + yd * 0.87 + "Z", W2t = "m0.87,.5h-" + yd + "v3h" + (yd + 5.2) + "l-" + (yd / 2 + 2.6) + ",-" + (yd * 0.87 + 4.5) + "l-2.6,1.5l" + yd / 2 + "," + yd * 0.87 + "Z", X2t = "m0,1l" + yd / 2 + "," + yd * 0.87 + "l2.6,-1.5l-" + (yd / 2 + 2.6) + ",-" + (yd * 0.87 + 4.5) + "l-" + (yd / 2 + 2.6) + "," + (yd * 0.87 + 4.5) + "l2.6,1.5l" + yd / 2 + ",-" + yd * 0.87 + "Z", Z2t = "m0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z", M2e = true;
+ Vm.clearOutline = function() {
+ G2t(this.dragOptions), V2t(this.dragOptions.gd);
+ };
+ Vm.initInteractions = function() {
+ var e = this, t = e.layers.plotbg.select("path").node(), r = e.graphDiv, n = r._fullLayout._zoomlayer, i, a;
+ this.dragOptions = { element: t, gd: r, plotinfo: { id: e.id, domain: r._fullLayout[e.id].domain, xaxis: e.xaxis, yaxis: e.yaxis }, subplot: e.id, prepFn: function(A, z, O) {
+ e.dragOptions.xaxes = [e.xaxis], e.dragOptions.yaxes = [e.yaxis], i = r._fullLayout._invScaleX, a = r._fullLayout._invScaleY;
+ var U = e.dragOptions.dragmode = r._fullLayout.dragmode;
+ S2e(U) ? e.dragOptions.minDrag = 1 : e.dragOptions.minDrag = void 0, U === "zoom" ? (e.dragOptions.moveFn = x, e.dragOptions.clickFn = p, e.dragOptions.doneFn = C, k(A, z, O)) : U === "pan" ? (e.dragOptions.moveFn = g, e.dragOptions.clickFn = p, e.dragOptions.doneFn = P, M(), e.clearOutline(r)) : (B2t(U) || S2e(U)) && N2t(A, z, O, e.dragOptions, U);
+ } };
+ var o, s, l, u, c, f, h, d, v, _;
+ function b(A) {
+ var z = {};
+ return z[e.id + ".aaxis.min"] = A.a, z[e.id + ".baxis.min"] = A.b, z[e.id + ".caxis.min"] = A.c, z;
+ }
+ function p(A, z) {
+ var O = r._fullLayout.clickmode;
+ E2e(r), A === 2 && (r.emit("plotly_doubleclick", null), qG.call("_guiRelayout", r, b({ a: 0, b: 0, c: 0 }))), O.indexOf("select") > -1 && A === 1 && U2t(z, r, [e.xaxis], [e.yaxis], e.id, e.dragOptions), O.indexOf("event") > -1 && A2e.click(r, z, e.id);
+ }
+ function k(A, z, O) {
+ var U = t.getBoundingClientRect();
+ o = z - U.left, s = O - U.top, r._fullLayout._calcInverseTransform(r);
+ var G = r._fullLayout._invTransform, Z = Wy.apply3DTransform(G)(o, s);
+ o = Z[0], s = Z[1], l = { a: e.aaxis.range[0], b: e.baxis.range[1], c: e.caxis.range[1] }, c = l, u = e.aaxis.range[1] - l.a, f = O2t(e.graphDiv._fullLayout[e.id].bgcolor).getLuminance(), h = "M0," + e.h + "L" + e.w / 2 + ", 0L" + e.w + "," + e.h + "Z", d = false, v = n.append("path").attr("class", "zoombox").attr("transform", Um(e.x0, e.y0)).style({ fill: f > 0.2 ? "rgba(0,0,0,0)" : "rgba(255,255,255,0)", "stroke-width": 0 }).attr("d", h), _ = n.append("path").attr("class", "zoombox-corners").attr("transform", Um(e.x0, e.y0)).style({ fill: jT.background, stroke: jT.defaultLine, "stroke-width": 1, opacity: 0 }).attr("d", "M0,0Z"), e.clearOutline(r);
+ }
+ function E(A, z) {
+ return 1 - z / e.h;
+ }
+ function T(A, z) {
+ return 1 - (A + (e.h - z) / Math.sqrt(3)) / e.w;
+ }
+ function L(A, z) {
+ return (A - (e.h - z) / Math.sqrt(3)) / e.w;
+ }
+ function x(A, z) {
+ var O = o + A * i, U = s + z * a, G = Math.max(0, Math.min(1, E(o, s), E(O, U))), Z = Math.max(0, Math.min(1, T(o, s), T(O, U))), j = Math.max(0, Math.min(1, L(o, s), L(O, U))), N = (G / 2 + j) * e.w, H = (1 - G / 2 - Z) * e.w, re = (N + H) / 2, oe = H - N, _e = (1 - G) * e.h, Ce = _e - oe / HT;
+ oe < L2e.MINZOOM ? (c = l, v.attr("d", h), _.attr("d", "M0,0Z")) : (c = { a: l.a + G * u, b: l.b + Z * u, c: l.c + j * u }, v.attr("d", h + "M" + N + "," + _e + "H" + H + "L" + re + "," + Ce + "L" + N + "," + _e + "Z"), _.attr("d", "M" + o + "," + s + Z2t + "M" + N + "," + _e + j2t + "M" + H + "," + _e + W2t + "M" + re + "," + Ce + X2t)), d || (v.transition().style("fill", f > 0.2 ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.3)").duration(200), _.transition().style("opacity", 1).duration(200), d = true), r.emit("plotly_relayouting", b(c));
+ }
+ function C() {
+ E2e(r), c !== l && (qG.call("_guiRelayout", r, b(c)), M2e && r.data && r._context.showTips && (Wy.notifier(O8(r, "Double-click to zoom back out"), "long"), M2e = false));
+ }
+ function M() {
+ l = { a: e.aaxis.range[0], b: e.baxis.range[1], c: e.caxis.range[1] }, c = l;
+ }
+ function g(A, z) {
+ var O = A / e.xaxis._m, U = z / e.yaxis._m;
+ c = { a: l.a - U, b: l.b + (O + U) / 2, c: l.c - (O - U) / 2 };
+ var G = [c.a, c.b, c.c].sort(Wy.sorterAsc), Z = { a: G.indexOf(c.a), b: G.indexOf(c.b), c: G.indexOf(c.c) };
+ G[0] < 0 && (G[1] + G[0] / 2 < 0 ? (G[2] += G[0] + G[1], G[0] = G[1] = 0) : (G[2] += G[0] / 2, G[1] += G[0] / 2, G[0] = 0), c = { a: G[Z.a], b: G[Z.b], c: G[Z.c] }, z = (l.a - c.a) * e.yaxis._m, A = (l.c - c.c - l.b + c.b) * e.xaxis._m);
+ var j = Um(e.x0 + A, e.y0 + z);
+ e.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform", j);
+ var N = Um(-A, -z);
+ e.clipDefRelative.select("path").attr("transform", N), e.aaxis.range = [c.a, e.sum - c.b - c.c], e.baxis.range = [e.sum - c.a - c.c, c.b], e.caxis.range = [e.sum - c.a - c.b, c.c], e.drawAxes(false), e._hasClipOnAxisFalse && e.plotContainer.select(".scatterlayer").selectAll(".trace").call(q8.hideOutsideRangePoints, e), r.emit("plotly_relayouting", b(c));
+ }
+ function P() {
+ qG.call("_guiRelayout", r, b(c));
+ }
+ t.onmousemove = function(A) {
+ A2e.hover(r, A, e.id), r._fullLayout._lasthover = t, r._fullLayout._hoversubplot = e.id;
+ }, t.onmouseout = function(A) {
+ r._dragging || T2e.unhover(r, A);
+ }, T2e.init(this.dragOptions);
+ };
+ function E2e(e) {
+ k2e.select(e).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove();
+ }
+ });
+ var GG = ye((Jcr, D2e) => {
+ var Y2t = Ih(), K2t = Cc().attributes, su = Rd(), J2t = mc().overrideAll, UG = Ao().extendFlat, VG = { title: { text: su.title.text, font: su.title.font }, color: su.color, tickmode: su.minor.tickmode, nticks: UG({}, su.nticks, { dflt: 6, min: 1 }), tick0: su.tick0, dtick: su.dtick, tickvals: su.tickvals, ticktext: su.ticktext, ticks: su.ticks, ticklen: su.ticklen, tickwidth: su.tickwidth, tickcolor: su.tickcolor, ticklabelstep: su.ticklabelstep, showticklabels: su.showticklabels, labelalias: su.labelalias, showtickprefix: su.showtickprefix, tickprefix: su.tickprefix, showticksuffix: su.showticksuffix, ticksuffix: su.ticksuffix, showexponent: su.showexponent, exponentformat: su.exponentformat, minexponent: su.minexponent, separatethousands: su.separatethousands, tickfont: su.tickfont, tickangle: su.tickangle, tickformat: su.tickformat, tickformatstops: su.tickformatstops, hoverformat: su.hoverformat, showline: UG({}, su.showline, { dflt: true }), linecolor: su.linecolor, linewidth: su.linewidth, showgrid: UG({}, su.showgrid, { dflt: true }), gridcolor: su.gridcolor, gridwidth: su.gridwidth, griddash: su.griddash, layer: su.layer, min: { valType: "number", dflt: 0, min: 0 } }, B8 = D2e.exports = J2t({ domain: K2t({ name: "ternary" }), bgcolor: { valType: "color", dflt: Y2t.background }, sum: { valType: "number", dflt: 1, min: 0 }, aaxis: VG, baxis: VG, caxis: VG }, "plot", "from-root");
+ B8.uirevision = { valType: "any", editType: "none" };
+ B8.aaxis.uirevision = B8.baxis.uirevision = B8.caxis.uirevision = { valType: "any", editType: "none" };
+ });
+ var O_ = ye(($cr, F2e) => {
+ var $2t = Dr(), Q2t = vl(), ewt = Cc().defaults;
+ F2e.exports = function(t, r, n, i) {
+ var a = i.type, o = i.attributes, s = i.handleDefaults, l = i.partition || "x", u = r._subplots[a], c = u.length, f = c && u[0].replace(/\d+$/, ""), h, d;
+ function v(k, E) {
+ return $2t.coerce(h, d, o, k, E);
+ }
+ for (var _ = 0; _ < c; _++) {
+ var b = u[_];
+ t[b] ? h = t[b] : h = t[b] = {}, d = Q2t.newContainer(r, b, f), i.noUirevision || v("uirevision", r.uirevision);
+ var p = {};
+ p[l] = [_ / c, (_ + 1) / c], ewt(d, r, v, p), i.id = b, s(h, d, v, i);
+ }
+ };
+ });
+ var B2e = ye((Qcr, q2e) => {
+ var twt = ka(), rwt = vl(), N8 = Dr(), iwt = O_(), nwt = s_(), awt = l_(), owt = F3(), swt = Lb(), lwt = u4(), O2e = GG(), z2e = ["aaxis", "baxis", "caxis"];
+ q2e.exports = function(t, r, n) {
+ iwt(t, r, n, { type: "ternary", attributes: O2e, handleDefaults: uwt, font: r.font, paper_bgcolor: r.paper_bgcolor });
+ };
+ function uwt(e, t, r, n) {
+ var i = r("bgcolor"), a = r("sum");
+ n.bgColor = twt.combine(i, n.paper_bgcolor);
+ for (var o, s, l, u = 0; u < z2e.length; u++) o = z2e[u], s = e[o] || {}, l = rwt.newContainer(t, o), l._name = o, cwt(s, l, n, t);
+ var c = t.aaxis, f = t.baxis, h = t.caxis;
+ c.min + f.min + h.min >= a && (c.min = 0, f.min = 0, h.min = 0, e.aaxis && delete e.aaxis.min, e.baxis && delete e.baxis.min, e.caxis && delete e.caxis.min);
+ }
+ function cwt(e, t, r, n) {
+ var i = O2e[t._name];
+ function a(d, v) {
+ return N8.coerce(e, t, i, d, v);
+ }
+ a("uirevision", n.uirevision), t.type = "linear";
+ var o = a("color"), s = o !== i.color.dflt ? o : r.font.color, l = t._name, u = l.charAt(0).toUpperCase(), c = "Component " + u, f = a("title.text", c);
+ t._hovertitle = f === c ? f : u, N8.coerceFont(a, "title.font", r.font, { overrideDflt: { size: N8.bigFont(r.font.size), color: s } }), a("min"), swt(e, t, a, "linear"), awt(e, t, a, "linear"), nwt(e, t, a, "linear", { noAutotickangles: true, noTicklabelshift: true, noTicklabelstandoff: true }), owt(e, t, a, { outerTicks: true });
+ var h = a("showticklabels");
+ h && (N8.coerceFont(a, "tickfont", r.font, { overrideDflt: { color: s } }), a("tickangle"), a("tickformat")), lwt(e, t, a, { dfltColor: o, bgColor: r.bgColor, blend: 60, showLine: true, showGrid: true, noZeroLine: true, attributes: i }), a("hoverformat"), a("layer");
+ }
+ });
+ var N2e = ye((Z0) => {
+ var fwt = R2e(), hwt = Id().getSubplotCalcData, dwt = Dr().counterRegex, WT = "ternary";
+ Z0.name = WT;
+ var vwt = Z0.attr = "subplot";
+ Z0.idRoot = WT;
+ Z0.idRegex = Z0.attrRegex = dwt(WT);
+ var pwt = Z0.attributes = {};
+ pwt[vwt] = { valType: "subplotid", dflt: "ternary", editType: "calc" };
+ Z0.layoutAttributes = GG();
+ Z0.supplyLayoutDefaults = B2e();
+ Z0.plot = function(t) {
+ for (var r = t._fullLayout, n = t.calcdata, i = r._subplots[WT], a = 0; a < i.length; a++) {
+ var o = i[a], s = hwt(n, WT, o), l = r[o]._subplot;
+ l || (l = new fwt({ id: o, graphDiv: t, container: r._ternarylayer.node() }, r), r[o]._subplot = l), l.plot(s, r, t._promises);
+ }
+ };
+ Z0.clean = function(e, t, r, n) {
+ for (var i = n._subplots[WT] || [], a = 0; a < i.length; a++) {
+ var o = i[a], s = n[o]._subplot;
+ !t[o] && s && (s.plotContainer.remove(), s.clipDef.remove(), s.clipDefRelative.remove(), s.layers["a-title"].remove(), s.layers["b-title"].remove(), s.layers["c-title"].remove());
+ }
+ };
+ Z0.updateFx = function(e) {
+ var t = e._fullLayout;
+ t._ternarylayer.selectAll("g.toplevel").style("cursor", t.dragmode === "pan" ? "move" : "crosshair");
+ };
+ });
+ var V2e = ye((tfr, U2e) => {
+ U2e.exports = { attributes: FG(), supplyDefaults: c2e(), colorbar: $d(), formatLabels: h2e(), calc: g2e(), plot: y2e(), style: sp().style, styleOnSelect: sp().styleOnSelect, hoverPoints: x2e(), selectPoints: yT(), eventData: w2e(), moduleType: "trace", name: "scatterternary", basePlotModule: N2e(), categories: ["ternary", "symbols", "showLegend", "scatter-like"], meta: {} };
+ });
+ var H2e = ye((rfr, G2e) => {
+ G2e.exports = V2e();
+ });
+ var HG = ye((ifr, W2e) => {
+ var qh = k4(), XT = Ao().extendFlat, j2e = df().axisHoverFormat;
+ W2e.exports = { y: qh.y, x: qh.x, x0: qh.x0, y0: qh.y0, xhoverformat: j2e("x"), yhoverformat: j2e("y"), name: XT({}, qh.name, {}), orientation: XT({}, qh.orientation, {}), bandwidth: { valType: "number", min: 0, editType: "calc" }, scalegroup: { valType: "string", dflt: "", editType: "calc" }, scalemode: { valType: "enumerated", values: ["width", "count"], dflt: "width", editType: "calc" }, spanmode: { valType: "enumerated", values: ["soft", "hard", "manual"], dflt: "soft", editType: "calc" }, span: { valType: "info_array", items: [{ valType: "any", editType: "calc" }, { valType: "any", editType: "calc" }], editType: "calc" }, line: { color: { valType: "color", editType: "style" }, width: { valType: "number", min: 0, dflt: 2, editType: "style" }, editType: "plot" }, fillcolor: qh.fillcolor, points: XT({}, qh.boxpoints, {}), jitter: XT({}, qh.jitter, {}), pointpos: XT({}, qh.pointpos, {}), width: XT({}, qh.width, {}), marker: qh.marker, text: qh.text, hovertext: qh.hovertext, hovertemplate: qh.hovertemplate, hovertemplatefallback: qh.hovertemplatefallback, quartilemethod: qh.quartilemethod, box: { visible: { valType: "boolean", dflt: false, editType: "plot" }, width: { valType: "number", min: 0, max: 1, dflt: 0.25, editType: "plot" }, fillcolor: { valType: "color", editType: "style" }, line: { color: { valType: "color", editType: "style" }, width: { valType: "number", min: 0, editType: "style" }, editType: "style" }, editType: "plot" }, meanline: { visible: { valType: "boolean", dflt: false, editType: "plot" }, color: { valType: "color", editType: "style" }, width: { valType: "number", min: 0, editType: "style" }, editType: "plot" }, side: { valType: "enumerated", values: ["both", "positive", "negative"], dflt: "both", editType: "calc" }, offsetgroup: qh.offsetgroup, alignmentgroup: qh.alignmentgroup, selected: qh.selected, unselected: qh.unselected, hoveron: { valType: "flaglist", flags: ["violins", "points", "kde"], dflt: "violins+points+kde", extras: ["all"], editType: "style" }, zorder: qh.zorder };
+ });
+ var XG = ye((nfr, X2e) => {
+ var jG = C4(), WG = Dr().extendFlat;
+ X2e.exports = { violinmode: WG({}, jG.boxmode, {}), violingap: WG({}, jG.boxgap, {}), violingroupgap: WG({}, jG.boxgroupgap, {}) };
+ });
+ var $2e = ye((afr, J2e) => {
+ var Z2e = Dr(), gwt = ka(), Y2e = P4(), K2e = HG();
+ J2e.exports = function(t, r, n, i) {
+ function a(L, x) {
+ return Z2e.coerce(t, r, K2e, L, x);
+ }
+ function o(L, x) {
+ return Z2e.coerce2(t, r, K2e, L, x);
+ }
+ if (Y2e.handleSampleDefaults(t, r, a, i), r.visible !== false) {
+ a("bandwidth"), a("side");
+ var s = a("width");
+ s || (a("scalegroup", r.name), a("scalemode"));
+ var l = a("span"), u;
+ Array.isArray(l) && (u = "manual"), a("spanmode", u);
+ var c = a("line.color", (t.marker || {}).color || n), f = a("line.width"), h = a("fillcolor", gwt.addOpacity(r.line.color, 0.5));
+ Y2e.handlePointsDefaults(t, r, a, { prefix: "" });
+ var d = o("box.width"), v = o("box.fillcolor", h), _ = o("box.line.color", c), b = o("box.line.width", f), p = a("box.visible", !!(d || v || _ || b));
+ p || (r.box = { visible: false });
+ var k = o("meanline.color", c), E = o("meanline.width", f), T = a("meanline.visible", !!(k || E));
+ T || (r.meanline = { visible: false }), a("quartilemethod"), a("zorder");
+ }
+ };
+ });
+ var ewe = ye((ofr, Q2e) => {
+ var mwt = Dr(), ywt = XG(), _wt = $I();
+ Q2e.exports = function(t, r, n) {
+ function i(a, o) {
+ return mwt.coerce(t, r, ywt, a, o);
+ }
+ _wt._supply(t, r, n, i, "violin");
+ };
+ });
+ var U8 = ye((g2) => {
+ var xwt = Dr(), bwt = { gaussian: function(e) {
+ return 1 / Math.sqrt(2 * Math.PI) * Math.exp(-0.5 * e * e);
+ } };
+ g2.makeKDE = function(e, t, r) {
+ var n = r.length, i = bwt.gaussian, a = e.bandwidth, o = 1 / (n * a);
+ return function(s) {
+ for (var l = 0, u = 0; u < n; u++) l += i((s - r[u]) / a);
+ return o * l;
+ };
+ };
+ g2.getPositionOnKdePath = function(e, t, r) {
+ var n, i;
+ t.orientation === "h" ? (n = "y", i = "x") : (n = "x", i = "y");
+ var a = xwt.findPointOnPath(e.path, r, i, { pathLength: e.pathLength }), o = e.posCenterPx, s = a[n], l = t.side === "both" ? 2 * o - s : o;
+ return [s, l];
+ };
+ g2.getKdeValue = function(e, t, r) {
+ var n = e.pts.map(g2.extractVal), i = g2.makeKDE(e, t, n);
+ return i(r) / e.posDensityScale;
+ };
+ g2.extractVal = function(e) {
+ return e.v;
+ };
+ });
+ var iwe = ye((lfr, rwe) => {
+ var ZG = Dr(), YG = ho(), wwt = NV(), twe = U8(), Twt = fs().BADNUM;
+ rwe.exports = function(t, r) {
+ var n = wwt(t, r);
+ if (n[0].t.empty) return n;
+ for (var i = t._fullLayout, a = YG.getFromId(t, r[r.orientation === "h" ? "xaxis" : "yaxis"]), o = 1 / 0, s = -1 / 0, l = 0, u = 0, c = 0; c < n.length; c++) {
+ var f = n[c], h = f.pts.map(twe.extractVal), d = f.bandwidth = Swt(r, f, h), v = f.span = Mwt(r, f, a, d);
+ if (f.min === f.max && d === 0) v = f.span = [f.min, f.max], f.density = [{ v: 1, t: v[0] }], f.bandwidth = d, l = Math.max(l, 1);
+ else {
+ var _ = v[1] - v[0], b = Math.ceil(_ / (d / 3)), p = _ / b;
+ if (!isFinite(p) || !isFinite(b)) return ZG.error("Something went wrong with computing the violin span"), n[0].t.empty = true, n;
+ var k = twe.makeKDE(f, r, h);
+ f.density = new Array(b + 1);
+ for (var E = 0; E < f.density.length; E++) {
+ var T = v[0] + E * p, L = k(T);
+ f.density[E] = { v: L, t: T }, l = Math.max(l, L);
+ }
+ }
+ u = Math.max(u, h.length), o = Math.min(o, v[0]), s = Math.max(s, v[1]);
+ }
+ var x = YG.findExtremes(a, [o, s], { padded: true });
+ if (r._extremes[a._id] = x, r.width) n[0].t.maxKDE = l;
+ else {
+ var C = i._violinScaleGroupStats, M = r.scalegroup, g = C[M];
+ g ? (g.maxKDE = Math.max(g.maxKDE, l), g.maxCount = Math.max(g.maxCount, u)) : C[M] = { maxKDE: l, maxCount: u };
+ }
+ return n[0].t.labels.kde = ZG._(t, "kde:"), n;
+ };
+ function Awt(e, t, r) {
+ var n = Math.min(t, r / 1.349);
+ return 1.059 * n * Math.pow(e, -0.2);
+ }
+ function Swt(e, t, r) {
+ var n = t.max - t.min;
+ if (!n) return e.bandwidth ? e.bandwidth : 0;
+ if (e.bandwidth) return Math.max(e.bandwidth, n / 1e4);
+ var i = r.length, a = ZG.stdev(r, i - 1, t.mean);
+ return Math.max(Awt(i, a, t.q3 - t.q1), n / 100);
+ }
+ function Mwt(e, t, r, n) {
+ var i = e.spanmode, a = e.span || [], o = [t.min, t.max], s = [t.min - 2 * n, t.max + 2 * n], l;
+ function u(f) {
+ var h = a[f], d = r.type === "multicategory" ? r.r2c(h) : r.d2c(h, 0, e[t.valLetter + "calendar"]);
+ return d === Twt ? s[f] : d;
+ }
+ i === "soft" ? l = s : i === "hard" ? l = o : l = [u(0), u(1)];
+ var c = { type: "linear", range: l };
+ return YG.setConvert(c), c.cleanRange(), l;
+ }
+ });
+ var owe = ye((ufr, awe) => {
+ var Ewt = e8().setPositionOffset, nwe = ["v", "h"];
+ awe.exports = function(t, r) {
+ for (var n = t.calcdata, i = r.xaxis, a = r.yaxis, o = 0; o < nwe.length; o++) {
+ for (var s = nwe[o], l = s === "h" ? a : i, u = [], c = 0; c < n.length; c++) {
+ var f = n[c], h = f[0].t, d = f[0].trace;
+ d.visible === true && d.type === "violin" && !h.empty && d.orientation === s && d.xaxis === i._id && d.yaxis === a._id && u.push(c);
+ }
+ Ewt("violin", t, u, l);
+ }
+ };
+ });
+ var lwe = ye((cfr, swe) => {
+ var KG = Oa(), JG = Dr(), kwt = So(), $G = t8(), Cwt = AU(), Lwt = U8();
+ swe.exports = function(t, r, n, i) {
+ var a = t._context.staticPlot, o = t._fullLayout, s = r.xaxis, l = r.yaxis;
+ function u(c, f) {
+ var h = Cwt(c, { xaxis: s, yaxis: l, trace: f, connectGaps: true, baseTolerance: 0.75, shape: "spline", simplify: true, linearized: true });
+ return kwt.smoothopen(h[0], 1);
+ }
+ JG.makeTraceGroups(i, n, "trace violins").each(function(c) {
+ var f = KG.select(this), h = c[0], d = h.t, v = h.trace;
+ if (v.visible !== true || d.empty) {
+ f.remove();
+ return;
+ }
+ var _ = d.bPos, b = d.bdPos, p = r[d.valLetter + "axis"], k = r[d.posLetter + "axis"], E = v.side === "both", T = E || v.side === "positive", L = E || v.side === "negative", x = f.selectAll("path.violin").data(JG.identity);
+ x.enter().append("path").style("vector-effect", a ? "none" : "non-scaling-stroke").attr("class", "violin"), x.exit().remove(), x.each(function(U) {
+ var G = KG.select(this), Z = U.density, j = Z.length, N = k.c2l(U.pos + _, true), H = k.l2p(N), re;
+ if (v.width) re = d.maxKDE / b;
+ else {
+ var oe = o._violinScaleGroupStats[v.scalegroup];
+ re = v.scalemode === "count" ? oe.maxKDE / b * (oe.maxCount / U.pts.length) : oe.maxKDE / b;
+ }
+ var _e, Ce, Le, ge, ie, Se, Ee;
+ if (T) {
+ for (Se = new Array(j), ge = 0; ge < j; ge++) Ee = Se[ge] = {}, Ee[d.posLetter] = N + Z[ge].v / re, Ee[d.valLetter] = p.c2l(Z[ge].t, true);
+ _e = u(Se, v);
+ }
+ if (L) {
+ for (Se = new Array(j), ie = 0, ge = j - 1; ie < j; ie++, ge--) Ee = Se[ie] = {}, Ee[d.posLetter] = N - Z[ge].v / re, Ee[d.valLetter] = p.c2l(Z[ge].t, true);
+ Ce = u(Se, v);
+ }
+ if (E) Le = _e + "L" + Ce.slice(1) + "Z";
+ else {
+ var Ae = [H, p.c2p(Z[0].t)], Be = [H, p.c2p(Z[j - 1].t)];
+ v.orientation === "h" && (Ae.reverse(), Be.reverse()), T ? Le = "M" + Ae + "L" + _e.slice(1) + "L" + Be : Le = "M" + Be + "L" + Ce.slice(1) + "L" + Ae;
+ }
+ G.attr("d", Le), U.posCenterPx = H, U.posDensityScale = re * b, U.path = G.node(), U.pathLength = U.path.getTotalLength() / (E ? 2 : 1);
+ });
+ var C = v.box, M = C.width, g = (C.line || {}).width, P, A;
+ E ? (P = b * M, A = 0) : T ? (P = [0, b * M / 2], A = g * { x: 1, y: -1 }[d.posLetter]) : (P = [b * M / 2, 0], A = g * { x: -1, y: 1 }[d.posLetter]), $G.plotBoxAndWhiskers(f, { pos: k, val: p }, v, { bPos: _, bdPos: P, bPosPxOffset: A }), $G.plotBoxMean(f, { pos: k, val: p }, v, { bPos: _, bdPos: P, bPosPxOffset: A });
+ var z;
+ !v.box.visible && v.meanline.visible && (z = JG.identity);
+ var O = f.selectAll("path.meanline").data(z || []);
+ O.enter().append("path").attr("class", "meanline").style("fill", "none").style("vector-effect", a ? "none" : "non-scaling-stroke"), O.exit().remove(), O.each(function(U) {
+ var G = p.c2p(U.mean, true), Z = Lwt.getPositionOnKdePath(U, v, G);
+ KG.select(this).attr("d", v.orientation === "h" ? "M" + G + "," + Z[0] + "V" + Z[1] : "M" + Z[0] + "," + G + "H" + Z[1]);
+ }), $G.plotPoints(f, { x: s, y: l }, v, d);
+ });
+ };
+ });
+ var fwe = ye((ffr, cwe) => {
+ var uwe = Oa(), ZT = ka(), Pwt = sp().stylePoints;
+ cwe.exports = function(t) {
+ var r = uwe.select(t).selectAll("g.trace.violins");
+ r.style("opacity", function(n) {
+ return n[0].trace.opacity;
+ }), r.each(function(n) {
+ var i = n[0].trace, a = uwe.select(this), o = i.box || {}, s = o.line || {}, l = i.meanline || {}, u = l.width;
+ a.selectAll("path.violin").style("stroke-width", i.line.width + "px").call(ZT.stroke, i.line.color).call(ZT.fill, i.fillcolor), a.selectAll("path.box").style("stroke-width", s.width + "px").call(ZT.stroke, s.color).call(ZT.fill, o.fillcolor);
+ var c = { "stroke-width": u + "px", "stroke-dasharray": 2 * u + "px," + u + "px" };
+ a.selectAll("path.mean").style(c).call(ZT.stroke, l.color), a.selectAll("path.meanline").style(c).call(ZT.stroke, l.color), Pwt(a, i, t);
+ });
+ };
+ });
+ var pwe = ye((hfr, vwe) => {
+ var Iwt = ka(), QG = Dr(), Rwt = ho(), hwe = jV(), dwe = U8();
+ vwe.exports = function(t, r, n, i, a) {
+ a || (a = {});
+ var o = a.hoverLayer, s = t.cd, l = s[0].trace, u = l.hoveron, c = u.indexOf("violins") !== -1, f = u.indexOf("kde") !== -1, h = [], d, v;
+ if (c || f) {
+ var _ = hwe.hoverOnBoxes(t, r, n, i);
+ if (f && _.length > 0) {
+ var b = t.xa, p = t.ya, k, E, T, L, x;
+ l.orientation === "h" ? (x = r, k = "y", T = p, E = "x", L = b) : (x = n, k = "x", T = b, E = "y", L = p);
+ var C = s[t.index];
+ if (x >= C.span[0] && x <= C.span[1]) {
+ var M = QG.extendFlat({}, t), g = L.c2p(x, true), P = dwe.getKdeValue(C, l, x), A = dwe.getPositionOnKdePath(C, l, g), z = T._offset, O = T._length;
+ M[k + "0"] = A[0], M[k + "1"] = A[1], M[E + "0"] = M[E + "1"] = g, M[E + "Label"] = E + ": " + Rwt.hoverLabelText(L, x, l[E + "hoverformat"]) + ", " + s[0].t.labels.kde + " " + P.toFixed(3);
+ for (var U = 0, G = 0; G < _.length; G++) if (_[G].attr === "med") {
+ U = G;
+ break;
+ }
+ M.spikeDistance = _[U].spikeDistance;
+ var Z = k + "Spike";
+ M[Z] = _[U][Z], _[U].spikeDistance = void 0, _[U][Z] = void 0, M.hovertemplate = false, h.push(M), v = {}, v[k + "1"] = QG.constrain(z + A[0], z, z + O), v[k + "2"] = QG.constrain(z + A[1], z, z + O), v[E + "1"] = v[E + "2"] = L._offset + g;
+ }
+ }
+ c && (h = h.concat(_));
+ }
+ u.indexOf("points") !== -1 && (d = hwe.hoverOnPoints(t, r, n));
+ var j = o.selectAll(".violinline-" + l.uid).data(v ? [0] : []);
+ return j.enter().append("line").classed("violinline-" + l.uid, true).attr("stroke-width", 1.5), j.exit().remove(), j.attr(v).call(Iwt.stroke, t.color), i === "closest" ? d ? [d] : h : (d && h.push(d), h);
+ };
+ });
+ var mwe = ye((dfr, gwe) => {
+ gwe.exports = { attributes: HG(), layoutAttributes: XG(), supplyDefaults: $2e(), crossTraceDefaults: P4().crossTraceDefaults, supplyLayoutDefaults: ewe(), calc: iwe(), crossTraceCalc: owe(), plot: lwe(), style: fwe(), styleOnSelect: sp().styleOnSelect, hoverPoints: pwe(), selectPoints: WV(), moduleType: "trace", name: "violin", basePlotModule: mh(), categories: ["cartesian", "svg", "symbols", "oriented", "box-violin", "showLegend", "violinLayout", "zoomScale"], meta: {} };
+ });
+ var _we = ye((vfr, ywe) => {
+ ywe.exports = mwe();
+ });
+ var bwe = ye((pfr, xwe) => {
+ xwe.exports = { eventDataKeys: ["percentInitial", "percentPrevious", "percentTotal"] };
+ });
+ var tH = ye((gfr, Swe) => {
+ var jc = zm(), eH = pf().line, Dwt = Gl(), wwe = df().axisHoverFormat, { hovertemplateAttrs: Fwt, texttemplateAttrs: zwt, templatefallbackAttrs: Twe } = Ll(), Awe = bwe(), Xy = Ao().extendFlat, Owt = ka();
+ Swe.exports = { x: jc.x, x0: jc.x0, dx: jc.dx, y: jc.y, y0: jc.y0, dy: jc.dy, xperiod: jc.xperiod, yperiod: jc.yperiod, xperiod0: jc.xperiod0, yperiod0: jc.yperiod0, xperiodalignment: jc.xperiodalignment, yperiodalignment: jc.yperiodalignment, xhoverformat: wwe("x"), yhoverformat: wwe("y"), hovertext: jc.hovertext, hovertemplate: Fwt({}, { keys: Awe.eventDataKeys }), hovertemplatefallback: Twe(), hoverinfo: Xy({}, Dwt.hoverinfo, { flags: ["name", "x", "y", "text", "percent initial", "percent previous", "percent total"] }), textinfo: { valType: "flaglist", flags: ["label", "text", "percent initial", "percent previous", "percent total", "value"], extras: ["none"], editType: "plot", arrayOk: false }, texttemplate: zwt({ editType: "plot" }, { keys: Awe.eventDataKeys.concat(["label", "value"]) }), texttemplatefallback: Twe({ editType: "plot" }), text: jc.text, textposition: jc.textposition, insidetextanchor: Xy({}, jc.insidetextanchor, { dflt: "middle" }), textangle: Xy({}, jc.textangle, { dflt: 0 }), textfont: jc.textfont, insidetextfont: jc.insidetextfont, outsidetextfont: jc.outsidetextfont, constraintext: jc.constraintext, cliponaxis: jc.cliponaxis, orientation: Xy({}, jc.orientation, {}), offset: Xy({}, jc.offset, { arrayOk: false }), width: Xy({}, jc.width, { arrayOk: false }), marker: qwt(), connector: { fillcolor: { valType: "color", editType: "style" }, line: { color: Xy({}, eH.color, { dflt: Owt.defaultLine }), width: Xy({}, eH.width, { dflt: 0, editType: "plot" }), dash: eH.dash, editType: "style" }, visible: { valType: "boolean", dflt: true, editType: "plot" }, editType: "plot" }, offsetgroup: jc.offsetgroup, alignmentgroup: jc.alignmentgroup, zorder: jc.zorder };
+ function qwt() {
+ var e = Xy({}, jc.marker);
+ return delete e.pattern, delete e.cornerradius, e;
+ }
+ });
+ var rH = ye((mfr, Mwe) => {
+ Mwe.exports = { funnelmode: { valType: "enumerated", values: ["stack", "group", "overlay"], dflt: "stack", editType: "calc" }, funnelgap: { valType: "number", min: 0, max: 1, editType: "calc" }, funnelgroupgap: { valType: "number", min: 0, max: 1, dflt: 0, editType: "calc" } };
+ });
+ var nH = ye((yfr, kwe) => {
+ var V8 = Dr(), Bwt = e2(), Nwt = i0().handleText, Uwt = oT(), Vwt = Dg(), Ewe = tH(), iH = ka();
+ function Gwt(e, t, r, n) {
+ function i(f, h) {
+ return V8.coerce(e, t, Ewe, f, h);
+ }
+ var a = Uwt(e, t, n, i);
+ if (!a) {
+ t.visible = false;
+ return;
+ }
+ Vwt(e, t, n, i), i("xhoverformat"), i("yhoverformat"), i("orientation", t.y && !t.x ? "v" : "h"), i("offset"), i("width");
+ var o = i("text");
+ i("hovertext"), i("hovertemplate"), i("hovertemplatefallback");
+ var s = i("textposition");
+ Nwt(e, t, n, i, s, { moduleHasSelected: false, moduleHasUnselected: false, moduleHasConstrain: true, moduleHasCliponaxis: true, moduleHasTextangle: true, moduleHasInsideanchor: true }), t.textposition !== "none" && !t.texttemplate && i("textinfo", V8.isArrayOrTypedArray(o) ? "text+value" : "value");
+ var l = i("marker.color", r);
+ i("marker.line.color", iH.defaultLine), i("marker.line.width");
+ var u = i("connector.visible");
+ if (u) {
+ i("connector.fillcolor", Hwt(l));
+ var c = i("connector.line.width");
+ c && (i("connector.line.color"), i("connector.line.dash"));
+ }
+ i("zorder");
+ }
+ function Hwt(e) {
+ var t = V8.isArrayOrTypedArray(e) ? "#000" : e;
+ return iH.addOpacity(t, 0.5 * iH.opacity(t));
+ }
+ function jwt(e, t) {
+ var r, n;
+ function i(o) {
+ return V8.coerce(n._input, n, Ewe, o);
+ }
+ for (var a = 0; a < e.length; a++) n = e[a], n.type === "funnel" && (r = n._input, Bwt(r, n, t, i, t.funnelmode));
+ }
+ kwe.exports = { supplyDefaults: Gwt, crossTraceDefaults: jwt };
+ });
+ var Lwe = ye((_fr, Cwe) => {
+ var Wwt = Dr(), Xwt = rH();
+ Cwe.exports = function(e, t, r) {
+ var n = false;
+ function i(s, l) {
+ return Wwt.coerce(e, t, Xwt, s, l);
+ }
+ for (var a = 0; a < r.length; a++) {
+ var o = r[a];
+ if (o.visible && o.type === "funnel") {
+ n = true;
+ break;
+ }
+ }
+ n && (i("funnelmode"), i("funnelgap", 0.2), i("funnelgroupgap"));
+ };
+ });
+ var Iwe = ye((xfr, Pwe) => {
+ var YT = Dr();
+ Pwe.exports = function(t, r) {
+ for (var n = 0; n < t.length; n++) t[n].i = n;
+ YT.mergeArray(r.text, t, "tx"), YT.mergeArray(r.hovertext, t, "htx");
+ var i = r.marker;
+ if (i) {
+ YT.mergeArray(i.opacity, t, "mo"), YT.mergeArray(i.color, t, "mc");
+ var a = i.line;
+ a && (YT.mergeArray(a.color, t, "mlc"), YT.mergeArrayCastPositive(a.width, t, "mlw"));
+ }
+ };
+ });
+ var zwe = ye((bfr, Fwe) => {
+ var Rwe = ho(), Dwe = zg(), Zwt = Iwe(), Ywt = O0(), j4 = fs().BADNUM;
+ Fwe.exports = function(t, r) {
+ var n = Rwe.getFromId(t, r.xaxis || "x"), i = Rwe.getFromId(t, r.yaxis || "y"), a, o, s, l, u, c, f, h;
+ r.orientation === "h" ? (a = n.makeCalcdata(r, "x"), s = i.makeCalcdata(r, "y"), l = Dwe(r, i, "y", s), u = !!r.yperiodalignment, c = "y") : (a = i.makeCalcdata(r, "y"), s = n.makeCalcdata(r, "x"), l = Dwe(r, n, "x", s), u = !!r.xperiodalignment, c = "x"), o = l.vals;
+ var d = Math.min(o.length, a.length), v = new Array(d);
+ for (r._base = [], f = 0; f < d; f++) {
+ a[f] < 0 && (a[f] = j4);
+ var _ = false;
+ a[f] !== j4 && f + 1 < d && a[f + 1] !== j4 && (_ = true), h = v[f] = { p: o[f], s: a[f], cNext: _ }, r._base[f] = -0.5 * h.s, u && (v[f].orig_p = s[f], v[f][c + "End"] = l.ends[f], v[f][c + "Start"] = l.starts[f]), r.ids && (h.id = String(r.ids[f])), f === 0 && (v[0].vTotal = 0), v[0].vTotal += aH(h.s), h.begR = aH(h.s) / aH(v[0].s);
+ }
+ var b;
+ for (f = 0; f < d; f++) h = v[f], h.s !== j4 && (h.sumR = h.s / v[0].vTotal, h.difR = b !== void 0 ? h.s / b : 1, b = h.s);
+ return Zwt(v, r), Ywt(v, r), v;
+ };
+ function aH(e) {
+ return e === j4 ? 0 : e;
+ }
+ });
+ var Bwe = ye((wfr, qwe) => {
+ var Owe = t2().setGroupPositions;
+ qwe.exports = function(t, r) {
+ var n = t._fullLayout, i = t._fullData, a = t.calcdata, o = r.xaxis, s = r.yaxis, l = [], u = [], c = [], f, h;
+ for (h = 0; h < i.length; h++) {
+ var d = i[h], v = d.orientation === "h";
+ d.visible === true && d.xaxis === o._id && d.yaxis === s._id && d.type === "funnel" && (f = a[h], v ? c.push(f) : u.push(f), l.push(f));
+ }
+ var _ = { mode: n.funnelmode, norm: n.funnelnorm, gap: n.funnelgap, groupgap: n.funnelgroupgap };
+ for (Owe(t, o, s, u, _), Owe(t, s, o, c, _), h = 0; h < l.length; h++) {
+ f = l[h];
+ for (var b = 0; b < f.length; b++) b + 1 < f.length && (f[b].nextP0 = f[b + 1].p0, f[b].nextS0 = f[b + 1].s0, f[b].nextP1 = f[b + 1].p1, f[b].nextS1 = f[b + 1].s1);
+ }
+ };
+ });
+ var Gwe = ye((Tfr, Vwe) => {
+ var G8 = Oa(), B_ = Dr(), Nwe = So(), q_ = fs().BADNUM, Kwt = d2(), Jwt = bv().clearMinTextSize;
+ Vwe.exports = function(t, r, n, i) {
+ var a = t._fullLayout;
+ Jwt("funnel", a), $wt(t, r, n, i), Qwt(t, r, n, i), Kwt.plot(t, r, n, i, { mode: a.funnelmode, norm: a.funnelmode, gap: a.funnelgap, groupgap: a.funnelgroupgap });
+ };
+ function $wt(e, t, r, n) {
+ var i = t.xaxis, a = t.yaxis;
+ B_.makeTraceGroups(n, r, "trace bars").each(function(o) {
+ var s = G8.select(this), l = o[0].trace, u = B_.ensureSingle(s, "g", "regions");
+ if (!l.connector || !l.connector.visible) {
+ u.remove();
+ return;
+ }
+ var c = l.orientation === "h", f = u.selectAll("g.region").data(B_.identity);
+ f.enter().append("g").classed("region", true), f.exit().remove();
+ var h = f.size();
+ f.each(function(d, v) {
+ if (!(v !== h - 1 && !d.cNext)) {
+ var _ = Uwe(d, i, a, c), b = _[0], p = _[1], k = "";
+ b[0] !== q_ && p[0] !== q_ && b[1] !== q_ && p[1] !== q_ && b[2] !== q_ && p[2] !== q_ && b[3] !== q_ && p[3] !== q_ && (c ? k += "M" + b[0] + "," + p[1] + "L" + b[2] + "," + p[2] + "H" + b[3] + "L" + b[1] + "," + p[1] + "Z" : k += "M" + b[1] + "," + p[1] + "L" + b[2] + "," + p[3] + "V" + p[2] + "L" + b[1] + "," + p[0] + "Z"), k === "" && (k = "M0,0Z"), B_.ensureSingle(G8.select(this), "path").attr("d", k).call(Nwe.setClipUrl, t.layerClipId, e);
+ }
+ });
+ });
+ }
+ function Qwt(e, t, r, n) {
+ var i = t.xaxis, a = t.yaxis;
+ B_.makeTraceGroups(n, r, "trace bars").each(function(o) {
+ var s = G8.select(this), l = o[0].trace, u = B_.ensureSingle(s, "g", "lines");
+ if (!l.connector || !l.connector.visible || !l.connector.line.width) {
+ u.remove();
+ return;
+ }
+ var c = l.orientation === "h", f = u.selectAll("g.line").data(B_.identity);
+ f.enter().append("g").classed("line", true), f.exit().remove();
+ var h = f.size();
+ f.each(function(d, v) {
+ if (!(v !== h - 1 && !d.cNext)) {
+ var _ = Uwe(d, i, a, c), b = _[0], p = _[1], k = "";
+ b[3] !== void 0 && p[3] !== void 0 && (c ? (k += "M" + b[0] + "," + p[1] + "L" + b[2] + "," + p[2], k += "M" + b[1] + "," + p[1] + "L" + b[3] + "," + p[2]) : (k += "M" + b[1] + "," + p[1] + "L" + b[2] + "," + p[3], k += "M" + b[1] + "," + p[0] + "L" + b[2] + "," + p[2])), k === "" && (k = "M0,0Z"), B_.ensureSingle(G8.select(this), "path").attr("d", k).call(Nwe.setClipUrl, t.layerClipId, e);
+ }
+ });
+ });
+ }
+ function Uwe(e, t, r, n) {
+ var i = [], a = [], o = n ? t : r, s = n ? r : t;
+ return i[0] = o.c2p(e.s0, true), a[0] = s.c2p(e.p0, true), i[1] = o.c2p(e.s1, true), a[1] = s.c2p(e.p1, true), i[2] = o.c2p(e.nextS0, true), a[2] = s.c2p(e.nextP0, true), i[3] = o.c2p(e.nextS1, true), a[3] = s.c2p(e.nextP1, true), n ? [i, a] : [a, i];
+ }
+ });
+ var Wwe = ye((Afr, jwe) => {
+ var W4 = Oa(), Hwe = So(), oH = ka(), e3t = X1().DESELECTDIM, t3t = V0(), r3t = bv().resizeText, i3t = t3t.styleTextPoints;
+ function n3t(e, t, r) {
+ var n = r || W4.select(e).selectAll('g[class^="funnellayer"]').selectAll("g.trace");
+ r3t(e, n, "funnel"), n.style("opacity", function(i) {
+ return i[0].trace.opacity;
+ }), n.each(function(i) {
+ var a = W4.select(this), o = i[0].trace;
+ a.selectAll(".point > path").each(function(s) {
+ if (!s.isBlank) {
+ var l = o.marker;
+ W4.select(this).call(oH.fill, s.mc || l.color).call(oH.stroke, s.mlc || l.line.color).call(Hwe.dashLine, l.line.dash, s.mlw || l.line.width).style("opacity", o.selectedpoints && !s.selected ? e3t : 1);
+ }
+ }), i3t(a, o, e), a.selectAll(".regions").each(function() {
+ W4.select(this).selectAll("path").style("stroke-width", 0).call(oH.fill, o.connector.fillcolor);
+ }), a.selectAll(".lines").each(function() {
+ var s = o.connector.line;
+ Hwe.lineGroupStyle(W4.select(this).selectAll("path"), s.width, s.color, s.dash);
+ });
+ });
+ }
+ jwe.exports = { style: n3t };
+ });
+ var Ywe = ye((Sfr, Zwe) => {
+ var Xwe = ka().opacity, a3t = PT().hoverOnBars, sH = Dr().formatPercent;
+ Zwe.exports = function(t, r, n, i, a) {
+ var o = a3t(t, r, n, i, a);
+ if (o) {
+ var s = o.cd, l = s[0].trace, u = l.orientation === "h", c = o.index, f = s[c], h = u ? "x" : "y";
+ o[h + "LabelVal"] = f.s, o.percentInitial = f.begR, o.percentInitialLabel = sH(f.begR, 1), o.percentPrevious = f.difR, o.percentPreviousLabel = sH(f.difR, 1), o.percentTotal = f.sumR, o.percentTotalLabel = sH(f.sumR, 1);
+ var d = f.hi || l.hoverinfo, v = [];
+ if (d && d !== "none" && d !== "skip") {
+ var _ = d === "all", b = d.split("+"), p = function(k) {
+ return _ || b.indexOf(k) !== -1;
+ };
+ p("percent initial") && v.push(o.percentInitialLabel + " of initial"), p("percent previous") && v.push(o.percentPreviousLabel + " of previous"), p("percent total") && v.push(o.percentTotalLabel + " of total");
+ }
+ return o.extraText = v.join(" "), o.color = o3t(l, f), [o];
+ }
+ };
+ function o3t(e, t) {
+ var r = e.marker, n = t.mc || r.color, i = t.mlc || r.line.color, a = t.mlw || r.line.width;
+ if (Xwe(n)) return n;
+ if (Xwe(i) && a) return i;
+ }
+ });
+ var Jwe = ye((Mfr, Kwe) => {
+ Kwe.exports = function(t, r) {
+ return t.x = "xVal" in r ? r.xVal : r.x, t.y = "yVal" in r ? r.yVal : r.y, "percentInitial" in r && (t.percentInitial = r.percentInitial), "percentPrevious" in r && (t.percentPrevious = r.percentPrevious), "percentTotal" in r && (t.percentTotal = r.percentTotal), r.xa && (t.xaxis = r.xa), r.ya && (t.yaxis = r.ya), t;
+ };
+ });
+ var Qwe = ye((Efr, $we) => {
+ $we.exports = { attributes: tH(), layoutAttributes: rH(), supplyDefaults: nH().supplyDefaults, crossTraceDefaults: nH().crossTraceDefaults, supplyLayoutDefaults: Lwe(), calc: zwe(), crossTraceCalc: Bwe(), plot: Gwe(), style: Wwe().style, hoverPoints: Ywe(), eventData: Jwe(), selectPoints: IT(), moduleType: "trace", name: "funnel", basePlotModule: mh(), categories: ["bar-like", "cartesian", "svg", "oriented", "showLegend", "zoomScale"], meta: {} };
+ });
+ var t3e = ye((kfr, e3e) => {
+ e3e.exports = Qwe();
+ });
+ var i3e = ye((Cfr, r3e) => {
+ r3e.exports = { eventDataKeys: ["initial", "delta", "final"] };
+ });
+ var cH = ye((Lfr, s3e) => {
+ var _c = zm(), lH = pf().line, s3t = Gl(), n3e = df().axisHoverFormat, { hovertemplateAttrs: l3t, texttemplateAttrs: u3t, templatefallbackAttrs: a3e } = Ll(), o3e = i3e(), KT = Ao().extendFlat, c3t = ka();
+ function uH(e) {
+ return { marker: { color: KT({}, _c.marker.color, { arrayOk: false, editType: "style" }), line: { color: KT({}, _c.marker.line.color, { arrayOk: false, editType: "style" }), width: KT({}, _c.marker.line.width, { arrayOk: false, editType: "style" }), editType: "style" }, editType: "style" }, editType: "style" };
+ }
+ s3e.exports = { measure: { valType: "data_array", dflt: [], editType: "calc" }, base: { valType: "number", dflt: null, arrayOk: false, editType: "calc" }, x: _c.x, x0: _c.x0, dx: _c.dx, y: _c.y, y0: _c.y0, dy: _c.dy, xperiod: _c.xperiod, yperiod: _c.yperiod, xperiod0: _c.xperiod0, yperiod0: _c.yperiod0, xperiodalignment: _c.xperiodalignment, yperiodalignment: _c.yperiodalignment, xhoverformat: n3e("x"), yhoverformat: n3e("y"), hovertext: _c.hovertext, hovertemplate: l3t({}, { keys: o3e.eventDataKeys }), hovertemplatefallback: a3e(), hoverinfo: KT({}, s3t.hoverinfo, { flags: ["name", "x", "y", "text", "initial", "delta", "final"] }), textinfo: { valType: "flaglist", flags: ["label", "text", "initial", "delta", "final"], extras: ["none"], editType: "plot", arrayOk: false }, texttemplate: u3t({ editType: "plot" }, { keys: o3e.eventDataKeys.concat(["label"]) }), texttemplatefallback: a3e({ editType: "plot" }), text: _c.text, textposition: _c.textposition, insidetextanchor: _c.insidetextanchor, textangle: _c.textangle, textfont: _c.textfont, insidetextfont: _c.insidetextfont, outsidetextfont: _c.outsidetextfont, constraintext: _c.constraintext, cliponaxis: _c.cliponaxis, orientation: _c.orientation, offset: _c.offset, width: _c.width, increasing: uH(), decreasing: uH(), totals: uH(), connector: { line: { color: KT({}, lH.color, { dflt: c3t.defaultLine }), width: KT({}, lH.width, { editType: "plot" }), dash: lH.dash, editType: "plot" }, mode: { valType: "enumerated", values: ["spanning", "between"], dflt: "between", editType: "plot" }, visible: { valType: "boolean", dflt: true, editType: "plot" }, editType: "plot" }, offsetgroup: _c.offsetgroup, alignmentgroup: _c.alignmentgroup, zorder: _c.zorder };
+ });
+ var fH = ye((Pfr, l3e) => {
+ l3e.exports = { waterfallmode: { valType: "enumerated", values: ["group", "overlay"], dflt: "group", editType: "calc" }, waterfallgap: { valType: "number", min: 0, max: 1, editType: "calc" }, waterfallgroupgap: { valType: "number", min: 0, max: 1, dflt: 0, editType: "calc" } };
+ });
+ var JT = ye((Ifr, u3e) => {
+ u3e.exports = { INCREASING: { COLOR: "#3D9970", SYMBOL: "▲" }, DECREASING: { COLOR: "#FF4136", SYMBOL: "▼" } };
+ });
+ var dH = ye((Rfr, d3e) => {
+ var c3e = Dr(), f3t = e2(), h3t = i0().handleText, d3t = oT(), v3t = Dg(), f3e = cH(), p3t = ka(), h3e = JT(), g3t = h3e.INCREASING.COLOR, m3t = h3e.DECREASING.COLOR, y3t = "#4499FF";
+ function hH(e, t, r) {
+ e(t + ".marker.color", r), e(t + ".marker.line.color", p3t.defaultLine), e(t + ".marker.line.width");
+ }
+ function _3t(e, t, r, n) {
+ function i(u, c) {
+ return c3e.coerce(e, t, f3e, u, c);
+ }
+ var a = d3t(e, t, n, i);
+ if (!a) {
+ t.visible = false;
+ return;
+ }
+ v3t(e, t, n, i), i("xhoverformat"), i("yhoverformat"), i("measure"), i("orientation", t.x && !t.y ? "h" : "v"), i("base"), i("offset"), i("width"), i("text"), i("hovertext"), i("hovertemplate"), i("hovertemplatefallback");
+ var o = i("textposition");
+ h3t(e, t, n, i, o, { moduleHasSelected: false, moduleHasUnselected: false, moduleHasConstrain: true, moduleHasCliponaxis: true, moduleHasTextangle: true, moduleHasInsideanchor: true }), t.textposition !== "none" && (i("texttemplate"), i("texttemplatefallback"), t.texttemplate || i("textinfo")), hH(i, "increasing", g3t), hH(i, "decreasing", m3t), hH(i, "totals", y3t);
+ var s = i("connector.visible");
+ if (s) {
+ i("connector.mode");
+ var l = i("connector.line.width");
+ l && (i("connector.line.color"), i("connector.line.dash"));
+ }
+ i("zorder");
+ }
+ function x3t(e, t) {
+ var r, n;
+ function i(o) {
+ return c3e.coerce(n._input, n, f3e, o);
+ }
+ if (t.waterfallmode === "group") for (var a = 0; a < e.length; a++) n = e[a], r = n._input, f3t(r, n, t, i, t.waterfallmode);
+ }
+ d3e.exports = { supplyDefaults: _3t, crossTraceDefaults: x3t };
+ });
+ var p3e = ye((Dfr, v3e) => {
+ var b3t = Dr(), w3t = fH();
+ v3e.exports = function(e, t, r) {
+ var n = false;
+ function i(s, l) {
+ return b3t.coerce(e, t, w3t, s, l);
+ }
+ for (var a = 0; a < r.length; a++) {
+ var o = r[a];
+ if (o.visible && o.type === "waterfall") {
+ n = true;
+ break;
+ }
+ }
+ n && (i("waterfallmode"), i("waterfallgap", 0.2), i("waterfallgroupgap"));
+ };
+ });
+ var b3e = ye((Ffr, x3e) => {
+ var g3e = ho(), m3e = zg(), y3e = Dr().mergeArray, T3t = O0(), _3e = fs().BADNUM;
+ function vH(e) {
+ return e === "a" || e === "absolute";
+ }
+ function pH(e) {
+ return e === "t" || e === "total";
+ }
+ x3e.exports = function(t, r) {
+ var n = g3e.getFromId(t, r.xaxis || "x"), i = g3e.getFromId(t, r.yaxis || "y"), a, o, s, l, u, c;
+ r.orientation === "h" ? (a = n.makeCalcdata(r, "x"), s = i.makeCalcdata(r, "y"), l = m3e(r, i, "y", s), u = !!r.yperiodalignment, c = "y") : (a = i.makeCalcdata(r, "y"), s = n.makeCalcdata(r, "x"), l = m3e(r, n, "x", s), u = !!r.xperiodalignment, c = "x"), o = l.vals;
+ for (var f = Math.min(o.length, a.length), h = new Array(f), d = 0, v, _ = false, b = 0; b < f; b++) {
+ var p = a[b] || 0, k = false;
+ (a[b] !== _3e || pH(r.measure[b]) || vH(r.measure[b])) && b + 1 < f && (a[b + 1] !== _3e || pH(r.measure[b + 1]) || vH(r.measure[b + 1])) && (k = true);
+ var E = h[b] = { i: b, p: o[b], s: p, rawS: p, cNext: k };
+ vH(r.measure[b]) ? (d = E.s, E.isSum = true, E.dir = "totals", E.s = d) : pH(r.measure[b]) ? (E.isSum = true, E.dir = "totals", E.s = d) : (E.isSum = false, E.dir = E.rawS < 0 ? "decreasing" : "increasing", v = E.s, E.s = d + v, d += v), E.dir === "totals" && (_ = true), u && (h[b].orig_p = s[b], h[b][c + "End"] = l.ends[b], h[b][c + "Start"] = l.starts[b]), r.ids && (E.id = String(r.ids[b])), E.v = (r.base || 0) + d;
+ }
+ return h.length && (h[0].hasTotals = _), y3e(r.text, h, "tx"), y3e(r.hovertext, h, "htx"), T3t(h, r), h;
+ };
+ });
+ var A3e = ye((zfr, T3e) => {
+ var w3e = t2().setGroupPositions;
+ T3e.exports = function(t, r) {
+ var n = t._fullLayout, i = t._fullData, a = t.calcdata, o = r.xaxis, s = r.yaxis, l = [], u = [], c = [], f, h;
+ for (h = 0; h < i.length; h++) {
+ var d = i[h];
+ d.visible === true && d.xaxis === o._id && d.yaxis === s._id && d.type === "waterfall" && (f = a[h], d.orientation === "h" ? c.push(f) : u.push(f), l.push(f));
+ }
+ var v = { mode: n.waterfallmode, norm: n.waterfallnorm, gap: n.waterfallgap, groupgap: n.waterfallgroupgap };
+ for (w3e(t, o, s, u, v), w3e(t, s, o, c, v), h = 0; h < l.length; h++) {
+ f = l[h];
+ for (var _ = 0; _ < f.length; _++) {
+ var b = f[_];
+ b.isSum === false && (b.s0 += _ === 0 ? 0 : f[_ - 1].s), _ + 1 < f.length && (f[_].nextP0 = f[_ + 1].p0, f[_].nextS0 = f[_ + 1].s0);
+ }
+ }
+ };
+ });
+ var E3e = ye((Ofr, M3e) => {
+ var S3e = Oa(), H8 = Dr(), A3t = So(), $T = fs().BADNUM, S3t = d2(), M3t = bv().clearMinTextSize;
+ M3e.exports = function(t, r, n, i) {
+ var a = t._fullLayout;
+ M3t("waterfall", a), S3t.plot(t, r, n, i, { mode: a.waterfallmode, norm: a.waterfallmode, gap: a.waterfallgap, groupgap: a.waterfallgroupgap }), E3t(t, r, n, i);
+ };
+ function E3t(e, t, r, n) {
+ var i = t.xaxis, a = t.yaxis;
+ H8.makeTraceGroups(n, r, "trace bars").each(function(o) {
+ var s = S3e.select(this), l = o[0].trace, u = H8.ensureSingle(s, "g", "lines");
+ if (!l.connector || !l.connector.visible) {
+ u.remove();
+ return;
+ }
+ var c = l.orientation === "h", f = l.connector.mode, h = u.selectAll("g.line").data(H8.identity);
+ h.enter().append("g").classed("line", true), h.exit().remove();
+ var d = h.size();
+ h.each(function(v, _) {
+ if (!(_ !== d - 1 && !v.cNext)) {
+ var b = k3t(v, i, a, c), p = b[0], k = b[1], E = "";
+ p[0] !== $T && k[0] !== $T && p[1] !== $T && k[1] !== $T && (f === "spanning" && !v.isSum && _ > 0 && (c ? E += "M" + p[0] + "," + k[1] + "V" + k[0] : E += "M" + p[1] + "," + k[0] + "H" + p[0]), f !== "between" && (v.isSum || _ < d - 1) && (c ? E += "M" + p[1] + "," + k[0] + "V" + k[1] : E += "M" + p[0] + "," + k[1] + "H" + p[1]), p[2] !== $T && k[2] !== $T && (c ? E += "M" + p[1] + "," + k[1] + "V" + k[2] : E += "M" + p[1] + "," + k[1] + "H" + p[2])), E === "" && (E = "M0,0Z"), H8.ensureSingle(S3e.select(this), "path").attr("d", E).call(A3t.setClipUrl, t.layerClipId, e);
+ }
+ });
+ });
+ }
+ function k3t(e, t, r, n) {
+ var i = [], a = [], o = n ? t : r, s = n ? r : t;
+ return i[0] = o.c2p(e.s0, true), a[0] = s.c2p(e.p0, true), i[1] = o.c2p(e.s1, true), a[1] = s.c2p(e.p1, true), i[2] = o.c2p(e.nextS0, true), a[2] = s.c2p(e.nextP0, true), n ? [i, a] : [a, i];
+ }
+ });
+ var P3e = ye((qfr, L3e) => {
+ var j8 = Oa(), k3e = So(), C3e = ka(), C3t = X1().DESELECTDIM, L3t = V0(), P3t = bv().resizeText, I3t = L3t.styleTextPoints;
+ function R3t(e, t, r) {
+ var n = r || j8.select(e).selectAll('g[class^="waterfalllayer"]').selectAll("g.trace");
+ P3t(e, n, "waterfall"), n.style("opacity", function(i) {
+ return i[0].trace.opacity;
+ }), n.each(function(i) {
+ var a = j8.select(this), o = i[0].trace;
+ a.selectAll(".point > path").each(function(s) {
+ if (!s.isBlank) {
+ var l = o[s.dir].marker;
+ j8.select(this).call(C3e.fill, l.color).call(C3e.stroke, l.line.color).call(k3e.dashLine, l.line.dash, l.line.width).style("opacity", o.selectedpoints && !s.selected ? C3t : 1);
+ }
+ }), I3t(a, o, e), a.selectAll(".lines").each(function() {
+ var s = o.connector.line;
+ k3e.lineGroupStyle(j8.select(this).selectAll("path"), s.width, s.color, s.dash);
+ });
+ });
+ }
+ L3e.exports = { style: R3t };
+ });
+ var z3e = ye((Bfr, F3e) => {
+ var D3t = ho().hoverLabelText, I3e = ka().opacity, F3t = PT().hoverOnBars, R3e = JT(), D3e = { increasing: R3e.INCREASING.SYMBOL, decreasing: R3e.DECREASING.SYMBOL };
+ F3e.exports = function(t, r, n, i, a) {
+ var o = F3t(t, r, n, i, a);
+ if (!o) return;
+ var s = o.cd, l = s[0].trace, u = l.orientation === "h", c = u ? "x" : "y", f = u ? t.xa : t.ya;
+ function h(x) {
+ return D3t(f, x, l[c + "hoverformat"]);
+ }
+ var d = o.index, v = s[d], _ = v.isSum ? v.b + v.s : v.rawS;
+ o.initial = v.b + v.s - _, o.delta = _, o.final = o.initial + o.delta;
+ var b = h(Math.abs(o.delta));
+ o.deltaLabel = _ < 0 ? "(" + b + ")" : b, o.finalLabel = h(o.final), o.initialLabel = h(o.initial);
+ var p = v.hi || l.hoverinfo, k = [];
+ if (p && p !== "none" && p !== "skip") {
+ var E = p === "all", T = p.split("+"), L = function(x) {
+ return E || T.indexOf(x) !== -1;
+ };
+ v.isSum || (L("final") && (u ? !L("x") : !L("y")) && k.push(o.finalLabel), L("delta") && (_ < 0 ? k.push(o.deltaLabel + " " + D3e.decreasing) : k.push(o.deltaLabel + " " + D3e.increasing)), L("initial") && k.push("Initial: " + o.initialLabel));
+ }
+ return k.length && (o.extraText = k.join(" ")), o.color = z3t(l, v), [o];
+ };
+ function z3t(e, t) {
+ var r = e[t.dir].marker, n = r.color, i = r.line.color, a = r.line.width;
+ if (I3e(n)) return n;
+ if (I3e(i) && a) return i;
+ }
+ });
+ var q3e = ye((Nfr, O3e) => {
+ O3e.exports = function(t, r) {
+ return t.x = "xVal" in r ? r.xVal : r.x, t.y = "yVal" in r ? r.yVal : r.y, "initial" in r && (t.initial = r.initial), "delta" in r && (t.delta = r.delta), "final" in r && (t.final = r.final), r.xa && (t.xaxis = r.xa), r.ya && (t.yaxis = r.ya), t;
+ };
+ });
+ var N3e = ye((Ufr, B3e) => {
+ B3e.exports = { attributes: cH(), layoutAttributes: fH(), supplyDefaults: dH().supplyDefaults, crossTraceDefaults: dH().crossTraceDefaults, supplyLayoutDefaults: p3e(), calc: b3e(), crossTraceCalc: A3e(), plot: E3e(), style: P3e().style, hoverPoints: z3e(), eventData: q3e(), selectPoints: IT(), moduleType: "trace", name: "waterfall", basePlotModule: mh(), categories: ["bar-like", "cartesian", "svg", "oriented", "showLegend", "zoomScale"], meta: {} };
+ });
+ var V3e = ye((Vfr, U3e) => {
+ U3e.exports = N3e();
+ });
+ var QT = ye((Gfr, G3e) => {
+ G3e.exports = { colormodel: { rgb: { min: [0, 0, 0], max: [255, 255, 255], fmt: function(e) {
+ return e.slice(0, 3);
+ }, suffix: ["", "", ""] }, rgba: { min: [0, 0, 0, 0], max: [255, 255, 255, 1], fmt: function(e) {
+ return e.slice(0, 4);
+ }, suffix: ["", "", "", ""] }, rgba256: { colormodel: "rgba", zminDflt: [0, 0, 0, 0], zmaxDflt: [255, 255, 255, 255], min: [0, 0, 0, 0], max: [255, 255, 255, 1], fmt: function(e) {
+ return e.slice(0, 4);
+ }, suffix: ["", "", "", ""] }, hsl: { min: [0, 0, 0], max: [360, 100, 100], fmt: function(e) {
+ var t = e.slice(0, 3);
+ return t[1] = t[1] + "%", t[2] = t[2] + "%", t;
+ }, suffix: ["°", "%", "%"] }, hsla: { min: [0, 0, 0, 0], max: [360, 100, 100, 1], fmt: function(e) {
+ var t = e.slice(0, 4);
+ return t[1] = t[1] + "%", t[2] = t[2] + "%", t;
+ }, suffix: ["°", "%", "%", ""] } } };
+ });
+ var gH = ye((Hfr, j3e) => {
+ var O3t = Gl(), q3t = pf().zorder, { hovertemplateAttrs: B3t, templatefallbackAttrs: N3t } = Ll(), H3e = Ao().extendFlat, U3t = QT().colormodel, Z4 = ["rgb", "rgba", "rgba256", "hsl", "hsla"], V3t = [], G3t = [];
+ for (eA = 0; eA < Z4.length; eA++) X4 = U3t[Z4[eA]], V3t.push("For the `" + Z4[eA] + "` colormodel, it is [" + (X4.zminDflt || X4.min).join(", ") + "]."), G3t.push("For the `" + Z4[eA] + "` colormodel, it is [" + (X4.zmaxDflt || X4.max).join(", ") + "].");
+ var X4, eA;
+ j3e.exports = H3e({ source: { valType: "string", editType: "calc" }, z: { valType: "data_array", editType: "calc" }, colormodel: { valType: "enumerated", values: Z4, editType: "calc" }, zsmooth: { valType: "enumerated", values: ["fast", false], dflt: false, editType: "plot" }, zmin: { valType: "info_array", items: [{ valType: "number", editType: "calc" }, { valType: "number", editType: "calc" }, { valType: "number", editType: "calc" }, { valType: "number", editType: "calc" }], editType: "calc" }, zmax: { valType: "info_array", items: [{ valType: "number", editType: "calc" }, { valType: "number", editType: "calc" }, { valType: "number", editType: "calc" }, { valType: "number", editType: "calc" }], editType: "calc" }, x0: { valType: "any", dflt: 0, editType: "calc+clearAxisTypes" }, y0: { valType: "any", dflt: 0, editType: "calc+clearAxisTypes" }, dx: { valType: "number", dflt: 1, editType: "calc", description: "Set the pixel's horizontal size." }, dy: { valType: "number", dflt: 1, editType: "calc", description: "Set the pixel's vertical size" }, text: { valType: "data_array", editType: "plot" }, hovertext: { valType: "data_array", editType: "plot" }, hoverinfo: H3e({}, O3t.hoverinfo, { flags: ["x", "y", "z", "color", "name", "text"], dflt: "x+y+z+text+name" }), hovertemplate: B3t({}, { keys: ["z", "color", "colormodel"] }), hovertemplatefallback: N3t(), zorder: q3t });
+ });
+ var Z3e = ye((jfr, X3e) => {
+ var H3t = Dr(), j3t = gH(), W3e = QT(), W3t = Oy().IMAGE_URL_PREFIX;
+ X3e.exports = function(t, r) {
+ function n(o, s) {
+ return H3t.coerce(t, r, j3t, o, s);
+ }
+ n("source"), r.source && !r.source.match(W3t) && delete r.source, r._hasSource = !!r.source;
+ var i = n("z");
+ if (r._hasZ = !(i === void 0 || !i.length || !i[0] || !i[0].length), !r._hasZ && !r._hasSource) {
+ r.visible = false;
+ return;
+ }
+ n("x0"), n("y0"), n("dx"), n("dy");
+ var a;
+ r._hasZ ? (n("colormodel", "rgb"), a = W3e.colormodel[r.colormodel], n("zmin", a.zminDflt || a.min), n("zmax", a.zmaxDflt || a.max)) : r._hasSource && (r.colormodel = "rgba256", a = W3e.colormodel[r.colormodel], r.zmin = a.zminDflt, r.zmax = a.zmaxDflt), n("zsmooth"), n("text"), n("hovertext"), n("hovertemplate"), n("hovertemplatefallback"), r._length = null, n("zorder");
+ };
+ });
+ var Zy = ye((Wfr, mH) => {
+ typeof Object.create == "function" ? mH.exports = function(t, r) {
+ r && (t.super_ = r, t.prototype = Object.create(r.prototype, { constructor: { value: t, enumerable: false, writable: true, configurable: true } }));
+ } : mH.exports = function(t, r) {
+ if (r) {
+ t.super_ = r;
+ var n = function() {
+ };
+ n.prototype = r.prototype, t.prototype = new n(), t.prototype.constructor = t;
+ }
+ };
+ });
+ var yH = ye((Xfr, Y3e) => {
+ Y3e.exports = Ab().EventEmitter;
+ });
+ var $3e = ye((W8) => {
+ W8.byteLength = Z3t;
+ W8.toByteArray = K3t;
+ W8.fromByteArray = Q3t;
+ var Gm = [], Y0 = [], X3t = typeof Uint8Array != "undefined" ? Uint8Array : Array, _H = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ for (m2 = 0, K3e = _H.length; m2 < K3e; ++m2) Gm[m2] = _H[m2], Y0[_H.charCodeAt(m2)] = m2;
+ var m2, K3e;
+ Y0[45] = 62;
+ Y0[95] = 63;
+ function J3e(e) {
+ var t = e.length;
+ if (t % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
+ var r = e.indexOf("=");
+ r === -1 && (r = t);
+ var n = r === t ? 0 : 4 - r % 4;
+ return [r, n];
+ }
+ function Z3t(e) {
+ var t = J3e(e), r = t[0], n = t[1];
+ return (r + n) * 3 / 4 - n;
+ }
+ function Y3t(e, t, r) {
+ return (t + r) * 3 / 4 - r;
+ }
+ function K3t(e) {
+ var t, r = J3e(e), n = r[0], i = r[1], a = new X3t(Y3t(e, n, i)), o = 0, s = i > 0 ? n - 4 : n, l;
+ for (l = 0; l < s; l += 4) t = Y0[e.charCodeAt(l)] << 18 | Y0[e.charCodeAt(l + 1)] << 12 | Y0[e.charCodeAt(l + 2)] << 6 | Y0[e.charCodeAt(l + 3)], a[o++] = t >> 16 & 255, a[o++] = t >> 8 & 255, a[o++] = t & 255;
+ return i === 2 && (t = Y0[e.charCodeAt(l)] << 2 | Y0[e.charCodeAt(l + 1)] >> 4, a[o++] = t & 255), i === 1 && (t = Y0[e.charCodeAt(l)] << 10 | Y0[e.charCodeAt(l + 1)] << 4 | Y0[e.charCodeAt(l + 2)] >> 2, a[o++] = t >> 8 & 255, a[o++] = t & 255), a;
+ }
+ function J3t(e) {
+ return Gm[e >> 18 & 63] + Gm[e >> 12 & 63] + Gm[e >> 6 & 63] + Gm[e & 63];
+ }
+ function $3t(e, t, r) {
+ for (var n, i = [], a = t; a < r; a += 3) n = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (e[a + 2] & 255), i.push(J3t(n));
+ return i.join("");
+ }
+ function Q3t(e) {
+ for (var t, r = e.length, n = r % 3, i = [], a = 16383, o = 0, s = r - n; o < s; o += a) i.push($3t(e, o, o + a > s ? s : o + a));
+ return n === 1 ? (t = e[r - 1], i.push(Gm[t >> 2] + Gm[t << 4 & 63] + "==")) : n === 2 && (t = (e[r - 2] << 8) + e[r - 1], i.push(Gm[t >> 10] + Gm[t >> 4 & 63] + Gm[t << 2 & 63] + "=")), i.join("");
+ }
+ });
+ var Q3e = ye((xH) => {
+ xH.read = function(e, t, r, n, i) {
+ var a, o, s = i * 8 - n - 1, l = (1 << s) - 1, u = l >> 1, c = -7, f = r ? i - 1 : 0, h = r ? -1 : 1, d = e[t + f];
+ for (f += h, a = d & (1 << -c) - 1, d >>= -c, c += s; c > 0; a = a * 256 + e[t + f], f += h, c -= 8) ;
+ for (o = a & (1 << -c) - 1, a >>= -c, c += n; c > 0; o = o * 256 + e[t + f], f += h, c -= 8) ;
+ if (a === 0) a = 1 - u;
+ else {
+ if (a === l) return o ? NaN : (d ? -1 : 1) * (1 / 0);
+ o = o + Math.pow(2, n), a = a - u;
+ }
+ return (d ? -1 : 1) * o * Math.pow(2, a - n);
+ };
+ xH.write = function(e, t, r, n, i, a) {
+ var o, s, l, u = a * 8 - i - 1, c = (1 << u) - 1, f = c >> 1, h = i === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, d = n ? 0 : a - 1, v = n ? 1 : -1, _ = t < 0 || t === 0 && 1 / t < 0 ? 1 : 0;
+ for (t = Math.abs(t), isNaN(t) || t === 1 / 0 ? (s = isNaN(t) ? 1 : 0, o = c) : (o = Math.floor(Math.log(t) / Math.LN2), t * (l = Math.pow(2, -o)) < 1 && (o--, l *= 2), o + f >= 1 ? t += h / l : t += h * Math.pow(2, 1 - f), t * l >= 2 && (o++, l /= 2), o + f >= c ? (s = 0, o = c) : o + f >= 1 ? (s = (t * l - 1) * Math.pow(2, i), o = o + f) : (s = t * Math.pow(2, f - 1) * Math.pow(2, i), o = 0)); i >= 8; e[r + d] = s & 255, d += v, s /= 256, i -= 8) ;
+ for (o = o << i | s, u += i; u > 0; e[r + d] = o & 255, d += v, o /= 256, u -= 8) ;
+ e[r + d - v] |= _ * 128;
+ };
+ });
+ var _2 = ye((nA) => {
+ var bH = $3e(), rA = Q3e(), eTe = typeof Symbol == "function" && typeof Symbol.for == "function" ? Symbol.for("nodejs.util.inspect.custom") : null;
+ nA.Buffer = ea;
+ nA.SlowBuffer = aTt;
+ nA.INSPECT_MAX_BYTES = 50;
+ var X8 = 2147483647;
+ nA.kMaxLength = X8;
+ ea.TYPED_ARRAY_SUPPORT = eTt();
+ !ea.TYPED_ARRAY_SUPPORT && typeof console != "undefined" && typeof console.error == "function" && console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");
+ function eTt() {
+ try {
+ let e = new Uint8Array(1), t = { foo: function() {
+ return 42;
+ } };
+ return Object.setPrototypeOf(t, Uint8Array.prototype), Object.setPrototypeOf(e, t), e.foo() === 42;
+ } catch (e) {
+ return false;
+ }
+ }
+ Object.defineProperty(ea.prototype, "parent", { enumerable: true, get: function() {
+ if (ea.isBuffer(this)) return this.buffer;
+ } });
+ Object.defineProperty(ea.prototype, "offset", { enumerable: true, get: function() {
+ if (ea.isBuffer(this)) return this.byteOffset;
+ } });
+ function Yy(e) {
+ if (e > X8) throw new RangeError('The value "' + e + '" is invalid for option "size"');
+ let t = new Uint8Array(e);
+ return Object.setPrototypeOf(t, ea.prototype), t;
+ }
+ function ea(e, t, r) {
+ if (typeof e == "number") {
+ if (typeof t == "string") throw new TypeError('The "string" argument must be of type string. Received type number');
+ return SH(e);
+ }
+ return nTe(e, t, r);
+ }
+ ea.poolSize = 8192;
+ function nTe(e, t, r) {
+ if (typeof e == "string") return rTt(e, t);
+ if (ArrayBuffer.isView(e)) return iTt(e);
+ if (e == null) throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof e);
+ if (Hm(e, ArrayBuffer) || e && Hm(e.buffer, ArrayBuffer) || typeof SharedArrayBuffer != "undefined" && (Hm(e, SharedArrayBuffer) || e && Hm(e.buffer, SharedArrayBuffer))) return TH(e, t, r);
+ if (typeof e == "number") throw new TypeError('The "value" argument must not be of type number. Received type number');
+ let n = e.valueOf && e.valueOf();
+ if (n != null && n !== e) return ea.from(n, t, r);
+ let i = nTt(e);
+ if (i) return i;
+ if (typeof Symbol != "undefined" && Symbol.toPrimitive != null && typeof e[Symbol.toPrimitive] == "function") return ea.from(e[Symbol.toPrimitive]("string"), t, r);
+ throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof e);
+ }
+ ea.from = function(e, t, r) {
+ return nTe(e, t, r);
+ };
+ Object.setPrototypeOf(ea.prototype, Uint8Array.prototype);
+ Object.setPrototypeOf(ea, Uint8Array);
+ function aTe(e) {
+ if (typeof e != "number") throw new TypeError('"size" argument must be of type number');
+ if (e < 0) throw new RangeError('The value "' + e + '" is invalid for option "size"');
+ }
+ function tTt(e, t, r) {
+ return aTe(e), e <= 0 ? Yy(e) : t !== void 0 ? typeof r == "string" ? Yy(e).fill(t, r) : Yy(e).fill(t) : Yy(e);
+ }
+ ea.alloc = function(e, t, r) {
+ return tTt(e, t, r);
+ };
+ function SH(e) {
+ return aTe(e), Yy(e < 0 ? 0 : MH(e) | 0);
+ }
+ ea.allocUnsafe = function(e) {
+ return SH(e);
+ };
+ ea.allocUnsafeSlow = function(e) {
+ return SH(e);
+ };
+ function rTt(e, t) {
+ if ((typeof t != "string" || t === "") && (t = "utf8"), !ea.isEncoding(t)) throw new TypeError("Unknown encoding: " + t);
+ let r = oTe(e, t) | 0, n = Yy(r), i = n.write(e, t);
+ return i !== r && (n = n.slice(0, i)), n;
+ }
+ function wH(e) {
+ let t = e.length < 0 ? 0 : MH(e.length) | 0, r = Yy(t);
+ for (let n = 0; n < t; n += 1) r[n] = e[n] & 255;
+ return r;
+ }
+ function iTt(e) {
+ if (Hm(e, Uint8Array)) {
+ let t = new Uint8Array(e);
+ return TH(t.buffer, t.byteOffset, t.byteLength);
+ }
+ return wH(e);
+ }
+ function TH(e, t, r) {
+ if (t < 0 || e.byteLength < t) throw new RangeError('"offset" is outside of buffer bounds');
+ if (e.byteLength < t + (r || 0)) throw new RangeError('"length" is outside of buffer bounds');
+ let n;
+ return t === void 0 && r === void 0 ? n = new Uint8Array(e) : r === void 0 ? n = new Uint8Array(e, t) : n = new Uint8Array(e, t, r), Object.setPrototypeOf(n, ea.prototype), n;
+ }
+ function nTt(e) {
+ if (ea.isBuffer(e)) {
+ let t = MH(e.length) | 0, r = Yy(t);
+ return r.length === 0 || e.copy(r, 0, 0, t), r;
+ }
+ if (e.length !== void 0) return typeof e.length != "number" || kH(e.length) ? Yy(0) : wH(e);
+ if (e.type === "Buffer" && Array.isArray(e.data)) return wH(e.data);
+ }
+ function MH(e) {
+ if (e >= X8) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + X8.toString(16) + " bytes");
+ return e | 0;
+ }
+ function aTt(e) {
+ return +e != e && (e = 0), ea.alloc(+e);
+ }
+ ea.isBuffer = function(t) {
+ return t != null && t._isBuffer === true && t !== ea.prototype;
+ };
+ ea.compare = function(t, r) {
+ if (Hm(t, Uint8Array) && (t = ea.from(t, t.offset, t.byteLength)), Hm(r, Uint8Array) && (r = ea.from(r, r.offset, r.byteLength)), !ea.isBuffer(t) || !ea.isBuffer(r)) throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');
+ if (t === r) return 0;
+ let n = t.length, i = r.length;
+ for (let a = 0, o = Math.min(n, i); a < o; ++a) if (t[a] !== r[a]) {
+ n = t[a], i = r[a];
+ break;
+ }
+ return n < i ? -1 : i < n ? 1 : 0;
+ };
+ ea.isEncoding = function(t) {
+ switch (String(t).toLowerCase()) {
+ case "hex":
+ case "utf8":
+ case "utf-8":
+ case "ascii":
+ case "latin1":
+ case "binary":
+ case "base64":
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return true;
+ default:
+ return false;
+ }
+ };
+ ea.concat = function(t, r) {
+ if (!Array.isArray(t)) throw new TypeError('"list" argument must be an Array of Buffers');
+ if (t.length === 0) return ea.alloc(0);
+ let n;
+ if (r === void 0) for (r = 0, n = 0; n < t.length; ++n) r += t[n].length;
+ let i = ea.allocUnsafe(r), a = 0;
+ for (n = 0; n < t.length; ++n) {
+ let o = t[n];
+ if (Hm(o, Uint8Array)) a + o.length > i.length ? (ea.isBuffer(o) || (o = ea.from(o)), o.copy(i, a)) : Uint8Array.prototype.set.call(i, o, a);
+ else if (ea.isBuffer(o)) o.copy(i, a);
+ else throw new TypeError('"list" argument must be an Array of Buffers');
+ a += o.length;
+ }
+ return i;
+ };
+ function oTe(e, t) {
+ if (ea.isBuffer(e)) return e.length;
+ if (ArrayBuffer.isView(e) || Hm(e, ArrayBuffer)) return e.byteLength;
+ if (typeof e != "string") throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof e);
+ let r = e.length, n = arguments.length > 2 && arguments[2] === true;
+ if (!n && r === 0) return 0;
+ let i = false;
+ for (; ; ) switch (t) {
+ case "ascii":
+ case "latin1":
+ case "binary":
+ return r;
+ case "utf8":
+ case "utf-8":
+ return AH(e).length;
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return r * 2;
+ case "hex":
+ return r >>> 1;
+ case "base64":
+ return pTe(e).length;
+ default:
+ if (i) return n ? -1 : AH(e).length;
+ t = ("" + t).toLowerCase(), i = true;
+ }
+ }
+ ea.byteLength = oTe;
+ function oTt(e, t, r) {
+ let n = false;
+ if ((t === void 0 || t < 0) && (t = 0), t > this.length || ((r === void 0 || r > this.length) && (r = this.length), r <= 0) || (r >>>= 0, t >>>= 0, r <= t)) return "";
+ for (e || (e = "utf8"); ; ) switch (e) {
+ case "hex":
+ return gTt(this, t, r);
+ case "utf8":
+ case "utf-8":
+ return lTe(this, t, r);
+ case "ascii":
+ return vTt(this, t, r);
+ case "latin1":
+ case "binary":
+ return pTt(this, t, r);
+ case "base64":
+ return hTt(this, t, r);
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return mTt(this, t, r);
+ default:
+ if (n) throw new TypeError("Unknown encoding: " + e);
+ e = (e + "").toLowerCase(), n = true;
+ }
+ }
+ ea.prototype._isBuffer = true;
+ function y2(e, t, r) {
+ let n = e[t];
+ e[t] = e[r], e[r] = n;
+ }
+ ea.prototype.swap16 = function() {
+ let t = this.length;
+ if (t % 2 !== 0) throw new RangeError("Buffer size must be a multiple of 16-bits");
+ for (let r = 0; r < t; r += 2) y2(this, r, r + 1);
+ return this;
+ };
+ ea.prototype.swap32 = function() {
+ let t = this.length;
+ if (t % 4 !== 0) throw new RangeError("Buffer size must be a multiple of 32-bits");
+ for (let r = 0; r < t; r += 4) y2(this, r, r + 3), y2(this, r + 1, r + 2);
+ return this;
+ };
+ ea.prototype.swap64 = function() {
+ let t = this.length;
+ if (t % 8 !== 0) throw new RangeError("Buffer size must be a multiple of 64-bits");
+ for (let r = 0; r < t; r += 8) y2(this, r, r + 7), y2(this, r + 1, r + 6), y2(this, r + 2, r + 5), y2(this, r + 3, r + 4);
+ return this;
+ };
+ ea.prototype.toString = function() {
+ let t = this.length;
+ return t === 0 ? "" : arguments.length === 0 ? lTe(this, 0, t) : oTt.apply(this, arguments);
+ };
+ ea.prototype.toLocaleString = ea.prototype.toString;
+ ea.prototype.equals = function(t) {
+ if (!ea.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
+ return this === t ? true : ea.compare(this, t) === 0;
+ };
+ ea.prototype.inspect = function() {
+ let t = "", r = nA.INSPECT_MAX_BYTES;
+ return t = this.toString("hex", 0, r).replace(/(.{2})/g, "$1 ").trim(), this.length > r && (t += " ... "), "";
+ };
+ eTe && (ea.prototype[eTe] = ea.prototype.inspect);
+ ea.prototype.compare = function(t, r, n, i, a) {
+ if (Hm(t, Uint8Array) && (t = ea.from(t, t.offset, t.byteLength)), !ea.isBuffer(t)) throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof t);
+ if (r === void 0 && (r = 0), n === void 0 && (n = t ? t.length : 0), i === void 0 && (i = 0), a === void 0 && (a = this.length), r < 0 || n > t.length || i < 0 || a > this.length) throw new RangeError("out of range index");
+ if (i >= a && r >= n) return 0;
+ if (i >= a) return -1;
+ if (r >= n) return 1;
+ if (r >>>= 0, n >>>= 0, i >>>= 0, a >>>= 0, this === t) return 0;
+ let o = a - i, s = n - r, l = Math.min(o, s), u = this.slice(i, a), c = t.slice(r, n);
+ for (let f = 0; f < l; ++f) if (u[f] !== c[f]) {
+ o = u[f], s = c[f];
+ break;
+ }
+ return o < s ? -1 : s < o ? 1 : 0;
+ };
+ function sTe(e, t, r, n, i) {
+ if (e.length === 0) return -1;
+ if (typeof r == "string" ? (n = r, r = 0) : r > 2147483647 ? r = 2147483647 : r < -2147483648 && (r = -2147483648), r = +r, kH(r) && (r = i ? 0 : e.length - 1), r < 0 && (r = e.length + r), r >= e.length) {
+ if (i) return -1;
+ r = e.length - 1;
+ } else if (r < 0) if (i) r = 0;
+ else return -1;
+ if (typeof t == "string" && (t = ea.from(t, n)), ea.isBuffer(t)) return t.length === 0 ? -1 : tTe(e, t, r, n, i);
+ if (typeof t == "number") return t = t & 255, typeof Uint8Array.prototype.indexOf == "function" ? i ? Uint8Array.prototype.indexOf.call(e, t, r) : Uint8Array.prototype.lastIndexOf.call(e, t, r) : tTe(e, [t], r, n, i);
+ throw new TypeError("val must be string, number or Buffer");
+ }
+ function tTe(e, t, r, n, i) {
+ let a = 1, o = e.length, s = t.length;
+ if (n !== void 0 && (n = String(n).toLowerCase(), n === "ucs2" || n === "ucs-2" || n === "utf16le" || n === "utf-16le")) {
+ if (e.length < 2 || t.length < 2) return -1;
+ a = 2, o /= 2, s /= 2, r /= 2;
+ }
+ function l(c, f) {
+ return a === 1 ? c[f] : c.readUInt16BE(f * a);
+ }
+ let u;
+ if (i) {
+ let c = -1;
+ for (u = r; u < o; u++) if (l(e, u) === l(t, c === -1 ? 0 : u - c)) {
+ if (c === -1 && (c = u), u - c + 1 === s) return c * a;
+ } else c !== -1 && (u -= u - c), c = -1;
+ } else for (r + s > o && (r = o - s), u = r; u >= 0; u--) {
+ let c = true;
+ for (let f = 0; f < s; f++) if (l(e, u + f) !== l(t, f)) {
+ c = false;
+ break;
+ }
+ if (c) return u;
+ }
+ return -1;
+ }
+ ea.prototype.includes = function(t, r, n) {
+ return this.indexOf(t, r, n) !== -1;
+ };
+ ea.prototype.indexOf = function(t, r, n) {
+ return sTe(this, t, r, n, true);
+ };
+ ea.prototype.lastIndexOf = function(t, r, n) {
+ return sTe(this, t, r, n, false);
+ };
+ function sTt(e, t, r, n) {
+ r = Number(r) || 0;
+ let i = e.length - r;
+ n ? (n = Number(n), n > i && (n = i)) : n = i;
+ let a = t.length;
+ n > a / 2 && (n = a / 2);
+ let o;
+ for (o = 0; o < n; ++o) {
+ let s = parseInt(t.substr(o * 2, 2), 16);
+ if (kH(s)) return o;
+ e[r + o] = s;
+ }
+ return o;
+ }
+ function lTt(e, t, r, n) {
+ return Z8(AH(t, e.length - r), e, r, n);
+ }
+ function uTt(e, t, r, n) {
+ return Z8(bTt(t), e, r, n);
+ }
+ function cTt(e, t, r, n) {
+ return Z8(pTe(t), e, r, n);
+ }
+ function fTt(e, t, r, n) {
+ return Z8(wTt(t, e.length - r), e, r, n);
+ }
+ ea.prototype.write = function(t, r, n, i) {
+ if (r === void 0) i = "utf8", n = this.length, r = 0;
+ else if (n === void 0 && typeof r == "string") i = r, n = this.length, r = 0;
+ else if (isFinite(r)) r = r >>> 0, isFinite(n) ? (n = n >>> 0, i === void 0 && (i = "utf8")) : (i = n, n = void 0);
+ else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
+ let a = this.length - r;
+ if ((n === void 0 || n > a) && (n = a), t.length > 0 && (n < 0 || r < 0) || r > this.length) throw new RangeError("Attempt to write outside buffer bounds");
+ i || (i = "utf8");
+ let o = false;
+ for (; ; ) switch (i) {
+ case "hex":
+ return sTt(this, t, r, n);
+ case "utf8":
+ case "utf-8":
+ return lTt(this, t, r, n);
+ case "ascii":
+ case "latin1":
+ case "binary":
+ return uTt(this, t, r, n);
+ case "base64":
+ return cTt(this, t, r, n);
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return fTt(this, t, r, n);
+ default:
+ if (o) throw new TypeError("Unknown encoding: " + i);
+ i = ("" + i).toLowerCase(), o = true;
+ }
+ };
+ ea.prototype.toJSON = function() {
+ return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) };
+ };
+ function hTt(e, t, r) {
+ return t === 0 && r === e.length ? bH.fromByteArray(e) : bH.fromByteArray(e.slice(t, r));
+ }
+ function lTe(e, t, r) {
+ r = Math.min(e.length, r);
+ let n = [], i = t;
+ for (; i < r; ) {
+ let a = e[i], o = null, s = a > 239 ? 4 : a > 223 ? 3 : a > 191 ? 2 : 1;
+ if (i + s <= r) {
+ let l, u, c, f;
+ switch (s) {
+ case 1:
+ a < 128 && (o = a);
+ break;
+ case 2:
+ l = e[i + 1], (l & 192) === 128 && (f = (a & 31) << 6 | l & 63, f > 127 && (o = f));
+ break;
+ case 3:
+ l = e[i + 1], u = e[i + 2], (l & 192) === 128 && (u & 192) === 128 && (f = (a & 15) << 12 | (l & 63) << 6 | u & 63, f > 2047 && (f < 55296 || f > 57343) && (o = f));
+ break;
+ case 4:
+ l = e[i + 1], u = e[i + 2], c = e[i + 3], (l & 192) === 128 && (u & 192) === 128 && (c & 192) === 128 && (f = (a & 15) << 18 | (l & 63) << 12 | (u & 63) << 6 | c & 63, f > 65535 && f < 1114112 && (o = f));
+ }
+ }
+ o === null ? (o = 65533, s = 1) : o > 65535 && (o -= 65536, n.push(o >>> 10 & 1023 | 55296), o = 56320 | o & 1023), n.push(o), i += s;
+ }
+ return dTt(n);
+ }
+ var rTe = 4096;
+ function dTt(e) {
+ let t = e.length;
+ if (t <= rTe) return String.fromCharCode.apply(String, e);
+ let r = "", n = 0;
+ for (; n < t; ) r += String.fromCharCode.apply(String, e.slice(n, n += rTe));
+ return r;
+ }
+ function vTt(e, t, r) {
+ let n = "";
+ r = Math.min(e.length, r);
+ for (let i = t; i < r; ++i) n += String.fromCharCode(e[i] & 127);
+ return n;
+ }
+ function pTt(e, t, r) {
+ let n = "";
+ r = Math.min(e.length, r);
+ for (let i = t; i < r; ++i) n += String.fromCharCode(e[i]);
+ return n;
+ }
+ function gTt(e, t, r) {
+ let n = e.length;
+ (!t || t < 0) && (t = 0), (!r || r < 0 || r > n) && (r = n);
+ let i = "";
+ for (let a = t; a < r; ++a) i += TTt[e[a]];
+ return i;
+ }
+ function mTt(e, t, r) {
+ let n = e.slice(t, r), i = "";
+ for (let a = 0; a < n.length - 1; a += 2) i += String.fromCharCode(n[a] + n[a + 1] * 256);
+ return i;
+ }
+ ea.prototype.slice = function(t, r) {
+ let n = this.length;
+ t = ~~t, r = r === void 0 ? n : ~~r, t < 0 ? (t += n, t < 0 && (t = 0)) : t > n && (t = n), r < 0 ? (r += n, r < 0 && (r = 0)) : r > n && (r = n), r < t && (r = t);
+ let i = this.subarray(t, r);
+ return Object.setPrototypeOf(i, ea.prototype), i;
+ };
+ function ev(e, t, r) {
+ if (e % 1 !== 0 || e < 0) throw new RangeError("offset is not uint");
+ if (e + t > r) throw new RangeError("Trying to access beyond buffer length");
+ }
+ ea.prototype.readUintLE = ea.prototype.readUIntLE = function(t, r, n) {
+ t = t >>> 0, r = r >>> 0, n || ev(t, r, this.length);
+ let i = this[t], a = 1, o = 0;
+ for (; ++o < r && (a *= 256); ) i += this[t + o] * a;
+ return i;
+ };
+ ea.prototype.readUintBE = ea.prototype.readUIntBE = function(t, r, n) {
+ t = t >>> 0, r = r >>> 0, n || ev(t, r, this.length);
+ let i = this[t + --r], a = 1;
+ for (; r > 0 && (a *= 256); ) i += this[t + --r] * a;
+ return i;
+ };
+ ea.prototype.readUint8 = ea.prototype.readUInt8 = function(t, r) {
+ return t = t >>> 0, r || ev(t, 1, this.length), this[t];
+ };
+ ea.prototype.readUint16LE = ea.prototype.readUInt16LE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 2, this.length), this[t] | this[t + 1] << 8;
+ };
+ ea.prototype.readUint16BE = ea.prototype.readUInt16BE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 2, this.length), this[t] << 8 | this[t + 1];
+ };
+ ea.prototype.readUint32LE = ea.prototype.readUInt32LE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + this[t + 3] * 16777216;
+ };
+ ea.prototype.readUint32BE = ea.prototype.readUInt32BE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 4, this.length), this[t] * 16777216 + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]);
+ };
+ ea.prototype.readBigUInt64LE = N_(function(t) {
+ t = t >>> 0, iA(t, "offset");
+ let r = this[t], n = this[t + 7];
+ (r === void 0 || n === void 0) && Y4(t, this.length - 8);
+ let i = r + this[++t] * 2 ** 8 + this[++t] * 2 ** 16 + this[++t] * 2 ** 24, a = this[++t] + this[++t] * 2 ** 8 + this[++t] * 2 ** 16 + n * 2 ** 24;
+ return BigInt(i) + (BigInt(a) << BigInt(32));
+ });
+ ea.prototype.readBigUInt64BE = N_(function(t) {
+ t = t >>> 0, iA(t, "offset");
+ let r = this[t], n = this[t + 7];
+ (r === void 0 || n === void 0) && Y4(t, this.length - 8);
+ let i = r * 2 ** 24 + this[++t] * 2 ** 16 + this[++t] * 2 ** 8 + this[++t], a = this[++t] * 2 ** 24 + this[++t] * 2 ** 16 + this[++t] * 2 ** 8 + n;
+ return (BigInt(i) << BigInt(32)) + BigInt(a);
+ });
+ ea.prototype.readIntLE = function(t, r, n) {
+ t = t >>> 0, r = r >>> 0, n || ev(t, r, this.length);
+ let i = this[t], a = 1, o = 0;
+ for (; ++o < r && (a *= 256); ) i += this[t + o] * a;
+ return a *= 128, i >= a && (i -= Math.pow(2, 8 * r)), i;
+ };
+ ea.prototype.readIntBE = function(t, r, n) {
+ t = t >>> 0, r = r >>> 0, n || ev(t, r, this.length);
+ let i = r, a = 1, o = this[t + --i];
+ for (; i > 0 && (a *= 256); ) o += this[t + --i] * a;
+ return a *= 128, o >= a && (o -= Math.pow(2, 8 * r)), o;
+ };
+ ea.prototype.readInt8 = function(t, r) {
+ return t = t >>> 0, r || ev(t, 1, this.length), this[t] & 128 ? (255 - this[t] + 1) * -1 : this[t];
+ };
+ ea.prototype.readInt16LE = function(t, r) {
+ t = t >>> 0, r || ev(t, 2, this.length);
+ let n = this[t] | this[t + 1] << 8;
+ return n & 32768 ? n | 4294901760 : n;
+ };
+ ea.prototype.readInt16BE = function(t, r) {
+ t = t >>> 0, r || ev(t, 2, this.length);
+ let n = this[t + 1] | this[t] << 8;
+ return n & 32768 ? n | 4294901760 : n;
+ };
+ ea.prototype.readInt32LE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24;
+ };
+ ea.prototype.readInt32BE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3];
+ };
+ ea.prototype.readBigInt64LE = N_(function(t) {
+ t = t >>> 0, iA(t, "offset");
+ let r = this[t], n = this[t + 7];
+ (r === void 0 || n === void 0) && Y4(t, this.length - 8);
+ let i = this[t + 4] + this[t + 5] * 2 ** 8 + this[t + 6] * 2 ** 16 + (n << 24);
+ return (BigInt(i) << BigInt(32)) + BigInt(r + this[++t] * 2 ** 8 + this[++t] * 2 ** 16 + this[++t] * 2 ** 24);
+ });
+ ea.prototype.readBigInt64BE = N_(function(t) {
+ t = t >>> 0, iA(t, "offset");
+ let r = this[t], n = this[t + 7];
+ (r === void 0 || n === void 0) && Y4(t, this.length - 8);
+ let i = (r << 24) + this[++t] * 2 ** 16 + this[++t] * 2 ** 8 + this[++t];
+ return (BigInt(i) << BigInt(32)) + BigInt(this[++t] * 2 ** 24 + this[++t] * 2 ** 16 + this[++t] * 2 ** 8 + n);
+ });
+ ea.prototype.readFloatLE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 4, this.length), rA.read(this, t, true, 23, 4);
+ };
+ ea.prototype.readFloatBE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 4, this.length), rA.read(this, t, false, 23, 4);
+ };
+ ea.prototype.readDoubleLE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 8, this.length), rA.read(this, t, true, 52, 8);
+ };
+ ea.prototype.readDoubleBE = function(t, r) {
+ return t = t >>> 0, r || ev(t, 8, this.length), rA.read(this, t, false, 52, 8);
+ };
+ function Rp(e, t, r, n, i, a) {
+ if (!ea.isBuffer(e)) throw new TypeError('"buffer" argument must be a Buffer instance');
+ if (t > i || t < a) throw new RangeError('"value" argument is out of bounds');
+ if (r + n > e.length) throw new RangeError("Index out of range");
+ }
+ ea.prototype.writeUintLE = ea.prototype.writeUIntLE = function(t, r, n, i) {
+ if (t = +t, r = r >>> 0, n = n >>> 0, !i) {
+ let s = Math.pow(2, 8 * n) - 1;
+ Rp(this, t, r, n, s, 0);
+ }
+ let a = 1, o = 0;
+ for (this[r] = t & 255; ++o < n && (a *= 256); ) this[r + o] = t / a & 255;
+ return r + n;
+ };
+ ea.prototype.writeUintBE = ea.prototype.writeUIntBE = function(t, r, n, i) {
+ if (t = +t, r = r >>> 0, n = n >>> 0, !i) {
+ let s = Math.pow(2, 8 * n) - 1;
+ Rp(this, t, r, n, s, 0);
+ }
+ let a = n - 1, o = 1;
+ for (this[r + a] = t & 255; --a >= 0 && (o *= 256); ) this[r + a] = t / o & 255;
+ return r + n;
+ };
+ ea.prototype.writeUint8 = ea.prototype.writeUInt8 = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 1, 255, 0), this[r] = t & 255, r + 1;
+ };
+ ea.prototype.writeUint16LE = ea.prototype.writeUInt16LE = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 2, 65535, 0), this[r] = t & 255, this[r + 1] = t >>> 8, r + 2;
+ };
+ ea.prototype.writeUint16BE = ea.prototype.writeUInt16BE = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 2, 65535, 0), this[r] = t >>> 8, this[r + 1] = t & 255, r + 2;
+ };
+ ea.prototype.writeUint32LE = ea.prototype.writeUInt32LE = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 4, 4294967295, 0), this[r + 3] = t >>> 24, this[r + 2] = t >>> 16, this[r + 1] = t >>> 8, this[r] = t & 255, r + 4;
+ };
+ ea.prototype.writeUint32BE = ea.prototype.writeUInt32BE = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 4, 4294967295, 0), this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = t & 255, r + 4;
+ };
+ function uTe(e, t, r, n, i) {
+ vTe(t, n, i, e, r, 7);
+ let a = Number(t & BigInt(4294967295));
+ e[r++] = a, a = a >> 8, e[r++] = a, a = a >> 8, e[r++] = a, a = a >> 8, e[r++] = a;
+ let o = Number(t >> BigInt(32) & BigInt(4294967295));
+ return e[r++] = o, o = o >> 8, e[r++] = o, o = o >> 8, e[r++] = o, o = o >> 8, e[r++] = o, r;
+ }
+ function cTe(e, t, r, n, i) {
+ vTe(t, n, i, e, r, 7);
+ let a = Number(t & BigInt(4294967295));
+ e[r + 7] = a, a = a >> 8, e[r + 6] = a, a = a >> 8, e[r + 5] = a, a = a >> 8, e[r + 4] = a;
+ let o = Number(t >> BigInt(32) & BigInt(4294967295));
+ return e[r + 3] = o, o = o >> 8, e[r + 2] = o, o = o >> 8, e[r + 1] = o, o = o >> 8, e[r] = o, r + 8;
+ }
+ ea.prototype.writeBigUInt64LE = N_(function(t, r = 0) {
+ return uTe(this, t, r, BigInt(0), BigInt("0xffffffffffffffff"));
+ });
+ ea.prototype.writeBigUInt64BE = N_(function(t, r = 0) {
+ return cTe(this, t, r, BigInt(0), BigInt("0xffffffffffffffff"));
+ });
+ ea.prototype.writeIntLE = function(t, r, n, i) {
+ if (t = +t, r = r >>> 0, !i) {
+ let l = Math.pow(2, 8 * n - 1);
+ Rp(this, t, r, n, l - 1, -l);
+ }
+ let a = 0, o = 1, s = 0;
+ for (this[r] = t & 255; ++a < n && (o *= 256); ) t < 0 && s === 0 && this[r + a - 1] !== 0 && (s = 1), this[r + a] = (t / o >> 0) - s & 255;
+ return r + n;
+ };
+ ea.prototype.writeIntBE = function(t, r, n, i) {
+ if (t = +t, r = r >>> 0, !i) {
+ let l = Math.pow(2, 8 * n - 1);
+ Rp(this, t, r, n, l - 1, -l);
+ }
+ let a = n - 1, o = 1, s = 0;
+ for (this[r + a] = t & 255; --a >= 0 && (o *= 256); ) t < 0 && s === 0 && this[r + a + 1] !== 0 && (s = 1), this[r + a] = (t / o >> 0) - s & 255;
+ return r + n;
+ };
+ ea.prototype.writeInt8 = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 1, 127, -128), t < 0 && (t = 255 + t + 1), this[r] = t & 255, r + 1;
+ };
+ ea.prototype.writeInt16LE = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 2, 32767, -32768), this[r] = t & 255, this[r + 1] = t >>> 8, r + 2;
+ };
+ ea.prototype.writeInt16BE = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 2, 32767, -32768), this[r] = t >>> 8, this[r + 1] = t & 255, r + 2;
+ };
+ ea.prototype.writeInt32LE = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 4, 2147483647, -2147483648), this[r] = t & 255, this[r + 1] = t >>> 8, this[r + 2] = t >>> 16, this[r + 3] = t >>> 24, r + 4;
+ };
+ ea.prototype.writeInt32BE = function(t, r, n) {
+ return t = +t, r = r >>> 0, n || Rp(this, t, r, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = t & 255, r + 4;
+ };
+ ea.prototype.writeBigInt64LE = N_(function(t, r = 0) {
+ return uTe(this, t, r, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));
+ });
+ ea.prototype.writeBigInt64BE = N_(function(t, r = 0) {
+ return cTe(this, t, r, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));
+ });
+ function fTe(e, t, r, n, i, a) {
+ if (r + n > e.length) throw new RangeError("Index out of range");
+ if (r < 0) throw new RangeError("Index out of range");
+ }
+ function hTe(e, t, r, n, i) {
+ return t = +t, r = r >>> 0, i || fTe(e, t, r, 4), rA.write(e, t, r, n, 23, 4), r + 4;
+ }
+ ea.prototype.writeFloatLE = function(t, r, n) {
+ return hTe(this, t, r, true, n);
+ };
+ ea.prototype.writeFloatBE = function(t, r, n) {
+ return hTe(this, t, r, false, n);
+ };
+ function dTe(e, t, r, n, i) {
+ return t = +t, r = r >>> 0, i || fTe(e, t, r, 8), rA.write(e, t, r, n, 52, 8), r + 8;
+ }
+ ea.prototype.writeDoubleLE = function(t, r, n) {
+ return dTe(this, t, r, true, n);
+ };
+ ea.prototype.writeDoubleBE = function(t, r, n) {
+ return dTe(this, t, r, false, n);
+ };
+ ea.prototype.copy = function(t, r, n, i) {
+ if (!ea.isBuffer(t)) throw new TypeError("argument should be a Buffer");
+ if (n || (n = 0), !i && i !== 0 && (i = this.length), r >= t.length && (r = t.length), r || (r = 0), i > 0 && i < n && (i = n), i === n || t.length === 0 || this.length === 0) return 0;
+ if (r < 0) throw new RangeError("targetStart out of bounds");
+ if (n < 0 || n >= this.length) throw new RangeError("Index out of range");
+ if (i < 0) throw new RangeError("sourceEnd out of bounds");
+ i > this.length && (i = this.length), t.length - r < i - n && (i = t.length - r + n);
+ let a = i - n;
+ return this === t && typeof Uint8Array.prototype.copyWithin == "function" ? this.copyWithin(r, n, i) : Uint8Array.prototype.set.call(t, this.subarray(n, i), r), a;
+ };
+ ea.prototype.fill = function(t, r, n, i) {
+ if (typeof t == "string") {
+ if (typeof r == "string" ? (i = r, r = 0, n = this.length) : typeof n == "string" && (i = n, n = this.length), i !== void 0 && typeof i != "string") throw new TypeError("encoding must be a string");
+ if (typeof i == "string" && !ea.isEncoding(i)) throw new TypeError("Unknown encoding: " + i);
+ if (t.length === 1) {
+ let o = t.charCodeAt(0);
+ (i === "utf8" && o < 128 || i === "latin1") && (t = o);
+ }
+ } else typeof t == "number" ? t = t & 255 : typeof t == "boolean" && (t = Number(t));
+ if (r < 0 || this.length < r || this.length < n) throw new RangeError("Out of range index");
+ if (n <= r) return this;
+ r = r >>> 0, n = n === void 0 ? this.length : n >>> 0, t || (t = 0);
+ let a;
+ if (typeof t == "number") for (a = r; a < n; ++a) this[a] = t;
+ else {
+ let o = ea.isBuffer(t) ? t : ea.from(t, i), s = o.length;
+ if (s === 0) throw new TypeError('The value "' + t + '" is invalid for argument "value"');
+ for (a = 0; a < n - r; ++a) this[a + r] = o[a % s];
+ }
+ return this;
+ };
+ var tA = {};
+ function EH(e, t, r) {
+ tA[e] = class extends r {
+ constructor() {
+ super(), Object.defineProperty(this, "message", { value: t.apply(this, arguments), writable: true, configurable: true }), this.name = `${this.name} [${e}]`, this.stack, delete this.name;
+ }
+ get code() {
+ return e;
+ }
+ set code(i) {
+ Object.defineProperty(this, "code", { configurable: true, enumerable: true, value: i, writable: true });
+ }
+ toString() {
+ return `${this.name} [${e}]: ${this.message}`;
+ }
+ };
+ }
+ EH("ERR_BUFFER_OUT_OF_BOUNDS", function(e) {
+ return e ? `${e} is outside of buffer bounds` : "Attempt to access memory outside buffer bounds";
+ }, RangeError);
+ EH("ERR_INVALID_ARG_TYPE", function(e, t) {
+ return `The "${e}" argument must be of type number. Received type ${typeof t}`;
+ }, TypeError);
+ EH("ERR_OUT_OF_RANGE", function(e, t, r) {
+ let n = `The value of "${e}" is out of range.`, i = r;
+ return Number.isInteger(r) && Math.abs(r) > 2 ** 32 ? i = iTe(String(r)) : typeof r == "bigint" && (i = String(r), (r > BigInt(2) ** BigInt(32) || r < -(BigInt(2) ** BigInt(32))) && (i = iTe(i)), i += "n"), n += ` It must be ${t}. Received ${i}`, n;
+ }, RangeError);
+ function iTe(e) {
+ let t = "", r = e.length, n = e[0] === "-" ? 1 : 0;
+ for (; r >= n + 4; r -= 3) t = `_${e.slice(r - 3, r)}${t}`;
+ return `${e.slice(0, r)}${t}`;
+ }
+ function yTt(e, t, r) {
+ iA(t, "offset"), (e[t] === void 0 || e[t + r] === void 0) && Y4(t, e.length - (r + 1));
+ }
+ function vTe(e, t, r, n, i, a) {
+ if (e > r || e < t) {
+ let o = typeof t == "bigint" ? "n" : "", s;
+ throw t === 0 || t === BigInt(0) ? s = `>= 0${o} and < 2${o} ** ${(a + 1) * 8}${o}` : s = `>= -(2${o} ** ${(a + 1) * 8 - 1}${o}) and < 2 ** ${(a + 1) * 8 - 1}${o}`, new tA.ERR_OUT_OF_RANGE("value", s, e);
+ }
+ yTt(n, i, a);
+ }
+ function iA(e, t) {
+ if (typeof e != "number") throw new tA.ERR_INVALID_ARG_TYPE(t, "number", e);
+ }
+ function Y4(e, t, r) {
+ throw Math.floor(e) !== e ? (iA(e, r), new tA.ERR_OUT_OF_RANGE("offset", "an integer", e)) : t < 0 ? new tA.ERR_BUFFER_OUT_OF_BOUNDS() : new tA.ERR_OUT_OF_RANGE("offset", `>= ${0} and <= ${t}`, e);
+ }
+ var _Tt = /[^+/0-9A-Za-z-_]/g;
+ function xTt(e) {
+ if (e = e.split("=")[0], e = e.trim().replace(_Tt, ""), e.length < 2) return "";
+ for (; e.length % 4 !== 0; ) e = e + "=";
+ return e;
+ }
+ function AH(e, t) {
+ t = t || 1 / 0;
+ let r, n = e.length, i = null, a = [];
+ for (let o = 0; o < n; ++o) {
+ if (r = e.charCodeAt(o), r > 55295 && r < 57344) {
+ if (!i) {
+ if (r > 56319) {
+ (t -= 3) > -1 && a.push(239, 191, 189);
+ continue;
+ } else if (o + 1 === n) {
+ (t -= 3) > -1 && a.push(239, 191, 189);
+ continue;
+ }
+ i = r;
+ continue;
+ }
+ if (r < 56320) {
+ (t -= 3) > -1 && a.push(239, 191, 189), i = r;
+ continue;
+ }
+ r = (i - 55296 << 10 | r - 56320) + 65536;
+ } else i && (t -= 3) > -1 && a.push(239, 191, 189);
+ if (i = null, r < 128) {
+ if ((t -= 1) < 0) break;
+ a.push(r);
+ } else if (r < 2048) {
+ if ((t -= 2) < 0) break;
+ a.push(r >> 6 | 192, r & 63 | 128);
+ } else if (r < 65536) {
+ if ((t -= 3) < 0) break;
+ a.push(r >> 12 | 224, r >> 6 & 63 | 128, r & 63 | 128);
+ } else if (r < 1114112) {
+ if ((t -= 4) < 0) break;
+ a.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, r & 63 | 128);
+ } else throw new Error("Invalid code point");
+ }
+ return a;
+ }
+ function bTt(e) {
+ let t = [];
+ for (let r = 0; r < e.length; ++r) t.push(e.charCodeAt(r) & 255);
+ return t;
+ }
+ function wTt(e, t) {
+ let r, n, i, a = [];
+ for (let o = 0; o < e.length && !((t -= 2) < 0); ++o) r = e.charCodeAt(o), n = r >> 8, i = r % 256, a.push(i), a.push(n);
+ return a;
+ }
+ function pTe(e) {
+ return bH.toByteArray(xTt(e));
+ }
+ function Z8(e, t, r, n) {
+ let i;
+ for (i = 0; i < n && !(i + r >= t.length || i >= e.length); ++i) t[i + r] = e[i];
+ return i;
+ }
+ function Hm(e, t) {
+ return e instanceof t || e != null && e.constructor != null && e.constructor.name != null && e.constructor.name === t.name;
+ }
+ function kH(e) {
+ return e !== e;
+ }
+ var TTt = function() {
+ let e = "0123456789abcdef", t = new Array(256);
+ for (let r = 0; r < 16; ++r) {
+ let n = r * 16;
+ for (let i = 0; i < 16; ++i) t[n + i] = e[r] + e[i];
+ }
+ return t;
+ }();
+ function N_(e) {
+ return typeof BigInt == "undefined" ? ATt : e;
+ }
+ function ATt() {
+ throw new Error("BigInt not supported");
+ }
+ });
+ var Y8 = ye(($fr, gTe) => {
+ gTe.exports = function() {
+ if (typeof Symbol != "function" || typeof Object.getOwnPropertySymbols != "function") return false;
+ if (typeof Symbol.iterator == "symbol") return true;
+ var t = {}, r = Symbol("test"), n = Object(r);
+ if (typeof r == "string" || Object.prototype.toString.call(r) !== "[object Symbol]" || Object.prototype.toString.call(n) !== "[object Symbol]") return false;
+ var i = 42;
+ t[r] = i;
+ for (var a in t) return false;
+ if (typeof Object.keys == "function" && Object.keys(t).length !== 0 || typeof Object.getOwnPropertyNames == "function" && Object.getOwnPropertyNames(t).length !== 0) return false;
+ var o = Object.getOwnPropertySymbols(t);
+ if (o.length !== 1 || o[0] !== r || !Object.prototype.propertyIsEnumerable.call(t, r)) return false;
+ if (typeof Object.getOwnPropertyDescriptor == "function") {
+ var s = Object.getOwnPropertyDescriptor(t, r);
+ if (s.value !== i || s.enumerable !== true) return false;
+ }
+ return true;
+ };
+ });
+ var K4 = ye((Qfr, mTe) => {
+ var STt = Y8();
+ mTe.exports = function() {
+ return STt() && !!Symbol.toStringTag;
+ };
+ });
+ var CH = ye((ehr, yTe) => {
+ yTe.exports = Object;
+ });
+ var xTe = ye((thr, _Te) => {
+ _Te.exports = Error;
+ });
+ var wTe = ye((rhr, bTe) => {
+ bTe.exports = EvalError;
+ });
+ var ATe = ye((ihr, TTe) => {
+ TTe.exports = RangeError;
+ });
+ var MTe = ye((nhr, STe) => {
+ STe.exports = ReferenceError;
+ });
+ var LH = ye((ahr, ETe) => {
+ ETe.exports = SyntaxError;
+ });
+ var aA = ye((ohr, kTe) => {
+ kTe.exports = TypeError;
+ });
+ var LTe = ye((shr, CTe) => {
+ CTe.exports = URIError;
+ });
+ var ITe = ye((lhr, PTe) => {
+ PTe.exports = Math.abs;
+ });
+ var DTe = ye((uhr, RTe) => {
+ RTe.exports = Math.floor;
+ });
+ var zTe = ye((chr, FTe) => {
+ FTe.exports = Math.max;
+ });
+ var qTe = ye((fhr, OTe) => {
+ OTe.exports = Math.min;
+ });
+ var NTe = ye((hhr, BTe) => {
+ BTe.exports = Math.pow;
+ });
+ var VTe = ye((dhr, UTe) => {
+ UTe.exports = Math.round;
+ });
+ var HTe = ye((vhr, GTe) => {
+ GTe.exports = Number.isNaN || function(t) {
+ return t !== t;
+ };
+ });
+ var WTe = ye((phr, jTe) => {
+ var MTt = HTe();
+ jTe.exports = function(t) {
+ return MTt(t) || t === 0 ? t : t < 0 ? -1 : 1;
+ };
+ });
+ var ZTe = ye((ghr, XTe) => {
+ XTe.exports = Object.getOwnPropertyDescriptor;
+ });
+ var x2 = ye((mhr, YTe) => {
+ var K8 = ZTe();
+ if (K8) try {
+ K8([], "length");
+ } catch (e) {
+ K8 = null;
+ }
+ YTe.exports = K8;
+ });
+ var J4 = ye((yhr, KTe) => {
+ var J8 = Object.defineProperty || false;
+ if (J8) try {
+ J8({}, "a", { value: 1 });
+ } catch (e) {
+ J8 = false;
+ }
+ KTe.exports = J8;
+ });
+ var QTe = ye((_hr, $Te) => {
+ var JTe = typeof Symbol != "undefined" && Symbol, ETt = Y8();
+ $Te.exports = function() {
+ return typeof JTe != "function" || typeof Symbol != "function" || typeof JTe("foo") != "symbol" || typeof Symbol("bar") != "symbol" ? false : ETt();
+ };
+ });
+ var PH = ye((xhr, eAe) => {
+ eAe.exports = typeof Reflect != "undefined" && Reflect.getPrototypeOf || null;
+ });
+ var IH = ye((bhr, tAe) => {
+ var kTt = CH();
+ tAe.exports = kTt.getPrototypeOf || null;
+ });
+ var nAe = ye((whr, iAe) => {
+ var CTt = "Function.prototype.bind called on incompatible ", LTt = Object.prototype.toString, PTt = Math.max, ITt = "[object Function]", rAe = function(t, r) {
+ for (var n = [], i = 0; i < t.length; i += 1) n[i] = t[i];
+ for (var a = 0; a < r.length; a += 1) n[a + t.length] = r[a];
+ return n;
+ }, RTt = function(t, r) {
+ for (var n = [], i = r, a = 0; i < t.length; i += 1, a += 1) n[a] = t[i];
+ return n;
+ }, DTt = function(e, t) {
+ for (var r = "", n = 0; n < e.length; n += 1) r += e[n], n + 1 < e.length && (r += t);
+ return r;
+ };
+ iAe.exports = function(t) {
+ var r = this;
+ if (typeof r != "function" || LTt.apply(r) !== ITt) throw new TypeError(CTt + r);
+ for (var n = RTt(arguments, 1), i, a = function() {
+ if (this instanceof i) {
+ var c = r.apply(this, rAe(n, arguments));
+ return Object(c) === c ? c : this;
+ }
+ return r.apply(t, rAe(n, arguments));
+ }, o = PTt(0, r.length - n.length), s = [], l = 0; l < o; l++) s[l] = "$" + l;
+ if (i = Function("binder", "return function (" + DTt(s, ",") + "){ return binder.apply(this,arguments); }")(a), r.prototype) {
+ var u = function() {
+ };
+ u.prototype = r.prototype, i.prototype = new u(), u.prototype = null;
+ }
+ return i;
+ };
+ });
+ var oA = ye((Thr, aAe) => {
+ var FTt = nAe();
+ aAe.exports = Function.prototype.bind || FTt;
+ });
+ var $8 = ye((Ahr, oAe) => {
+ oAe.exports = Function.prototype.call;
+ });
+ var RH = ye((Shr, sAe) => {
+ sAe.exports = Function.prototype.apply;
+ });
+ var uAe = ye((Mhr, lAe) => {
+ lAe.exports = typeof Reflect != "undefined" && Reflect && Reflect.apply;
+ });
+ var fAe = ye((Ehr, cAe) => {
+ var zTt = oA(), OTt = RH(), qTt = $8(), BTt = uAe();
+ cAe.exports = BTt || zTt.call(qTt, OTt);
+ });
+ var dAe = ye((khr, hAe) => {
+ var NTt = oA(), UTt = aA(), VTt = $8(), GTt = fAe();
+ hAe.exports = function(t) {
+ if (t.length < 1 || typeof t[0] != "function") throw new UTt("a function is required");
+ return GTt(NTt, VTt, t);
+ };
+ });
+ var _Ae = ye((Chr, yAe) => {
+ var HTt = dAe(), vAe = x2(), gAe;
+ try {
+ gAe = [].__proto__ === Array.prototype;
+ } catch (e) {
+ if (!e || typeof e != "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") throw e;
+ }
+ var DH = !!gAe && vAe && vAe(Object.prototype, "__proto__"), mAe = Object, pAe = mAe.getPrototypeOf;
+ yAe.exports = DH && typeof DH.get == "function" ? HTt([DH.get]) : typeof pAe == "function" ? function(t) {
+ return pAe(t == null ? t : mAe(t));
+ } : false;
+ });
+ var AAe = ye((Lhr, TAe) => {
+ var xAe = PH(), bAe = IH(), wAe = _Ae();
+ TAe.exports = xAe ? function(t) {
+ return xAe(t);
+ } : bAe ? function(t) {
+ if (!t || typeof t != "object" && typeof t != "function") throw new TypeError("getProto: not an object");
+ return bAe(t);
+ } : wAe ? function(t) {
+ return wAe(t);
+ } : null;
+ });
+ var MAe = ye((Phr, SAe) => {
+ var jTt = Function.prototype.call, WTt = Object.prototype.hasOwnProperty, XTt = oA();
+ SAe.exports = XTt.call(jTt, WTt);
+ });
+ var tR = ye((Ihr, IAe) => {
+ var lu, ZTt = CH(), YTt = xTe(), KTt = wTe(), JTt = ATe(), $Tt = MTe(), cA = LH(), uA = aA(), QTt = LTe(), eAt = ITe(), tAt = DTe(), rAt = zTe(), iAt = qTe(), nAt = NTe(), aAt = VTe(), oAt = WTe(), LAe = Function, FH = function(e) {
+ try {
+ return LAe('"use strict"; return (' + e + ").constructor;")();
+ } catch (t) {
+ }
+ }, $4 = x2(), sAt = J4(), zH = function() {
+ throw new uA();
+ }, lAt = $4 ? function() {
+ try {
+ return arguments.callee, zH;
+ } catch (e) {
+ try {
+ return $4(arguments, "callee").get;
+ } catch (t) {
+ return zH;
+ }
+ }
+ }() : zH, sA = QTe()(), tv = AAe(), uAt = IH(), cAt = PH(), PAe = RH(), Q4 = $8(), lA = {}, fAt = typeof Uint8Array == "undefined" || !tv ? lu : tv(Uint8Array), b2 = { __proto__: null, "%AggregateError%": typeof AggregateError == "undefined" ? lu : AggregateError, "%Array%": Array, "%ArrayBuffer%": typeof ArrayBuffer == "undefined" ? lu : ArrayBuffer, "%ArrayIteratorPrototype%": sA && tv ? tv([][Symbol.iterator]()) : lu, "%AsyncFromSyncIteratorPrototype%": lu, "%AsyncFunction%": lA, "%AsyncGenerator%": lA, "%AsyncGeneratorFunction%": lA, "%AsyncIteratorPrototype%": lA, "%Atomics%": typeof Atomics == "undefined" ? lu : Atomics, "%BigInt%": typeof BigInt == "undefined" ? lu : BigInt, "%BigInt64Array%": typeof BigInt64Array == "undefined" ? lu : BigInt64Array, "%BigUint64Array%": typeof BigUint64Array == "undefined" ? lu : BigUint64Array, "%Boolean%": Boolean, "%DataView%": typeof DataView == "undefined" ? lu : DataView, "%Date%": Date, "%decodeURI%": decodeURI, "%decodeURIComponent%": decodeURIComponent, "%encodeURI%": encodeURI, "%encodeURIComponent%": encodeURIComponent, "%Error%": YTt, "%eval%": eval, "%EvalError%": KTt, "%Float16Array%": typeof Float16Array == "undefined" ? lu : Float16Array, "%Float32Array%": typeof Float32Array == "undefined" ? lu : Float32Array, "%Float64Array%": typeof Float64Array == "undefined" ? lu : Float64Array, "%FinalizationRegistry%": typeof FinalizationRegistry == "undefined" ? lu : FinalizationRegistry, "%Function%": LAe, "%GeneratorFunction%": lA, "%Int8Array%": typeof Int8Array == "undefined" ? lu : Int8Array, "%Int16Array%": typeof Int16Array == "undefined" ? lu : Int16Array, "%Int32Array%": typeof Int32Array == "undefined" ? lu : Int32Array, "%isFinite%": isFinite, "%isNaN%": isNaN, "%IteratorPrototype%": sA && tv ? tv(tv([][Symbol.iterator]())) : lu, "%JSON%": typeof JSON == "object" ? JSON : lu, "%Map%": typeof Map == "undefined" ? lu : Map, "%MapIteratorPrototype%": typeof Map == "undefined" || !sA || !tv ? lu : tv((/* @__PURE__ */ new Map())[Symbol.iterator]()), "%Math%": Math, "%Number%": Number, "%Object%": ZTt, "%Object.getOwnPropertyDescriptor%": $4, "%parseFloat%": parseFloat, "%parseInt%": parseInt, "%Promise%": typeof Promise == "undefined" ? lu : Promise, "%Proxy%": typeof Proxy == "undefined" ? lu : Proxy, "%RangeError%": JTt, "%ReferenceError%": $Tt, "%Reflect%": typeof Reflect == "undefined" ? lu : Reflect, "%RegExp%": RegExp, "%Set%": typeof Set == "undefined" ? lu : Set, "%SetIteratorPrototype%": typeof Set == "undefined" || !sA || !tv ? lu : tv((/* @__PURE__ */ new Set())[Symbol.iterator]()), "%SharedArrayBuffer%": typeof SharedArrayBuffer == "undefined" ? lu : SharedArrayBuffer, "%String%": String, "%StringIteratorPrototype%": sA && tv ? tv(""[Symbol.iterator]()) : lu, "%Symbol%": sA ? Symbol : lu, "%SyntaxError%": cA, "%ThrowTypeError%": lAt, "%TypedArray%": fAt, "%TypeError%": uA, "%Uint8Array%": typeof Uint8Array == "undefined" ? lu : Uint8Array, "%Uint8ClampedArray%": typeof Uint8ClampedArray == "undefined" ? lu : Uint8ClampedArray, "%Uint16Array%": typeof Uint16Array == "undefined" ? lu : Uint16Array, "%Uint32Array%": typeof Uint32Array == "undefined" ? lu : Uint32Array, "%URIError%": QTt, "%WeakMap%": typeof WeakMap == "undefined" ? lu : WeakMap, "%WeakRef%": typeof WeakRef == "undefined" ? lu : WeakRef, "%WeakSet%": typeof WeakSet == "undefined" ? lu : WeakSet, "%Function.prototype.call%": Q4, "%Function.prototype.apply%": PAe, "%Object.defineProperty%": sAt, "%Object.getPrototypeOf%": uAt, "%Math.abs%": eAt, "%Math.floor%": tAt, "%Math.max%": rAt, "%Math.min%": iAt, "%Math.pow%": nAt, "%Math.round%": aAt, "%Math.sign%": oAt, "%Reflect.getPrototypeOf%": cAt };
+ if (tv) try {
+ null.error;
+ } catch (e) {
+ EAe = tv(tv(e)), b2["%Error.prototype%"] = EAe;
+ }
+ var EAe, hAt = function e(t) {
+ var r;
+ if (t === "%AsyncFunction%") r = FH("async function () {}");
+ else if (t === "%GeneratorFunction%") r = FH("function* () {}");
+ else if (t === "%AsyncGeneratorFunction%") r = FH("async function* () {}");
+ else if (t === "%AsyncGenerator%") {
+ var n = e("%AsyncGeneratorFunction%");
+ n && (r = n.prototype);
+ } else if (t === "%AsyncIteratorPrototype%") {
+ var i = e("%AsyncGenerator%");
+ i && tv && (r = tv(i.prototype));
+ }
+ return b2[t] = r, r;
+ }, kAe = { __proto__: null, "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"], "%ArrayPrototype%": ["Array", "prototype"], "%ArrayProto_entries%": ["Array", "prototype", "entries"], "%ArrayProto_forEach%": ["Array", "prototype", "forEach"], "%ArrayProto_keys%": ["Array", "prototype", "keys"], "%ArrayProto_values%": ["Array", "prototype", "values"], "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"], "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"], "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"], "%BooleanPrototype%": ["Boolean", "prototype"], "%DataViewPrototype%": ["DataView", "prototype"], "%DatePrototype%": ["Date", "prototype"], "%ErrorPrototype%": ["Error", "prototype"], "%EvalErrorPrototype%": ["EvalError", "prototype"], "%Float32ArrayPrototype%": ["Float32Array", "prototype"], "%Float64ArrayPrototype%": ["Float64Array", "prototype"], "%FunctionPrototype%": ["Function", "prototype"], "%Generator%": ["GeneratorFunction", "prototype"], "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"], "%Int8ArrayPrototype%": ["Int8Array", "prototype"], "%Int16ArrayPrototype%": ["Int16Array", "prototype"], "%Int32ArrayPrototype%": ["Int32Array", "prototype"], "%JSONParse%": ["JSON", "parse"], "%JSONStringify%": ["JSON", "stringify"], "%MapPrototype%": ["Map", "prototype"], "%NumberPrototype%": ["Number", "prototype"], "%ObjectPrototype%": ["Object", "prototype"], "%ObjProto_toString%": ["Object", "prototype", "toString"], "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"], "%PromisePrototype%": ["Promise", "prototype"], "%PromiseProto_then%": ["Promise", "prototype", "then"], "%Promise_all%": ["Promise", "all"], "%Promise_reject%": ["Promise", "reject"], "%Promise_resolve%": ["Promise", "resolve"], "%RangeErrorPrototype%": ["RangeError", "prototype"], "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"], "%RegExpPrototype%": ["RegExp", "prototype"], "%SetPrototype%": ["Set", "prototype"], "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"], "%StringPrototype%": ["String", "prototype"], "%SymbolPrototype%": ["Symbol", "prototype"], "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"], "%TypedArrayPrototype%": ["TypedArray", "prototype"], "%TypeErrorPrototype%": ["TypeError", "prototype"], "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"], "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"], "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"], "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"], "%URIErrorPrototype%": ["URIError", "prototype"], "%WeakMapPrototype%": ["WeakMap", "prototype"], "%WeakSetPrototype%": ["WeakSet", "prototype"] }, eE = oA(), Q8 = MAe(), dAt = eE.call(Q4, Array.prototype.concat), vAt = eE.call(PAe, Array.prototype.splice), CAe = eE.call(Q4, String.prototype.replace), eR = eE.call(Q4, String.prototype.slice), pAt = eE.call(Q4, RegExp.prototype.exec), gAt = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g, mAt = /\\(\\)?/g, yAt = function(t) {
+ var r = eR(t, 0, 1), n = eR(t, -1);
+ if (r === "%" && n !== "%") throw new cA("invalid intrinsic syntax, expected closing `%`");
+ if (n === "%" && r !== "%") throw new cA("invalid intrinsic syntax, expected opening `%`");
+ var i = [];
+ return CAe(t, gAt, function(a, o, s, l) {
+ i[i.length] = s ? CAe(l, mAt, "$1") : o || a;
+ }), i;
+ }, _At = function(t, r) {
+ var n = t, i;
+ if (Q8(kAe, n) && (i = kAe[n], n = "%" + i[0] + "%"), Q8(b2, n)) {
+ var a = b2[n];
+ if (a === lA && (a = hAt(n)), typeof a == "undefined" && !r) throw new uA("intrinsic " + t + " exists, but is not available. Please file an issue!");
+ return { alias: i, name: n, value: a };
+ }
+ throw new cA("intrinsic " + t + " does not exist!");
+ };
+ IAe.exports = function(t, r) {
+ if (typeof t != "string" || t.length === 0) throw new uA("intrinsic name must be a non-empty string");
+ if (arguments.length > 1 && typeof r != "boolean") throw new uA('"allowMissing" argument must be a boolean');
+ if (pAt(/^%?[^%]*%?$/, t) === null) throw new cA("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
+ var n = yAt(t), i = n.length > 0 ? n[0] : "", a = _At("%" + i + "%", r), o = a.name, s = a.value, l = false, u = a.alias;
+ u && (i = u[0], vAt(n, dAt([0, 1], u)));
+ for (var c = 1, f = true; c < n.length; c += 1) {
+ var h = n[c], d = eR(h, 0, 1), v = eR(h, -1);
+ if ((d === '"' || d === "'" || d === "`" || v === '"' || v === "'" || v === "`") && d !== v) throw new cA("property names with quotes must have matching quotes");
+ if ((h === "constructor" || !f) && (l = true), i += "." + h, o = "%" + i + "%", Q8(b2, o)) s = b2[o];
+ else if (s != null) {
+ if (!(h in s)) {
+ if (!r) throw new uA("base intrinsic for " + t + " exists, but the property is not available.");
+ return;
+ }
+ if ($4 && c + 1 >= n.length) {
+ var _ = $4(s, h);
+ f = !!_, f && "get" in _ && !("originalValue" in _.get) ? s = _.get : s = s[h];
+ } else f = Q8(s, h), s = s[h];
+ f && !l && (b2[o] = s);
+ }
+ }
+ return s;
+ };
+ });
+ var zAe = ye((Rhr, FAe) => {
+ var RAe = J4(), xAt = LH(), fA = aA(), DAe = x2();
+ FAe.exports = function(t, r, n) {
+ if (!t || typeof t != "object" && typeof t != "function") throw new fA("`obj` must be an object or a function`");
+ if (typeof r != "string" && typeof r != "symbol") throw new fA("`property` must be a string or a symbol`");
+ if (arguments.length > 3 && typeof arguments[3] != "boolean" && arguments[3] !== null) throw new fA("`nonEnumerable`, if provided, must be a boolean or null");
+ if (arguments.length > 4 && typeof arguments[4] != "boolean" && arguments[4] !== null) throw new fA("`nonWritable`, if provided, must be a boolean or null");
+ if (arguments.length > 5 && typeof arguments[5] != "boolean" && arguments[5] !== null) throw new fA("`nonConfigurable`, if provided, must be a boolean or null");
+ if (arguments.length > 6 && typeof arguments[6] != "boolean") throw new fA("`loose`, if provided, must be a boolean");
+ var i = arguments.length > 3 ? arguments[3] : null, a = arguments.length > 4 ? arguments[4] : null, o = arguments.length > 5 ? arguments[5] : null, s = arguments.length > 6 ? arguments[6] : false, l = !!DAe && DAe(t, r);
+ if (RAe) RAe(t, r, { configurable: o === null && l ? l.configurable : !o, enumerable: i === null && l ? l.enumerable : !i, value: n, writable: a === null && l ? l.writable : !a });
+ else if (s || !i && !a && !o) t[r] = n;
+ else throw new xAt("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");
+ };
+ });
+ var qH = ye((Dhr, qAe) => {
+ var OH = J4(), OAe = function() {
+ return !!OH;
+ };
+ OAe.hasArrayLengthDefineBug = function() {
+ if (!OH) return null;
+ try {
+ return OH([], "length", { value: 1 }).length !== 1;
+ } catch (t) {
+ return true;
+ }
+ };
+ qAe.exports = OAe;
+ });
+ var GAe = ye((Fhr, VAe) => {
+ var bAt = tR(), BAe = zAe(), wAt = qH()(), NAe = x2(), UAe = aA(), TAt = bAt("%Math.floor%");
+ VAe.exports = function(t, r) {
+ if (typeof t != "function") throw new UAe("`fn` is not a function");
+ if (typeof r != "number" || r < 0 || r > 4294967295 || TAt(r) !== r) throw new UAe("`length` must be a positive 32-bit integer");
+ var n = arguments.length > 2 && !!arguments[2], i = true, a = true;
+ if ("length" in t && NAe) {
+ var o = NAe(t, "length");
+ o && !o.configurable && (i = false), o && !o.writable && (a = false);
+ }
+ return (i || a || !n) && (wAt ? BAe(t, "length", r, true, true) : BAe(t, "length", r)), t;
+ };
+ });
+ var tE = ye((zhr, rR) => {
+ var BH = oA(), iR = tR(), AAt = GAe(), SAt = aA(), WAe = iR("%Function.prototype.apply%"), XAe = iR("%Function.prototype.call%"), ZAe = iR("%Reflect.apply%", true) || BH.call(XAe, WAe), HAe = J4(), MAt = iR("%Math.max%");
+ rR.exports = function(t) {
+ if (typeof t != "function") throw new SAt("a function is required");
+ var r = ZAe(BH, XAe, arguments);
+ return AAt(r, 1 + MAt(0, t.length - (arguments.length - 1)), true);
+ };
+ var jAe = function() {
+ return ZAe(BH, WAe, arguments);
+ };
+ HAe ? HAe(rR.exports, "apply", { value: jAe }) : rR.exports.apply = jAe;
+ });
+ var hA = ye((Ohr, JAe) => {
+ var YAe = tR(), KAe = tE(), EAt = KAe(YAe("String.prototype.indexOf"));
+ JAe.exports = function(t, r) {
+ var n = YAe(t, !!r);
+ return typeof n == "function" && EAt(t, ".prototype.") > -1 ? KAe(n) : n;
+ };
+ });
+ var e5e = ye((qhr, QAe) => {
+ var kAt = K4()(), CAt = hA(), NH = CAt("Object.prototype.toString"), nR = function(t) {
+ return kAt && t && typeof t == "object" && Symbol.toStringTag in t ? false : NH(t) === "[object Arguments]";
+ }, $Ae = function(t) {
+ return nR(t) ? true : t !== null && typeof t == "object" && typeof t.length == "number" && t.length >= 0 && NH(t) !== "[object Array]" && NH(t.callee) === "[object Function]";
+ }, LAt = function() {
+ return nR(arguments);
+ }();
+ nR.isLegacyArguments = $Ae;
+ QAe.exports = LAt ? nR : $Ae;
+ });
+ var i5e = ye((Bhr, r5e) => {
+ var PAt = Object.prototype.toString, IAt = Function.prototype.toString, RAt = /^\s*(?:function)?\*/, t5e = K4()(), UH = Object.getPrototypeOf, DAt = function() {
+ if (!t5e) return false;
+ try {
+ return Function("return function*() {}")();
+ } catch (e) {
+ }
+ }, VH;
+ r5e.exports = function(t) {
+ if (typeof t != "function") return false;
+ if (RAt.test(IAt.call(t))) return true;
+ if (!t5e) {
+ var r = PAt.call(t);
+ return r === "[object GeneratorFunction]";
+ }
+ if (!UH) return false;
+ if (typeof VH == "undefined") {
+ var n = DAt();
+ VH = n ? UH(n) : false;
+ }
+ return UH(t) === VH;
+ };
+ });
+ var s5e = ye((Nhr, o5e) => {
+ var a5e = Function.prototype.toString, dA = typeof Reflect == "object" && Reflect !== null && Reflect.apply, HH, aR;
+ if (typeof dA == "function" && typeof Object.defineProperty == "function") try {
+ HH = Object.defineProperty({}, "length", { get: function() {
+ throw aR;
+ } }), aR = {}, dA(function() {
+ throw 42;
+ }, null, HH);
+ } catch (e) {
+ e !== aR && (dA = null);
+ }
+ else dA = null;
+ var FAt = /^\s*class\b/, jH = function(t) {
+ try {
+ var r = a5e.call(t);
+ return FAt.test(r);
+ } catch (n) {
+ return false;
+ }
+ }, GH = function(t) {
+ try {
+ return jH(t) ? false : (a5e.call(t), true);
+ } catch (r) {
+ return false;
+ }
+ }, oR = Object.prototype.toString, zAt = "[object Object]", OAt = "[object Function]", qAt = "[object GeneratorFunction]", BAt = "[object HTMLAllCollection]", NAt = "[object HTML document.all class]", UAt = "[object HTMLCollection]", VAt = typeof Symbol == "function" && !!Symbol.toStringTag, GAt = !(0 in [,]), WH = function() {
+ return false;
+ };
+ typeof document == "object" && (n5e = document.all, oR.call(n5e) === oR.call(document.all) && (WH = function(t) {
+ if ((GAt || !t) && (typeof t == "undefined" || typeof t == "object")) try {
+ var r = oR.call(t);
+ return (r === BAt || r === NAt || r === UAt || r === zAt) && t("") == null;
+ } catch (n) {
+ }
+ return false;
+ }));
+ var n5e;
+ o5e.exports = dA ? function(t) {
+ if (WH(t)) return true;
+ if (!t || typeof t != "function" && typeof t != "object") return false;
+ try {
+ dA(t, null, HH);
+ } catch (r) {
+ if (r !== aR) return false;
+ }
+ return !jH(t) && GH(t);
+ } : function(t) {
+ if (WH(t)) return true;
+ if (!t || typeof t != "function" && typeof t != "object") return false;
+ if (VAt) return GH(t);
+ if (jH(t)) return false;
+ var r = oR.call(t);
+ return r !== OAt && r !== qAt && !/^\[object HTML/.test(r) ? false : GH(t);
+ };
+ });
+ var XH = ye((Uhr, u5e) => {
+ var HAt = s5e(), jAt = Object.prototype.toString, l5e = Object.prototype.hasOwnProperty, WAt = function(t, r, n) {
+ for (var i = 0, a = t.length; i < a; i++) l5e.call(t, i) && (n == null ? r(t[i], i, t) : r.call(n, t[i], i, t));
+ }, XAt = function(t, r, n) {
+ for (var i = 0, a = t.length; i < a; i++) n == null ? r(t.charAt(i), i, t) : r.call(n, t.charAt(i), i, t);
+ }, ZAt = function(t, r, n) {
+ for (var i in t) l5e.call(t, i) && (n == null ? r(t[i], i, t) : r.call(n, t[i], i, t));
+ }, YAt = function(t, r, n) {
+ if (!HAt(r)) throw new TypeError("iterator must be a function");
+ var i;
+ arguments.length >= 3 && (i = n), jAt.call(t) === "[object Array]" ? WAt(t, r, i) : typeof t == "string" ? XAt(t, r, i) : ZAt(t, r, i);
+ };
+ u5e.exports = YAt;
+ });
+ var YH = ye((Vhr, c5e) => {
+ var ZH = ["BigInt64Array", "BigUint64Array", "Float32Array", "Float64Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray"], KAt = typeof globalThis == "undefined" ? window : globalThis;
+ c5e.exports = function() {
+ for (var t = [], r = 0; r < ZH.length; r++) typeof KAt[ZH[r]] == "function" && (t[t.length] = ZH[r]);
+ return t;
+ };
+ });
+ var p5e = ye((Ghr, v5e) => {
+ var lR = XH(), JAt = YH(), f5e = tE(), $H = hA(), sR = x2(), $At = $H("Object.prototype.toString"), d5e = K4()(), h5e = typeof globalThis == "undefined" ? window : globalThis, JH = JAt(), QH = $H("String.prototype.slice"), KH = Object.getPrototypeOf, QAt = $H("Array.prototype.indexOf", true) || function(t, r) {
+ for (var n = 0; n < t.length; n += 1) if (t[n] === r) return n;
+ return -1;
+ }, uR = { __proto__: null };
+ d5e && sR && KH ? lR(JH, function(e) {
+ var t = new h5e[e]();
+ if (Symbol.toStringTag in t) {
+ var r = KH(t), n = sR(r, Symbol.toStringTag);
+ if (!n) {
+ var i = KH(r);
+ n = sR(i, Symbol.toStringTag);
+ }
+ uR["$" + e] = f5e(n.get);
+ }
+ }) : lR(JH, function(e) {
+ var t = new h5e[e](), r = t.slice || t.set;
+ r && (uR["$" + e] = f5e(r));
+ });
+ var e5t = function(t) {
+ var r = false;
+ return lR(uR, function(n, i) {
+ if (!r) try {
+ "$" + n(t) === i && (r = QH(i, 1));
+ } catch (a) {
+ }
+ }), r;
+ }, t5t = function(t) {
+ var r = false;
+ return lR(uR, function(n, i) {
+ if (!r) try {
+ n(t), r = QH(i, 1);
+ } catch (a) {
+ }
+ }), r;
+ };
+ v5e.exports = function(t) {
+ if (!t || typeof t != "object") return false;
+ if (!d5e) {
+ var r = QH($At(t), 8, -1);
+ return QAt(JH, r) > -1 ? r : r !== "Object" ? false : t5t(t);
+ }
+ return sR ? e5t(t) : null;
+ };
+ });
+ var b5e = ye((Hhr, x5e) => {
+ var g5e = XH(), r5t = YH(), tj = hA(), i5t = tj("Object.prototype.toString"), m5e = K4()(), cR = x2(), n5t = typeof globalThis == "undefined" ? window : globalThis, y5e = r5t(), a5t = tj("Array.prototype.indexOf", true) || function(t, r) {
+ for (var n = 0; n < t.length; n += 1) if (t[n] === r) return n;
+ return -1;
+ }, o5t = tj("String.prototype.slice"), _5e = {}, ej = Object.getPrototypeOf;
+ m5e && cR && ej && g5e(y5e, function(e) {
+ var t = new n5t[e]();
+ if (Symbol.toStringTag in t) {
+ var r = ej(t), n = cR(r, Symbol.toStringTag);
+ if (!n) {
+ var i = ej(r);
+ n = cR(i, Symbol.toStringTag);
+ }
+ _5e[e] = n.get;
+ }
+ });
+ var s5t = function(t) {
+ var r = false;
+ return g5e(_5e, function(n, i) {
+ if (!r) try {
+ r = n.call(t) === i;
+ } catch (a) {
+ }
+ }), r;
+ };
+ x5e.exports = function(t) {
+ if (!t || typeof t != "object") return false;
+ if (!m5e || !(Symbol.toStringTag in t)) {
+ var r = o5t(i5t(t), 8, -1);
+ return a5t(y5e, r) > -1;
+ }
+ return cR ? s5t(t) : false;
+ };
+ });
+ var nj = ye((uu) => {
+ var l5t = e5e(), u5t = i5e(), Wg = p5e(), w5e = b5e();
+ function vA(e) {
+ return e.call.bind(e);
+ }
+ var T5e = typeof BigInt != "undefined", A5e = typeof Symbol != "undefined", K0 = vA(Object.prototype.toString), c5t = vA(Number.prototype.valueOf), f5t = vA(String.prototype.valueOf), h5t = vA(Boolean.prototype.valueOf);
+ T5e && (S5e = vA(BigInt.prototype.valueOf));
+ var S5e;
+ A5e && (M5e = vA(Symbol.prototype.valueOf));
+ var M5e;
+ function iE(e, t) {
+ if (typeof e != "object") return false;
+ try {
+ return t(e), true;
+ } catch (r) {
+ return false;
+ }
+ }
+ uu.isArgumentsObject = l5t;
+ uu.isGeneratorFunction = u5t;
+ uu.isTypedArray = w5e;
+ function d5t(e) {
+ return typeof Promise != "undefined" && e instanceof Promise || e !== null && typeof e == "object" && typeof e.then == "function" && typeof e.catch == "function";
+ }
+ uu.isPromise = d5t;
+ function v5t(e) {
+ return typeof ArrayBuffer != "undefined" && ArrayBuffer.isView ? ArrayBuffer.isView(e) : w5e(e) || k5e(e);
+ }
+ uu.isArrayBufferView = v5t;
+ function p5t(e) {
+ return Wg(e) === "Uint8Array";
+ }
+ uu.isUint8Array = p5t;
+ function g5t(e) {
+ return Wg(e) === "Uint8ClampedArray";
+ }
+ uu.isUint8ClampedArray = g5t;
+ function m5t(e) {
+ return Wg(e) === "Uint16Array";
+ }
+ uu.isUint16Array = m5t;
+ function y5t(e) {
+ return Wg(e) === "Uint32Array";
+ }
+ uu.isUint32Array = y5t;
+ function _5t(e) {
+ return Wg(e) === "Int8Array";
+ }
+ uu.isInt8Array = _5t;
+ function x5t(e) {
+ return Wg(e) === "Int16Array";
+ }
+ uu.isInt16Array = x5t;
+ function b5t(e) {
+ return Wg(e) === "Int32Array";
+ }
+ uu.isInt32Array = b5t;
+ function w5t(e) {
+ return Wg(e) === "Float32Array";
+ }
+ uu.isFloat32Array = w5t;
+ function T5t(e) {
+ return Wg(e) === "Float64Array";
+ }
+ uu.isFloat64Array = T5t;
+ function A5t(e) {
+ return Wg(e) === "BigInt64Array";
+ }
+ uu.isBigInt64Array = A5t;
+ function S5t(e) {
+ return Wg(e) === "BigUint64Array";
+ }
+ uu.isBigUint64Array = S5t;
+ function fR(e) {
+ return K0(e) === "[object Map]";
+ }
+ fR.working = typeof Map != "undefined" && fR(/* @__PURE__ */ new Map());
+ function M5t(e) {
+ return typeof Map == "undefined" ? false : fR.working ? fR(e) : e instanceof Map;
+ }
+ uu.isMap = M5t;
+ function hR(e) {
+ return K0(e) === "[object Set]";
+ }
+ hR.working = typeof Set != "undefined" && hR(/* @__PURE__ */ new Set());
+ function E5t(e) {
+ return typeof Set == "undefined" ? false : hR.working ? hR(e) : e instanceof Set;
+ }
+ uu.isSet = E5t;
+ function dR(e) {
+ return K0(e) === "[object WeakMap]";
+ }
+ dR.working = typeof WeakMap != "undefined" && dR(/* @__PURE__ */ new WeakMap());
+ function k5t(e) {
+ return typeof WeakMap == "undefined" ? false : dR.working ? dR(e) : e instanceof WeakMap;
+ }
+ uu.isWeakMap = k5t;
+ function ij(e) {
+ return K0(e) === "[object WeakSet]";
+ }
+ ij.working = typeof WeakSet != "undefined" && ij(/* @__PURE__ */ new WeakSet());
+ function C5t(e) {
+ return ij(e);
+ }
+ uu.isWeakSet = C5t;
+ function vR(e) {
+ return K0(e) === "[object ArrayBuffer]";
+ }
+ vR.working = typeof ArrayBuffer != "undefined" && vR(new ArrayBuffer());
+ function E5e(e) {
+ return typeof ArrayBuffer == "undefined" ? false : vR.working ? vR(e) : e instanceof ArrayBuffer;
+ }
+ uu.isArrayBuffer = E5e;
+ function pR(e) {
+ return K0(e) === "[object DataView]";
+ }
+ pR.working = typeof ArrayBuffer != "undefined" && typeof DataView != "undefined" && pR(new DataView(new ArrayBuffer(1), 0, 1));
+ function k5e(e) {
+ return typeof DataView == "undefined" ? false : pR.working ? pR(e) : e instanceof DataView;
+ }
+ uu.isDataView = k5e;
+ var rj = typeof SharedArrayBuffer != "undefined" ? SharedArrayBuffer : void 0;
+ function rE(e) {
+ return K0(e) === "[object SharedArrayBuffer]";
+ }
+ function C5e(e) {
+ return typeof rj == "undefined" ? false : (typeof rE.working == "undefined" && (rE.working = rE(new rj())), rE.working ? rE(e) : e instanceof rj);
+ }
+ uu.isSharedArrayBuffer = C5e;
+ function L5t(e) {
+ return K0(e) === "[object AsyncFunction]";
+ }
+ uu.isAsyncFunction = L5t;
+ function P5t(e) {
+ return K0(e) === "[object Map Iterator]";
+ }
+ uu.isMapIterator = P5t;
+ function I5t(e) {
+ return K0(e) === "[object Set Iterator]";
+ }
+ uu.isSetIterator = I5t;
+ function R5t(e) {
+ return K0(e) === "[object Generator]";
+ }
+ uu.isGeneratorObject = R5t;
+ function D5t(e) {
+ return K0(e) === "[object WebAssembly.Module]";
+ }
+ uu.isWebAssemblyCompiledModule = D5t;
+ function L5e(e) {
+ return iE(e, c5t);
+ }
+ uu.isNumberObject = L5e;
+ function P5e(e) {
+ return iE(e, f5t);
+ }
+ uu.isStringObject = P5e;
+ function I5e(e) {
+ return iE(e, h5t);
+ }
+ uu.isBooleanObject = I5e;
+ function R5e(e) {
+ return T5e && iE(e, S5e);
+ }
+ uu.isBigIntObject = R5e;
+ function D5e(e) {
+ return A5e && iE(e, M5e);
+ }
+ uu.isSymbolObject = D5e;
+ function F5t(e) {
+ return L5e(e) || P5e(e) || I5e(e) || R5e(e) || D5e(e);
+ }
+ uu.isBoxedPrimitive = F5t;
+ function z5t(e) {
+ return typeof Uint8Array != "undefined" && (E5e(e) || C5e(e));
+ }
+ uu.isAnyArrayBuffer = z5t;
+ ["isProxy", "isExternal", "isModuleNamespaceObject"].forEach(function(e) {
+ Object.defineProperty(uu, e, { enumerable: false, value: function() {
+ throw new Error(e + " is not supported in userland");
+ } });
+ });
+ });
+ var aj = ye((Whr, F5e) => {
+ F5e.exports = function(t) {
+ return t && typeof t == "object" && typeof t.copy == "function" && typeof t.fill == "function" && typeof t.readUInt8 == "function";
+ };
+ });
+ var fj = ye((cu) => {
+ var z5e = Object.getOwnPropertyDescriptors || function(t) {
+ for (var r = Object.keys(t), n = {}, i = 0; i < r.length; i++) n[r[i]] = Object.getOwnPropertyDescriptor(t, r[i]);
+ return n;
+ }, O5t = /%[sdj%]/g;
+ cu.format = function(e) {
+ if (!wR(e)) {
+ for (var t = [], r = 0; r < arguments.length; r++) t.push(U_(arguments[r]));
+ return t.join(" ");
+ }
+ for (var r = 1, n = arguments, i = n.length, a = String(e).replace(O5t, function(s) {
+ if (s === "%%") return "%";
+ if (r >= i) return s;
+ switch (s) {
+ case "%s":
+ return String(n[r++]);
+ case "%d":
+ return Number(n[r++]);
+ case "%j":
+ try {
+ return JSON.stringify(n[r++]);
+ } catch (l) {
+ return "[Circular]";
+ }
+ default:
+ return s;
+ }
+ }), o = n[r]; r < i; o = n[++r]) bR(o) || !pA(o) ? a += " " + o : a += " " + U_(o);
+ return a;
+ };
+ cu.deprecate = function(e, t) {
+ if (typeof process != "undefined" && process.noDeprecation === true) return e;
+ if (typeof process == "undefined") return function() {
+ return cu.deprecate(e, t).apply(this, arguments);
+ };
+ var r = false;
+ function n() {
+ if (!r) {
+ if (process.throwDeprecation) throw new Error(t);
+ process.traceDeprecation ? console.trace(t) : console.error(t), r = true;
+ }
+ return e.apply(this, arguments);
+ }
+ return n;
+ };
+ var gR = {}, O5e = /^$/;
+ mR = "false", mR = mR.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase(), O5e = new RegExp("^" + mR + "$", "i");
+ var mR;
+ cu.debuglog = function(e) {
+ if (e = e.toUpperCase(), !gR[e]) if (O5e.test(e)) {
+ var t = process.pid;
+ gR[e] = function() {
+ var r = cu.format.apply(cu, arguments);
+ console.error("%s %d: %s", e, t, r);
+ };
+ } else gR[e] = function() {
+ };
+ return gR[e];
+ };
+ function U_(e, t) {
+ var r = { seen: [], stylize: B5t };
+ return arguments.length >= 3 && (r.depth = arguments[2]), arguments.length >= 4 && (r.colors = arguments[3]), uj(t) ? r.showHidden = t : t && cu._extend(r, t), T2(r.showHidden) && (r.showHidden = false), T2(r.depth) && (r.depth = 2), T2(r.colors) && (r.colors = false), T2(r.customInspect) && (r.customInspect = true), r.colors && (r.stylize = q5t), _R(r, e, r.depth);
+ }
+ cu.inspect = U_;
+ U_.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] };
+ U_.styles = { special: "cyan", number: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", date: "magenta", regexp: "red" };
+ function q5t(e, t) {
+ var r = U_.styles[t];
+ return r ? "\x1B[" + U_.colors[r][0] + "m" + e + "\x1B[" + U_.colors[r][1] + "m" : e;
+ }
+ function B5t(e, t) {
+ return e;
+ }
+ function N5t(e) {
+ var t = {};
+ return e.forEach(function(r, n) {
+ t[r] = true;
+ }), t;
+ }
+ function _R(e, t, r) {
+ if (e.customInspect && t && yR(t.inspect) && t.inspect !== cu.inspect && !(t.constructor && t.constructor.prototype === t)) {
+ var n = t.inspect(r, e);
+ return wR(n) || (n = _R(e, n, r)), n;
+ }
+ var i = U5t(e, t);
+ if (i) return i;
+ var a = Object.keys(t), o = N5t(a);
+ if (e.showHidden && (a = Object.getOwnPropertyNames(t)), aE(t) && (a.indexOf("message") >= 0 || a.indexOf("description") >= 0)) return oj(t);
+ if (a.length === 0) {
+ if (yR(t)) {
+ var s = t.name ? ": " + t.name : "";
+ return e.stylize("[Function" + s + "]", "special");
+ }
+ if (nE(t)) return e.stylize(RegExp.prototype.toString.call(t), "regexp");
+ if (xR(t)) return e.stylize(Date.prototype.toString.call(t), "date");
+ if (aE(t)) return oj(t);
+ }
+ var l = "", u = false, c = ["{", "}"];
+ if (q5e(t) && (u = true, c = ["[", "]"]), yR(t)) {
+ var f = t.name ? ": " + t.name : "";
+ l = " [Function" + f + "]";
+ }
+ if (nE(t) && (l = " " + RegExp.prototype.toString.call(t)), xR(t) && (l = " " + Date.prototype.toUTCString.call(t)), aE(t) && (l = " " + oj(t)), a.length === 0 && (!u || t.length == 0)) return c[0] + l + c[1];
+ if (r < 0) return nE(t) ? e.stylize(RegExp.prototype.toString.call(t), "regexp") : e.stylize("[Object]", "special");
+ e.seen.push(t);
+ var h;
+ return u ? h = V5t(e, t, r, o, a) : h = a.map(function(d) {
+ return lj(e, t, r, o, d, u);
+ }), e.seen.pop(), G5t(h, l, c);
+ }
+ function U5t(e, t) {
+ if (T2(t)) return e.stylize("undefined", "undefined");
+ if (wR(t)) {
+ var r = "'" + JSON.stringify(t).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
+ return e.stylize(r, "string");
+ }
+ if (B5e(t)) return e.stylize("" + t, "number");
+ if (uj(t)) return e.stylize("" + t, "boolean");
+ if (bR(t)) return e.stylize("null", "null");
+ }
+ function oj(e) {
+ return "[" + Error.prototype.toString.call(e) + "]";
+ }
+ function V5t(e, t, r, n, i) {
+ for (var a = [], o = 0, s = t.length; o < s; ++o) N5e(t, String(o)) ? a.push(lj(e, t, r, n, String(o), true)) : a.push("");
+ return i.forEach(function(l) {
+ l.match(/^\d+$/) || a.push(lj(e, t, r, n, l, true));
+ }), a;
+ }
+ function lj(e, t, r, n, i, a) {
+ var o, s, l;
+ if (l = Object.getOwnPropertyDescriptor(t, i) || { value: t[i] }, l.get ? l.set ? s = e.stylize("[Getter/Setter]", "special") : s = e.stylize("[Getter]", "special") : l.set && (s = e.stylize("[Setter]", "special")), N5e(n, i) || (o = "[" + i + "]"), s || (e.seen.indexOf(l.value) < 0 ? (bR(r) ? s = _R(e, l.value, null) : s = _R(e, l.value, r - 1), s.indexOf(`
+`) > -1 && (a ? s = s.split(`
+`).map(function(u) {
+ return " " + u;
+ }).join(`
+`).slice(2) : s = `
+` + s.split(`
+`).map(function(u) {
+ return " " + u;
+ }).join(`
+`))) : s = e.stylize("[Circular]", "special")), T2(o)) {
+ if (a && i.match(/^\d+$/)) return s;
+ o = JSON.stringify("" + i), o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (o = o.slice(1, -1), o = e.stylize(o, "name")) : (o = o.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), o = e.stylize(o, "string"));
+ }
+ return o + ": " + s;
+ }
+ function G5t(e, t, r) {
+ var n = 0, i = e.reduce(function(a, o) {
+ return n++, o.indexOf(`
+`) >= 0 && n++, a + o.replace(/\u001b\[\d\d?m/g, "").length + 1;
+ }, 0);
+ return i > 60 ? r[0] + (t === "" ? "" : t + `
+ `) + " " + e.join(`,
+ `) + " " + r[1] : r[0] + t + " " + e.join(", ") + " " + r[1];
+ }
+ cu.types = nj();
+ function q5e(e) {
+ return Array.isArray(e);
+ }
+ cu.isArray = q5e;
+ function uj(e) {
+ return typeof e == "boolean";
+ }
+ cu.isBoolean = uj;
+ function bR(e) {
+ return e === null;
+ }
+ cu.isNull = bR;
+ function H5t(e) {
+ return e == null;
+ }
+ cu.isNullOrUndefined = H5t;
+ function B5e(e) {
+ return typeof e == "number";
+ }
+ cu.isNumber = B5e;
+ function wR(e) {
+ return typeof e == "string";
+ }
+ cu.isString = wR;
+ function j5t(e) {
+ return typeof e == "symbol";
+ }
+ cu.isSymbol = j5t;
+ function T2(e) {
+ return e === void 0;
+ }
+ cu.isUndefined = T2;
+ function nE(e) {
+ return pA(e) && cj(e) === "[object RegExp]";
+ }
+ cu.isRegExp = nE;
+ cu.types.isRegExp = nE;
+ function pA(e) {
+ return typeof e == "object" && e !== null;
+ }
+ cu.isObject = pA;
+ function xR(e) {
+ return pA(e) && cj(e) === "[object Date]";
+ }
+ cu.isDate = xR;
+ cu.types.isDate = xR;
+ function aE(e) {
+ return pA(e) && (cj(e) === "[object Error]" || e instanceof Error);
+ }
+ cu.isError = aE;
+ cu.types.isNativeError = aE;
+ function yR(e) {
+ return typeof e == "function";
+ }
+ cu.isFunction = yR;
+ function W5t(e) {
+ return e === null || typeof e == "boolean" || typeof e == "number" || typeof e == "string" || typeof e == "symbol" || typeof e == "undefined";
+ }
+ cu.isPrimitive = W5t;
+ cu.isBuffer = aj();
+ function cj(e) {
+ return Object.prototype.toString.call(e);
+ }
+ function sj(e) {
+ return e < 10 ? "0" + e.toString(10) : e.toString(10);
+ }
+ var X5t = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
+ function Z5t() {
+ var e = /* @__PURE__ */ new Date(), t = [sj(e.getHours()), sj(e.getMinutes()), sj(e.getSeconds())].join(":");
+ return [e.getDate(), X5t[e.getMonth()], t].join(" ");
+ }
+ cu.log = function() {
+ console.log("%s - %s", Z5t(), cu.format.apply(cu, arguments));
+ };
+ cu.inherits = Zy();
+ cu._extend = function(e, t) {
+ if (!t || !pA(t)) return e;
+ for (var r = Object.keys(t), n = r.length; n--; ) e[r[n]] = t[r[n]];
+ return e;
+ };
+ function N5e(e, t) {
+ return Object.prototype.hasOwnProperty.call(e, t);
+ }
+ var w2 = typeof Symbol != "undefined" ? Symbol("util.promisify.custom") : void 0;
+ cu.promisify = function(t) {
+ if (typeof t != "function") throw new TypeError('The "original" argument must be of type Function');
+ if (w2 && t[w2]) {
+ var r = t[w2];
+ if (typeof r != "function") throw new TypeError('The "util.promisify.custom" argument must be of type Function');
+ return Object.defineProperty(r, w2, { value: r, enumerable: false, writable: false, configurable: true }), r;
+ }
+ function r() {
+ for (var n, i, a = new Promise(function(l, u) {
+ n = l, i = u;
+ }), o = [], s = 0; s < arguments.length; s++) o.push(arguments[s]);
+ o.push(function(l, u) {
+ l ? i(l) : n(u);
+ });
+ try {
+ t.apply(this, o);
+ } catch (l) {
+ i(l);
+ }
+ return a;
+ }
+ return Object.setPrototypeOf(r, Object.getPrototypeOf(t)), w2 && Object.defineProperty(r, w2, { value: r, enumerable: false, writable: false, configurable: true }), Object.defineProperties(r, z5e(t));
+ };
+ cu.promisify.custom = w2;
+ function Y5t(e, t) {
+ if (!e) {
+ var r = new Error("Promise was rejected with a falsy value");
+ r.reason = e, e = r;
+ }
+ return t(e);
+ }
+ function K5t(e) {
+ if (typeof e != "function") throw new TypeError('The "original" argument must be of type Function');
+ function t() {
+ for (var r = [], n = 0; n < arguments.length; n++) r.push(arguments[n]);
+ var i = r.pop();
+ if (typeof i != "function") throw new TypeError("The last argument must be of type Function");
+ var a = this, o = function() {
+ return i.apply(a, arguments);
+ };
+ e.apply(this, r).then(function(s) {
+ process.nextTick(o.bind(null, null, s));
+ }, function(s) {
+ process.nextTick(Y5t.bind(null, s, o));
+ });
+ }
+ return Object.setPrototypeOf(t, Object.getPrototypeOf(e)), Object.defineProperties(t, z5e(e)), t;
+ }
+ cu.callbackify = K5t;
+ });
+ var H5e = ye((Zhr, G5e) => {
+ function U5e(e, t) {
+ var r = Object.keys(e);
+ if (Object.getOwnPropertySymbols) {
+ var n = Object.getOwnPropertySymbols(e);
+ t && (n = n.filter(function(i) {
+ return Object.getOwnPropertyDescriptor(e, i).enumerable;
+ })), r.push.apply(r, n);
+ }
+ return r;
+ }
+ function J5t(e) {
+ for (var t = 1; t < arguments.length; t++) {
+ var r = arguments[t] != null ? arguments[t] : {};
+ t % 2 ? U5e(Object(r), true).forEach(function(n) {
+ $5t(e, n, r[n]);
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : U5e(Object(r)).forEach(function(n) {
+ Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n));
+ });
+ }
+ return e;
+ }
+ function $5t(e, t, r) {
+ return t in e ? Object.defineProperty(e, t, { value: r, enumerable: true, configurable: true, writable: true }) : e[t] = r, e;
+ }
+ function Q5t(e, t) {
+ if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
+ }
+ function V5e(e, t) {
+ for (var r = 0; r < t.length; r++) {
+ var n = t[r];
+ n.enumerable = n.enumerable || false, n.configurable = true, "value" in n && (n.writable = true), Object.defineProperty(e, n.key, n);
+ }
+ }
+ function eSt(e, t, r) {
+ return t && V5e(e.prototype, t), e;
+ }
+ var tSt = _2(), TR = tSt.Buffer, rSt = fj(), hj = rSt.inspect, iSt = hj && hj.custom || "inspect";
+ function nSt(e, t, r) {
+ TR.prototype.copy.call(e, t, r);
+ }
+ G5e.exports = function() {
+ function e() {
+ Q5t(this, e), this.head = null, this.tail = null, this.length = 0;
+ }
+ return eSt(e, [{ key: "push", value: function(r) {
+ var n = { data: r, next: null };
+ this.length > 0 ? this.tail.next = n : this.head = n, this.tail = n, ++this.length;
+ } }, { key: "unshift", value: function(r) {
+ var n = { data: r, next: this.head };
+ this.length === 0 && (this.tail = n), this.head = n, ++this.length;
+ } }, { key: "shift", value: function() {
+ if (this.length !== 0) {
+ var r = this.head.data;
+ return this.length === 1 ? this.head = this.tail = null : this.head = this.head.next, --this.length, r;
+ }
+ } }, { key: "clear", value: function() {
+ this.head = this.tail = null, this.length = 0;
+ } }, { key: "join", value: function(r) {
+ if (this.length === 0) return "";
+ for (var n = this.head, i = "" + n.data; n = n.next; ) i += r + n.data;
+ return i;
+ } }, { key: "concat", value: function(r) {
+ if (this.length === 0) return TR.alloc(0);
+ for (var n = TR.allocUnsafe(r >>> 0), i = this.head, a = 0; i; ) nSt(i.data, n, a), a += i.data.length, i = i.next;
+ return n;
+ } }, { key: "consume", value: function(r, n) {
+ var i;
+ return r < this.head.data.length ? (i = this.head.data.slice(0, r), this.head.data = this.head.data.slice(r)) : r === this.head.data.length ? i = this.shift() : i = n ? this._getString(r) : this._getBuffer(r), i;
+ } }, { key: "first", value: function() {
+ return this.head.data;
+ } }, { key: "_getString", value: function(r) {
+ var n = this.head, i = 1, a = n.data;
+ for (r -= a.length; n = n.next; ) {
+ var o = n.data, s = r > o.length ? o.length : r;
+ if (s === o.length ? a += o : a += o.slice(0, r), r -= s, r === 0) {
+ s === o.length ? (++i, n.next ? this.head = n.next : this.head = this.tail = null) : (this.head = n, n.data = o.slice(s));
+ break;
+ }
+ ++i;
+ }
+ return this.length -= i, a;
+ } }, { key: "_getBuffer", value: function(r) {
+ var n = TR.allocUnsafe(r), i = this.head, a = 1;
+ for (i.data.copy(n), r -= i.data.length; i = i.next; ) {
+ var o = i.data, s = r > o.length ? o.length : r;
+ if (o.copy(n, n.length - r, 0, s), r -= s, r === 0) {
+ s === o.length ? (++a, i.next ? this.head = i.next : this.head = this.tail = null) : (this.head = i, i.data = o.slice(s));
+ break;
+ }
+ ++a;
+ }
+ return this.length -= a, n;
+ } }, { key: iSt, value: function(r, n) {
+ return hj(this, J5t({}, n, { depth: 0, customInspect: false }));
+ } }]), e;
+ }();
+ });
+ var vj = ye((Yhr, W5e) => {
+ function aSt(e, t) {
+ var r = this, n = this._readableState && this._readableState.destroyed, i = this._writableState && this._writableState.destroyed;
+ return n || i ? (t ? t(e) : e && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = true, process.nextTick(dj, this, e)) : process.nextTick(dj, this, e)), this) : (this._readableState && (this._readableState.destroyed = true), this._writableState && (this._writableState.destroyed = true), this._destroy(e || null, function(a) {
+ !t && a ? r._writableState ? r._writableState.errorEmitted ? process.nextTick(AR, r) : (r._writableState.errorEmitted = true, process.nextTick(j5e, r, a)) : process.nextTick(j5e, r, a) : t ? (process.nextTick(AR, r), t(a)) : process.nextTick(AR, r);
+ }), this);
+ }
+ function j5e(e, t) {
+ dj(e, t), AR(e);
+ }
+ function AR(e) {
+ e._writableState && !e._writableState.emitClose || e._readableState && !e._readableState.emitClose || e.emit("close");
+ }
+ function oSt() {
+ this._readableState && (this._readableState.destroyed = false, this._readableState.reading = false, this._readableState.ended = false, this._readableState.endEmitted = false), this._writableState && (this._writableState.destroyed = false, this._writableState.ended = false, this._writableState.ending = false, this._writableState.finalCalled = false, this._writableState.prefinished = false, this._writableState.finished = false, this._writableState.errorEmitted = false);
+ }
+ function dj(e, t) {
+ e.emit("error", t);
+ }
+ function sSt(e, t) {
+ var r = e._readableState, n = e._writableState;
+ r && r.autoDestroy || n && n.autoDestroy ? e.destroy(t) : e.emit("error", t);
+ }
+ W5e.exports = { destroy: aSt, undestroy: oSt, errorOrDestroy: sSt };
+ });
+ var A2 = ye((Khr, Y5e) => {
+ function lSt(e, t) {
+ e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t;
+ }
+ var Z5e = {};
+ function J0(e, t, r) {
+ r || (r = Error);
+ function n(a, o, s) {
+ return typeof t == "string" ? t : t(a, o, s);
+ }
+ var i = function(a) {
+ lSt(o, a);
+ function o(s, l, u) {
+ return a.call(this, n(s, l, u)) || this;
+ }
+ return o;
+ }(r);
+ i.prototype.name = r.name, i.prototype.code = e, Z5e[e] = i;
+ }
+ function X5e(e, t) {
+ if (Array.isArray(e)) {
+ var r = e.length;
+ return e = e.map(function(n) {
+ return String(n);
+ }), r > 2 ? "one of ".concat(t, " ").concat(e.slice(0, r - 1).join(", "), ", or ") + e[r - 1] : r === 2 ? "one of ".concat(t, " ").concat(e[0], " or ").concat(e[1]) : "of ".concat(t, " ").concat(e[0]);
+ } else return "of ".concat(t, " ").concat(String(e));
+ }
+ function uSt(e, t, r) {
+ return e.substr(0, t.length) === t;
+ }
+ function cSt(e, t, r) {
+ return (r === void 0 || r > e.length) && (r = e.length), e.substring(r - t.length, r) === t;
+ }
+ function fSt(e, t, r) {
+ return typeof r != "number" && (r = 0), r + t.length > e.length ? false : e.indexOf(t, r) !== -1;
+ }
+ J0("ERR_INVALID_OPT_VALUE", function(e, t) {
+ return 'The value "' + t + '" is invalid for option "' + e + '"';
+ }, TypeError);
+ J0("ERR_INVALID_ARG_TYPE", function(e, t, r) {
+ var n;
+ typeof t == "string" && uSt(t, "not ") ? (n = "must not be", t = t.replace(/^not /, "")) : n = "must be";
+ var i;
+ if (cSt(e, " argument")) i = "The ".concat(e, " ").concat(n, " ").concat(X5e(t, "type"));
+ else {
+ var a = fSt(e, ".") ? "property" : "argument";
+ i = 'The "'.concat(e, '" ').concat(a, " ").concat(n, " ").concat(X5e(t, "type"));
+ }
+ return i += ". Received type ".concat(typeof r), i;
+ }, TypeError);
+ J0("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");
+ J0("ERR_METHOD_NOT_IMPLEMENTED", function(e) {
+ return "The " + e + " method is not implemented";
+ });
+ J0("ERR_STREAM_PREMATURE_CLOSE", "Premature close");
+ J0("ERR_STREAM_DESTROYED", function(e) {
+ return "Cannot call " + e + " after a stream was destroyed";
+ });
+ J0("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");
+ J0("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");
+ J0("ERR_STREAM_WRITE_AFTER_END", "write after end");
+ J0("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);
+ J0("ERR_UNKNOWN_ENCODING", function(e) {
+ return "Unknown encoding: " + e;
+ }, TypeError);
+ J0("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");
+ Y5e.exports.codes = Z5e;
+ });
+ var pj = ye((Jhr, K5e) => {
+ var hSt = A2().codes.ERR_INVALID_OPT_VALUE;
+ function dSt(e, t, r) {
+ return e.highWaterMark != null ? e.highWaterMark : t ? e[r] : null;
+ }
+ function vSt(e, t, r, n) {
+ var i = dSt(t, n, r);
+ if (i != null) {
+ if (!(isFinite(i) && Math.floor(i) === i) || i < 0) {
+ var a = n ? r : "highWaterMark";
+ throw new hSt(a, i);
+ }
+ return Math.floor(i);
+ }
+ return e.objectMode ? 16 : 16 * 1024;
+ }
+ K5e.exports = { getHighWaterMark: vSt };
+ });
+ var $5e = ye(($hr, J5e) => {
+ J5e.exports = pSt;
+ function pSt(e, t) {
+ if (gj("noDeprecation")) return e;
+ var r = false;
+ function n() {
+ if (!r) {
+ if (gj("throwDeprecation")) throw new Error(t);
+ gj("traceDeprecation") ? console.trace(t) : console.warn(t), r = true;
+ }
+ return e.apply(this, arguments);
+ }
+ return n;
+ }
+ function gj(e) {
+ try {
+ if (!window.localStorage) return false;
+ } catch (r) {
+ return false;
+ }
+ var t = window.localStorage[e];
+ return t == null ? false : String(t).toLowerCase() === "true";
+ }
+ });
+ var _j = ye((Qhr, nSe) => {
+ nSe.exports = Bh;
+ function eSe(e) {
+ var t = this;
+ this.next = null, this.entry = null, this.finish = function() {
+ VSt(t, e);
+ };
+ }
+ var gA;
+ Bh.WritableState = sE;
+ var gSt = { deprecate: $5e() }, tSe = yH(), MR = _2().Buffer, mSt = window.Uint8Array || function() {
+ };
+ function ySt(e) {
+ return MR.from(e);
+ }
+ function _St(e) {
+ return MR.isBuffer(e) || e instanceof mSt;
+ }
+ var yj = vj(), xSt = pj(), bSt = xSt.getHighWaterMark, V_ = A2().codes, wSt = V_.ERR_INVALID_ARG_TYPE, TSt = V_.ERR_METHOD_NOT_IMPLEMENTED, ASt = V_.ERR_MULTIPLE_CALLBACK, SSt = V_.ERR_STREAM_CANNOT_PIPE, MSt = V_.ERR_STREAM_DESTROYED, ESt = V_.ERR_STREAM_NULL_VALUES, kSt = V_.ERR_STREAM_WRITE_AFTER_END, CSt = V_.ERR_UNKNOWN_ENCODING, mA = yj.errorOrDestroy;
+ Zy()(Bh, tSe);
+ function LSt() {
+ }
+ function sE(e, t, r) {
+ gA = gA || S2(), e = e || {}, typeof r != "boolean" && (r = t instanceof gA), this.objectMode = !!e.objectMode, r && (this.objectMode = this.objectMode || !!e.writableObjectMode), this.highWaterMark = bSt(this, e, "writableHighWaterMark", r), this.finalCalled = false, this.needDrain = false, this.ending = false, this.ended = false, this.finished = false, this.destroyed = false;
+ var n = e.decodeStrings === false;
+ this.decodeStrings = !n, this.defaultEncoding = e.defaultEncoding || "utf8", this.length = 0, this.writing = false, this.corked = 0, this.sync = true, this.bufferProcessing = false, this.onwrite = function(i) {
+ OSt(t, i);
+ }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = false, this.errorEmitted = false, this.emitClose = e.emitClose !== false, this.autoDestroy = !!e.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new eSe(this);
+ }
+ sE.prototype.getBuffer = function() {
+ for (var t = this.bufferedRequest, r = []; t; ) r.push(t), t = t.next;
+ return r;
+ };
+ (function() {
+ try {
+ Object.defineProperty(sE.prototype, "buffer", { get: gSt.deprecate(function() {
+ return this.getBuffer();
+ }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") });
+ } catch (e) {
+ }
+ })();
+ var SR;
+ typeof Symbol == "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] == "function" ? (SR = Function.prototype[Symbol.hasInstance], Object.defineProperty(Bh, Symbol.hasInstance, { value: function(t) {
+ return SR.call(this, t) ? true : this !== Bh ? false : t && t._writableState instanceof sE;
+ } })) : SR = function(t) {
+ return t instanceof this;
+ };
+ function Bh(e) {
+ gA = gA || S2();
+ var t = this instanceof gA;
+ if (!t && !SR.call(Bh, this)) return new Bh(e);
+ this._writableState = new sE(e, this, t), this.writable = true, e && (typeof e.write == "function" && (this._write = e.write), typeof e.writev == "function" && (this._writev = e.writev), typeof e.destroy == "function" && (this._destroy = e.destroy), typeof e.final == "function" && (this._final = e.final)), tSe.call(this);
+ }
+ Bh.prototype.pipe = function() {
+ mA(this, new SSt());
+ };
+ function PSt(e, t) {
+ var r = new kSt();
+ mA(e, r), process.nextTick(t, r);
+ }
+ function ISt(e, t, r, n) {
+ var i;
+ return r === null ? i = new ESt() : typeof r != "string" && !t.objectMode && (i = new wSt("chunk", ["string", "Buffer"], r)), i ? (mA(e, i), process.nextTick(n, i), false) : true;
+ }
+ Bh.prototype.write = function(e, t, r) {
+ var n = this._writableState, i = false, a = !n.objectMode && _St(e);
+ return a && !MR.isBuffer(e) && (e = ySt(e)), typeof t == "function" && (r = t, t = null), a ? t = "buffer" : t || (t = n.defaultEncoding), typeof r != "function" && (r = LSt), n.ending ? PSt(this, r) : (a || ISt(this, n, e, r)) && (n.pendingcb++, i = DSt(this, n, a, e, t, r)), i;
+ };
+ Bh.prototype.cork = function() {
+ this._writableState.corked++;
+ };
+ Bh.prototype.uncork = function() {
+ var e = this._writableState;
+ e.corked && (e.corked--, !e.writing && !e.corked && !e.bufferProcessing && e.bufferedRequest && rSe(this, e));
+ };
+ Bh.prototype.setDefaultEncoding = function(t) {
+ if (typeof t == "string" && (t = t.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((t + "").toLowerCase()) > -1)) throw new CSt(t);
+ return this._writableState.defaultEncoding = t, this;
+ };
+ Object.defineProperty(Bh.prototype, "writableBuffer", { enumerable: false, get: function() {
+ return this._writableState && this._writableState.getBuffer();
+ } });
+ function RSt(e, t, r) {
+ return !e.objectMode && e.decodeStrings !== false && typeof t == "string" && (t = MR.from(t, r)), t;
+ }
+ Object.defineProperty(Bh.prototype, "writableHighWaterMark", { enumerable: false, get: function() {
+ return this._writableState.highWaterMark;
+ } });
+ function DSt(e, t, r, n, i, a) {
+ if (!r) {
+ var o = RSt(t, n, i);
+ n !== o && (r = true, i = "buffer", n = o);
+ }
+ var s = t.objectMode ? 1 : n.length;
+ t.length += s;
+ var l = t.length < t.highWaterMark;
+ if (l || (t.needDrain = true), t.writing || t.corked) {
+ var u = t.lastBufferedRequest;
+ t.lastBufferedRequest = { chunk: n, encoding: i, isBuf: r, callback: a, next: null }, u ? u.next = t.lastBufferedRequest : t.bufferedRequest = t.lastBufferedRequest, t.bufferedRequestCount += 1;
+ } else mj(e, t, false, s, n, i, a);
+ return l;
+ }
+ function mj(e, t, r, n, i, a, o) {
+ t.writelen = n, t.writecb = o, t.writing = true, t.sync = true, t.destroyed ? t.onwrite(new MSt("write")) : r ? e._writev(i, t.onwrite) : e._write(i, a, t.onwrite), t.sync = false;
+ }
+ function FSt(e, t, r, n, i) {
+ --t.pendingcb, r ? (process.nextTick(i, n), process.nextTick(oE, e, t), e._writableState.errorEmitted = true, mA(e, n)) : (i(n), e._writableState.errorEmitted = true, mA(e, n), oE(e, t));
+ }
+ function zSt(e) {
+ e.writing = false, e.writecb = null, e.length -= e.writelen, e.writelen = 0;
+ }
+ function OSt(e, t) {
+ var r = e._writableState, n = r.sync, i = r.writecb;
+ if (typeof i != "function") throw new ASt();
+ if (zSt(r), t) FSt(e, r, n, t, i);
+ else {
+ var a = iSe(r) || e.destroyed;
+ !a && !r.corked && !r.bufferProcessing && r.bufferedRequest && rSe(e, r), n ? process.nextTick(Q5e, e, r, a, i) : Q5e(e, r, a, i);
+ }
+ }
+ function Q5e(e, t, r, n) {
+ r || qSt(e, t), t.pendingcb--, n(), oE(e, t);
+ }
+ function qSt(e, t) {
+ t.length === 0 && t.needDrain && (t.needDrain = false, e.emit("drain"));
+ }
+ function rSe(e, t) {
+ t.bufferProcessing = true;
+ var r = t.bufferedRequest;
+ if (e._writev && r && r.next) {
+ var n = t.bufferedRequestCount, i = new Array(n), a = t.corkedRequestsFree;
+ a.entry = r;
+ for (var o = 0, s = true; r; ) i[o] = r, r.isBuf || (s = false), r = r.next, o += 1;
+ i.allBuffers = s, mj(e, t, true, t.length, i, "", a.finish), t.pendingcb++, t.lastBufferedRequest = null, a.next ? (t.corkedRequestsFree = a.next, a.next = null) : t.corkedRequestsFree = new eSe(t), t.bufferedRequestCount = 0;
+ } else {
+ for (; r; ) {
+ var l = r.chunk, u = r.encoding, c = r.callback, f = t.objectMode ? 1 : l.length;
+ if (mj(e, t, false, f, l, u, c), r = r.next, t.bufferedRequestCount--, t.writing) break;
+ }
+ r === null && (t.lastBufferedRequest = null);
+ }
+ t.bufferedRequest = r, t.bufferProcessing = false;
+ }
+ Bh.prototype._write = function(e, t, r) {
+ r(new TSt("_write()"));
+ };
+ Bh.prototype._writev = null;
+ Bh.prototype.end = function(e, t, r) {
+ var n = this._writableState;
+ return typeof e == "function" ? (r = e, e = null, t = null) : typeof t == "function" && (r = t, t = null), e != null && this.write(e, t), n.corked && (n.corked = 1, this.uncork()), n.ending || USt(this, n, r), this;
+ };
+ Object.defineProperty(Bh.prototype, "writableLength", { enumerable: false, get: function() {
+ return this._writableState.length;
+ } });
+ function iSe(e) {
+ return e.ending && e.length === 0 && e.bufferedRequest === null && !e.finished && !e.writing;
+ }
+ function BSt(e, t) {
+ e._final(function(r) {
+ t.pendingcb--, r && mA(e, r), t.prefinished = true, e.emit("prefinish"), oE(e, t);
+ });
+ }
+ function NSt(e, t) {
+ !t.prefinished && !t.finalCalled && (typeof e._final == "function" && !t.destroyed ? (t.pendingcb++, t.finalCalled = true, process.nextTick(BSt, e, t)) : (t.prefinished = true, e.emit("prefinish")));
+ }
+ function oE(e, t) {
+ var r = iSe(t);
+ if (r && (NSt(e, t), t.pendingcb === 0 && (t.finished = true, e.emit("finish"), t.autoDestroy))) {
+ var n = e._readableState;
+ (!n || n.autoDestroy && n.endEmitted) && e.destroy();
+ }
+ return r;
+ }
+ function USt(e, t, r) {
+ t.ending = true, oE(e, t), r && (t.finished ? process.nextTick(r) : e.once("finish", r)), t.ended = true, e.writable = false;
+ }
+ function VSt(e, t, r) {
+ var n = e.entry;
+ for (e.entry = null; n; ) {
+ var i = n.callback;
+ t.pendingcb--, i(r), n = n.next;
+ }
+ t.corkedRequestsFree.next = e;
+ }
+ Object.defineProperty(Bh.prototype, "destroyed", { enumerable: false, get: function() {
+ return this._writableState === void 0 ? false : this._writableState.destroyed;
+ }, set: function(t) {
+ this._writableState && (this._writableState.destroyed = t);
+ } });
+ Bh.prototype.destroy = yj.destroy;
+ Bh.prototype._undestroy = yj.undestroy;
+ Bh.prototype._destroy = function(e, t) {
+ t(e);
+ };
+ });
+ var S2 = ye((edr, oSe) => {
+ var GSt = Object.keys || function(e) {
+ var t = [];
+ for (var r in e) t.push(r);
+ return t;
+ };
+ oSe.exports = jm;
+ var aSe = wj(), bj = _j();
+ Zy()(jm, aSe);
+ for (xj = GSt(bj.prototype), ER = 0; ER < xj.length; ER++) kR = xj[ER], jm.prototype[kR] || (jm.prototype[kR] = bj.prototype[kR]);
+ var xj, kR, ER;
+ function jm(e) {
+ if (!(this instanceof jm)) return new jm(e);
+ aSe.call(this, e), bj.call(this, e), this.allowHalfOpen = true, e && (e.readable === false && (this.readable = false), e.writable === false && (this.writable = false), e.allowHalfOpen === false && (this.allowHalfOpen = false, this.once("end", HSt)));
+ }
+ Object.defineProperty(jm.prototype, "writableHighWaterMark", { enumerable: false, get: function() {
+ return this._writableState.highWaterMark;
+ } });
+ Object.defineProperty(jm.prototype, "writableBuffer", { enumerable: false, get: function() {
+ return this._writableState && this._writableState.getBuffer();
+ } });
+ Object.defineProperty(jm.prototype, "writableLength", { enumerable: false, get: function() {
+ return this._writableState.length;
+ } });
+ function HSt() {
+ this._writableState.ended || process.nextTick(jSt, this);
+ }
+ function jSt(e) {
+ e.end();
+ }
+ Object.defineProperty(jm.prototype, "destroyed", { enumerable: false, get: function() {
+ return this._readableState === void 0 || this._writableState === void 0 ? false : this._readableState.destroyed && this._writableState.destroyed;
+ }, set: function(t) {
+ this._readableState === void 0 || this._writableState === void 0 || (this._readableState.destroyed = t, this._writableState.destroyed = t);
+ } });
+ });
+ var uSe = ye((Tj, lSe) => {
+ var CR = _2(), Wm = CR.Buffer;
+ function sSe(e, t) {
+ for (var r in e) t[r] = e[r];
+ }
+ Wm.from && Wm.alloc && Wm.allocUnsafe && Wm.allocUnsafeSlow ? lSe.exports = CR : (sSe(CR, Tj), Tj.Buffer = M2);
+ function M2(e, t, r) {
+ return Wm(e, t, r);
+ }
+ M2.prototype = Object.create(Wm.prototype);
+ sSe(Wm, M2);
+ M2.from = function(e, t, r) {
+ if (typeof e == "number") throw new TypeError("Argument must not be a number");
+ return Wm(e, t, r);
+ };
+ M2.alloc = function(e, t, r) {
+ if (typeof e != "number") throw new TypeError("Argument must be a number");
+ var n = Wm(e);
+ return t !== void 0 ? typeof r == "string" ? n.fill(t, r) : n.fill(t) : n.fill(0), n;
+ };
+ M2.allocUnsafe = function(e) {
+ if (typeof e != "number") throw new TypeError("Argument must be a number");
+ return Wm(e);
+ };
+ M2.allocUnsafeSlow = function(e) {
+ if (typeof e != "number") throw new TypeError("Argument must be a number");
+ return CR.SlowBuffer(e);
+ };
+ });
+ var Mj = ye((fSe) => {
+ var Sj = uSe().Buffer, cSe = Sj.isEncoding || function(e) {
+ switch (e = "" + e, e && e.toLowerCase()) {
+ case "hex":
+ case "utf8":
+ case "utf-8":
+ case "ascii":
+ case "binary":
+ case "base64":
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ case "raw":
+ return true;
+ default:
+ return false;
+ }
+ };
+ function WSt(e) {
+ if (!e) return "utf8";
+ for (var t; ; ) switch (e) {
+ case "utf8":
+ case "utf-8":
+ return "utf8";
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return "utf16le";
+ case "latin1":
+ case "binary":
+ return "latin1";
+ case "base64":
+ case "ascii":
+ case "hex":
+ return e;
+ default:
+ if (t) return;
+ e = ("" + e).toLowerCase(), t = true;
+ }
+ }
+ function XSt(e) {
+ var t = WSt(e);
+ if (typeof t != "string" && (Sj.isEncoding === cSe || !cSe(e))) throw new Error("Unknown encoding: " + e);
+ return t || e;
+ }
+ fSe.StringDecoder = lE;
+ function lE(e) {
+ this.encoding = XSt(e);
+ var t;
+ switch (this.encoding) {
+ case "utf16le":
+ this.text = QSt, this.end = eMt, t = 4;
+ break;
+ case "utf8":
+ this.fillLast = KSt, t = 4;
+ break;
+ case "base64":
+ this.text = tMt, this.end = rMt, t = 3;
+ break;
+ default:
+ this.write = iMt, this.end = nMt;
+ return;
+ }
+ this.lastNeed = 0, this.lastTotal = 0, this.lastChar = Sj.allocUnsafe(t);
+ }
+ lE.prototype.write = function(e) {
+ if (e.length === 0) return "";
+ var t, r;
+ if (this.lastNeed) {
+ if (t = this.fillLast(e), t === void 0) return "";
+ r = this.lastNeed, this.lastNeed = 0;
+ } else r = 0;
+ return r < e.length ? t ? t + this.text(e, r) : this.text(e, r) : t || "";
+ };
+ lE.prototype.end = $St;
+ lE.prototype.text = JSt;
+ lE.prototype.fillLast = function(e) {
+ if (this.lastNeed <= e.length) return e.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
+ e.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, e.length), this.lastNeed -= e.length;
+ };
+ function Aj(e) {
+ return e <= 127 ? 0 : e >> 5 === 6 ? 2 : e >> 4 === 14 ? 3 : e >> 3 === 30 ? 4 : e >> 6 === 2 ? -1 : -2;
+ }
+ function ZSt(e, t, r) {
+ var n = t.length - 1;
+ if (n < r) return 0;
+ var i = Aj(t[n]);
+ return i >= 0 ? (i > 0 && (e.lastNeed = i - 1), i) : --n < r || i === -2 ? 0 : (i = Aj(t[n]), i >= 0 ? (i > 0 && (e.lastNeed = i - 2), i) : --n < r || i === -2 ? 0 : (i = Aj(t[n]), i >= 0 ? (i > 0 && (i === 2 ? i = 0 : e.lastNeed = i - 3), i) : 0));
+ }
+ function YSt(e, t, r) {
+ if ((t[0] & 192) !== 128) return e.lastNeed = 0, "�";
+ if (e.lastNeed > 1 && t.length > 1) {
+ if ((t[1] & 192) !== 128) return e.lastNeed = 1, "�";
+ if (e.lastNeed > 2 && t.length > 2 && (t[2] & 192) !== 128) return e.lastNeed = 2, "�";
+ }
+ }
+ function KSt(e) {
+ var t = this.lastTotal - this.lastNeed, r = YSt(this, e);
+ if (r !== void 0) return r;
+ if (this.lastNeed <= e.length) return e.copy(this.lastChar, t, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
+ e.copy(this.lastChar, t, 0, e.length), this.lastNeed -= e.length;
+ }
+ function JSt(e, t) {
+ var r = ZSt(this, e, t);
+ if (!this.lastNeed) return e.toString("utf8", t);
+ this.lastTotal = r;
+ var n = e.length - (r - this.lastNeed);
+ return e.copy(this.lastChar, 0, n), e.toString("utf8", t, n);
+ }
+ function $St(e) {
+ var t = e && e.length ? this.write(e) : "";
+ return this.lastNeed ? t + "�" : t;
+ }
+ function QSt(e, t) {
+ if ((e.length - t) % 2 === 0) {
+ var r = e.toString("utf16le", t);
+ if (r) {
+ var n = r.charCodeAt(r.length - 1);
+ if (n >= 55296 && n <= 56319) return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = e[e.length - 2], this.lastChar[1] = e[e.length - 1], r.slice(0, -1);
+ }
+ return r;
+ }
+ return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = e[e.length - 1], e.toString("utf16le", t, e.length - 1);
+ }
+ function eMt(e) {
+ var t = e && e.length ? this.write(e) : "";
+ if (this.lastNeed) {
+ var r = this.lastTotal - this.lastNeed;
+ return t + this.lastChar.toString("utf16le", 0, r);
+ }
+ return t;
+ }
+ function tMt(e, t) {
+ var r = (e.length - t) % 3;
+ return r === 0 ? e.toString("base64", t) : (this.lastNeed = 3 - r, this.lastTotal = 3, r === 1 ? this.lastChar[0] = e[e.length - 1] : (this.lastChar[0] = e[e.length - 2], this.lastChar[1] = e[e.length - 1]), e.toString("base64", t, e.length - r));
+ }
+ function rMt(e) {
+ var t = e && e.length ? this.write(e) : "";
+ return this.lastNeed ? t + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : t;
+ }
+ function iMt(e) {
+ return e.toString(this.encoding);
+ }
+ function nMt(e) {
+ return e && e.length ? this.write(e) : "";
+ }
+ });
+ var LR = ye((rdr, vSe) => {
+ var hSe = A2().codes.ERR_STREAM_PREMATURE_CLOSE;
+ function aMt(e) {
+ var t = false;
+ return function() {
+ if (!t) {
+ t = true;
+ for (var r = arguments.length, n = new Array(r), i = 0; i < r; i++) n[i] = arguments[i];
+ e.apply(this, n);
+ }
+ };
+ }
+ function oMt() {
+ }
+ function sMt(e) {
+ return e.setHeader && typeof e.abort == "function";
+ }
+ function dSe(e, t, r) {
+ if (typeof t == "function") return dSe(e, null, t);
+ t || (t = {}), r = aMt(r || oMt);
+ var n = t.readable || t.readable !== false && e.readable, i = t.writable || t.writable !== false && e.writable, a = function() {
+ e.writable || s();
+ }, o = e._writableState && e._writableState.finished, s = function() {
+ i = false, o = true, n || r.call(e);
+ }, l = e._readableState && e._readableState.endEmitted, u = function() {
+ n = false, l = true, i || r.call(e);
+ }, c = function(v) {
+ r.call(e, v);
+ }, f = function() {
+ var v;
+ if (n && !l) return (!e._readableState || !e._readableState.ended) && (v = new hSe()), r.call(e, v);
+ if (i && !o) return (!e._writableState || !e._writableState.ended) && (v = new hSe()), r.call(e, v);
+ }, h = function() {
+ e.req.on("finish", s);
+ };
+ return sMt(e) ? (e.on("complete", s), e.on("abort", f), e.req ? h() : e.on("request", h)) : i && !e._writableState && (e.on("end", a), e.on("close", a)), e.on("end", u), e.on("finish", s), t.error !== false && e.on("error", c), e.on("close", f), function() {
+ e.removeListener("complete", s), e.removeListener("abort", f), e.removeListener("request", h), e.req && e.req.removeListener("finish", s), e.removeListener("end", a), e.removeListener("close", a), e.removeListener("finish", s), e.removeListener("end", u), e.removeListener("error", c), e.removeListener("close", f);
+ };
+ }
+ vSe.exports = dSe;
+ });
+ var gSe = ye((idr, pSe) => {
+ var PR;
+ function G_(e, t, r) {
+ return t in e ? Object.defineProperty(e, t, { value: r, enumerable: true, configurable: true, writable: true }) : e[t] = r, e;
+ }
+ var lMt = LR(), H_ = Symbol("lastResolve"), E2 = Symbol("lastReject"), uE = Symbol("error"), IR = Symbol("ended"), k2 = Symbol("lastPromise"), Ej = Symbol("handlePromise"), C2 = Symbol("stream");
+ function j_(e, t) {
+ return { value: e, done: t };
+ }
+ function uMt(e) {
+ var t = e[H_];
+ if (t !== null) {
+ var r = e[C2].read();
+ r !== null && (e[k2] = null, e[H_] = null, e[E2] = null, t(j_(r, false)));
+ }
+ }
+ function cMt(e) {
+ process.nextTick(uMt, e);
+ }
+ function fMt(e, t) {
+ return function(r, n) {
+ e.then(function() {
+ if (t[IR]) {
+ r(j_(void 0, true));
+ return;
+ }
+ t[Ej](r, n);
+ }, n);
+ };
+ }
+ var hMt = Object.getPrototypeOf(function() {
+ }), dMt = Object.setPrototypeOf((PR = { get stream() {
+ return this[C2];
+ }, next: function() {
+ var t = this, r = this[uE];
+ if (r !== null) return Promise.reject(r);
+ if (this[IR]) return Promise.resolve(j_(void 0, true));
+ if (this[C2].destroyed) return new Promise(function(o, s) {
+ process.nextTick(function() {
+ t[uE] ? s(t[uE]) : o(j_(void 0, true));
+ });
+ });
+ var n = this[k2], i;
+ if (n) i = new Promise(fMt(n, this));
+ else {
+ var a = this[C2].read();
+ if (a !== null) return Promise.resolve(j_(a, false));
+ i = new Promise(this[Ej]);
+ }
+ return this[k2] = i, i;
+ } }, G_(PR, Symbol.asyncIterator, function() {
+ return this;
+ }), G_(PR, "return", function() {
+ var t = this;
+ return new Promise(function(r, n) {
+ t[C2].destroy(null, function(i) {
+ if (i) {
+ n(i);
+ return;
+ }
+ r(j_(void 0, true));
+ });
+ });
+ }), PR), hMt), vMt = function(t) {
+ var r, n = Object.create(dMt, (r = {}, G_(r, C2, { value: t, writable: true }), G_(r, H_, { value: null, writable: true }), G_(r, E2, { value: null, writable: true }), G_(r, uE, { value: null, writable: true }), G_(r, IR, { value: t._readableState.endEmitted, writable: true }), G_(r, Ej, { value: function(a, o) {
+ var s = n[C2].read();
+ s ? (n[k2] = null, n[H_] = null, n[E2] = null, a(j_(s, false))) : (n[H_] = a, n[E2] = o);
+ }, writable: true }), r));
+ return n[k2] = null, lMt(t, function(i) {
+ if (i && i.code !== "ERR_STREAM_PREMATURE_CLOSE") {
+ var a = n[E2];
+ a !== null && (n[k2] = null, n[H_] = null, n[E2] = null, a(i)), n[uE] = i;
+ return;
+ }
+ var o = n[H_];
+ o !== null && (n[k2] = null, n[H_] = null, n[E2] = null, o(j_(void 0, true))), n[IR] = true;
+ }), t.on("readable", cMt.bind(null, n)), n;
+ };
+ pSe.exports = vMt;
+ });
+ var ySe = ye((ndr, mSe) => {
+ mSe.exports = function() {
+ throw new Error("Readable.from is not available in the browser");
+ };
+ });
+ var wj = ye((odr, kSe) => {
+ kSe.exports = Bu;
+ var yA;
+ Bu.ReadableState = wSe;
+ Ab().EventEmitter;
+ var bSe = function(t, r) {
+ return t.listeners(r).length;
+ }, fE = yH(), RR = _2().Buffer, pMt = window.Uint8Array || function() {
+ };
+ function gMt(e) {
+ return RR.from(e);
+ }
+ function mMt(e) {
+ return RR.isBuffer(e) || e instanceof pMt;
+ }
+ var kj = fj(), nu;
+ kj && kj.debuglog ? nu = kj.debuglog("stream") : nu = function() {
+ };
+ var yMt = H5e(), Fj = vj(), _Mt = pj(), xMt = _Mt.getHighWaterMark, DR = A2().codes, bMt = DR.ERR_INVALID_ARG_TYPE, wMt = DR.ERR_STREAM_PUSH_AFTER_EOF, TMt = DR.ERR_METHOD_NOT_IMPLEMENTED, AMt = DR.ERR_STREAM_UNSHIFT_AFTER_END_EVENT, _A, Cj, Lj;
+ Zy()(Bu, fE);
+ var cE = Fj.errorOrDestroy, Pj = ["error", "close", "destroy", "pause", "resume"];
+ function SMt(e, t, r) {
+ if (typeof e.prependListener == "function") return e.prependListener(t, r);
+ !e._events || !e._events[t] ? e.on(t, r) : Array.isArray(e._events[t]) ? e._events[t].unshift(r) : e._events[t] = [r, e._events[t]];
+ }
+ function wSe(e, t, r) {
+ yA = yA || S2(), e = e || {}, typeof r != "boolean" && (r = t instanceof yA), this.objectMode = !!e.objectMode, r && (this.objectMode = this.objectMode || !!e.readableObjectMode), this.highWaterMark = xMt(this, e, "readableHighWaterMark", r), this.buffer = new yMt(), this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = false, this.endEmitted = false, this.reading = false, this.sync = true, this.needReadable = false, this.emittedReadable = false, this.readableListening = false, this.resumeScheduled = false, this.paused = true, this.emitClose = e.emitClose !== false, this.autoDestroy = !!e.autoDestroy, this.destroyed = false, this.defaultEncoding = e.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = false, this.decoder = null, this.encoding = null, e.encoding && (_A || (_A = Mj().StringDecoder), this.decoder = new _A(e.encoding), this.encoding = e.encoding);
+ }
+ function Bu(e) {
+ if (yA = yA || S2(), !(this instanceof Bu)) return new Bu(e);
+ var t = this instanceof yA;
+ this._readableState = new wSe(e, this, t), this.readable = true, e && (typeof e.read == "function" && (this._read = e.read), typeof e.destroy == "function" && (this._destroy = e.destroy)), fE.call(this);
+ }
+ Object.defineProperty(Bu.prototype, "destroyed", { enumerable: false, get: function() {
+ return this._readableState === void 0 ? false : this._readableState.destroyed;
+ }, set: function(t) {
+ this._readableState && (this._readableState.destroyed = t);
+ } });
+ Bu.prototype.destroy = Fj.destroy;
+ Bu.prototype._undestroy = Fj.undestroy;
+ Bu.prototype._destroy = function(e, t) {
+ t(e);
+ };
+ Bu.prototype.push = function(e, t) {
+ var r = this._readableState, n;
+ return r.objectMode ? n = true : typeof e == "string" && (t = t || r.defaultEncoding, t !== r.encoding && (e = RR.from(e, t), t = ""), n = true), TSe(this, e, t, false, n);
+ };
+ Bu.prototype.unshift = function(e) {
+ return TSe(this, e, null, true, false);
+ };
+ function TSe(e, t, r, n, i) {
+ nu("readableAddChunk", t);
+ var a = e._readableState;
+ if (t === null) a.reading = false, kMt(e, a);
+ else {
+ var o;
+ if (i || (o = MMt(a, t)), o) cE(e, o);
+ else if (a.objectMode || t && t.length > 0) if (typeof t != "string" && !a.objectMode && Object.getPrototypeOf(t) !== RR.prototype && (t = gMt(t)), n) a.endEmitted ? cE(e, new AMt()) : Ij(e, a, t, true);
+ else if (a.ended) cE(e, new wMt());
+ else {
+ if (a.destroyed) return false;
+ a.reading = false, a.decoder && !r ? (t = a.decoder.write(t), a.objectMode || t.length !== 0 ? Ij(e, a, t, false) : Dj(e, a)) : Ij(e, a, t, false);
+ }
+ else n || (a.reading = false, Dj(e, a));
+ }
+ return !a.ended && (a.length < a.highWaterMark || a.length === 0);
+ }
+ function Ij(e, t, r, n) {
+ t.flowing && t.length === 0 && !t.sync ? (t.awaitDrain = 0, e.emit("data", r)) : (t.length += t.objectMode ? 1 : r.length, n ? t.buffer.unshift(r) : t.buffer.push(r), t.needReadable && FR(e)), Dj(e, t);
+ }
+ function MMt(e, t) {
+ var r;
+ return !mMt(t) && typeof t != "string" && t !== void 0 && !e.objectMode && (r = new bMt("chunk", ["string", "Buffer", "Uint8Array"], t)), r;
+ }
+ Bu.prototype.isPaused = function() {
+ return this._readableState.flowing === false;
+ };
+ Bu.prototype.setEncoding = function(e) {
+ _A || (_A = Mj().StringDecoder);
+ var t = new _A(e);
+ this._readableState.decoder = t, this._readableState.encoding = this._readableState.decoder.encoding;
+ for (var r = this._readableState.buffer.head, n = ""; r !== null; ) n += t.write(r.data), r = r.next;
+ return this._readableState.buffer.clear(), n !== "" && this._readableState.buffer.push(n), this._readableState.length = n.length, this;
+ };
+ var _Se = 1073741824;
+ function EMt(e) {
+ return e >= _Se ? e = _Se : (e--, e |= e >>> 1, e |= e >>> 2, e |= e >>> 4, e |= e >>> 8, e |= e >>> 16, e++), e;
+ }
+ function xSe(e, t) {
+ return e <= 0 || t.length === 0 && t.ended ? 0 : t.objectMode ? 1 : e !== e ? t.flowing && t.length ? t.buffer.head.data.length : t.length : (e > t.highWaterMark && (t.highWaterMark = EMt(e)), e <= t.length ? e : t.ended ? t.length : (t.needReadable = true, 0));
+ }
+ Bu.prototype.read = function(e) {
+ nu("read", e), e = parseInt(e, 10);
+ var t = this._readableState, r = e;
+ if (e !== 0 && (t.emittedReadable = false), e === 0 && t.needReadable && ((t.highWaterMark !== 0 ? t.length >= t.highWaterMark : t.length > 0) || t.ended)) return nu("read: emitReadable", t.length, t.ended), t.length === 0 && t.ended ? Rj(this) : FR(this), null;
+ if (e = xSe(e, t), e === 0 && t.ended) return t.length === 0 && Rj(this), null;
+ var n = t.needReadable;
+ nu("need readable", n), (t.length === 0 || t.length - e < t.highWaterMark) && (n = true, nu("length less than watermark", n)), t.ended || t.reading ? (n = false, nu("reading or ended", n)) : n && (nu("do read"), t.reading = true, t.sync = true, t.length === 0 && (t.needReadable = true), this._read(t.highWaterMark), t.sync = false, t.reading || (e = xSe(r, t)));
+ var i;
+ return e > 0 ? i = MSe(e, t) : i = null, i === null ? (t.needReadable = t.length <= t.highWaterMark, e = 0) : (t.length -= e, t.awaitDrain = 0), t.length === 0 && (t.ended || (t.needReadable = true), r !== e && t.ended && Rj(this)), i !== null && this.emit("data", i), i;
+ };
+ function kMt(e, t) {
+ if (nu("onEofChunk"), !t.ended) {
+ if (t.decoder) {
+ var r = t.decoder.end();
+ r && r.length && (t.buffer.push(r), t.length += t.objectMode ? 1 : r.length);
+ }
+ t.ended = true, t.sync ? FR(e) : (t.needReadable = false, t.emittedReadable || (t.emittedReadable = true, ASe(e)));
+ }
+ }
+ function FR(e) {
+ var t = e._readableState;
+ nu("emitReadable", t.needReadable, t.emittedReadable), t.needReadable = false, t.emittedReadable || (nu("emitReadable", t.flowing), t.emittedReadable = true, process.nextTick(ASe, e));
+ }
+ function ASe(e) {
+ var t = e._readableState;
+ nu("emitReadable_", t.destroyed, t.length, t.ended), !t.destroyed && (t.length || t.ended) && (e.emit("readable"), t.emittedReadable = false), t.needReadable = !t.flowing && !t.ended && t.length <= t.highWaterMark, zj(e);
+ }
+ function Dj(e, t) {
+ t.readingMore || (t.readingMore = true, process.nextTick(CMt, e, t));
+ }
+ function CMt(e, t) {
+ for (; !t.reading && !t.ended && (t.length < t.highWaterMark || t.flowing && t.length === 0); ) {
+ var r = t.length;
+ if (nu("maybeReadMore read 0"), e.read(0), r === t.length) break;
+ }
+ t.readingMore = false;
+ }
+ Bu.prototype._read = function(e) {
+ cE(this, new TMt("_read()"));
+ };
+ Bu.prototype.pipe = function(e, t) {
+ var r = this, n = this._readableState;
+ switch (n.pipesCount) {
+ case 0:
+ n.pipes = e;
+ break;
+ case 1:
+ n.pipes = [n.pipes, e];
+ break;
+ default:
+ n.pipes.push(e);
+ break;
+ }
+ n.pipesCount += 1, nu("pipe count=%d opts=%j", n.pipesCount, t);
+ var i = (!t || t.end !== false) && e !== process.stdout && e !== process.stderr, a = i ? s : _;
+ n.endEmitted ? process.nextTick(a) : r.once("end", a), e.on("unpipe", o);
+ function o(b, p) {
+ nu("onunpipe"), b === r && p && p.hasUnpiped === false && (p.hasUnpiped = true, c());
+ }
+ function s() {
+ nu("onend"), e.end();
+ }
+ var l = LMt(r);
+ e.on("drain", l);
+ var u = false;
+ function c() {
+ nu("cleanup"), e.removeListener("close", d), e.removeListener("finish", v), e.removeListener("drain", l), e.removeListener("error", h), e.removeListener("unpipe", o), r.removeListener("end", s), r.removeListener("end", _), r.removeListener("data", f), u = true, n.awaitDrain && (!e._writableState || e._writableState.needDrain) && l();
+ }
+ r.on("data", f);
+ function f(b) {
+ nu("ondata");
+ var p = e.write(b);
+ nu("dest.write", p), p === false && ((n.pipesCount === 1 && n.pipes === e || n.pipesCount > 1 && ESe(n.pipes, e) !== -1) && !u && (nu("false write response, pause", n.awaitDrain), n.awaitDrain++), r.pause());
+ }
+ function h(b) {
+ nu("onerror", b), _(), e.removeListener("error", h), bSe(e, "error") === 0 && cE(e, b);
+ }
+ SMt(e, "error", h);
+ function d() {
+ e.removeListener("finish", v), _();
+ }
+ e.once("close", d);
+ function v() {
+ nu("onfinish"), e.removeListener("close", d), _();
+ }
+ e.once("finish", v);
+ function _() {
+ nu("unpipe"), r.unpipe(e);
+ }
+ return e.emit("pipe", r), n.flowing || (nu("pipe resume"), r.resume()), e;
+ };
+ function LMt(e) {
+ return function() {
+ var r = e._readableState;
+ nu("pipeOnDrain", r.awaitDrain), r.awaitDrain && r.awaitDrain--, r.awaitDrain === 0 && bSe(e, "data") && (r.flowing = true, zj(e));
+ };
+ }
+ Bu.prototype.unpipe = function(e) {
+ var t = this._readableState, r = { hasUnpiped: false };
+ if (t.pipesCount === 0) return this;
+ if (t.pipesCount === 1) return e && e !== t.pipes ? this : (e || (e = t.pipes), t.pipes = null, t.pipesCount = 0, t.flowing = false, e && e.emit("unpipe", this, r), this);
+ if (!e) {
+ var n = t.pipes, i = t.pipesCount;
+ t.pipes = null, t.pipesCount = 0, t.flowing = false;
+ for (var a = 0; a < i; a++) n[a].emit("unpipe", this, { hasUnpiped: false });
+ return this;
+ }
+ var o = ESe(t.pipes, e);
+ return o === -1 ? this : (t.pipes.splice(o, 1), t.pipesCount -= 1, t.pipesCount === 1 && (t.pipes = t.pipes[0]), e.emit("unpipe", this, r), this);
+ };
+ Bu.prototype.on = function(e, t) {
+ var r = fE.prototype.on.call(this, e, t), n = this._readableState;
+ return e === "data" ? (n.readableListening = this.listenerCount("readable") > 0, n.flowing !== false && this.resume()) : e === "readable" && !n.endEmitted && !n.readableListening && (n.readableListening = n.needReadable = true, n.flowing = false, n.emittedReadable = false, nu("on readable", n.length, n.reading), n.length ? FR(this) : n.reading || process.nextTick(PMt, this)), r;
+ };
+ Bu.prototype.addListener = Bu.prototype.on;
+ Bu.prototype.removeListener = function(e, t) {
+ var r = fE.prototype.removeListener.call(this, e, t);
+ return e === "readable" && process.nextTick(SSe, this), r;
+ };
+ Bu.prototype.removeAllListeners = function(e) {
+ var t = fE.prototype.removeAllListeners.apply(this, arguments);
+ return (e === "readable" || e === void 0) && process.nextTick(SSe, this), t;
+ };
+ function SSe(e) {
+ var t = e._readableState;
+ t.readableListening = e.listenerCount("readable") > 0, t.resumeScheduled && !t.paused ? t.flowing = true : e.listenerCount("data") > 0 && e.resume();
+ }
+ function PMt(e) {
+ nu("readable nexttick read 0"), e.read(0);
+ }
+ Bu.prototype.resume = function() {
+ var e = this._readableState;
+ return e.flowing || (nu("resume"), e.flowing = !e.readableListening, IMt(this, e)), e.paused = false, this;
+ };
+ function IMt(e, t) {
+ t.resumeScheduled || (t.resumeScheduled = true, process.nextTick(RMt, e, t));
+ }
+ function RMt(e, t) {
+ nu("resume", t.reading), t.reading || e.read(0), t.resumeScheduled = false, e.emit("resume"), zj(e), t.flowing && !t.reading && e.read(0);
+ }
+ Bu.prototype.pause = function() {
+ return nu("call pause flowing=%j", this._readableState.flowing), this._readableState.flowing !== false && (nu("pause"), this._readableState.flowing = false, this.emit("pause")), this._readableState.paused = true, this;
+ };
+ function zj(e) {
+ var t = e._readableState;
+ for (nu("flow", t.flowing); t.flowing && e.read() !== null; ) ;
+ }
+ Bu.prototype.wrap = function(e) {
+ var t = this, r = this._readableState, n = false;
+ e.on("end", function() {
+ if (nu("wrapped end"), r.decoder && !r.ended) {
+ var o = r.decoder.end();
+ o && o.length && t.push(o);
+ }
+ t.push(null);
+ }), e.on("data", function(o) {
+ if (nu("wrapped data"), r.decoder && (o = r.decoder.write(o)), !(r.objectMode && o == null) && !(!r.objectMode && (!o || !o.length))) {
+ var s = t.push(o);
+ s || (n = true, e.pause());
+ }
+ });
+ for (var i in e) this[i] === void 0 && typeof e[i] == "function" && (this[i] = /* @__PURE__ */ function(s) {
+ return function() {
+ return e[s].apply(e, arguments);
+ };
+ }(i));
+ for (var a = 0; a < Pj.length; a++) e.on(Pj[a], this.emit.bind(this, Pj[a]));
+ return this._read = function(o) {
+ nu("wrapped _read", o), n && (n = false, e.resume());
+ }, this;
+ };
+ typeof Symbol == "function" && (Bu.prototype[Symbol.asyncIterator] = function() {
+ return Cj === void 0 && (Cj = gSe()), Cj(this);
+ });
+ Object.defineProperty(Bu.prototype, "readableHighWaterMark", { enumerable: false, get: function() {
+ return this._readableState.highWaterMark;
+ } });
+ Object.defineProperty(Bu.prototype, "readableBuffer", { enumerable: false, get: function() {
+ return this._readableState && this._readableState.buffer;
+ } });
+ Object.defineProperty(Bu.prototype, "readableFlowing", { enumerable: false, get: function() {
+ return this._readableState.flowing;
+ }, set: function(t) {
+ this._readableState && (this._readableState.flowing = t);
+ } });
+ Bu._fromList = MSe;
+ Object.defineProperty(Bu.prototype, "readableLength", { enumerable: false, get: function() {
+ return this._readableState.length;
+ } });
+ function MSe(e, t) {
+ if (t.length === 0) return null;
+ var r;
+ return t.objectMode ? r = t.buffer.shift() : !e || e >= t.length ? (t.decoder ? r = t.buffer.join("") : t.buffer.length === 1 ? r = t.buffer.first() : r = t.buffer.concat(t.length), t.buffer.clear()) : r = t.buffer.consume(e, t.decoder), r;
+ }
+ function Rj(e) {
+ var t = e._readableState;
+ nu("endReadable", t.endEmitted), t.endEmitted || (t.ended = true, process.nextTick(DMt, t, e));
+ }
+ function DMt(e, t) {
+ if (nu("endReadableNT", e.endEmitted, e.length), !e.endEmitted && e.length === 0 && (e.endEmitted = true, t.readable = false, t.emit("end"), e.autoDestroy)) {
+ var r = t._writableState;
+ (!r || r.autoDestroy && r.finished) && t.destroy();
+ }
+ }
+ typeof Symbol == "function" && (Bu.from = function(e, t) {
+ return Lj === void 0 && (Lj = ySe()), Lj(Bu, e, t);
+ });
+ function ESe(e, t) {
+ for (var r = 0, n = e.length; r < n; r++) if (e[r] === t) return r;
+ return -1;
+ }
+ });
+ var Oj = ye((sdr, LSe) => {
+ LSe.exports = Ky;
+ var zR = A2().codes, FMt = zR.ERR_METHOD_NOT_IMPLEMENTED, zMt = zR.ERR_MULTIPLE_CALLBACK, OMt = zR.ERR_TRANSFORM_ALREADY_TRANSFORMING, qMt = zR.ERR_TRANSFORM_WITH_LENGTH_0, OR = S2();
+ Zy()(Ky, OR);
+ function BMt(e, t) {
+ var r = this._transformState;
+ r.transforming = false;
+ var n = r.writecb;
+ if (n === null) return this.emit("error", new zMt());
+ r.writechunk = null, r.writecb = null, t != null && this.push(t), n(e);
+ var i = this._readableState;
+ i.reading = false, (i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark);
+ }
+ function Ky(e) {
+ if (!(this instanceof Ky)) return new Ky(e);
+ OR.call(this, e), this._transformState = { afterTransform: BMt.bind(this), needTransform: false, transforming: false, writecb: null, writechunk: null, writeencoding: null }, this._readableState.needReadable = true, this._readableState.sync = false, e && (typeof e.transform == "function" && (this._transform = e.transform), typeof e.flush == "function" && (this._flush = e.flush)), this.on("prefinish", NMt);
+ }
+ function NMt() {
+ var e = this;
+ typeof this._flush == "function" && !this._readableState.destroyed ? this._flush(function(t, r) {
+ CSe(e, t, r);
+ }) : CSe(this, null, null);
+ }
+ Ky.prototype.push = function(e, t) {
+ return this._transformState.needTransform = false, OR.prototype.push.call(this, e, t);
+ };
+ Ky.prototype._transform = function(e, t, r) {
+ r(new FMt("_transform()"));
+ };
+ Ky.prototype._write = function(e, t, r) {
+ var n = this._transformState;
+ if (n.writecb = r, n.writechunk = e, n.writeencoding = t, !n.transforming) {
+ var i = this._readableState;
+ (n.needTransform || i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark);
+ }
+ };
+ Ky.prototype._read = function(e) {
+ var t = this._transformState;
+ t.writechunk !== null && !t.transforming ? (t.transforming = true, this._transform(t.writechunk, t.writeencoding, t.afterTransform)) : t.needTransform = true;
+ };
+ Ky.prototype._destroy = function(e, t) {
+ OR.prototype._destroy.call(this, e, function(r) {
+ t(r);
+ });
+ };
+ function CSe(e, t, r) {
+ if (t) return e.emit("error", t);
+ if (r != null && e.push(r), e._writableState.length) throw new qMt();
+ if (e._transformState.transforming) throw new OMt();
+ return e.push(null);
+ }
+ });
+ var RSe = ye((ldr, ISe) => {
+ ISe.exports = hE;
+ var PSe = Oj();
+ Zy()(hE, PSe);
+ function hE(e) {
+ if (!(this instanceof hE)) return new hE(e);
+ PSe.call(this, e);
+ }
+ hE.prototype._transform = function(e, t, r) {
+ r(null, e);
+ };
+ });
+ var qSe = ye((udr, OSe) => {
+ var qj;
+ function UMt(e) {
+ var t = false;
+ return function() {
+ t || (t = true, e.apply(void 0, arguments));
+ };
+ }
+ var zSe = A2().codes, VMt = zSe.ERR_MISSING_ARGS, GMt = zSe.ERR_STREAM_DESTROYED;
+ function DSe(e) {
+ if (e) throw e;
+ }
+ function HMt(e) {
+ return e.setHeader && typeof e.abort == "function";
+ }
+ function jMt(e, t, r, n) {
+ n = UMt(n);
+ var i = false;
+ e.on("close", function() {
+ i = true;
+ }), qj === void 0 && (qj = LR()), qj(e, { readable: t, writable: r }, function(o) {
+ if (o) return n(o);
+ i = true, n();
+ });
+ var a = false;
+ return function(o) {
+ if (!i && !a) {
+ if (a = true, HMt(e)) return e.abort();
+ if (typeof e.destroy == "function") return e.destroy();
+ n(o || new GMt("pipe"));
+ }
+ };
+ }
+ function FSe(e) {
+ e();
+ }
+ function WMt(e, t) {
+ return e.pipe(t);
+ }
+ function XMt(e) {
+ return !e.length || typeof e[e.length - 1] != "function" ? DSe : e.pop();
+ }
+ function ZMt() {
+ for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];
+ var n = XMt(t);
+ if (Array.isArray(t[0]) && (t = t[0]), t.length < 2) throw new VMt("streams");
+ var i, a = t.map(function(o, s) {
+ var l = s < t.length - 1, u = s > 0;
+ return jMt(o, l, u, function(c) {
+ i || (i = c), c && a.forEach(FSe), !l && (a.forEach(FSe), n(i));
+ });
+ });
+ return t.reduce(WMt);
+ }
+ OSe.exports = ZMt;
+ });
+ var NSe = ye((cdr, BSe) => {
+ BSe.exports = $0;
+ var Bj = Ab().EventEmitter, YMt = Zy();
+ YMt($0, Bj);
+ $0.Readable = wj();
+ $0.Writable = _j();
+ $0.Duplex = S2();
+ $0.Transform = Oj();
+ $0.PassThrough = RSe();
+ $0.finished = LR();
+ $0.pipeline = qSe();
+ $0.Stream = $0;
+ function $0() {
+ Bj.call(this);
+ }
+ $0.prototype.pipe = function(e, t) {
+ var r = this;
+ function n(c) {
+ e.writable && e.write(c) === false && r.pause && r.pause();
+ }
+ r.on("data", n);
+ function i() {
+ r.readable && r.resume && r.resume();
+ }
+ e.on("drain", i), !e._isStdio && (!t || t.end !== false) && (r.on("end", o), r.on("close", s));
+ var a = false;
+ function o() {
+ a || (a = true, e.end());
+ }
+ function s() {
+ a || (a = true, typeof e.destroy == "function" && e.destroy());
+ }
+ function l(c) {
+ if (u(), Bj.listenerCount(this, "error") === 0) throw c;
+ }
+ r.on("error", l), e.on("error", l);
+ function u() {
+ r.removeListener("data", n), e.removeListener("drain", i), r.removeListener("end", o), r.removeListener("close", s), r.removeListener("error", l), e.removeListener("error", l), r.removeListener("end", u), r.removeListener("close", u), e.removeListener("close", u);
+ }
+ return r.on("end", u), r.on("close", u), e.on("close", u), e.emit("pipe", r), e;
+ };
+ });
+ var bA = ye((fu) => {
+ var USe = Object.getOwnPropertyDescriptors || function(t) {
+ for (var r = Object.keys(t), n = {}, i = 0; i < r.length; i++) n[r[i]] = Object.getOwnPropertyDescriptor(t, r[i]);
+ return n;
+ }, KMt = /%[sdj%]/g;
+ fu.format = function(e) {
+ if (!HR(e)) {
+ for (var t = [], r = 0; r < arguments.length; r++) t.push(W_(arguments[r]));
+ return t.join(" ");
+ }
+ for (var r = 1, n = arguments, i = n.length, a = String(e).replace(KMt, function(s) {
+ if (s === "%%") return "%";
+ if (r >= i) return s;
+ switch (s) {
+ case "%s":
+ return String(n[r++]);
+ case "%d":
+ return Number(n[r++]);
+ case "%j":
+ try {
+ return JSON.stringify(n[r++]);
+ } catch (l) {
+ return "[Circular]";
+ }
+ default:
+ return s;
+ }
+ }), o = n[r]; r < i; o = n[++r]) GR(o) || !xA(o) ? a += " " + o : a += " " + W_(o);
+ return a;
+ };
+ fu.deprecate = function(e, t) {
+ if (typeof process != "undefined" && process.noDeprecation === true) return e;
+ if (typeof process == "undefined") return function() {
+ return fu.deprecate(e, t).apply(this, arguments);
+ };
+ var r = false;
+ function n() {
+ if (!r) {
+ if (process.throwDeprecation) throw new Error(t);
+ process.traceDeprecation ? console.trace(t) : console.error(t), r = true;
+ }
+ return e.apply(this, arguments);
+ }
+ return n;
+ };
+ var qR = {}, VSe = /^$/;
+ BR = "false", BR = BR.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase(), VSe = new RegExp("^" + BR + "$", "i");
+ var BR;
+ fu.debuglog = function(e) {
+ if (e = e.toUpperCase(), !qR[e]) if (VSe.test(e)) {
+ var t = process.pid;
+ qR[e] = function() {
+ var r = fu.format.apply(fu, arguments);
+ console.error("%s %d: %s", e, t, r);
+ };
+ } else qR[e] = function() {
+ };
+ return qR[e];
+ };
+ function W_(e, t) {
+ var r = { seen: [], stylize: $Mt };
+ return arguments.length >= 3 && (r.depth = arguments[2]), arguments.length >= 4 && (r.colors = arguments[3]), Gj(t) ? r.showHidden = t : t && fu._extend(r, t), P2(r.showHidden) && (r.showHidden = false), P2(r.depth) && (r.depth = 2), P2(r.colors) && (r.colors = false), P2(r.customInspect) && (r.customInspect = true), r.colors && (r.stylize = JMt), UR(r, e, r.depth);
+ }
+ fu.inspect = W_;
+ W_.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] };
+ W_.styles = { special: "cyan", number: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", date: "magenta", regexp: "red" };
+ function JMt(e, t) {
+ var r = W_.styles[t];
+ return r ? "\x1B[" + W_.colors[r][0] + "m" + e + "\x1B[" + W_.colors[r][1] + "m" : e;
+ }
+ function $Mt(e, t) {
+ return e;
+ }
+ function QMt(e) {
+ var t = {};
+ return e.forEach(function(r, n) {
+ t[r] = true;
+ }), t;
+ }
+ function UR(e, t, r) {
+ if (e.customInspect && t && NR(t.inspect) && t.inspect !== fu.inspect && !(t.constructor && t.constructor.prototype === t)) {
+ var n = t.inspect(r, e);
+ return HR(n) || (n = UR(e, n, r)), n;
+ }
+ var i = e4t(e, t);
+ if (i) return i;
+ var a = Object.keys(t), o = QMt(a);
+ if (e.showHidden && (a = Object.getOwnPropertyNames(t)), vE(t) && (a.indexOf("message") >= 0 || a.indexOf("description") >= 0)) return Nj(t);
+ if (a.length === 0) {
+ if (NR(t)) {
+ var s = t.name ? ": " + t.name : "";
+ return e.stylize("[Function" + s + "]", "special");
+ }
+ if (dE(t)) return e.stylize(RegExp.prototype.toString.call(t), "regexp");
+ if (VR(t)) return e.stylize(Date.prototype.toString.call(t), "date");
+ if (vE(t)) return Nj(t);
+ }
+ var l = "", u = false, c = ["{", "}"];
+ if (GSe(t) && (u = true, c = ["[", "]"]), NR(t)) {
+ var f = t.name ? ": " + t.name : "";
+ l = " [Function" + f + "]";
+ }
+ if (dE(t) && (l = " " + RegExp.prototype.toString.call(t)), VR(t) && (l = " " + Date.prototype.toUTCString.call(t)), vE(t) && (l = " " + Nj(t)), a.length === 0 && (!u || t.length == 0)) return c[0] + l + c[1];
+ if (r < 0) return dE(t) ? e.stylize(RegExp.prototype.toString.call(t), "regexp") : e.stylize("[Object]", "special");
+ e.seen.push(t);
+ var h;
+ return u ? h = t4t(e, t, r, o, a) : h = a.map(function(d) {
+ return Vj(e, t, r, o, d, u);
+ }), e.seen.pop(), r4t(h, l, c);
+ }
+ function e4t(e, t) {
+ if (P2(t)) return e.stylize("undefined", "undefined");
+ if (HR(t)) {
+ var r = "'" + JSON.stringify(t).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
+ return e.stylize(r, "string");
+ }
+ if (HSe(t)) return e.stylize("" + t, "number");
+ if (Gj(t)) return e.stylize("" + t, "boolean");
+ if (GR(t)) return e.stylize("null", "null");
+ }
+ function Nj(e) {
+ return "[" + Error.prototype.toString.call(e) + "]";
+ }
+ function t4t(e, t, r, n, i) {
+ for (var a = [], o = 0, s = t.length; o < s; ++o) jSe(t, String(o)) ? a.push(Vj(e, t, r, n, String(o), true)) : a.push("");
+ return i.forEach(function(l) {
+ l.match(/^\d+$/) || a.push(Vj(e, t, r, n, l, true));
+ }), a;
+ }
+ function Vj(e, t, r, n, i, a) {
+ var o, s, l;
+ if (l = Object.getOwnPropertyDescriptor(t, i) || { value: t[i] }, l.get ? l.set ? s = e.stylize("[Getter/Setter]", "special") : s = e.stylize("[Getter]", "special") : l.set && (s = e.stylize("[Setter]", "special")), jSe(n, i) || (o = "[" + i + "]"), s || (e.seen.indexOf(l.value) < 0 ? (GR(r) ? s = UR(e, l.value, null) : s = UR(e, l.value, r - 1), s.indexOf(`
+`) > -1 && (a ? s = s.split(`
+`).map(function(u) {
+ return " " + u;
+ }).join(`
+`).slice(2) : s = `
+` + s.split(`
+`).map(function(u) {
+ return " " + u;
+ }).join(`
+`))) : s = e.stylize("[Circular]", "special")), P2(o)) {
+ if (a && i.match(/^\d+$/)) return s;
+ o = JSON.stringify("" + i), o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (o = o.slice(1, -1), o = e.stylize(o, "name")) : (o = o.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), o = e.stylize(o, "string"));
+ }
+ return o + ": " + s;
+ }
+ function r4t(e, t, r) {
+ var n = 0, i = e.reduce(function(a, o) {
+ return n++, o.indexOf(`
+`) >= 0 && n++, a + o.replace(/\u001b\[\d\d?m/g, "").length + 1;
+ }, 0);
+ return i > 60 ? r[0] + (t === "" ? "" : t + `
+ `) + " " + e.join(`,
+ `) + " " + r[1] : r[0] + t + " " + e.join(", ") + " " + r[1];
+ }
+ fu.types = nj();
+ function GSe(e) {
+ return Array.isArray(e);
+ }
+ fu.isArray = GSe;
+ function Gj(e) {
+ return typeof e == "boolean";
+ }
+ fu.isBoolean = Gj;
+ function GR(e) {
+ return e === null;
+ }
+ fu.isNull = GR;
+ function i4t(e) {
+ return e == null;
+ }
+ fu.isNullOrUndefined = i4t;
+ function HSe(e) {
+ return typeof e == "number";
+ }
+ fu.isNumber = HSe;
+ function HR(e) {
+ return typeof e == "string";
+ }
+ fu.isString = HR;
+ function n4t(e) {
+ return typeof e == "symbol";
+ }
+ fu.isSymbol = n4t;
+ function P2(e) {
+ return e === void 0;
+ }
+ fu.isUndefined = P2;
+ function dE(e) {
+ return xA(e) && Hj(e) === "[object RegExp]";
+ }
+ fu.isRegExp = dE;
+ fu.types.isRegExp = dE;
+ function xA(e) {
+ return typeof e == "object" && e !== null;
+ }
+ fu.isObject = xA;
+ function VR(e) {
+ return xA(e) && Hj(e) === "[object Date]";
+ }
+ fu.isDate = VR;
+ fu.types.isDate = VR;
+ function vE(e) {
+ return xA(e) && (Hj(e) === "[object Error]" || e instanceof Error);
+ }
+ fu.isError = vE;
+ fu.types.isNativeError = vE;
+ function NR(e) {
+ return typeof e == "function";
+ }
+ fu.isFunction = NR;
+ function a4t(e) {
+ return e === null || typeof e == "boolean" || typeof e == "number" || typeof e == "string" || typeof e == "symbol" || typeof e == "undefined";
+ }
+ fu.isPrimitive = a4t;
+ fu.isBuffer = aj();
+ function Hj(e) {
+ return Object.prototype.toString.call(e);
+ }
+ function Uj(e) {
+ return e < 10 ? "0" + e.toString(10) : e.toString(10);
+ }
+ var o4t = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
+ function s4t() {
+ var e = /* @__PURE__ */ new Date(), t = [Uj(e.getHours()), Uj(e.getMinutes()), Uj(e.getSeconds())].join(":");
+ return [e.getDate(), o4t[e.getMonth()], t].join(" ");
+ }
+ fu.log = function() {
+ console.log("%s - %s", s4t(), fu.format.apply(fu, arguments));
+ };
+ fu.inherits = Zy();
+ fu._extend = function(e, t) {
+ if (!t || !xA(t)) return e;
+ for (var r = Object.keys(t), n = r.length; n--; ) e[r[n]] = t[r[n]];
+ return e;
+ };
+ function jSe(e, t) {
+ return Object.prototype.hasOwnProperty.call(e, t);
+ }
+ var L2 = typeof Symbol != "undefined" ? Symbol("util.promisify.custom") : void 0;
+ fu.promisify = function(t) {
+ if (typeof t != "function") throw new TypeError('The "original" argument must be of type Function');
+ if (L2 && t[L2]) {
+ var r = t[L2];
+ if (typeof r != "function") throw new TypeError('The "util.promisify.custom" argument must be of type Function');
+ return Object.defineProperty(r, L2, { value: r, enumerable: false, writable: false, configurable: true }), r;
+ }
+ function r() {
+ for (var n, i, a = new Promise(function(l, u) {
+ n = l, i = u;
+ }), o = [], s = 0; s < arguments.length; s++) o.push(arguments[s]);
+ o.push(function(l, u) {
+ l ? i(l) : n(u);
+ });
+ try {
+ t.apply(this, o);
+ } catch (l) {
+ i(l);
+ }
+ return a;
+ }
+ return Object.setPrototypeOf(r, Object.getPrototypeOf(t)), L2 && Object.defineProperty(r, L2, { value: r, enumerable: false, writable: false, configurable: true }), Object.defineProperties(r, USe(t));
+ };
+ fu.promisify.custom = L2;
+ function l4t(e, t) {
+ if (!e) {
+ var r = new Error("Promise was rejected with a falsy value");
+ r.reason = e, e = r;
+ }
+ return t(e);
+ }
+ function u4t(e) {
+ if (typeof e != "function") throw new TypeError('The "original" argument must be of type Function');
+ function t() {
+ for (var r = [], n = 0; n < arguments.length; n++) r.push(arguments[n]);
+ var i = r.pop();
+ if (typeof i != "function") throw new TypeError("The last argument must be of type Function");
+ var a = this, o = function() {
+ return i.apply(a, arguments);
+ };
+ e.apply(this, r).then(function(s) {
+ process.nextTick(o.bind(null, null, s));
+ }, function(s) {
+ process.nextTick(l4t.bind(null, s, o));
+ });
+ }
+ return Object.setPrototypeOf(t, Object.getPrototypeOf(e)), Object.defineProperties(t, USe(e)), t;
+ }
+ fu.callbackify = u4t;
+ });
+ var Xj = ye((hdr, YSe) => {
+ function X_(e) {
+ "@babel/helpers - typeof";
+ return X_ = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
+ return typeof t;
+ } : function(t) {
+ return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
+ }, X_(e);
+ }
+ function c4t(e, t, r) {
+ return Object.defineProperty(e, "prototype", { writable: false }), e;
+ }
+ function d4t(e, t) {
+ if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
+ }
+ function v4t(e, t) {
+ if (typeof t != "function" && t !== null) throw new TypeError("Super expression must either be null or a function");
+ e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: true, configurable: true } }), Object.defineProperty(e, "prototype", { writable: false }), t && Wj(e, t);
+ }
+ function Wj(e, t) {
+ return Wj = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(n, i) {
+ return n.__proto__ = i, n;
+ }, Wj(e, t);
+ }
+ function p4t(e) {
+ var t = y4t();
+ return function() {
+ var n = jR(e), i;
+ if (t) {
+ var a = jR(this).constructor;
+ i = Reflect.construct(n, arguments, a);
+ } else i = n.apply(this, arguments);
+ return g4t(this, i);
+ };
+ }
+ function g4t(e, t) {
+ if (t && (X_(t) === "object" || typeof t == "function")) return t;
+ if (t !== void 0) throw new TypeError("Derived constructors may only return object or undefined");
+ return m4t(e);
+ }
+ function m4t(e) {
+ if (e === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ return e;
+ }
+ function y4t() {
+ if (typeof Reflect == "undefined" || !Reflect.construct || Reflect.construct.sham) return false;
+ if (typeof Proxy == "function") return true;
+ try {
+ return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
+ })), true;
+ } catch (e) {
+ return false;
+ }
+ }
+ function jR(e) {
+ return jR = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(r) {
+ return r.__proto__ || Object.getPrototypeOf(r);
+ }, jR(e);
+ }
+ var ZSe = {}, wA, jj;
+ function pE(e, t, r) {
+ r || (r = Error);
+ function n(a, o, s) {
+ return typeof t == "string" ? t : t(a, o, s);
+ }
+ var i = function(a) {
+ v4t(s, a);
+ var o = p4t(s);
+ function s(l, u, c) {
+ var f;
+ return d4t(this, s), f = o.call(this, n(l, u, c)), f.code = e, f;
+ }
+ return c4t(s);
+ }(r);
+ ZSe[e] = i;
+ }
+ function XSe(e, t) {
+ if (Array.isArray(e)) {
+ var r = e.length;
+ return e = e.map(function(n) {
+ return String(n);
+ }), r > 2 ? "one of ".concat(t, " ").concat(e.slice(0, r - 1).join(", "), ", or ") + e[r - 1] : r === 2 ? "one of ".concat(t, " ").concat(e[0], " or ").concat(e[1]) : "of ".concat(t, " ").concat(e[0]);
+ } else return "of ".concat(t, " ").concat(String(e));
+ }
+ function _4t(e, t, r) {
+ return e.substr(0, t.length) === t;
+ }
+ function x4t(e, t, r) {
+ return (r === void 0 || r > e.length) && (r = e.length), e.substring(r - t.length, r) === t;
+ }
+ function b4t(e, t, r) {
+ return typeof r != "number" && (r = 0), r + t.length > e.length ? false : e.indexOf(t, r) !== -1;
+ }
+ pE("ERR_AMBIGUOUS_ARGUMENT", 'The "%s" argument is ambiguous. %s', TypeError);
+ pE("ERR_INVALID_ARG_TYPE", function(e, t, r) {
+ wA === void 0 && (wA = gE()), wA(typeof e == "string", "'name' must be a string");
+ var n;
+ typeof t == "string" && _4t(t, "not ") ? (n = "must not be", t = t.replace(/^not /, "")) : n = "must be";
+ var i;
+ if (x4t(e, " argument")) i = "The ".concat(e, " ").concat(n, " ").concat(XSe(t, "type"));
+ else {
+ var a = b4t(e, ".") ? "property" : "argument";
+ i = 'The "'.concat(e, '" ').concat(a, " ").concat(n, " ").concat(XSe(t, "type"));
+ }
+ return i += ". Received type ".concat(X_(r)), i;
+ }, TypeError);
+ pE("ERR_INVALID_ARG_VALUE", function(e, t) {
+ var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "is invalid";
+ jj === void 0 && (jj = bA());
+ var n = jj.inspect(t);
+ return n.length > 128 && (n = "".concat(n.slice(0, 128), "...")), "The argument '".concat(e, "' ").concat(r, ". Received ").concat(n);
+ }, TypeError);
+ pE("ERR_INVALID_RETURN_VALUE", function(e, t, r) {
+ var n;
+ return r && r.constructor && r.constructor.name ? n = "instance of ".concat(r.constructor.name) : n = "type ".concat(X_(r)), "Expected ".concat(e, ' to be returned from the "').concat(t, '"') + " function but got ".concat(n, ".");
+ }, TypeError);
+ pE("ERR_MISSING_ARGS", function() {
+ for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];
+ wA === void 0 && (wA = gE()), wA(t.length > 0, "At least one arg needs to be specified");
+ var n = "The ", i = t.length;
+ switch (t = t.map(function(a) {
+ return '"'.concat(a, '"');
+ }), i) {
+ case 1:
+ n += "".concat(t[0], " argument");
+ break;
+ case 2:
+ n += "".concat(t[0], " and ").concat(t[1], " arguments");
+ break;
+ default:
+ n += t.slice(0, i - 1).join(", "), n += ", and ".concat(t[i - 1], " arguments");
+ break;
+ }
+ return "".concat(n, " must be specified");
+ }, TypeError);
+ YSe.exports.codes = ZSe;
+ });
+ var aMe = ye((ddr, nMe) => {
+ function KSe(e, t) {
+ var r = Object.keys(e);
+ if (Object.getOwnPropertySymbols) {
+ var n = Object.getOwnPropertySymbols(e);
+ t && (n = n.filter(function(i) {
+ return Object.getOwnPropertyDescriptor(e, i).enumerable;
+ })), r.push.apply(r, n);
+ }
+ return r;
+ }
+ function JSe(e) {
+ for (var t = 1; t < arguments.length; t++) {
+ var r = arguments[t] != null ? arguments[t] : {};
+ t % 2 ? KSe(Object(r), true).forEach(function(n) {
+ w4t(e, n, r[n]);
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : KSe(Object(r)).forEach(function(n) {
+ Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n));
+ });
+ }
+ return e;
+ }
+ function w4t(e, t, r) {
+ return t = tMe(t), t in e ? Object.defineProperty(e, t, { value: r, enumerable: true, configurable: true, writable: true }) : e[t] = r, e;
+ }
+ function T4t(e, t) {
+ if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
+ }
+ function $Se(e, t) {
+ for (var r = 0; r < t.length; r++) {
+ var n = t[r];
+ n.enumerable = n.enumerable || false, n.configurable = true, "value" in n && (n.writable = true), Object.defineProperty(e, tMe(n.key), n);
+ }
+ }
+ function A4t(e, t, r) {
+ return t && $Se(e.prototype, t), Object.defineProperty(e, "prototype", { writable: false }), e;
+ }
+ function tMe(e) {
+ var t = S4t(e, "string");
+ return Dp(t) === "symbol" ? t : String(t);
+ }
+ function S4t(e, t) {
+ if (Dp(e) !== "object" || e === null) return e;
+ var r = e[Symbol.toPrimitive];
+ if (r !== void 0) {
+ var n = r.call(e, t);
+ if (Dp(n) !== "object") return n;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return String(e);
+ }
+ function M4t(e, t) {
+ if (typeof t != "function" && t !== null) throw new TypeError("Super expression must either be null or a function");
+ e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: true, configurable: true } }), Object.defineProperty(e, "prototype", { writable: false }), t && xE(e, t);
+ }
+ function E4t(e) {
+ var t = iMe();
+ return function() {
+ var n = bE(e), i;
+ if (t) {
+ var a = bE(this).constructor;
+ i = Reflect.construct(n, arguments, a);
+ } else i = n.apply(this, arguments);
+ return rMe(this, i);
+ };
+ }
+ function rMe(e, t) {
+ if (t && (Dp(t) === "object" || typeof t == "function")) return t;
+ if (t !== void 0) throw new TypeError("Derived constructors may only return object or undefined");
+ return Zj(e);
+ }
+ function Zj(e) {
+ if (e === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ return e;
+ }
+ function Yj(e) {
+ var t = typeof Map == "function" ? /* @__PURE__ */ new Map() : void 0;
+ return Yj = function(n) {
+ if (n === null || !k4t(n)) return n;
+ if (typeof n != "function") throw new TypeError("Super expression must either be null or a function");
+ if (typeof t != "undefined") {
+ if (t.has(n)) return t.get(n);
+ t.set(n, i);
+ }
+ function i() {
+ return WR(n, arguments, bE(this).constructor);
+ }
+ return i.prototype = Object.create(n.prototype, { constructor: { value: i, enumerable: false, writable: true, configurable: true } }), xE(i, n);
+ }, Yj(e);
+ }
+ function WR(e, t, r) {
+ return iMe() ? WR = Reflect.construct.bind() : WR = function(i, a, o) {
+ var s = [null];
+ s.push.apply(s, a);
+ var l = Function.bind.apply(i, s), u = new l();
+ return o && xE(u, o.prototype), u;
+ }, WR.apply(null, arguments);
+ }
+ function iMe() {
+ if (typeof Reflect == "undefined" || !Reflect.construct || Reflect.construct.sham) return false;
+ if (typeof Proxy == "function") return true;
+ try {
+ return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
+ })), true;
+ } catch (e) {
+ return false;
+ }
+ }
+ function k4t(e) {
+ return Function.toString.call(e).indexOf("[native code]") !== -1;
+ }
+ function xE(e, t) {
+ return xE = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(n, i) {
+ return n.__proto__ = i, n;
+ }, xE(e, t);
+ }
+ function bE(e) {
+ return bE = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(r) {
+ return r.__proto__ || Object.getPrototypeOf(r);
+ }, bE(e);
+ }
+ function Dp(e) {
+ "@babel/helpers - typeof";
+ return Dp = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
+ return typeof t;
+ } : function(t) {
+ return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
+ }, Dp(e);
+ }
+ var C4t = bA(), Kj = C4t.inspect, L4t = Xj(), P4t = L4t.codes.ERR_INVALID_ARG_TYPE;
+ function QSe(e, t, r) {
+ return (r === void 0 || r > e.length) && (r = e.length), e.substring(r - t.length, r) === t;
+ }
+ function I4t(e, t) {
+ if (t = Math.floor(t), e.length == 0 || t == 0) return "";
+ var r = e.length * t;
+ for (t = Math.floor(Math.log(t) / Math.log(2)); t; ) e += e, t--;
+ return e += e.substring(0, r - e.length), e;
+ }
+ var Xg = "", mE = "", yE = "", Tv = "", I2 = { deepStrictEqual: "Expected values to be strictly deep-equal:", strictEqual: "Expected values to be strictly equal:", strictEqualObject: 'Expected "actual" to be reference-equal to "expected":', deepEqual: "Expected values to be loosely deep-equal:", equal: "Expected values to be loosely equal:", notDeepStrictEqual: 'Expected "actual" not to be strictly deep-equal to:', notStrictEqual: 'Expected "actual" to be strictly unequal to:', notStrictEqualObject: 'Expected "actual" not to be reference-equal to "expected":', notDeepEqual: 'Expected "actual" not to be loosely deep-equal to:', notEqual: 'Expected "actual" to be loosely unequal to:', notIdentical: "Values identical but not reference-equal:" }, R4t = 10;
+ function eMe(e) {
+ var t = Object.keys(e), r = Object.create(Object.getPrototypeOf(e));
+ return t.forEach(function(n) {
+ r[n] = e[n];
+ }), Object.defineProperty(r, "message", { value: e.message }), r;
+ }
+ function _E(e) {
+ return Kj(e, { compact: false, customInspect: false, depth: 1e3, maxArrayLength: 1 / 0, showHidden: false, breakLength: 1 / 0, showProxy: false, sorted: true, getters: true });
+ }
+ function D4t(e, t, r) {
+ var n = "", i = "", a = 0, o = "", s = false, l = _E(e), u = l.split(`
+`), c = _E(t).split(`
+`), f = 0, h = "";
+ if (r === "strictEqual" && Dp(e) === "object" && Dp(t) === "object" && e !== null && t !== null && (r = "strictEqualObject"), u.length === 1 && c.length === 1 && u[0] !== c[0]) {
+ var d = u[0].length + c[0].length;
+ if (d <= R4t) {
+ if ((Dp(e) !== "object" || e === null) && (Dp(t) !== "object" || t === null) && (e !== 0 || t !== 0)) return "".concat(I2[r], `
+
+`) + "".concat(u[0], " !== ").concat(c[0], `
+`);
+ } else if (r !== "strictEqualObject") {
+ var v = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;
+ if (d < v) {
+ for (; u[0][f] === c[0][f]; ) f++;
+ f > 2 && (h = `
+ `.concat(I4t(" ", f), "^"), f = 0);
+ }
+ }
+ }
+ for (var _ = u[u.length - 1], b = c[c.length - 1]; _ === b && (f++ < 2 ? o = `
+ `.concat(_).concat(o) : n = _, u.pop(), c.pop(), !(u.length === 0 || c.length === 0)); ) _ = u[u.length - 1], b = c[c.length - 1];
+ var p = Math.max(u.length, c.length);
+ if (p === 0) {
+ var k = l.split(`
+`);
+ if (k.length > 30) for (k[26] = "".concat(Xg, "...").concat(Tv); k.length > 27; ) k.pop();
+ return "".concat(I2.notIdentical, `
+
+`).concat(k.join(`
+`), `
+`);
+ }
+ f > 3 && (o = `
+`.concat(Xg, "...").concat(Tv).concat(o), s = true), n !== "" && (o = `
+ `.concat(n).concat(o), n = "");
+ var E = 0, T = I2[r] + `
+`.concat(mE, "+ actual").concat(Tv, " ").concat(yE, "- expected").concat(Tv), L = " ".concat(Xg, "...").concat(Tv, " Lines skipped");
+ for (f = 0; f < p; f++) {
+ var x = f - a;
+ if (u.length < f + 1) x > 1 && f > 2 && (x > 4 ? (i += `
+`.concat(Xg, "...").concat(Tv), s = true) : x > 3 && (i += `
+ `.concat(c[f - 2]), E++), i += `
+ `.concat(c[f - 1]), E++), a = f, n += `
+`.concat(yE, "-").concat(Tv, " ").concat(c[f]), E++;
+ else if (c.length < f + 1) x > 1 && f > 2 && (x > 4 ? (i += `
+`.concat(Xg, "...").concat(Tv), s = true) : x > 3 && (i += `
+ `.concat(u[f - 2]), E++), i += `
+ `.concat(u[f - 1]), E++), a = f, i += `
+`.concat(mE, "+").concat(Tv, " ").concat(u[f]), E++;
+ else {
+ var C = c[f], M = u[f], g = M !== C && (!QSe(M, ",") || M.slice(0, -1) !== C);
+ g && QSe(C, ",") && C.slice(0, -1) === M && (g = false, M += ","), g ? (x > 1 && f > 2 && (x > 4 ? (i += `
+`.concat(Xg, "...").concat(Tv), s = true) : x > 3 && (i += `
+ `.concat(u[f - 2]), E++), i += `
+ `.concat(u[f - 1]), E++), a = f, i += `
+`.concat(mE, "+").concat(Tv, " ").concat(M), n += `
+`.concat(yE, "-").concat(Tv, " ").concat(C), E += 2) : (i += n, n = "", (x === 1 || f === 0) && (i += `
+ `.concat(M), E++));
+ }
+ if (E > 20 && f < p - 2) return "".concat(T).concat(L, `
+`).concat(i, `
+`).concat(Xg, "...").concat(Tv).concat(n, `
+`) + "".concat(Xg, "...").concat(Tv);
+ }
+ return "".concat(T).concat(s ? L : "", `
+`).concat(i).concat(n).concat(o).concat(h);
+ }
+ var F4t = function(e, t) {
+ M4t(n, e);
+ var r = E4t(n);
+ function n(i) {
+ var a;
+ if (T4t(this, n), Dp(i) !== "object" || i === null) throw new P4t("options", "Object", i);
+ var o = i.message, s = i.operator, l = i.stackStartFn, u = i.actual, c = i.expected, f = Error.stackTraceLimit;
+ if (Error.stackTraceLimit = 0, o != null) a = r.call(this, String(o));
+ else if (process.stderr && process.stderr.isTTY && (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1 ? (Xg = "\x1B[34m", mE = "\x1B[32m", Tv = "\x1B[39m", yE = "\x1B[31m") : (Xg = "", mE = "", Tv = "", yE = "")), Dp(u) === "object" && u !== null && Dp(c) === "object" && c !== null && "stack" in u && u instanceof Error && "stack" in c && c instanceof Error && (u = eMe(u), c = eMe(c)), s === "deepStrictEqual" || s === "strictEqual") a = r.call(this, D4t(u, c, s));
+ else if (s === "notDeepStrictEqual" || s === "notStrictEqual") {
+ var h = I2[s], d = _E(u).split(`
+`);
+ if (s === "notStrictEqual" && Dp(u) === "object" && u !== null && (h = I2.notStrictEqualObject), d.length > 30) for (d[26] = "".concat(Xg, "...").concat(Tv); d.length > 27; ) d.pop();
+ d.length === 1 ? a = r.call(this, "".concat(h, " ").concat(d[0])) : a = r.call(this, "".concat(h, `
+
+`).concat(d.join(`
+`), `
+`));
+ } else {
+ var v = _E(u), _ = "", b = I2[s];
+ s === "notDeepEqual" || s === "notEqual" ? (v = "".concat(I2[s], `
+
+`).concat(v), v.length > 1024 && (v = "".concat(v.slice(0, 1021), "..."))) : (_ = "".concat(_E(c)), v.length > 512 && (v = "".concat(v.slice(0, 509), "...")), _.length > 512 && (_ = "".concat(_.slice(0, 509), "...")), s === "deepEqual" || s === "equal" ? v = "".concat(b, `
+
+`).concat(v, `
+
+should equal
+
+`) : _ = " ".concat(s, " ").concat(_)), a = r.call(this, "".concat(v).concat(_));
+ }
+ return Error.stackTraceLimit = f, a.generatedMessage = !o, Object.defineProperty(Zj(a), "name", { value: "AssertionError [ERR_ASSERTION]", enumerable: false, writable: true, configurable: true }), a.code = "ERR_ASSERTION", a.actual = u, a.expected = c, a.operator = s, Error.captureStackTrace && Error.captureStackTrace(Zj(a), l), a.stack, a.name = "AssertionError", rMe(a);
+ }
+ return A4t(n, [{ key: "toString", value: function() {
+ return "".concat(this.name, " [").concat(this.code, "]: ").concat(this.message);
+ } }, { key: t, value: function(a, o) {
+ return Kj(this, JSe(JSe({}, o), {}, { customInspect: false, depth: 0 }));
+ } }]), n;
+ }(Yj(Error), Kj.custom);
+ nMe.exports = F4t;
+ });
+ var Jj = ye((vdr, sMe) => {
+ var oMe = Object.prototype.toString;
+ sMe.exports = function(t) {
+ var r = oMe.call(t), n = r === "[object Arguments]";
+ return n || (n = r !== "[object Array]" && t !== null && typeof t == "object" && typeof t.length == "number" && t.length >= 0 && oMe.call(t.callee) === "[object Function]"), n;
+ };
+ });
+ var gMe = ye((pdr, pMe) => {
+ var vMe;
+ Object.keys || (wE = Object.prototype.hasOwnProperty, $j = Object.prototype.toString, lMe = Jj(), Qj = Object.prototype.propertyIsEnumerable, uMe = !Qj.call({ toString: null }, "toString"), cMe = Qj.call(function() {
+ }, "prototype"), TE = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"], XR = function(e) {
+ var t = e.constructor;
+ return t && t.prototype === e;
+ }, fMe = { $applicationCache: true, $console: true, $external: true, $frame: true, $frameElement: true, $frames: true, $innerHeight: true, $innerWidth: true, $onmozfullscreenchange: true, $onmozfullscreenerror: true, $outerHeight: true, $outerWidth: true, $pageXOffset: true, $pageYOffset: true, $parent: true, $scrollLeft: true, $scrollTop: true, $scrollX: true, $scrollY: true, $self: true, $webkitIndexedDB: true, $webkitStorageInfo: true, $window: true }, hMe = function() {
+ if (typeof window == "undefined") return false;
+ for (var e in window) try {
+ if (!fMe["$" + e] && wE.call(window, e) && window[e] !== null && typeof window[e] == "object") try {
+ XR(window[e]);
+ } catch (t) {
+ return true;
+ }
+ } catch (t) {
+ return true;
+ }
+ return false;
+ }(), dMe = function(e) {
+ if (typeof window == "undefined" || !hMe) return XR(e);
+ try {
+ return XR(e);
+ } catch (t) {
+ return false;
+ }
+ }, vMe = function(t) {
+ var r = t !== null && typeof t == "object", n = $j.call(t) === "[object Function]", i = lMe(t), a = r && $j.call(t) === "[object String]", o = [];
+ if (!r && !n && !i) throw new TypeError("Object.keys called on a non-object");
+ var s = cMe && n;
+ if (a && t.length > 0 && !wE.call(t, 0)) for (var l = 0; l < t.length; ++l) o.push(String(l));
+ if (i && t.length > 0) for (var u = 0; u < t.length; ++u) o.push(String(u));
+ else for (var c in t) !(s && c === "prototype") && wE.call(t, c) && o.push(String(c));
+ if (uMe) for (var f = dMe(t), h = 0; h < TE.length; ++h) !(f && TE[h] === "constructor") && wE.call(t, TE[h]) && o.push(TE[h]);
+ return o;
+ });
+ var wE, $j, lMe, Qj, uMe, cMe, TE, XR, fMe, hMe, dMe;
+ pMe.exports = vMe;
+ });
+ var eW = ye((gdr, _Me) => {
+ var z4t = Array.prototype.slice, O4t = Jj(), mMe = Object.keys, ZR = mMe ? function(t) {
+ return mMe(t);
+ } : gMe(), yMe = Object.keys;
+ ZR.shim = function() {
+ if (Object.keys) {
+ var t = function() {
+ var r = Object.keys(arguments);
+ return r && r.length === arguments.length;
+ }(1, 2);
+ t || (Object.keys = function(n) {
+ return O4t(n) ? yMe(z4t.call(n)) : yMe(n);
+ });
+ } else Object.keys = ZR;
+ return Object.keys || ZR;
+ };
+ _Me.exports = ZR;
+ });
+ var SMe = ye((mdr, AMe) => {
+ var q4t = eW(), wMe = Y8()(), TMe = hA(), xMe = Object, B4t = TMe("Array.prototype.push"), bMe = TMe("Object.prototype.propertyIsEnumerable"), N4t = wMe ? Object.getOwnPropertySymbols : null;
+ AMe.exports = function(t, r) {
+ if (t == null) throw new TypeError("target must be an object");
+ var n = xMe(t);
+ if (arguments.length === 1) return n;
+ for (var i = 1; i < arguments.length; ++i) {
+ var a = xMe(arguments[i]), o = q4t(a), s = wMe && (Object.getOwnPropertySymbols || N4t);
+ if (s) for (var l = s(a), u = 0; u < l.length; ++u) {
+ var c = l[u];
+ bMe(a, c) && B4t(o, c);
+ }
+ for (var f = 0; f < o.length; ++f) {
+ var h = o[f];
+ if (bMe(a, h)) {
+ var d = a[h];
+ n[h] = d;
+ }
+ }
+ }
+ return n;
+ };
+ });
+ var EMe = ye((ydr, MMe) => {
+ var tW = SMe(), U4t = function() {
+ if (!Object.assign) return false;
+ for (var e = "abcdefghijklmnopqrst", t = e.split(""), r = {}, n = 0; n < t.length; ++n) r[t[n]] = t[n];
+ var i = Object.assign({}, r), a = "";
+ for (var o in i) a += o;
+ return e !== a;
+ }, V4t = function() {
+ if (!Object.assign || !Object.preventExtensions) return false;
+ var e = Object.preventExtensions({ 1: 2 });
+ try {
+ Object.assign(e, "xy");
+ } catch (t) {
+ return e[1] === "y";
+ }
+ return false;
+ };
+ MMe.exports = function() {
+ return !Object.assign || U4t() || V4t() ? tW : Object.assign;
+ };
+ });
+ var rW = ye((_dr, CMe) => {
+ var kMe = function(e) {
+ return e !== e;
+ };
+ CMe.exports = function(t, r) {
+ return t === 0 && r === 0 ? 1 / t === 1 / r : !!(t === r || kMe(t) && kMe(r));
+ };
+ });
+ var YR = ye((xdr, LMe) => {
+ var G4t = rW();
+ LMe.exports = function() {
+ return typeof Object.is == "function" ? Object.is : G4t;
+ };
+ });
+ var AE = ye((bdr, DMe) => {
+ var H4t = eW(), j4t = typeof Symbol == "function" && typeof Symbol("foo") == "symbol", W4t = Object.prototype.toString, X4t = Array.prototype.concat, PMe = Object.defineProperty, Z4t = function(e) {
+ return typeof e == "function" && W4t.call(e) === "[object Function]";
+ }, Y4t = qH()(), IMe = PMe && Y4t, K4t = function(e, t, r, n) {
+ if (t in e) {
+ if (n === true) {
+ if (e[t] === r) return;
+ } else if (!Z4t(n) || !n()) return;
+ }
+ IMe ? PMe(e, t, { configurable: true, enumerable: false, value: r, writable: true }) : e[t] = r;
+ }, RMe = function(e, t) {
+ var r = arguments.length > 2 ? arguments[2] : {}, n = H4t(t);
+ j4t && (n = X4t.call(n, Object.getOwnPropertySymbols(t)));
+ for (var i = 0; i < n.length; i += 1) K4t(e, n[i], t[n[i]], r[n[i]]);
+ };
+ RMe.supportsDescriptors = !!IMe;
+ DMe.exports = RMe;
+ });
+ var zMe = ye((wdr, FMe) => {
+ var J4t = YR(), $4t = AE();
+ FMe.exports = function() {
+ var t = J4t();
+ return $4t(Object, { is: t }, { is: function() {
+ return Object.is !== t;
+ } }), t;
+ };
+ });
+ var NMe = ye((Tdr, BMe) => {
+ var Q4t = AE(), eEt = tE(), tEt = rW(), OMe = YR(), rEt = zMe(), qMe = eEt(OMe(), Object);
+ Q4t(qMe, { getPolyfill: OMe, implementation: tEt, shim: rEt });
+ BMe.exports = qMe;
+ });
+ var iW = ye((Adr, UMe) => {
+ UMe.exports = function(t) {
+ return t !== t;
+ };
+ });
+ var nW = ye((Sdr, VMe) => {
+ var iEt = iW();
+ VMe.exports = function() {
+ return Number.isNaN && Number.isNaN(NaN) && !Number.isNaN("a") ? Number.isNaN : iEt;
+ };
+ });
+ var HMe = ye((Mdr, GMe) => {
+ var nEt = AE(), aEt = nW();
+ GMe.exports = function() {
+ var t = aEt();
+ return nEt(Number, { isNaN: t }, { isNaN: function() {
+ return Number.isNaN !== t;
+ } }), t;
+ };
+ });
+ var ZMe = ye((Edr, XMe) => {
+ var oEt = tE(), sEt = AE(), lEt = iW(), jMe = nW(), uEt = HMe(), WMe = oEt(jMe(), Number);
+ sEt(WMe, { getPolyfill: jMe, implementation: lEt, shim: uEt });
+ XMe.exports = WMe;
+ });
+ var v4e = ye((kdr, d4e) => {
+ function YMe(e, t) {
+ return dEt(e) || hEt(e, t) || fEt(e, t) || cEt();
+ }
+ function cEt() {
+ throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
+ }
+ function fEt(e, t) {
+ if (e) {
+ if (typeof e == "string") return KMe(e, t);
+ var r = Object.prototype.toString.call(e).slice(8, -1);
+ if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set") return Array.from(e);
+ if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return KMe(e, t);
+ }
+ }
+ function KMe(e, t) {
+ (t == null || t > e.length) && (t = e.length);
+ for (var r = 0, n = new Array(t); r < t; r++) n[r] = e[r];
+ return n;
+ }
+ function hEt(e, t) {
+ var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
+ if (r != null) {
+ var n, i, a, o, s = [], l = true, u = false;
+ try {
+ if (a = (r = r.call(e)).next, t === 0) ;
+ else for (; !(l = (n = a.call(r)).done) && (s.push(n.value), s.length !== t); l = true) ;
+ } catch (c) {
+ u = true, i = c;
+ } finally {
+ try {
+ if (!l && r.return != null && (o = r.return(), Object(o) !== o)) return;
+ } finally {
+ if (u) throw i;
+ }
+ }
+ return s;
+ }
+ }
+ function dEt(e) {
+ if (Array.isArray(e)) return e;
+ }
+ function Q0(e) {
+ "@babel/helpers - typeof";
+ return Q0 = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
+ return typeof t;
+ } : function(t) {
+ return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
+ }, Q0(e);
+ }
+ var vEt = /a/g.flags !== void 0, rD = function(t) {
+ var r = [];
+ return t.forEach(function(n) {
+ return r.push(n);
+ }), r;
+ }, JMe = function(t) {
+ var r = [];
+ return t.forEach(function(n, i) {
+ return r.push([i, n]);
+ }), r;
+ }, l4e = Object.is ? Object.is : NMe(), eD = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function() {
+ return [];
+ }, aW = Number.isNaN ? Number.isNaN : ZMe();
+ function sW(e) {
+ return e.call.bind(e);
+ }
+ var ME = sW(Object.prototype.hasOwnProperty), tD = sW(Object.prototype.propertyIsEnumerable), $Me = sW(Object.prototype.toString), lp = bA().types, pEt = lp.isAnyArrayBuffer, gEt = lp.isArrayBufferView, QMe = lp.isDate, KR = lp.isMap, e4e = lp.isRegExp, JR = lp.isSet, mEt = lp.isNativeError, yEt = lp.isBoxedPrimitive, t4e = lp.isNumberObject, r4e = lp.isStringObject, i4e = lp.isBooleanObject, n4e = lp.isBigIntObject, _Et = lp.isSymbolObject, xEt = lp.isFloat32Array, bEt = lp.isFloat64Array;
+ function wEt(e) {
+ if (e.length === 0 || e.length > 10) return true;
+ for (var t = 0; t < e.length; t++) {
+ var r = e.charCodeAt(t);
+ if (r < 48 || r > 57) return true;
+ }
+ return e.length === 10 && e >= Math.pow(2, 32);
+ }
+ function $R(e) {
+ return Object.keys(e).filter(wEt).concat(eD(e).filter(Object.prototype.propertyIsEnumerable.bind(e)));
+ }
+ function u4e(e, t) {
+ if (e === t) return 0;
+ for (var r = e.length, n = t.length, i = 0, a = Math.min(r, n); i < a; ++i) if (e[i] !== t[i]) {
+ r = e[i], n = t[i];
+ break;
+ }
+ return r < n ? -1 : n < r ? 1 : 0;
+ }
+ var TEt = true, AEt = false, oW = 0, lW = 1, c4e = 2, f4e = 3;
+ function SEt(e, t) {
+ return vEt ? e.source === t.source && e.flags === t.flags : RegExp.prototype.toString.call(e) === RegExp.prototype.toString.call(t);
+ }
+ function MEt(e, t) {
+ if (e.byteLength !== t.byteLength) return false;
+ for (var r = 0; r < e.byteLength; r++) if (e[r] !== t[r]) return false;
+ return true;
+ }
+ function EEt(e, t) {
+ return e.byteLength !== t.byteLength ? false : u4e(new Uint8Array(e.buffer, e.byteOffset, e.byteLength), new Uint8Array(t.buffer, t.byteOffset, t.byteLength)) === 0;
+ }
+ function kEt(e, t) {
+ return e.byteLength === t.byteLength && u4e(new Uint8Array(e), new Uint8Array(t)) === 0;
+ }
+ function CEt(e, t) {
+ return t4e(e) ? t4e(t) && l4e(Number.prototype.valueOf.call(e), Number.prototype.valueOf.call(t)) : r4e(e) ? r4e(t) && String.prototype.valueOf.call(e) === String.prototype.valueOf.call(t) : i4e(e) ? i4e(t) && Boolean.prototype.valueOf.call(e) === Boolean.prototype.valueOf.call(t) : n4e(e) ? n4e(t) && BigInt.prototype.valueOf.call(e) === BigInt.prototype.valueOf.call(t) : _Et(t) && Symbol.prototype.valueOf.call(e) === Symbol.prototype.valueOf.call(t);
+ }
+ function eg(e, t, r, n) {
+ if (e === t) return e !== 0 ? true : r ? l4e(e, t) : true;
+ if (r) {
+ if (Q0(e) !== "object") return typeof e == "number" && aW(e) && aW(t);
+ if (Q0(t) !== "object" || e === null || t === null || Object.getPrototypeOf(e) !== Object.getPrototypeOf(t)) return false;
+ } else {
+ if (e === null || Q0(e) !== "object") return t === null || Q0(t) !== "object" ? e == t : false;
+ if (t === null || Q0(t) !== "object") return false;
+ }
+ var i = $Me(e), a = $Me(t);
+ if (i !== a) return false;
+ if (Array.isArray(e)) {
+ if (e.length !== t.length) return false;
+ var o = $R(e), s = $R(t);
+ return o.length !== s.length ? false : SE(e, t, r, n, lW, o);
+ }
+ if (i === "[object Object]" && (!KR(e) && KR(t) || !JR(e) && JR(t))) return false;
+ if (QMe(e)) {
+ if (!QMe(t) || Date.prototype.getTime.call(e) !== Date.prototype.getTime.call(t)) return false;
+ } else if (e4e(e)) {
+ if (!e4e(t) || !SEt(e, t)) return false;
+ } else if (mEt(e) || e instanceof Error) {
+ if (e.message !== t.message || e.name !== t.name) return false;
+ } else if (gEt(e)) {
+ if (!r && (xEt(e) || bEt(e))) {
+ if (!MEt(e, t)) return false;
+ } else if (!EEt(e, t)) return false;
+ var l = $R(e), u = $R(t);
+ return l.length !== u.length ? false : SE(e, t, r, n, oW, l);
+ } else {
+ if (JR(e)) return !JR(t) || e.size !== t.size ? false : SE(e, t, r, n, c4e);
+ if (KR(e)) return !KR(t) || e.size !== t.size ? false : SE(e, t, r, n, f4e);
+ if (pEt(e)) {
+ if (!kEt(e, t)) return false;
+ } else if (yEt(e) && !CEt(e, t)) return false;
+ }
+ return SE(e, t, r, n, oW);
+ }
+ function a4e(e, t) {
+ return t.filter(function(r) {
+ return tD(e, r);
+ });
+ }
+ function SE(e, t, r, n, i, a) {
+ if (arguments.length === 5) {
+ a = Object.keys(e);
+ var o = Object.keys(t);
+ if (a.length !== o.length) return false;
+ }
+ for (var s = 0; s < a.length; s++) if (!ME(t, a[s])) return false;
+ if (r && arguments.length === 5) {
+ var l = eD(e);
+ if (l.length !== 0) {
+ var u = 0;
+ for (s = 0; s < l.length; s++) {
+ var c = l[s];
+ if (tD(e, c)) {
+ if (!tD(t, c)) return false;
+ a.push(c), u++;
+ } else if (tD(t, c)) return false;
+ }
+ var f = eD(t);
+ if (l.length !== f.length && a4e(t, f).length !== u) return false;
+ } else {
+ var h = eD(t);
+ if (h.length !== 0 && a4e(t, h).length !== 0) return false;
+ }
+ }
+ if (a.length === 0 && (i === oW || i === lW && e.length === 0 || e.size === 0)) return true;
+ if (n === void 0) n = { val1: /* @__PURE__ */ new Map(), val2: /* @__PURE__ */ new Map(), position: 0 };
+ else {
+ var d = n.val1.get(e);
+ if (d !== void 0) {
+ var v = n.val2.get(t);
+ if (v !== void 0) return d === v;
+ }
+ n.position++;
+ }
+ n.val1.set(e, n.position), n.val2.set(t, n.position);
+ var _ = DEt(e, t, r, a, n, i);
+ return n.val1.delete(e), n.val2.delete(t), _;
+ }
+ function o4e(e, t, r, n) {
+ for (var i = rD(e), a = 0; a < i.length; a++) {
+ var o = i[a];
+ if (eg(t, o, r, n)) return e.delete(o), true;
+ }
+ return false;
+ }
+ function h4e(e) {
+ switch (Q0(e)) {
+ case "undefined":
+ return null;
+ case "object":
+ return;
+ case "symbol":
+ return false;
+ case "string":
+ e = +e;
+ case "number":
+ if (aW(e)) return false;
+ }
+ return true;
+ }
+ function LEt(e, t, r) {
+ var n = h4e(r);
+ return n != null ? n : t.has(n) && !e.has(n);
+ }
+ function PEt(e, t, r, n, i) {
+ var a = h4e(r);
+ if (a != null) return a;
+ var o = t.get(a);
+ return o === void 0 && !t.has(a) || !eg(n, o, false, i) ? false : !e.has(a) && eg(n, o, false, i);
+ }
+ function IEt(e, t, r, n) {
+ for (var i = null, a = rD(e), o = 0; o < a.length; o++) {
+ var s = a[o];
+ if (Q0(s) === "object" && s !== null) i === null && (i = /* @__PURE__ */ new Set()), i.add(s);
+ else if (!t.has(s)) {
+ if (r || !LEt(e, t, s)) return false;
+ i === null && (i = /* @__PURE__ */ new Set()), i.add(s);
+ }
+ }
+ if (i !== null) {
+ for (var l = rD(t), u = 0; u < l.length; u++) {
+ var c = l[u];
+ if (Q0(c) === "object" && c !== null) {
+ if (!o4e(i, c, r, n)) return false;
+ } else if (!r && !e.has(c) && !o4e(i, c, r, n)) return false;
+ }
+ return i.size === 0;
+ }
+ return true;
+ }
+ function s4e(e, t, r, n, i, a) {
+ for (var o = rD(e), s = 0; s < o.length; s++) {
+ var l = o[s];
+ if (eg(r, l, i, a) && eg(n, t.get(l), i, a)) return e.delete(l), true;
+ }
+ return false;
+ }
+ function REt(e, t, r, n) {
+ for (var i = null, a = JMe(e), o = 0; o < a.length; o++) {
+ var s = YMe(a[o], 2), l = s[0], u = s[1];
+ if (Q0(l) === "object" && l !== null) i === null && (i = /* @__PURE__ */ new Set()), i.add(l);
+ else {
+ var c = t.get(l);
+ if (c === void 0 && !t.has(l) || !eg(u, c, r, n)) {
+ if (r || !PEt(e, t, l, u, n)) return false;
+ i === null && (i = /* @__PURE__ */ new Set()), i.add(l);
+ }
+ }
+ }
+ if (i !== null) {
+ for (var f = JMe(t), h = 0; h < f.length; h++) {
+ var d = YMe(f[h], 2), v = d[0], _ = d[1];
+ if (Q0(v) === "object" && v !== null) {
+ if (!s4e(i, e, v, _, r, n)) return false;
+ } else if (!r && (!e.has(v) || !eg(e.get(v), _, false, n)) && !s4e(i, e, v, _, false, n)) return false;
+ }
+ return i.size === 0;
+ }
+ return true;
+ }
+ function DEt(e, t, r, n, i, a) {
+ var o = 0;
+ if (a === c4e) {
+ if (!IEt(e, t, r, i)) return false;
+ } else if (a === f4e) {
+ if (!REt(e, t, r, i)) return false;
+ } else if (a === lW) for (; o < e.length; o++) if (ME(e, o)) {
+ if (!ME(t, o) || !eg(e[o], t[o], r, i)) return false;
+ } else {
+ if (ME(t, o)) return false;
+ for (var s = Object.keys(e); o < s.length; o++) {
+ var l = s[o];
+ if (!ME(t, l) || !eg(e[l], t[l], r, i)) return false;
+ }
+ return s.length === Object.keys(t).length;
+ }
+ for (o = 0; o < n.length; o++) {
+ var u = n[o];
+ if (!eg(e[u], t[u], r, i)) return false;
+ }
+ return true;
+ }
+ function FEt(e, t) {
+ return eg(e, t, AEt);
+ }
+ function zEt(e, t) {
+ return eg(e, t, TEt);
+ }
+ d4e.exports = { isDeepEqual: FEt, isDeepStrictEqual: zEt };
+ });
+ var gE = ye((Cdr, I4e) => {
+ function Zg(e) {
+ "@babel/helpers - typeof";
+ return Zg = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
+ return typeof t;
+ } : function(t) {
+ return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
+ }, Zg(e);
+ }
+ function OEt(e, t, r) {
+ return Object.defineProperty(e, "prototype", { writable: false }), e;
+ }
+ function NEt(e, t) {
+ if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
+ }
+ var UEt = Xj(), EE = UEt.codes, g4e = EE.ERR_AMBIGUOUS_ARGUMENT, TA = EE.ERR_INVALID_ARG_TYPE, VEt = EE.ERR_INVALID_ARG_VALUE, GEt = EE.ERR_INVALID_RETURN_VALUE, Y_ = EE.ERR_MISSING_ARGS, K_ = aMe(), HEt = bA(), iD = HEt.inspect, x4e = bA().types, jEt = x4e.isPromise, nD = x4e.isRegExp, WEt = EMe()(), b4e = YR()(), aD = hA()("RegExp.prototype.test"), Z_, oD;
+ function kE() {
+ var e = v4e();
+ Z_ = e.isDeepEqual, oD = e.isDeepStrictEqual;
+ }
+ var m4e = false, Ef = I4e.exports = uW, sD = {};
+ function Yg(e) {
+ throw e.message instanceof Error ? e.message : new K_(e);
+ }
+ function w4e(e, t, r, n, i) {
+ var a = arguments.length, o;
+ if (a === 0) o = "Failed";
+ else if (a === 1) r = e, e = void 0;
+ else {
+ if (m4e === false) {
+ m4e = true;
+ var s = process.emitWarning ? process.emitWarning : console.warn.bind(console);
+ s("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.", "DeprecationWarning", "DEP0094");
+ }
+ a === 2 && (n = "!=");
+ }
+ if (r instanceof Error) throw r;
+ var l = { actual: e, expected: t, operator: n === void 0 ? "fail" : n, stackStartFn: i || w4e };
+ r !== void 0 && (l.message = r);
+ var u = new K_(l);
+ throw o && (u.message = o, u.generatedMessage = true), u;
+ }
+ Ef.fail = w4e;
+ Ef.AssertionError = K_;
+ function T4e(e, t, r, n) {
+ if (!r) {
+ var i = false;
+ if (t === 0) i = true, n = "No value argument passed to `assert.ok()`";
+ else if (n instanceof Error) throw n;
+ var a = new K_({ actual: r, expected: true, message: n, operator: "==", stackStartFn: e });
+ throw a.generatedMessage = i, a;
+ }
+ }
+ function uW() {
+ for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];
+ T4e.apply(void 0, [uW, t.length].concat(t));
+ }
+ Ef.ok = uW;
+ Ef.equal = function e(t, r, n) {
+ if (arguments.length < 2) throw new Y_("actual", "expected");
+ t != r && Yg({ actual: t, expected: r, message: n, operator: "==", stackStartFn: e });
+ };
+ Ef.notEqual = function e(t, r, n) {
+ if (arguments.length < 2) throw new Y_("actual", "expected");
+ t == r && Yg({ actual: t, expected: r, message: n, operator: "!=", stackStartFn: e });
+ };
+ Ef.deepEqual = function e(t, r, n) {
+ if (arguments.length < 2) throw new Y_("actual", "expected");
+ Z_ === void 0 && kE(), Z_(t, r) || Yg({ actual: t, expected: r, message: n, operator: "deepEqual", stackStartFn: e });
+ };
+ Ef.notDeepEqual = function e(t, r, n) {
+ if (arguments.length < 2) throw new Y_("actual", "expected");
+ Z_ === void 0 && kE(), Z_(t, r) && Yg({ actual: t, expected: r, message: n, operator: "notDeepEqual", stackStartFn: e });
+ };
+ Ef.deepStrictEqual = function e(t, r, n) {
+ if (arguments.length < 2) throw new Y_("actual", "expected");
+ Z_ === void 0 && kE(), oD(t, r) || Yg({ actual: t, expected: r, message: n, operator: "deepStrictEqual", stackStartFn: e });
+ };
+ Ef.notDeepStrictEqual = A4e;
+ function A4e(e, t, r) {
+ if (arguments.length < 2) throw new Y_("actual", "expected");
+ Z_ === void 0 && kE(), oD(e, t) && Yg({ actual: e, expected: t, message: r, operator: "notDeepStrictEqual", stackStartFn: A4e });
+ }
+ Ef.strictEqual = function e(t, r, n) {
+ if (arguments.length < 2) throw new Y_("actual", "expected");
+ b4e(t, r) || Yg({ actual: t, expected: r, message: n, operator: "strictEqual", stackStartFn: e });
+ };
+ Ef.notStrictEqual = function e(t, r, n) {
+ if (arguments.length < 2) throw new Y_("actual", "expected");
+ b4e(t, r) && Yg({ actual: t, expected: r, message: n, operator: "notStrictEqual", stackStartFn: e });
+ };
+ var y4e = OEt(function e(t, r, n) {
+ var i = this;
+ NEt(this, e), r.forEach(function(a) {
+ a in t && (n !== void 0 && typeof n[a] == "string" && nD(t[a]) && aD(t[a], n[a]) ? i[a] = n[a] : i[a] = t[a]);
+ });
+ });
+ function XEt(e, t, r, n, i, a) {
+ if (!(r in e) || !oD(e[r], t[r])) {
+ if (!n) {
+ var o = new y4e(e, i), s = new y4e(t, i, e), l = new K_({ actual: o, expected: s, operator: "deepStrictEqual", stackStartFn: a });
+ throw l.actual = e, l.expected = t, l.operator = a.name, l;
+ }
+ Yg({ actual: e, expected: t, message: n, operator: a.name, stackStartFn: a });
+ }
+ }
+ function S4e(e, t, r, n) {
+ if (typeof t != "function") {
+ if (nD(t)) return aD(t, e);
+ if (arguments.length === 2) throw new TA("expected", ["Function", "RegExp"], t);
+ if (Zg(e) !== "object" || e === null) {
+ var i = new K_({ actual: e, expected: t, message: r, operator: "deepStrictEqual", stackStartFn: n });
+ throw i.operator = n.name, i;
+ }
+ var a = Object.keys(t);
+ if (t instanceof Error) a.push("name", "message");
+ else if (a.length === 0) throw new VEt("error", t, "may not be an empty object");
+ return Z_ === void 0 && kE(), a.forEach(function(o) {
+ typeof e[o] == "string" && nD(t[o]) && aD(t[o], e[o]) || XEt(e, t, o, r, a, n);
+ }), true;
+ }
+ return t.prototype !== void 0 && e instanceof t ? true : Error.isPrototypeOf(t) ? false : t.call({}, e) === true;
+ }
+ function M4e(e) {
+ if (typeof e != "function") throw new TA("fn", "Function", e);
+ try {
+ e();
+ } catch (t) {
+ return t;
+ }
+ return sD;
+ }
+ function _4e(e) {
+ return jEt(e) || e !== null && Zg(e) === "object" && typeof e.then == "function" && typeof e.catch == "function";
+ }
+ function E4e(e) {
+ return Promise.resolve().then(function() {
+ var t;
+ if (typeof e == "function") {
+ if (t = e(), !_4e(t)) throw new GEt("instance of Promise", "promiseFn", t);
+ } else if (_4e(e)) t = e;
+ else throw new TA("promiseFn", ["Function", "Promise"], e);
+ return Promise.resolve().then(function() {
+ return t;
+ }).then(function() {
+ return sD;
+ }).catch(function(r) {
+ return r;
+ });
+ });
+ }
+ function k4e(e, t, r, n) {
+ if (typeof r == "string") {
+ if (arguments.length === 4) throw new TA("error", ["Object", "Error", "Function", "RegExp"], r);
+ if (Zg(t) === "object" && t !== null) {
+ if (t.message === r) throw new g4e("error/message", 'The error message "'.concat(t.message, '" is identical to the message.'));
+ } else if (t === r) throw new g4e("error/message", 'The error "'.concat(t, '" is identical to the message.'));
+ n = r, r = void 0;
+ } else if (r != null && Zg(r) !== "object" && typeof r != "function") throw new TA("error", ["Object", "Error", "Function", "RegExp"], r);
+ if (t === sD) {
+ var i = "";
+ r && r.name && (i += " (".concat(r.name, ")")), i += n ? ": ".concat(n) : ".";
+ var a = e.name === "rejects" ? "rejection" : "exception";
+ Yg({ actual: void 0, expected: r, operator: e.name, message: "Missing expected ".concat(a).concat(i), stackStartFn: e });
+ }
+ if (r && !S4e(t, r, n, e)) throw t;
+ }
+ function C4e(e, t, r, n) {
+ if (t !== sD) {
+ if (typeof r == "string" && (n = r, r = void 0), !r || S4e(t, r)) {
+ var i = n ? ": ".concat(n) : ".", a = e.name === "doesNotReject" ? "rejection" : "exception";
+ Yg({ actual: t, expected: r, operator: e.name, message: "Got unwanted ".concat(a).concat(i, `
+`) + 'Actual message: "'.concat(t && t.message, '"'), stackStartFn: e });
+ }
+ throw t;
+ }
+ }
+ Ef.throws = function e(t) {
+ for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i];
+ k4e.apply(void 0, [e, M4e(t)].concat(n));
+ };
+ Ef.rejects = function e(t) {
+ for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i];
+ return E4e(t).then(function(a) {
+ return k4e.apply(void 0, [e, a].concat(n));
+ });
+ };
+ Ef.doesNotThrow = function e(t) {
+ for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i];
+ C4e.apply(void 0, [e, M4e(t)].concat(n));
+ };
+ Ef.doesNotReject = function e(t) {
+ for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i];
+ return E4e(t).then(function(a) {
+ return C4e.apply(void 0, [e, a].concat(n));
+ });
+ };
+ Ef.ifError = function e(t) {
+ if (t != null) {
+ var r = "ifError got unwanted exception: ";
+ Zg(t) === "object" && typeof t.message == "string" ? t.message.length === 0 && t.constructor ? r += t.constructor.name : r += t.message : r += iD(t);
+ var n = new K_({ actual: t, expected: null, operator: "ifError", message: r, stackStartFn: e }), i = t.stack;
+ if (typeof i == "string") {
+ var a = i.split(`
+`);
+ a.shift();
+ for (var o = n.stack.split(`
+`), s = 0; s < a.length; s++) {
+ var l = o.indexOf(a[s]);
+ if (l !== -1) {
+ o = o.slice(0, l);
+ break;
+ }
+ }
+ n.stack = "".concat(o.join(`
+`), `
+`).concat(a.join(`
+`));
+ }
+ throw n;
+ }
+ };
+ function L4e(e, t, r, n, i) {
+ if (!nD(t)) throw new TA("regexp", "RegExp", t);
+ var a = i === "match";
+ if (typeof e != "string" || aD(t, e) !== a) {
+ if (r instanceof Error) throw r;
+ var o = !r;
+ r = r || (typeof e != "string" ? 'The "string" argument must be of type string. Received type ' + "".concat(Zg(e), " (").concat(iD(e), ")") : (a ? "The input did not match the regular expression " : "The input was expected to not match the regular expression ") + "".concat(iD(t), `. Input:
+
+`).concat(iD(e), `
+`));
+ var s = new K_({ actual: e, expected: t, message: r, operator: i, stackStartFn: n });
+ throw s.generatedMessage = o, s;
+ }
+ }
+ Ef.match = function e(t, r, n) {
+ L4e(t, r, n, e, "match");
+ };
+ Ef.doesNotMatch = function e(t, r, n) {
+ L4e(t, r, n, e, "doesNotMatch");
+ };
+ function P4e() {
+ for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];
+ T4e.apply(void 0, [P4e, t.length].concat(t));
+ }
+ Ef.strict = WEt(P4e, Ef, { equal: Ef.strictEqual, deepEqual: Ef.deepStrictEqual, notEqual: Ef.notStrictEqual, notDeepEqual: Ef.notDeepStrictEqual });
+ Ef.strict.strict = Ef.strict;
+ });
+ var D4e = ye((Ldr, R4e) => {
+ var CE = 1e3, LE = CE * 60, PE = LE * 60, IE = PE * 24, ZEt = IE * 365.25;
+ R4e.exports = function(e, t) {
+ t = t || {};
+ var r = typeof e;
+ if (r === "string" && e.length > 0) return YEt(e);
+ if (r === "number" && isNaN(e) === false) return t.long ? JEt(e) : KEt(e);
+ throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(e));
+ };
+ function YEt(e) {
+ if (e = String(e), !(e.length > 100)) {
+ var t = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);
+ if (t) {
+ var r = parseFloat(t[1]), n = (t[2] || "ms").toLowerCase();
+ switch (n) {
+ case "years":
+ case "year":
+ case "yrs":
+ case "yr":
+ case "y":
+ return r * ZEt;
+ case "days":
+ case "day":
+ case "d":
+ return r * IE;
+ case "hours":
+ case "hour":
+ case "hrs":
+ case "hr":
+ case "h":
+ return r * PE;
+ case "minutes":
+ case "minute":
+ case "mins":
+ case "min":
+ case "m":
+ return r * LE;
+ case "seconds":
+ case "second":
+ case "secs":
+ case "sec":
+ case "s":
+ return r * CE;
+ case "milliseconds":
+ case "millisecond":
+ case "msecs":
+ case "msec":
+ case "ms":
+ return r;
+ default:
+ return;
+ }
+ }
+ }
+ }
+ function KEt(e) {
+ return e >= IE ? Math.round(e / IE) + "d" : e >= PE ? Math.round(e / PE) + "h" : e >= LE ? Math.round(e / LE) + "m" : e >= CE ? Math.round(e / CE) + "s" : e + "ms";
+ }
+ function JEt(e) {
+ return lD(e, IE, "day") || lD(e, PE, "hour") || lD(e, LE, "minute") || lD(e, CE, "second") || e + " ms";
+ }
+ function lD(e, t, r) {
+ if (!(e < t)) return e < t * 1.5 ? Math.floor(e / t) + " " + r : Math.ceil(e / t) + " " + r + "s";
+ }
+ });
+ var z4e = ye((Lc, F4e) => {
+ Lc = F4e.exports = fW.debug = fW.default = fW;
+ Lc.coerce = rkt;
+ Lc.disable = ekt;
+ Lc.enable = QEt;
+ Lc.enabled = tkt;
+ Lc.humanize = D4e();
+ Lc.names = [];
+ Lc.skips = [];
+ Lc.formatters = {};
+ var cW;
+ function $Et(e) {
+ var t = 0, r;
+ for (r in e) t = (t << 5) - t + e.charCodeAt(r), t |= 0;
+ return Lc.colors[Math.abs(t) % Lc.colors.length];
+ }
+ function fW(e) {
+ function t() {
+ if (t.enabled) {
+ var r = t, n = +/* @__PURE__ */ new Date(), i = n - (cW || n);
+ r.diff = i, r.prev = cW, r.curr = n, cW = n;
+ for (var a = new Array(arguments.length), o = 0; o < a.length; o++) a[o] = arguments[o];
+ a[0] = Lc.coerce(a[0]), typeof a[0] != "string" && a.unshift("%O");
+ var s = 0;
+ a[0] = a[0].replace(/%([a-zA-Z%])/g, function(u, c) {
+ if (u === "%%") return u;
+ s++;
+ var f = Lc.formatters[c];
+ if (typeof f == "function") {
+ var h = a[s];
+ u = f.call(r, h), a.splice(s, 1), s--;
+ }
+ return u;
+ }), Lc.formatArgs.call(r, a);
+ var l = t.log || Lc.log || console.log.bind(console);
+ l.apply(r, a);
+ }
+ }
+ return t.namespace = e, t.enabled = Lc.enabled(e), t.useColors = Lc.useColors(), t.color = $Et(e), typeof Lc.init == "function" && Lc.init(t), t;
+ }
+ function QEt(e) {
+ Lc.save(e), Lc.names = [], Lc.skips = [];
+ for (var t = (typeof e == "string" ? e : "").split(/[\s,]+/), r = t.length, n = 0; n < r; n++) t[n] && (e = t[n].replace(/\*/g, ".*?"), e[0] === "-" ? Lc.skips.push(new RegExp("^" + e.substr(1) + "$")) : Lc.names.push(new RegExp("^" + e + "$")));
+ }
+ function ekt() {
+ Lc.enable("");
+ }
+ function tkt(e) {
+ var t, r;
+ for (t = 0, r = Lc.skips.length; t < r; t++) if (Lc.skips[t].test(e)) return false;
+ for (t = 0, r = Lc.names.length; t < r; t++) if (Lc.names[t].test(e)) return true;
+ return false;
+ }
+ function rkt(e) {
+ return e instanceof Error ? e.stack || e.message : e;
+ }
+ });
+ var B4e = ye((up, q4e) => {
+ up = q4e.exports = z4e();
+ up.log = akt;
+ up.formatArgs = nkt;
+ up.save = okt;
+ up.load = O4e;
+ up.useColors = ikt;
+ up.storage = typeof chrome != "undefined" && typeof chrome.storage != "undefined" ? chrome.storage.local : skt();
+ up.colors = ["lightseagreen", "forestgreen", "goldenrod", "dodgerblue", "darkorchid", "crimson"];
+ function ikt() {
+ return typeof window != "undefined" && window.process && window.process.type === "renderer" ? true : typeof document != "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window != "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
+ }
+ up.formatters.j = function(e) {
+ try {
+ return JSON.stringify(e);
+ } catch (t) {
+ return "[UnexpectedJSONParseError]: " + t.message;
+ }
+ };
+ function nkt(e) {
+ var t = this.useColors;
+ if (e[0] = (t ? "%c" : "") + this.namespace + (t ? " %c" : " ") + e[0] + (t ? "%c " : " ") + "+" + up.humanize(this.diff), !!t) {
+ var r = "color: " + this.color;
+ e.splice(1, 0, r, "color: inherit");
+ var n = 0, i = 0;
+ e[0].replace(/%[a-zA-Z%]/g, function(a) {
+ a !== "%%" && (n++, a === "%c" && (i = n));
+ }), e.splice(i, 0, r);
+ }
+ }
+ function akt() {
+ return typeof console == "object" && console.log && Function.prototype.apply.call(console.log, console, arguments);
+ }
+ function okt(e) {
+ try {
+ e == null ? up.storage.removeItem("debug") : up.storage.debug = e;
+ } catch (t) {
+ }
+ }
+ function O4e() {
+ var e;
+ try {
+ e = up.storage.debug;
+ } catch (t) {
+ }
+ return !e && typeof process != "undefined" && "env" in process && (e = define_process_env_default.DEBUG), e;
+ }
+ up.enable(O4e());
+ function skt() {
+ try {
+ return window.localStorage;
+ } catch (e) {
+ }
+ }
+ });
+ var X4e = ye((Pdr, W4e) => {
+ var AA = gE(), J_ = B4e()("stream-parser");
+ W4e.exports = ukt;
+ var U4e = -1, uD = 0, lkt = 1, V4e = 2;
+ function ukt(e) {
+ var t = e && typeof e._transform == "function", r = e && typeof e._write == "function";
+ if (!t && !r) throw new Error("must pass a Writable or Transform stream in");
+ J_("extending Parser into stream"), e._bytes = ckt, e._skipBytes = fkt, t && (e._passthrough = hkt), t ? e._transform = vkt : e._write = dkt;
+ }
+ function RE(e) {
+ J_("initializing parser stream"), e._parserBytesLeft = 0, e._parserBuffers = [], e._parserBuffered = 0, e._parserState = U4e, e._parserCallback = null, typeof e.push == "function" && (e._parserOutput = e.push.bind(e)), e._parserInit = true;
+ }
+ function ckt(e, t) {
+ AA(!this._parserCallback, 'there is already a "callback" set!'), AA(isFinite(e) && e > 0, 'can only buffer a finite number of bytes > 0, got "' + e + '"'), this._parserInit || RE(this), J_("buffering %o bytes", e), this._parserBytesLeft = e, this._parserCallback = t, this._parserState = uD;
+ }
+ function fkt(e, t) {
+ AA(!this._parserCallback, 'there is already a "callback" set!'), AA(e > 0, 'can only skip > 0 bytes, got "' + e + '"'), this._parserInit || RE(this), J_("skipping %o bytes", e), this._parserBytesLeft = e, this._parserCallback = t, this._parserState = lkt;
+ }
+ function hkt(e, t) {
+ AA(!this._parserCallback, 'There is already a "callback" set!'), AA(e > 0, 'can only pass through > 0 bytes, got "' + e + '"'), this._parserInit || RE(this), J_("passing through %o bytes", e), this._parserBytesLeft = e, this._parserCallback = t, this._parserState = V4e;
+ }
+ function dkt(e, t, r) {
+ this._parserInit || RE(this), J_("write(%o bytes)", e.length), typeof t == "function" && (r = t), H4e(this, e, null, r);
+ }
+ function vkt(e, t, r) {
+ this._parserInit || RE(this), J_("transform(%o bytes)", e.length), typeof t != "function" && (t = this._parserOutput), H4e(this, e, t, r);
+ }
+ function G4e(e, t, r, n) {
+ return e._parserBytesLeft <= 0 ? n(new Error("got data but not currently parsing anything")) : t.length <= e._parserBytesLeft ? function() {
+ return N4e(e, t, r, n);
+ } : function() {
+ var i = t.slice(0, e._parserBytesLeft);
+ return N4e(e, i, r, function(a) {
+ if (a) return n(a);
+ if (t.length > i.length) return function() {
+ return G4e(e, t.slice(i.length), r, n);
+ };
+ });
+ };
+ }
+ function N4e(e, t, r, n) {
+ if (e._parserBytesLeft -= t.length, J_("%o bytes left for stream piece", e._parserBytesLeft), e._parserState === uD ? (e._parserBuffers.push(t), e._parserBuffered += t.length) : e._parserState === V4e && r(t), e._parserBytesLeft === 0) {
+ var i = e._parserCallback;
+ if (i && e._parserState === uD && e._parserBuffers.length > 1 && (t = Buffer.concat(e._parserBuffers, e._parserBuffered)), e._parserState !== uD && (t = null), e._parserCallback = null, e._parserBuffered = 0, e._parserState = U4e, e._parserBuffers.splice(0), i) {
+ var a = [];
+ t && a.push(t), r && a.push(r);
+ var o = i.length > a.length;
+ o && a.push(j4e(n));
+ var s = i.apply(e, a);
+ if (!o || n === s) return n;
+ }
+ } else return n;
+ }
+ var H4e = j4e(G4e);
+ function j4e(e) {
+ return function() {
+ for (var t = e.apply(this, arguments); typeof t == "function"; ) t = t();
+ return t;
+ };
+ }
+ });
+ var rc = ye((Jy) => {
+ var Z4e = NSe().Transform, pkt = X4e();
+ function DE() {
+ Z4e.call(this, { readableObjectMode: true });
+ }
+ DE.prototype = Object.create(Z4e.prototype);
+ DE.prototype.constructor = DE;
+ pkt(DE.prototype);
+ Jy.ParserStream = DE;
+ Jy.sliceEq = function(e, t, r) {
+ for (var n = t, i = 0; i < r.length; ) if (e[n++] !== r[i++]) return false;
+ return true;
+ };
+ Jy.str2arr = function(e, t) {
+ var r = [], n = 0;
+ if (t && t === "hex") for (; n < e.length; ) r.push(parseInt(e.slice(n, n + 2), 16)), n += 2;
+ else for (; n < e.length; n++) r.push(e.charCodeAt(n) & 255);
+ return r;
+ };
+ Jy.readUInt16LE = function(e, t) {
+ return e[t] | e[t + 1] << 8;
+ };
+ Jy.readUInt16BE = function(e, t) {
+ return e[t + 1] | e[t] << 8;
+ };
+ Jy.readUInt32LE = function(e, t) {
+ return e[t] | e[t + 1] << 8 | e[t + 2] << 16 | e[t + 3] * 16777216;
+ };
+ Jy.readUInt32BE = function(e, t) {
+ return e[t + 3] | e[t + 2] << 8 | e[t + 1] << 16 | e[t] * 16777216;
+ };
+ function cD(e, t, r) {
+ Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack || "", this.name = this.constructor.name, this.message = e, t && (this.code = t), r && (this.statusCode = r);
+ }
+ cD.prototype = Object.create(Error.prototype);
+ cD.prototype.constructor = cD;
+ Jy.ProbeError = cD;
+ });
+ var Y4e = ye((Rdr, fD) => {
+ var SA = rc().readUInt16BE, dW = rc().readUInt32BE;
+ function FE(e, t) {
+ if (e.length < 4 + t) return null;
+ var r = dW(e, t);
+ return e.length < r + t || r < 8 ? null : { boxtype: String.fromCharCode.apply(null, e.slice(t + 4, t + 8)), data: e.slice(t + 8, t + r), end: t + r };
+ }
+ fD.exports.unbox = FE;
+ function gkt(e, t) {
+ for (var r = 0; ; ) {
+ var n = FE(e, r);
+ if (!n) break;
+ switch (n.boxtype) {
+ case "ispe":
+ t.sizes.push({ width: dW(n.data, 4), height: dW(n.data, 8) });
+ break;
+ case "irot":
+ t.transforms.push({ type: "irot", value: n.data[0] & 3 });
+ break;
+ case "imir":
+ t.transforms.push({ type: "imir", value: n.data[0] & 1 });
+ break;
+ }
+ r = n.end;
+ }
+ }
+ function hW(e, t, r) {
+ for (var n = 0, i = 0; i < r; i++) n = n * 256 + (e[t + i] || 0);
+ return n;
+ }
+ function mkt(e, t) {
+ for (var r = e[4] >> 4 & 15, n = e[4] & 15, i = e[5] >> 4 & 15, a = SA(e, 6), o = 8, s = 0; s < a; s++) {
+ var l = SA(e, o);
+ o += 2;
+ var u = SA(e, o);
+ o += 2;
+ var c = hW(e, o, i);
+ o += i;
+ var f = SA(e, o);
+ if (o += 2, u === 0 && f === 1) {
+ var h = hW(e, o, r), d = hW(e, o + r, n);
+ t.item_loc[l] = { length: d, offset: h + c };
+ }
+ o += f * (r + n);
+ }
+ }
+ function ykt(e, t) {
+ for (var r = SA(e, 4), n = 6, i = 0; i < r; i++) {
+ var a = FE(e, n);
+ if (!a) break;
+ if (a.boxtype === "infe") {
+ for (var o = SA(a.data, 4), s = "", l = 8; l < a.data.length && a.data[l]; l++) s += String.fromCharCode(a.data[l]);
+ t.item_inf[s] = o;
+ }
+ n = a.end;
+ }
+ }
+ function _kt(e, t) {
+ for (var r = 0; ; ) {
+ var n = FE(e, r);
+ if (!n) break;
+ n.boxtype === "ipco" && gkt(n.data, t), r = n.end;
+ }
+ }
+ function xkt(e, t) {
+ for (var r = 4; ; ) {
+ var n = FE(e, r);
+ if (!n) break;
+ n.boxtype === "iprp" && _kt(n.data, t), n.boxtype === "iloc" && mkt(n.data, t), n.boxtype === "iinf" && ykt(n.data, t), r = n.end;
+ }
+ }
+ function bkt(e) {
+ var t = e.reduce(function(i, a) {
+ return i.width > a.width || i.width === a.width && i.height > a.height ? i : a;
+ }), r = e.reduce(function(i, a) {
+ return i.height > a.height || i.height === a.height && i.width > a.width ? i : a;
+ }), n;
+ return t.width > r.height || t.width === r.height && t.height > r.width ? n = t : n = r, n;
+ }
+ fD.exports.readSizeFromMeta = function(e) {
+ var t = { sizes: [], transforms: [], item_inf: {}, item_loc: {} };
+ if (xkt(e, t), !!t.sizes.length) {
+ var r = bkt(t.sizes), n = 1;
+ t.transforms.forEach(function(a) {
+ var o = { 1: 6, 2: 5, 3: 8, 4: 7, 5: 4, 6: 3, 7: 2, 8: 1 }, s = { 1: 4, 2: 3, 3: 2, 4: 1, 5: 6, 6: 5, 7: 8, 8: 7 };
+ if (a.type === "imir" && (a.value === 0 ? n = s[n] : (n = s[n], n = o[n], n = o[n])), a.type === "irot") for (var l = 0; l < a.value; l++) n = o[n];
+ });
+ var i = null;
+ return t.item_inf.Exif && (i = t.item_loc[t.item_inf.Exif]), { width: r.width, height: r.height, orientation: t.transforms.length ? n : null, variants: t.sizes, exif_location: i };
+ }
+ };
+ fD.exports.getMimeType = function(e) {
+ var t = String.fromCharCode.apply(null, e.slice(0, 4)), r = {};
+ r[t] = true;
+ for (var n = 8; n < e.length; n += 4) r[String.fromCharCode.apply(null, e.slice(n, n + 4))] = true;
+ if (!(!r.mif1 && !r.msf1 && !r.miaf)) return t === "avif" || t === "avis" || t === "avio" ? { type: "avif", mime: "image/avif" } : t === "heic" || t === "heix" ? { type: "heic", mime: "image/heic" } : t === "hevc" || t === "hevx" ? { type: "heic", mime: "image/heic-sequence" } : r.avif || r.avis ? { type: "avif", mime: "image/avif" } : r.heic || r.heix || r.hevc || r.hevx || r.heis ? r.msf1 ? { type: "heif", mime: "image/heif-sequence" } : { type: "heif", mime: "image/heif" } : { type: "avif", mime: "image/avif" };
+ };
+ });
+ var dD = ye((Ddr, vW) => {
+ function hD(e, t) {
+ var r = new Error(e);
+ return r.code = t, r;
+ }
+ function wkt(e) {
+ try {
+ return decodeURIComponent(escape(e));
+ } catch (t) {
+ return e;
+ }
+ }
+ function $y(e, t, r) {
+ this.input = e.subarray(t, r), this.start = t;
+ var n = String.fromCharCode.apply(null, this.input.subarray(0, 4));
+ if (n !== "II*\0" && n !== "MM\0*") throw hD("invalid TIFF signature", "EBADDATA");
+ this.big_endian = n[0] === "M";
+ }
+ $y.prototype.each = function(e) {
+ this.aborted = false;
+ var t = this.read_uint32(4);
+ for (this.ifds_to_read = [{ id: 0, offset: t }]; this.ifds_to_read.length > 0 && !this.aborted; ) {
+ var r = this.ifds_to_read.shift();
+ r.offset && this.scan_ifd(r.id, r.offset, e);
+ }
+ };
+ $y.prototype.read_uint16 = function(e) {
+ var t = this.input;
+ if (e + 2 > t.length) throw hD("unexpected EOF", "EBADDATA");
+ return this.big_endian ? t[e] * 256 + t[e + 1] : t[e] + t[e + 1] * 256;
+ };
+ $y.prototype.read_uint32 = function(e) {
+ var t = this.input;
+ if (e + 4 > t.length) throw hD("unexpected EOF", "EBADDATA");
+ return this.big_endian ? t[e] * 16777216 + t[e + 1] * 65536 + t[e + 2] * 256 + t[e + 3] : t[e] + t[e + 1] * 256 + t[e + 2] * 65536 + t[e + 3] * 16777216;
+ };
+ $y.prototype.is_subifd_link = function(e, t) {
+ return e === 0 && t === 34665 || e === 0 && t === 34853 || e === 34665 && t === 40965;
+ };
+ $y.prototype.exif_format_length = function(e) {
+ switch (e) {
+ case 1:
+ case 2:
+ case 6:
+ case 7:
+ return 1;
+ case 3:
+ case 8:
+ return 2;
+ case 4:
+ case 9:
+ case 11:
+ return 4;
+ case 5:
+ case 10:
+ case 12:
+ return 8;
+ default:
+ return 0;
+ }
+ };
+ $y.prototype.exif_format_read = function(e, t) {
+ var r;
+ switch (e) {
+ case 1:
+ case 2:
+ return r = this.input[t], r;
+ case 6:
+ return r = this.input[t], r | (r & 128) * 33554430;
+ case 3:
+ return r = this.read_uint16(t), r;
+ case 8:
+ return r = this.read_uint16(t), r | (r & 32768) * 131070;
+ case 4:
+ return r = this.read_uint32(t), r;
+ case 9:
+ return r = this.read_uint32(t), r | 0;
+ case 5:
+ case 10:
+ case 11:
+ case 12:
+ return null;
+ case 7:
+ return null;
+ default:
+ return null;
+ }
+ };
+ $y.prototype.scan_ifd = function(e, t, r) {
+ var n = this.read_uint16(t);
+ t += 2;
+ for (var i = 0; i < n; i++) {
+ var a = this.read_uint16(t), o = this.read_uint16(t + 2), s = this.read_uint32(t + 4), l = this.exif_format_length(o), u = s * l, c = u <= 4 ? t + 8 : this.read_uint32(t + 8), f = false;
+ if (c + u > this.input.length) throw hD("unexpected EOF", "EBADDATA");
+ for (var h = [], d = c, v = 0; v < s; v++, d += l) {
+ var _ = this.exif_format_read(o, d);
+ if (_ === null) {
+ h = null;
+ break;
+ }
+ h.push(_);
+ }
+ Array.isArray(h) && o === 2 && (h = wkt(String.fromCharCode.apply(null, h)), h && h[h.length - 1] === "\0" && (h = h.slice(0, -1))), this.is_subifd_link(e, a) && Array.isArray(h) && Number.isInteger(h[0]) && h[0] > 0 && (this.ifds_to_read.push({ id: a, offset: h[0] }), f = true);
+ var b = { is_big_endian: this.big_endian, ifd: e, tag: a, format: o, count: s, entry_offset: t + this.start, data_length: u, data_offset: c + this.start, value: h, is_subifd_link: f };
+ if (r(b) === false) {
+ this.aborted = true;
+ return;
+ }
+ t += 12;
+ }
+ e === 0 && this.ifds_to_read.push({ id: 1, offset: this.read_uint32(t) });
+ };
+ vW.exports.ExifParser = $y;
+ vW.exports.get_orientation = function(e) {
+ var t = 0;
+ try {
+ return new $y(e, 0, e.length).each(function(r) {
+ if (r.ifd === 0 && r.tag === 274 && Array.isArray(r.value)) return t = r.value[0], false;
+ }), t;
+ } catch (r) {
+ return -1;
+ }
+ };
+ });
+ var J4e = ye((Fdr, K4e) => {
+ var Tkt = rc().str2arr, Akt = rc().sliceEq, Skt = rc().readUInt32BE, vD = Y4e(), Mkt = dD(), Ekt = Tkt("ftyp");
+ K4e.exports = function(e) {
+ if (Akt(e, 4, Ekt)) {
+ var t = vD.unbox(e, 0);
+ if (t) {
+ var r = vD.getMimeType(t.data);
+ if (r) {
+ for (var n, i = t.end; ; ) {
+ var a = vD.unbox(e, i);
+ if (!a) break;
+ if (i = a.end, a.boxtype === "mdat") return;
+ if (a.boxtype === "meta") {
+ n = a.data;
+ break;
+ }
+ }
+ if (n) {
+ var o = vD.readSizeFromMeta(n);
+ if (o) {
+ var s = { width: o.width, height: o.height, type: r.type, mime: r.mime, wUnits: "px", hUnits: "px" };
+ if (o.variants.length > 1 && (s.variants = o.variants), o.orientation && (s.orientation = o.orientation), o.exif_location && o.exif_location.offset + o.exif_location.length <= e.length) {
+ var l = Skt(e, o.exif_location.offset), u = e.slice(o.exif_location.offset + l + 4, o.exif_location.offset + o.exif_location.length), c = Mkt.get_orientation(u);
+ c > 0 && (s.orientation = c);
+ }
+ return s;
+ }
+ }
+ }
+ }
+ }
+ };
+ });
+ var eEe = ye((zdr, Q4e) => {
+ var kkt = rc().str2arr, Ckt = rc().sliceEq, $4e = rc().readUInt16LE, Lkt = kkt("BM");
+ Q4e.exports = function(e) {
+ if (!(e.length < 26) && Ckt(e, 0, Lkt)) return { width: $4e(e, 18), height: $4e(e, 22), type: "bmp", mime: "image/bmp", wUnits: "px", hUnits: "px" };
+ };
+ });
+ var aEe = ye((Odr, nEe) => {
+ var iEe = rc().str2arr, tEe = rc().sliceEq, rEe = rc().readUInt16LE, Pkt = iEe("GIF87a"), Ikt = iEe("GIF89a");
+ nEe.exports = function(e) {
+ if (!(e.length < 10) && !(!tEe(e, 0, Pkt) && !tEe(e, 0, Ikt))) return { width: rEe(e, 6), height: rEe(e, 8), type: "gif", mime: "image/gif", wUnits: "px", hUnits: "px" };
+ };
+ });
+ var lEe = ye((qdr, sEe) => {
+ var pW = rc().readUInt16LE, Rkt = 0, Dkt = 1, oEe = 16;
+ sEe.exports = function(e) {
+ var t = pW(e, 0), r = pW(e, 2), n = pW(e, 4);
+ if (!(t !== Rkt || r !== Dkt || !n)) {
+ for (var i = [], a = { width: 0, height: 0 }, o = 0; o < n; o++) {
+ var s = e[6 + oEe * o] || 256, l = e[6 + oEe * o + 1] || 256, u = { width: s, height: l };
+ i.push(u), (s > a.width || l > a.height) && (a = u);
+ }
+ return { width: a.width, height: a.height, variants: i, type: "ico", mime: "image/x-icon", wUnits: "px", hUnits: "px" };
+ }
+ };
+ });
+ var cEe = ye((Bdr, uEe) => {
+ var gW = rc().readUInt16BE, Fkt = rc().str2arr, zkt = rc().sliceEq, Okt = dD(), qkt = Fkt("Exif\0\0");
+ uEe.exports = function(e) {
+ if (!(e.length < 2) && !(e[0] !== 255 || e[1] !== 216 || e[2] !== 255)) for (var t = 2; ; ) {
+ for (; ; ) {
+ if (e.length - t < 2) return;
+ if (e[t++] === 255) break;
+ }
+ for (var r = e[t++], n; r === 255; ) r = e[t++];
+ if (208 <= r && r <= 217 || r === 1) n = 0;
+ else if (192 <= r && r <= 254) {
+ if (e.length - t < 2) return;
+ n = gW(e, t) - 2, t += 2;
+ } else return;
+ if (r === 217 || r === 218) return;
+ var i;
+ if (r === 225 && n >= 10 && zkt(e, t, qkt) && (i = Okt.get_orientation(e.slice(t + 6, t + n))), n >= 5 && 192 <= r && r <= 207 && r !== 196 && r !== 200 && r !== 204) {
+ if (e.length - t < n) return;
+ var a = { width: gW(e, t + 3), height: gW(e, t + 1), type: "jpg", mime: "image/jpeg", wUnits: "px", hUnits: "px" };
+ return i > 0 && (a.orientation = i), a;
+ }
+ t += n;
+ }
+ };
+ });
+ var pEe = ye((Ndr, vEe) => {
+ var dEe = rc().str2arr, fEe = rc().sliceEq, hEe = rc().readUInt32BE, Bkt = dEe(`PNG\r
+
+`), Nkt = dEe("IHDR");
+ vEe.exports = function(e) {
+ if (!(e.length < 24) && fEe(e, 0, Bkt) && fEe(e, 12, Nkt)) return { width: hEe(e, 16), height: hEe(e, 20), type: "png", mime: "image/png", wUnits: "px", hUnits: "px" };
+ };
+ });
+ var yEe = ye((Udr, mEe) => {
+ var Ukt = rc().str2arr, Vkt = rc().sliceEq, gEe = rc().readUInt32BE, Gkt = Ukt("8BPS\0");
+ mEe.exports = function(e) {
+ if (!(e.length < 22) && Vkt(e, 0, Gkt)) return { width: gEe(e, 18), height: gEe(e, 14), type: "psd", mime: "image/vnd.adobe.photoshop", wUnits: "px", hUnits: "px" };
+ };
+ });
+ var bEe = ye((Vdr, xEe) => {
+ function Hkt(e) {
+ return e === 32 || e === 9 || e === 13 || e === 10;
+ }
+ function MA(e) {
+ return typeof e == "number" && isFinite(e) && e > 0;
+ }
+ function jkt(e) {
+ var t = 0, r = e.length;
+ for (e[0] === 239 && e[1] === 187 && e[2] === 191 && (t = 3); t < r && Hkt(e[t]); ) t++;
+ return t === r ? false : e[t] === 60;
+ }
+ var Wkt = /<[-_.:a-zA-Z0-9][^>]*>/, Xkt = /^<([-_.:a-zA-Z0-9]+:)?svg\s/, Zkt = /[^-]\bwidth="([^%]+?)"|[^-]\bwidth='([^%]+?)'/, Ykt = /\bheight="([^%]+?)"|\bheight='([^%]+?)'/, Kkt = /\bview[bB]ox="(.+?)"|\bview[bB]ox='(.+?)'/, _Ee = /in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;
+ function Jkt(e) {
+ var t = e.match(Zkt), r = e.match(Ykt), n = e.match(Kkt);
+ return { width: t && (t[1] || t[2]), height: r && (r[1] || r[2]), viewbox: n && (n[1] || n[2]) };
+ }
+ function Xm(e) {
+ return _Ee.test(e) ? e.match(_Ee)[0] : "px";
+ }
+ xEe.exports = function(e) {
+ if (jkt(e)) {
+ for (var t = "", r = 0; r < e.length; r++) t += String.fromCharCode(e[r]);
+ var n = (t.match(Wkt) || [""])[0];
+ if (Xkt.test(n)) {
+ var i = Jkt(n), a = parseFloat(i.width), o = parseFloat(i.height);
+ if (i.width && i.height) return !MA(a) || !MA(o) ? void 0 : { width: a, height: o, type: "svg", mime: "image/svg+xml", wUnits: Xm(i.width), hUnits: Xm(i.height) };
+ var s = (i.viewbox || "").split(" "), l = { width: s[2], height: s[3] }, u = parseFloat(l.width), c = parseFloat(l.height);
+ if (!(!MA(u) || !MA(c)) && Xm(l.width) === Xm(l.height)) {
+ var f = u / c;
+ return i.width ? MA(a) ? { width: a, height: a / f, type: "svg", mime: "image/svg+xml", wUnits: Xm(i.width), hUnits: Xm(i.width) } : void 0 : i.height ? MA(o) ? { width: o * f, height: o, type: "svg", mime: "image/svg+xml", wUnits: Xm(i.height), hUnits: Xm(i.height) } : void 0 : { width: u, height: c, type: "svg", mime: "image/svg+xml", wUnits: Xm(l.width), hUnits: Xm(l.height) };
+ }
+ }
+ }
+ };
+ });
+ var MEe = ye((Gdr, SEe) => {
+ var AEe = rc().str2arr, wEe = rc().sliceEq, $kt = rc().readUInt16LE, Qkt = rc().readUInt16BE, eCt = rc().readUInt32LE, tCt = rc().readUInt32BE, rCt = AEe("II*\0"), iCt = AEe("MM\0*");
+ function pD(e, t, r) {
+ return r ? Qkt(e, t) : $kt(e, t);
+ }
+ function mW(e, t, r) {
+ return r ? tCt(e, t) : eCt(e, t);
+ }
+ function TEe(e, t, r) {
+ var n = pD(e, t + 2, r), i = mW(e, t + 4, r);
+ return i !== 1 || n !== 3 && n !== 4 ? null : n === 3 ? pD(e, t + 8, r) : mW(e, t + 8, r);
+ }
+ SEe.exports = function(e) {
+ if (!(e.length < 8) && !(!wEe(e, 0, rCt) && !wEe(e, 0, iCt))) {
+ var t = e[0] === 77, r = mW(e, 4, t) - 8;
+ if (!(r < 0)) {
+ var n = r + 8;
+ if (!(e.length - n < 2)) {
+ var i = pD(e, n + 0, t) * 12;
+ if (!(i <= 0) && (n += 2, !(e.length - n < i))) {
+ var a, o, s, l;
+ for (a = 0; a < i; a += 12) l = pD(e, n + a, t), l === 256 ? o = TEe(e, n + a, t) : l === 257 && (s = TEe(e, n + a, t));
+ if (o && s) return { width: o, height: s, type: "tiff", mime: "image/tiff", wUnits: "px", hUnits: "px" };
+ }
+ }
+ }
+ }
+ };
+ });
+ var PEe = ye((Hdr, LEe) => {
+ var CEe = rc().str2arr, EEe = rc().sliceEq, kEe = rc().readUInt16LE, yW = rc().readUInt32LE, nCt = dD(), aCt = CEe("RIFF"), oCt = CEe("WEBP");
+ function sCt(e, t) {
+ if (!(e[t + 3] !== 157 || e[t + 4] !== 1 || e[t + 5] !== 42)) return { width: kEe(e, t + 6) & 16383, height: kEe(e, t + 8) & 16383, type: "webp", mime: "image/webp", wUnits: "px", hUnits: "px" };
+ }
+ function lCt(e, t) {
+ if (e[t] === 47) {
+ var r = yW(e, t + 1);
+ return { width: (r & 16383) + 1, height: (r >> 14 & 16383) + 1, type: "webp", mime: "image/webp", wUnits: "px", hUnits: "px" };
+ }
+ }
+ function uCt(e, t) {
+ return { width: (e[t + 6] << 16 | e[t + 5] << 8 | e[t + 4]) + 1, height: (e[t + 9] << t | e[t + 8] << 8 | e[t + 7]) + 1, type: "webp", mime: "image/webp", wUnits: "px", hUnits: "px" };
+ }
+ LEe.exports = function(e) {
+ if (!(e.length < 16) && !(!EEe(e, 0, aCt) && !EEe(e, 8, oCt))) {
+ var t = 12, r = null, n = 0, i = yW(e, 4) + 8;
+ if (!(i > e.length)) {
+ for (; t + 8 < i; ) {
+ if (e[t] === 0) {
+ t++;
+ continue;
+ }
+ var a = String.fromCharCode.apply(null, e.slice(t, t + 4)), o = yW(e, t + 4);
+ a === "VP8 " && o >= 10 ? r = r || sCt(e, t + 8) : a === "VP8L" && o >= 9 ? r = r || lCt(e, t + 8) : a === "VP8X" && o >= 10 ? r = r || uCt(e, t + 8) : a === "EXIF" && (n = nCt.get_orientation(e.slice(t + 8, t + 8 + o)), t = 1 / 0), t += 8 + o;
+ }
+ if (r) return n > 0 && (r.orientation = n), r;
+ }
+ }
+ };
+ });
+ var REe = ye((jdr, IEe) => {
+ IEe.exports = { avif: J4e(), bmp: eEe(), gif: aEe(), ico: lEe(), jpeg: cEe(), png: pEe(), psd: yEe(), svg: bEe(), tiff: MEe(), webp: PEe() };
+ });
+ var DEe = ye((Wdr, xW) => {
+ var _W = REe();
+ function cCt(e) {
+ for (var t = Object.keys(_W), r = 0; r < t.length; r++) {
+ var n = _W[t[r]](e);
+ if (n) return n;
+ }
+ return null;
+ }
+ xW.exports = function(t) {
+ return cCt(t);
+ };
+ xW.exports.parsers = _W;
+ });
+ var zEe = ye((FEe) => {
+ var fCt = DEe(), hCt = Oy().IMAGE_URL_PREFIX, dCt = _2().Buffer;
+ FEe.getImageSize = function(e) {
+ var t = e.replace(hCt, ""), r = new dCt(t, "base64");
+ return fCt(r);
+ };
+ });
+ var BEe = ye((Zdr, qEe) => {
+ var OEe = Dr(), vCt = QT(), pCt = Eo(), gD = ho(), gCt = Dr().maxRowLength, mCt = zEe().getImageSize;
+ qEe.exports = function(t, r) {
+ var n, i;
+ if (r._hasZ) n = r.z.length, i = gCt(r.z);
+ else if (r._hasSource) {
+ var a = mCt(r.source);
+ n = a.height, i = a.width;
+ }
+ var o = gD.getFromId(t, r.xaxis || "x"), s = gD.getFromId(t, r.yaxis || "y"), l = o.d2c(r.x0) - r.dx / 2, u = s.d2c(r.y0) - r.dy / 2, c, f = [l, l + i * r.dx], h = [u, u + n * r.dy];
+ if (o && o.type === "log") for (c = 0; c < i; c++) f.push(l + c * r.dx);
+ if (s && s.type === "log") for (c = 0; c < n; c++) h.push(u + c * r.dy);
+ r._extremes[o._id] = gD.findExtremes(o, f), r._extremes[s._id] = gD.findExtremes(s, h), r._scaler = xCt(r);
+ var d = { x0: l, y0: u, z: r.z, w: i, h: n };
+ return [d];
+ };
+ function yCt(e, t, r, n) {
+ return function(i) {
+ return OEe.constrain((i - e) * t, r, n);
+ };
+ }
+ function _Ct(e, t) {
+ return function(r) {
+ return OEe.constrain(r, e, t);
+ };
+ }
+ function xCt(e) {
+ var t = vCt.colormodel[e.colormodel], r = t.colormodel || e.colormodel, n = r.length;
+ e._sArray = [];
+ for (var i = 0; i < n; i++) t.min[i] !== e.zmin[i] || t.max[i] !== e.zmax[i] ? e._sArray.push(yCt(e.zmin[i], (t.max[i] - t.min[i]) / (e.zmax[i] - e.zmin[i]), t.min[i], t.max[i])) : e._sArray.push(_Ct(t.min[i], t.max[i]));
+ return function(a) {
+ for (var o = a.slice(0, n), s = 0; s < n; s++) {
+ var l = o[s];
+ if (!pCt(l)) return false;
+ o[s] = e._sArray[s](l);
+ }
+ return o;
+ };
+ }
+ });
+ var VEe = ye((Ydr, UEe) => {
+ var bCt = Oa(), R2 = Dr(), NEe = R2.strTranslate, wCt = Wp(), TCt = QT(), ACt = oG(), SCt = g8().STYLE;
+ UEe.exports = function(t, r, n, i) {
+ var a = r.xaxis, o = r.yaxis, s = !t._context._exportedPlot && ACt();
+ R2.makeTraceGroups(i, n, "im").each(function(l) {
+ var u = bCt.select(this), c = l[0], f = c.trace, h = (f.zsmooth === "fast" || f.zsmooth === false && s) && !f._hasZ && f._hasSource && a.type === "linear" && o.type === "linear";
+ f._realImage = h;
+ var d = c.z, v = c.x0, _ = c.y0, b = c.w, p = c.h, k = f.dx, E = f.dy, T, L, x, C, M, g;
+ for (g = 0; T === void 0 && g < b; ) T = a.c2p(v + g * k), g++;
+ for (g = b; L === void 0 && g > 0; ) L = a.c2p(v + g * k), g--;
+ for (g = 0; C === void 0 && g < p; ) C = o.c2p(_ + g * E), g++;
+ for (g = p; M === void 0 && g > 0; ) M = o.c2p(_ + g * E), g--;
+ if (L < T && (x = L, L = T, T = x), M < C && (x = C, C = M, M = x), !h) {
+ var P = 0.5;
+ T = Math.max(-P * a._length, T), L = Math.min((1 + P) * a._length, L), C = Math.max(-P * o._length, C), M = Math.min((1 + P) * o._length, M);
+ }
+ var A = Math.round(L - T), z = Math.round(M - C), O = A <= 0 || z <= 0;
+ if (O) {
+ var U = u.selectAll("image").data([]);
+ U.exit().remove();
+ return;
+ }
+ function G(ge) {
+ var ie = document.createElement("canvas");
+ ie.width = A, ie.height = z;
+ var Se = ie.getContext("2d", { willReadFrequently: true }), Ee = function(ot) {
+ return R2.constrain(Math.round(a.c2p(v + ot * k) - T), 0, A);
+ }, Ae = function(ot) {
+ return R2.constrain(Math.round(o.c2p(_ + ot * E) - C), 0, z);
+ }, Be = TCt.colormodel[f.colormodel], Pe = Be.colormodel || f.colormodel, me = Be.fmt, De;
+ for (g = 0; g < c.w; g++) {
+ var ce = Ee(g), je = Ee(g + 1);
+ if (!(je === ce || isNaN(je) || isNaN(ce))) for (var lt = 0; lt < c.h; lt++) {
+ var pt = Ae(lt), Vt = Ae(lt + 1);
+ Vt === pt || isNaN(Vt) || isNaN(pt) || !ge(g, lt) || (De = f._scaler(ge(g, lt)), De ? Se.fillStyle = Pe + "(" + me(De).join(",") + ")" : Se.fillStyle = "rgba(0,0,0,0)", Se.fillRect(ce, pt, je - ce, Vt - pt));
+ }
+ }
+ return ie;
+ }
+ var Z = u.selectAll("image").data([l]);
+ Z.enter().append("svg:image").attr({ xmlns: wCt.svg, preserveAspectRatio: "none" }), Z.exit().remove();
+ var j = f.zsmooth === false ? SCt : "";
+ if (h) {
+ var N = R2.simpleMap(a.range, a.r2l), H = R2.simpleMap(o.range, o.r2l), re = N[1] < N[0], oe = H[1] > H[0];
+ if (re || oe) {
+ var _e = T + A / 2, Ce = C + z / 2;
+ j += "transform:" + NEe(_e + "px", Ce + "px") + "scale(" + (re ? -1 : 1) + "," + (oe ? -1 : 1) + ")" + NEe(-_e + "px", -Ce + "px") + ";";
+ }
+ }
+ Z.attr("style", j);
+ var Le = new Promise(function(ge) {
+ if (f._hasZ) ge();
+ else if (f._hasSource) if (f._canvas && f._canvas.el.width === b && f._canvas.el.height === p && f._canvas.source === f.source) ge();
+ else {
+ var ie = document.createElement("canvas");
+ ie.width = b, ie.height = p;
+ var Se = ie.getContext("2d", { willReadFrequently: true });
+ f._image = f._image || new Image();
+ var Ee = f._image;
+ Ee.onload = function() {
+ Se.drawImage(Ee, 0, 0), f._canvas = { el: ie, source: f.source }, ge();
+ }, Ee.setAttribute("src", f.source);
+ }
+ }).then(function() {
+ var ge, ie;
+ if (f._hasZ) ie = G(function(Ae, Be) {
+ var Pe = d[Be][Ae];
+ return R2.isTypedArray(Pe) && (Pe = Array.from(Pe)), Pe;
+ }), ge = ie.toDataURL("image/png");
+ else if (f._hasSource) if (h) ge = f.source;
+ else {
+ var Se = f._canvas.el.getContext("2d", { willReadFrequently: true }), Ee = Se.getImageData(0, 0, b, p).data;
+ ie = G(function(Ae, Be) {
+ var Pe = 4 * (Be * b + Ae);
+ return [Ee[Pe], Ee[Pe + 1], Ee[Pe + 2], Ee[Pe + 3]];
+ }), ge = ie.toDataURL("image/png");
+ }
+ Z.attr({ "xlink:href": ge, height: z, width: A, x: T, y: C });
+ });
+ t._promises.push(Le);
+ });
+ };
+ });
+ var HEe = ye((Kdr, GEe) => {
+ var MCt = Oa();
+ GEe.exports = function(t) {
+ MCt.select(t).selectAll(".im image").style("opacity", function(r) {
+ return r[0].trace.opacity;
+ });
+ };
+ });
+ var ZEe = ye((Jdr, XEe) => {
+ var jEe = vf(), WEe = Dr(), mD = WEe.isArrayOrTypedArray, ECt = QT();
+ XEe.exports = function(t, r, n) {
+ var i = t.cd[0], a = i.trace, o = t.xa, s = t.ya;
+ if (!(jEe.inbox(r - i.x0, r - (i.x0 + i.w * a.dx), 0) > 0 || jEe.inbox(n - i.y0, n - (i.y0 + i.h * a.dy), 0) > 0)) {
+ var l = Math.floor((r - i.x0) / a.dx), u = Math.floor(Math.abs(n - i.y0) / a.dy), c;
+ if (a._hasZ ? c = i.z[u][l] : a._hasSource && (c = a._canvas.el.getContext("2d", { willReadFrequently: true }).getImageData(l, u, 1, 1).data), !!c) {
+ var f = i.hi || a.hoverinfo, h;
+ if (f) {
+ var d = f.split("+");
+ d.indexOf("all") !== -1 && (d = ["color"]), d.indexOf("color") !== -1 && (h = true);
+ }
+ var v = ECt.colormodel[a.colormodel], _ = v.colormodel || a.colormodel, b = _.length, p = a._scaler(c), k = v.suffix, E = [];
+ (a.hovertemplate || h) && (E.push("[" + [p[0] + k[0], p[1] + k[1], p[2] + k[2]].join(", ")), b === 4 && E.push(", " + p[3] + k[3]), E.push("]"), E = E.join(""), t.extraText = _.toUpperCase() + ": " + E);
+ var T;
+ mD(a.hovertext) && mD(a.hovertext[u]) ? T = a.hovertext[u][l] : mD(a.text) && mD(a.text[u]) && (T = a.text[u][l]);
+ var L = s.c2p(i.y0 + (u + 0.5) * a.dy), x = i.x0 + (l + 0.5) * a.dx, C = i.y0 + (u + 0.5) * a.dy, M = "[" + c.slice(0, a.colormodel.length).join(", ") + "]";
+ return [WEe.extendFlat(t, { index: [u, l], x0: o.c2p(i.x0 + l * a.dx), x1: o.c2p(i.x0 + (l + 1) * a.dx), y0: L, y1: L, color: p, xVal: x, xLabelVal: x, yVal: C, yLabelVal: C, zLabelVal: M, text: T, hovertemplateLabels: { zLabel: M, colorLabel: E, "color[0]Label": p[0] + k[0], "color[1]Label": p[1] + k[1], "color[2]Label": p[2] + k[2], "color[3]Label": p[3] + k[3] } })];
+ }
+ }
+ };
+ });
+ var KEe = ye(($dr, YEe) => {
+ YEe.exports = function(t, r) {
+ return "xVal" in r && (t.x = r.xVal), "yVal" in r && (t.y = r.yVal), r.xa && (t.xaxis = r.xa), r.ya && (t.yaxis = r.ya), t.color = r.color, t.colormodel = r.trace.colormodel, t.z || (t.z = r.color), t;
+ };
+ });
+ var $Ee = ye((Qdr, JEe) => {
+ JEe.exports = { attributes: gH(), supplyDefaults: Z3e(), calc: BEe(), plot: VEe(), style: HEe(), hoverPoints: ZEe(), eventData: KEe(), moduleType: "trace", name: "image", basePlotModule: mh(), categories: ["cartesian", "svg", "2dMap", "noSortingByValue"], animatable: false, meta: {} };
+ });
+ var eke = ye((evr, QEe) => {
+ QEe.exports = $Ee();
+ });
+ var F2 = ye((tvr, rke) => {
+ var bW = Gl(), kCt = Cc().attributes, CCt = ec(), LCt = Ih(), { hovertemplateAttrs: PCt, texttemplateAttrs: ICt, templatefallbackAttrs: tke } = Ll(), D2 = Ao().extendFlat, RCt = Pd().pattern, yD = CCt({ editType: "plot", arrayOk: true, colorEditType: "plot" });
+ rke.exports = { labels: { valType: "data_array", editType: "calc" }, label0: { valType: "number", dflt: 0, editType: "calc" }, dlabel: { valType: "number", dflt: 1, editType: "calc" }, values: { valType: "data_array", editType: "calc" }, marker: { colors: { valType: "data_array", editType: "calc" }, line: { color: { valType: "color", dflt: LCt.defaultLine, arrayOk: true, editType: "style" }, width: { valType: "number", min: 0, dflt: 0, arrayOk: true, editType: "style" }, editType: "calc" }, pattern: RCt, editType: "calc" }, text: { valType: "data_array", editType: "plot" }, hovertext: { valType: "string", dflt: "", arrayOk: true, editType: "style" }, scalegroup: { valType: "string", dflt: "", editType: "calc" }, textinfo: { valType: "flaglist", flags: ["label", "text", "value", "percent"], extras: ["none"], editType: "calc" }, hoverinfo: D2({}, bW.hoverinfo, { flags: ["label", "text", "value", "percent", "name"] }), hovertemplate: PCt({}, { keys: ["label", "color", "value", "percent", "text"] }), hovertemplatefallback: tke(), texttemplate: ICt({ editType: "plot" }, { keys: ["label", "color", "value", "percent", "text"] }), texttemplatefallback: tke({ editType: "plot" }), textposition: { valType: "enumerated", values: ["inside", "outside", "auto", "none"], dflt: "auto", arrayOk: true, editType: "plot" }, textfont: D2({}, yD, {}), insidetextorientation: { valType: "enumerated", values: ["horizontal", "radial", "tangential", "auto"], dflt: "auto", editType: "plot" }, insidetextfont: D2({}, yD, {}), outsidetextfont: D2({}, yD, {}), automargin: { valType: "boolean", dflt: false, editType: "plot" }, showlegend: D2({}, bW.showlegend, { arrayOk: true }), legend: D2({}, bW.legend, { arrayOk: true }), title: { text: { valType: "string", dflt: "", editType: "plot" }, font: D2({}, yD, {}), position: { valType: "enumerated", values: ["top left", "top center", "top right", "middle center", "bottom left", "bottom center", "bottom right"], editType: "plot" }, editType: "plot" }, domain: kCt({ name: "pie", trace: true, editType: "calc" }), hole: { valType: "number", min: 0, max: 1, dflt: 0, editType: "calc" }, sort: { valType: "boolean", dflt: true, editType: "calc" }, direction: { valType: "enumerated", values: ["clockwise", "counterclockwise"], dflt: "counterclockwise", editType: "calc" }, rotation: { valType: "angle", dflt: 0, editType: "calc" }, pull: { valType: "number", min: 0, max: 1, dflt: 0, arrayOk: true, editType: "calc" } };
+ });
+ var z2 = ye((rvr, ake) => {
+ var DCt = Eo(), zE = Dr(), FCt = F2(), zCt = Cc().defaults, OCt = i0().handleText, qCt = Dr().coercePattern;
+ function ike(e, t) {
+ var r = zE.isArrayOrTypedArray(e), n = zE.isArrayOrTypedArray(t), i = Math.min(r ? e.length : 1 / 0, n ? t.length : 1 / 0);
+ if (isFinite(i) || (i = 0), i && n) {
+ for (var a, o = 0; o < i; o++) {
+ var s = t[o];
+ if (DCt(s) && s > 0) {
+ a = true;
+ break;
+ }
+ }
+ a || (i = 0);
+ }
+ return { hasLabels: r, hasValues: n, len: i };
+ }
+ function nke(e, t, r, n, i) {
+ var a = n("marker.line.width");
+ a && n("marker.line.color", i ? void 0 : r.paper_bgcolor);
+ var o = n("marker.colors");
+ qCt(n, "marker.pattern", o), e.marker && !t.marker.pattern.fgcolor && (t.marker.pattern.fgcolor = e.marker.colors), t.marker.pattern.bgcolor || (t.marker.pattern.bgcolor = r.paper_bgcolor);
+ }
+ function BCt(e, t, r, n) {
+ function i(k, E) {
+ return zE.coerce(e, t, FCt, k, E);
+ }
+ var a = i("labels"), o = i("values"), s = ike(a, o), l = s.len;
+ if (t._hasLabels = s.hasLabels, t._hasValues = s.hasValues, !t._hasLabels && t._hasValues && (i("label0"), i("dlabel")), !l) {
+ t.visible = false;
+ return;
+ }
+ t._length = l, nke(e, t, n, i, true), i("scalegroup");
+ var u = i("text"), c = i("texttemplate");
+ i("texttemplatefallback");
+ var f;
+ if (c || (f = i("textinfo", zE.isArrayOrTypedArray(u) ? "text+percent" : "percent")), i("hovertext"), i("hovertemplate"), i("hovertemplatefallback"), c || f && f !== "none") {
+ var h = i("textposition");
+ OCt(e, t, n, i, h, { moduleHasSelected: false, moduleHasUnselected: false, moduleHasConstrain: false, moduleHasCliponaxis: false, moduleHasTextangle: false, moduleHasInsideanchor: false });
+ var d = Array.isArray(h) || h === "auto", v = d || h === "outside";
+ v && i("automargin"), (h === "inside" || h === "auto" || Array.isArray(h)) && i("insidetextorientation");
+ } else f === "none" && i("textposition", "none");
+ zCt(t, n, i);
+ var _ = i("hole"), b = i("title.text");
+ if (b) {
+ var p = i("title.position", _ ? "middle center" : "top center");
+ !_ && p === "middle center" && (t.title.position = "top center"), zE.coerceFont(i, "title.font", n.font);
+ }
+ i("sort"), i("direction"), i("rotation"), i("pull");
+ }
+ ake.exports = { handleLabelsAndValues: ike, handleMarkerDefaults: nke, supplyDefaults: BCt };
+ });
+ var _D = ye((ivr, oke) => {
+ oke.exports = { hiddenlabels: { valType: "data_array", editType: "calc" }, piecolorway: { valType: "colorlist", editType: "calc" }, extendpiecolors: { valType: "boolean", dflt: true, editType: "calc" } };
+ });
+ var lke = ye((nvr, ske) => {
+ var NCt = Dr(), UCt = _D();
+ ske.exports = function(t, r) {
+ function n(i, a) {
+ return NCt.coerce(t, r, UCt, i, a);
+ }
+ n("hiddenlabels"), n("piecolorway", r.colorway), n("extendpiecolors");
+ };
+ });
+ var EA = ye((avr, fke) => {
+ var VCt = Eo(), wW = fd(), GCt = ka(), HCt = {};
+ function jCt(e, t) {
+ var r = [], n = e._fullLayout, i = n.hiddenlabels || [], a = t.labels, o = t.marker.colors || [], s = t.values, l = t._length, u = t._hasValues && l, c, f;
+ if (t.dlabel) for (a = new Array(l), c = 0; c < l; c++) a[c] = String(t.label0 + c * t.dlabel);
+ var h = {}, d = uke(n["_" + t.type + "colormap"]), v = 0, _ = false;
+ for (c = 0; c < l; c++) {
+ var b, p, k;
+ if (u) {
+ if (b = s[c], !VCt(b)) continue;
+ b = +b;
+ } else b = 1;
+ p = a[c], (p === void 0 || p === "") && (p = c), p = String(p);
+ var E = h[p];
+ E === void 0 ? (h[p] = r.length, k = i.indexOf(p) !== -1, k || (v += b), r.push({ v: b, label: p, color: d(o[c], p), i: c, pts: [c], hidden: k })) : (_ = true, f = r[E], f.v += b, f.pts.push(c), f.hidden || (v += b), f.color === false && o[c] && (f.color = d(o[c], p)));
+ }
+ r = r.filter(function(L) {
+ return L.v >= 0;
+ });
+ var T = t.type === "funnelarea" ? _ : t.sort;
+ return T && r.sort(function(L, x) {
+ return x.v - L.v;
+ }), r[0] && (r[0].vTotal = v), r;
+ }
+ function uke(e) {
+ return function(r, n) {
+ return !r || (r = wW(r), !r.isValid()) ? false : (r = GCt.addOpacity(r, r.getAlpha()), e[n] || (e[n] = r), r);
+ };
+ }
+ function WCt(e, t) {
+ var r = (t || {}).type;
+ r || (r = "pie");
+ var n = e._fullLayout, i = e.calcdata, a = n[r + "colorway"], o = n["_" + r + "colormap"];
+ n["extend" + r + "colors"] && (a = cke(a, HCt));
+ for (var s = 0, l = 0; l < i.length; l++) {
+ var u = i[l], c = u[0].trace.type;
+ if (c === r) for (var f = 0; f < u.length; f++) {
+ var h = u[f];
+ h.color === false && (o[h.label] ? h.color = o[h.label] : (o[h.label] = h.color = a[s % a.length], s++));
+ }
+ }
+ }
+ function cke(e, t) {
+ var r, n = JSON.stringify(e), i = t[n];
+ if (!i) {
+ for (i = e.slice(), r = 0; r < e.length; r++) i.push(wW(e[r]).lighten(20).toHexString());
+ for (r = 0; r < e.length; r++) i.push(wW(e[r]).darken(20).toHexString());
+ t[n] = i;
+ }
+ return i;
+ }
+ fke.exports = { calc: jCt, crossTraceCalc: WCt, makePullColorFn: uke, generateExtendedColors: cke };
+ });
+ var dke = ye((ovr, hke) => {
+ var XCt = ip().appendArrayMultiPointValues;
+ hke.exports = function(t, r) {
+ var n = { curveNumber: r.index, pointNumbers: t.pts, data: r._input, fullData: r, label: t.label, color: t.color, value: t.v, percent: t.percent, text: t.text, bbox: t.bbox, v: t.v };
+ return t.pts.length === 1 && (n.pointNumber = n.i = t.pts[0]), XCt(n, r, t.pts), r.type === "funnelarea" && (delete n.v, delete n.i), n;
+ };
+ });
+ var TD = ye((svr, Dke) => {
+ var Fp = Oa(), ZCt = Mc(), xD = vf(), _ke = ka(), Qy = So(), rv = Dr(), YCt = rv.strScale, vke = rv.strTranslate, TW = Zl(), xke = bv(), KCt = xke.recordMinTextSize, JCt = xke.clearMinTextSize, bke = A_().TEXTPAD, ns = g_(), bD = dke(), pke = Dr().isValidTextValue;
+ function $Ct(e, t) {
+ var r = e._context.staticPlot, n = e._fullLayout, i = n._size;
+ JCt("pie", n), Ake(t, e), Pke(t, i);
+ var a = rv.makeTraceGroups(n._pielayer, t, "trace").each(function(o) {
+ var s = Fp.select(this), l = o[0], u = l.trace;
+ s6t(o), s.attr("stroke-linejoin", "round"), s.each(function() {
+ var c = Fp.select(this).selectAll("g.slice").data(o);
+ c.enter().append("g").classed("slice", true), c.exit().remove();
+ var f = [[[], []], [[], []]], h = false;
+ c.each(function(T, L) {
+ if (T.hidden) {
+ Fp.select(this).selectAll("path,g").remove();
+ return;
+ }
+ T.pointNumber = T.i, T.curveNumber = u.index, f[T.pxmid[1] < 0 ? 0 : 1][T.pxmid[0] < 0 ? 0 : 1].push(T);
+ var x = l.cx, C = l.cy, M = Fp.select(this), g = M.selectAll("path.surface").data([T]);
+ if (g.enter().append("path").classed("surface", true).style({ "pointer-events": r ? "none" : "all" }), M.call(wke, e, o), u.pull) {
+ var P = +ns.castOption(u.pull, T.pts) || 0;
+ P > 0 && (x += P * T.pxmid[0], C += P * T.pxmid[1]);
+ }
+ T.cxFinal = x, T.cyFinal = C;
+ function A(N, H, re, oe) {
+ var _e = oe * (H[0] - N[0]), Ce = oe * (H[1] - N[1]);
+ return "a" + oe * l.r + "," + oe * l.r + " 0 " + T.largeArc + (re ? " 1 " : " 0 ") + _e + "," + Ce;
+ }
+ var z = u.hole;
+ if (T.v === l.vTotal) {
+ var O = "M" + (x + T.px0[0]) + "," + (C + T.px0[1]) + A(T.px0, T.pxmid, true, 1) + A(T.pxmid, T.px0, true, 1) + "Z";
+ z ? g.attr("d", "M" + (x + z * T.px0[0]) + "," + (C + z * T.px0[1]) + A(T.px0, T.pxmid, false, z) + A(T.pxmid, T.px0, false, z) + "Z" + O) : g.attr("d", O);
+ } else {
+ var U = A(T.px0, T.px1, true, 1);
+ if (z) {
+ var G = 1 - z;
+ g.attr("d", "M" + (x + z * T.px1[0]) + "," + (C + z * T.px1[1]) + A(T.px1, T.px0, false, z) + "l" + G * T.px0[0] + "," + G * T.px0[1] + U + "Z");
+ } else g.attr("d", "M" + x + "," + C + "l" + T.px0[0] + "," + T.px0[1] + U + "Z");
+ }
+ Ike(e, T, l);
+ var Z = ns.castOption(u.textposition, T.pts), j = M.selectAll("g.slicetext").data(T.text && Z !== "none" ? [0] : []);
+ j.enter().append("g").classed("slicetext", true), j.exit().remove(), j.each(function() {
+ var N = rv.ensureSingle(Fp.select(this), "text", "", function(ie) {
+ ie.attr("data-notex", 1);
+ }), H = rv.ensureUniformFontSize(e, Z === "outside" ? e6t(u, T, n.font) : Tke(u, T, n.font));
+ N.text(T.text).attr({ class: "slicetext", transform: "", "text-anchor": "middle" }).call(Qy.font, H).call(TW.convertToTspans, e);
+ var re = Qy.bBox(N.node()), oe;
+ if (Z === "outside") oe = yke(re, T);
+ else if (oe = Ske(re, T, l), Z === "auto" && oe.scale < 1) {
+ var _e = rv.ensureUniformFontSize(e, u.outsidetextfont);
+ N.call(Qy.font, _e), re = Qy.bBox(N.node()), oe = yke(re, T);
+ }
+ var Ce = oe.textPosAngle, Le = Ce === void 0 ? T.pxmid : wD(l.r, Ce);
+ if (oe.targetX = x + Le[0] * oe.rCenter + (oe.x || 0), oe.targetY = C + Le[1] * oe.rCenter + (oe.y || 0), Rke(oe, re), oe.outside) {
+ var ge = oe.targetY;
+ T.yLabelMin = ge - re.height / 2, T.yLabelMid = ge, T.yLabelMax = ge + re.height / 2, T.labelExtraX = 0, T.labelExtraY = 0, h = true;
+ }
+ oe.fontSize = H.size, KCt(u.type, oe, n), o[L].transform = oe, rv.setTransormAndDisplay(N, oe);
+ });
+ });
+ var d = Fp.select(this).selectAll("g.titletext").data(u.title.text ? [0] : []);
+ if (d.enter().append("g").classed("titletext", true), d.exit().remove(), d.each(function() {
+ var T = rv.ensureSingle(Fp.select(this), "text", "", function(C) {
+ C.attr("data-notex", 1);
+ }), L = u.title.text;
+ u._meta && (L = rv.templateString(L, u._meta)), T.text(L).attr({ class: "titletext", transform: "", "text-anchor": "middle" }).call(Qy.font, u.title.font).call(TW.convertToTspans, e);
+ var x;
+ u.title.position === "middle center" ? x = i6t(l) : x = Cke(l, i), T.attr("transform", vke(x.x, x.y) + YCt(Math.min(1, x.scale)) + vke(x.tx, x.ty));
+ }), h && a6t(f, u), QCt(c, u), h && u.automargin) {
+ var v = Qy.bBox(s.node()), _ = u.domain, b = i.w * (_.x[1] - _.x[0]), p = i.h * (_.y[1] - _.y[0]), k = (0.5 * b - l.r) / i.w, E = (0.5 * p - l.r) / i.h;
+ ZCt.autoMargin(e, "pie." + u.uid + ".automargin", { xl: _.x[0] - k, xr: _.x[1] + k, yb: _.y[0] - E, yt: _.y[1] + E, l: Math.max(l.cx - l.r - v.left, 0), r: Math.max(v.right - (l.cx + l.r), 0), b: Math.max(v.bottom - (l.cy + l.r), 0), t: Math.max(l.cy - l.r - v.top, 0), pad: 5 });
+ }
+ });
+ });
+ setTimeout(function() {
+ a.selectAll("tspan").each(function() {
+ var o = Fp.select(this);
+ o.attr("dy") && o.attr("dy", o.attr("dy"));
+ });
+ }, 0);
+ }
+ function QCt(e, t) {
+ e.each(function(r) {
+ var n = Fp.select(this);
+ if (!r.labelExtraX && !r.labelExtraY) {
+ n.select("path.textline").remove();
+ return;
+ }
+ var i = n.select("g.slicetext text");
+ r.transform.targetX += r.labelExtraX, r.transform.targetY += r.labelExtraY, rv.setTransormAndDisplay(i, r.transform);
+ var a = r.cxFinal + r.pxmid[0], o = r.cyFinal + r.pxmid[1], s = "M" + a + "," + o, l = (r.yLabelMax - r.yLabelMin) * (r.pxmid[0] < 0 ? -1 : 1) / 4;
+ if (r.labelExtraX) {
+ var u = r.labelExtraX * r.pxmid[1] / r.pxmid[0], c = r.yLabelMid + r.labelExtraY - (r.cyFinal + r.pxmid[1]);
+ Math.abs(u) > Math.abs(c) ? s += "l" + c * r.pxmid[0] / r.pxmid[1] + "," + c + "H" + (a + r.labelExtraX + l) : s += "l" + r.labelExtraX + "," + u + "v" + (c - u) + "h" + l;
+ } else s += "V" + (r.yLabelMid + r.labelExtraY) + "h" + l;
+ rv.ensureSingle(n, "path", "textline").call(_ke.stroke, t.outsidetextfont.color).attr({ "stroke-width": Math.min(2, t.outsidetextfont.size / 8), d: s, fill: "none" });
+ });
+ }
+ function wke(e, t, r) {
+ var n = r[0], i = n.cx, a = n.cy, o = n.trace, s = o.type === "funnelarea";
+ "_hasHoverLabel" in o || (o._hasHoverLabel = false), "_hasHoverEvent" in o || (o._hasHoverEvent = false), e.on("mouseover", function(l) {
+ var u = t._fullLayout, c = t._fullData[o.index];
+ if (!(t._dragging || u.hovermode === false)) {
+ var f = c.hoverinfo;
+ if (Array.isArray(f) && (f = xD.castHoverinfo({ hoverinfo: [ns.castOption(f, l.pts)], _module: o._module }, u, 0)), f === "all" && (f = "label+text+value+percent+name"), c.hovertemplate || f !== "none" && f !== "skip" && f) {
+ var h = l.rInscribed || 0, d = i + l.pxmid[0] * (1 - h), v = a + l.pxmid[1] * (1 - h), _ = u.separators, b = [];
+ if (f && f.indexOf("label") !== -1 && b.push(l.label), l.text = ns.castOption(c.hovertext || c.text, l.pts), f && f.indexOf("text") !== -1) {
+ var p = l.text;
+ rv.isValidTextValue(p) && b.push(p);
+ }
+ l.value = l.v, l.valueLabel = ns.formatPieValue(l.v, _), f && f.indexOf("value") !== -1 && b.push(l.valueLabel), l.percent = l.v / n.vTotal, l.percentLabel = ns.formatPiePercent(l.percent, _), f && f.indexOf("percent") !== -1 && b.push(l.percentLabel);
+ var k = c.hoverlabel, E = k.font, T = [];
+ xD.loneHover({ trace: o, x0: d - h * n.r, x1: d + h * n.r, y: v, _x0: s ? i + l.TL[0] : d - h * n.r, _x1: s ? i + l.TR[0] : d + h * n.r, _y0: s ? a + l.TL[1] : v - h * n.r, _y1: s ? a + l.BL[1] : v + h * n.r, text: b.join(" "), name: c.hovertemplate || f.indexOf("name") !== -1 ? c.name : void 0, idealAlign: l.pxmid[0] < 0 ? "left" : "right", color: ns.castOption(k.bgcolor, l.pts) || l.color, borderColor: ns.castOption(k.bordercolor, l.pts), fontFamily: ns.castOption(E.family, l.pts), fontSize: ns.castOption(E.size, l.pts), fontColor: ns.castOption(E.color, l.pts), nameLength: ns.castOption(k.namelength, l.pts), textAlign: ns.castOption(k.align, l.pts), hovertemplate: ns.castOption(c.hovertemplate, l.pts), hovertemplateLabels: l, eventData: [bD(l, c)] }, { container: u._hoverlayer.node(), outerContainer: u._paper.node(), gd: t, inOut_bbox: T }), l.bbox = T[0], o._hasHoverLabel = true;
+ }
+ o._hasHoverEvent = true, t.emit("plotly_hover", { points: [bD(l, c)], event: Fp.event });
+ }
+ }), e.on("mouseout", function(l) {
+ var u = t._fullLayout, c = t._fullData[o.index], f = Fp.select(this).datum();
+ o._hasHoverEvent && (l.originalEvent = Fp.event, t.emit("plotly_unhover", { points: [bD(f, c)], event: Fp.event }), o._hasHoverEvent = false), o._hasHoverLabel && (xD.loneUnhover(u._hoverlayer.node()), o._hasHoverLabel = false);
+ }), e.on("click", function(l) {
+ var u = t._fullLayout, c = t._fullData[o.index];
+ t._dragging || u.hovermode === false || (t._hoverdata = [bD(l, c)], xD.click(t, Fp.event));
+ });
+ }
+ function e6t(e, t, r) {
+ var n = ns.castOption(e.outsidetextfont.color, t.pts) || ns.castOption(e.textfont.color, t.pts) || r.color, i = ns.castOption(e.outsidetextfont.family, t.pts) || ns.castOption(e.textfont.family, t.pts) || r.family, a = ns.castOption(e.outsidetextfont.size, t.pts) || ns.castOption(e.textfont.size, t.pts) || r.size, o = ns.castOption(e.outsidetextfont.weight, t.pts) || ns.castOption(e.textfont.weight, t.pts) || r.weight, s = ns.castOption(e.outsidetextfont.style, t.pts) || ns.castOption(e.textfont.style, t.pts) || r.style, l = ns.castOption(e.outsidetextfont.variant, t.pts) || ns.castOption(e.textfont.variant, t.pts) || r.variant, u = ns.castOption(e.outsidetextfont.textcase, t.pts) || ns.castOption(e.textfont.textcase, t.pts) || r.textcase, c = ns.castOption(e.outsidetextfont.lineposition, t.pts) || ns.castOption(e.textfont.lineposition, t.pts) || r.lineposition, f = ns.castOption(e.outsidetextfont.shadow, t.pts) || ns.castOption(e.textfont.shadow, t.pts) || r.shadow;
+ return { color: n, family: i, size: a, weight: o, style: s, variant: l, textcase: u, lineposition: c, shadow: f };
+ }
+ function Tke(e, t, r) {
+ var n = ns.castOption(e.insidetextfont.color, t.pts);
+ !n && e._input.textfont && (n = ns.castOption(e._input.textfont.color, t.pts));
+ var i = ns.castOption(e.insidetextfont.family, t.pts) || ns.castOption(e.textfont.family, t.pts) || r.family, a = ns.castOption(e.insidetextfont.size, t.pts) || ns.castOption(e.textfont.size, t.pts) || r.size, o = ns.castOption(e.insidetextfont.weight, t.pts) || ns.castOption(e.textfont.weight, t.pts) || r.weight, s = ns.castOption(e.insidetextfont.style, t.pts) || ns.castOption(e.textfont.style, t.pts) || r.style, l = ns.castOption(e.insidetextfont.variant, t.pts) || ns.castOption(e.textfont.variant, t.pts) || r.variant, u = ns.castOption(e.insidetextfont.textcase, t.pts) || ns.castOption(e.textfont.textcase, t.pts) || r.textcase, c = ns.castOption(e.insidetextfont.lineposition, t.pts) || ns.castOption(e.textfont.lineposition, t.pts) || r.lineposition, f = ns.castOption(e.insidetextfont.shadow, t.pts) || ns.castOption(e.textfont.shadow, t.pts) || r.shadow;
+ return { color: n || _ke.contrast(t.color), family: i, size: a, weight: o, style: s, variant: l, textcase: u, lineposition: c, shadow: f };
+ }
+ function Ake(e, t) {
+ for (var r, n, i = 0; i < e.length; i++) if (r = e[i][0], n = r.trace, n.title.text) {
+ var a = n.title.text;
+ n._meta && (a = rv.templateString(a, n._meta));
+ var o = Qy.tester.append("text").attr("data-notex", 1).text(a).call(Qy.font, n.title.font).call(TW.convertToTspans, t), s = Qy.bBox(o.node(), true);
+ r.titleBox = { width: s.width, height: s.height }, o.remove();
+ }
+ }
+ function Ske(e, t, r) {
+ var n = r.r || t.rpx1, i = t.rInscribed, a = t.startangle === t.stopangle;
+ if (a) return { rCenter: 1 - i, scale: 0, rotate: 0, textPosAngle: 0 };
+ var o = t.ring, s = o === 1 && Math.abs(t.startangle - t.stopangle) === Math.PI * 2, l = t.halfangle, u = t.midangle, c = r.trace.insidetextorientation, f = c === "horizontal", h = c === "tangential", d = c === "radial", v = c === "auto", _ = [], b;
+ if (!v) {
+ var p = function(M, g) {
+ if (t6t(t, M)) {
+ var P = Math.abs(M - t.startangle), A = Math.abs(M - t.stopangle), z = P < A ? P : A;
+ g === "tan" ? b = mke(e, n, o, z, 0) : b = gke(e, n, o, z, Math.PI / 2), b.textPosAngle = M, _.push(b);
+ }
+ }, k;
+ if (f || h) {
+ for (k = 4; k >= -4; k -= 2) p(Math.PI * k, "tan");
+ for (k = 4; k >= -4; k -= 2) p(Math.PI * (k + 1), "tan");
+ }
+ if (f || d) {
+ for (k = 4; k >= -4; k -= 2) p(Math.PI * (k + 1.5), "rad");
+ for (k = 4; k >= -4; k -= 2) p(Math.PI * (k + 0.5), "rad");
+ }
+ }
+ if (s || v || f) {
+ var E = Math.sqrt(e.width * e.width + e.height * e.height);
+ if (b = { scale: i * n * 2 / E, rCenter: 1 - i, rotate: 0 }, b.textPosAngle = (t.startangle + t.stopangle) / 2, b.scale >= 1) return b;
+ _.push(b);
+ }
+ (v || d) && (b = gke(e, n, o, l, u), b.textPosAngle = (t.startangle + t.stopangle) / 2, _.push(b)), (v || h) && (b = mke(e, n, o, l, u), b.textPosAngle = (t.startangle + t.stopangle) / 2, _.push(b));
+ for (var T = 0, L = 0, x = 0; x < _.length; x++) {
+ var C = _[x].scale;
+ if (L < C && (L = C, T = x), !v && L >= 1) break;
+ }
+ return _[T];
+ }
+ function t6t(e, t) {
+ var r = e.startangle, n = e.stopangle;
+ return r > t && t > n || r < t && t < n;
+ }
+ function gke(e, t, r, n, i) {
+ t = Math.max(0, t - 2 * bke);
+ var a = e.width / e.height, o = kke(a, n, t, r);
+ return { scale: o * 2 / e.height, rCenter: Mke(a, o / t), rotate: Eke(i) };
+ }
+ function mke(e, t, r, n, i) {
+ t = Math.max(0, t - 2 * bke);
+ var a = e.height / e.width, o = kke(a, n, t, r);
+ return { scale: o * 2 / e.width, rCenter: Mke(a, o / t), rotate: Eke(i + Math.PI / 2) };
+ }
+ function Mke(e, t) {
+ return Math.cos(t) - e * t;
+ }
+ function Eke(e) {
+ return (180 / Math.PI * e + 720) % 180 - 90;
+ }
+ function kke(e, t, r, n) {
+ var i = e + 1 / (2 * Math.tan(t));
+ return r * Math.min(1 / (Math.sqrt(i * i + 0.5) + i), n / (Math.sqrt(e * e + n / 2) + e));
+ }
+ function r6t(e, t) {
+ return e.v === t.vTotal && !t.trace.hole ? 1 : Math.min(1 / (1 + 1 / Math.sin(e.halfangle)), e.ring / 2);
+ }
+ function yke(e, t) {
+ var r = t.pxmid[0], n = t.pxmid[1], i = e.width / 2, a = e.height / 2;
+ return r < 0 && (i *= -1), n < 0 && (a *= -1), { scale: 1, rCenter: 1, rotate: 0, x: i + Math.abs(a) * (i > 0 ? 1 : -1) / 2, y: a / (1 + r * r / (n * n)), outside: true };
+ }
+ function i6t(e) {
+ var t = Math.sqrt(e.titleBox.width * e.titleBox.width + e.titleBox.height * e.titleBox.height);
+ return { x: e.cx, y: e.cy, scale: e.trace.hole * e.r * 2 / t, tx: 0, ty: -e.titleBox.height / 2 + e.trace.title.font.size };
+ }
+ function Cke(e, t) {
+ var r = 1, n = 1, i, a = e.trace, o = { x: e.cx, y: e.cy }, s = { tx: 0, ty: 0 };
+ s.ty += a.title.font.size, i = Lke(a), a.title.position.indexOf("top") !== -1 ? (o.y -= (1 + i) * e.r, s.ty -= e.titleBox.height) : a.title.position.indexOf("bottom") !== -1 && (o.y += (1 + i) * e.r);
+ var l = n6t(e.r, e.trace.aspectratio), u = t.w * (a.domain.x[1] - a.domain.x[0]) / 2;
+ return a.title.position.indexOf("left") !== -1 ? (u = u + l, o.x -= (1 + i) * l, s.tx += e.titleBox.width / 2) : a.title.position.indexOf("center") !== -1 ? u *= 2 : a.title.position.indexOf("right") !== -1 && (u = u + l, o.x += (1 + i) * l, s.tx -= e.titleBox.width / 2), r = u / e.titleBox.width, n = AW(e, t) / e.titleBox.height, { x: o.x, y: o.y, scale: Math.min(r, n), tx: s.tx, ty: s.ty };
+ }
+ function n6t(e, t) {
+ return e / (t === void 0 ? 1 : t);
+ }
+ function AW(e, t) {
+ var r = e.trace, n = t.h * (r.domain.y[1] - r.domain.y[0]);
+ return Math.min(e.titleBox.height, n / 2);
+ }
+ function Lke(e) {
+ var t = e.pull;
+ if (!t) return 0;
+ var r;
+ if (rv.isArrayOrTypedArray(t)) for (t = 0, r = 0; r < e.pull.length; r++) e.pull[r] > t && (t = e.pull[r]);
+ return t;
+ }
+ function a6t(e, t) {
+ var r, n, i, a, o, s, l, u, c, f, h, d, v;
+ function _(E, T) {
+ return E.pxmid[1] - T.pxmid[1];
+ }
+ function b(E, T) {
+ return T.pxmid[1] - E.pxmid[1];
+ }
+ function p(E, T) {
+ T || (T = {});
+ var L = T.labelExtraY + (n ? T.yLabelMax : T.yLabelMin), x = n ? E.yLabelMin : E.yLabelMax, C = n ? E.yLabelMax : E.yLabelMin, M = E.cyFinal + o(E.px0[1], E.px1[1]), g = L - x, P, A, z, O, U, G;
+ if (g * l > 0 && (E.labelExtraY = g), !!rv.isArrayOrTypedArray(t.pull)) for (A = 0; A < f.length; A++) z = f[A], !(z === E || (ns.castOption(t.pull, E.pts) || 0) >= (ns.castOption(t.pull, z.pts) || 0)) && ((E.pxmid[1] - z.pxmid[1]) * l > 0 ? (O = z.cyFinal + o(z.px0[1], z.px1[1]), g = O - x - E.labelExtraY, g * l > 0 && (E.labelExtraY += g)) : (C + E.labelExtraY - M) * l > 0 && (P = 3 * s * Math.abs(A - f.indexOf(E)), U = z.cxFinal + a(z.px0[0], z.px1[0]), G = U + P - (E.cxFinal + E.pxmid[0]) - E.labelExtraX, G * s > 0 && (E.labelExtraX += G)));
+ }
+ for (n = 0; n < 2; n++) for (i = n ? _ : b, o = n ? Math.max : Math.min, l = n ? 1 : -1, r = 0; r < 2; r++) {
+ for (a = r ? Math.max : Math.min, s = r ? 1 : -1, u = e[n][r], u.sort(i), c = e[1 - n][r], f = c.concat(u), d = [], h = 0; h < u.length; h++) u[h].yLabelMid !== void 0 && d.push(u[h]);
+ for (v = false, h = 0; n && h < c.length; h++) if (c[h].yLabelMid !== void 0) {
+ v = c[h];
+ break;
+ }
+ for (h = 0; h < d.length; h++) {
+ var k = h && d[h - 1];
+ v && !h && (k = v), p(d[h], k);
+ }
+ }
+ }
+ function Pke(e, t) {
+ for (var r = [], n = 0; n < e.length; n++) {
+ var i = e[n][0], a = i.trace, o = a.domain, s = t.w * (o.x[1] - o.x[0]), l = t.h * (o.y[1] - o.y[0]);
+ a.title.text && a.title.position !== "middle center" && (l -= AW(i, t));
+ var u = s / 2, c = l / 2;
+ a.type === "funnelarea" && !a.scalegroup && (c /= a.aspectratio), i.r = Math.min(u, c) / (1 + Lke(a)), i.cx = t.l + t.w * (a.domain.x[1] + a.domain.x[0]) / 2, i.cy = t.t + t.h * (1 - a.domain.y[0]) - l / 2, a.title.text && a.title.position.indexOf("bottom") !== -1 && (i.cy -= AW(i, t)), a.scalegroup && r.indexOf(a.scalegroup) === -1 && r.push(a.scalegroup);
+ }
+ o6t(e, r);
+ }
+ function o6t(e, t) {
+ for (var r, n, i, a = 0; a < t.length; a++) {
+ var o = 1 / 0, s = t[a];
+ for (n = 0; n < e.length; n++) if (r = e[n][0], i = r.trace, i.scalegroup === s) {
+ var l;
+ if (i.type === "pie") l = r.r * r.r;
+ else if (i.type === "funnelarea") {
+ var u, c;
+ i.aspectratio > 1 ? (u = r.r, c = u / i.aspectratio) : (c = r.r, u = c * i.aspectratio), u *= (1 + i.baseratio) / 2, l = u * c;
+ }
+ o = Math.min(o, l / r.vTotal);
+ }
+ for (n = 0; n < e.length; n++) if (r = e[n][0], i = r.trace, i.scalegroup === s) {
+ var f = o * r.vTotal;
+ i.type === "funnelarea" && (f /= (1 + i.baseratio) / 2, f /= i.aspectratio), r.r = Math.sqrt(f);
+ }
+ }
+ }
+ function s6t(e) {
+ var t = e[0], r = t.r, n = t.trace, i = ns.getRotationAngle(n.rotation), a = 2 * Math.PI / t.vTotal, o = "px0", s = "px1", l, u, c;
+ if (n.direction === "counterclockwise") {
+ for (l = 0; l < e.length && e[l].hidden; l++) ;
+ if (l === e.length) return;
+ i += a * e[l].v, a *= -1, o = "px1", s = "px0";
+ }
+ for (c = wD(r, i), l = 0; l < e.length; l++) u = e[l], !u.hidden && (u[o] = c, u.startangle = i, i += a * u.v / 2, u.pxmid = wD(r, i), u.midangle = i, i += a * u.v / 2, c = wD(r, i), u.stopangle = i, u[s] = c, u.largeArc = u.v > t.vTotal / 2 ? 1 : 0, u.halfangle = Math.PI * Math.min(u.v / t.vTotal, 0.5), u.ring = 1 - n.hole, u.rInscribed = r6t(u, t));
+ }
+ function wD(e, t) {
+ return [e * Math.sin(t), -e * Math.cos(t)];
+ }
+ function Ike(e, t, r) {
+ var n = e._fullLayout, i = r.trace, a = i.texttemplate, o = i.textinfo;
+ if (!a && o && o !== "none") {
+ var s = o.split("+"), l = function(T) {
+ return s.indexOf(T) !== -1;
+ }, u = l("label"), c = l("text"), f = l("value"), h = l("percent"), d = n.separators, v;
+ if (v = u ? [t.label] : [], c) {
+ var _ = ns.getFirstFilled(i.text, t.pts);
+ pke(_) && v.push(_);
+ }
+ f && v.push(ns.formatPieValue(t.v, d)), h && v.push(ns.formatPiePercent(t.v / r.vTotal, d)), t.text = v.join(" ");
+ }
+ function b(T) {
+ return { label: T.label, value: T.v, valueLabel: ns.formatPieValue(T.v, n.separators), percent: T.v / r.vTotal, percentLabel: ns.formatPiePercent(T.v / r.vTotal, n.separators), color: T.color, text: T.text, customdata: rv.castOption(i, T.i, "customdata") };
+ }
+ if (a) {
+ var p = rv.castOption(i, t.i, "texttemplate");
+ if (!p) t.text = "";
+ else {
+ var k = b(t), E = ns.getFirstFilled(i.text, t.pts);
+ (pke(E) || E === "") && (k.text = E), t.text = rv.texttemplateString({ data: [k, i._meta], fallback: i.texttemplatefallback, labels: k, locale: e._fullLayout._d3locale, template: p });
+ }
+ }
+ }
+ function Rke(e, t) {
+ var r = e.rotate * Math.PI / 180, n = Math.cos(r), i = Math.sin(r), a = (t.left + t.right) / 2, o = (t.top + t.bottom) / 2;
+ e.textX = a * n - o * i, e.textY = a * i + o * n, e.noCenter = true;
+ }
+ Dke.exports = { plot: $Ct, formatSliceLabel: Ike, transformInsideText: Ske, determineInsideTextFont: Tke, positionTitleOutside: Cke, prerenderTitles: Ake, layoutAreas: Pke, attachFxHandlers: wke, computeTransform: Rke };
+ });
+ var Oke = ye((lvr, zke) => {
+ var Fke = Oa(), l6t = X3(), u6t = bv().resizeText;
+ zke.exports = function(t) {
+ var r = t._fullLayout._pielayer.selectAll(".trace");
+ u6t(t, r, "pie"), r.each(function(n) {
+ var i = n[0], a = i.trace, o = Fke.select(this);
+ o.style({ opacity: a.opacity }), o.selectAll("path.surface").each(function(s) {
+ Fke.select(this).call(l6t, s, a, t);
+ });
+ });
+ };
+ });
+ var Bke = ye((kA) => {
+ var qke = Mc();
+ kA.name = "pie";
+ kA.plot = function(e, t, r, n) {
+ qke.plotBasePlot(kA.name, e, t, r, n);
+ };
+ kA.clean = function(e, t, r, n) {
+ qke.cleanBasePlot(kA.name, e, t, r, n);
+ };
+ });
+ var Uke = ye((cvr, Nke) => {
+ Nke.exports = { attributes: F2(), supplyDefaults: z2().supplyDefaults, supplyLayoutDefaults: lke(), layoutAttributes: _D(), calc: EA().calc, crossTraceCalc: EA().crossTraceCalc, plot: TD().plot, style: Oke(), styleOne: X3(), moduleType: "trace", name: "pie", basePlotModule: Bke(), categories: ["pie-like", "pie", "showLegend"], meta: {} };
+ });
+ var Gke = ye((fvr, Vke) => {
+ Vke.exports = Uke();
+ });
+ var jke = ye((CA) => {
+ var Hke = Mc();
+ CA.name = "sunburst";
+ CA.plot = function(e, t, r, n) {
+ Hke.plotBasePlot(CA.name, e, t, r, n);
+ };
+ CA.clean = function(e, t, r, n) {
+ Hke.cleanBasePlot(CA.name, e, t, r, n);
+ };
+ });
+ var SW = ye((dvr, Wke) => {
+ Wke.exports = { CLICK_TRANSITION_TIME: 750, CLICK_TRANSITION_EASING: "linear", eventDataKeys: ["currentPath", "root", "entry", "percentRoot", "percentEntry", "percentParent"] };
+ });
+ var qE = ye((vvr, Yke) => {
+ var c6t = Gl(), { hovertemplateAttrs: f6t, texttemplateAttrs: h6t, templatefallbackAttrs: Xke } = Ll(), d6t = Tu(), v6t = Cc().attributes, e1 = F2(), Zke = SW(), OE = Ao().extendFlat, p6t = Pd().pattern;
+ Yke.exports = { labels: { valType: "data_array", editType: "calc" }, parents: { valType: "data_array", editType: "calc" }, values: { valType: "data_array", editType: "calc" }, branchvalues: { valType: "enumerated", values: ["remainder", "total"], dflt: "remainder", editType: "calc" }, count: { valType: "flaglist", flags: ["branches", "leaves"], dflt: "leaves", editType: "calc" }, level: { valType: "any", editType: "plot", anim: true }, maxdepth: { valType: "integer", editType: "plot", dflt: -1 }, marker: OE({ colors: { valType: "data_array", editType: "calc" }, line: { color: OE({}, e1.marker.line.color, { dflt: null }), width: OE({}, e1.marker.line.width, { dflt: 1 }), editType: "calc" }, pattern: p6t, editType: "calc" }, d6t("marker", { colorAttr: "colors", anim: false })), leaf: { opacity: { valType: "number", editType: "style", min: 0, max: 1 }, editType: "plot" }, text: e1.text, textinfo: { valType: "flaglist", flags: ["label", "text", "value", "current path", "percent root", "percent entry", "percent parent"], extras: ["none"], editType: "plot" }, texttemplate: h6t({ editType: "plot" }, { keys: Zke.eventDataKeys.concat(["label", "value"]) }), texttemplatefallback: Xke({ editType: "plot" }), hovertext: e1.hovertext, hoverinfo: OE({}, c6t.hoverinfo, { flags: ["label", "text", "value", "name", "current path", "percent root", "percent entry", "percent parent"], dflt: "label+text+value+name" }), hovertemplate: f6t({}, { keys: Zke.eventDataKeys }), hovertemplatefallback: Xke(), textfont: e1.textfont, insidetextorientation: e1.insidetextorientation, insidetextfont: e1.insidetextfont, outsidetextfont: OE({}, e1.outsidetextfont, {}), rotation: { valType: "angle", dflt: 0, editType: "plot" }, sort: e1.sort, root: { color: { valType: "color", editType: "calc", dflt: "rgba(0,0,0,0)" }, editType: "calc" }, domain: v6t({ name: "sunburst", trace: true, editType: "calc" }) };
+ });
+ var MW = ye((pvr, Kke) => {
+ Kke.exports = { sunburstcolorway: { valType: "colorlist", editType: "calc" }, extendsunburstcolors: { valType: "boolean", dflt: true, editType: "calc" } };
+ });
+ var eCe = ye((gvr, Qke) => {
+ var Jke = Dr(), g6t = qE(), m6t = Cc().defaults, y6t = i0().handleText, _6t = z2().handleMarkerDefaults, $ke = tc(), x6t = $ke.hasColorscale, b6t = $ke.handleDefaults;
+ Qke.exports = function(t, r, n, i) {
+ function a(h, d) {
+ return Jke.coerce(t, r, g6t, h, d);
+ }
+ var o = a("labels"), s = a("parents");
+ if (!o || !o.length || !s || !s.length) {
+ r.visible = false;
+ return;
+ }
+ var l = a("values");
+ l && l.length ? a("branchvalues") : a("count"), a("level"), a("maxdepth"), _6t(t, r, i, a);
+ var u = r._hasColorscale = x6t(t, "marker", "colors") || (t.marker || {}).coloraxis;
+ u && b6t(t, r, i, a, { prefix: "marker.", cLetter: "c" }), a("leaf.opacity", u ? 1 : 0.7);
+ var c = a("text");
+ a("texttemplate"), a("texttemplatefallback"), r.texttemplate || a("textinfo", Jke.isArrayOrTypedArray(c) ? "text+label" : "label"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback");
+ var f = "auto";
+ y6t(t, r, i, a, f, { moduleHasSelected: false, moduleHasUnselected: false, moduleHasConstrain: false, moduleHasCliponaxis: false, moduleHasTextangle: false, moduleHasInsideanchor: false }), a("insidetextorientation"), a("sort"), a("rotation"), a("root.color"), m6t(r, i, a), r._length = null;
+ };
+ });
+ var rCe = ye((mvr, tCe) => {
+ var w6t = Dr(), T6t = MW();
+ tCe.exports = function(t, r) {
+ function n(i, a) {
+ return w6t.coerce(t, r, T6t, i, a);
+ }
+ n("sunburstcolorway", r.colorway), n("extendsunburstcolors");
+ };
+ });
+ var BE = ye((AD, iCe) => {
+ (function(e, t) {
+ typeof AD == "object" && typeof iCe != "undefined" ? t(AD) : (e = e || self, t(e.d3 = e.d3 || {}));
+ })(AD, function(e) {
+ function t(We, tt) {
+ return We.parent === tt.parent ? 1 : 2;
+ }
+ function r(We) {
+ return We.reduce(n, 0) / We.length;
+ }
+ function n(We, tt) {
+ return We + tt.x;
+ }
+ function i(We) {
+ return 1 + We.reduce(a, 0);
+ }
+ function a(We, tt) {
+ return Math.max(We, tt.y);
+ }
+ function o(We) {
+ for (var tt; tt = We.children; ) We = tt[0];
+ return We;
+ }
+ function s(We) {
+ for (var tt; tt = We.children; ) We = tt[tt.length - 1];
+ return We;
+ }
+ function l() {
+ var We = t, tt = 1, xt = 1, Ie = false;
+ function xe(ke) {
+ var vt, ir = 0;
+ ke.eachAfter(function($r) {
+ var di = $r.children;
+ di ? ($r.x = r(di), $r.y = i(di)) : ($r.x = vt ? ir += We($r, vt) : 0, $r.y = 0, vt = $r);
+ });
+ var ar = o(ke), vr = s(ke), ii = ar.x - We(ar, vr) / 2, pi = vr.x + We(vr, ar) / 2;
+ return ke.eachAfter(Ie ? function($r) {
+ $r.x = ($r.x - ke.x) * tt, $r.y = (ke.y - $r.y) * xt;
+ } : function($r) {
+ $r.x = ($r.x - ii) / (pi - ii) * tt, $r.y = (1 - (ke.y ? $r.y / ke.y : 1)) * xt;
+ });
+ }
+ return xe.separation = function(ke) {
+ return arguments.length ? (We = ke, xe) : We;
+ }, xe.size = function(ke) {
+ return arguments.length ? (Ie = false, tt = +ke[0], xt = +ke[1], xe) : Ie ? null : [tt, xt];
+ }, xe.nodeSize = function(ke) {
+ return arguments.length ? (Ie = true, tt = +ke[0], xt = +ke[1], xe) : Ie ? [tt, xt] : null;
+ }, xe;
+ }
+ function u(We) {
+ var tt = 0, xt = We.children, Ie = xt && xt.length;
+ if (!Ie) tt = 1;
+ else for (; --Ie >= 0; ) tt += xt[Ie].value;
+ We.value = tt;
+ }
+ function c() {
+ return this.eachAfter(u);
+ }
+ function f(We) {
+ var tt = this, xt, Ie = [tt], xe, ke, vt;
+ do
+ for (xt = Ie.reverse(), Ie = []; tt = xt.pop(); ) if (We(tt), xe = tt.children, xe) for (ke = 0, vt = xe.length; ke < vt; ++ke) Ie.push(xe[ke]);
+ while (Ie.length);
+ return this;
+ }
+ function h(We) {
+ for (var tt = this, xt = [tt], Ie, xe; tt = xt.pop(); ) if (We(tt), Ie = tt.children, Ie) for (xe = Ie.length - 1; xe >= 0; --xe) xt.push(Ie[xe]);
+ return this;
+ }
+ function d(We) {
+ for (var tt = this, xt = [tt], Ie = [], xe, ke, vt; tt = xt.pop(); ) if (Ie.push(tt), xe = tt.children, xe) for (ke = 0, vt = xe.length; ke < vt; ++ke) xt.push(xe[ke]);
+ for (; tt = Ie.pop(); ) We(tt);
+ return this;
+ }
+ function v(We) {
+ return this.eachAfter(function(tt) {
+ for (var xt = +We(tt.data) || 0, Ie = tt.children, xe = Ie && Ie.length; --xe >= 0; ) xt += Ie[xe].value;
+ tt.value = xt;
+ });
+ }
+ function _(We) {
+ return this.eachBefore(function(tt) {
+ tt.children && tt.children.sort(We);
+ });
+ }
+ function b(We) {
+ for (var tt = this, xt = p(tt, We), Ie = [tt]; tt !== xt; ) tt = tt.parent, Ie.push(tt);
+ for (var xe = Ie.length; We !== xt; ) Ie.splice(xe, 0, We), We = We.parent;
+ return Ie;
+ }
+ function p(We, tt) {
+ if (We === tt) return We;
+ var xt = We.ancestors(), Ie = tt.ancestors(), xe = null;
+ for (We = xt.pop(), tt = Ie.pop(); We === tt; ) xe = We, We = xt.pop(), tt = Ie.pop();
+ return xe;
+ }
+ function k() {
+ for (var We = this, tt = [We]; We = We.parent; ) tt.push(We);
+ return tt;
+ }
+ function E() {
+ var We = [];
+ return this.each(function(tt) {
+ We.push(tt);
+ }), We;
+ }
+ function T() {
+ var We = [];
+ return this.eachBefore(function(tt) {
+ tt.children || We.push(tt);
+ }), We;
+ }
+ function L() {
+ var We = this, tt = [];
+ return We.each(function(xt) {
+ xt !== We && tt.push({ source: xt.parent, target: xt });
+ }), tt;
+ }
+ function x(We, tt) {
+ var xt = new A(We), Ie = +We.value && (xt.value = We.value), xe, ke = [xt], vt, ir, ar, vr;
+ for (tt == null && (tt = M); xe = ke.pop(); ) if (Ie && (xe.value = +xe.data.value), (ir = tt(xe.data)) && (vr = ir.length)) for (xe.children = new Array(vr), ar = vr - 1; ar >= 0; --ar) ke.push(vt = xe.children[ar] = new A(ir[ar])), vt.parent = xe, vt.depth = xe.depth + 1;
+ return xt.eachBefore(P);
+ }
+ function C() {
+ return x(this).eachBefore(g);
+ }
+ function M(We) {
+ return We.children;
+ }
+ function g(We) {
+ We.data = We.data.data;
+ }
+ function P(We) {
+ var tt = 0;
+ do
+ We.height = tt;
+ while ((We = We.parent) && We.height < ++tt);
+ }
+ function A(We) {
+ this.data = We, this.depth = this.height = 0, this.parent = null;
+ }
+ A.prototype = x.prototype = { constructor: A, count: c, each: f, eachAfter: d, eachBefore: h, sum: v, sort: _, path: b, ancestors: k, descendants: E, leaves: T, links: L, copy: C };
+ var z = Array.prototype.slice;
+ function O(We) {
+ for (var tt = We.length, xt, Ie; tt; ) Ie = Math.random() * tt-- | 0, xt = We[tt], We[tt] = We[Ie], We[Ie] = xt;
+ return We;
+ }
+ function U(We) {
+ for (var tt = 0, xt = (We = O(z.call(We))).length, Ie = [], xe, ke; tt < xt; ) xe = We[tt], ke && j(ke, xe) ? ++tt : (ke = H(Ie = G(Ie, xe)), tt = 0);
+ return ke;
+ }
+ function G(We, tt) {
+ var xt, Ie;
+ if (N(tt, We)) return [tt];
+ for (xt = 0; xt < We.length; ++xt) if (Z(tt, We[xt]) && N(oe(We[xt], tt), We)) return [We[xt], tt];
+ for (xt = 0; xt < We.length - 1; ++xt) for (Ie = xt + 1; Ie < We.length; ++Ie) if (Z(oe(We[xt], We[Ie]), tt) && Z(oe(We[xt], tt), We[Ie]) && Z(oe(We[Ie], tt), We[xt]) && N(_e(We[xt], We[Ie], tt), We)) return [We[xt], We[Ie], tt];
+ throw new Error();
+ }
+ function Z(We, tt) {
+ var xt = We.r - tt.r, Ie = tt.x - We.x, xe = tt.y - We.y;
+ return xt < 0 || xt * xt < Ie * Ie + xe * xe;
+ }
+ function j(We, tt) {
+ var xt = We.r - tt.r + 1e-6, Ie = tt.x - We.x, xe = tt.y - We.y;
+ return xt > 0 && xt * xt > Ie * Ie + xe * xe;
+ }
+ function N(We, tt) {
+ for (var xt = 0; xt < tt.length; ++xt) if (!j(We, tt[xt])) return false;
+ return true;
+ }
+ function H(We) {
+ switch (We.length) {
+ case 1:
+ return re(We[0]);
+ case 2:
+ return oe(We[0], We[1]);
+ case 3:
+ return _e(We[0], We[1], We[2]);
+ }
+ }
+ function re(We) {
+ return { x: We.x, y: We.y, r: We.r };
+ }
+ function oe(We, tt) {
+ var xt = We.x, Ie = We.y, xe = We.r, ke = tt.x, vt = tt.y, ir = tt.r, ar = ke - xt, vr = vt - Ie, ii = ir - xe, pi = Math.sqrt(ar * ar + vr * vr);
+ return { x: (xt + ke + ar / pi * ii) / 2, y: (Ie + vt + vr / pi * ii) / 2, r: (pi + xe + ir) / 2 };
+ }
+ function _e(We, tt, xt) {
+ var Ie = We.x, xe = We.y, ke = We.r, vt = tt.x, ir = tt.y, ar = tt.r, vr = xt.x, ii = xt.y, pi = xt.r, $r = Ie - vt, di = Ie - vr, ji = xe - ir, In = xe - ii, wi = ar - ke, On = pi - ke, qn = Ie * Ie + xe * xe - ke * ke, Fn = qn - vt * vt - ir * ir + ar * ar, ra = qn - vr * vr - ii * ii + pi * pi, la = di * ji - $r * In, Ut = (ji * ra - In * Fn) / (la * 2) - Ie, wt = (In * wi - ji * On) / la, rr = (di * Fn - $r * ra) / (la * 2) - xe, nr = ($r * On - di * wi) / la, Er = wt * wt + nr * nr - 1, Xr = 2 * (ke + Ut * wt + rr * nr), ri = Ut * Ut + rr * rr - ke * ke, Qr = -(Er ? (Xr + Math.sqrt(Xr * Xr - 4 * Er * ri)) / (2 * Er) : ri / Xr);
+ return { x: Ie + Ut + wt * Qr, y: xe + rr + nr * Qr, r: Qr };
+ }
+ function Ce(We, tt, xt) {
+ var Ie = We.x - tt.x, xe, ke, vt = We.y - tt.y, ir, ar, vr = Ie * Ie + vt * vt;
+ vr ? (ke = tt.r + xt.r, ke *= ke, ar = We.r + xt.r, ar *= ar, ke > ar ? (xe = (vr + ar - ke) / (2 * vr), ir = Math.sqrt(Math.max(0, ar / vr - xe * xe)), xt.x = We.x - xe * Ie - ir * vt, xt.y = We.y - xe * vt + ir * Ie) : (xe = (vr + ke - ar) / (2 * vr), ir = Math.sqrt(Math.max(0, ke / vr - xe * xe)), xt.x = tt.x + xe * Ie - ir * vt, xt.y = tt.y + xe * vt + ir * Ie)) : (xt.x = tt.x + xt.r, xt.y = tt.y);
+ }
+ function Le(We, tt) {
+ var xt = We.r + tt.r - 1e-6, Ie = tt.x - We.x, xe = tt.y - We.y;
+ return xt > 0 && xt * xt > Ie * Ie + xe * xe;
+ }
+ function ge(We) {
+ var tt = We._, xt = We.next._, Ie = tt.r + xt.r, xe = (tt.x * xt.r + xt.x * tt.r) / Ie, ke = (tt.y * xt.r + xt.y * tt.r) / Ie;
+ return xe * xe + ke * ke;
+ }
+ function ie(We) {
+ this._ = We, this.next = null, this.previous = null;
+ }
+ function Se(We) {
+ if (!(xe = We.length)) return 0;
+ var tt, xt, Ie, xe, ke, vt, ir, ar, vr, ii, pi;
+ if (tt = We[0], tt.x = 0, tt.y = 0, !(xe > 1)) return tt.r;
+ if (xt = We[1], tt.x = -xt.r, xt.x = tt.r, xt.y = 0, !(xe > 2)) return tt.r + xt.r;
+ Ce(xt, tt, Ie = We[2]), tt = new ie(tt), xt = new ie(xt), Ie = new ie(Ie), tt.next = Ie.previous = xt, xt.next = tt.previous = Ie, Ie.next = xt.previous = tt;
+ e: for (ir = 3; ir < xe; ++ir) {
+ Ce(tt._, xt._, Ie = We[ir]), Ie = new ie(Ie), ar = xt.next, vr = tt.previous, ii = xt._.r, pi = tt._.r;
+ do
+ if (ii <= pi) {
+ if (Le(ar._, Ie._)) {
+ xt = ar, tt.next = xt, xt.previous = tt, --ir;
+ continue e;
+ }
+ ii += ar._.r, ar = ar.next;
+ } else {
+ if (Le(vr._, Ie._)) {
+ tt = vr, tt.next = xt, xt.previous = tt, --ir;
+ continue e;
+ }
+ pi += vr._.r, vr = vr.previous;
+ }
+ while (ar !== vr.next);
+ for (Ie.previous = tt, Ie.next = xt, tt.next = xt.previous = xt = Ie, ke = ge(tt); (Ie = Ie.next) !== xt; ) (vt = ge(Ie)) < ke && (tt = Ie, ke = vt);
+ xt = tt.next;
+ }
+ for (tt = [xt._], Ie = xt; (Ie = Ie.next) !== xt; ) tt.push(Ie._);
+ for (Ie = U(tt), ir = 0; ir < xe; ++ir) tt = We[ir], tt.x -= Ie.x, tt.y -= Ie.y;
+ return Ie.r;
+ }
+ function Ee(We) {
+ return Se(We), We;
+ }
+ function Ae(We) {
+ return We == null ? null : Be(We);
+ }
+ function Be(We) {
+ if (typeof We != "function") throw new Error();
+ return We;
+ }
+ function Pe() {
+ return 0;
+ }
+ function me(We) {
+ return function() {
+ return We;
+ };
+ }
+ function De(We) {
+ return Math.sqrt(We.value);
+ }
+ function ce() {
+ var We = null, tt = 1, xt = 1, Ie = Pe;
+ function xe(ke) {
+ return ke.x = tt / 2, ke.y = xt / 2, We ? ke.eachBefore(je(We)).eachAfter(lt(Ie, 0.5)).eachBefore(pt(1)) : ke.eachBefore(je(De)).eachAfter(lt(Pe, 1)).eachAfter(lt(Ie, ke.r / Math.min(tt, xt))).eachBefore(pt(Math.min(tt, xt) / (2 * ke.r))), ke;
+ }
+ return xe.radius = function(ke) {
+ return arguments.length ? (We = Ae(ke), xe) : We;
+ }, xe.size = function(ke) {
+ return arguments.length ? (tt = +ke[0], xt = +ke[1], xe) : [tt, xt];
+ }, xe.padding = function(ke) {
+ return arguments.length ? (Ie = typeof ke == "function" ? ke : me(+ke), xe) : Ie;
+ }, xe;
+ }
+ function je(We) {
+ return function(tt) {
+ tt.children || (tt.r = Math.max(0, +We(tt) || 0));
+ };
+ }
+ function lt(We, tt) {
+ return function(xt) {
+ if (Ie = xt.children) {
+ var Ie, xe, ke = Ie.length, vt = We(xt) * tt || 0, ir;
+ if (vt) for (xe = 0; xe < ke; ++xe) Ie[xe].r += vt;
+ if (ir = Se(Ie), vt) for (xe = 0; xe < ke; ++xe) Ie[xe].r -= vt;
+ xt.r = ir + vt;
+ }
+ };
+ }
+ function pt(We) {
+ return function(tt) {
+ var xt = tt.parent;
+ tt.r *= We, xt && (tt.x = xt.x + We * tt.x, tt.y = xt.y + We * tt.y);
+ };
+ }
+ function Vt(We) {
+ We.x0 = Math.round(We.x0), We.y0 = Math.round(We.y0), We.x1 = Math.round(We.x1), We.y1 = Math.round(We.y1);
+ }
+ function ot(We, tt, xt, Ie, xe) {
+ for (var ke = We.children, vt, ir = -1, ar = ke.length, vr = We.value && (Ie - tt) / We.value; ++ir < ar; ) vt = ke[ir], vt.y0 = xt, vt.y1 = xe, vt.x0 = tt, vt.x1 = tt += vt.value * vr;
+ }
+ function ut() {
+ var We = 1, tt = 1, xt = 0, Ie = false;
+ function xe(vt) {
+ var ir = vt.height + 1;
+ return vt.x0 = vt.y0 = xt, vt.x1 = We, vt.y1 = tt / ir, vt.eachBefore(ke(tt, ir)), Ie && vt.eachBefore(Vt), vt;
+ }
+ function ke(vt, ir) {
+ return function(ar) {
+ ar.children && ot(ar, ar.x0, vt * (ar.depth + 1) / ir, ar.x1, vt * (ar.depth + 2) / ir);
+ var vr = ar.x0, ii = ar.y0, pi = ar.x1 - xt, $r = ar.y1 - xt;
+ pi < vr && (vr = pi = (vr + pi) / 2), $r < ii && (ii = $r = (ii + $r) / 2), ar.x0 = vr, ar.y0 = ii, ar.x1 = pi, ar.y1 = $r;
+ };
+ }
+ return xe.round = function(vt) {
+ return arguments.length ? (Ie = !!vt, xe) : Ie;
+ }, xe.size = function(vt) {
+ return arguments.length ? (We = +vt[0], tt = +vt[1], xe) : [We, tt];
+ }, xe.padding = function(vt) {
+ return arguments.length ? (xt = +vt, xe) : xt;
+ }, xe;
+ }
+ var Wt = "$", Nt = { depth: -1 }, $t = {};
+ function sr(We) {
+ return We.id;
+ }
+ function Tr(We) {
+ return We.parentId;
+ }
+ function fr() {
+ var We = sr, tt = Tr;
+ function xt(Ie) {
+ var xe, ke, vt = Ie.length, ir, ar, vr, ii = new Array(vt), pi, $r, di = {};
+ for (ke = 0; ke < vt; ++ke) xe = Ie[ke], vr = ii[ke] = new A(xe), (pi = We(xe, ke, Ie)) != null && (pi += "") && ($r = Wt + (vr.id = pi), di[$r] = $r in di ? $t : vr);
+ for (ke = 0; ke < vt; ++ke) if (vr = ii[ke], pi = tt(Ie[ke], ke, Ie), pi == null || !(pi += "")) {
+ if (ir) throw new Error("multiple roots");
+ ir = vr;
+ } else {
+ if (ar = di[Wt + pi], !ar) throw new Error("missing: " + pi);
+ if (ar === $t) throw new Error("ambiguous: " + pi);
+ ar.children ? ar.children.push(vr) : ar.children = [vr], vr.parent = ar;
+ }
+ if (!ir) throw new Error("no root");
+ if (ir.parent = Nt, ir.eachBefore(function(ji) {
+ ji.depth = ji.parent.depth + 1, --vt;
+ }).eachBefore(P), ir.parent = null, vt > 0) throw new Error("cycle");
+ return ir;
+ }
+ return xt.id = function(Ie) {
+ return arguments.length ? (We = Be(Ie), xt) : We;
+ }, xt.parentId = function(Ie) {
+ return arguments.length ? (tt = Be(Ie), xt) : tt;
+ }, xt;
+ }
+ function $e(We, tt) {
+ return We.parent === tt.parent ? 1 : 2;
+ }
+ function St(We) {
+ var tt = We.children;
+ return tt ? tt[0] : We.t;
+ }
+ function Qt(We) {
+ var tt = We.children;
+ return tt ? tt[tt.length - 1] : We.t;
+ }
+ function Gt(We, tt, xt) {
+ var Ie = xt / (tt.i - We.i);
+ tt.c -= Ie, tt.s += xt, We.c += Ie, tt.z += xt, tt.m += xt;
+ }
+ function _t(We) {
+ for (var tt = 0, xt = 0, Ie = We.children, xe = Ie.length, ke; --xe >= 0; ) ke = Ie[xe], ke.z += tt, ke.m += tt, tt += ke.s + (xt += ke.c);
+ }
+ function It(We, tt, xt) {
+ return We.a.parent === tt.parent ? We.a : xt;
+ }
+ function mt(We, tt) {
+ this._ = We, this.parent = null, this.children = null, this.A = null, this.a = this, this.z = 0, this.m = 0, this.c = 0, this.s = 0, this.t = null, this.i = tt;
+ }
+ mt.prototype = Object.create(A.prototype);
+ function er(We) {
+ for (var tt = new mt(We, 0), xt, Ie = [tt], xe, ke, vt, ir; xt = Ie.pop(); ) if (ke = xt._.children) for (xt.children = new Array(ir = ke.length), vt = ir - 1; vt >= 0; --vt) Ie.push(xe = xt.children[vt] = new mt(ke[vt], vt)), xe.parent = xt;
+ return (tt.parent = new mt(null, 0)).children = [tt], tt;
+ }
+ function lr() {
+ var We = $e, tt = 1, xt = 1, Ie = null;
+ function xe(vr) {
+ var ii = er(vr);
+ if (ii.eachAfter(ke), ii.parent.m = -ii.z, ii.eachBefore(vt), Ie) vr.eachBefore(ar);
+ else {
+ var pi = vr, $r = vr, di = vr;
+ vr.eachBefore(function(qn) {
+ qn.x < pi.x && (pi = qn), qn.x > $r.x && ($r = qn), qn.depth > di.depth && (di = qn);
+ });
+ var ji = pi === $r ? 1 : We(pi, $r) / 2, In = ji - pi.x, wi = tt / ($r.x + ji + In), On = xt / (di.depth || 1);
+ vr.eachBefore(function(qn) {
+ qn.x = (qn.x + In) * wi, qn.y = qn.depth * On;
+ });
+ }
+ return vr;
+ }
+ function ke(vr) {
+ var ii = vr.children, pi = vr.parent.children, $r = vr.i ? pi[vr.i - 1] : null;
+ if (ii) {
+ _t(vr);
+ var di = (ii[0].z + ii[ii.length - 1].z) / 2;
+ $r ? (vr.z = $r.z + We(vr._, $r._), vr.m = vr.z - di) : vr.z = di;
+ } else $r && (vr.z = $r.z + We(vr._, $r._));
+ vr.parent.A = ir(vr, $r, vr.parent.A || pi[0]);
+ }
+ function vt(vr) {
+ vr._.x = vr.z + vr.parent.m, vr.m += vr.parent.m;
+ }
+ function ir(vr, ii, pi) {
+ if (ii) {
+ for (var $r = vr, di = vr, ji = ii, In = $r.parent.children[0], wi = $r.m, On = di.m, qn = ji.m, Fn = In.m, ra; ji = Qt(ji), $r = St($r), ji && $r; ) In = St(In), di = Qt(di), di.a = vr, ra = ji.z + qn - $r.z - wi + We(ji._, $r._), ra > 0 && (Gt(It(ji, vr, pi), vr, ra), wi += ra, On += ra), qn += ji.m, wi += $r.m, Fn += In.m, On += di.m;
+ ji && !Qt(di) && (di.t = ji, di.m += qn - On), $r && !St(In) && (In.t = $r, In.m += wi - Fn, pi = vr);
+ }
+ return pi;
+ }
+ function ar(vr) {
+ vr.x *= tt, vr.y = vr.depth * xt;
+ }
+ return xe.separation = function(vr) {
+ return arguments.length ? (We = vr, xe) : We;
+ }, xe.size = function(vr) {
+ return arguments.length ? (Ie = false, tt = +vr[0], xt = +vr[1], xe) : Ie ? null : [tt, xt];
+ }, xe.nodeSize = function(vr) {
+ return arguments.length ? (Ie = true, tt = +vr[0], xt = +vr[1], xe) : Ie ? [tt, xt] : null;
+ }, xe;
+ }
+ function wr(We, tt, xt, Ie, xe) {
+ for (var ke = We.children, vt, ir = -1, ar = ke.length, vr = We.value && (xe - xt) / We.value; ++ir < ar; ) vt = ke[ir], vt.x0 = tt, vt.x1 = Ie, vt.y0 = xt, vt.y1 = xt += vt.value * vr;
+ }
+ var Lr = (1 + Math.sqrt(5)) / 2;
+ function ti(We, tt, xt, Ie, xe, ke) {
+ for (var vt = [], ir = tt.children, ar, vr, ii = 0, pi = 0, $r = ir.length, di, ji, In = tt.value, wi, On, qn, Fn, ra, la, Ut; ii < $r; ) {
+ di = xe - xt, ji = ke - Ie;
+ do
+ wi = ir[pi++].value;
+ while (!wi && pi < $r);
+ for (On = qn = wi, la = Math.max(ji / di, di / ji) / (In * We), Ut = wi * wi * la, ra = Math.max(qn / Ut, Ut / On); pi < $r; ++pi) {
+ if (wi += vr = ir[pi].value, vr < On && (On = vr), vr > qn && (qn = vr), Ut = wi * wi * la, Fn = Math.max(qn / Ut, Ut / On), Fn > ra) {
+ wi -= vr;
+ break;
+ }
+ ra = Fn;
+ }
+ vt.push(ar = { value: wi, dice: di < ji, children: ir.slice(ii, pi) }), ar.dice ? ot(ar, xt, Ie, xe, In ? Ie += ji * wi / In : ke) : wr(ar, xt, Ie, In ? xt += di * wi / In : xe, ke), In -= wi, ii = pi;
+ }
+ return vt;
+ }
+ var Br = function We(tt) {
+ function xt(Ie, xe, ke, vt, ir) {
+ ti(tt, Ie, xe, ke, vt, ir);
+ }
+ return xt.ratio = function(Ie) {
+ return We((Ie = +Ie) > 1 ? Ie : 1);
+ }, xt;
+ }(Lr);
+ function Vr() {
+ var We = Br, tt = false, xt = 1, Ie = 1, xe = [0], ke = Pe, vt = Pe, ir = Pe, ar = Pe, vr = Pe;
+ function ii($r) {
+ return $r.x0 = $r.y0 = 0, $r.x1 = xt, $r.y1 = Ie, $r.eachBefore(pi), xe = [0], tt && $r.eachBefore(Vt), $r;
+ }
+ function pi($r) {
+ var di = xe[$r.depth], ji = $r.x0 + di, In = $r.y0 + di, wi = $r.x1 - di, On = $r.y1 - di;
+ wi < ji && (ji = wi = (ji + wi) / 2), On < In && (In = On = (In + On) / 2), $r.x0 = ji, $r.y0 = In, $r.x1 = wi, $r.y1 = On, $r.children && (di = xe[$r.depth + 1] = ke($r) / 2, ji += vr($r) - di, In += vt($r) - di, wi -= ir($r) - di, On -= ar($r) - di, wi < ji && (ji = wi = (ji + wi) / 2), On < In && (In = On = (In + On) / 2), We($r, ji, In, wi, On));
+ }
+ return ii.round = function($r) {
+ return arguments.length ? (tt = !!$r, ii) : tt;
+ }, ii.size = function($r) {
+ return arguments.length ? (xt = +$r[0], Ie = +$r[1], ii) : [xt, Ie];
+ }, ii.tile = function($r) {
+ return arguments.length ? (We = Be($r), ii) : We;
+ }, ii.padding = function($r) {
+ return arguments.length ? ii.paddingInner($r).paddingOuter($r) : ii.paddingInner();
+ }, ii.paddingInner = function($r) {
+ return arguments.length ? (ke = typeof $r == "function" ? $r : me(+$r), ii) : ke;
+ }, ii.paddingOuter = function($r) {
+ return arguments.length ? ii.paddingTop($r).paddingRight($r).paddingBottom($r).paddingLeft($r) : ii.paddingTop();
+ }, ii.paddingTop = function($r) {
+ return arguments.length ? (vt = typeof $r == "function" ? $r : me(+$r), ii) : vt;
+ }, ii.paddingRight = function($r) {
+ return arguments.length ? (ir = typeof $r == "function" ? $r : me(+$r), ii) : ir;
+ }, ii.paddingBottom = function($r) {
+ return arguments.length ? (ar = typeof $r == "function" ? $r : me(+$r), ii) : ar;
+ }, ii.paddingLeft = function($r) {
+ return arguments.length ? (vr = typeof $r == "function" ? $r : me(+$r), ii) : vr;
+ }, ii;
+ }
+ function dt(We, tt, xt, Ie, xe) {
+ var ke = We.children, vt, ir = ke.length, ar, vr = new Array(ir + 1);
+ for (vr[0] = ar = vt = 0; vt < ir; ++vt) vr[vt + 1] = ar += ke[vt].value;
+ ii(0, ir, We.value, tt, xt, Ie, xe);
+ function ii(pi, $r, di, ji, In, wi, On) {
+ if (pi >= $r - 1) {
+ var qn = ke[pi];
+ qn.x0 = ji, qn.y0 = In, qn.x1 = wi, qn.y1 = On;
+ return;
+ }
+ for (var Fn = vr[pi], ra = di / 2 + Fn, la = pi + 1, Ut = $r - 1; la < Ut; ) {
+ var wt = la + Ut >>> 1;
+ vr[wt] < ra ? la = wt + 1 : Ut = wt;
+ }
+ ra - vr[la - 1] < vr[la] - ra && pi + 1 < la && --la;
+ var rr = vr[la] - Fn, nr = di - rr;
+ if (wi - ji > On - In) {
+ var Er = (ji * nr + wi * rr) / di;
+ ii(pi, la, rr, ji, In, Er, On), ii(la, $r, nr, Er, In, wi, On);
+ } else {
+ var Xr = (In * nr + On * rr) / di;
+ ii(pi, la, rr, ji, In, wi, Xr), ii(la, $r, nr, ji, Xr, wi, On);
+ }
+ }
+ }
+ function Ge(We, tt, xt, Ie, xe) {
+ (We.depth & 1 ? wr : ot)(We, tt, xt, Ie, xe);
+ }
+ var Je = function We(tt) {
+ function xt(Ie, xe, ke, vt, ir) {
+ if ((ar = Ie._squarify) && ar.ratio === tt) for (var ar, vr, ii, pi, $r = -1, di, ji = ar.length, In = Ie.value; ++$r < ji; ) {
+ for (vr = ar[$r], ii = vr.children, pi = vr.value = 0, di = ii.length; pi < di; ++pi) vr.value += ii[pi].value;
+ vr.dice ? ot(vr, xe, ke, vt, ke += (ir - ke) * vr.value / In) : wr(vr, xe, ke, xe += (vt - xe) * vr.value / In, ir), In -= vr.value;
+ }
+ else Ie._squarify = ar = ti(tt, Ie, xe, ke, vt, ir), ar.ratio = tt;
+ }
+ return xt.ratio = function(Ie) {
+ return We((Ie = +Ie) > 1 ? Ie : 1);
+ }, xt;
+ }(Lr);
+ e.cluster = l, e.hierarchy = x, e.pack = ce, e.packEnclose = U, e.packSiblings = Ee, e.partition = ut, e.stratify = fr, e.tree = lr, e.treemap = Vr, e.treemapBinary = dt, e.treemapDice = ot, e.treemapResquarify = Je, e.treemapSlice = wr, e.treemapSliceDice = Ge, e.treemapSquarify = Br, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var UE = ye((NE) => {
+ var nCe = BE(), A6t = Eo(), LA = Dr(), S6t = tc().makeColorScaleFuncFromTrace, M6t = EA().makePullColorFn, E6t = EA().generateExtendedColors, k6t = tc().calc, C6t = fs().ALMOST_EQUAL, L6t = {}, P6t = {}, I6t = {};
+ NE.calc = function(e, t) {
+ var r = e._fullLayout, n = t.ids, i = LA.isArrayOrTypedArray(n), a = t.labels, o = t.parents, s = t.values, l = LA.isArrayOrTypedArray(s), u = [], c = {}, f = {}, h = function(j, N) {
+ c[j] ? c[j].push(N) : c[j] = [N], f[N] = 1;
+ }, d = function(j) {
+ return j || typeof j == "number";
+ }, v = function(j) {
+ return !l || A6t(s[j]) && s[j] >= 0;
+ }, _, b, p;
+ i ? (_ = Math.min(n.length, o.length), b = function(j) {
+ return d(n[j]) && v(j);
+ }, p = function(j) {
+ return String(n[j]);
+ }) : (_ = Math.min(a.length, o.length), b = function(j) {
+ return d(a[j]) && v(j);
+ }, p = function(j) {
+ return String(a[j]);
+ }), l && (_ = Math.min(_, s.length));
+ for (var k = 0; k < _; k++) if (b(k)) {
+ var E = p(k), T = d(o[k]) ? String(o[k]) : "", L = { i: k, id: E, pid: T, label: d(a[k]) ? String(a[k]) : "" };
+ l && (L.v = +s[k]), u.push(L), h(T, E);
+ }
+ if (c[""]) {
+ if (c[""].length > 1) {
+ for (var M = LA.randstr(), g = 0; g < u.length; g++) u[g].pid === "" && (u[g].pid = M);
+ u.unshift({ hasMultipleRoots: true, id: M, pid: "", label: "" });
+ }
+ } else {
+ var x = [], C;
+ for (C in c) f[C] || x.push(C);
+ if (x.length === 1) C = x[0], u.unshift({ hasImpliedRoot: true, id: C, pid: "", label: C });
+ else return LA.warn(["Multiple implied roots, cannot build", t.type, "hierarchy of", t.name + ".", "These roots include:", x.join(", ")].join(" "));
+ }
+ var P;
+ try {
+ P = nCe.stratify().id(function(j) {
+ return j.id;
+ }).parentId(function(j) {
+ return j.pid;
+ })(u);
+ } catch (j) {
+ return LA.warn(["Failed to build", t.type, "hierarchy of", t.name + ".", "Error:", j.message].join(" "));
+ }
+ var A = nCe.hierarchy(P), z = false;
+ if (l) switch (t.branchvalues) {
+ case "remainder":
+ A.sum(function(j) {
+ return j.data.v;
+ });
+ break;
+ case "total":
+ A.each(function(j) {
+ var N = j.data.data, H = N.v;
+ if (j.children) {
+ var re = j.children.reduce(function(oe, _e) {
+ return oe + _e.data.data.v;
+ }, 0);
+ if ((N.hasImpliedRoot || N.hasMultipleRoots) && (H = re), H < re * C6t) return z = true, LA.warn(["Total value for node", j.data.data.id, "of", t.name, "is smaller than the sum of its children.", `
+parent value =`, H, `
+children sum =`, re].join(" "));
+ }
+ j.value = H;
+ });
+ break;
+ }
+ else aCe(A, t, { branches: t.count.indexOf("branches") !== -1, leaves: t.count.indexOf("leaves") !== -1 });
+ if (!z) {
+ t.sort && A.sort(function(j, N) {
+ return N.value - j.value;
+ });
+ var O, U, G = t.marker.colors || [], Z = !!G.length;
+ return t._hasColorscale ? (Z || (G = l ? t.values : t._values), k6t(e, t, { vals: G, containerStr: "marker", cLetter: "c" }), U = S6t(t.marker)) : O = M6t(r["_" + t.type + "colormap"]), A.each(function(j) {
+ var N = j.data.data;
+ N.color = t._hasColorscale ? U(G[N.i]) : O(G[N.i], N.id);
+ }), u[0].hierarchy = A, u;
+ }
+ };
+ NE._runCrossTraceCalc = function(e, t) {
+ var r = t._fullLayout, n = t.calcdata, i = r[e + "colorway"], a = r["_" + e + "colormap"];
+ r["extend" + e + "colors"] && (i = E6t(i, e === "icicle" ? I6t : e === "treemap" ? P6t : L6t));
+ var o = 0, s;
+ function l(h) {
+ var d = h.data.data, v = d.id;
+ d.color === false && (a[v] ? d.color = a[v] : h.parent ? h.parent.parent ? d.color = h.parent.data.data.color : (a[v] = d.color = i[o % i.length], o++) : d.color = s);
+ }
+ for (var u = 0; u < n.length; u++) {
+ var c = n[u], f = c[0];
+ f.trace.type === e && f.hierarchy && (s = f.trace.root.color, f.hierarchy.each(l));
+ }
+ };
+ NE.crossTraceCalc = function(e) {
+ return NE._runCrossTraceCalc("sunburst", e);
+ };
+ function aCe(e, t, r) {
+ var n = 0, i = e.children;
+ if (i) {
+ for (var a = i.length, o = 0; o < a; o++) n += aCe(i[o], t, r);
+ r.branches && n++;
+ } else r.leaves && n++;
+ return e.value = e.data.data.value = n, t._values || (t._values = []), t._values[e.data.data.i] = n, n;
+ }
+ });
+ function t1(e, t, r) {
+ e.prototype = t.prototype = r, r.constructor = e;
+ }
+ function $_(e, t) {
+ var r = Object.create(e.prototype);
+ for (var n in t) r[n] = t[n];
+ return r;
+ }
+ var SD = gu(() => {
+ });
+ function Ym() {
+ }
+ function sCe() {
+ return this.rgb().formatHex();
+ }
+ function N6t() {
+ return this.rgb().formatHex8();
+ }
+ function U6t() {
+ return vCe(this).formatHsl();
+ }
+ function lCe() {
+ return this.rgb().formatRgb();
+ }
+ function ex(e) {
+ var t, r;
+ return e = (e + "").trim().toLowerCase(), (t = R6t.exec(e)) ? (r = t[1].length, t = parseInt(t[1], 16), r === 6 ? uCe(t) : r === 3 ? new _d(t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, (t & 15) << 4 | t & 15, 1) : r === 8 ? MD(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, (t & 255) / 255) : r === 4 ? MD(t >> 12 & 15 | t >> 8 & 240, t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, ((t & 15) << 4 | t & 15) / 255) : null) : (t = D6t.exec(e)) ? new _d(t[1], t[2], t[3], 1) : (t = F6t.exec(e)) ? new _d(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, 1) : (t = z6t.exec(e)) ? MD(t[1], t[2], t[3], t[4]) : (t = O6t.exec(e)) ? MD(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, t[4]) : (t = q6t.exec(e)) ? hCe(t[1], t[2] / 100, t[3] / 100, 1) : (t = B6t.exec(e)) ? hCe(t[1], t[2] / 100, t[3] / 100, t[4]) : oCe.hasOwnProperty(e) ? uCe(oCe[e]) : e === "transparent" ? new _d(NaN, NaN, NaN, 0) : null;
+ }
+ function uCe(e) {
+ return new _d(e >> 16 & 255, e >> 8 & 255, e & 255, 1);
+ }
+ function MD(e, t, r, n) {
+ return n <= 0 && (e = t = r = NaN), new _d(e, t, r, n);
+ }
+ function GE(e) {
+ return e instanceof Ym || (e = ex(e)), e ? (e = e.rgb(), new _d(e.r, e.g, e.b, e.opacity)) : new _d();
+ }
+ function IA(e, t, r, n) {
+ return arguments.length === 1 ? GE(e) : new _d(e, t, r, n == null ? 1 : n);
+ }
+ function _d(e, t, r, n) {
+ this.r = +e, this.g = +t, this.b = +r, this.opacity = +n;
+ }
+ function cCe() {
+ return `#${O2(this.r)}${O2(this.g)}${O2(this.b)}`;
+ }
+ function V6t() {
+ return `#${O2(this.r)}${O2(this.g)}${O2(this.b)}${O2((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
+ }
+ function fCe() {
+ let e = kD(this.opacity);
+ return `${e === 1 ? "rgb(" : "rgba("}${q2(this.r)}, ${q2(this.g)}, ${q2(this.b)}${e === 1 ? ")" : `, ${e})`}`;
+ }
+ function kD(e) {
+ return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));
+ }
+ function q2(e) {
+ return Math.max(0, Math.min(255, Math.round(e) || 0));
+ }
+ function O2(e) {
+ return e = q2(e), (e < 16 ? "0" : "") + e.toString(16);
+ }
+ function hCe(e, t, r, n) {
+ return n <= 0 ? e = t = r = NaN : r <= 0 || r >= 1 ? e = t = NaN : t <= 0 && (e = NaN), new Kg(e, t, r, n);
+ }
+ function vCe(e) {
+ if (e instanceof Kg) return new Kg(e.h, e.s, e.l, e.opacity);
+ if (e instanceof Ym || (e = ex(e)), !e) return new Kg();
+ if (e instanceof Kg) return e;
+ e = e.rgb();
+ var t = e.r / 255, r = e.g / 255, n = e.b / 255, i = Math.min(t, r, n), a = Math.max(t, r, n), o = NaN, s = a - i, l = (a + i) / 2;
+ return s ? (t === a ? o = (r - n) / s + (r < n) * 6 : r === a ? o = (n - t) / s + 2 : o = (t - r) / s + 4, s /= l < 0.5 ? a + i : 2 - a - i, o *= 60) : s = l > 0 && l < 1 ? 0 : o, new Kg(o, s, l, e.opacity);
+ }
+ function HE(e, t, r, n) {
+ return arguments.length === 1 ? vCe(e) : new Kg(e, t, r, n == null ? 1 : n);
+ }
+ function Kg(e, t, r, n) {
+ this.h = +e, this.s = +t, this.l = +r, this.opacity = +n;
+ }
+ function dCe(e) {
+ return e = (e || 0) % 360, e < 0 ? e + 360 : e;
+ }
+ function ED(e) {
+ return Math.max(0, Math.min(1, e || 0));
+ }
+ function EW(e, t, r) {
+ return (e < 60 ? t + (r - t) * e / 60 : e < 180 ? r : e < 240 ? t + (r - t) * (240 - e) / 60 : t) * 255;
+ }
+ var Q_, B2, PA, VE, Zm, R6t, D6t, F6t, z6t, O6t, q6t, B6t, oCe, CD = gu(() => {
+ SD();
+ Q_ = 0.7, B2 = 1 / Q_, PA = "\\s*([+-]?\\d+)\\s*", VE = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", Zm = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", R6t = /^#([0-9a-f]{3,8})$/, D6t = new RegExp(`^rgb\\(${PA},${PA},${PA}\\)$`), F6t = new RegExp(`^rgb\\(${Zm},${Zm},${Zm}\\)$`), z6t = new RegExp(`^rgba\\(${PA},${PA},${PA},${VE}\\)$`), O6t = new RegExp(`^rgba\\(${Zm},${Zm},${Zm},${VE}\\)$`), q6t = new RegExp(`^hsl\\(${VE},${Zm},${Zm}\\)$`), B6t = new RegExp(`^hsla\\(${VE},${Zm},${Zm},${VE}\\)$`), oCe = { aliceblue: 15792383, antiquewhite: 16444375, aqua: 65535, aquamarine: 8388564, azure: 15794175, beige: 16119260, bisque: 16770244, black: 0, blanchedalmond: 16772045, blue: 255, blueviolet: 9055202, brown: 10824234, burlywood: 14596231, cadetblue: 6266528, chartreuse: 8388352, chocolate: 13789470, coral: 16744272, cornflowerblue: 6591981, cornsilk: 16775388, crimson: 14423100, cyan: 65535, darkblue: 139, darkcyan: 35723, darkgoldenrod: 12092939, darkgray: 11119017, darkgreen: 25600, darkgrey: 11119017, darkkhaki: 12433259, darkmagenta: 9109643, darkolivegreen: 5597999, darkorange: 16747520, darkorchid: 10040012, darkred: 9109504, darksalmon: 15308410, darkseagreen: 9419919, darkslateblue: 4734347, darkslategray: 3100495, darkslategrey: 3100495, darkturquoise: 52945, darkviolet: 9699539, deeppink: 16716947, deepskyblue: 49151, dimgray: 6908265, dimgrey: 6908265, dodgerblue: 2003199, firebrick: 11674146, floralwhite: 16775920, forestgreen: 2263842, fuchsia: 16711935, gainsboro: 14474460, ghostwhite: 16316671, gold: 16766720, goldenrod: 14329120, gray: 8421504, green: 32768, greenyellow: 11403055, grey: 8421504, honeydew: 15794160, hotpink: 16738740, indianred: 13458524, indigo: 4915330, ivory: 16777200, khaki: 15787660, lavender: 15132410, lavenderblush: 16773365, lawngreen: 8190976, lemonchiffon: 16775885, lightblue: 11393254, lightcoral: 15761536, lightcyan: 14745599, lightgoldenrodyellow: 16448210, lightgray: 13882323, lightgreen: 9498256, lightgrey: 13882323, lightpink: 16758465, lightsalmon: 16752762, lightseagreen: 2142890, lightskyblue: 8900346, lightslategray: 7833753, lightslategrey: 7833753, lightsteelblue: 11584734, lightyellow: 16777184, lime: 65280, limegreen: 3329330, linen: 16445670, magenta: 16711935, maroon: 8388608, mediumaquamarine: 6737322, mediumblue: 205, mediumorchid: 12211667, mediumpurple: 9662683, mediumseagreen: 3978097, mediumslateblue: 8087790, mediumspringgreen: 64154, mediumturquoise: 4772300, mediumvioletred: 13047173, midnightblue: 1644912, mintcream: 16121850, mistyrose: 16770273, moccasin: 16770229, navajowhite: 16768685, navy: 128, oldlace: 16643558, olive: 8421376, olivedrab: 7048739, orange: 16753920, orangered: 16729344, orchid: 14315734, palegoldenrod: 15657130, palegreen: 10025880, paleturquoise: 11529966, palevioletred: 14381203, papayawhip: 16773077, peachpuff: 16767673, peru: 13468991, pink: 16761035, plum: 14524637, powderblue: 11591910, purple: 8388736, rebeccapurple: 6697881, red: 16711680, rosybrown: 12357519, royalblue: 4286945, saddlebrown: 9127187, salmon: 16416882, sandybrown: 16032864, seagreen: 3050327, seashell: 16774638, sienna: 10506797, silver: 12632256, skyblue: 8900331, slateblue: 6970061, slategray: 7372944, slategrey: 7372944, snow: 16775930, springgreen: 65407, steelblue: 4620980, tan: 13808780, teal: 32896, thistle: 14204888, tomato: 16737095, turquoise: 4251856, violet: 15631086, wheat: 16113331, white: 16777215, whitesmoke: 16119285, yellow: 16776960, yellowgreen: 10145074 };
+ t1(Ym, ex, { copy(e) {
+ return Object.assign(new this.constructor(), this, e);
+ }, displayable() {
+ return this.rgb().displayable();
+ }, hex: sCe, formatHex: sCe, formatHex8: N6t, formatHsl: U6t, formatRgb: lCe, toString: lCe });
+ t1(_d, IA, $_(Ym, { brighter(e) {
+ return e = e == null ? B2 : Math.pow(B2, e), new _d(this.r * e, this.g * e, this.b * e, this.opacity);
+ }, darker(e) {
+ return e = e == null ? Q_ : Math.pow(Q_, e), new _d(this.r * e, this.g * e, this.b * e, this.opacity);
+ }, rgb() {
+ return this;
+ }, clamp() {
+ return new _d(q2(this.r), q2(this.g), q2(this.b), kD(this.opacity));
+ }, displayable() {
+ return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;
+ }, hex: cCe, formatHex: cCe, formatHex8: V6t, formatRgb: fCe, toString: fCe }));
+ t1(Kg, HE, $_(Ym, { brighter(e) {
+ return e = e == null ? B2 : Math.pow(B2, e), new Kg(this.h, this.s, this.l * e, this.opacity);
+ }, darker(e) {
+ return e = e == null ? Q_ : Math.pow(Q_, e), new Kg(this.h, this.s, this.l * e, this.opacity);
+ }, rgb() {
+ var e = this.h % 360 + (this.h < 0) * 360, t = isNaN(e) || isNaN(this.s) ? 0 : this.s, r = this.l, n = r + (r < 0.5 ? r : 1 - r) * t, i = 2 * r - n;
+ return new _d(EW(e >= 240 ? e - 240 : e + 120, i, n), EW(e, i, n), EW(e < 120 ? e + 240 : e - 120, i, n), this.opacity);
+ }, clamp() {
+ return new Kg(dCe(this.h), ED(this.s), ED(this.l), kD(this.opacity));
+ }, displayable() {
+ return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
+ }, formatHsl() {
+ let e = kD(this.opacity);
+ return `${e === 1 ? "hsl(" : "hsla("}${dCe(this.h)}, ${ED(this.s) * 100}%, ${ED(this.l) * 100}%${e === 1 ? ")" : `, ${e})`}`;
+ } }));
+ });
+ var LD, PD, kW = gu(() => {
+ LD = Math.PI / 180, PD = 180 / Math.PI;
+ });
+ function xCe(e) {
+ if (e instanceof Km) return new Km(e.l, e.a, e.b, e.opacity);
+ if (e instanceof r1) return bCe(e);
+ e instanceof _d || (e = GE(e));
+ var t = IW(e.r), r = IW(e.g), n = IW(e.b), i = CW((0.2225045 * t + 0.7168786 * r + 0.0606169 * n) / gCe), a, o;
+ return t === r && r === n ? a = o = i : (a = CW((0.4360747 * t + 0.3850649 * r + 0.1430804 * n) / pCe), o = CW((0.0139322 * t + 0.0971045 * r + 0.7141733 * n) / mCe)), new Km(116 * i - 16, 500 * (a - i), 200 * (i - o), e.opacity);
+ }
+ function DA(e, t, r, n) {
+ return arguments.length === 1 ? xCe(e) : new Km(e, t, r, n == null ? 1 : n);
+ }
+ function Km(e, t, r, n) {
+ this.l = +e, this.a = +t, this.b = +r, this.opacity = +n;
+ }
+ function CW(e) {
+ return e > G6t ? Math.pow(e, 1 / 3) : e / _Ce + yCe;
+ }
+ function LW(e) {
+ return e > RA ? e * e * e : _Ce * (e - yCe);
+ }
+ function PW(e) {
+ return 255 * (e <= 31308e-7 ? 12.92 * e : 1.055 * Math.pow(e, 1 / 2.4) - 0.055);
+ }
+ function IW(e) {
+ return (e /= 255) <= 0.04045 ? e / 12.92 : Math.pow((e + 0.055) / 1.055, 2.4);
+ }
+ function H6t(e) {
+ if (e instanceof r1) return new r1(e.h, e.c, e.l, e.opacity);
+ if (e instanceof Km || (e = xCe(e)), e.a === 0 && e.b === 0) return new r1(NaN, 0 < e.l && e.l < 100 ? 0 : NaN, e.l, e.opacity);
+ var t = Math.atan2(e.b, e.a) * PD;
+ return new r1(t < 0 ? t + 360 : t, Math.sqrt(e.a * e.a + e.b * e.b), e.l, e.opacity);
+ }
+ function jE(e, t, r, n) {
+ return arguments.length === 1 ? H6t(e) : new r1(e, t, r, n == null ? 1 : n);
+ }
+ function r1(e, t, r, n) {
+ this.h = +e, this.c = +t, this.l = +r, this.opacity = +n;
+ }
+ function bCe(e) {
+ if (isNaN(e.h)) return new Km(e.l, 0, 0, e.opacity);
+ var t = e.h * LD;
+ return new Km(e.l, Math.cos(t) * e.c, Math.sin(t) * e.c, e.opacity);
+ }
+ var ID, pCe, gCe, mCe, yCe, RA, _Ce, G6t, wCe = gu(() => {
+ SD();
+ CD();
+ kW();
+ ID = 18, pCe = 0.96422, gCe = 1, mCe = 0.82521, yCe = 4 / 29, RA = 6 / 29, _Ce = 3 * RA * RA, G6t = RA * RA * RA;
+ t1(Km, DA, $_(Ym, { brighter(e) {
+ return new Km(this.l + ID * (e == null ? 1 : e), this.a, this.b, this.opacity);
+ }, darker(e) {
+ return new Km(this.l - ID * (e == null ? 1 : e), this.a, this.b, this.opacity);
+ }, rgb() {
+ var e = (this.l + 16) / 116, t = isNaN(this.a) ? e : e + this.a / 500, r = isNaN(this.b) ? e : e - this.b / 200;
+ return t = pCe * LW(t), e = gCe * LW(e), r = mCe * LW(r), new _d(PW(3.1338561 * t - 1.6168667 * e - 0.4906146 * r), PW(-0.9787684 * t + 1.9161415 * e + 0.033454 * r), PW(0.0719453 * t - 0.2289914 * e + 1.4052427 * r), this.opacity);
+ } }));
+ t1(r1, jE, $_(Ym, { brighter(e) {
+ return new r1(this.h, this.c, this.l + ID * (e == null ? 1 : e), this.opacity);
+ }, darker(e) {
+ return new r1(this.h, this.c, this.l - ID * (e == null ? 1 : e), this.opacity);
+ }, rgb() {
+ return bCe(this).rgb();
+ } }));
+ });
+ function j6t(e) {
+ if (e instanceof N2) return new N2(e.h, e.s, e.l, e.opacity);
+ e instanceof _d || (e = GE(e));
+ var t = e.r / 255, r = e.g / 255, n = e.b / 255, i = (SCe * n + TCe * t - ACe * r) / (SCe + TCe - ACe), a = n - i, o = (WE * (r - i) - DW * a) / RD, s = Math.sqrt(o * o + a * a) / (WE * i * (1 - i)), l = s ? Math.atan2(o, a) * PD - 120 : NaN;
+ return new N2(l < 0 ? l + 360 : l, s, i, e.opacity);
+ }
+ function FA(e, t, r, n) {
+ return arguments.length === 1 ? j6t(e) : new N2(e, t, r, n == null ? 1 : n);
+ }
+ function N2(e, t, r, n) {
+ this.h = +e, this.s = +t, this.l = +r, this.opacity = +n;
+ }
+ var MCe, RW, DW, RD, WE, TCe, ACe, SCe, ECe = gu(() => {
+ SD();
+ CD();
+ kW();
+ MCe = -0.14861, RW = 1.78277, DW = -0.29227, RD = -0.90649, WE = 1.97294, TCe = WE * RD, ACe = WE * RW, SCe = RW * DW - RD * MCe;
+ t1(N2, FA, $_(Ym, { brighter(e) {
+ return e = e == null ? B2 : Math.pow(B2, e), new N2(this.h, this.s, this.l * e, this.opacity);
+ }, darker(e) {
+ return e = e == null ? Q_ : Math.pow(Q_, e), new N2(this.h, this.s, this.l * e, this.opacity);
+ }, rgb() {
+ var e = isNaN(this.h) ? 0 : (this.h + 120) * LD, t = +this.l, r = isNaN(this.s) ? 0 : this.s * t * (1 - t), n = Math.cos(e), i = Math.sin(e);
+ return new _d(255 * (t + r * (MCe * n + RW * i)), 255 * (t + r * (DW * n + RD * i)), 255 * (t + r * (WE * n)), this.opacity);
+ } }));
+ });
+ var U2 = gu(() => {
+ CD();
+ wCe();
+ ECe();
+ });
+ function FW(e, t, r, n, i) {
+ var a = e * e, o = a * e;
+ return ((1 - 3 * e + 3 * a - o) * t + (4 - 6 * a + 3 * o) * r + (1 + 3 * e + 3 * a - 3 * o) * n + o * i) / 6;
+ }
+ function DD(e) {
+ var t = e.length - 1;
+ return function(r) {
+ var n = r <= 0 ? r = 0 : r >= 1 ? (r = 1, t - 1) : Math.floor(r * t), i = e[n], a = e[n + 1], o = n > 0 ? e[n - 1] : 2 * i - a, s = n < t - 1 ? e[n + 2] : 2 * a - i;
+ return FW((r - n / t) * t, o, i, a, s);
+ };
+ }
+ var FD = gu(() => {
+ });
+ function zD(e) {
+ var t = e.length;
+ return function(r) {
+ var n = Math.floor(((r %= 1) < 0 ? ++r : r) * t), i = e[(n + t - 1) % t], a = e[n % t], o = e[(n + 1) % t], s = e[(n + 2) % t];
+ return FW((r - n / t) * t, i, a, o, s);
+ };
+ }
+ var zW = gu(() => {
+ FD();
+ });
+ var zA, OW = gu(() => {
+ zA = (e) => () => e;
+ });
+ function kCe(e, t) {
+ return function(r) {
+ return e + r * t;
+ };
+ }
+ function W6t(e, t, r) {
+ return e = Math.pow(e, r), t = Math.pow(t, r) - e, r = 1 / r, function(n) {
+ return Math.pow(e + n * t, r);
+ };
+ }
+ function tx(e, t) {
+ var r = t - e;
+ return r ? kCe(e, r > 180 || r < -180 ? r - 360 * Math.round(r / 360) : r) : zA(isNaN(e) ? t : e);
+ }
+ function CCe(e) {
+ return (e = +e) == 1 ? $f : function(t, r) {
+ return r - t ? W6t(t, r, e) : zA(isNaN(t) ? r : t);
+ };
+ }
+ function $f(e, t) {
+ var r = t - e;
+ return r ? kCe(e, r) : zA(isNaN(e) ? t : e);
+ }
+ var V2 = gu(() => {
+ OW();
+ });
+ function LCe(e) {
+ return function(t) {
+ var r = t.length, n = new Array(r), i = new Array(r), a = new Array(r), o, s;
+ for (o = 0; o < r; ++o) s = IA(t[o]), n[o] = s.r || 0, i[o] = s.g || 0, a[o] = s.b || 0;
+ return n = e(n), i = e(i), a = e(a), s.opacity = 1, function(l) {
+ return s.r = n(l), s.g = i(l), s.b = a(l), s + "";
+ };
+ };
+ }
+ var XE, PCe, ICe, qW = gu(() => {
+ U2();
+ FD();
+ zW();
+ V2();
+ XE = function e(t) {
+ var r = CCe(t);
+ function n(i, a) {
+ var o = r((i = IA(i)).r, (a = IA(a)).r), s = r(i.g, a.g), l = r(i.b, a.b), u = $f(i.opacity, a.opacity);
+ return function(c) {
+ return i.r = o(c), i.g = s(c), i.b = l(c), i.opacity = u(c), i + "";
+ };
+ }
+ return n.gamma = e, n;
+ }(1);
+ PCe = LCe(DD), ICe = LCe(zD);
+ });
+ function OA(e, t) {
+ t || (t = []);
+ var r = e ? Math.min(t.length, e.length) : 0, n = t.slice(), i;
+ return function(a) {
+ for (i = 0; i < r; ++i) n[i] = e[i] * (1 - a) + t[i] * a;
+ return n;
+ };
+ }
+ function OD(e) {
+ return ArrayBuffer.isView(e) && !(e instanceof DataView);
+ }
+ var qD = gu(() => {
+ });
+ function RCe(e, t) {
+ return (OD(t) ? OA : BW)(e, t);
+ }
+ function BW(e, t) {
+ var r = t ? t.length : 0, n = e ? Math.min(r, e.length) : 0, i = new Array(n), a = new Array(r), o;
+ for (o = 0; o < n; ++o) i[o] = rx(e[o], t[o]);
+ for (; o < r; ++o) a[o] = t[o];
+ return function(s) {
+ for (o = 0; o < n; ++o) a[o] = i[o](s);
+ return a;
+ };
+ }
+ var NW = gu(() => {
+ ZE();
+ qD();
+ });
+ function BD(e, t) {
+ var r = /* @__PURE__ */ new Date();
+ return e = +e, t = +t, function(n) {
+ return r.setTime(e * (1 - n) + t * n), r;
+ };
+ }
+ var UW = gu(() => {
+ });
+ function zp(e, t) {
+ return e = +e, t = +t, function(r) {
+ return e * (1 - r) + t * r;
+ };
+ }
+ var YE = gu(() => {
+ });
+ function ND(e, t) {
+ var r = {}, n = {}, i;
+ (e === null || typeof e != "object") && (e = {}), (t === null || typeof t != "object") && (t = {});
+ for (i in t) i in e ? r[i] = rx(e[i], t[i]) : n[i] = t[i];
+ return function(a) {
+ for (i in r) n[i] = r[i](a);
+ return n;
+ };
+ }
+ var VW = gu(() => {
+ ZE();
+ });
+ function X6t(e) {
+ return function() {
+ return e;
+ };
+ }
+ function Z6t(e) {
+ return function(t) {
+ return e(t) + "";
+ };
+ }
+ function UD(e, t) {
+ var r = HW.lastIndex = GW.lastIndex = 0, n, i, a, o = -1, s = [], l = [];
+ for (e = e + "", t = t + ""; (n = HW.exec(e)) && (i = GW.exec(t)); ) (a = i.index) > r && (a = t.slice(r, a), s[o] ? s[o] += a : s[++o] = a), (n = n[0]) === (i = i[0]) ? s[o] ? s[o] += i : s[++o] = i : (s[++o] = null, l.push({ i: o, x: zp(n, i) })), r = GW.lastIndex;
+ return r < t.length && (a = t.slice(r), s[o] ? s[o] += a : s[++o] = a), s.length < 2 ? l[0] ? Z6t(l[0].x) : X6t(t) : (t = l.length, function(u) {
+ for (var c = 0, f; c < t; ++c) s[(f = l[c]).i] = f.x(u);
+ return s.join("");
+ });
+ }
+ var HW, GW, jW = gu(() => {
+ YE();
+ HW = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, GW = new RegExp(HW.source, "g");
+ });
+ function rx(e, t) {
+ var r = typeof t, n;
+ return t == null || r === "boolean" ? zA(t) : (r === "number" ? zp : r === "string" ? (n = ex(t)) ? (t = n, XE) : UD : t instanceof ex ? XE : t instanceof Date ? BD : OD(t) ? OA : Array.isArray(t) ? BW : typeof t.valueOf != "function" && typeof t.toString != "function" || isNaN(t) ? ND : zp)(e, t);
+ }
+ var ZE = gu(() => {
+ U2();
+ qW();
+ NW();
+ UW();
+ YE();
+ VW();
+ jW();
+ OW();
+ qD();
+ });
+ function DCe(e) {
+ var t = e.length;
+ return function(r) {
+ return e[Math.max(0, Math.min(t - 1, Math.floor(r * t)))];
+ };
+ }
+ var FCe = gu(() => {
+ });
+ function zCe(e, t) {
+ var r = tx(+e, +t);
+ return function(n) {
+ var i = r(n);
+ return i - 360 * Math.floor(i / 360);
+ };
+ }
+ var OCe = gu(() => {
+ V2();
+ });
+ function qCe(e, t) {
+ return e = +e, t = +t, function(r) {
+ return Math.round(e * (1 - r) + t * r);
+ };
+ }
+ var BCe = gu(() => {
+ });
+ function WW(e, t, r, n, i, a) {
+ var o, s, l;
+ return (o = Math.sqrt(e * e + t * t)) && (e /= o, t /= o), (l = e * r + t * n) && (r -= e * l, n -= t * l), (s = Math.sqrt(r * r + n * n)) && (r /= s, n /= s, l /= s), e * n < t * r && (e = -e, t = -t, l = -l, o = -o), { translateX: i, translateY: a, rotate: Math.atan2(t, e) * NCe, skewX: Math.atan(l) * NCe, scaleX: o, scaleY: s };
+ }
+ var NCe, VD, UCe = gu(() => {
+ NCe = 180 / Math.PI, VD = { translateX: 0, translateY: 0, rotate: 0, skewX: 0, scaleX: 1, scaleY: 1 };
+ });
+ function VCe(e) {
+ let t = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(e + "");
+ return t.isIdentity ? VD : WW(t.a, t.b, t.c, t.d, t.e, t.f);
+ }
+ function GCe(e) {
+ return e == null ? VD : (GD || (GD = document.createElementNS("http://www.w3.org/2000/svg", "g")), GD.setAttribute("transform", e), (e = GD.transform.baseVal.consolidate()) ? (e = e.matrix, WW(e.a, e.b, e.c, e.d, e.e, e.f)) : VD);
+ }
+ var GD, HCe = gu(() => {
+ UCe();
+ });
+ function jCe(e, t, r, n) {
+ function i(u) {
+ return u.length ? u.pop() + " " : "";
+ }
+ function a(u, c, f, h, d, v) {
+ if (u !== f || c !== h) {
+ var _ = d.push("translate(", null, t, null, r);
+ v.push({ i: _ - 4, x: zp(u, f) }, { i: _ - 2, x: zp(c, h) });
+ } else (f || h) && d.push("translate(" + f + t + h + r);
+ }
+ function o(u, c, f, h) {
+ u !== c ? (u - c > 180 ? c += 360 : c - u > 180 && (u += 360), h.push({ i: f.push(i(f) + "rotate(", null, n) - 2, x: zp(u, c) })) : c && f.push(i(f) + "rotate(" + c + n);
+ }
+ function s(u, c, f, h) {
+ u !== c ? h.push({ i: f.push(i(f) + "skewX(", null, n) - 2, x: zp(u, c) }) : c && f.push(i(f) + "skewX(" + c + n);
+ }
+ function l(u, c, f, h, d, v) {
+ if (u !== f || c !== h) {
+ var _ = d.push(i(d) + "scale(", null, ",", null, ")");
+ v.push({ i: _ - 4, x: zp(u, f) }, { i: _ - 2, x: zp(c, h) });
+ } else (f !== 1 || h !== 1) && d.push(i(d) + "scale(" + f + "," + h + ")");
+ }
+ return function(u, c) {
+ var f = [], h = [];
+ return u = e(u), c = e(c), a(u.translateX, u.translateY, c.translateX, c.translateY, f, h), o(u.rotate, c.rotate, f, h), s(u.skewX, c.skewX, f, h), l(u.scaleX, u.scaleY, c.scaleX, c.scaleY, f, h), u = c = null, function(d) {
+ for (var v = -1, _ = h.length, b; ++v < _; ) f[(b = h[v]).i] = b.x(d);
+ return f.join("");
+ };
+ };
+ }
+ var WCe, XCe, ZCe = gu(() => {
+ YE();
+ HCe();
+ WCe = jCe(VCe, "px, ", "px)", "deg)"), XCe = jCe(GCe, ", ", ")", ")");
+ });
+ function YCe(e) {
+ return ((e = Math.exp(e)) + 1 / e) / 2;
+ }
+ function K6t(e) {
+ return ((e = Math.exp(e)) - 1 / e) / 2;
+ }
+ function J6t(e) {
+ return ((e = Math.exp(2 * e)) - 1) / (e + 1);
+ }
+ var Y6t, KCe, JCe = gu(() => {
+ Y6t = 1e-12;
+ KCe = function e(t, r, n) {
+ function i(a, o) {
+ var s = a[0], l = a[1], u = a[2], c = o[0], f = o[1], h = o[2], d = c - s, v = f - l, _ = d * d + v * v, b, p;
+ if (_ < Y6t) p = Math.log(h / u) / t, b = function(C) {
+ return [s + C * d, l + C * v, u * Math.exp(t * C * p)];
+ };
+ else {
+ var k = Math.sqrt(_), E = (h * h - u * u + n * _) / (2 * u * r * k), T = (h * h - u * u - n * _) / (2 * h * r * k), L = Math.log(Math.sqrt(E * E + 1) - E), x = Math.log(Math.sqrt(T * T + 1) - T);
+ p = (x - L) / t, b = function(C) {
+ var M = C * p, g = YCe(L), P = u / (r * k) * (g * J6t(t * M + L) - K6t(L));
+ return [s + P * d, l + P * v, u * g / YCe(t * M + L)];
+ };
+ }
+ return b.duration = p * 1e3 * t / Math.SQRT2, b;
+ }
+ return i.rho = function(a) {
+ var o = Math.max(1e-3, +a), s = o * o, l = s * s;
+ return e(o, s, l);
+ }, i;
+ }(Math.SQRT2, 2, 4);
+ });
+ function $Ce(e) {
+ return function(t, r) {
+ var n = e((t = HE(t)).h, (r = HE(r)).h), i = $f(t.s, r.s), a = $f(t.l, r.l), o = $f(t.opacity, r.opacity);
+ return function(s) {
+ return t.h = n(s), t.s = i(s), t.l = a(s), t.opacity = o(s), t + "";
+ };
+ };
+ }
+ var QCe, e6e, t6e = gu(() => {
+ U2();
+ V2();
+ QCe = $Ce(tx), e6e = $Ce($f);
+ });
+ function XW(e, t) {
+ var r = $f((e = DA(e)).l, (t = DA(t)).l), n = $f(e.a, t.a), i = $f(e.b, t.b), a = $f(e.opacity, t.opacity);
+ return function(o) {
+ return e.l = r(o), e.a = n(o), e.b = i(o), e.opacity = a(o), e + "";
+ };
+ }
+ var r6e = gu(() => {
+ U2();
+ V2();
+ });
+ function i6e(e) {
+ return function(t, r) {
+ var n = e((t = jE(t)).h, (r = jE(r)).h), i = $f(t.c, r.c), a = $f(t.l, r.l), o = $f(t.opacity, r.opacity);
+ return function(s) {
+ return t.h = n(s), t.c = i(s), t.l = a(s), t.opacity = o(s), t + "";
+ };
+ };
+ }
+ var n6e, a6e, o6e = gu(() => {
+ U2();
+ V2();
+ n6e = i6e(tx), a6e = i6e($f);
+ });
+ function s6e(e) {
+ return function t(r) {
+ r = +r;
+ function n(i, a) {
+ var o = e((i = FA(i)).h, (a = FA(a)).h), s = $f(i.s, a.s), l = $f(i.l, a.l), u = $f(i.opacity, a.opacity);
+ return function(c) {
+ return i.h = o(c), i.s = s(c), i.l = l(Math.pow(c, r)), i.opacity = u(c), i + "";
+ };
+ }
+ return n.gamma = t, n;
+ }(1);
+ }
+ var l6e, u6e, c6e = gu(() => {
+ U2();
+ V2();
+ l6e = s6e(tx), u6e = s6e($f);
+ });
+ function ZW(e, t) {
+ t === void 0 && (t = e, e = rx);
+ for (var r = 0, n = t.length - 1, i = t[0], a = new Array(n < 0 ? 0 : n); r < n; ) a[r] = e(i, i = t[++r]);
+ return function(o) {
+ var s = Math.max(0, Math.min(n - 1, Math.floor(o *= n)));
+ return a[s](o - s);
+ };
+ }
+ var f6e = gu(() => {
+ ZE();
+ });
+ function h6e(e, t) {
+ for (var r = new Array(t), n = 0; n < t; ++n) r[n] = e(n / (t - 1));
+ return r;
+ }
+ var d6e = gu(() => {
+ });
+ var G2 = {};
+ mee(G2, { interpolate: () => rx, interpolateArray: () => RCe, interpolateBasis: () => DD, interpolateBasisClosed: () => zD, interpolateCubehelix: () => l6e, interpolateCubehelixLong: () => u6e, interpolateDate: () => BD, interpolateDiscrete: () => DCe, interpolateHcl: () => n6e, interpolateHclLong: () => a6e, interpolateHsl: () => QCe, interpolateHslLong: () => e6e, interpolateHue: () => zCe, interpolateLab: () => XW, interpolateNumber: () => zp, interpolateNumberArray: () => OA, interpolateObject: () => ND, interpolateRgb: () => XE, interpolateRgbBasis: () => PCe, interpolateRgbBasisClosed: () => ICe, interpolateRound: () => qCe, interpolateString: () => UD, interpolateTransformCss: () => WCe, interpolateTransformSvg: () => XCe, interpolateZoom: () => KCe, piecewise: () => ZW, quantize: () => h6e });
+ var H2 = gu(() => {
+ ZE();
+ NW();
+ FD();
+ zW();
+ UW();
+ FCe();
+ OCe();
+ YE();
+ qD();
+ VW();
+ BCe();
+ jW();
+ ZCe();
+ JCe();
+ qW();
+ t6e();
+ r6e();
+ o6e();
+ c6e();
+ f6e();
+ d6e();
+ });
+ var HD = ye((s0r, v6e) => {
+ var $6t = So(), Q6t = ka();
+ v6e.exports = function(t, r, n, i, a) {
+ var o = r.data.data, s = o.i, l = a || o.color;
+ if (s >= 0) {
+ r.i = o.i;
+ var u = n.marker;
+ u.pattern ? (!u.colors || !u.pattern.shape) && (u.color = l, r.color = l) : (u.color = l, r.color = l), $6t.pointStyle(t, n, i, r);
+ } else Q6t.fill(t, l);
+ };
+ });
+ var YW = ye((l0r, _6e) => {
+ var p6e = Oa(), g6e = ka(), m6e = Dr(), eLt = bv().resizeText, tLt = HD();
+ function rLt(e) {
+ var t = e._fullLayout._sunburstlayer.selectAll(".trace");
+ eLt(e, t, "sunburst"), t.each(function(r) {
+ var n = p6e.select(this), i = r[0], a = i.trace;
+ n.style("opacity", a.opacity), n.selectAll("path.surface").each(function(o) {
+ p6e.select(this).call(y6e, o, a, e);
+ });
+ });
+ }
+ function y6e(e, t, r, n) {
+ var i = t.data.data, a = !t.children, o = i.i, s = m6e.castOption(r, o, "marker.line.color") || g6e.defaultLine, l = m6e.castOption(r, o, "marker.line.width") || 0;
+ e.call(tLt, t, r, n).style("stroke-width", l).call(g6e.stroke, s).style("opacity", a ? r.leaf.opacity : null);
+ }
+ _6e.exports = { style: rLt, styleOne: y6e };
+ });
+ var i1 = ye((Bs) => {
+ var j2 = Dr(), iLt = ka(), nLt = Eg(), x6e = g_();
+ Bs.findEntryWithLevel = function(e, t) {
+ var r;
+ return t && e.eachAfter(function(n) {
+ if (Bs.getPtId(n) === t) return r = n.copy();
+ }), r || e;
+ };
+ Bs.findEntryWithChild = function(e, t) {
+ var r;
+ return e.eachAfter(function(n) {
+ for (var i = n.children || [], a = 0; a < i.length; a++) {
+ var o = i[a];
+ if (Bs.getPtId(o) === t) return r = n.copy();
+ }
+ }), r || e;
+ };
+ Bs.isEntry = function(e) {
+ return !e.parent;
+ };
+ Bs.isLeaf = function(e) {
+ return !e.children;
+ };
+ Bs.getPtId = function(e) {
+ return e.data.data.id;
+ };
+ Bs.getPtLabel = function(e) {
+ return e.data.data.label;
+ };
+ Bs.getValue = function(e) {
+ return e.value;
+ };
+ Bs.isHierarchyRoot = function(e) {
+ return b6e(e) === "";
+ };
+ Bs.setSliceCursor = function(e, t, r) {
+ var n = r.isTransitioning;
+ if (!n) {
+ var i = e.datum();
+ n = r.hideOnRoot && Bs.isHierarchyRoot(i) || r.hideOnLeaves && Bs.isLeaf(i);
+ }
+ nLt(e, n ? null : "pointer");
+ };
+ function aLt(e, t, r) {
+ return { color: Bs.getOutsideTextFontKey("color", e, t, r), family: Bs.getOutsideTextFontKey("family", e, t, r), size: Bs.getOutsideTextFontKey("size", e, t, r), weight: Bs.getOutsideTextFontKey("weight", e, t, r), style: Bs.getOutsideTextFontKey("style", e, t, r), variant: Bs.getOutsideTextFontKey("variant", e, t, r), textcase: Bs.getOutsideTextFontKey("textcase", e, t, r), lineposition: Bs.getOutsideTextFontKey("lineposition", e, t, r), shadow: Bs.getOutsideTextFontKey("shadow", e, t, r) };
+ }
+ function oLt(e, t, r, n) {
+ var i = (n || {}).onPathbar, a = t.data.data, o = a.i, s = j2.castOption(e, o, (i ? "pathbar.textfont" : "insidetextfont") + ".color");
+ return !s && e._input.textfont && (s = j2.castOption(e._input, o, "textfont.color")), { color: s || iLt.contrast(a.color), family: Bs.getInsideTextFontKey("family", e, t, r, n), size: Bs.getInsideTextFontKey("size", e, t, r, n), weight: Bs.getInsideTextFontKey("weight", e, t, r, n), style: Bs.getInsideTextFontKey("style", e, t, r, n), variant: Bs.getInsideTextFontKey("variant", e, t, r, n), textcase: Bs.getInsideTextFontKey("textcase", e, t, r, n), lineposition: Bs.getInsideTextFontKey("lineposition", e, t, r, n), shadow: Bs.getInsideTextFontKey("shadow", e, t, r, n) };
+ }
+ Bs.getInsideTextFontKey = function(e, t, r, n, i) {
+ var a = (i || {}).onPathbar, o = a ? "pathbar.textfont" : "insidetextfont", s = r.data.data.i;
+ return j2.castOption(t, s, o + "." + e) || j2.castOption(t, s, "textfont." + e) || n.size;
+ };
+ Bs.getOutsideTextFontKey = function(e, t, r, n) {
+ var i = r.data.data.i;
+ return j2.castOption(t, i, "outsidetextfont." + e) || j2.castOption(t, i, "textfont." + e) || n.size;
+ };
+ Bs.isOutsideText = function(e, t) {
+ return !e._hasColorscale && Bs.isHierarchyRoot(t);
+ };
+ Bs.determineTextFont = function(e, t, r, n) {
+ return Bs.isOutsideText(e, t) ? aLt(e, t, r) : oLt(e, t, r, n);
+ };
+ Bs.hasTransition = function(e) {
+ return !!(e && e.duration > 0);
+ };
+ Bs.getMaxDepth = function(e) {
+ return e.maxdepth >= 0 ? e.maxdepth : 1 / 0;
+ };
+ Bs.isHeader = function(e, t) {
+ return !(Bs.isLeaf(e) || e.depth === t._maxDepth - 1);
+ };
+ function b6e(e) {
+ return e.data.data.pid;
+ }
+ Bs.getParent = function(e, t) {
+ return Bs.findEntryWithLevel(e, b6e(t));
+ };
+ Bs.listPath = function(e, t) {
+ var r = e.parent;
+ if (!r) return [];
+ var n = t ? [r.data[t]] : [r];
+ return Bs.listPath(r, t).concat(n);
+ };
+ Bs.getPath = function(e) {
+ return Bs.listPath(e, "label").join("/") + "/";
+ };
+ Bs.formatValue = x6e.formatPieValue;
+ Bs.formatPercent = function(e, t) {
+ var r = j2.formatPercent(e, 0);
+ return r === "0%" && (r = x6e.formatPiePercent(e, t)), r;
+ };
+ });
+ var $E = ye((c0r, A6e) => {
+ var qA = Oa(), w6e = qa(), sLt = ip().appendArrayPointValue, KE = vf(), T6e = Dr(), lLt = k3(), id = i1(), uLt = g_(), cLt = uLt.formatPieValue;
+ A6e.exports = function(t, r, n, i, a) {
+ var o = i[0], s = o.trace, l = o.hierarchy, u = s.type === "sunburst", c = s.type === "treemap" || s.type === "icicle";
+ "_hasHoverLabel" in s || (s._hasHoverLabel = false), "_hasHoverEvent" in s || (s._hasHoverEvent = false);
+ var f = function(v) {
+ var _ = n._fullLayout;
+ if (!(n._dragging || _.hovermode === false)) {
+ var b = n._fullData[s.index], p = v.data.data, k = p.i, E = id.isHierarchyRoot(v), T = id.getParent(l, v), L = id.getValue(v), x = function(Ce) {
+ return T6e.castOption(b, k, Ce);
+ }, C = x("hovertemplate"), M = KE.castHoverinfo(b, _, k), g = _.separators, P;
+ if (C || M && M !== "none" && M !== "skip") {
+ var A, z;
+ u && (A = o.cx + v.pxmid[0] * (1 - v.rInscribed), z = o.cy + v.pxmid[1] * (1 - v.rInscribed)), c && (A = v._hoverX, z = v._hoverY);
+ var O = {}, U = [], G = [], Z = function(Ce) {
+ return U.indexOf(Ce) !== -1;
+ };
+ M && (U = M === "all" ? b._module.attributes.hoverinfo.flags : M.split("+")), O.label = p.label, Z("label") && O.label && G.push(O.label), p.hasOwnProperty("v") && (O.value = p.v, O.valueLabel = cLt(O.value, g), Z("value") && G.push(O.valueLabel)), O.currentPath = v.currentPath = id.getPath(v.data), Z("current path") && !E && G.push(O.currentPath);
+ var j, N = [], H = function() {
+ N.indexOf(j) === -1 && (G.push(j), N.push(j));
+ };
+ O.percentParent = v.percentParent = L / id.getValue(T), O.parent = v.parentString = id.getPtLabel(T), Z("percent parent") && (j = id.formatPercent(O.percentParent, g) + " of " + O.parent, H()), O.percentEntry = v.percentEntry = L / id.getValue(r), O.entry = v.entry = id.getPtLabel(r), Z("percent entry") && !E && !v.onPathbar && (j = id.formatPercent(O.percentEntry, g) + " of " + O.entry, H()), O.percentRoot = v.percentRoot = L / id.getValue(l), O.root = v.root = id.getPtLabel(l), Z("percent root") && !E && (j = id.formatPercent(O.percentRoot, g) + " of " + O.root, H()), O.text = x("hovertext") || x("text"), Z("text") && (j = O.text, T6e.isValidTextValue(j) && G.push(j)), P = [JE(v, b, a.eventDataKeys)];
+ var re = { trace: b, y: z, _x0: v._x0, _x1: v._x1, _y0: v._y0, _y1: v._y1, text: G.join(" "), name: C || Z("name") ? b.name : void 0, color: x("hoverlabel.bgcolor") || p.color, borderColor: x("hoverlabel.bordercolor"), fontFamily: x("hoverlabel.font.family"), fontSize: x("hoverlabel.font.size"), fontColor: x("hoverlabel.font.color"), fontWeight: x("hoverlabel.font.weight"), fontStyle: x("hoverlabel.font.style"), fontVariant: x("hoverlabel.font.variant"), nameLength: x("hoverlabel.namelength"), textAlign: x("hoverlabel.align"), hovertemplate: C, hovertemplateLabels: O, eventData: P };
+ u && (re.x0 = A - v.rInscribed * v.rpx1, re.x1 = A + v.rInscribed * v.rpx1, re.idealAlign = v.pxmid[0] < 0 ? "left" : "right"), c && (re.x = A, re.idealAlign = A < 0 ? "left" : "right");
+ var oe = [];
+ KE.loneHover(re, { container: _._hoverlayer.node(), outerContainer: _._paper.node(), gd: n, inOut_bbox: oe }), P[0].bbox = oe[0], s._hasHoverLabel = true;
+ }
+ if (c) {
+ var _e = t.select("path.surface");
+ a.styleOne(_e, v, b, n, { hovered: true });
+ }
+ s._hasHoverEvent = true, n.emit("plotly_hover", { points: P || [JE(v, b, a.eventDataKeys)], event: qA.event });
+ }
+ }, h = function(v) {
+ var _ = n._fullLayout, b = n._fullData[s.index], p = qA.select(this).datum();
+ if (s._hasHoverEvent && (v.originalEvent = qA.event, n.emit("plotly_unhover", { points: [JE(p, b, a.eventDataKeys)], event: qA.event }), s._hasHoverEvent = false), s._hasHoverLabel && (KE.loneUnhover(_._hoverlayer.node()), s._hasHoverLabel = false), c) {
+ var k = t.select("path.surface");
+ a.styleOne(k, p, b, n, { hovered: false });
+ }
+ }, d = function(v) {
+ var _ = n._fullLayout, b = n._fullData[s.index], p = u && (id.isHierarchyRoot(v) || id.isLeaf(v)), k = id.getPtId(v), E = id.isEntry(v) ? id.findEntryWithChild(l, k) : id.findEntryWithLevel(l, k), T = id.getPtId(E), L = { points: [JE(v, b, a.eventDataKeys)], event: qA.event };
+ p || (L.nextLevel = T);
+ var x = lLt.triggerHandler(n, "plotly_" + s.type + "click", L);
+ if (x !== false && _.hovermode && (n._hoverdata = [JE(v, b, a.eventDataKeys)], KE.click(n, qA.event)), !p && x !== false && !n._dragging && !n._transitioning) {
+ w6e.call("_storeDirectGUIEdit", b, _._tracePreGUI[b.uid], { level: b.level });
+ var C = { data: [{ level: T }], traces: [s.index] }, M = { frame: { redraw: false, duration: a.transitionTime }, transition: { duration: a.transitionTime, easing: a.transitionEasing }, mode: "immediate", fromcurrent: true };
+ KE.loneUnhover(_._hoverlayer.node()), w6e.call("animate", n, C, M);
+ }
+ };
+ t.on("mouseover", f), t.on("mouseout", h), t.on("click", d);
+ };
+ function JE(e, t, r) {
+ for (var n = e.data.data, i = { curveNumber: t.index, pointNumber: n.i, data: t._input, fullData: t }, a = 0; a < r.length; a++) {
+ var o = r[a];
+ o in e && (i[o] = e[o]);
+ }
+ return "parentString" in e && !id.isHierarchyRoot(e) && (i.parent = e.parentString), sLt(i, t, n.i), i;
+ }
+ });
+ var WD = ye((jD) => {
+ var QE = Oa(), fLt = BE(), Jg = (H2(), pb(G2)).interpolate, S6e = So(), Av = Dr(), hLt = Zl(), C6e = bv(), M6e = C6e.recordMinTextSize, dLt = C6e.clearMinTextSize, L6e = TD(), vLt = g_().getRotationAngle, pLt = L6e.computeTransform, gLt = L6e.transformInsideText, mLt = YW().styleOne, yLt = V0().resizeText, _Lt = $E(), KW = SW(), Rl = i1();
+ jD.plot = function(e, t, r, n) {
+ var i = e._fullLayout, a = i._sunburstlayer, o, s, l = !r, u = !i.uniformtext.mode && Rl.hasTransition(r);
+ if (dLt("sunburst", i), o = a.selectAll("g.trace.sunburst").data(t, function(f) {
+ return f[0].trace.uid;
+ }), o.enter().append("g").classed("trace", true).classed("sunburst", true).attr("stroke-linejoin", "round"), o.order(), u) {
+ n && (s = n());
+ var c = QE.transition().duration(r.duration).ease(r.easing).each("end", function() {
+ s && s();
+ }).each("interrupt", function() {
+ s && s();
+ });
+ c.each(function() {
+ a.selectAll("g.trace").each(function(f) {
+ E6e(e, f, this, r);
+ });
+ });
+ } else o.each(function(f) {
+ E6e(e, f, this, r);
+ }), i.uniformtext.mode && yLt(e, i._sunburstlayer.selectAll(".trace"), "sunburst");
+ l && o.exit().remove();
+ };
+ function E6e(e, t, r, n) {
+ var i = e._context.staticPlot, a = e._fullLayout, o = !a.uniformtext.mode && Rl.hasTransition(n), s = QE.select(r), l = s.selectAll("g.slice"), u = t[0], c = u.trace, f = u.hierarchy, h = Rl.findEntryWithLevel(f, c.level), d = Rl.getMaxDepth(c), v = a._size, _ = c.domain, b = v.w * (_.x[1] - _.x[0]), p = v.h * (_.y[1] - _.y[0]), k = 0.5 * Math.min(b, p), E = u.cx = v.l + v.w * (_.x[1] + _.x[0]) / 2, T = u.cy = v.t + v.h * (1 - _.y[0]) - p / 2;
+ if (!h) return l.remove();
+ var L = null, x = {};
+ o && l.each(function(ge) {
+ x[Rl.getPtId(ge)] = { rpx0: ge.rpx0, rpx1: ge.rpx1, x0: ge.x0, x1: ge.x1, transform: ge.transform }, !L && Rl.isEntry(ge) && (L = ge);
+ });
+ var C = xLt(h).descendants(), M = h.height + 1, g = 0, P = d;
+ u.hasMultipleRoots && Rl.isHierarchyRoot(h) && (C = C.slice(1), M -= 1, g = 1, P += 1), C = C.filter(function(ge) {
+ return ge.y1 <= P;
+ });
+ var A = vLt(c.rotation);
+ A && C.forEach(function(ge) {
+ ge.x0 += A, ge.x1 += A;
+ });
+ var z = Math.min(M, d), O = function(ge) {
+ return (ge - g) / z * k;
+ }, U = function(ge, ie) {
+ return [ge * Math.cos(ie), -ge * Math.sin(ie)];
+ }, G = function(ge) {
+ return Av.pathAnnulus(ge.rpx0, ge.rpx1, ge.x0, ge.x1, E, T);
+ }, Z = function(ge) {
+ return E + k6e(ge)[0] * (ge.transform.rCenter || 0) + (ge.transform.x || 0);
+ }, j = function(ge) {
+ return T + k6e(ge)[1] * (ge.transform.rCenter || 0) + (ge.transform.y || 0);
+ };
+ l = l.data(C, Rl.getPtId), l.enter().append("g").classed("slice", true), o ? l.exit().transition().each(function() {
+ var ge = QE.select(this), ie = ge.select("path.surface");
+ ie.transition().attrTween("d", function(Ee) {
+ var Ae = oe(Ee);
+ return function(Be) {
+ return G(Ae(Be));
+ };
+ });
+ var Se = ge.select("g.slicetext");
+ Se.attr("opacity", 0);
+ }).remove() : l.exit().remove(), l.order();
+ var N = null;
+ if (o && L) {
+ var H = Rl.getPtId(L);
+ l.each(function(ge) {
+ N === null && Rl.getPtId(ge) === H && (N = ge.x1);
+ });
+ }
+ var re = l;
+ o && (re = re.transition().each("end", function() {
+ var ge = QE.select(this);
+ Rl.setSliceCursor(ge, e, { hideOnRoot: true, hideOnLeaves: true, isTransitioning: false });
+ })), re.each(function(ge) {
+ var ie = QE.select(this), Se = Av.ensureSingle(ie, "path", "surface", function(De) {
+ De.style("pointer-events", i ? "none" : "all");
+ });
+ ge.rpx0 = O(ge.y0), ge.rpx1 = O(ge.y1), ge.xmid = (ge.x0 + ge.x1) / 2, ge.pxmid = U(ge.rpx1, ge.xmid), ge.midangle = -(ge.xmid - Math.PI / 2), ge.startangle = -(ge.x0 - Math.PI / 2), ge.stopangle = -(ge.x1 - Math.PI / 2), ge.halfangle = 0.5 * Math.min(Av.angleDelta(ge.x0, ge.x1) || Math.PI, Math.PI), ge.ring = 1 - ge.rpx0 / ge.rpx1, ge.rInscribed = bLt(ge), o ? Se.transition().attrTween("d", function(De) {
+ var ce = _e(De);
+ return function(je) {
+ return G(ce(je));
+ };
+ }) : Se.attr("d", G), ie.call(_Lt, h, e, t, { eventDataKeys: KW.eventDataKeys, transitionTime: KW.CLICK_TRANSITION_TIME, transitionEasing: KW.CLICK_TRANSITION_EASING }).call(Rl.setSliceCursor, e, { hideOnRoot: true, hideOnLeaves: true, isTransitioning: e._transitioning }), Se.call(mLt, ge, c, e);
+ var Ee = Av.ensureSingle(ie, "g", "slicetext"), Ae = Av.ensureSingle(Ee, "text", "", function(De) {
+ De.attr("data-notex", 1);
+ }), Be = Av.ensureUniformFontSize(e, Rl.determineTextFont(c, ge, a.font));
+ Ae.text(jD.formatSliceLabel(ge, h, c, t, a)).classed("slicetext", true).attr("text-anchor", "middle").call(S6e.font, Be).call(hLt.convertToTspans, e);
+ var Pe = S6e.bBox(Ae.node());
+ ge.transform = gLt(Pe, ge, u), ge.transform.targetX = Z(ge), ge.transform.targetY = j(ge);
+ var me = function(De, ce) {
+ var je = De.transform;
+ return pLt(je, ce), je.fontSize = Be.size, M6e(c.type, je, a), Av.getTextTransform(je);
+ };
+ o ? Ae.transition().attrTween("transform", function(De) {
+ var ce = Ce(De);
+ return function(je) {
+ return me(ce(je), Pe);
+ };
+ }) : Ae.attr("transform", me(ge, Pe));
+ });
+ function oe(ge) {
+ var ie = Rl.getPtId(ge), Se = x[ie], Ee = x[Rl.getPtId(h)], Ae;
+ if (Ee) {
+ var Be = (ge.x1 > Ee.x1 ? 2 * Math.PI : 0) + A;
+ Ae = ge.rpx1 < Ee.rpx1 ? { x0: ge.x0, x1: ge.x1, rpx0: 0, rpx1: 0 } : { x0: Be, x1: Be, rpx0: ge.rpx0, rpx1: ge.rpx1 };
+ } else {
+ var Pe, me = Rl.getPtId(ge.parent);
+ l.each(function(pt) {
+ if (Rl.getPtId(pt) === me) return Pe = pt;
+ });
+ var De = Pe.children, ce;
+ De.forEach(function(pt, Vt) {
+ if (Rl.getPtId(pt) === ie) return ce = Vt;
+ });
+ var je = De.length, lt = Jg(Pe.x0, Pe.x1);
+ Ae = { rpx0: k, rpx1: k, x0: lt(ce / je), x1: lt((ce + 1) / je) };
+ }
+ return Jg(Se, Ae);
+ }
+ function _e(ge) {
+ var ie = x[Rl.getPtId(ge)], Se, Ee = { x0: ge.x0, x1: ge.x1, rpx0: ge.rpx0, rpx1: ge.rpx1 };
+ if (ie) Se = ie;
+ else if (L) if (ge.parent) if (N) {
+ var Ae = (ge.x1 > N ? 2 * Math.PI : 0) + A;
+ Se = { x0: Ae, x1: Ae };
+ } else Se = { rpx0: k, rpx1: k }, Av.extendFlat(Se, Le(ge));
+ else Se = { rpx0: 0, rpx1: 0 };
+ else Se = { x0: A, x1: A };
+ return Jg(Se, Ee);
+ }
+ function Ce(ge) {
+ var ie = x[Rl.getPtId(ge)], Se, Ee = ge.transform;
+ if (ie) Se = ie;
+ else if (Se = { rpx1: ge.rpx1, transform: { textPosAngle: Ee.textPosAngle, scale: 0, rotate: Ee.rotate, rCenter: Ee.rCenter, x: Ee.x, y: Ee.y } }, L) if (ge.parent) if (N) {
+ var Ae = ge.x1 > N ? 2 * Math.PI : 0;
+ Se.x0 = Se.x1 = Ae;
+ } else Av.extendFlat(Se, Le(ge));
+ else Se.x0 = Se.x1 = A;
+ else Se.x0 = Se.x1 = A;
+ var Be = Jg(Se.transform.textPosAngle, ge.transform.textPosAngle), Pe = Jg(Se.rpx1, ge.rpx1), me = Jg(Se.x0, ge.x0), De = Jg(Se.x1, ge.x1), ce = Jg(Se.transform.scale, Ee.scale), je = Jg(Se.transform.rotate, Ee.rotate), lt = Ee.rCenter === 0 ? 3 : Se.transform.rCenter === 0 ? 1 / 3 : 1, pt = Jg(Se.transform.rCenter, Ee.rCenter), Vt = function(ot) {
+ return pt(Math.pow(ot, lt));
+ };
+ return function(ot) {
+ var ut = Pe(ot);
+ me(ot);
+ De(ot);
+ var $t = Vt(ot), Tr = Be(ot), fr = { rpx1: ut, transform: { textPosAngle: Tr, rCenter: $t, x: Ee.x, y: Ee.y } };
+ return M6e(c.type, Ee, a), { transform: { targetX: Z(fr), targetY: j(fr), scale: ce(ot), rotate: je(ot), rCenter: $t } };
+ };
+ }
+ function Le(ge) {
+ var ie = ge.parent, Se = x[Rl.getPtId(ie)], Ee = {};
+ if (Se) {
+ var Ae = ie.children, Be = Ae.indexOf(ge), Pe = Ae.length, me = Jg(Se.x0, Se.x1);
+ Ee.x0 = me(Be / Pe), Ee.x1 = me(Be / Pe);
+ } else Ee.x0 = Ee.x1 = 0;
+ return Ee;
+ }
+ }
+ function xLt(e) {
+ return fLt.partition().size([2 * Math.PI, e.height + 1])(e);
+ }
+ jD.formatSliceLabel = function(e, t, r, n, i) {
+ var a = r.texttemplate, o = r.textinfo;
+ if (!a && (!o || o === "none")) return "";
+ var s = i.separators, l = n[0], u = e.data.data, c = l.hierarchy, f = Rl.isHierarchyRoot(e), h = Rl.getParent(c, e), d = Rl.getValue(e);
+ if (!a) {
+ var v = o.split("+"), _ = function(g) {
+ return v.indexOf(g) !== -1;
+ }, b = [], p;
+ if (_("label") && u.label && b.push(u.label), u.hasOwnProperty("v") && _("value") && b.push(Rl.formatValue(u.v, s)), !f) {
+ _("current path") && b.push(Rl.getPath(e.data));
+ var k = 0;
+ _("percent parent") && k++, _("percent entry") && k++, _("percent root") && k++;
+ var E = k > 1;
+ if (k) {
+ var T, L = function(g) {
+ p = Rl.formatPercent(T, s), E && (p += " of " + g), b.push(p);
+ };
+ _("percent parent") && !f && (T = d / Rl.getValue(h), L("parent")), _("percent entry") && (T = d / Rl.getValue(t), L("entry")), _("percent root") && (T = d / Rl.getValue(c), L("root"));
+ }
+ }
+ return _("text") && (p = Av.castOption(r, u.i, "text"), Av.isValidTextValue(p) && b.push(p)), b.join(" ");
+ }
+ var x = Av.castOption(r, u.i, "texttemplate");
+ if (!x) return "";
+ var C = {};
+ u.label && (C.label = u.label), u.hasOwnProperty("v") && (C.value = u.v, C.valueLabel = Rl.formatValue(u.v, s)), C.currentPath = Rl.getPath(e.data), f || (C.percentParent = d / Rl.getValue(h), C.percentParentLabel = Rl.formatPercent(C.percentParent, s), C.parent = Rl.getPtLabel(h)), C.percentEntry = d / Rl.getValue(t), C.percentEntryLabel = Rl.formatPercent(C.percentEntry, s), C.entry = Rl.getPtLabel(t), C.percentRoot = d / Rl.getValue(c), C.percentRootLabel = Rl.formatPercent(C.percentRoot, s), C.root = Rl.getPtLabel(c), u.hasOwnProperty("color") && (C.color = u.color);
+ var M = Av.castOption(r, u.i, "text");
+ return (Av.isValidTextValue(M) || M === "") && (C.text = M), C.customdata = Av.castOption(r, u.i, "customdata"), Av.texttemplateString({ data: [C, r._meta], fallback: r.texttemplatefallback, labels: C, locale: i._d3locale, template: x });
+ };
+ function bLt(e) {
+ return e.rpx0 === 0 && Av.isFullCircle([e.x0, e.x1]) ? 1 : Math.max(0, Math.min(1 / (1 + 1 / Math.sin(e.halfangle)), e.ring / 2));
+ }
+ function k6e(e) {
+ return wLt(e.rpx1, e.transform.textPosAngle);
+ }
+ function wLt(e, t) {
+ return [e * Math.sin(t), -e * Math.cos(t)];
+ }
+ });
+ var I6e = ye((h0r, P6e) => {
+ P6e.exports = { moduleType: "trace", name: "sunburst", basePlotModule: jke(), categories: [], animatable: true, attributes: qE(), layoutAttributes: MW(), supplyDefaults: eCe(), supplyLayoutDefaults: rCe(), calc: UE().calc, crossTraceCalc: UE().crossTraceCalc, plot: WD().plot, style: YW().style, colorbar: $d(), meta: {} };
+ });
+ var D6e = ye((d0r, R6e) => {
+ R6e.exports = I6e();
+ });
+ var z6e = ye((BA) => {
+ var F6e = Mc();
+ BA.name = "treemap";
+ BA.plot = function(e, t, r, n) {
+ F6e.plotBasePlot(BA.name, e, t, r, n);
+ };
+ BA.clean = function(e, t, r, n) {
+ F6e.cleanBasePlot(BA.name, e, t, r, n);
+ };
+ });
+ var W2 = ye((p0r, O6e) => {
+ O6e.exports = { CLICK_TRANSITION_TIME: 750, CLICK_TRANSITION_EASING: "poly", eventDataKeys: ["currentPath", "root", "entry", "percentRoot", "percentEntry", "percentParent"], gapWithPathbar: 1 };
+ });
+ var XD = ye((g0r, N6e) => {
+ var { hovertemplateAttrs: TLt, texttemplateAttrs: ALt, templatefallbackAttrs: q6e } = Ll(), SLt = Tu(), MLt = Cc().attributes, X2 = F2(), tg = qE(), B6e = W2(), JW = Ao().extendFlat, ELt = Pd().pattern;
+ N6e.exports = { labels: tg.labels, parents: tg.parents, values: tg.values, branchvalues: tg.branchvalues, count: tg.count, level: tg.level, maxdepth: tg.maxdepth, tiling: { packing: { valType: "enumerated", values: ["squarify", "binary", "dice", "slice", "slice-dice", "dice-slice"], dflt: "squarify", editType: "plot" }, squarifyratio: { valType: "number", min: 1, dflt: 1, editType: "plot" }, flip: { valType: "flaglist", flags: ["x", "y"], dflt: "", editType: "plot" }, pad: { valType: "number", min: 0, dflt: 3, editType: "plot" }, editType: "calc" }, marker: JW({ pad: { t: { valType: "number", min: 0, editType: "plot" }, l: { valType: "number", min: 0, editType: "plot" }, r: { valType: "number", min: 0, editType: "plot" }, b: { valType: "number", min: 0, editType: "plot" }, editType: "calc" }, colors: tg.marker.colors, pattern: ELt, depthfade: { valType: "enumerated", values: [true, false, "reversed"], editType: "style" }, line: tg.marker.line, cornerradius: { valType: "number", min: 0, dflt: 0, editType: "plot" }, editType: "calc" }, SLt("marker", { colorAttr: "colors", anim: false })), pathbar: { visible: { valType: "boolean", dflt: true, editType: "plot" }, side: { valType: "enumerated", values: ["top", "bottom"], dflt: "top", editType: "plot" }, edgeshape: { valType: "enumerated", values: [">", "<", "|", "/", "\\"], dflt: ">", editType: "plot" }, thickness: { valType: "number", min: 12, editType: "plot" }, textfont: JW({}, X2.textfont, {}), editType: "calc" }, text: X2.text, textinfo: tg.textinfo, texttemplate: ALt({ editType: "plot" }, { keys: B6e.eventDataKeys.concat(["label", "value"]) }), texttemplatefallback: q6e({ editType: "plot" }), hovertext: X2.hovertext, hoverinfo: tg.hoverinfo, hovertemplate: TLt({}, { keys: B6e.eventDataKeys }), hovertemplatefallback: q6e(), textfont: X2.textfont, insidetextfont: X2.insidetextfont, outsidetextfont: JW({}, X2.outsidetextfont, {}), textposition: { valType: "enumerated", values: ["top left", "top center", "top right", "middle left", "middle center", "middle right", "bottom left", "bottom center", "bottom right"], dflt: "top left", editType: "plot" }, sort: X2.sort, root: tg.root, domain: MLt({ name: "treemap", trace: true, editType: "calc" }) };
+ });
+ var $W = ye((m0r, U6e) => {
+ U6e.exports = { treemapcolorway: { valType: "colorlist", editType: "calc" }, extendtreemapcolors: { valType: "boolean", dflt: true, editType: "calc" } };
+ });
+ var j6e = ye((y0r, H6e) => {
+ var V6e = Dr(), kLt = XD(), CLt = ka(), LLt = Cc().defaults, PLt = i0().handleText, ILt = A_().TEXTPAD, RLt = z2().handleMarkerDefaults, G6e = tc(), DLt = G6e.hasColorscale, FLt = G6e.handleDefaults;
+ H6e.exports = function(t, r, n, i) {
+ function a(b, p) {
+ return V6e.coerce(t, r, kLt, b, p);
+ }
+ var o = a("labels"), s = a("parents");
+ if (!o || !o.length || !s || !s.length) {
+ r.visible = false;
+ return;
+ }
+ var l = a("values");
+ l && l.length ? a("branchvalues") : a("count"), a("level"), a("maxdepth");
+ var u = a("tiling.packing");
+ u === "squarify" && a("tiling.squarifyratio"), a("tiling.flip"), a("tiling.pad");
+ var c = a("text");
+ a("texttemplate"), a("texttemplatefallback"), r.texttemplate || a("textinfo", V6e.isArrayOrTypedArray(c) ? "text+label" : "label"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback");
+ var f = a("pathbar.visible"), h = "auto";
+ PLt(t, r, i, a, h, { hasPathbar: f, moduleHasSelected: false, moduleHasUnselected: false, moduleHasConstrain: false, moduleHasCliponaxis: false, moduleHasTextangle: false, moduleHasInsideanchor: false }), a("textposition");
+ var d = r.textposition.indexOf("bottom") !== -1;
+ RLt(t, r, i, a);
+ var v = r._hasColorscale = DLt(t, "marker", "colors") || (t.marker || {}).coloraxis;
+ v ? FLt(t, r, i, a, { prefix: "marker.", cLetter: "c" }) : a("marker.depthfade", !(r.marker.colors || []).length);
+ var _ = r.textfont.size * 2;
+ a("marker.pad.t", d ? _ / 4 : _), a("marker.pad.l", _ / 4), a("marker.pad.r", _ / 4), a("marker.pad.b", d ? _ : _ / 4), a("marker.cornerradius"), r._hovered = { marker: { line: { width: 2, color: CLt.contrast(i.paper_bgcolor) } } }, f && (a("pathbar.thickness", r.pathbar.textfont.size + 2 * ILt), a("pathbar.side"), a("pathbar.edgeshape")), a("sort"), a("root.color"), LLt(r, i, a), r._length = null;
+ };
+ });
+ var X6e = ye((_0r, W6e) => {
+ var zLt = Dr(), OLt = $W();
+ W6e.exports = function(t, r) {
+ function n(i, a) {
+ return zLt.coerce(t, r, OLt, i, a);
+ }
+ n("treemapcolorway", r.colorway), n("extendtreemapcolors");
+ };
+ });
+ var eX = ye((QW) => {
+ var Z6e = UE();
+ QW.calc = function(e, t) {
+ return Z6e.calc(e, t);
+ };
+ QW.crossTraceCalc = function(e) {
+ return Z6e._runCrossTraceCalc("treemap", e);
+ };
+ });
+ var tX = ye((b0r, Y6e) => {
+ Y6e.exports = function e(t, r, n) {
+ var i;
+ n.swapXY && (i = t.x0, t.x0 = t.y0, t.y0 = i, i = t.x1, t.x1 = t.y1, t.y1 = i), n.flipX && (i = t.x0, t.x0 = r[0] - t.x1, t.x1 = r[0] - i), n.flipY && (i = t.y0, t.y0 = r[1] - t.y1, t.y1 = r[1] - i);
+ var a = t.children;
+ if (a) for (var o = 0; o < a.length; o++) e(a[o], r, n);
+ };
+ });
+ var rX = ye((w0r, K6e) => {
+ var NA = BE(), qLt = tX();
+ K6e.exports = function(t, r, n) {
+ var i = n.flipX, a = n.flipY, o = n.packing === "dice-slice", s = n.pad[a ? "bottom" : "top"], l = n.pad[i ? "right" : "left"], u = n.pad[i ? "left" : "right"], c = n.pad[a ? "top" : "bottom"], f;
+ o && (f = l, l = s, s = f, f = u, u = c, c = f);
+ var h = NA.treemap().tile(BLt(n.packing, n.squarifyratio)).paddingInner(n.pad.inner).paddingLeft(l).paddingRight(u).paddingTop(s).paddingBottom(c).size(o ? [r[1], r[0]] : r)(t);
+ return (o || i || a) && qLt(h, r, { swapXY: o, flipX: i, flipY: a }), h;
+ };
+ function BLt(e, t) {
+ switch (e) {
+ case "squarify":
+ return NA.treemapSquarify.ratio(t);
+ case "binary":
+ return NA.treemapBinary;
+ case "dice":
+ return NA.treemapDice;
+ case "slice":
+ return NA.treemapSlice;
+ default:
+ return NA.treemapSliceDice;
+ }
+ }
+ });
+ var ZD = ye((T0r, eLe) => {
+ var J6e = Oa(), UA = ka(), $6e = Dr(), iX = i1(), NLt = bv().resizeText, ULt = HD();
+ function VLt(e) {
+ var t = e._fullLayout._treemaplayer.selectAll(".trace");
+ NLt(e, t, "treemap"), t.each(function(r) {
+ var n = J6e.select(this), i = r[0], a = i.trace;
+ n.style("opacity", a.opacity), n.selectAll("path.surface").each(function(o) {
+ J6e.select(this).call(Q6e, o, a, e, { hovered: false });
+ });
+ });
+ }
+ function Q6e(e, t, r, n, i) {
+ var a = (i || {}).hovered, o = t.data.data, s = o.i, l, u, c = o.color, f = iX.isHierarchyRoot(t), h = 1;
+ if (a) l = r._hovered.marker.line.color, u = r._hovered.marker.line.width;
+ else if (f && c === r.root.color) h = 100, l = "rgba(0,0,0,0)", u = 0;
+ else if (l = $6e.castOption(r, s, "marker.line.color") || UA.defaultLine, u = $6e.castOption(r, s, "marker.line.width") || 0, !r._hasColorscale && !t.onPathbar) {
+ var d = r.marker.depthfade;
+ if (d) {
+ var v = UA.combine(UA.addOpacity(r._backgroundColor, 0.75), c), _;
+ if (d === true) {
+ var b = iX.getMaxDepth(r);
+ isFinite(b) ? iX.isLeaf(t) ? _ = 0 : _ = r._maxVisibleLayers - (t.data.depth - r._entryDepth) : _ = t.data.height + 1;
+ } else _ = t.data.depth - r._entryDepth, r._atRootLevel || _++;
+ if (_ > 0) for (var p = 0; p < _; p++) {
+ var k = 0.5 * p / _;
+ c = UA.combine(UA.addOpacity(v, k), c);
+ }
+ }
+ }
+ e.call(ULt, t, r, n, c).style("stroke-width", u).call(UA.stroke, l).style("opacity", h);
+ }
+ eLe.exports = { style: VLt, styleOne: Q6e };
+ });
+ var aLe = ye((A0r, nLe) => {
+ var tLe = Oa(), YD = Dr(), rLe = So(), GLt = Zl(), HLt = rX(), iLe = ZD().styleOne, nX = W2(), VA = i1(), jLt = $E(), aX = true;
+ nLe.exports = function(t, r, n, i, a) {
+ var o = a.barDifY, s = a.width, l = a.height, u = a.viewX, c = a.viewY, f = a.pathSlice, h = a.toMoveInsideSlice, d = a.strTransform, v = a.hasTransition, _ = a.handleSlicesExit, b = a.makeUpdateSliceInterpolator, p = a.makeUpdateTextInterpolator, k = {}, E = t._context.staticPlot, T = t._fullLayout, L = r[0], x = L.trace, C = L.hierarchy, M = s / x._entryDepth, g = VA.listPath(n.data, "id"), P = HLt(C.copy(), [s, l], { packing: "dice", pad: { inner: 0, top: 0, left: 0, right: 0, bottom: 0 } }).descendants();
+ P = P.filter(function(z) {
+ var O = g.indexOf(z.data.id);
+ return O === -1 ? false : (z.x0 = M * O, z.x1 = M * (O + 1), z.y0 = o, z.y1 = o + l, z.onPathbar = true, true);
+ }), P.reverse(), i = i.data(P, VA.getPtId), i.enter().append("g").classed("pathbar", true), _(i, aX, k, [s, l], f), i.order();
+ var A = i;
+ v && (A = A.transition().each("end", function() {
+ var z = tLe.select(this);
+ VA.setSliceCursor(z, t, { hideOnRoot: false, hideOnLeaves: false, isTransitioning: false });
+ })), A.each(function(z) {
+ z._x0 = u(z.x0), z._x1 = u(z.x1), z._y0 = c(z.y0), z._y1 = c(z.y1), z._hoverX = u(z.x1 - Math.min(s, l) / 2), z._hoverY = c(z.y1 - l / 2);
+ var O = tLe.select(this), U = YD.ensureSingle(O, "path", "surface", function(N) {
+ N.style("pointer-events", E ? "none" : "all");
+ });
+ v ? U.transition().attrTween("d", function(N) {
+ var H = b(N, aX, k, [s, l]);
+ return function(re) {
+ return f(H(re));
+ };
+ }) : U.attr("d", f), O.call(jLt, n, t, r, { styleOne: iLe, eventDataKeys: nX.eventDataKeys, transitionTime: nX.CLICK_TRANSITION_TIME, transitionEasing: nX.CLICK_TRANSITION_EASING }).call(VA.setSliceCursor, t, { hideOnRoot: false, hideOnLeaves: false, isTransitioning: t._transitioning }), U.call(iLe, z, x, t, { hovered: false }), z._text = (VA.getPtLabel(z) || "").split(" ").join(" ") || "";
+ var G = YD.ensureSingle(O, "g", "slicetext"), Z = YD.ensureSingle(G, "text", "", function(N) {
+ N.attr("data-notex", 1);
+ }), j = YD.ensureUniformFontSize(t, VA.determineTextFont(x, z, T.font, { onPathbar: true }));
+ Z.text(z._text || " ").classed("slicetext", true).attr("text-anchor", "start").call(rLe.font, j).call(GLt.convertToTspans, t), z.textBB = rLe.bBox(Z.node()), z.transform = h(z, { fontSize: j.size, onPathbar: true }), z.transform.fontSize = j.size, v ? Z.transition().attrTween("transform", function(N) {
+ var H = p(N, aX, k, [s, l]);
+ return function(re) {
+ return d(H(re));
+ };
+ }) : Z.attr("transform", d(z));
+ });
+ };
+ });
+ var uLe = ye((S0r, lLe) => {
+ var oLe = Oa(), oX = (H2(), pb(G2)).interpolate, ix = i1(), ek = Dr(), sLe = A_().TEXTPAD, WLt = d2(), XLt = WLt.toMoveInsideBar, ZLt = bv(), sX = ZLt.recordMinTextSize, YLt = W2(), KLt = aLe();
+ function Z2(e) {
+ return ix.isHierarchyRoot(e) ? "" : ix.getPtId(e);
+ }
+ lLe.exports = function(t, r, n, i, a) {
+ var o = t._fullLayout, s = r[0], l = s.trace, u = l.type, c = u === "icicle", f = s.hierarchy, h = ix.findEntryWithLevel(f, l.level), d = oLe.select(n), v = d.selectAll("g.pathbar"), _ = d.selectAll("g.slice");
+ if (!h) {
+ v.remove(), _.remove();
+ return;
+ }
+ var b = ix.isHierarchyRoot(h), p = !o.uniformtext.mode && ix.hasTransition(i), k = ix.getMaxDepth(l), E = function($e) {
+ return $e.data.depth - h.data.depth < k;
+ }, T = o._size, L = l.domain, x = T.w * (L.x[1] - L.x[0]), C = T.h * (L.y[1] - L.y[0]), M = x, g = l.pathbar.thickness, P = l.marker.line.width + YLt.gapWithPathbar, A = l.pathbar.visible ? l.pathbar.side.indexOf("bottom") > -1 ? C + P : -(g + P) : 0, z = { x0: M, x1: M, y0: A, y1: A + g }, O = function($e, St, Qt) {
+ var Gt = l.tiling.pad, _t = function(lr) {
+ return lr - Gt <= St.x0;
+ }, It = function(lr) {
+ return lr + Gt >= St.x1;
+ }, mt = function(lr) {
+ return lr - Gt <= St.y0;
+ }, er = function(lr) {
+ return lr + Gt >= St.y1;
+ };
+ return $e.x0 === St.x0 && $e.x1 === St.x1 && $e.y0 === St.y0 && $e.y1 === St.y1 ? { x0: $e.x0, x1: $e.x1, y0: $e.y0, y1: $e.y1 } : { x0: _t($e.x0 - Gt) ? 0 : It($e.x0 - Gt) ? Qt[0] : $e.x0, x1: _t($e.x1 + Gt) ? 0 : It($e.x1 + Gt) ? Qt[0] : $e.x1, y0: mt($e.y0 - Gt) ? 0 : er($e.y0 - Gt) ? Qt[1] : $e.y0, y1: mt($e.y1 + Gt) ? 0 : er($e.y1 + Gt) ? Qt[1] : $e.y1 };
+ }, U = null, G = {}, Z = {}, j = null, N = function($e, St) {
+ return St ? G[Z2($e)] : Z[Z2($e)];
+ }, H = function($e, St, Qt, Gt) {
+ if (St) return G[Z2(f)] || z;
+ var _t = Z[l.level] || Qt;
+ return E($e) ? O($e, _t, Gt) : {};
+ };
+ s.hasMultipleRoots && b && k++, l._maxDepth = k, l._backgroundColor = o.paper_bgcolor, l._entryDepth = h.data.depth, l._atRootLevel = b;
+ var re = -x / 2 + T.l + T.w * (L.x[1] + L.x[0]) / 2, oe = -C / 2 + T.t + T.h * (1 - (L.y[1] + L.y[0]) / 2), _e = function($e) {
+ return re + $e;
+ }, Ce = function($e) {
+ return oe + $e;
+ }, Le = Ce(0), ge = _e(0), ie = function($e) {
+ return ge + $e;
+ }, Se = function($e) {
+ return Le + $e;
+ };
+ function Ee($e, St) {
+ return $e + "," + St;
+ }
+ var Ae = ie(0), Be = function($e) {
+ $e.x = Math.max(Ae, $e.x);
+ }, Pe = l.pathbar.edgeshape, me = function($e) {
+ var St = ie(Math.max(Math.min($e.x0, $e.x0), 0)), Qt = ie(Math.min(Math.max($e.x1, $e.x1), M)), Gt = Se($e.y0), _t = Se($e.y1), It = g / 2, mt = {}, er = {};
+ mt.x = St, er.x = Qt, mt.y = er.y = (Gt + _t) / 2;
+ var lr = { x: St, y: Gt }, wr = { x: Qt, y: Gt }, Lr = { x: Qt, y: _t }, ti = { x: St, y: _t };
+ return Pe === ">" ? (lr.x -= It, wr.x -= It, Lr.x -= It, ti.x -= It) : Pe === "/" ? (Lr.x -= It, ti.x -= It, mt.x -= It / 2, er.x -= It / 2) : Pe === "\\" ? (lr.x -= It, wr.x -= It, mt.x -= It / 2, er.x -= It / 2) : Pe === "<" && (mt.x -= It, er.x -= It), Be(lr), Be(ti), Be(mt), Be(wr), Be(Lr), Be(er), "M" + Ee(lr.x, lr.y) + "L" + Ee(wr.x, wr.y) + "L" + Ee(er.x, er.y) + "L" + Ee(Lr.x, Lr.y) + "L" + Ee(ti.x, ti.y) + "L" + Ee(mt.x, mt.y) + "Z";
+ }, De = l[c ? "tiling" : "marker"].pad, ce = function($e) {
+ return l.textposition.indexOf($e) !== -1;
+ }, je = ce("top"), lt = ce("left"), pt = ce("right"), Vt = ce("bottom"), ot = function($e) {
+ var St = _e($e.x0), Qt = _e($e.x1), Gt = Ce($e.y0), _t = Ce($e.y1), It = Qt - St, mt = _t - Gt;
+ if (!It || !mt) return "";
+ var er = l.marker.cornerradius || 0, lr = Math.min(er, It / 2, mt / 2);
+ lr && $e.data && $e.data.data && $e.data.data.label && (je && (lr = Math.min(lr, De.t)), lt && (lr = Math.min(lr, De.l)), pt && (lr = Math.min(lr, De.r)), Vt && (lr = Math.min(lr, De.b)));
+ var wr = function(Lr, ti) {
+ return lr ? "a" + Ee(lr, lr) + " 0 0 1 " + Ee(Lr, ti) : "";
+ };
+ return "M" + Ee(St, Gt + lr) + wr(lr, -lr) + "L" + Ee(Qt - lr, Gt) + wr(lr, lr) + "L" + Ee(Qt, _t - lr) + wr(-lr, lr) + "L" + Ee(St + lr, _t) + wr(-lr, -lr) + "Z";
+ }, ut = function($e, St) {
+ var Qt = $e.x0, Gt = $e.x1, _t = $e.y0, It = $e.y1, mt = $e.textBB, er = je || St.isHeader && !Vt, lr = er ? "start" : Vt ? "end" : "middle", wr = ce("right"), Lr = ce("left") || St.onPathbar, ti = Lr ? -1 : wr ? 1 : 0;
+ if (St.isHeader) {
+ if (Qt += (c ? De : De.l) - sLe, Gt -= (c ? De : De.r) - sLe, Qt >= Gt) {
+ var Br = (Qt + Gt) / 2;
+ Qt = Br, Gt = Br;
+ }
+ var Vr;
+ Vt ? (Vr = It - (c ? De : De.b), _t < Vr && Vr < It && (_t = Vr)) : (Vr = _t + (c ? De : De.t), _t < Vr && Vr < It && (It = Vr));
+ }
+ var dt = XLt(Qt, Gt, _t, It, mt, { isHorizontal: false, constrained: true, angle: 0, anchor: lr, leftToRight: ti });
+ return dt.fontSize = St.fontSize, dt.targetX = _e(dt.targetX), dt.targetY = Ce(dt.targetY), isNaN(dt.targetX) || isNaN(dt.targetY) ? {} : (Qt !== Gt && _t !== It && sX(l.type, dt, o), { scale: dt.scale, rotate: dt.rotate, textX: dt.textX, textY: dt.textY, anchorX: dt.anchorX, anchorY: dt.anchorY, targetX: dt.targetX, targetY: dt.targetY });
+ }, Wt = function($e, St) {
+ for (var Qt, Gt = 0, _t = $e; !Qt && Gt < k; ) Gt++, _t = _t.parent, _t ? Qt = N(_t, St) : Gt = k;
+ return Qt || {};
+ }, Nt = function($e, St, Qt, Gt) {
+ var _t = N($e, St), It;
+ if (St) It = z;
+ else {
+ var mt = N(h, St);
+ mt ? It = O($e, mt, Gt) : It = {};
+ }
+ return oX(_t, It);
+ }, $t = function($e, St, Qt, Gt, _t) {
+ var It = N($e, St), mt;
+ if (It) mt = It;
+ else if (St) mt = z;
+ else if (U) if ($e.parent) {
+ var er = j || Qt;
+ er && !St ? mt = O($e, er, Gt) : (mt = {}, ek.extendFlat(mt, Wt($e, St)));
+ } else mt = ek.extendFlat({}, $e), c && (_t.orientation === "h" ? _t.flipX ? mt.x0 = $e.x1 : mt.x1 = 0 : _t.flipY ? mt.y0 = $e.y1 : mt.y1 = 0);
+ else mt = {};
+ return oX(mt, { x0: $e.x0, x1: $e.x1, y0: $e.y0, y1: $e.y1 });
+ }, sr = function($e, St, Qt, Gt) {
+ var _t = N($e, St), It = {}, mt = H($e, St, Qt, Gt);
+ ek.extendFlat(It, { transform: ut({ x0: mt.x0, x1: mt.x1, y0: mt.y0, y1: mt.y1, textBB: $e.textBB, _text: $e._text }, { isHeader: ix.isHeader($e, l) }) }), _t ? It = _t : $e.parent && ek.extendFlat(It, Wt($e, St));
+ var er = $e.transform;
+ return $e.x0 !== $e.x1 && $e.y0 !== $e.y1 && sX(l.type, er, o), oX(It, { transform: { scale: er.scale, rotate: er.rotate, textX: er.textX, textY: er.textY, anchorX: er.anchorX, anchorY: er.anchorY, targetX: er.targetX, targetY: er.targetY } });
+ }, Tr = function($e, St, Qt, Gt, _t) {
+ var It = Gt[0], mt = Gt[1];
+ p ? $e.exit().transition().each(function() {
+ var er = oLe.select(this), lr = er.select("path.surface");
+ lr.transition().attrTween("d", function(Lr) {
+ var ti = Nt(Lr, St, Qt, [It, mt]);
+ return function(Br) {
+ return _t(ti(Br));
+ };
+ });
+ var wr = er.select("g.slicetext");
+ wr.attr("opacity", 0);
+ }).remove() : $e.exit().remove();
+ }, fr = function($e) {
+ var St = $e.transform;
+ return $e.x0 !== $e.x1 && $e.y0 !== $e.y1 && sX(l.type, St, o), ek.getTextTransform({ textX: St.textX, textY: St.textY, anchorX: St.anchorX, anchorY: St.anchorY, targetX: St.targetX, targetY: St.targetY, scale: St.scale, rotate: St.rotate });
+ };
+ p && (v.each(function($e) {
+ G[Z2($e)] = { x0: $e.x0, x1: $e.x1, y0: $e.y0, y1: $e.y1 }, $e.transform && (G[Z2($e)].transform = { textX: $e.transform.textX, textY: $e.transform.textY, anchorX: $e.transform.anchorX, anchorY: $e.transform.anchorY, targetX: $e.transform.targetX, targetY: $e.transform.targetY, scale: $e.transform.scale, rotate: $e.transform.rotate });
+ }), _.each(function($e) {
+ Z[Z2($e)] = { x0: $e.x0, x1: $e.x1, y0: $e.y0, y1: $e.y1 }, $e.transform && (Z[Z2($e)].transform = { textX: $e.transform.textX, textY: $e.transform.textY, anchorX: $e.transform.anchorX, anchorY: $e.transform.anchorY, targetX: $e.transform.targetX, targetY: $e.transform.targetY, scale: $e.transform.scale, rotate: $e.transform.rotate }), !U && ix.isEntry($e) && (U = $e);
+ })), j = a(t, r, h, _, { width: x, height: C, viewX: _e, viewY: Ce, pathSlice: ot, toMoveInsideSlice: ut, prevEntry: U, makeUpdateSliceInterpolator: $t, makeUpdateTextInterpolator: sr, handleSlicesExit: Tr, hasTransition: p, strTransform: fr }), l.pathbar.visible ? KLt(t, r, h, v, { barDifY: A, width: M, height: g, viewX: ie, viewY: Se, pathSlice: me, toMoveInsideSlice: ut, makeUpdateSliceInterpolator: $t, makeUpdateTextInterpolator: sr, handleSlicesExit: Tr, hasTransition: p, strTransform: fr }) : v.remove();
+ };
+ });
+ var lX = ye((M0r, fLe) => {
+ var JLt = Oa(), $Lt = i1(), QLt = bv(), ePt = QLt.clearMinTextSize, tPt = V0().resizeText, cLe = uLe();
+ fLe.exports = function(t, r, n, i, a) {
+ var o = a.type, s = a.drawDescendants, l = t._fullLayout, u = l["_" + o + "layer"], c, f, h = !n;
+ if (ePt(o, l), c = u.selectAll("g.trace." + o).data(r, function(v) {
+ return v[0].trace.uid;
+ }), c.enter().append("g").classed("trace", true).classed(o, true), c.order(), !l.uniformtext.mode && $Lt.hasTransition(n)) {
+ i && (f = i());
+ var d = JLt.transition().duration(n.duration).ease(n.easing).each("end", function() {
+ f && f();
+ }).each("interrupt", function() {
+ f && f();
+ });
+ d.each(function() {
+ u.selectAll("g.trace").each(function(v) {
+ cLe(t, v, this, n, s);
+ });
+ });
+ } else c.each(function(v) {
+ cLe(t, v, this, n, s);
+ }), l.uniformtext.mode && tPt(t, u.selectAll(".trace"), o);
+ h && c.exit().remove();
+ };
+ });
+ var gLe = ye((E0r, pLe) => {
+ var hLe = Oa(), KD = Dr(), dLe = So(), rPt = Zl(), iPt = rX(), vLe = ZD().styleOne, uX = W2(), nx = i1(), nPt = $E(), aPt = WD().formatSliceLabel, cX = false;
+ pLe.exports = function(t, r, n, i, a) {
+ var o = a.width, s = a.height, l = a.viewX, u = a.viewY, c = a.pathSlice, f = a.toMoveInsideSlice, h = a.strTransform, d = a.hasTransition, v = a.handleSlicesExit, _ = a.makeUpdateSliceInterpolator, b = a.makeUpdateTextInterpolator, p = a.prevEntry, k = {}, E = t._context.staticPlot, T = t._fullLayout, L = r[0], x = L.trace, C = x.textposition.indexOf("left") !== -1, M = x.textposition.indexOf("right") !== -1, g = x.textposition.indexOf("bottom") !== -1, P = !g && !x.marker.pad.t || g && !x.marker.pad.b, A = iPt(n, [o, s], { packing: x.tiling.packing, squarifyratio: x.tiling.squarifyratio, flipX: x.tiling.flip.indexOf("x") > -1, flipY: x.tiling.flip.indexOf("y") > -1, pad: { inner: x.tiling.pad, top: x.marker.pad.t, left: x.marker.pad.l, right: x.marker.pad.r, bottom: x.marker.pad.b } }), z = A.descendants(), O = 1 / 0, U = -1 / 0;
+ z.forEach(function(H) {
+ var re = H.depth;
+ re >= x._maxDepth ? (H.x0 = H.x1 = (H.x0 + H.x1) / 2, H.y0 = H.y1 = (H.y0 + H.y1) / 2) : (O = Math.min(O, re), U = Math.max(U, re));
+ }), i = i.data(z, nx.getPtId), x._maxVisibleLayers = isFinite(U) ? U - O + 1 : 0, i.enter().append("g").classed("slice", true), v(i, cX, k, [o, s], c), i.order();
+ var G = null;
+ if (d && p) {
+ var Z = nx.getPtId(p);
+ i.each(function(H) {
+ G === null && nx.getPtId(H) === Z && (G = { x0: H.x0, x1: H.x1, y0: H.y0, y1: H.y1 });
+ });
+ }
+ var j = function() {
+ return G || { x0: 0, x1: o, y0: 0, y1: s };
+ }, N = i;
+ return d && (N = N.transition().each("end", function() {
+ var H = hLe.select(this);
+ nx.setSliceCursor(H, t, { hideOnRoot: true, hideOnLeaves: false, isTransitioning: false });
+ })), N.each(function(H) {
+ var re = nx.isHeader(H, x);
+ H._x0 = l(H.x0), H._x1 = l(H.x1), H._y0 = u(H.y0), H._y1 = u(H.y1), H._hoverX = l(H.x1 - x.marker.pad.r), H._hoverY = u(g ? H.y1 - x.marker.pad.b / 2 : H.y0 + x.marker.pad.t / 2);
+ var oe = hLe.select(this), _e = KD.ensureSingle(oe, "path", "surface", function(Ee) {
+ Ee.style("pointer-events", E ? "none" : "all");
+ });
+ d ? _e.transition().attrTween("d", function(Ee) {
+ var Ae = _(Ee, cX, j(), [o, s]);
+ return function(Be) {
+ return c(Ae(Be));
+ };
+ }) : _e.attr("d", c), oe.call(nPt, n, t, r, { styleOne: vLe, eventDataKeys: uX.eventDataKeys, transitionTime: uX.CLICK_TRANSITION_TIME, transitionEasing: uX.CLICK_TRANSITION_EASING }).call(nx.setSliceCursor, t, { isTransitioning: t._transitioning }), _e.call(vLe, H, x, t, { hovered: false }), H.x0 === H.x1 || H.y0 === H.y1 ? H._text = "" : re ? H._text = P ? "" : nx.getPtLabel(H) || "" : H._text = aPt(H, n, x, r, T) || "";
+ var Ce = KD.ensureSingle(oe, "g", "slicetext"), Le = KD.ensureSingle(Ce, "text", "", function(Ee) {
+ Ee.attr("data-notex", 1);
+ }), ge = KD.ensureUniformFontSize(t, nx.determineTextFont(x, H, T.font)), ie = H._text || " ", Se = re && ie.indexOf(" ") === -1;
+ Le.text(ie).classed("slicetext", true).attr("text-anchor", M ? "end" : C || Se ? "start" : "middle").call(dLe.font, ge).call(rPt.convertToTspans, t), H.textBB = dLe.bBox(Le.node()), H.transform = f(H, { fontSize: ge.size, isHeader: re }), H.transform.fontSize = ge.size, d ? Le.transition().attrTween("transform", function(Ee) {
+ var Ae = b(Ee, cX, j(), [o, s]);
+ return function(Be) {
+ return h(Ae(Be));
+ };
+ }) : Le.attr("transform", h(H));
+ }), G;
+ };
+ });
+ var yLe = ye((k0r, mLe) => {
+ var oPt = lX(), sPt = gLe();
+ mLe.exports = function(t, r, n, i) {
+ return oPt(t, r, n, i, { type: "treemap", drawDescendants: sPt });
+ };
+ });
+ var xLe = ye((C0r, _Le) => {
+ _Le.exports = { moduleType: "trace", name: "treemap", basePlotModule: z6e(), categories: [], animatable: true, attributes: XD(), layoutAttributes: $W(), supplyDefaults: j6e(), supplyLayoutDefaults: X6e(), calc: eX().calc, crossTraceCalc: eX().crossTraceCalc, plot: yLe(), style: ZD().style, colorbar: $d(), meta: {} };
+ });
+ var wLe = ye((L0r, bLe) => {
+ bLe.exports = xLe();
+ });
+ var ALe = ye((GA) => {
+ var TLe = Mc();
+ GA.name = "icicle";
+ GA.plot = function(e, t, r, n) {
+ TLe.plotBasePlot(GA.name, e, t, r, n);
+ };
+ GA.clean = function(e, t, r, n) {
+ TLe.cleanBasePlot(GA.name, e, t, r, n);
+ };
+ });
+ var fX = ye((I0r, ELe) => {
+ var { hovertemplateAttrs: lPt, texttemplateAttrs: uPt, templatefallbackAttrs: SLe } = Ll(), cPt = Tu(), fPt = Cc().attributes, tk = F2(), s0 = qE(), JD = XD(), MLe = W2(), hPt = Ao().extendFlat, dPt = Pd().pattern;
+ ELe.exports = { labels: s0.labels, parents: s0.parents, values: s0.values, branchvalues: s0.branchvalues, count: s0.count, level: s0.level, maxdepth: s0.maxdepth, tiling: { orientation: { valType: "enumerated", values: ["v", "h"], dflt: "h", editType: "plot" }, flip: JD.tiling.flip, pad: { valType: "number", min: 0, dflt: 0, editType: "plot" }, editType: "calc" }, marker: hPt({ colors: s0.marker.colors, line: s0.marker.line, pattern: dPt, editType: "calc" }, cPt("marker", { colorAttr: "colors", anim: false })), leaf: s0.leaf, pathbar: JD.pathbar, text: tk.text, textinfo: s0.textinfo, texttemplate: uPt({ editType: "plot" }, { keys: MLe.eventDataKeys.concat(["label", "value"]) }), texttemplatefallback: SLe({ editType: "plot" }), hovertext: tk.hovertext, hoverinfo: s0.hoverinfo, hovertemplate: lPt({}, { keys: MLe.eventDataKeys }), hovertemplatefallback: SLe(), textfont: tk.textfont, insidetextfont: tk.insidetextfont, outsidetextfont: JD.outsidetextfont, textposition: JD.textposition, sort: tk.sort, root: s0.root, domain: fPt({ name: "icicle", trace: true, editType: "calc" }) };
+ });
+ var hX = ye((R0r, kLe) => {
+ kLe.exports = { iciclecolorway: { valType: "colorlist", editType: "calc" }, extendiciclecolors: { valType: "boolean", dflt: true, editType: "calc" } };
+ });
+ var ILe = ye((D0r, PLe) => {
+ var CLe = Dr(), vPt = fX(), pPt = ka(), gPt = Cc().defaults, mPt = i0().handleText, yPt = A_().TEXTPAD, _Pt = z2().handleMarkerDefaults, LLe = tc(), xPt = LLe.hasColorscale, bPt = LLe.handleDefaults;
+ PLe.exports = function(t, r, n, i) {
+ function a(d, v) {
+ return CLe.coerce(t, r, vPt, d, v);
+ }
+ var o = a("labels"), s = a("parents");
+ if (!o || !o.length || !s || !s.length) {
+ r.visible = false;
+ return;
+ }
+ var l = a("values");
+ l && l.length ? a("branchvalues") : a("count"), a("level"), a("maxdepth"), a("tiling.orientation"), a("tiling.flip"), a("tiling.pad");
+ var u = a("text");
+ a("texttemplate"), a("texttemplatefallback"), r.texttemplate || a("textinfo", CLe.isArrayOrTypedArray(u) ? "text+label" : "label"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback");
+ var c = a("pathbar.visible"), f = "auto";
+ mPt(t, r, i, a, f, { hasPathbar: c, moduleHasSelected: false, moduleHasUnselected: false, moduleHasConstrain: false, moduleHasCliponaxis: false, moduleHasTextangle: false, moduleHasInsideanchor: false }), a("textposition"), _Pt(t, r, i, a);
+ var h = r._hasColorscale = xPt(t, "marker", "colors") || (t.marker || {}).coloraxis;
+ h && bPt(t, r, i, a, { prefix: "marker.", cLetter: "c" }), a("leaf.opacity", h ? 1 : 0.7), r._hovered = { marker: { line: { width: 2, color: pPt.contrast(i.paper_bgcolor) } } }, c && (a("pathbar.thickness", r.pathbar.textfont.size + 2 * yPt), a("pathbar.side"), a("pathbar.edgeshape")), a("sort"), a("root.color"), gPt(r, i, a), r._length = null;
+ };
+ });
+ var DLe = ye((F0r, RLe) => {
+ var wPt = Dr(), TPt = hX();
+ RLe.exports = function(t, r) {
+ function n(i, a) {
+ return wPt.coerce(t, r, TPt, i, a);
+ }
+ n("iciclecolorway", r.colorway), n("extendiciclecolors");
+ };
+ });
+ var vX = ye((dX) => {
+ var FLe = UE();
+ dX.calc = function(e, t) {
+ return FLe.calc(e, t);
+ };
+ dX.crossTraceCalc = function(e) {
+ return FLe._runCrossTraceCalc("icicle", e);
+ };
+ });
+ var OLe = ye((O0r, zLe) => {
+ var APt = BE(), SPt = tX();
+ zLe.exports = function(t, r, n) {
+ var i = n.flipX, a = n.flipY, o = n.orientation === "h", s = n.maxDepth, l = r[0], u = r[1];
+ s && (l = (t.height + 1) * r[0] / Math.min(t.height + 1, s), u = (t.height + 1) * r[1] / Math.min(t.height + 1, s));
+ var c = APt.partition().padding(n.pad.inner).size(o ? [r[1], l] : [r[0], u])(t);
+ return (o || i || a) && SPt(c, r, { swapXY: o, flipX: i, flipY: a }), c;
+ };
+ });
+ var pX = ye((q0r, VLe) => {
+ var qLe = Oa(), BLe = ka(), NLe = Dr(), MPt = bv().resizeText, EPt = HD();
+ function kPt(e) {
+ var t = e._fullLayout._iciclelayer.selectAll(".trace");
+ MPt(e, t, "icicle"), t.each(function(r) {
+ var n = qLe.select(this), i = r[0], a = i.trace;
+ n.style("opacity", a.opacity), n.selectAll("path.surface").each(function(o) {
+ qLe.select(this).call(ULe, o, a, e);
+ });
+ });
+ }
+ function ULe(e, t, r, n) {
+ var i = t.data.data, a = !t.children, o = i.i, s = NLe.castOption(r, o, "marker.line.color") || BLe.defaultLine, l = NLe.castOption(r, o, "marker.line.width") || 0;
+ e.call(EPt, t, r, n).style("stroke-width", l).call(BLe.stroke, s).style("opacity", a ? r.leaf.opacity : null);
+ }
+ VLe.exports = { style: kPt, styleOne: ULe };
+ });
+ var XLe = ye((B0r, WLe) => {
+ var GLe = Oa(), $D = Dr(), HLe = So(), CPt = Zl(), LPt = OLe(), jLe = pX().styleOne, gX = W2(), HA = i1(), PPt = $E(), IPt = WD().formatSliceLabel, mX = false;
+ WLe.exports = function(t, r, n, i, a) {
+ var o = a.width, s = a.height, l = a.viewX, u = a.viewY, c = a.pathSlice, f = a.toMoveInsideSlice, h = a.strTransform, d = a.hasTransition, v = a.handleSlicesExit, _ = a.makeUpdateSliceInterpolator, b = a.makeUpdateTextInterpolator, p = a.prevEntry, k = {}, E = t._context.staticPlot, T = t._fullLayout, L = r[0], x = L.trace, C = x.textposition.indexOf("left") !== -1, M = x.textposition.indexOf("right") !== -1, g = x.textposition.indexOf("bottom") !== -1, P = LPt(n, [o, s], { flipX: x.tiling.flip.indexOf("x") > -1, flipY: x.tiling.flip.indexOf("y") > -1, orientation: x.tiling.orientation, pad: { inner: x.tiling.pad }, maxDepth: x._maxDepth }), A = P.descendants(), z = 1 / 0, O = -1 / 0;
+ A.forEach(function(N) {
+ var H = N.depth;
+ H >= x._maxDepth ? (N.x0 = N.x1 = (N.x0 + N.x1) / 2, N.y0 = N.y1 = (N.y0 + N.y1) / 2) : (z = Math.min(z, H), O = Math.max(O, H));
+ }), i = i.data(A, HA.getPtId), x._maxVisibleLayers = isFinite(O) ? O - z + 1 : 0, i.enter().append("g").classed("slice", true), v(i, mX, k, [o, s], c), i.order();
+ var U = null;
+ if (d && p) {
+ var G = HA.getPtId(p);
+ i.each(function(N) {
+ U === null && HA.getPtId(N) === G && (U = { x0: N.x0, x1: N.x1, y0: N.y0, y1: N.y1 });
+ });
+ }
+ var Z = function() {
+ return U || { x0: 0, x1: o, y0: 0, y1: s };
+ }, j = i;
+ return d && (j = j.transition().each("end", function() {
+ var N = GLe.select(this);
+ HA.setSliceCursor(N, t, { hideOnRoot: true, hideOnLeaves: false, isTransitioning: false });
+ })), j.each(function(N) {
+ N._x0 = l(N.x0), N._x1 = l(N.x1), N._y0 = u(N.y0), N._y1 = u(N.y1), N._hoverX = l(N.x1 - x.tiling.pad), N._hoverY = u(g ? N.y1 - x.tiling.pad / 2 : N.y0 + x.tiling.pad / 2);
+ var H = GLe.select(this), re = $D.ensureSingle(H, "path", "surface", function(Le) {
+ Le.style("pointer-events", E ? "none" : "all");
+ });
+ d ? re.transition().attrTween("d", function(Le) {
+ var ge = _(Le, mX, Z(), [o, s], { orientation: x.tiling.orientation, flipX: x.tiling.flip.indexOf("x") > -1, flipY: x.tiling.flip.indexOf("y") > -1 });
+ return function(ie) {
+ return c(ge(ie));
+ };
+ }) : re.attr("d", c), H.call(PPt, n, t, r, { styleOne: jLe, eventDataKeys: gX.eventDataKeys, transitionTime: gX.CLICK_TRANSITION_TIME, transitionEasing: gX.CLICK_TRANSITION_EASING }).call(HA.setSliceCursor, t, { isTransitioning: t._transitioning }), re.call(jLe, N, x, t, { hovered: false }), N.x0 === N.x1 || N.y0 === N.y1 ? N._text = "" : N._text = IPt(N, n, x, r, T) || "";
+ var oe = $D.ensureSingle(H, "g", "slicetext"), _e = $D.ensureSingle(oe, "text", "", function(Le) {
+ Le.attr("data-notex", 1);
+ }), Ce = $D.ensureUniformFontSize(t, HA.determineTextFont(x, N, T.font));
+ _e.text(N._text || " ").classed("slicetext", true).attr("text-anchor", M ? "end" : C ? "start" : "middle").call(HLe.font, Ce).call(CPt.convertToTspans, t), N.textBB = HLe.bBox(_e.node()), N.transform = f(N, { fontSize: Ce.size }), N.transform.fontSize = Ce.size, d ? _e.transition().attrTween("transform", function(Le) {
+ var ge = b(Le, mX, Z(), [o, s]);
+ return function(ie) {
+ return h(ge(ie));
+ };
+ }) : _e.attr("transform", h(N));
+ }), U;
+ };
+ });
+ var YLe = ye((N0r, ZLe) => {
+ var RPt = lX(), DPt = XLe();
+ ZLe.exports = function(t, r, n, i) {
+ return RPt(t, r, n, i, { type: "icicle", drawDescendants: DPt });
+ };
+ });
+ var JLe = ye((U0r, KLe) => {
+ KLe.exports = { moduleType: "trace", name: "icicle", basePlotModule: ALe(), categories: [], animatable: true, attributes: fX(), layoutAttributes: hX(), supplyDefaults: ILe(), supplyLayoutDefaults: DLe(), calc: vX().calc, crossTraceCalc: vX().crossTraceCalc, plot: YLe(), style: pX().style, colorbar: $d(), meta: {} };
+ });
+ var QLe = ye((V0r, $Le) => {
+ $Le.exports = JLe();
+ });
+ var tPe = ye((jA) => {
+ var ePe = Mc();
+ jA.name = "funnelarea";
+ jA.plot = function(e, t, r, n) {
+ ePe.plotBasePlot(jA.name, e, t, r, n);
+ };
+ jA.clean = function(e, t, r, n) {
+ ePe.cleanBasePlot(jA.name, e, t, r, n);
+ };
+ });
+ var yX = ye((H0r, iPe) => {
+ var iv = F2(), FPt = Gl(), zPt = Cc().attributes, { hovertemplateAttrs: OPt, texttemplateAttrs: qPt, templatefallbackAttrs: rPe } = Ll(), Y2 = Ao().extendFlat;
+ iPe.exports = { labels: iv.labels, label0: iv.label0, dlabel: iv.dlabel, values: iv.values, marker: { colors: iv.marker.colors, line: { color: Y2({}, iv.marker.line.color, { dflt: null }), width: Y2({}, iv.marker.line.width, { dflt: 1 }), editType: "calc" }, pattern: iv.marker.pattern, editType: "calc" }, text: iv.text, hovertext: iv.hovertext, scalegroup: Y2({}, iv.scalegroup, {}), textinfo: Y2({}, iv.textinfo, { flags: ["label", "text", "value", "percent"] }), texttemplate: qPt({ editType: "plot" }, { keys: ["label", "color", "value", "text", "percent"] }), texttemplatefallback: rPe({ editType: "plot" }), hoverinfo: Y2({}, FPt.hoverinfo, { flags: ["label", "text", "value", "percent", "name"] }), hovertemplate: OPt({}, { keys: ["label", "color", "value", "text", "percent"] }), hovertemplatefallback: rPe(), textposition: Y2({}, iv.textposition, { values: ["inside", "none"], dflt: "inside" }), textfont: iv.textfont, insidetextfont: iv.insidetextfont, title: { text: iv.title.text, font: iv.title.font, position: Y2({}, iv.title.position, { values: ["top left", "top center", "top right"], dflt: "top center" }), editType: "plot" }, domain: zPt({ name: "funnelarea", trace: true, editType: "calc" }), aspectratio: { valType: "number", min: 0, dflt: 1, editType: "plot" }, baseratio: { valType: "number", min: 0, max: 1, dflt: 0.333, editType: "plot" } };
+ });
+ var _X = ye((j0r, nPe) => {
+ var BPt = _D().hiddenlabels;
+ nPe.exports = { hiddenlabels: BPt, funnelareacolorway: { valType: "colorlist", editType: "calc" }, extendfunnelareacolors: { valType: "boolean", dflt: true, editType: "calc" } };
+ });
+ var sPe = ye((W0r, oPe) => {
+ var aPe = Dr(), NPt = yX(), UPt = Cc().defaults, VPt = i0().handleText, GPt = z2().handleLabelsAndValues, HPt = z2().handleMarkerDefaults;
+ oPe.exports = function(t, r, n, i) {
+ function a(_, b) {
+ return aPe.coerce(t, r, NPt, _, b);
+ }
+ var o = a("labels"), s = a("values"), l = GPt(o, s), u = l.len;
+ if (r._hasLabels = l.hasLabels, r._hasValues = l.hasValues, !r._hasLabels && r._hasValues && (a("label0"), a("dlabel")), !u) {
+ r.visible = false;
+ return;
+ }
+ r._length = u, HPt(t, r, i, a), a("scalegroup");
+ var c = a("text"), f = a("texttemplate");
+ a("texttemplatefallback");
+ var h;
+ if (f || (h = a("textinfo", Array.isArray(c) ? "text+percent" : "percent")), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), f || h && h !== "none") {
+ var d = a("textposition");
+ VPt(t, r, i, a, d, { moduleHasSelected: false, moduleHasUnselected: false, moduleHasConstrain: false, moduleHasCliponaxis: false, moduleHasTextangle: false, moduleHasInsideanchor: false });
+ } else h === "none" && a("textposition", "none");
+ UPt(r, i, a);
+ var v = a("title.text");
+ v && (a("title.position"), aPe.coerceFont(a, "title.font", i.font)), a("aspectratio"), a("baseratio");
+ };
+ });
+ var uPe = ye((X0r, lPe) => {
+ var jPt = Dr(), WPt = _X();
+ lPe.exports = function(t, r) {
+ function n(i, a) {
+ return jPt.coerce(t, r, WPt, i, a);
+ }
+ n("hiddenlabels"), n("funnelareacolorway", r.colorway), n("extendfunnelareacolors");
+ };
+ });
+ var xX = ye((Z0r, fPe) => {
+ var cPe = EA();
+ function XPt(e, t) {
+ return cPe.calc(e, t);
+ }
+ function ZPt(e) {
+ cPe.crossTraceCalc(e, { type: "funnelarea" });
+ }
+ fPe.exports = { calc: XPt, crossTraceCalc: ZPt };
+ });
+ var gPe = ye((Y0r, pPe) => {
+ var K2 = Oa(), bX = So(), ax = Dr(), YPt = ax.strScale, hPe = ax.strTranslate, dPe = Zl(), KPt = d2(), JPt = KPt.toMoveInsideBar, vPe = bv(), $Pt = vPe.recordMinTextSize, QPt = vPe.clearMinTextSize, eIt = g_(), WA = TD(), tIt = WA.attachFxHandlers, rIt = WA.determineInsideTextFont, iIt = WA.layoutAreas, nIt = WA.prerenderTitles, aIt = WA.positionTitleOutside, oIt = WA.formatSliceLabel;
+ pPe.exports = function(t, r) {
+ var n = t._context.staticPlot, i = t._fullLayout;
+ QPt("funnelarea", i), nIt(r, t), iIt(r, i._size), ax.makeTraceGroups(i._funnelarealayer, r, "trace").each(function(a) {
+ var o = K2.select(this), s = a[0], l = s.trace;
+ lIt(a), o.each(function() {
+ var u = K2.select(this).selectAll("g.slice").data(a);
+ u.enter().append("g").classed("slice", true), u.exit().remove(), u.each(function(f, h) {
+ if (f.hidden) {
+ K2.select(this).selectAll("path,g").remove();
+ return;
+ }
+ f.pointNumber = f.i, f.curveNumber = l.index;
+ var d = s.cx, v = s.cy, _ = K2.select(this), b = _.selectAll("path.surface").data([f]);
+ b.enter().append("path").classed("surface", true).style({ "pointer-events": n ? "none" : "all" }), _.call(tIt, t, a);
+ var p = "M" + (d + f.TR[0]) + "," + (v + f.TR[1]) + wX(f.TR, f.BR) + wX(f.BR, f.BL) + wX(f.BL, f.TL) + "Z";
+ b.attr("d", p), oIt(t, f, s);
+ var k = eIt.castOption(l.textposition, f.pts), E = _.selectAll("g.slicetext").data(f.text && k !== "none" ? [0] : []);
+ E.enter().append("g").classed("slicetext", true), E.exit().remove(), E.each(function() {
+ var T = ax.ensureSingle(K2.select(this), "text", "", function(z) {
+ z.attr("data-notex", 1);
+ }), L = ax.ensureUniformFontSize(t, rIt(l, f, i.font));
+ T.text(f.text).attr({ class: "slicetext", transform: "", "text-anchor": "middle" }).call(bX.font, L).call(dPe.convertToTspans, t);
+ var x = bX.bBox(T.node()), C, M, g, P = Math.min(f.BL[1], f.BR[1]) + v, A = Math.max(f.TL[1], f.TR[1]) + v;
+ M = Math.max(f.TL[0], f.BL[0]) + d, g = Math.min(f.TR[0], f.BR[0]) + d, C = JPt(M, g, P, A, x, { isHorizontal: true, constrained: true, angle: 0, anchor: "middle" }), C.fontSize = L.size, $Pt(l.type, C, i), a[h].transform = C, ax.setTransormAndDisplay(T, C);
+ });
+ });
+ var c = K2.select(this).selectAll("g.titletext").data(l.title.text ? [0] : []);
+ c.enter().append("g").classed("titletext", true), c.exit().remove(), c.each(function() {
+ var f = ax.ensureSingle(K2.select(this), "text", "", function(v) {
+ v.attr("data-notex", 1);
+ }), h = l.title.text;
+ l._meta && (h = ax.templateString(h, l._meta)), f.text(h).attr({ class: "titletext", transform: "", "text-anchor": "middle" }).call(bX.font, l.title.font).call(dPe.convertToTspans, t);
+ var d = aIt(s, i._size);
+ f.attr("transform", hPe(d.x, d.y) + YPt(Math.min(1, d.scale)) + hPe(d.tx, d.ty));
+ });
+ });
+ });
+ };
+ function wX(e, t) {
+ var r = t[0] - e[0], n = t[1] - e[1];
+ return "l" + r + "," + n;
+ }
+ function sIt(e, t) {
+ return [0.5 * (e[0] + t[0]), 0.5 * (e[1] + t[1])];
+ }
+ function lIt(e) {
+ if (!e.length) return;
+ var t = e[0], r = t.trace, n = r.aspectratio, i = r.baseratio;
+ i > 0.999 && (i = 0.999);
+ var a = Math.pow(i, 2), o = t.vTotal, s = o * a / (1 - a), l = o, u = s / o;
+ function c() {
+ var O = Math.sqrt(u);
+ return { x: O, y: -O };
+ }
+ function f() {
+ var O = c();
+ return [O.x, O.y];
+ }
+ var h, d = [];
+ d.push(f());
+ var v, _;
+ for (v = e.length - 1; v > -1; v--) if (_ = e[v], !_.hidden) {
+ var b = _.v / l;
+ u += b, d.push(f());
+ }
+ var p = 1 / 0, k = -1 / 0;
+ for (v = 0; v < d.length; v++) h = d[v], p = Math.min(p, h[1]), k = Math.max(k, h[1]);
+ for (v = 0; v < d.length; v++) d[v][1] -= (k + p) / 2;
+ var E = d[d.length - 1][0], T = t.r, L = (k - p) / 2, x = T / E, C = T / L * n;
+ for (t.r = C * L, v = 0; v < d.length; v++) d[v][0] *= x, d[v][1] *= C;
+ h = d[0];
+ var M = [-h[0], h[1]], g = [h[0], h[1]], P = 0;
+ for (v = e.length - 1; v > -1; v--) if (_ = e[v], !_.hidden) {
+ P += 1;
+ var A = d[P][0], z = d[P][1];
+ _.TL = [-A, z], _.TR = [A, z], _.BL = M, _.BR = g, _.pxmid = sIt(_.TR, _.BR), M = _.TL, g = _.TR;
+ }
+ }
+ });
+ var _Pe = ye((K0r, yPe) => {
+ var mPe = Oa(), uIt = X3(), cIt = bv().resizeText;
+ yPe.exports = function(t) {
+ var r = t._fullLayout._funnelarealayer.selectAll(".trace");
+ cIt(t, r, "funnelarea"), r.each(function(n) {
+ var i = n[0], a = i.trace, o = mPe.select(this);
+ o.style({ opacity: a.opacity }), o.selectAll("path.surface").each(function(s) {
+ mPe.select(this).call(uIt, s, a, t);
+ });
+ });
+ };
+ });
+ var bPe = ye((J0r, xPe) => {
+ xPe.exports = { moduleType: "trace", name: "funnelarea", basePlotModule: tPe(), categories: ["pie-like", "funnelarea", "showLegend"], attributes: yX(), layoutAttributes: _X(), supplyDefaults: sPe(), supplyLayoutDefaults: uPe(), calc: xX().calc, crossTraceCalc: xX().crossTraceCalc, plot: gPe(), style: _Pe(), styleOne: X3(), meta: {} };
+ });
+ var TPe = ye(($0r, wPe) => {
+ wPe.exports = bPe();
+ });
+ var zd = ye((Q0r, APe) => {
+ (function() {
+ var e = { 24: function(i) {
+ var a = { left: 0, top: 0 };
+ i.exports = o;
+ function o(l, u, c) {
+ u = u || l.currentTarget || l.srcElement, Array.isArray(c) || (c = [0, 0]);
+ var f = l.clientX || 0, h = l.clientY || 0, d = s(u);
+ return c[0] = f - d.left, c[1] = h - d.top, c;
+ }
+ function s(l) {
+ return l === window || l === document || l === document.body ? a : l.getBoundingClientRect();
+ }
+ }, 109: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ var c = l[0], f = l[2], h = s[0] - c, d = s[2] - f, v = Math.sin(u), _ = Math.cos(u);
+ return o[0] = c + d * v + h * _, o[1] = s[1], o[2] = f + d * _ - h * v, o;
+ }
+ }, 160: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = Math.max(s[0], l[0]), o[1] = Math.max(s[1], l[1]), o[2] = Math.max(s[2], l[2]), o[3] = Math.max(s[3], l[3]), o;
+ }
+ }, 216: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ for (var l = {}, u = 0; u < o.length; ++u) for (var c = o[u].name, f = c.split("."), h = l, d = 0; d < f.length; ++d) {
+ var v = f[d].split("[");
+ if (v.length > 1) {
+ v[0] in h || (h[v[0]] = []), h = h[v[0]];
+ for (var _ = 1; _ < v.length; ++_) {
+ var b = parseInt(v[_]);
+ _ < v.length - 1 || d < f.length - 1 ? (b in h || (_ < v.length - 1 ? h[b] = [] : h[b] = {}), h = h[b]) : s ? h[b] = u : h[b] = o[u].type;
+ }
+ } else d < f.length - 1 ? (v[0] in h || (h[v[0]] = {}), h = h[v[0]]) : s ? h[v[0]] = u : h[v[0]] = o[u].type;
+ }
+ return l;
+ }
+ }, 236: function(i, a, o) {
+ var s = o(8284);
+ i.exports = l;
+ function l() {
+ var u = {};
+ return function(c) {
+ if ((typeof c != "object" || c === null) && typeof c != "function") throw new Error("Weakmap-shim: Key must be object");
+ var f = c.valueOf(u);
+ return f && f.identity === u ? f : s(c, u);
+ };
+ }
+ }, 244: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] * s[0] + o[1] * s[1] + o[2] * s[2];
+ }
+ }, 264: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s[0], c = s[1], f = s[2], h = l[0], d = l[1], v = l[2], _ = l[3], b = _ * u + d * f - v * c, p = _ * c + v * u - h * f, k = _ * f + h * c - d * u, E = -h * u - d * c - v * f;
+ return o[0] = b * _ + E * -h + p * -v - k * -d, o[1] = p * _ + E * -d + k * -h - b * -v, o[2] = k * _ + E * -v + b * -d - p * -h, o;
+ }
+ }, 332: function(i, a, o) {
+ i.exports = z;
+ var s = o(1755), l = o(6867), u = o(1125), c = o(7842), f = o(1318), h = o(946), d = o(5838), v = o(1278), _ = o(3637);
+ function b(O) {
+ var U = h(O);
+ return [v(U, -1 / 0), v(U, 1 / 0)];
+ }
+ function p(O, U) {
+ for (var G = new Array(U.length), Z = 0; Z < U.length; ++Z) {
+ var j = U[Z], N = O[j[0]], H = O[j[1]];
+ G[Z] = [v(Math.min(N[0], H[0]), -1 / 0), v(Math.min(N[1], H[1]), -1 / 0), v(Math.max(N[0], H[0]), 1 / 0), v(Math.max(N[1], H[1]), 1 / 0)];
+ }
+ return G;
+ }
+ function k(O) {
+ for (var U = new Array(O.length), G = 0; G < O.length; ++G) {
+ var Z = O[G];
+ U[G] = [v(Z[0], -1 / 0), v(Z[1], -1 / 0), v(Z[0], 1 / 0), v(Z[1], 1 / 0)];
+ }
+ return U;
+ }
+ function E(O, U, G) {
+ var Z = [];
+ return l(G, function(j, N) {
+ var H = U[j], re = U[N];
+ if (!(H[0] === re[0] || H[0] === re[1] || H[1] === re[0] || H[1] === re[1])) {
+ var oe = O[H[0]], _e = O[H[1]], Ce = O[re[0]], Le = O[re[1]];
+ u(oe, _e, Ce, Le) && Z.push([j, N]);
+ }
+ }), Z;
+ }
+ function T(O, U, G, Z) {
+ var j = [];
+ return l(G, Z, function(N, H) {
+ var re = U[N];
+ if (!(re[0] === H || re[1] === H)) {
+ var oe = O[H], _e = O[re[0]], Ce = O[re[1]];
+ u(_e, Ce, oe, oe) && j.push([N, H]);
+ }
+ }), j;
+ }
+ function L(O, U, G, Z, j) {
+ var N, H, re = O.map(function(pt) {
+ return [c(pt[0]), c(pt[1])];
+ });
+ for (N = 0; N < G.length; ++N) {
+ var oe = G[N];
+ H = oe[0];
+ var _e = oe[1], Ce = U[H], Le = U[_e], ge = _(d(O[Ce[0]]), d(O[Ce[1]]), d(O[Le[0]]), d(O[Le[1]]));
+ if (ge) {
+ var ie = O.length;
+ O.push([h(ge[0]), h(ge[1])]), re.push(ge), Z.push([H, ie], [_e, ie]);
+ }
+ }
+ for (Z.sort(function(pt, Vt) {
+ if (pt[0] !== Vt[0]) return pt[0] - Vt[0];
+ var ot = re[pt[1]], ut = re[Vt[1]];
+ return f(ot[0], ut[0]) || f(ot[1], ut[1]);
+ }), N = Z.length - 1; N >= 0; --N) {
+ var Se = Z[N];
+ H = Se[0];
+ var Ee = U[H], Ae = Ee[0], Be = Ee[1], Pe = O[Ae], me = O[Be];
+ if ((Pe[0] - me[0] || Pe[1] - me[1]) < 0) {
+ var De = Ae;
+ Ae = Be, Be = De;
+ }
+ Ee[0] = Ae;
+ var ce = Ee[1] = Se[1], je;
+ for (j && (je = Ee[2]); N > 0 && Z[N - 1][0] === H; ) {
+ var Se = Z[--N], lt = Se[1];
+ j ? U.push([ce, lt, je]) : U.push([ce, lt]), ce = lt;
+ }
+ j ? U.push([ce, Be, je]) : U.push([ce, Be]);
+ }
+ return re;
+ }
+ function x(O, U, G) {
+ for (var Z = U.length, j = new s(Z), N = [], H = 0; H < U.length; ++H) {
+ var re = U[H], oe = b(re[0]), _e = b(re[1]);
+ N.push([v(oe[0], -1 / 0), v(_e[0], -1 / 0), v(oe[1], 1 / 0), v(_e[1], 1 / 0)]);
+ }
+ l(N, function(Se, Ee) {
+ j.link(Se, Ee);
+ });
+ for (var Ce = true, Le = new Array(Z), H = 0; H < Z; ++H) {
+ var ge = j.find(H);
+ ge !== H && (Ce = false, O[ge] = [Math.min(O[H][0], O[ge][0]), Math.min(O[H][1], O[ge][1])]);
+ }
+ if (Ce) return null;
+ for (var ie = 0, H = 0; H < Z; ++H) {
+ var ge = j.find(H);
+ ge === H ? (Le[H] = ie, O[ie++] = O[H]) : Le[H] = -1;
+ }
+ O.length = ie;
+ for (var H = 0; H < Z; ++H) Le[H] < 0 && (Le[H] = Le[j.find(H)]);
+ return Le;
+ }
+ function C(O, U) {
+ return O[0] - U[0] || O[1] - U[1];
+ }
+ function M(O, U) {
+ var G = O[0] - U[0] || O[1] - U[1];
+ return G || (O[2] < U[2] ? -1 : O[2] > U[2] ? 1 : 0);
+ }
+ function g(O, U, G) {
+ if (O.length !== 0) {
+ if (U) for (var Z = 0; Z < O.length; ++Z) {
+ var j = O[Z], N = U[j[0]], H = U[j[1]];
+ j[0] = Math.min(N, H), j[1] = Math.max(N, H);
+ }
+ else for (var Z = 0; Z < O.length; ++Z) {
+ var j = O[Z], N = j[0], H = j[1];
+ j[0] = Math.min(N, H), j[1] = Math.max(N, H);
+ }
+ G ? O.sort(M) : O.sort(C);
+ for (var re = 1, Z = 1; Z < O.length; ++Z) {
+ var oe = O[Z - 1], _e = O[Z];
+ _e[0] === oe[0] && _e[1] === oe[1] && (!G || _e[2] === oe[2]) || (O[re++] = _e);
+ }
+ O.length = re;
+ }
+ }
+ function P(O, U, G) {
+ var Z = x(O, [], k(O));
+ return g(U, Z, G), !!Z;
+ }
+ function A(O, U, G) {
+ var Z = p(O, U), j = E(O, U, Z), N = k(O), H = T(O, U, Z, N), re = L(O, U, j, H, G), oe = x(O, re);
+ return g(U, oe, G), oe ? true : j.length > 0 || H.length > 0;
+ }
+ function z(O, U, G) {
+ var Z;
+ if (G) {
+ Z = U;
+ for (var j = new Array(U.length), N = 0; N < U.length; ++N) {
+ var H = U[N];
+ j[N] = [H[0], H[1], G[N]];
+ }
+ U = j;
+ }
+ for (var re = P(O, U, !!G); A(O, U, !!G); ) re = true;
+ if (G && re) {
+ Z.length = 0, G.length = 0;
+ for (var N = 0; N < U.length; ++N) {
+ var H = U[N];
+ Z.push([H[0], H[1]]), G.push(H[2]);
+ }
+ }
+ return re;
+ }
+ }, 351: function(i, a, o) {
+ i.exports = l;
+ var s = o(4687);
+ function l(u, c) {
+ c || (c = u, u = window);
+ var f = 0, h = 0, d = 0, v = { shift: false, alt: false, control: false, meta: false }, _ = false;
+ function b(A) {
+ var z = false;
+ return "altKey" in A && (z = z || A.altKey !== v.alt, v.alt = !!A.altKey), "shiftKey" in A && (z = z || A.shiftKey !== v.shift, v.shift = !!A.shiftKey), "ctrlKey" in A && (z = z || A.ctrlKey !== v.control, v.control = !!A.ctrlKey), "metaKey" in A && (z = z || A.metaKey !== v.meta, v.meta = !!A.metaKey), z;
+ }
+ function p(A, z) {
+ var O = s.x(z), U = s.y(z);
+ "buttons" in z && (A = z.buttons | 0), (A !== f || O !== h || U !== d || b(z)) && (f = A | 0, h = O || 0, d = U || 0, c && c(f, h, d, v));
+ }
+ function k(A) {
+ p(0, A);
+ }
+ function E() {
+ (f || h || d || v.shift || v.alt || v.meta || v.control) && (h = d = 0, f = 0, v.shift = v.alt = v.control = v.meta = false, c && c(0, 0, 0, v));
+ }
+ function T(A) {
+ b(A) && c && c(f, h, d, v);
+ }
+ function L(A) {
+ s.buttons(A) === 0 ? p(0, A) : p(f, A);
+ }
+ function x(A) {
+ p(f | s.buttons(A), A);
+ }
+ function C(A) {
+ p(f & ~s.buttons(A), A);
+ }
+ function M() {
+ _ || (_ = true, u.addEventListener("mousemove", L), u.addEventListener("mousedown", x), u.addEventListener("mouseup", C), u.addEventListener("mouseleave", k), u.addEventListener("mouseenter", k), u.addEventListener("mouseout", k), u.addEventListener("mouseover", k), u.addEventListener("blur", E), u.addEventListener("keyup", T), u.addEventListener("keydown", T), u.addEventListener("keypress", T), u !== window && (window.addEventListener("blur", E), window.addEventListener("keyup", T), window.addEventListener("keydown", T), window.addEventListener("keypress", T)));
+ }
+ function g() {
+ _ && (_ = false, u.removeEventListener("mousemove", L), u.removeEventListener("mousedown", x), u.removeEventListener("mouseup", C), u.removeEventListener("mouseleave", k), u.removeEventListener("mouseenter", k), u.removeEventListener("mouseout", k), u.removeEventListener("mouseover", k), u.removeEventListener("blur", E), u.removeEventListener("keyup", T), u.removeEventListener("keydown", T), u.removeEventListener("keypress", T), u !== window && (window.removeEventListener("blur", E), window.removeEventListener("keyup", T), window.removeEventListener("keydown", T), window.removeEventListener("keypress", T)));
+ }
+ M();
+ var P = { element: u };
+ return Object.defineProperties(P, { enabled: { get: function() {
+ return _;
+ }, set: function(A) {
+ A ? M() : g();
+ }, enumerable: true }, buttons: { get: function() {
+ return f;
+ }, enumerable: true }, x: { get: function() {
+ return h;
+ }, enumerable: true }, y: { get: function() {
+ return d;
+ }, enumerable: true }, mods: { get: function() {
+ return v;
+ }, enumerable: true } }), P;
+ }
+ }, 395: function(i) {
+ function a(o, s, l) {
+ return o * (1 - l) + s * l;
+ }
+ i.exports = a;
+ }, 446: function(i, a, o) {
+ var s = o(7640), l = {};
+ function u(c) {
+ var f = c.order, h = c.dtype, d = [f, h], v = d.join(":"), _ = l[v];
+ return _ || (l[v] = _ = s(f, h)), _(c), c;
+ }
+ i.exports = u;
+ }, 483: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s = o[0], l = o[1], u = o[2], c = o[3];
+ return s * s + l * l + u * u + c * c;
+ }
+ }, 492: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s[0], c = s[1], f = s[2];
+ return o[0] = u * l[0] + c * l[3] + f * l[6], o[1] = u * l[1] + c * l[4] + f * l[7], o[2] = u * l[2] + c * l[5] + f * l[8], o;
+ }
+ }, 501: function(i, a, o) {
+ i.exports = E;
+ var s = o(2762), l = o(8116), u = o(1879).n, c = [0, 0, 0], f = [0, 0, 0], h = [0, 0, 0], d = [0, 0, 0], v = [1, 1];
+ function _(T) {
+ return T[0] = T[1] = T[2] = 0, T;
+ }
+ function b(T, L) {
+ return T[0] = L[0], T[1] = L[1], T[2] = L[2], T;
+ }
+ function p(T, L, x, C, M, g, P, A) {
+ this.gl = T, this.vertBuffer = L, this.vao = x, this.shader = C, this.tickCount = M, this.tickOffset = g, this.gridCount = P, this.gridOffset = A;
+ }
+ var k = p.prototype;
+ k.bind = function(T, L, x) {
+ this.shader.bind(), this.shader.uniforms.model = T, this.shader.uniforms.view = L, this.shader.uniforms.projection = x, v[0] = this.gl.drawingBufferWidth, v[1] = this.gl.drawingBufferHeight, this.shader.uniforms.screenShape = v, this.vao.bind();
+ }, k.unbind = function() {
+ this.vao.unbind();
+ }, k.drawAxisLine = function(T, L, x, C, M) {
+ var g = _(f);
+ this.shader.uniforms.majorAxis = f, g[T] = L[1][T] - L[0][T], this.shader.uniforms.minorAxis = g;
+ var P = b(d, x);
+ P[T] += L[0][T], this.shader.uniforms.offset = P, this.shader.uniforms.lineWidth = M, this.shader.uniforms.color = C;
+ var A = _(h);
+ A[(T + 2) % 3] = 1, this.shader.uniforms.screenAxis = A, this.vao.draw(this.gl.TRIANGLES, 6);
+ var A = _(h);
+ A[(T + 1) % 3] = 1, this.shader.uniforms.screenAxis = A, this.vao.draw(this.gl.TRIANGLES, 6);
+ }, k.drawAxisTicks = function(T, L, x, C, M) {
+ if (this.tickCount[T]) {
+ var g = _(c);
+ g[T] = 1, this.shader.uniforms.majorAxis = g, this.shader.uniforms.offset = L, this.shader.uniforms.minorAxis = x, this.shader.uniforms.color = C, this.shader.uniforms.lineWidth = M;
+ var P = _(h);
+ P[T] = 1, this.shader.uniforms.screenAxis = P, this.vao.draw(this.gl.TRIANGLES, this.tickCount[T], this.tickOffset[T]);
+ }
+ }, k.drawGrid = function(T, L, x, C, M, g) {
+ if (this.gridCount[T]) {
+ var P = _(f);
+ P[L] = x[1][L] - x[0][L], this.shader.uniforms.minorAxis = P;
+ var A = b(d, C);
+ A[L] += x[0][L], this.shader.uniforms.offset = A;
+ var z = _(c);
+ z[T] = 1, this.shader.uniforms.majorAxis = z;
+ var O = _(h);
+ O[T] = 1, this.shader.uniforms.screenAxis = O, this.shader.uniforms.lineWidth = g, this.shader.uniforms.color = M, this.vao.draw(this.gl.TRIANGLES, this.gridCount[T], this.gridOffset[T]);
+ }
+ }, k.drawZero = function(T, L, x, C, M, g) {
+ var P = _(f);
+ this.shader.uniforms.majorAxis = P, P[T] = x[1][T] - x[0][T], this.shader.uniforms.minorAxis = P;
+ var A = b(d, C);
+ A[T] += x[0][T], this.shader.uniforms.offset = A;
+ var z = _(h);
+ z[L] = 1, this.shader.uniforms.screenAxis = z, this.shader.uniforms.lineWidth = g, this.shader.uniforms.color = M, this.vao.draw(this.gl.TRIANGLES, 6);
+ }, k.dispose = function() {
+ this.vao.dispose(), this.vertBuffer.dispose(), this.shader.dispose();
+ };
+ function E(T, L, x) {
+ var C = [], M = [0, 0, 0], g = [0, 0, 0], P = [0, 0, 0], A = [0, 0, 0];
+ C.push(0, 0, 1, 0, 1, 1, 0, 0, -1, 0, 0, -1, 0, 1, 1, 0, 1, -1);
+ for (var z = 0; z < 3; ++z) {
+ for (var G = C.length / 3 | 0, O = 0; O < x[z].length; ++O) {
+ var U = +x[z][O].x;
+ C.push(U, 0, 1, U, 1, 1, U, 0, -1, U, 0, -1, U, 1, 1, U, 1, -1);
+ }
+ var j = C.length / 3 | 0;
+ M[z] = G, g[z] = j - G;
+ for (var G = C.length / 3 | 0, Z = 0; Z < x[z].length; ++Z) {
+ var U = +x[z][Z].x;
+ C.push(U, 0, 1, U, 1, 1, U, 0, -1, U, 0, -1, U, 1, 1, U, 1, -1);
+ }
+ var j = C.length / 3 | 0;
+ P[z] = G, A[z] = j - G;
+ }
+ var N = s(T, new Float32Array(C)), H = l(T, [{ buffer: N, type: T.FLOAT, size: 3, stride: 0, offset: 0 }]), re = u(T);
+ return re.attributes.position.location = 0, new p(T, N, H, re, g, M, A, P);
+ }
+ }, 544: function(i, a, o) {
+ var s = o(5572);
+ i.exports = l;
+ function l(u, c) {
+ for (var f = u.length, h = new Array(f), d = 0; d < f; ++d) h[d] = s(u[d], c[d]);
+ return h;
+ }
+ }, 606: function(i, a, o) {
+ var s = o(236);
+ i.exports = l;
+ function l() {
+ var u = s();
+ return { get: function(c, f) {
+ var h = u(c);
+ return h.hasOwnProperty("value") ? h.value : f;
+ }, set: function(c, f) {
+ return u(c).value = f, this;
+ }, has: function(c) {
+ return "value" in u(c);
+ }, delete: function(c) {
+ return delete u(c).value;
+ } };
+ }
+ }, 614: function(i, a, o) {
+ var s = o(3236), l = s([`precision highp float;
+
+precision highp float;
+#define GLSLIFY 1
+
+vec3 getOrthogonalVector(vec3 v) {
+ // Return up-vector for only-z vector.
+ // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).
+ // From the above if-statement we have ||a|| > 0 U ||b|| > 0.
+ // Assign z = 0, x = -b, y = a:
+ // a*-b + b*a + c*0 = -ba + ba + 0 = 0
+ if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {
+ return normalize(vec3(-v.y, v.x, 0.0));
+ } else {
+ return normalize(vec3(0.0, v.z, -v.y));
+ }
+}
+
+// Calculate the cone vertex and normal at the given index.
+//
+// The returned vertex is for a cone with its top at origin and height of 1.0,
+// pointing in the direction of the vector attribute.
+//
+// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.
+// These vertices are used to make up the triangles of the cone by the following:
+// segment + 0 top vertex
+// segment + 1 perimeter vertex a+1
+// segment + 2 perimeter vertex a
+// segment + 3 center base vertex
+// segment + 4 perimeter vertex a
+// segment + 5 perimeter vertex a+1
+// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.
+// To go from index to segment, floor(index / 6)
+// To go from segment to angle, 2*pi * (segment/segmentCount)
+// To go from index to segment index, index - (segment*6)
+//
+vec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {
+
+ const float segmentCount = 8.0;
+
+ float index = rawIndex - floor(rawIndex /
+ (segmentCount * 6.0)) *
+ (segmentCount * 6.0);
+
+ float segment = floor(0.001 + index/6.0);
+ float segmentIndex = index - (segment*6.0);
+
+ normal = -normalize(d);
+
+ if (segmentIndex > 2.99 && segmentIndex < 3.01) {
+ return mix(vec3(0.0), -d, coneOffset);
+ }
+
+ float nextAngle = (
+ (segmentIndex > 0.99 && segmentIndex < 1.01) ||
+ (segmentIndex > 4.99 && segmentIndex < 5.01)
+ ) ? 1.0 : 0.0;
+ float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);
+
+ vec3 v1 = mix(d, vec3(0.0), coneOffset);
+ vec3 v2 = v1 - d;
+
+ vec3 u = getOrthogonalVector(d);
+ vec3 v = normalize(cross(u, d));
+
+ vec3 x = u * cos(angle) * length(d)*0.25;
+ vec3 y = v * sin(angle) * length(d)*0.25;
+ vec3 v3 = v2 + x + y;
+ if (segmentIndex < 3.0) {
+ vec3 tx = u * sin(angle);
+ vec3 ty = v * -cos(angle);
+ vec3 tangent = tx + ty;
+ normal = normalize(cross(v3 - v1, tangent));
+ }
+
+ if (segmentIndex == 0.0) {
+ return mix(d, vec3(0.0), coneOffset);
+ }
+ return v3;
+}
+
+attribute vec3 vector;
+attribute vec4 color, position;
+attribute vec2 uv;
+
+uniform float vectorScale, coneScale, coneOffset;
+uniform mat4 model, view, projection, inverseModel;
+uniform vec3 eyePosition, lightPosition;
+
+varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;
+varying vec4 f_color;
+varying vec2 f_uv;
+
+void main() {
+ // Scale the vector magnitude to stay constant with
+ // model & view changes.
+ vec3 normal;
+ vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);
+ vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);
+
+ //Lighting geometry parameters
+ vec4 cameraCoordinate = view * conePosition;
+ cameraCoordinate.xyz /= cameraCoordinate.w;
+ f_lightDirection = lightPosition - cameraCoordinate.xyz;
+ f_eyeDirection = eyePosition - cameraCoordinate.xyz;
+ f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);
+
+ // vec4 m_position = model * vec4(conePosition, 1.0);
+ vec4 t_position = view * conePosition;
+ gl_Position = projection * t_position;
+
+ f_color = color;
+ f_data = conePosition.xyz;
+ f_position = position.xyz;
+ f_uv = uv;
+}
+`]), u = s([`#extension GL_OES_standard_derivatives : enable
+
+precision highp float;
+#define GLSLIFY 1
+
+float beckmannDistribution(float x, float roughness) {
+ float NdotH = max(x, 0.0001);
+ float cos2Alpha = NdotH * NdotH;
+ float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;
+ float roughness2 = roughness * roughness;
+ float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;
+ return exp(tan2Alpha / roughness2) / denom;
+}
+
+float cookTorranceSpecular(
+ vec3 lightDirection,
+ vec3 viewDirection,
+ vec3 surfaceNormal,
+ float roughness,
+ float fresnel) {
+
+ float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);
+ float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);
+
+ //Half angle vector
+ vec3 H = normalize(lightDirection + viewDirection);
+
+ //Geometric term
+ float NdotH = max(dot(surfaceNormal, H), 0.0);
+ float VdotH = max(dot(viewDirection, H), 0.000001);
+ float LdotH = max(dot(lightDirection, H), 0.000001);
+ float G1 = (2.0 * NdotH * VdotN) / VdotH;
+ float G2 = (2.0 * NdotH * LdotN) / LdotH;
+ float G = min(1.0, min(G1, G2));
+
+ //Distribution term
+ float D = beckmannDistribution(NdotH, roughness);
+
+ //Fresnel term
+ float F = pow(1.0 - VdotN, fresnel);
+
+ //Multiply terms and done
+ return G * F * D / max(3.14159265 * VdotN, 0.000001);
+}
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;
+uniform sampler2D texture;
+
+varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;
+varying vec4 f_color;
+varying vec2 f_uv;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;
+ vec3 N = normalize(f_normal);
+ vec3 L = normalize(f_lightDirection);
+ vec3 V = normalize(f_eyeDirection);
+
+ if(gl_FrontFacing) {
+ N = -N;
+ }
+
+ float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));
+ float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);
+
+ vec4 surfaceColor = f_color * texture2D(texture, f_uv);
+ vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);
+
+ gl_FragColor = litColor * opacity;
+}
+`]), c = s([`precision highp float;
+
+precision highp float;
+#define GLSLIFY 1
+
+vec3 getOrthogonalVector(vec3 v) {
+ // Return up-vector for only-z vector.
+ // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).
+ // From the above if-statement we have ||a|| > 0 U ||b|| > 0.
+ // Assign z = 0, x = -b, y = a:
+ // a*-b + b*a + c*0 = -ba + ba + 0 = 0
+ if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {
+ return normalize(vec3(-v.y, v.x, 0.0));
+ } else {
+ return normalize(vec3(0.0, v.z, -v.y));
+ }
+}
+
+// Calculate the cone vertex and normal at the given index.
+//
+// The returned vertex is for a cone with its top at origin and height of 1.0,
+// pointing in the direction of the vector attribute.
+//
+// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.
+// These vertices are used to make up the triangles of the cone by the following:
+// segment + 0 top vertex
+// segment + 1 perimeter vertex a+1
+// segment + 2 perimeter vertex a
+// segment + 3 center base vertex
+// segment + 4 perimeter vertex a
+// segment + 5 perimeter vertex a+1
+// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.
+// To go from index to segment, floor(index / 6)
+// To go from segment to angle, 2*pi * (segment/segmentCount)
+// To go from index to segment index, index - (segment*6)
+//
+vec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {
+
+ const float segmentCount = 8.0;
+
+ float index = rawIndex - floor(rawIndex /
+ (segmentCount * 6.0)) *
+ (segmentCount * 6.0);
+
+ float segment = floor(0.001 + index/6.0);
+ float segmentIndex = index - (segment*6.0);
+
+ normal = -normalize(d);
+
+ if (segmentIndex > 2.99 && segmentIndex < 3.01) {
+ return mix(vec3(0.0), -d, coneOffset);
+ }
+
+ float nextAngle = (
+ (segmentIndex > 0.99 && segmentIndex < 1.01) ||
+ (segmentIndex > 4.99 && segmentIndex < 5.01)
+ ) ? 1.0 : 0.0;
+ float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);
+
+ vec3 v1 = mix(d, vec3(0.0), coneOffset);
+ vec3 v2 = v1 - d;
+
+ vec3 u = getOrthogonalVector(d);
+ vec3 v = normalize(cross(u, d));
+
+ vec3 x = u * cos(angle) * length(d)*0.25;
+ vec3 y = v * sin(angle) * length(d)*0.25;
+ vec3 v3 = v2 + x + y;
+ if (segmentIndex < 3.0) {
+ vec3 tx = u * sin(angle);
+ vec3 ty = v * -cos(angle);
+ vec3 tangent = tx + ty;
+ normal = normalize(cross(v3 - v1, tangent));
+ }
+
+ if (segmentIndex == 0.0) {
+ return mix(d, vec3(0.0), coneOffset);
+ }
+ return v3;
+}
+
+attribute vec4 vector;
+attribute vec4 position;
+attribute vec4 id;
+
+uniform mat4 model, view, projection;
+uniform float vectorScale, coneScale, coneOffset;
+
+varying vec3 f_position;
+varying vec4 f_id;
+
+void main() {
+ vec3 normal;
+ vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);
+ vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);
+ gl_Position = projection * (view * conePosition);
+ f_id = id;
+ f_position = position.xyz;
+}
+`]), f = s([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform float pickId;
+
+varying vec3 f_position;
+varying vec4 f_id;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;
+
+ gl_FragColor = vec4(pickId, f_id.xyz);
+}`]);
+ a.meshShader = { vertex: l, fragment: u, attributes: [{ name: "position", type: "vec4" }, { name: "color", type: "vec4" }, { name: "uv", type: "vec2" }, { name: "vector", type: "vec3" }] }, a.pickShader = { vertex: c, fragment: f, attributes: [{ name: "position", type: "vec4" }, { name: "id", type: "vec4" }, { name: "vector", type: "vec3" }] };
+ }, 620: function(i) {
+ i.exports = ["precision", "highp", "mediump", "lowp", "attribute", "const", "uniform", "varying", "break", "continue", "do", "for", "while", "if", "else", "in", "out", "inout", "float", "int", "uint", "void", "bool", "true", "false", "discard", "return", "mat2", "mat3", "mat4", "vec2", "vec3", "vec4", "ivec2", "ivec3", "ivec4", "bvec2", "bvec3", "bvec4", "sampler1D", "sampler2D", "sampler3D", "samplerCube", "sampler1DShadow", "sampler2DShadow", "struct", "asm", "class", "union", "enum", "typedef", "template", "this", "packed", "goto", "switch", "default", "inline", "noinline", "volatile", "public", "static", "extern", "external", "interface", "long", "short", "double", "half", "fixed", "unsigned", "input", "output", "hvec2", "hvec3", "hvec4", "dvec2", "dvec3", "dvec4", "fvec2", "fvec3", "fvec4", "sampler2DRect", "sampler3DRect", "sampler2DRectShadow", "sizeof", "cast", "namespace", "using"];
+ }, 665: function(i, a, o) {
+ var s = o(3202);
+ i.exports = f;
+ var l = 96;
+ function u(h, d) {
+ var v = s(getComputedStyle(h).getPropertyValue(d));
+ return v[0] * f(v[1], h);
+ }
+ function c(h, d) {
+ var v = document.createElement("div");
+ v.style["font-size"] = "128" + h, d.appendChild(v);
+ var _ = u(v, "font-size") / 128;
+ return d.removeChild(v), _;
+ }
+ function f(h, d) {
+ switch (d = d || document.body, h = (h || "px").trim().toLowerCase(), (d === window || d === document) && (d = document.body), h) {
+ case "%":
+ return d.clientHeight / 100;
+ case "ch":
+ case "ex":
+ return c(h, d);
+ case "em":
+ return u(d, "font-size");
+ case "rem":
+ return u(document.body, "font-size");
+ case "vw":
+ return window.innerWidth / 100;
+ case "vh":
+ return window.innerHeight / 100;
+ case "vmin":
+ return Math.min(window.innerWidth, window.innerHeight) / 100;
+ case "vmax":
+ return Math.max(window.innerWidth, window.innerHeight) / 100;
+ case "in":
+ return l;
+ case "cm":
+ return l / 2.54;
+ case "mm":
+ return l / 25.4;
+ case "pt":
+ return l / 72;
+ case "pc":
+ return l / 6;
+ }
+ return 1;
+ }
+ }, 727: function(i, a, o) {
+ var s = o(2962), l = 6;
+ function u(T) {
+ var L = T === 2 ? h : T === 3 ? d : T === 4 ? v : T === 5 ? _ : b;
+ return T < 6 ? L(s[T]) : L(s);
+ }
+ function c() {
+ return [[0]];
+ }
+ function f(T, L) {
+ return [[L[0]], [T[0][0]]];
+ }
+ function h(T) {
+ return function(x, C) {
+ return [T([[+C[0], +x[0][1]], [+C[1], +x[1][1]]]), T([[+x[0][0], +C[0]], [+x[1][0], +C[1]]]), T(x)];
+ };
+ }
+ function d(T) {
+ return function(x, C) {
+ return [T([[+C[0], +x[0][1], +x[0][2]], [+C[1], +x[1][1], +x[1][2]], [+C[2], +x[2][1], +x[2][2]]]), T([[+x[0][0], +C[0], +x[0][2]], [+x[1][0], +C[1], +x[1][2]], [+x[2][0], +C[2], +x[2][2]]]), T([[+x[0][0], +x[0][1], +C[0]], [+x[1][0], +x[1][1], +C[1]], [+x[2][0], +x[2][1], +C[2]]]), T(x)];
+ };
+ }
+ function v(T) {
+ return function(x, C) {
+ return [T([[+C[0], +x[0][1], +x[0][2], +x[0][3]], [+C[1], +x[1][1], +x[1][2], +x[1][3]], [+C[2], +x[2][1], +x[2][2], +x[2][3]], [+C[3], +x[3][1], +x[3][2], +x[3][3]]]), T([[+x[0][0], +C[0], +x[0][2], +x[0][3]], [+x[1][0], +C[1], +x[1][2], +x[1][3]], [+x[2][0], +C[2], +x[2][2], +x[2][3]], [+x[3][0], +C[3], +x[3][2], +x[3][3]]]), T([[+x[0][0], +x[0][1], +C[0], +x[0][3]], [+x[1][0], +x[1][1], +C[1], +x[1][3]], [+x[2][0], +x[2][1], +C[2], +x[2][3]], [+x[3][0], +x[3][1], +C[3], +x[3][3]]]), T([[+x[0][0], +x[0][1], +x[0][2], +C[0]], [+x[1][0], +x[1][1], +x[1][2], +C[1]], [+x[2][0], +x[2][1], +x[2][2], +C[2]], [+x[3][0], +x[3][1], +x[3][2], +C[3]]]), T(x)];
+ };
+ }
+ function _(T) {
+ return function(x, C) {
+ return [T([[+C[0], +x[0][1], +x[0][2], +x[0][3], +x[0][4]], [+C[1], +x[1][1], +x[1][2], +x[1][3], +x[1][4]], [+C[2], +x[2][1], +x[2][2], +x[2][3], +x[2][4]], [+C[3], +x[3][1], +x[3][2], +x[3][3], +x[3][4]], [+C[4], +x[4][1], +x[4][2], +x[4][3], +x[4][4]]]), T([[+x[0][0], +C[0], +x[0][2], +x[0][3], +x[0][4]], [+x[1][0], +C[1], +x[1][2], +x[1][3], +x[1][4]], [+x[2][0], +C[2], +x[2][2], +x[2][3], +x[2][4]], [+x[3][0], +C[3], +x[3][2], +x[3][3], +x[3][4]], [+x[4][0], +C[4], +x[4][2], +x[4][3], +x[4][4]]]), T([[+x[0][0], +x[0][1], +C[0], +x[0][3], +x[0][4]], [+x[1][0], +x[1][1], +C[1], +x[1][3], +x[1][4]], [+x[2][0], +x[2][1], +C[2], +x[2][3], +x[2][4]], [+x[3][0], +x[3][1], +C[3], +x[3][3], +x[3][4]], [+x[4][0], +x[4][1], +C[4], +x[4][3], +x[4][4]]]), T([[+x[0][0], +x[0][1], +x[0][2], +C[0], +x[0][4]], [+x[1][0], +x[1][1], +x[1][2], +C[1], +x[1][4]], [+x[2][0], +x[2][1], +x[2][2], +C[2], +x[2][4]], [+x[3][0], +x[3][1], +x[3][2], +C[3], +x[3][4]], [+x[4][0], +x[4][1], +x[4][2], +C[4], +x[4][4]]]), T([[+x[0][0], +x[0][1], +x[0][2], +x[0][3], +C[0]], [+x[1][0], +x[1][1], +x[1][2], +x[1][3], +C[1]], [+x[2][0], +x[2][1], +x[2][2], +x[2][3], +C[2]], [+x[3][0], +x[3][1], +x[3][2], +x[3][3], +C[3]], [+x[4][0], +x[4][1], +x[4][2], +x[4][3], +C[4]]]), T(x)];
+ };
+ }
+ function b(T) {
+ return function(x, C) {
+ return [T([[+C[0], +x[0][1], +x[0][2], +x[0][3], +x[0][4], +x[0][5]], [+C[1], +x[1][1], +x[1][2], +x[1][3], +x[1][4], +x[1][5]], [+C[2], +x[2][1], +x[2][2], +x[2][3], +x[2][4], +x[2][5]], [+C[3], +x[3][1], +x[3][2], +x[3][3], +x[3][4], +x[3][5]], [+C[4], +x[4][1], +x[4][2], +x[4][3], +x[4][4], +x[4][5]], [+C[5], +x[5][1], +x[5][2], +x[5][3], +x[5][4], +x[5][5]]]), T([[+x[0][0], +C[0], +x[0][2], +x[0][3], +x[0][4], +x[0][5]], [+x[1][0], +C[1], +x[1][2], +x[1][3], +x[1][4], +x[1][5]], [+x[2][0], +C[2], +x[2][2], +x[2][3], +x[2][4], +x[2][5]], [+x[3][0], +C[3], +x[3][2], +x[3][3], +x[3][4], +x[3][5]], [+x[4][0], +C[4], +x[4][2], +x[4][3], +x[4][4], +x[4][5]], [+x[5][0], +C[5], +x[5][2], +x[5][3], +x[5][4], +x[5][5]]]), T([[+x[0][0], +x[0][1], +C[0], +x[0][3], +x[0][4], +x[0][5]], [+x[1][0], +x[1][1], +C[1], +x[1][3], +x[1][4], +x[1][5]], [+x[2][0], +x[2][1], +C[2], +x[2][3], +x[2][4], +x[2][5]], [+x[3][0], +x[3][1], +C[3], +x[3][3], +x[3][4], +x[3][5]], [+x[4][0], +x[4][1], +C[4], +x[4][3], +x[4][4], +x[4][5]], [+x[5][0], +x[5][1], +C[5], +x[5][3], +x[5][4], +x[5][5]]]), T([[+x[0][0], +x[0][1], +x[0][2], +C[0], +x[0][4], +x[0][5]], [+x[1][0], +x[1][1], +x[1][2], +C[1], +x[1][4], +x[1][5]], [+x[2][0], +x[2][1], +x[2][2], +C[2], +x[2][4], +x[2][5]], [+x[3][0], +x[3][1], +x[3][2], +C[3], +x[3][4], +x[3][5]], [+x[4][0], +x[4][1], +x[4][2], +C[4], +x[4][4], +x[4][5]], [+x[5][0], +x[5][1], +x[5][2], +C[5], +x[5][4], +x[5][5]]]), T([[+x[0][0], +x[0][1], +x[0][2], +x[0][3], +C[0], +x[0][5]], [+x[1][0], +x[1][1], +x[1][2], +x[1][3], +C[1], +x[1][5]], [+x[2][0], +x[2][1], +x[2][2], +x[2][3], +C[2], +x[2][5]], [+x[3][0], +x[3][1], +x[3][2], +x[3][3], +C[3], +x[3][5]], [+x[4][0], +x[4][1], +x[4][2], +x[4][3], +C[4], +x[4][5]], [+x[5][0], +x[5][1], +x[5][2], +x[5][3], +C[5], +x[5][5]]]), T([[+x[0][0], +x[0][1], +x[0][2], +x[0][3], +x[0][4], +C[0]], [+x[1][0], +x[1][1], +x[1][2], +x[1][3], +x[1][4], +C[1]], [+x[2][0], +x[2][1], +x[2][2], +x[2][3], +x[2][4], +C[2]], [+x[3][0], +x[3][1], +x[3][2], +x[3][3], +x[3][4], +C[3]], [+x[4][0], +x[4][1], +x[4][2], +x[4][3], +x[4][4], +C[4]], [+x[5][0], +x[5][1], +x[5][2], +x[5][3], +x[5][4], +C[5]]]), T(x)];
+ };
+ }
+ var p = [c, f];
+ function k(T, L, x, C, M, g, P, A) {
+ return function(O, U) {
+ switch (O.length) {
+ case 0:
+ return T(O, U);
+ case 1:
+ return L(O, U);
+ case 2:
+ return x(O, U);
+ case 3:
+ return C(O, U);
+ case 4:
+ return M(O, U);
+ case 5:
+ return g(O, U);
+ }
+ var G = P[O.length];
+ return G || (G = P[O.length] = A(O.length)), G(O, U);
+ };
+ }
+ function E() {
+ for (; p.length < l; ) p.push(u(p.length));
+ i.exports = k.apply(void 0, p.concat([p, u]));
+ for (var T = 0; T < l; ++T) i.exports[T] = p[T];
+ }
+ E();
+ }, 737: function(i) {
+ i.exports = { 0: "NONE", 1: "ONE", 2: "LINE_LOOP", 3: "LINE_STRIP", 4: "TRIANGLES", 5: "TRIANGLE_STRIP", 6: "TRIANGLE_FAN", 256: "DEPTH_BUFFER_BIT", 512: "NEVER", 513: "LESS", 514: "EQUAL", 515: "LEQUAL", 516: "GREATER", 517: "NOTEQUAL", 518: "GEQUAL", 519: "ALWAYS", 768: "SRC_COLOR", 769: "ONE_MINUS_SRC_COLOR", 770: "SRC_ALPHA", 771: "ONE_MINUS_SRC_ALPHA", 772: "DST_ALPHA", 773: "ONE_MINUS_DST_ALPHA", 774: "DST_COLOR", 775: "ONE_MINUS_DST_COLOR", 776: "SRC_ALPHA_SATURATE", 1024: "STENCIL_BUFFER_BIT", 1028: "FRONT", 1029: "BACK", 1032: "FRONT_AND_BACK", 1280: "INVALID_ENUM", 1281: "INVALID_VALUE", 1282: "INVALID_OPERATION", 1285: "OUT_OF_MEMORY", 1286: "INVALID_FRAMEBUFFER_OPERATION", 2304: "CW", 2305: "CCW", 2849: "LINE_WIDTH", 2884: "CULL_FACE", 2885: "CULL_FACE_MODE", 2886: "FRONT_FACE", 2928: "DEPTH_RANGE", 2929: "DEPTH_TEST", 2930: "DEPTH_WRITEMASK", 2931: "DEPTH_CLEAR_VALUE", 2932: "DEPTH_FUNC", 2960: "STENCIL_TEST", 2961: "STENCIL_CLEAR_VALUE", 2962: "STENCIL_FUNC", 2963: "STENCIL_VALUE_MASK", 2964: "STENCIL_FAIL", 2965: "STENCIL_PASS_DEPTH_FAIL", 2966: "STENCIL_PASS_DEPTH_PASS", 2967: "STENCIL_REF", 2968: "STENCIL_WRITEMASK", 2978: "VIEWPORT", 3024: "DITHER", 3042: "BLEND", 3088: "SCISSOR_BOX", 3089: "SCISSOR_TEST", 3106: "COLOR_CLEAR_VALUE", 3107: "COLOR_WRITEMASK", 3317: "UNPACK_ALIGNMENT", 3333: "PACK_ALIGNMENT", 3379: "MAX_TEXTURE_SIZE", 3386: "MAX_VIEWPORT_DIMS", 3408: "SUBPIXEL_BITS", 3410: "RED_BITS", 3411: "GREEN_BITS", 3412: "BLUE_BITS", 3413: "ALPHA_BITS", 3414: "DEPTH_BITS", 3415: "STENCIL_BITS", 3553: "TEXTURE_2D", 4352: "DONT_CARE", 4353: "FASTEST", 4354: "NICEST", 5120: "BYTE", 5121: "UNSIGNED_BYTE", 5122: "SHORT", 5123: "UNSIGNED_SHORT", 5124: "INT", 5125: "UNSIGNED_INT", 5126: "FLOAT", 5386: "INVERT", 5890: "TEXTURE", 6401: "STENCIL_INDEX", 6402: "DEPTH_COMPONENT", 6406: "ALPHA", 6407: "RGB", 6408: "RGBA", 6409: "LUMINANCE", 6410: "LUMINANCE_ALPHA", 7680: "KEEP", 7681: "REPLACE", 7682: "INCR", 7683: "DECR", 7936: "VENDOR", 7937: "RENDERER", 7938: "VERSION", 9728: "NEAREST", 9729: "LINEAR", 9984: "NEAREST_MIPMAP_NEAREST", 9985: "LINEAR_MIPMAP_NEAREST", 9986: "NEAREST_MIPMAP_LINEAR", 9987: "LINEAR_MIPMAP_LINEAR", 10240: "TEXTURE_MAG_FILTER", 10241: "TEXTURE_MIN_FILTER", 10242: "TEXTURE_WRAP_S", 10243: "TEXTURE_WRAP_T", 10497: "REPEAT", 10752: "POLYGON_OFFSET_UNITS", 16384: "COLOR_BUFFER_BIT", 32769: "CONSTANT_COLOR", 32770: "ONE_MINUS_CONSTANT_COLOR", 32771: "CONSTANT_ALPHA", 32772: "ONE_MINUS_CONSTANT_ALPHA", 32773: "BLEND_COLOR", 32774: "FUNC_ADD", 32777: "BLEND_EQUATION_RGB", 32778: "FUNC_SUBTRACT", 32779: "FUNC_REVERSE_SUBTRACT", 32819: "UNSIGNED_SHORT_4_4_4_4", 32820: "UNSIGNED_SHORT_5_5_5_1", 32823: "POLYGON_OFFSET_FILL", 32824: "POLYGON_OFFSET_FACTOR", 32854: "RGBA4", 32855: "RGB5_A1", 32873: "TEXTURE_BINDING_2D", 32926: "SAMPLE_ALPHA_TO_COVERAGE", 32928: "SAMPLE_COVERAGE", 32936: "SAMPLE_BUFFERS", 32937: "SAMPLES", 32938: "SAMPLE_COVERAGE_VALUE", 32939: "SAMPLE_COVERAGE_INVERT", 32968: "BLEND_DST_RGB", 32969: "BLEND_SRC_RGB", 32970: "BLEND_DST_ALPHA", 32971: "BLEND_SRC_ALPHA", 33071: "CLAMP_TO_EDGE", 33170: "GENERATE_MIPMAP_HINT", 33189: "DEPTH_COMPONENT16", 33306: "DEPTH_STENCIL_ATTACHMENT", 33635: "UNSIGNED_SHORT_5_6_5", 33648: "MIRRORED_REPEAT", 33901: "ALIASED_POINT_SIZE_RANGE", 33902: "ALIASED_LINE_WIDTH_RANGE", 33984: "TEXTURE0", 33985: "TEXTURE1", 33986: "TEXTURE2", 33987: "TEXTURE3", 33988: "TEXTURE4", 33989: "TEXTURE5", 33990: "TEXTURE6", 33991: "TEXTURE7", 33992: "TEXTURE8", 33993: "TEXTURE9", 33994: "TEXTURE10", 33995: "TEXTURE11", 33996: "TEXTURE12", 33997: "TEXTURE13", 33998: "TEXTURE14", 33999: "TEXTURE15", 34e3: "TEXTURE16", 34001: "TEXTURE17", 34002: "TEXTURE18", 34003: "TEXTURE19", 34004: "TEXTURE20", 34005: "TEXTURE21", 34006: "TEXTURE22", 34007: "TEXTURE23", 34008: "TEXTURE24", 34009: "TEXTURE25", 34010: "TEXTURE26", 34011: "TEXTURE27", 34012: "TEXTURE28", 34013: "TEXTURE29", 34014: "TEXTURE30", 34015: "TEXTURE31", 34016: "ACTIVE_TEXTURE", 34024: "MAX_RENDERBUFFER_SIZE", 34041: "DEPTH_STENCIL", 34055: "INCR_WRAP", 34056: "DECR_WRAP", 34067: "TEXTURE_CUBE_MAP", 34068: "TEXTURE_BINDING_CUBE_MAP", 34069: "TEXTURE_CUBE_MAP_POSITIVE_X", 34070: "TEXTURE_CUBE_MAP_NEGATIVE_X", 34071: "TEXTURE_CUBE_MAP_POSITIVE_Y", 34072: "TEXTURE_CUBE_MAP_NEGATIVE_Y", 34073: "TEXTURE_CUBE_MAP_POSITIVE_Z", 34074: "TEXTURE_CUBE_MAP_NEGATIVE_Z", 34076: "MAX_CUBE_MAP_TEXTURE_SIZE", 34338: "VERTEX_ATTRIB_ARRAY_ENABLED", 34339: "VERTEX_ATTRIB_ARRAY_SIZE", 34340: "VERTEX_ATTRIB_ARRAY_STRIDE", 34341: "VERTEX_ATTRIB_ARRAY_TYPE", 34342: "CURRENT_VERTEX_ATTRIB", 34373: "VERTEX_ATTRIB_ARRAY_POINTER", 34466: "NUM_COMPRESSED_TEXTURE_FORMATS", 34467: "COMPRESSED_TEXTURE_FORMATS", 34660: "BUFFER_SIZE", 34661: "BUFFER_USAGE", 34816: "STENCIL_BACK_FUNC", 34817: "STENCIL_BACK_FAIL", 34818: "STENCIL_BACK_PASS_DEPTH_FAIL", 34819: "STENCIL_BACK_PASS_DEPTH_PASS", 34877: "BLEND_EQUATION_ALPHA", 34921: "MAX_VERTEX_ATTRIBS", 34922: "VERTEX_ATTRIB_ARRAY_NORMALIZED", 34930: "MAX_TEXTURE_IMAGE_UNITS", 34962: "ARRAY_BUFFER", 34963: "ELEMENT_ARRAY_BUFFER", 34964: "ARRAY_BUFFER_BINDING", 34965: "ELEMENT_ARRAY_BUFFER_BINDING", 34975: "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", 35040: "STREAM_DRAW", 35044: "STATIC_DRAW", 35048: "DYNAMIC_DRAW", 35632: "FRAGMENT_SHADER", 35633: "VERTEX_SHADER", 35660: "MAX_VERTEX_TEXTURE_IMAGE_UNITS", 35661: "MAX_COMBINED_TEXTURE_IMAGE_UNITS", 35663: "SHADER_TYPE", 35664: "FLOAT_VEC2", 35665: "FLOAT_VEC3", 35666: "FLOAT_VEC4", 35667: "INT_VEC2", 35668: "INT_VEC3", 35669: "INT_VEC4", 35670: "BOOL", 35671: "BOOL_VEC2", 35672: "BOOL_VEC3", 35673: "BOOL_VEC4", 35674: "FLOAT_MAT2", 35675: "FLOAT_MAT3", 35676: "FLOAT_MAT4", 35678: "SAMPLER_2D", 35680: "SAMPLER_CUBE", 35712: "DELETE_STATUS", 35713: "COMPILE_STATUS", 35714: "LINK_STATUS", 35715: "VALIDATE_STATUS", 35716: "INFO_LOG_LENGTH", 35717: "ATTACHED_SHADERS", 35718: "ACTIVE_UNIFORMS", 35719: "ACTIVE_UNIFORM_MAX_LENGTH", 35720: "SHADER_SOURCE_LENGTH", 35721: "ACTIVE_ATTRIBUTES", 35722: "ACTIVE_ATTRIBUTE_MAX_LENGTH", 35724: "SHADING_LANGUAGE_VERSION", 35725: "CURRENT_PROGRAM", 36003: "STENCIL_BACK_REF", 36004: "STENCIL_BACK_VALUE_MASK", 36005: "STENCIL_BACK_WRITEMASK", 36006: "FRAMEBUFFER_BINDING", 36007: "RENDERBUFFER_BINDING", 36048: "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", 36049: "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", 36050: "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", 36051: "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", 36053: "FRAMEBUFFER_COMPLETE", 36054: "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", 36055: "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", 36057: "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", 36061: "FRAMEBUFFER_UNSUPPORTED", 36064: "COLOR_ATTACHMENT0", 36096: "DEPTH_ATTACHMENT", 36128: "STENCIL_ATTACHMENT", 36160: "FRAMEBUFFER", 36161: "RENDERBUFFER", 36162: "RENDERBUFFER_WIDTH", 36163: "RENDERBUFFER_HEIGHT", 36164: "RENDERBUFFER_INTERNAL_FORMAT", 36168: "STENCIL_INDEX8", 36176: "RENDERBUFFER_RED_SIZE", 36177: "RENDERBUFFER_GREEN_SIZE", 36178: "RENDERBUFFER_BLUE_SIZE", 36179: "RENDERBUFFER_ALPHA_SIZE", 36180: "RENDERBUFFER_DEPTH_SIZE", 36181: "RENDERBUFFER_STENCIL_SIZE", 36194: "RGB565", 36336: "LOW_FLOAT", 36337: "MEDIUM_FLOAT", 36338: "HIGH_FLOAT", 36339: "LOW_INT", 36340: "MEDIUM_INT", 36341: "HIGH_INT", 36346: "SHADER_COMPILER", 36347: "MAX_VERTEX_UNIFORM_VECTORS", 36348: "MAX_VARYING_VECTORS", 36349: "MAX_FRAGMENT_UNIFORM_VECTORS", 37440: "UNPACK_FLIP_Y_WEBGL", 37441: "UNPACK_PREMULTIPLY_ALPHA_WEBGL", 37442: "CONTEXT_LOST_WEBGL", 37443: "UNPACK_COLORSPACE_CONVERSION_WEBGL", 37444: "BROWSER_DEFAULT_WEBGL" };
+ }, 781: function(i, a, o) {
+ i.exports = l;
+ var s = o(3349);
+ function l(u, c) {
+ var f = [];
+ return c = +c || 0, s(u.hi(u.shape[0] - 1), f, c), f;
+ }
+ }, 783: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ var c = s[0], f = s[1], h = s[2], d = s[3], v = l[0], _ = l[1], b = l[2], p = l[3], k, E, T, L, x;
+ return E = c * v + f * _ + h * b + d * p, E < 0 && (E = -E, v = -v, _ = -_, b = -b, p = -p), 1 - E > 1e-6 ? (k = Math.acos(E), T = Math.sin(k), L = Math.sin((1 - u) * k) / T, x = Math.sin(u * k) / T) : (L = 1 - u, x = u), o[0] = L * c + x * v, o[1] = L * f + x * _, o[2] = L * h + x * b, o[3] = L * d + x * p, o;
+ }
+ }, 799: function(i, a, o) {
+ var s = o(3236), l = o(9405), u = s([`precision mediump float;
+#define GLSLIFY 1
+attribute vec2 position;
+varying vec2 uv;
+void main() {
+ uv = position;
+ gl_Position = vec4(position, 0, 1);
+}`]), c = s([`precision mediump float;
+#define GLSLIFY 1
+
+uniform sampler2D accumBuffer;
+varying vec2 uv;
+
+void main() {
+ vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));
+ gl_FragColor = min(vec4(1,1,1,1), accum);
+}`]);
+ i.exports = function(f) {
+ return l(f, u, c, null, [{ name: "position", type: "vec2" }]);
+ };
+ }, 811: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = 1 / s[0], o[1] = 1 / s[1], o[2] = 1 / s[2], o;
+ }
+ }, 840: function(i, a, o) {
+ var s = o(3236), l = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position, normal;
+attribute vec4 color;
+attribute vec2 uv;
+
+uniform mat4 model
+ , view
+ , projection
+ , inverseModel;
+uniform vec3 eyePosition
+ , lightPosition;
+
+varying vec3 f_normal
+ , f_lightDirection
+ , f_eyeDirection
+ , f_data;
+varying vec4 f_color;
+varying vec2 f_uv;
+
+vec4 project(vec3 p) {
+ return projection * (view * (model * vec4(p, 1.0)));
+}
+
+void main() {
+ gl_Position = project(position);
+
+ //Lighting geometry parameters
+ vec4 cameraCoordinate = view * vec4(position , 1.0);
+ cameraCoordinate.xyz /= cameraCoordinate.w;
+ f_lightDirection = lightPosition - cameraCoordinate.xyz;
+ f_eyeDirection = eyePosition - cameraCoordinate.xyz;
+ f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);
+
+ f_color = color;
+ f_data = position;
+ f_uv = uv;
+}
+`]), u = s([`#extension GL_OES_standard_derivatives : enable
+
+precision highp float;
+#define GLSLIFY 1
+
+float beckmannDistribution(float x, float roughness) {
+ float NdotH = max(x, 0.0001);
+ float cos2Alpha = NdotH * NdotH;
+ float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;
+ float roughness2 = roughness * roughness;
+ float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;
+ return exp(tan2Alpha / roughness2) / denom;
+}
+
+float cookTorranceSpecular(
+ vec3 lightDirection,
+ vec3 viewDirection,
+ vec3 surfaceNormal,
+ float roughness,
+ float fresnel) {
+
+ float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);
+ float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);
+
+ //Half angle vector
+ vec3 H = normalize(lightDirection + viewDirection);
+
+ //Geometric term
+ float NdotH = max(dot(surfaceNormal, H), 0.0);
+ float VdotH = max(dot(viewDirection, H), 0.000001);
+ float LdotH = max(dot(lightDirection, H), 0.000001);
+ float G1 = (2.0 * NdotH * VdotN) / VdotH;
+ float G2 = (2.0 * NdotH * LdotN) / LdotH;
+ float G = min(1.0, min(G1, G2));
+
+ //Distribution term
+ float D = beckmannDistribution(NdotH, roughness);
+
+ //Fresnel term
+ float F = pow(1.0 - VdotN, fresnel);
+
+ //Multiply terms and done
+ return G * F * D / max(3.14159265 * VdotN, 0.000001);
+}
+
+//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform float roughness
+ , fresnel
+ , kambient
+ , kdiffuse
+ , kspecular;
+uniform sampler2D texture;
+
+varying vec3 f_normal
+ , f_lightDirection
+ , f_eyeDirection
+ , f_data;
+varying vec4 f_color;
+varying vec2 f_uv;
+
+void main() {
+ if (f_color.a == 0.0 ||
+ outOfRange(clipBounds[0], clipBounds[1], f_data)
+ ) discard;
+
+ vec3 N = normalize(f_normal);
+ vec3 L = normalize(f_lightDirection);
+ vec3 V = normalize(f_eyeDirection);
+
+ if(gl_FrontFacing) {
+ N = -N;
+ }
+
+ float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));
+ //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d
+
+ float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);
+
+ vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);
+ vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);
+
+ gl_FragColor = litColor * f_color.a;
+}
+`]), c = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position;
+attribute vec4 color;
+attribute vec2 uv;
+
+uniform mat4 model, view, projection;
+
+varying vec4 f_color;
+varying vec3 f_data;
+varying vec2 f_uv;
+
+void main() {
+ gl_Position = projection * (view * (model * vec4(position, 1.0)));
+ f_color = color;
+ f_data = position;
+ f_uv = uv;
+}`]), f = s([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform sampler2D texture;
+uniform float opacity;
+
+varying vec4 f_color;
+varying vec3 f_data;
+varying vec2 f_uv;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;
+
+ gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;
+}`]), h = s([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+attribute vec3 position;
+attribute vec4 color;
+attribute vec2 uv;
+attribute float pointSize;
+
+uniform mat4 model, view, projection;
+uniform vec3 clipBounds[2];
+
+varying vec4 f_color;
+varying vec2 f_uv;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], position)) {
+
+ gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);
+ } else {
+ gl_Position = projection * (view * (model * vec4(position, 1.0)));
+ }
+ gl_PointSize = pointSize;
+ f_color = color;
+ f_uv = uv;
+}`]), d = s([`precision highp float;
+#define GLSLIFY 1
+
+uniform sampler2D texture;
+uniform float opacity;
+
+varying vec4 f_color;
+varying vec2 f_uv;
+
+void main() {
+ vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);
+ if(dot(pointR, pointR) > 0.25) {
+ discard;
+ }
+ gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;
+}`]), v = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position;
+attribute vec4 id;
+
+uniform mat4 model, view, projection;
+
+varying vec3 f_position;
+varying vec4 f_id;
+
+void main() {
+ gl_Position = projection * (view * (model * vec4(position, 1.0)));
+ f_id = id;
+ f_position = position;
+}`]), _ = s([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform float pickId;
+
+varying vec3 f_position;
+varying vec4 f_id;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;
+
+ gl_FragColor = vec4(pickId, f_id.xyz);
+}`]), b = s([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+attribute vec3 position;
+attribute float pointSize;
+attribute vec4 id;
+
+uniform mat4 model, view, projection;
+uniform vec3 clipBounds[2];
+
+varying vec3 f_position;
+varying vec4 f_id;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], position)) {
+
+ gl_Position = vec4(0.0, 0.0, 0.0, 0.0);
+ } else {
+ gl_Position = projection * (view * (model * vec4(position, 1.0)));
+ gl_PointSize = pointSize;
+ }
+ f_id = id;
+ f_position = position;
+}`]), p = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position;
+
+uniform mat4 model, view, projection;
+
+void main() {
+ gl_Position = projection * (view * (model * vec4(position, 1.0)));
+}`]), k = s([`precision highp float;
+#define GLSLIFY 1
+
+uniform vec3 contourColor;
+
+void main() {
+ gl_FragColor = vec4(contourColor, 1.0);
+}
+`]);
+ a.meshShader = { vertex: l, fragment: u, attributes: [{ name: "position", type: "vec3" }, { name: "normal", type: "vec3" }, { name: "color", type: "vec4" }, { name: "uv", type: "vec2" }] }, a.wireShader = { vertex: c, fragment: f, attributes: [{ name: "position", type: "vec3" }, { name: "color", type: "vec4" }, { name: "uv", type: "vec2" }] }, a.pointShader = { vertex: h, fragment: d, attributes: [{ name: "position", type: "vec3" }, { name: "color", type: "vec4" }, { name: "uv", type: "vec2" }, { name: "pointSize", type: "float" }] }, a.pickShader = { vertex: v, fragment: _, attributes: [{ name: "position", type: "vec3" }, { name: "id", type: "vec4" }] }, a.pointPickShader = { vertex: b, fragment: _, attributes: [{ name: "position", type: "vec3" }, { name: "pointSize", type: "float" }, { name: "id", type: "vec4" }] }, a.contourShader = { vertex: p, fragment: k, attributes: [{ name: "position", type: "vec3" }] };
+ }, 855: function(i, a, o) {
+ i.exports = { init: E, sweepBipartite: x, sweepComplete: C, scanBipartite: M, scanComplete: g };
+ var s = o(1888), l = o(8828), u = o(4192), c = 1 << 28, f = 1024, h = s.mallocInt32(f), d = s.mallocInt32(f), v = s.mallocInt32(f), _ = s.mallocInt32(f), b = s.mallocInt32(f), p = s.mallocInt32(f), k = s.mallocDouble(f * 8);
+ function E(P) {
+ var A = l.nextPow2(P);
+ h.length < A && (s.free(h), h = s.mallocInt32(A)), d.length < A && (s.free(d), d = s.mallocInt32(A)), v.length < A && (s.free(v), v = s.mallocInt32(A)), _.length < A && (s.free(_), _ = s.mallocInt32(A)), b.length < A && (s.free(b), b = s.mallocInt32(A)), p.length < A && (s.free(p), p = s.mallocInt32(A));
+ var z = 8 * A;
+ k.length < z && (s.free(k), k = s.mallocDouble(z));
+ }
+ function T(P, A, z, O) {
+ var U = A[O], G = P[z - 1];
+ P[U] = G, A[G] = U;
+ }
+ function L(P, A, z, O) {
+ P[z] = O, A[O] = z;
+ }
+ function x(P, A, z, O, U, G, Z, j, N, H) {
+ for (var re = 0, oe = 2 * P, _e = P - 1, Ce = oe - 1, Le = z; Le < O; ++Le) {
+ var ge = G[Le], ie = oe * Le;
+ k[re++] = U[ie + _e], k[re++] = -(ge + 1), k[re++] = U[ie + Ce], k[re++] = ge;
+ }
+ for (var Le = Z; Le < j; ++Le) {
+ var ge = H[Le] + c, Se = oe * Le;
+ k[re++] = N[Se + _e], k[re++] = -ge, k[re++] = N[Se + Ce], k[re++] = ge;
+ }
+ var Ee = re >>> 1;
+ u(k, Ee);
+ for (var Ae = 0, Be = 0, Le = 0; Le < Ee; ++Le) {
+ var Pe = k[2 * Le + 1] | 0;
+ if (Pe >= c) Pe = Pe - c | 0, T(v, _, Be--, Pe);
+ else if (Pe >= 0) T(h, d, Ae--, Pe);
+ else if (Pe <= -268435456) {
+ Pe = -Pe - c | 0;
+ for (var me = 0; me < Ae; ++me) {
+ var De = A(h[me], Pe);
+ if (De !== void 0) return De;
+ }
+ L(v, _, Be++, Pe);
+ } else {
+ Pe = -Pe - 1 | 0;
+ for (var me = 0; me < Be; ++me) {
+ var De = A(Pe, v[me]);
+ if (De !== void 0) return De;
+ }
+ L(h, d, Ae++, Pe);
+ }
+ }
+ }
+ function C(P, A, z, O, U, G, Z, j, N, H) {
+ for (var re = 0, oe = 2 * P, _e = P - 1, Ce = oe - 1, Le = z; Le < O; ++Le) {
+ var ge = G[Le] + 1 << 1, ie = oe * Le;
+ k[re++] = U[ie + _e], k[re++] = -ge, k[re++] = U[ie + Ce], k[re++] = ge;
+ }
+ for (var Le = Z; Le < j; ++Le) {
+ var ge = H[Le] + 1 << 1, Se = oe * Le;
+ k[re++] = N[Se + _e], k[re++] = -ge | 1, k[re++] = N[Se + Ce], k[re++] = ge | 1;
+ }
+ var Ee = re >>> 1;
+ u(k, Ee);
+ for (var Ae = 0, Be = 0, Pe = 0, Le = 0; Le < Ee; ++Le) {
+ var me = k[2 * Le + 1] | 0, De = me & 1;
+ if (Le < Ee - 1 && me >> 1 === k[2 * Le + 3] >> 1 && (De = 2, Le += 1), me < 0) {
+ for (var ce = -(me >> 1) - 1, je = 0; je < Pe; ++je) {
+ var lt = A(b[je], ce);
+ if (lt !== void 0) return lt;
+ }
+ if (De !== 0) for (var je = 0; je < Ae; ++je) {
+ var lt = A(h[je], ce);
+ if (lt !== void 0) return lt;
+ }
+ if (De !== 1) for (var je = 0; je < Be; ++je) {
+ var lt = A(v[je], ce);
+ if (lt !== void 0) return lt;
+ }
+ De === 0 ? L(h, d, Ae++, ce) : De === 1 ? L(v, _, Be++, ce) : De === 2 && L(b, p, Pe++, ce);
+ } else {
+ var ce = (me >> 1) - 1;
+ De === 0 ? T(h, d, Ae--, ce) : De === 1 ? T(v, _, Be--, ce) : De === 2 && T(b, p, Pe--, ce);
+ }
+ }
+ }
+ function M(P, A, z, O, U, G, Z, j, N, H, re, oe) {
+ var _e = 0, Ce = 2 * P, Le = A, ge = A + P, ie = 1, Se = 1;
+ O ? Se = c : ie = c;
+ for (var Ee = U; Ee < G; ++Ee) {
+ var Ae = Ee + ie, Be = Ce * Ee;
+ k[_e++] = Z[Be + Le], k[_e++] = -Ae, k[_e++] = Z[Be + ge], k[_e++] = Ae;
+ }
+ for (var Ee = N; Ee < H; ++Ee) {
+ var Ae = Ee + Se, Pe = Ce * Ee;
+ k[_e++] = re[Pe + Le], k[_e++] = -Ae;
+ }
+ var me = _e >>> 1;
+ u(k, me);
+ for (var De = 0, Ee = 0; Ee < me; ++Ee) {
+ var ce = k[2 * Ee + 1] | 0;
+ if (ce < 0) {
+ var Ae = -ce, je = false;
+ if (Ae >= c ? (je = !O, Ae -= c) : (je = !!O, Ae -= 1), je) L(h, d, De++, Ae);
+ else {
+ var lt = oe[Ae], pt = Ce * Ae, Vt = re[pt + A + 1], ot = re[pt + A + 1 + P];
+ e: for (var ut = 0; ut < De; ++ut) {
+ var Wt = h[ut], Nt = Ce * Wt;
+ if (!(ot < Z[Nt + A + 1] || Z[Nt + A + 1 + P] < Vt)) {
+ for (var $t = A + 2; $t < P; ++$t) if (re[pt + $t + P] < Z[Nt + $t] || Z[Nt + $t + P] < re[pt + $t]) continue e;
+ var sr = j[Wt], Tr;
+ if (O ? Tr = z(lt, sr) : Tr = z(sr, lt), Tr !== void 0) return Tr;
+ }
+ }
+ }
+ } else T(h, d, De--, ce - ie);
+ }
+ }
+ function g(P, A, z, O, U, G, Z, j, N, H, re) {
+ for (var oe = 0, _e = 2 * P, Ce = A, Le = A + P, ge = O; ge < U; ++ge) {
+ var ie = ge + c, Se = _e * ge;
+ k[oe++] = G[Se + Ce], k[oe++] = -ie, k[oe++] = G[Se + Le], k[oe++] = ie;
+ }
+ for (var ge = j; ge < N; ++ge) {
+ var ie = ge + 1, Ee = _e * ge;
+ k[oe++] = H[Ee + Ce], k[oe++] = -ie;
+ }
+ var Ae = oe >>> 1;
+ u(k, Ae);
+ for (var Be = 0, ge = 0; ge < Ae; ++ge) {
+ var Pe = k[2 * ge + 1] | 0;
+ if (Pe < 0) {
+ var ie = -Pe;
+ if (ie >= c) h[Be++] = ie - c;
+ else {
+ ie -= 1;
+ var me = re[ie], De = _e * ie, ce = H[De + A + 1], je = H[De + A + 1 + P];
+ e: for (var lt = 0; lt < Be; ++lt) {
+ var pt = h[lt], Vt = Z[pt];
+ if (Vt === me) break;
+ var ot = _e * pt;
+ if (!(je < G[ot + A + 1] || G[ot + A + 1 + P] < ce)) {
+ for (var ut = A + 2; ut < P; ++ut) if (H[De + ut + P] < G[ot + ut] || G[ot + ut + P] < H[De + ut]) continue e;
+ var Wt = z(Vt, me);
+ if (Wt !== void 0) return Wt;
+ }
+ }
+ }
+ } else {
+ for (var ie = Pe - c, lt = Be - 1; lt >= 0; --lt) if (h[lt] === ie) {
+ for (var ut = lt + 1; ut < Be; ++ut) h[ut - 1] = h[ut];
+ break;
+ }
+ --Be;
+ }
+ }
+ }
+ }, 868: function(i, a, o) {
+ i.exports = o(1387);
+ }, 869: function(i, a, o) {
+ var s = o(2651), l = o(5716);
+ i.exports = u;
+ function u(c, f) {
+ var h = l(c), d = l(f);
+ if (h === 0) return [s(0), s(1)];
+ if (d === 0) return [s(0), s(0)];
+ d < 0 && (c = c.neg(), f = f.neg());
+ var v = c.gcd(f);
+ return v.cmpn(1) ? [c.div(v), f.div(v)] : [c, f];
+ }
+ }, 870: function(i, a, o) {
+ var s = o(1433);
+ function l(c) {
+ this.gl = c, this._elements = null, this._attributes = null, this._elementsType = c.UNSIGNED_SHORT;
+ }
+ l.prototype.bind = function() {
+ s(this.gl, this._elements, this._attributes);
+ }, l.prototype.update = function(c, f, h) {
+ this._elements = f, this._attributes = c, this._elementsType = h || this.gl.UNSIGNED_SHORT;
+ }, l.prototype.dispose = function() {
+ }, l.prototype.unbind = function() {
+ }, l.prototype.draw = function(c, f, h) {
+ h = h || 0;
+ var d = this.gl;
+ this._elements ? d.drawElements(c, f, this._elementsType, h) : d.drawArrays(c, h, f);
+ };
+ function u(c) {
+ return new l(c);
+ }
+ i.exports = u;
+ }, 946: function(i, a, o) {
+ var s = o(1369), l = o(4025);
+ i.exports = u;
+ function u(c) {
+ var f = c[0], h = c[1];
+ if (f.cmpn(0) === 0) return 0;
+ var d = f.abs().divmod(h.abs()), v = d.div, _ = s(v), b = d.mod, p = f.negative !== h.negative ? -1 : 1;
+ if (b.cmpn(0) === 0) return p * _;
+ if (_) {
+ var k = l(_) + 4, E = s(b.ushln(k).divRound(h));
+ return p * (_ + E * Math.pow(2, -k));
+ } else {
+ var T = h.bitLength() - b.bitLength() + 53, E = s(b.ushln(T).divRound(h));
+ return T < 1023 ? p * E * Math.pow(2, -T) : (E *= Math.pow(2, -1023), p * E * Math.pow(2, 1023 - T));
+ }
+ }
+ }, 990: function(i, a, o) {
+ var s = o(9405), l = o(3236), u = l([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec4 uv;
+attribute vec3 f;
+attribute vec3 normal;
+
+uniform vec3 objectOffset;
+uniform mat4 model, view, projection, inverseModel;
+uniform vec3 lightPosition, eyePosition;
+uniform sampler2D colormap;
+
+varying float value, kill;
+varying vec3 worldCoordinate;
+varying vec2 planeCoordinate;
+varying vec3 lightDirection, eyeDirection, surfaceNormal;
+varying vec4 vColor;
+
+void main() {
+ vec3 localCoordinate = vec3(uv.zw, f.x);
+ worldCoordinate = objectOffset + localCoordinate;
+ mat4 objectOffsetTranslation = mat4(1.0) + mat4(vec4(0), vec4(0), vec4(0), vec4(objectOffset, 0));
+ vec4 worldPosition = (model * objectOffsetTranslation) * vec4(localCoordinate, 1.0);
+ vec4 clipPosition = projection * (view * worldPosition);
+ gl_Position = clipPosition;
+ kill = f.y;
+ value = f.z;
+ planeCoordinate = uv.xy;
+
+ vColor = texture2D(colormap, vec2(value, value));
+
+ //Lighting geometry parameters
+ vec4 cameraCoordinate = view * worldPosition;
+ cameraCoordinate.xyz /= cameraCoordinate.w;
+ lightDirection = lightPosition - cameraCoordinate.xyz;
+ eyeDirection = eyePosition - cameraCoordinate.xyz;
+ surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);
+}
+`]), c = l([`precision highp float;
+#define GLSLIFY 1
+
+float beckmannDistribution(float x, float roughness) {
+ float NdotH = max(x, 0.0001);
+ float cos2Alpha = NdotH * NdotH;
+ float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;
+ float roughness2 = roughness * roughness;
+ float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;
+ return exp(tan2Alpha / roughness2) / denom;
+}
+
+float beckmannSpecular(
+ vec3 lightDirection,
+ vec3 viewDirection,
+ vec3 surfaceNormal,
+ float roughness) {
+ return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);
+}
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 lowerBound, upperBound;
+uniform float contourTint;
+uniform vec4 contourColor;
+uniform sampler2D colormap;
+uniform vec3 clipBounds[2];
+uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;
+uniform float vertexColor;
+
+varying float value, kill;
+varying vec3 worldCoordinate;
+varying vec3 lightDirection, eyeDirection, surfaceNormal;
+varying vec4 vColor;
+
+void main() {
+ if (
+ kill > 0.0 ||
+ vColor.a == 0.0 ||
+ outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)
+ ) discard;
+
+ vec3 N = normalize(surfaceNormal);
+ vec3 V = normalize(eyeDirection);
+ vec3 L = normalize(lightDirection);
+
+ if(gl_FrontFacing) {
+ N = -N;
+ }
+
+ float specular = max(beckmannSpecular(L, V, N, roughness), 0.);
+ float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);
+
+ //decide how to interpolate color — in vertex or in fragment
+ vec4 surfaceColor =
+ step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +
+ step(.5, vertexColor) * vColor;
+
+ vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);
+
+ gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;
+}
+`]), f = l([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec4 uv;
+attribute float f;
+
+uniform vec3 objectOffset;
+uniform mat3 permutation;
+uniform mat4 model, view, projection;
+uniform float height, zOffset;
+uniform sampler2D colormap;
+
+varying float value, kill;
+varying vec3 worldCoordinate;
+varying vec2 planeCoordinate;
+varying vec3 lightDirection, eyeDirection, surfaceNormal;
+varying vec4 vColor;
+
+void main() {
+ vec3 dataCoordinate = permutation * vec3(uv.xy, height);
+ worldCoordinate = objectOffset + dataCoordinate;
+ mat4 objectOffsetTranslation = mat4(1.0) + mat4(vec4(0), vec4(0), vec4(0), vec4(objectOffset, 0));
+ vec4 worldPosition = (model * objectOffsetTranslation) * vec4(dataCoordinate, 1.0);
+
+ vec4 clipPosition = projection * (view * worldPosition);
+ clipPosition.z += zOffset;
+
+ gl_Position = clipPosition;
+ value = f + objectOffset.z;
+ kill = -1.0;
+ planeCoordinate = uv.zw;
+
+ vColor = texture2D(colormap, vec2(value, value));
+
+ //Don't do lighting for contours
+ surfaceNormal = vec3(1,0,0);
+ eyeDirection = vec3(0,1,0);
+ lightDirection = vec3(0,0,1);
+}
+`]), h = l([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec2 shape;
+uniform vec3 clipBounds[2];
+uniform float pickId;
+
+varying float value, kill;
+varying vec3 worldCoordinate;
+varying vec2 planeCoordinate;
+varying vec3 surfaceNormal;
+
+vec2 splitFloat(float v) {
+ float vh = 255.0 * v;
+ float upper = floor(vh);
+ float lower = fract(vh);
+ return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);
+}
+
+void main() {
+ if ((kill > 0.0) ||
+ (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;
+
+ vec2 ux = splitFloat(planeCoordinate.x / shape.x);
+ vec2 uy = splitFloat(planeCoordinate.y / shape.y);
+ gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));
+}
+`]);
+ a.createShader = function(d) {
+ var v = s(d, u, c, null, [{ name: "uv", type: "vec4" }, { name: "f", type: "vec3" }, { name: "normal", type: "vec3" }]);
+ return v.attributes.uv.location = 0, v.attributes.f.location = 1, v.attributes.normal.location = 2, v;
+ }, a.createPickShader = function(d) {
+ var v = s(d, u, h, null, [{ name: "uv", type: "vec4" }, { name: "f", type: "vec3" }, { name: "normal", type: "vec3" }]);
+ return v.attributes.uv.location = 0, v.attributes.f.location = 1, v.attributes.normal.location = 2, v;
+ }, a.createContourShader = function(d) {
+ var v = s(d, f, c, null, [{ name: "uv", type: "vec4" }, { name: "f", type: "float" }]);
+ return v.attributes.uv.location = 0, v.attributes.f.location = 1, v;
+ }, a.createPickContourShader = function(d) {
+ var v = s(d, f, h, null, [{ name: "uv", type: "vec4" }, { name: "f", type: "float" }]);
+ return v.attributes.uv.location = 0, v.attributes.f.location = 1, v;
+ };
+ }, 1085: function(i, a, o) {
+ var s = o(1371);
+ i.exports = l;
+ function l(u, c, f) {
+ c = typeof c == "number" ? c : 1, f = f || ": ";
+ var h = u.split(/\r?\n/), d = String(h.length + c - 1).length;
+ return h.map(function(v, _) {
+ var b = _ + c, p = String(b).length, k = s(b, d - p);
+ return k + f + v;
+ }).join(`
+`);
+ }
+ }, 1091: function(i) {
+ i.exports = a;
+ function a() {
+ var o = new Float32Array(3);
+ return o[0] = 0, o[1] = 0, o[2] = 0, o;
+ }
+ }, 1125: function(i, a, o) {
+ i.exports = u;
+ var s = o(3250)[3];
+ function l(c, f, h, d) {
+ for (var v = 0; v < 2; ++v) {
+ var _ = c[v], b = f[v], p = Math.min(_, b), k = Math.max(_, b), E = h[v], T = d[v], L = Math.min(E, T), x = Math.max(E, T);
+ if (x < p || k < L) return false;
+ }
+ return true;
+ }
+ function u(c, f, h, d) {
+ var v = s(c, h, d), _ = s(f, h, d);
+ if (v > 0 && _ > 0 || v < 0 && _ < 0) return false;
+ var b = s(h, c, f), p = s(d, c, f);
+ return b > 0 && p > 0 || b < 0 && p < 0 ? false : v === 0 && _ === 0 && b === 0 && p === 0 ? l(c, f, h, d) : true;
+ }
+ }, 1278: function(i, a, o) {
+ var s = o(2361), l = Math.pow(2, -1074), u = -1 >>> 0;
+ i.exports = c;
+ function c(f, h) {
+ if (isNaN(f) || isNaN(h)) return NaN;
+ if (f === h) return f;
+ if (f === 0) return h < 0 ? -l : l;
+ var d = s.hi(f), v = s.lo(f);
+ return h > f == f > 0 ? v === u ? (d += 1, v = 0) : v += 1 : v === 0 ? (v = u, d -= 1) : v -= 1, s.pack(v, d);
+ }
+ }, 1283: function(i, a, o) {
+ var s = o(9405), l = o(3236), u = l([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+attribute vec3 position;
+attribute vec4 color;
+attribute vec2 glyph;
+attribute vec4 id;
+
+uniform vec4 highlightId;
+uniform float highlightScale;
+uniform mat4 model, view, projection;
+uniform vec3 clipBounds[2];
+
+varying vec4 interpColor;
+varying vec4 pickId;
+varying vec3 dataCoordinate;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], position)) {
+
+ gl_Position = vec4(0,0,0,0);
+ } else {
+ float scale = 1.0;
+ if(distance(highlightId, id) < 0.0001) {
+ scale = highlightScale;
+ }
+
+ vec4 worldPosition = model * vec4(position, 1);
+ vec4 viewPosition = view * worldPosition;
+ viewPosition = viewPosition / viewPosition.w;
+ vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));
+
+ gl_Position = clipPosition;
+ interpColor = color;
+ pickId = id;
+ dataCoordinate = position;
+ }
+}`]), c = l([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+attribute vec3 position;
+attribute vec4 color;
+attribute vec2 glyph;
+attribute vec4 id;
+
+uniform mat4 model, view, projection;
+uniform vec2 screenSize;
+uniform vec3 clipBounds[2];
+uniform float highlightScale, pixelRatio;
+uniform vec4 highlightId;
+
+varying vec4 interpColor;
+varying vec4 pickId;
+varying vec3 dataCoordinate;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], position)) {
+
+ gl_Position = vec4(0,0,0,0);
+ } else {
+ float scale = pixelRatio;
+ if(distance(highlightId.bgr, id.bgr) < 0.001) {
+ scale *= highlightScale;
+ }
+
+ vec4 worldPosition = model * vec4(position, 1.0);
+ vec4 viewPosition = view * worldPosition;
+ vec4 clipPosition = projection * viewPosition;
+ clipPosition /= clipPosition.w;
+
+ gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);
+ interpColor = color;
+ pickId = id;
+ dataCoordinate = position;
+ }
+}`]), f = l([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+attribute vec3 position;
+attribute vec4 color;
+attribute vec2 glyph;
+attribute vec4 id;
+
+uniform float highlightScale;
+uniform vec4 highlightId;
+uniform vec3 axes[2];
+uniform mat4 model, view, projection;
+uniform vec2 screenSize;
+uniform vec3 clipBounds[2];
+uniform float scale, pixelRatio;
+
+varying vec4 interpColor;
+varying vec4 pickId;
+varying vec3 dataCoordinate;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], position)) {
+
+ gl_Position = vec4(0,0,0,0);
+ } else {
+ float lscale = pixelRatio * scale;
+ if(distance(highlightId, id) < 0.0001) {
+ lscale *= highlightScale;
+ }
+
+ vec4 clipCenter = projection * (view * (model * vec4(position, 1)));
+ vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;
+ vec4 clipPosition = projection * (view * (model * vec4(dataPosition, 1)));
+
+ gl_Position = clipPosition;
+ interpColor = color;
+ pickId = id;
+ dataCoordinate = dataPosition;
+ }
+}
+`]), h = l([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 fragClipBounds[2];
+uniform float opacity;
+
+varying vec4 interpColor;
+varying vec3 dataCoordinate;
+
+void main() {
+ if (
+ outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||
+ interpColor.a * opacity == 0.
+ ) discard;
+ gl_FragColor = interpColor * opacity;
+}
+`]), d = l([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 fragClipBounds[2];
+uniform float pickGroup;
+
+varying vec4 pickId;
+varying vec3 dataCoordinate;
+
+void main() {
+ if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;
+
+ gl_FragColor = vec4(pickGroup, pickId.bgr);
+}`]), v = [{ name: "position", type: "vec3" }, { name: "color", type: "vec4" }, { name: "glyph", type: "vec2" }, { name: "id", type: "vec4" }], _ = { vertex: u, fragment: h, attributes: v }, b = { vertex: c, fragment: h, attributes: v }, p = { vertex: f, fragment: h, attributes: v }, k = { vertex: u, fragment: d, attributes: v }, E = { vertex: c, fragment: d, attributes: v }, T = { vertex: f, fragment: d, attributes: v };
+ function L(x, C) {
+ var M = s(x, C), g = M.attributes;
+ return g.position.location = 0, g.color.location = 1, g.glyph.location = 2, g.id.location = 3, M;
+ }
+ a.createPerspective = function(x) {
+ return L(x, _);
+ }, a.createOrtho = function(x) {
+ return L(x, b);
+ }, a.createProject = function(x) {
+ return L(x, p);
+ }, a.createPickPerspective = function(x) {
+ return L(x, k);
+ }, a.createPickOrtho = function(x) {
+ return L(x, E);
+ }, a.createPickProject = function(x) {
+ return L(x, T);
+ };
+ }, 1303: function(i, a, o) {
+ i.exports = u;
+ var s = o(3250);
+ function l(c, f) {
+ var h, d;
+ if (f[0][0] < f[1][0]) h = f[0], d = f[1];
+ else if (f[0][0] > f[1][0]) h = f[1], d = f[0];
+ else {
+ var v = Math.min(c[0][1], c[1][1]), _ = Math.max(c[0][1], c[1][1]), b = Math.min(f[0][1], f[1][1]), p = Math.max(f[0][1], f[1][1]);
+ return _ < b ? _ - b : v > p ? v - p : _ - p;
+ }
+ var k, E;
+ c[0][1] < c[1][1] ? (k = c[0], E = c[1]) : (k = c[1], E = c[0]);
+ var T = s(d, h, k);
+ return T || (T = s(d, h, E), T) ? T : E - d;
+ }
+ function u(c, f) {
+ var h, d;
+ if (f[0][0] < f[1][0]) h = f[0], d = f[1];
+ else if (f[0][0] > f[1][0]) h = f[1], d = f[0];
+ else return l(f, c);
+ var v, _;
+ if (c[0][0] < c[1][0]) v = c[0], _ = c[1];
+ else if (c[0][0] > c[1][0]) v = c[1], _ = c[0];
+ else return -l(c, f);
+ var b = s(h, d, _), p = s(h, d, v);
+ if (b < 0) {
+ if (p <= 0) return b;
+ } else if (b > 0) {
+ if (p >= 0) return b;
+ } else if (p) return p;
+ if (b = s(_, v, d), p = s(_, v, h), b < 0) {
+ if (p <= 0) return b;
+ } else if (b > 0) {
+ if (p >= 0) return b;
+ } else if (p) return p;
+ return d[0] - _[0];
+ }
+ }, 1318: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0].mul(s[1]).cmp(s[0].mul(o[1]));
+ }
+ }, 1338: function(i) {
+ function a(l, u, c) {
+ var f = l[c] | 0;
+ if (f <= 0) return [];
+ var h = new Array(f), d;
+ if (c === l.length - 1) for (d = 0; d < f; ++d) h[d] = u;
+ else for (d = 0; d < f; ++d) h[d] = a(l, u, c + 1);
+ return h;
+ }
+ function o(l, u) {
+ var c, f;
+ for (c = new Array(l), f = 0; f < l; ++f) c[f] = u;
+ return c;
+ }
+ function s(l, u) {
+ switch (typeof u == "undefined" && (u = 0), typeof l) {
+ case "number":
+ if (l > 0) return o(l | 0, u);
+ break;
+ case "object":
+ if (typeof l.length == "number") return a(l, u, 0);
+ break;
+ }
+ return [];
+ }
+ i.exports = s;
+ }, 1369: function(i, a, o) {
+ var s = o(5716);
+ i.exports = l;
+ function l(u) {
+ var c = u.length, f = u.words, h = 0;
+ if (c === 1) h = f[0];
+ else if (c === 2) h = f[0] + f[1] * 67108864;
+ else for (var d = 0; d < c; d++) {
+ var v = f[d];
+ h += v * Math.pow(67108864, d);
+ }
+ return s(u) * h;
+ }
+ }, 1371: function(i, a, o) {
+ var s = o(3233);
+ i.exports = function(u, c, f) {
+ return f = typeof f != "undefined" ? f + "" : " ", s(f, c) + u;
+ };
+ }, 1373: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] / l[0], o[1] = s[1] / l[1], o[2] = s[2] / l[2], o[3] = s[3] / l[3], o;
+ }
+ }, 1387: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s = o[0], l = o[1], u = o[2];
+ return Math.sqrt(s * s + l * l + u * u);
+ }
+ }, 1433: function(i) {
+ function a(o, s, l) {
+ s ? s.bind() : o.bindBuffer(o.ELEMENT_ARRAY_BUFFER, null);
+ var u = o.getParameter(o.MAX_VERTEX_ATTRIBS) | 0;
+ if (l) {
+ if (l.length > u) throw new Error("gl-vao: Too many vertex attributes");
+ for (var c = 0; c < l.length; ++c) {
+ var f = l[c];
+ if (f.buffer) {
+ var h = f.buffer, d = f.size || 4, v = f.type || o.FLOAT, _ = !!f.normalized, b = f.stride || 0, p = f.offset || 0;
+ h.bind(), o.enableVertexAttribArray(c), o.vertexAttribPointer(c, d, v, _, b, p);
+ } else {
+ if (typeof f == "number") o.vertexAttrib1f(c, f);
+ else if (f.length === 1) o.vertexAttrib1f(c, f[0]);
+ else if (f.length === 2) o.vertexAttrib2f(c, f[0], f[1]);
+ else if (f.length === 3) o.vertexAttrib3f(c, f[0], f[1], f[2]);
+ else if (f.length === 4) o.vertexAttrib4f(c, f[0], f[1], f[2], f[3]);
+ else throw new Error("gl-vao: Invalid vertex attribute");
+ o.disableVertexAttribArray(c);
+ }
+ }
+ for (; c < u; ++c) o.disableVertexAttribArray(c);
+ } else {
+ o.bindBuffer(o.ARRAY_BUFFER, null);
+ for (var c = 0; c < u; ++c) o.disableVertexAttribArray(c);
+ }
+ }
+ i.exports = a;
+ }, 1463: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ return o[0] = s, o[1] = l, o[2] = u, o;
+ }
+ }, 1493: function(i, a, o) {
+ var s = o(3236), l = o(9405), u = s([`precision mediump float;
+#define GLSLIFY 1
+
+attribute vec3 position, color;
+attribute float weight;
+
+uniform mat4 model, view, projection;
+uniform vec3 coordinates[3];
+uniform vec4 colors[3];
+uniform vec2 screenShape;
+uniform float lineWidth;
+
+varying vec4 fragColor;
+
+void main() {
+ vec3 vertexPosition = mix(coordinates[0],
+ mix(coordinates[2], coordinates[1], 0.5 * (position + 1.0)), abs(position));
+
+ vec4 clipPos = projection * (view * (model * vec4(vertexPosition, 1.0)));
+ vec2 clipOffset = (projection * (view * (model * vec4(color, 0.0)))).xy;
+ vec2 delta = weight * clipOffset * screenShape;
+ vec2 lineOffset = normalize(vec2(delta.y, -delta.x)) / screenShape;
+
+ gl_Position = vec4(clipPos.xy + clipPos.w * 0.5 * lineWidth * lineOffset, clipPos.z, clipPos.w);
+ fragColor = color.x * colors[0] + color.y * colors[1] + color.z * colors[2];
+}
+`]), c = s([`precision mediump float;
+#define GLSLIFY 1
+
+varying vec4 fragColor;
+
+void main() {
+ gl_FragColor = fragColor;
+}`]);
+ i.exports = function(f) {
+ return l(f, u, c, null, [{ name: "position", type: "vec3" }, { name: "color", type: "vec3" }, { name: "weight", type: "float" }]);
+ };
+ }, 1498: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = -s[0], o[1] = -s[1], o[2] = -s[2], o[3] = -s[3], o;
+ }
+ }, 1533: function(i, a, o) {
+ o(6859);
+ i.exports = l;
+ function l(u) {
+ return u && typeof u == "object" && !!u.words;
+ }
+ }, 1538: function(i) {
+ (function() {
+ if (typeof ses != "undefined" && ses.ok && !ses.ok()) return;
+ function o(A) {
+ A.permitHostObjects___ && A.permitHostObjects___(o);
+ }
+ typeof ses != "undefined" && (ses.weakMapPermitHostObjects = o);
+ var s = false;
+ if (typeof WeakMap == "function") {
+ var l = WeakMap;
+ if (!(typeof navigator != "undefined" && /Firefox/.test(navigator.userAgent))) {
+ var u = new l(), c = Object.freeze({});
+ if (u.set(c, 1), u.get(c) !== 1) s = true;
+ else {
+ i.exports = WeakMap;
+ return;
+ }
+ }
+ }
+ var h = Object.getOwnPropertyNames, d = Object.defineProperty, v = Object.isExtensible, _ = "weakmap:", b = _ + "ident:" + Math.random() + "___";
+ if (typeof crypto != "undefined" && typeof crypto.getRandomValues == "function" && typeof ArrayBuffer == "function" && typeof Uint8Array == "function") {
+ var p = new ArrayBuffer(25), k = new Uint8Array(p);
+ crypto.getRandomValues(k), b = _ + "rand:" + Array.prototype.map.call(k, function(A) {
+ return (A % 36).toString(36);
+ }).join("") + "___";
+ }
+ function E(A) {
+ return !(A.substr(0, _.length) == _ && A.substr(A.length - 3) === "___");
+ }
+ if (d(Object, "getOwnPropertyNames", { value: function(z) {
+ return h(z).filter(E);
+ } }), "getPropertyNames" in Object) {
+ var T = Object.getPropertyNames;
+ d(Object, "getPropertyNames", { value: function(z) {
+ return T(z).filter(E);
+ } });
+ }
+ function L(A) {
+ if (A !== Object(A)) throw new TypeError("Not an object: " + A);
+ var z = A[b];
+ if (z && z.key === A) return z;
+ if (v(A)) {
+ z = { key: A };
+ try {
+ return d(A, b, { value: z, writable: false, enumerable: false, configurable: false }), z;
+ } catch (O) {
+ return;
+ }
+ }
+ }
+ (function() {
+ var A = Object.freeze;
+ d(Object, "freeze", { value: function(G) {
+ return L(G), A(G);
+ } });
+ var z = Object.seal;
+ d(Object, "seal", { value: function(G) {
+ return L(G), z(G);
+ } });
+ var O = Object.preventExtensions;
+ d(Object, "preventExtensions", { value: function(G) {
+ return L(G), O(G);
+ } });
+ })();
+ function x(A) {
+ return A.prototype = null, Object.freeze(A);
+ }
+ var C = false;
+ function M() {
+ !C && typeof console != "undefined" && (C = true, console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."));
+ }
+ var g = 0, P = function() {
+ this instanceof P || M();
+ var A = [], z = [], O = g++;
+ function U(N, H) {
+ var re, oe = L(N);
+ return oe ? O in oe ? oe[O] : H : (re = A.indexOf(N), re >= 0 ? z[re] : H);
+ }
+ function G(N) {
+ var H = L(N);
+ return H ? O in H : A.indexOf(N) >= 0;
+ }
+ function Z(N, H) {
+ var re, oe = L(N);
+ return oe ? oe[O] = H : (re = A.indexOf(N), re >= 0 ? z[re] = H : (re = A.length, z[re] = H, A[re] = N)), this;
+ }
+ function j(N) {
+ var H = L(N), re, oe;
+ return H ? O in H && delete H[O] : (re = A.indexOf(N), re < 0 ? false : (oe = A.length - 1, A[re] = void 0, z[re] = z[oe], A[re] = A[oe], A.length = oe, z.length = oe, true));
+ }
+ return Object.create(P.prototype, { get___: { value: x(U) }, has___: { value: x(G) }, set___: { value: x(Z) }, delete___: { value: x(j) } });
+ };
+ P.prototype = Object.create(Object.prototype, { get: { value: function(z, O) {
+ return this.get___(z, O);
+ }, writable: true, configurable: true }, has: { value: function(z) {
+ return this.has___(z);
+ }, writable: true, configurable: true }, set: { value: function(z, O) {
+ return this.set___(z, O);
+ }, writable: true, configurable: true }, delete: { value: function(z) {
+ return this.delete___(z);
+ }, writable: true, configurable: true } }), typeof l == "function" ? function() {
+ s && typeof Proxy != "undefined" && (Proxy = void 0);
+ function A() {
+ this instanceof P || M();
+ var z = new l(), O = void 0, U = false;
+ function G(H, re) {
+ return O ? z.has(H) ? z.get(H) : O.get___(H, re) : z.get(H, re);
+ }
+ function Z(H) {
+ return z.has(H) || (O ? O.has___(H) : false);
+ }
+ var j;
+ s ? j = function(H, re) {
+ return z.set(H, re), z.has(H) || (O || (O = new P()), O.set(H, re)), this;
+ } : j = function(H, re) {
+ if (U) try {
+ z.set(H, re);
+ } catch (oe) {
+ O || (O = new P()), O.set___(H, re);
+ }
+ else z.set(H, re);
+ return this;
+ };
+ function N(H) {
+ var re = !!z.delete(H);
+ return O && O.delete___(H) || re;
+ }
+ return Object.create(P.prototype, { get___: { value: x(G) }, has___: { value: x(Z) }, set___: { value: x(j) }, delete___: { value: x(N) }, permitHostObjects___: { value: x(function(H) {
+ if (H === o) U = true;
+ else throw new Error("bogus call to permitHostObjects___");
+ }) } });
+ }
+ A.prototype = P.prototype, i.exports = A, Object.defineProperty(WeakMap.prototype, "constructor", { value: WeakMap, enumerable: false, configurable: true, writable: true });
+ }() : (typeof Proxy != "undefined" && (Proxy = void 0), i.exports = P);
+ })();
+ }, 1570: function(i) {
+ i.exports = o;
+ var a = [function() {
+ function u(c, f, h, d) {
+ for (var v = c.length, _ = [], b = 0; b < v; ++b) var p = c[b], k = p.length;
+ return _;
+ }
+ return u;
+ }, function() {
+ function l(c, f, h, d) {
+ for (var v = Math.min(h, d) | 0, _ = Math.max(h, d) | 0, b = c[2 * v], p = c[2 * v + 1]; b < p; ) {
+ var k = b + p >> 1, E = f[2 * k + 1];
+ if (E === _) return k;
+ _ < E ? p = k : b = k + 1;
+ }
+ return b;
+ }
+ function u(c, f, h, d) {
+ for (var v = c.length, _ = [], b = 0; b < v; ++b) {
+ var p = c[b], k = p.length;
+ if (k === 2) {
+ var E = (d[p[0]] << 0) + (d[p[1]] << 1);
+ if (E === 0 || E === 3) continue;
+ switch (E) {
+ case 0:
+ break;
+ case 1:
+ _.push([l(h, f, p[0], p[1])]);
+ break;
+ case 2:
+ _.push([l(h, f, p[1], p[0])]);
+ break;
+ }
+ }
+ }
+ return _;
+ }
+ return u;
+ }, function() {
+ function l(c, f, h, d) {
+ for (var v = Math.min(h, d) | 0, _ = Math.max(h, d) | 0, b = c[2 * v], p = c[2 * v + 1]; b < p; ) {
+ var k = b + p >> 1, E = f[2 * k + 1];
+ if (E === _) return k;
+ _ < E ? p = k : b = k + 1;
+ }
+ return b;
+ }
+ function u(c, f, h, d) {
+ for (var v = c.length, _ = [], b = 0; b < v; ++b) {
+ var p = c[b], k = p.length;
+ if (k === 3) {
+ var E = (d[p[0]] << 0) + (d[p[1]] << 1) + (d[p[2]] << 2);
+ if (E === 0 || E === 7) continue;
+ switch (E) {
+ case 0:
+ break;
+ case 1:
+ _.push([l(h, f, p[0], p[2]), l(h, f, p[0], p[1])]);
+ break;
+ case 2:
+ _.push([l(h, f, p[1], p[0]), l(h, f, p[1], p[2])]);
+ break;
+ case 3:
+ _.push([l(h, f, p[0], p[2]), l(h, f, p[1], p[2])]);
+ break;
+ case 4:
+ _.push([l(h, f, p[2], p[1]), l(h, f, p[2], p[0])]);
+ break;
+ case 5:
+ _.push([l(h, f, p[2], p[1]), l(h, f, p[0], p[1])]);
+ break;
+ case 6:
+ _.push([l(h, f, p[1], p[0]), l(h, f, p[2], p[0])]);
+ break;
+ }
+ } else if (k === 2) {
+ var E = (d[p[0]] << 0) + (d[p[1]] << 1);
+ if (E === 0 || E === 3) continue;
+ switch (E) {
+ case 0:
+ break;
+ case 1:
+ _.push([l(h, f, p[0], p[1])]);
+ break;
+ case 2:
+ _.push([l(h, f, p[1], p[0])]);
+ break;
+ }
+ }
+ }
+ return _;
+ }
+ return u;
+ }, function() {
+ function l(c, f, h, d) {
+ for (var v = Math.min(h, d) | 0, _ = Math.max(h, d) | 0, b = c[2 * v], p = c[2 * v + 1]; b < p; ) {
+ var k = b + p >> 1, E = f[2 * k + 1];
+ if (E === _) return k;
+ _ < E ? p = k : b = k + 1;
+ }
+ return b;
+ }
+ function u(c, f, h, d) {
+ for (var v = c.length, _ = [], b = 0; b < v; ++b) {
+ var p = c[b], k = p.length;
+ if (k === 4) {
+ var E = (d[p[0]] << 0) + (d[p[1]] << 1) + (d[p[2]] << 2) + (d[p[3]] << 3);
+ if (E === 0 || E === 15) continue;
+ switch (E) {
+ case 0:
+ break;
+ case 1:
+ _.push([l(h, f, p[0], p[1]), l(h, f, p[0], p[2]), l(h, f, p[0], p[3])]);
+ break;
+ case 2:
+ _.push([l(h, f, p[1], p[2]), l(h, f, p[1], p[0]), l(h, f, p[1], p[3])]);
+ break;
+ case 3:
+ _.push([l(h, f, p[1], p[2]), l(h, f, p[0], p[2]), l(h, f, p[0], p[3])], [l(h, f, p[1], p[3]), l(h, f, p[1], p[2]), l(h, f, p[0], p[3])]);
+ break;
+ case 4:
+ _.push([l(h, f, p[2], p[0]), l(h, f, p[2], p[1]), l(h, f, p[2], p[3])]);
+ break;
+ case 5:
+ _.push([l(h, f, p[0], p[1]), l(h, f, p[2], p[1]), l(h, f, p[0], p[3])], [l(h, f, p[2], p[1]), l(h, f, p[2], p[3]), l(h, f, p[0], p[3])]);
+ break;
+ case 6:
+ _.push([l(h, f, p[2], p[0]), l(h, f, p[1], p[0]), l(h, f, p[1], p[3])], [l(h, f, p[2], p[3]), l(h, f, p[2], p[0]), l(h, f, p[1], p[3])]);
+ break;
+ case 7:
+ _.push([l(h, f, p[0], p[3]), l(h, f, p[1], p[3]), l(h, f, p[2], p[3])]);
+ break;
+ case 8:
+ _.push([l(h, f, p[3], p[1]), l(h, f, p[3], p[0]), l(h, f, p[3], p[2])]);
+ break;
+ case 9:
+ _.push([l(h, f, p[3], p[1]), l(h, f, p[0], p[1]), l(h, f, p[0], p[2])], [l(h, f, p[3], p[2]), l(h, f, p[3], p[1]), l(h, f, p[0], p[2])]);
+ break;
+ case 10:
+ _.push([l(h, f, p[1], p[0]), l(h, f, p[3], p[0]), l(h, f, p[1], p[2])], [l(h, f, p[3], p[0]), l(h, f, p[3], p[2]), l(h, f, p[1], p[2])]);
+ break;
+ case 11:
+ _.push([l(h, f, p[1], p[2]), l(h, f, p[0], p[2]), l(h, f, p[3], p[2])]);
+ break;
+ case 12:
+ _.push([l(h, f, p[3], p[0]), l(h, f, p[2], p[0]), l(h, f, p[2], p[1])], [l(h, f, p[3], p[1]), l(h, f, p[3], p[0]), l(h, f, p[2], p[1])]);
+ break;
+ case 13:
+ _.push([l(h, f, p[0], p[1]), l(h, f, p[2], p[1]), l(h, f, p[3], p[1])]);
+ break;
+ case 14:
+ _.push([l(h, f, p[2], p[0]), l(h, f, p[1], p[0]), l(h, f, p[3], p[0])]);
+ break;
+ }
+ } else if (k === 3) {
+ var E = (d[p[0]] << 0) + (d[p[1]] << 1) + (d[p[2]] << 2);
+ if (E === 0 || E === 7) continue;
+ switch (E) {
+ case 0:
+ break;
+ case 1:
+ _.push([l(h, f, p[0], p[2]), l(h, f, p[0], p[1])]);
+ break;
+ case 2:
+ _.push([l(h, f, p[1], p[0]), l(h, f, p[1], p[2])]);
+ break;
+ case 3:
+ _.push([l(h, f, p[0], p[2]), l(h, f, p[1], p[2])]);
+ break;
+ case 4:
+ _.push([l(h, f, p[2], p[1]), l(h, f, p[2], p[0])]);
+ break;
+ case 5:
+ _.push([l(h, f, p[2], p[1]), l(h, f, p[0], p[1])]);
+ break;
+ case 6:
+ _.push([l(h, f, p[1], p[0]), l(h, f, p[2], p[0])]);
+ break;
+ }
+ } else if (k === 2) {
+ var E = (d[p[0]] << 0) + (d[p[1]] << 1);
+ if (E === 0 || E === 3) continue;
+ switch (E) {
+ case 0:
+ break;
+ case 1:
+ _.push([l(h, f, p[0], p[1])]);
+ break;
+ case 2:
+ _.push([l(h, f, p[1], p[0])]);
+ break;
+ }
+ }
+ }
+ return _;
+ }
+ return u;
+ }];
+ function o(s) {
+ return a[s]();
+ }
+ }, 1682: function(i) {
+ function a(l, u) {
+ for (var c = 1, f = l.length, h = l[0], d = l[0], v = 1; v < f; ++v) if (d = h, h = l[v], u(h, d)) {
+ if (v === c) {
+ c++;
+ continue;
+ }
+ l[c++] = h;
+ }
+ return l.length = c, l;
+ }
+ function o(l) {
+ for (var u = 1, c = l.length, f = l[0], h = l[0], d = 1; d < c; ++d, h = f) if (h = f, f = l[d], f !== h) {
+ if (d === u) {
+ u++;
+ continue;
+ }
+ l[u++] = f;
+ }
+ return l.length = u, l;
+ }
+ function s(l, u, c) {
+ return l.length === 0 ? l : u ? (c || l.sort(u), a(l, u)) : (c || l.sort(), o(l));
+ }
+ i.exports = s;
+ }, 1755: function(i) {
+ "use restrict";
+ i.exports = a;
+ function a(s) {
+ this.roots = new Array(s), this.ranks = new Array(s);
+ for (var l = 0; l < s; ++l) this.roots[l] = l, this.ranks[l] = 0;
+ }
+ var o = a.prototype;
+ Object.defineProperty(o, "length", { get: function() {
+ return this.roots.length;
+ } }), o.makeSet = function() {
+ var s = this.roots.length;
+ return this.roots.push(s), this.ranks.push(0), s;
+ }, o.find = function(s) {
+ for (var l = s, u = this.roots; u[s] !== s; ) s = u[s];
+ for (; u[l] !== s; ) {
+ var c = u[l];
+ u[l] = s, l = c;
+ }
+ return s;
+ }, o.link = function(s, l) {
+ var u = this.find(s), c = this.find(l);
+ if (u !== c) {
+ var f = this.ranks, h = this.roots, d = f[u], v = f[c];
+ d < v ? h[u] = c : v < d ? h[c] = u : (h[c] = u, ++f[u]);
+ }
+ };
+ }, 1811: function(i, a, o) {
+ var s = o(2478), l = o(7442), u = o(7608), c = o(5567), f = o(2408), h = o(7089), d = o(6582), v = o(7656);
+ o(2504);
+ var b = o(3536), p = [0, 0, 0];
+ i.exports = L;
+ function k(x) {
+ this._components = x.slice(), this._time = [0], this.prevMatrix = x.slice(), this.nextMatrix = x.slice(), this.computedMatrix = x.slice(), this.computedInverse = x.slice(), this.computedEye = [0, 0, 0], this.computedUp = [0, 0, 0], this.computedCenter = [0, 0, 0], this.computedRadius = [0], this._limits = [-1 / 0, 1 / 0];
+ }
+ var E = k.prototype;
+ E.recalcMatrix = function(x) {
+ var C = this._time, M = s.le(C, x), g = this.computedMatrix;
+ if (!(M < 0)) {
+ var P = this._components;
+ if (M === C.length - 1) for (var A = 16 * M, z = 0; z < 16; ++z) g[z] = P[A++];
+ else {
+ for (var O = C[M + 1] - C[M], A = 16 * M, U = this.prevMatrix, G = true, z = 0; z < 16; ++z) U[z] = P[A++];
+ for (var Z = this.nextMatrix, z = 0; z < 16; ++z) Z[z] = P[A++], G = G && U[z] === Z[z];
+ if (O < 1e-6 || G) for (var z = 0; z < 16; ++z) g[z] = U[z];
+ else l(g, U, Z, (x - C[M]) / O);
+ }
+ var j = this.computedUp;
+ j[0] = g[1], j[1] = g[5], j[2] = g[9], b(j, j);
+ var N = this.computedInverse;
+ u(N, g);
+ var H = this.computedEye, re = N[15];
+ H[0] = N[12] / re, H[1] = N[13] / re, H[2] = N[14] / re;
+ for (var oe = this.computedCenter, _e = Math.exp(this.computedRadius[0]), z = 0; z < 3; ++z) oe[z] = H[z] - g[2 + 4 * z] * _e;
+ }
+ }, E.idle = function(x) {
+ if (!(x < this.lastT())) {
+ for (var C = this._components, M = C.length - 16, g = 0; g < 16; ++g) C.push(C[M++]);
+ this._time.push(x);
+ }
+ }, E.flush = function(x) {
+ var C = s.gt(this._time, x) - 2;
+ C < 0 || (this._time.splice(0, C), this._components.splice(0, 16 * C));
+ }, E.lastT = function() {
+ return this._time[this._time.length - 1];
+ }, E.lookAt = function(x, C, M, g) {
+ this.recalcMatrix(x), C = C || this.computedEye, M = M || p, g = g || this.computedUp, this.setMatrix(x, d(this.computedMatrix, C, M, g));
+ for (var P = 0, A = 0; A < 3; ++A) P += Math.pow(M[A] - C[A], 2);
+ P = Math.log(Math.sqrt(P)), this.computedRadius[0] = P;
+ }, E.rotate = function(x, C, M, g) {
+ this.recalcMatrix(x);
+ var P = this.computedInverse;
+ C && f(P, P, C), M && c(P, P, M), g && h(P, P, g), this.setMatrix(x, u(this.computedMatrix, P));
+ };
+ var T = [0, 0, 0];
+ E.pan = function(x, C, M, g) {
+ T[0] = -(C || 0), T[1] = -(M || 0), T[2] = -(g || 0), this.recalcMatrix(x);
+ var P = this.computedInverse;
+ v(P, P, T), this.setMatrix(x, u(P, P));
+ }, E.translate = function(x, C, M, g) {
+ T[0] = C || 0, T[1] = M || 0, T[2] = g || 0, this.recalcMatrix(x);
+ var P = this.computedMatrix;
+ v(P, P, T), this.setMatrix(x, P);
+ }, E.setMatrix = function(x, C) {
+ if (!(x < this.lastT())) {
+ this._time.push(x);
+ for (var M = 0; M < 16; ++M) this._components.push(C[M]);
+ }
+ }, E.setDistance = function(x, C) {
+ this.computedRadius[0] = C;
+ }, E.setDistanceLimits = function(x, C) {
+ var M = this._limits;
+ M[0] = x, M[1] = C;
+ }, E.getDistanceLimits = function(x) {
+ var C = this._limits;
+ return x ? (x[0] = C[0], x[1] = C[1], x) : C;
+ };
+ function L(x) {
+ x = x || {};
+ var C = x.matrix || [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
+ return new k(C);
+ }
+ }, 1848: function(i, a, o) {
+ var s = o(4905), l = o(6468);
+ i.exports = u;
+ function u(c) {
+ for (var f = Array.isArray(c) ? c : s(c), h = 0; h < f.length; h++) {
+ var d = f[h];
+ if (d.type === "preprocessor") {
+ var v = d.data.match(/\#define\s+SHADER_NAME(_B64)?\s+(.+)$/);
+ if (v && v[2]) {
+ var _ = v[1], b = v[2];
+ return (_ ? l(b) : b).trim();
+ }
+ }
+ }
+ }
+ }, 1879: function(i, a, o) {
+ var s = o(3236), l = o(9405), u = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position;
+
+uniform mat4 model, view, projection;
+uniform vec3 offset, majorAxis, minorAxis, screenAxis;
+uniform float lineWidth;
+uniform vec2 screenShape;
+
+vec3 project(vec3 p) {
+ vec4 pp = projection * (view * (model * vec4(p, 1.0)));
+ return pp.xyz / max(pp.w, 0.0001);
+}
+
+void main() {
+ vec3 major = position.x * majorAxis;
+ vec3 minor = position.y * minorAxis;
+
+ vec3 vPosition = major + minor + offset;
+ vec3 pPosition = project(vPosition);
+ vec3 offset = project(vPosition + screenAxis * position.z);
+
+ vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;
+
+ gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);
+}
+`]), c = s([`precision highp float;
+#define GLSLIFY 1
+
+uniform vec4 color;
+void main() {
+ gl_FragColor = color;
+}`]);
+ a.n = function(_) {
+ return l(_, u, c, null, [{ name: "position", type: "vec3" }]);
+ };
+ var f = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position;
+
+uniform mat4 model, view, projection;
+uniform vec3 offset, axis, alignDir, alignOpt;
+uniform float scale, angle, pixelScale;
+uniform vec2 resolution;
+
+vec3 project(vec3 p) {
+ vec4 pp = projection * (view * (model * vec4(p, 1.0)));
+ return pp.xyz / max(pp.w, 0.0001);
+}
+
+float computeViewAngle(vec3 a, vec3 b) {
+ vec3 A = project(a);
+ vec3 B = project(b);
+
+ return atan(
+ (B.y - A.y) * resolution.y,
+ (B.x - A.x) * resolution.x
+ );
+}
+
+const float PI = 3.141592;
+const float TWO_PI = 2.0 * PI;
+const float HALF_PI = 0.5 * PI;
+const float ONE_AND_HALF_PI = 1.5 * PI;
+
+int option = int(floor(alignOpt.x + 0.001));
+float hv_ratio = alignOpt.y;
+bool enableAlign = (alignOpt.z != 0.0);
+
+float mod_angle(float a) {
+ return mod(a, PI);
+}
+
+float positive_angle(float a) {
+ return mod_angle((a < 0.0) ?
+ a + TWO_PI :
+ a
+ );
+}
+
+float look_upwards(float a) {
+ float b = positive_angle(a);
+ return ((b > HALF_PI) && (b <= ONE_AND_HALF_PI)) ?
+ b - PI :
+ b;
+}
+
+float look_horizontal_or_vertical(float a, float ratio) {
+ // ratio controls the ratio between being horizontal to (vertical + horizontal)
+ // if ratio is set to 0.5 then it is 50%, 50%.
+ // when using a higher ratio e.g. 0.75 the result would
+ // likely be more horizontal than vertical.
+
+ float b = positive_angle(a);
+
+ return
+ (b < ( ratio) * HALF_PI) ? 0.0 :
+ (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :
+ (b < (2.0 + ratio) * HALF_PI) ? 0.0 :
+ (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :
+ 0.0;
+}
+
+float roundTo(float a, float b) {
+ return float(b * floor((a + 0.5 * b) / b));
+}
+
+float look_round_n_directions(float a, int n) {
+ float b = positive_angle(a);
+ float div = TWO_PI / float(n);
+ float c = roundTo(b, div);
+ return look_upwards(c);
+}
+
+float applyAlignOption(float rawAngle, float delta) {
+ return
+ (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions
+ (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical
+ (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis
+ (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards
+ (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal
+ rawAngle; // otherwise return back raw input angle
+}
+
+bool isAxisTitle = (axis.x == 0.0) &&
+ (axis.y == 0.0) &&
+ (axis.z == 0.0);
+
+void main() {
+ //Compute world offset
+ float axisDistance = position.z;
+ vec3 dataPosition = axisDistance * axis + offset;
+
+ float beta = angle; // i.e. user defined attributes for each tick
+
+ float axisAngle;
+ float clipAngle;
+ float flip;
+
+ if (enableAlign) {
+ axisAngle = (isAxisTitle) ? HALF_PI :
+ computeViewAngle(dataPosition, dataPosition + axis);
+ clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);
+
+ axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;
+ clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;
+
+ flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),
+ vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;
+
+ beta += applyAlignOption(clipAngle, flip * PI);
+ }
+
+ //Compute plane offset
+ vec2 planeCoord = position.xy * pixelScale;
+
+ mat2 planeXform = scale * mat2(
+ cos(beta), sin(beta),
+ -sin(beta), cos(beta)
+ );
+
+ vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;
+
+ //Compute clip position
+ vec3 clipPosition = project(dataPosition);
+
+ //Apply text offset in clip coordinates
+ clipPosition += vec3(viewOffset, 0.0);
+
+ //Done
+ gl_Position = vec4(clipPosition, 1.0);
+}
+`]), h = s([`precision highp float;
+#define GLSLIFY 1
+
+uniform vec4 color;
+void main() {
+ gl_FragColor = color;
+}`]);
+ a.Q = function(_) {
+ return l(_, f, h, null, [{ name: "position", type: "vec3" }]);
+ };
+ var d = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position;
+attribute vec3 normal;
+
+uniform mat4 model, view, projection;
+uniform vec3 enable;
+uniform vec3 bounds[2];
+
+varying vec3 colorChannel;
+
+void main() {
+
+ vec3 signAxis = sign(bounds[1] - bounds[0]);
+
+ vec3 realNormal = signAxis * normal;
+
+ if(dot(realNormal, enable) > 0.0) {
+ vec3 minRange = min(bounds[0], bounds[1]);
+ vec3 maxRange = max(bounds[0], bounds[1]);
+ vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));
+ gl_Position = projection * (view * (model * vec4(nPosition, 1.0)));
+ } else {
+ gl_Position = vec4(0,0,0,0);
+ }
+
+ colorChannel = abs(realNormal);
+}
+`]), v = s([`precision highp float;
+#define GLSLIFY 1
+
+uniform vec4 colors[3];
+
+varying vec3 colorChannel;
+
+void main() {
+ gl_FragColor = colorChannel.x * colors[0] +
+ colorChannel.y * colors[1] +
+ colorChannel.z * colors[2];
+}`]);
+ a.bg = function(_) {
+ return l(_, d, v, null, [{ name: "position", type: "vec3" }, { name: "normal", type: "vec3" }]);
+ };
+ }, 1888: function(i, a, o) {
+ var s = o(8828), l = o(1338), u = o(4793).hp;
+ o.g.__TYPEDARRAY_POOL || (o.g.__TYPEDARRAY_POOL = { UINT8: l([32, 0]), UINT16: l([32, 0]), UINT32: l([32, 0]), BIGUINT64: l([32, 0]), INT8: l([32, 0]), INT16: l([32, 0]), INT32: l([32, 0]), BIGINT64: l([32, 0]), FLOAT: l([32, 0]), DOUBLE: l([32, 0]), DATA: l([32, 0]), UINT8C: l([32, 0]), BUFFER: l([32, 0]) });
+ var c = typeof Uint8ClampedArray != "undefined", f = typeof BigUint64Array != "undefined", h = typeof BigInt64Array != "undefined", d = o.g.__TYPEDARRAY_POOL;
+ d.UINT8C || (d.UINT8C = l([32, 0])), d.BIGUINT64 || (d.BIGUINT64 = l([32, 0])), d.BIGINT64 || (d.BIGINT64 = l([32, 0])), d.BUFFER || (d.BUFFER = l([32, 0]));
+ var v = d.DATA, _ = d.BUFFER;
+ a.free = function(j) {
+ if (u.isBuffer(j)) _[s.log2(j.length)].push(j);
+ else {
+ if (Object.prototype.toString.call(j) !== "[object ArrayBuffer]" && (j = j.buffer), !j) return;
+ var N = j.length || j.byteLength, H = s.log2(N) | 0;
+ v[H].push(j);
+ }
+ };
+ function b(Z) {
+ if (Z) {
+ var j = Z.length || Z.byteLength, N = s.log2(j);
+ v[N].push(Z);
+ }
+ }
+ function p(Z) {
+ b(Z.buffer);
+ }
+ a.freeUint8 = a.freeUint16 = a.freeUint32 = a.freeBigUint64 = a.freeInt8 = a.freeInt16 = a.freeInt32 = a.freeBigInt64 = a.freeFloat32 = a.freeFloat = a.freeFloat64 = a.freeDouble = a.freeUint8Clamped = a.freeDataView = p, a.freeArrayBuffer = b, a.freeBuffer = function(j) {
+ _[s.log2(j.length)].push(j);
+ }, a.malloc = function(j, N) {
+ if (N === void 0 || N === "arraybuffer") return k(j);
+ switch (N) {
+ case "uint8":
+ return E(j);
+ case "uint16":
+ return T(j);
+ case "uint32":
+ return L(j);
+ case "int8":
+ return x(j);
+ case "int16":
+ return C(j);
+ case "int32":
+ return M(j);
+ case "float":
+ case "float32":
+ return g(j);
+ case "double":
+ case "float64":
+ return P(j);
+ case "uint8_clamped":
+ return A(j);
+ case "bigint64":
+ return O(j);
+ case "biguint64":
+ return z(j);
+ case "buffer":
+ return G(j);
+ case "data":
+ case "dataview":
+ return U(j);
+ default:
+ return null;
+ }
+ return null;
+ };
+ function k(j) {
+ var j = s.nextPow2(j), N = s.log2(j), H = v[N];
+ return H.length > 0 ? H.pop() : new ArrayBuffer(j);
+ }
+ a.mallocArrayBuffer = k;
+ function E(Z) {
+ return new Uint8Array(k(Z), 0, Z);
+ }
+ a.mallocUint8 = E;
+ function T(Z) {
+ return new Uint16Array(k(2 * Z), 0, Z);
+ }
+ a.mallocUint16 = T;
+ function L(Z) {
+ return new Uint32Array(k(4 * Z), 0, Z);
+ }
+ a.mallocUint32 = L;
+ function x(Z) {
+ return new Int8Array(k(Z), 0, Z);
+ }
+ a.mallocInt8 = x;
+ function C(Z) {
+ return new Int16Array(k(2 * Z), 0, Z);
+ }
+ a.mallocInt16 = C;
+ function M(Z) {
+ return new Int32Array(k(4 * Z), 0, Z);
+ }
+ a.mallocInt32 = M;
+ function g(Z) {
+ return new Float32Array(k(4 * Z), 0, Z);
+ }
+ a.mallocFloat32 = a.mallocFloat = g;
+ function P(Z) {
+ return new Float64Array(k(8 * Z), 0, Z);
+ }
+ a.mallocFloat64 = a.mallocDouble = P;
+ function A(Z) {
+ return c ? new Uint8ClampedArray(k(Z), 0, Z) : E(Z);
+ }
+ a.mallocUint8Clamped = A;
+ function z(Z) {
+ return f ? new BigUint64Array(k(8 * Z), 0, Z) : null;
+ }
+ a.mallocBigUint64 = z;
+ function O(Z) {
+ return h ? new BigInt64Array(k(8 * Z), 0, Z) : null;
+ }
+ a.mallocBigInt64 = O;
+ function U(Z) {
+ return new DataView(k(Z), 0, Z);
+ }
+ a.mallocDataView = U;
+ function G(Z) {
+ Z = s.nextPow2(Z);
+ var j = s.log2(Z), N = _[j];
+ return N.length > 0 ? N.pop() : new u(Z);
+ }
+ a.mallocBuffer = G, a.clearCache = function() {
+ for (var j = 0; j < 32; ++j) d.UINT8[j].length = 0, d.UINT16[j].length = 0, d.UINT32[j].length = 0, d.INT8[j].length = 0, d.INT16[j].length = 0, d.INT32[j].length = 0, d.FLOAT[j].length = 0, d.DOUBLE[j].length = 0, d.BIGUINT64[j].length = 0, d.BIGINT64[j].length = 0, d.UINT8C[j].length = 0, v[j].length = 0, _[j].length = 0;
+ };
+ }, 1903: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s = new Float32Array(16);
+ return s[0] = o[0], s[1] = o[1], s[2] = o[2], s[3] = o[3], s[4] = o[4], s[5] = o[5], s[6] = o[6], s[7] = o[7], s[8] = o[8], s[9] = o[9], s[10] = o[10], s[11] = o[11], s[12] = o[12], s[13] = o[13], s[14] = o[14], s[15] = o[15], s;
+ }
+ }, 1944: function(i, a, o) {
+ var s = o(5250), l = o(8210);
+ i.exports = u;
+ function u(c, f) {
+ for (var h = s(c[0], f[0]), d = 1; d < c.length; ++d) h = l(h, s(c[d], f[d]));
+ return h;
+ }
+ }, 1964: function(i, a, o) {
+ i.exports = { alpha_shape: o(3502), convex_hull: o(7352), delaunay_triangulate: o(7642), gl_cone3d: o(6405), gl_error3d: o(9165), gl_line3d: o(5714), gl_mesh3d: o(7201), gl_plot3d: o(4100), gl_scatter3d: o(8418), gl_streamtube3d: o(7815), gl_surface3d: o(9499), ndarray: o(9618), ndarray_linear_interpolate: o(4317) };
+ }, 2014: function(i, a, o) {
+ "use restrict";
+ var s = o(3105), l = o(4623);
+ function u(g) {
+ for (var P = 0, A = Math.max, z = 0, O = g.length; z < O; ++z) P = A(P, g[z].length);
+ return P - 1;
+ }
+ a.dimension = u;
+ function c(g) {
+ for (var P = -1, A = Math.max, z = 0, O = g.length; z < O; ++z) for (var U = g[z], G = 0, Z = U.length; G < Z; ++G) P = A(P, U[G]);
+ return P + 1;
+ }
+ a.countVertices = c;
+ function f(g) {
+ for (var P = new Array(g.length), A = 0, z = g.length; A < z; ++A) P[A] = g[A].slice(0);
+ return P;
+ }
+ a.cloneCells = f;
+ function h(g, P) {
+ var A = g.length, z = g.length - P.length, O = Math.min;
+ if (z) return z;
+ switch (A) {
+ case 0:
+ return 0;
+ case 1:
+ return g[0] - P[0];
+ case 2:
+ var N = g[0] + g[1] - P[0] - P[1];
+ return N || O(g[0], g[1]) - O(P[0], P[1]);
+ case 3:
+ var U = g[0] + g[1], G = P[0] + P[1];
+ if (N = U + g[2] - (G + P[2]), N) return N;
+ var Z = O(g[0], g[1]), j = O(P[0], P[1]), N = O(Z, g[2]) - O(j, P[2]);
+ return N || O(Z + g[2], U) - O(j + P[2], G);
+ default:
+ var H = g.slice(0);
+ H.sort();
+ var re = P.slice(0);
+ re.sort();
+ for (var oe = 0; oe < A; ++oe) if (z = H[oe] - re[oe], z) return z;
+ return 0;
+ }
+ }
+ a.compareCells = h;
+ function d(g, P) {
+ return h(g[0], P[0]);
+ }
+ function v(g, P) {
+ if (P) {
+ for (var A = g.length, z = new Array(A), O = 0; O < A; ++O) z[O] = [g[O], P[O]];
+ z.sort(d);
+ for (var O = 0; O < A; ++O) g[O] = z[O][0], P[O] = z[O][1];
+ return g;
+ } else return g.sort(h), g;
+ }
+ a.normalize = v;
+ function _(g) {
+ if (g.length === 0) return [];
+ for (var P = 1, A = g.length, z = 1; z < A; ++z) {
+ var O = g[z];
+ if (h(O, g[z - 1])) {
+ if (z === P) {
+ P++;
+ continue;
+ }
+ g[P++] = O;
+ }
+ }
+ return g.length = P, g;
+ }
+ a.unique = _;
+ function b(g, P) {
+ for (var A = 0, z = g.length - 1, O = -1; A <= z; ) {
+ var U = A + z >> 1, G = h(g[U], P);
+ G <= 0 ? (G === 0 && (O = U), A = U + 1) : G > 0 && (z = U - 1);
+ }
+ return O;
+ }
+ a.findCell = b;
+ function p(g, P) {
+ for (var A = new Array(g.length), z = 0, O = A.length; z < O; ++z) A[z] = [];
+ for (var U = [], z = 0, G = P.length; z < G; ++z) for (var Z = P[z], j = Z.length, N = 1, H = 1 << j; N < H; ++N) {
+ U.length = s.popCount(N);
+ for (var re = 0, oe = 0; oe < j; ++oe) N & 1 << oe && (U[re++] = Z[oe]);
+ var _e = b(g, U);
+ if (!(_e < 0)) for (; A[_e++].push(z), !(_e >= g.length || h(g[_e], U) !== 0); ) ;
+ }
+ return A;
+ }
+ a.incidence = p;
+ function k(g, P) {
+ if (!P) return p(_(T(g, 0)), g);
+ for (var A = new Array(P), z = 0; z < P; ++z) A[z] = [];
+ for (var z = 0, O = g.length; z < O; ++z) for (var U = g[z], G = 0, Z = U.length; G < Z; ++G) A[U[G]].push(z);
+ return A;
+ }
+ a.dual = k;
+ function E(g) {
+ for (var P = [], A = 0, z = g.length; A < z; ++A) for (var O = g[A], U = O.length | 0, G = 1, Z = 1 << U; G < Z; ++G) {
+ for (var j = [], N = 0; N < U; ++N) G >>> N & 1 && j.push(O[N]);
+ P.push(j);
+ }
+ return v(P);
+ }
+ a.explode = E;
+ function T(g, P) {
+ if (P < 0) return [];
+ for (var A = [], z = (1 << P + 1) - 1, O = 0; O < g.length; ++O) for (var U = g[O], G = z; G < 1 << U.length; G = s.nextCombination(G)) {
+ for (var Z = new Array(P + 1), j = 0, N = 0; N < U.length; ++N) G & 1 << N && (Z[j++] = U[N]);
+ A.push(Z);
+ }
+ return v(A);
+ }
+ a.skeleton = T;
+ function L(g) {
+ for (var P = [], A = 0, z = g.length; A < z; ++A) for (var O = g[A], U = 0, G = O.length; U < G; ++U) {
+ for (var Z = new Array(O.length - 1), j = 0, N = 0; j < G; ++j) j !== U && (Z[N++] = O[j]);
+ P.push(Z);
+ }
+ return v(P);
+ }
+ a.boundary = L;
+ function x(g, P) {
+ for (var A = new l(P), z = 0; z < g.length; ++z) for (var O = g[z], U = 0; U < O.length; ++U) for (var G = U + 1; G < O.length; ++G) A.link(O[U], O[G]);
+ for (var Z = [], j = A.ranks, z = 0; z < j.length; ++z) j[z] = -1;
+ for (var z = 0; z < g.length; ++z) {
+ var N = A.find(g[z][0]);
+ j[N] < 0 ? (j[N] = Z.length, Z.push([g[z].slice(0)])) : Z[j[N]].push(g[z].slice(0));
+ }
+ return Z;
+ }
+ function C(g) {
+ for (var P = _(v(T(g, 0))), A = new l(P.length), z = 0; z < g.length; ++z) for (var O = g[z], U = 0; U < O.length; ++U) for (var G = b(P, [O[U]]), Z = U + 1; Z < O.length; ++Z) A.link(G, b(P, [O[Z]]));
+ for (var j = [], N = A.ranks, z = 0; z < N.length; ++z) N[z] = -1;
+ for (var z = 0; z < g.length; ++z) {
+ var H = A.find(b(P, [g[z][0]]));
+ N[H] < 0 ? (N[H] = j.length, j.push([g[z].slice(0)])) : j[N[H]].push(g[z].slice(0));
+ }
+ return j;
+ }
+ function M(g, P) {
+ return P ? x(g, P) : C(g);
+ }
+ a.connectedComponents = M;
+ }, 2095: function(i, a, o) {
+ i.exports = b;
+ var s = o(3134), l = o(3088), u = o(5085), c = o(5250), f = o(8210), h = o(1682), d = o(5609);
+ function v(p, k) {
+ for (var E = new Array(p), T = 0; T < p; ++T) E[T] = k;
+ return E;
+ }
+ function _(p) {
+ for (var k = new Array(p), E = 0; E < p; ++E) k[E] = [];
+ return k;
+ }
+ function b(p, k) {
+ var De = d(p, k);
+ p = De[0], k = De[1];
+ for (var E = k.length, T = p.length, L = s(p, k.length), x = 0; x < E; ++x) if (L[x].length % 2 === 1) throw new Error("planar-graph-to-polyline: graph must be manifold");
+ var C = l(p, k);
+ function M(ut) {
+ for (var Wt = ut.length, Nt = [0], $t = 0; $t < Wt; ++$t) {
+ var sr = k[ut[$t]], Tr = k[ut[($t + 1) % Wt]], fr = c(-sr[0], sr[1]), $e = c(-sr[0], Tr[1]), St = c(Tr[0], sr[1]), Qt = c(Tr[0], Tr[1]);
+ Nt = f(Nt, f(f(fr, $e), f(St, Qt)));
+ }
+ return Nt[Nt.length - 1] > 0;
+ }
+ C = C.filter(M);
+ for (var g = C.length, P = new Array(g), A = new Array(g), x = 0; x < g; ++x) {
+ P[x] = x;
+ var z = new Array(g), O = C[x].map(function(Wt) {
+ return k[Wt];
+ }), U = u([O]), G = 0;
+ e: for (var Z = 0; Z < g; ++Z) if (z[Z] = 0, x !== Z) {
+ for (var j = C[Z], N = j.length, H = 0; H < N; ++H) {
+ var re = U(k[j[H]]);
+ if (re !== 0) {
+ re < 0 && (z[Z] = 1, G += 1);
+ continue e;
+ }
+ }
+ z[Z] = 1, G += 1;
+ }
+ A[x] = [G, x, z];
+ }
+ A.sort(function(ut, Wt) {
+ return Wt[0] - ut[0];
+ });
+ for (var x = 0; x < g; ++x) for (var z = A[x], oe = z[1], _e = z[2], Z = 0; Z < g; ++Z) _e[Z] && (P[Z] = oe);
+ for (var Ce = _(g), x = 0; x < g; ++x) Ce[x].push(P[x]), Ce[P[x]].push(x);
+ for (var Le = {}, ge = v(E, false), x = 0; x < g; ++x) for (var j = C[x], N = j.length, Z = 0; Z < N; ++Z) {
+ var ie = j[Z], Se = j[(Z + 1) % N], Ee = Math.min(ie, Se) + ":" + Math.max(ie, Se);
+ if (Ee in Le) {
+ var Ae = Le[Ee];
+ Ce[Ae].push(x), Ce[x].push(Ae), ge[ie] = ge[Se] = true;
+ } else Le[Ee] = x;
+ }
+ function Be(ut) {
+ for (var Wt = ut.length, Nt = 0; Nt < Wt; ++Nt) if (!ge[ut[Nt]]) return false;
+ return true;
+ }
+ for (var Pe = [], me = v(g, -1), x = 0; x < g; ++x) P[x] === x && !Be(C[x]) ? (Pe.push(x), me[x] = 0) : me[x] = -1;
+ for (var De = []; Pe.length > 0; ) {
+ var ce = Pe.pop(), je = Ce[ce];
+ h(je, function(ut, Wt) {
+ return ut - Wt;
+ });
+ var lt = je.length, pt = me[ce], Vt;
+ if (pt === 0) {
+ var j = C[ce];
+ Vt = [j];
+ }
+ for (var x = 0; x < lt; ++x) {
+ var ot = je[x];
+ if (!(me[ot] >= 0) && (me[ot] = pt ^ 1, Pe.push(ot), pt === 0)) {
+ var j = C[ot];
+ Be(j) || (j.reverse(), Vt.push(j));
+ }
+ }
+ pt === 0 && De.push(Vt);
+ }
+ return De;
+ }
+ }, 2145: function(i, a) {
+ a.uniforms = u, a.attributes = c;
+ var o = { FLOAT: "float", FLOAT_VEC2: "vec2", FLOAT_VEC3: "vec3", FLOAT_VEC4: "vec4", INT: "int", INT_VEC2: "ivec2", INT_VEC3: "ivec3", INT_VEC4: "ivec4", BOOL: "bool", BOOL_VEC2: "bvec2", BOOL_VEC3: "bvec3", BOOL_VEC4: "bvec4", FLOAT_MAT2: "mat2", FLOAT_MAT3: "mat3", FLOAT_MAT4: "mat4", SAMPLER_2D: "sampler2D", SAMPLER_CUBE: "samplerCube" }, s = null;
+ function l(f, h) {
+ if (!s) {
+ var d = Object.keys(o);
+ s = {};
+ for (var v = 0; v < d.length; ++v) {
+ var _ = d[v];
+ s[f[_]] = o[_];
+ }
+ }
+ return s[h];
+ }
+ function u(f, h) {
+ for (var d = f.getProgramParameter(h, f.ACTIVE_UNIFORMS), v = [], _ = 0; _ < d; ++_) {
+ var b = f.getActiveUniform(h, _);
+ if (b) {
+ var p = l(f, b.type);
+ if (b.size > 1) for (var k = 0; k < b.size; ++k) v.push({ name: b.name.replace("[0]", "[" + k + "]"), type: p });
+ else v.push({ name: b.name, type: p });
+ }
+ }
+ return v;
+ }
+ function c(f, h) {
+ for (var d = f.getProgramParameter(h, f.ACTIVE_ATTRIBUTES), v = [], _ = 0; _ < d; ++_) {
+ var b = f.getActiveAttrib(h, _);
+ b && v.push({ name: b.name, type: l(f, b.type) });
+ }
+ return v;
+ }
+ }, 2229: function(i, a, o) {
+ i.exports = o(6843);
+ }, 2260: function(i, a, o) {
+ var s = o(7766);
+ i.exports = C;
+ var l = null, u, c, f, h;
+ function d(M) {
+ var g = M.getParameter(M.FRAMEBUFFER_BINDING), P = M.getParameter(M.RENDERBUFFER_BINDING), A = M.getParameter(M.TEXTURE_BINDING_2D);
+ return [g, P, A];
+ }
+ function v(M, g) {
+ M.bindFramebuffer(M.FRAMEBUFFER, g[0]), M.bindRenderbuffer(M.RENDERBUFFER, g[1]), M.bindTexture(M.TEXTURE_2D, g[2]);
+ }
+ function _(M, g) {
+ var P = M.getParameter(g.MAX_COLOR_ATTACHMENTS_WEBGL);
+ l = new Array(P + 1);
+ for (var A = 0; A <= P; ++A) {
+ for (var z = new Array(P), O = 0; O < A; ++O) z[O] = M.COLOR_ATTACHMENT0 + O;
+ for (var O = A; O < P; ++O) z[O] = M.NONE;
+ l[A] = z;
+ }
+ }
+ function b(M) {
+ switch (M) {
+ case u:
+ throw new Error("gl-fbo: Framebuffer unsupported");
+ case c:
+ throw new Error("gl-fbo: Framebuffer incomplete attachment");
+ case f:
+ throw new Error("gl-fbo: Framebuffer incomplete dimensions");
+ case h:
+ throw new Error("gl-fbo: Framebuffer incomplete missing attachment");
+ default:
+ throw new Error("gl-fbo: Framebuffer failed for unspecified reason");
+ }
+ }
+ function p(M, g, P, A, z, O) {
+ if (!A) return null;
+ var U = s(M, g, P, z, A);
+ return U.magFilter = M.NEAREST, U.minFilter = M.NEAREST, U.mipSamples = 1, U.bind(), M.framebufferTexture2D(M.FRAMEBUFFER, O, M.TEXTURE_2D, U.handle, 0), U;
+ }
+ function k(M, g, P, A, z) {
+ var O = M.createRenderbuffer();
+ return M.bindRenderbuffer(M.RENDERBUFFER, O), M.renderbufferStorage(M.RENDERBUFFER, A, g, P), M.framebufferRenderbuffer(M.FRAMEBUFFER, z, M.RENDERBUFFER, O), O;
+ }
+ function E(M) {
+ var g = d(M.gl), P = M.gl, A = M.handle = P.createFramebuffer(), z = M._shape[0], O = M._shape[1], U = M.color.length, G = M._ext, Z = M._useStencil, j = M._useDepth, N = M._colorType;
+ P.bindFramebuffer(P.FRAMEBUFFER, A);
+ for (var H = 0; H < U; ++H) M.color[H] = p(P, z, O, N, P.RGBA, P.COLOR_ATTACHMENT0 + H);
+ U === 0 ? (M._color_rb = k(P, z, O, P.RGBA4, P.COLOR_ATTACHMENT0), G && G.drawBuffersWEBGL(l[0])) : U > 1 && G.drawBuffersWEBGL(l[U]);
+ var re = P.getExtension("WEBGL_depth_texture");
+ re ? Z ? M.depth = p(P, z, O, re.UNSIGNED_INT_24_8_WEBGL, P.DEPTH_STENCIL, P.DEPTH_STENCIL_ATTACHMENT) : j && (M.depth = p(P, z, O, P.UNSIGNED_SHORT, P.DEPTH_COMPONENT, P.DEPTH_ATTACHMENT)) : j && Z ? M._depth_rb = k(P, z, O, P.DEPTH_STENCIL, P.DEPTH_STENCIL_ATTACHMENT) : j ? M._depth_rb = k(P, z, O, P.DEPTH_COMPONENT16, P.DEPTH_ATTACHMENT) : Z && (M._depth_rb = k(P, z, O, P.STENCIL_INDEX, P.STENCIL_ATTACHMENT));
+ var oe = P.checkFramebufferStatus(P.FRAMEBUFFER);
+ if (oe !== P.FRAMEBUFFER_COMPLETE) {
+ M._destroyed = true, P.bindFramebuffer(P.FRAMEBUFFER, null), P.deleteFramebuffer(M.handle), M.handle = null, M.depth && (M.depth.dispose(), M.depth = null), M._depth_rb && (P.deleteRenderbuffer(M._depth_rb), M._depth_rb = null);
+ for (var H = 0; H < M.color.length; ++H) M.color[H].dispose(), M.color[H] = null;
+ M._color_rb && (P.deleteRenderbuffer(M._color_rb), M._color_rb = null), v(P, g), b(oe);
+ }
+ v(P, g);
+ }
+ function T(M, g, P, A, z, O, U, G) {
+ this.gl = M, this._shape = [g | 0, P | 0], this._destroyed = false, this._ext = G, this.color = new Array(z);
+ for (var Z = 0; Z < z; ++Z) this.color[Z] = null;
+ this._color_rb = null, this.depth = null, this._depth_rb = null, this._colorType = A, this._useDepth = O, this._useStencil = U;
+ var j = this, N = [g | 0, P | 0];
+ Object.defineProperties(N, { 0: { get: function() {
+ return j._shape[0];
+ }, set: function(H) {
+ return j.width = H;
+ } }, 1: { get: function() {
+ return j._shape[1];
+ }, set: function(H) {
+ return j.height = H;
+ } } }), this._shapeVector = N, E(this);
+ }
+ var L = T.prototype;
+ function x(M, g, P) {
+ if (M._destroyed) throw new Error("gl-fbo: Can't resize destroyed FBO");
+ if (!(M._shape[0] === g && M._shape[1] === P)) {
+ var A = M.gl, z = A.getParameter(A.MAX_RENDERBUFFER_SIZE);
+ if (g < 0 || g > z || P < 0 || P > z) throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");
+ M._shape[0] = g, M._shape[1] = P;
+ for (var O = d(A), U = 0; U < M.color.length; ++U) M.color[U].shape = M._shape;
+ M._color_rb && (A.bindRenderbuffer(A.RENDERBUFFER, M._color_rb), A.renderbufferStorage(A.RENDERBUFFER, A.RGBA4, M._shape[0], M._shape[1])), M.depth && (M.depth.shape = M._shape), M._depth_rb && (A.bindRenderbuffer(A.RENDERBUFFER, M._depth_rb), M._useDepth && M._useStencil ? A.renderbufferStorage(A.RENDERBUFFER, A.DEPTH_STENCIL, M._shape[0], M._shape[1]) : M._useDepth ? A.renderbufferStorage(A.RENDERBUFFER, A.DEPTH_COMPONENT16, M._shape[0], M._shape[1]) : M._useStencil && A.renderbufferStorage(A.RENDERBUFFER, A.STENCIL_INDEX, M._shape[0], M._shape[1])), A.bindFramebuffer(A.FRAMEBUFFER, M.handle);
+ var G = A.checkFramebufferStatus(A.FRAMEBUFFER);
+ G !== A.FRAMEBUFFER_COMPLETE && (M.dispose(), v(A, O), b(G)), v(A, O);
+ }
+ }
+ Object.defineProperties(L, { shape: { get: function() {
+ return this._destroyed ? [0, 0] : this._shapeVector;
+ }, set: function(M) {
+ if (Array.isArray(M) || (M = [M | 0, M | 0]), M.length !== 2) throw new Error("gl-fbo: Shape vector must be length 2");
+ var g = M[0] | 0, P = M[1] | 0;
+ return x(this, g, P), [g, P];
+ }, enumerable: false }, width: { get: function() {
+ return this._destroyed ? 0 : this._shape[0];
+ }, set: function(M) {
+ return M = M | 0, x(this, M, this._shape[1]), M;
+ }, enumerable: false }, height: { get: function() {
+ return this._destroyed ? 0 : this._shape[1];
+ }, set: function(M) {
+ return M = M | 0, x(this, this._shape[0], M), M;
+ }, enumerable: false } }), L.bind = function() {
+ if (!this._destroyed) {
+ var M = this.gl;
+ M.bindFramebuffer(M.FRAMEBUFFER, this.handle), M.viewport(0, 0, this._shape[0], this._shape[1]);
+ }
+ }, L.dispose = function() {
+ if (!this._destroyed) {
+ this._destroyed = true;
+ var M = this.gl;
+ M.deleteFramebuffer(this.handle), this.handle = null, this.depth && (this.depth.dispose(), this.depth = null), this._depth_rb && (M.deleteRenderbuffer(this._depth_rb), this._depth_rb = null);
+ for (var g = 0; g < this.color.length; ++g) this.color[g].dispose(), this.color[g] = null;
+ this._color_rb && (M.deleteRenderbuffer(this._color_rb), this._color_rb = null);
+ }
+ };
+ function C(M, g, P, A) {
+ u || (u = M.FRAMEBUFFER_UNSUPPORTED, c = M.FRAMEBUFFER_INCOMPLETE_ATTACHMENT, f = M.FRAMEBUFFER_INCOMPLETE_DIMENSIONS, h = M.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);
+ var z = M.getExtension("WEBGL_draw_buffers");
+ if (!l && z && _(M, z), Array.isArray(g) && (A = P, P = g[1] | 0, g = g[0] | 0), typeof g != "number") throw new Error("gl-fbo: Missing shape parameter");
+ var O = M.getParameter(M.MAX_RENDERBUFFER_SIZE);
+ if (g < 0 || g > O || P < 0 || P > O) throw new Error("gl-fbo: Parameters are too large for FBO");
+ A = A || {};
+ var U = 1;
+ if ("color" in A) {
+ if (U = Math.max(A.color | 0, 0), U < 0) throw new Error("gl-fbo: Must specify a nonnegative number of colors");
+ if (U > 1) if (z) {
+ if (U > M.getParameter(z.MAX_COLOR_ATTACHMENTS_WEBGL)) throw new Error("gl-fbo: Context does not support " + U + " draw buffers");
+ } else throw new Error("gl-fbo: Multiple draw buffer extension not supported");
+ }
+ var G = M.UNSIGNED_BYTE, Z = M.getExtension("OES_texture_float");
+ if (A.float && U > 0) {
+ if (!Z) throw new Error("gl-fbo: Context does not support floating point textures");
+ G = M.FLOAT;
+ } else A.preferFloat && U > 0 && Z && (G = M.FLOAT);
+ var j = true;
+ "depth" in A && (j = !!A.depth);
+ var N = false;
+ return "stencil" in A && (N = !!A.stencil), new T(M, g, P, G, U, j, N, z);
+ }
+ }, 2272: function(i, a, o) {
+ var s = o(2646)[4];
+ o(2478);
+ i.exports = c;
+ function u(f, h, d, v, _, b) {
+ var p = h.opposite(v, _);
+ if (!(p < 0)) {
+ if (_ < v) {
+ var k = v;
+ v = _, _ = k, k = b, b = p, p = k;
+ }
+ h.isConstraint(v, _) || s(f[v], f[_], f[b], f[p]) < 0 && d.push(v, _);
+ }
+ }
+ function c(f, h) {
+ for (var d = [], v = f.length, _ = h.stars, b = 0; b < v; ++b) for (var p = _[b], k = 1; k < p.length; k += 2) {
+ var E = p[k];
+ if (!(E < b) && !h.isConstraint(b, E)) {
+ for (var T = p[k - 1], L = -1, x = 1; x < p.length; x += 2) if (p[x - 1] === E) {
+ L = p[x];
+ break;
+ }
+ L < 0 || s(f[b], f[E], f[T], f[L]) < 0 && d.push(b, E);
+ }
+ }
+ for (; d.length > 0; ) {
+ for (var E = d.pop(), b = d.pop(), T = -1, L = -1, p = _[b], C = 1; C < p.length; C += 2) {
+ var M = p[C - 1], g = p[C];
+ M === E ? L = g : g === E && (T = M);
+ }
+ T < 0 || L < 0 || s(f[b], f[E], f[T], f[L]) >= 0 || (h.flip(b, E), u(f, h, d, T, b, L), u(f, h, d, b, L, T), u(f, h, d, L, E, T), u(f, h, d, E, T, L));
+ }
+ }
+ }, 2334: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = Math.min(s[0], l[0]), o[1] = Math.min(s[1], l[1]), o[2] = Math.min(s[2], l[2]), o[3] = Math.min(s[3], l[3]), o;
+ }
+ }, 2335: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s = new Float32Array(4);
+ return s[0] = o[0], s[1] = o[1], s[2] = o[2], s[3] = o[3], s;
+ }
+ }, 2361: function(i) {
+ var a = false;
+ if (typeof Float64Array != "undefined") {
+ var o = new Float64Array(1), s = new Uint32Array(o.buffer);
+ if (o[0] = 1, a = true, s[1] === 1072693248) {
+ let k = function(L, x) {
+ return s[0] = L, s[1] = x, o[0];
+ }, E = function(L) {
+ return o[0] = L, s[0];
+ }, T = function(L) {
+ return o[0] = L, s[1];
+ };
+ i.exports = function(x) {
+ return o[0] = x, [s[0], s[1]];
+ }, i.exports.pack = k, i.exports.lo = E, i.exports.hi = T;
+ } else if (s[0] === 1072693248) {
+ let k = function(L, x) {
+ return s[1] = L, s[0] = x, o[0];
+ }, E = function(L) {
+ return o[0] = L, s[1];
+ }, T = function(L) {
+ return o[0] = L, s[0];
+ };
+ i.exports = function(x) {
+ return o[0] = x, [s[1], s[0]];
+ }, i.exports.pack = k, i.exports.lo = E, i.exports.hi = T;
+ } else a = false;
+ }
+ if (!a) {
+ let k = function(L, x) {
+ return l.writeUInt32LE(L, 0, true), l.writeUInt32LE(x, 4, true), l.readDoubleLE(0, true);
+ }, E = function(L) {
+ return l.writeDoubleLE(L, 0, true), l.readUInt32LE(0, true);
+ }, T = function(L) {
+ return l.writeDoubleLE(L, 0, true), l.readUInt32LE(4, true);
+ };
+ var l = new Buffer(8);
+ i.exports = function(x) {
+ return l.writeDoubleLE(x, 0, true), [l.readUInt32LE(0, true), l.readUInt32LE(4, true)];
+ }, i.exports.pack = k, i.exports.lo = E, i.exports.hi = T;
+ }
+ i.exports.sign = function(k) {
+ return i.exports.hi(k) >>> 31;
+ }, i.exports.exponent = function(k) {
+ var E = i.exports.hi(k);
+ return (E << 1 >>> 21) - 1023;
+ }, i.exports.fraction = function(k) {
+ var E = i.exports.lo(k), T = i.exports.hi(k), L = T & (1 << 20) - 1;
+ return T & 2146435072 && (L += 1048576), [E, L];
+ }, i.exports.denormalized = function(k) {
+ var E = i.exports.hi(k);
+ return !(E & 2146435072);
+ };
+ }, 2408: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = Math.sin(l), c = Math.cos(l), f = s[0], h = s[1], d = s[2], v = s[3], _ = s[8], b = s[9], p = s[10], k = s[11];
+ return s !== o && (o[4] = s[4], o[5] = s[5], o[6] = s[6], o[7] = s[7], o[12] = s[12], o[13] = s[13], o[14] = s[14], o[15] = s[15]), o[0] = f * c - _ * u, o[1] = h * c - b * u, o[2] = d * c - p * u, o[3] = v * c - k * u, o[8] = f * u + _ * c, o[9] = h * u + b * c, o[10] = d * u + p * c, o[11] = v * u + k * c, o;
+ }
+ }, 2419: function(i) {
+ i.exports = a;
+ function a(o) {
+ for (var s = 1, l = 1; l < o.length; ++l) for (var u = 0; u < l; ++u) if (o[l] < o[u]) s = -s;
+ else if (o[u] === o[l]) return 0;
+ return s;
+ }
+ }, 2447: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = Math.round(s[0]), o[1] = Math.round(s[1]), o[2] = Math.round(s[2]), o;
+ }
+ }, 2455: function(i, a) {
+ function o() {
+ function u(h, d, v, _, b, p, k, E, T, L, x) {
+ for (var C = 2 * h, M = _, g = C * _; M < b; ++M, g += C) {
+ var P = p[d + g], A = p[d + g + h], z = k[M];
+ e: for (var O = E, U = C * E; O < T; ++O, U += C) {
+ var G = L[d + U], Z = L[d + U + h], j = x[O];
+ if (!(Z < P || A < G)) {
+ for (var N = d + 1; N < h; ++N) {
+ var H = p[N + g], re = p[N + h + g], oe = L[N + U], _e = L[N + h + U];
+ if (re < oe || _e < H) continue e;
+ }
+ var Ce = v(z, j);
+ if (Ce !== void 0) return Ce;
+ }
+ }
+ }
+ }
+ function c(h, d, v, _, b, p, k, E, T, L, x) {
+ for (var C = 2 * h, M = E, g = C * E; M < T; ++M, g += C) {
+ var P = L[d + g], A = L[d + g + h], z = x[M];
+ e: for (var O = _, U = C * _; O < b; ++O, U += C) {
+ var G = p[d + U], Z = p[d + U + h], j = k[O];
+ if (!(A < G || Z < P)) {
+ for (var N = d + 1; N < h; ++N) {
+ var H = p[N + U], re = p[N + h + U], oe = L[N + g], _e = L[N + h + g];
+ if (re < oe || _e < H) continue e;
+ }
+ var Ce = v(j, z);
+ if (Ce !== void 0) return Ce;
+ }
+ }
+ }
+ }
+ function f(h, d, v, _, b, p, k, E, T, L, x) {
+ return b - _ > T - E ? u(h, d, v, _, b, p, k, E, T, L, x) : c(h, d, v, _, b, p, k, E, T, L, x);
+ }
+ return f;
+ }
+ function s() {
+ function u(v, _, b, p, k, E, T, L, x, C, M) {
+ for (var g = 2 * v, P = p, A = g * p; P < k; ++P, A += g) {
+ var z = E[_ + A], O = E[_ + A + v], U = T[P];
+ e: for (var G = L, Z = g * L; G < x; ++G, Z += g) {
+ var j = C[_ + Z], N = M[G];
+ if (!(j <= z || O < j)) {
+ for (var H = _ + 1; H < v; ++H) {
+ var re = E[H + A], oe = E[H + v + A], _e = C[H + Z], Ce = C[H + v + Z];
+ if (oe < _e || Ce < re) continue e;
+ }
+ var Le = b(N, U);
+ if (Le !== void 0) return Le;
+ }
+ }
+ }
+ }
+ function c(v, _, b, p, k, E, T, L, x, C, M) {
+ for (var g = 2 * v, P = p, A = g * p; P < k; ++P, A += g) {
+ var z = E[_ + A], O = E[_ + A + v], U = T[P];
+ e: for (var G = L, Z = g * L; G < x; ++G, Z += g) {
+ var j = C[_ + Z], N = M[G];
+ if (!(j < z || O < j)) {
+ for (var H = _ + 1; H < v; ++H) {
+ var re = E[H + A], oe = E[H + v + A], _e = C[H + Z], Ce = C[H + v + Z];
+ if (oe < _e || Ce < re) continue e;
+ }
+ var Le = b(U, N);
+ if (Le !== void 0) return Le;
+ }
+ }
+ }
+ }
+ function f(v, _, b, p, k, E, T, L, x, C, M) {
+ for (var g = 2 * v, P = L, A = g * L; P < x; ++P, A += g) {
+ var z = C[_ + A], O = M[P];
+ e: for (var U = p, G = g * p; U < k; ++U, G += g) {
+ var Z = E[_ + G], j = E[_ + G + v], N = T[U];
+ if (!(z <= Z || j < z)) {
+ for (var H = _ + 1; H < v; ++H) {
+ var re = E[H + G], oe = E[H + v + G], _e = C[H + A], Ce = C[H + v + A];
+ if (oe < _e || Ce < re) continue e;
+ }
+ var Le = b(O, N);
+ if (Le !== void 0) return Le;
+ }
+ }
+ }
+ }
+ function h(v, _, b, p, k, E, T, L, x, C, M) {
+ for (var g = 2 * v, P = L, A = g * L; P < x; ++P, A += g) {
+ var z = C[_ + A], O = M[P];
+ e: for (var U = p, G = g * p; U < k; ++U, G += g) {
+ var Z = E[_ + G], j = E[_ + G + v], N = T[U];
+ if (!(z < Z || j < z)) {
+ for (var H = _ + 1; H < v; ++H) {
+ var re = E[H + G], oe = E[H + v + G], _e = C[H + A], Ce = C[H + v + A];
+ if (oe < _e || Ce < re) continue e;
+ }
+ var Le = b(N, O);
+ if (Le !== void 0) return Le;
+ }
+ }
+ }
+ }
+ function d(v, _, b, p, k, E, T, L, x, C, M, g) {
+ return E - k > C - x ? p ? u(v, _, b, k, E, T, L, x, C, M, g) : c(v, _, b, k, E, T, L, x, C, M, g) : p ? f(v, _, b, k, E, T, L, x, C, M, g) : h(v, _, b, k, E, T, L, x, C, M, g);
+ }
+ return d;
+ }
+ function l(u) {
+ return u ? o() : s();
+ }
+ a.partial = l(false), a.full = l(true);
+ }, 2478: function(i) {
+ function a(f, h, d, v, _) {
+ for (var b = _ + 1; v <= _; ) {
+ var p = v + _ >>> 1, k = f[p], E = d !== void 0 ? d(k, h) : k - h;
+ E >= 0 ? (b = p, _ = p - 1) : v = p + 1;
+ }
+ return b;
+ }
+ function o(f, h, d, v, _) {
+ for (var b = _ + 1; v <= _; ) {
+ var p = v + _ >>> 1, k = f[p], E = d !== void 0 ? d(k, h) : k - h;
+ E > 0 ? (b = p, _ = p - 1) : v = p + 1;
+ }
+ return b;
+ }
+ function s(f, h, d, v, _) {
+ for (var b = v - 1; v <= _; ) {
+ var p = v + _ >>> 1, k = f[p], E = d !== void 0 ? d(k, h) : k - h;
+ E < 0 ? (b = p, v = p + 1) : _ = p - 1;
+ }
+ return b;
+ }
+ function l(f, h, d, v, _) {
+ for (var b = v - 1; v <= _; ) {
+ var p = v + _ >>> 1, k = f[p], E = d !== void 0 ? d(k, h) : k - h;
+ E <= 0 ? (b = p, v = p + 1) : _ = p - 1;
+ }
+ return b;
+ }
+ function u(f, h, d, v, _) {
+ for (; v <= _; ) {
+ var b = v + _ >>> 1, p = f[b], k = d !== void 0 ? d(p, h) : p - h;
+ if (k === 0) return b;
+ k <= 0 ? v = b + 1 : _ = b - 1;
+ }
+ return -1;
+ }
+ function c(f, h, d, v, _, b) {
+ return typeof d == "function" ? b(f, h, d, v === void 0 ? 0 : v | 0, _ === void 0 ? f.length - 1 : _ | 0) : b(f, h, void 0, d === void 0 ? 0 : d | 0, v === void 0 ? f.length - 1 : v | 0);
+ }
+ i.exports = { ge: function(f, h, d, v, _) {
+ return c(f, h, d, v, _, a);
+ }, gt: function(f, h, d, v, _) {
+ return c(f, h, d, v, _, o);
+ }, lt: function(f, h, d, v, _) {
+ return c(f, h, d, v, _, s);
+ }, le: function(f, h, d, v, _) {
+ return c(f, h, d, v, _, l);
+ }, eq: function(f, h, d, v, _) {
+ return c(f, h, d, v, _, u);
+ } };
+ }, 2504: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = l[0], c = l[1], f = l[2];
+ return o[0] = s[0] * u, o[1] = s[1] * u, o[2] = s[2] * u, o[3] = s[3] * u, o[4] = s[4] * c, o[5] = s[5] * c, o[6] = s[6] * c, o[7] = s[7] * c, o[8] = s[8] * f, o[9] = s[9] * f, o[10] = s[10] * f, o[11] = s[11] * f, o[12] = s[12], o[13] = s[13], o[14] = s[14], o[15] = s[15], o;
+ }
+ }, 2538: function(i, a, o) {
+ var s = o(8902), l = o(5542), u = o(2272), c = o(5023);
+ i.exports = _;
+ function f(b) {
+ return [Math.min(b[0], b[1]), Math.max(b[0], b[1])];
+ }
+ function h(b, p) {
+ return b[0] - p[0] || b[1] - p[1];
+ }
+ function d(b) {
+ return b.map(f).sort(h);
+ }
+ function v(b, p, k) {
+ return p in b ? b[p] : k;
+ }
+ function _(b, p, k) {
+ Array.isArray(p) ? (k = k || {}, p = p || []) : (k = p || {}, p = []);
+ var E = !!v(k, "delaunay", true), T = !!v(k, "interior", true), L = !!v(k, "exterior", true), x = !!v(k, "infinity", false);
+ if (!T && !L || b.length === 0) return [];
+ var C = s(b, p);
+ if (E || T !== L || x) {
+ for (var M = l(b.length, d(p)), g = 0; g < C.length; ++g) {
+ var P = C[g];
+ M.addTriangle(P[0], P[1], P[2]);
+ }
+ return E && u(b, M), L ? T ? x ? c(M, 0, x) : M.cells() : c(M, 1, x) : c(M, -1);
+ } else return C;
+ }
+ }, 2573: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ var c = s[0], f = s[1], h = s[2], d = s[3];
+ return o[0] = c + u * (l[0] - c), o[1] = f + u * (l[1] - f), o[2] = h + u * (l[2] - h), o[3] = d + u * (l[3] - d), o;
+ }
+ }, 2613: function(i) {
+ i.exports = 1e-6;
+ }, 2640: function(i, a, o) {
+ var s = o(1888);
+ i.exports = c;
+ var l = { "false,0,1": function(h, d, v, _, b) {
+ return function(k, E, T, L) {
+ var x = k.shape[0] | 0, C = k.shape[1] | 0, M = k.data, g = k.offset | 0, P = k.stride[0] | 0, A = k.stride[1] | 0, z = g, O, U = -P | 0, G = 0, Z = -A | 0, j = 0, N = -P - A | 0, H = 0, re = P | 0, oe = A - P * x | 0, _e = 0, Ce = 0, Le = 0, ge = 2 * x | 0, ie = _(ge), Se = _(ge), Ee = 0, Ae = 0, Be = -1, Pe = -1, me = 0, De = -x | 0, ce = x | 0, je = 0, lt = -x - 1 | 0, pt = x - 1 | 0, Vt = 0, ot = 0, ut = 0;
+ for (_e = 0; _e < x; ++_e) ie[Ee++] = v(M[z], E, T, L), z += re;
+ if (z += oe, C > 0) {
+ if (Ce = 1, ie[Ee++] = v(M[z], E, T, L), z += re, x > 0) for (_e = 1, O = M[z], Ae = ie[Ee] = v(O, E, T, L), me = ie[Ee + Be], je = ie[Ee + De], Vt = ie[Ee + lt], (Ae !== me || Ae !== je || Ae !== Vt) && (G = M[z + U], j = M[z + Z], H = M[z + N], h(_e, Ce, O, G, j, H, Ae, me, je, Vt, E, T, L), ot = Se[Ee] = Le++), Ee += 1, z += re, _e = 2; _e < x; ++_e) O = M[z], Ae = ie[Ee] = v(O, E, T, L), me = ie[Ee + Be], je = ie[Ee + De], Vt = ie[Ee + lt], (Ae !== me || Ae !== je || Ae !== Vt) && (G = M[z + U], j = M[z + Z], H = M[z + N], h(_e, Ce, O, G, j, H, Ae, me, je, Vt, E, T, L), ot = Se[Ee] = Le++, Vt !== me && d(Se[Ee + Be], ot, H, G, Vt, me, E, T, L)), Ee += 1, z += re;
+ for (z += oe, Ee = 0, ut = Be, Be = Pe, Pe = ut, ut = De, De = ce, ce = ut, ut = lt, lt = pt, pt = ut, Ce = 2; Ce < C; ++Ce) {
+ if (ie[Ee++] = v(M[z], E, T, L), z += re, x > 0) for (_e = 1, O = M[z], Ae = ie[Ee] = v(O, E, T, L), me = ie[Ee + Be], je = ie[Ee + De], Vt = ie[Ee + lt], (Ae !== me || Ae !== je || Ae !== Vt) && (G = M[z + U], j = M[z + Z], H = M[z + N], h(_e, Ce, O, G, j, H, Ae, me, je, Vt, E, T, L), ot = Se[Ee] = Le++, Vt !== je && d(Se[Ee + De], ot, j, H, je, Vt, E, T, L)), Ee += 1, z += re, _e = 2; _e < x; ++_e) O = M[z], Ae = ie[Ee] = v(O, E, T, L), me = ie[Ee + Be], je = ie[Ee + De], Vt = ie[Ee + lt], (Ae !== me || Ae !== je || Ae !== Vt) && (G = M[z + U], j = M[z + Z], H = M[z + N], h(_e, Ce, O, G, j, H, Ae, me, je, Vt, E, T, L), ot = Se[Ee] = Le++, Vt !== je && d(Se[Ee + De], ot, j, H, je, Vt, E, T, L), Vt !== me && d(Se[Ee + Be], ot, H, G, Vt, me, E, T, L)), Ee += 1, z += re;
+ Ce & 1 && (Ee = 0), ut = Be, Be = Pe, Pe = ut, ut = De, De = ce, ce = ut, ut = lt, lt = pt, pt = ut, z += oe;
+ }
+ }
+ b(Se), b(ie);
+ };
+ }, "false,1,0": function(h, d, v, _, b) {
+ return function(k, E, T, L) {
+ var x = k.shape[0] | 0, C = k.shape[1] | 0, M = k.data, g = k.offset | 0, P = k.stride[0] | 0, A = k.stride[1] | 0, z = g, O, U = -P | 0, G = 0, Z = -A | 0, j = 0, N = -P - A | 0, H = 0, re = A | 0, oe = P - A * C | 0, _e = 0, Ce = 0, Le = 0, ge = 2 * C | 0, ie = _(ge), Se = _(ge), Ee = 0, Ae = 0, Be = -1, Pe = -1, me = 0, De = -C | 0, ce = C | 0, je = 0, lt = -C - 1 | 0, pt = C - 1 | 0, Vt = 0, ot = 0, ut = 0;
+ for (Ce = 0; Ce < C; ++Ce) ie[Ee++] = v(M[z], E, T, L), z += re;
+ if (z += oe, x > 0) {
+ if (_e = 1, ie[Ee++] = v(M[z], E, T, L), z += re, C > 0) for (Ce = 1, O = M[z], Ae = ie[Ee] = v(O, E, T, L), je = ie[Ee + De], me = ie[Ee + Be], Vt = ie[Ee + lt], (Ae !== je || Ae !== me || Ae !== Vt) && (G = M[z + U], j = M[z + Z], H = M[z + N], h(_e, Ce, O, G, j, H, Ae, je, me, Vt, E, T, L), ot = Se[Ee] = Le++), Ee += 1, z += re, Ce = 2; Ce < C; ++Ce) O = M[z], Ae = ie[Ee] = v(O, E, T, L), je = ie[Ee + De], me = ie[Ee + Be], Vt = ie[Ee + lt], (Ae !== je || Ae !== me || Ae !== Vt) && (G = M[z + U], j = M[z + Z], H = M[z + N], h(_e, Ce, O, G, j, H, Ae, je, me, Vt, E, T, L), ot = Se[Ee] = Le++, Vt !== me && d(Se[Ee + Be], ot, j, H, me, Vt, E, T, L)), Ee += 1, z += re;
+ for (z += oe, Ee = 0, ut = De, De = ce, ce = ut, ut = Be, Be = Pe, Pe = ut, ut = lt, lt = pt, pt = ut, _e = 2; _e < x; ++_e) {
+ if (ie[Ee++] = v(M[z], E, T, L), z += re, C > 0) for (Ce = 1, O = M[z], Ae = ie[Ee] = v(O, E, T, L), je = ie[Ee + De], me = ie[Ee + Be], Vt = ie[Ee + lt], (Ae !== je || Ae !== me || Ae !== Vt) && (G = M[z + U], j = M[z + Z], H = M[z + N], h(_e, Ce, O, G, j, H, Ae, je, me, Vt, E, T, L), ot = Se[Ee] = Le++, Vt !== je && d(Se[Ee + De], ot, H, G, Vt, je, E, T, L)), Ee += 1, z += re, Ce = 2; Ce < C; ++Ce) O = M[z], Ae = ie[Ee] = v(O, E, T, L), je = ie[Ee + De], me = ie[Ee + Be], Vt = ie[Ee + lt], (Ae !== je || Ae !== me || Ae !== Vt) && (G = M[z + U], j = M[z + Z], H = M[z + N], h(_e, Ce, O, G, j, H, Ae, je, me, Vt, E, T, L), ot = Se[Ee] = Le++, Vt !== me && d(Se[Ee + Be], ot, j, H, me, Vt, E, T, L), Vt !== je && d(Se[Ee + De], ot, H, G, Vt, je, E, T, L)), Ee += 1, z += re;
+ _e & 1 && (Ee = 0), ut = De, De = ce, ce = ut, ut = Be, Be = Pe, Pe = ut, ut = lt, lt = pt, pt = ut, z += oe;
+ }
+ }
+ b(Se), b(ie);
+ };
+ } };
+ function u(f, h, d, v, _, b) {
+ var p = [b, _].join(","), k = l[p];
+ return k(f, h, d, s.mallocUint32, s.freeUint32);
+ }
+ function c(f) {
+ function h(E) {
+ throw new Error("ndarray-extract-contour: " + E);
+ }
+ typeof f != "object" && h("Must specify arguments");
+ var d = f.order;
+ Array.isArray(d) || h("Must specify order");
+ var v = f.arrayArguments || 1;
+ v < 1 && h("Must have at least one array argument");
+ var _ = f.scalarArguments || 0;
+ _ < 0 && h("Scalar arg count must be > 0"), typeof f.vertex != "function" && h("Must specify vertex creation function"), typeof f.cell != "function" && h("Must specify cell creation function"), typeof f.phase != "function" && h("Must specify phase function");
+ for (var b = f.getters || [], p = new Array(v), k = 0; k < v; ++k) b.indexOf(k) >= 0 ? p[k] = true : p[k] = false;
+ return u(f.vertex, f.cell, f.phase, _, d, p);
+ }
+ }, 2642: function(i, a, o) {
+ i.exports = u;
+ var s = o(727);
+ function l(c) {
+ for (var f = 0, h = 0; h < c.length; ++h) f += c[h];
+ return f;
+ }
+ function u(c, f) {
+ for (var h = f.length, d = new Array(h + 1), v = 0; v < h; ++v) {
+ for (var _ = new Array(h + 1), b = 0; b <= h; ++b) _[b] = c[b][v];
+ d[v] = _;
+ }
+ d[h] = new Array(h + 1);
+ for (var v = 0; v <= h; ++v) d[h][v] = 1;
+ for (var p = new Array(h + 1), v = 0; v < h; ++v) p[v] = f[v];
+ p[h] = 1;
+ var k = s(d, p), E = l(k[h + 1]);
+ E === 0 && (E = 1);
+ for (var T = new Array(h + 1), v = 0; v <= h; ++v) T[v] = l(k[v]) / E;
+ return T;
+ }
+ }, 2646: function(i, a, o) {
+ var s = o(5250), l = o(8210), u = o(8545), c = o(3012), f = 6;
+ function h(M) {
+ var g = M === 3 ? b : M === 4 ? p : M === 5 ? k : E;
+ return g(l, u, s, c);
+ }
+ function d() {
+ return 0;
+ }
+ function v() {
+ return 0;
+ }
+ function _() {
+ return 0;
+ }
+ function b(M, g, P, A) {
+ function z(O, U, G) {
+ var Z = P(O[0], O[0]), j = A(Z, U[0]), N = A(Z, G[0]), H = P(U[0], U[0]), re = A(H, O[0]), oe = A(H, G[0]), _e = P(G[0], G[0]), Ce = A(_e, O[0]), Le = A(_e, U[0]), ge = M(g(Le, oe), g(re, j)), ie = g(Ce, N), Se = g(ge, ie);
+ return Se[Se.length - 1];
+ }
+ return z;
+ }
+ function p(M, g, P, A) {
+ function z(O, U, G, Z) {
+ var j = M(P(O[0], O[0]), P(O[1], O[1])), N = A(j, U[0]), H = A(j, G[0]), re = A(j, Z[0]), oe = M(P(U[0], U[0]), P(U[1], U[1])), _e = A(oe, O[0]), Ce = A(oe, G[0]), Le = A(oe, Z[0]), ge = M(P(G[0], G[0]), P(G[1], G[1])), ie = A(ge, O[0]), Se = A(ge, U[0]), Ee = A(ge, Z[0]), Ae = M(P(Z[0], Z[0]), P(Z[1], Z[1])), Be = A(Ae, O[0]), Pe = A(Ae, U[0]), me = A(Ae, G[0]), De = M(M(A(g(me, Ee), U[1]), M(A(g(Pe, Le), -G[1]), A(g(Se, Ce), Z[1]))), M(A(g(Pe, Le), O[1]), M(A(g(Be, re), -U[1]), A(g(_e, N), Z[1])))), ce = M(M(A(g(me, Ee), O[1]), M(A(g(Be, re), -G[1]), A(g(ie, H), Z[1]))), M(A(g(Se, Ce), O[1]), M(A(g(ie, H), -U[1]), A(g(_e, N), G[1])))), je = g(De, ce);
+ return je[je.length - 1];
+ }
+ return z;
+ }
+ function k(M, g, P, A) {
+ function z(O, U, G, Z, j) {
+ var N = M(P(O[0], O[0]), M(P(O[1], O[1]), P(O[2], O[2]))), H = A(N, U[0]), re = A(N, G[0]), oe = A(N, Z[0]), _e = A(N, j[0]), Ce = M(P(U[0], U[0]), M(P(U[1], U[1]), P(U[2], U[2]))), Le = A(Ce, O[0]), ge = A(Ce, G[0]), ie = A(Ce, Z[0]), Se = A(Ce, j[0]), Ee = M(P(G[0], G[0]), M(P(G[1], G[1]), P(G[2], G[2]))), Ae = A(Ee, O[0]), Be = A(Ee, U[0]), Pe = A(Ee, Z[0]), me = A(Ee, j[0]), De = M(P(Z[0], Z[0]), M(P(Z[1], Z[1]), P(Z[2], Z[2]))), ce = A(De, O[0]), je = A(De, U[0]), lt = A(De, G[0]), pt = A(De, j[0]), Vt = M(P(j[0], j[0]), M(P(j[1], j[1]), P(j[2], j[2]))), ot = A(Vt, O[0]), ut = A(Vt, U[0]), Wt = A(Vt, G[0]), Nt = A(Vt, Z[0]), $t = M(M(M(A(M(A(g(Nt, pt), G[1]), M(A(g(Wt, me), -Z[1]), A(g(lt, Pe), j[1]))), U[2]), M(A(M(A(g(Nt, pt), U[1]), M(A(g(ut, Se), -Z[1]), A(g(je, ie), j[1]))), -G[2]), A(M(A(g(Wt, me), U[1]), M(A(g(ut, Se), -G[1]), A(g(Be, ge), j[1]))), Z[2]))), M(A(M(A(g(lt, Pe), U[1]), M(A(g(je, ie), -G[1]), A(g(Be, ge), Z[1]))), -j[2]), M(A(M(A(g(Nt, pt), U[1]), M(A(g(ut, Se), -Z[1]), A(g(je, ie), j[1]))), O[2]), A(M(A(g(Nt, pt), O[1]), M(A(g(ot, _e), -Z[1]), A(g(ce, oe), j[1]))), -U[2])))), M(M(A(M(A(g(ut, Se), O[1]), M(A(g(ot, _e), -U[1]), A(g(Le, H), j[1]))), Z[2]), M(A(M(A(g(je, ie), O[1]), M(A(g(ce, oe), -U[1]), A(g(Le, H), Z[1]))), -j[2]), A(M(A(g(lt, Pe), U[1]), M(A(g(je, ie), -G[1]), A(g(Be, ge), Z[1]))), O[2]))), M(A(M(A(g(lt, Pe), O[1]), M(A(g(ce, oe), -G[1]), A(g(Ae, re), Z[1]))), -U[2]), M(A(M(A(g(je, ie), O[1]), M(A(g(ce, oe), -U[1]), A(g(Le, H), Z[1]))), G[2]), A(M(A(g(Be, ge), O[1]), M(A(g(Ae, re), -U[1]), A(g(Le, H), G[1]))), -Z[2]))))), sr = M(M(M(A(M(A(g(Nt, pt), G[1]), M(A(g(Wt, me), -Z[1]), A(g(lt, Pe), j[1]))), O[2]), A(M(A(g(Nt, pt), O[1]), M(A(g(ot, _e), -Z[1]), A(g(ce, oe), j[1]))), -G[2])), M(A(M(A(g(Wt, me), O[1]), M(A(g(ot, _e), -G[1]), A(g(Ae, re), j[1]))), Z[2]), A(M(A(g(lt, Pe), O[1]), M(A(g(ce, oe), -G[1]), A(g(Ae, re), Z[1]))), -j[2]))), M(M(A(M(A(g(Wt, me), U[1]), M(A(g(ut, Se), -G[1]), A(g(Be, ge), j[1]))), O[2]), A(M(A(g(Wt, me), O[1]), M(A(g(ot, _e), -G[1]), A(g(Ae, re), j[1]))), -U[2])), M(A(M(A(g(ut, Se), O[1]), M(A(g(ot, _e), -U[1]), A(g(Le, H), j[1]))), G[2]), A(M(A(g(Be, ge), O[1]), M(A(g(Ae, re), -U[1]), A(g(Le, H), G[1]))), -j[2])))), Tr = g($t, sr);
+ return Tr[Tr.length - 1];
+ }
+ return z;
+ }
+ function E(M, g, P, A) {
+ function z(O, U, G, Z, j, N) {
+ var H = M(M(P(O[0], O[0]), P(O[1], O[1])), M(P(O[2], O[2]), P(O[3], O[3]))), re = A(H, U[0]), oe = A(H, G[0]), _e = A(H, Z[0]), Ce = A(H, j[0]), Le = A(H, N[0]), ge = M(M(P(U[0], U[0]), P(U[1], U[1])), M(P(U[2], U[2]), P(U[3], U[3]))), ie = A(ge, O[0]), Se = A(ge, G[0]), Ee = A(ge, Z[0]), Ae = A(ge, j[0]), Be = A(ge, N[0]), Pe = M(M(P(G[0], G[0]), P(G[1], G[1])), M(P(G[2], G[2]), P(G[3], G[3]))), me = A(Pe, O[0]), De = A(Pe, U[0]), ce = A(Pe, Z[0]), je = A(Pe, j[0]), lt = A(Pe, N[0]), pt = M(M(P(Z[0], Z[0]), P(Z[1], Z[1])), M(P(Z[2], Z[2]), P(Z[3], Z[3]))), Vt = A(pt, O[0]), ot = A(pt, U[0]), ut = A(pt, G[0]), Wt = A(pt, j[0]), Nt = A(pt, N[0]), $t = M(M(P(j[0], j[0]), P(j[1], j[1])), M(P(j[2], j[2]), P(j[3], j[3]))), sr = A($t, O[0]), Tr = A($t, U[0]), fr = A($t, G[0]), $e = A($t, Z[0]), St = A($t, N[0]), Qt = M(M(P(N[0], N[0]), P(N[1], N[1])), M(P(N[2], N[2]), P(N[3], N[3]))), Gt = A(Qt, O[0]), _t = A(Qt, U[0]), It = A(Qt, G[0]), mt = A(Qt, Z[0]), er = A(Qt, j[0]), lr = M(M(M(A(M(M(A(M(A(g(er, St), Z[1]), M(A(g(mt, Nt), -j[1]), A(g($e, Wt), N[1]))), G[2]), A(M(A(g(er, St), G[1]), M(A(g(It, lt), -j[1]), A(g(fr, je), N[1]))), -Z[2])), M(A(M(A(g(mt, Nt), G[1]), M(A(g(It, lt), -Z[1]), A(g(ut, ce), N[1]))), j[2]), A(M(A(g($e, Wt), G[1]), M(A(g(fr, je), -Z[1]), A(g(ut, ce), j[1]))), -N[2]))), U[3]), M(A(M(M(A(M(A(g(er, St), Z[1]), M(A(g(mt, Nt), -j[1]), A(g($e, Wt), N[1]))), U[2]), A(M(A(g(er, St), U[1]), M(A(g(_t, Be), -j[1]), A(g(Tr, Ae), N[1]))), -Z[2])), M(A(M(A(g(mt, Nt), U[1]), M(A(g(_t, Be), -Z[1]), A(g(ot, Ee), N[1]))), j[2]), A(M(A(g($e, Wt), U[1]), M(A(g(Tr, Ae), -Z[1]), A(g(ot, Ee), j[1]))), -N[2]))), -G[3]), A(M(M(A(M(A(g(er, St), G[1]), M(A(g(It, lt), -j[1]), A(g(fr, je), N[1]))), U[2]), A(M(A(g(er, St), U[1]), M(A(g(_t, Be), -j[1]), A(g(Tr, Ae), N[1]))), -G[2])), M(A(M(A(g(It, lt), U[1]), M(A(g(_t, Be), -G[1]), A(g(De, Se), N[1]))), j[2]), A(M(A(g(fr, je), U[1]), M(A(g(Tr, Ae), -G[1]), A(g(De, Se), j[1]))), -N[2]))), Z[3]))), M(M(A(M(M(A(M(A(g(mt, Nt), G[1]), M(A(g(It, lt), -Z[1]), A(g(ut, ce), N[1]))), U[2]), A(M(A(g(mt, Nt), U[1]), M(A(g(_t, Be), -Z[1]), A(g(ot, Ee), N[1]))), -G[2])), M(A(M(A(g(It, lt), U[1]), M(A(g(_t, Be), -G[1]), A(g(De, Se), N[1]))), Z[2]), A(M(A(g(ut, ce), U[1]), M(A(g(ot, Ee), -G[1]), A(g(De, Se), Z[1]))), -N[2]))), -j[3]), A(M(M(A(M(A(g($e, Wt), G[1]), M(A(g(fr, je), -Z[1]), A(g(ut, ce), j[1]))), U[2]), A(M(A(g($e, Wt), U[1]), M(A(g(Tr, Ae), -Z[1]), A(g(ot, Ee), j[1]))), -G[2])), M(A(M(A(g(fr, je), U[1]), M(A(g(Tr, Ae), -G[1]), A(g(De, Se), j[1]))), Z[2]), A(M(A(g(ut, ce), U[1]), M(A(g(ot, Ee), -G[1]), A(g(De, Se), Z[1]))), -j[2]))), N[3])), M(A(M(M(A(M(A(g(er, St), Z[1]), M(A(g(mt, Nt), -j[1]), A(g($e, Wt), N[1]))), U[2]), A(M(A(g(er, St), U[1]), M(A(g(_t, Be), -j[1]), A(g(Tr, Ae), N[1]))), -Z[2])), M(A(M(A(g(mt, Nt), U[1]), M(A(g(_t, Be), -Z[1]), A(g(ot, Ee), N[1]))), j[2]), A(M(A(g($e, Wt), U[1]), M(A(g(Tr, Ae), -Z[1]), A(g(ot, Ee), j[1]))), -N[2]))), O[3]), A(M(M(A(M(A(g(er, St), Z[1]), M(A(g(mt, Nt), -j[1]), A(g($e, Wt), N[1]))), O[2]), A(M(A(g(er, St), O[1]), M(A(g(Gt, Le), -j[1]), A(g(sr, Ce), N[1]))), -Z[2])), M(A(M(A(g(mt, Nt), O[1]), M(A(g(Gt, Le), -Z[1]), A(g(Vt, _e), N[1]))), j[2]), A(M(A(g($e, Wt), O[1]), M(A(g(sr, Ce), -Z[1]), A(g(Vt, _e), j[1]))), -N[2]))), -U[3])))), M(M(M(A(M(M(A(M(A(g(er, St), U[1]), M(A(g(_t, Be), -j[1]), A(g(Tr, Ae), N[1]))), O[2]), A(M(A(g(er, St), O[1]), M(A(g(Gt, Le), -j[1]), A(g(sr, Ce), N[1]))), -U[2])), M(A(M(A(g(_t, Be), O[1]), M(A(g(Gt, Le), -U[1]), A(g(ie, re), N[1]))), j[2]), A(M(A(g(Tr, Ae), O[1]), M(A(g(sr, Ce), -U[1]), A(g(ie, re), j[1]))), -N[2]))), Z[3]), A(M(M(A(M(A(g(mt, Nt), U[1]), M(A(g(_t, Be), -Z[1]), A(g(ot, Ee), N[1]))), O[2]), A(M(A(g(mt, Nt), O[1]), M(A(g(Gt, Le), -Z[1]), A(g(Vt, _e), N[1]))), -U[2])), M(A(M(A(g(_t, Be), O[1]), M(A(g(Gt, Le), -U[1]), A(g(ie, re), N[1]))), Z[2]), A(M(A(g(ot, Ee), O[1]), M(A(g(Vt, _e), -U[1]), A(g(ie, re), Z[1]))), -N[2]))), -j[3])), M(A(M(M(A(M(A(g($e, Wt), U[1]), M(A(g(Tr, Ae), -Z[1]), A(g(ot, Ee), j[1]))), O[2]), A(M(A(g($e, Wt), O[1]), M(A(g(sr, Ce), -Z[1]), A(g(Vt, _e), j[1]))), -U[2])), M(A(M(A(g(Tr, Ae), O[1]), M(A(g(sr, Ce), -U[1]), A(g(ie, re), j[1]))), Z[2]), A(M(A(g(ot, Ee), O[1]), M(A(g(Vt, _e), -U[1]), A(g(ie, re), Z[1]))), -j[2]))), N[3]), A(M(M(A(M(A(g(mt, Nt), G[1]), M(A(g(It, lt), -Z[1]), A(g(ut, ce), N[1]))), U[2]), A(M(A(g(mt, Nt), U[1]), M(A(g(_t, Be), -Z[1]), A(g(ot, Ee), N[1]))), -G[2])), M(A(M(A(g(It, lt), U[1]), M(A(g(_t, Be), -G[1]), A(g(De, Se), N[1]))), Z[2]), A(M(A(g(ut, ce), U[1]), M(A(g(ot, Ee), -G[1]), A(g(De, Se), Z[1]))), -N[2]))), O[3]))), M(M(A(M(M(A(M(A(g(mt, Nt), G[1]), M(A(g(It, lt), -Z[1]), A(g(ut, ce), N[1]))), O[2]), A(M(A(g(mt, Nt), O[1]), M(A(g(Gt, Le), -Z[1]), A(g(Vt, _e), N[1]))), -G[2])), M(A(M(A(g(It, lt), O[1]), M(A(g(Gt, Le), -G[1]), A(g(me, oe), N[1]))), Z[2]), A(M(A(g(ut, ce), O[1]), M(A(g(Vt, _e), -G[1]), A(g(me, oe), Z[1]))), -N[2]))), -U[3]), A(M(M(A(M(A(g(mt, Nt), U[1]), M(A(g(_t, Be), -Z[1]), A(g(ot, Ee), N[1]))), O[2]), A(M(A(g(mt, Nt), O[1]), M(A(g(Gt, Le), -Z[1]), A(g(Vt, _e), N[1]))), -U[2])), M(A(M(A(g(_t, Be), O[1]), M(A(g(Gt, Le), -U[1]), A(g(ie, re), N[1]))), Z[2]), A(M(A(g(ot, Ee), O[1]), M(A(g(Vt, _e), -U[1]), A(g(ie, re), Z[1]))), -N[2]))), G[3])), M(A(M(M(A(M(A(g(It, lt), U[1]), M(A(g(_t, Be), -G[1]), A(g(De, Se), N[1]))), O[2]), A(M(A(g(It, lt), O[1]), M(A(g(Gt, Le), -G[1]), A(g(me, oe), N[1]))), -U[2])), M(A(M(A(g(_t, Be), O[1]), M(A(g(Gt, Le), -U[1]), A(g(ie, re), N[1]))), G[2]), A(M(A(g(De, Se), O[1]), M(A(g(me, oe), -U[1]), A(g(ie, re), G[1]))), -N[2]))), -Z[3]), A(M(M(A(M(A(g(ut, ce), U[1]), M(A(g(ot, Ee), -G[1]), A(g(De, Se), Z[1]))), O[2]), A(M(A(g(ut, ce), O[1]), M(A(g(Vt, _e), -G[1]), A(g(me, oe), Z[1]))), -U[2])), M(A(M(A(g(ot, Ee), O[1]), M(A(g(Vt, _e), -U[1]), A(g(ie, re), Z[1]))), G[2]), A(M(A(g(De, Se), O[1]), M(A(g(me, oe), -U[1]), A(g(ie, re), G[1]))), -Z[2]))), N[3]))))), wr = M(M(M(A(M(M(A(M(A(g(er, St), Z[1]), M(A(g(mt, Nt), -j[1]), A(g($e, Wt), N[1]))), G[2]), A(M(A(g(er, St), G[1]), M(A(g(It, lt), -j[1]), A(g(fr, je), N[1]))), -Z[2])), M(A(M(A(g(mt, Nt), G[1]), M(A(g(It, lt), -Z[1]), A(g(ut, ce), N[1]))), j[2]), A(M(A(g($e, Wt), G[1]), M(A(g(fr, je), -Z[1]), A(g(ut, ce), j[1]))), -N[2]))), O[3]), M(A(M(M(A(M(A(g(er, St), Z[1]), M(A(g(mt, Nt), -j[1]), A(g($e, Wt), N[1]))), O[2]), A(M(A(g(er, St), O[1]), M(A(g(Gt, Le), -j[1]), A(g(sr, Ce), N[1]))), -Z[2])), M(A(M(A(g(mt, Nt), O[1]), M(A(g(Gt, Le), -Z[1]), A(g(Vt, _e), N[1]))), j[2]), A(M(A(g($e, Wt), O[1]), M(A(g(sr, Ce), -Z[1]), A(g(Vt, _e), j[1]))), -N[2]))), -G[3]), A(M(M(A(M(A(g(er, St), G[1]), M(A(g(It, lt), -j[1]), A(g(fr, je), N[1]))), O[2]), A(M(A(g(er, St), O[1]), M(A(g(Gt, Le), -j[1]), A(g(sr, Ce), N[1]))), -G[2])), M(A(M(A(g(It, lt), O[1]), M(A(g(Gt, Le), -G[1]), A(g(me, oe), N[1]))), j[2]), A(M(A(g(fr, je), O[1]), M(A(g(sr, Ce), -G[1]), A(g(me, oe), j[1]))), -N[2]))), Z[3]))), M(M(A(M(M(A(M(A(g(mt, Nt), G[1]), M(A(g(It, lt), -Z[1]), A(g(ut, ce), N[1]))), O[2]), A(M(A(g(mt, Nt), O[1]), M(A(g(Gt, Le), -Z[1]), A(g(Vt, _e), N[1]))), -G[2])), M(A(M(A(g(It, lt), O[1]), M(A(g(Gt, Le), -G[1]), A(g(me, oe), N[1]))), Z[2]), A(M(A(g(ut, ce), O[1]), M(A(g(Vt, _e), -G[1]), A(g(me, oe), Z[1]))), -N[2]))), -j[3]), A(M(M(A(M(A(g($e, Wt), G[1]), M(A(g(fr, je), -Z[1]), A(g(ut, ce), j[1]))), O[2]), A(M(A(g($e, Wt), O[1]), M(A(g(sr, Ce), -Z[1]), A(g(Vt, _e), j[1]))), -G[2])), M(A(M(A(g(fr, je), O[1]), M(A(g(sr, Ce), -G[1]), A(g(me, oe), j[1]))), Z[2]), A(M(A(g(ut, ce), O[1]), M(A(g(Vt, _e), -G[1]), A(g(me, oe), Z[1]))), -j[2]))), N[3])), M(A(M(M(A(M(A(g(er, St), G[1]), M(A(g(It, lt), -j[1]), A(g(fr, je), N[1]))), U[2]), A(M(A(g(er, St), U[1]), M(A(g(_t, Be), -j[1]), A(g(Tr, Ae), N[1]))), -G[2])), M(A(M(A(g(It, lt), U[1]), M(A(g(_t, Be), -G[1]), A(g(De, Se), N[1]))), j[2]), A(M(A(g(fr, je), U[1]), M(A(g(Tr, Ae), -G[1]), A(g(De, Se), j[1]))), -N[2]))), O[3]), A(M(M(A(M(A(g(er, St), G[1]), M(A(g(It, lt), -j[1]), A(g(fr, je), N[1]))), O[2]), A(M(A(g(er, St), O[1]), M(A(g(Gt, Le), -j[1]), A(g(sr, Ce), N[1]))), -G[2])), M(A(M(A(g(It, lt), O[1]), M(A(g(Gt, Le), -G[1]), A(g(me, oe), N[1]))), j[2]), A(M(A(g(fr, je), O[1]), M(A(g(sr, Ce), -G[1]), A(g(me, oe), j[1]))), -N[2]))), -U[3])))), M(M(M(A(M(M(A(M(A(g(er, St), U[1]), M(A(g(_t, Be), -j[1]), A(g(Tr, Ae), N[1]))), O[2]), A(M(A(g(er, St), O[1]), M(A(g(Gt, Le), -j[1]), A(g(sr, Ce), N[1]))), -U[2])), M(A(M(A(g(_t, Be), O[1]), M(A(g(Gt, Le), -U[1]), A(g(ie, re), N[1]))), j[2]), A(M(A(g(Tr, Ae), O[1]), M(A(g(sr, Ce), -U[1]), A(g(ie, re), j[1]))), -N[2]))), G[3]), A(M(M(A(M(A(g(It, lt), U[1]), M(A(g(_t, Be), -G[1]), A(g(De, Se), N[1]))), O[2]), A(M(A(g(It, lt), O[1]), M(A(g(Gt, Le), -G[1]), A(g(me, oe), N[1]))), -U[2])), M(A(M(A(g(_t, Be), O[1]), M(A(g(Gt, Le), -U[1]), A(g(ie, re), N[1]))), G[2]), A(M(A(g(De, Se), O[1]), M(A(g(me, oe), -U[1]), A(g(ie, re), G[1]))), -N[2]))), -j[3])), M(A(M(M(A(M(A(g(fr, je), U[1]), M(A(g(Tr, Ae), -G[1]), A(g(De, Se), j[1]))), O[2]), A(M(A(g(fr, je), O[1]), M(A(g(sr, Ce), -G[1]), A(g(me, oe), j[1]))), -U[2])), M(A(M(A(g(Tr, Ae), O[1]), M(A(g(sr, Ce), -U[1]), A(g(ie, re), j[1]))), G[2]), A(M(A(g(De, Se), O[1]), M(A(g(me, oe), -U[1]), A(g(ie, re), G[1]))), -j[2]))), N[3]), A(M(M(A(M(A(g($e, Wt), G[1]), M(A(g(fr, je), -Z[1]), A(g(ut, ce), j[1]))), U[2]), A(M(A(g($e, Wt), U[1]), M(A(g(Tr, Ae), -Z[1]), A(g(ot, Ee), j[1]))), -G[2])), M(A(M(A(g(fr, je), U[1]), M(A(g(Tr, Ae), -G[1]), A(g(De, Se), j[1]))), Z[2]), A(M(A(g(ut, ce), U[1]), M(A(g(ot, Ee), -G[1]), A(g(De, Se), Z[1]))), -j[2]))), O[3]))), M(M(A(M(M(A(M(A(g($e, Wt), G[1]), M(A(g(fr, je), -Z[1]), A(g(ut, ce), j[1]))), O[2]), A(M(A(g($e, Wt), O[1]), M(A(g(sr, Ce), -Z[1]), A(g(Vt, _e), j[1]))), -G[2])), M(A(M(A(g(fr, je), O[1]), M(A(g(sr, Ce), -G[1]), A(g(me, oe), j[1]))), Z[2]), A(M(A(g(ut, ce), O[1]), M(A(g(Vt, _e), -G[1]), A(g(me, oe), Z[1]))), -j[2]))), -U[3]), A(M(M(A(M(A(g($e, Wt), U[1]), M(A(g(Tr, Ae), -Z[1]), A(g(ot, Ee), j[1]))), O[2]), A(M(A(g($e, Wt), O[1]), M(A(g(sr, Ce), -Z[1]), A(g(Vt, _e), j[1]))), -U[2])), M(A(M(A(g(Tr, Ae), O[1]), M(A(g(sr, Ce), -U[1]), A(g(ie, re), j[1]))), Z[2]), A(M(A(g(ot, Ee), O[1]), M(A(g(Vt, _e), -U[1]), A(g(ie, re), Z[1]))), -j[2]))), G[3])), M(A(M(M(A(M(A(g(fr, je), U[1]), M(A(g(Tr, Ae), -G[1]), A(g(De, Se), j[1]))), O[2]), A(M(A(g(fr, je), O[1]), M(A(g(sr, Ce), -G[1]), A(g(me, oe), j[1]))), -U[2])), M(A(M(A(g(Tr, Ae), O[1]), M(A(g(sr, Ce), -U[1]), A(g(ie, re), j[1]))), G[2]), A(M(A(g(De, Se), O[1]), M(A(g(me, oe), -U[1]), A(g(ie, re), G[1]))), -j[2]))), -Z[3]), A(M(M(A(M(A(g(ut, ce), U[1]), M(A(g(ot, Ee), -G[1]), A(g(De, Se), Z[1]))), O[2]), A(M(A(g(ut, ce), O[1]), M(A(g(Vt, _e), -G[1]), A(g(me, oe), Z[1]))), -U[2])), M(A(M(A(g(ot, Ee), O[1]), M(A(g(Vt, _e), -U[1]), A(g(ie, re), Z[1]))), G[2]), A(M(A(g(De, Se), O[1]), M(A(g(me, oe), -U[1]), A(g(ie, re), G[1]))), -Z[2]))), j[3]))))), Lr = g(lr, wr);
+ return Lr[Lr.length - 1];
+ }
+ return z;
+ }
+ var T = [d, v, _];
+ function L(M) {
+ var g = T[M.length];
+ return g || (g = T[M.length] = h(M.length)), g.apply(void 0, M);
+ }
+ function x(M, g, P, A, z, O, U, G) {
+ function Z(j, N, H, re, oe, _e) {
+ switch (arguments.length) {
+ case 0:
+ case 1:
+ return 0;
+ case 2:
+ return A(j, N);
+ case 3:
+ return z(j, N, H);
+ case 4:
+ return O(j, N, H, re);
+ case 5:
+ return U(j, N, H, re, oe);
+ case 6:
+ return G(j, N, H, re, oe, _e);
+ }
+ for (var Ce = new Array(arguments.length), Le = 0; Le < arguments.length; ++Le) Ce[Le] = arguments[Le];
+ return M(Ce);
+ }
+ return Z;
+ }
+ function C() {
+ for (; T.length <= f; ) T.push(h(T.length));
+ i.exports = x.apply(void 0, [L].concat(T));
+ for (var M = 0; M <= f; ++M) i.exports[M] = T[M];
+ }
+ C();
+ }, 2651: function(i, a, o) {
+ var s = o(6859), l = o(2361);
+ i.exports = u;
+ function u(c) {
+ var f = l.exponent(c);
+ return f < 52 ? new s(c) : new s(c * Math.pow(2, 52 - f)).ushln(f - 52);
+ }
+ }, 2652: function(i, a, o) {
+ var s = o(4335), l = o(6864), u = o(1903), c = o(9921), f = o(7608), h = o(5665), d = { length: o(1387), normalize: o(3536), dot: o(244), cross: o(5911) }, v = l(), _ = l(), b = [0, 0, 0, 0], p = [[0, 0, 0], [0, 0, 0], [0, 0, 0]], k = [0, 0, 0];
+ i.exports = function(C, M, g, P, A, z) {
+ if (M || (M = [0, 0, 0]), g || (g = [0, 0, 0]), P || (P = [0, 0, 0]), A || (A = [0, 0, 0, 1]), z || (z = [0, 0, 0, 1]), !s(v, C) || (u(_, v), _[3] = 0, _[7] = 0, _[11] = 0, _[15] = 1, Math.abs(c(_) < 1e-8))) return false;
+ var O = v[3], U = v[7], G = v[11], Z = v[12], j = v[13], N = v[14], H = v[15];
+ if (O !== 0 || U !== 0 || G !== 0) {
+ b[0] = O, b[1] = U, b[2] = G, b[3] = H;
+ var re = f(_, _);
+ if (!re) return false;
+ h(_, _), E(A, b, _);
+ } else A[0] = A[1] = A[2] = 0, A[3] = 1;
+ if (M[0] = Z, M[1] = j, M[2] = N, T(p, v), g[0] = d.length(p[0]), d.normalize(p[0], p[0]), P[0] = d.dot(p[0], p[1]), L(p[1], p[1], p[0], 1, -P[0]), g[1] = d.length(p[1]), d.normalize(p[1], p[1]), P[0] /= g[1], P[1] = d.dot(p[0], p[2]), L(p[2], p[2], p[0], 1, -P[1]), P[2] = d.dot(p[1], p[2]), L(p[2], p[2], p[1], 1, -P[2]), g[2] = d.length(p[2]), d.normalize(p[2], p[2]), P[1] /= g[2], P[2] /= g[2], d.cross(k, p[1], p[2]), d.dot(p[0], k) < 0) for (var oe = 0; oe < 3; oe++) g[oe] *= -1, p[oe][0] *= -1, p[oe][1] *= -1, p[oe][2] *= -1;
+ return z[0] = 0.5 * Math.sqrt(Math.max(1 + p[0][0] - p[1][1] - p[2][2], 0)), z[1] = 0.5 * Math.sqrt(Math.max(1 - p[0][0] + p[1][1] - p[2][2], 0)), z[2] = 0.5 * Math.sqrt(Math.max(1 - p[0][0] - p[1][1] + p[2][2], 0)), z[3] = 0.5 * Math.sqrt(Math.max(1 + p[0][0] + p[1][1] + p[2][2], 0)), p[2][1] > p[1][2] && (z[0] = -z[0]), p[0][2] > p[2][0] && (z[1] = -z[1]), p[1][0] > p[0][1] && (z[2] = -z[2]), true;
+ };
+ function E(x, C, M) {
+ var g = C[0], P = C[1], A = C[2], z = C[3];
+ return x[0] = M[0] * g + M[4] * P + M[8] * A + M[12] * z, x[1] = M[1] * g + M[5] * P + M[9] * A + M[13] * z, x[2] = M[2] * g + M[6] * P + M[10] * A + M[14] * z, x[3] = M[3] * g + M[7] * P + M[11] * A + M[15] * z, x;
+ }
+ function T(x, C) {
+ x[0][0] = C[0], x[0][1] = C[1], x[0][2] = C[2], x[1][0] = C[4], x[1][1] = C[5], x[1][2] = C[6], x[2][0] = C[8], x[2][1] = C[9], x[2][2] = C[10];
+ }
+ function L(x, C, M, g, P) {
+ x[0] = C[0] * g + M[0] * P, x[1] = C[1] * g + M[1] * P, x[2] = C[2] * g + M[2] * P;
+ }
+ }, 2653: function(i, a, o) {
+ var s = o(3865);
+ i.exports = l;
+ function l(u, c) {
+ for (var f = u.length, h = new Array(f), d = 0; d < f; ++d) h[d] = s(u[d], c[d]);
+ return h;
+ }
+ }, 2681: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = Math.floor(s[0]), o[1] = Math.floor(s[1]), o[2] = Math.floor(s[2]), o;
+ }
+ }, 2690: function(i, a, o) {
+ i.exports = f;
+ var s = o(8954), l = o(3952);
+ function u(h, d) {
+ for (var v = h.length, _ = new Array(v), b = 0; b < d.length; ++b) _[b] = h[d[b]];
+ for (var p = d.length, b = 0; b < v; ++b) d.indexOf(b) < 0 && (_[p++] = h[b]);
+ return _;
+ }
+ function c(h, d) {
+ for (var v = h.length, _ = d.length, b = 0; b < v; ++b) for (var p = h[b], k = 0; k < p.length; ++k) {
+ var E = p[k];
+ if (E < _) p[k] = d[E];
+ else {
+ E = E - _;
+ for (var T = 0; T < _; ++T) E >= d[T] && (E += 1);
+ p[k] = E;
+ }
+ }
+ return h;
+ }
+ function f(h, d) {
+ try {
+ return s(h, true);
+ } catch (p) {
+ var v = l(h);
+ if (v.length <= d) return [];
+ var _ = u(h, v), b = s(_, true);
+ return c(b, v);
+ }
+ }
+ }, 2762: function(i, a, o) {
+ var s = o(1888), l = o(5298), u = o(9618), c = ["uint8", "uint8_clamped", "uint16", "uint32", "int8", "int16", "int32", "float32"];
+ function f(p, k, E, T, L) {
+ this.gl = p, this.type = k, this.handle = E, this.length = T, this.usage = L;
+ }
+ var h = f.prototype;
+ h.bind = function() {
+ this.gl.bindBuffer(this.type, this.handle);
+ }, h.unbind = function() {
+ this.gl.bindBuffer(this.type, null);
+ }, h.dispose = function() {
+ this.gl.deleteBuffer(this.handle);
+ };
+ function d(p, k, E, T, L, x) {
+ var C = L.length * L.BYTES_PER_ELEMENT;
+ if (x < 0) return p.bufferData(k, L, T), C;
+ if (C + x > E) throw new Error("gl-buffer: If resizing buffer, must not specify offset");
+ return p.bufferSubData(k, x, L), E;
+ }
+ function v(p, k) {
+ for (var E = s.malloc(p.length, k), T = p.length, L = 0; L < T; ++L) E[L] = p[L];
+ return E;
+ }
+ function _(p, k) {
+ for (var E = 1, T = k.length - 1; T >= 0; --T) {
+ if (k[T] !== E) return false;
+ E *= p[T];
+ }
+ return true;
+ }
+ h.update = function(p, k) {
+ if (typeof k != "number" && (k = -1), this.bind(), typeof p == "object" && typeof p.shape != "undefined") {
+ var E = p.dtype;
+ if (c.indexOf(E) < 0 && (E = "float32"), this.type === this.gl.ELEMENT_ARRAY_BUFFER) {
+ var T = gl.getExtension("OES_element_index_uint");
+ T && E !== "uint16" ? E = "uint32" : E = "uint16";
+ }
+ if (E === p.dtype && _(p.shape, p.stride)) p.offset === 0 && p.data.length === p.shape[0] ? this.length = d(this.gl, this.type, this.length, this.usage, p.data, k) : this.length = d(this.gl, this.type, this.length, this.usage, p.data.subarray(p.offset, p.shape[0]), k);
+ else {
+ var L = s.malloc(p.size, E), x = u(L, p.shape);
+ l.assign(x, p), k < 0 ? this.length = d(this.gl, this.type, this.length, this.usage, L, k) : this.length = d(this.gl, this.type, this.length, this.usage, L.subarray(0, p.size), k), s.free(L);
+ }
+ } else if (Array.isArray(p)) {
+ var C;
+ this.type === this.gl.ELEMENT_ARRAY_BUFFER ? C = v(p, "uint16") : C = v(p, "float32"), k < 0 ? this.length = d(this.gl, this.type, this.length, this.usage, C, k) : this.length = d(this.gl, this.type, this.length, this.usage, C.subarray(0, p.length), k), s.free(C);
+ } else if (typeof p == "object" && typeof p.length == "number") this.length = d(this.gl, this.type, this.length, this.usage, p, k);
+ else if (typeof p == "number" || p === void 0) {
+ if (k >= 0) throw new Error("gl-buffer: Cannot specify offset when resizing buffer");
+ p = p | 0, p <= 0 && (p = 1), this.gl.bufferData(this.type, p | 0, this.usage), this.length = p;
+ } else throw new Error("gl-buffer: Invalid data type");
+ };
+ function b(p, k, E, T) {
+ if (E = E || p.ARRAY_BUFFER, T = T || p.DYNAMIC_DRAW, E !== p.ARRAY_BUFFER && E !== p.ELEMENT_ARRAY_BUFFER) throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");
+ if (T !== p.DYNAMIC_DRAW && T !== p.STATIC_DRAW && T !== p.STREAM_DRAW) throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");
+ var L = p.createBuffer(), x = new f(p, E, L, 0, T);
+ return x.update(k), x;
+ }
+ i.exports = b;
+ }, 2825: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = new Float32Array(3);
+ return u[0] = o, u[1] = s, u[2] = l, u;
+ }
+ }, 2931: function(i, a, o) {
+ i.exports = { EPSILON: o(2613), create: o(1091), clone: o(3126), angle: o(8192), fromValues: o(2825), copy: o(3990), set: o(1463), equals: o(9922), exactEquals: o(9265), add: o(5632), subtract: o(6843), sub: o(2229), multiply: o(5847), mul: o(4505), divide: o(6690), div: o(4008), min: o(8107), max: o(7417), floor: o(2681), ceil: o(9226), round: o(2447), scale: o(6621), scaleAndAdd: o(8489), distance: o(7056), dist: o(5455), squaredDistance: o(2953), sqrDist: o(6141), length: o(1387), len: o(868), squaredLength: o(3066), sqrLen: o(5486), negate: o(5093), inverse: o(811), normalize: o(3536), dot: o(244), cross: o(5911), lerp: o(6658), random: o(7636), transformMat4: o(5673), transformMat3: o(492), transformQuat: o(264), rotateX: o(6894), rotateY: o(109), rotateZ: o(8692), forEach: o(5137) };
+ }, 2933: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = s[0], o[1] = s[1], o[2] = s[2], o[3] = s[3], o;
+ }
+ }, 2953: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = s[0] - o[0], u = s[1] - o[1], c = s[2] - o[2];
+ return l * l + u * u + c * c;
+ }
+ }, 2962: function(i, a, o) {
+ var s = o(5250), l = o(8210), u = o(3012), c = o(7004), f = 6;
+ function h(T, L, x, C) {
+ return function(g) {
+ return C(T(x(g[0][0], g[1][1]), x(-g[0][1], g[1][0])));
+ };
+ }
+ function d(T, L, x, C) {
+ return function(g) {
+ return C(T(L(T(x(g[1][1], g[2][2]), x(-g[1][2], g[2][1])), g[0][0]), T(L(T(x(g[1][0], g[2][2]), x(-g[1][2], g[2][0])), -g[0][1]), L(T(x(g[1][0], g[2][1]), x(-g[1][1], g[2][0])), g[0][2]))));
+ };
+ }
+ function v(T, L, x, C) {
+ return function(g) {
+ return C(T(T(L(T(L(T(x(g[2][2], g[3][3]), x(-g[2][3], g[3][2])), g[1][1]), T(L(T(x(g[2][1], g[3][3]), x(-g[2][3], g[3][1])), -g[1][2]), L(T(x(g[2][1], g[3][2]), x(-g[2][2], g[3][1])), g[1][3]))), g[0][0]), L(T(L(T(x(g[2][2], g[3][3]), x(-g[2][3], g[3][2])), g[1][0]), T(L(T(x(g[2][0], g[3][3]), x(-g[2][3], g[3][0])), -g[1][2]), L(T(x(g[2][0], g[3][2]), x(-g[2][2], g[3][0])), g[1][3]))), -g[0][1])), T(L(T(L(T(x(g[2][1], g[3][3]), x(-g[2][3], g[3][1])), g[1][0]), T(L(T(x(g[2][0], g[3][3]), x(-g[2][3], g[3][0])), -g[1][1]), L(T(x(g[2][0], g[3][1]), x(-g[2][1], g[3][0])), g[1][3]))), g[0][2]), L(T(L(T(x(g[2][1], g[3][2]), x(-g[2][2], g[3][1])), g[1][0]), T(L(T(x(g[2][0], g[3][2]), x(-g[2][2], g[3][0])), -g[1][1]), L(T(x(g[2][0], g[3][1]), x(-g[2][1], g[3][0])), g[1][2]))), -g[0][3]))));
+ };
+ }
+ function _(T, L, x, C) {
+ return function(g) {
+ return C(T(T(L(T(T(L(T(L(T(x(g[3][3], g[4][4]), x(-g[3][4], g[4][3])), g[2][2]), T(L(T(x(g[3][2], g[4][4]), x(-g[3][4], g[4][2])), -g[2][3]), L(T(x(g[3][2], g[4][3]), x(-g[3][3], g[4][2])), g[2][4]))), g[1][1]), L(T(L(T(x(g[3][3], g[4][4]), x(-g[3][4], g[4][3])), g[2][1]), T(L(T(x(g[3][1], g[4][4]), x(-g[3][4], g[4][1])), -g[2][3]), L(T(x(g[3][1], g[4][3]), x(-g[3][3], g[4][1])), g[2][4]))), -g[1][2])), T(L(T(L(T(x(g[3][2], g[4][4]), x(-g[3][4], g[4][2])), g[2][1]), T(L(T(x(g[3][1], g[4][4]), x(-g[3][4], g[4][1])), -g[2][2]), L(T(x(g[3][1], g[4][2]), x(-g[3][2], g[4][1])), g[2][4]))), g[1][3]), L(T(L(T(x(g[3][2], g[4][3]), x(-g[3][3], g[4][2])), g[2][1]), T(L(T(x(g[3][1], g[4][3]), x(-g[3][3], g[4][1])), -g[2][2]), L(T(x(g[3][1], g[4][2]), x(-g[3][2], g[4][1])), g[2][3]))), -g[1][4]))), g[0][0]), L(T(T(L(T(L(T(x(g[3][3], g[4][4]), x(-g[3][4], g[4][3])), g[2][2]), T(L(T(x(g[3][2], g[4][4]), x(-g[3][4], g[4][2])), -g[2][3]), L(T(x(g[3][2], g[4][3]), x(-g[3][3], g[4][2])), g[2][4]))), g[1][0]), L(T(L(T(x(g[3][3], g[4][4]), x(-g[3][4], g[4][3])), g[2][0]), T(L(T(x(g[3][0], g[4][4]), x(-g[3][4], g[4][0])), -g[2][3]), L(T(x(g[3][0], g[4][3]), x(-g[3][3], g[4][0])), g[2][4]))), -g[1][2])), T(L(T(L(T(x(g[3][2], g[4][4]), x(-g[3][4], g[4][2])), g[2][0]), T(L(T(x(g[3][0], g[4][4]), x(-g[3][4], g[4][0])), -g[2][2]), L(T(x(g[3][0], g[4][2]), x(-g[3][2], g[4][0])), g[2][4]))), g[1][3]), L(T(L(T(x(g[3][2], g[4][3]), x(-g[3][3], g[4][2])), g[2][0]), T(L(T(x(g[3][0], g[4][3]), x(-g[3][3], g[4][0])), -g[2][2]), L(T(x(g[3][0], g[4][2]), x(-g[3][2], g[4][0])), g[2][3]))), -g[1][4]))), -g[0][1])), T(L(T(T(L(T(L(T(x(g[3][3], g[4][4]), x(-g[3][4], g[4][3])), g[2][1]), T(L(T(x(g[3][1], g[4][4]), x(-g[3][4], g[4][1])), -g[2][3]), L(T(x(g[3][1], g[4][3]), x(-g[3][3], g[4][1])), g[2][4]))), g[1][0]), L(T(L(T(x(g[3][3], g[4][4]), x(-g[3][4], g[4][3])), g[2][0]), T(L(T(x(g[3][0], g[4][4]), x(-g[3][4], g[4][0])), -g[2][3]), L(T(x(g[3][0], g[4][3]), x(-g[3][3], g[4][0])), g[2][4]))), -g[1][1])), T(L(T(L(T(x(g[3][1], g[4][4]), x(-g[3][4], g[4][1])), g[2][0]), T(L(T(x(g[3][0], g[4][4]), x(-g[3][4], g[4][0])), -g[2][1]), L(T(x(g[3][0], g[4][1]), x(-g[3][1], g[4][0])), g[2][4]))), g[1][3]), L(T(L(T(x(g[3][1], g[4][3]), x(-g[3][3], g[4][1])), g[2][0]), T(L(T(x(g[3][0], g[4][3]), x(-g[3][3], g[4][0])), -g[2][1]), L(T(x(g[3][0], g[4][1]), x(-g[3][1], g[4][0])), g[2][3]))), -g[1][4]))), g[0][2]), T(L(T(T(L(T(L(T(x(g[3][2], g[4][4]), x(-g[3][4], g[4][2])), g[2][1]), T(L(T(x(g[3][1], g[4][4]), x(-g[3][4], g[4][1])), -g[2][2]), L(T(x(g[3][1], g[4][2]), x(-g[3][2], g[4][1])), g[2][4]))), g[1][0]), L(T(L(T(x(g[3][2], g[4][4]), x(-g[3][4], g[4][2])), g[2][0]), T(L(T(x(g[3][0], g[4][4]), x(-g[3][4], g[4][0])), -g[2][2]), L(T(x(g[3][0], g[4][2]), x(-g[3][2], g[4][0])), g[2][4]))), -g[1][1])), T(L(T(L(T(x(g[3][1], g[4][4]), x(-g[3][4], g[4][1])), g[2][0]), T(L(T(x(g[3][0], g[4][4]), x(-g[3][4], g[4][0])), -g[2][1]), L(T(x(g[3][0], g[4][1]), x(-g[3][1], g[4][0])), g[2][4]))), g[1][2]), L(T(L(T(x(g[3][1], g[4][2]), x(-g[3][2], g[4][1])), g[2][0]), T(L(T(x(g[3][0], g[4][2]), x(-g[3][2], g[4][0])), -g[2][1]), L(T(x(g[3][0], g[4][1]), x(-g[3][1], g[4][0])), g[2][2]))), -g[1][4]))), -g[0][3]), L(T(T(L(T(L(T(x(g[3][2], g[4][3]), x(-g[3][3], g[4][2])), g[2][1]), T(L(T(x(g[3][1], g[4][3]), x(-g[3][3], g[4][1])), -g[2][2]), L(T(x(g[3][1], g[4][2]), x(-g[3][2], g[4][1])), g[2][3]))), g[1][0]), L(T(L(T(x(g[3][2], g[4][3]), x(-g[3][3], g[4][2])), g[2][0]), T(L(T(x(g[3][0], g[4][3]), x(-g[3][3], g[4][0])), -g[2][2]), L(T(x(g[3][0], g[4][2]), x(-g[3][2], g[4][0])), g[2][3]))), -g[1][1])), T(L(T(L(T(x(g[3][1], g[4][3]), x(-g[3][3], g[4][1])), g[2][0]), T(L(T(x(g[3][0], g[4][3]), x(-g[3][3], g[4][0])), -g[2][1]), L(T(x(g[3][0], g[4][1]), x(-g[3][1], g[4][0])), g[2][3]))), g[1][2]), L(T(L(T(x(g[3][1], g[4][2]), x(-g[3][2], g[4][1])), g[2][0]), T(L(T(x(g[3][0], g[4][2]), x(-g[3][2], g[4][0])), -g[2][1]), L(T(x(g[3][0], g[4][1]), x(-g[3][1], g[4][0])), g[2][2]))), -g[1][3]))), g[0][4])))));
+ };
+ }
+ function b(T) {
+ var L = T === 2 ? h : T === 3 ? d : T === 4 ? v : T === 5 ? _ : void 0;
+ return L(l, u, s, c);
+ }
+ var p = [function() {
+ return [0];
+ }, function(L) {
+ return [L[0][0]];
+ }];
+ function k(T, L, x, C, M, g, P, A) {
+ return function(O) {
+ switch (O.length) {
+ case 0:
+ return T(O);
+ case 1:
+ return L(O);
+ case 2:
+ return x(O);
+ case 3:
+ return C(O);
+ case 4:
+ return M(O);
+ case 5:
+ return g(O);
+ }
+ var U = P[O.length];
+ return U || (U = P[O.length] = A(O.length)), U(O);
+ };
+ }
+ function E() {
+ for (; p.length < f; ) p.push(b(p.length));
+ i.exports = k.apply(void 0, p.concat([p, b]));
+ for (var T = 0; T < p.length; ++T) i.exports[T] = p[T];
+ }
+ E();
+ }, 2992: function(i, a, o) {
+ var s = o(3387).sprintf, l = o(5171), u = o(1848), c = o(1085);
+ i.exports = f;
+ function f(h, d, v) {
+ var _ = u(d) || "of unknown name (see npm glsl-shader-name)", b = "unknown type";
+ v !== void 0 && (b = v === l.FRAGMENT_SHADER ? "fragment" : "vertex");
+ for (var p = s(`Error compiling %s shader %s:
+`, b, _), k = s("%s%s", p, h), E = h.split(`
+`), T = {}, L = 0; L < E.length; L++) {
+ var x = E[L];
+ if (!(x === "" || x === "\0")) {
+ var C = parseInt(x.split(":")[2]);
+ if (isNaN(C)) throw new Error(s("Could not parse error: %s", x));
+ T[C] = x;
+ }
+ }
+ for (var M = c(d).split(`
+`), L = 0; L < M.length; L++) if (!(!T[L + 3] && !T[L + 2] && !T[L + 1])) {
+ var g = M[L];
+ if (p += g + `
+`, T[L + 1]) {
+ var P = T[L + 1];
+ P = P.substr(P.split(":", 3).join(":").length + 1).trim(), p += s(`^^^ %s
+
+`, P);
+ }
+ }
+ return { long: p.trim(), short: k.trim() };
+ }
+ }, 3012: function(i, a, o) {
+ var s = o(5250), l = o(9362);
+ i.exports = u;
+ function u(c, f) {
+ var h = c.length;
+ if (h === 1) {
+ var d = s(c[0], f);
+ return d[0] ? d : [d[1]];
+ }
+ var v = new Array(2 * h), _ = [0.1, 0.1], b = [0.1, 0.1], p = 0;
+ s(c[0], f, _), _[0] && (v[p++] = _[0]);
+ for (var k = 1; k < h; ++k) {
+ s(c[k], f, b);
+ var E = _[1];
+ l(E, b[0], _), _[0] && (v[p++] = _[0]);
+ var T = b[1], L = _[1], x = T + L, C = x - T, M = L - C;
+ _[1] = x, M && (v[p++] = M);
+ }
+ return _[1] && (v[p++] = _[1]), p === 0 && (v[p++] = 0), v.length = p, v;
+ }
+ }, 3025: function(i, a, o) {
+ i.exports = o.g.performance && o.g.performance.now ? function() {
+ return performance.now();
+ } : Date.now || function() {
+ return +/* @__PURE__ */ new Date();
+ };
+ }, 3066: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s = o[0], l = o[1], u = o[2];
+ return s * s + l * l + u * u;
+ }
+ }, 3088: function(i, a, o) {
+ i.exports = l;
+ var s = o(3140);
+ function l(u, c) {
+ for (var f = c.length | 0, h = u.length, d = [new Array(f), new Array(f)], v = 0; v < f; ++v) d[0][v] = [], d[1][v] = [];
+ for (var v = 0; v < h; ++v) {
+ var _ = u[v];
+ d[0][_[0]].push(_), d[1][_[1]].push(_);
+ }
+ for (var b = [], v = 0; v < f; ++v) d[0][v].length + d[1][v].length === 0 && b.push([v]);
+ function p(g, P) {
+ var A = d[P][g[P]];
+ A.splice(A.indexOf(g), 1);
+ }
+ function k(g, P, A) {
+ for (var z, O, U, G = 0; G < 2; ++G) if (d[G][P].length > 0) {
+ z = d[G][P][0], U = G;
+ break;
+ }
+ O = z[U ^ 1];
+ for (var Z = 0; Z < 2; ++Z) for (var j = d[Z][P], N = 0; N < j.length; ++N) {
+ var H = j[N], re = H[Z ^ 1], oe = s(c[g], c[P], c[O], c[re]);
+ oe > 0 && (z = H, O = re, U = Z);
+ }
+ return A || z && p(z, U), O;
+ }
+ function E(g, P) {
+ var A = d[P][g][0], z = [g];
+ p(A, P);
+ for (var O = A[P ^ 1], U = P; ; ) {
+ for (; O !== g; ) z.push(O), O = k(z[z.length - 2], O, false);
+ if (d[0][g].length + d[1][g].length === 0) break;
+ var G = z[z.length - 1], Z = g, j = z[1], N = k(G, Z, true);
+ if (s(c[G], c[Z], c[j], c[N]) < 0) break;
+ z.push(g), O = k(G, Z);
+ }
+ return z;
+ }
+ function T(g, P) {
+ return P[1] === P[P.length - 1];
+ }
+ for (var v = 0; v < f; ++v) for (var L = 0; L < 2; ++L) {
+ for (var x = []; d[L][v].length > 0; ) {
+ d[0][v].length;
+ var M = E(v, L);
+ T(x, M) ? x.push.apply(x, M) : (x.length > 0 && b.push(x), x = M);
+ }
+ x.length > 0 && b.push(x);
+ }
+ return b;
+ }
+ }, 3090: function(i, a, o) {
+ i.exports = l;
+ var s = o(3250)[3];
+ function l(u) {
+ var c = u.length;
+ if (c < 3) {
+ for (var k = new Array(c), f = 0; f < c; ++f) k[f] = f;
+ return c === 2 && u[0][0] === u[1][0] && u[0][1] === u[1][1] ? [0] : k;
+ }
+ for (var h = new Array(c), f = 0; f < c; ++f) h[f] = f;
+ h.sort(function(x, C) {
+ var M = u[x][0] - u[C][0];
+ return M || u[x][1] - u[C][1];
+ });
+ for (var d = [h[0], h[1]], v = [h[0], h[1]], f = 2; f < c; ++f) {
+ for (var _ = h[f], b = u[_], p = d.length; p > 1 && s(u[d[p - 2]], u[d[p - 1]], b) <= 0; ) p -= 1, d.pop();
+ for (d.push(_), p = v.length; p > 1 && s(u[v[p - 2]], u[v[p - 1]], b) >= 0; ) p -= 1, v.pop();
+ v.push(_);
+ }
+ for (var k = new Array(v.length + d.length - 2), E = 0, f = 0, T = d.length; f < T; ++f) k[E++] = d[f];
+ for (var L = v.length - 2; L > 0; --L) k[E++] = v[L];
+ return k;
+ }
+ }, 3105: function(i, a) {
+ "use restrict";
+ var o = 32;
+ a.INT_BITS = o, a.INT_MAX = 2147483647, a.INT_MIN = -1 << o - 1, a.sign = function(u) {
+ return (u > 0) - (u < 0);
+ }, a.abs = function(u) {
+ var c = u >> o - 1;
+ return (u ^ c) - c;
+ }, a.min = function(u, c) {
+ return c ^ (u ^ c) & -(u < c);
+ }, a.max = function(u, c) {
+ return u ^ (u ^ c) & -(u < c);
+ }, a.isPow2 = function(u) {
+ return !(u & u - 1) && !!u;
+ }, a.log2 = function(u) {
+ var c, f;
+ return c = (u > 65535) << 4, u >>>= c, f = (u > 255) << 3, u >>>= f, c |= f, f = (u > 15) << 2, u >>>= f, c |= f, f = (u > 3) << 1, u >>>= f, c |= f, c | u >> 1;
+ }, a.log10 = function(u) {
+ return u >= 1e9 ? 9 : u >= 1e8 ? 8 : u >= 1e7 ? 7 : u >= 1e6 ? 6 : u >= 1e5 ? 5 : u >= 1e4 ? 4 : u >= 1e3 ? 3 : u >= 100 ? 2 : u >= 10 ? 1 : 0;
+ }, a.popCount = function(u) {
+ return u = u - (u >>> 1 & 1431655765), u = (u & 858993459) + (u >>> 2 & 858993459), (u + (u >>> 4) & 252645135) * 16843009 >>> 24;
+ };
+ function s(u) {
+ var c = 32;
+ return u &= -u, u && c--, u & 65535 && (c -= 16), u & 16711935 && (c -= 8), u & 252645135 && (c -= 4), u & 858993459 && (c -= 2), u & 1431655765 && (c -= 1), c;
+ }
+ a.countTrailingZeros = s, a.nextPow2 = function(u) {
+ return u += u === 0, --u, u |= u >>> 1, u |= u >>> 2, u |= u >>> 4, u |= u >>> 8, u |= u >>> 16, u + 1;
+ }, a.prevPow2 = function(u) {
+ return u |= u >>> 1, u |= u >>> 2, u |= u >>> 4, u |= u >>> 8, u |= u >>> 16, u - (u >>> 1);
+ }, a.parity = function(u) {
+ return u ^= u >>> 16, u ^= u >>> 8, u ^= u >>> 4, u &= 15, 27030 >>> u & 1;
+ };
+ var l = new Array(256);
+ (function(u) {
+ for (var c = 0; c < 256; ++c) {
+ var f = c, h = c, d = 7;
+ for (f >>>= 1; f; f >>>= 1) h <<= 1, h |= f & 1, --d;
+ u[c] = h << d & 255;
+ }
+ })(l), a.reverse = function(u) {
+ return l[u & 255] << 24 | l[u >>> 8 & 255] << 16 | l[u >>> 16 & 255] << 8 | l[u >>> 24 & 255];
+ }, a.interleave2 = function(u, c) {
+ return u &= 65535, u = (u | u << 8) & 16711935, u = (u | u << 4) & 252645135, u = (u | u << 2) & 858993459, u = (u | u << 1) & 1431655765, c &= 65535, c = (c | c << 8) & 16711935, c = (c | c << 4) & 252645135, c = (c | c << 2) & 858993459, c = (c | c << 1) & 1431655765, u | c << 1;
+ }, a.deinterleave2 = function(u, c) {
+ return u = u >>> c & 1431655765, u = (u | u >>> 1) & 858993459, u = (u | u >>> 2) & 252645135, u = (u | u >>> 4) & 16711935, u = (u | u >>> 16) & 65535, u << 16 >> 16;
+ }, a.interleave3 = function(u, c, f) {
+ return u &= 1023, u = (u | u << 16) & 4278190335, u = (u | u << 8) & 251719695, u = (u | u << 4) & 3272356035, u = (u | u << 2) & 1227133513, c &= 1023, c = (c | c << 16) & 4278190335, c = (c | c << 8) & 251719695, c = (c | c << 4) & 3272356035, c = (c | c << 2) & 1227133513, u |= c << 1, f &= 1023, f = (f | f << 16) & 4278190335, f = (f | f << 8) & 251719695, f = (f | f << 4) & 3272356035, f = (f | f << 2) & 1227133513, u | f << 2;
+ }, a.deinterleave3 = function(u, c) {
+ return u = u >>> c & 1227133513, u = (u | u >>> 2) & 3272356035, u = (u | u >>> 4) & 251719695, u = (u | u >>> 8) & 4278190335, u = (u | u >>> 16) & 1023, u << 22 >> 22;
+ }, a.nextCombination = function(u) {
+ var c = u | u - 1;
+ return c + 1 | (~c & -~c) - 1 >>> s(u) + 1;
+ };
+ }, 3126: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s = new Float32Array(3);
+ return s[0] = o[0], s[1] = o[1], s[2] = o[2], s;
+ }
+ }, 3134: function(i, a, o) {
+ i.exports = l;
+ var s = o(1682);
+ function l(u, c) {
+ var f = u.length;
+ if (typeof c != "number") {
+ c = 0;
+ for (var h = 0; h < f; ++h) {
+ var d = u[h];
+ c = Math.max(c, d[0], d[1]);
+ }
+ c = (c | 0) + 1;
+ }
+ c = c | 0;
+ for (var v = new Array(c), h = 0; h < c; ++h) v[h] = [];
+ for (var h = 0; h < f; ++h) {
+ var d = u[h];
+ v[d[0]].push(d[1]), v[d[1]].push(d[0]);
+ }
+ for (var _ = 0; _ < c; ++_) s(v[_], function(b, p) {
+ return b - p;
+ });
+ return v;
+ }
+ }, 3140: function(i, a, o) {
+ i.exports = d;
+ var s = o(3250), l = o(8572), u = o(9362), c = o(5382), f = o(8210);
+ function h(v, _, b) {
+ var p = u(v[0], -_[0]), k = u(v[1], -_[1]), E = u(b[0], -_[0]), T = u(b[1], -_[1]), L = f(c(p, E), c(k, T));
+ return L[L.length - 1] >= 0;
+ }
+ function d(v, _, b, p) {
+ var k = s(_, b, p);
+ if (k === 0) {
+ var E = l(s(v, _, b)), T = l(s(v, _, p));
+ if (E === T) {
+ if (E === 0) {
+ var L = h(v, _, b), x = h(v, _, p);
+ return L === x ? 0 : L ? 1 : -1;
+ }
+ return 0;
+ } else {
+ if (T === 0) return E > 0 || h(v, _, p) ? -1 : 1;
+ if (E === 0) return T > 0 || h(v, _, b) ? 1 : -1;
+ }
+ return l(T - E);
+ }
+ var C = s(v, _, b);
+ if (C > 0) return k > 0 && s(v, _, p) > 0 ? 1 : -1;
+ if (C < 0) return k > 0 || s(v, _, p) > 0 ? 1 : -1;
+ var M = s(v, _, p);
+ return M > 0 || h(v, _, b) ? 1 : -1;
+ }
+ }, 3202: function(i) {
+ i.exports = function(o, s) {
+ s || (s = [0, ""]), o = String(o);
+ var l = parseFloat(o, 10);
+ return s[0] = l, s[1] = o.match(/[\d.\-\+]*\s*(.*)/)[1] || "", s;
+ };
+ }, 3233: function(i) {
+ var a = "", o;
+ i.exports = s;
+ function s(l, u) {
+ if (typeof l != "string") throw new TypeError("expected a string");
+ if (u === 1) return l;
+ if (u === 2) return l + l;
+ var c = l.length * u;
+ if (o !== l || typeof o == "undefined") o = l, a = "";
+ else if (a.length >= c) return a.substr(0, c);
+ for (; c > a.length && u > 1; ) u & 1 && (a += l), u >>= 1, l += l;
+ return a += l, a = a.substr(0, c), a;
+ }
+ }, 3236: function(i) {
+ i.exports = function(a) {
+ typeof a == "string" && (a = [a]);
+ for (var o = [].slice.call(arguments, 1), s = [], l = 0; l < a.length - 1; l++) s.push(a[l], o[l] || "");
+ return s.push(a[l]), s.join("");
+ };
+ }, 3250: function(i, a, o) {
+ var s = o(5250), l = o(8210), u = o(3012), c = o(8545), f = 5, h = 11102230246251565e-32, d = (3 + 16 * h) * h, v = (7 + 56 * h) * h;
+ function _(g, P, A, z) {
+ return function(U, G, Z) {
+ var j = g(g(P(G[1], Z[0]), P(-Z[1], G[0])), g(P(U[1], G[0]), P(-G[1], U[0]))), N = g(P(U[1], Z[0]), P(-Z[1], U[0])), H = z(j, N);
+ return H[H.length - 1];
+ };
+ }
+ function b(g, P, A, z) {
+ return function(U, G, Z, j) {
+ var N = g(g(A(g(P(Z[1], j[0]), P(-j[1], Z[0])), G[2]), g(A(g(P(G[1], j[0]), P(-j[1], G[0])), -Z[2]), A(g(P(G[1], Z[0]), P(-Z[1], G[0])), j[2]))), g(A(g(P(G[1], j[0]), P(-j[1], G[0])), U[2]), g(A(g(P(U[1], j[0]), P(-j[1], U[0])), -G[2]), A(g(P(U[1], G[0]), P(-G[1], U[0])), j[2])))), H = g(g(A(g(P(Z[1], j[0]), P(-j[1], Z[0])), U[2]), g(A(g(P(U[1], j[0]), P(-j[1], U[0])), -Z[2]), A(g(P(U[1], Z[0]), P(-Z[1], U[0])), j[2]))), g(A(g(P(G[1], Z[0]), P(-Z[1], G[0])), U[2]), g(A(g(P(U[1], Z[0]), P(-Z[1], U[0])), -G[2]), A(g(P(U[1], G[0]), P(-G[1], U[0])), Z[2])))), re = z(N, H);
+ return re[re.length - 1];
+ };
+ }
+ function p(g, P, A, z) {
+ return function(U, G, Z, j, N) {
+ var H = g(g(g(A(g(A(g(P(j[1], N[0]), P(-N[1], j[0])), Z[2]), g(A(g(P(Z[1], N[0]), P(-N[1], Z[0])), -j[2]), A(g(P(Z[1], j[0]), P(-j[1], Z[0])), N[2]))), G[3]), g(A(g(A(g(P(j[1], N[0]), P(-N[1], j[0])), G[2]), g(A(g(P(G[1], N[0]), P(-N[1], G[0])), -j[2]), A(g(P(G[1], j[0]), P(-j[1], G[0])), N[2]))), -Z[3]), A(g(A(g(P(Z[1], N[0]), P(-N[1], Z[0])), G[2]), g(A(g(P(G[1], N[0]), P(-N[1], G[0])), -Z[2]), A(g(P(G[1], Z[0]), P(-Z[1], G[0])), N[2]))), j[3]))), g(A(g(A(g(P(Z[1], j[0]), P(-j[1], Z[0])), G[2]), g(A(g(P(G[1], j[0]), P(-j[1], G[0])), -Z[2]), A(g(P(G[1], Z[0]), P(-Z[1], G[0])), j[2]))), -N[3]), g(A(g(A(g(P(j[1], N[0]), P(-N[1], j[0])), G[2]), g(A(g(P(G[1], N[0]), P(-N[1], G[0])), -j[2]), A(g(P(G[1], j[0]), P(-j[1], G[0])), N[2]))), U[3]), A(g(A(g(P(j[1], N[0]), P(-N[1], j[0])), U[2]), g(A(g(P(U[1], N[0]), P(-N[1], U[0])), -j[2]), A(g(P(U[1], j[0]), P(-j[1], U[0])), N[2]))), -G[3])))), g(g(A(g(A(g(P(G[1], N[0]), P(-N[1], G[0])), U[2]), g(A(g(P(U[1], N[0]), P(-N[1], U[0])), -G[2]), A(g(P(U[1], G[0]), P(-G[1], U[0])), N[2]))), j[3]), g(A(g(A(g(P(G[1], j[0]), P(-j[1], G[0])), U[2]), g(A(g(P(U[1], j[0]), P(-j[1], U[0])), -G[2]), A(g(P(U[1], G[0]), P(-G[1], U[0])), j[2]))), -N[3]), A(g(A(g(P(Z[1], j[0]), P(-j[1], Z[0])), G[2]), g(A(g(P(G[1], j[0]), P(-j[1], G[0])), -Z[2]), A(g(P(G[1], Z[0]), P(-Z[1], G[0])), j[2]))), U[3]))), g(A(g(A(g(P(Z[1], j[0]), P(-j[1], Z[0])), U[2]), g(A(g(P(U[1], j[0]), P(-j[1], U[0])), -Z[2]), A(g(P(U[1], Z[0]), P(-Z[1], U[0])), j[2]))), -G[3]), g(A(g(A(g(P(G[1], j[0]), P(-j[1], G[0])), U[2]), g(A(g(P(U[1], j[0]), P(-j[1], U[0])), -G[2]), A(g(P(U[1], G[0]), P(-G[1], U[0])), j[2]))), Z[3]), A(g(A(g(P(G[1], Z[0]), P(-Z[1], G[0])), U[2]), g(A(g(P(U[1], Z[0]), P(-Z[1], U[0])), -G[2]), A(g(P(U[1], G[0]), P(-G[1], U[0])), Z[2]))), -j[3]))))), re = g(g(g(A(g(A(g(P(j[1], N[0]), P(-N[1], j[0])), Z[2]), g(A(g(P(Z[1], N[0]), P(-N[1], Z[0])), -j[2]), A(g(P(Z[1], j[0]), P(-j[1], Z[0])), N[2]))), U[3]), A(g(A(g(P(j[1], N[0]), P(-N[1], j[0])), U[2]), g(A(g(P(U[1], N[0]), P(-N[1], U[0])), -j[2]), A(g(P(U[1], j[0]), P(-j[1], U[0])), N[2]))), -Z[3])), g(A(g(A(g(P(Z[1], N[0]), P(-N[1], Z[0])), U[2]), g(A(g(P(U[1], N[0]), P(-N[1], U[0])), -Z[2]), A(g(P(U[1], Z[0]), P(-Z[1], U[0])), N[2]))), j[3]), A(g(A(g(P(Z[1], j[0]), P(-j[1], Z[0])), U[2]), g(A(g(P(U[1], j[0]), P(-j[1], U[0])), -Z[2]), A(g(P(U[1], Z[0]), P(-Z[1], U[0])), j[2]))), -N[3]))), g(g(A(g(A(g(P(Z[1], N[0]), P(-N[1], Z[0])), G[2]), g(A(g(P(G[1], N[0]), P(-N[1], G[0])), -Z[2]), A(g(P(G[1], Z[0]), P(-Z[1], G[0])), N[2]))), U[3]), A(g(A(g(P(Z[1], N[0]), P(-N[1], Z[0])), U[2]), g(A(g(P(U[1], N[0]), P(-N[1], U[0])), -Z[2]), A(g(P(U[1], Z[0]), P(-Z[1], U[0])), N[2]))), -G[3])), g(A(g(A(g(P(G[1], N[0]), P(-N[1], G[0])), U[2]), g(A(g(P(U[1], N[0]), P(-N[1], U[0])), -G[2]), A(g(P(U[1], G[0]), P(-G[1], U[0])), N[2]))), Z[3]), A(g(A(g(P(G[1], Z[0]), P(-Z[1], G[0])), U[2]), g(A(g(P(U[1], Z[0]), P(-Z[1], U[0])), -G[2]), A(g(P(U[1], G[0]), P(-G[1], U[0])), Z[2]))), -N[3])))), oe = z(H, re);
+ return oe[oe.length - 1];
+ };
+ }
+ function k(g) {
+ var P = g === 3 ? _ : g === 4 ? b : p;
+ return P(l, s, u, c);
+ }
+ var E = k(3), T = k(4), L = [function() {
+ return 0;
+ }, function() {
+ return 0;
+ }, function(P, A) {
+ return A[0] - P[0];
+ }, function(P, A, z) {
+ var O = (P[1] - z[1]) * (A[0] - z[0]), U = (P[0] - z[0]) * (A[1] - z[1]), G = O - U, Z;
+ if (O > 0) {
+ if (U <= 0) return G;
+ Z = O + U;
+ } else if (O < 0) {
+ if (U >= 0) return G;
+ Z = -(O + U);
+ } else return G;
+ var j = d * Z;
+ return G >= j || G <= -j ? G : E(P, A, z);
+ }, function(P, A, z, O) {
+ var U = P[0] - O[0], G = A[0] - O[0], Z = z[0] - O[0], j = P[1] - O[1], N = A[1] - O[1], H = z[1] - O[1], re = P[2] - O[2], oe = A[2] - O[2], _e = z[2] - O[2], Ce = G * H, Le = Z * N, ge = Z * j, ie = U * H, Se = U * N, Ee = G * j, Ae = re * (Ce - Le) + oe * (ge - ie) + _e * (Se - Ee), Be = (Math.abs(Ce) + Math.abs(Le)) * Math.abs(re) + (Math.abs(ge) + Math.abs(ie)) * Math.abs(oe) + (Math.abs(Se) + Math.abs(Ee)) * Math.abs(_e), Pe = v * Be;
+ return Ae > Pe || -Ae > Pe ? Ae : T(P, A, z, O);
+ }];
+ function x(g) {
+ var P = L[g.length];
+ return P || (P = L[g.length] = k(g.length)), P.apply(void 0, g);
+ }
+ function C(g, P, A, z, O, U, G) {
+ return function(j, N, H, re, oe) {
+ switch (arguments.length) {
+ case 0:
+ case 1:
+ return 0;
+ case 2:
+ return z(j, N);
+ case 3:
+ return O(j, N, H);
+ case 4:
+ return U(j, N, H, re);
+ case 5:
+ return G(j, N, H, re, oe);
+ }
+ for (var _e = new Array(arguments.length), Ce = 0; Ce < arguments.length; ++Ce) _e[Ce] = arguments[Ce];
+ return g(_e);
+ };
+ }
+ function M() {
+ for (; L.length <= f; ) L.push(k(L.length));
+ i.exports = C.apply(void 0, [x].concat(L));
+ for (var g = 0; g <= f; ++g) i.exports[g] = L[g];
+ }
+ M();
+ }, 3327: function(i, a, o) {
+ var s = o(216), l = o(8866);
+ i.exports = f;
+ function u(h) {
+ return function() {
+ return h;
+ };
+ }
+ function c(h, d) {
+ for (var v = new Array(h), _ = 0; _ < h; ++_) v[_] = d;
+ return v;
+ }
+ function f(h, d, v, _) {
+ function b(C) {
+ return function(M, g, P) {
+ return M.getUniform(g.program, P[C]);
+ };
+ }
+ function p(C) {
+ return function(g) {
+ for (var P = k("", C), A = 0; A < P.length; ++A) {
+ var z = P[A], O = z[0], U = z[1];
+ if (_[U]) {
+ var G = g;
+ if (typeof O == "string" && (O.indexOf(".") === 0 || O.indexOf("[") === 0)) {
+ var Z = O;
+ if (O.indexOf(".") === 0 && (Z = O.slice(1)), Z.indexOf("]") === Z.length - 1) {
+ var j = Z.indexOf("["), N = Z.slice(0, j), H = Z.slice(j + 1, Z.length - 1);
+ G = N ? g[N][H] : g[H];
+ } else G = g[Z];
+ }
+ var re = v[U].type, oe;
+ switch (re) {
+ case "bool":
+ case "int":
+ case "sampler2D":
+ case "samplerCube":
+ h.uniform1i(_[U], G);
+ break;
+ case "float":
+ h.uniform1f(_[U], G);
+ break;
+ default:
+ var _e = re.indexOf("vec");
+ if (0 <= _e && _e <= 1 && re.length === 4 + _e) {
+ if (oe = re.charCodeAt(re.length - 1) - 48, oe < 2 || oe > 4) throw new l("", "Invalid data type");
+ switch (re.charAt(0)) {
+ case "b":
+ case "i":
+ h["uniform" + oe + "iv"](_[U], G);
+ break;
+ case "v":
+ h["uniform" + oe + "fv"](_[U], G);
+ break;
+ default:
+ throw new l("", "Unrecognized data type for vector " + name + ": " + re);
+ }
+ } else if (re.indexOf("mat") === 0 && re.length === 4) {
+ if (oe = re.charCodeAt(re.length - 1) - 48, oe < 2 || oe > 4) throw new l("", "Invalid uniform dimension type for matrix " + name + ": " + re);
+ h["uniformMatrix" + oe + "fv"](_[U], false, G);
+ break;
+ } else throw new l("", "Unknown uniform data type for " + name + ": " + re);
+ }
+ }
+ }
+ };
+ }
+ function k(C, M) {
+ if (typeof M != "object") return [[C, M]];
+ var g = [];
+ for (var P in M) {
+ var A = M[P], z = C;
+ parseInt(P) + "" === P ? z += "[" + P + "]" : z += "." + P, typeof A == "object" ? g.push.apply(g, k(z, A)) : g.push([z, A]);
+ }
+ return g;
+ }
+ function E(C) {
+ switch (C) {
+ case "bool":
+ return false;
+ case "int":
+ case "sampler2D":
+ case "samplerCube":
+ return 0;
+ case "float":
+ return 0;
+ default:
+ var M = C.indexOf("vec");
+ if (0 <= M && M <= 1 && C.length === 4 + M) {
+ var g = C.charCodeAt(C.length - 1) - 48;
+ if (g < 2 || g > 4) throw new l("", "Invalid data type");
+ return C.charAt(0) === "b" ? c(g, false) : c(g, 0);
+ } else if (C.indexOf("mat") === 0 && C.length === 4) {
+ var g = C.charCodeAt(C.length - 1) - 48;
+ if (g < 2 || g > 4) throw new l("", "Invalid uniform dimension type for matrix " + name + ": " + C);
+ return c(g * g, 0);
+ } else throw new l("", "Unknown uniform data type for " + name + ": " + C);
+ }
+ }
+ function T(C, M, g) {
+ if (typeof g == "object") {
+ var P = L(g);
+ Object.defineProperty(C, M, { get: u(P), set: p(g), enumerable: true, configurable: false });
+ } else _[g] ? Object.defineProperty(C, M, { get: b(g), set: p(g), enumerable: true, configurable: false }) : C[M] = E(v[g].type);
+ }
+ function L(C) {
+ var M;
+ if (Array.isArray(C)) {
+ M = new Array(C.length);
+ for (var g = 0; g < C.length; ++g) T(M, g, C[g]);
+ } else {
+ M = {};
+ for (var P in C) T(M, P, C[P]);
+ }
+ return M;
+ }
+ var x = s(v, true);
+ return { get: u(L(x)), set: p(x), enumerable: true, configurable: true };
+ }
+ }, 3349: function(i) {
+ function a() {
+ return function(f, h, d, v, _, b) {
+ var p = f[0], k = d[0], E = [0], T = k;
+ v |= 0;
+ var L = 0, x = k;
+ for (L = 0; L < p; ++L) {
+ {
+ var C = h[v] - b, M = h[v + T] - b;
+ C >= 0 != M >= 0 && _.push(E[0] + 0.5 + 0.5 * (C + M) / (C - M));
+ }
+ v += x, ++E[0];
+ }
+ };
+ }
+ function o() {
+ return a();
+ }
+ var s = o;
+ function l(f) {
+ var h = {};
+ return function(v, _, b) {
+ var p = v.dtype, k = v.order, E = [p, k.join()].join(), T = h[E];
+ return T || (h[E] = T = f([p, k])), T(v.shape.slice(0), v.data, v.stride, v.offset | 0, _, b);
+ };
+ }
+ function u(f) {
+ return l(s.bind(void 0, f));
+ }
+ function c(f) {
+ return u({ funcName: f.funcName });
+ }
+ i.exports = c({ funcName: "zeroCrossings" });
+ }, 3352: function(i, a, o) {
+ var s = o(2478), l = 0, u = 1, c = 2;
+ i.exports = P;
+ function f(A, z, O, U, G) {
+ this.mid = A, this.left = z, this.right = O, this.leftPoints = U, this.rightPoints = G, this.count = (z ? z.count : 0) + (O ? O.count : 0) + U.length;
+ }
+ var h = f.prototype;
+ function d(A, z) {
+ A.mid = z.mid, A.left = z.left, A.right = z.right, A.leftPoints = z.leftPoints, A.rightPoints = z.rightPoints, A.count = z.count;
+ }
+ function v(A, z) {
+ var O = C(z);
+ A.mid = O.mid, A.left = O.left, A.right = O.right, A.leftPoints = O.leftPoints, A.rightPoints = O.rightPoints, A.count = O.count;
+ }
+ function _(A, z) {
+ var O = A.intervals([]);
+ O.push(z), v(A, O);
+ }
+ function b(A, z) {
+ var O = A.intervals([]), U = O.indexOf(z);
+ return U < 0 ? l : (O.splice(U, 1), v(A, O), u);
+ }
+ h.intervals = function(A) {
+ return A.push.apply(A, this.leftPoints), this.left && this.left.intervals(A), this.right && this.right.intervals(A), A;
+ }, h.insert = function(A) {
+ var z = this.count - this.leftPoints.length;
+ if (this.count += 1, A[1] < this.mid) this.left ? 4 * (this.left.count + 1) > 3 * (z + 1) ? _(this, A) : this.left.insert(A) : this.left = C([A]);
+ else if (A[0] > this.mid) this.right ? 4 * (this.right.count + 1) > 3 * (z + 1) ? _(this, A) : this.right.insert(A) : this.right = C([A]);
+ else {
+ var O = s.ge(this.leftPoints, A, L), U = s.ge(this.rightPoints, A, x);
+ this.leftPoints.splice(O, 0, A), this.rightPoints.splice(U, 0, A);
+ }
+ }, h.remove = function(A) {
+ var z = this.count - this.leftPoints;
+ if (A[1] < this.mid) {
+ if (!this.left) return l;
+ var O = this.right ? this.right.count : 0;
+ if (4 * O > 3 * (z - 1)) return b(this, A);
+ var U = this.left.remove(A);
+ return U === c ? (this.left = null, this.count -= 1, u) : (U === u && (this.count -= 1), U);
+ } else if (A[0] > this.mid) {
+ if (!this.right) return l;
+ var G = this.left ? this.left.count : 0;
+ if (4 * G > 3 * (z - 1)) return b(this, A);
+ var U = this.right.remove(A);
+ return U === c ? (this.right = null, this.count -= 1, u) : (U === u && (this.count -= 1), U);
+ } else {
+ if (this.count === 1) return this.leftPoints[0] === A ? c : l;
+ if (this.leftPoints.length === 1 && this.leftPoints[0] === A) {
+ if (this.left && this.right) {
+ for (var Z = this, j = this.left; j.right; ) Z = j, j = j.right;
+ if (Z === this) j.right = this.right;
+ else {
+ var N = this.left, U = this.right;
+ Z.count -= j.count, Z.right = j.left, j.left = N, j.right = U;
+ }
+ d(this, j), this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;
+ } else this.left ? d(this, this.left) : d(this, this.right);
+ return u;
+ }
+ for (var N = s.ge(this.leftPoints, A, L); N < this.leftPoints.length && this.leftPoints[N][0] === A[0]; ++N) if (this.leftPoints[N] === A) {
+ this.count -= 1, this.leftPoints.splice(N, 1);
+ for (var U = s.ge(this.rightPoints, A, x); U < this.rightPoints.length && this.rightPoints[U][1] === A[1]; ++U) if (this.rightPoints[U] === A) return this.rightPoints.splice(U, 1), u;
+ }
+ return l;
+ }
+ };
+ function p(A, z, O) {
+ for (var U = 0; U < A.length && A[U][0] <= z; ++U) {
+ var G = O(A[U]);
+ if (G) return G;
+ }
+ }
+ function k(A, z, O) {
+ for (var U = A.length - 1; U >= 0 && A[U][1] >= z; --U) {
+ var G = O(A[U]);
+ if (G) return G;
+ }
+ }
+ function E(A, z) {
+ for (var O = 0; O < A.length; ++O) {
+ var U = z(A[O]);
+ if (U) return U;
+ }
+ }
+ h.queryPoint = function(A, z) {
+ if (A < this.mid) {
+ if (this.left) {
+ var O = this.left.queryPoint(A, z);
+ if (O) return O;
+ }
+ return p(this.leftPoints, A, z);
+ } else if (A > this.mid) {
+ if (this.right) {
+ var O = this.right.queryPoint(A, z);
+ if (O) return O;
+ }
+ return k(this.rightPoints, A, z);
+ } else return E(this.leftPoints, z);
+ }, h.queryInterval = function(A, z, O) {
+ if (A < this.mid && this.left) {
+ var U = this.left.queryInterval(A, z, O);
+ if (U) return U;
+ }
+ if (z > this.mid && this.right) {
+ var U = this.right.queryInterval(A, z, O);
+ if (U) return U;
+ }
+ return z < this.mid ? p(this.leftPoints, z, O) : A > this.mid ? k(this.rightPoints, A, O) : E(this.leftPoints, O);
+ };
+ function T(A, z) {
+ return A - z;
+ }
+ function L(A, z) {
+ var O = A[0] - z[0];
+ return O || A[1] - z[1];
+ }
+ function x(A, z) {
+ var O = A[1] - z[1];
+ return O || A[0] - z[0];
+ }
+ function C(A) {
+ if (A.length === 0) return null;
+ for (var z = [], O = 0; O < A.length; ++O) z.push(A[O][0], A[O][1]);
+ z.sort(T);
+ for (var U = z[z.length >> 1], G = [], Z = [], j = [], O = 0; O < A.length; ++O) {
+ var N = A[O];
+ N[1] < U ? G.push(N) : U < N[0] ? Z.push(N) : j.push(N);
+ }
+ var H = j, re = j.slice();
+ return H.sort(L), re.sort(x), new f(U, C(G), C(Z), H, re);
+ }
+ function M(A) {
+ this.root = A;
+ }
+ var g = M.prototype;
+ g.insert = function(A) {
+ this.root ? this.root.insert(A) : this.root = new f(A[0], null, null, [A], [A]);
+ }, g.remove = function(A) {
+ if (this.root) {
+ var z = this.root.remove(A);
+ return z === c && (this.root = null), z !== l;
+ }
+ return false;
+ }, g.queryPoint = function(A, z) {
+ if (this.root) return this.root.queryPoint(A, z);
+ }, g.queryInterval = function(A, z, O) {
+ if (A <= z && this.root) return this.root.queryInterval(A, z, O);
+ }, Object.defineProperty(g, "count", { get: function() {
+ return this.root ? this.root.count : 0;
+ } }), Object.defineProperty(g, "intervals", { get: function() {
+ return this.root ? this.root.intervals([]) : [];
+ } });
+ function P(A) {
+ return !A || A.length === 0 ? new M(null) : new M(C(A));
+ }
+ }, 3387: function(i, a, o) {
+ var s;
+ (function() {
+ var l = { not_type: /[^T]/, not_primitive: /[^v]/, number: /[diefg]/, numeric_arg: /[bcdiefguxX]/, json: /[j]/, text: /^[^\x25]+/, modulo: /^\x25{2}/, placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, key: /^([a-z_][a-z_\d]*)/i, key_access: /^\.([a-z_][a-z_\d]*)/i, index_access: /^\[(\d+)\]/, sign: /^[+-]/ };
+ function u(v) {
+ return f(d(v), arguments);
+ }
+ function c(v, _) {
+ return u.apply(null, [v].concat(_ || []));
+ }
+ function f(v, _) {
+ var b = 1, p = v.length, k, E = "", T, L, x, C, M, g, P, A;
+ for (T = 0; T < p; T++) if (typeof v[T] == "string") E += v[T];
+ else if (typeof v[T] == "object") {
+ if (x = v[T], x.keys) for (k = _[b], L = 0; L < x.keys.length; L++) {
+ if (k == null) throw new Error(u('[sprintf] Cannot access property "%s" of undefined value "%s"', x.keys[L], x.keys[L - 1]));
+ k = k[x.keys[L]];
+ }
+ else x.param_no ? k = _[x.param_no] : k = _[b++];
+ if (l.not_type.test(x.type) && l.not_primitive.test(x.type) && k instanceof Function && (k = k()), l.numeric_arg.test(x.type) && typeof k != "number" && isNaN(k)) throw new TypeError(u("[sprintf] expecting number but found %T", k));
+ switch (l.number.test(x.type) && (P = k >= 0), x.type) {
+ case "b":
+ k = parseInt(k, 10).toString(2);
+ break;
+ case "c":
+ k = String.fromCharCode(parseInt(k, 10));
+ break;
+ case "d":
+ case "i":
+ k = parseInt(k, 10);
+ break;
+ case "j":
+ k = JSON.stringify(k, null, x.width ? parseInt(x.width) : 0);
+ break;
+ case "e":
+ k = x.precision ? parseFloat(k).toExponential(x.precision) : parseFloat(k).toExponential();
+ break;
+ case "f":
+ k = x.precision ? parseFloat(k).toFixed(x.precision) : parseFloat(k);
+ break;
+ case "g":
+ k = x.precision ? String(Number(k.toPrecision(x.precision))) : parseFloat(k);
+ break;
+ case "o":
+ k = (parseInt(k, 10) >>> 0).toString(8);
+ break;
+ case "s":
+ k = String(k), k = x.precision ? k.substring(0, x.precision) : k;
+ break;
+ case "t":
+ k = String(!!k), k = x.precision ? k.substring(0, x.precision) : k;
+ break;
+ case "T":
+ k = Object.prototype.toString.call(k).slice(8, -1).toLowerCase(), k = x.precision ? k.substring(0, x.precision) : k;
+ break;
+ case "u":
+ k = parseInt(k, 10) >>> 0;
+ break;
+ case "v":
+ k = k.valueOf(), k = x.precision ? k.substring(0, x.precision) : k;
+ break;
+ case "x":
+ k = (parseInt(k, 10) >>> 0).toString(16);
+ break;
+ case "X":
+ k = (parseInt(k, 10) >>> 0).toString(16).toUpperCase();
+ break;
+ }
+ l.json.test(x.type) ? E += k : (l.number.test(x.type) && (!P || x.sign) ? (A = P ? "+" : "-", k = k.toString().replace(l.sign, "")) : A = "", M = x.pad_char ? x.pad_char === "0" ? "0" : x.pad_char.charAt(1) : " ", g = x.width - (A + k).length, C = x.width && g > 0 ? M.repeat(g) : "", E += x.align ? A + k + C : M === "0" ? A + C + k : C + A + k);
+ }
+ return E;
+ }
+ var h = /* @__PURE__ */ Object.create(null);
+ function d(v) {
+ if (h[v]) return h[v];
+ for (var _ = v, b, p = [], k = 0; _; ) {
+ if ((b = l.text.exec(_)) !== null) p.push(b[0]);
+ else if ((b = l.modulo.exec(_)) !== null) p.push("%");
+ else if ((b = l.placeholder.exec(_)) !== null) {
+ if (b[2]) {
+ k |= 1;
+ var E = [], T = b[2], L = [];
+ if ((L = l.key.exec(T)) !== null) for (E.push(L[1]); (T = T.substring(L[0].length)) !== ""; ) if ((L = l.key_access.exec(T)) !== null) E.push(L[1]);
+ else if ((L = l.index_access.exec(T)) !== null) E.push(L[1]);
+ else throw new SyntaxError("[sprintf] failed to parse named argument key");
+ else throw new SyntaxError("[sprintf] failed to parse named argument key");
+ b[2] = E;
+ } else k |= 2;
+ if (k === 3) throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");
+ p.push({ placeholder: b[0], param_no: b[1], keys: b[2], sign: b[3], pad_char: b[4], align: b[5], width: b[6], precision: b[7], type: b[8] });
+ } else throw new SyntaxError("[sprintf] unexpected placeholder");
+ _ = _.substring(b[0].length);
+ }
+ return h[v] = p;
+ }
+ a.sprintf = u, a.vsprintf = c, typeof window != "undefined" && (window.sprintf = u, window.vsprintf = c, s = (function() {
+ return { sprintf: u, vsprintf: c };
+ }).call(a, o, a, i), s !== void 0 && (i.exports = s));
+ })();
+ }, 3390: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ var c = new Float32Array(4);
+ return c[0] = o, c[1] = s, c[2] = l, c[3] = u, c;
+ }
+ }, 3436: function(i, a, o) {
+ var s = o(3236), l = o(9405), u = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position, offset;
+attribute vec4 color;
+uniform mat4 model, view, projection;
+uniform float capSize;
+varying vec4 fragColor;
+varying vec3 fragPosition;
+
+void main() {
+ vec4 worldPosition = model * vec4(position, 1.0);
+ worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);
+ gl_Position = projection * (view * worldPosition);
+ fragColor = color;
+ fragPosition = position;
+}`]), c = s([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform float opacity;
+varying vec3 fragPosition;
+varying vec4 fragColor;
+
+void main() {
+ if (
+ outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||
+ fragColor.a * opacity == 0.
+ ) discard;
+
+ gl_FragColor = opacity * fragColor;
+}`]);
+ i.exports = function(f) {
+ return l(f, u, c, null, [{ name: "position", type: "vec3" }, { name: "color", type: "vec4" }, { name: "offset", type: "vec3" }]);
+ };
+ }, 3502: function(i, a, o) {
+ i.exports = u;
+ var s = o(5995), l = o(9127);
+ function u(c, f) {
+ return l(s(c, f));
+ }
+ }, 3508: function(i, a, o) {
+ var s = o(6852);
+ s = s.slice().filter(function(l) {
+ return !/^(gl\_|texture)/.test(l);
+ }), i.exports = s.concat(["gl_VertexID", "gl_InstanceID", "gl_Position", "gl_PointSize", "gl_FragCoord", "gl_FrontFacing", "gl_FragDepth", "gl_PointCoord", "gl_MaxVertexAttribs", "gl_MaxVertexUniformVectors", "gl_MaxVertexOutputVectors", "gl_MaxFragmentInputVectors", "gl_MaxVertexTextureImageUnits", "gl_MaxCombinedTextureImageUnits", "gl_MaxTextureImageUnits", "gl_MaxFragmentUniformVectors", "gl_MaxDrawBuffers", "gl_MinProgramTexelOffset", "gl_MaxProgramTexelOffset", "gl_DepthRangeParameters", "gl_DepthRange", "trunc", "round", "roundEven", "isnan", "isinf", "floatBitsToInt", "floatBitsToUint", "intBitsToFloat", "uintBitsToFloat", "packSnorm2x16", "unpackSnorm2x16", "packUnorm2x16", "unpackUnorm2x16", "packHalf2x16", "unpackHalf2x16", "outerProduct", "transpose", "determinant", "inverse", "texture", "textureSize", "textureProj", "textureLod", "textureOffset", "texelFetch", "texelFetchOffset", "textureProjOffset", "textureLodOffset", "textureProjLod", "textureProjLodOffset", "textureGrad", "textureGradOffset", "textureProjGrad", "textureProjGradOffset"]);
+ }, 3536: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = s[0], u = s[1], c = s[2], f = l * l + u * u + c * c;
+ return f > 0 && (f = 1 / Math.sqrt(f), o[0] = s[0] * f, o[1] = s[1] * f, o[2] = s[2] * f), o;
+ }
+ }, 3545: function(i, a, o) {
+ i.exports = f;
+ var s = o(8105), l = s("lo v && b[C + d] > L; --x, C -= k) {
+ for (var M = C, g = C + k, P = 0; P < k; ++P, ++M, ++g) {
+ var A = b[M];
+ b[M] = b[g], b[g] = A;
+ }
+ var z = p[x];
+ p[x] = p[x - 1], p[x - 1] = z;
+ }
+ }
+ function f(h, d, v, _, b, p) {
+ if (_ <= v + 1) return v;
+ for (var k = v, E = _, T = _ + v >>> 1, L = 2 * h, x = T, C = b[L * T + d]; k < E; ) {
+ if (E - k < u) {
+ c(h, d, k, E, b, p), C = b[L * T + d];
+ break;
+ }
+ var M = E - k, g = Math.random() * M + k | 0, P = b[L * g + d], A = Math.random() * M + k | 0, z = b[L * A + d], O = Math.random() * M + k | 0, U = b[L * O + d];
+ P <= z ? U >= z ? (x = A, C = z) : P >= U ? (x = g, C = P) : (x = O, C = U) : z >= U ? (x = A, C = z) : U >= P ? (x = g, C = P) : (x = O, C = U);
+ for (var j = L * (E - 1), N = L * x, G = 0; G < L; ++G, ++j, ++N) {
+ var Z = b[j];
+ b[j] = b[N], b[N] = Z;
+ }
+ var H = p[E - 1];
+ p[E - 1] = p[x], p[x] = H, x = l(h, d, k, E - 1, b, p, C);
+ for (var j = L * (E - 1), N = L * x, G = 0; G < L; ++G, ++j, ++N) {
+ var Z = b[j];
+ b[j] = b[N], b[N] = Z;
+ }
+ var H = p[E - 1];
+ if (p[E - 1] = p[x], p[x] = H, T < x) {
+ for (E = x - 1; k < E && b[L * (E - 1) + d] === C; ) E -= 1;
+ E += 1;
+ } else if (x < T) for (k = x + 1; k < E && b[L * k + d] === C; ) k += 1;
+ else break;
+ }
+ return l(h, d, v, T, b, p, b[L * T + d]);
+ }
+ }, 3576: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] * l[0], o[1] = s[1] * l[1], o[2] = s[2] * l[2], o[3] = s[3] * l[3], o;
+ }
+ }, 3589: function(i, a, o) {
+ i.exports = _;
+ var s = o(2260), l = o(1888), u = o(9618), c = o(8828).nextPow2, f = function(b, p, k) {
+ for (var E = 1e8, T = -1, L = -1, x = b.shape[0], C = b.shape[1], M = 0; M < x; M++) for (var g = 0; g < C; g++) {
+ var P = b.get(M, g, 0), A = b.get(M, g, 1), z = b.get(M, g, 2), O = b.get(M, g, 3);
+ if (P < 255 || A < 255 || z < 255 || O < 255) {
+ var U = p - M, G = k - g, Z = U * U + G * G;
+ Z < E && (E = Z, T = M, L = g);
+ }
+ }
+ return [T, L, E];
+ };
+ function h(b, p, k, E, T) {
+ this.coord = [b, p], this.id = k, this.value = E, this.distance = T;
+ }
+ function d(b, p, k) {
+ this.gl = b, this.fbo = p, this.buffer = k, this._readTimeout = null;
+ var E = this;
+ this._readCallback = function() {
+ E.gl && (p.bind(), b.readPixels(0, 0, p.shape[0], p.shape[1], b.RGBA, b.UNSIGNED_BYTE, E.buffer), E._readTimeout = null);
+ };
+ }
+ var v = d.prototype;
+ Object.defineProperty(v, "shape", { get: function() {
+ return this.gl ? this.fbo.shape.slice() : [0, 0];
+ }, set: function(b) {
+ if (this.gl) {
+ this.fbo.shape = b;
+ var p = this.fbo.shape[0], k = this.fbo.shape[1];
+ if (k * p * 4 > this.buffer.length) {
+ l.free(this.buffer);
+ for (var E = this.buffer = l.mallocUint8(c(k * p * 4)), T = 0; T < k * p * 4; ++T) E[T] = 255;
+ }
+ return b;
+ }
+ } }), v.begin = function() {
+ var b = this.gl;
+ this.shape;
+ b && (this.fbo.bind(), b.clearColor(1, 1, 1, 1), b.clear(b.COLOR_BUFFER_BIT | b.DEPTH_BUFFER_BIT));
+ }, v.end = function() {
+ var b = this.gl;
+ b && (b.bindFramebuffer(b.FRAMEBUFFER, null), this._readTimeout || clearTimeout(this._readTimeout), this._readTimeout = setTimeout(this._readCallback, 1));
+ }, v.query = function(b, p, k) {
+ if (!this.gl) return null;
+ var E = this.fbo.shape.slice();
+ b = b | 0, p = p | 0, typeof k != "number" && (k = 1);
+ var T = Math.min(Math.max(b - k, 0), E[0]) | 0, L = Math.min(Math.max(b + k, 0), E[0]) | 0, x = Math.min(Math.max(p - k, 0), E[1]) | 0, C = Math.min(Math.max(p + k, 0), E[1]) | 0;
+ if (L <= T || C <= x) return null;
+ var M = [L - T, C - x], g = u(this.buffer, [M[0], M[1], 4], [4, E[0] * 4, 1], 4 * (T + E[0] * x)), P = f(g.hi(M[0], M[1], 1), k, k), A = P[0], z = P[1];
+ if (A < 0 || Math.pow(this.radius, 2) < P[2]) return null;
+ var O = g.get(A, z, 0), U = g.get(A, z, 1), G = g.get(A, z, 2), Z = g.get(A, z, 3);
+ return new h(A + T | 0, z + x | 0, O, [U, G, Z], Math.sqrt(P[2]));
+ }, v.dispose = function() {
+ this.gl && (this.fbo.dispose(), l.free(this.buffer), this.gl = null, this._readTimeout && clearTimeout(this._readTimeout));
+ };
+ function _(b, p) {
+ var k = p[0], E = p[1], T = {}, L = s(b, k, E, T), x = l.mallocUint8(k * E * 4);
+ return new d(b, L, x);
+ }
+ }, 3628: function(i, a, o) {
+ var s = o(1338), l = o(727);
+ function u(h, d) {
+ for (var v = 0, _ = h.length, b = 0; b < _; ++b) v += h[b] * d[b];
+ return v;
+ }
+ function c(h) {
+ var d = h.length;
+ if (d === 0) return [];
+ h[0].length;
+ var _ = s([h.length + 1, h.length + 1], 1), b = s([h.length + 1], 1);
+ _[d][d] = 0;
+ for (var p = 0; p < d; ++p) {
+ for (var k = 0; k <= p; ++k) _[k][p] = _[p][k] = 2 * u(h[p], h[k]);
+ b[p] = u(h[p], h[p]);
+ }
+ for (var E = l(_, b), T = 0, L = E[d + 1], p = 0; p < L.length; ++p) T += L[p];
+ for (var x = new Array(d), p = 0; p < d; ++p) {
+ for (var L = E[p], C = 0, k = 0; k < L.length; ++k) C += L[k];
+ x[p] = C / T;
+ }
+ return x;
+ }
+ function f(h) {
+ if (h.length === 0) return [];
+ for (var d = h[0].length, v = s([d]), _ = c(h), b = 0; b < h.length; ++b) for (var p = 0; p < d; ++p) v[p] += h[b][p] * _[b];
+ return v;
+ }
+ f.barycenetric = c, i.exports = f;
+ }, 3637: function(i, a, o) {
+ i.exports = _;
+ var s = o(6504), l = o(8697), u = o(5572), c = o(7721), f = o(544), h = o(2653), d = o(8987);
+ function v(b, p) {
+ return u(s(b[0], p[1]), s(b[1], p[0]));
+ }
+ function _(b, p, k, E) {
+ var T = f(p, b), L = f(E, k), x = v(T, L);
+ if (c(x) === 0) return null;
+ var C = f(b, k), M = v(L, C), g = l(M, x), P = d(T, g), A = h(b, P);
+ return A;
+ }
+ }, 3642: function(i) {
+ i.exports = { jet: [{ index: 0, rgb: [0, 0, 131] }, { index: 0.125, rgb: [0, 60, 170] }, { index: 0.375, rgb: [5, 255, 255] }, { index: 0.625, rgb: [255, 255, 0] }, { index: 0.875, rgb: [250, 0, 0] }, { index: 1, rgb: [128, 0, 0] }], hsv: [{ index: 0, rgb: [255, 0, 0] }, { index: 0.169, rgb: [253, 255, 2] }, { index: 0.173, rgb: [247, 255, 2] }, { index: 0.337, rgb: [0, 252, 4] }, { index: 0.341, rgb: [0, 252, 10] }, { index: 0.506, rgb: [1, 249, 255] }, { index: 0.671, rgb: [2, 0, 253] }, { index: 0.675, rgb: [8, 0, 253] }, { index: 0.839, rgb: [255, 0, 251] }, { index: 0.843, rgb: [255, 0, 245] }, { index: 1, rgb: [255, 0, 6] }], hot: [{ index: 0, rgb: [0, 0, 0] }, { index: 0.3, rgb: [230, 0, 0] }, { index: 0.6, rgb: [255, 210, 0] }, { index: 1, rgb: [255, 255, 255] }], spring: [{ index: 0, rgb: [255, 0, 255] }, { index: 1, rgb: [255, 255, 0] }], summer: [{ index: 0, rgb: [0, 128, 102] }, { index: 1, rgb: [255, 255, 102] }], autumn: [{ index: 0, rgb: [255, 0, 0] }, { index: 1, rgb: [255, 255, 0] }], winter: [{ index: 0, rgb: [0, 0, 255] }, { index: 1, rgb: [0, 255, 128] }], bone: [{ index: 0, rgb: [0, 0, 0] }, { index: 0.376, rgb: [84, 84, 116] }, { index: 0.753, rgb: [169, 200, 200] }, { index: 1, rgb: [255, 255, 255] }], copper: [{ index: 0, rgb: [0, 0, 0] }, { index: 0.804, rgb: [255, 160, 102] }, { index: 1, rgb: [255, 199, 127] }], greys: [{ index: 0, rgb: [0, 0, 0] }, { index: 1, rgb: [255, 255, 255] }], yignbu: [{ index: 0, rgb: [8, 29, 88] }, { index: 0.125, rgb: [37, 52, 148] }, { index: 0.25, rgb: [34, 94, 168] }, { index: 0.375, rgb: [29, 145, 192] }, { index: 0.5, rgb: [65, 182, 196] }, { index: 0.625, rgb: [127, 205, 187] }, { index: 0.75, rgb: [199, 233, 180] }, { index: 0.875, rgb: [237, 248, 217] }, { index: 1, rgb: [255, 255, 217] }], greens: [{ index: 0, rgb: [0, 68, 27] }, { index: 0.125, rgb: [0, 109, 44] }, { index: 0.25, rgb: [35, 139, 69] }, { index: 0.375, rgb: [65, 171, 93] }, { index: 0.5, rgb: [116, 196, 118] }, { index: 0.625, rgb: [161, 217, 155] }, { index: 0.75, rgb: [199, 233, 192] }, { index: 0.875, rgb: [229, 245, 224] }, { index: 1, rgb: [247, 252, 245] }], yiorrd: [{ index: 0, rgb: [128, 0, 38] }, { index: 0.125, rgb: [189, 0, 38] }, { index: 0.25, rgb: [227, 26, 28] }, { index: 0.375, rgb: [252, 78, 42] }, { index: 0.5, rgb: [253, 141, 60] }, { index: 0.625, rgb: [254, 178, 76] }, { index: 0.75, rgb: [254, 217, 118] }, { index: 0.875, rgb: [255, 237, 160] }, { index: 1, rgb: [255, 255, 204] }], bluered: [{ index: 0, rgb: [0, 0, 255] }, { index: 1, rgb: [255, 0, 0] }], rdbu: [{ index: 0, rgb: [5, 10, 172] }, { index: 0.35, rgb: [106, 137, 247] }, { index: 0.5, rgb: [190, 190, 190] }, { index: 0.6, rgb: [220, 170, 132] }, { index: 0.7, rgb: [230, 145, 90] }, { index: 1, rgb: [178, 10, 28] }], picnic: [{ index: 0, rgb: [0, 0, 255] }, { index: 0.1, rgb: [51, 153, 255] }, { index: 0.2, rgb: [102, 204, 255] }, { index: 0.3, rgb: [153, 204, 255] }, { index: 0.4, rgb: [204, 204, 255] }, { index: 0.5, rgb: [255, 255, 255] }, { index: 0.6, rgb: [255, 204, 255] }, { index: 0.7, rgb: [255, 153, 255] }, { index: 0.8, rgb: [255, 102, 204] }, { index: 0.9, rgb: [255, 102, 102] }, { index: 1, rgb: [255, 0, 0] }], rainbow: [{ index: 0, rgb: [150, 0, 90] }, { index: 0.125, rgb: [0, 0, 200] }, { index: 0.25, rgb: [0, 25, 255] }, { index: 0.375, rgb: [0, 152, 255] }, { index: 0.5, rgb: [44, 255, 150] }, { index: 0.625, rgb: [151, 255, 0] }, { index: 0.75, rgb: [255, 234, 0] }, { index: 0.875, rgb: [255, 111, 0] }, { index: 1, rgb: [255, 0, 0] }], portland: [{ index: 0, rgb: [12, 51, 131] }, { index: 0.25, rgb: [10, 136, 186] }, { index: 0.5, rgb: [242, 211, 56] }, { index: 0.75, rgb: [242, 143, 56] }, { index: 1, rgb: [217, 30, 30] }], blackbody: [{ index: 0, rgb: [0, 0, 0] }, { index: 0.2, rgb: [230, 0, 0] }, { index: 0.4, rgb: [230, 210, 0] }, { index: 0.7, rgb: [255, 255, 255] }, { index: 1, rgb: [160, 200, 255] }], earth: [{ index: 0, rgb: [0, 0, 130] }, { index: 0.1, rgb: [0, 180, 180] }, { index: 0.2, rgb: [40, 210, 40] }, { index: 0.4, rgb: [230, 230, 50] }, { index: 0.6, rgb: [120, 70, 20] }, { index: 1, rgb: [255, 255, 255] }], electric: [{ index: 0, rgb: [0, 0, 0] }, { index: 0.15, rgb: [30, 0, 100] }, { index: 0.4, rgb: [120, 0, 100] }, { index: 0.6, rgb: [160, 90, 0] }, { index: 0.8, rgb: [230, 200, 0] }, { index: 1, rgb: [255, 250, 220] }], alpha: [{ index: 0, rgb: [255, 255, 255, 0] }, { index: 1, rgb: [255, 255, 255, 1] }], viridis: [{ index: 0, rgb: [68, 1, 84] }, { index: 0.13, rgb: [71, 44, 122] }, { index: 0.25, rgb: [59, 81, 139] }, { index: 0.38, rgb: [44, 113, 142] }, { index: 0.5, rgb: [33, 144, 141] }, { index: 0.63, rgb: [39, 173, 129] }, { index: 0.75, rgb: [92, 200, 99] }, { index: 0.88, rgb: [170, 220, 50] }, { index: 1, rgb: [253, 231, 37] }], inferno: [{ index: 0, rgb: [0, 0, 4] }, { index: 0.13, rgb: [31, 12, 72] }, { index: 0.25, rgb: [85, 15, 109] }, { index: 0.38, rgb: [136, 34, 106] }, { index: 0.5, rgb: [186, 54, 85] }, { index: 0.63, rgb: [227, 89, 51] }, { index: 0.75, rgb: [249, 140, 10] }, { index: 0.88, rgb: [249, 201, 50] }, { index: 1, rgb: [252, 255, 164] }], magma: [{ index: 0, rgb: [0, 0, 4] }, { index: 0.13, rgb: [28, 16, 68] }, { index: 0.25, rgb: [79, 18, 123] }, { index: 0.38, rgb: [129, 37, 129] }, { index: 0.5, rgb: [181, 54, 122] }, { index: 0.63, rgb: [229, 80, 100] }, { index: 0.75, rgb: [251, 135, 97] }, { index: 0.88, rgb: [254, 194, 135] }, { index: 1, rgb: [252, 253, 191] }], plasma: [{ index: 0, rgb: [13, 8, 135] }, { index: 0.13, rgb: [75, 3, 161] }, { index: 0.25, rgb: [125, 3, 168] }, { index: 0.38, rgb: [168, 34, 150] }, { index: 0.5, rgb: [203, 70, 121] }, { index: 0.63, rgb: [229, 107, 93] }, { index: 0.75, rgb: [248, 148, 65] }, { index: 0.88, rgb: [253, 195, 40] }, { index: 1, rgb: [240, 249, 33] }], warm: [{ index: 0, rgb: [125, 0, 179] }, { index: 0.13, rgb: [172, 0, 187] }, { index: 0.25, rgb: [219, 0, 170] }, { index: 0.38, rgb: [255, 0, 130] }, { index: 0.5, rgb: [255, 63, 74] }, { index: 0.63, rgb: [255, 123, 0] }, { index: 0.75, rgb: [234, 176, 0] }, { index: 0.88, rgb: [190, 228, 0] }, { index: 1, rgb: [147, 255, 0] }], cool: [{ index: 0, rgb: [125, 0, 179] }, { index: 0.13, rgb: [116, 0, 218] }, { index: 0.25, rgb: [98, 74, 237] }, { index: 0.38, rgb: [68, 146, 231] }, { index: 0.5, rgb: [0, 204, 197] }, { index: 0.63, rgb: [0, 247, 146] }, { index: 0.75, rgb: [0, 255, 88] }, { index: 0.88, rgb: [40, 255, 8] }, { index: 1, rgb: [147, 255, 0] }], "rainbow-soft": [{ index: 0, rgb: [125, 0, 179] }, { index: 0.1, rgb: [199, 0, 180] }, { index: 0.2, rgb: [255, 0, 121] }, { index: 0.3, rgb: [255, 108, 0] }, { index: 0.4, rgb: [222, 194, 0] }, { index: 0.5, rgb: [150, 255, 0] }, { index: 0.6, rgb: [0, 255, 55] }, { index: 0.7, rgb: [0, 246, 150] }, { index: 0.8, rgb: [50, 167, 222] }, { index: 0.9, rgb: [103, 51, 235] }, { index: 1, rgb: [124, 0, 186] }], bathymetry: [{ index: 0, rgb: [40, 26, 44] }, { index: 0.13, rgb: [59, 49, 90] }, { index: 0.25, rgb: [64, 76, 139] }, { index: 0.38, rgb: [63, 110, 151] }, { index: 0.5, rgb: [72, 142, 158] }, { index: 0.63, rgb: [85, 174, 163] }, { index: 0.75, rgb: [120, 206, 163] }, { index: 0.88, rgb: [187, 230, 172] }, { index: 1, rgb: [253, 254, 204] }], cdom: [{ index: 0, rgb: [47, 15, 62] }, { index: 0.13, rgb: [87, 23, 86] }, { index: 0.25, rgb: [130, 28, 99] }, { index: 0.38, rgb: [171, 41, 96] }, { index: 0.5, rgb: [206, 67, 86] }, { index: 0.63, rgb: [230, 106, 84] }, { index: 0.75, rgb: [242, 149, 103] }, { index: 0.88, rgb: [249, 193, 135] }, { index: 1, rgb: [254, 237, 176] }], chlorophyll: [{ index: 0, rgb: [18, 36, 20] }, { index: 0.13, rgb: [25, 63, 41] }, { index: 0.25, rgb: [24, 91, 59] }, { index: 0.38, rgb: [13, 119, 72] }, { index: 0.5, rgb: [18, 148, 80] }, { index: 0.63, rgb: [80, 173, 89] }, { index: 0.75, rgb: [132, 196, 122] }, { index: 0.88, rgb: [175, 221, 162] }, { index: 1, rgb: [215, 249, 208] }], density: [{ index: 0, rgb: [54, 14, 36] }, { index: 0.13, rgb: [89, 23, 80] }, { index: 0.25, rgb: [110, 45, 132] }, { index: 0.38, rgb: [120, 77, 178] }, { index: 0.5, rgb: [120, 113, 213] }, { index: 0.63, rgb: [115, 151, 228] }, { index: 0.75, rgb: [134, 185, 227] }, { index: 0.88, rgb: [177, 214, 227] }, { index: 1, rgb: [230, 241, 241] }], "freesurface-blue": [{ index: 0, rgb: [30, 4, 110] }, { index: 0.13, rgb: [47, 14, 176] }, { index: 0.25, rgb: [41, 45, 236] }, { index: 0.38, rgb: [25, 99, 212] }, { index: 0.5, rgb: [68, 131, 200] }, { index: 0.63, rgb: [114, 156, 197] }, { index: 0.75, rgb: [157, 181, 203] }, { index: 0.88, rgb: [200, 208, 216] }, { index: 1, rgb: [241, 237, 236] }], "freesurface-red": [{ index: 0, rgb: [60, 9, 18] }, { index: 0.13, rgb: [100, 17, 27] }, { index: 0.25, rgb: [142, 20, 29] }, { index: 0.38, rgb: [177, 43, 27] }, { index: 0.5, rgb: [192, 87, 63] }, { index: 0.63, rgb: [205, 125, 105] }, { index: 0.75, rgb: [216, 162, 148] }, { index: 0.88, rgb: [227, 199, 193] }, { index: 1, rgb: [241, 237, 236] }], oxygen: [{ index: 0, rgb: [64, 5, 5] }, { index: 0.13, rgb: [106, 6, 15] }, { index: 0.25, rgb: [144, 26, 7] }, { index: 0.38, rgb: [168, 64, 3] }, { index: 0.5, rgb: [188, 100, 4] }, { index: 0.63, rgb: [206, 136, 11] }, { index: 0.75, rgb: [220, 174, 25] }, { index: 0.88, rgb: [231, 215, 44] }, { index: 1, rgb: [248, 254, 105] }], par: [{ index: 0, rgb: [51, 20, 24] }, { index: 0.13, rgb: [90, 32, 35] }, { index: 0.25, rgb: [129, 44, 34] }, { index: 0.38, rgb: [159, 68, 25] }, { index: 0.5, rgb: [182, 99, 19] }, { index: 0.63, rgb: [199, 134, 22] }, { index: 0.75, rgb: [212, 171, 35] }, { index: 0.88, rgb: [221, 210, 54] }, { index: 1, rgb: [225, 253, 75] }], phase: [{ index: 0, rgb: [145, 105, 18] }, { index: 0.13, rgb: [184, 71, 38] }, { index: 0.25, rgb: [186, 58, 115] }, { index: 0.38, rgb: [160, 71, 185] }, { index: 0.5, rgb: [110, 97, 218] }, { index: 0.63, rgb: [50, 123, 164] }, { index: 0.75, rgb: [31, 131, 110] }, { index: 0.88, rgb: [77, 129, 34] }, { index: 1, rgb: [145, 105, 18] }], salinity: [{ index: 0, rgb: [42, 24, 108] }, { index: 0.13, rgb: [33, 50, 162] }, { index: 0.25, rgb: [15, 90, 145] }, { index: 0.38, rgb: [40, 118, 137] }, { index: 0.5, rgb: [59, 146, 135] }, { index: 0.63, rgb: [79, 175, 126] }, { index: 0.75, rgb: [120, 203, 104] }, { index: 0.88, rgb: [193, 221, 100] }, { index: 1, rgb: [253, 239, 154] }], temperature: [{ index: 0, rgb: [4, 35, 51] }, { index: 0.13, rgb: [23, 51, 122] }, { index: 0.25, rgb: [85, 59, 157] }, { index: 0.38, rgb: [129, 79, 143] }, { index: 0.5, rgb: [175, 95, 130] }, { index: 0.63, rgb: [222, 112, 101] }, { index: 0.75, rgb: [249, 146, 66] }, { index: 0.88, rgb: [249, 196, 65] }, { index: 1, rgb: [232, 250, 91] }], turbidity: [{ index: 0, rgb: [34, 31, 27] }, { index: 0.13, rgb: [65, 50, 41] }, { index: 0.25, rgb: [98, 69, 52] }, { index: 0.38, rgb: [131, 89, 57] }, { index: 0.5, rgb: [161, 112, 59] }, { index: 0.63, rgb: [185, 140, 66] }, { index: 0.75, rgb: [202, 174, 88] }, { index: 0.88, rgb: [216, 209, 126] }, { index: 1, rgb: [233, 246, 171] }], "velocity-blue": [{ index: 0, rgb: [17, 32, 64] }, { index: 0.13, rgb: [35, 52, 116] }, { index: 0.25, rgb: [29, 81, 156] }, { index: 0.38, rgb: [31, 113, 162] }, { index: 0.5, rgb: [50, 144, 169] }, { index: 0.63, rgb: [87, 173, 176] }, { index: 0.75, rgb: [149, 196, 189] }, { index: 0.88, rgb: [203, 221, 211] }, { index: 1, rgb: [254, 251, 230] }], "velocity-green": [{ index: 0, rgb: [23, 35, 19] }, { index: 0.13, rgb: [24, 64, 38] }, { index: 0.25, rgb: [11, 95, 45] }, { index: 0.38, rgb: [39, 123, 35] }, { index: 0.5, rgb: [95, 146, 12] }, { index: 0.63, rgb: [152, 165, 18] }, { index: 0.75, rgb: [201, 186, 69] }, { index: 0.88, rgb: [233, 216, 137] }, { index: 1, rgb: [255, 253, 205] }], cubehelix: [{ index: 0, rgb: [0, 0, 0] }, { index: 0.07, rgb: [22, 5, 59] }, { index: 0.13, rgb: [60, 4, 105] }, { index: 0.2, rgb: [109, 1, 135] }, { index: 0.27, rgb: [161, 0, 147] }, { index: 0.33, rgb: [210, 2, 142] }, { index: 0.4, rgb: [251, 11, 123] }, { index: 0.47, rgb: [255, 29, 97] }, { index: 0.53, rgb: [255, 54, 69] }, { index: 0.6, rgb: [255, 85, 46] }, { index: 0.67, rgb: [255, 120, 34] }, { index: 0.73, rgb: [255, 157, 37] }, { index: 0.8, rgb: [241, 191, 57] }, { index: 0.87, rgb: [224, 220, 93] }, { index: 0.93, rgb: [218, 241, 142] }, { index: 1, rgb: [227, 253, 198] }] };
+ }, 3711: function(i, a, o) {
+ i.exports = d;
+ var s = o(2640), l = o(781), u = { "2d": function(v, _, b) {
+ var p = v({ order: _, scalarArguments: 3, getters: b === "generic" ? [0] : void 0, phase: function(E, T, L, x) {
+ return E > x | 0;
+ }, vertex: function(E, T, L, x, C, M, g, P, A, z, O, U, G) {
+ var Z = (g << 0) + (P << 1) + (A << 2) + (z << 3) | 0;
+ if (!(Z === 0 || Z === 15)) switch (Z) {
+ case 0:
+ O.push([E - 0.5, T - 0.5]);
+ break;
+ case 1:
+ O.push([E - 0.25 - 0.25 * (x + L - 2 * G) / (L - x), T - 0.25 - 0.25 * (C + L - 2 * G) / (L - C)]);
+ break;
+ case 2:
+ O.push([E - 0.75 - 0.25 * (-x - L + 2 * G) / (x - L), T - 0.25 - 0.25 * (M + x - 2 * G) / (x - M)]);
+ break;
+ case 3:
+ O.push([E - 0.5, T - 0.5 - 0.5 * (C + L + M + x - 4 * G) / (L - C + x - M)]);
+ break;
+ case 4:
+ O.push([E - 0.25 - 0.25 * (M + C - 2 * G) / (C - M), T - 0.75 - 0.25 * (-C - L + 2 * G) / (C - L)]);
+ break;
+ case 5:
+ O.push([E - 0.5 - 0.5 * (x + L + M + C - 4 * G) / (L - x + C - M), T - 0.5]);
+ break;
+ case 6:
+ O.push([E - 0.5 - 0.25 * (-x - L + M + C) / (x - L + C - M), T - 0.5 - 0.25 * (-C - L + M + x) / (C - L + x - M)]);
+ break;
+ case 7:
+ O.push([E - 0.75 - 0.25 * (M + C - 2 * G) / (C - M), T - 0.75 - 0.25 * (M + x - 2 * G) / (x - M)]);
+ break;
+ case 8:
+ O.push([E - 0.75 - 0.25 * (-M - C + 2 * G) / (M - C), T - 0.75 - 0.25 * (-M - x + 2 * G) / (M - x)]);
+ break;
+ case 9:
+ O.push([E - 0.5 - 0.25 * (x + L + -M - C) / (L - x + M - C), T - 0.5 - 0.25 * (C + L + -M - x) / (L - C + M - x)]);
+ break;
+ case 10:
+ O.push([E - 0.5 - 0.5 * (-x - L + -M - C + 4 * G) / (x - L + M - C), T - 0.5]);
+ break;
+ case 11:
+ O.push([E - 0.25 - 0.25 * (-M - C + 2 * G) / (M - C), T - 0.75 - 0.25 * (C + L - 2 * G) / (L - C)]);
+ break;
+ case 12:
+ O.push([E - 0.5, T - 0.5 - 0.5 * (-C - L + -M - x + 4 * G) / (C - L + M - x)]);
+ break;
+ case 13:
+ O.push([E - 0.75 - 0.25 * (x + L - 2 * G) / (L - x), T - 0.25 - 0.25 * (-M - x + 2 * G) / (M - x)]);
+ break;
+ case 14:
+ O.push([E - 0.25 - 0.25 * (-x - L + 2 * G) / (x - L), T - 0.25 - 0.25 * (-C - L + 2 * G) / (C - L)]);
+ break;
+ case 15:
+ O.push([E - 0.5, T - 0.5]);
+ break;
+ }
+ }, cell: function(E, T, L, x, C, M, g, P, A) {
+ C ? P.push([E, T]) : P.push([T, E]);
+ } });
+ return function(k, E) {
+ var T = [], L = [];
+ return p(k, T, L, E), { positions: T, cells: L };
+ };
+ } };
+ function c(v, _) {
+ var b = v.length + "d", p = u[b];
+ if (p) return p(s, v, _);
+ }
+ function f(v, _) {
+ for (var b = l(v, _), p = b.length, k = new Array(p), E = new Array(p), T = 0; T < p; ++T) k[T] = [b[T]], E[T] = [T];
+ return { positions: k, cells: E };
+ }
+ var h = {};
+ function d(v, k) {
+ if (v.dimension <= 0) return { positions: [], cells: [] };
+ if (v.dimension === 1) return f(v, k);
+ var b = v.order.join() + "-" + v.dtype, p = h[b], k = +k || 0;
+ return p || (p = h[b] = c(v.order, v.dtype)), p(v, k);
+ }
+ }, 3750: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] * s[0] + o[1] * s[1] + o[2] * s[2] + o[3] * s[3];
+ }
+ }, 3778: function(i, a) {
+ a.read = function(o, s, l, u, c) {
+ var f, h, d = c * 8 - u - 1, v = (1 << d) - 1, _ = v >> 1, b = -7, p = l ? c - 1 : 0, k = l ? -1 : 1, E = o[s + p];
+ for (p += k, f = E & (1 << -b) - 1, E >>= -b, b += d; b > 0; f = f * 256 + o[s + p], p += k, b -= 8) ;
+ for (h = f & (1 << -b) - 1, f >>= -b, b += u; b > 0; h = h * 256 + o[s + p], p += k, b -= 8) ;
+ if (f === 0) f = 1 - _;
+ else {
+ if (f === v) return h ? NaN : (E ? -1 : 1) * (1 / 0);
+ h = h + Math.pow(2, u), f = f - _;
+ }
+ return (E ? -1 : 1) * h * Math.pow(2, f - u);
+ }, a.write = function(o, s, l, u, c, f) {
+ var h, d, v, _ = f * 8 - c - 1, b = (1 << _) - 1, p = b >> 1, k = c === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, E = u ? 0 : f - 1, T = u ? 1 : -1, L = s < 0 || s === 0 && 1 / s < 0 ? 1 : 0;
+ for (s = Math.abs(s), isNaN(s) || s === 1 / 0 ? (d = isNaN(s) ? 1 : 0, h = b) : (h = Math.floor(Math.log(s) / Math.LN2), s * (v = Math.pow(2, -h)) < 1 && (h--, v *= 2), h + p >= 1 ? s += k / v : s += k * Math.pow(2, 1 - p), s * v >= 2 && (h++, v /= 2), h + p >= b ? (d = 0, h = b) : h + p >= 1 ? (d = (s * v - 1) * Math.pow(2, c), h = h + p) : (d = s * Math.pow(2, p - 1) * Math.pow(2, c), h = 0)); c >= 8; o[l + E] = d & 255, E += T, d /= 256, c -= 8) ;
+ for (h = h << c | d, _ += c; _ > 0; o[l + E] = h & 255, E += T, h /= 256, _ -= 8) ;
+ o[l + E - T] |= L * 128;
+ };
+ }, 3788: function(i, a, o) {
+ var s = o(8507), l = o(2419);
+ i.exports = u;
+ function u(c, f) {
+ return s(c, f) || l(c) - l(f);
+ }
+ }, 3837: function(i, a, o) {
+ i.exports = O;
+ var s = o(4935), l = o(501), u = o(5304), c = o(6429), f = o(6444), h = new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), d = ArrayBuffer, v = DataView;
+ function _(U) {
+ return d.isView(U) && !(U instanceof v);
+ }
+ function b(U) {
+ return Array.isArray(U) || _(U);
+ }
+ function p(U, G) {
+ return U[0] = G[0], U[1] = G[1], U[2] = G[2], U;
+ }
+ function k(U) {
+ this.gl = U, this.pixelRatio = 1, this.bounds = [[-10, -10, -10], [10, 10, 10]], this.ticks = [[], [], []], this.autoTicks = true, this.tickSpacing = [1, 1, 1], this.tickEnable = [true, true, true], this.tickFont = ["sans-serif", "sans-serif", "sans-serif"], this.tickFontStyle = ["normal", "normal", "normal"], this.tickFontWeight = ["normal", "normal", "normal"], this.tickFontVariant = ["normal", "normal", "normal"], this.tickSize = [12, 12, 12], this.tickAngle = [0, 0, 0], this.tickAlign = ["auto", "auto", "auto"], this.tickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.tickPad = [10, 10, 10], this.lastCubeProps = { cubeEdges: [0, 0, 0], axis: [0, 0, 0] }, this.labels = ["x", "y", "z"], this.labelEnable = [true, true, true], this.labelFont = ["sans-serif", "sans-serif", "sans-serif"], this.labelFontStyle = ["normal", "normal", "normal"], this.labelFontWeight = ["normal", "normal", "normal"], this.labelFontVariant = ["normal", "normal", "normal"], this.labelSize = [20, 20, 20], this.labelAngle = [0, 0, 0], this.labelAlign = ["auto", "auto", "auto"], this.labelColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.labelPad = [10, 10, 10], this.lineEnable = [true, true, true], this.lineMirror = [false, false, false], this.lineWidth = [1, 1, 1], this.lineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.lineTickEnable = [true, true, true], this.lineTickMirror = [false, false, false], this.lineTickLength = [0, 0, 0], this.lineTickWidth = [1, 1, 1], this.lineTickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.gridEnable = [true, true, true], this.gridWidth = [1, 1, 1], this.gridColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.zeroEnable = [true, true, true], this.zeroLineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.zeroLineWidth = [2, 2, 2], this.backgroundEnable = [false, false, false], this.backgroundColor = [[0.8, 0.8, 0.8, 0.5], [0.8, 0.8, 0.8, 0.5], [0.8, 0.8, 0.8, 0.5]], this._firstInit = true, this._text = null, this._lines = null, this._background = u(U);
+ }
+ var E = k.prototype;
+ E.update = function(U) {
+ U = U || {};
+ function G(Ae, Be, Pe) {
+ if (Pe in U) {
+ var me = U[Pe], De = this[Pe], ce;
+ (Ae ? b(me) && b(me[0]) : b(me)) ? this[Pe] = ce = [Be(me[0]), Be(me[1]), Be(me[2])] : this[Pe] = ce = [Be(me), Be(me), Be(me)];
+ for (var je = 0; je < 3; ++je) if (ce[je] !== De[je]) return true;
+ }
+ return false;
+ }
+ var Z = G.bind(this, false, Number), j = G.bind(this, false, Boolean), N = G.bind(this, false, String), H = G.bind(this, true, function(Ae) {
+ if (b(Ae)) {
+ if (Ae.length === 3) return [+Ae[0], +Ae[1], +Ae[2], 1];
+ if (Ae.length === 4) return [+Ae[0], +Ae[1], +Ae[2], +Ae[3]];
+ }
+ return [0, 0, 0, 1];
+ }), re, oe = false, _e = false;
+ if ("bounds" in U) for (var Ce = U.bounds, Le = 0; Le < 2; ++Le) for (var ge = 0; ge < 3; ++ge) Ce[Le][ge] !== this.bounds[Le][ge] && (_e = true), this.bounds[Le][ge] = Ce[Le][ge];
+ if ("ticks" in U) {
+ re = U.ticks, oe = true, this.autoTicks = false;
+ for (var Le = 0; Le < 3; ++Le) this.tickSpacing[Le] = 0;
+ } else Z("tickSpacing") && (this.autoTicks = true, _e = true);
+ if (this._firstInit && ("ticks" in U || "tickSpacing" in U || (this.autoTicks = true), _e = true, oe = true, this._firstInit = false), _e && this.autoTicks && (re = f.create(this.bounds, this.tickSpacing), oe = true), oe) {
+ for (var Le = 0; Le < 3; ++Le) re[Le].sort(function(Be, Pe) {
+ return Be.x - Pe.x;
+ });
+ f.equal(re, this.ticks) ? oe = false : this.ticks = re;
+ }
+ j("tickEnable"), N("tickFont") && (oe = true), N("tickFontStyle") && (oe = true), N("tickFontWeight") && (oe = true), N("tickFontVariant") && (oe = true), Z("tickSize"), Z("tickAngle"), Z("tickPad"), H("tickColor");
+ var ie = N("labels");
+ N("labelFont") && (ie = true), N("labelFontStyle") && (ie = true), N("labelFontWeight") && (ie = true), N("labelFontVariant") && (ie = true), j("labelEnable"), Z("labelSize"), Z("labelPad"), H("labelColor"), j("lineEnable"), j("lineMirror"), Z("lineWidth"), H("lineColor"), j("lineTickEnable"), j("lineTickMirror"), Z("lineTickLength"), Z("lineTickWidth"), H("lineTickColor"), j("gridEnable"), Z("gridWidth"), H("gridColor"), j("zeroEnable"), H("zeroLineColor"), Z("zeroLineWidth"), j("backgroundEnable"), H("backgroundColor");
+ var Se = [{ family: this.labelFont[0], style: this.labelFontStyle[0], weight: this.labelFontWeight[0], variant: this.labelFontVariant[0] }, { family: this.labelFont[1], style: this.labelFontStyle[1], weight: this.labelFontWeight[1], variant: this.labelFontVariant[1] }, { family: this.labelFont[2], style: this.labelFontStyle[2], weight: this.labelFontWeight[2], variant: this.labelFontVariant[2] }], Ee = [{ family: this.tickFont[0], style: this.tickFontStyle[0], weight: this.tickFontWeight[0], variant: this.tickFontVariant[0] }, { family: this.tickFont[1], style: this.tickFontStyle[1], weight: this.tickFontWeight[1], variant: this.tickFontVariant[1] }, { family: this.tickFont[2], style: this.tickFontStyle[2], weight: this.tickFontWeight[2], variant: this.tickFontVariant[2] }];
+ this._text ? this._text && (ie || oe) && this._text.update(this.bounds, this.labels, Se, this.ticks, Ee) : this._text = s(this.gl, this.bounds, this.labels, Se, this.ticks, Ee), this._lines && oe && (this._lines.dispose(), this._lines = null), this._lines || (this._lines = l(this.gl, this.bounds, this.ticks));
+ };
+ function T() {
+ this.primalOffset = [0, 0, 0], this.primalMinor = [0, 0, 0], this.mirrorOffset = [0, 0, 0], this.mirrorMinor = [0, 0, 0];
+ }
+ var L = [new T(), new T(), new T()];
+ function x(U, G, Z, j, N) {
+ for (var H = U.primalOffset, re = U.primalMinor, oe = U.mirrorOffset, _e = U.mirrorMinor, Ce = j[G], Le = 0; Le < 3; ++Le) if (G !== Le) {
+ var ge = H, ie = oe, Se = re, Ee = _e;
+ Ce & 1 << Le && (ge = oe, ie = H, Se = _e, Ee = re), ge[Le] = Z[0][Le], ie[Le] = Z[1][Le], N[Le] > 0 ? (Se[Le] = -1, Ee[Le] = 0) : (Se[Le] = 0, Ee[Le] = 1);
+ }
+ }
+ var C = [0, 0, 0], M = { model: h, view: h, projection: h, _ortho: false };
+ E.isOpaque = function() {
+ return true;
+ }, E.isTransparent = function() {
+ return false;
+ }, E.drawTransparent = function(U) {
+ };
+ var g = 0, P = [0, 0, 0], A = [0, 0, 0], z = [0, 0, 0];
+ E.draw = function(U) {
+ U = U || M;
+ for (var Pe = this.gl, G = U.model || h, Z = U.view || h, j = U.projection || h, N = this.bounds, H = U._ortho || false, re = c(G, Z, j, N, H), oe = re.cubeEdges, _e = re.axis, Ce = Z[12], Le = Z[13], ge = Z[14], ie = Z[15], Se = H ? 2 : 1, Ee = Se * this.pixelRatio * (j[3] * Ce + j[7] * Le + j[11] * ge + j[15] * ie) / Pe.drawingBufferHeight, Ae = 0; Ae < 3; ++Ae) this.lastCubeProps.cubeEdges[Ae] = oe[Ae], this.lastCubeProps.axis[Ae] = _e[Ae];
+ for (var Be = L, Ae = 0; Ae < 3; ++Ae) x(L[Ae], Ae, this.bounds, oe, _e);
+ for (var Pe = this.gl, me = C, Ae = 0; Ae < 3; ++Ae) this.backgroundEnable[Ae] ? me[Ae] = _e[Ae] : me[Ae] = 0;
+ this._background.draw(G, Z, j, N, me, this.backgroundColor), this._lines.bind(G, Z, j, this);
+ for (var Ae = 0; Ae < 3; ++Ae) {
+ var De = [0, 0, 0];
+ _e[Ae] > 0 ? De[Ae] = N[1][Ae] : De[Ae] = N[0][Ae];
+ for (var ce = 0; ce < 2; ++ce) {
+ var je = (Ae + 1 + ce) % 3, lt = (Ae + 1 + (ce ^ 1)) % 3;
+ this.gridEnable[je] && this._lines.drawGrid(je, lt, this.bounds, De, this.gridColor[je], this.gridWidth[je] * this.pixelRatio);
+ }
+ for (var ce = 0; ce < 2; ++ce) {
+ var je = (Ae + 1 + ce) % 3, lt = (Ae + 1 + (ce ^ 1)) % 3;
+ this.zeroEnable[lt] && Math.min(N[0][lt], N[1][lt]) <= 0 && Math.max(N[0][lt], N[1][lt]) >= 0 && this._lines.drawZero(je, lt, this.bounds, De, this.zeroLineColor[lt], this.zeroLineWidth[lt] * this.pixelRatio);
+ }
+ }
+ for (var Ae = 0; Ae < 3; ++Ae) {
+ this.lineEnable[Ae] && this._lines.drawAxisLine(Ae, this.bounds, Be[Ae].primalOffset, this.lineColor[Ae], this.lineWidth[Ae] * this.pixelRatio), this.lineMirror[Ae] && this._lines.drawAxisLine(Ae, this.bounds, Be[Ae].mirrorOffset, this.lineColor[Ae], this.lineWidth[Ae] * this.pixelRatio);
+ for (var pt = p(P, Be[Ae].primalMinor), Vt = p(A, Be[Ae].mirrorMinor), ot = this.lineTickLength, ce = 0; ce < 3; ++ce) {
+ var ut = Ee / G[5 * ce];
+ pt[ce] *= ot[ce] * ut, Vt[ce] *= ot[ce] * ut;
+ }
+ this.lineTickEnable[Ae] && this._lines.drawAxisTicks(Ae, Be[Ae].primalOffset, pt, this.lineTickColor[Ae], this.lineTickWidth[Ae] * this.pixelRatio), this.lineTickMirror[Ae] && this._lines.drawAxisTicks(Ae, Be[Ae].mirrorOffset, Vt, this.lineTickColor[Ae], this.lineTickWidth[Ae] * this.pixelRatio);
+ }
+ this._lines.unbind(), this._text.bind(G, Z, j, this.pixelRatio);
+ var Wt, Nt = 0.5, $t, sr;
+ function Tr(_t) {
+ sr = [0, 0, 0], sr[_t] = 1;
+ }
+ function fr(_t, It, mt) {
+ var er = (_t + 1) % 3, lr = (_t + 2) % 3, wr = It[er], Lr = It[lr], ti = mt[er], Br = mt[lr];
+ if (wr > 0 && Br > 0) {
+ Tr(er);
+ return;
+ } else if (wr > 0 && Br < 0) {
+ Tr(er);
+ return;
+ } else if (wr < 0 && Br > 0) {
+ Tr(er);
+ return;
+ } else if (wr < 0 && Br < 0) {
+ Tr(er);
+ return;
+ } else if (Lr > 0 && ti > 0) {
+ Tr(lr);
+ return;
+ } else if (Lr > 0 && ti < 0) {
+ Tr(lr);
+ return;
+ } else if (Lr < 0 && ti > 0) {
+ Tr(lr);
+ return;
+ } else if (Lr < 0 && ti < 0) {
+ Tr(lr);
+ return;
+ }
+ }
+ for (var Ae = 0; Ae < 3; ++Ae) {
+ for (var $e = Be[Ae].primalMinor, St = Be[Ae].mirrorMinor, Qt = p(z, Be[Ae].primalOffset), ce = 0; ce < 3; ++ce) this.lineTickEnable[Ae] && (Qt[ce] += Ee * $e[ce] * Math.max(this.lineTickLength[ce], 0) / G[5 * ce]);
+ var Gt = [0, 0, 0];
+ if (Gt[Ae] = 1, this.tickEnable[Ae]) {
+ this.tickAngle[Ae] === -3600 ? (this.tickAngle[Ae] = 0, this.tickAlign[Ae] = "auto") : this.tickAlign[Ae] = -1, $t = 1, Wt = [this.tickAlign[Ae], Nt, $t], Wt[0] === "auto" ? Wt[0] = g : Wt[0] = parseInt("" + Wt[0]), sr = [0, 0, 0], fr(Ae, $e, St);
+ for (var ce = 0; ce < 3; ++ce) Qt[ce] += Ee * $e[ce] * this.tickPad[ce] / G[5 * ce];
+ this._text.drawTicks(Ae, this.tickSize[Ae], this.tickAngle[Ae], Qt, this.tickColor[Ae], Gt, sr, Wt);
+ }
+ if (this.labelEnable[Ae]) {
+ $t = 0, sr = [0, 0, 0], this.labels[Ae].length > 4 && (Tr(Ae), $t = 1), Wt = [this.labelAlign[Ae], Nt, $t], Wt[0] === "auto" ? Wt[0] = g : Wt[0] = parseInt("" + Wt[0]);
+ for (var ce = 0; ce < 3; ++ce) Qt[ce] += Ee * $e[ce] * this.labelPad[ce] / G[5 * ce];
+ Qt[Ae] += 0.5 * (N[0][Ae] + N[1][Ae]), this._text.drawLabel(Ae, this.labelSize[Ae], this.labelAngle[Ae], Qt, this.labelColor[Ae], [0, 0, 0], sr, Wt);
+ }
+ }
+ this._text.unbind();
+ }, E.dispose = function() {
+ this._text.dispose(), this._lines.dispose(), this._background.dispose(), this._lines = null, this._text = null, this._background = null, this.gl = null;
+ };
+ function O(U, G) {
+ var Z = new k(U);
+ return Z.update(G), Z;
+ }
+ }, 3840: function(i) {
+ i.exports = L;
+ var a = 0, o = 1;
+ function s(x, C, M, g, P, A) {
+ this._color = x, this.key = C, this.value = M, this.left = g, this.right = P, this._count = A;
+ }
+ function l(x) {
+ return new s(x._color, x.key, x.value, x.left, x.right, x._count);
+ }
+ function u(x, C) {
+ return new s(x, C.key, C.value, C.left, C.right, C._count);
+ }
+ function c(x) {
+ x._count = 1 + (x.left ? x.left._count : 0) + (x.right ? x.right._count : 0);
+ }
+ function f(x, C) {
+ this._compare = x, this.root = C;
+ }
+ var h = f.prototype;
+ Object.defineProperty(h, "keys", { get: function() {
+ var x = [];
+ return this.forEach(function(C, M) {
+ x.push(C);
+ }), x;
+ } }), Object.defineProperty(h, "values", { get: function() {
+ var x = [];
+ return this.forEach(function(C, M) {
+ x.push(M);
+ }), x;
+ } }), Object.defineProperty(h, "length", { get: function() {
+ return this.root ? this.root._count : 0;
+ } }), h.insert = function(x, C) {
+ for (var M = this._compare, g = this.root, P = [], A = []; g; ) {
+ var z = M(x, g.key);
+ P.push(g), A.push(z), z <= 0 ? g = g.left : g = g.right;
+ }
+ P.push(new s(a, x, C, null, null, 1));
+ for (var O = P.length - 2; O >= 0; --O) {
+ var g = P[O];
+ A[O] <= 0 ? P[O] = new s(g._color, g.key, g.value, P[O + 1], g.right, g._count + 1) : P[O] = new s(g._color, g.key, g.value, g.left, P[O + 1], g._count + 1);
+ }
+ for (var O = P.length - 1; O > 1; --O) {
+ var U = P[O - 1], g = P[O];
+ if (U._color === o || g._color === o) break;
+ var G = P[O - 2];
+ if (G.left === U) if (U.left === g) {
+ var Z = G.right;
+ if (Z && Z._color === a) U._color = o, G.right = u(o, Z), G._color = a, O -= 1;
+ else {
+ if (G._color = a, G.left = U.right, U._color = o, U.right = G, P[O - 2] = U, P[O - 1] = g, c(G), c(U), O >= 3) {
+ var j = P[O - 3];
+ j.left === G ? j.left = U : j.right = U;
+ }
+ break;
+ }
+ } else {
+ var Z = G.right;
+ if (Z && Z._color === a) U._color = o, G.right = u(o, Z), G._color = a, O -= 1;
+ else {
+ if (U.right = g.left, G._color = a, G.left = g.right, g._color = o, g.left = U, g.right = G, P[O - 2] = g, P[O - 1] = U, c(G), c(U), c(g), O >= 3) {
+ var j = P[O - 3];
+ j.left === G ? j.left = g : j.right = g;
+ }
+ break;
+ }
+ }
+ else if (U.right === g) {
+ var Z = G.left;
+ if (Z && Z._color === a) U._color = o, G.left = u(o, Z), G._color = a, O -= 1;
+ else {
+ if (G._color = a, G.right = U.left, U._color = o, U.left = G, P[O - 2] = U, P[O - 1] = g, c(G), c(U), O >= 3) {
+ var j = P[O - 3];
+ j.right === G ? j.right = U : j.left = U;
+ }
+ break;
+ }
+ } else {
+ var Z = G.left;
+ if (Z && Z._color === a) U._color = o, G.left = u(o, Z), G._color = a, O -= 1;
+ else {
+ if (U.left = g.right, G._color = a, G.right = g.left, g._color = o, g.right = U, g.left = G, P[O - 2] = g, P[O - 1] = U, c(G), c(U), c(g), O >= 3) {
+ var j = P[O - 3];
+ j.right === G ? j.right = g : j.left = g;
+ }
+ break;
+ }
+ }
+ }
+ return P[0]._color = o, new f(M, P[0]);
+ };
+ function d(x, C) {
+ if (C.left) {
+ var M = d(x, C.left);
+ if (M) return M;
+ }
+ var M = x(C.key, C.value);
+ if (M) return M;
+ if (C.right) return d(x, C.right);
+ }
+ function v(x, C, M, g) {
+ var P = C(x, g.key);
+ if (P <= 0) {
+ if (g.left) {
+ var A = v(x, C, M, g.left);
+ if (A) return A;
+ }
+ var A = M(g.key, g.value);
+ if (A) return A;
+ }
+ if (g.right) return v(x, C, M, g.right);
+ }
+ function _(x, C, M, g, P) {
+ var A = M(x, P.key), z = M(C, P.key), O;
+ if (A <= 0 && (P.left && (O = _(x, C, M, g, P.left), O) || z > 0 && (O = g(P.key, P.value), O))) return O;
+ if (z > 0 && P.right) return _(x, C, M, g, P.right);
+ }
+ h.forEach = function(C, M, g) {
+ if (this.root) switch (arguments.length) {
+ case 1:
+ return d(C, this.root);
+ case 2:
+ return v(M, this._compare, C, this.root);
+ case 3:
+ return this._compare(M, g) >= 0 ? void 0 : _(M, g, this._compare, C, this.root);
+ }
+ }, Object.defineProperty(h, "begin", { get: function() {
+ for (var x = [], C = this.root; C; ) x.push(C), C = C.left;
+ return new b(this, x);
+ } }), Object.defineProperty(h, "end", { get: function() {
+ for (var x = [], C = this.root; C; ) x.push(C), C = C.right;
+ return new b(this, x);
+ } }), h.at = function(x) {
+ if (x < 0) return new b(this, []);
+ for (var C = this.root, M = []; ; ) {
+ if (M.push(C), C.left) {
+ if (x < C.left._count) {
+ C = C.left;
+ continue;
+ }
+ x -= C.left._count;
+ }
+ if (!x) return new b(this, M);
+ if (x -= 1, C.right) {
+ if (x >= C.right._count) break;
+ C = C.right;
+ } else break;
+ }
+ return new b(this, []);
+ }, h.ge = function(x) {
+ for (var C = this._compare, M = this.root, g = [], P = 0; M; ) {
+ var A = C(x, M.key);
+ g.push(M), A <= 0 && (P = g.length), A <= 0 ? M = M.left : M = M.right;
+ }
+ return g.length = P, new b(this, g);
+ }, h.gt = function(x) {
+ for (var C = this._compare, M = this.root, g = [], P = 0; M; ) {
+ var A = C(x, M.key);
+ g.push(M), A < 0 && (P = g.length), A < 0 ? M = M.left : M = M.right;
+ }
+ return g.length = P, new b(this, g);
+ }, h.lt = function(x) {
+ for (var C = this._compare, M = this.root, g = [], P = 0; M; ) {
+ var A = C(x, M.key);
+ g.push(M), A > 0 && (P = g.length), A <= 0 ? M = M.left : M = M.right;
+ }
+ return g.length = P, new b(this, g);
+ }, h.le = function(x) {
+ for (var C = this._compare, M = this.root, g = [], P = 0; M; ) {
+ var A = C(x, M.key);
+ g.push(M), A >= 0 && (P = g.length), A < 0 ? M = M.left : M = M.right;
+ }
+ return g.length = P, new b(this, g);
+ }, h.find = function(x) {
+ for (var C = this._compare, M = this.root, g = []; M; ) {
+ var P = C(x, M.key);
+ if (g.push(M), P === 0) return new b(this, g);
+ P <= 0 ? M = M.left : M = M.right;
+ }
+ return new b(this, []);
+ }, h.remove = function(x) {
+ var C = this.find(x);
+ return C ? C.remove() : this;
+ }, h.get = function(x) {
+ for (var C = this._compare, M = this.root; M; ) {
+ var g = C(x, M.key);
+ if (g === 0) return M.value;
+ g <= 0 ? M = M.left : M = M.right;
+ }
+ };
+ function b(x, C) {
+ this.tree = x, this._stack = C;
+ }
+ var p = b.prototype;
+ Object.defineProperty(p, "valid", { get: function() {
+ return this._stack.length > 0;
+ } }), Object.defineProperty(p, "node", { get: function() {
+ return this._stack.length > 0 ? this._stack[this._stack.length - 1] : null;
+ }, enumerable: true }), p.clone = function() {
+ return new b(this.tree, this._stack.slice());
+ };
+ function k(x, C) {
+ x.key = C.key, x.value = C.value, x.left = C.left, x.right = C.right, x._color = C._color, x._count = C._count;
+ }
+ function E(x) {
+ for (var C, M, g, P, A = x.length - 1; A >= 0; --A) {
+ if (C = x[A], A === 0) {
+ C._color = o;
+ return;
+ }
+ if (M = x[A - 1], M.left === C) {
+ if (g = M.right, g.right && g.right._color === a) {
+ if (g = M.right = l(g), P = g.right = l(g.right), M.right = g.left, g.left = M, g.right = P, g._color = M._color, C._color = o, M._color = o, P._color = o, c(M), c(g), A > 1) {
+ var z = x[A - 2];
+ z.left === M ? z.left = g : z.right = g;
+ }
+ x[A - 1] = g;
+ return;
+ } else if (g.left && g.left._color === a) {
+ if (g = M.right = l(g), P = g.left = l(g.left), M.right = P.left, g.left = P.right, P.left = M, P.right = g, P._color = M._color, M._color = o, g._color = o, C._color = o, c(M), c(g), c(P), A > 1) {
+ var z = x[A - 2];
+ z.left === M ? z.left = P : z.right = P;
+ }
+ x[A - 1] = P;
+ return;
+ }
+ if (g._color === o) if (M._color === a) {
+ M._color = o, M.right = u(a, g);
+ return;
+ } else {
+ M.right = u(a, g);
+ continue;
+ }
+ else {
+ if (g = l(g), M.right = g.left, g.left = M, g._color = M._color, M._color = a, c(M), c(g), A > 1) {
+ var z = x[A - 2];
+ z.left === M ? z.left = g : z.right = g;
+ }
+ x[A - 1] = g, x[A] = M, A + 1 < x.length ? x[A + 1] = C : x.push(C), A = A + 2;
+ }
+ } else {
+ if (g = M.left, g.left && g.left._color === a) {
+ if (g = M.left = l(g), P = g.left = l(g.left), M.left = g.right, g.right = M, g.left = P, g._color = M._color, C._color = o, M._color = o, P._color = o, c(M), c(g), A > 1) {
+ var z = x[A - 2];
+ z.right === M ? z.right = g : z.left = g;
+ }
+ x[A - 1] = g;
+ return;
+ } else if (g.right && g.right._color === a) {
+ if (g = M.left = l(g), P = g.right = l(g.right), M.left = P.right, g.right = P.left, P.right = M, P.left = g, P._color = M._color, M._color = o, g._color = o, C._color = o, c(M), c(g), c(P), A > 1) {
+ var z = x[A - 2];
+ z.right === M ? z.right = P : z.left = P;
+ }
+ x[A - 1] = P;
+ return;
+ }
+ if (g._color === o) if (M._color === a) {
+ M._color = o, M.left = u(a, g);
+ return;
+ } else {
+ M.left = u(a, g);
+ continue;
+ }
+ else {
+ if (g = l(g), M.left = g.right, g.right = M, g._color = M._color, M._color = a, c(M), c(g), A > 1) {
+ var z = x[A - 2];
+ z.right === M ? z.right = g : z.left = g;
+ }
+ x[A - 1] = g, x[A] = M, A + 1 < x.length ? x[A + 1] = C : x.push(C), A = A + 2;
+ }
+ }
+ }
+ }
+ p.remove = function() {
+ var x = this._stack;
+ if (x.length === 0) return this.tree;
+ var C = new Array(x.length), M = x[x.length - 1];
+ C[C.length - 1] = new s(M._color, M.key, M.value, M.left, M.right, M._count);
+ for (var g = x.length - 2; g >= 0; --g) {
+ var M = x[g];
+ M.left === x[g + 1] ? C[g] = new s(M._color, M.key, M.value, C[g + 1], M.right, M._count) : C[g] = new s(M._color, M.key, M.value, M.left, C[g + 1], M._count);
+ }
+ if (M = C[C.length - 1], M.left && M.right) {
+ var P = C.length;
+ for (M = M.left; M.right; ) C.push(M), M = M.right;
+ var A = C[P - 1];
+ C.push(new s(M._color, A.key, A.value, M.left, M.right, M._count)), C[P - 1].key = M.key, C[P - 1].value = M.value;
+ for (var g = C.length - 2; g >= P; --g) M = C[g], C[g] = new s(M._color, M.key, M.value, M.left, C[g + 1], M._count);
+ C[P - 1].left = C[P];
+ }
+ if (M = C[C.length - 1], M._color === a) {
+ var z = C[C.length - 2];
+ z.left === M ? z.left = null : z.right === M && (z.right = null), C.pop();
+ for (var g = 0; g < C.length; ++g) C[g]._count--;
+ return new f(this.tree._compare, C[0]);
+ } else if (M.left || M.right) {
+ M.left ? k(M, M.left) : M.right && k(M, M.right), M._color = o;
+ for (var g = 0; g < C.length - 1; ++g) C[g]._count--;
+ return new f(this.tree._compare, C[0]);
+ } else {
+ if (C.length === 1) return new f(this.tree._compare, null);
+ for (var g = 0; g < C.length; ++g) C[g]._count--;
+ var O = C[C.length - 2];
+ E(C), O.left === M ? O.left = null : O.right = null;
+ }
+ return new f(this.tree._compare, C[0]);
+ }, Object.defineProperty(p, "key", { get: function() {
+ if (this._stack.length > 0) return this._stack[this._stack.length - 1].key;
+ }, enumerable: true }), Object.defineProperty(p, "value", { get: function() {
+ if (this._stack.length > 0) return this._stack[this._stack.length - 1].value;
+ }, enumerable: true }), Object.defineProperty(p, "index", { get: function() {
+ var x = 0, C = this._stack;
+ if (C.length === 0) {
+ var M = this.tree.root;
+ return M ? M._count : 0;
+ } else C[C.length - 1].left && (x = C[C.length - 1].left._count);
+ for (var g = C.length - 2; g >= 0; --g) C[g + 1] === C[g].right && (++x, C[g].left && (x += C[g].left._count));
+ return x;
+ }, enumerable: true }), p.next = function() {
+ var x = this._stack;
+ if (x.length !== 0) {
+ var C = x[x.length - 1];
+ if (C.right) for (C = C.right; C; ) x.push(C), C = C.left;
+ else for (x.pop(); x.length > 0 && x[x.length - 1].right === C; ) C = x[x.length - 1], x.pop();
+ }
+ }, Object.defineProperty(p, "hasNext", { get: function() {
+ var x = this._stack;
+ if (x.length === 0) return false;
+ if (x[x.length - 1].right) return true;
+ for (var C = x.length - 1; C > 0; --C) if (x[C - 1].left === x[C]) return true;
+ return false;
+ } }), p.update = function(x) {
+ var C = this._stack;
+ if (C.length === 0) throw new Error("Can't update empty node!");
+ var M = new Array(C.length), g = C[C.length - 1];
+ M[M.length - 1] = new s(g._color, g.key, x, g.left, g.right, g._count);
+ for (var P = C.length - 2; P >= 0; --P) g = C[P], g.left === C[P + 1] ? M[P] = new s(g._color, g.key, g.value, M[P + 1], g.right, g._count) : M[P] = new s(g._color, g.key, g.value, g.left, M[P + 1], g._count);
+ return new f(this.tree._compare, M[0]);
+ }, p.prev = function() {
+ var x = this._stack;
+ if (x.length !== 0) {
+ var C = x[x.length - 1];
+ if (C.left) for (C = C.left; C; ) x.push(C), C = C.right;
+ else for (x.pop(); x.length > 0 && x[x.length - 1].left === C; ) C = x[x.length - 1], x.pop();
+ }
+ }, Object.defineProperty(p, "hasPrev", { get: function() {
+ var x = this._stack;
+ if (x.length === 0) return false;
+ if (x[x.length - 1].left) return true;
+ for (var C = x.length - 1; C > 0; --C) if (x[C - 1].right === x[C]) return true;
+ return false;
+ } });
+ function T(x, C) {
+ return x < C ? -1 : x > C ? 1 : 0;
+ }
+ function L(x) {
+ return new f(x || T, null);
+ }
+ }, 3865: function(i, a, o) {
+ var s = o(869);
+ i.exports = l;
+ function l(u, c) {
+ return s(u[0].mul(c[1]).add(c[0].mul(u[1])), u[1].mul(c[1]));
+ }
+ }, 3952: function(i, a, o) {
+ i.exports = u;
+ var s = o(3250);
+ function l(c, f) {
+ for (var h = new Array(f + 1), d = 0; d < c.length; ++d) h[d] = c[d];
+ for (var d = 0; d <= c.length; ++d) {
+ for (var v = c.length; v <= f; ++v) {
+ for (var _ = new Array(f), b = 0; b < f; ++b) _[b] = Math.pow(v + 1 - d, b);
+ h[v] = _;
+ }
+ var p = s.apply(void 0, h);
+ if (p) return true;
+ }
+ return false;
+ }
+ function u(c) {
+ var f = c.length;
+ if (f === 0) return [];
+ if (f === 1) return [0];
+ for (var h = c[0].length, d = [c[0]], v = [0], _ = 1; _ < f; ++_) {
+ if (d.push(c[_]), !l(d, h)) {
+ d.pop();
+ continue;
+ }
+ if (v.push(_), v.length === h + 1) return v;
+ }
+ return v;
+ }
+ }, 3990: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = s[0], o[1] = s[1], o[2] = s[2], o;
+ }
+ }, 4008: function(i, a, o) {
+ i.exports = o(6690);
+ }, 4025: function(i, a, o) {
+ var s = o(2361), l = o(8828).countTrailingZeros;
+ i.exports = u;
+ function u(c) {
+ var f = l(s.lo(c));
+ if (f < 32) return f;
+ var h = l(s.hi(c));
+ return h > 20 ? 52 : h + 32;
+ }
+ }, 4040: function(i) {
+ i.exports = a;
+ function a(o, s, l, u, c, f, h) {
+ var d = 1 / (s - l), v = 1 / (u - c), _ = 1 / (f - h);
+ return o[0] = -2 * d, o[1] = 0, o[2] = 0, o[3] = 0, o[4] = 0, o[5] = -2 * v, o[6] = 0, o[7] = 0, o[8] = 0, o[9] = 0, o[10] = 2 * _, o[11] = 0, o[12] = (s + l) * d, o[13] = (c + u) * v, o[14] = (h + f) * _, o[15] = 1, o;
+ }
+ }, 4041: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s[0], c = s[1], f = s[2], h = l[0], d = l[1], v = l[2], _ = l[3], b = _ * u + d * f - v * c, p = _ * c + v * u - h * f, k = _ * f + h * c - d * u, E = -h * u - d * c - v * f;
+ return o[0] = b * _ + E * -h + p * -v - k * -d, o[1] = p * _ + E * -d + k * -h - b * -v, o[2] = k * _ + E * -v + b * -d - p * -h, o[3] = s[3], o;
+ }
+ }, 4081: function(i) {
+ i.exports = a;
+ function a(o, s, l, u, c, f, h, d, v, _) {
+ var b = s + f + _;
+ if (p > 0) {
+ var p = Math.sqrt(b + 1);
+ o[0] = 0.5 * (h - v) / p, o[1] = 0.5 * (d - u) / p, o[2] = 0.5 * (l - f) / p, o[3] = 0.5 * p;
+ } else {
+ var k = Math.max(s, f, _), p = Math.sqrt(2 * k - b + 1);
+ s >= k ? (o[0] = 0.5 * p, o[1] = 0.5 * (c + l) / p, o[2] = 0.5 * (d + u) / p, o[3] = 0.5 * (h - v) / p) : f >= k ? (o[0] = 0.5 * (l + c) / p, o[1] = 0.5 * p, o[2] = 0.5 * (v + h) / p, o[3] = 0.5 * (d - u) / p) : (o[0] = 0.5 * (u + d) / p, o[1] = 0.5 * (h + v) / p, o[2] = 0.5 * p, o[3] = 0.5 * (l - c) / p);
+ }
+ return o;
+ }
+ }, 4100: function(i, a, o) {
+ var s = o(4437), l = o(3837), u = o(5445), c = o(4449), f = o(3589), h = o(2260), d = o(7169), v = o(351), _ = o(4772), b = o(4040), p = o(799), k = o(9216)({ tablet: true, featureDetect: true });
+ i.exports = { createScene: C, createCamera: s };
+ function E() {
+ this.mouse = [-1, -1], this.screen = null, this.distance = 1 / 0, this.index = null, this.dataCoordinate = null, this.dataPosition = null, this.object = null, this.data = null;
+ }
+ function T(g, P) {
+ var A = null;
+ try {
+ A = g.getContext("webgl", P), A || (A = g.getContext("experimental-webgl", P));
+ } catch (z) {
+ return null;
+ }
+ return A;
+ }
+ function L(g) {
+ var P = Math.round(Math.log(Math.abs(g)) / Math.log(10));
+ if (P < 0) {
+ var A = Math.round(Math.pow(10, -P));
+ return Math.ceil(g * A) / A;
+ } else if (P > 0) {
+ var A = Math.round(Math.pow(10, P));
+ return Math.ceil(g / A) * A;
+ }
+ return Math.ceil(g);
+ }
+ function x(g) {
+ return typeof g == "boolean" ? g : true;
+ }
+ function C(g) {
+ g = g || {}, g.camera = g.camera || {};
+ var P = g.canvas;
+ if (!P) if (P = document.createElement("canvas"), g.container) {
+ var A = g.container;
+ A.appendChild(P);
+ } else document.body.appendChild(P);
+ var z = g.gl;
+ if (z || (g.glOptions && (k = !!g.glOptions.preserveDrawingBuffer), z = T(P, g.glOptions || { premultipliedAlpha: true, antialias: true, preserveDrawingBuffer: k })), !z) throw new Error("webgl not supported");
+ var O = g.bounds || [[-10, -10, -10], [10, 10, 10]], U = new E(), G = h(z, z.drawingBufferWidth, z.drawingBufferHeight, { preferFloat: !k }), Z = p(z), j = g.cameraObject && g.cameraObject._ortho === true || g.camera.projection && g.camera.projection.type === "orthographic" || false, N = { eye: g.camera.eye || [2, 0, 0], center: g.camera.center || [0, 0, 0], up: g.camera.up || [0, 1, 0], zoomMin: g.camera.zoomMax || 0.1, zoomMax: g.camera.zoomMin || 100, mode: g.camera.mode || "turntable", _ortho: j }, H = g.axes || {}, re = l(z, H);
+ re.enable = !H.disable;
+ var oe = g.spikes || {}, _e = c(z, oe), Ce = [], Le = [], ge = [], ie = [], Se = true, Pe = true, Ee = new Array(16), Ae = new Array(16), Be = { view: null, projection: Ee, model: Ae, _ortho: false }, Pe = true, me = [z.drawingBufferWidth, z.drawingBufferHeight], De = g.cameraObject || s(P, N), ce = { gl: z, contextLost: false, pixelRatio: g.pixelRatio || 1, canvas: P, selection: U, camera: De, axes: re, axesPixels: null, spikes: _e, bounds: O, objects: Ce, shape: me, aspect: g.aspectRatio || [1, 1, 1], pickRadius: g.pickRadius || 10, zNear: g.zNear || 0.01, zFar: g.zFar || 1e3, fovy: g.fovy || Math.PI / 4, clearColor: g.clearColor || [0, 0, 0, 0], autoResize: x(g.autoResize), autoBounds: x(g.autoBounds), autoScale: !!g.autoScale, autoCenter: x(g.autoCenter), clipToBounds: x(g.clipToBounds), snapToData: !!g.snapToData, onselect: g.onselect || null, onrender: g.onrender || null, onclick: g.onclick || null, cameraParams: Be, oncontextloss: null, mouseListener: null, _stopped: false, getAspectratio: function() {
+ return { x: this.aspect[0], y: this.aspect[1], z: this.aspect[2] };
+ }, setAspectratio: function(sr) {
+ this.aspect[0] = sr.x, this.aspect[1] = sr.y, this.aspect[2] = sr.z, Pe = true;
+ }, setBounds: function(sr, Tr) {
+ this.bounds[0][sr] = Tr.min, this.bounds[1][sr] = Tr.max;
+ }, setClearColor: function(sr) {
+ this.clearColor = sr;
+ }, clearRGBA: function() {
+ this.gl.clearColor(this.clearColor[0], this.clearColor[1], this.clearColor[2], this.clearColor[3]), this.gl.clear(this.gl.COLOR_BUFFER_BIT | this.gl.DEPTH_BUFFER_BIT);
+ } }, je = [z.drawingBufferWidth / ce.pixelRatio | 0, z.drawingBufferHeight / ce.pixelRatio | 0];
+ function lt() {
+ if (!ce._stopped && ce.autoResize) {
+ var sr = P.parentNode, Tr = 1, fr = 1;
+ sr && sr !== document.body ? (Tr = sr.clientWidth, fr = sr.clientHeight) : (Tr = window.innerWidth, fr = window.innerHeight);
+ var $e = Math.ceil(Tr * ce.pixelRatio) | 0, St = Math.ceil(fr * ce.pixelRatio) | 0;
+ if ($e !== P.width || St !== P.height) {
+ P.width = $e, P.height = St;
+ var Qt = P.style;
+ Qt.position = Qt.position || "absolute", Qt.left = "0px", Qt.top = "0px", Qt.width = Tr + "px", Qt.height = fr + "px", Se = true;
+ }
+ }
+ }
+ ce.autoResize && lt(), window.addEventListener("resize", lt);
+ function pt() {
+ for (var sr = Ce.length, Tr = ie.length, fr = 0; fr < Tr; ++fr) ge[fr] = 0;
+ e: for (var fr = 0; fr < sr; ++fr) {
+ var $e = Ce[fr], St = $e.pickSlots;
+ if (!St) {
+ Le[fr] = -1;
+ continue;
+ }
+ for (var Qt = 0; Qt < Tr; ++Qt) if (ge[Qt] + St < 255) {
+ Le[fr] = Qt, $e.setPickBase(ge[Qt] + 1), ge[Qt] += St;
+ continue e;
+ }
+ var Gt = f(z, me);
+ Le[fr] = Tr, ie.push(Gt), ge.push(St), $e.setPickBase(1), Tr += 1;
+ }
+ for (; Tr > 0 && ge[Tr - 1] === 0; ) ge.pop(), ie.pop().dispose();
+ }
+ ce.update = function(sr) {
+ ce._stopped || (Se = true, Pe = true);
+ }, ce.add = function(sr) {
+ ce._stopped || (sr.axes = re, Ce.push(sr), Le.push(-1), Se = true, Pe = true, pt());
+ }, ce.remove = function(sr) {
+ if (!ce._stopped) {
+ var Tr = Ce.indexOf(sr);
+ Tr < 0 || (Ce.splice(Tr, 1), Le.pop(), Se = true, Pe = true, pt());
+ }
+ }, ce.dispose = function() {
+ if (!ce._stopped && (ce._stopped = true, window.removeEventListener("resize", lt), P.removeEventListener("webglcontextlost", Vt), ce.mouseListener.enabled = false, !ce.contextLost)) {
+ re.dispose(), _e.dispose();
+ for (var sr = 0; sr < Ce.length; ++sr) Ce[sr].dispose();
+ G.dispose();
+ for (var sr = 0; sr < ie.length; ++sr) ie[sr].dispose();
+ Z.dispose(), z = null, re = null, _e = null, Ce = [];
+ }
+ }, ce._mouseRotating = false, ce._prevButtons = 0, ce.enableMouseListeners = function() {
+ ce.mouseListener = v(P, function(sr, Tr, fr) {
+ if (!ce._stopped) {
+ var $e = ie.length, St = Ce.length, Qt = U.object;
+ U.distance = 1 / 0, U.mouse[0] = Tr, U.mouse[1] = fr, U.object = null, U.screen = null, U.dataCoordinate = U.dataPosition = null;
+ var Gt = false;
+ if (sr && ce._prevButtons) ce._mouseRotating = true;
+ else {
+ ce._mouseRotating && (Pe = true), ce._mouseRotating = false;
+ for (var _t = 0; _t < $e; ++_t) {
+ var It = ie[_t].query(Tr, je[1] - fr - 1, ce.pickRadius);
+ if (It) {
+ if (It.distance > U.distance) continue;
+ for (var mt = 0; mt < St; ++mt) {
+ var er = Ce[mt];
+ if (Le[mt] === _t) {
+ var lr = er.pick(It);
+ lr && (U.buttons = sr, U.screen = It.coord, U.distance = It.distance, U.object = er, U.index = lr.distance, U.dataPosition = lr.position, U.dataCoordinate = lr.dataCoordinate, U.data = lr, Gt = true);
+ }
+ }
+ }
+ }
+ }
+ Qt && Qt !== U.object && (Qt.highlight && Qt.highlight(null), Se = true), U.object && (U.object.highlight && U.object.highlight(U.data), Se = true), Gt = Gt || U.object !== Qt, Gt && ce.onselect && ce.onselect(U), sr & 1 && !(ce._prevButtons & 1) && ce.onclick && ce.onclick(U), ce._prevButtons = sr;
+ }
+ });
+ };
+ function Vt() {
+ if (ce.contextLost) return true;
+ z.isContextLost() && (ce.contextLost = true, ce.mouseListener.enabled = false, ce.selection.object = null, ce.oncontextloss && ce.oncontextloss());
+ }
+ P.addEventListener("webglcontextlost", Vt);
+ function ot() {
+ if (!Vt()) {
+ z.colorMask(true, true, true, true), z.depthMask(true), z.disable(z.BLEND), z.enable(z.DEPTH_TEST), z.depthFunc(z.LEQUAL);
+ for (var sr = Ce.length, Tr = ie.length, fr = 0; fr < Tr; ++fr) {
+ var $e = ie[fr];
+ $e.shape = je, $e.begin();
+ for (var St = 0; St < sr; ++St) if (Le[St] === fr) {
+ var Qt = Ce[St];
+ Qt.drawPick && (Qt.pixelRatio = 1, Qt.drawPick(Be));
+ }
+ $e.end();
+ }
+ }
+ }
+ var ut = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]], Wt = [ut[0].slice(), ut[1].slice()];
+ function Nt() {
+ if (!Vt()) {
+ lt();
+ var sr = ce.camera.tick();
+ Be.view = ce.camera.matrix, Se = Se || sr, Pe = Pe || sr, re.pixelRatio = ce.pixelRatio, _e.pixelRatio = ce.pixelRatio;
+ var Tr = Ce.length, fr = ut[0], $e = ut[1];
+ fr[0] = fr[1] = fr[2] = 1 / 0, $e[0] = $e[1] = $e[2] = -1 / 0;
+ for (var St = 0; St < Tr; ++St) {
+ var Qt = Ce[St];
+ Qt.pixelRatio = ce.pixelRatio, Qt.axes = ce.axes, Se = Se || !!Qt.dirty, Pe = Pe || !!Qt.dirty;
+ var Gt = Qt.bounds;
+ if (Gt) for (var _t = Gt[0], It = Gt[1], mt = 0; mt < 3; ++mt) fr[mt] = Math.min(fr[mt], _t[mt]), $e[mt] = Math.max($e[mt], It[mt]);
+ }
+ var er = ce.bounds;
+ if (ce.autoBounds) for (var mt = 0; mt < 3; ++mt) {
+ if ($e[mt] < fr[mt]) fr[mt] = -1, $e[mt] = 1;
+ else {
+ fr[mt] === $e[mt] && (fr[mt] -= 1, $e[mt] += 1);
+ var lr = 0.05 * ($e[mt] - fr[mt]);
+ fr[mt] = fr[mt] - lr, $e[mt] = $e[mt] + lr;
+ }
+ er[0][mt] = fr[mt], er[1][mt] = $e[mt];
+ }
+ for (var wr = false, mt = 0; mt < 3; ++mt) wr = wr || Wt[0][mt] !== er[0][mt] || Wt[1][mt] !== er[1][mt], Wt[0][mt] = er[0][mt], Wt[1][mt] = er[1][mt];
+ if (Pe = Pe || wr, Se = Se || wr, !!Se) {
+ if (wr) {
+ for (var Lr = [0, 0, 0], St = 0; St < 3; ++St) Lr[St] = L((er[1][St] - er[0][St]) / 10);
+ re.autoTicks ? re.update({ bounds: er, tickSpacing: Lr }) : re.update({ bounds: er });
+ }
+ var ti = z.drawingBufferWidth, Br = z.drawingBufferHeight;
+ me[0] = ti, me[1] = Br, je[0] = Math.max(ti / ce.pixelRatio, 1) | 0, je[1] = Math.max(Br / ce.pixelRatio, 1) | 0, M(ce, j);
+ for (var St = 0; St < Tr; ++St) {
+ var Qt = Ce[St];
+ Qt.axesBounds = er, ce.clipToBounds && (Qt.clipBounds = er);
+ }
+ U.object && (ce.snapToData ? _e.position = U.dataCoordinate : _e.position = U.dataPosition, _e.bounds = er), Pe && (Pe = false, ot()), ce.axesPixels = u(ce.axes, Be, ti, Br), ce.onrender && ce.onrender(), z.bindFramebuffer(z.FRAMEBUFFER, null), z.viewport(0, 0, ti, Br), ce.clearRGBA(), z.depthMask(true), z.colorMask(true, true, true, true), z.enable(z.DEPTH_TEST), z.depthFunc(z.LEQUAL), z.disable(z.BLEND), z.disable(z.CULL_FACE);
+ var Vr = false;
+ re.enable && (Vr = Vr || re.isTransparent(), re.draw(Be)), _e.axes = re, U.object && _e.draw(Be), z.disable(z.CULL_FACE);
+ for (var St = 0; St < Tr; ++St) {
+ var Qt = Ce[St];
+ Qt.axes = re, Qt.pixelRatio = ce.pixelRatio, Qt.isOpaque && Qt.isOpaque() && Qt.draw(Be), Qt.isTransparent && Qt.isTransparent() && (Vr = true);
+ }
+ if (Vr) {
+ G.shape = me, G.bind(), z.clear(z.DEPTH_BUFFER_BIT), z.colorMask(false, false, false, false), z.depthMask(true), z.depthFunc(z.LESS), re.enable && re.isTransparent() && re.drawTransparent(Be);
+ for (var St = 0; St < Tr; ++St) {
+ var Qt = Ce[St];
+ Qt.isOpaque && Qt.isOpaque() && Qt.draw(Be);
+ }
+ z.enable(z.BLEND), z.blendEquation(z.FUNC_ADD), z.blendFunc(z.ONE, z.ONE_MINUS_SRC_ALPHA), z.colorMask(true, true, true, true), z.depthMask(false), z.clearColor(0, 0, 0, 0), z.clear(z.COLOR_BUFFER_BIT), re.isTransparent() && re.drawTransparent(Be);
+ for (var St = 0; St < Tr; ++St) {
+ var Qt = Ce[St];
+ Qt.isTransparent && Qt.isTransparent() && Qt.drawTransparent(Be);
+ }
+ z.bindFramebuffer(z.FRAMEBUFFER, null), z.blendFunc(z.ONE, z.ONE_MINUS_SRC_ALPHA), z.disable(z.DEPTH_TEST), Z.bind(), G.color[0].bind(0), Z.uniforms.accumBuffer = 0, d(z), z.disable(z.BLEND);
+ }
+ Se = false;
+ for (var St = 0; St < Tr; ++St) Ce[St].dirty = false;
+ }
+ }
+ }
+ function $t() {
+ ce._stopped || ce.contextLost || (Nt(), requestAnimationFrame($t));
+ }
+ return ce.enableMouseListeners(), $t(), ce.redraw = function() {
+ ce._stopped || (Se = true, Nt());
+ }, ce;
+ }
+ function M(g, P) {
+ var A = g.bounds, z = g.cameraParams, O = z.projection, U = z.model, G = g.gl.drawingBufferWidth, Z = g.gl.drawingBufferHeight, j = g.zNear, N = g.zFar, H = g.fovy, re = G / Z;
+ P ? (b(O, -re, re, -1, 1, j, N), z._ortho = true) : (_(O, H, re, j, N), z._ortho = false);
+ for (var oe = 0; oe < 16; ++oe) U[oe] = 0;
+ U[15] = 1;
+ for (var _e = 0, oe = 0; oe < 3; ++oe) _e = Math.max(_e, A[1][oe] - A[0][oe]);
+ for (var oe = 0; oe < 3; ++oe) g.autoScale ? U[5 * oe] = g.aspect[oe] / (A[1][oe] - A[0][oe]) : U[5 * oe] = 1 / _e, g.autoCenter && (U[12 + oe] = -U[5 * oe] * 0.5 * (A[0][oe] + A[1][oe]));
+ }
+ }, 4192: function(i) {
+ i.exports = o;
+ var a = 32;
+ function o(_, b) {
+ b <= 4 * a ? s(0, b - 1, _) : v(0, b - 1, _);
+ }
+ function s(_, b, p) {
+ for (var k = 2 * (_ + 1), E = _ + 1; E <= b; ++E) {
+ for (var T = p[k++], L = p[k++], x = E, C = k - 2; x-- > _; ) {
+ var M = p[C - 2], g = p[C - 1];
+ if (M < T) break;
+ if (M === T && g < L) break;
+ p[C] = M, p[C + 1] = g, C -= 2;
+ }
+ p[C] = T, p[C + 1] = L;
+ }
+ }
+ function l(_, b, p) {
+ _ *= 2, b *= 2;
+ var k = p[_], E = p[_ + 1];
+ p[_] = p[b], p[_ + 1] = p[b + 1], p[b] = k, p[b + 1] = E;
+ }
+ function u(_, b, p) {
+ _ *= 2, b *= 2, p[_] = p[b], p[_ + 1] = p[b + 1];
+ }
+ function c(_, b, p, k) {
+ _ *= 2, b *= 2, p *= 2;
+ var E = k[_], T = k[_ + 1];
+ k[_] = k[b], k[_ + 1] = k[b + 1], k[b] = k[p], k[b + 1] = k[p + 1], k[p] = E, k[p + 1] = T;
+ }
+ function f(_, b, p, k, E) {
+ _ *= 2, b *= 2, E[_] = E[b], E[b] = p, E[_ + 1] = E[b + 1], E[b + 1] = k;
+ }
+ function h(_, b, p) {
+ _ *= 2, b *= 2;
+ var k = p[_], E = p[b];
+ return k < E ? false : k === E ? p[_ + 1] > p[b + 1] : true;
+ }
+ function d(_, b, p, k) {
+ _ *= 2;
+ var E = k[_];
+ return E < b ? true : E === b ? k[_ + 1] < p : false;
+ }
+ function v(_, b, p) {
+ var k = (b - _ + 1) / 6 | 0, E = _ + k, T = b - k, L = _ + b >> 1, x = L - k, C = L + k, M = E, g = x, P = L, A = C, z = T, O = _ + 1, U = b - 1, G = 0;
+ h(M, g, p) && (G = M, M = g, g = G), h(A, z, p) && (G = A, A = z, z = G), h(M, P, p) && (G = M, M = P, P = G), h(g, P, p) && (G = g, g = P, P = G), h(M, A, p) && (G = M, M = A, A = G), h(P, A, p) && (G = P, P = A, A = G), h(g, z, p) && (G = g, g = z, z = G), h(g, P, p) && (G = g, g = P, P = G), h(A, z, p) && (G = A, A = z, z = G);
+ for (var Z = p[2 * g], j = p[2 * g + 1], N = p[2 * A], H = p[2 * A + 1], re = 2 * M, oe = 2 * P, _e = 2 * z, Ce = 2 * E, Le = 2 * L, ge = 2 * T, ie = 0; ie < 2; ++ie) {
+ var Se = p[re + ie], Ee = p[oe + ie], Ae = p[_e + ie];
+ p[Ce + ie] = Se, p[Le + ie] = Ee, p[ge + ie] = Ae;
+ }
+ u(x, _, p), u(C, b, p);
+ for (var Be = O; Be <= U; ++Be) if (d(Be, Z, j, p)) Be !== O && l(Be, O, p), ++O;
+ else if (!d(Be, N, H, p)) for (; ; ) if (d(U, N, H, p)) {
+ d(U, Z, j, p) ? (c(Be, O, U, p), ++O, --U) : (l(Be, U, p), --U);
+ break;
+ } else {
+ if (--U < Be) break;
+ continue;
+ }
+ f(_, O - 1, Z, j, p), f(b, U + 1, N, H, p), O - 2 - _ <= a ? s(_, O - 2, p) : v(_, O - 2, p), b - (U + 2) <= a ? s(U + 2, b, p) : v(U + 2, b, p), U - O <= a ? s(O, U, p) : v(O, U, p);
+ }
+ }, 4209: function(i, a, o) {
+ i.exports = p;
+ var s = o(2478), l = o(3840), u = o(3250), c = o(1303);
+ function f(k, E, T) {
+ this.slabs = k, this.coordinates = E, this.horizontal = T;
+ }
+ var h = f.prototype;
+ function d(k, E) {
+ return k.y - E;
+ }
+ function v(k, E) {
+ for (var T = null; k; ) {
+ var L = k.key, x, C;
+ L[0][0] < L[1][0] ? (x = L[0], C = L[1]) : (x = L[1], C = L[0]);
+ var M = u(x, C, E);
+ if (M < 0) k = k.left;
+ else if (M > 0) if (E[0] !== L[1][0]) T = k, k = k.right;
+ else {
+ var g = v(k.right, E);
+ if (g) return g;
+ k = k.left;
+ }
+ else {
+ if (E[0] !== L[1][0]) return k;
+ var g = v(k.right, E);
+ if (g) return g;
+ k = k.left;
+ }
+ }
+ return T;
+ }
+ h.castUp = function(k) {
+ var E = s.le(this.coordinates, k[0]);
+ if (E < 0) return -1;
+ this.slabs[E];
+ var L = v(this.slabs[E], k), x = -1;
+ if (L && (x = L.value), this.coordinates[E] === k[0]) {
+ var C = null;
+ if (L && (C = L.key), E > 0) {
+ var M = v(this.slabs[E - 1], k);
+ M && (C ? c(M.key, C) > 0 && (C = M.key, x = M.value) : (x = M.value, C = M.key));
+ }
+ var g = this.horizontal[E];
+ if (g.length > 0) {
+ var P = s.ge(g, k[1], d);
+ if (P < g.length) {
+ var A = g[P];
+ if (k[1] === A.y) {
+ if (A.closed) return A.index;
+ for (; P < g.length - 1 && g[P + 1].y === k[1]; ) if (P = P + 1, A = g[P], A.closed) return A.index;
+ if (A.y === k[1] && !A.start) {
+ if (P = P + 1, P >= g.length) return x;
+ A = g[P];
+ }
+ }
+ if (A.start) if (C) {
+ var z = u(C[0], C[1], [k[0], A.y]);
+ C[0][0] > C[1][0] && (z = -z), z > 0 && (x = A.index);
+ } else x = A.index;
+ else A.y !== k[1] && (x = A.index);
+ }
+ }
+ }
+ return x;
+ };
+ function _(k, E, T, L) {
+ this.y = k, this.index = E, this.start = T, this.closed = L;
+ }
+ function b(k, E, T, L) {
+ this.x = k, this.segment = E, this.create = T, this.index = L;
+ }
+ function p(k) {
+ for (var E = k.length, T = 2 * E, L = new Array(T), x = 0; x < E; ++x) {
+ var C = k[x], M = C[0][0] < C[1][0];
+ L[2 * x] = new b(C[0][0], C, M, x), L[2 * x + 1] = new b(C[1][0], C, !M, x);
+ }
+ L.sort(function(j, N) {
+ var H = j.x - N.x;
+ return H || (H = j.create - N.create, H) ? H : Math.min(j.segment[0][1], j.segment[1][1]) - Math.min(N.segment[0][1], N.segment[1][1]);
+ });
+ for (var g = l(c), P = [], A = [], z = [], O = -1 / 0, x = 0; x < T; ) {
+ for (var U = L[x].x, G = []; x < T; ) {
+ var Z = L[x];
+ if (Z.x !== U) break;
+ x += 1, Z.segment[0][0] === Z.x && Z.segment[1][0] === Z.x ? Z.create && (Z.segment[0][1] < Z.segment[1][1] ? (G.push(new _(Z.segment[0][1], Z.index, true, true)), G.push(new _(Z.segment[1][1], Z.index, false, false))) : (G.push(new _(Z.segment[1][1], Z.index, true, false)), G.push(new _(Z.segment[0][1], Z.index, false, true)))) : Z.create ? g = g.insert(Z.segment, Z.index) : g = g.remove(Z.segment);
+ }
+ P.push(g.root), A.push(U), z.push(G);
+ }
+ return new f(P, A, z);
+ }
+ }, 4317: function(i) {
+ function a(c, f) {
+ var h = Math.floor(f), d = f - h, v = 0 <= h && h < c.shape[0], _ = 0 <= h + 1 && h + 1 < c.shape[0], b = v ? +c.get(h) : 0, p = _ ? +c.get(h + 1) : 0;
+ return (1 - d) * b + d * p;
+ }
+ function o(c, f, h) {
+ var d = Math.floor(f), v = f - d, _ = 0 <= d && d < c.shape[0], b = 0 <= d + 1 && d + 1 < c.shape[0], p = Math.floor(h), k = h - p, E = 0 <= p && p < c.shape[1], T = 0 <= p + 1 && p + 1 < c.shape[1], L = _ && E ? c.get(d, p) : 0, x = _ && T ? c.get(d, p + 1) : 0, C = b && E ? c.get(d + 1, p) : 0, M = b && T ? c.get(d + 1, p + 1) : 0;
+ return (1 - k) * ((1 - v) * L + v * C) + k * ((1 - v) * x + v * M);
+ }
+ function s(c, f, h, d) {
+ var v = Math.floor(f), _ = f - v, b = 0 <= v && v < c.shape[0], p = 0 <= v + 1 && v + 1 < c.shape[0], k = Math.floor(h), E = h - k, T = 0 <= k && k < c.shape[1], L = 0 <= k + 1 && k + 1 < c.shape[1], x = Math.floor(d), C = d - x, M = 0 <= x && x < c.shape[2], g = 0 <= x + 1 && x + 1 < c.shape[2], P = b && T && M ? c.get(v, k, x) : 0, A = b && L && M ? c.get(v, k + 1, x) : 0, z = p && T && M ? c.get(v + 1, k, x) : 0, O = p && L && M ? c.get(v + 1, k + 1, x) : 0, U = b && T && g ? c.get(v, k, x + 1) : 0, G = b && L && g ? c.get(v, k + 1, x + 1) : 0, Z = p && T && g ? c.get(v + 1, k, x + 1) : 0, j = p && L && g ? c.get(v + 1, k + 1, x + 1) : 0;
+ return (1 - C) * ((1 - E) * ((1 - _) * P + _ * z) + E * ((1 - _) * A + _ * O)) + C * ((1 - E) * ((1 - _) * U + _ * Z) + E * ((1 - _) * G + _ * j));
+ }
+ function l(c) {
+ var f = c.shape.length | 0, h = new Array(f), d = new Array(f), v = new Array(f), _ = new Array(f), b, p;
+ for (b = 0; b < f; ++b) p = +arguments[b + 1], h[b] = Math.floor(p), d[b] = p - h[b], v[b] = 0 <= h[b] && h[b] < c.shape[b], _[b] = 0 <= h[b] + 1 && h[b] + 1 < c.shape[b];
+ var k = 0, E, T, L;
+ e: for (b = 0; b < 1 << f; ++b) {
+ for (T = 1, L = c.offset, E = 0; E < f; ++E) if (b & 1 << E) {
+ if (!_[E]) continue e;
+ T *= d[E], L += c.stride[E] * (h[E] + 1);
+ } else {
+ if (!v[E]) continue e;
+ T *= 1 - d[E], L += c.stride[E] * h[E];
+ }
+ k += T * c.data[L];
+ }
+ return k;
+ }
+ function u(c, f, h, d) {
+ switch (c.shape.length) {
+ case 0:
+ return 0;
+ case 1:
+ return a(c, f);
+ case 2:
+ return o(c, f, h);
+ case 3:
+ return s(c, f, h, d);
+ default:
+ return l.apply(void 0, arguments);
+ }
+ }
+ i.exports = u, i.exports.d1 = a, i.exports.d2 = o, i.exports.d3 = s;
+ }, 4335: function(i) {
+ i.exports = function(o, s) {
+ var l = s[15];
+ if (l === 0) return false;
+ for (var u = 1 / l, c = 0; c < 16; c++) o[c] = s[c] * u;
+ return true;
+ };
+ }, 4359: function(i, a, o) {
+ i.exports = c;
+ var s = o(7718), l = null, u = null;
+ typeof document != "undefined" && (l = document.createElement("canvas"), l.width = 8192, l.height = 1024, u = l.getContext("2d"));
+ function c(f, h) {
+ return (typeof h != "object" || h === null) && (h = {}), s(f, h.canvas || l, h.context || u, h);
+ }
+ }, 4361: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] + l[0], o[1] = s[1] + l[1], o[2] = s[2] + l[2], o[3] = s[3] + l[3], o;
+ }
+ }, 4437: function(i, a, o) {
+ i.exports = d;
+ var s = o(3025), l = o(6296), u = o(351), c = o(8512), f = o(24), h = o(7520);
+ function d(v, _) {
+ v = v || document.body, _ = _ || {};
+ var b = [0.01, 1 / 0];
+ "distanceLimits" in _ && (b[0] = _.distanceLimits[0], b[1] = _.distanceLimits[1]), "zoomMin" in _ && (b[0] = _.zoomMin), "zoomMax" in _ && (b[1] = _.zoomMax);
+ var p = l({ center: _.center || [0, 0, 0], up: _.up || [0, 1, 0], eye: _.eye || [0, 0, 10], mode: _.mode || "orbit", distanceLimits: b }), k = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], E = 0, T = v.clientWidth, L = v.clientHeight, x = { keyBindingMode: "rotate", enableWheel: true, view: p, element: v, delay: _.delay || 16, rotateSpeed: _.rotateSpeed || 1, zoomSpeed: _.zoomSpeed || 1, translateSpeed: _.translateSpeed || 1, flipX: !!_.flipX, flipY: !!_.flipY, modes: p.modes, _ortho: _._ortho || _.projection && _.projection.type === "orthographic" || false, tick: function() {
+ var C = s(), M = this.delay, g = C - 2 * M;
+ p.idle(C - M), p.recalcMatrix(g), p.flush(C - (100 + M * 2));
+ for (var P = true, A = p.computedMatrix, z = 0; z < 16; ++z) P = P && k[z] === A[z], k[z] = A[z];
+ var O = v.clientWidth === T && v.clientHeight === L;
+ return T = v.clientWidth, L = v.clientHeight, P ? !O : (E = Math.exp(p.computedRadius[0]), true);
+ }, lookAt: function(C, M, g) {
+ p.lookAt(p.lastT(), C, M, g);
+ }, rotate: function(C, M, g) {
+ p.rotate(p.lastT(), C, M, g);
+ }, pan: function(C, M, g) {
+ p.pan(p.lastT(), C, M, g);
+ }, translate: function(C, M, g) {
+ p.translate(p.lastT(), C, M, g);
+ } };
+ return Object.defineProperties(x, { matrix: { get: function() {
+ return p.computedMatrix;
+ }, set: function(C) {
+ return p.setMatrix(p.lastT(), C), p.computedMatrix;
+ }, enumerable: true }, mode: { get: function() {
+ return p.getMode();
+ }, set: function(C) {
+ var M = p.computedUp.slice(), g = p.computedEye.slice(), P = p.computedCenter.slice();
+ if (p.setMode(C), C === "turntable") {
+ var A = s();
+ p._active.lookAt(A, g, P, M), p._active.lookAt(A + 500, g, P, [0, 0, 1]), p._active.flush(A);
+ }
+ return p.getMode();
+ }, enumerable: true }, center: { get: function() {
+ return p.computedCenter;
+ }, set: function(C) {
+ return p.lookAt(p.lastT(), null, C), p.computedCenter;
+ }, enumerable: true }, eye: { get: function() {
+ return p.computedEye;
+ }, set: function(C) {
+ return p.lookAt(p.lastT(), C), p.computedEye;
+ }, enumerable: true }, up: { get: function() {
+ return p.computedUp;
+ }, set: function(C) {
+ return p.lookAt(p.lastT(), null, null, C), p.computedUp;
+ }, enumerable: true }, distance: { get: function() {
+ return E;
+ }, set: function(C) {
+ return p.setDistance(p.lastT(), C), C;
+ }, enumerable: true }, distanceLimits: { get: function() {
+ return p.getDistanceLimits(b);
+ }, set: function(C) {
+ return p.setDistanceLimits(C), C;
+ }, enumerable: true } }), v.addEventListener("contextmenu", function(C) {
+ return C.preventDefault(), false;
+ }), x._lastX = -1, x._lastY = -1, x._lastMods = { shift: false, control: false, alt: false, meta: false }, x.enableMouseListeners = function() {
+ x.mouseListener = u(v, C), v.addEventListener("touchstart", function(M) {
+ var g = f(M.changedTouches[0], v);
+ C(0, g[0], g[1], x._lastMods), C(1, g[0], g[1], x._lastMods);
+ }, h ? { passive: true } : false), v.addEventListener("touchmove", function(M) {
+ var g = f(M.changedTouches[0], v);
+ C(1, g[0], g[1], x._lastMods), M.preventDefault();
+ }, h ? { passive: false } : false), v.addEventListener("touchend", function(M) {
+ C(0, x._lastX, x._lastY, x._lastMods);
+ }, h ? { passive: true } : false);
+ function C(M, g, P, A) {
+ var z = x.keyBindingMode;
+ if (z !== false) {
+ var O = z === "rotate", U = z === "pan", G = z === "zoom", Z = !!A.control, j = !!A.alt, N = !!A.shift, H = !!(M & 1), re = !!(M & 2), oe = !!(M & 4), _e = 1 / v.clientHeight, Ce = _e * (g - x._lastX), Le = _e * (P - x._lastY), ge = x.flipX ? 1 : -1, ie = x.flipY ? 1 : -1, Se = Math.PI * x.rotateSpeed, Ee = s();
+ if (x._lastX !== -1 && x._lastY !== -1 && ((O && H && !Z && !j && !N || H && !Z && !j && N) && p.rotate(Ee, ge * Se * Ce, -ie * Se * Le, 0), (U && H && !Z && !j && !N || re || H && Z && !j && !N) && p.pan(Ee, -x.translateSpeed * Ce * E, x.translateSpeed * Le * E, 0), G && H && !Z && !j && !N || oe || H && !Z && j && !N)) {
+ var Ae = -x.zoomSpeed * Le / window.innerHeight * (Ee - p.lastT()) * 100;
+ p.pan(Ee, 0, 0, E * (Math.exp(Ae) - 1));
+ }
+ return x._lastX = g, x._lastY = P, x._lastMods = A, true;
+ }
+ }
+ x.wheelListener = c(v, function(M, g) {
+ if (x.keyBindingMode !== false && x.enableWheel) {
+ var P = x.flipX ? 1 : -1, A = x.flipY ? 1 : -1, z = s();
+ if (Math.abs(M) > Math.abs(g)) p.rotate(z, 0, 0, -M * P * Math.PI * x.rotateSpeed / window.innerWidth);
+ else if (!x._ortho) {
+ var O = -x.zoomSpeed * A * g / window.innerHeight * (z - p.lastT()) / 20;
+ p.pan(z, 0, 0, E * (Math.exp(O) - 1));
+ }
+ }
+ }, true);
+ }, x.enableMouseListeners(), x;
+ }
+ }, 4449: function(i, a, o) {
+ var s = o(2762), l = o(8116), u = o(1493);
+ i.exports = b;
+ var c = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
+ function f(p, k, E, T) {
+ this.gl = p, this.buffer = k, this.vao = E, this.shader = T, this.pixelRatio = 1, this.bounds = [[-1e3, -1e3, -1e3], [1e3, 1e3, 1e3]], this.position = [0, 0, 0], this.lineWidth = [2, 2, 2], this.colors = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.enabled = [true, true, true], this.drawSides = [true, true, true], this.axes = null;
+ }
+ var h = f.prototype, d = [0, 0, 0], v = [0, 0, 0], _ = [0, 0];
+ h.isTransparent = function() {
+ return false;
+ }, h.drawTransparent = function(p) {
+ }, h.draw = function(p) {
+ var k = this.gl, E = this.vao, T = this.shader;
+ E.bind(), T.bind();
+ var L = p.model || c, x = p.view || c, C = p.projection || c, M;
+ this.axes && (M = this.axes.lastCubeProps.axis);
+ for (var g = d, P = v, A = 0; A < 3; ++A) M && M[A] < 0 ? (g[A] = this.bounds[0][A], P[A] = this.bounds[1][A]) : (g[A] = this.bounds[1][A], P[A] = this.bounds[0][A]);
+ _[0] = k.drawingBufferWidth, _[1] = k.drawingBufferHeight, T.uniforms.model = L, T.uniforms.view = x, T.uniforms.projection = C, T.uniforms.coordinates = [this.position, g, P], T.uniforms.colors = this.colors, T.uniforms.screenShape = _;
+ for (var A = 0; A < 3; ++A) T.uniforms.lineWidth = this.lineWidth[A] * this.pixelRatio, this.enabled[A] && (E.draw(k.TRIANGLES, 6, 6 * A), this.drawSides[A] && E.draw(k.TRIANGLES, 12, 18 + 12 * A));
+ E.unbind();
+ }, h.update = function(p) {
+ p && ("bounds" in p && (this.bounds = p.bounds), "position" in p && (this.position = p.position), "lineWidth" in p && (this.lineWidth = p.lineWidth), "colors" in p && (this.colors = p.colors), "enabled" in p && (this.enabled = p.enabled), "drawSides" in p && (this.drawSides = p.drawSides));
+ }, h.dispose = function() {
+ this.vao.dispose(), this.buffer.dispose(), this.shader.dispose();
+ };
+ function b(p, k) {
+ var E = [];
+ function T(g, P, A, z, O, U) {
+ var G = [g, P, A, 0, 0, 0, 1];
+ G[z + 3] = 1, G[z] = O, E.push.apply(E, G), G[6] = -1, E.push.apply(E, G), G[z] = U, E.push.apply(E, G), E.push.apply(E, G), G[6] = 1, E.push.apply(E, G), G[z] = O, E.push.apply(E, G);
+ }
+ T(0, 0, 0, 0, 0, 1), T(0, 0, 0, 1, 0, 1), T(0, 0, 0, 2, 0, 1), T(1, 0, 0, 1, -1, 1), T(1, 0, 0, 2, -1, 1), T(0, 1, 0, 0, -1, 1), T(0, 1, 0, 2, -1, 1), T(0, 0, 1, 0, -1, 1), T(0, 0, 1, 1, -1, 1);
+ var L = s(p, E), x = l(p, [{ type: p.FLOAT, buffer: L, size: 3, offset: 0, stride: 28 }, { type: p.FLOAT, buffer: L, size: 3, offset: 12, stride: 28 }, { type: p.FLOAT, buffer: L, size: 1, offset: 24, stride: 28 }]), C = u(p);
+ C.attributes.position.location = 0, C.attributes.color.location = 1, C.attributes.weight.location = 2;
+ var M = new f(p, L, x, C);
+ return M.update(k), M;
+ }
+ }, 4494: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = 1 / s[0], o[1] = 1 / s[1], o[2] = 1 / s[2], o[3] = 1 / s[3], o;
+ }
+ }, 4505: function(i, a, o) {
+ i.exports = o(5847);
+ }, 4578: function(i) {
+ i.exports = a;
+ function a(o, s, l, u, c) {
+ return o[0] = s, o[1] = l, o[2] = u, o[3] = c, o;
+ }
+ }, 4623: function(i) {
+ "use restrict";
+ i.exports = a;
+ function a(o) {
+ this.roots = new Array(o), this.ranks = new Array(o);
+ for (var s = 0; s < o; ++s) this.roots[s] = s, this.ranks[s] = 0;
+ }
+ a.prototype.length = function() {
+ return this.roots.length;
+ }, a.prototype.makeSet = function() {
+ var o = this.roots.length;
+ return this.roots.push(o), this.ranks.push(0), o;
+ }, a.prototype.find = function(o) {
+ for (var s = this.roots; s[o] !== o; ) {
+ var l = s[o];
+ s[o] = s[l], o = l;
+ }
+ return o;
+ }, a.prototype.link = function(o, s) {
+ var l = this.find(o), u = this.find(s);
+ if (l !== u) {
+ var c = this.ranks, f = this.roots, h = c[l], d = c[u];
+ h < d ? f[l] = u : d < h ? f[u] = l : (f[u] = l, ++c[l]);
+ }
+ };
+ }, 4687: function(i, a) {
+ function o(c) {
+ if (typeof c == "object") {
+ if ("buttons" in c) return c.buttons;
+ if ("which" in c) {
+ var f = c.which;
+ if (f === 2) return 4;
+ if (f === 3) return 2;
+ if (f > 0) return 1 << f - 1;
+ } else if ("button" in c) {
+ var f = c.button;
+ if (f === 1) return 4;
+ if (f === 2) return 2;
+ if (f >= 0) return 1 << f;
+ }
+ }
+ return 0;
+ }
+ a.buttons = o;
+ function s(c) {
+ return c.target || c.srcElement || window;
+ }
+ a.element = s;
+ function l(c) {
+ if (typeof c == "object") {
+ if ("offsetX" in c) return c.offsetX;
+ var f = s(c), h = f.getBoundingClientRect();
+ return c.clientX - h.left;
+ }
+ return 0;
+ }
+ a.x = l;
+ function u(c) {
+ if (typeof c == "object") {
+ if ("offsetY" in c) return c.offsetY;
+ var f = s(c), h = f.getBoundingClientRect();
+ return c.clientY - h.top;
+ }
+ return 0;
+ }
+ a.y = u;
+ }, 4691: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = s[0] - o[0], u = s[1] - o[1], c = s[2] - o[2], f = s[3] - o[3];
+ return Math.sqrt(l * l + u * u + c * c + f * f);
+ }
+ }, 4750: function(i, a, o) {
+ i.exports = l;
+ var s = o(3090);
+ function l(u) {
+ var c = s(u), f = c.length;
+ if (f <= 2) return [];
+ for (var h = new Array(f), d = c[f - 1], v = 0; v < f; ++v) {
+ var _ = c[v];
+ h[v] = [d, _], d = _;
+ }
+ return h;
+ }
+ }, 4769: function(i) {
+ function a(s, l, u, c, f, h) {
+ var d = 6 * f * f - 6 * f, v = 3 * f * f - 4 * f + 1, _ = -6 * f * f + 6 * f, b = 3 * f * f - 2 * f;
+ if (s.length) {
+ h || (h = new Array(s.length));
+ for (var p = s.length - 1; p >= 0; --p) h[p] = d * s[p] + v * l[p] + _ * u[p] + b * c[p];
+ return h;
+ }
+ return d * s + v * l + _ * u[p] + b * c;
+ }
+ function o(s, l, u, c, f, h) {
+ var d = f - 1, v = f * f, _ = d * d, b = (1 + 2 * f) * _, p = f * _, k = v * (3 - 2 * f), E = v * d;
+ if (s.length) {
+ h || (h = new Array(s.length));
+ for (var T = s.length - 1; T >= 0; --T) h[T] = b * s[T] + p * l[T] + k * u[T] + E * c[T];
+ return h;
+ }
+ return b * s + p * l + k * u + E * c;
+ }
+ i.exports = o, i.exports.derivative = a;
+ }, 4772: function(i) {
+ i.exports = a;
+ function a(o, s, l, u, c) {
+ var f = 1 / Math.tan(s / 2), h = 1 / (u - c);
+ return o[0] = f / l, o[1] = 0, o[2] = 0, o[3] = 0, o[4] = 0, o[5] = f, o[6] = 0, o[7] = 0, o[8] = 0, o[9] = 0, o[10] = (c + u) * h, o[11] = -1, o[12] = 0, o[13] = 0, o[14] = 2 * c * u * h, o[15] = 0, o;
+ }
+ }, 4793: function(i, a, o) {
+ function l(Ie, xe) {
+ if (!(Ie instanceof xe)) throw new TypeError("Cannot call a class as a function");
+ }
+ function u(Ie, xe) {
+ for (var ke = 0; ke < xe.length; ke++) {
+ var vt = xe[ke];
+ vt.enumerable = vt.enumerable || false, vt.configurable = true, "value" in vt && (vt.writable = true), Object.defineProperty(Ie, f(vt.key), vt);
+ }
+ }
+ function c(Ie, xe, ke) {
+ return xe && u(Ie.prototype, xe), Object.defineProperty(Ie, "prototype", { writable: false }), Ie;
+ }
+ function f(Ie) {
+ var xe = h(Ie, "string");
+ return T(xe) == "symbol" ? xe : xe + "";
+ }
+ function h(Ie, xe) {
+ if (T(Ie) != "object" || !Ie) return Ie;
+ var ke = Ie[Symbol.toPrimitive];
+ if (ke !== void 0) {
+ var vt = ke.call(Ie, xe);
+ if (T(vt) != "object") return vt;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return String(Ie);
+ }
+ function d(Ie, xe, ke) {
+ return xe = p(xe), v(Ie, b() ? Reflect.construct(xe, [], p(Ie).constructor) : xe.apply(Ie, ke));
+ }
+ function v(Ie, xe) {
+ if (xe && (T(xe) == "object" || typeof xe == "function")) return xe;
+ if (xe !== void 0) throw new TypeError("Derived constructors may only return object or undefined");
+ return _(Ie);
+ }
+ function _(Ie) {
+ if (Ie === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ return Ie;
+ }
+ function b() {
+ try {
+ var Ie = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
+ }));
+ } catch (xe) {
+ }
+ return (b = function() {
+ return !!Ie;
+ })();
+ }
+ function p(Ie) {
+ return p = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(xe) {
+ return xe.__proto__ || Object.getPrototypeOf(xe);
+ }, p(Ie);
+ }
+ function k(Ie, xe) {
+ if (typeof xe != "function" && xe !== null) throw new TypeError("Super expression must either be null or a function");
+ Ie.prototype = Object.create(xe && xe.prototype, { constructor: { value: Ie, writable: true, configurable: true } }), Object.defineProperty(Ie, "prototype", { writable: false }), xe && E(Ie, xe);
+ }
+ function E(Ie, xe) {
+ return E = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(ke, vt) {
+ return ke.__proto__ = vt, ke;
+ }, E(Ie, xe);
+ }
+ function T(Ie) {
+ "@babel/helpers - typeof";
+ return T = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(xe) {
+ return typeof xe;
+ } : function(xe) {
+ return xe && typeof Symbol == "function" && xe.constructor === Symbol && xe !== Symbol.prototype ? "symbol" : typeof xe;
+ }, T(Ie);
+ }
+ var L = o(7507), x = o(3778), C = typeof Symbol == "function" && typeof Symbol.for == "function" ? Symbol.for("nodejs.util.inspect.custom") : null;
+ a.hp = A, a.IS = 50;
+ var M = 2147483647;
+ A.TYPED_ARRAY_SUPPORT = g(), !A.TYPED_ARRAY_SUPPORT && typeof console != "undefined" && typeof console.error == "function" && console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");
+ function g() {
+ try {
+ var Ie = new Uint8Array(1), xe = { foo: function() {
+ return 42;
+ } };
+ return Object.setPrototypeOf(xe, Uint8Array.prototype), Object.setPrototypeOf(Ie, xe), Ie.foo() === 42;
+ } catch (ke) {
+ return false;
+ }
+ }
+ Object.defineProperty(A.prototype, "parent", { enumerable: true, get: function() {
+ if (A.isBuffer(this)) return this.buffer;
+ } }), Object.defineProperty(A.prototype, "offset", { enumerable: true, get: function() {
+ if (A.isBuffer(this)) return this.byteOffset;
+ } });
+ function P(Ie) {
+ if (Ie > M) throw new RangeError('The value "' + Ie + '" is invalid for option "size"');
+ var xe = new Uint8Array(Ie);
+ return Object.setPrototypeOf(xe, A.prototype), xe;
+ }
+ function A(Ie, xe, ke) {
+ if (typeof Ie == "number") {
+ if (typeof xe == "string") throw new TypeError('The "string" argument must be of type string. Received type number');
+ return G(Ie);
+ }
+ return z(Ie, xe, ke);
+ }
+ A.poolSize = 8192;
+ function z(Ie, xe, ke) {
+ if (typeof Ie == "string") return Z(Ie, xe);
+ if (ArrayBuffer.isView(Ie)) return N(Ie);
+ if (Ie == null) throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + T(Ie));
+ if (Ge(Ie, ArrayBuffer) || Ie && Ge(Ie.buffer, ArrayBuffer) || typeof SharedArrayBuffer != "undefined" && (Ge(Ie, SharedArrayBuffer) || Ie && Ge(Ie.buffer, SharedArrayBuffer))) return H(Ie, xe, ke);
+ if (typeof Ie == "number") throw new TypeError('The "value" argument must not be of type number. Received type number');
+ var vt = Ie.valueOf && Ie.valueOf();
+ if (vt != null && vt !== Ie) return A.from(vt, xe, ke);
+ var ir = re(Ie);
+ if (ir) return ir;
+ if (typeof Symbol != "undefined" && Symbol.toPrimitive != null && typeof Ie[Symbol.toPrimitive] == "function") return A.from(Ie[Symbol.toPrimitive]("string"), xe, ke);
+ throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + T(Ie));
+ }
+ A.from = function(Ie, xe, ke) {
+ return z(Ie, xe, ke);
+ }, Object.setPrototypeOf(A.prototype, Uint8Array.prototype), Object.setPrototypeOf(A, Uint8Array);
+ function O(Ie) {
+ if (typeof Ie != "number") throw new TypeError('"size" argument must be of type number');
+ if (Ie < 0) throw new RangeError('The value "' + Ie + '" is invalid for option "size"');
+ }
+ function U(Ie, xe, ke) {
+ return O(Ie), Ie <= 0 ? P(Ie) : xe !== void 0 ? typeof ke == "string" ? P(Ie).fill(xe, ke) : P(Ie).fill(xe) : P(Ie);
+ }
+ A.alloc = function(Ie, xe, ke) {
+ return U(Ie, xe, ke);
+ };
+ function G(Ie) {
+ return O(Ie), P(Ie < 0 ? 0 : oe(Ie) | 0);
+ }
+ A.allocUnsafe = function(Ie) {
+ return G(Ie);
+ }, A.allocUnsafeSlow = function(Ie) {
+ return G(Ie);
+ };
+ function Z(Ie, xe) {
+ if ((typeof xe != "string" || xe === "") && (xe = "utf8"), !A.isEncoding(xe)) throw new TypeError("Unknown encoding: " + xe);
+ var ke = Ce(Ie, xe) | 0, vt = P(ke), ir = vt.write(Ie, xe);
+ return ir !== ke && (vt = vt.slice(0, ir)), vt;
+ }
+ function j(Ie) {
+ for (var xe = Ie.length < 0 ? 0 : oe(Ie.length) | 0, ke = P(xe), vt = 0; vt < xe; vt += 1) ke[vt] = Ie[vt] & 255;
+ return ke;
+ }
+ function N(Ie) {
+ if (Ge(Ie, Uint8Array)) {
+ var xe = new Uint8Array(Ie);
+ return H(xe.buffer, xe.byteOffset, xe.byteLength);
+ }
+ return j(Ie);
+ }
+ function H(Ie, xe, ke) {
+ if (xe < 0 || Ie.byteLength < xe) throw new RangeError('"offset" is outside of buffer bounds');
+ if (Ie.byteLength < xe + (ke || 0)) throw new RangeError('"length" is outside of buffer bounds');
+ var vt;
+ return xe === void 0 && ke === void 0 ? vt = new Uint8Array(Ie) : ke === void 0 ? vt = new Uint8Array(Ie, xe) : vt = new Uint8Array(Ie, xe, ke), Object.setPrototypeOf(vt, A.prototype), vt;
+ }
+ function re(Ie) {
+ if (A.isBuffer(Ie)) {
+ var xe = oe(Ie.length) | 0, ke = P(xe);
+ return ke.length === 0 || Ie.copy(ke, 0, 0, xe), ke;
+ }
+ if (Ie.length !== void 0) return typeof Ie.length != "number" || Je(Ie.length) ? P(0) : j(Ie);
+ if (Ie.type === "Buffer" && Array.isArray(Ie.data)) return j(Ie.data);
+ }
+ function oe(Ie) {
+ if (Ie >= M) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + M.toString(16) + " bytes");
+ return Ie | 0;
+ }
+ A.isBuffer = function(xe) {
+ return xe != null && xe._isBuffer === true && xe !== A.prototype;
+ }, A.compare = function(xe, ke) {
+ if (Ge(xe, Uint8Array) && (xe = A.from(xe, xe.offset, xe.byteLength)), Ge(ke, Uint8Array) && (ke = A.from(ke, ke.offset, ke.byteLength)), !A.isBuffer(xe) || !A.isBuffer(ke)) throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');
+ if (xe === ke) return 0;
+ for (var vt = xe.length, ir = ke.length, ar = 0, vr = Math.min(vt, ir); ar < vr; ++ar) if (xe[ar] !== ke[ar]) {
+ vt = xe[ar], ir = ke[ar];
+ break;
+ }
+ return vt < ir ? -1 : ir < vt ? 1 : 0;
+ }, A.isEncoding = function(xe) {
+ switch (String(xe).toLowerCase()) {
+ case "hex":
+ case "utf8":
+ case "utf-8":
+ case "ascii":
+ case "latin1":
+ case "binary":
+ case "base64":
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return true;
+ default:
+ return false;
+ }
+ }, A.concat = function(xe, ke) {
+ if (!Array.isArray(xe)) throw new TypeError('"list" argument must be an Array of Buffers');
+ if (xe.length === 0) return A.alloc(0);
+ var vt;
+ if (ke === void 0) for (ke = 0, vt = 0; vt < xe.length; ++vt) ke += xe[vt].length;
+ var ir = A.allocUnsafe(ke), ar = 0;
+ for (vt = 0; vt < xe.length; ++vt) {
+ var vr = xe[vt];
+ if (Ge(vr, Uint8Array)) ar + vr.length > ir.length ? (A.isBuffer(vr) || (vr = A.from(vr)), vr.copy(ir, ar)) : Uint8Array.prototype.set.call(ir, vr, ar);
+ else if (A.isBuffer(vr)) vr.copy(ir, ar);
+ else throw new TypeError('"list" argument must be an Array of Buffers');
+ ar += vr.length;
+ }
+ return ir;
+ };
+ function Ce(Ie, xe) {
+ if (A.isBuffer(Ie)) return Ie.length;
+ if (ArrayBuffer.isView(Ie) || Ge(Ie, ArrayBuffer)) return Ie.byteLength;
+ if (typeof Ie != "string") throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + T(Ie));
+ var ke = Ie.length, vt = arguments.length > 2 && arguments[2] === true;
+ if (!vt && ke === 0) return 0;
+ for (var ir = false; ; ) switch (xe) {
+ case "ascii":
+ case "latin1":
+ case "binary":
+ return ke;
+ case "utf8":
+ case "utf-8":
+ return Lr(Ie).length;
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return ke * 2;
+ case "hex":
+ return ke >>> 1;
+ case "base64":
+ return Vr(Ie).length;
+ default:
+ if (ir) return vt ? -1 : Lr(Ie).length;
+ xe = ("" + xe).toLowerCase(), ir = true;
+ }
+ }
+ A.byteLength = Ce;
+ function Le(Ie, xe, ke) {
+ var vt = false;
+ if ((xe === void 0 || xe < 0) && (xe = 0), xe > this.length || ((ke === void 0 || ke > this.length) && (ke = this.length), ke <= 0) || (ke >>>= 0, xe >>>= 0, ke <= xe)) return "";
+ for (Ie || (Ie = "utf8"); ; ) switch (Ie) {
+ case "hex":
+ return ot(this, xe, ke);
+ case "utf8":
+ case "utf-8":
+ return ce(this, xe, ke);
+ case "ascii":
+ return pt(this, xe, ke);
+ case "latin1":
+ case "binary":
+ return Vt(this, xe, ke);
+ case "base64":
+ return De(this, xe, ke);
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return ut(this, xe, ke);
+ default:
+ if (vt) throw new TypeError("Unknown encoding: " + Ie);
+ Ie = (Ie + "").toLowerCase(), vt = true;
+ }
+ }
+ A.prototype._isBuffer = true;
+ function ge(Ie, xe, ke) {
+ var vt = Ie[xe];
+ Ie[xe] = Ie[ke], Ie[ke] = vt;
+ }
+ A.prototype.swap16 = function() {
+ var xe = this.length;
+ if (xe % 2 !== 0) throw new RangeError("Buffer size must be a multiple of 16-bits");
+ for (var ke = 0; ke < xe; ke += 2) ge(this, ke, ke + 1);
+ return this;
+ }, A.prototype.swap32 = function() {
+ var xe = this.length;
+ if (xe % 4 !== 0) throw new RangeError("Buffer size must be a multiple of 32-bits");
+ for (var ke = 0; ke < xe; ke += 4) ge(this, ke, ke + 3), ge(this, ke + 1, ke + 2);
+ return this;
+ }, A.prototype.swap64 = function() {
+ var xe = this.length;
+ if (xe % 8 !== 0) throw new RangeError("Buffer size must be a multiple of 64-bits");
+ for (var ke = 0; ke < xe; ke += 8) ge(this, ke, ke + 7), ge(this, ke + 1, ke + 6), ge(this, ke + 2, ke + 5), ge(this, ke + 3, ke + 4);
+ return this;
+ }, A.prototype.toString = function() {
+ var xe = this.length;
+ return xe === 0 ? "" : arguments.length === 0 ? ce(this, 0, xe) : Le.apply(this, arguments);
+ }, A.prototype.toLocaleString = A.prototype.toString, A.prototype.equals = function(xe) {
+ if (!A.isBuffer(xe)) throw new TypeError("Argument must be a Buffer");
+ return this === xe ? true : A.compare(this, xe) === 0;
+ }, A.prototype.inspect = function() {
+ var xe = "", ke = a.IS;
+ return xe = this.toString("hex", 0, ke).replace(/(.{2})/g, "$1 ").trim(), this.length > ke && (xe += " ... "), "";
+ }, C && (A.prototype[C] = A.prototype.inspect), A.prototype.compare = function(xe, ke, vt, ir, ar) {
+ if (Ge(xe, Uint8Array) && (xe = A.from(xe, xe.offset, xe.byteLength)), !A.isBuffer(xe)) throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + T(xe));
+ if (ke === void 0 && (ke = 0), vt === void 0 && (vt = xe ? xe.length : 0), ir === void 0 && (ir = 0), ar === void 0 && (ar = this.length), ke < 0 || vt > xe.length || ir < 0 || ar > this.length) throw new RangeError("out of range index");
+ if (ir >= ar && ke >= vt) return 0;
+ if (ir >= ar) return -1;
+ if (ke >= vt) return 1;
+ if (ke >>>= 0, vt >>>= 0, ir >>>= 0, ar >>>= 0, this === xe) return 0;
+ for (var vr = ar - ir, ii = vt - ke, pi = Math.min(vr, ii), $r = this.slice(ir, ar), di = xe.slice(ke, vt), ji = 0; ji < pi; ++ji) if ($r[ji] !== di[ji]) {
+ vr = $r[ji], ii = di[ji];
+ break;
+ }
+ return vr < ii ? -1 : ii < vr ? 1 : 0;
+ };
+ function ie(Ie, xe, ke, vt, ir) {
+ if (Ie.length === 0) return -1;
+ if (typeof ke == "string" ? (vt = ke, ke = 0) : ke > 2147483647 ? ke = 2147483647 : ke < -2147483648 && (ke = -2147483648), ke = +ke, Je(ke) && (ke = ir ? 0 : Ie.length - 1), ke < 0 && (ke = Ie.length + ke), ke >= Ie.length) {
+ if (ir) return -1;
+ ke = Ie.length - 1;
+ } else if (ke < 0) if (ir) ke = 0;
+ else return -1;
+ if (typeof xe == "string" && (xe = A.from(xe, vt)), A.isBuffer(xe)) return xe.length === 0 ? -1 : Se(Ie, xe, ke, vt, ir);
+ if (typeof xe == "number") return xe = xe & 255, typeof Uint8Array.prototype.indexOf == "function" ? ir ? Uint8Array.prototype.indexOf.call(Ie, xe, ke) : Uint8Array.prototype.lastIndexOf.call(Ie, xe, ke) : Se(Ie, [xe], ke, vt, ir);
+ throw new TypeError("val must be string, number or Buffer");
+ }
+ function Se(Ie, xe, ke, vt, ir) {
+ var ar = 1, vr = Ie.length, ii = xe.length;
+ if (vt !== void 0 && (vt = String(vt).toLowerCase(), vt === "ucs2" || vt === "ucs-2" || vt === "utf16le" || vt === "utf-16le")) {
+ if (Ie.length < 2 || xe.length < 2) return -1;
+ ar = 2, vr /= 2, ii /= 2, ke /= 2;
+ }
+ function pi(wi, On) {
+ return ar === 1 ? wi[On] : wi.readUInt16BE(On * ar);
+ }
+ var $r;
+ if (ir) {
+ var di = -1;
+ for ($r = ke; $r < vr; $r++) if (pi(Ie, $r) === pi(xe, di === -1 ? 0 : $r - di)) {
+ if (di === -1 && (di = $r), $r - di + 1 === ii) return di * ar;
+ } else di !== -1 && ($r -= $r - di), di = -1;
+ } else for (ke + ii > vr && (ke = vr - ii), $r = ke; $r >= 0; $r--) {
+ for (var ji = true, In = 0; In < ii; In++) if (pi(Ie, $r + In) !== pi(xe, In)) {
+ ji = false;
+ break;
+ }
+ if (ji) return $r;
+ }
+ return -1;
+ }
+ A.prototype.includes = function(xe, ke, vt) {
+ return this.indexOf(xe, ke, vt) !== -1;
+ }, A.prototype.indexOf = function(xe, ke, vt) {
+ return ie(this, xe, ke, vt, true);
+ }, A.prototype.lastIndexOf = function(xe, ke, vt) {
+ return ie(this, xe, ke, vt, false);
+ };
+ function Ee(Ie, xe, ke, vt) {
+ ke = Number(ke) || 0;
+ var ir = Ie.length - ke;
+ vt ? (vt = Number(vt), vt > ir && (vt = ir)) : vt = ir;
+ var ar = xe.length;
+ vt > ar / 2 && (vt = ar / 2);
+ var vr;
+ for (vr = 0; vr < vt; ++vr) {
+ var ii = parseInt(xe.substr(vr * 2, 2), 16);
+ if (Je(ii)) return vr;
+ Ie[ke + vr] = ii;
+ }
+ return vr;
+ }
+ function Ae(Ie, xe, ke, vt) {
+ return dt(Lr(xe, Ie.length - ke), Ie, ke, vt);
+ }
+ function Be(Ie, xe, ke, vt) {
+ return dt(ti(xe), Ie, ke, vt);
+ }
+ function Pe(Ie, xe, ke, vt) {
+ return dt(Vr(xe), Ie, ke, vt);
+ }
+ function me(Ie, xe, ke, vt) {
+ return dt(Br(xe, Ie.length - ke), Ie, ke, vt);
+ }
+ A.prototype.write = function(xe, ke, vt, ir) {
+ if (ke === void 0) ir = "utf8", vt = this.length, ke = 0;
+ else if (vt === void 0 && typeof ke == "string") ir = ke, vt = this.length, ke = 0;
+ else if (isFinite(ke)) ke = ke >>> 0, isFinite(vt) ? (vt = vt >>> 0, ir === void 0 && (ir = "utf8")) : (ir = vt, vt = void 0);
+ else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
+ var ar = this.length - ke;
+ if ((vt === void 0 || vt > ar) && (vt = ar), xe.length > 0 && (vt < 0 || ke < 0) || ke > this.length) throw new RangeError("Attempt to write outside buffer bounds");
+ ir || (ir = "utf8");
+ for (var vr = false; ; ) switch (ir) {
+ case "hex":
+ return Ee(this, xe, ke, vt);
+ case "utf8":
+ case "utf-8":
+ return Ae(this, xe, ke, vt);
+ case "ascii":
+ case "latin1":
+ case "binary":
+ return Be(this, xe, ke, vt);
+ case "base64":
+ return Pe(this, xe, ke, vt);
+ case "ucs2":
+ case "ucs-2":
+ case "utf16le":
+ case "utf-16le":
+ return me(this, xe, ke, vt);
+ default:
+ if (vr) throw new TypeError("Unknown encoding: " + ir);
+ ir = ("" + ir).toLowerCase(), vr = true;
+ }
+ }, A.prototype.toJSON = function() {
+ return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) };
+ };
+ function De(Ie, xe, ke) {
+ return xe === 0 && ke === Ie.length ? L.fromByteArray(Ie) : L.fromByteArray(Ie.slice(xe, ke));
+ }
+ function ce(Ie, xe, ke) {
+ ke = Math.min(Ie.length, ke);
+ for (var vt = [], ir = xe; ir < ke; ) {
+ var ar = Ie[ir], vr = null, ii = ar > 239 ? 4 : ar > 223 ? 3 : ar > 191 ? 2 : 1;
+ if (ir + ii <= ke) {
+ var pi = void 0, $r = void 0, di = void 0, ji = void 0;
+ switch (ii) {
+ case 1:
+ ar < 128 && (vr = ar);
+ break;
+ case 2:
+ pi = Ie[ir + 1], (pi & 192) === 128 && (ji = (ar & 31) << 6 | pi & 63, ji > 127 && (vr = ji));
+ break;
+ case 3:
+ pi = Ie[ir + 1], $r = Ie[ir + 2], (pi & 192) === 128 && ($r & 192) === 128 && (ji = (ar & 15) << 12 | (pi & 63) << 6 | $r & 63, ji > 2047 && (ji < 55296 || ji > 57343) && (vr = ji));
+ break;
+ case 4:
+ pi = Ie[ir + 1], $r = Ie[ir + 2], di = Ie[ir + 3], (pi & 192) === 128 && ($r & 192) === 128 && (di & 192) === 128 && (ji = (ar & 15) << 18 | (pi & 63) << 12 | ($r & 63) << 6 | di & 63, ji > 65535 && ji < 1114112 && (vr = ji));
+ }
+ }
+ vr === null ? (vr = 65533, ii = 1) : vr > 65535 && (vr -= 65536, vt.push(vr >>> 10 & 1023 | 55296), vr = 56320 | vr & 1023), vt.push(vr), ir += ii;
+ }
+ return lt(vt);
+ }
+ var je = 4096;
+ function lt(Ie) {
+ var xe = Ie.length;
+ if (xe <= je) return String.fromCharCode.apply(String, Ie);
+ for (var ke = "", vt = 0; vt < xe; ) ke += String.fromCharCode.apply(String, Ie.slice(vt, vt += je));
+ return ke;
+ }
+ function pt(Ie, xe, ke) {
+ var vt = "";
+ ke = Math.min(Ie.length, ke);
+ for (var ir = xe; ir < ke; ++ir) vt += String.fromCharCode(Ie[ir] & 127);
+ return vt;
+ }
+ function Vt(Ie, xe, ke) {
+ var vt = "";
+ ke = Math.min(Ie.length, ke);
+ for (var ir = xe; ir < ke; ++ir) vt += String.fromCharCode(Ie[ir]);
+ return vt;
+ }
+ function ot(Ie, xe, ke) {
+ var vt = Ie.length;
+ (!xe || xe < 0) && (xe = 0), (!ke || ke < 0 || ke > vt) && (ke = vt);
+ for (var ir = "", ar = xe; ar < ke; ++ar) ir += We[Ie[ar]];
+ return ir;
+ }
+ function ut(Ie, xe, ke) {
+ for (var vt = Ie.slice(xe, ke), ir = "", ar = 0; ar < vt.length - 1; ar += 2) ir += String.fromCharCode(vt[ar] + vt[ar + 1] * 256);
+ return ir;
+ }
+ A.prototype.slice = function(xe, ke) {
+ var vt = this.length;
+ xe = ~~xe, ke = ke === void 0 ? vt : ~~ke, xe < 0 ? (xe += vt, xe < 0 && (xe = 0)) : xe > vt && (xe = vt), ke < 0 ? (ke += vt, ke < 0 && (ke = 0)) : ke > vt && (ke = vt), ke < xe && (ke = xe);
+ var ir = this.subarray(xe, ke);
+ return Object.setPrototypeOf(ir, A.prototype), ir;
+ };
+ function Wt(Ie, xe, ke) {
+ if (Ie % 1 !== 0 || Ie < 0) throw new RangeError("offset is not uint");
+ if (Ie + xe > ke) throw new RangeError("Trying to access beyond buffer length");
+ }
+ A.prototype.readUintLE = A.prototype.readUIntLE = function(xe, ke, vt) {
+ xe = xe >>> 0, ke = ke >>> 0, vt || Wt(xe, ke, this.length);
+ for (var ir = this[xe], ar = 1, vr = 0; ++vr < ke && (ar *= 256); ) ir += this[xe + vr] * ar;
+ return ir;
+ }, A.prototype.readUintBE = A.prototype.readUIntBE = function(xe, ke, vt) {
+ xe = xe >>> 0, ke = ke >>> 0, vt || Wt(xe, ke, this.length);
+ for (var ir = this[xe + --ke], ar = 1; ke > 0 && (ar *= 256); ) ir += this[xe + --ke] * ar;
+ return ir;
+ }, A.prototype.readUint8 = A.prototype.readUInt8 = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 1, this.length), this[xe];
+ }, A.prototype.readUint16LE = A.prototype.readUInt16LE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 2, this.length), this[xe] | this[xe + 1] << 8;
+ }, A.prototype.readUint16BE = A.prototype.readUInt16BE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 2, this.length), this[xe] << 8 | this[xe + 1];
+ }, A.prototype.readUint32LE = A.prototype.readUInt32LE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 4, this.length), (this[xe] | this[xe + 1] << 8 | this[xe + 2] << 16) + this[xe + 3] * 16777216;
+ }, A.prototype.readUint32BE = A.prototype.readUInt32BE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 4, this.length), this[xe] * 16777216 + (this[xe + 1] << 16 | this[xe + 2] << 8 | this[xe + 3]);
+ }, A.prototype.readBigUInt64LE = tt(function(xe) {
+ xe = xe >>> 0, mt(xe, "offset");
+ var ke = this[xe], vt = this[xe + 7];
+ (ke === void 0 || vt === void 0) && er(xe, this.length - 8);
+ var ir = ke + this[++xe] * Math.pow(2, 8) + this[++xe] * Math.pow(2, 16) + this[++xe] * Math.pow(2, 24), ar = this[++xe] + this[++xe] * Math.pow(2, 8) + this[++xe] * Math.pow(2, 16) + vt * Math.pow(2, 24);
+ return BigInt(ir) + (BigInt(ar) << BigInt(32));
+ }), A.prototype.readBigUInt64BE = tt(function(xe) {
+ xe = xe >>> 0, mt(xe, "offset");
+ var ke = this[xe], vt = this[xe + 7];
+ (ke === void 0 || vt === void 0) && er(xe, this.length - 8);
+ var ir = ke * Math.pow(2, 24) + this[++xe] * Math.pow(2, 16) + this[++xe] * Math.pow(2, 8) + this[++xe], ar = this[++xe] * Math.pow(2, 24) + this[++xe] * Math.pow(2, 16) + this[++xe] * Math.pow(2, 8) + vt;
+ return (BigInt(ir) << BigInt(32)) + BigInt(ar);
+ }), A.prototype.readIntLE = function(xe, ke, vt) {
+ xe = xe >>> 0, ke = ke >>> 0, vt || Wt(xe, ke, this.length);
+ for (var ir = this[xe], ar = 1, vr = 0; ++vr < ke && (ar *= 256); ) ir += this[xe + vr] * ar;
+ return ar *= 128, ir >= ar && (ir -= Math.pow(2, 8 * ke)), ir;
+ }, A.prototype.readIntBE = function(xe, ke, vt) {
+ xe = xe >>> 0, ke = ke >>> 0, vt || Wt(xe, ke, this.length);
+ for (var ir = ke, ar = 1, vr = this[xe + --ir]; ir > 0 && (ar *= 256); ) vr += this[xe + --ir] * ar;
+ return ar *= 128, vr >= ar && (vr -= Math.pow(2, 8 * ke)), vr;
+ }, A.prototype.readInt8 = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 1, this.length), this[xe] & 128 ? (255 - this[xe] + 1) * -1 : this[xe];
+ }, A.prototype.readInt16LE = function(xe, ke) {
+ xe = xe >>> 0, ke || Wt(xe, 2, this.length);
+ var vt = this[xe] | this[xe + 1] << 8;
+ return vt & 32768 ? vt | 4294901760 : vt;
+ }, A.prototype.readInt16BE = function(xe, ke) {
+ xe = xe >>> 0, ke || Wt(xe, 2, this.length);
+ var vt = this[xe + 1] | this[xe] << 8;
+ return vt & 32768 ? vt | 4294901760 : vt;
+ }, A.prototype.readInt32LE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 4, this.length), this[xe] | this[xe + 1] << 8 | this[xe + 2] << 16 | this[xe + 3] << 24;
+ }, A.prototype.readInt32BE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 4, this.length), this[xe] << 24 | this[xe + 1] << 16 | this[xe + 2] << 8 | this[xe + 3];
+ }, A.prototype.readBigInt64LE = tt(function(xe) {
+ xe = xe >>> 0, mt(xe, "offset");
+ var ke = this[xe], vt = this[xe + 7];
+ (ke === void 0 || vt === void 0) && er(xe, this.length - 8);
+ var ir = this[xe + 4] + this[xe + 5] * Math.pow(2, 8) + this[xe + 6] * Math.pow(2, 16) + (vt << 24);
+ return (BigInt(ir) << BigInt(32)) + BigInt(ke + this[++xe] * Math.pow(2, 8) + this[++xe] * Math.pow(2, 16) + this[++xe] * Math.pow(2, 24));
+ }), A.prototype.readBigInt64BE = tt(function(xe) {
+ xe = xe >>> 0, mt(xe, "offset");
+ var ke = this[xe], vt = this[xe + 7];
+ (ke === void 0 || vt === void 0) && er(xe, this.length - 8);
+ var ir = (ke << 24) + this[++xe] * Math.pow(2, 16) + this[++xe] * Math.pow(2, 8) + this[++xe];
+ return (BigInt(ir) << BigInt(32)) + BigInt(this[++xe] * Math.pow(2, 24) + this[++xe] * Math.pow(2, 16) + this[++xe] * Math.pow(2, 8) + vt);
+ }), A.prototype.readFloatLE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 4, this.length), x.read(this, xe, true, 23, 4);
+ }, A.prototype.readFloatBE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 4, this.length), x.read(this, xe, false, 23, 4);
+ }, A.prototype.readDoubleLE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 8, this.length), x.read(this, xe, true, 52, 8);
+ }, A.prototype.readDoubleBE = function(xe, ke) {
+ return xe = xe >>> 0, ke || Wt(xe, 8, this.length), x.read(this, xe, false, 52, 8);
+ };
+ function Nt(Ie, xe, ke, vt, ir, ar) {
+ if (!A.isBuffer(Ie)) throw new TypeError('"buffer" argument must be a Buffer instance');
+ if (xe > ir || xe < ar) throw new RangeError('"value" argument is out of bounds');
+ if (ke + vt > Ie.length) throw new RangeError("Index out of range");
+ }
+ A.prototype.writeUintLE = A.prototype.writeUIntLE = function(xe, ke, vt, ir) {
+ if (xe = +xe, ke = ke >>> 0, vt = vt >>> 0, !ir) {
+ var ar = Math.pow(2, 8 * vt) - 1;
+ Nt(this, xe, ke, vt, ar, 0);
+ }
+ var vr = 1, ii = 0;
+ for (this[ke] = xe & 255; ++ii < vt && (vr *= 256); ) this[ke + ii] = xe / vr & 255;
+ return ke + vt;
+ }, A.prototype.writeUintBE = A.prototype.writeUIntBE = function(xe, ke, vt, ir) {
+ if (xe = +xe, ke = ke >>> 0, vt = vt >>> 0, !ir) {
+ var ar = Math.pow(2, 8 * vt) - 1;
+ Nt(this, xe, ke, vt, ar, 0);
+ }
+ var vr = vt - 1, ii = 1;
+ for (this[ke + vr] = xe & 255; --vr >= 0 && (ii *= 256); ) this[ke + vr] = xe / ii & 255;
+ return ke + vt;
+ }, A.prototype.writeUint8 = A.prototype.writeUInt8 = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 1, 255, 0), this[ke] = xe & 255, ke + 1;
+ }, A.prototype.writeUint16LE = A.prototype.writeUInt16LE = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 2, 65535, 0), this[ke] = xe & 255, this[ke + 1] = xe >>> 8, ke + 2;
+ }, A.prototype.writeUint16BE = A.prototype.writeUInt16BE = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 2, 65535, 0), this[ke] = xe >>> 8, this[ke + 1] = xe & 255, ke + 2;
+ }, A.prototype.writeUint32LE = A.prototype.writeUInt32LE = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 4, 4294967295, 0), this[ke + 3] = xe >>> 24, this[ke + 2] = xe >>> 16, this[ke + 1] = xe >>> 8, this[ke] = xe & 255, ke + 4;
+ }, A.prototype.writeUint32BE = A.prototype.writeUInt32BE = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 4, 4294967295, 0), this[ke] = xe >>> 24, this[ke + 1] = xe >>> 16, this[ke + 2] = xe >>> 8, this[ke + 3] = xe & 255, ke + 4;
+ };
+ function $t(Ie, xe, ke, vt, ir) {
+ It(xe, vt, ir, Ie, ke, 7);
+ var ar = Number(xe & BigInt(4294967295));
+ Ie[ke++] = ar, ar = ar >> 8, Ie[ke++] = ar, ar = ar >> 8, Ie[ke++] = ar, ar = ar >> 8, Ie[ke++] = ar;
+ var vr = Number(xe >> BigInt(32) & BigInt(4294967295));
+ return Ie[ke++] = vr, vr = vr >> 8, Ie[ke++] = vr, vr = vr >> 8, Ie[ke++] = vr, vr = vr >> 8, Ie[ke++] = vr, ke;
+ }
+ function sr(Ie, xe, ke, vt, ir) {
+ It(xe, vt, ir, Ie, ke, 7);
+ var ar = Number(xe & BigInt(4294967295));
+ Ie[ke + 7] = ar, ar = ar >> 8, Ie[ke + 6] = ar, ar = ar >> 8, Ie[ke + 5] = ar, ar = ar >> 8, Ie[ke + 4] = ar;
+ var vr = Number(xe >> BigInt(32) & BigInt(4294967295));
+ return Ie[ke + 3] = vr, vr = vr >> 8, Ie[ke + 2] = vr, vr = vr >> 8, Ie[ke + 1] = vr, vr = vr >> 8, Ie[ke] = vr, ke + 8;
+ }
+ A.prototype.writeBigUInt64LE = tt(function(xe) {
+ var ke = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ return $t(this, xe, ke, BigInt(0), BigInt("0xffffffffffffffff"));
+ }), A.prototype.writeBigUInt64BE = tt(function(xe) {
+ var ke = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ return sr(this, xe, ke, BigInt(0), BigInt("0xffffffffffffffff"));
+ }), A.prototype.writeIntLE = function(xe, ke, vt, ir) {
+ if (xe = +xe, ke = ke >>> 0, !ir) {
+ var ar = Math.pow(2, 8 * vt - 1);
+ Nt(this, xe, ke, vt, ar - 1, -ar);
+ }
+ var vr = 0, ii = 1, pi = 0;
+ for (this[ke] = xe & 255; ++vr < vt && (ii *= 256); ) xe < 0 && pi === 0 && this[ke + vr - 1] !== 0 && (pi = 1), this[ke + vr] = (xe / ii >> 0) - pi & 255;
+ return ke + vt;
+ }, A.prototype.writeIntBE = function(xe, ke, vt, ir) {
+ if (xe = +xe, ke = ke >>> 0, !ir) {
+ var ar = Math.pow(2, 8 * vt - 1);
+ Nt(this, xe, ke, vt, ar - 1, -ar);
+ }
+ var vr = vt - 1, ii = 1, pi = 0;
+ for (this[ke + vr] = xe & 255; --vr >= 0 && (ii *= 256); ) xe < 0 && pi === 0 && this[ke + vr + 1] !== 0 && (pi = 1), this[ke + vr] = (xe / ii >> 0) - pi & 255;
+ return ke + vt;
+ }, A.prototype.writeInt8 = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 1, 127, -128), xe < 0 && (xe = 255 + xe + 1), this[ke] = xe & 255, ke + 1;
+ }, A.prototype.writeInt16LE = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 2, 32767, -32768), this[ke] = xe & 255, this[ke + 1] = xe >>> 8, ke + 2;
+ }, A.prototype.writeInt16BE = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 2, 32767, -32768), this[ke] = xe >>> 8, this[ke + 1] = xe & 255, ke + 2;
+ }, A.prototype.writeInt32LE = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 4, 2147483647, -2147483648), this[ke] = xe & 255, this[ke + 1] = xe >>> 8, this[ke + 2] = xe >>> 16, this[ke + 3] = xe >>> 24, ke + 4;
+ }, A.prototype.writeInt32BE = function(xe, ke, vt) {
+ return xe = +xe, ke = ke >>> 0, vt || Nt(this, xe, ke, 4, 2147483647, -2147483648), xe < 0 && (xe = 4294967295 + xe + 1), this[ke] = xe >>> 24, this[ke + 1] = xe >>> 16, this[ke + 2] = xe >>> 8, this[ke + 3] = xe & 255, ke + 4;
+ }, A.prototype.writeBigInt64LE = tt(function(xe) {
+ var ke = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ return $t(this, xe, ke, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));
+ }), A.prototype.writeBigInt64BE = tt(function(xe) {
+ var ke = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
+ return sr(this, xe, ke, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));
+ });
+ function Tr(Ie, xe, ke, vt, ir, ar) {
+ if (ke + vt > Ie.length) throw new RangeError("Index out of range");
+ if (ke < 0) throw new RangeError("Index out of range");
+ }
+ function fr(Ie, xe, ke, vt, ir) {
+ return xe = +xe, ke = ke >>> 0, ir || Tr(Ie, xe, ke, 4), x.write(Ie, xe, ke, vt, 23, 4), ke + 4;
+ }
+ A.prototype.writeFloatLE = function(xe, ke, vt) {
+ return fr(this, xe, ke, true, vt);
+ }, A.prototype.writeFloatBE = function(xe, ke, vt) {
+ return fr(this, xe, ke, false, vt);
+ };
+ function $e(Ie, xe, ke, vt, ir) {
+ return xe = +xe, ke = ke >>> 0, ir || Tr(Ie, xe, ke, 8), x.write(Ie, xe, ke, vt, 52, 8), ke + 8;
+ }
+ A.prototype.writeDoubleLE = function(xe, ke, vt) {
+ return $e(this, xe, ke, true, vt);
+ }, A.prototype.writeDoubleBE = function(xe, ke, vt) {
+ return $e(this, xe, ke, false, vt);
+ }, A.prototype.copy = function(xe, ke, vt, ir) {
+ if (!A.isBuffer(xe)) throw new TypeError("argument should be a Buffer");
+ if (vt || (vt = 0), !ir && ir !== 0 && (ir = this.length), ke >= xe.length && (ke = xe.length), ke || (ke = 0), ir > 0 && ir < vt && (ir = vt), ir === vt || xe.length === 0 || this.length === 0) return 0;
+ if (ke < 0) throw new RangeError("targetStart out of bounds");
+ if (vt < 0 || vt >= this.length) throw new RangeError("Index out of range");
+ if (ir < 0) throw new RangeError("sourceEnd out of bounds");
+ ir > this.length && (ir = this.length), xe.length - ke < ir - vt && (ir = xe.length - ke + vt);
+ var ar = ir - vt;
+ return this === xe && typeof Uint8Array.prototype.copyWithin == "function" ? this.copyWithin(ke, vt, ir) : Uint8Array.prototype.set.call(xe, this.subarray(vt, ir), ke), ar;
+ }, A.prototype.fill = function(xe, ke, vt, ir) {
+ if (typeof xe == "string") {
+ if (typeof ke == "string" ? (ir = ke, ke = 0, vt = this.length) : typeof vt == "string" && (ir = vt, vt = this.length), ir !== void 0 && typeof ir != "string") throw new TypeError("encoding must be a string");
+ if (typeof ir == "string" && !A.isEncoding(ir)) throw new TypeError("Unknown encoding: " + ir);
+ if (xe.length === 1) {
+ var ar = xe.charCodeAt(0);
+ (ir === "utf8" && ar < 128 || ir === "latin1") && (xe = ar);
+ }
+ } else typeof xe == "number" ? xe = xe & 255 : typeof xe == "boolean" && (xe = Number(xe));
+ if (ke < 0 || this.length < ke || this.length < vt) throw new RangeError("Out of range index");
+ if (vt <= ke) return this;
+ ke = ke >>> 0, vt = vt === void 0 ? this.length : vt >>> 0, xe || (xe = 0);
+ var vr;
+ if (typeof xe == "number") for (vr = ke; vr < vt; ++vr) this[vr] = xe;
+ else {
+ var ii = A.isBuffer(xe) ? xe : A.from(xe, ir), pi = ii.length;
+ if (pi === 0) throw new TypeError('The value "' + xe + '" is invalid for argument "value"');
+ for (vr = 0; vr < vt - ke; ++vr) this[vr + ke] = ii[vr % pi];
+ }
+ return this;
+ };
+ var St = {};
+ function Qt(Ie, xe, ke) {
+ St[Ie] = function(vt) {
+ function ir() {
+ var ar;
+ return l(this, ir), ar = d(this, ir), Object.defineProperty(ar, "message", { value: xe.apply(ar, arguments), writable: true, configurable: true }), ar.name = "".concat(ar.name, " [").concat(Ie, "]"), ar.stack, delete ar.name, ar;
+ }
+ return k(ir, vt), c(ir, [{ key: "code", get: function() {
+ return Ie;
+ }, set: function(vr) {
+ Object.defineProperty(this, "code", { configurable: true, enumerable: true, value: vr, writable: true });
+ } }, { key: "toString", value: function() {
+ return "".concat(this.name, " [").concat(Ie, "]: ").concat(this.message);
+ } }]);
+ }(ke);
+ }
+ Qt("ERR_BUFFER_OUT_OF_BOUNDS", function(Ie) {
+ return Ie ? "".concat(Ie, " is outside of buffer bounds") : "Attempt to access memory outside buffer bounds";
+ }, RangeError), Qt("ERR_INVALID_ARG_TYPE", function(Ie, xe) {
+ return 'The "'.concat(Ie, '" argument must be of type number. Received type ').concat(T(xe));
+ }, TypeError), Qt("ERR_OUT_OF_RANGE", function(Ie, xe, ke) {
+ var vt = 'The value of "'.concat(Ie, '" is out of range.'), ir = ke;
+ return Number.isInteger(ke) && Math.abs(ke) > Math.pow(2, 32) ? ir = Gt(String(ke)) : typeof ke == "bigint" && (ir = String(ke), (ke > Math.pow(BigInt(2), BigInt(32)) || ke < -Math.pow(BigInt(2), BigInt(32))) && (ir = Gt(ir)), ir += "n"), vt += " It must be ".concat(xe, ". Received ").concat(ir), vt;
+ }, RangeError);
+ function Gt(Ie) {
+ for (var xe = "", ke = Ie.length, vt = Ie[0] === "-" ? 1 : 0; ke >= vt + 4; ke -= 3) xe = "_".concat(Ie.slice(ke - 3, ke)).concat(xe);
+ return "".concat(Ie.slice(0, ke)).concat(xe);
+ }
+ function _t(Ie, xe, ke) {
+ mt(xe, "offset"), (Ie[xe] === void 0 || Ie[xe + ke] === void 0) && er(xe, Ie.length - (ke + 1));
+ }
+ function It(Ie, xe, ke, vt, ir, ar) {
+ if (Ie > ke || Ie < xe) {
+ var vr = typeof xe == "bigint" ? "n" : "", ii;
+ throw xe === 0 || xe === BigInt(0) ? ii = ">= 0".concat(vr, " and < 2").concat(vr, " ** ").concat((ar + 1) * 8).concat(vr) : ii = ">= -(2".concat(vr, " ** ").concat((ar + 1) * 8 - 1).concat(vr, ") and < 2 ** ") + "".concat((ar + 1) * 8 - 1).concat(vr), new St.ERR_OUT_OF_RANGE("value", ii, Ie);
+ }
+ _t(vt, ir, ar);
+ }
+ function mt(Ie, xe) {
+ if (typeof Ie != "number") throw new St.ERR_INVALID_ARG_TYPE(xe, "number", Ie);
+ }
+ function er(Ie, xe, ke) {
+ throw Math.floor(Ie) !== Ie ? (mt(Ie, ke), new St.ERR_OUT_OF_RANGE("offset", "an integer", Ie)) : xe < 0 ? new St.ERR_BUFFER_OUT_OF_BOUNDS() : new St.ERR_OUT_OF_RANGE("offset", ">= ".concat(0, " and <= ").concat(xe), Ie);
+ }
+ var lr = /[^+/0-9A-Za-z-_]/g;
+ function wr(Ie) {
+ if (Ie = Ie.split("=")[0], Ie = Ie.trim().replace(lr, ""), Ie.length < 2) return "";
+ for (; Ie.length % 4 !== 0; ) Ie = Ie + "=";
+ return Ie;
+ }
+ function Lr(Ie, xe) {
+ xe = xe || 1 / 0;
+ for (var ke, vt = Ie.length, ir = null, ar = [], vr = 0; vr < vt; ++vr) {
+ if (ke = Ie.charCodeAt(vr), ke > 55295 && ke < 57344) {
+ if (!ir) {
+ if (ke > 56319) {
+ (xe -= 3) > -1 && ar.push(239, 191, 189);
+ continue;
+ } else if (vr + 1 === vt) {
+ (xe -= 3) > -1 && ar.push(239, 191, 189);
+ continue;
+ }
+ ir = ke;
+ continue;
+ }
+ if (ke < 56320) {
+ (xe -= 3) > -1 && ar.push(239, 191, 189), ir = ke;
+ continue;
+ }
+ ke = (ir - 55296 << 10 | ke - 56320) + 65536;
+ } else ir && (xe -= 3) > -1 && ar.push(239, 191, 189);
+ if (ir = null, ke < 128) {
+ if ((xe -= 1) < 0) break;
+ ar.push(ke);
+ } else if (ke < 2048) {
+ if ((xe -= 2) < 0) break;
+ ar.push(ke >> 6 | 192, ke & 63 | 128);
+ } else if (ke < 65536) {
+ if ((xe -= 3) < 0) break;
+ ar.push(ke >> 12 | 224, ke >> 6 & 63 | 128, ke & 63 | 128);
+ } else if (ke < 1114112) {
+ if ((xe -= 4) < 0) break;
+ ar.push(ke >> 18 | 240, ke >> 12 & 63 | 128, ke >> 6 & 63 | 128, ke & 63 | 128);
+ } else throw new Error("Invalid code point");
+ }
+ return ar;
+ }
+ function ti(Ie) {
+ for (var xe = [], ke = 0; ke < Ie.length; ++ke) xe.push(Ie.charCodeAt(ke) & 255);
+ return xe;
+ }
+ function Br(Ie, xe) {
+ for (var ke, vt, ir, ar = [], vr = 0; vr < Ie.length && !((xe -= 2) < 0); ++vr) ke = Ie.charCodeAt(vr), vt = ke >> 8, ir = ke % 256, ar.push(ir), ar.push(vt);
+ return ar;
+ }
+ function Vr(Ie) {
+ return L.toByteArray(wr(Ie));
+ }
+ function dt(Ie, xe, ke, vt) {
+ var ir;
+ for (ir = 0; ir < vt && !(ir + ke >= xe.length || ir >= Ie.length); ++ir) xe[ir + ke] = Ie[ir];
+ return ir;
+ }
+ function Ge(Ie, xe) {
+ return Ie instanceof xe || Ie != null && Ie.constructor != null && Ie.constructor.name != null && Ie.constructor.name === xe.name;
+ }
+ function Je(Ie) {
+ return Ie !== Ie;
+ }
+ var We = function() {
+ for (var Ie = "0123456789abcdef", xe = new Array(256), ke = 0; ke < 16; ++ke) for (var vt = ke * 16, ir = 0; ir < 16; ++ir) xe[vt + ir] = Ie[ke] + Ie[ir];
+ return xe;
+ }();
+ function tt(Ie) {
+ return typeof BigInt == "undefined" ? xt : Ie;
+ }
+ function xt() {
+ throw new Error("BigInt not supported");
+ }
+ }, 4844: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ return o[0] = s[0] + l[0] * u, o[1] = s[1] + l[1] * u, o[2] = s[2] + l[2] * u, o[3] = s[3] + l[3] * u, o;
+ }
+ }, 4905: function(i, a, o) {
+ var s = o(5874);
+ i.exports = l;
+ function l(u, c) {
+ var f = s(c), h = [];
+ return h = h.concat(f(u)), h = h.concat(f(null)), h;
+ }
+ }, 4935: function(i, a, o) {
+ i.exports = k;
+ var s = o(2762), l = o(8116), u = o(4359), c = o(1879).Q, f = window || process.global || {}, h = f.__TEXT_CACHE || {};
+ f.__TEXT_CACHE = {};
+ var d = 3;
+ function v(E, T, L, x) {
+ this.gl = E, this.shader = T, this.buffer = L, this.vao = x, this.tickOffset = this.tickCount = this.labelOffset = this.labelCount = null;
+ }
+ var _ = v.prototype, b = [0, 0];
+ _.bind = function(E, T, L, x) {
+ this.vao.bind(), this.shader.bind();
+ var C = this.shader.uniforms;
+ C.model = E, C.view = T, C.projection = L, C.pixelScale = x, b[0] = this.gl.drawingBufferWidth, b[1] = this.gl.drawingBufferHeight, this.shader.uniforms.resolution = b;
+ }, _.unbind = function() {
+ this.vao.unbind();
+ }, _.update = function(E, T, L, x, C) {
+ var M = [];
+ function g(H, re, oe, _e, Ce, Le) {
+ var ge = [oe.style, oe.weight, oe.variant, oe.family].join("_"), ie = h[ge];
+ ie || (ie = h[ge] = {});
+ var Se = ie[re];
+ Se || (Se = ie[re] = p(re, { triangles: true, font: oe.family, fontStyle: oe.style, fontWeight: oe.weight, fontVariant: oe.variant, textAlign: "center", textBaseline: "middle", lineSpacing: Ce, styletags: Le }));
+ for (var Ee = (_e || 12) / 12, Ae = Se.positions, Be = Se.cells, Pe = 0, me = Be.length; Pe < me; ++Pe) for (var De = Be[Pe], ce = 2; ce >= 0; --ce) {
+ var je = Ae[De[ce]];
+ M.push(Ee * je[0], -Ee * je[1], H);
+ }
+ }
+ for (var P = [0, 0, 0], A = [0, 0, 0], z = [0, 0, 0], O = [0, 0, 0], U = 1.25, G = { breaklines: true, bolds: true, italics: true, subscripts: true, superscripts: true }, Z = 0; Z < 3; ++Z) {
+ z[Z] = M.length / d | 0, g(0.5 * (E[0][Z] + E[1][Z]), T[Z], L[Z], 12, U, G), O[Z] = (M.length / d | 0) - z[Z], P[Z] = M.length / d | 0;
+ for (var j = 0; j < x[Z].length; ++j) if (x[Z][j].text) {
+ var N = { family: x[Z][j].font || C[Z].family, style: C[Z].fontStyle || C[Z].style, weight: C[Z].fontWeight || C[Z].weight, variant: C[Z].fontVariant || C[Z].variant };
+ g(x[Z][j].x, x[Z][j].text, N, x[Z][j].fontSize || 12, U, G);
+ }
+ A[Z] = (M.length / d | 0) - P[Z];
+ }
+ this.buffer.update(M), this.tickOffset = P, this.tickCount = A, this.labelOffset = z, this.labelCount = O;
+ }, _.drawTicks = function(E, T, L, x, C, M, g, P) {
+ this.tickCount[E] && (this.shader.uniforms.axis = M, this.shader.uniforms.color = C, this.shader.uniforms.angle = L, this.shader.uniforms.scale = T, this.shader.uniforms.offset = x, this.shader.uniforms.alignDir = g, this.shader.uniforms.alignOpt = P, this.vao.draw(this.gl.TRIANGLES, this.tickCount[E], this.tickOffset[E]));
+ }, _.drawLabel = function(E, T, L, x, C, M, g, P) {
+ this.labelCount[E] && (this.shader.uniforms.axis = M, this.shader.uniforms.color = C, this.shader.uniforms.angle = L, this.shader.uniforms.scale = T, this.shader.uniforms.offset = x, this.shader.uniforms.alignDir = g, this.shader.uniforms.alignOpt = P, this.vao.draw(this.gl.TRIANGLES, this.labelCount[E], this.labelOffset[E]));
+ }, _.dispose = function() {
+ this.shader.dispose(), this.vao.dispose(), this.buffer.dispose();
+ };
+ function p(E, T) {
+ try {
+ return u(E, T);
+ } catch (L) {
+ return console.warn('error vectorizing text:"' + E + '" error:', L), { cells: [], positions: [] };
+ }
+ }
+ function k(E, T, L, x, C, M) {
+ var g = s(E), P = l(E, [{ buffer: g, size: 3 }]), A = c(E);
+ A.attributes.position.location = 0;
+ var z = new v(E, A, g, P);
+ return z.update(T, L, x, C, M), z;
+ }
+ }, 5023: function(i, a, o) {
+ var s = o(2478);
+ i.exports = d;
+ function l(v, _, b, p, k, E, T) {
+ this.cells = v, this.neighbor = _, this.flags = p, this.constraint = b, this.active = k, this.next = E, this.boundary = T;
+ }
+ var u = l.prototype;
+ function c(v, _) {
+ return v[0] - _[0] || v[1] - _[1] || v[2] - _[2];
+ }
+ u.locate = /* @__PURE__ */ function() {
+ var v = [0, 0, 0];
+ return function(_, b, p) {
+ var k = _, E = b, T = p;
+ return b < p ? b < _ && (k = b, E = p, T = _) : p < _ && (k = p, E = _, T = b), k < 0 ? -1 : (v[0] = k, v[1] = E, v[2] = T, s.eq(this.cells, v, c));
+ };
+ }();
+ function f(v, _) {
+ for (var b = v.cells(), p = b.length, k = 0; k < p; ++k) {
+ var E = b[k], T = E[0], L = E[1], x = E[2];
+ L < x ? L < T && (E[0] = L, E[1] = x, E[2] = T) : x < T && (E[0] = x, E[1] = T, E[2] = L);
+ }
+ b.sort(c);
+ for (var C = new Array(p), k = 0; k < C.length; ++k) C[k] = 0;
+ var M = [], g = [], P = new Array(3 * p), A = new Array(3 * p), z = null;
+ _ && (z = []);
+ for (var O = new l(b, P, A, C, M, g, z), k = 0; k < p; ++k) for (var E = b[k], U = 0; U < 3; ++U) {
+ var T = E[U], L = E[(U + 1) % 3], G = P[3 * k + U] = O.locate(L, T, v.opposite(L, T)), Z = A[3 * k + U] = v.isConstraint(T, L);
+ G < 0 && (Z ? g.push(k) : (M.push(k), C[k] = 1), _ && z.push([L, T, -1]));
+ }
+ return O;
+ }
+ function h(v, _, b) {
+ for (var p = 0, k = 0; k < v.length; ++k) _[k] === b && (v[p++] = v[k]);
+ return v.length = p, v;
+ }
+ function d(v, _, b) {
+ var p = f(v, b);
+ if (_ === 0) return b ? p.cells.concat(p.boundary) : p.cells;
+ for (var k = 1, E = p.active, T = p.next, L = p.flags, x = p.cells, C = p.constraint, M = p.neighbor; E.length > 0 || T.length > 0; ) {
+ for (; E.length > 0; ) {
+ var g = E.pop();
+ if (L[g] !== -k) {
+ L[g] = k;
+ for (var P = x[g], A = 0; A < 3; ++A) {
+ var z = M[3 * g + A];
+ z >= 0 && L[z] === 0 && (C[3 * g + A] ? T.push(z) : (E.push(z), L[z] = k));
+ }
+ }
+ }
+ var O = T;
+ T = E, E = O, T.length = 0, k = -k;
+ }
+ var U = h(x, L, _);
+ return b ? U.concat(p.boundary) : U;
+ }
+ }, 5033: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s || 0, c = l || 1;
+ return [[o[12] + o[0], o[13] + o[1], o[14] + o[2], o[15] + o[3]], [o[12] - o[0], o[13] - o[1], o[14] - o[2], o[15] - o[3]], [o[12] + o[4], o[13] + o[5], o[14] + o[6], o[15] + o[7]], [o[12] - o[4], o[13] - o[5], o[14] - o[6], o[15] - o[7]], [u * o[12] + o[8], u * o[13] + o[9], u * o[14] + o[10], u * o[15] + o[11]], [c * o[12] - o[8], c * o[13] - o[9], c * o[14] - o[10], c * o[15] - o[11]]];
+ }
+ }, 5085: function(i, a, o) {
+ i.exports = k;
+ var s = o(3250)[3], l = o(4209), u = o(3352), c = o(2478);
+ function f() {
+ return true;
+ }
+ function h(E) {
+ return function(T, L) {
+ var x = E[T];
+ return x ? !!x.queryPoint(L, f) : false;
+ };
+ }
+ function d(E) {
+ for (var T = {}, L = 0; L < E.length; ++L) {
+ var x = E[L], C = x[0][0], M = x[0][1], g = x[1][1], P = [Math.min(M, g), Math.max(M, g)];
+ C in T ? T[C].push(P) : T[C] = [P];
+ }
+ for (var A = {}, z = Object.keys(T), L = 0; L < z.length; ++L) {
+ var O = T[z[L]];
+ A[z[L]] = u(O);
+ }
+ return h(A);
+ }
+ function v(E, T) {
+ return function(L) {
+ var x = c.le(T, L[0]);
+ if (x < 0) return 1;
+ var C = E[x];
+ if (!C) if (x > 0 && T[x] === L[0]) C = E[x - 1];
+ else return 1;
+ for (var M = 1; C; ) {
+ var g = C.key, P = s(L, g[0], g[1]);
+ if (g[0][0] < g[1][0]) if (P < 0) C = C.left;
+ else if (P > 0) M = -1, C = C.right;
+ else return 0;
+ else if (P > 0) C = C.left;
+ else if (P < 0) M = 1, C = C.right;
+ else return 0;
+ }
+ return M;
+ };
+ }
+ function _(E) {
+ return 1;
+ }
+ function b(E) {
+ return function(L) {
+ return E(L[0], L[1]) ? 0 : 1;
+ };
+ }
+ function p(E, T) {
+ return function(x) {
+ return E(x[0], x[1]) ? 0 : T(x);
+ };
+ }
+ function k(E) {
+ for (var T = E.length, L = [], x = [], C = 0, M = 0; M < T; ++M) for (var g = E[M], P = g.length, A = P - 1, z = 0; z < P; A = z++) {
+ var O = g[A], U = g[z];
+ O[0] === U[0] ? x.push([O, U]) : L.push([O, U]);
+ }
+ if (L.length === 0) return x.length === 0 ? _ : b(d(x));
+ var G = l(L), Z = v(G.slabs, G.coordinates);
+ return x.length === 0 ? Z : p(d(x), Z);
+ }
+ }, 5091: function(i, a, o) {
+ a.shader = k, a.program = E;
+ var s = o(8866), l = o(2992), u = typeof WeakMap == "undefined" ? o(606) : WeakMap, c = new u(), f = 0;
+ function h(T, L, x, C, M, g, P) {
+ this.id = T, this.src = L, this.type = x, this.shader = C, this.count = g, this.programs = [], this.cache = P;
+ }
+ h.prototype.dispose = function() {
+ if (--this.count === 0) {
+ for (var T = this.cache, L = T.gl, x = this.programs, C = 0, M = x.length; C < M; ++C) {
+ var g = T.programs[x[C]];
+ g && (delete T.programs[C], L.deleteProgram(g));
+ }
+ L.deleteShader(this.shader), delete T.shaders[this.type === L.FRAGMENT_SHADER | 0][this.src];
+ }
+ };
+ function d(T) {
+ this.gl = T, this.shaders = [{}, {}], this.programs = {};
+ }
+ var v = d.prototype;
+ function _(T, L, x) {
+ var C = T.createShader(L);
+ if (T.shaderSource(C, x), T.compileShader(C), !T.getShaderParameter(C, T.COMPILE_STATUS)) {
+ var M = T.getShaderInfoLog(C);
+ try {
+ var g = l(M, x, L);
+ } catch (P) {
+ throw console.warn("Failed to format compiler error: " + P), new s(M, `Error compiling shader:
+` + M);
+ }
+ throw new s(M, g.short, g.long);
+ }
+ return C;
+ }
+ v.getShaderReference = function(T, L) {
+ var x = this.gl, C = this.shaders[T === x.FRAGMENT_SHADER | 0], M = C[L];
+ if (!M || !x.isShader(M.shader)) {
+ var g = _(x, T, L);
+ M = C[L] = new h(f++, L, T, g, [], 1, this);
+ } else M.count += 1;
+ return M;
+ };
+ function b(T, L, x, C, M) {
+ var g = T.createProgram();
+ T.attachShader(g, L), T.attachShader(g, x);
+ for (var P = 0; P < C.length; ++P) T.bindAttribLocation(g, M[P], C[P]);
+ if (T.linkProgram(g), !T.getProgramParameter(g, T.LINK_STATUS)) {
+ var A = T.getProgramInfoLog(g);
+ throw new s(A, "Error linking program: " + A);
+ }
+ return g;
+ }
+ v.getProgram = function(T, L, x, C) {
+ var M = [T.id, L.id, x.join(":"), C.join(":")].join("@"), g = this.programs[M];
+ return (!g || !this.gl.isProgram(g)) && (this.programs[M] = g = b(this.gl, T.shader, L.shader, x, C), T.programs.push(M), L.programs.push(M)), g;
+ };
+ function p(T) {
+ var L = c.get(T);
+ return L || (L = new d(T), c.set(T, L)), L;
+ }
+ function k(T, L, x) {
+ return p(T).getShaderReference(L, x);
+ }
+ function E(T, L, x, C, M) {
+ return p(T).getProgram(L, x, C, M);
+ }
+ }, 5093: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = -s[0], o[1] = -s[1], o[2] = -s[2], o;
+ }
+ }, 5137: function(i, a, o) {
+ i.exports = l;
+ var s = o(1091)();
+ function l(u, c, f, h, d, v) {
+ var _, b;
+ for (c || (c = 3), f || (f = 0), h ? b = Math.min(h * c + f, u.length) : b = u.length, _ = f; _ < b; _ += c) s[0] = u[_], s[1] = u[_ + 1], s[2] = u[_ + 2], d(s, s, v), u[_] = s[0], u[_ + 1] = s[1], u[_ + 2] = s[2];
+ return u;
+ }
+ }, 5171: function(i, a, o) {
+ var s = o(737);
+ i.exports = function(u) {
+ return s[u];
+ };
+ }, 5177: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = s[0], u = s[1], c = s[2], f = s[3], h = l * l + u * u + c * c + f * f;
+ return h > 0 && (h = 1 / Math.sqrt(h), o[0] = l * h, o[1] = u * h, o[2] = c * h, o[3] = f * h), o;
+ }
+ }, 5202: function(i, a, o) {
+ var s = o(1944), l = o(8210);
+ i.exports = f, i.exports.positive = h, i.exports.negative = d;
+ function u(v, _) {
+ var b = l(s(v, _), [_[_.length - 1]]);
+ return b[b.length - 1];
+ }
+ function c(v, _, b, p) {
+ var k = p - _, E = -_ / k;
+ E < 0 ? E = 0 : E > 1 && (E = 1);
+ for (var T = 1 - E, L = v.length, x = new Array(L), C = 0; C < L; ++C) x[C] = E * v[C] + T * b[C];
+ return x;
+ }
+ function f(v, _) {
+ for (var b = [], p = [], k = u(v[v.length - 1], _), E = v[v.length - 1], T = v[0], L = 0; L < v.length; ++L, E = T) {
+ T = v[L];
+ var x = u(T, _);
+ if (k < 0 && x > 0 || k > 0 && x < 0) {
+ var C = c(E, x, T, k);
+ b.push(C), p.push(C.slice());
+ }
+ x < 0 ? p.push(T.slice()) : x > 0 ? b.push(T.slice()) : (b.push(T.slice()), p.push(T.slice())), k = x;
+ }
+ return { positive: b, negative: p };
+ }
+ function h(v, _) {
+ for (var b = [], p = u(v[v.length - 1], _), k = v[v.length - 1], E = v[0], T = 0; T < v.length; ++T, k = E) {
+ E = v[T];
+ var L = u(E, _);
+ (p < 0 && L > 0 || p > 0 && L < 0) && b.push(c(k, L, E, p)), L >= 0 && b.push(E.slice()), p = L;
+ }
+ return b;
+ }
+ function d(v, _) {
+ for (var b = [], p = u(v[v.length - 1], _), k = v[v.length - 1], E = v[0], T = 0; T < v.length; ++T, k = E) {
+ E = v[T];
+ var L = u(E, _);
+ (p < 0 && L > 0 || p > 0 && L < 0) && b.push(c(k, L, E, p)), L <= 0 && b.push(E.slice()), p = L;
+ }
+ return b;
+ }
+ }, 5219: function(i) {
+ i.exports = function(a) {
+ for (var o = a.length, s, l = 0; l < o; l++) if (s = a.charCodeAt(l), (s < 9 || s > 13) && s !== 32 && s !== 133 && s !== 160 && s !== 5760 && s !== 6158 && (s < 8192 || s > 8205) && s !== 8232 && s !== 8233 && s !== 8239 && s !== 8287 && s !== 8288 && s !== 12288 && s !== 65279) return false;
+ return true;
+ };
+ }, 5250: function(i) {
+ i.exports = o;
+ var a = +(Math.pow(2, 27) + 1);
+ function o(s, l, u) {
+ var c = s * l, f = a * s, h = f - s, d = f - h, v = s - d, _ = a * l, b = _ - l, p = _ - b, k = l - p, E = c - d * p, T = E - v * p, L = T - d * k, x = v * k - L;
+ return u ? (u[0] = x, u[1] = c, u) : [x, c];
+ }
+ }, 5298: function(i, a) {
+ var o = { "float64,2,1,0": function() {
+ return function(v, _, b, p, k) {
+ var E = v[0], T = v[1], L = v[2], x = b[0], C = b[1], M = b[2];
+ p |= 0;
+ var g = 0, P = 0, A = 0, z = M, O = C - L * M, U = x - T * C;
+ for (A = 0; A < E; ++A) {
+ for (P = 0; P < T; ++P) {
+ for (g = 0; g < L; ++g) _[p] /= k, p += z;
+ p += O;
+ }
+ p += U;
+ }
+ };
+ }, "uint8,2,0,1,float64,2,1,0": function() {
+ return function(v, _, b, p, k, E, T, L) {
+ var x = v[0], C = v[1], M = v[2], g = b[0], P = b[1], A = b[2], z = E[0], O = E[1], U = E[2];
+ p |= 0, T |= 0;
+ for (var G = p, Z = T, j = v[0] | 0; j > 0; ) {
+ j < 64 ? (x = j, j = 0) : (x = 64, j -= 64);
+ for (var N = v[1] | 0; N > 0; ) {
+ N < 64 ? (C = N, N = 0) : (C = 64, N -= 64), p = G + j * g + N * P, T = Z + j * z + N * O;
+ var H = 0, re = 0, oe = 0, _e = A, Ce = g - M * A, Le = P - x * g, ge = U, ie = z - M * U, Se = O - x * z;
+ for (oe = 0; oe < C; ++oe) {
+ for (re = 0; re < x; ++re) {
+ for (H = 0; H < M; ++H) _[p] = k[T] * L, p += _e, T += ge;
+ p += Ce, T += ie;
+ }
+ p += Le, T += Se;
+ }
+ }
+ }
+ };
+ }, "float32,1,0,float32,1,0": function() {
+ return function(v, _, b, p, k, E, T) {
+ var L = v[0], x = v[1], C = b[0], M = b[1], g = E[0], P = E[1];
+ p |= 0, T |= 0;
+ var A = 0, z = 0, O = M, U = C - x * M, G = P, Z = g - x * P;
+ for (z = 0; z < L; ++z) {
+ for (A = 0; A < x; ++A) _[p] = k[T], p += O, T += G;
+ p += U, T += Z;
+ }
+ };
+ }, "float32,1,0,float32,0,1": function() {
+ return function(v, _, b, p, k, E, T) {
+ var L = v[0], x = v[1], C = b[0], M = b[1], g = E[0], P = E[1];
+ p |= 0, T |= 0;
+ for (var A = p, z = T, O = v[1] | 0; O > 0; ) {
+ O < 64 ? (x = O, O = 0) : (x = 64, O -= 64);
+ for (var U = v[0] | 0; U > 0; ) {
+ U < 64 ? (L = U, U = 0) : (L = 64, U -= 64), p = A + O * M + U * C, T = z + O * P + U * g;
+ var G = 0, Z = 0, j = M, N = C - x * M, H = P, re = g - x * P;
+ for (Z = 0; Z < L; ++Z) {
+ for (G = 0; G < x; ++G) _[p] = k[T], p += j, T += H;
+ p += N, T += re;
+ }
+ }
+ }
+ };
+ }, "uint8,2,0,1,uint8,1,2,0": function() {
+ return function(v, _, b, p, k, E, T) {
+ var L = v[0], x = v[1], C = v[2], M = b[0], g = b[1], P = b[2], A = E[0], z = E[1], O = E[2];
+ p |= 0, T |= 0;
+ for (var U = p, G = T, Z = v[2] | 0; Z > 0; ) {
+ Z < 64 ? (C = Z, Z = 0) : (C = 64, Z -= 64);
+ for (var j = v[0] | 0; j > 0; ) {
+ j < 64 ? (L = j, j = 0) : (L = 64, j -= 64);
+ for (var N = v[1] | 0; N > 0; ) {
+ N < 64 ? (x = N, N = 0) : (x = 64, N -= 64), p = U + Z * P + j * M + N * g, T = G + Z * O + j * A + N * z;
+ var H = 0, re = 0, oe = 0, _e = P, Ce = M - C * P, Le = g - L * M, ge = O, ie = A - C * O, Se = z - L * A;
+ for (oe = 0; oe < x; ++oe) {
+ for (re = 0; re < L; ++re) {
+ for (H = 0; H < C; ++H) _[p] = k[T], p += _e, T += ge;
+ p += Ce, T += ie;
+ }
+ p += Le, T += Se;
+ }
+ }
+ }
+ }
+ };
+ }, "uint8,2,0,1,array,2,0,1": function() {
+ return function(v, _, b, p, k, E, T) {
+ var L = v[0], x = v[1], C = v[2], M = b[0], g = b[1], P = b[2], A = E[0], z = E[1], O = E[2];
+ p |= 0, T |= 0;
+ var U = 0, G = 0, Z = 0, j = P, N = M - C * P, H = g - L * M, re = O, oe = A - C * O, _e = z - L * A;
+ for (Z = 0; Z < x; ++Z) {
+ for (G = 0; G < L; ++G) {
+ for (U = 0; U < C; ++U) _[p] = k[T], p += j, T += re;
+ p += N, T += oe;
+ }
+ p += H, T += _e;
+ }
+ };
+ } };
+ function s(d, v) {
+ var _ = v.join(","), b = o[_];
+ return b();
+ }
+ var l = s, u = { mul: function(d) {
+ var v = {};
+ return function(b, p, k) {
+ var E = b.dtype, T = b.order, L = p.dtype, x = p.order, C = k.dtype, M = k.order, g = [E, T.join(), L, x.join(), C, M.join()].join(), P = v[g];
+ return P || (v[g] = P = d([E, T, L, x, C, M])), P(b.shape.slice(0), b.data, b.stride, b.offset | 0, p.data, p.stride, p.offset | 0, k.data, k.stride, k.offset | 0);
+ };
+ }, muls: function(d) {
+ var v = {};
+ return function(b, p, k) {
+ var E = b.dtype, T = b.order, L = p.dtype, x = p.order, C = [E, T.join(), L, x.join()].join(), M = v[C];
+ return M || (v[C] = M = d([E, T, L, x])), M(b.shape.slice(0), b.data, b.stride, b.offset | 0, p.data, p.stride, p.offset | 0, k);
+ };
+ }, mulseq: function(d) {
+ var v = {};
+ return function(b, p) {
+ var k = b.dtype, E = b.order, T = [k, E.join()].join(), L = v[T];
+ return L || (v[T] = L = d([k, E])), L(b.shape.slice(0), b.data, b.stride, b.offset | 0, p);
+ };
+ }, div: function(d) {
+ var v = {};
+ return function(b, p, k) {
+ var E = b.dtype, T = b.order, L = p.dtype, x = p.order, C = k.dtype, M = k.order, g = [E, T.join(), L, x.join(), C, M.join()].join(), P = v[g];
+ return P || (v[g] = P = d([E, T, L, x, C, M])), P(b.shape.slice(0), b.data, b.stride, b.offset | 0, p.data, p.stride, p.offset | 0, k.data, k.stride, k.offset | 0);
+ };
+ }, divs: function(d) {
+ var v = {};
+ return function(b, p, k) {
+ var E = b.dtype, T = b.order, L = p.dtype, x = p.order, C = [E, T.join(), L, x.join()].join(), M = v[C];
+ return M || (v[C] = M = d([E, T, L, x])), M(b.shape.slice(0), b.data, b.stride, b.offset | 0, p.data, p.stride, p.offset | 0, k);
+ };
+ }, divseq: function(d) {
+ var v = {};
+ return function(b, p) {
+ var k = b.dtype, E = b.order, T = [k, E.join()].join(), L = v[T];
+ return L || (v[T] = L = d([k, E])), L(b.shape.slice(0), b.data, b.stride, b.offset | 0, p);
+ };
+ }, assign: function(d) {
+ var v = {};
+ return function(b, p) {
+ var k = b.dtype, E = b.order, T = p.dtype, L = p.order, x = [k, E.join(), T, L.join()].join(), C = v[x];
+ return C || (v[x] = C = d([k, E, T, L])), C(b.shape.slice(0), b.data, b.stride, b.offset | 0, p.data, p.stride, p.offset | 0);
+ };
+ } };
+ function c(d) {
+ var v = u[d.funcName];
+ return v(l.bind(void 0, d));
+ }
+ function f(d) {
+ return c({ funcName: d.funcName });
+ }
+ var h = { mul: "*", div: "/" };
+ (function() {
+ for (var d in h) a[d] = f({ funcName: d }), a[d + "s"] = f({ funcName: d + "s" }), a[d + "seq"] = f({ funcName: d + "seq" });
+ })(), a.assign = f({ funcName: "assign" });
+ }, 5304: function(i, a, o) {
+ i.exports = h;
+ var s = o(2762), l = o(8116), u = o(1879).bg;
+ function c(d, v, _, b) {
+ this.gl = d, this.buffer = v, this.vao = _, this.shader = b;
+ }
+ var f = c.prototype;
+ f.draw = function(d, v, _, b, p, k) {
+ for (var E = false, T = 0; T < 3; ++T) E = E || p[T];
+ if (E) {
+ var L = this.gl;
+ L.enable(L.POLYGON_OFFSET_FILL), L.polygonOffset(1, 2), this.shader.bind(), this.shader.uniforms = { model: d, view: v, projection: _, bounds: b, enable: p, colors: k }, this.vao.bind(), this.vao.draw(this.gl.TRIANGLES, 36), this.vao.unbind(), L.disable(L.POLYGON_OFFSET_FILL);
+ }
+ }, f.dispose = function() {
+ this.vao.dispose(), this.buffer.dispose(), this.shader.dispose();
+ };
+ function h(d) {
+ for (var v = [], _ = [], b = 0, p = 0; p < 3; ++p) for (var k = (p + 1) % 3, E = (p + 2) % 3, T = [0, 0, 0], L = [0, 0, 0], x = -1; x <= 1; x += 2) {
+ _.push(b, b + 2, b + 1, b + 1, b + 2, b + 3), T[p] = x, L[p] = x;
+ for (var C = -1; C <= 1; C += 2) {
+ T[k] = C;
+ for (var M = -1; M <= 1; M += 2) T[E] = M, v.push(T[0], T[1], T[2], L[0], L[1], L[2]), b += 1;
+ }
+ var g = k;
+ k = E, E = g;
+ }
+ var P = s(d, new Float32Array(v)), A = s(d, new Uint16Array(_), d.ELEMENT_ARRAY_BUFFER), z = l(d, [{ buffer: P, type: d.FLOAT, size: 3, offset: 0, stride: 24 }, { buffer: P, type: d.FLOAT, size: 3, offset: 12, stride: 24 }], A), O = u(d);
+ return O.attributes.position.location = 0, O.attributes.normal.location = 1, new c(d, P, z, O);
+ }
+ }, 5352: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s[0], c = s[1], f = s[2], h = s[3];
+ return o[0] = l[0] * u + l[4] * c + l[8] * f + l[12] * h, o[1] = l[1] * u + l[5] * c + l[9] * f + l[13] * h, o[2] = l[2] * u + l[6] * c + l[10] * f + l[14] * h, o[3] = l[3] * u + l[7] * c + l[11] * f + l[15] * h, o;
+ }
+ }, 5382: function(i, a, o) {
+ var s = o(8210), l = o(3012);
+ i.exports = u;
+ function u(c, f) {
+ if (c.length === 1) return l(f, c[0]);
+ if (f.length === 1) return l(c, f[0]);
+ if (c.length === 0 || f.length === 0) return [0];
+ var h = [0];
+ if (c.length < f.length) for (var d = 0; d < c.length; ++d) h = s(h, l(f, c[d]));
+ else for (var d = 0; d < f.length; ++d) h = s(h, l(c, f[d]));
+ return h;
+ }
+ }, 5445: function(i, a, o) {
+ i.exports = L;
+ var s = o(5033), l = o(5202), u = o(6429), c = o(6760), f = o(5665), h = o(5352), d = new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), v = new Float32Array(16);
+ function _(x, C, M) {
+ this.lo = x, this.hi = C, this.pixelsPerDataUnit = M;
+ }
+ var b = [0, 0, 0, 1], p = [0, 0, 0, 1];
+ function k(x, C, M, g, P) {
+ for (var A = 0; A < 3; ++A) {
+ for (var z = b, O = p, U = 0; U < 3; ++U) O[U] = z[U] = M[U];
+ O[3] = z[3] = 1, O[A] += 1, h(O, O, C), O[3] < 0 && (x[A] = 1 / 0), z[A] -= 1, h(z, z, C), z[3] < 0 && (x[A] = 1 / 0);
+ var G = (z[0] / z[3] - O[0] / O[3]) * g, Z = (z[1] / z[3] - O[1] / O[3]) * P;
+ x[A] = 0.25 * Math.sqrt(G * G + Z * Z);
+ }
+ return x;
+ }
+ var E = [new _(1 / 0, -1 / 0, 1 / 0), new _(1 / 0, -1 / 0, 1 / 0), new _(1 / 0, -1 / 0, 1 / 0)], T = [0, 0, 0];
+ function L(x, C, M, g, Z) {
+ var A = C.model || d, z = C.view || d, O = C.projection || d, U = C._ortho || false, G = x.bounds, Z = Z || u(A, z, O, G, U), j = Z.axis;
+ c(v, z, A), c(v, O, v);
+ for (var N = E, H = 0; H < 3; ++H) N[H].lo = 1 / 0, N[H].hi = -1 / 0, N[H].pixelsPerDataUnit = 1 / 0;
+ var re = s(f(v, v));
+ f(v, v);
+ for (var oe = 0; oe < 3; ++oe) {
+ var _e = (oe + 1) % 3, Ce = (oe + 2) % 3, Le = T;
+ e: for (var H = 0; H < 2; ++H) {
+ var ge = [];
+ if (j[oe] < 0 != !!H) {
+ Le[oe] = G[H][oe];
+ for (var ie = 0; ie < 2; ++ie) {
+ Le[_e] = G[ie ^ H][_e];
+ for (var Se = 0; Se < 2; ++Se) Le[Ce] = G[Se ^ ie ^ H][Ce], ge.push(Le.slice());
+ }
+ for (var Ee = U ? 5 : 4, ie = Ee; ie === Ee; ++ie) {
+ if (ge.length === 0) continue e;
+ ge = l.positive(ge, re[ie]);
+ }
+ for (var ie = 0; ie < ge.length; ++ie) for (var Ce = ge[ie], Ae = k(T, v, Ce, M, g), Se = 0; Se < 3; ++Se) N[Se].lo = Math.min(N[Se].lo, Ce[Se]), N[Se].hi = Math.max(N[Se].hi, Ce[Se]), Se !== oe && (N[Se].pixelsPerDataUnit = Math.min(N[Se].pixelsPerDataUnit, Math.abs(Ae[Se])));
+ }
+ }
+ }
+ return N;
+ }
+ }, 5455: function(i, a, o) {
+ i.exports = o(7056);
+ }, 5486: function(i, a, o) {
+ i.exports = o(3066);
+ }, 5542: function(i, a, o) {
+ var s = o(2478);
+ i.exports = f;
+ function l(h, d) {
+ this.stars = h, this.edges = d;
+ }
+ var u = l.prototype;
+ function c(h, d, v) {
+ for (var _ = 1, b = h.length; _ < b; _ += 2) if (h[_ - 1] === d && h[_] === v) {
+ h[_ - 1] = h[b - 2], h[_] = h[b - 1], h.length = b - 2;
+ return;
+ }
+ }
+ u.isConstraint = /* @__PURE__ */ function() {
+ var h = [0, 0];
+ function d(v, _) {
+ return v[0] - _[0] || v[1] - _[1];
+ }
+ return function(v, _) {
+ return h[0] = Math.min(v, _), h[1] = Math.max(v, _), s.eq(this.edges, h, d) >= 0;
+ };
+ }(), u.removeTriangle = function(h, d, v) {
+ var _ = this.stars;
+ c(_[h], d, v), c(_[d], v, h), c(_[v], h, d);
+ }, u.addTriangle = function(h, d, v) {
+ var _ = this.stars;
+ _[h].push(d, v), _[d].push(v, h), _[v].push(h, d);
+ }, u.opposite = function(h, d) {
+ for (var v = this.stars[d], _ = 1, b = v.length; _ < b; _ += 2) if (v[_] === h) return v[_ - 1];
+ return -1;
+ }, u.flip = function(h, d) {
+ var v = this.opposite(h, d), _ = this.opposite(d, h);
+ this.removeTriangle(h, d, v), this.removeTriangle(d, h, _), this.addTriangle(h, _, v), this.addTriangle(d, v, _);
+ }, u.edges = function() {
+ for (var h = this.stars, d = [], v = 0, _ = h.length; v < _; ++v) for (var b = h[v], p = 0, k = b.length; p < k; p += 2) d.push([b[p], b[p + 1]]);
+ return d;
+ }, u.cells = function() {
+ for (var h = this.stars, d = [], v = 0, _ = h.length; v < _; ++v) for (var b = h[v], p = 0, k = b.length; p < k; p += 2) {
+ var E = b[p], T = b[p + 1];
+ v < Math.min(E, T) && d.push([v, E, T]);
+ }
+ return d;
+ };
+ function f(h, d) {
+ for (var v = new Array(h), _ = 0; _ < h; ++_) v[_] = [];
+ return new l(v, d);
+ }
+ }, 5567: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = Math.sin(l), c = Math.cos(l), f = s[4], h = s[5], d = s[6], v = s[7], _ = s[8], b = s[9], p = s[10], k = s[11];
+ return s !== o && (o[0] = s[0], o[1] = s[1], o[2] = s[2], o[3] = s[3], o[12] = s[12], o[13] = s[13], o[14] = s[14], o[15] = s[15]), o[4] = f * c + _ * u, o[5] = h * c + b * u, o[6] = d * c + p * u, o[7] = v * c + k * u, o[8] = _ * c - f * u, o[9] = b * c - h * u, o[10] = p * c - d * u, o[11] = k * c - v * u, o;
+ }
+ }, 5572: function(i, a, o) {
+ var s = o(869);
+ i.exports = l;
+ function l(u, c) {
+ return s(u[0].mul(c[1]).sub(u[1].mul(c[0])), u[1].mul(c[1]));
+ }
+ }, 5609: function(i, a, o) {
+ i.exports = l;
+ var s = o(3134);
+ function l(u, c) {
+ for (var f = s(u, c.length), h = new Array(c.length), d = new Array(c.length), v = [], _ = 0; _ < c.length; ++_) {
+ var b = f[_].length;
+ d[_] = b, h[_] = true, b <= 1 && v.push(_);
+ }
+ for (; v.length > 0; ) {
+ var p = v.pop();
+ h[p] = false;
+ for (var k = f[p], _ = 0; _ < k.length; ++_) {
+ var E = k[_];
+ --d[E] === 0 && v.push(E);
+ }
+ }
+ for (var T = new Array(c.length), L = [], _ = 0; _ < c.length; ++_) if (h[_]) {
+ var p = L.length;
+ T[_] = p, L.push(c[_]);
+ } else T[_] = -1;
+ for (var x = [], _ = 0; _ < u.length; ++_) {
+ var C = u[_];
+ h[C[0]] && h[C[1]] && x.push([T[C[0]], T[C[1]]]);
+ }
+ return [x, L];
+ }
+ }, 5632: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] + l[0], o[1] = s[1] + l[1], o[2] = s[2] + l[2], o;
+ }
+ }, 5665: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ if (o === s) {
+ var l = s[1], u = s[2], c = s[3], f = s[6], h = s[7], d = s[11];
+ o[1] = s[4], o[2] = s[8], o[3] = s[12], o[4] = l, o[6] = s[9], o[7] = s[13], o[8] = u, o[9] = f, o[11] = s[14], o[12] = c, o[13] = h, o[14] = d;
+ } else o[0] = s[0], o[1] = s[4], o[2] = s[8], o[3] = s[12], o[4] = s[1], o[5] = s[5], o[6] = s[9], o[7] = s[13], o[8] = s[2], o[9] = s[6], o[10] = s[10], o[11] = s[14], o[12] = s[3], o[13] = s[7], o[14] = s[11], o[15] = s[15];
+ return o;
+ }
+ }, 5673: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s[0], c = s[1], f = s[2], h = l[3] * u + l[7] * c + l[11] * f + l[15];
+ return h = h || 1, o[0] = (l[0] * u + l[4] * c + l[8] * f + l[12]) / h, o[1] = (l[1] * u + l[5] * c + l[9] * f + l[13]) / h, o[2] = (l[2] * u + l[6] * c + l[10] * f + l[14]) / h, o;
+ }
+ }, 5714: function(i, a, o) {
+ i.exports = M;
+ var s = o(2762), l = o(8116), u = o(7766), c = new Uint8Array(4), f = new Float32Array(c.buffer);
+ function h(g, P, A, z) {
+ return c[0] = z, c[1] = A, c[2] = P, c[3] = g, f[0];
+ }
+ var d = o(2478), v = o(9618), _ = o(7319), b = _.createShader, p = _.createPickShader, k = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
+ function E(g, P) {
+ for (var A = 0, z = 0; z < 3; ++z) {
+ var O = g[z] - P[z];
+ A += O * O;
+ }
+ return Math.sqrt(A);
+ }
+ function T(g) {
+ for (var P = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]], A = 0; A < 3; ++A) P[0][A] = Math.max(g[0][A], P[0][A]), P[1][A] = Math.min(g[1][A], P[1][A]);
+ return P;
+ }
+ function L(g, P, A, z) {
+ this.arcLength = g, this.position = P, this.index = A, this.dataCoordinate = z;
+ }
+ function x(g, P, A, z, O, U) {
+ this.gl = g, this.shader = P, this.pickShader = A, this.buffer = z, this.vao = O, this.clipBounds = [[-1 / 0, -1 / 0, -1 / 0], [1 / 0, 1 / 0, 1 / 0]], this.points = [], this.arcLength = [], this.vertexCount = 0, this.bounds = [[0, 0, 0], [0, 0, 0]], this.pickId = 0, this.lineWidth = 1, this.texture = U, this.dashScale = 1, this.opacity = 1, this.hasAlpha = false, this.dirty = true, this.pixelRatio = 1;
+ }
+ var C = x.prototype;
+ C.isTransparent = function() {
+ return this.hasAlpha;
+ }, C.isOpaque = function() {
+ return !this.hasAlpha;
+ }, C.pickSlots = 1, C.setPickBase = function(g) {
+ this.pickId = g;
+ }, C.drawTransparent = C.draw = function(g) {
+ if (this.vertexCount) {
+ var P = this.gl, A = this.shader, z = this.vao;
+ A.bind(), A.uniforms = { model: g.model || k, view: g.view || k, projection: g.projection || k, clipBounds: T(this.clipBounds), dashTexture: this.texture.bind(), dashScale: this.dashScale / this.arcLength[this.arcLength.length - 1], opacity: this.opacity, screenShape: [P.drawingBufferWidth, P.drawingBufferHeight], pixelRatio: this.pixelRatio }, z.bind(), z.draw(P.TRIANGLE_STRIP, this.vertexCount), z.unbind();
+ }
+ }, C.drawPick = function(g) {
+ if (this.vertexCount) {
+ var P = this.gl, A = this.pickShader, z = this.vao;
+ A.bind(), A.uniforms = { model: g.model || k, view: g.view || k, projection: g.projection || k, pickId: this.pickId, clipBounds: T(this.clipBounds), screenShape: [P.drawingBufferWidth, P.drawingBufferHeight], pixelRatio: this.pixelRatio }, z.bind(), z.draw(P.TRIANGLE_STRIP, this.vertexCount), z.unbind();
+ }
+ }, C.update = function(g) {
+ var P, A;
+ this.dirty = true;
+ var z = !!g.connectGaps;
+ "dashScale" in g && (this.dashScale = g.dashScale), this.hasAlpha = false, "opacity" in g && (this.opacity = +g.opacity, this.opacity < 1 && (this.hasAlpha = true));
+ var O = [], U = [], G = [], Z = 0, j = 0, N = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]], H = g.position || g.positions;
+ if (H) {
+ var re = g.color || g.colors || [0, 0, 0, 1], oe = g.lineWidth || 1, _e = false;
+ e: for (P = 1; P < H.length; ++P) {
+ var Ce = H[P - 1], Le = H[P];
+ for (U.push(Z), G.push(Ce.slice()), A = 0; A < 3; ++A) {
+ if (isNaN(Ce[A]) || isNaN(Le[A]) || !isFinite(Ce[A]) || !isFinite(Le[A])) {
+ if (!z && O.length > 0) {
+ for (var ge = 0; ge < 24; ++ge) O.push(O[O.length - 12]);
+ j += 2, _e = true;
+ }
+ continue e;
+ }
+ N[0][A] = Math.min(N[0][A], Ce[A], Le[A]), N[1][A] = Math.max(N[1][A], Ce[A], Le[A]);
+ }
+ var ie, Se;
+ Array.isArray(re[0]) ? (ie = re.length > P - 1 ? re[P - 1] : re.length > 0 ? re[re.length - 1] : [0, 0, 0, 1], Se = re.length > P ? re[P] : re.length > 0 ? re[re.length - 1] : [0, 0, 0, 1]) : ie = Se = re, ie.length === 3 && (ie = [ie[0], ie[1], ie[2], 1]), Se.length === 3 && (Se = [Se[0], Se[1], Se[2], 1]), !this.hasAlpha && ie[3] < 1 && (this.hasAlpha = true);
+ var Ee;
+ Array.isArray(oe) ? Ee = oe.length > P - 1 ? oe[P - 1] : oe.length > 0 ? oe[oe.length - 1] : [0, 0, 0, 1] : Ee = oe;
+ var Ae = Z;
+ if (Z += E(Ce, Le), _e) {
+ for (A = 0; A < 2; ++A) O.push(Ce[0], Ce[1], Ce[2], Le[0], Le[1], Le[2], Ae, Ee, ie[0], ie[1], ie[2], ie[3]);
+ j += 2, _e = false;
+ }
+ O.push(Ce[0], Ce[1], Ce[2], Le[0], Le[1], Le[2], Ae, Ee, ie[0], ie[1], ie[2], ie[3], Ce[0], Ce[1], Ce[2], Le[0], Le[1], Le[2], Ae, -Ee, ie[0], ie[1], ie[2], ie[3], Le[0], Le[1], Le[2], Ce[0], Ce[1], Ce[2], Z, -Ee, Se[0], Se[1], Se[2], Se[3], Le[0], Le[1], Le[2], Ce[0], Ce[1], Ce[2], Z, Ee, Se[0], Se[1], Se[2], Se[3]), j += 4;
+ }
+ }
+ if (this.buffer.update(O), U.push(Z), G.push(H[H.length - 1].slice()), this.bounds = N, this.vertexCount = j, this.points = G, this.arcLength = U, "dashes" in g) {
+ var Be = g.dashes, Pe = Be.slice();
+ for (Pe.unshift(0), P = 1; P < Pe.length; ++P) Pe[P] = Pe[P - 1] + Pe[P];
+ var me = v(new Array(256 * 4), [256, 1, 4]);
+ for (P = 0; P < 256; ++P) {
+ for (A = 0; A < 4; ++A) me.set(P, 0, A, 0);
+ d.le(Pe, Pe[Pe.length - 1] * P / 255) & 1 ? me.set(P, 0, 0, 0) : me.set(P, 0, 0, 255);
+ }
+ this.texture.setPixels(me);
+ }
+ }, C.dispose = function() {
+ this.shader.dispose(), this.vao.dispose(), this.buffer.dispose();
+ }, C.pick = function(g) {
+ if (!g || g.id !== this.pickId) return null;
+ var P = h(g.value[0], g.value[1], g.value[2], 0), A = d.le(this.arcLength, P);
+ if (A < 0) return null;
+ if (A === this.arcLength.length - 1) return new L(this.arcLength[this.arcLength.length - 1], this.points[this.points.length - 1].slice(), A);
+ for (var z = this.points[A], O = this.points[Math.min(A + 1, this.points.length - 1)], U = (P - this.arcLength[A]) / (this.arcLength[A + 1] - this.arcLength[A]), G = 1 - U, Z = [0, 0, 0], j = 0; j < 3; ++j) Z[j] = G * z[j] + U * O[j];
+ var N = Math.min(U < 0.5 ? A : A + 1, this.points.length - 1);
+ return new L(P, Z, N, this.points[N]);
+ };
+ function M(g) {
+ var P = g.gl || g.scene && g.scene.gl, A = b(P);
+ A.attributes.position.location = 0, A.attributes.nextPosition.location = 1, A.attributes.arcLength.location = 2, A.attributes.lineWidth.location = 3, A.attributes.color.location = 4;
+ var z = p(P);
+ z.attributes.position.location = 0, z.attributes.nextPosition.location = 1, z.attributes.arcLength.location = 2, z.attributes.lineWidth.location = 3, z.attributes.color.location = 4;
+ for (var O = s(P), U = l(P, [{ buffer: O, size: 3, offset: 0, stride: 48 }, { buffer: O, size: 3, offset: 12, stride: 48 }, { buffer: O, size: 1, offset: 24, stride: 48 }, { buffer: O, size: 1, offset: 28, stride: 48 }, { buffer: O, size: 4, offset: 32, stride: 48 }]), G = v(new Array(256 * 4), [256, 1, 4]), Z = 0; Z < 1024; ++Z) G.data[Z] = 255;
+ var j = u(P, G);
+ j.wrap = P.REPEAT;
+ var N = new x(P, A, z, O, U, j);
+ return N.update(g), N;
+ }
+ }, 5716: function(i, a, o) {
+ var s = o(6859);
+ i.exports = l;
+ function l(u) {
+ return u.cmp(new s(0));
+ }
+ }, 5721: function(i) {
+ i.exports = a;
+ function a(o) {
+ for (var s = 0, l = 0, u = 1; u < o.length; ++u) o[u][0] < o[s][0] && (s = u), o[u][0] > o[l][0] && (l = u);
+ return s < l ? [[s], [l]] : s > l ? [[l], [s]] : [[s]];
+ }
+ }, 5771: function(i, a, o) {
+ var s = o(8507), l = o(3788), u = o(2419);
+ i.exports = c;
+ function c(f) {
+ f.sort(l);
+ for (var h = f.length, d = 0, v = 0; v < h; ++v) {
+ var _ = f[v], b = u(_);
+ if (b !== 0) {
+ if (d > 0) {
+ var p = f[d - 1];
+ if (s(_, p) === 0 && u(p) !== b) {
+ d -= 1;
+ continue;
+ }
+ }
+ f[d++] = _;
+ }
+ }
+ return f.length = d, f;
+ }
+ }, 5838: function(i, a, o) {
+ i.exports = l;
+ var s = o(7842);
+ function l(u) {
+ for (var c = new Array(u.length), f = 0; f < u.length; ++f) c[f] = s(u[f]);
+ return c;
+ }
+ }, 5847: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] * l[0], o[1] = s[1] * l[1], o[2] = s[2] * l[2], o;
+ }
+ }, 5874: function(i, a, o) {
+ i.exports = A;
+ var s = o(620), l = o(7827), u = o(6852), c = o(7932), f = o(3508), h = 999, d = 9999, v = 0, _ = 1, b = 2, p = 3, k = 4, E = 5, T = 6, L = 7, x = 8, C = 9, M = 10, g = 11, P = ["block-comment", "line-comment", "preprocessor", "operator", "integer", "float", "ident", "builtin", "keyword", "whitespace", "eof", "integer"];
+ function A(z) {
+ var O = 0, U = 0, G = h, Z, j, N = [], H = [], _e = 1, Ce = 0, Le = 0, ge = false, ie = false, Se = "", Ee;
+ z = z || {};
+ var Ae = u, Be = s;
+ z.version === "300 es" && (Ae = f, Be = c);
+ for (var Pe = {}, me = {}, O = 0; O < Ae.length; O++) Pe[Ae[O]] = true;
+ for (var O = 0; O < Be.length; O++) me[Be[O]] = true;
+ return function($e) {
+ return H = [], $e !== null ? ce($e) : je();
+ };
+ function De($e) {
+ $e.length && H.push({ type: P[G], data: $e, position: Le, line: _e, column: Ce });
+ }
+ function ce($e) {
+ O = 0, $e.toString && ($e = $e.toString()), Se += $e.replace(/\r\n/g, `
+`), Ee = Se.length;
+ for (var St; Z = Se[O], O < Ee; ) {
+ switch (St = O, G) {
+ case v:
+ O = ut();
+ break;
+ case _:
+ O = ot();
+ break;
+ case b:
+ O = Vt();
+ break;
+ case p:
+ O = Wt();
+ break;
+ case k:
+ O = sr();
+ break;
+ case g:
+ O = $t();
+ break;
+ case E:
+ O = Tr();
+ break;
+ case d:
+ O = fr();
+ break;
+ case C:
+ O = pt();
+ break;
+ case h:
+ O = lt();
+ break;
+ }
+ if (St !== O) switch (Se[St]) {
+ case `
+`:
+ Ce = 0, ++_e;
+ break;
+ default:
+ ++Ce;
+ break;
+ }
+ }
+ return U += O, Se = Se.slice(O), H;
+ }
+ function je($e) {
+ return N.length && De(N.join("")), G = M, De("(eof)"), H;
+ }
+ function lt() {
+ return N = N.length ? [] : N, j === "/" && Z === "*" ? (Le = U + O - 1, G = v, j = Z, O + 1) : j === "/" && Z === "/" ? (Le = U + O - 1, G = _, j = Z, O + 1) : Z === "#" ? (G = b, Le = U + O, O) : /\s/.test(Z) ? (G = C, Le = U + O, O) : (ge = /\d/.test(Z), ie = /[^\w_]/.test(Z), Le = U + O, G = ge ? k : ie ? p : d, O);
+ }
+ function pt() {
+ return /[^\s]/g.test(Z) ? (De(N.join("")), G = h, O) : (N.push(Z), j = Z, O + 1);
+ }
+ function Vt() {
+ return (Z === "\r" || Z === `
+`) && j !== "\\" ? (De(N.join("")), G = h, O) : (N.push(Z), j = Z, O + 1);
+ }
+ function ot() {
+ return Vt();
+ }
+ function ut() {
+ return Z === "/" && j === "*" ? (N.push(Z), De(N.join("")), G = h, O + 1) : (N.push(Z), j = Z, O + 1);
+ }
+ function Wt() {
+ if (j === "." && /\d/.test(Z)) return G = E, O;
+ if (j === "/" && Z === "*") return G = v, O;
+ if (j === "/" && Z === "/") return G = _, O;
+ if (Z === "." && N.length) {
+ for (; Nt(N); ) ;
+ return G = E, O;
+ }
+ if (Z === ";" || Z === ")" || Z === "(") {
+ if (N.length) for (; Nt(N); ) ;
+ return De(Z), G = h, O + 1;
+ }
+ var $e = N.length === 2 && Z !== "=";
+ if (/[\w_\d\s]/.test(Z) || $e) {
+ for (; Nt(N); ) ;
+ return G = h, O;
+ }
+ return N.push(Z), j = Z, O + 1;
+ }
+ function Nt($e) {
+ var St = 0, Qt, Gt;
+ do {
+ if (Qt = l.indexOf($e.slice(0, $e.length + St).join("")), Gt = l[Qt], Qt === -1) {
+ if (St-- + $e.length > 0) continue;
+ Gt = $e.slice(0, 1).join("");
+ }
+ return De(Gt), Le += Gt.length, N = N.slice(Gt.length), N.length;
+ } while (true);
+ }
+ function $t() {
+ return /[^a-fA-F0-9]/.test(Z) ? (De(N.join("")), G = h, O) : (N.push(Z), j = Z, O + 1);
+ }
+ function sr() {
+ return Z === "." || /[eE]/.test(Z) ? (N.push(Z), G = E, j = Z, O + 1) : Z === "x" && N.length === 1 && N[0] === "0" ? (G = g, N.push(Z), j = Z, O + 1) : /[^\d]/.test(Z) ? (De(N.join("")), G = h, O) : (N.push(Z), j = Z, O + 1);
+ }
+ function Tr() {
+ return Z === "f" && (N.push(Z), j = Z, O += 1), /[eE]/.test(Z) || (Z === "-" || Z === "+") && /[eE]/.test(j) ? (N.push(Z), j = Z, O + 1) : /[^\d]/.test(Z) ? (De(N.join("")), G = h, O) : (N.push(Z), j = Z, O + 1);
+ }
+ function fr() {
+ if (/[^\d\w_]/.test(Z)) {
+ var $e = N.join("");
+ return me[$e] ? G = x : Pe[$e] ? G = L : G = T, De(N.join("")), G = h, O;
+ }
+ return N.push(Z), j = Z, O + 1;
+ }
+ }
+ }, 5878: function(i, a, o) {
+ i.exports = c;
+ var s = o(3250), l = o(2014);
+ function u(f, h, d) {
+ var v = Math.abs(s(f, h, d)), _ = Math.sqrt(Math.pow(h[0] - d[0], 2) + Math.pow(h[1] - d[1], 2));
+ return v / _;
+ }
+ function c(f, h, d) {
+ for (var v = h.length, _ = f.length, b = new Array(v), p = new Array(v), k = new Array(v), E = new Array(v), T = 0; T < v; ++T) b[T] = p[T] = -1, k[T] = 1 / 0, E[T] = false;
+ for (var T = 0; T < _; ++T) {
+ var L = f[T];
+ if (L.length !== 2) throw new Error("Input must be a graph");
+ var x = L[1], C = L[0];
+ p[C] !== -1 ? p[C] = -2 : p[C] = x, b[x] !== -1 ? b[x] = -2 : b[x] = C;
+ }
+ function M(ie) {
+ if (E[ie]) return 1 / 0;
+ var Se = b[ie], Ee = p[ie];
+ return Se < 0 || Ee < 0 ? 1 / 0 : u(h[ie], h[Se], h[Ee]);
+ }
+ function g(ie, Se) {
+ var Ee = j[ie], Ae = j[Se];
+ j[ie] = Ae, j[Se] = Ee, N[Ee] = Se, N[Ae] = ie;
+ }
+ function P(ie) {
+ return k[j[ie]];
+ }
+ function A(ie) {
+ return ie & 1 ? ie - 1 >> 1 : (ie >> 1) - 1;
+ }
+ function z(ie) {
+ for (var Se = P(ie); ; ) {
+ var Ee = Se, Ae = 2 * ie + 1, Be = 2 * (ie + 1), Pe = ie;
+ if (Ae < re) {
+ var me = P(Ae);
+ me < Ee && (Pe = Ae, Ee = me);
+ }
+ if (Be < re) {
+ var De = P(Be);
+ De < Ee && (Pe = Be);
+ }
+ if (Pe === ie) return ie;
+ g(ie, Pe), ie = Pe;
+ }
+ }
+ function O(ie) {
+ for (var Se = P(ie); ie > 0; ) {
+ var Ee = A(ie);
+ if (Ee >= 0) {
+ var Ae = P(Ee);
+ if (Se < Ae) {
+ g(ie, Ee), ie = Ee;
+ continue;
+ }
+ }
+ return ie;
+ }
+ }
+ function U() {
+ if (re > 0) {
+ var ie = j[0];
+ return g(0, re - 1), re -= 1, z(0), ie;
+ }
+ return -1;
+ }
+ function G(ie, Se) {
+ var Ee = j[ie];
+ return k[Ee] === Se ? ie : (k[Ee] = -1 / 0, O(ie), U(), k[Ee] = Se, re += 1, O(re - 1));
+ }
+ function Z(ie) {
+ if (!E[ie]) {
+ E[ie] = true;
+ var Se = b[ie], Ee = p[ie];
+ b[Ee] >= 0 && (b[Ee] = Se), p[Se] >= 0 && (p[Se] = Ee), N[Se] >= 0 && G(N[Se], M(Se)), N[Ee] >= 0 && G(N[Ee], M(Ee));
+ }
+ }
+ for (var j = [], N = new Array(v), T = 0; T < v; ++T) {
+ var H = k[T] = M(T);
+ H < 1 / 0 ? (N[T] = j.length, j.push(T)) : N[T] = -1;
+ }
+ for (var re = j.length, T = re >> 1; T >= 0; --T) z(T);
+ for (; ; ) {
+ var oe = U();
+ if (oe < 0 || k[oe] > d) break;
+ Z(oe);
+ }
+ for (var _e = [], T = 0; T < v; ++T) E[T] || (N[T] = _e.length, _e.push(h[T].slice()));
+ _e.length;
+ function Le(ie, Se) {
+ if (ie[Se] < 0) return Se;
+ var Ee = Se, Ae = Se;
+ do {
+ var Be = ie[Ae];
+ if (!E[Ae] || Be < 0 || Be === Ae || (Ae = Be, Be = ie[Ae], !E[Ae] || Be < 0 || Be === Ae)) break;
+ Ae = Be, Ee = ie[Ee];
+ } while (Ee !== Ae);
+ for (var Pe = Se; Pe !== Ae; Pe = ie[Pe]) ie[Pe] = Ae;
+ return Ae;
+ }
+ var ge = [];
+ return f.forEach(function(ie) {
+ var Se = Le(b, ie[0]), Ee = Le(p, ie[1]);
+ if (Se >= 0 && Ee >= 0 && Se !== Ee) {
+ var Ae = N[Se], Be = N[Ee];
+ Ae !== Be && ge.push([Ae, Be]);
+ }
+ }), l.unique(l.normalize(ge)), { positions: _e, edges: ge };
+ }
+ }, 5911: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s[0], c = s[1], f = s[2], h = l[0], d = l[1], v = l[2];
+ return o[0] = c * v - f * d, o[1] = f * h - u * v, o[2] = u * d - c * h, o;
+ }
+ }, 5964: function(i) {
+ i.exports = function(a) {
+ return !a && a !== 0 ? "" : a.toString();
+ };
+ }, 5995: function(i, a, o) {
+ i.exports = u;
+ var s = o(7642), l = o(6037);
+ function u(c, f) {
+ return s(f).filter(function(h) {
+ for (var d = new Array(h.length), v = 0; v < h.length; ++v) d[v] = f[h[v]];
+ return l(d) * c < 1;
+ });
+ }
+ }, 6037: function(i, a, o) {
+ i.exports = l;
+ var s = o(3628);
+ function l(u) {
+ for (var c = s(u), f = 0, h = 0; h < u.length; ++h) for (var d = u[h], v = 0; v < c.length; ++v) f += Math.pow(d[v] - c[v], 2);
+ return Math.sqrt(f / u.length);
+ }
+ }, 6079: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ var c = u[0], f = u[1], h = u[2], d = Math.sqrt(c * c + f * f + h * h), v, _, b, p, k, E, T, L, x, C, M, g, P, A, z, O, U, G, Z, j, N, H, re, oe;
+ return Math.abs(d) < 1e-6 ? null : (d = 1 / d, c *= d, f *= d, h *= d, v = Math.sin(l), _ = Math.cos(l), b = 1 - _, p = s[0], k = s[1], E = s[2], T = s[3], L = s[4], x = s[5], C = s[6], M = s[7], g = s[8], P = s[9], A = s[10], z = s[11], O = c * c * b + _, U = f * c * b + h * v, G = h * c * b - f * v, Z = c * f * b - h * v, j = f * f * b + _, N = h * f * b + c * v, H = c * h * b + f * v, re = f * h * b - c * v, oe = h * h * b + _, o[0] = p * O + L * U + g * G, o[1] = k * O + x * U + P * G, o[2] = E * O + C * U + A * G, o[3] = T * O + M * U + z * G, o[4] = p * Z + L * j + g * N, o[5] = k * Z + x * j + P * N, o[6] = E * Z + C * j + A * N, o[7] = T * Z + M * j + z * N, o[8] = p * H + L * re + g * oe, o[9] = k * H + x * re + P * oe, o[10] = E * H + C * re + A * oe, o[11] = T * H + M * re + z * oe, s !== o && (o[12] = s[12], o[13] = s[13], o[14] = s[14], o[15] = s[15]), o);
+ }
+ }, 6141: function(i, a, o) {
+ i.exports = o(2953);
+ }, 6199: function(i, a, o) {
+ var s = o(1338), l = { zero: function(L, x, C, M) {
+ var g = L[0], P = C[0];
+ M |= 0;
+ var A = 0, z = P;
+ for (A = 0; A < g; ++A) x[M] = 0, M += z;
+ }, fdTemplate1: function(L, x, C, M, g, P, A) {
+ var z = L[0], O = C[0], U = P[0], G = -1 * O, Z = O;
+ M |= 0, A |= 0;
+ var j = 0, N = O, H = U;
+ for (j = 0; j < z; ++j) g[A] = 0.5 * (x[M + G] - x[M + Z]), M += N, A += H;
+ }, fdTemplate2: function(L, x, C, M, g, P, A, z, O, U) {
+ var G = L[0], Z = L[1], j = C[0], N = C[1], H = P[0], re = P[1], oe = O[0], _e = O[1], Ce = -1 * j, Le = j, ge = -1 * N, ie = N;
+ M |= 0, A |= 0, U |= 0;
+ var Se = 0, Ee = 0, Ae = N, Be = j - Z * N, Pe = re, me = H - Z * re, De = _e, ce = oe - Z * _e;
+ for (Ee = 0; Ee < G; ++Ee) {
+ for (Se = 0; Se < Z; ++Se) g[A] = 0.5 * (x[M + Ce] - x[M + Le]), z[U] = 0.5 * (x[M + ge] - x[M + ie]), M += Ae, A += Pe, U += De;
+ M += Be, A += me, U += ce;
+ }
+ } }, u = { cdiff: function(L) {
+ var x = {};
+ return function(M, g, P) {
+ var A = M.dtype, z = M.order, O = g.dtype, U = g.order, G = P.dtype, Z = P.order, j = [A, z.join(), O, U.join(), G, Z.join()].join(), N = x[j];
+ return N || (x[j] = N = L([A, z, O, U, G, Z])), N(M.shape.slice(0), M.data, M.stride, M.offset | 0, g.data, g.stride, g.offset | 0, P.data, P.stride, P.offset | 0);
+ };
+ }, zero: function(L) {
+ var x = {};
+ return function(M) {
+ var g = M.dtype, P = M.order, A = [g, P.join()].join(), z = x[A];
+ return z || (x[A] = z = L([g, P])), z(M.shape.slice(0), M.data, M.stride, M.offset | 0);
+ };
+ }, fdTemplate1: function(L) {
+ var x = {};
+ return function(M, g) {
+ var P = M.dtype, A = M.order, z = g.dtype, O = g.order, U = [P, A.join(), z, O.join()].join(), G = x[U];
+ return G || (x[U] = G = L([P, A, z, O])), G(M.shape.slice(0), M.data, M.stride, M.offset | 0, g.data, g.stride, g.offset | 0);
+ };
+ }, fdTemplate2: function(L) {
+ var x = {};
+ return function(M, g, P) {
+ var A = M.dtype, z = M.order, O = g.dtype, U = g.order, G = P.dtype, Z = P.order, j = [A, z.join(), O, U.join(), G, Z.join()].join(), N = x[j];
+ return N || (x[j] = N = L([A, z, O, U, G, Z])), N(M.shape.slice(0), M.data, M.stride, M.offset | 0, g.data, g.stride, g.offset | 0, P.data, P.stride, P.offset | 0);
+ };
+ } };
+ function c(L) {
+ var x = u[L.funcName];
+ return x(f.bind(void 0, L));
+ }
+ function f(L) {
+ return l[L.funcName];
+ }
+ function h(L) {
+ return c({ funcName: L.funcName });
+ }
+ var d = {}, v = {}, b = h({ funcName: "cdiff" }), p = h({ funcName: "zero" });
+ function k(L) {
+ return L in d ? d[L] : d[L] = h({ funcName: "fdTemplate" + L });
+ }
+ function E(L, x, C, M) {
+ return function(g, P) {
+ var A = P.shape.slice();
+ return A[0] > 2 && A[1] > 2 && M(P.pick(-1, -1).lo(1, 1).hi(A[0] - 2, A[1] - 2), g.pick(-1, -1, 0).lo(1, 1).hi(A[0] - 2, A[1] - 2), g.pick(-1, -1, 1).lo(1, 1).hi(A[0] - 2, A[1] - 2)), A[1] > 2 && (C(P.pick(0, -1).lo(1).hi(A[1] - 2), g.pick(0, -1, 1).lo(1).hi(A[1] - 2)), x(g.pick(0, -1, 0).lo(1).hi(A[1] - 2))), A[1] > 2 && (C(P.pick(A[0] - 1, -1).lo(1).hi(A[1] - 2), g.pick(A[0] - 1, -1, 1).lo(1).hi(A[1] - 2)), x(g.pick(A[0] - 1, -1, 0).lo(1).hi(A[1] - 2))), A[0] > 2 && (C(P.pick(-1, 0).lo(1).hi(A[0] - 2), g.pick(-1, 0, 0).lo(1).hi(A[0] - 2)), x(g.pick(-1, 0, 1).lo(1).hi(A[0] - 2))), A[0] > 2 && (C(P.pick(-1, A[1] - 1).lo(1).hi(A[0] - 2), g.pick(-1, A[1] - 1, 0).lo(1).hi(A[0] - 2)), x(g.pick(-1, A[1] - 1, 1).lo(1).hi(A[0] - 2))), g.set(0, 0, 0, 0), g.set(0, 0, 1, 0), g.set(A[0] - 1, 0, 0, 0), g.set(A[0] - 1, 0, 1, 0), g.set(0, A[1] - 1, 0, 0), g.set(0, A[1] - 1, 1, 0), g.set(A[0] - 1, A[1] - 1, 0, 0), g.set(A[0] - 1, A[1] - 1, 1, 0), g;
+ };
+ }
+ function T(L) {
+ var x = L.join(), A = v[x];
+ if (A) return A;
+ for (var C = L.length, M = [b, p], g = 1; g <= C; ++g) M.push(k(g));
+ var P = E, A = P.apply(void 0, M);
+ return v[x] = A, A;
+ }
+ i.exports = function(x, C, M) {
+ if (Array.isArray(M) || (typeof M == "string" ? M = s(C.dimension, M) : M = s(C.dimension, "clamp")), C.size === 0) return x;
+ if (C.dimension === 0) return x.set(0), x;
+ var g = T(M);
+ return g(x, C);
+ };
+ }, 6204: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s, l, u, c = o.length, f = 0;
+ for (s = 0; s < c; ++s) f += o[s].length;
+ var h = new Array(f), d = 0;
+ for (s = 0; s < c; ++s) {
+ var v = o[s], _ = v.length;
+ for (l = 0; l < _; ++l) {
+ var b = h[d++] = new Array(_ - 1), p = 0;
+ for (u = 0; u < _; ++u) u !== l && (b[p++] = v[u]);
+ if (l & 1) {
+ var k = b[1];
+ b[1] = b[0], b[0] = k;
+ }
+ }
+ }
+ return h;
+ }
+ }, 6296: function(i, a, o) {
+ i.exports = h;
+ var s = o(7261), l = o(9977), u = o(1811);
+ function c(d, v) {
+ this._controllerNames = Object.keys(d), this._controllerList = this._controllerNames.map(function(_) {
+ return d[_];
+ }), this._mode = v, this._active = d[v], this._active || (this._mode = "turntable", this._active = d.turntable), this.modes = this._controllerNames, this.computedMatrix = this._active.computedMatrix, this.computedEye = this._active.computedEye, this.computedUp = this._active.computedUp, this.computedCenter = this._active.computedCenter, this.computedRadius = this._active.computedRadius;
+ }
+ var f = c.prototype;
+ f.flush = function(d) {
+ for (var v = this._controllerList, _ = 0; _ < v.length; ++_) v[_].flush(d);
+ }, f.idle = function(d) {
+ for (var v = this._controllerList, _ = 0; _ < v.length; ++_) v[_].idle(d);
+ }, f.lookAt = function(d, v, _, b) {
+ for (var p = this._controllerList, k = 0; k < p.length; ++k) p[k].lookAt(d, v, _, b);
+ }, f.rotate = function(d, v, _, b) {
+ for (var p = this._controllerList, k = 0; k < p.length; ++k) p[k].rotate(d, v, _, b);
+ }, f.pan = function(d, v, _, b) {
+ for (var p = this._controllerList, k = 0; k < p.length; ++k) p[k].pan(d, v, _, b);
+ }, f.translate = function(d, v, _, b) {
+ for (var p = this._controllerList, k = 0; k < p.length; ++k) p[k].translate(d, v, _, b);
+ }, f.setMatrix = function(d, v) {
+ for (var _ = this._controllerList, b = 0; b < _.length; ++b) _[b].setMatrix(d, v);
+ }, f.setDistanceLimits = function(d, v) {
+ for (var _ = this._controllerList, b = 0; b < _.length; ++b) _[b].setDistanceLimits(d, v);
+ }, f.setDistance = function(d, v) {
+ for (var _ = this._controllerList, b = 0; b < _.length; ++b) _[b].setDistance(d, v);
+ }, f.recalcMatrix = function(d) {
+ this._active.recalcMatrix(d);
+ }, f.getDistance = function(d) {
+ return this._active.getDistance(d);
+ }, f.getDistanceLimits = function(d) {
+ return this._active.getDistanceLimits(d);
+ }, f.lastT = function() {
+ return this._active.lastT();
+ }, f.setMode = function(d) {
+ if (d !== this._mode) {
+ var v = this._controllerNames.indexOf(d);
+ if (!(v < 0)) {
+ var _ = this._active, b = this._controllerList[v], p = Math.max(_.lastT(), b.lastT());
+ _.recalcMatrix(p), b.setMatrix(p, _.computedMatrix), this._active = b, this._mode = d, this.computedMatrix = this._active.computedMatrix, this.computedEye = this._active.computedEye, this.computedUp = this._active.computedUp, this.computedCenter = this._active.computedCenter, this.computedRadius = this._active.computedRadius;
+ }
+ }
+ }, f.getMode = function() {
+ return this._mode;
+ };
+ function h(d) {
+ d = d || {};
+ var v = d.eye || [0, 0, 1], _ = d.center || [0, 0, 0], b = d.up || [0, 1, 0], p = d.distanceLimits || [0, 1 / 0], k = d.mode || "turntable", E = s(), T = l(), L = u();
+ return E.setDistanceLimits(p[0], p[1]), E.lookAt(0, v, _, b), T.setDistanceLimits(p[0], p[1]), T.lookAt(0, v, _, b), L.setDistanceLimits(p[0], p[1]), L.lookAt(0, v, _, b), new c({ turntable: E, orbit: T, matrix: L }, k);
+ }
+ }, 6330: function(i, a, o) {
+ var s = o(1533);
+ i.exports = l;
+ function l(u) {
+ return Array.isArray(u) && u.length === 2 && s(u[0]) && s(u[1]);
+ }
+ }, 6405: function(i, a, o) {
+ var s = o(2931);
+ i.exports = function(u, c) {
+ var f = u.positions, h = u.vectors, d = { positions: [], vertexIntensity: [], vertexIntensityBounds: u.vertexIntensityBounds, vectors: [], cells: [], coneOffset: u.coneOffset, colormap: u.colormap };
+ if (u.positions.length === 0) return c && (c[0] = [0, 0, 0], c[1] = [0, 0, 0]), d;
+ for (var v = 0, _ = 1 / 0, b = -1 / 0, p = 1 / 0, k = -1 / 0, E = 1 / 0, T = -1 / 0, L = null, x = null, C = [], M = 1 / 0, g = false, P = u.coneSizemode === "raw", A = 0; A < f.length; A++) {
+ var z = f[A];
+ _ = Math.min(z[0], _), b = Math.max(z[0], b), p = Math.min(z[1], p), k = Math.max(z[1], k), E = Math.min(z[2], E), T = Math.max(z[2], T);
+ var O = h[A];
+ if (s.length(O) > v && (v = s.length(O)), A && !P) {
+ var U = 2 * s.distance(L, z) / (s.length(x) + s.length(O));
+ U ? (M = Math.min(M, U), g = false) : g = true;
+ }
+ g || (L = z, x = O), C.push(O);
+ }
+ var G = [_, p, E], Z = [b, k, T];
+ c && (c[0] = G, c[1] = Z), v === 0 && (v = 1);
+ var j = 1 / v;
+ isFinite(M) || (M = 1), d.vectorScale = M;
+ var N = u.coneSize || (P ? 1 : 0.5);
+ u.absoluteConeSize && (N = u.absoluteConeSize * j), d.coneScale = N;
+ for (var A = 0, H = 0; A < f.length; A++) for (var z = f[A], re = z[0], oe = z[1], _e = z[2], Ce = C[A], Le = s.length(Ce) * j, ge = 0, ie = 8; ge < ie; ge++) {
+ d.positions.push([re, oe, _e, H++]), d.positions.push([re, oe, _e, H++]), d.positions.push([re, oe, _e, H++]), d.positions.push([re, oe, _e, H++]), d.positions.push([re, oe, _e, H++]), d.positions.push([re, oe, _e, H++]), d.vectors.push(Ce), d.vectors.push(Ce), d.vectors.push(Ce), d.vectors.push(Ce), d.vectors.push(Ce), d.vectors.push(Ce), d.vertexIntensity.push(Le, Le, Le), d.vertexIntensity.push(Le, Le, Le);
+ var Se = d.positions.length;
+ d.cells.push([Se - 6, Se - 5, Se - 4], [Se - 3, Se - 2, Se - 1]);
+ }
+ return d;
+ };
+ var l = o(614);
+ i.exports.createMesh = o(9060), i.exports.createConeMesh = function(u, c) {
+ return i.exports.createMesh(u, c, { shaders: l, traceType: "cone" });
+ };
+ }, 6429: function(i, a, o) {
+ i.exports = x;
+ var s = o(8828), l = o(6760), u = o(5202), c = o(3250), f = new Array(16), h = new Array(8), d = new Array(8), v = new Array(3), _ = [0, 0, 0];
+ (function() {
+ for (var C = 0; C < 8; ++C) h[C] = [1, 1, 1, 1], d[C] = [1, 1, 1];
+ })();
+ function b(C, M, g) {
+ for (var P = 0; P < 4; ++P) {
+ C[P] = g[12 + P];
+ for (var A = 0; A < 3; ++A) C[P] += M[A] * g[4 * A + P];
+ }
+ }
+ var p = [[0, 0, 1, 0, 0], [0, 0, -1, 1, 0], [0, -1, 0, 1, 0], [0, 1, 0, 1, 0], [-1, 0, 0, 1, 0], [1, 0, 0, 1, 0]];
+ function k(C) {
+ for (var M = 0; M < p.length; ++M) if (C = u.positive(C, p[M]), C.length < 3) return 0;
+ for (var g = C[0], P = g[0] / g[3], A = g[1] / g[3], z = 0, M = 1; M + 1 < C.length; ++M) {
+ var O = C[M], U = C[M + 1], G = O[0] / O[3], Z = O[1] / O[3], j = U[0] / U[3], N = U[1] / U[3], H = G - P, re = Z - A, oe = j - P, _e = N - A;
+ z += Math.abs(H * _e - re * oe);
+ }
+ return z;
+ }
+ var E = [1, 1, 1], T = [0, 0, 0], L = { cubeEdges: E, axis: T };
+ function x(C, M, g, P, A) {
+ l(f, M, C), l(f, g, f);
+ for (var z = 0, O = 0; O < 2; ++O) {
+ v[2] = P[O][2];
+ for (var U = 0; U < 2; ++U) {
+ v[1] = P[U][1];
+ for (var G = 0; G < 2; ++G) v[0] = P[G][0], b(h[z], v, f), z += 1;
+ }
+ }
+ for (var Z = -1, O = 0; O < 8; ++O) {
+ for (var j = h[O][3], N = 0; N < 3; ++N) d[O][N] = h[O][N] / j;
+ A && (d[O][2] *= -1), j < 0 && (Z < 0 || d[O][2] < d[Z][2]) && (Z = O);
+ }
+ if (Z < 0) {
+ Z = 0;
+ for (var H = 0; H < 3; ++H) {
+ for (var re = (H + 2) % 3, oe = (H + 1) % 3, _e = -1, Ce = -1, Le = 0; Le < 2; ++Le) {
+ var ge = Le << H, ie = ge + (Le << re) + (1 - Le << oe), Se = ge + (1 - Le << re) + (Le << oe);
+ c(d[ge], d[ie], d[Se], _) < 0 || (Le ? _e = 1 : Ce = 1);
+ }
+ if (_e < 0 || Ce < 0) {
+ Ce > _e && (Z |= 1 << H);
+ continue;
+ }
+ for (var Le = 0; Le < 2; ++Le) {
+ var ge = Le << H, ie = ge + (Le << re) + (1 - Le << oe), Se = ge + (1 - Le << re) + (Le << oe), Ee = k([h[ge], h[ie], h[Se], h[ge + (1 << re) + (1 << oe)]]);
+ Le ? _e = Ee : Ce = Ee;
+ }
+ if (Ce > _e) {
+ Z |= 1 << H;
+ continue;
+ }
+ }
+ }
+ for (var Ae = 7 ^ Z, Be = -1, O = 0; O < 8; ++O) O === Z || O === Ae || (Be < 0 || d[Be][1] > d[O][1]) && (Be = O);
+ for (var Pe = -1, O = 0; O < 3; ++O) {
+ var me = Be ^ 1 << O;
+ if (!(me === Z || me === Ae)) {
+ Pe < 0 && (Pe = me);
+ var oe = d[me];
+ oe[0] < d[Pe][0] && (Pe = me);
+ }
+ }
+ for (var De = -1, O = 0; O < 3; ++O) {
+ var me = Be ^ 1 << O;
+ if (!(me === Z || me === Ae || me === Pe)) {
+ De < 0 && (De = me);
+ var oe = d[me];
+ oe[0] > d[De][0] && (De = me);
+ }
+ }
+ var ce = E;
+ ce[0] = ce[1] = ce[2] = 0, ce[s.log2(Pe ^ Be)] = Be & Pe, ce[s.log2(Be ^ De)] = Be & De;
+ var je = De ^ 7;
+ je === Z || je === Ae ? (je = Pe ^ 7, ce[s.log2(De ^ je)] = je & De) : ce[s.log2(Pe ^ je)] = je & Pe;
+ for (var lt = T, pt = Z, H = 0; H < 3; ++H) pt & 1 << H ? lt[H] = -1 : lt[H] = 1;
+ return L;
+ }
+ }, 6444: function(i, a) {
+ a.create = s, a.equal = l;
+ function o(u, c) {
+ var f = u + "", h = f.indexOf("."), d = 0;
+ h >= 0 && (d = f.length - h - 1);
+ var v = Math.pow(10, d), _ = Math.round(u * c * v), b = _ + "";
+ if (b.indexOf("e") >= 0) return b;
+ var p = _ / v, k = _ % v;
+ _ < 0 ? (p = -Math.ceil(p) | 0, k = -k | 0) : (p = Math.floor(p) | 0, k = k | 0);
+ var E = "" + p;
+ if (_ < 0 && (E = "-" + E), d) {
+ for (var T = "" + k; T.length < d; ) T = "0" + T;
+ return E + "." + T;
+ } else return E;
+ }
+ function s(u, c) {
+ for (var f = [], h = 0; h < 3; ++h) {
+ for (var d = [], v = 0.5 * (u[0][h] + u[1][h]), _ = 0; _ * c[h] <= u[1][h]; ++_) d.push({ x: _ * c[h], text: o(c[h], _) });
+ for (var _ = -1; _ * c[h] >= u[0][h]; --_) d.push({ x: _ * c[h], text: o(c[h], _) });
+ f.push(d);
+ }
+ return f;
+ }
+ function l(u, c) {
+ for (var f = 0; f < 3; ++f) {
+ if (u[f].length !== c[f].length) return false;
+ for (var h = 0; h < u[f].length; ++h) {
+ var d = u[f][h], v = c[f][h];
+ if (d.x !== v.x || d.text !== v.text || d.font !== v.font || d.fontColor !== v.fontColor || d.fontSize !== v.fontSize || d.dx !== v.dx || d.dy !== v.dy) return false;
+ }
+ }
+ return true;
+ }
+ }, 6468: function(i) {
+ i.exports = function(o) {
+ return atob(o);
+ };
+ }, 6504: function(i, a, o) {
+ var s = o(869);
+ i.exports = l;
+ function l(u, c) {
+ return s(u[0].mul(c[0]), u[1].mul(c[1]));
+ }
+ }, 6582: function(i, a, o) {
+ var s = o(7894);
+ i.exports = l;
+ function l(u, c, f, h) {
+ var d, v, _, b, p, k, E, T, L, x, C = c[0], M = c[1], g = c[2], P = h[0], A = h[1], z = h[2], O = f[0], U = f[1], G = f[2];
+ return Math.abs(C - O) < 1e-6 && Math.abs(M - U) < 1e-6 && Math.abs(g - G) < 1e-6 ? s(u) : (E = C - O, T = M - U, L = g - G, x = 1 / Math.sqrt(E * E + T * T + L * L), E *= x, T *= x, L *= x, d = A * L - z * T, v = z * E - P * L, _ = P * T - A * E, x = Math.sqrt(d * d + v * v + _ * _), x ? (x = 1 / x, d *= x, v *= x, _ *= x) : (d = 0, v = 0, _ = 0), b = T * _ - L * v, p = L * d - E * _, k = E * v - T * d, x = Math.sqrt(b * b + p * p + k * k), x ? (x = 1 / x, b *= x, p *= x, k *= x) : (b = 0, p = 0, k = 0), u[0] = d, u[1] = b, u[2] = E, u[3] = 0, u[4] = v, u[5] = p, u[6] = T, u[7] = 0, u[8] = _, u[9] = k, u[10] = L, u[11] = 0, u[12] = -(d * C + v * M + _ * g), u[13] = -(b * C + p * M + k * g), u[14] = -(E * C + T * M + L * g), u[15] = 1, u);
+ }
+ }, 6621: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] * l, o[1] = s[1] * l, o[2] = s[2] * l, o;
+ }
+ }, 6658: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ var c = s[0], f = s[1], h = s[2];
+ return o[0] = c + u * (l[0] - c), o[1] = f + u * (l[1] - f), o[2] = h + u * (l[2] - h), o;
+ }
+ }, 6690: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] / l[0], o[1] = s[1] / l[1], o[2] = s[2] / l[2], o;
+ }
+ }, 6729: function(i, a, o) {
+ var s = o(3642), l = o(395);
+ i.exports = u;
+ function u(d) {
+ var v, _, b, p, k, E, T, L, g, x, C;
+ if (d || (d = {}), L = (d.nshades || 72) - 1, T = d.format || "hex", E = d.colormap, E || (E = "jet"), typeof E == "string") {
+ if (E = E.toLowerCase(), !s[E]) throw Error(E + " not a supported colorscale");
+ k = s[E];
+ } else if (Array.isArray(E)) k = E.slice();
+ else throw Error("unsupported colormap option", E);
+ if (k.length > L + 1) throw new Error(E + " map requires nshades to be at least size " + k.length);
+ Array.isArray(d.alpha) ? d.alpha.length !== 2 ? x = [1, 1] : x = d.alpha.slice() : typeof d.alpha == "number" ? x = [d.alpha, d.alpha] : x = [1, 1], v = k.map(function(z) {
+ return Math.round(z.index * L);
+ }), x[0] = Math.min(Math.max(x[0], 0), 1), x[1] = Math.min(Math.max(x[1], 0), 1);
+ var M = k.map(function(z, O) {
+ var U = k[O].index, G = k[O].rgb.slice();
+ return G.length === 4 && G[3] >= 0 && G[3] <= 1 || (G[3] = x[0] + (x[1] - x[0]) * U), G;
+ }), g = [];
+ for (C = 0; C < v.length - 1; ++C) {
+ p = v[C + 1] - v[C], _ = M[C], b = M[C + 1];
+ for (var P = 0; P < p; P++) {
+ var A = P / p;
+ g.push([Math.round(l(_[0], b[0], A)), Math.round(l(_[1], b[1], A)), Math.round(l(_[2], b[2], A)), l(_[3], b[3], A)]);
+ }
+ }
+ return g.push(k[k.length - 1].rgb.concat(x[1])), T === "hex" ? g = g.map(f) : T === "rgbaString" ? g = g.map(h) : T === "float" && (g = g.map(c)), g;
+ }
+ function c(d) {
+ return [d[0] / 255, d[1] / 255, d[2] / 255, d[3]];
+ }
+ function f(d) {
+ for (var v, _ = "#", b = 0; b < 3; ++b) v = d[b], v = v.toString(16), _ += ("00" + v).substr(v.length);
+ return _;
+ }
+ function h(d) {
+ return "rgba(" + d.join(",") + ")";
+ }
+ }, 6740: function(i, a, o) {
+ var s = o(3236), l = s([`precision highp float;
+
+precision highp float;
+#define GLSLIFY 1
+
+vec3 getOrthogonalVector(vec3 v) {
+ // Return up-vector for only-z vector.
+ // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).
+ // From the above if-statement we have ||a|| > 0 U ||b|| > 0.
+ // Assign z = 0, x = -b, y = a:
+ // a*-b + b*a + c*0 = -ba + ba + 0 = 0
+ if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {
+ return normalize(vec3(-v.y, v.x, 0.0));
+ } else {
+ return normalize(vec3(0.0, v.z, -v.y));
+ }
+}
+
+// Calculate the tube vertex and normal at the given index.
+//
+// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.
+//
+// Each tube segment is made up of a ring of vertices.
+// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.
+// The indexes of tube segments run from 0 to 8.
+//
+vec3 getTubePosition(vec3 d, float index, out vec3 normal) {
+ float segmentCount = 8.0;
+
+ float angle = 2.0 * 3.14159 * (index / segmentCount);
+
+ vec3 u = getOrthogonalVector(d);
+ vec3 v = normalize(cross(u, d));
+
+ vec3 x = u * cos(angle) * length(d);
+ vec3 y = v * sin(angle) * length(d);
+ vec3 v3 = x + y;
+
+ normal = normalize(v3);
+
+ return v3;
+}
+
+attribute vec4 vector;
+attribute vec4 color, position;
+attribute vec2 uv;
+
+uniform float vectorScale, tubeScale;
+uniform mat4 model, view, projection, inverseModel;
+uniform vec3 eyePosition, lightPosition;
+
+varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;
+varying vec4 f_color;
+varying vec2 f_uv;
+
+void main() {
+ // Scale the vector magnitude to stay constant with
+ // model & view changes.
+ vec3 normal;
+ vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);
+ vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);
+
+ //Lighting geometry parameters
+ vec4 cameraCoordinate = view * tubePosition;
+ cameraCoordinate.xyz /= cameraCoordinate.w;
+ f_lightDirection = lightPosition - cameraCoordinate.xyz;
+ f_eyeDirection = eyePosition - cameraCoordinate.xyz;
+ f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);
+
+ // vec4 m_position = model * vec4(tubePosition, 1.0);
+ vec4 t_position = view * tubePosition;
+ gl_Position = projection * t_position;
+
+ f_color = color;
+ f_data = tubePosition.xyz;
+ f_position = position.xyz;
+ f_uv = uv;
+}
+`]), u = s([`#extension GL_OES_standard_derivatives : enable
+
+precision highp float;
+#define GLSLIFY 1
+
+float beckmannDistribution(float x, float roughness) {
+ float NdotH = max(x, 0.0001);
+ float cos2Alpha = NdotH * NdotH;
+ float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;
+ float roughness2 = roughness * roughness;
+ float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;
+ return exp(tan2Alpha / roughness2) / denom;
+}
+
+float cookTorranceSpecular(
+ vec3 lightDirection,
+ vec3 viewDirection,
+ vec3 surfaceNormal,
+ float roughness,
+ float fresnel) {
+
+ float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);
+ float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);
+
+ //Half angle vector
+ vec3 H = normalize(lightDirection + viewDirection);
+
+ //Geometric term
+ float NdotH = max(dot(surfaceNormal, H), 0.0);
+ float VdotH = max(dot(viewDirection, H), 0.000001);
+ float LdotH = max(dot(lightDirection, H), 0.000001);
+ float G1 = (2.0 * NdotH * VdotN) / VdotH;
+ float G2 = (2.0 * NdotH * LdotN) / LdotH;
+ float G = min(1.0, min(G1, G2));
+
+ //Distribution term
+ float D = beckmannDistribution(NdotH, roughness);
+
+ //Fresnel term
+ float F = pow(1.0 - VdotN, fresnel);
+
+ //Multiply terms and done
+ return G * F * D / max(3.14159265 * VdotN, 0.000001);
+}
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;
+uniform sampler2D texture;
+
+varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;
+varying vec4 f_color;
+varying vec2 f_uv;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;
+ vec3 N = normalize(f_normal);
+ vec3 L = normalize(f_lightDirection);
+ vec3 V = normalize(f_eyeDirection);
+
+ if(gl_FrontFacing) {
+ N = -N;
+ }
+
+ float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));
+ float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);
+
+ vec4 surfaceColor = f_color * texture2D(texture, f_uv);
+ vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);
+
+ gl_FragColor = litColor * opacity;
+}
+`]), c = s([`precision highp float;
+
+precision highp float;
+#define GLSLIFY 1
+
+vec3 getOrthogonalVector(vec3 v) {
+ // Return up-vector for only-z vector.
+ // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).
+ // From the above if-statement we have ||a|| > 0 U ||b|| > 0.
+ // Assign z = 0, x = -b, y = a:
+ // a*-b + b*a + c*0 = -ba + ba + 0 = 0
+ if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {
+ return normalize(vec3(-v.y, v.x, 0.0));
+ } else {
+ return normalize(vec3(0.0, v.z, -v.y));
+ }
+}
+
+// Calculate the tube vertex and normal at the given index.
+//
+// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.
+//
+// Each tube segment is made up of a ring of vertices.
+// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.
+// The indexes of tube segments run from 0 to 8.
+//
+vec3 getTubePosition(vec3 d, float index, out vec3 normal) {
+ float segmentCount = 8.0;
+
+ float angle = 2.0 * 3.14159 * (index / segmentCount);
+
+ vec3 u = getOrthogonalVector(d);
+ vec3 v = normalize(cross(u, d));
+
+ vec3 x = u * cos(angle) * length(d);
+ vec3 y = v * sin(angle) * length(d);
+ vec3 v3 = x + y;
+
+ normal = normalize(v3);
+
+ return v3;
+}
+
+attribute vec4 vector;
+attribute vec4 position;
+attribute vec4 id;
+
+uniform mat4 model, view, projection;
+uniform float tubeScale;
+
+varying vec3 f_position;
+varying vec4 f_id;
+
+void main() {
+ vec3 normal;
+ vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);
+ vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);
+
+ gl_Position = projection * (view * tubePosition);
+ f_id = id;
+ f_position = position.xyz;
+}
+`]), f = s([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform float pickId;
+
+varying vec3 f_position;
+varying vec4 f_id;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;
+
+ gl_FragColor = vec4(pickId, f_id.xyz);
+}`]);
+ a.meshShader = { vertex: l, fragment: u, attributes: [{ name: "position", type: "vec4" }, { name: "color", type: "vec4" }, { name: "uv", type: "vec2" }, { name: "vector", type: "vec4" }] }, a.pickShader = { vertex: c, fragment: f, attributes: [{ name: "position", type: "vec4" }, { name: "id", type: "vec4" }, { name: "vector", type: "vec4" }] };
+ }, 6743: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s[0], c = s[1], f = s[2], h = s[3], d = u + u, v = c + c, _ = f + f, b = u * d, p = u * v, k = u * _, E = c * v, T = c * _, L = f * _, x = h * d, C = h * v, M = h * _;
+ return o[0] = 1 - (E + L), o[1] = p + M, o[2] = k - C, o[3] = 0, o[4] = p - M, o[5] = 1 - (b + L), o[6] = T + x, o[7] = 0, o[8] = k + C, o[9] = T - x, o[10] = 1 - (b + E), o[11] = 0, o[12] = l[0], o[13] = l[1], o[14] = l[2], o[15] = 1, o;
+ }
+ }, 6760: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = s[0], c = s[1], f = s[2], h = s[3], d = s[4], v = s[5], _ = s[6], b = s[7], p = s[8], k = s[9], E = s[10], T = s[11], L = s[12], x = s[13], C = s[14], M = s[15], g = l[0], P = l[1], A = l[2], z = l[3];
+ return o[0] = g * u + P * d + A * p + z * L, o[1] = g * c + P * v + A * k + z * x, o[2] = g * f + P * _ + A * E + z * C, o[3] = g * h + P * b + A * T + z * M, g = l[4], P = l[5], A = l[6], z = l[7], o[4] = g * u + P * d + A * p + z * L, o[5] = g * c + P * v + A * k + z * x, o[6] = g * f + P * _ + A * E + z * C, o[7] = g * h + P * b + A * T + z * M, g = l[8], P = l[9], A = l[10], z = l[11], o[8] = g * u + P * d + A * p + z * L, o[9] = g * c + P * v + A * k + z * x, o[10] = g * f + P * _ + A * E + z * C, o[11] = g * h + P * b + A * T + z * M, g = l[12], P = l[13], A = l[14], z = l[15], o[12] = g * u + P * d + A * p + z * L, o[13] = g * c + P * v + A * k + z * x, o[14] = g * f + P * _ + A * E + z * C, o[15] = g * h + P * b + A * T + z * M, o;
+ }
+ }, 6768: function(i, a, o) {
+ var s = o(6859);
+ i.exports = l;
+ function l(u) {
+ return new s(u);
+ }
+ }, 6803: function(i, a, o) {
+ o(8828);
+ o(1755);
+ function d(P, A) {
+ var z = P.length, O = P.length - A.length, U = Math.min;
+ if (O) return O;
+ switch (z) {
+ case 0:
+ return 0;
+ case 1:
+ return P[0] - A[0];
+ case 2:
+ var H = P[0] + P[1] - A[0] - A[1];
+ return H || U(P[0], P[1]) - U(A[0], A[1]);
+ case 3:
+ var G = P[0] + P[1], Z = A[0] + A[1];
+ if (H = G + P[2] - (Z + A[2]), H) return H;
+ var j = U(P[0], P[1]), N = U(A[0], A[1]), H = U(j, P[2]) - U(N, A[2]);
+ return H || U(j + P[2], G) - U(N + A[2], Z);
+ default:
+ var re = P.slice(0);
+ re.sort();
+ var oe = A.slice(0);
+ oe.sort();
+ for (var _e = 0; _e < z; ++_e) if (O = re[_e] - oe[_e], O) return O;
+ return 0;
+ }
+ }
+ a.Fw = d;
+ }, 6808: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s = o[0], l = o[1], u = o[2], c = o[3];
+ return Math.sqrt(s * s + l * l + u * u + c * c);
+ }
+ }, 6843: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] - l[0], o[1] = s[1] - l[1], o[2] = s[2] - l[2], o;
+ }
+ }, 6852: function(i) {
+ i.exports = ["abs", "acos", "all", "any", "asin", "atan", "ceil", "clamp", "cos", "cross", "dFdx", "dFdy", "degrees", "distance", "dot", "equal", "exp", "exp2", "faceforward", "floor", "fract", "gl_BackColor", "gl_BackLightModelProduct", "gl_BackLightProduct", "gl_BackMaterial", "gl_BackSecondaryColor", "gl_ClipPlane", "gl_ClipVertex", "gl_Color", "gl_DepthRange", "gl_DepthRangeParameters", "gl_EyePlaneQ", "gl_EyePlaneR", "gl_EyePlaneS", "gl_EyePlaneT", "gl_Fog", "gl_FogCoord", "gl_FogFragCoord", "gl_FogParameters", "gl_FragColor", "gl_FragCoord", "gl_FragData", "gl_FragDepth", "gl_FragDepthEXT", "gl_FrontColor", "gl_FrontFacing", "gl_FrontLightModelProduct", "gl_FrontLightProduct", "gl_FrontMaterial", "gl_FrontSecondaryColor", "gl_LightModel", "gl_LightModelParameters", "gl_LightModelProducts", "gl_LightProducts", "gl_LightSource", "gl_LightSourceParameters", "gl_MaterialParameters", "gl_MaxClipPlanes", "gl_MaxCombinedTextureImageUnits", "gl_MaxDrawBuffers", "gl_MaxFragmentUniformComponents", "gl_MaxLights", "gl_MaxTextureCoords", "gl_MaxTextureImageUnits", "gl_MaxTextureUnits", "gl_MaxVaryingFloats", "gl_MaxVertexAttribs", "gl_MaxVertexTextureImageUnits", "gl_MaxVertexUniformComponents", "gl_ModelViewMatrix", "gl_ModelViewMatrixInverse", "gl_ModelViewMatrixInverseTranspose", "gl_ModelViewMatrixTranspose", "gl_ModelViewProjectionMatrix", "gl_ModelViewProjectionMatrixInverse", "gl_ModelViewProjectionMatrixInverseTranspose", "gl_ModelViewProjectionMatrixTranspose", "gl_MultiTexCoord0", "gl_MultiTexCoord1", "gl_MultiTexCoord2", "gl_MultiTexCoord3", "gl_MultiTexCoord4", "gl_MultiTexCoord5", "gl_MultiTexCoord6", "gl_MultiTexCoord7", "gl_Normal", "gl_NormalMatrix", "gl_NormalScale", "gl_ObjectPlaneQ", "gl_ObjectPlaneR", "gl_ObjectPlaneS", "gl_ObjectPlaneT", "gl_Point", "gl_PointCoord", "gl_PointParameters", "gl_PointSize", "gl_Position", "gl_ProjectionMatrix", "gl_ProjectionMatrixInverse", "gl_ProjectionMatrixInverseTranspose", "gl_ProjectionMatrixTranspose", "gl_SecondaryColor", "gl_TexCoord", "gl_TextureEnvColor", "gl_TextureMatrix", "gl_TextureMatrixInverse", "gl_TextureMatrixInverseTranspose", "gl_TextureMatrixTranspose", "gl_Vertex", "greaterThan", "greaterThanEqual", "inversesqrt", "length", "lessThan", "lessThanEqual", "log", "log2", "matrixCompMult", "max", "min", "mix", "mod", "normalize", "not", "notEqual", "pow", "radians", "reflect", "refract", "sign", "sin", "smoothstep", "sqrt", "step", "tan", "texture2D", "texture2DLod", "texture2DProj", "texture2DProjLod", "textureCube", "textureCubeLod", "texture2DLodEXT", "texture2DProjLodEXT", "textureCubeLodEXT", "texture2DGradEXT", "texture2DProjGradEXT", "textureCubeGradEXT"];
+ }, 6859: function(i, a, o) {
+ i = o.nmd(i), function(s, l) {
+ function u(j, N) {
+ if (!j) throw new Error(N || "Assertion failed");
+ }
+ function c(j, N) {
+ j.super_ = N;
+ var H = function() {
+ };
+ H.prototype = N.prototype, j.prototype = new H(), j.prototype.constructor = j;
+ }
+ function f(j, N, H) {
+ if (f.isBN(j)) return j;
+ this.negative = 0, this.words = null, this.length = 0, this.red = null, j !== null && ((N === "le" || N === "be") && (H = N, N = 10), this._init(j || 0, N || 10, H || "be"));
+ }
+ typeof s == "object" ? s.exports = f : l.BN = f, f.BN = f, f.wordSize = 26;
+ var h;
+ try {
+ typeof window != "undefined" && typeof window.Buffer != "undefined" ? h = window.Buffer : h = o(7790).Buffer;
+ } catch (j) {
+ }
+ f.isBN = function(N) {
+ return N instanceof f ? true : N !== null && typeof N == "object" && N.constructor.wordSize === f.wordSize && Array.isArray(N.words);
+ }, f.max = function(N, H) {
+ return N.cmp(H) > 0 ? N : H;
+ }, f.min = function(N, H) {
+ return N.cmp(H) < 0 ? N : H;
+ }, f.prototype._init = function(N, H, re) {
+ if (typeof N == "number") return this._initNumber(N, H, re);
+ if (typeof N == "object") return this._initArray(N, H, re);
+ H === "hex" && (H = 16), u(H === (H | 0) && H >= 2 && H <= 36), N = N.toString().replace(/\s+/g, "");
+ var oe = 0;
+ N[0] === "-" && (oe++, this.negative = 1), oe < N.length && (H === 16 ? this._parseHex(N, oe, re) : (this._parseBase(N, H, oe), re === "le" && this._initArray(this.toArray(), H, re)));
+ }, f.prototype._initNumber = function(N, H, re) {
+ N < 0 && (this.negative = 1, N = -N), N < 67108864 ? (this.words = [N & 67108863], this.length = 1) : N < 4503599627370496 ? (this.words = [N & 67108863, N / 67108864 & 67108863], this.length = 2) : (u(N < 9007199254740992), this.words = [N & 67108863, N / 67108864 & 67108863, 1], this.length = 3), re === "le" && this._initArray(this.toArray(), H, re);
+ }, f.prototype._initArray = function(N, H, re) {
+ if (u(typeof N.length == "number"), N.length <= 0) return this.words = [0], this.length = 1, this;
+ this.length = Math.ceil(N.length / 3), this.words = new Array(this.length);
+ for (var oe = 0; oe < this.length; oe++) this.words[oe] = 0;
+ var _e, Ce, Le = 0;
+ if (re === "be") for (oe = N.length - 1, _e = 0; oe >= 0; oe -= 3) Ce = N[oe] | N[oe - 1] << 8 | N[oe - 2] << 16, this.words[_e] |= Ce << Le & 67108863, this.words[_e + 1] = Ce >>> 26 - Le & 67108863, Le += 24, Le >= 26 && (Le -= 26, _e++);
+ else if (re === "le") for (oe = 0, _e = 0; oe < N.length; oe += 3) Ce = N[oe] | N[oe + 1] << 8 | N[oe + 2] << 16, this.words[_e] |= Ce << Le & 67108863, this.words[_e + 1] = Ce >>> 26 - Le & 67108863, Le += 24, Le >= 26 && (Le -= 26, _e++);
+ return this.strip();
+ };
+ function d(j, N) {
+ var H = j.charCodeAt(N);
+ return H >= 65 && H <= 70 ? H - 55 : H >= 97 && H <= 102 ? H - 87 : H - 48 & 15;
+ }
+ function v(j, N, H) {
+ var re = d(j, H);
+ return H - 1 >= N && (re |= d(j, H - 1) << 4), re;
+ }
+ f.prototype._parseHex = function(N, H, re) {
+ this.length = Math.ceil((N.length - H) / 6), this.words = new Array(this.length);
+ for (var oe = 0; oe < this.length; oe++) this.words[oe] = 0;
+ var _e = 0, Ce = 0, Le;
+ if (re === "be") for (oe = N.length - 1; oe >= H; oe -= 2) Le = v(N, H, oe) << _e, this.words[Ce] |= Le & 67108863, _e >= 18 ? (_e -= 18, Ce += 1, this.words[Ce] |= Le >>> 26) : _e += 8;
+ else {
+ var ge = N.length - H;
+ for (oe = ge % 2 === 0 ? H + 1 : H; oe < N.length; oe += 2) Le = v(N, H, oe) << _e, this.words[Ce] |= Le & 67108863, _e >= 18 ? (_e -= 18, Ce += 1, this.words[Ce] |= Le >>> 26) : _e += 8;
+ }
+ this.strip();
+ };
+ function _(j, N, H, re) {
+ for (var oe = 0, _e = Math.min(j.length, H), Ce = N; Ce < _e; Ce++) {
+ var Le = j.charCodeAt(Ce) - 48;
+ oe *= re, Le >= 49 ? oe += Le - 49 + 10 : Le >= 17 ? oe += Le - 17 + 10 : oe += Le;
+ }
+ return oe;
+ }
+ f.prototype._parseBase = function(N, H, re) {
+ this.words = [0], this.length = 1;
+ for (var oe = 0, _e = 1; _e <= 67108863; _e *= H) oe++;
+ oe--, _e = _e / H | 0;
+ for (var Ce = N.length - re, Le = Ce % oe, ge = Math.min(Ce, Ce - Le) + re, ie = 0, Se = re; Se < ge; Se += oe) ie = _(N, Se, Se + oe, H), this.imuln(_e), this.words[0] + ie < 67108864 ? this.words[0] += ie : this._iaddn(ie);
+ if (Le !== 0) {
+ var Ee = 1;
+ for (ie = _(N, Se, N.length, H), Se = 0; Se < Le; Se++) Ee *= H;
+ this.imuln(Ee), this.words[0] + ie < 67108864 ? this.words[0] += ie : this._iaddn(ie);
+ }
+ this.strip();
+ }, f.prototype.copy = function(N) {
+ N.words = new Array(this.length);
+ for (var H = 0; H < this.length; H++) N.words[H] = this.words[H];
+ N.length = this.length, N.negative = this.negative, N.red = this.red;
+ }, f.prototype.clone = function() {
+ var N = new f(null);
+ return this.copy(N), N;
+ }, f.prototype._expand = function(N) {
+ for (; this.length < N; ) this.words[this.length++] = 0;
+ return this;
+ }, f.prototype.strip = function() {
+ for (; this.length > 1 && this.words[this.length - 1] === 0; ) this.length--;
+ return this._normSign();
+ }, f.prototype._normSign = function() {
+ return this.length === 1 && this.words[0] === 0 && (this.negative = 0), this;
+ }, f.prototype.inspect = function() {
+ return (this.red ? "";
+ };
+ var b = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"], p = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5], k = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];
+ f.prototype.toString = function(N, H) {
+ N = N || 10, H = H | 0 || 1;
+ var re;
+ if (N === 16 || N === "hex") {
+ re = "";
+ for (var oe = 0, _e = 0, Ce = 0; Ce < this.length; Ce++) {
+ var Le = this.words[Ce], ge = ((Le << oe | _e) & 16777215).toString(16);
+ _e = Le >>> 24 - oe & 16777215, _e !== 0 || Ce !== this.length - 1 ? re = b[6 - ge.length] + ge + re : re = ge + re, oe += 2, oe >= 26 && (oe -= 26, Ce--);
+ }
+ for (_e !== 0 && (re = _e.toString(16) + re); re.length % H !== 0; ) re = "0" + re;
+ return this.negative !== 0 && (re = "-" + re), re;
+ }
+ if (N === (N | 0) && N >= 2 && N <= 36) {
+ var ie = p[N], Se = k[N];
+ re = "";
+ var Ee = this.clone();
+ for (Ee.negative = 0; !Ee.isZero(); ) {
+ var Ae = Ee.modn(Se).toString(N);
+ Ee = Ee.idivn(Se), Ee.isZero() ? re = Ae + re : re = b[ie - Ae.length] + Ae + re;
+ }
+ for (this.isZero() && (re = "0" + re); re.length % H !== 0; ) re = "0" + re;
+ return this.negative !== 0 && (re = "-" + re), re;
+ }
+ u(false, "Base should be between 2 and 36");
+ }, f.prototype.toNumber = function() {
+ var N = this.words[0];
+ return this.length === 2 ? N += this.words[1] * 67108864 : this.length === 3 && this.words[2] === 1 ? N += 4503599627370496 + this.words[1] * 67108864 : this.length > 2 && u(false, "Number can only safely store up to 53 bits"), this.negative !== 0 ? -N : N;
+ }, f.prototype.toJSON = function() {
+ return this.toString(16);
+ }, f.prototype.toBuffer = function(N, H) {
+ return u(typeof h != "undefined"), this.toArrayLike(h, N, H);
+ }, f.prototype.toArray = function(N, H) {
+ return this.toArrayLike(Array, N, H);
+ }, f.prototype.toArrayLike = function(N, H, re) {
+ var oe = this.byteLength(), _e = re || Math.max(1, oe);
+ u(oe <= _e, "byte array longer than desired length"), u(_e > 0, "Requested array length <= 0"), this.strip();
+ var Ce = H === "le", Le = new N(_e), ge, ie, Se = this.clone();
+ if (Ce) {
+ for (ie = 0; !Se.isZero(); ie++) ge = Se.andln(255), Se.iushrn(8), Le[ie] = ge;
+ for (; ie < _e; ie++) Le[ie] = 0;
+ } else {
+ for (ie = 0; ie < _e - oe; ie++) Le[ie] = 0;
+ for (ie = 0; !Se.isZero(); ie++) ge = Se.andln(255), Se.iushrn(8), Le[_e - ie - 1] = ge;
+ }
+ return Le;
+ }, Math.clz32 ? f.prototype._countBits = function(N) {
+ return 32 - Math.clz32(N);
+ } : f.prototype._countBits = function(N) {
+ var H = N, re = 0;
+ return H >= 4096 && (re += 13, H >>>= 13), H >= 64 && (re += 7, H >>>= 7), H >= 8 && (re += 4, H >>>= 4), H >= 2 && (re += 2, H >>>= 2), re + H;
+ }, f.prototype._zeroBits = function(N) {
+ if (N === 0) return 26;
+ var H = N, re = 0;
+ return (H & 8191) === 0 && (re += 13, H >>>= 13), (H & 127) === 0 && (re += 7, H >>>= 7), (H & 15) === 0 && (re += 4, H >>>= 4), (H & 3) === 0 && (re += 2, H >>>= 2), (H & 1) === 0 && re++, re;
+ }, f.prototype.bitLength = function() {
+ var N = this.words[this.length - 1], H = this._countBits(N);
+ return (this.length - 1) * 26 + H;
+ };
+ function E(j) {
+ for (var N = new Array(j.bitLength()), H = 0; H < N.length; H++) {
+ var re = H / 26 | 0, oe = H % 26;
+ N[H] = (j.words[re] & 1 << oe) >>> oe;
+ }
+ return N;
+ }
+ f.prototype.zeroBits = function() {
+ if (this.isZero()) return 0;
+ for (var N = 0, H = 0; H < this.length; H++) {
+ var re = this._zeroBits(this.words[H]);
+ if (N += re, re !== 26) break;
+ }
+ return N;
+ }, f.prototype.byteLength = function() {
+ return Math.ceil(this.bitLength() / 8);
+ }, f.prototype.toTwos = function(N) {
+ return this.negative !== 0 ? this.abs().inotn(N).iaddn(1) : this.clone();
+ }, f.prototype.fromTwos = function(N) {
+ return this.testn(N - 1) ? this.notn(N).iaddn(1).ineg() : this.clone();
+ }, f.prototype.isNeg = function() {
+ return this.negative !== 0;
+ }, f.prototype.neg = function() {
+ return this.clone().ineg();
+ }, f.prototype.ineg = function() {
+ return this.isZero() || (this.negative ^= 1), this;
+ }, f.prototype.iuor = function(N) {
+ for (; this.length < N.length; ) this.words[this.length++] = 0;
+ for (var H = 0; H < N.length; H++) this.words[H] = this.words[H] | N.words[H];
+ return this.strip();
+ }, f.prototype.ior = function(N) {
+ return u((this.negative | N.negative) === 0), this.iuor(N);
+ }, f.prototype.or = function(N) {
+ return this.length > N.length ? this.clone().ior(N) : N.clone().ior(this);
+ }, f.prototype.uor = function(N) {
+ return this.length > N.length ? this.clone().iuor(N) : N.clone().iuor(this);
+ }, f.prototype.iuand = function(N) {
+ var H;
+ this.length > N.length ? H = N : H = this;
+ for (var re = 0; re < H.length; re++) this.words[re] = this.words[re] & N.words[re];
+ return this.length = H.length, this.strip();
+ }, f.prototype.iand = function(N) {
+ return u((this.negative | N.negative) === 0), this.iuand(N);
+ }, f.prototype.and = function(N) {
+ return this.length > N.length ? this.clone().iand(N) : N.clone().iand(this);
+ }, f.prototype.uand = function(N) {
+ return this.length > N.length ? this.clone().iuand(N) : N.clone().iuand(this);
+ }, f.prototype.iuxor = function(N) {
+ var H, re;
+ this.length > N.length ? (H = this, re = N) : (H = N, re = this);
+ for (var oe = 0; oe < re.length; oe++) this.words[oe] = H.words[oe] ^ re.words[oe];
+ if (this !== H) for (; oe < H.length; oe++) this.words[oe] = H.words[oe];
+ return this.length = H.length, this.strip();
+ }, f.prototype.ixor = function(N) {
+ return u((this.negative | N.negative) === 0), this.iuxor(N);
+ }, f.prototype.xor = function(N) {
+ return this.length > N.length ? this.clone().ixor(N) : N.clone().ixor(this);
+ }, f.prototype.uxor = function(N) {
+ return this.length > N.length ? this.clone().iuxor(N) : N.clone().iuxor(this);
+ }, f.prototype.inotn = function(N) {
+ u(typeof N == "number" && N >= 0);
+ var H = Math.ceil(N / 26) | 0, re = N % 26;
+ this._expand(H), re > 0 && H--;
+ for (var oe = 0; oe < H; oe++) this.words[oe] = ~this.words[oe] & 67108863;
+ return re > 0 && (this.words[oe] = ~this.words[oe] & 67108863 >> 26 - re), this.strip();
+ }, f.prototype.notn = function(N) {
+ return this.clone().inotn(N);
+ }, f.prototype.setn = function(N, H) {
+ u(typeof N == "number" && N >= 0);
+ var re = N / 26 | 0, oe = N % 26;
+ return this._expand(re + 1), H ? this.words[re] = this.words[re] | 1 << oe : this.words[re] = this.words[re] & ~(1 << oe), this.strip();
+ }, f.prototype.iadd = function(N) {
+ var H;
+ if (this.negative !== 0 && N.negative === 0) return this.negative = 0, H = this.isub(N), this.negative ^= 1, this._normSign();
+ if (this.negative === 0 && N.negative !== 0) return N.negative = 0, H = this.isub(N), N.negative = 1, H._normSign();
+ var re, oe;
+ this.length > N.length ? (re = this, oe = N) : (re = N, oe = this);
+ for (var _e = 0, Ce = 0; Ce < oe.length; Ce++) H = (re.words[Ce] | 0) + (oe.words[Ce] | 0) + _e, this.words[Ce] = H & 67108863, _e = H >>> 26;
+ for (; _e !== 0 && Ce < re.length; Ce++) H = (re.words[Ce] | 0) + _e, this.words[Ce] = H & 67108863, _e = H >>> 26;
+ if (this.length = re.length, _e !== 0) this.words[this.length] = _e, this.length++;
+ else if (re !== this) for (; Ce < re.length; Ce++) this.words[Ce] = re.words[Ce];
+ return this;
+ }, f.prototype.add = function(N) {
+ var H;
+ return N.negative !== 0 && this.negative === 0 ? (N.negative = 0, H = this.sub(N), N.negative ^= 1, H) : N.negative === 0 && this.negative !== 0 ? (this.negative = 0, H = N.sub(this), this.negative = 1, H) : this.length > N.length ? this.clone().iadd(N) : N.clone().iadd(this);
+ }, f.prototype.isub = function(N) {
+ if (N.negative !== 0) {
+ N.negative = 0;
+ var H = this.iadd(N);
+ return N.negative = 1, H._normSign();
+ } else if (this.negative !== 0) return this.negative = 0, this.iadd(N), this.negative = 1, this._normSign();
+ var re = this.cmp(N);
+ if (re === 0) return this.negative = 0, this.length = 1, this.words[0] = 0, this;
+ var oe, _e;
+ re > 0 ? (oe = this, _e = N) : (oe = N, _e = this);
+ for (var Ce = 0, Le = 0; Le < _e.length; Le++) H = (oe.words[Le] | 0) - (_e.words[Le] | 0) + Ce, Ce = H >> 26, this.words[Le] = H & 67108863;
+ for (; Ce !== 0 && Le < oe.length; Le++) H = (oe.words[Le] | 0) + Ce, Ce = H >> 26, this.words[Le] = H & 67108863;
+ if (Ce === 0 && Le < oe.length && oe !== this) for (; Le < oe.length; Le++) this.words[Le] = oe.words[Le];
+ return this.length = Math.max(this.length, Le), oe !== this && (this.negative = 1), this.strip();
+ }, f.prototype.sub = function(N) {
+ return this.clone().isub(N);
+ };
+ function T(j, N, H) {
+ H.negative = N.negative ^ j.negative;
+ var re = j.length + N.length | 0;
+ H.length = re, re = re - 1 | 0;
+ var oe = j.words[0] | 0, _e = N.words[0] | 0, Ce = oe * _e, Le = Ce & 67108863, ge = Ce / 67108864 | 0;
+ H.words[0] = Le;
+ for (var ie = 1; ie < re; ie++) {
+ for (var Se = ge >>> 26, Ee = ge & 67108863, Ae = Math.min(ie, N.length - 1), Be = Math.max(0, ie - j.length + 1); Be <= Ae; Be++) {
+ var Pe = ie - Be | 0;
+ oe = j.words[Pe] | 0, _e = N.words[Be] | 0, Ce = oe * _e + Ee, Se += Ce / 67108864 | 0, Ee = Ce & 67108863;
+ }
+ H.words[ie] = Ee | 0, ge = Se | 0;
+ }
+ return ge !== 0 ? H.words[ie] = ge | 0 : H.length--, H.strip();
+ }
+ var L = function(N, H, re) {
+ var oe = N.words, _e = H.words, Ce = re.words, Le = 0, ge, ie, Se, Ee = oe[0] | 0, Ae = Ee & 8191, Be = Ee >>> 13, Pe = oe[1] | 0, me = Pe & 8191, De = Pe >>> 13, ce = oe[2] | 0, je = ce & 8191, lt = ce >>> 13, pt = oe[3] | 0, Vt = pt & 8191, ot = pt >>> 13, ut = oe[4] | 0, Wt = ut & 8191, Nt = ut >>> 13, $t = oe[5] | 0, sr = $t & 8191, Tr = $t >>> 13, fr = oe[6] | 0, $e = fr & 8191, St = fr >>> 13, Qt = oe[7] | 0, Gt = Qt & 8191, _t = Qt >>> 13, It = oe[8] | 0, mt = It & 8191, er = It >>> 13, lr = oe[9] | 0, wr = lr & 8191, Lr = lr >>> 13, ti = _e[0] | 0, Br = ti & 8191, Vr = ti >>> 13, dt = _e[1] | 0, Ge = dt & 8191, Je = dt >>> 13, We = _e[2] | 0, tt = We & 8191, xt = We >>> 13, Ie = _e[3] | 0, xe = Ie & 8191, ke = Ie >>> 13, vt = _e[4] | 0, ir = vt & 8191, ar = vt >>> 13, vr = _e[5] | 0, ii = vr & 8191, pi = vr >>> 13, $r = _e[6] | 0, di = $r & 8191, ji = $r >>> 13, In = _e[7] | 0, wi = In & 8191, On = In >>> 13, qn = _e[8] | 0, Fn = qn & 8191, ra = qn >>> 13, la = _e[9] | 0, Ut = la & 8191, wt = la >>> 13;
+ re.negative = N.negative ^ H.negative, re.length = 19, ge = Math.imul(Ae, Br), ie = Math.imul(Ae, Vr), ie = ie + Math.imul(Be, Br) | 0, Se = Math.imul(Be, Vr);
+ var rr = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (rr >>> 26) | 0, rr &= 67108863, ge = Math.imul(me, Br), ie = Math.imul(me, Vr), ie = ie + Math.imul(De, Br) | 0, Se = Math.imul(De, Vr), ge = ge + Math.imul(Ae, Ge) | 0, ie = ie + Math.imul(Ae, Je) | 0, ie = ie + Math.imul(Be, Ge) | 0, Se = Se + Math.imul(Be, Je) | 0;
+ var nr = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (nr >>> 26) | 0, nr &= 67108863, ge = Math.imul(je, Br), ie = Math.imul(je, Vr), ie = ie + Math.imul(lt, Br) | 0, Se = Math.imul(lt, Vr), ge = ge + Math.imul(me, Ge) | 0, ie = ie + Math.imul(me, Je) | 0, ie = ie + Math.imul(De, Ge) | 0, Se = Se + Math.imul(De, Je) | 0, ge = ge + Math.imul(Ae, tt) | 0, ie = ie + Math.imul(Ae, xt) | 0, ie = ie + Math.imul(Be, tt) | 0, Se = Se + Math.imul(Be, xt) | 0;
+ var Er = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Er >>> 26) | 0, Er &= 67108863, ge = Math.imul(Vt, Br), ie = Math.imul(Vt, Vr), ie = ie + Math.imul(ot, Br) | 0, Se = Math.imul(ot, Vr), ge = ge + Math.imul(je, Ge) | 0, ie = ie + Math.imul(je, Je) | 0, ie = ie + Math.imul(lt, Ge) | 0, Se = Se + Math.imul(lt, Je) | 0, ge = ge + Math.imul(me, tt) | 0, ie = ie + Math.imul(me, xt) | 0, ie = ie + Math.imul(De, tt) | 0, Se = Se + Math.imul(De, xt) | 0, ge = ge + Math.imul(Ae, xe) | 0, ie = ie + Math.imul(Ae, ke) | 0, ie = ie + Math.imul(Be, xe) | 0, Se = Se + Math.imul(Be, ke) | 0;
+ var Xr = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Xr >>> 26) | 0, Xr &= 67108863, ge = Math.imul(Wt, Br), ie = Math.imul(Wt, Vr), ie = ie + Math.imul(Nt, Br) | 0, Se = Math.imul(Nt, Vr), ge = ge + Math.imul(Vt, Ge) | 0, ie = ie + Math.imul(Vt, Je) | 0, ie = ie + Math.imul(ot, Ge) | 0, Se = Se + Math.imul(ot, Je) | 0, ge = ge + Math.imul(je, tt) | 0, ie = ie + Math.imul(je, xt) | 0, ie = ie + Math.imul(lt, tt) | 0, Se = Se + Math.imul(lt, xt) | 0, ge = ge + Math.imul(me, xe) | 0, ie = ie + Math.imul(me, ke) | 0, ie = ie + Math.imul(De, xe) | 0, Se = Se + Math.imul(De, ke) | 0, ge = ge + Math.imul(Ae, ir) | 0, ie = ie + Math.imul(Ae, ar) | 0, ie = ie + Math.imul(Be, ir) | 0, Se = Se + Math.imul(Be, ar) | 0;
+ var ri = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (ri >>> 26) | 0, ri &= 67108863, ge = Math.imul(sr, Br), ie = Math.imul(sr, Vr), ie = ie + Math.imul(Tr, Br) | 0, Se = Math.imul(Tr, Vr), ge = ge + Math.imul(Wt, Ge) | 0, ie = ie + Math.imul(Wt, Je) | 0, ie = ie + Math.imul(Nt, Ge) | 0, Se = Se + Math.imul(Nt, Je) | 0, ge = ge + Math.imul(Vt, tt) | 0, ie = ie + Math.imul(Vt, xt) | 0, ie = ie + Math.imul(ot, tt) | 0, Se = Se + Math.imul(ot, xt) | 0, ge = ge + Math.imul(je, xe) | 0, ie = ie + Math.imul(je, ke) | 0, ie = ie + Math.imul(lt, xe) | 0, Se = Se + Math.imul(lt, ke) | 0, ge = ge + Math.imul(me, ir) | 0, ie = ie + Math.imul(me, ar) | 0, ie = ie + Math.imul(De, ir) | 0, Se = Se + Math.imul(De, ar) | 0, ge = ge + Math.imul(Ae, ii) | 0, ie = ie + Math.imul(Ae, pi) | 0, ie = ie + Math.imul(Be, ii) | 0, Se = Se + Math.imul(Be, pi) | 0;
+ var Qr = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Qr >>> 26) | 0, Qr &= 67108863, ge = Math.imul($e, Br), ie = Math.imul($e, Vr), ie = ie + Math.imul(St, Br) | 0, Se = Math.imul(St, Vr), ge = ge + Math.imul(sr, Ge) | 0, ie = ie + Math.imul(sr, Je) | 0, ie = ie + Math.imul(Tr, Ge) | 0, Se = Se + Math.imul(Tr, Je) | 0, ge = ge + Math.imul(Wt, tt) | 0, ie = ie + Math.imul(Wt, xt) | 0, ie = ie + Math.imul(Nt, tt) | 0, Se = Se + Math.imul(Nt, xt) | 0, ge = ge + Math.imul(Vt, xe) | 0, ie = ie + Math.imul(Vt, ke) | 0, ie = ie + Math.imul(ot, xe) | 0, Se = Se + Math.imul(ot, ke) | 0, ge = ge + Math.imul(je, ir) | 0, ie = ie + Math.imul(je, ar) | 0, ie = ie + Math.imul(lt, ir) | 0, Se = Se + Math.imul(lt, ar) | 0, ge = ge + Math.imul(me, ii) | 0, ie = ie + Math.imul(me, pi) | 0, ie = ie + Math.imul(De, ii) | 0, Se = Se + Math.imul(De, pi) | 0, ge = ge + Math.imul(Ae, di) | 0, ie = ie + Math.imul(Ae, ji) | 0, ie = ie + Math.imul(Be, di) | 0, Se = Se + Math.imul(Be, ji) | 0;
+ var Oi = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Oi >>> 26) | 0, Oi &= 67108863, ge = Math.imul(Gt, Br), ie = Math.imul(Gt, Vr), ie = ie + Math.imul(_t, Br) | 0, Se = Math.imul(_t, Vr), ge = ge + Math.imul($e, Ge) | 0, ie = ie + Math.imul($e, Je) | 0, ie = ie + Math.imul(St, Ge) | 0, Se = Se + Math.imul(St, Je) | 0, ge = ge + Math.imul(sr, tt) | 0, ie = ie + Math.imul(sr, xt) | 0, ie = ie + Math.imul(Tr, tt) | 0, Se = Se + Math.imul(Tr, xt) | 0, ge = ge + Math.imul(Wt, xe) | 0, ie = ie + Math.imul(Wt, ke) | 0, ie = ie + Math.imul(Nt, xe) | 0, Se = Se + Math.imul(Nt, ke) | 0, ge = ge + Math.imul(Vt, ir) | 0, ie = ie + Math.imul(Vt, ar) | 0, ie = ie + Math.imul(ot, ir) | 0, Se = Se + Math.imul(ot, ar) | 0, ge = ge + Math.imul(je, ii) | 0, ie = ie + Math.imul(je, pi) | 0, ie = ie + Math.imul(lt, ii) | 0, Se = Se + Math.imul(lt, pi) | 0, ge = ge + Math.imul(me, di) | 0, ie = ie + Math.imul(me, ji) | 0, ie = ie + Math.imul(De, di) | 0, Se = Se + Math.imul(De, ji) | 0, ge = ge + Math.imul(Ae, wi) | 0, ie = ie + Math.imul(Ae, On) | 0, ie = ie + Math.imul(Be, wi) | 0, Se = Se + Math.imul(Be, On) | 0;
+ var $i = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + ($i >>> 26) | 0, $i &= 67108863, ge = Math.imul(mt, Br), ie = Math.imul(mt, Vr), ie = ie + Math.imul(er, Br) | 0, Se = Math.imul(er, Vr), ge = ge + Math.imul(Gt, Ge) | 0, ie = ie + Math.imul(Gt, Je) | 0, ie = ie + Math.imul(_t, Ge) | 0, Se = Se + Math.imul(_t, Je) | 0, ge = ge + Math.imul($e, tt) | 0, ie = ie + Math.imul($e, xt) | 0, ie = ie + Math.imul(St, tt) | 0, Se = Se + Math.imul(St, xt) | 0, ge = ge + Math.imul(sr, xe) | 0, ie = ie + Math.imul(sr, ke) | 0, ie = ie + Math.imul(Tr, xe) | 0, Se = Se + Math.imul(Tr, ke) | 0, ge = ge + Math.imul(Wt, ir) | 0, ie = ie + Math.imul(Wt, ar) | 0, ie = ie + Math.imul(Nt, ir) | 0, Se = Se + Math.imul(Nt, ar) | 0, ge = ge + Math.imul(Vt, ii) | 0, ie = ie + Math.imul(Vt, pi) | 0, ie = ie + Math.imul(ot, ii) | 0, Se = Se + Math.imul(ot, pi) | 0, ge = ge + Math.imul(je, di) | 0, ie = ie + Math.imul(je, ji) | 0, ie = ie + Math.imul(lt, di) | 0, Se = Se + Math.imul(lt, ji) | 0, ge = ge + Math.imul(me, wi) | 0, ie = ie + Math.imul(me, On) | 0, ie = ie + Math.imul(De, wi) | 0, Se = Se + Math.imul(De, On) | 0, ge = ge + Math.imul(Ae, Fn) | 0, ie = ie + Math.imul(Ae, ra) | 0, ie = ie + Math.imul(Be, Fn) | 0, Se = Se + Math.imul(Be, ra) | 0;
+ var tn = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (tn >>> 26) | 0, tn &= 67108863, ge = Math.imul(wr, Br), ie = Math.imul(wr, Vr), ie = ie + Math.imul(Lr, Br) | 0, Se = Math.imul(Lr, Vr), ge = ge + Math.imul(mt, Ge) | 0, ie = ie + Math.imul(mt, Je) | 0, ie = ie + Math.imul(er, Ge) | 0, Se = Se + Math.imul(er, Je) | 0, ge = ge + Math.imul(Gt, tt) | 0, ie = ie + Math.imul(Gt, xt) | 0, ie = ie + Math.imul(_t, tt) | 0, Se = Se + Math.imul(_t, xt) | 0, ge = ge + Math.imul($e, xe) | 0, ie = ie + Math.imul($e, ke) | 0, ie = ie + Math.imul(St, xe) | 0, Se = Se + Math.imul(St, ke) | 0, ge = ge + Math.imul(sr, ir) | 0, ie = ie + Math.imul(sr, ar) | 0, ie = ie + Math.imul(Tr, ir) | 0, Se = Se + Math.imul(Tr, ar) | 0, ge = ge + Math.imul(Wt, ii) | 0, ie = ie + Math.imul(Wt, pi) | 0, ie = ie + Math.imul(Nt, ii) | 0, Se = Se + Math.imul(Nt, pi) | 0, ge = ge + Math.imul(Vt, di) | 0, ie = ie + Math.imul(Vt, ji) | 0, ie = ie + Math.imul(ot, di) | 0, Se = Se + Math.imul(ot, ji) | 0, ge = ge + Math.imul(je, wi) | 0, ie = ie + Math.imul(je, On) | 0, ie = ie + Math.imul(lt, wi) | 0, Se = Se + Math.imul(lt, On) | 0, ge = ge + Math.imul(me, Fn) | 0, ie = ie + Math.imul(me, ra) | 0, ie = ie + Math.imul(De, Fn) | 0, Se = Se + Math.imul(De, ra) | 0, ge = ge + Math.imul(Ae, Ut) | 0, ie = ie + Math.imul(Ae, wt) | 0, ie = ie + Math.imul(Be, Ut) | 0, Se = Se + Math.imul(Be, wt) | 0;
+ var fn = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (fn >>> 26) | 0, fn &= 67108863, ge = Math.imul(wr, Ge), ie = Math.imul(wr, Je), ie = ie + Math.imul(Lr, Ge) | 0, Se = Math.imul(Lr, Je), ge = ge + Math.imul(mt, tt) | 0, ie = ie + Math.imul(mt, xt) | 0, ie = ie + Math.imul(er, tt) | 0, Se = Se + Math.imul(er, xt) | 0, ge = ge + Math.imul(Gt, xe) | 0, ie = ie + Math.imul(Gt, ke) | 0, ie = ie + Math.imul(_t, xe) | 0, Se = Se + Math.imul(_t, ke) | 0, ge = ge + Math.imul($e, ir) | 0, ie = ie + Math.imul($e, ar) | 0, ie = ie + Math.imul(St, ir) | 0, Se = Se + Math.imul(St, ar) | 0, ge = ge + Math.imul(sr, ii) | 0, ie = ie + Math.imul(sr, pi) | 0, ie = ie + Math.imul(Tr, ii) | 0, Se = Se + Math.imul(Tr, pi) | 0, ge = ge + Math.imul(Wt, di) | 0, ie = ie + Math.imul(Wt, ji) | 0, ie = ie + Math.imul(Nt, di) | 0, Se = Se + Math.imul(Nt, ji) | 0, ge = ge + Math.imul(Vt, wi) | 0, ie = ie + Math.imul(Vt, On) | 0, ie = ie + Math.imul(ot, wi) | 0, Se = Se + Math.imul(ot, On) | 0, ge = ge + Math.imul(je, Fn) | 0, ie = ie + Math.imul(je, ra) | 0, ie = ie + Math.imul(lt, Fn) | 0, Se = Se + Math.imul(lt, ra) | 0, ge = ge + Math.imul(me, Ut) | 0, ie = ie + Math.imul(me, wt) | 0, ie = ie + Math.imul(De, Ut) | 0, Se = Se + Math.imul(De, wt) | 0;
+ var yn = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (yn >>> 26) | 0, yn &= 67108863, ge = Math.imul(wr, tt), ie = Math.imul(wr, xt), ie = ie + Math.imul(Lr, tt) | 0, Se = Math.imul(Lr, xt), ge = ge + Math.imul(mt, xe) | 0, ie = ie + Math.imul(mt, ke) | 0, ie = ie + Math.imul(er, xe) | 0, Se = Se + Math.imul(er, ke) | 0, ge = ge + Math.imul(Gt, ir) | 0, ie = ie + Math.imul(Gt, ar) | 0, ie = ie + Math.imul(_t, ir) | 0, Se = Se + Math.imul(_t, ar) | 0, ge = ge + Math.imul($e, ii) | 0, ie = ie + Math.imul($e, pi) | 0, ie = ie + Math.imul(St, ii) | 0, Se = Se + Math.imul(St, pi) | 0, ge = ge + Math.imul(sr, di) | 0, ie = ie + Math.imul(sr, ji) | 0, ie = ie + Math.imul(Tr, di) | 0, Se = Se + Math.imul(Tr, ji) | 0, ge = ge + Math.imul(Wt, wi) | 0, ie = ie + Math.imul(Wt, On) | 0, ie = ie + Math.imul(Nt, wi) | 0, Se = Se + Math.imul(Nt, On) | 0, ge = ge + Math.imul(Vt, Fn) | 0, ie = ie + Math.imul(Vt, ra) | 0, ie = ie + Math.imul(ot, Fn) | 0, Se = Se + Math.imul(ot, ra) | 0, ge = ge + Math.imul(je, Ut) | 0, ie = ie + Math.imul(je, wt) | 0, ie = ie + Math.imul(lt, Ut) | 0, Se = Se + Math.imul(lt, wt) | 0;
+ var Sn = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Sn >>> 26) | 0, Sn &= 67108863, ge = Math.imul(wr, xe), ie = Math.imul(wr, ke), ie = ie + Math.imul(Lr, xe) | 0, Se = Math.imul(Lr, ke), ge = ge + Math.imul(mt, ir) | 0, ie = ie + Math.imul(mt, ar) | 0, ie = ie + Math.imul(er, ir) | 0, Se = Se + Math.imul(er, ar) | 0, ge = ge + Math.imul(Gt, ii) | 0, ie = ie + Math.imul(Gt, pi) | 0, ie = ie + Math.imul(_t, ii) | 0, Se = Se + Math.imul(_t, pi) | 0, ge = ge + Math.imul($e, di) | 0, ie = ie + Math.imul($e, ji) | 0, ie = ie + Math.imul(St, di) | 0, Se = Se + Math.imul(St, ji) | 0, ge = ge + Math.imul(sr, wi) | 0, ie = ie + Math.imul(sr, On) | 0, ie = ie + Math.imul(Tr, wi) | 0, Se = Se + Math.imul(Tr, On) | 0, ge = ge + Math.imul(Wt, Fn) | 0, ie = ie + Math.imul(Wt, ra) | 0, ie = ie + Math.imul(Nt, Fn) | 0, Se = Se + Math.imul(Nt, ra) | 0, ge = ge + Math.imul(Vt, Ut) | 0, ie = ie + Math.imul(Vt, wt) | 0, ie = ie + Math.imul(ot, Ut) | 0, Se = Se + Math.imul(ot, wt) | 0;
+ var Ba = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Ba >>> 26) | 0, Ba &= 67108863, ge = Math.imul(wr, ir), ie = Math.imul(wr, ar), ie = ie + Math.imul(Lr, ir) | 0, Se = Math.imul(Lr, ar), ge = ge + Math.imul(mt, ii) | 0, ie = ie + Math.imul(mt, pi) | 0, ie = ie + Math.imul(er, ii) | 0, Se = Se + Math.imul(er, pi) | 0, ge = ge + Math.imul(Gt, di) | 0, ie = ie + Math.imul(Gt, ji) | 0, ie = ie + Math.imul(_t, di) | 0, Se = Se + Math.imul(_t, ji) | 0, ge = ge + Math.imul($e, wi) | 0, ie = ie + Math.imul($e, On) | 0, ie = ie + Math.imul(St, wi) | 0, Se = Se + Math.imul(St, On) | 0, ge = ge + Math.imul(sr, Fn) | 0, ie = ie + Math.imul(sr, ra) | 0, ie = ie + Math.imul(Tr, Fn) | 0, Se = Se + Math.imul(Tr, ra) | 0, ge = ge + Math.imul(Wt, Ut) | 0, ie = ie + Math.imul(Wt, wt) | 0, ie = ie + Math.imul(Nt, Ut) | 0, Se = Se + Math.imul(Nt, wt) | 0;
+ var ua = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (ua >>> 26) | 0, ua &= 67108863, ge = Math.imul(wr, ii), ie = Math.imul(wr, pi), ie = ie + Math.imul(Lr, ii) | 0, Se = Math.imul(Lr, pi), ge = ge + Math.imul(mt, di) | 0, ie = ie + Math.imul(mt, ji) | 0, ie = ie + Math.imul(er, di) | 0, Se = Se + Math.imul(er, ji) | 0, ge = ge + Math.imul(Gt, wi) | 0, ie = ie + Math.imul(Gt, On) | 0, ie = ie + Math.imul(_t, wi) | 0, Se = Se + Math.imul(_t, On) | 0, ge = ge + Math.imul($e, Fn) | 0, ie = ie + Math.imul($e, ra) | 0, ie = ie + Math.imul(St, Fn) | 0, Se = Se + Math.imul(St, ra) | 0, ge = ge + Math.imul(sr, Ut) | 0, ie = ie + Math.imul(sr, wt) | 0, ie = ie + Math.imul(Tr, Ut) | 0, Se = Se + Math.imul(Tr, wt) | 0;
+ var ma = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (ma >>> 26) | 0, ma &= 67108863, ge = Math.imul(wr, di), ie = Math.imul(wr, ji), ie = ie + Math.imul(Lr, di) | 0, Se = Math.imul(Lr, ji), ge = ge + Math.imul(mt, wi) | 0, ie = ie + Math.imul(mt, On) | 0, ie = ie + Math.imul(er, wi) | 0, Se = Se + Math.imul(er, On) | 0, ge = ge + Math.imul(Gt, Fn) | 0, ie = ie + Math.imul(Gt, ra) | 0, ie = ie + Math.imul(_t, Fn) | 0, Se = Se + Math.imul(_t, ra) | 0, ge = ge + Math.imul($e, Ut) | 0, ie = ie + Math.imul($e, wt) | 0, ie = ie + Math.imul(St, Ut) | 0, Se = Se + Math.imul(St, wt) | 0;
+ var Wa = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Wa >>> 26) | 0, Wa &= 67108863, ge = Math.imul(wr, wi), ie = Math.imul(wr, On), ie = ie + Math.imul(Lr, wi) | 0, Se = Math.imul(Lr, On), ge = ge + Math.imul(mt, Fn) | 0, ie = ie + Math.imul(mt, ra) | 0, ie = ie + Math.imul(er, Fn) | 0, Se = Se + Math.imul(er, ra) | 0, ge = ge + Math.imul(Gt, Ut) | 0, ie = ie + Math.imul(Gt, wt) | 0, ie = ie + Math.imul(_t, Ut) | 0, Se = Se + Math.imul(_t, wt) | 0;
+ var Fa = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Fa >>> 26) | 0, Fa &= 67108863, ge = Math.imul(wr, Fn), ie = Math.imul(wr, ra), ie = ie + Math.imul(Lr, Fn) | 0, Se = Math.imul(Lr, ra), ge = ge + Math.imul(mt, Ut) | 0, ie = ie + Math.imul(mt, wt) | 0, ie = ie + Math.imul(er, Ut) | 0, Se = Se + Math.imul(er, wt) | 0;
+ var Xo = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ Le = (Se + (ie >>> 13) | 0) + (Xo >>> 26) | 0, Xo &= 67108863, ge = Math.imul(wr, Ut), ie = Math.imul(wr, wt), ie = ie + Math.imul(Lr, Ut) | 0, Se = Math.imul(Lr, wt);
+ var da = (Le + ge | 0) + ((ie & 8191) << 13) | 0;
+ return Le = (Se + (ie >>> 13) | 0) + (da >>> 26) | 0, da &= 67108863, Ce[0] = rr, Ce[1] = nr, Ce[2] = Er, Ce[3] = Xr, Ce[4] = ri, Ce[5] = Qr, Ce[6] = Oi, Ce[7] = $i, Ce[8] = tn, Ce[9] = fn, Ce[10] = yn, Ce[11] = Sn, Ce[12] = Ba, Ce[13] = ua, Ce[14] = ma, Ce[15] = Wa, Ce[16] = Fa, Ce[17] = Xo, Ce[18] = da, Le !== 0 && (Ce[19] = Le, re.length++), re;
+ };
+ Math.imul || (L = T);
+ function x(j, N, H) {
+ H.negative = N.negative ^ j.negative, H.length = j.length + N.length;
+ for (var re = 0, oe = 0, _e = 0; _e < H.length - 1; _e++) {
+ var Ce = oe;
+ oe = 0;
+ for (var Le = re & 67108863, ge = Math.min(_e, N.length - 1), ie = Math.max(0, _e - j.length + 1); ie <= ge; ie++) {
+ var Se = _e - ie, Ee = j.words[Se] | 0, Ae = N.words[ie] | 0, Be = Ee * Ae, Pe = Be & 67108863;
+ Ce = Ce + (Be / 67108864 | 0) | 0, Pe = Pe + Le | 0, Le = Pe & 67108863, Ce = Ce + (Pe >>> 26) | 0, oe += Ce >>> 26, Ce &= 67108863;
+ }
+ H.words[_e] = Le, re = Ce, Ce = oe;
+ }
+ return re !== 0 ? H.words[_e] = re : H.length--, H.strip();
+ }
+ function C(j, N, H) {
+ var re = new M();
+ return re.mulp(j, N, H);
+ }
+ f.prototype.mulTo = function(N, H) {
+ var re, oe = this.length + N.length;
+ return this.length === 10 && N.length === 10 ? re = L(this, N, H) : oe < 63 ? re = T(this, N, H) : oe < 1024 ? re = x(this, N, H) : re = C(this, N, H), re;
+ };
+ function M(j, N) {
+ this.x = j, this.y = N;
+ }
+ M.prototype.makeRBT = function(N) {
+ for (var H = new Array(N), re = f.prototype._countBits(N) - 1, oe = 0; oe < N; oe++) H[oe] = this.revBin(oe, re, N);
+ return H;
+ }, M.prototype.revBin = function(N, H, re) {
+ if (N === 0 || N === re - 1) return N;
+ for (var oe = 0, _e = 0; _e < H; _e++) oe |= (N & 1) << H - _e - 1, N >>= 1;
+ return oe;
+ }, M.prototype.permute = function(N, H, re, oe, _e, Ce) {
+ for (var Le = 0; Le < Ce; Le++) oe[Le] = H[N[Le]], _e[Le] = re[N[Le]];
+ }, M.prototype.transform = function(N, H, re, oe, _e, Ce) {
+ this.permute(Ce, N, H, re, oe, _e);
+ for (var Le = 1; Le < _e; Le <<= 1) for (var ge = Le << 1, ie = Math.cos(2 * Math.PI / ge), Se = Math.sin(2 * Math.PI / ge), Ee = 0; Ee < _e; Ee += ge) for (var Ae = ie, Be = Se, Pe = 0; Pe < Le; Pe++) {
+ var me = re[Ee + Pe], De = oe[Ee + Pe], ce = re[Ee + Pe + Le], je = oe[Ee + Pe + Le], lt = Ae * ce - Be * je;
+ je = Ae * je + Be * ce, ce = lt, re[Ee + Pe] = me + ce, oe[Ee + Pe] = De + je, re[Ee + Pe + Le] = me - ce, oe[Ee + Pe + Le] = De - je, Pe !== ge && (lt = ie * Ae - Se * Be, Be = ie * Be + Se * Ae, Ae = lt);
+ }
+ }, M.prototype.guessLen13b = function(N, H) {
+ var re = Math.max(H, N) | 1, oe = re & 1, _e = 0;
+ for (re = re / 2 | 0; re; re = re >>> 1) _e++;
+ return 1 << _e + 1 + oe;
+ }, M.prototype.conjugate = function(N, H, re) {
+ if (!(re <= 1)) for (var oe = 0; oe < re / 2; oe++) {
+ var _e = N[oe];
+ N[oe] = N[re - oe - 1], N[re - oe - 1] = _e, _e = H[oe], H[oe] = -H[re - oe - 1], H[re - oe - 1] = -_e;
+ }
+ }, M.prototype.normalize13b = function(N, H) {
+ for (var re = 0, oe = 0; oe < H / 2; oe++) {
+ var _e = Math.round(N[2 * oe + 1] / H) * 8192 + Math.round(N[2 * oe] / H) + re;
+ N[oe] = _e & 67108863, _e < 67108864 ? re = 0 : re = _e / 67108864 | 0;
+ }
+ return N;
+ }, M.prototype.convert13b = function(N, H, re, oe) {
+ for (var _e = 0, Ce = 0; Ce < H; Ce++) _e = _e + (N[Ce] | 0), re[2 * Ce] = _e & 8191, _e = _e >>> 13, re[2 * Ce + 1] = _e & 8191, _e = _e >>> 13;
+ for (Ce = 2 * H; Ce < oe; ++Ce) re[Ce] = 0;
+ u(_e === 0), u((_e & -8192) === 0);
+ }, M.prototype.stub = function(N) {
+ for (var H = new Array(N), re = 0; re < N; re++) H[re] = 0;
+ return H;
+ }, M.prototype.mulp = function(N, H, re) {
+ var oe = 2 * this.guessLen13b(N.length, H.length), _e = this.makeRBT(oe), Ce = this.stub(oe), Le = new Array(oe), ge = new Array(oe), ie = new Array(oe), Se = new Array(oe), Ee = new Array(oe), Ae = new Array(oe), Be = re.words;
+ Be.length = oe, this.convert13b(N.words, N.length, Le, oe), this.convert13b(H.words, H.length, Se, oe), this.transform(Le, Ce, ge, ie, oe, _e), this.transform(Se, Ce, Ee, Ae, oe, _e);
+ for (var Pe = 0; Pe < oe; Pe++) {
+ var me = ge[Pe] * Ee[Pe] - ie[Pe] * Ae[Pe];
+ ie[Pe] = ge[Pe] * Ae[Pe] + ie[Pe] * Ee[Pe], ge[Pe] = me;
+ }
+ return this.conjugate(ge, ie, oe), this.transform(ge, ie, Be, Ce, oe, _e), this.conjugate(Be, Ce, oe), this.normalize13b(Be, oe), re.negative = N.negative ^ H.negative, re.length = N.length + H.length, re.strip();
+ }, f.prototype.mul = function(N) {
+ var H = new f(null);
+ return H.words = new Array(this.length + N.length), this.mulTo(N, H);
+ }, f.prototype.mulf = function(N) {
+ var H = new f(null);
+ return H.words = new Array(this.length + N.length), C(this, N, H);
+ }, f.prototype.imul = function(N) {
+ return this.clone().mulTo(N, this);
+ }, f.prototype.imuln = function(N) {
+ u(typeof N == "number"), u(N < 67108864);
+ for (var H = 0, re = 0; re < this.length; re++) {
+ var oe = (this.words[re] | 0) * N, _e = (oe & 67108863) + (H & 67108863);
+ H >>= 26, H += oe / 67108864 | 0, H += _e >>> 26, this.words[re] = _e & 67108863;
+ }
+ return H !== 0 && (this.words[re] = H, this.length++), this;
+ }, f.prototype.muln = function(N) {
+ return this.clone().imuln(N);
+ }, f.prototype.sqr = function() {
+ return this.mul(this);
+ }, f.prototype.isqr = function() {
+ return this.imul(this.clone());
+ }, f.prototype.pow = function(N) {
+ var H = E(N);
+ if (H.length === 0) return new f(1);
+ for (var re = this, oe = 0; oe < H.length && H[oe] === 0; oe++, re = re.sqr()) ;
+ if (++oe < H.length) for (var _e = re.sqr(); oe < H.length; oe++, _e = _e.sqr()) H[oe] !== 0 && (re = re.mul(_e));
+ return re;
+ }, f.prototype.iushln = function(N) {
+ u(typeof N == "number" && N >= 0);
+ var H = N % 26, re = (N - H) / 26, oe = 67108863 >>> 26 - H << 26 - H, _e;
+ if (H !== 0) {
+ var Ce = 0;
+ for (_e = 0; _e < this.length; _e++) {
+ var Le = this.words[_e] & oe, ge = (this.words[_e] | 0) - Le << H;
+ this.words[_e] = ge | Ce, Ce = Le >>> 26 - H;
+ }
+ Ce && (this.words[_e] = Ce, this.length++);
+ }
+ if (re !== 0) {
+ for (_e = this.length - 1; _e >= 0; _e--) this.words[_e + re] = this.words[_e];
+ for (_e = 0; _e < re; _e++) this.words[_e] = 0;
+ this.length += re;
+ }
+ return this.strip();
+ }, f.prototype.ishln = function(N) {
+ return u(this.negative === 0), this.iushln(N);
+ }, f.prototype.iushrn = function(N, H, re) {
+ u(typeof N == "number" && N >= 0);
+ var oe;
+ H ? oe = (H - H % 26) / 26 : oe = 0;
+ var _e = N % 26, Ce = Math.min((N - _e) / 26, this.length), Le = 67108863 ^ 67108863 >>> _e << _e, ge = re;
+ if (oe -= Ce, oe = Math.max(0, oe), ge) {
+ for (var ie = 0; ie < Ce; ie++) ge.words[ie] = this.words[ie];
+ ge.length = Ce;
+ }
+ if (Ce !== 0) if (this.length > Ce) for (this.length -= Ce, ie = 0; ie < this.length; ie++) this.words[ie] = this.words[ie + Ce];
+ else this.words[0] = 0, this.length = 1;
+ var Se = 0;
+ for (ie = this.length - 1; ie >= 0 && (Se !== 0 || ie >= oe); ie--) {
+ var Ee = this.words[ie] | 0;
+ this.words[ie] = Se << 26 - _e | Ee >>> _e, Se = Ee & Le;
+ }
+ return ge && Se !== 0 && (ge.words[ge.length++] = Se), this.length === 0 && (this.words[0] = 0, this.length = 1), this.strip();
+ }, f.prototype.ishrn = function(N, H, re) {
+ return u(this.negative === 0), this.iushrn(N, H, re);
+ }, f.prototype.shln = function(N) {
+ return this.clone().ishln(N);
+ }, f.prototype.ushln = function(N) {
+ return this.clone().iushln(N);
+ }, f.prototype.shrn = function(N) {
+ return this.clone().ishrn(N);
+ }, f.prototype.ushrn = function(N) {
+ return this.clone().iushrn(N);
+ }, f.prototype.testn = function(N) {
+ u(typeof N == "number" && N >= 0);
+ var H = N % 26, re = (N - H) / 26, oe = 1 << H;
+ if (this.length <= re) return false;
+ var _e = this.words[re];
+ return !!(_e & oe);
+ }, f.prototype.imaskn = function(N) {
+ u(typeof N == "number" && N >= 0);
+ var H = N % 26, re = (N - H) / 26;
+ if (u(this.negative === 0, "imaskn works only with positive numbers"), this.length <= re) return this;
+ if (H !== 0 && re++, this.length = Math.min(re, this.length), H !== 0) {
+ var oe = 67108863 ^ 67108863 >>> H << H;
+ this.words[this.length - 1] &= oe;
+ }
+ return this.strip();
+ }, f.prototype.maskn = function(N) {
+ return this.clone().imaskn(N);
+ }, f.prototype.iaddn = function(N) {
+ return u(typeof N == "number"), u(N < 67108864), N < 0 ? this.isubn(-N) : this.negative !== 0 ? this.length === 1 && (this.words[0] | 0) < N ? (this.words[0] = N - (this.words[0] | 0), this.negative = 0, this) : (this.negative = 0, this.isubn(N), this.negative = 1, this) : this._iaddn(N);
+ }, f.prototype._iaddn = function(N) {
+ this.words[0] += N;
+ for (var H = 0; H < this.length && this.words[H] >= 67108864; H++) this.words[H] -= 67108864, H === this.length - 1 ? this.words[H + 1] = 1 : this.words[H + 1]++;
+ return this.length = Math.max(this.length, H + 1), this;
+ }, f.prototype.isubn = function(N) {
+ if (u(typeof N == "number"), u(N < 67108864), N < 0) return this.iaddn(-N);
+ if (this.negative !== 0) return this.negative = 0, this.iaddn(N), this.negative = 1, this;
+ if (this.words[0] -= N, this.length === 1 && this.words[0] < 0) this.words[0] = -this.words[0], this.negative = 1;
+ else for (var H = 0; H < this.length && this.words[H] < 0; H++) this.words[H] += 67108864, this.words[H + 1] -= 1;
+ return this.strip();
+ }, f.prototype.addn = function(N) {
+ return this.clone().iaddn(N);
+ }, f.prototype.subn = function(N) {
+ return this.clone().isubn(N);
+ }, f.prototype.iabs = function() {
+ return this.negative = 0, this;
+ }, f.prototype.abs = function() {
+ return this.clone().iabs();
+ }, f.prototype._ishlnsubmul = function(N, H, re) {
+ var oe = N.length + re, _e;
+ this._expand(oe);
+ var Ce, Le = 0;
+ for (_e = 0; _e < N.length; _e++) {
+ Ce = (this.words[_e + re] | 0) + Le;
+ var ge = (N.words[_e] | 0) * H;
+ Ce -= ge & 67108863, Le = (Ce >> 26) - (ge / 67108864 | 0), this.words[_e + re] = Ce & 67108863;
+ }
+ for (; _e < this.length - re; _e++) Ce = (this.words[_e + re] | 0) + Le, Le = Ce >> 26, this.words[_e + re] = Ce & 67108863;
+ if (Le === 0) return this.strip();
+ for (u(Le === -1), Le = 0, _e = 0; _e < this.length; _e++) Ce = -(this.words[_e] | 0) + Le, Le = Ce >> 26, this.words[_e] = Ce & 67108863;
+ return this.negative = 1, this.strip();
+ }, f.prototype._wordDiv = function(N, H) {
+ var re = this.length - N.length, oe = this.clone(), _e = N, Ce = _e.words[_e.length - 1] | 0, Le = this._countBits(Ce);
+ re = 26 - Le, re !== 0 && (_e = _e.ushln(re), oe.iushln(re), Ce = _e.words[_e.length - 1] | 0);
+ var ge = oe.length - _e.length, ie;
+ if (H !== "mod") {
+ ie = new f(null), ie.length = ge + 1, ie.words = new Array(ie.length);
+ for (var Se = 0; Se < ie.length; Se++) ie.words[Se] = 0;
+ }
+ var Ee = oe.clone()._ishlnsubmul(_e, 1, ge);
+ Ee.negative === 0 && (oe = Ee, ie && (ie.words[ge] = 1));
+ for (var Ae = ge - 1; Ae >= 0; Ae--) {
+ var Be = (oe.words[_e.length + Ae] | 0) * 67108864 + (oe.words[_e.length + Ae - 1] | 0);
+ for (Be = Math.min(Be / Ce | 0, 67108863), oe._ishlnsubmul(_e, Be, Ae); oe.negative !== 0; ) Be--, oe.negative = 0, oe._ishlnsubmul(_e, 1, Ae), oe.isZero() || (oe.negative ^= 1);
+ ie && (ie.words[Ae] = Be);
+ }
+ return ie && ie.strip(), oe.strip(), H !== "div" && re !== 0 && oe.iushrn(re), { div: ie || null, mod: oe };
+ }, f.prototype.divmod = function(N, H, re) {
+ if (u(!N.isZero()), this.isZero()) return { div: new f(0), mod: new f(0) };
+ var oe, _e, Ce;
+ return this.negative !== 0 && N.negative === 0 ? (Ce = this.neg().divmod(N, H), H !== "mod" && (oe = Ce.div.neg()), H !== "div" && (_e = Ce.mod.neg(), re && _e.negative !== 0 && _e.iadd(N)), { div: oe, mod: _e }) : this.negative === 0 && N.negative !== 0 ? (Ce = this.divmod(N.neg(), H), H !== "mod" && (oe = Ce.div.neg()), { div: oe, mod: Ce.mod }) : (this.negative & N.negative) !== 0 ? (Ce = this.neg().divmod(N.neg(), H), H !== "div" && (_e = Ce.mod.neg(), re && _e.negative !== 0 && _e.isub(N)), { div: Ce.div, mod: _e }) : N.length > this.length || this.cmp(N) < 0 ? { div: new f(0), mod: this } : N.length === 1 ? H === "div" ? { div: this.divn(N.words[0]), mod: null } : H === "mod" ? { div: null, mod: new f(this.modn(N.words[0])) } : { div: this.divn(N.words[0]), mod: new f(this.modn(N.words[0])) } : this._wordDiv(N, H);
+ }, f.prototype.div = function(N) {
+ return this.divmod(N, "div", false).div;
+ }, f.prototype.mod = function(N) {
+ return this.divmod(N, "mod", false).mod;
+ }, f.prototype.umod = function(N) {
+ return this.divmod(N, "mod", true).mod;
+ }, f.prototype.divRound = function(N) {
+ var H = this.divmod(N);
+ if (H.mod.isZero()) return H.div;
+ var re = H.div.negative !== 0 ? H.mod.isub(N) : H.mod, oe = N.ushrn(1), _e = N.andln(1), Ce = re.cmp(oe);
+ return Ce < 0 || _e === 1 && Ce === 0 ? H.div : H.div.negative !== 0 ? H.div.isubn(1) : H.div.iaddn(1);
+ }, f.prototype.modn = function(N) {
+ u(N <= 67108863);
+ for (var H = (1 << 26) % N, re = 0, oe = this.length - 1; oe >= 0; oe--) re = (H * re + (this.words[oe] | 0)) % N;
+ return re;
+ }, f.prototype.idivn = function(N) {
+ u(N <= 67108863);
+ for (var H = 0, re = this.length - 1; re >= 0; re--) {
+ var oe = (this.words[re] | 0) + H * 67108864;
+ this.words[re] = oe / N | 0, H = oe % N;
+ }
+ return this.strip();
+ }, f.prototype.divn = function(N) {
+ return this.clone().idivn(N);
+ }, f.prototype.egcd = function(N) {
+ u(N.negative === 0), u(!N.isZero());
+ var H = this, re = N.clone();
+ H.negative !== 0 ? H = H.umod(N) : H = H.clone();
+ for (var oe = new f(1), _e = new f(0), Ce = new f(0), Le = new f(1), ge = 0; H.isEven() && re.isEven(); ) H.iushrn(1), re.iushrn(1), ++ge;
+ for (var ie = re.clone(), Se = H.clone(); !H.isZero(); ) {
+ for (var Ee = 0, Ae = 1; (H.words[0] & Ae) === 0 && Ee < 26; ++Ee, Ae <<= 1) ;
+ if (Ee > 0) for (H.iushrn(Ee); Ee-- > 0; ) (oe.isOdd() || _e.isOdd()) && (oe.iadd(ie), _e.isub(Se)), oe.iushrn(1), _e.iushrn(1);
+ for (var Be = 0, Pe = 1; (re.words[0] & Pe) === 0 && Be < 26; ++Be, Pe <<= 1) ;
+ if (Be > 0) for (re.iushrn(Be); Be-- > 0; ) (Ce.isOdd() || Le.isOdd()) && (Ce.iadd(ie), Le.isub(Se)), Ce.iushrn(1), Le.iushrn(1);
+ H.cmp(re) >= 0 ? (H.isub(re), oe.isub(Ce), _e.isub(Le)) : (re.isub(H), Ce.isub(oe), Le.isub(_e));
+ }
+ return { a: Ce, b: Le, gcd: re.iushln(ge) };
+ }, f.prototype._invmp = function(N) {
+ u(N.negative === 0), u(!N.isZero());
+ var H = this, re = N.clone();
+ H.negative !== 0 ? H = H.umod(N) : H = H.clone();
+ for (var oe = new f(1), _e = new f(0), Ce = re.clone(); H.cmpn(1) > 0 && re.cmpn(1) > 0; ) {
+ for (var Le = 0, ge = 1; (H.words[0] & ge) === 0 && Le < 26; ++Le, ge <<= 1) ;
+ if (Le > 0) for (H.iushrn(Le); Le-- > 0; ) oe.isOdd() && oe.iadd(Ce), oe.iushrn(1);
+ for (var ie = 0, Se = 1; (re.words[0] & Se) === 0 && ie < 26; ++ie, Se <<= 1) ;
+ if (ie > 0) for (re.iushrn(ie); ie-- > 0; ) _e.isOdd() && _e.iadd(Ce), _e.iushrn(1);
+ H.cmp(re) >= 0 ? (H.isub(re), oe.isub(_e)) : (re.isub(H), _e.isub(oe));
+ }
+ var Ee;
+ return H.cmpn(1) === 0 ? Ee = oe : Ee = _e, Ee.cmpn(0) < 0 && Ee.iadd(N), Ee;
+ }, f.prototype.gcd = function(N) {
+ if (this.isZero()) return N.abs();
+ if (N.isZero()) return this.abs();
+ var H = this.clone(), re = N.clone();
+ H.negative = 0, re.negative = 0;
+ for (var oe = 0; H.isEven() && re.isEven(); oe++) H.iushrn(1), re.iushrn(1);
+ do {
+ for (; H.isEven(); ) H.iushrn(1);
+ for (; re.isEven(); ) re.iushrn(1);
+ var _e = H.cmp(re);
+ if (_e < 0) {
+ var Ce = H;
+ H = re, re = Ce;
+ } else if (_e === 0 || re.cmpn(1) === 0) break;
+ H.isub(re);
+ } while (true);
+ return re.iushln(oe);
+ }, f.prototype.invm = function(N) {
+ return this.egcd(N).a.umod(N);
+ }, f.prototype.isEven = function() {
+ return (this.words[0] & 1) === 0;
+ }, f.prototype.isOdd = function() {
+ return (this.words[0] & 1) === 1;
+ }, f.prototype.andln = function(N) {
+ return this.words[0] & N;
+ }, f.prototype.bincn = function(N) {
+ u(typeof N == "number");
+ var H = N % 26, re = (N - H) / 26, oe = 1 << H;
+ if (this.length <= re) return this._expand(re + 1), this.words[re] |= oe, this;
+ for (var _e = oe, Ce = re; _e !== 0 && Ce < this.length; Ce++) {
+ var Le = this.words[Ce] | 0;
+ Le += _e, _e = Le >>> 26, Le &= 67108863, this.words[Ce] = Le;
+ }
+ return _e !== 0 && (this.words[Ce] = _e, this.length++), this;
+ }, f.prototype.isZero = function() {
+ return this.length === 1 && this.words[0] === 0;
+ }, f.prototype.cmpn = function(N) {
+ var H = N < 0;
+ if (this.negative !== 0 && !H) return -1;
+ if (this.negative === 0 && H) return 1;
+ this.strip();
+ var re;
+ if (this.length > 1) re = 1;
+ else {
+ H && (N = -N), u(N <= 67108863, "Number is too big");
+ var oe = this.words[0] | 0;
+ re = oe === N ? 0 : oe < N ? -1 : 1;
+ }
+ return this.negative !== 0 ? -re | 0 : re;
+ }, f.prototype.cmp = function(N) {
+ if (this.negative !== 0 && N.negative === 0) return -1;
+ if (this.negative === 0 && N.negative !== 0) return 1;
+ var H = this.ucmp(N);
+ return this.negative !== 0 ? -H | 0 : H;
+ }, f.prototype.ucmp = function(N) {
+ if (this.length > N.length) return 1;
+ if (this.length < N.length) return -1;
+ for (var H = 0, re = this.length - 1; re >= 0; re--) {
+ var oe = this.words[re] | 0, _e = N.words[re] | 0;
+ if (oe !== _e) {
+ oe < _e ? H = -1 : oe > _e && (H = 1);
+ break;
+ }
+ }
+ return H;
+ }, f.prototype.gtn = function(N) {
+ return this.cmpn(N) === 1;
+ }, f.prototype.gt = function(N) {
+ return this.cmp(N) === 1;
+ }, f.prototype.gten = function(N) {
+ return this.cmpn(N) >= 0;
+ }, f.prototype.gte = function(N) {
+ return this.cmp(N) >= 0;
+ }, f.prototype.ltn = function(N) {
+ return this.cmpn(N) === -1;
+ }, f.prototype.lt = function(N) {
+ return this.cmp(N) === -1;
+ }, f.prototype.lten = function(N) {
+ return this.cmpn(N) <= 0;
+ }, f.prototype.lte = function(N) {
+ return this.cmp(N) <= 0;
+ }, f.prototype.eqn = function(N) {
+ return this.cmpn(N) === 0;
+ }, f.prototype.eq = function(N) {
+ return this.cmp(N) === 0;
+ }, f.red = function(N) {
+ return new G(N);
+ }, f.prototype.toRed = function(N) {
+ return u(!this.red, "Already a number in reduction context"), u(this.negative === 0, "red works only with positives"), N.convertTo(this)._forceRed(N);
+ }, f.prototype.fromRed = function() {
+ return u(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this);
+ }, f.prototype._forceRed = function(N) {
+ return this.red = N, this;
+ }, f.prototype.forceRed = function(N) {
+ return u(!this.red, "Already a number in reduction context"), this._forceRed(N);
+ }, f.prototype.redAdd = function(N) {
+ return u(this.red, "redAdd works only with red numbers"), this.red.add(this, N);
+ }, f.prototype.redIAdd = function(N) {
+ return u(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, N);
+ }, f.prototype.redSub = function(N) {
+ return u(this.red, "redSub works only with red numbers"), this.red.sub(this, N);
+ }, f.prototype.redISub = function(N) {
+ return u(this.red, "redISub works only with red numbers"), this.red.isub(this, N);
+ }, f.prototype.redShl = function(N) {
+ return u(this.red, "redShl works only with red numbers"), this.red.shl(this, N);
+ }, f.prototype.redMul = function(N) {
+ return u(this.red, "redMul works only with red numbers"), this.red._verify2(this, N), this.red.mul(this, N);
+ }, f.prototype.redIMul = function(N) {
+ return u(this.red, "redMul works only with red numbers"), this.red._verify2(this, N), this.red.imul(this, N);
+ }, f.prototype.redSqr = function() {
+ return u(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this);
+ }, f.prototype.redISqr = function() {
+ return u(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this);
+ }, f.prototype.redSqrt = function() {
+ return u(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this);
+ }, f.prototype.redInvm = function() {
+ return u(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this);
+ }, f.prototype.redNeg = function() {
+ return u(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this);
+ }, f.prototype.redPow = function(N) {
+ return u(this.red && !N.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, N);
+ };
+ var g = { k256: null, p224: null, p192: null, p25519: null };
+ function P(j, N) {
+ this.name = j, this.p = new f(N, 16), this.n = this.p.bitLength(), this.k = new f(1).iushln(this.n).isub(this.p), this.tmp = this._tmp();
+ }
+ P.prototype._tmp = function() {
+ var N = new f(null);
+ return N.words = new Array(Math.ceil(this.n / 13)), N;
+ }, P.prototype.ireduce = function(N) {
+ var H = N, re;
+ do
+ this.split(H, this.tmp), H = this.imulK(H), H = H.iadd(this.tmp), re = H.bitLength();
+ while (re > this.n);
+ var oe = re < this.n ? -1 : H.ucmp(this.p);
+ return oe === 0 ? (H.words[0] = 0, H.length = 1) : oe > 0 ? H.isub(this.p) : H.strip !== void 0 ? H.strip() : H._strip(), H;
+ }, P.prototype.split = function(N, H) {
+ N.iushrn(this.n, 0, H);
+ }, P.prototype.imulK = function(N) {
+ return N.imul(this.k);
+ };
+ function A() {
+ P.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
+ }
+ c(A, P), A.prototype.split = function(N, H) {
+ for (var re = 4194303, oe = Math.min(N.length, 9), _e = 0; _e < oe; _e++) H.words[_e] = N.words[_e];
+ if (H.length = oe, N.length <= 9) {
+ N.words[0] = 0, N.length = 1;
+ return;
+ }
+ var Ce = N.words[9];
+ for (H.words[H.length++] = Ce & re, _e = 10; _e < N.length; _e++) {
+ var Le = N.words[_e] | 0;
+ N.words[_e - 10] = (Le & re) << 4 | Ce >>> 22, Ce = Le;
+ }
+ Ce >>>= 22, N.words[_e - 10] = Ce, Ce === 0 && N.length > 10 ? N.length -= 10 : N.length -= 9;
+ }, A.prototype.imulK = function(N) {
+ N.words[N.length] = 0, N.words[N.length + 1] = 0, N.length += 2;
+ for (var H = 0, re = 0; re < N.length; re++) {
+ var oe = N.words[re] | 0;
+ H += oe * 977, N.words[re] = H & 67108863, H = oe * 64 + (H / 67108864 | 0);
+ }
+ return N.words[N.length - 1] === 0 && (N.length--, N.words[N.length - 1] === 0 && N.length--), N;
+ };
+ function z() {
+ P.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
+ }
+ c(z, P);
+ function O() {
+ P.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
+ }
+ c(O, P);
+ function U() {
+ P.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
+ }
+ c(U, P), U.prototype.imulK = function(N) {
+ for (var H = 0, re = 0; re < N.length; re++) {
+ var oe = (N.words[re] | 0) * 19 + H, _e = oe & 67108863;
+ oe >>>= 26, N.words[re] = _e, H = oe;
+ }
+ return H !== 0 && (N.words[N.length++] = H), N;
+ }, f._prime = function(N) {
+ if (g[N]) return g[N];
+ var H;
+ if (N === "k256") H = new A();
+ else if (N === "p224") H = new z();
+ else if (N === "p192") H = new O();
+ else if (N === "p25519") H = new U();
+ else throw new Error("Unknown prime " + N);
+ return g[N] = H, H;
+ };
+ function G(j) {
+ if (typeof j == "string") {
+ var N = f._prime(j);
+ this.m = N.p, this.prime = N;
+ } else u(j.gtn(1), "modulus must be greater than 1"), this.m = j, this.prime = null;
+ }
+ G.prototype._verify1 = function(N) {
+ u(N.negative === 0, "red works only with positives"), u(N.red, "red works only with red numbers");
+ }, G.prototype._verify2 = function(N, H) {
+ u((N.negative | H.negative) === 0, "red works only with positives"), u(N.red && N.red === H.red, "red works only with red numbers");
+ }, G.prototype.imod = function(N) {
+ return this.prime ? this.prime.ireduce(N)._forceRed(this) : N.umod(this.m)._forceRed(this);
+ }, G.prototype.neg = function(N) {
+ return N.isZero() ? N.clone() : this.m.sub(N)._forceRed(this);
+ }, G.prototype.add = function(N, H) {
+ this._verify2(N, H);
+ var re = N.add(H);
+ return re.cmp(this.m) >= 0 && re.isub(this.m), re._forceRed(this);
+ }, G.prototype.iadd = function(N, H) {
+ this._verify2(N, H);
+ var re = N.iadd(H);
+ return re.cmp(this.m) >= 0 && re.isub(this.m), re;
+ }, G.prototype.sub = function(N, H) {
+ this._verify2(N, H);
+ var re = N.sub(H);
+ return re.cmpn(0) < 0 && re.iadd(this.m), re._forceRed(this);
+ }, G.prototype.isub = function(N, H) {
+ this._verify2(N, H);
+ var re = N.isub(H);
+ return re.cmpn(0) < 0 && re.iadd(this.m), re;
+ }, G.prototype.shl = function(N, H) {
+ return this._verify1(N), this.imod(N.ushln(H));
+ }, G.prototype.imul = function(N, H) {
+ return this._verify2(N, H), this.imod(N.imul(H));
+ }, G.prototype.mul = function(N, H) {
+ return this._verify2(N, H), this.imod(N.mul(H));
+ }, G.prototype.isqr = function(N) {
+ return this.imul(N, N.clone());
+ }, G.prototype.sqr = function(N) {
+ return this.mul(N, N);
+ }, G.prototype.sqrt = function(N) {
+ if (N.isZero()) return N.clone();
+ var H = this.m.andln(3);
+ if (u(H % 2 === 1), H === 3) {
+ var re = this.m.add(new f(1)).iushrn(2);
+ return this.pow(N, re);
+ }
+ for (var oe = this.m.subn(1), _e = 0; !oe.isZero() && oe.andln(1) === 0; ) _e++, oe.iushrn(1);
+ u(!oe.isZero());
+ var Ce = new f(1).toRed(this), Le = Ce.redNeg(), ge = this.m.subn(1).iushrn(1), ie = this.m.bitLength();
+ for (ie = new f(2 * ie * ie).toRed(this); this.pow(ie, ge).cmp(Le) !== 0; ) ie.redIAdd(Le);
+ for (var Se = this.pow(ie, oe), Ee = this.pow(N, oe.addn(1).iushrn(1)), Ae = this.pow(N, oe), Be = _e; Ae.cmp(Ce) !== 0; ) {
+ for (var Pe = Ae, me = 0; Pe.cmp(Ce) !== 0; me++) Pe = Pe.redSqr();
+ u(me < Be);
+ var De = this.pow(Se, new f(1).iushln(Be - me - 1));
+ Ee = Ee.redMul(De), Se = De.redSqr(), Ae = Ae.redMul(Se), Be = me;
+ }
+ return Ee;
+ }, G.prototype.invm = function(N) {
+ var H = N._invmp(this.m);
+ return H.negative !== 0 ? (H.negative = 0, this.imod(H).redNeg()) : this.imod(H);
+ }, G.prototype.pow = function(N, H) {
+ if (H.isZero()) return new f(1).toRed(this);
+ if (H.cmpn(1) === 0) return N.clone();
+ var re = 4, oe = new Array(1 << re);
+ oe[0] = new f(1).toRed(this), oe[1] = N;
+ for (var _e = 2; _e < oe.length; _e++) oe[_e] = this.mul(oe[_e - 1], N);
+ var Ce = oe[0], Le = 0, ge = 0, ie = H.bitLength() % 26;
+ for (ie === 0 && (ie = 26), _e = H.length - 1; _e >= 0; _e--) {
+ for (var Se = H.words[_e], Ee = ie - 1; Ee >= 0; Ee--) {
+ var Ae = Se >> Ee & 1;
+ if (Ce !== oe[0] && (Ce = this.sqr(Ce)), Ae === 0 && Le === 0) {
+ ge = 0;
+ continue;
+ }
+ Le <<= 1, Le |= Ae, ge++, !(ge !== re && (_e !== 0 || Ee !== 0)) && (Ce = this.mul(Ce, oe[Le]), ge = 0, Le = 0);
+ }
+ ie = 26;
+ }
+ return Ce;
+ }, G.prototype.convertTo = function(N) {
+ var H = N.umod(this.m);
+ return H === N ? H.clone() : H;
+ }, G.prototype.convertFrom = function(N) {
+ var H = N.clone();
+ return H.red = null, H;
+ }, f.mont = function(N) {
+ return new Z(N);
+ };
+ function Z(j) {
+ G.call(this, j), this.shift = this.m.bitLength(), this.shift % 26 !== 0 && (this.shift += 26 - this.shift % 26), this.r = new f(1).iushln(this.shift), this.r2 = this.imod(this.r.sqr()), this.rinv = this.r._invmp(this.m), this.minv = this.rinv.mul(this.r).isubn(1).div(this.m), this.minv = this.minv.umod(this.r), this.minv = this.r.sub(this.minv);
+ }
+ c(Z, G), Z.prototype.convertTo = function(N) {
+ return this.imod(N.ushln(this.shift));
+ }, Z.prototype.convertFrom = function(N) {
+ var H = this.imod(N.mul(this.rinv));
+ return H.red = null, H;
+ }, Z.prototype.imul = function(N, H) {
+ if (N.isZero() || H.isZero()) return N.words[0] = 0, N.length = 1, N;
+ var re = N.imul(H), oe = re.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), _e = re.isub(oe).iushrn(this.shift), Ce = _e;
+ return _e.cmp(this.m) >= 0 ? Ce = _e.isub(this.m) : _e.cmpn(0) < 0 && (Ce = _e.iadd(this.m)), Ce._forceRed(this);
+ }, Z.prototype.mul = function(N, H) {
+ if (N.isZero() || H.isZero()) return new f(0)._forceRed(this);
+ var re = N.mul(H), oe = re.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), _e = re.isub(oe).iushrn(this.shift), Ce = _e;
+ return _e.cmp(this.m) >= 0 ? Ce = _e.isub(this.m) : _e.cmpn(0) < 0 && (Ce = _e.iadd(this.m)), Ce._forceRed(this);
+ }, Z.prototype.invm = function(N) {
+ var H = this.imod(N._invmp(this.m).mul(this.r2));
+ return H._forceRed(this);
+ };
+ }(i, this);
+ }, 6860: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] - l[0], o[1] = s[1] - l[1], o[2] = s[2] - l[2], o[3] = s[3] - l[3], o;
+ }
+ }, 6864: function(i) {
+ i.exports = a;
+ function a() {
+ var o = new Float32Array(16);
+ return o[0] = 1, o[1] = 0, o[2] = 0, o[3] = 0, o[4] = 0, o[5] = 1, o[6] = 0, o[7] = 0, o[8] = 0, o[9] = 0, o[10] = 1, o[11] = 0, o[12] = 0, o[13] = 0, o[14] = 0, o[15] = 1, o;
+ }
+ }, 6867: function(i, a, o) {
+ i.exports = p;
+ var s = o(1888), l = o(855), u = o(7150);
+ function c(k, E) {
+ for (var T = 0; T < k; ++T) if (!(E[T] <= E[T + k])) return true;
+ return false;
+ }
+ function f(k, E, T, L) {
+ for (var x = 0, C = 0, M = 0, g = k.length; M < g; ++M) {
+ var P = k[M];
+ if (!c(E, P)) {
+ for (var A = 0; A < 2 * E; ++A) T[x++] = P[A];
+ L[C++] = M;
+ }
+ }
+ return C;
+ }
+ function h(k, E, T, L) {
+ var x = k.length, C = E.length;
+ if (!(x <= 0 || C <= 0)) {
+ var M = k[0].length >>> 1;
+ if (!(M <= 0)) {
+ var g, P = s.mallocDouble(2 * M * x), A = s.mallocInt32(x);
+ if (x = f(k, M, P, A), x > 0) {
+ if (M === 1 && L) l.init(x), g = l.sweepComplete(M, T, 0, x, P, A, 0, x, P, A);
+ else {
+ var z = s.mallocDouble(2 * M * C), O = s.mallocInt32(C);
+ C = f(E, M, z, O), C > 0 && (l.init(x + C), M === 1 ? g = l.sweepBipartite(M, T, 0, x, P, A, 0, C, z, O) : g = u(M, T, L, x, P, A, C, z, O), s.free(z), s.free(O));
+ }
+ s.free(P), s.free(A);
+ }
+ return g;
+ }
+ }
+ }
+ var d;
+ function v(k, E) {
+ d.push([k, E]);
+ }
+ function _(k) {
+ return d = [], h(k, k, v, true), d;
+ }
+ function b(k, E) {
+ return d = [], h(k, E, v, false), d;
+ }
+ function p(k, E, T) {
+ switch (arguments.length) {
+ case 1:
+ return _(k);
+ case 2:
+ return typeof E == "function" ? h(k, k, E, true) : b(k, E);
+ case 3:
+ return h(k, E, T, false);
+ default:
+ throw new Error("box-intersect: Invalid arguments");
+ }
+ }
+ }, 6894: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ var c = l[1], f = l[2], h = s[1] - c, d = s[2] - f, v = Math.sin(u), _ = Math.cos(u);
+ return o[0] = s[0], o[1] = c + h * _ - d * v, o[2] = f + h * v + d * _, o;
+ }
+ }, 7004: function(i) {
+ i.exports = a;
+ function a(o) {
+ for (var s = o.length, l = o[o.length - 1], u = s, c = s - 2; c >= 0; --c) {
+ var f = l, h = o[c];
+ l = f + h;
+ var d = l - f, v = h - d;
+ v && (o[--u] = l, l = v);
+ }
+ for (var _ = 0, c = u; c < s; ++c) {
+ var f = o[c], h = l;
+ l = f + h;
+ var d = l - f, v = h - d;
+ v && (o[_++] = v);
+ }
+ return o[_++] = l, o.length = _, o;
+ }
+ }, 7056: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = s[0] - o[0], u = s[1] - o[1], c = s[2] - o[2];
+ return Math.sqrt(l * l + u * u + c * c);
+ }
+ }, 7089: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = Math.sin(l), c = Math.cos(l), f = s[0], h = s[1], d = s[2], v = s[3], _ = s[4], b = s[5], p = s[6], k = s[7];
+ return s !== o && (o[8] = s[8], o[9] = s[9], o[10] = s[10], o[11] = s[11], o[12] = s[12], o[13] = s[13], o[14] = s[14], o[15] = s[15]), o[0] = f * c + _ * u, o[1] = h * c + b * u, o[2] = d * c + p * u, o[3] = v * c + k * u, o[4] = _ * c - f * u, o[5] = b * c - h * u, o[6] = p * c - d * u, o[7] = k * c - v * u, o;
+ }
+ }, 7150: function(i, a, o) {
+ i.exports = j;
+ var s = o(1888), l = o(8828), u = o(2455), c = u.partial, f = u.full, h = o(855), d = o(3545), v = o(8105), _ = 128, b = 1 << 22, p = 1 << 22, k = v("!(lo>=p0)&&!(p1>=hi)"), E = v("lo===p0"), T = v("lo 0; ) {
+ Se -= 1;
+ var Be = Se * M, Pe = A[Be], me = A[Be + 1], De = A[Be + 2], ce = A[Be + 3], je = A[Be + 4], lt = A[Be + 5], pt = Se * g, Vt = z[pt], ot = z[pt + 1], ut = lt & 1, Wt = !!(lt & 16), Nt = _e, $t = Ce, sr = ge, Tr = ie;
+ if (ut && (Nt = ge, $t = ie, sr = _e, Tr = Ce), !(lt & 2 && (De = T(N, Pe, me, De, Nt, $t, ot), me >= De)) && !(lt & 4 && (me = L(N, Pe, me, De, Nt, $t, Vt), me >= De))) {
+ var fr = De - me, $e = je - ce;
+ if (Wt) {
+ if (N * fr * (fr + $e) < p) {
+ if (Ae = h.scanComplete(N, Pe, H, me, De, Nt, $t, ce, je, sr, Tr), Ae !== void 0) return Ae;
+ continue;
+ }
+ } else if (N * Math.min(fr, $e) < _) {
+ if (Ae = c(N, Pe, H, ut, me, De, Nt, $t, ce, je, sr, Tr), Ae !== void 0) return Ae;
+ continue;
+ } else if (N * fr * $e < b) {
+ if (Ae = h.scanBipartite(N, Pe, H, ut, me, De, Nt, $t, ce, je, sr, Tr), Ae !== void 0) return Ae;
+ continue;
+ }
+ var St = k(N, Pe, me, De, Nt, $t, Vt, ot);
+ if (me < St) if (N * (St - me) < _) {
+ if (Ae = f(N, Pe + 1, H, me, St, Nt, $t, ce, je, sr, Tr), Ae !== void 0) return Ae;
+ } else if (Pe === N - 2) {
+ if (ut ? Ae = h.sweepBipartite(N, H, ce, je, sr, Tr, me, St, Nt, $t) : Ae = h.sweepBipartite(N, H, me, St, Nt, $t, ce, je, sr, Tr), Ae !== void 0) return Ae;
+ } else U(Se++, Pe + 1, me, St, ce, je, ut, -1 / 0, 1 / 0), U(Se++, Pe + 1, ce, je, me, St, ut ^ 1, -1 / 0, 1 / 0);
+ if (St < De) {
+ var Qt = d(N, Pe, ce, je, sr, Tr), Gt = sr[Ee * Qt + Pe], _t = E(N, Pe, Qt, je, sr, Tr, Gt);
+ if (_t < je && U(Se++, Pe, St, De, _t, je, (ut | 4) + (Wt ? 16 : 0), Gt, ot), ce < Qt && U(Se++, Pe, St, De, ce, Qt, (ut | 2) + (Wt ? 16 : 0), Vt, Gt), Qt + 1 === _t) {
+ if (Wt ? Ae = Z(N, Pe, H, St, De, Nt, $t, Qt, sr, Tr[Qt]) : Ae = G(N, Pe, H, ut, St, De, Nt, $t, Qt, sr, Tr[Qt]), Ae !== void 0) return Ae;
+ } else if (Qt < _t) {
+ var It;
+ if (Wt) {
+ if (It = x(N, Pe, St, De, Nt, $t, Gt), St < It) {
+ var mt = E(N, Pe, St, It, Nt, $t, Gt);
+ if (Pe === N - 2) {
+ if (St < mt && (Ae = h.sweepComplete(N, H, St, mt, Nt, $t, Qt, _t, sr, Tr), Ae !== void 0) || mt < It && (Ae = h.sweepBipartite(N, H, mt, It, Nt, $t, Qt, _t, sr, Tr), Ae !== void 0)) return Ae;
+ } else St < mt && U(Se++, Pe + 1, St, mt, Qt, _t, 16, -1 / 0, 1 / 0), mt < It && (U(Se++, Pe + 1, mt, It, Qt, _t, 0, -1 / 0, 1 / 0), U(Se++, Pe + 1, Qt, _t, mt, It, 1, -1 / 0, 1 / 0));
+ }
+ } else ut ? It = C(N, Pe, St, De, Nt, $t, Gt) : It = x(N, Pe, St, De, Nt, $t, Gt), St < It && (Pe === N - 2 ? ut ? Ae = h.sweepBipartite(N, H, Qt, _t, sr, Tr, St, It, Nt, $t) : Ae = h.sweepBipartite(N, H, St, It, Nt, $t, Qt, _t, sr, Tr) : (U(Se++, Pe + 1, St, It, Qt, _t, ut, -1 / 0, 1 / 0), U(Se++, Pe + 1, Qt, _t, St, It, ut ^ 1, -1 / 0, 1 / 0)));
+ }
+ }
+ }
+ }
+ }
+ }, 7163: function(i) {
+ i.exports = function(s) {
+ return s != null && (a(s) || o(s) || !!s._isBuffer);
+ };
+ function a(s) {
+ return !!s.constructor && typeof s.constructor.isBuffer == "function" && s.constructor.isBuffer(s);
+ }
+ function o(s) {
+ return typeof s.readFloatLE == "function" && typeof s.slice == "function" && a(s.slice(0, 0));
+ }
+ }, 7169: function(i, a, o) {
+ var s = typeof WeakMap == "undefined" ? o(1538) : WeakMap, l = o(2762), u = o(8116), c = new s();
+ function f(h) {
+ var d = c.get(h), v = d && (d._triangleBuffer.handle || d._triangleBuffer.buffer);
+ if (!v || !h.isBuffer(v)) {
+ var _ = l(h, new Float32Array([-1, -1, -1, 4, 4, -1]));
+ d = u(h, [{ buffer: _, type: h.FLOAT, size: 2 }]), d._triangleBuffer = _, c.set(h, d);
+ }
+ d.bind(), h.drawArrays(h.TRIANGLES, 0, 3), d.unbind();
+ }
+ i.exports = f;
+ }, 7182: function(i, a, o) {
+ var s = { identity: o(7894), translate: o(7656), multiply: o(6760), create: o(6864), scale: o(2504), fromRotationTranslation: o(6743) };
+ s.create();
+ var u = s.create();
+ i.exports = function(f, h, d, v, _, b) {
+ return s.identity(f), s.fromRotationTranslation(f, b, h), f[3] = _[0], f[7] = _[1], f[11] = _[2], f[15] = _[3], s.identity(u), v[2] !== 0 && (u[9] = v[2], s.multiply(f, f, u)), v[1] !== 0 && (u[9] = 0, u[8] = v[1], s.multiply(f, f, u)), v[0] !== 0 && (u[8] = 0, u[4] = v[0], s.multiply(f, f, u)), s.scale(f, f, d), f;
+ };
+ }, 7201: function(i, a, o) {
+ var s = 1e-6, l = 1e-6, u = o(9405), c = o(2762), f = o(8116), h = o(7766), d = o(8406), v = o(6760), _ = o(7608), b = o(9618), p = o(6729), k = o(7765), E = o(1888), T = o(840), L = o(7626), x = T.meshShader, C = T.wireShader, M = T.pointShader, g = T.pickShader, P = T.pointPickShader, A = T.contourShader, z = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
+ function O(ge, ie, Se, Ee, Ae, Be, Pe, me, De, ce, je, lt, pt, Vt, ot, ut, Wt, Nt, $t, sr, Tr, fr, $e, St, Qt, Gt, _t) {
+ this.gl = ge, this.pixelRatio = 1, this.cells = [], this.positions = [], this.intensity = [], this.texture = ie, this.dirty = true, this.triShader = Se, this.lineShader = Ee, this.pointShader = Ae, this.pickShader = Be, this.pointPickShader = Pe, this.contourShader = me, this.trianglePositions = De, this.triangleColors = je, this.triangleNormals = pt, this.triangleUVs = lt, this.triangleIds = ce, this.triangleVAO = Vt, this.triangleCount = 0, this.lineWidth = 1, this.edgePositions = ot, this.edgeColors = Wt, this.edgeUVs = Nt, this.edgeIds = ut, this.edgeVAO = $t, this.edgeCount = 0, this.pointPositions = sr, this.pointColors = fr, this.pointUVs = $e, this.pointSizes = St, this.pointIds = Tr, this.pointVAO = Qt, this.pointCount = 0, this.contourLineWidth = 1, this.contourPositions = Gt, this.contourVAO = _t, this.contourCount = 0, this.contourColor = [0, 0, 0], this.contourEnable = true, this.pickVertex = true, this.pickId = 1, this.bounds = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]], this.clipBounds = [[-1 / 0, -1 / 0, -1 / 0], [1 / 0, 1 / 0, 1 / 0]], this.lightPosition = [1e5, 1e5, 0], this.ambientLight = 0.8, this.diffuseLight = 0.8, this.specularLight = 2, this.roughness = 0.5, this.fresnel = 1.5, this.opacity = 1, this.hasAlpha = false, this.opacityscale = false, this._model = z, this._view = z, this._projection = z, this._resolution = [1, 1];
+ }
+ var U = O.prototype;
+ U.isOpaque = function() {
+ return !this.hasAlpha;
+ }, U.isTransparent = function() {
+ return this.hasAlpha;
+ }, U.pickSlots = 1, U.setPickBase = function(ge) {
+ this.pickId = ge;
+ };
+ function G(ge, ie) {
+ if (!ie || !ie.length) return 1;
+ for (var Se = 0; Se < ie.length; ++Se) {
+ if (ie.length < 2) return 1;
+ if (ie[Se][0] === ge) return ie[Se][1];
+ if (ie[Se][0] > ge && Se > 0) {
+ var Ee = (ie[Se][0] - ge) / (ie[Se][0] - ie[Se - 1][0]);
+ return ie[Se][1] * (1 - Ee) + Ee * ie[Se - 1][1];
+ }
+ }
+ return 1;
+ }
+ function Z(ge, ie) {
+ for (var Se = p({ colormap: ge, nshades: 256, format: "rgba" }), Ee = new Uint8Array(256 * 4), Ae = 0; Ae < 256; ++Ae) {
+ for (var Be = Se[Ae], Pe = 0; Pe < 3; ++Pe) Ee[4 * Ae + Pe] = Be[Pe];
+ ie ? Ee[4 * Ae + 3] = 255 * G(Ae / 255, ie) : Ee[4 * Ae + 3] = 255 * Be[3];
+ }
+ return b(Ee, [256, 256, 4], [4, 0, 1]);
+ }
+ function j(ge) {
+ for (var ie = ge.length, Se = new Array(ie), Ee = 0; Ee < ie; ++Ee) Se[Ee] = ge[Ee][2];
+ return Se;
+ }
+ U.highlight = function(ge) {
+ if (!ge || !this.contourEnable) {
+ this.contourCount = 0;
+ return;
+ }
+ for (var ie = k(this.cells, this.intensity, ge.intensity), Se = ie.cells, Ee = ie.vertexIds, Ae = ie.vertexWeights, Be = Se.length, Pe = E.mallocFloat32(2 * 3 * Be), me = 0, De = 0; De < Be; ++De) for (var ce = Se[De], je = 0; je < 2; ++je) {
+ var lt = ce[0];
+ ce.length === 2 && (lt = ce[je]);
+ for (var pt = Ee[lt][0], Vt = Ee[lt][1], ot = Ae[lt], ut = 1 - ot, Wt = this.positions[pt], Nt = this.positions[Vt], $t = 0; $t < 3; ++$t) Pe[me++] = ot * Wt[$t] + ut * Nt[$t];
+ }
+ this.contourCount = me / 3 | 0, this.contourPositions.update(Pe.subarray(0, me)), E.free(Pe);
+ }, U.update = function(ge) {
+ ge = ge || {};
+ var ie = this.gl;
+ this.dirty = true, "contourEnable" in ge && (this.contourEnable = ge.contourEnable), "contourColor" in ge && (this.contourColor = ge.contourColor), "lineWidth" in ge && (this.lineWidth = ge.lineWidth), "lightPosition" in ge && (this.lightPosition = ge.lightPosition), this.hasAlpha = false, "opacity" in ge && (this.opacity = ge.opacity, this.opacity < 1 && (this.hasAlpha = true)), "opacityscale" in ge && (this.opacityscale = ge.opacityscale, this.hasAlpha = true), "ambient" in ge && (this.ambientLight = ge.ambient), "diffuse" in ge && (this.diffuseLight = ge.diffuse), "specular" in ge && (this.specularLight = ge.specular), "roughness" in ge && (this.roughness = ge.roughness), "fresnel" in ge && (this.fresnel = ge.fresnel), ge.texture ? (this.texture.dispose(), this.texture = h(ie, ge.texture)) : ge.colormap && (this.texture.shape = [256, 256], this.texture.minFilter = ie.LINEAR_MIPMAP_LINEAR, this.texture.magFilter = ie.LINEAR, this.texture.setPixels(Z(ge.colormap, this.opacityscale)), this.texture.generateMipmap());
+ var Se = ge.cells, Ee = ge.positions;
+ if (!(!Ee || !Se)) {
+ var Ae = [], Be = [], Pe = [], me = [], De = [], ce = [], je = [], lt = [], pt = [], Vt = [], ot = [], ut = [], Wt = [], Nt = [];
+ this.cells = Se, this.positions = Ee;
+ var $t = ge.vertexNormals, sr = ge.cellNormals, Tr = ge.vertexNormalsEpsilon === void 0 ? s : ge.vertexNormalsEpsilon, fr = ge.faceNormalsEpsilon === void 0 ? l : ge.faceNormalsEpsilon;
+ ge.useFacetNormals && !sr && (sr = d.faceNormals(Se, Ee, fr)), !sr && !$t && ($t = d.vertexNormals(Se, Ee, Tr));
+ var $e = ge.vertexColors, St = ge.cellColors, Qt = ge.meshColor || [1, 1, 1, 1], Gt = ge.vertexUVs, _t = ge.vertexIntensity, It = ge.cellUVs, mt = ge.cellIntensity, er = 1 / 0, lr = -1 / 0;
+ if (!Gt && !It) if (_t) if (ge.vertexIntensityBounds) er = +ge.vertexIntensityBounds[0], lr = +ge.vertexIntensityBounds[1];
+ else for (var wr = 0; wr < _t.length; ++wr) {
+ var Lr = _t[wr];
+ er = Math.min(er, Lr), lr = Math.max(lr, Lr);
+ }
+ else if (mt) if (ge.cellIntensityBounds) er = +ge.cellIntensityBounds[0], lr = +ge.cellIntensityBounds[1];
+ else for (var wr = 0; wr < mt.length; ++wr) {
+ var Lr = mt[wr];
+ er = Math.min(er, Lr), lr = Math.max(lr, Lr);
+ }
+ else for (var wr = 0; wr < Ee.length; ++wr) {
+ var Lr = Ee[wr][2];
+ er = Math.min(er, Lr), lr = Math.max(lr, Lr);
+ }
+ _t ? this.intensity = _t : mt ? this.intensity = mt : this.intensity = j(Ee), this.pickVertex = !(mt || St);
+ var ti = ge.pointSizes, Br = ge.pointSize || 1;
+ this.bounds = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]];
+ for (var wr = 0; wr < Ee.length; ++wr) for (var Vr = Ee[wr], dt = 0; dt < 3; ++dt) isNaN(Vr[dt]) || !isFinite(Vr[dt]) || (this.bounds[0][dt] = Math.min(this.bounds[0][dt], Vr[dt]), this.bounds[1][dt] = Math.max(this.bounds[1][dt], Vr[dt]));
+ var Ge = 0, Je = 0, We = 0;
+ e: for (var wr = 0; wr < Se.length; ++wr) {
+ var tt = Se[wr];
+ switch (tt.length) {
+ case 1:
+ for (var xt = tt[0], Vr = Ee[xt], dt = 0; dt < 3; ++dt) if (isNaN(Vr[dt]) || !isFinite(Vr[dt])) continue e;
+ Vt.push(Vr[0], Vr[1], Vr[2]);
+ var Ie;
+ $e ? Ie = $e[xt] : St ? Ie = St[wr] : Ie = Qt, this.opacityscale && _t ? Be.push(Ie[0], Ie[1], Ie[2], this.opacity * G((_t[xt] - er) / (lr - er), this.opacityscale)) : Ie.length === 3 ? ot.push(Ie[0], Ie[1], Ie[2], this.opacity) : (ot.push(Ie[0], Ie[1], Ie[2], Ie[3] * this.opacity), Ie[3] < 1 && (this.hasAlpha = true));
+ var xe;
+ Gt ? xe = Gt[xt] : _t ? xe = [(_t[xt] - er) / (lr - er), 0] : It ? xe = It[wr] : mt ? xe = [(mt[wr] - er) / (lr - er), 0] : xe = [(Vr[2] - er) / (lr - er), 0], ut.push(xe[0], xe[1]), ti ? Wt.push(ti[xt]) : Wt.push(Br), Nt.push(wr), We += 1;
+ break;
+ case 2:
+ for (var dt = 0; dt < 2; ++dt) for (var xt = tt[dt], Vr = Ee[xt], ke = 0; ke < 3; ++ke) if (isNaN(Vr[ke]) || !isFinite(Vr[ke])) continue e;
+ for (var dt = 0; dt < 2; ++dt) {
+ var xt = tt[dt], Vr = Ee[xt];
+ ce.push(Vr[0], Vr[1], Vr[2]);
+ var Ie;
+ $e ? Ie = $e[xt] : St ? Ie = St[wr] : Ie = Qt, this.opacityscale && _t ? Be.push(Ie[0], Ie[1], Ie[2], this.opacity * G((_t[xt] - er) / (lr - er), this.opacityscale)) : Ie.length === 3 ? je.push(Ie[0], Ie[1], Ie[2], this.opacity) : (je.push(Ie[0], Ie[1], Ie[2], Ie[3] * this.opacity), Ie[3] < 1 && (this.hasAlpha = true));
+ var xe;
+ Gt ? xe = Gt[xt] : _t ? xe = [(_t[xt] - er) / (lr - er), 0] : It ? xe = It[wr] : mt ? xe = [(mt[wr] - er) / (lr - er), 0] : xe = [(Vr[2] - er) / (lr - er), 0], lt.push(xe[0], xe[1]), pt.push(wr);
+ }
+ Je += 1;
+ break;
+ case 3:
+ for (var dt = 0; dt < 3; ++dt) for (var xt = tt[dt], Vr = Ee[xt], ke = 0; ke < 3; ++ke) if (isNaN(Vr[ke]) || !isFinite(Vr[ke])) continue e;
+ for (var dt = 0; dt < 3; ++dt) {
+ var xt = tt[2 - dt], Vr = Ee[xt];
+ Ae.push(Vr[0], Vr[1], Vr[2]);
+ var Ie;
+ $e ? Ie = $e[xt] : St ? Ie = St[wr] : Ie = Qt, Ie ? this.opacityscale && _t ? Be.push(Ie[0], Ie[1], Ie[2], this.opacity * G((_t[xt] - er) / (lr - er), this.opacityscale)) : Ie.length === 3 ? Be.push(Ie[0], Ie[1], Ie[2], this.opacity) : (Be.push(Ie[0], Ie[1], Ie[2], Ie[3] * this.opacity), Ie[3] < 1 && (this.hasAlpha = true)) : Be.push(0.5, 0.5, 0.5, 1);
+ var xe;
+ Gt ? xe = Gt[xt] : _t ? xe = [(_t[xt] - er) / (lr - er), 0] : It ? xe = It[wr] : mt ? xe = [(mt[wr] - er) / (lr - er), 0] : xe = [(Vr[2] - er) / (lr - er), 0], me.push(xe[0], xe[1]);
+ var vt;
+ $t ? vt = $t[xt] : vt = sr[wr], Pe.push(vt[0], vt[1], vt[2]), De.push(wr);
+ }
+ Ge += 1;
+ break;
+ }
+ }
+ this.pointCount = We, this.edgeCount = Je, this.triangleCount = Ge, this.pointPositions.update(Vt), this.pointColors.update(ot), this.pointUVs.update(ut), this.pointSizes.update(Wt), this.pointIds.update(new Uint32Array(Nt)), this.edgePositions.update(ce), this.edgeColors.update(je), this.edgeUVs.update(lt), this.edgeIds.update(new Uint32Array(pt)), this.trianglePositions.update(Ae), this.triangleColors.update(Be), this.triangleUVs.update(me), this.triangleNormals.update(Pe), this.triangleIds.update(new Uint32Array(De));
+ }
+ }, U.drawTransparent = U.draw = function(ge) {
+ ge = ge || {};
+ for (var ie = this.gl, Se = ge.model || z, Ee = ge.view || z, Ae = ge.projection || z, Be = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]], Pe = 0; Pe < 3; ++Pe) Be[0][Pe] = Math.max(Be[0][Pe], this.clipBounds[0][Pe]), Be[1][Pe] = Math.min(Be[1][Pe], this.clipBounds[1][Pe]);
+ var me = { model: Se, view: Ee, projection: Ae, inverseModel: z.slice(), clipBounds: Be, kambient: this.ambientLight, kdiffuse: this.diffuseLight, kspecular: this.specularLight, roughness: this.roughness, fresnel: this.fresnel, eyePosition: [0, 0, 0], lightPosition: [0, 0, 0], contourColor: this.contourColor, texture: 0 };
+ me.inverseModel = _(me.inverseModel, me.model), ie.disable(ie.CULL_FACE), this.texture.bind(0);
+ var De = new Array(16);
+ v(De, me.view, me.model), v(De, me.projection, De), _(De, De);
+ for (var Pe = 0; Pe < 3; ++Pe) me.eyePosition[Pe] = De[12 + Pe] / De[15];
+ for (var ce = De[15], Pe = 0; Pe < 3; ++Pe) ce += this.lightPosition[Pe] * De[4 * Pe + 3];
+ for (var Pe = 0; Pe < 3; ++Pe) {
+ for (var je = De[12 + Pe], lt = 0; lt < 3; ++lt) je += De[4 * lt + Pe] * this.lightPosition[lt];
+ me.lightPosition[Pe] = je / ce;
+ }
+ if (this.triangleCount > 0) {
+ var pt = this.triShader;
+ pt.bind(), pt.uniforms = me, this.triangleVAO.bind(), ie.drawArrays(ie.TRIANGLES, 0, this.triangleCount * 3), this.triangleVAO.unbind();
+ }
+ if (this.edgeCount > 0 && this.lineWidth > 0) {
+ var pt = this.lineShader;
+ pt.bind(), pt.uniforms = me, this.edgeVAO.bind(), ie.lineWidth(this.lineWidth * this.pixelRatio), ie.drawArrays(ie.LINES, 0, this.edgeCount * 2), this.edgeVAO.unbind();
+ }
+ if (this.pointCount > 0) {
+ var pt = this.pointShader;
+ pt.bind(), pt.uniforms = me, this.pointVAO.bind(), ie.drawArrays(ie.POINTS, 0, this.pointCount), this.pointVAO.unbind();
+ }
+ if (this.contourEnable && this.contourCount > 0 && this.contourLineWidth > 0) {
+ var pt = this.contourShader;
+ pt.bind(), pt.uniforms = me, this.contourVAO.bind(), ie.drawArrays(ie.LINES, 0, this.contourCount), this.contourVAO.unbind();
+ }
+ }, U.drawPick = function(ge) {
+ ge = ge || {};
+ for (var ie = this.gl, Se = ge.model || z, Ee = ge.view || z, Ae = ge.projection || z, Be = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]], Pe = 0; Pe < 3; ++Pe) Be[0][Pe] = Math.max(Be[0][Pe], this.clipBounds[0][Pe]), Be[1][Pe] = Math.min(Be[1][Pe], this.clipBounds[1][Pe]);
+ this._model = [].slice.call(Se), this._view = [].slice.call(Ee), this._projection = [].slice.call(Ae), this._resolution = [ie.drawingBufferWidth, ie.drawingBufferHeight];
+ var me = { model: Se, view: Ee, projection: Ae, clipBounds: Be, pickId: this.pickId / 255 }, De = this.pickShader;
+ if (De.bind(), De.uniforms = me, this.triangleCount > 0 && (this.triangleVAO.bind(), ie.drawArrays(ie.TRIANGLES, 0, this.triangleCount * 3), this.triangleVAO.unbind()), this.edgeCount > 0 && (this.edgeVAO.bind(), ie.lineWidth(this.lineWidth * this.pixelRatio), ie.drawArrays(ie.LINES, 0, this.edgeCount * 2), this.edgeVAO.unbind()), this.pointCount > 0) {
+ var De = this.pointPickShader;
+ De.bind(), De.uniforms = me, this.pointVAO.bind(), ie.drawArrays(ie.POINTS, 0, this.pointCount), this.pointVAO.unbind();
+ }
+ }, U.pick = function(ge) {
+ if (!ge || ge.id !== this.pickId) return null;
+ for (var ie = ge.value[0] + 256 * ge.value[1] + 65536 * ge.value[2], Se = this.cells[ie], Ee = this.positions, Ae = new Array(Se.length), Be = 0; Be < Se.length; ++Be) Ae[Be] = Ee[Se[Be]];
+ var Pe = ge.coord[0], me = ge.coord[1];
+ if (!this.pickVertex) {
+ var De = this.positions[Se[0]], ce = this.positions[Se[1]], je = this.positions[Se[2]], lt = [(De[0] + ce[0] + je[0]) / 3, (De[1] + ce[1] + je[1]) / 3, (De[2] + ce[2] + je[2]) / 3];
+ return { _cellCenter: true, position: [Pe, me], index: ie, cell: Se, cellId: ie, intensity: this.intensity[ie], dataCoordinate: lt };
+ }
+ var pt = L(Ae, [Pe * this.pixelRatio, this._resolution[1] - me * this.pixelRatio], this._model, this._view, this._projection, this._resolution);
+ if (!pt) return null;
+ for (var Vt = pt[2], ot = 0, Be = 0; Be < Se.length; ++Be) ot += Vt[Be] * this.intensity[Se[Be]];
+ return { position: pt[1], index: Se[pt[0]], cell: Se, cellId: ie, intensity: ot, dataCoordinate: this.positions[Se[pt[0]]] };
+ }, U.dispose = function() {
+ this.texture.dispose(), this.triShader.dispose(), this.lineShader.dispose(), this.pointShader.dispose(), this.pickShader.dispose(), this.pointPickShader.dispose(), this.triangleVAO.dispose(), this.trianglePositions.dispose(), this.triangleColors.dispose(), this.triangleUVs.dispose(), this.triangleNormals.dispose(), this.triangleIds.dispose(), this.edgeVAO.dispose(), this.edgePositions.dispose(), this.edgeColors.dispose(), this.edgeUVs.dispose(), this.edgeIds.dispose(), this.pointVAO.dispose(), this.pointPositions.dispose(), this.pointColors.dispose(), this.pointUVs.dispose(), this.pointSizes.dispose(), this.pointIds.dispose(), this.contourVAO.dispose(), this.contourPositions.dispose(), this.contourShader.dispose();
+ };
+ function N(ge) {
+ var ie = u(ge, x.vertex, x.fragment);
+ return ie.attributes.position.location = 0, ie.attributes.color.location = 2, ie.attributes.uv.location = 3, ie.attributes.normal.location = 4, ie;
+ }
+ function H(ge) {
+ var ie = u(ge, C.vertex, C.fragment);
+ return ie.attributes.position.location = 0, ie.attributes.color.location = 2, ie.attributes.uv.location = 3, ie;
+ }
+ function re(ge) {
+ var ie = u(ge, M.vertex, M.fragment);
+ return ie.attributes.position.location = 0, ie.attributes.color.location = 2, ie.attributes.uv.location = 3, ie.attributes.pointSize.location = 4, ie;
+ }
+ function oe(ge) {
+ var ie = u(ge, g.vertex, g.fragment);
+ return ie.attributes.position.location = 0, ie.attributes.id.location = 1, ie;
+ }
+ function _e(ge) {
+ var ie = u(ge, P.vertex, P.fragment);
+ return ie.attributes.position.location = 0, ie.attributes.id.location = 1, ie.attributes.pointSize.location = 4, ie;
+ }
+ function Ce(ge) {
+ var ie = u(ge, A.vertex, A.fragment);
+ return ie.attributes.position.location = 0, ie;
+ }
+ function Le(ge, ie) {
+ arguments.length === 1 && (ie = ge, ge = ie.gl);
+ var Se = ge.getExtension("OES_standard_derivatives") || ge.getExtension("MOZ_OES_standard_derivatives") || ge.getExtension("WEBKIT_OES_standard_derivatives");
+ if (!Se) throw new Error("derivatives not supported");
+ var Ee = N(ge), Ae = H(ge), Be = re(ge), Pe = oe(ge), me = _e(ge), De = Ce(ge), ce = h(ge, b(new Uint8Array([255, 255, 255, 255]), [1, 1, 4]));
+ ce.generateMipmap(), ce.minFilter = ge.LINEAR_MIPMAP_LINEAR, ce.magFilter = ge.LINEAR;
+ var je = c(ge), lt = c(ge), pt = c(ge), Vt = c(ge), ot = c(ge), ut = f(ge, [{ buffer: je, type: ge.FLOAT, size: 3 }, { buffer: ot, type: ge.UNSIGNED_BYTE, size: 4, normalized: true }, { buffer: lt, type: ge.FLOAT, size: 4 }, { buffer: pt, type: ge.FLOAT, size: 2 }, { buffer: Vt, type: ge.FLOAT, size: 3 }]), Wt = c(ge), Nt = c(ge), $t = c(ge), sr = c(ge), Tr = f(ge, [{ buffer: Wt, type: ge.FLOAT, size: 3 }, { buffer: sr, type: ge.UNSIGNED_BYTE, size: 4, normalized: true }, { buffer: Nt, type: ge.FLOAT, size: 4 }, { buffer: $t, type: ge.FLOAT, size: 2 }]), fr = c(ge), $e = c(ge), St = c(ge), Qt = c(ge), Gt = c(ge), _t = f(ge, [{ buffer: fr, type: ge.FLOAT, size: 3 }, { buffer: Gt, type: ge.UNSIGNED_BYTE, size: 4, normalized: true }, { buffer: $e, type: ge.FLOAT, size: 4 }, { buffer: St, type: ge.FLOAT, size: 2 }, { buffer: Qt, type: ge.FLOAT, size: 1 }]), It = c(ge), mt = f(ge, [{ buffer: It, type: ge.FLOAT, size: 3 }]), er = new O(ge, ce, Ee, Ae, Be, Pe, me, De, je, ot, lt, pt, Vt, ut, Wt, sr, Nt, $t, Tr, fr, Gt, $e, St, Qt, _t, It, mt);
+ return er.update(ie), er;
+ }
+ i.exports = Le;
+ }, 7261: function(i, a, o) {
+ i.exports = E;
+ var s = o(9215), l = o(7608), u = o(6079), c = o(5911), f = o(3536), h = o(244);
+ function d(T, L, x) {
+ return Math.sqrt(Math.pow(T, 2) + Math.pow(L, 2) + Math.pow(x, 2));
+ }
+ function v(T) {
+ return Math.min(1, Math.max(-1, T));
+ }
+ function _(T) {
+ var L = Math.abs(T[0]), x = Math.abs(T[1]), C = Math.abs(T[2]), M = [0, 0, 0];
+ L > Math.max(x, C) ? M[2] = 1 : x > Math.max(L, C) ? M[0] = 1 : M[1] = 1;
+ for (var g = 0, P = 0, A = 0; A < 3; ++A) g += T[A] * T[A], P += M[A] * T[A];
+ for (var A = 0; A < 3; ++A) M[A] -= P / g * T[A];
+ return f(M, M), M;
+ }
+ function b(T, L, x, C, M, g, P, A) {
+ this.center = s(x), this.up = s(C), this.right = s(M), this.radius = s([g]), this.angle = s([P, A]), this.angle.bounds = [[-1 / 0, -Math.PI / 2], [1 / 0, Math.PI / 2]], this.setDistanceLimits(T, L), this.computedCenter = this.center.curve(0), this.computedUp = this.up.curve(0), this.computedRight = this.right.curve(0), this.computedRadius = this.radius.curve(0), this.computedAngle = this.angle.curve(0), this.computedToward = [0, 0, 0], this.computedEye = [0, 0, 0], this.computedMatrix = new Array(16);
+ for (var z = 0; z < 16; ++z) this.computedMatrix[z] = 0.5;
+ this.recalcMatrix(0);
+ }
+ var p = b.prototype;
+ p.setDistanceLimits = function(T, L) {
+ T > 0 ? T = Math.log(T) : T = -1 / 0, L > 0 ? L = Math.log(L) : L = 1 / 0, L = Math.max(L, T), this.radius.bounds[0][0] = T, this.radius.bounds[1][0] = L;
+ }, p.getDistanceLimits = function(T) {
+ var L = this.radius.bounds[0];
+ return T ? (T[0] = Math.exp(L[0][0]), T[1] = Math.exp(L[1][0]), T) : [Math.exp(L[0][0]), Math.exp(L[1][0])];
+ }, p.recalcMatrix = function(T) {
+ this.center.curve(T), this.up.curve(T), this.right.curve(T), this.radius.curve(T), this.angle.curve(T);
+ for (var L = this.computedUp, x = this.computedRight, C = 0, M = 0, g = 0; g < 3; ++g) M += L[g] * x[g], C += L[g] * L[g];
+ for (var P = Math.sqrt(C), A = 0, g = 0; g < 3; ++g) x[g] -= L[g] * M / C, A += x[g] * x[g], L[g] /= P;
+ for (var z = Math.sqrt(A), g = 0; g < 3; ++g) x[g] /= z;
+ var O = this.computedToward;
+ c(O, L, x), f(O, O);
+ for (var U = Math.exp(this.computedRadius[0]), G = this.computedAngle[0], Z = this.computedAngle[1], j = Math.cos(G), N = Math.sin(G), H = Math.cos(Z), re = Math.sin(Z), oe = this.computedCenter, _e = j * H, Ce = N * H, Le = re, ge = -j * re, ie = -N * re, Se = H, Ee = this.computedEye, Ae = this.computedMatrix, g = 0; g < 3; ++g) {
+ var Be = _e * x[g] + Ce * O[g] + Le * L[g];
+ Ae[4 * g + 1] = ge * x[g] + ie * O[g] + Se * L[g], Ae[4 * g + 2] = Be, Ae[4 * g + 3] = 0;
+ }
+ var Pe = Ae[1], me = Ae[5], De = Ae[9], ce = Ae[2], je = Ae[6], lt = Ae[10], pt = me * lt - De * je, Vt = De * ce - Pe * lt, ot = Pe * je - me * ce, ut = d(pt, Vt, ot);
+ pt /= ut, Vt /= ut, ot /= ut, Ae[0] = pt, Ae[4] = Vt, Ae[8] = ot;
+ for (var g = 0; g < 3; ++g) Ee[g] = oe[g] + Ae[2 + 4 * g] * U;
+ for (var g = 0; g < 3; ++g) {
+ for (var A = 0, Wt = 0; Wt < 3; ++Wt) A += Ae[g + 4 * Wt] * Ee[Wt];
+ Ae[12 + g] = -A;
+ }
+ Ae[15] = 1;
+ }, p.getMatrix = function(T, L) {
+ this.recalcMatrix(T);
+ var x = this.computedMatrix;
+ if (L) {
+ for (var C = 0; C < 16; ++C) L[C] = x[C];
+ return L;
+ }
+ return x;
+ };
+ var k = [0, 0, 0];
+ p.rotate = function(T, L, x, C) {
+ if (this.angle.move(T, L, x), C) {
+ this.recalcMatrix(T);
+ var M = this.computedMatrix;
+ k[0] = M[2], k[1] = M[6], k[2] = M[10];
+ for (var g = this.computedUp, P = this.computedRight, A = this.computedToward, z = 0; z < 3; ++z) M[4 * z] = g[z], M[4 * z + 1] = P[z], M[4 * z + 2] = A[z];
+ u(M, M, C, k);
+ for (var z = 0; z < 3; ++z) g[z] = M[4 * z], P[z] = M[4 * z + 1];
+ this.up.set(T, g[0], g[1], g[2]), this.right.set(T, P[0], P[1], P[2]);
+ }
+ }, p.pan = function(T, L, x, C) {
+ L = L || 0, x = x || 0, C = C || 0, this.recalcMatrix(T);
+ var M = this.computedMatrix;
+ Math.exp(this.computedRadius[0]);
+ var P = M[1], A = M[5], z = M[9], O = d(P, A, z);
+ P /= O, A /= O, z /= O;
+ var U = M[0], G = M[4], Z = M[8], j = U * P + G * A + Z * z;
+ U -= P * j, G -= A * j, Z -= z * j;
+ var N = d(U, G, Z);
+ U /= N, G /= N, Z /= N;
+ var H = U * L + P * x, re = G * L + A * x, oe = Z * L + z * x;
+ this.center.move(T, H, re, oe);
+ var _e = Math.exp(this.computedRadius[0]);
+ _e = Math.max(1e-4, _e + C), this.radius.set(T, Math.log(_e));
+ }, p.translate = function(T, L, x, C) {
+ this.center.move(T, L || 0, x || 0, C || 0);
+ }, p.setMatrix = function(T, L, x, C) {
+ var M = 1;
+ typeof x == "number" && (M = x | 0), (M < 0 || M > 3) && (M = 1);
+ var g = (M + 2) % 3;
+ L || (this.recalcMatrix(T), L = this.computedMatrix);
+ var A = L[M], z = L[M + 4], O = L[M + 8];
+ if (C) {
+ var G = Math.abs(A), Z = Math.abs(z), j = Math.abs(O), N = Math.max(G, Z, j);
+ G === N ? (A = A < 0 ? -1 : 1, z = O = 0) : j === N ? (O = O < 0 ? -1 : 1, A = z = 0) : (z = z < 0 ? -1 : 1, A = O = 0);
+ } else {
+ var U = d(A, z, O);
+ A /= U, z /= U, O /= U;
+ }
+ var H = L[g], re = L[g + 4], oe = L[g + 8], _e = H * A + re * z + oe * O;
+ H -= A * _e, re -= z * _e, oe -= O * _e;
+ var Ce = d(H, re, oe);
+ H /= Ce, re /= Ce, oe /= Ce;
+ var Le = z * oe - O * re, ge = O * H - A * oe, ie = A * re - z * H, Se = d(Le, ge, ie);
+ Le /= Se, ge /= Se, ie /= Se, this.center.jump(T, fr, $e, St), this.radius.idle(T), this.up.jump(T, A, z, O), this.right.jump(T, H, re, oe);
+ var Ee, Ae;
+ if (M === 2) {
+ var Be = L[1], Pe = L[5], me = L[9], De = Be * H + Pe * re + me * oe, ce = Be * Le + Pe * ge + me * ie;
+ Vt < 0 ? Ee = -Math.PI / 2 : Ee = Math.PI / 2, Ae = Math.atan2(ce, De);
+ } else {
+ var je = L[2], lt = L[6], pt = L[10], Vt = je * A + lt * z + pt * O, ot = je * H + lt * re + pt * oe, ut = je * Le + lt * ge + pt * ie;
+ Ee = Math.asin(v(Vt)), Ae = Math.atan2(ut, ot);
+ }
+ this.angle.jump(T, Ae, Ee), this.recalcMatrix(T);
+ var Wt = L[2], Nt = L[6], $t = L[10], sr = this.computedMatrix;
+ l(sr, L);
+ var Tr = sr[15], fr = sr[12] / Tr, $e = sr[13] / Tr, St = sr[14] / Tr, Qt = Math.exp(this.computedRadius[0]);
+ this.center.jump(T, fr - Wt * Qt, $e - Nt * Qt, St - $t * Qt);
+ }, p.lastT = function() {
+ return Math.max(this.center.lastT(), this.up.lastT(), this.right.lastT(), this.radius.lastT(), this.angle.lastT());
+ }, p.idle = function(T) {
+ this.center.idle(T), this.up.idle(T), this.right.idle(T), this.radius.idle(T), this.angle.idle(T);
+ }, p.flush = function(T) {
+ this.center.flush(T), this.up.flush(T), this.right.flush(T), this.radius.flush(T), this.angle.flush(T);
+ }, p.setDistance = function(T, L) {
+ L > 0 && this.radius.set(T, Math.log(L));
+ }, p.lookAt = function(T, L, x, C) {
+ this.recalcMatrix(T), L = L || this.computedEye, x = x || this.computedCenter, C = C || this.computedUp;
+ var M = C[0], g = C[1], P = C[2], A = d(M, g, P);
+ if (!(A < 1e-6)) {
+ M /= A, g /= A, P /= A;
+ var z = L[0] - x[0], O = L[1] - x[1], U = L[2] - x[2], G = d(z, O, U);
+ if (!(G < 1e-6)) {
+ z /= G, O /= G, U /= G;
+ var Z = this.computedRight, j = Z[0], N = Z[1], H = Z[2], re = M * j + g * N + P * H;
+ j -= re * M, N -= re * g, H -= re * P;
+ var oe = d(j, N, H);
+ if (!(oe < 0.01 && (j = g * U - P * O, N = P * z - M * U, H = M * O - g * z, oe = d(j, N, H), oe < 1e-6))) {
+ j /= oe, N /= oe, H /= oe, this.up.set(T, M, g, P), this.right.set(T, j, N, H), this.center.set(T, x[0], x[1], x[2]), this.radius.set(T, Math.log(G));
+ var _e = g * H - P * N, Ce = P * j - M * H, Le = M * N - g * j, ge = d(_e, Ce, Le);
+ _e /= ge, Ce /= ge, Le /= ge;
+ var ie = M * z + g * O + P * U, Se = j * z + N * O + H * U, Ee = _e * z + Ce * O + Le * U, Ae = Math.asin(v(ie)), Be = Math.atan2(Ee, Se), Pe = this.angle._state, me = Pe[Pe.length - 1], De = Pe[Pe.length - 2];
+ me = me % (2 * Math.PI);
+ var ce = Math.abs(me + 2 * Math.PI - Be), je = Math.abs(me - Be), lt = Math.abs(me - 2 * Math.PI - Be);
+ ce < je && (me += 2 * Math.PI), lt < je && (me -= 2 * Math.PI), this.angle.jump(this.angle.lastT(), me, De), this.angle.set(T, Be, Ae);
+ }
+ }
+ }
+ };
+ function E(T) {
+ T = T || {};
+ var L = T.center || [0, 0, 0], x = T.up || [0, 1, 0], C = T.right || _(x), M = T.radius || 1, g = T.theta || 0, P = T.phi || 0;
+ if (L = [].slice.call(L, 0, 3), x = [].slice.call(x, 0, 3), f(x, x), C = [].slice.call(C, 0, 3), f(C, C), "eye" in T) {
+ var A = T.eye, z = [A[0] - L[0], A[1] - L[1], A[2] - L[2]];
+ c(C, z, x), d(C[0], C[1], C[2]) < 1e-6 ? C = _(x) : f(C, C), M = d(z[0], z[1], z[2]);
+ var O = h(x, z) / M, U = h(C, z) / M;
+ P = Math.acos(O), g = Math.acos(U);
+ }
+ return M = Math.log(M), new b(T.zoomMin, T.zoomMax, L, x, C, M, g, P);
+ }
+ }, 7319: function(i, a, o) {
+ var s = o(3236), l = o(9405), u = s([`precision highp float;
+#define GLSLIFY 1
+
+attribute vec3 position, nextPosition;
+attribute float arcLength, lineWidth;
+attribute vec4 color;
+
+uniform vec2 screenShape;
+uniform float pixelRatio;
+uniform mat4 model, view, projection;
+
+varying vec4 fragColor;
+varying vec3 worldPosition;
+varying float pixelArcLength;
+
+vec4 project(vec3 p) {
+ return projection * (view * (model * vec4(p, 1.0)));
+}
+
+void main() {
+ vec4 startPoint = project(position);
+ vec4 endPoint = project(nextPosition);
+
+ vec2 A = startPoint.xy / startPoint.w;
+ vec2 B = endPoint.xy / endPoint.w;
+
+ float clipAngle = atan(
+ (B.y - A.y) * screenShape.y,
+ (B.x - A.x) * screenShape.x
+ );
+
+ vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(
+ sin(clipAngle),
+ -cos(clipAngle)
+ ) / screenShape;
+
+ gl_Position = vec4(startPoint.xy + startPoint.w * offset, startPoint.zw);
+
+ worldPosition = position;
+ pixelArcLength = arcLength;
+ fragColor = color;
+}
+`]), c = s([`precision highp float;
+#define GLSLIFY 1
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform vec3 clipBounds[2];
+uniform sampler2D dashTexture;
+uniform float dashScale;
+uniform float opacity;
+
+varying vec3 worldPosition;
+varying float pixelArcLength;
+varying vec4 fragColor;
+
+void main() {
+ if (
+ outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||
+ fragColor.a * opacity == 0.
+ ) discard;
+
+ float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;
+ if(dashWeight < 0.5) {
+ discard;
+ }
+ gl_FragColor = fragColor * opacity;
+}
+`]), f = s([`precision highp float;
+#define GLSLIFY 1
+
+#define FLOAT_MAX 1.70141184e38
+#define FLOAT_MIN 1.17549435e-38
+
+// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl
+vec4 packFloat(float v) {
+ float av = abs(v);
+
+ //Handle special cases
+ if(av < FLOAT_MIN) {
+ return vec4(0.0, 0.0, 0.0, 0.0);
+ } else if(v > FLOAT_MAX) {
+ return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;
+ } else if(v < -FLOAT_MAX) {
+ return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;
+ }
+
+ vec4 c = vec4(0,0,0,0);
+
+ //Compute exponent and mantissa
+ float e = floor(log2(av));
+ float m = av * pow(2.0, -e) - 1.0;
+
+ //Unpack mantissa
+ c[1] = floor(128.0 * m);
+ m -= c[1] / 128.0;
+ c[2] = floor(32768.0 * m);
+ m -= c[2] / 32768.0;
+ c[3] = floor(8388608.0 * m);
+
+ //Unpack exponent
+ float ebias = e + 127.0;
+ c[0] = floor(ebias / 2.0);
+ ebias -= c[0] * 2.0;
+ c[1] += floor(ebias) * 128.0;
+
+ //Unpack sign bit
+ c[0] += 128.0 * step(0.0, -v);
+
+ //Scale back to range
+ return c / 255.0;
+}
+
+bool outOfRange(float a, float b, float p) {
+ return ((p > max(a, b)) ||
+ (p < min(a, b)));
+}
+
+bool outOfRange(vec2 a, vec2 b, vec2 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y));
+}
+
+bool outOfRange(vec3 a, vec3 b, vec3 p) {
+ return (outOfRange(a.x, b.x, p.x) ||
+ outOfRange(a.y, b.y, p.y) ||
+ outOfRange(a.z, b.z, p.z));
+}
+
+bool outOfRange(vec4 a, vec4 b, vec4 p) {
+ return outOfRange(a.xyz, b.xyz, p.xyz);
+}
+
+uniform float pickId;
+uniform vec3 clipBounds[2];
+
+varying vec3 worldPosition;
+varying float pixelArcLength;
+varying vec4 fragColor;
+
+void main() {
+ if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;
+
+ gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);
+}`]), h = [{ name: "position", type: "vec3" }, { name: "nextPosition", type: "vec3" }, { name: "arcLength", type: "float" }, { name: "lineWidth", type: "float" }, { name: "color", type: "vec4" }];
+ a.createShader = function(d) {
+ return l(d, u, c, null, h);
+ }, a.createPickShader = function(d) {
+ return l(d, u, f, null, h);
+ };
+ }, 7352: function(i, a, o) {
+ var s = o(5721), l = o(4750), u = o(2690);
+ i.exports = c;
+ function c(f) {
+ var h = f.length;
+ if (h === 0) return [];
+ if (h === 1) return [[0]];
+ var d = f[0].length;
+ return d === 0 ? [] : d === 1 ? s(f) : d === 2 ? l(f) : u(f, d);
+ }
+ }, 7399: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = s[0], u = s[1], c = s[2], f = s[3], h = l + l, d = u + u, v = c + c, _ = l * h, b = u * h, p = u * d, k = c * h, E = c * d, T = c * v, L = f * h, x = f * d, C = f * v;
+ return o[0] = 1 - p - T, o[1] = b + C, o[2] = k - x, o[3] = 0, o[4] = b - C, o[5] = 1 - _ - T, o[6] = E + L, o[7] = 0, o[8] = k + x, o[9] = E - L, o[10] = 1 - _ - p, o[11] = 0, o[12] = 0, o[13] = 0, o[14] = 0, o[15] = 1, o;
+ }
+ }, 7417: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = Math.max(s[0], l[0]), o[1] = Math.max(s[1], l[1]), o[2] = Math.max(s[2], l[2]), o;
+ }
+ }, 7442: function(i, a, o) {
+ var s = o(6658), l = o(7182), u = o(2652), c = o(9921), f = o(8648), h = b(), d = b(), v = b();
+ i.exports = _;
+ function _(E, T, L, x) {
+ if (c(T) === 0 || c(L) === 0) return false;
+ var C = u(T, h.translate, h.scale, h.skew, h.perspective, h.quaternion), M = u(L, d.translate, d.scale, d.skew, d.perspective, d.quaternion);
+ return !C || !M ? false : (s(v.translate, h.translate, d.translate, x), s(v.skew, h.skew, d.skew, x), s(v.scale, h.scale, d.scale, x), s(v.perspective, h.perspective, d.perspective, x), f(v.quaternion, h.quaternion, d.quaternion, x), l(E, v.translate, v.scale, v.skew, v.perspective, v.quaternion), true);
+ }
+ function b() {
+ return { translate: p(), scale: p(1), skew: p(), perspective: k(), quaternion: k() };
+ }
+ function p(E) {
+ return [E || 0, E || 0, E || 0];
+ }
+ function k() {
+ return [0, 0, 0, 1];
+ }
+ }, 7507: function(i, a) {
+ a.byteLength = d, a.toByteArray = _, a.fromByteArray = k;
+ for (var o = [], s = [], l = typeof Uint8Array != "undefined" ? Uint8Array : Array, u = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", c = 0, f = u.length; c < f; ++c) o[c] = u[c], s[u.charCodeAt(c)] = c;
+ s[45] = 62, s[95] = 63;
+ function h(E) {
+ var T = E.length;
+ if (T % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
+ var L = E.indexOf("=");
+ L === -1 && (L = T);
+ var x = L === T ? 0 : 4 - L % 4;
+ return [L, x];
+ }
+ function d(E) {
+ var T = h(E), L = T[0], x = T[1];
+ return (L + x) * 3 / 4 - x;
+ }
+ function v(E, T, L) {
+ return (T + L) * 3 / 4 - L;
+ }
+ function _(E) {
+ var T, L = h(E), x = L[0], C = L[1], M = new l(v(E, x, C)), g = 0, P = C > 0 ? x - 4 : x, A;
+ for (A = 0; A < P; A += 4) T = s[E.charCodeAt(A)] << 18 | s[E.charCodeAt(A + 1)] << 12 | s[E.charCodeAt(A + 2)] << 6 | s[E.charCodeAt(A + 3)], M[g++] = T >> 16 & 255, M[g++] = T >> 8 & 255, M[g++] = T & 255;
+ return C === 2 && (T = s[E.charCodeAt(A)] << 2 | s[E.charCodeAt(A + 1)] >> 4, M[g++] = T & 255), C === 1 && (T = s[E.charCodeAt(A)] << 10 | s[E.charCodeAt(A + 1)] << 4 | s[E.charCodeAt(A + 2)] >> 2, M[g++] = T >> 8 & 255, M[g++] = T & 255), M;
+ }
+ function b(E) {
+ return o[E >> 18 & 63] + o[E >> 12 & 63] + o[E >> 6 & 63] + o[E & 63];
+ }
+ function p(E, T, L) {
+ for (var x, C = [], M = T; M < L; M += 3) x = (E[M] << 16 & 16711680) + (E[M + 1] << 8 & 65280) + (E[M + 2] & 255), C.push(b(x));
+ return C.join("");
+ }
+ function k(E) {
+ for (var T, L = E.length, x = L % 3, C = [], M = 16383, g = 0, P = L - x; g < P; g += M) C.push(p(E, g, g + M > P ? P : g + M));
+ return x === 1 ? (T = E[L - 1], C.push(o[T >> 2] + o[T << 4 & 63] + "==")) : x === 2 && (T = (E[L - 2] << 8) + E[L - 1], C.push(o[T >> 10] + o[T >> 4 & 63] + o[T << 2 & 63] + "=")), C.join("");
+ }
+ }, 7518: function(i, a, o) {
+ var s = o(1433);
+ function l(f, h, d, v, _, b) {
+ this.location = f, this.dimension = h, this.a = d, this.b = v, this.c = _, this.d = b;
+ }
+ l.prototype.bind = function(f) {
+ switch (this.dimension) {
+ case 1:
+ f.vertexAttrib1f(this.location, this.a);
+ break;
+ case 2:
+ f.vertexAttrib2f(this.location, this.a, this.b);
+ break;
+ case 3:
+ f.vertexAttrib3f(this.location, this.a, this.b, this.c);
+ break;
+ case 4:
+ f.vertexAttrib4f(this.location, this.a, this.b, this.c, this.d);
+ break;
+ }
+ };
+ function u(f, h, d) {
+ this.gl = f, this._ext = h, this.handle = d, this._attribs = [], this._useElements = false, this._elementsType = f.UNSIGNED_SHORT;
+ }
+ u.prototype.bind = function() {
+ this._ext.bindVertexArrayOES(this.handle);
+ for (var f = 0; f < this._attribs.length; ++f) this._attribs[f].bind(this.gl);
+ }, u.prototype.unbind = function() {
+ this._ext.bindVertexArrayOES(null);
+ }, u.prototype.dispose = function() {
+ this._ext.deleteVertexArrayOES(this.handle);
+ }, u.prototype.update = function(f, h, d) {
+ if (this.bind(), s(this.gl, h, f), this.unbind(), this._attribs.length = 0, f) for (var v = 0; v < f.length; ++v) {
+ var _ = f[v];
+ typeof _ == "number" ? this._attribs.push(new l(v, 1, _)) : Array.isArray(_) && this._attribs.push(new l(v, _.length, _[0], _[1], _[2], _[3]));
+ }
+ this._useElements = !!h, this._elementsType = d || this.gl.UNSIGNED_SHORT;
+ }, u.prototype.draw = function(f, h, d) {
+ d = d || 0;
+ var v = this.gl;
+ this._useElements ? v.drawElements(f, h, this._elementsType, d) : v.drawArrays(f, d, h);
+ };
+ function c(f, h) {
+ return new u(f, h, h.createVertexArrayOES());
+ }
+ i.exports = c;
+ }, 7520: function(i, a, o) {
+ var s = o(9507);
+ function l() {
+ var u = false;
+ try {
+ var c = Object.defineProperty({}, "passive", { get: function() {
+ u = true;
+ } });
+ window.addEventListener("test", null, c), window.removeEventListener("test", null, c);
+ } catch (f) {
+ u = false;
+ }
+ return u;
+ }
+ i.exports = s && l();
+ }, 7536: function(i) {
+ i.exports = a;
+ function a() {
+ var o = new Float32Array(4);
+ return o[0] = 0, o[1] = 0, o[2] = 0, o[3] = 0, o;
+ }
+ }, 7608: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = s[0], u = s[1], c = s[2], f = s[3], h = s[4], d = s[5], v = s[6], _ = s[7], b = s[8], p = s[9], k = s[10], E = s[11], T = s[12], L = s[13], x = s[14], C = s[15], M = l * d - u * h, g = l * v - c * h, P = l * _ - f * h, A = u * v - c * d, z = u * _ - f * d, O = c * _ - f * v, U = b * L - p * T, G = b * x - k * T, Z = b * C - E * T, j = p * x - k * L, N = p * C - E * L, H = k * C - E * x, re = M * H - g * N + P * j + A * Z - z * G + O * U;
+ return re ? (re = 1 / re, o[0] = (d * H - v * N + _ * j) * re, o[1] = (c * N - u * H - f * j) * re, o[2] = (L * O - x * z + C * A) * re, o[3] = (k * z - p * O - E * A) * re, o[4] = (v * Z - h * H - _ * G) * re, o[5] = (l * H - c * Z + f * G) * re, o[6] = (x * P - T * O - C * g) * re, o[7] = (b * O - k * P + E * g) * re, o[8] = (h * N - d * Z + _ * U) * re, o[9] = (u * Z - l * N - f * U) * re, o[10] = (T * z - L * P + C * M) * re, o[11] = (p * P - b * z - E * M) * re, o[12] = (d * G - h * j - v * U) * re, o[13] = (l * j - u * G + c * U) * re, o[14] = (L * g - T * A - x * M) * re, o[15] = (b * A - p * g + k * M) * re, o) : null;
+ }
+ }, 7626: function(i, a, o) {
+ var s = o(2642), l = o(9346);
+ i.exports = d;
+ function u(v, _) {
+ for (var b = [0, 0, 0, 0], p = 0; p < 4; ++p) for (var k = 0; k < 4; ++k) b[k] += v[4 * p + k] * _[p];
+ return b;
+ }
+ function c(v, _, b, p, k) {
+ for (var E = u(p, u(b, u(_, [v[0], v[1], v[2], 1]))), T = 0; T < 3; ++T) E[T] /= E[3];
+ return [0.5 * k[0] * (1 + E[0]), 0.5 * k[1] * (1 - E[1])];
+ }
+ function f(v, _) {
+ if (v.length === 2) {
+ for (var b = 0, p = 0, k = 0; k < 2; ++k) b += Math.pow(_[k] - v[0][k], 2), p += Math.pow(_[k] - v[1][k], 2);
+ return b = Math.sqrt(b), p = Math.sqrt(p), b + p < 1e-6 ? [1, 0] : [p / (b + p), b / (p + b)];
+ } else if (v.length === 3) {
+ var E = [0, 0];
+ return l(v[0], v[1], v[2], _, E), s(v, E);
+ }
+ return [];
+ }
+ function h(v, _) {
+ for (var b = [0, 0, 0], p = 0; p < v.length; ++p) for (var k = v[p], E = _[p], T = 0; T < 3; ++T) b[T] += E * k[T];
+ return b;
+ }
+ function d(v, _, b, p, k, E) {
+ if (v.length === 1) return [0, v[0].slice()];
+ for (var T = new Array(v.length), L = 0; L < v.length; ++L) T[L] = c(v[L], b, p, k, E);
+ for (var x = 0, C = 1 / 0, L = 0; L < T.length; ++L) {
+ for (var M = 0, g = 0; g < 2; ++g) M += Math.pow(T[L][g] - _[g], 2);
+ M < C && (C = M, x = L);
+ }
+ for (var P = f(T, _), A = 0, L = 0; L < 3; ++L) {
+ if (P[L] < -1e-3 || P[L] > 1.0001) return null;
+ A += P[L];
+ }
+ return Math.abs(A - 1) > 1e-3 ? null : [x, h(v, P), P];
+ }
+ }, 7636: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ s = s || 1;
+ var l = Math.random() * 2 * Math.PI, u = Math.random() * 2 - 1, c = Math.sqrt(1 - u * u) * s;
+ return o[0] = Math.cos(l) * c, o[1] = Math.sin(l) * c, o[2] = u * s, o;
+ }
+ }, 7640: function(i, a, o) {
+ var s = o(1888);
+ function l(_) {
+ switch (_) {
+ case "uint32":
+ return [s.mallocUint32, s.freeUint32];
+ default:
+ return null;
+ }
+ }
+ var u = { "uint32,1,0": function(_, b) {
+ return function(k, E, T, L, x, C, M, g, P, A, z) {
+ var O, U, G, Z = k * x + L, j, N = _(g), H, re, oe, _e;
+ for (O = k + 1; O <= E; ++O) {
+ for (U = O, Z += x, G = Z, H = 0, re = Z, j = 0; j < g; ++j) N[H++] = T[re], re += P;
+ e: for (; U-- > k; ) {
+ H = 0, re = G - x;
+ t: for (j = 0; j < g; ++j) {
+ if (oe = T[re], _e = N[H], oe < _e) break e;
+ if (oe > _e) break t;
+ re += A, H += z;
+ }
+ for (H = G, re = G - x, j = 0; j < g; ++j) T[H] = T[re], H += P, re += P;
+ G -= x;
+ }
+ for (H = G, re = 0, j = 0; j < g; ++j) T[H] = N[re++], H += P;
+ }
+ b(N);
+ };
+ } };
+ function c(_, b) {
+ var p = l(b), k = [b, _].join(","), E = u[k];
+ return p ? E(p[0], p[1]) : E();
+ }
+ var f = { "uint32,1,0": function(_, b, p) {
+ return function k(E, T, L, x, C, M, g, P, A, z, O) {
+ var U = (T - E + 1) / 6 | 0, G = E + U, Z = T - U, j = E + T >> 1, N = j - U, H = j + U, re = G, oe = N, _e = j, Ce = H, Le = Z, ge = E + 1, ie = T - 1, Se = true, Ee, Ae, Be, Pe, me, De, ce, je, lt, pt = 0, Vt = 0, ot = 0, ut, Wt, Nt, $t, sr, Tr, fr, $e, St, Qt, Gt, _t, It, mt, er, lr, wr = P, Lr = b(wr), ti = b(wr);
+ Wt = C * re, Nt = C * oe, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = re, re = oe, oe = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ Wt = C * Ce, Nt = C * Le, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = Ce, Ce = Le, Le = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ Wt = C * re, Nt = C * _e, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = re, re = _e, _e = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ Wt = C * oe, Nt = C * _e, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = oe, oe = _e, _e = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ Wt = C * re, Nt = C * Ce, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = re, re = Ce, Ce = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ Wt = C * _e, Nt = C * Ce, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = _e, _e = Ce, Ce = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ Wt = C * oe, Nt = C * Le, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = oe, oe = Le, Le = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ Wt = C * oe, Nt = C * _e, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = oe, oe = _e, _e = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ Wt = C * Ce, Nt = C * Le, lr = x;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ce = Wt + lr, je = Nt + lr, ot = L[ce] - L[je], ot > 0) {
+ Ae = Ce, Ce = Le, Le = Ae;
+ break e;
+ }
+ if (ot < 0) break e;
+ lr += z;
+ }
+ for (Wt = C * re, Nt = C * oe, $t = C * _e, sr = C * Ce, Tr = C * Le, fr = C * G, $e = C * j, St = C * Z, er = 0, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, lt = $t + lr, Qt = sr + lr, Gt = Tr + lr, _t = fr + lr, It = $e + lr, mt = St + lr, Lr[er] = L[je], ti[er] = L[Qt], Se = Se && Lr[er] === ti[er], Be = L[ce], Pe = L[lt], me = L[Gt], L[_t] = Be, L[It] = Pe, L[mt] = me, ++er, lr += A;
+ for (Wt = C * N, Nt = C * E, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, L[ce] = L[je], lr += A;
+ for (Wt = C * H, Nt = C * T, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, L[ce] = L[je], lr += A;
+ if (Se) for (De = ge; De <= ie; ++De) {
+ ce = x + De * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ot = L[ce] - Lr[er], ot !== 0) break e;
+ er += O, ce += z;
+ }
+ if (ot !== 0) if (ot < 0) {
+ if (De !== ge) for (Wt = C * De, Nt = C * ge, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, Ee = L[ce], L[ce] = L[je], L[je] = Ee, lr += A;
+ ++ge;
+ } else for (; ; ) {
+ ce = x + ie * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ot = L[ce] - Lr[er], ot !== 0) break e;
+ er += O, ce += z;
+ }
+ if (ot > 0) ie--;
+ else if (ot < 0) {
+ for (Wt = C * De, Nt = C * ge, $t = C * ie, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, lt = $t + lr, Ee = L[ce], L[ce] = L[je], L[je] = L[lt], L[lt] = Ee, lr += A;
+ ++ge, --ie;
+ break;
+ } else {
+ for (Wt = C * De, Nt = C * ie, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, Ee = L[ce], L[ce] = L[je], L[je] = Ee, lr += A;
+ --ie;
+ break;
+ }
+ }
+ }
+ else for (De = ge; De <= ie; ++De) {
+ ce = x + De * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (pt = L[ce] - Lr[er], pt !== 0) break e;
+ er += O, ce += z;
+ }
+ if (pt < 0) {
+ if (De !== ge) for (Wt = C * De, Nt = C * ge, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, Ee = L[ce], L[ce] = L[je], L[je] = Ee, lr += A;
+ ++ge;
+ } else {
+ ce = x + De * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (Vt = L[ce] - ti[er], Vt !== 0) break e;
+ er += O, ce += z;
+ }
+ if (Vt > 0) for (; ; ) {
+ ce = x + ie * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ot = L[ce] - ti[er], ot !== 0) break e;
+ er += O, ce += z;
+ }
+ if (ot > 0) {
+ if (--ie < De) break;
+ continue;
+ } else {
+ ce = x + ie * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ot = L[ce] - Lr[er], ot !== 0) break e;
+ er += O, ce += z;
+ }
+ if (ot < 0) {
+ for (Wt = C * De, Nt = C * ge, $t = C * ie, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, lt = $t + lr, Ee = L[ce], L[ce] = L[je], L[je] = L[lt], L[lt] = Ee, lr += A;
+ ++ge, --ie;
+ } else {
+ for (Wt = C * De, Nt = C * ie, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, Ee = L[ce], L[ce] = L[je], L[je] = Ee, lr += A;
+ --ie;
+ }
+ break;
+ }
+ }
+ }
+ }
+ for (Wt = C * E, Nt = C * (ge - 1), er = 0, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, L[ce] = L[je], L[je] = Lr[er], ++er, lr += A;
+ for (Wt = C * T, Nt = C * (ie + 1), er = 0, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, L[ce] = L[je], L[je] = ti[er], ++er, lr += A;
+ if (ge - 2 - E <= 32 ? _(E, ge - 2, L, x, C, M, g, P, A, z, O) : k(E, ge - 2, L, x, C, M, g, P, A, z, O), T - (ie + 2) <= 32 ? _(ie + 2, T, L, x, C, M, g, P, A, z, O) : k(ie + 2, T, L, x, C, M, g, P, A, z, O), Se) {
+ p(Lr), p(ti);
+ return;
+ }
+ if (ge < G && ie > Z) {
+ e: for (; ; ) {
+ for (ce = x + ge * C, er = 0, lr = x, ut = 0; ut < P; ++ut) {
+ if (L[ce] !== Lr[er]) break e;
+ ++er, ce += A;
+ }
+ ++ge;
+ }
+ e: for (; ; ) {
+ for (ce = x + ie * C, er = 0, lr = x, ut = 0; ut < P; ++ut) {
+ if (L[ce] !== ti[er]) break e;
+ ++er, ce += A;
+ }
+ --ie;
+ }
+ for (De = ge; De <= ie; ++De) {
+ ce = x + De * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (pt = L[ce] - Lr[er], pt !== 0) break e;
+ er += O, ce += z;
+ }
+ if (pt === 0) {
+ if (De !== ge) for (Wt = C * De, Nt = C * ge, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, Ee = L[ce], L[ce] = L[je], L[je] = Ee, lr += A;
+ ++ge;
+ } else {
+ ce = x + De * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (Vt = L[ce] - ti[er], Vt !== 0) break e;
+ er += O, ce += z;
+ }
+ if (Vt === 0) for (; ; ) {
+ ce = x + ie * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ot = L[ce] - ti[er], ot !== 0) break e;
+ er += O, ce += z;
+ }
+ if (ot === 0) {
+ if (--ie < De) break;
+ continue;
+ } else {
+ ce = x + ie * C, er = 0;
+ e: for (ut = 0; ut < P; ++ut) {
+ if (ot = L[ce] - Lr[er], ot !== 0) break e;
+ er += O, ce += z;
+ }
+ if (ot < 0) {
+ for (Wt = C * De, Nt = C * ge, $t = C * ie, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, lt = $t + lr, Ee = L[ce], L[ce] = L[je], L[je] = L[lt], L[lt] = Ee, lr += A;
+ ++ge, --ie;
+ } else {
+ for (Wt = C * De, Nt = C * ie, lr = x, ut = 0; ut < P; ++ut) ce = Wt + lr, je = Nt + lr, Ee = L[ce], L[ce] = L[je], L[je] = Ee, lr += A;
+ --ie;
+ }
+ break;
+ }
+ }
+ }
+ }
+ }
+ p(Lr), p(ti), ie - ge <= 32 ? _(ge, ie, L, x, C, M, g, P, A, z, O) : k(ge, ie, L, x, C, M, g, P, A, z, O);
+ };
+ } };
+ function h(_, b, p) {
+ var k = l(b), E = [b, _].join(","), T = f[E];
+ return _.length > 1 && k ? T(p, k[0], k[1]) : T(p);
+ }
+ var d = { "uint32,1,0": function(_, b) {
+ return function(p) {
+ var k = p.data, E = p.offset | 0, T = p.shape, L = p.stride, x = L[0] | 0, C = T[0] | 0, M = L[1] | 0, g = T[1] | 0, P = M, A = M, z = 1;
+ C <= 32 ? _(0, C - 1, k, E, x, M, C, g, P, A, z) : b(0, C - 1, k, E, x, M, C, g, P, A, z);
+ };
+ } };
+ function v(_, b) {
+ var p = [b, _].join(","), k = d[p], E = c(_, b), T = h(_, b, E);
+ return k(E, T);
+ }
+ i.exports = v;
+ }, 7642: function(i, a, o) {
+ var s = o(8954), l = o(1682);
+ i.exports = h;
+ function u(d, v) {
+ this.point = d, this.index = v;
+ }
+ function c(d, v) {
+ for (var _ = d.point, b = v.point, p = _.length, k = 0; k < p; ++k) {
+ var E = b[k] - _[k];
+ if (E) return E;
+ }
+ return 0;
+ }
+ function f(d, v, _) {
+ if (d === 1) return _ ? [[-1, 0]] : [];
+ var b = v.map(function(L, x) {
+ return [L[0], x];
+ });
+ b.sort(function(L, x) {
+ return L[0] - x[0];
+ });
+ for (var p = new Array(d - 1), k = 1; k < d; ++k) {
+ var E = b[k - 1], T = b[k];
+ p[k - 1] = [E[1], T[1]];
+ }
+ return _ && p.push([-1, p[0][1]], [p[d - 1][1], -1]), p;
+ }
+ function h(d, v) {
+ var _ = d.length;
+ if (_ === 0) return [];
+ var b = d[0].length;
+ if (b < 1) return [];
+ if (b === 1) return f(_, d, v);
+ for (var p = new Array(_), k = 1, E = 0; E < _; ++E) {
+ for (var T = d[E], L = new Array(b + 1), x = 0, C = 0; C < b; ++C) {
+ var M = T[C];
+ L[C] = M, x += M * M;
+ }
+ L[b] = x, p[E] = new u(L, E), k = Math.max(x, k);
+ }
+ l(p, c), _ = p.length;
+ for (var g = new Array(_ + b + 1), P = new Array(_ + b + 1), A = (b + 1) * (b + 1) * k, z = new Array(b + 1), E = 0; E <= b; ++E) z[E] = 0;
+ z[b] = A, g[0] = z.slice(), P[0] = -1;
+ for (var E = 0; E <= b; ++E) {
+ var L = z.slice();
+ L[E] = 1, g[E + 1] = L, P[E + 1] = -1;
+ }
+ for (var E = 0; E < _; ++E) {
+ var O = p[E];
+ g[E + b + 1] = O.point, P[E + b + 1] = O.index;
+ }
+ var U = s(g, false);
+ if (v ? U = U.filter(function(G) {
+ for (var Z = 0, j = 0; j <= b; ++j) {
+ var N = P[G[j]];
+ if (N < 0 && ++Z >= 2) return false;
+ G[j] = N;
+ }
+ return true;
+ }) : U = U.filter(function(G) {
+ for (var Z = 0; Z <= b; ++Z) {
+ var j = P[G[Z]];
+ if (j < 0) return false;
+ G[Z] = j;
+ }
+ return true;
+ }), b & 1) for (var E = 0; E < U.length; ++E) {
+ var O = U[E], L = O[0];
+ O[0] = O[1], O[1] = L;
+ }
+ return U;
+ }
+ }, 7656: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = l[0], c = l[1], f = l[2], h, d, v, _, b, p, k, E, T, L, x, C;
+ return s === o ? (o[12] = s[0] * u + s[4] * c + s[8] * f + s[12], o[13] = s[1] * u + s[5] * c + s[9] * f + s[13], o[14] = s[2] * u + s[6] * c + s[10] * f + s[14], o[15] = s[3] * u + s[7] * c + s[11] * f + s[15]) : (h = s[0], d = s[1], v = s[2], _ = s[3], b = s[4], p = s[5], k = s[6], E = s[7], T = s[8], L = s[9], x = s[10], C = s[11], o[0] = h, o[1] = d, o[2] = v, o[3] = _, o[4] = b, o[5] = p, o[6] = k, o[7] = E, o[8] = T, o[9] = L, o[10] = x, o[11] = C, o[12] = h * u + b * c + T * f + s[12], o[13] = d * u + p * c + L * f + s[13], o[14] = v * u + k * c + x * f + s[14], o[15] = _ * u + E * c + C * f + s[15]), o;
+ }
+ }, 7718: function(i, a, o) {
+ i.exports = O, i.exports.processPixels = z;
+ var s = o(3711), l = o(9618), u = o(5878), c = o(332), f = o(2538), h = o(2095), d = "b", v = "b|", _ = "i", b = "i|", p = "sup", k = "+", E = "+1", T = "sub", L = "-", x = "-1";
+ function C(U, G, Z, j) {
+ for (var N = "<" + U + ">", H = "" + U + ">", re = N.length, oe = H.length, _e = G[0] === k || G[0] === L, Ce = 0, Le = -oe; Ce > -1 && (Ce = Z.indexOf(N, Ce), !(Ce === -1 || (Le = Z.indexOf(H, Ce + re), Le === -1) || Le <= Ce)); ) {
+ for (var ge = Ce; ge < Le + oe; ++ge) if (ge < Ce + re || ge >= Le) j[ge] = null, Z = Z.substr(0, ge) + " " + Z.substr(ge + 1);
+ else if (j[ge] !== null) {
+ var ie = j[ge].indexOf(G[0]);
+ ie === -1 ? j[ge] += G : _e && (j[ge] = j[ge].substr(0, ie + 1) + (1 + parseInt(j[ge][ie + 1])) + j[ge].substr(ie + 2));
+ }
+ var Se = Ce + re, Ee = Z.substr(Se, Le - Se), Ae = Ee.indexOf(N);
+ Ae !== -1 ? Ce = Ae : Ce = Le + oe;
+ }
+ return j;
+ }
+ function M(U, G, Z) {
+ for (var j = G.textAlign || "start", N = G.textBaseline || "alphabetic", H = [1 << 30, 1 << 30], re = [0, 0], oe = U.length, _e = 0; _e < oe; ++_e) for (var Ce = U[_e], Le = 0; Le < 2; ++Le) H[Le] = Math.min(H[Le], Ce[Le]) | 0, re[Le] = Math.max(re[Le], Ce[Le]) | 0;
+ var ge = 0;
+ switch (j) {
+ case "center":
+ ge = -0.5 * (H[0] + re[0]);
+ break;
+ case "right":
+ case "end":
+ ge = -re[0];
+ break;
+ case "left":
+ case "start":
+ ge = -H[0];
+ break;
+ default:
+ throw new Error("vectorize-text: Unrecognized textAlign: '" + j + "'");
+ }
+ var ie = 0;
+ switch (N) {
+ case "hanging":
+ case "top":
+ ie = -H[1];
+ break;
+ case "middle":
+ ie = -0.5 * (H[1] + re[1]);
+ break;
+ case "alphabetic":
+ case "ideographic":
+ ie = -3 * Z;
+ break;
+ case "bottom":
+ ie = -re[1];
+ break;
+ default:
+ throw new Error("vectorize-text: Unrecoginized textBaseline: '" + N + "'");
+ }
+ var Se = 1 / Z;
+ return "lineHeight" in G ? Se *= +G.lineHeight : "width" in G ? Se = G.width / (re[0] - H[0]) : "height" in G && (Se = G.height / (re[1] - H[1])), U.map(function(Ee) {
+ return [Se * (Ee[0] + ge), Se * (Ee[1] + ie)];
+ });
+ }
+ function g(U, G, Z, j, N, H) {
+ Z = Z.replace(/\n/g, ""), H.breaklines === true ? Z = Z.replace(/\ /g, `
+`) : Z = Z.replace(/\ /g, " ");
+ var re = "", oe = [];
+ for (me = 0; me < Z.length; ++me) oe[me] = re;
+ H.bolds === true && (oe = C(d, v, Z, oe)), H.italics === true && (oe = C(_, b, Z, oe)), H.superscripts === true && (oe = C(p, E, Z, oe)), H.subscripts === true && (oe = C(T, x, Z, oe));
+ var _e = [], Ce = "";
+ for (me = 0; me < Z.length; ++me) oe[me] !== null && (Ce += Z[me], _e.push(oe[me]));
+ var Le = Ce.split(`
+`), ge = Le.length, ie = Math.round(N * j), Se = j, Ee = j * 2, Ae = 0, Be = ge * ie + Ee;
+ U.height < Be && (U.height = Be), G.fillStyle = "#000", G.fillRect(0, 0, U.width, U.height), G.fillStyle = "#fff";
+ var Pe, me, De, ce, je, lt = 0, pt = "";
+ function Vt() {
+ if (pt !== "") {
+ var $e = G.measureText(pt).width;
+ G.fillText(pt, Se + De, Ee + ce), De += $e;
+ }
+ }
+ function ot() {
+ return "" + Math.round(je) + "px ";
+ }
+ function ut($e, St) {
+ var Qt = "" + G.font;
+ if (H.subscripts === true) {
+ var Gt = $e.indexOf(L), _t = St.indexOf(L), It = Gt > -1 ? parseInt($e[1 + Gt]) : 0, mt = _t > -1 ? parseInt(St[1 + _t]) : 0;
+ It !== mt && (Qt = Qt.replace(ot(), "?px "), je *= Math.pow(0.75, mt - It), Qt = Qt.replace("?px ", ot())), ce += 0.25 * ie * (mt - It);
+ }
+ if (H.superscripts === true) {
+ var er = $e.indexOf(k), lr = St.indexOf(k), wr = er > -1 ? parseInt($e[1 + er]) : 0, Lr = lr > -1 ? parseInt(St[1 + lr]) : 0;
+ wr !== Lr && (Qt = Qt.replace(ot(), "?px "), je *= Math.pow(0.75, Lr - wr), Qt = Qt.replace("?px ", ot())), ce -= 0.25 * ie * (Lr - wr);
+ }
+ if (H.bolds === true) {
+ var ti = $e.indexOf(v) > -1, Br = St.indexOf(v) > -1;
+ !ti && Br && (Vr ? Qt = Qt.replace("italic ", "italic bold ") : Qt = "bold " + Qt), ti && !Br && (Qt = Qt.replace("bold ", ""));
+ }
+ if (H.italics === true) {
+ var Vr = $e.indexOf(b) > -1, dt = St.indexOf(b) > -1;
+ !Vr && dt && (Qt = "italic " + Qt), Vr && !dt && (Qt = Qt.replace("italic ", ""));
+ }
+ G.font = Qt;
+ }
+ for (Pe = 0; Pe < ge; ++Pe) {
+ var Wt = Le[Pe] + `
+`;
+ for (De = 0, ce = Pe * ie, je = j, pt = "", me = 0; me < Wt.length; ++me) {
+ var Nt = me + lt < _e.length ? _e[me + lt] : _e[_e.length - 1];
+ re === Nt ? pt += Wt[me] : (Vt(), pt = Wt[me], Nt !== void 0 && (ut(re, Nt), re = Nt));
+ }
+ Vt(), lt += Wt.length;
+ var $t = Math.round(De + 2 * Se) | 0;
+ Ae < $t && (Ae = $t);
+ }
+ var sr = Ae, Tr = Ee + ie * ge, fr = l(G.getImageData(0, 0, sr, Tr).data, [Tr, sr, 4]);
+ return fr.pick(-1, -1, 0).transpose(1, 0);
+ }
+ function P(U, G) {
+ var Z = s(U, 128);
+ return G ? u(Z.cells, Z.positions, 0.25) : { edges: Z.cells, positions: Z.positions };
+ }
+ function A(U, G, Z, j) {
+ var N = P(U, j), H = M(N.positions, G, Z), re = N.edges, oe = G.orientation === "ccw";
+ if (c(H, re), G.polygons || G.polygon || G.polyline) {
+ for (var _e = h(re, H), Ce = new Array(_e.length), Le = 0; Le < _e.length; ++Le) {
+ for (var ge = _e[Le], ie = new Array(ge.length), Se = 0; Se < ge.length; ++Se) {
+ for (var Ee = ge[Se], Ae = new Array(Ee.length), Be = 0; Be < Ee.length; ++Be) Ae[Be] = H[Ee[Be]].slice();
+ oe && Ae.reverse(), ie[Se] = Ae;
+ }
+ Ce[Le] = ie;
+ }
+ return Ce;
+ } else return G.triangles || G.triangulate || G.triangle ? { cells: f(H, re, { delaunay: false, exterior: false, interior: true }), positions: H } : { edges: re, positions: H };
+ }
+ function z(U, G, Z) {
+ try {
+ return A(U, G, Z, true);
+ } catch (j) {
+ }
+ try {
+ return A(U, G, Z, false);
+ } catch (j) {
+ }
+ return G.polygons || G.polyline || G.polygon ? [] : G.triangles || G.triangulate || G.triangle ? { cells: [], positions: [] } : { edges: [], positions: [] };
+ }
+ function O(U, G, Z, j) {
+ var N = 64, H = 1.25, re = { breaklines: false, bolds: false, italics: false, subscripts: false, superscripts: false };
+ j && (j.size && j.size > 0 && (N = j.size), j.lineSpacing && j.lineSpacing > 0 && (H = j.lineSpacing), j.styletags && j.styletags.breaklines && (re.breaklines = !!j.styletags.breaklines), j.styletags && j.styletags.bolds && (re.bolds = !!j.styletags.bolds), j.styletags && j.styletags.italics && (re.italics = !!j.styletags.italics), j.styletags && j.styletags.subscripts && (re.subscripts = !!j.styletags.subscripts), j.styletags && j.styletags.superscripts && (re.superscripts = !!j.styletags.superscripts)), Z.font = [j.fontStyle, j.fontVariant, j.fontWeight, N + "px", j.font].filter(function(_e) {
+ return _e;
+ }).join(" "), Z.textAlign = "start", Z.textBaseline = "alphabetic", Z.direction = "ltr";
+ var oe = g(G, Z, U, N, H, re);
+ return z(oe, j, N);
+ }
+ }, 7721: function(i, a, o) {
+ var s = o(5716);
+ i.exports = l;
+ function l(u) {
+ return s(u[0]) * s(u[1]);
+ }
+ }, 7765: function(i, a, o) {
+ i.exports = p;
+ var s = o(9618), l = o(1888), u = o(446), c = o(1570);
+ function f(k) {
+ for (var E = k.length, T = 0, L = 0; L < E; ++L) T = Math.max(T, k[L].length) | 0;
+ return T - 1;
+ }
+ function h(k, E) {
+ for (var T = k.length, L = l.mallocUint8(T), x = 0; x < T; ++x) L[x] = k[x] < E | 0;
+ return L;
+ }
+ function d(k, E) {
+ for (var T = k.length, L = E * (E + 1) / 2 * T | 0, x = l.mallocUint32(L * 2), C = 0, M = 0; M < T; ++M) for (var g = k[M], E = g.length, P = 0; P < E; ++P) for (var A = 0; A < P; ++A) {
+ var z = g[A], O = g[P];
+ x[C++] = Math.min(z, O) | 0, x[C++] = Math.max(z, O) | 0;
+ }
+ var U = C / 2 | 0;
+ u(s(x, [U, 2]));
+ for (var G = 2, M = 2; M < C; M += 2) x[M - 2] === x[M] && x[M - 1] === x[M + 1] || (x[G++] = x[M], x[G++] = x[M + 1]);
+ return s(x, [G / 2 | 0, 2]);
+ }
+ function v(k, E, T, L) {
+ for (var x = k.data, C = k.shape[0], M = l.mallocDouble(C), g = 0, P = 0; P < C; ++P) {
+ var A = x[2 * P], z = x[2 * P + 1];
+ if (T[A] !== T[z]) {
+ var O = E[A], U = E[z];
+ x[2 * g] = A, x[2 * g + 1] = z, M[g++] = (U - L) / (U - O);
+ }
+ }
+ return k.shape[0] = g, s(M, [g]);
+ }
+ function _(k, E) {
+ var T = l.mallocInt32(E * 2), L = k.shape[0], x = k.data;
+ T[0] = 0;
+ for (var C = 0, M = 0; M < L; ++M) {
+ var g = x[2 * M];
+ if (g !== C) {
+ for (T[2 * C + 1] = M; ++C < g; ) T[2 * C] = M, T[2 * C + 1] = M;
+ T[2 * C] = M;
+ }
+ }
+ for (T[2 * C + 1] = L; ++C < E; ) T[2 * C] = T[2 * C + 1] = L;
+ return T;
+ }
+ function b(k) {
+ for (var E = k.shape[0] | 0, T = k.data, L = new Array(E), x = 0; x < E; ++x) L[x] = [T[2 * x], T[2 * x + 1]];
+ return L;
+ }
+ function p(k, E, T, L) {
+ T = T || 0, typeof L == "undefined" && (L = f(k));
+ var x = k.length;
+ if (x === 0 || L < 1) return { cells: [], vertexIds: [], vertexWeights: [] };
+ var C = h(E, +T), M = d(k, L), g = v(M, E, C, +T), P = _(M, E.length | 0), A = c(L)(k, M.data, P, C), z = b(M), O = [].slice.call(g.data, 0, g.shape[0]);
+ return l.free(C), l.free(M.data), l.free(g.data), l.free(P), { cells: A, vertexIds: z, vertexWeights: O };
+ }
+ }, 7766: function(i, a, o) {
+ var s = o(9618), l = o(5298), u = o(1888);
+ i.exports = g;
+ var c = null, f = null, h = null;
+ function d(P) {
+ c = [P.LINEAR, P.NEAREST_MIPMAP_LINEAR, P.LINEAR_MIPMAP_NEAREST, P.LINEAR_MIPMAP_NEAREST], f = [P.NEAREST, P.LINEAR, P.NEAREST_MIPMAP_NEAREST, P.NEAREST_MIPMAP_LINEAR, P.LINEAR_MIPMAP_NEAREST, P.LINEAR_MIPMAP_LINEAR], h = [P.REPEAT, P.CLAMP_TO_EDGE, P.MIRRORED_REPEAT];
+ }
+ function v(P) {
+ return typeof HTMLCanvasElement != "undefined" && P instanceof HTMLCanvasElement || typeof HTMLImageElement != "undefined" && P instanceof HTMLImageElement || typeof HTMLVideoElement != "undefined" && P instanceof HTMLVideoElement || typeof ImageData != "undefined" && P instanceof ImageData;
+ }
+ var _ = function(P, A) {
+ l.muls(P, A, 255);
+ };
+ function b(P, A, z) {
+ var O = P.gl, U = O.getParameter(O.MAX_TEXTURE_SIZE);
+ if (A < 0 || A > U || z < 0 || z > U) throw new Error("gl-texture2d: Invalid texture size");
+ return P._shape = [A, z], P.bind(), O.texImage2D(O.TEXTURE_2D, 0, P.format, A, z, 0, P.format, P.type, null), P._mipLevels = [0], P;
+ }
+ function p(P, A, z, O, U, G) {
+ this.gl = P, this.handle = A, this.format = U, this.type = G, this._shape = [z, O], this._mipLevels = [0], this._magFilter = P.NEAREST, this._minFilter = P.NEAREST, this._wrapS = P.CLAMP_TO_EDGE, this._wrapT = P.CLAMP_TO_EDGE, this._anisoSamples = 1;
+ var Z = this, j = [this._wrapS, this._wrapT];
+ Object.defineProperties(j, [{ get: function() {
+ return Z._wrapS;
+ }, set: function(H) {
+ return Z.wrapS = H;
+ } }, { get: function() {
+ return Z._wrapT;
+ }, set: function(H) {
+ return Z.wrapT = H;
+ } }]), this._wrapVector = j;
+ var N = [this._shape[0], this._shape[1]];
+ Object.defineProperties(N, [{ get: function() {
+ return Z._shape[0];
+ }, set: function(H) {
+ return Z.width = H;
+ } }, { get: function() {
+ return Z._shape[1];
+ }, set: function(H) {
+ return Z.height = H;
+ } }]), this._shapeVector = N;
+ }
+ var k = p.prototype;
+ Object.defineProperties(k, { minFilter: { get: function() {
+ return this._minFilter;
+ }, set: function(P) {
+ this.bind();
+ var A = this.gl;
+ if (this.type === A.FLOAT && c.indexOf(P) >= 0 && (A.getExtension("OES_texture_float_linear") || (P = A.NEAREST)), f.indexOf(P) < 0) throw new Error("gl-texture2d: Unknown filter mode " + P);
+ return A.texParameteri(A.TEXTURE_2D, A.TEXTURE_MIN_FILTER, P), this._minFilter = P;
+ } }, magFilter: { get: function() {
+ return this._magFilter;
+ }, set: function(P) {
+ this.bind();
+ var A = this.gl;
+ if (this.type === A.FLOAT && c.indexOf(P) >= 0 && (A.getExtension("OES_texture_float_linear") || (P = A.NEAREST)), f.indexOf(P) < 0) throw new Error("gl-texture2d: Unknown filter mode " + P);
+ return A.texParameteri(A.TEXTURE_2D, A.TEXTURE_MAG_FILTER, P), this._magFilter = P;
+ } }, mipSamples: { get: function() {
+ return this._anisoSamples;
+ }, set: function(P) {
+ var A = this._anisoSamples;
+ if (this._anisoSamples = Math.max(P, 1) | 0, A !== this._anisoSamples) {
+ var z = this.gl.getExtension("EXT_texture_filter_anisotropic");
+ z && this.gl.texParameterf(this.gl.TEXTURE_2D, z.TEXTURE_MAX_ANISOTROPY_EXT, this._anisoSamples);
+ }
+ return this._anisoSamples;
+ } }, wrapS: { get: function() {
+ return this._wrapS;
+ }, set: function(P) {
+ if (this.bind(), h.indexOf(P) < 0) throw new Error("gl-texture2d: Unknown wrap mode " + P);
+ return this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, P), this._wrapS = P;
+ } }, wrapT: { get: function() {
+ return this._wrapT;
+ }, set: function(P) {
+ if (this.bind(), h.indexOf(P) < 0) throw new Error("gl-texture2d: Unknown wrap mode " + P);
+ return this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, P), this._wrapT = P;
+ } }, wrap: { get: function() {
+ return this._wrapVector;
+ }, set: function(P) {
+ if (Array.isArray(P) || (P = [P, P]), P.length !== 2) throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");
+ for (var A = 0; A < 2; ++A) if (h.indexOf(P[A]) < 0) throw new Error("gl-texture2d: Unknown wrap mode " + P);
+ this._wrapS = P[0], this._wrapT = P[1];
+ var z = this.gl;
+ return this.bind(), z.texParameteri(z.TEXTURE_2D, z.TEXTURE_WRAP_S, this._wrapS), z.texParameteri(z.TEXTURE_2D, z.TEXTURE_WRAP_T, this._wrapT), P;
+ } }, shape: { get: function() {
+ return this._shapeVector;
+ }, set: function(P) {
+ if (!Array.isArray(P)) P = [P | 0, P | 0];
+ else if (P.length !== 2) throw new Error("gl-texture2d: Invalid texture shape");
+ return b(this, P[0] | 0, P[1] | 0), [P[0] | 0, P[1] | 0];
+ } }, width: { get: function() {
+ return this._shape[0];
+ }, set: function(P) {
+ return P = P | 0, b(this, P, this._shape[1]), P;
+ } }, height: { get: function() {
+ return this._shape[1];
+ }, set: function(P) {
+ return P = P | 0, b(this, this._shape[0], P), P;
+ } } }), k.bind = function(P) {
+ var A = this.gl;
+ return P !== void 0 && A.activeTexture(A.TEXTURE0 + (P | 0)), A.bindTexture(A.TEXTURE_2D, this.handle), P !== void 0 ? P | 0 : A.getParameter(A.ACTIVE_TEXTURE) - A.TEXTURE0;
+ }, k.dispose = function() {
+ this.gl.deleteTexture(this.handle);
+ }, k.generateMipmap = function() {
+ this.bind(), this.gl.generateMipmap(this.gl.TEXTURE_2D);
+ for (var P = Math.min(this._shape[0], this._shape[1]), A = 0; P > 0; ++A, P >>>= 1) this._mipLevels.indexOf(A) < 0 && this._mipLevels.push(A);
+ }, k.setPixels = function(P, A, z, O) {
+ var U = this.gl;
+ this.bind(), Array.isArray(A) ? (O = z, z = A[1] | 0, A = A[0] | 0) : (A = A || 0, z = z || 0), O = O || 0;
+ var G = v(P) ? P : P.raw;
+ if (G) {
+ var Z = this._mipLevels.indexOf(O) < 0;
+ Z ? (U.texImage2D(U.TEXTURE_2D, 0, this.format, this.format, this.type, G), this._mipLevels.push(O)) : U.texSubImage2D(U.TEXTURE_2D, O, A, z, this.format, this.type, G);
+ } else if (P.shape && P.stride && P.data) {
+ if (P.shape.length < 2 || A + P.shape[1] > this._shape[1] >>> O || z + P.shape[0] > this._shape[0] >>> O || A < 0 || z < 0) throw new Error("gl-texture2d: Texture dimensions are out of bounds");
+ T(U, A, z, O, this.format, this.type, this._mipLevels, P);
+ } else throw new Error("gl-texture2d: Unsupported data type");
+ };
+ function E(P, A) {
+ return P.length === 3 ? A[2] === 1 && A[1] === P[0] * P[2] && A[0] === P[2] : A[0] === 1 && A[1] === P[0];
+ }
+ function T(P, A, z, O, U, G, Z, j) {
+ var N = j.dtype, H = j.shape.slice();
+ if (H.length < 2 || H.length > 3) throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");
+ var re = 0, oe = 0, _e = E(H, j.stride.slice());
+ N === "float32" ? re = P.FLOAT : N === "float64" ? (re = P.FLOAT, _e = false, N = "float32") : N === "uint8" ? re = P.UNSIGNED_BYTE : (re = P.UNSIGNED_BYTE, _e = false, N = "uint8");
+ if (H.length === 2) oe = P.LUMINANCE, H = [H[0], H[1], 1], j = s(j.data, H, [j.stride[0], j.stride[1], 1], j.offset);
+ else if (H.length === 3) {
+ if (H[2] === 1) oe = P.ALPHA;
+ else if (H[2] === 2) oe = P.LUMINANCE_ALPHA;
+ else if (H[2] === 3) oe = P.RGB;
+ else if (H[2] === 4) oe = P.RGBA;
+ else throw new Error("gl-texture2d: Invalid shape for pixel coords");
+ H[2];
+ } else throw new Error("gl-texture2d: Invalid shape for texture");
+ if ((oe === P.LUMINANCE || oe === P.ALPHA) && (U === P.LUMINANCE || U === P.ALPHA) && (oe = U), oe !== U) throw new Error("gl-texture2d: Incompatible texture format for setPixels");
+ var Le = j.size, ge = Z.indexOf(O) < 0;
+ if (ge && Z.push(O), re === G && _e) j.offset === 0 && j.data.length === Le ? ge ? P.texImage2D(P.TEXTURE_2D, O, U, H[0], H[1], 0, U, G, j.data) : P.texSubImage2D(P.TEXTURE_2D, O, A, z, H[0], H[1], U, G, j.data) : ge ? P.texImage2D(P.TEXTURE_2D, O, U, H[0], H[1], 0, U, G, j.data.subarray(j.offset, j.offset + Le)) : P.texSubImage2D(P.TEXTURE_2D, O, A, z, H[0], H[1], U, G, j.data.subarray(j.offset, j.offset + Le));
+ else {
+ var ie;
+ G === P.FLOAT ? ie = u.mallocFloat32(Le) : ie = u.mallocUint8(Le);
+ var Se = s(ie, H, [H[2], H[2] * H[0], 1]);
+ re === P.FLOAT && G === P.UNSIGNED_BYTE ? _(Se, j) : l.assign(Se, j), ge ? P.texImage2D(P.TEXTURE_2D, O, U, H[0], H[1], 0, U, G, ie.subarray(0, Le)) : P.texSubImage2D(P.TEXTURE_2D, O, A, z, H[0], H[1], U, G, ie.subarray(0, Le)), G === P.FLOAT ? u.freeFloat32(ie) : u.freeUint8(ie);
+ }
+ }
+ function L(P) {
+ var A = P.createTexture();
+ return P.bindTexture(P.TEXTURE_2D, A), P.texParameteri(P.TEXTURE_2D, P.TEXTURE_MIN_FILTER, P.NEAREST), P.texParameteri(P.TEXTURE_2D, P.TEXTURE_MAG_FILTER, P.NEAREST), P.texParameteri(P.TEXTURE_2D, P.TEXTURE_WRAP_S, P.CLAMP_TO_EDGE), P.texParameteri(P.TEXTURE_2D, P.TEXTURE_WRAP_T, P.CLAMP_TO_EDGE), A;
+ }
+ function x(P, A, z, O, U) {
+ var G = P.getParameter(P.MAX_TEXTURE_SIZE);
+ if (A < 0 || A > G || z < 0 || z > G) throw new Error("gl-texture2d: Invalid texture shape");
+ if (U === P.FLOAT && !P.getExtension("OES_texture_float")) throw new Error("gl-texture2d: Floating point textures not supported on this platform");
+ var Z = L(P);
+ return P.texImage2D(P.TEXTURE_2D, 0, O, A, z, 0, O, U, null), new p(P, Z, A, z, O, U);
+ }
+ function C(P, A, z, O, U, G) {
+ var Z = L(P);
+ return P.texImage2D(P.TEXTURE_2D, 0, U, U, G, A), new p(P, Z, z, O, U, G);
+ }
+ function M(P, A) {
+ var z = A.dtype, O = A.shape.slice(), U = P.getParameter(P.MAX_TEXTURE_SIZE);
+ if (O[0] < 0 || O[0] > U || O[1] < 0 || O[1] > U) throw new Error("gl-texture2d: Invalid texture size");
+ var G = E(O, A.stride.slice()), Z = 0;
+ z === "float32" ? Z = P.FLOAT : z === "float64" ? (Z = P.FLOAT, G = false, z = "float32") : z === "uint8" ? Z = P.UNSIGNED_BYTE : (Z = P.UNSIGNED_BYTE, G = false, z = "uint8");
+ var j = 0;
+ if (O.length === 2) j = P.LUMINANCE, O = [O[0], O[1], 1], A = s(A.data, O, [A.stride[0], A.stride[1], 1], A.offset);
+ else if (O.length === 3) if (O[2] === 1) j = P.ALPHA;
+ else if (O[2] === 2) j = P.LUMINANCE_ALPHA;
+ else if (O[2] === 3) j = P.RGB;
+ else if (O[2] === 4) j = P.RGBA;
+ else throw new Error("gl-texture2d: Invalid shape for pixel coords");
+ else throw new Error("gl-texture2d: Invalid shape for texture");
+ Z === P.FLOAT && !P.getExtension("OES_texture_float") && (Z = P.UNSIGNED_BYTE, G = false);
+ var N, H, re = A.size;
+ if (G) A.offset === 0 && A.data.length === re ? N = A.data : N = A.data.subarray(A.offset, A.offset + re);
+ else {
+ var oe = [O[2], O[2] * O[0], 1];
+ H = u.malloc(re, z);
+ var _e = s(H, O, oe, 0);
+ (z === "float32" || z === "float64") && Z === P.UNSIGNED_BYTE ? _(_e, A) : l.assign(_e, A), N = H.subarray(0, re);
+ }
+ var Ce = L(P);
+ return P.texImage2D(P.TEXTURE_2D, 0, j, O[0], O[1], 0, j, Z, N), G || u.free(H), new p(P, Ce, O[0], O[1], j, Z);
+ }
+ function g(P) {
+ if (arguments.length <= 1) throw new Error("gl-texture2d: Missing arguments for texture2d constructor");
+ if (c || d(P), typeof arguments[1] == "number") return x(P, arguments[1], arguments[2], arguments[3] || P.RGBA, arguments[4] || P.UNSIGNED_BYTE);
+ if (Array.isArray(arguments[1])) return x(P, arguments[1][0] | 0, arguments[1][1] | 0, arguments[2] || P.RGBA, arguments[3] || P.UNSIGNED_BYTE);
+ if (typeof arguments[1] == "object") {
+ var A = arguments[1], z = v(A) ? A : A.raw;
+ if (z) return C(P, z, A.width | 0, A.height | 0, arguments[2] || P.RGBA, arguments[3] || P.UNSIGNED_BYTE);
+ if (A.shape && A.data && A.stride) return M(P, A);
+ }
+ throw new Error("gl-texture2d: Invalid arguments for texture2d constructor");
+ }
+ }, 7790: function() {
+ }, 7815: function(i, a, o) {
+ var s = o(2931), l = o(9970), u = ["xyz", "xzy", "yxz", "yzx", "zxy", "zyx"], c = function(T, L, x, C) {
+ for (var M = T.points, g = T.velocities, P = T.divergences, A = [], z = [], O = [], U = [], G = [], Z = [], j = 0, N = 0, H = l.create(), re = l.create(), oe = 8, _e = 0; _e < M.length; _e++) {
+ var Ce = M[_e], Le = g[_e], ge = P[_e];
+ L === 0 && (ge = x * 0.05), N = s.length(Le) / C, H = l.create(), s.copy(H, Le), H[3] = ge;
+ for (var ie = 0; ie < oe; ie++) G[ie] = [Ce[0], Ce[1], Ce[2], ie];
+ if (U.length > 0) for (var ie = 0; ie < oe; ie++) {
+ var Se = (ie + 1) % oe;
+ A.push(U[ie], G[ie], G[Se], G[Se], U[Se], U[ie]), O.push(re, H, H, H, re, re), Z.push(j, N, N, N, j, j);
+ var Ee = A.length;
+ z.push([Ee - 6, Ee - 5, Ee - 4], [Ee - 3, Ee - 2, Ee - 1]);
+ }
+ var Ae = U;
+ U = G, G = Ae;
+ var Be = re;
+ re = H, H = Be;
+ var Pe = j;
+ j = N, N = Pe;
+ }
+ return { positions: A, cells: z, vectors: O, vertexIntensity: Z };
+ }, f = function(T, L, x, C) {
+ for (var M = 0, g = 0; g < T.length; g++) for (var P = T[g].velocities, A = 0; A < P.length; A++) M = Math.max(M, s.length(P[A]));
+ for (var z = T.map(function(_e) {
+ return c(_e, x, C, M);
+ }), O = [], U = [], G = [], Z = [], g = 0; g < z.length; g++) {
+ var j = z[g], N = O.length;
+ O = O.concat(j.positions), G = G.concat(j.vectors), Z = Z.concat(j.vertexIntensity);
+ for (var A = 0; A < j.cells.length; A++) {
+ var H = j.cells[A], re = [];
+ U.push(re);
+ for (var oe = 0; oe < H.length; oe++) re.push(H[oe] + N);
+ }
+ }
+ return { positions: O, cells: U, vectors: G, vertexIntensity: Z, colormap: L };
+ }, h = function(T, L) {
+ var x = T.length, C;
+ for (C = 0; C < x; C++) {
+ var M = T[C];
+ if (M === L) return C;
+ if (M > L) return C - 1;
+ }
+ return C;
+ }, d = function(T, L, x) {
+ return T < L ? L : T > x ? x : T;
+ }, v = function(T, L, x) {
+ var C = L.vectors, M = L.meshgrid, g = T[0], P = T[1], A = T[2], z = M[0].length, O = M[1].length, U = M[2].length, G = h(M[0], g), Z = h(M[1], P), j = h(M[2], A), N = G + 1, H = Z + 1, re = j + 1;
+ if (G = d(G, 0, z - 1), N = d(N, 0, z - 1), Z = d(Z, 0, O - 1), H = d(H, 0, O - 1), j = d(j, 0, U - 1), re = d(re, 0, U - 1), G < 0 || Z < 0 || j < 0 || N > z - 1 || H > O - 1 || re > U - 1) return s.create();
+ var oe = M[0][G], _e = M[0][N], Ce = M[1][Z], Le = M[1][H], ge = M[2][j], ie = M[2][re], Se = (g - oe) / (_e - oe), Ee = (P - Ce) / (Le - Ce), Ae = (A - ge) / (ie - ge);
+ isFinite(Se) || (Se = 0.5), isFinite(Ee) || (Ee = 0.5), isFinite(Ae) || (Ae = 0.5);
+ var Be, Pe, me, De, ce, je;
+ switch (x.reversedX && (G = z - 1 - G, N = z - 1 - N), x.reversedY && (Z = O - 1 - Z, H = O - 1 - H), x.reversedZ && (j = U - 1 - j, re = U - 1 - re), x.filled) {
+ case 5:
+ ce = j, je = re, me = Z * U, De = H * U, Be = G * U * O, Pe = N * U * O;
+ break;
+ case 4:
+ ce = j, je = re, Be = G * U, Pe = N * U, me = Z * U * z, De = H * U * z;
+ break;
+ case 3:
+ me = Z, De = H, ce = j * O, je = re * O, Be = G * O * U, Pe = N * O * U;
+ break;
+ case 2:
+ me = Z, De = H, Be = G * O, Pe = N * O, ce = j * O * z, je = re * O * z;
+ break;
+ case 1:
+ Be = G, Pe = N, ce = j * z, je = re * z, me = Z * z * U, De = H * z * U;
+ break;
+ default:
+ Be = G, Pe = N, me = Z * z, De = H * z, ce = j * z * O, je = re * z * O;
+ break;
+ }
+ var lt = C[Be + me + ce], pt = C[Be + me + je], Vt = C[Be + De + ce], ot = C[Be + De + je], ut = C[Pe + me + ce], Wt = C[Pe + me + je], Nt = C[Pe + De + ce], $t = C[Pe + De + je], sr = s.create(), Tr = s.create(), fr = s.create(), $e = s.create();
+ s.lerp(sr, lt, ut, Se), s.lerp(Tr, pt, Wt, Se), s.lerp(fr, Vt, Nt, Se), s.lerp($e, ot, $t, Se);
+ var St = s.create(), Qt = s.create();
+ s.lerp(St, sr, fr, Ee), s.lerp(Qt, Tr, $e, Ee);
+ var Gt = s.create();
+ return s.lerp(Gt, St, Qt, Ae), Gt;
+ }, b = function(T) {
+ var L = 1 / 0;
+ T.sort(function(g, P) {
+ return g - P;
+ });
+ for (var x = T.length, C = 1; C < x; C++) {
+ var M = Math.abs(T[C] - T[C - 1]);
+ M < L && (L = M);
+ }
+ return L;
+ }, p = function(T) {
+ for (var L = [], x = [], C = [], M = {}, g = {}, P = {}, A = T.length, z = 0; z < A; z++) {
+ var O = T[z], U = O[0], G = O[1], Z = O[2];
+ M[U] || (L.push(U), M[U] = true), g[G] || (x.push(G), g[G] = true), P[Z] || (C.push(Z), P[Z] = true);
+ }
+ var j = b(L), N = b(x), H = b(C), re = Math.min(j, N, H);
+ return isFinite(re) ? re : 1;
+ };
+ i.exports = function(T, L) {
+ var x = T.startingPositions, C = T.maxLength || 1e3, M = T.tubeSize || 1, g = T.absoluteTubeSize, P = T.gridFill || "+x+y+z", A = {};
+ P.indexOf("-x") !== -1 && (A.reversedX = true), P.indexOf("-y") !== -1 && (A.reversedY = true), P.indexOf("-z") !== -1 && (A.reversedZ = true), A.filled = u.indexOf(P.replace(/-/g, "").replace(/\+/g, ""));
+ var z = T.getVelocity || function(Wt) {
+ return v(Wt, T, A);
+ }, O = T.getDivergence || function(Wt, Nt) {
+ var $t = s.create(), sr = 1e-4;
+ s.add($t, Wt, [sr, 0, 0]);
+ var Tr = z($t);
+ s.subtract(Tr, Tr, Nt), s.scale(Tr, Tr, 1 / sr), s.add($t, Wt, [0, sr, 0]);
+ var fr = z($t);
+ s.subtract(fr, fr, Nt), s.scale(fr, fr, 1 / sr), s.add($t, Wt, [0, 0, sr]);
+ var $e = z($t);
+ return s.subtract($e, $e, Nt), s.scale($e, $e, 1 / sr), s.add($t, Tr, fr), s.add($t, $t, $e), $t;
+ }, U = [], G = L[0][0], Z = L[0][1], j = L[0][2], N = L[1][0], H = L[1][1], re = L[1][2], oe = function(Wt) {
+ var Nt = Wt[0], $t = Wt[1], sr = Wt[2];
+ return !(Nt < G || Nt > N || $t < Z || $t > H || sr < j || sr > re);
+ }, _e = s.distance(L[0], L[1]), Ce = 10 * _e / C, Le = Ce * Ce, ge = 1, ie = 0, Se = x.length;
+ Se > 1 && (ge = p(x));
+ for (var Ee = 0; Ee < Se; Ee++) {
+ var Ae = s.create();
+ s.copy(Ae, x[Ee]);
+ var Be = [Ae], Pe = [], me = z(Ae), De = Ae;
+ Pe.push(me);
+ var ce = [], je = O(Ae, me), lt = s.length(je);
+ isFinite(lt) && lt > ie && (ie = lt), ce.push(lt), U.push({ points: Be, velocities: Pe, divergences: ce });
+ for (var pt = 0; pt < C * 100 && Be.length < C && oe(Ae); ) {
+ pt++;
+ var Vt = s.clone(me), ot = s.squaredLength(Vt);
+ if (ot === 0) break;
+ if (ot > Le && s.scale(Vt, Vt, Ce / Math.sqrt(ot)), s.add(Vt, Vt, Ae), me = z(Vt), s.squaredDistance(De, Vt) - Le > -1e-4 * Le) {
+ Be.push(Vt), De = Vt, Pe.push(me);
+ var je = O(Vt, me), lt = s.length(je);
+ isFinite(lt) && lt > ie && (ie = lt), ce.push(lt);
+ }
+ Ae = Vt;
+ }
+ }
+ var ut = f(U, T.colormap, ie, ge);
+ return g ? ut.tubeScale = g : (ie === 0 && (ie = 1), ut.tubeScale = M * 0.5 * ge / ie), ut;
+ };
+ var k = o(6740), E = o(6405).createMesh;
+ i.exports.createTubeMesh = function(T, L) {
+ return E(T, L, { shaders: k, traceType: "streamtube" });
+ };
+ }, 7827: function(i) {
+ i.exports = ["<<=", ">>=", "++", "--", "<<", ">>", "<=", ">=", "==", "!=", "&&", "||", "+=", "-=", "*=", "/=", "%=", "&=", "^^", "^=", "|=", "(", ")", "[", "]", ".", "!", "~", "*", "/", "%", "+", "-", "<", ">", "&", "^", "|", "?", ":", "=", ",", ";", "{", "}"];
+ }, 7842: function(i, a, o) {
+ var s = o(6330), l = o(1533), u = o(2651), c = o(6768), f = o(869), h = o(8697);
+ i.exports = d;
+ function d(v, _) {
+ if (s(v)) return _ ? h(v, d(_)) : [v[0].clone(), v[1].clone()];
+ var b = 0, p, k;
+ if (l(v)) p = v.clone();
+ else if (typeof v == "string") p = c(v);
+ else {
+ if (v === 0) return [u(0), u(1)];
+ if (v === Math.floor(v)) p = u(v);
+ else {
+ for (; v !== Math.floor(v); ) v = v * Math.pow(2, 256), b -= 256;
+ p = u(v);
+ }
+ }
+ if (s(_)) p.mul(_[1]), k = _[0].clone();
+ else if (l(_)) k = _.clone();
+ else if (typeof _ == "string") k = c(_);
+ else if (!_) k = u(1);
+ else if (_ === Math.floor(_)) k = u(_);
+ else {
+ for (; _ !== Math.floor(_); ) _ = _ * Math.pow(2, 256), b += 256;
+ k = u(_);
+ }
+ return b > 0 ? p = p.ushln(b) : b < 0 && (k = k.ushln(-b)), f(p, k);
+ }
+ }, 7894: function(i) {
+ i.exports = a;
+ function a(o) {
+ return o[0] = 1, o[1] = 0, o[2] = 0, o[3] = 0, o[4] = 0, o[5] = 1, o[6] = 0, o[7] = 0, o[8] = 0, o[9] = 0, o[10] = 1, o[11] = 0, o[12] = 0, o[13] = 0, o[14] = 0, o[15] = 1, o;
+ }
+ }, 7932: function(i, a, o) {
+ var s = o(620);
+ i.exports = s.slice().concat(["layout", "centroid", "smooth", "case", "mat2x2", "mat2x3", "mat2x4", "mat3x2", "mat3x3", "mat3x4", "mat4x2", "mat4x3", "mat4x4", "uvec2", "uvec3", "uvec4", "samplerCubeShadow", "sampler2DArray", "sampler2DArrayShadow", "isampler2D", "isampler3D", "isamplerCube", "isampler2DArray", "usampler2D", "usampler3D", "usamplerCube", "usampler2DArray", "coherent", "restrict", "readonly", "writeonly", "resource", "atomic_uint", "noperspective", "patch", "sample", "subroutine", "common", "partition", "active", "filter", "image1D", "image2D", "image3D", "imageCube", "iimage1D", "iimage2D", "iimage3D", "iimageCube", "uimage1D", "uimage2D", "uimage3D", "uimageCube", "image1DArray", "image2DArray", "iimage1DArray", "iimage2DArray", "uimage1DArray", "uimage2DArray", "image1DShadow", "image2DShadow", "image1DArrayShadow", "image2DArrayShadow", "imageBuffer", "iimageBuffer", "uimageBuffer", "sampler1DArray", "sampler1DArrayShadow", "isampler1D", "isampler1DArray", "usampler1D", "usampler1DArray", "isampler2DRect", "usampler2DRect", "samplerBuffer", "isamplerBuffer", "usamplerBuffer", "sampler2DMS", "isampler2DMS", "usampler2DMS", "sampler2DMSArray", "isampler2DMSArray", "usampler2DMSArray"]);
+ }, 7960: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = s[0] - o[0], u = s[1] - o[1], c = s[2] - o[2], f = s[3] - o[3];
+ return l * l + u * u + c * c + f * f;
+ }
+ }, 8105: function(i) {
+ i.exports = o;
+ var a = { "lo===p0": s, "lo=p0)&&!(p1>=hi)": d };
+ function o(v) {
+ return a[v];
+ }
+ function s(v, _, b, p, k, E, T) {
+ for (var L = 2 * v, x = L * b, C = x, M = b, g = _, P = v + _, A = b; p > A; ++A, x += L) {
+ var z = k[x + g];
+ if (z === T) if (M === A) M += 1, C += L;
+ else {
+ for (var O = 0; L > O; ++O) {
+ var U = k[x + O];
+ k[x + O] = k[C], k[C++] = U;
+ }
+ var G = E[A];
+ E[A] = E[M], E[M++] = G;
+ }
+ }
+ return M;
+ }
+ function l(v, _, b, p, k, E, T) {
+ for (var L = 2 * v, x = L * b, C = x, M = b, g = _, P = v + _, A = b; p > A; ++A, x += L) {
+ var z = k[x + g];
+ if (z < T) if (M === A) M += 1, C += L;
+ else {
+ for (var O = 0; L > O; ++O) {
+ var U = k[x + O];
+ k[x + O] = k[C], k[C++] = U;
+ }
+ var G = E[A];
+ E[A] = E[M], E[M++] = G;
+ }
+ }
+ return M;
+ }
+ function u(v, _, b, p, k, E, T) {
+ for (var L = 2 * v, x = L * b, C = x, M = b, g = _, P = v + _, A = b; p > A; ++A, x += L) {
+ var z = k[x + P];
+ if (z <= T) if (M === A) M += 1, C += L;
+ else {
+ for (var O = 0; L > O; ++O) {
+ var U = k[x + O];
+ k[x + O] = k[C], k[C++] = U;
+ }
+ var G = E[A];
+ E[A] = E[M], E[M++] = G;
+ }
+ }
+ return M;
+ }
+ function c(v, _, b, p, k, E, T) {
+ for (var L = 2 * v, x = L * b, C = x, M = b, g = _, P = v + _, A = b; p > A; ++A, x += L) {
+ var z = k[x + P];
+ if (z <= T) if (M === A) M += 1, C += L;
+ else {
+ for (var O = 0; L > O; ++O) {
+ var U = k[x + O];
+ k[x + O] = k[C], k[C++] = U;
+ }
+ var G = E[A];
+ E[A] = E[M], E[M++] = G;
+ }
+ }
+ return M;
+ }
+ function f(v, _, b, p, k, E, T) {
+ for (var L = 2 * v, x = L * b, C = x, M = b, g = _, P = v + _, A = b; p > A; ++A, x += L) {
+ var z = k[x + g], O = k[x + P];
+ if (z <= T && T <= O) if (M === A) M += 1, C += L;
+ else {
+ for (var U = 0; L > U; ++U) {
+ var G = k[x + U];
+ k[x + U] = k[C], k[C++] = G;
+ }
+ var Z = E[A];
+ E[A] = E[M], E[M++] = Z;
+ }
+ }
+ return M;
+ }
+ function h(v, _, b, p, k, E, T) {
+ for (var L = 2 * v, x = L * b, C = x, M = b, g = _, P = v + _, A = b; p > A; ++A, x += L) {
+ var z = k[x + g], O = k[x + P];
+ if (z < T && T <= O) if (M === A) M += 1, C += L;
+ else {
+ for (var U = 0; L > U; ++U) {
+ var G = k[x + U];
+ k[x + U] = k[C], k[C++] = G;
+ }
+ var Z = E[A];
+ E[A] = E[M], E[M++] = Z;
+ }
+ }
+ return M;
+ }
+ function d(v, _, b, p, k, E, T, L) {
+ for (var x = 2 * v, C = x * b, M = C, g = b, P = _, A = v + _, z = b; p > z; ++z, C += x) {
+ var O = k[C + P], U = k[C + A];
+ if (!(O >= T) && !(L >= U)) if (g === z) g += 1, M += x;
+ else {
+ for (var G = 0; x > G; ++G) {
+ var Z = k[C + G];
+ k[C + G] = k[M], k[M++] = Z;
+ }
+ var j = E[z];
+ E[z] = E[g], E[g++] = j;
+ }
+ }
+ return g;
+ }
+ }, 8107: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = Math.min(s[0], l[0]), o[1] = Math.min(s[1], l[1]), o[2] = Math.min(s[2], l[2]), o;
+ }
+ }, 8116: function(i, a, o) {
+ var s = o(7518), l = o(870);
+ function u(f) {
+ this.bindVertexArrayOES = f.bindVertexArray.bind(f), this.createVertexArrayOES = f.createVertexArray.bind(f), this.deleteVertexArrayOES = f.deleteVertexArray.bind(f);
+ }
+ function c(f, h, d, v) {
+ var _ = f.createVertexArray ? new u(f) : f.getExtension("OES_vertex_array_object"), b;
+ return _ ? b = s(f, _) : b = l(f), b.update(h, d, v), b;
+ }
+ i.exports = c;
+ }, 8192: function(i, a, o) {
+ i.exports = c;
+ var s = o(2825), l = o(3536), u = o(244);
+ function c(f, h) {
+ var d = s(f[0], f[1], f[2]), v = s(h[0], h[1], h[2]);
+ l(d, d), l(v, v);
+ var _ = u(d, v);
+ return _ > 1 ? 0 : Math.acos(_);
+ }
+ }, 8210: function(i) {
+ i.exports = o;
+ function a(s, l) {
+ var u = s + l, c = u - s, f = u - c, h = l - c, d = s - f, v = d + h;
+ return v ? [v, u] : [u];
+ }
+ function o(s, l) {
+ var u = s.length | 0, c = l.length | 0;
+ if (u === 1 && c === 1) return a(s[0], l[0]);
+ var f = u + c, h = new Array(f), d = 0, v = 0, _ = 0, b = Math.abs, p = s[v], k = b(p), E = l[_], T = b(E), L, x;
+ k < T ? (x = p, v += 1, v < u && (p = s[v], k = b(p))) : (x = E, _ += 1, _ < c && (E = l[_], T = b(E))), v < u && k < T || _ >= c ? (L = p, v += 1, v < u && (p = s[v], k = b(p))) : (L = E, _ += 1, _ < c && (E = l[_], T = b(E)));
+ for (var C = L + x, M = C - L, g = x - M, P = g, A = C, z, O, U, G, Z; v < u && _ < c; ) k < T ? (L = p, v += 1, v < u && (p = s[v], k = b(p))) : (L = E, _ += 1, _ < c && (E = l[_], T = b(E))), x = P, C = L + x, M = C - L, g = x - M, g && (h[d++] = g), z = A + C, O = z - A, U = z - O, G = C - O, Z = A - U, P = Z + G, A = z;
+ for (; v < u; ) L = p, x = P, C = L + x, M = C - L, g = x - M, g && (h[d++] = g), z = A + C, O = z - A, U = z - O, G = C - O, Z = A - U, P = Z + G, A = z, v += 1, v < u && (p = s[v]);
+ for (; _ < c; ) L = E, x = P, C = L + x, M = C - L, g = x - M, g && (h[d++] = g), z = A + C, O = z - A, U = z - O, G = C - O, Z = A - U, P = Z + G, A = z, _ += 1, _ < c && (E = l[_]);
+ return P && (h[d++] = P), A && (h[d++] = A), d || (h[d++] = 0), h.length = d, h;
+ }
+ }, 8277: function(i) {
+ function a() {
+ return function(f, h, d, v, _) {
+ var b = f[0], p = f[1], k = f[2], E = d[0], T = d[1], L = d[2], x = [0, 0, 0];
+ v |= 0;
+ var C = 0, M = 0, g = 0, P = L, A = T - k * L, z = E - p * T;
+ for (g = 0; g < b; ++g) {
+ for (M = 0; M < p; ++M) {
+ for (C = 0; C < k; ++C) {
+ {
+ var O = _, U;
+ for (U = 0; U < x.length - 1; ++U) O = O[x[U]];
+ h[v] = O[x[x.length - 1]];
+ }
+ v += P, ++x[2];
+ }
+ v += A, x[2] -= k, ++x[1];
+ }
+ v += z, x[1] -= p, ++x[0];
+ }
+ };
+ }
+ function o() {
+ return a();
+ }
+ var s = o;
+ function l(f) {
+ var h = {};
+ return function(v, _) {
+ var b = v.dtype, p = v.order, k = [b, p.join()].join(), E = h[k];
+ return E || (h[k] = E = f([b, p])), E(v.shape.slice(0), v.data, v.stride, v.offset | 0, _);
+ };
+ }
+ function u(f) {
+ return l(s.bind(void 0, f));
+ }
+ function c(f) {
+ return u({ funcName: f.funcName });
+ }
+ i.exports = c({ funcName: "convert" });
+ }, 8284: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ var l = { identity: s }, u = o.valueOf;
+ return Object.defineProperty(o, "valueOf", { value: function(c) {
+ return c !== s ? u.apply(this, arguments) : l;
+ }, writable: true }), l;
+ }
+ }, 8406: function(i, a) {
+ var o = 1e-6, s = 1e-6;
+ a.vertexNormals = function(l, u, c) {
+ for (var f = u.length, h = new Array(f), d = c === void 0 ? o : c, v = 0; v < f; ++v) h[v] = [0, 0, 0];
+ for (var v = 0; v < l.length; ++v) for (var _ = l[v], b = 0, p = _[_.length - 1], k = _[0], E = 0; E < _.length; ++E) {
+ b = p, p = k, k = _[(E + 1) % _.length];
+ for (var T = u[b], L = u[p], x = u[k], C = new Array(3), M = 0, g = new Array(3), P = 0, A = 0; A < 3; ++A) C[A] = T[A] - L[A], M += C[A] * C[A], g[A] = x[A] - L[A], P += g[A] * g[A];
+ if (M * P > d) for (var z = h[p], O = 1 / Math.sqrt(M * P), A = 0; A < 3; ++A) {
+ var U = (A + 1) % 3, G = (A + 2) % 3;
+ z[A] += O * (g[U] * C[G] - g[G] * C[U]);
+ }
+ }
+ for (var v = 0; v < f; ++v) {
+ for (var z = h[v], Z = 0, A = 0; A < 3; ++A) Z += z[A] * z[A];
+ if (Z > d) for (var O = 1 / Math.sqrt(Z), A = 0; A < 3; ++A) z[A] *= O;
+ else for (var A = 0; A < 3; ++A) z[A] = 0;
+ }
+ return h;
+ }, a.faceNormals = function(l, u, c) {
+ for (var f = l.length, h = new Array(f), d = c === void 0 ? s : c, v = 0; v < f; ++v) {
+ for (var _ = l[v], b = new Array(3), p = 0; p < 3; ++p) b[p] = u[_[p]];
+ for (var k = new Array(3), E = new Array(3), p = 0; p < 3; ++p) k[p] = b[1][p] - b[0][p], E[p] = b[2][p] - b[0][p];
+ for (var T = new Array(3), L = 0, p = 0; p < 3; ++p) {
+ var x = (p + 1) % 3, C = (p + 2) % 3;
+ T[p] = k[x] * E[C] - k[C] * E[x], L += T[p] * T[p];
+ }
+ L > d ? L = 1 / Math.sqrt(L) : L = 0;
+ for (var p = 0; p < 3; ++p) T[p] *= L;
+ h[v] = T;
+ }
+ return h;
+ };
+ }, 8418: function(i, a, o) {
+ var s = o(5219), l = o(2762), u = o(8116), c = o(1888), f = o(6760), h = o(1283), d = o(9366), v = o(5964), _ = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], b = ArrayBuffer, p = DataView;
+ function k(Ae) {
+ return b.isView(Ae) && !(Ae instanceof p);
+ }
+ function E(Ae) {
+ return Array.isArray(Ae) || k(Ae);
+ }
+ i.exports = Ee;
+ function T(Ae, Be) {
+ var Pe = Ae[0], me = Ae[1], De = Ae[2], ce = Ae[3];
+ return Ae[0] = Be[0] * Pe + Be[4] * me + Be[8] * De + Be[12] * ce, Ae[1] = Be[1] * Pe + Be[5] * me + Be[9] * De + Be[13] * ce, Ae[2] = Be[2] * Pe + Be[6] * me + Be[10] * De + Be[14] * ce, Ae[3] = Be[3] * Pe + Be[7] * me + Be[11] * De + Be[15] * ce, Ae;
+ }
+ function L(Ae, Be, Pe, me) {
+ return T(me, me), T(me, me), T(me, me);
+ }
+ function x(Ae, Be) {
+ this.index = Ae, this.dataCoordinate = this.position = Be;
+ }
+ function C(Ae) {
+ return Ae === true || Ae > 1 ? 1 : Ae;
+ }
+ function M(Ae, Be, Pe, me, De, ce, je, lt, pt, Vt, ot, ut) {
+ this.gl = Ae, this.pixelRatio = 1, this.shader = Be, this.orthoShader = Pe, this.projectShader = me, this.pointBuffer = De, this.colorBuffer = ce, this.glyphBuffer = je, this.idBuffer = lt, this.vao = pt, this.vertexCount = 0, this.lineVertexCount = 0, this.opacity = 1, this.hasAlpha = false, this.lineWidth = 0, this.projectScale = [0.6666666666666666, 0.6666666666666666, 0.6666666666666666], this.projectOpacity = [1, 1, 1], this.projectHasAlpha = false, this.pickId = 0, this.pickPerspectiveShader = Vt, this.pickOrthoShader = ot, this.pickProjectShader = ut, this.points = [], this._selectResult = new x(0, [0, 0, 0]), this.useOrtho = true, this.bounds = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]], this.axesProject = [true, true, true], this.axesBounds = [[-1 / 0, -1 / 0, -1 / 0], [1 / 0, 1 / 0, 1 / 0]], this.highlightId = [1, 1, 1, 1], this.highlightScale = 2, this.clipBounds = [[-1 / 0, -1 / 0, -1 / 0], [1 / 0, 1 / 0, 1 / 0]], this.dirty = true;
+ }
+ var g = M.prototype;
+ g.pickSlots = 1, g.setPickBase = function(Ae) {
+ this.pickId = Ae;
+ }, g.isTransparent = function() {
+ if (this.hasAlpha) return true;
+ for (var Ae = 0; Ae < 3; ++Ae) if (this.axesProject[Ae] && this.projectHasAlpha) return true;
+ return false;
+ }, g.isOpaque = function() {
+ if (!this.hasAlpha) return true;
+ for (var Ae = 0; Ae < 3; ++Ae) if (this.axesProject[Ae] && !this.projectHasAlpha) return true;
+ return false;
+ };
+ var P = [0, 0], A = [0, 0, 0], z = [0, 0, 0], O = [0, 0, 0, 1], U = [0, 0, 0, 1], G = _.slice(), Z = [0, 0, 0], j = [[0, 0, 0], [0, 0, 0]];
+ function N(Ae) {
+ return Ae[0] = Ae[1] = Ae[2] = 0, Ae;
+ }
+ function H(Ae, Be) {
+ return Ae[0] = Be[0], Ae[1] = Be[1], Ae[2] = Be[2], Ae[3] = 1, Ae;
+ }
+ function re(Ae, Be, Pe, me) {
+ return Ae[0] = Be[0], Ae[1] = Be[1], Ae[2] = Be[2], Ae[Pe] = me, Ae;
+ }
+ function oe(Ae) {
+ for (var Be = j, Pe = 0; Pe < 2; ++Pe) for (var me = 0; me < 3; ++me) Be[Pe][me] = Math.max(Math.min(Ae[Pe][me], 1e8), -1e8);
+ return Be;
+ }
+ function _e(Ae, Be, Pe, me) {
+ var De = Be.axesProject, ce = Be.gl, je = Ae.uniforms, lt = Pe.model || _, pt = Pe.view || _, Vt = Pe.projection || _, ot = Be.axesBounds, ut = oe(Be.clipBounds), Wt;
+ Be.axes && Be.axes.lastCubeProps ? Wt = Be.axes.lastCubeProps.axis : Wt = [1, 1, 1], P[0] = 2 / ce.drawingBufferWidth, P[1] = 2 / ce.drawingBufferHeight, Ae.bind(), je.view = pt, je.projection = Vt, je.screenSize = P, je.highlightId = Be.highlightId, je.highlightScale = Be.highlightScale, je.clipBounds = ut, je.pickGroup = Be.pickId / 255, je.pixelRatio = me;
+ for (var Nt = 0; Nt < 3; ++Nt) if (De[Nt]) {
+ je.scale = Be.projectScale[Nt], je.opacity = Be.projectOpacity[Nt];
+ for (var $t = G, sr = 0; sr < 16; ++sr) $t[sr] = 0;
+ for (var sr = 0; sr < 4; ++sr) $t[5 * sr] = 1;
+ $t[5 * Nt] = 0, Wt[Nt] < 0 ? $t[12 + Nt] = ot[0][Nt] : $t[12 + Nt] = ot[1][Nt], f($t, lt, $t), je.model = $t;
+ var Tr = (Nt + 1) % 3, fr = (Nt + 2) % 3, $e = N(A), St = N(z);
+ $e[Tr] = 1, St[fr] = 1;
+ var Qt = L(Vt, pt, lt, H(O, $e)), Gt = L(Vt, pt, lt, H(U, St));
+ if (Math.abs(Qt[1]) > Math.abs(Gt[1])) {
+ var _t = Qt;
+ Qt = Gt, Gt = _t, _t = $e, $e = St, St = _t;
+ var It = Tr;
+ Tr = fr, fr = It;
+ }
+ Qt[0] < 0 && ($e[Tr] = -1), Gt[1] > 0 && (St[fr] = -1);
+ for (var mt = 0, er = 0, sr = 0; sr < 4; ++sr) mt += Math.pow(lt[4 * Tr + sr], 2), er += Math.pow(lt[4 * fr + sr], 2);
+ $e[Tr] /= Math.sqrt(mt), St[fr] /= Math.sqrt(er), je.axes[0] = $e, je.axes[1] = St, je.fragClipBounds[0] = re(Z, ut[0], Nt, -1e8), je.fragClipBounds[1] = re(Z, ut[1], Nt, 1e8), Be.vao.bind(), Be.vao.draw(ce.TRIANGLES, Be.vertexCount), Be.lineWidth > 0 && (ce.lineWidth(Be.lineWidth * me), Be.vao.draw(ce.LINES, Be.lineVertexCount, Be.vertexCount)), Be.vao.unbind();
+ }
+ }
+ var Ce = [-1e8, -1e8, -1e8], Le = [1e8, 1e8, 1e8], ge = [Ce, Le];
+ function ie(Ae, Be, Pe, me, De, ce, je) {
+ var lt = Pe.gl;
+ if ((ce === Pe.projectHasAlpha || je) && _e(Be, Pe, me, De), ce === Pe.hasAlpha || je) {
+ Ae.bind();
+ var pt = Ae.uniforms;
+ pt.model = me.model || _, pt.view = me.view || _, pt.projection = me.projection || _, P[0] = 2 / lt.drawingBufferWidth, P[1] = 2 / lt.drawingBufferHeight, pt.screenSize = P, pt.highlightId = Pe.highlightId, pt.highlightScale = Pe.highlightScale, pt.fragClipBounds = ge, pt.clipBounds = Pe.axes.bounds, pt.opacity = Pe.opacity, pt.pickGroup = Pe.pickId / 255, pt.pixelRatio = De, Pe.vao.bind(), Pe.vao.draw(lt.TRIANGLES, Pe.vertexCount), Pe.lineWidth > 0 && (lt.lineWidth(Pe.lineWidth * De), Pe.vao.draw(lt.LINES, Pe.lineVertexCount, Pe.vertexCount)), Pe.vao.unbind();
+ }
+ }
+ g.draw = function(Ae) {
+ var Be = this.useOrtho ? this.orthoShader : this.shader;
+ ie(Be, this.projectShader, this, Ae, this.pixelRatio, false, false);
+ }, g.drawTransparent = function(Ae) {
+ var Be = this.useOrtho ? this.orthoShader : this.shader;
+ ie(Be, this.projectShader, this, Ae, this.pixelRatio, true, false);
+ }, g.drawPick = function(Ae) {
+ var Be = this.useOrtho ? this.pickOrthoShader : this.pickPerspectiveShader;
+ ie(Be, this.pickProjectShader, this, Ae, 1, true, true);
+ }, g.pick = function(Ae) {
+ if (!Ae || Ae.id !== this.pickId) return null;
+ var Be = Ae.value[2] + (Ae.value[1] << 8) + (Ae.value[0] << 16);
+ if (Be >= this.pointCount || Be < 0) return null;
+ var Pe = this.points[Be], me = this._selectResult;
+ me.index = Be;
+ for (var De = 0; De < 3; ++De) me.position[De] = me.dataCoordinate[De] = Pe[De];
+ return me;
+ }, g.highlight = function(Ae) {
+ if (!Ae) this.highlightId = [1, 1, 1, 1];
+ else {
+ var Be = Ae.index, Pe = Be & 255, me = Be >> 8 & 255, De = Be >> 16 & 255;
+ this.highlightId = [Pe / 255, me / 255, De / 255, 0];
+ }
+ };
+ function Se(Ae, Be, Pe, me) {
+ var De;
+ E(Ae) ? Be < Ae.length ? De = Ae[Be] : De = void 0 : De = Ae, De = v(De);
+ var ce = true;
+ s(De) && (De = "▼", ce = false), Pe || (Pe = {});
+ var je = Pe.family;
+ E(je) && (je = je[Be]), je || (je = "normal");
+ var lt = Pe.weight;
+ E(lt) && (lt = lt[Be]), lt || (lt = "normal");
+ var pt = Pe.style;
+ E(pt) && (pt = pt[Be]), pt || (pt = "normal");
+ var Vt = Pe.variant;
+ E(Vt) && (Vt = Vt[Be]), Vt || (Vt = "normal");
+ var ot = d(De, { family: je, weight: lt, style: pt, variant: Vt }, me), ot = d(De, Pe, me);
+ return { mesh: ot[0], lines: ot[1], bounds: ot[2], visible: ce };
+ }
+ g.update = function(Ae) {
+ if (Ae = Ae || {}, "perspective" in Ae && (this.useOrtho = !Ae.perspective), "orthographic" in Ae && (this.useOrtho = !!Ae.orthographic), "lineWidth" in Ae && (this.lineWidth = Ae.lineWidth), "project" in Ae) if (E(Ae.project)) this.axesProject = Ae.project;
+ else {
+ var Be = !!Ae.project;
+ this.axesProject = [Be, Be, Be];
+ }
+ if ("projectScale" in Ae) if (E(Ae.projectScale)) this.projectScale = Ae.projectScale.slice();
+ else {
+ var Pe = +Ae.projectScale;
+ this.projectScale = [Pe, Pe, Pe];
+ }
+ if (this.projectHasAlpha = false, "projectOpacity" in Ae) {
+ if (E(Ae.projectOpacity)) this.projectOpacity = Ae.projectOpacity.slice();
+ else {
+ var Pe = +Ae.projectOpacity;
+ this.projectOpacity = [Pe, Pe, Pe];
+ }
+ for (var me = 0; me < 3; ++me) this.projectOpacity[me] = C(this.projectOpacity[me]), this.projectOpacity[me] < 1 && (this.projectHasAlpha = true);
+ }
+ this.hasAlpha = false, "opacity" in Ae && (this.opacity = C(Ae.opacity), this.opacity < 1 && (this.hasAlpha = true)), this.dirty = true;
+ var De = Ae.position, ce = { family: Ae.font || "normal", style: Ae.fontStyle || "normal", weight: Ae.fontWeight || "normal", variant: Ae.fontVariant || "normal" }, je = Ae.alignment || [0, 0], lt, pt;
+ if (je.length === 2) lt = je[0], pt = je[1];
+ else {
+ lt = [], pt = [];
+ for (var me = 0; me < je.length; ++me) lt[me] = je[me][0], pt[me] = je[me][1];
+ }
+ var Vt = [1 / 0, 1 / 0, 1 / 0], ot = [-1 / 0, -1 / 0, -1 / 0], ut = Ae.glyph, Wt = Ae.color, Nt = Ae.size, $t = Ae.angle, sr = Ae.lineColor, Tr = -1, fr = 0, $e = 0, St = 0;
+ if (De.length) {
+ St = De.length;
+ e: for (var me = 0; me < St; ++me) {
+ for (var Qt = De[me], Gt = 0; Gt < 3; ++Gt) if (isNaN(Qt[Gt]) || !isFinite(Qt[Gt])) continue e;
+ var _t = Se(ut, me, ce, this.pixelRatio), It = _t.mesh, mt = _t.lines, er = _t.bounds;
+ fr += It.cells.length * 3, $e += mt.edges.length * 2;
+ }
+ }
+ var lr = fr + $e, wr = c.mallocFloat(3 * lr), Lr = c.mallocFloat(4 * lr), ti = c.mallocFloat(2 * lr), Br = c.mallocUint32(lr);
+ if (lr > 0) {
+ var Vr = 0, dt = fr, Ge = [0, 0, 0, 1], Je = [0, 0, 0, 1], We = E(Wt) && E(Wt[0]), tt = E(sr) && E(sr[0]);
+ e: for (var me = 0; me < St; ++me) {
+ Tr += 1;
+ for (var Qt = De[me], Gt = 0; Gt < 3; ++Gt) {
+ if (isNaN(Qt[Gt]) || !isFinite(Qt[Gt])) continue e;
+ ot[Gt] = Math.max(ot[Gt], Qt[Gt]), Vt[Gt] = Math.min(Vt[Gt], Qt[Gt]);
+ }
+ var _t = Se(ut, me, ce, this.pixelRatio), It = _t.mesh, mt = _t.lines, er = _t.bounds, xt = _t.visible;
+ if (!xt) Ge = [1, 1, 1, 0];
+ else if (E(Wt)) {
+ var Ie;
+ if (We ? me < Wt.length ? Ie = Wt[me] : Ie = [0, 0, 0, 0] : Ie = Wt, Ie.length === 3) {
+ for (var Gt = 0; Gt < 3; ++Gt) Ge[Gt] = Ie[Gt];
+ Ge[3] = 1;
+ } else if (Ie.length === 4) {
+ for (var Gt = 0; Gt < 4; ++Gt) Ge[Gt] = Ie[Gt];
+ !this.hasAlpha && Ie[3] < 1 && (this.hasAlpha = true);
+ }
+ } else Ge[0] = Ge[1] = Ge[2] = 0, Ge[3] = 1;
+ if (!xt) Je = [1, 1, 1, 0];
+ else if (E(sr)) {
+ var Ie;
+ if (tt ? me < sr.length ? Ie = sr[me] : Ie = [0, 0, 0, 0] : Ie = sr, Ie.length === 3) {
+ for (var Gt = 0; Gt < 3; ++Gt) Je[Gt] = Ie[Gt];
+ Je[Gt] = 1;
+ } else if (Ie.length === 4) {
+ for (var Gt = 0; Gt < 4; ++Gt) Je[Gt] = Ie[Gt];
+ !this.hasAlpha && Ie[3] < 1 && (this.hasAlpha = true);
+ }
+ } else Je[0] = Je[1] = Je[2] = 0, Je[3] = 1;
+ var xe = 0.5;
+ xt ? E(Nt) ? me < Nt.length ? xe = +Nt[me] : xe = 12 : Nt ? xe = +Nt : this.useOrtho && (xe = 12) : xe = 0;
+ var ke = 0;
+ E($t) ? me < $t.length ? ke = +$t[me] : ke = 0 : $t && (ke = +$t);
+ for (var vt = Math.cos(ke), ir = Math.sin(ke), Qt = De[me], Gt = 0; Gt < 3; ++Gt) ot[Gt] = Math.max(ot[Gt], Qt[Gt]), Vt[Gt] = Math.min(Vt[Gt], Qt[Gt]);
+ var ar = lt, vr = pt, ar = 0;
+ E(lt) ? me < lt.length ? ar = lt[me] : ar = 0 : lt && (ar = lt);
+ var vr = 0;
+ E(pt) ? me < pt.length ? vr = pt[me] : vr = 0 : pt && (vr = pt), ar *= ar > 0 ? 1 - er[0][0] : ar < 0 ? 1 + er[1][0] : 1, vr *= vr > 0 ? 1 - er[0][1] : vr < 0 ? 1 + er[1][1] : 1;
+ for (var ii = [ar, vr], In = It.cells || [], wi = It.positions || [], Gt = 0; Gt < In.length; ++Gt) for (var pi = In[Gt], $r = 0; $r < 3; ++$r) {
+ for (var di = 0; di < 3; ++di) wr[3 * Vr + di] = Qt[di];
+ for (var di = 0; di < 4; ++di) Lr[4 * Vr + di] = Ge[di];
+ Br[Vr] = Tr;
+ var ji = wi[pi[$r]];
+ ti[2 * Vr] = xe * (vt * ji[0] - ir * ji[1] + ii[0]), ti[2 * Vr + 1] = xe * (ir * ji[0] + vt * ji[1] + ii[1]), Vr += 1;
+ }
+ for (var In = mt.edges, wi = mt.positions, Gt = 0; Gt < In.length; ++Gt) for (var pi = In[Gt], $r = 0; $r < 2; ++$r) {
+ for (var di = 0; di < 3; ++di) wr[3 * dt + di] = Qt[di];
+ for (var di = 0; di < 4; ++di) Lr[4 * dt + di] = Je[di];
+ Br[dt] = Tr;
+ var ji = wi[pi[$r]];
+ ti[2 * dt] = xe * (vt * ji[0] - ir * ji[1] + ii[0]), ti[2 * dt + 1] = xe * (ir * ji[0] + vt * ji[1] + ii[1]), dt += 1;
+ }
+ }
+ }
+ this.bounds = [Vt, ot], this.points = De, this.pointCount = De.length, this.vertexCount = fr, this.lineVertexCount = $e, this.pointBuffer.update(wr), this.colorBuffer.update(Lr), this.glyphBuffer.update(ti), this.idBuffer.update(Br), c.free(wr), c.free(Lr), c.free(ti), c.free(Br);
+ }, g.dispose = function() {
+ this.shader.dispose(), this.orthoShader.dispose(), this.pickPerspectiveShader.dispose(), this.pickOrthoShader.dispose(), this.vao.dispose(), this.pointBuffer.dispose(), this.colorBuffer.dispose(), this.glyphBuffer.dispose(), this.idBuffer.dispose();
+ };
+ function Ee(Ae) {
+ var Be = Ae.gl, Pe = h.createPerspective(Be), me = h.createOrtho(Be), De = h.createProject(Be), ce = h.createPickPerspective(Be), je = h.createPickOrtho(Be), lt = h.createPickProject(Be), pt = l(Be), Vt = l(Be), ot = l(Be), ut = l(Be), Wt = u(Be, [{ buffer: pt, size: 3, type: Be.FLOAT }, { buffer: Vt, size: 4, type: Be.FLOAT }, { buffer: ot, size: 2, type: Be.FLOAT }, { buffer: ut, size: 4, type: Be.UNSIGNED_BYTE, normalized: true }]), Nt = new M(Be, Pe, me, De, pt, Vt, ot, ut, Wt, ce, je, lt);
+ return Nt.update(Ae), Nt;
+ }
+ }, 8489: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ return o[0] = s[0] + l[0] * u, o[1] = s[1] + l[1] * u, o[2] = s[2] + l[2] * u, o;
+ }
+ }, 8507: function(i) {
+ i.exports = s;
+ var a = Math.min;
+ function o(l, u) {
+ return l - u;
+ }
+ function s(l, u) {
+ var c = l.length, f = l.length - u.length;
+ if (f) return f;
+ switch (c) {
+ case 0:
+ return 0;
+ case 1:
+ return l[0] - u[0];
+ case 2:
+ return l[0] + l[1] - u[0] - u[1] || a(l[0], l[1]) - a(u[0], u[1]);
+ case 3:
+ var h = l[0] + l[1], d = u[0] + u[1];
+ if (f = h + l[2] - (d + u[2]), f) return f;
+ var v = a(l[0], l[1]), _ = a(u[0], u[1]);
+ return a(v, l[2]) - a(_, u[2]) || a(v + l[2], h) - a(_ + u[2], d);
+ case 4:
+ var b = l[0], p = l[1], k = l[2], E = l[3], T = u[0], L = u[1], x = u[2], C = u[3];
+ return b + p + k + E - (T + L + x + C) || a(b, p, k, E) - a(T, L, x, C, T) || a(b + p, b + k, b + E, p + k, p + E, k + E) - a(T + L, T + x, T + C, L + x, L + C, x + C) || a(b + p + k, b + p + E, b + k + E, p + k + E) - a(T + L + x, T + L + C, T + x + C, L + x + C);
+ default:
+ for (var M = l.slice().sort(o), g = u.slice().sort(o), P = 0; P < c; ++P) if (f = M[P] - g[P], f) return f;
+ return 0;
+ }
+ }
+ }, 8512: function(i, a, o) {
+ var s = o(665);
+ i.exports = l;
+ function l(u, c, f) {
+ typeof u == "function" && (f = !!c, c = u, u = window);
+ var h = s("ex", u), d = function(v) {
+ f && v.preventDefault();
+ var _ = v.deltaX || 0, b = v.deltaY || 0, p = v.deltaZ || 0, k = v.deltaMode, E = 1;
+ switch (k) {
+ case 1:
+ E = h;
+ break;
+ case 2:
+ E = window.innerHeight;
+ break;
+ }
+ if (_ *= E, b *= E, p *= E, _ || b || p) return c(_, b, p, v);
+ };
+ return u.addEventListener("wheel", d), d;
+ }
+ }, 8545: function(i) {
+ i.exports = o;
+ function a(s, l) {
+ var u = s + l, c = u - s, f = u - c, h = l - c, d = s - f, v = d + h;
+ return v ? [v, u] : [u];
+ }
+ function o(s, l) {
+ var u = s.length | 0, c = l.length | 0;
+ if (u === 1 && c === 1) return a(s[0], -l[0]);
+ var f = u + c, h = new Array(f), d = 0, v = 0, _ = 0, b = Math.abs, p = s[v], k = b(p), E = -l[_], T = b(E), L, x;
+ k < T ? (x = p, v += 1, v < u && (p = s[v], k = b(p))) : (x = E, _ += 1, _ < c && (E = -l[_], T = b(E))), v < u && k < T || _ >= c ? (L = p, v += 1, v < u && (p = s[v], k = b(p))) : (L = E, _ += 1, _ < c && (E = -l[_], T = b(E)));
+ for (var C = L + x, M = C - L, g = x - M, P = g, A = C, z, O, U, G, Z; v < u && _ < c; ) k < T ? (L = p, v += 1, v < u && (p = s[v], k = b(p))) : (L = E, _ += 1, _ < c && (E = -l[_], T = b(E))), x = P, C = L + x, M = C - L, g = x - M, g && (h[d++] = g), z = A + C, O = z - A, U = z - O, G = C - O, Z = A - U, P = Z + G, A = z;
+ for (; v < u; ) L = p, x = P, C = L + x, M = C - L, g = x - M, g && (h[d++] = g), z = A + C, O = z - A, U = z - O, G = C - O, Z = A - U, P = Z + G, A = z, v += 1, v < u && (p = s[v]);
+ for (; _ < c; ) L = E, x = P, C = L + x, M = C - L, g = x - M, g && (h[d++] = g), z = A + C, O = z - A, U = z - O, G = C - O, Z = A - U, P = Z + G, A = z, _ += 1, _ < c && (E = -l[_]);
+ return P && (h[d++] = P), A && (h[d++] = A), d || (h[d++] = 0), h.length = d, h;
+ }
+ }, 8572: function(i) {
+ i.exports = function(o) {
+ return o < 0 ? -1 : o > 0 ? 1 : 0;
+ };
+ }, 8648: function(i, a, o) {
+ i.exports = o(783);
+ }, 8692: function(i) {
+ i.exports = a;
+ function a(o, s, l, u) {
+ var c = l[0], f = l[1], h = s[0] - c, d = s[1] - f, v = Math.sin(u), _ = Math.cos(u);
+ return o[0] = c + h * _ - d * v, o[1] = f + h * v + d * _, o[2] = s[2], o;
+ }
+ }, 8697: function(i, a, o) {
+ var s = o(869);
+ i.exports = l;
+ function l(u, c) {
+ return s(u[0].mul(c[1]), u[1].mul(c[0]));
+ }
+ }, 8731: function(i, a, o) {
+ i.exports = d;
+ var s = o(8866);
+ function l(v, _, b, p, k, E) {
+ this._gl = v, this._wrapper = _, this._index = b, this._locations = p, this._dimension = k, this._constFunc = E;
+ }
+ var u = l.prototype;
+ u.pointer = function(_, b, p, k) {
+ var E = this, T = E._gl, L = E._locations[E._index];
+ T.vertexAttribPointer(L, E._dimension, _ || T.FLOAT, !!b, p || 0, k || 0), T.enableVertexAttribArray(L);
+ }, u.set = function(v, _, b, p) {
+ return this._constFunc(this._locations[this._index], v, _, b, p);
+ }, Object.defineProperty(u, "location", { get: function() {
+ return this._locations[this._index];
+ }, set: function(v) {
+ return v !== this._locations[this._index] && (this._locations[this._index] = v | 0, this._wrapper.program = null), v | 0;
+ } });
+ var c = [function(v, _, b) {
+ return b.length === void 0 ? v.vertexAttrib1f(_, b) : v.vertexAttrib1fv(_, b);
+ }, function(v, _, b, p) {
+ return b.length === void 0 ? v.vertexAttrib2f(_, b, p) : v.vertexAttrib2fv(_, b);
+ }, function(v, _, b, p, k) {
+ return b.length === void 0 ? v.vertexAttrib3f(_, b, p, k) : v.vertexAttrib3fv(_, b);
+ }, function(v, _, b, p, k, E) {
+ return b.length === void 0 ? v.vertexAttrib4f(_, b, p, k, E) : v.vertexAttrib4fv(_, b);
+ }];
+ function f(v, _, b, p, k, E, T) {
+ var L = c[k], x = new l(v, _, b, p, k, L);
+ Object.defineProperty(E, T, { set: function(C) {
+ return v.disableVertexAttribArray(p[b]), L(v, p[b], C), C;
+ }, get: function() {
+ return x;
+ }, enumerable: true });
+ }
+ function h(v, _, b, p, k, E, T) {
+ for (var L = new Array(k), x = new Array(k), C = 0; C < k; ++C) f(v, _, b[C], p, k, L, C), x[C] = L[C];
+ Object.defineProperty(L, "location", { set: function(P) {
+ if (Array.isArray(P)) for (var A = 0; A < k; ++A) x[A].location = P[A];
+ else for (var A = 0; A < k; ++A) x[A].location = P + A;
+ return P;
+ }, get: function() {
+ for (var P = new Array(k), A = 0; A < k; ++A) P[A] = p[b[A]];
+ return P;
+ }, enumerable: true }), L.pointer = function(P, A, z, O) {
+ P = P || v.FLOAT, A = !!A, z = z || k * k, O = O || 0;
+ for (var U = 0; U < k; ++U) {
+ var G = p[b[U]];
+ v.vertexAttribPointer(G, k, P, A, z, O + U * k), v.enableVertexAttribArray(G);
+ }
+ };
+ var M = new Array(k), g = v["vertexAttrib" + k + "fv"];
+ Object.defineProperty(E, T, { set: function(P) {
+ for (var A = 0; A < k; ++A) {
+ var z = p[b[A]];
+ if (v.disableVertexAttribArray(z), Array.isArray(P[0])) g.call(v, z, P[A]);
+ else {
+ for (var O = 0; O < k; ++O) M[O] = P[k * A + O];
+ g.call(v, z, M);
+ }
+ }
+ return P;
+ }, get: function() {
+ return L;
+ }, enumerable: true });
+ }
+ function d(v, _, b, p) {
+ for (var k = {}, E = 0, T = b.length; E < T; ++E) {
+ var L = b[E], x = L.name, C = L.type, M = L.locations;
+ switch (C) {
+ case "bool":
+ case "int":
+ case "float":
+ f(v, _, M[0], p, 1, k, x);
+ break;
+ default:
+ if (C.indexOf("vec") >= 0) {
+ var g = C.charCodeAt(C.length - 1) - 48;
+ if (g < 2 || g > 4) throw new s("", "Invalid data type for attribute " + x + ": " + C);
+ f(v, _, M[0], p, g, k, x);
+ } else if (C.indexOf("mat") >= 0) {
+ var g = C.charCodeAt(C.length - 1) - 48;
+ if (g < 2 || g > 4) throw new s("", "Invalid data type for attribute " + x + ": " + C);
+ h(v, _, M, p, g, k, x);
+ } else throw new s("", "Unknown data type for attribute " + x + ": " + C);
+ break;
+ }
+ }
+ return k;
+ }
+ }, 8828: function(i, a) {
+ "use restrict";
+ var o = 32;
+ a.INT_BITS = o, a.INT_MAX = 2147483647, a.INT_MIN = -1 << o - 1, a.sign = function(u) {
+ return (u > 0) - (u < 0);
+ }, a.abs = function(u) {
+ var c = u >> o - 1;
+ return (u ^ c) - c;
+ }, a.min = function(u, c) {
+ return c ^ (u ^ c) & -(u < c);
+ }, a.max = function(u, c) {
+ return u ^ (u ^ c) & -(u < c);
+ }, a.isPow2 = function(u) {
+ return !(u & u - 1) && !!u;
+ }, a.log2 = function(u) {
+ var c, f;
+ return c = (u > 65535) << 4, u >>>= c, f = (u > 255) << 3, u >>>= f, c |= f, f = (u > 15) << 2, u >>>= f, c |= f, f = (u > 3) << 1, u >>>= f, c |= f, c | u >> 1;
+ }, a.log10 = function(u) {
+ return u >= 1e9 ? 9 : u >= 1e8 ? 8 : u >= 1e7 ? 7 : u >= 1e6 ? 6 : u >= 1e5 ? 5 : u >= 1e4 ? 4 : u >= 1e3 ? 3 : u >= 100 ? 2 : u >= 10 ? 1 : 0;
+ }, a.popCount = function(u) {
+ return u = u - (u >>> 1 & 1431655765), u = (u & 858993459) + (u >>> 2 & 858993459), (u + (u >>> 4) & 252645135) * 16843009 >>> 24;
+ };
+ function s(u) {
+ var c = 32;
+ return u &= -u, u && c--, u & 65535 && (c -= 16), u & 16711935 && (c -= 8), u & 252645135 && (c -= 4), u & 858993459 && (c -= 2), u & 1431655765 && (c -= 1), c;
+ }
+ a.countTrailingZeros = s, a.nextPow2 = function(u) {
+ return u += u === 0, --u, u |= u >>> 1, u |= u >>> 2, u |= u >>> 4, u |= u >>> 8, u |= u >>> 16, u + 1;
+ }, a.prevPow2 = function(u) {
+ return u |= u >>> 1, u |= u >>> 2, u |= u >>> 4, u |= u >>> 8, u |= u >>> 16, u - (u >>> 1);
+ }, a.parity = function(u) {
+ return u ^= u >>> 16, u ^= u >>> 8, u ^= u >>> 4, u &= 15, 27030 >>> u & 1;
+ };
+ var l = new Array(256);
+ (function(u) {
+ for (var c = 0; c < 256; ++c) {
+ var f = c, h = c, d = 7;
+ for (f >>>= 1; f; f >>>= 1) h <<= 1, h |= f & 1, --d;
+ u[c] = h << d & 255;
+ }
+ })(l), a.reverse = function(u) {
+ return l[u & 255] << 24 | l[u >>> 8 & 255] << 16 | l[u >>> 16 & 255] << 8 | l[u >>> 24 & 255];
+ }, a.interleave2 = function(u, c) {
+ return u &= 65535, u = (u | u << 8) & 16711935, u = (u | u << 4) & 252645135, u = (u | u << 2) & 858993459, u = (u | u << 1) & 1431655765, c &= 65535, c = (c | c << 8) & 16711935, c = (c | c << 4) & 252645135, c = (c | c << 2) & 858993459, c = (c | c << 1) & 1431655765, u | c << 1;
+ }, a.deinterleave2 = function(u, c) {
+ return u = u >>> c & 1431655765, u = (u | u >>> 1) & 858993459, u = (u | u >>> 2) & 252645135, u = (u | u >>> 4) & 16711935, u = (u | u >>> 16) & 65535, u << 16 >> 16;
+ }, a.interleave3 = function(u, c, f) {
+ return u &= 1023, u = (u | u << 16) & 4278190335, u = (u | u << 8) & 251719695, u = (u | u << 4) & 3272356035, u = (u | u << 2) & 1227133513, c &= 1023, c = (c | c << 16) & 4278190335, c = (c | c << 8) & 251719695, c = (c | c << 4) & 3272356035, c = (c | c << 2) & 1227133513, u |= c << 1, f &= 1023, f = (f | f << 16) & 4278190335, f = (f | f << 8) & 251719695, f = (f | f << 4) & 3272356035, f = (f | f << 2) & 1227133513, u | f << 2;
+ }, a.deinterleave3 = function(u, c) {
+ return u = u >>> c & 1227133513, u = (u | u >>> 2) & 3272356035, u = (u | u >>> 4) & 251719695, u = (u | u >>> 8) & 4278190335, u = (u | u >>> 16) & 1023, u << 22 >> 22;
+ }, a.nextCombination = function(u) {
+ var c = u | u - 1;
+ return c + 1 | (~c & -~c) - 1 >>> s(u) + 1;
+ };
+ }, 8866: function(i) {
+ function a(o, s, l) {
+ this.shortMessage = s || "", this.longMessage = l || "", this.rawError = o || "", this.message = "gl-shader: " + (s || o || "") + (l ? `
+` + l : ""), this.stack = new Error().stack;
+ }
+ a.prototype = new Error(), a.prototype.name = "GLError", a.prototype.constructor = a, i.exports = a;
+ }, 8902: function(i, a, o) {
+ var s = o(2478), l = o(3250)[3], u = 0, c = 1, f = 2;
+ i.exports = T;
+ function h(L, x, C, M, g) {
+ this.a = L, this.b = x, this.idx = C, this.lowerIds = M, this.upperIds = g;
+ }
+ function d(L, x, C, M) {
+ this.a = L, this.b = x, this.type = C, this.idx = M;
+ }
+ function v(L, x) {
+ var C = L.a[0] - x.a[0] || L.a[1] - x.a[1] || L.type - x.type;
+ return C || L.type !== u && (C = l(L.a, L.b, x.b), C) ? C : L.idx - x.idx;
+ }
+ function _(L, x) {
+ return l(L.a, L.b, x);
+ }
+ function b(L, x, C, M, g) {
+ for (var P = s.lt(x, M, _), A = s.gt(x, M, _), z = P; z < A; ++z) {
+ for (var O = x[z], U = O.lowerIds, Z = U.length; Z > 1 && l(C[U[Z - 2]], C[U[Z - 1]], M) > 0; ) L.push([U[Z - 1], U[Z - 2], g]), Z -= 1;
+ U.length = Z, U.push(g);
+ for (var G = O.upperIds, Z = G.length; Z > 1 && l(C[G[Z - 2]], C[G[Z - 1]], M) < 0; ) L.push([G[Z - 2], G[Z - 1], g]), Z -= 1;
+ G.length = Z, G.push(g);
+ }
+ }
+ function p(L, x) {
+ var C;
+ return L.a[0] < x.a[0] ? C = l(L.a, L.b, x.a) : C = l(x.b, x.a, L.a), C || (x.b[0] < L.b[0] ? C = l(L.a, L.b, x.b) : C = l(x.b, x.a, L.b), C || L.idx - x.idx);
+ }
+ function k(L, x, C) {
+ var M = s.le(L, C, p), g = L[M], P = g.upperIds, A = P[P.length - 1];
+ g.upperIds = [A], L.splice(M + 1, 0, new h(C.a, C.b, C.idx, [A], P));
+ }
+ function E(L, x, C) {
+ var M = C.a;
+ C.a = C.b, C.b = M;
+ var g = s.eq(L, C, p), P = L[g], A = L[g - 1];
+ A.upperIds = P.upperIds, L.splice(g, 1);
+ }
+ function T(L, x) {
+ for (var C = L.length, M = x.length, g = [], P = 0; P < C; ++P) g.push(new d(L[P], null, u, P));
+ for (var P = 0; P < M; ++P) {
+ var A = x[P], z = L[A[0]], O = L[A[1]];
+ z[0] < O[0] ? g.push(new d(z, O, f, P), new d(O, z, c, P)) : z[0] > O[0] && g.push(new d(O, z, f, P), new d(z, O, c, P));
+ }
+ g.sort(v);
+ for (var U = g[0].a[0] - (1 + Math.abs(g[0].a[0])) * Math.pow(2, -52), G = [new h([U, 1], [U, 0], -1, [], [])], Z = [], P = 0, j = g.length; P < j; ++P) {
+ var N = g[P], H = N.type;
+ H === u ? b(Z, G, L, N.a, N.idx) : H === f ? k(G, L, N) : E(G, L, N);
+ }
+ return Z;
+ }
+ }, 8954: function(i, a, o) {
+ i.exports = p;
+ var s = o(3250), l = o(6803).Fw;
+ function u(k, E, T) {
+ this.vertices = k, this.adjacent = E, this.boundary = T, this.lastVisited = -1;
+ }
+ u.prototype.flip = function() {
+ var k = this.vertices[0];
+ this.vertices[0] = this.vertices[1], this.vertices[1] = k;
+ var E = this.adjacent[0];
+ this.adjacent[0] = this.adjacent[1], this.adjacent[1] = E;
+ };
+ function c(k, E, T) {
+ this.vertices = k, this.cell = E, this.index = T;
+ }
+ function f(k, E) {
+ return l(k.vertices, E.vertices);
+ }
+ function h(k) {
+ return function() {
+ var E = this.tuple;
+ return k.apply(this, E);
+ };
+ }
+ function d(k) {
+ var E = s[k + 1];
+ return E || (E = s), h(E);
+ }
+ var v = [];
+ function _(k, E, T) {
+ this.dimension = k, this.vertices = E, this.simplices = T, this.interior = T.filter(function(C) {
+ return !C.boundary;
+ }), this.tuple = new Array(k + 1);
+ for (var L = 0; L <= k; ++L) this.tuple[L] = this.vertices[L];
+ var x = v[k];
+ x || (x = v[k] = d(k)), this.orient = x;
+ }
+ var b = _.prototype;
+ b.handleBoundaryDegeneracy = function(k, E) {
+ var T = this.dimension, L = this.vertices.length - 1, x = this.tuple, C = this.vertices, M = [k];
+ for (k.lastVisited = -L; M.length > 0; ) {
+ k = M.pop();
+ for (var g = k.adjacent, P = 0; P <= T; ++P) {
+ var A = g[P];
+ if (!(!A.boundary || A.lastVisited <= -L)) {
+ for (var z = A.vertices, O = 0; O <= T; ++O) {
+ var U = z[O];
+ U < 0 ? x[O] = E : x[O] = C[U];
+ }
+ var G = this.orient();
+ if (G > 0) return A;
+ A.lastVisited = -L, G === 0 && M.push(A);
+ }
+ }
+ }
+ return null;
+ }, b.walk = function(k, E) {
+ var T = this.vertices.length - 1, L = this.dimension, x = this.vertices, C = this.tuple, M = E ? this.interior.length * Math.random() | 0 : this.interior.length - 1, g = this.interior[M];
+ e: for (; !g.boundary; ) {
+ for (var P = g.vertices, A = g.adjacent, z = 0; z <= L; ++z) C[z] = x[P[z]];
+ g.lastVisited = T;
+ for (var z = 0; z <= L; ++z) {
+ var O = A[z];
+ if (!(O.lastVisited >= T)) {
+ var U = C[z];
+ C[z] = k;
+ var G = this.orient();
+ if (C[z] = U, G < 0) {
+ g = O;
+ continue e;
+ } else O.boundary ? O.lastVisited = -T : O.lastVisited = T;
+ }
+ }
+ return;
+ }
+ return g;
+ }, b.addPeaks = function(k, E) {
+ var T = this.vertices.length - 1, L = this.dimension, x = this.vertices, C = this.tuple, M = this.interior, g = this.simplices, P = [E];
+ E.lastVisited = T, E.vertices[E.vertices.indexOf(-1)] = T, E.boundary = false, M.push(E);
+ for (var A = []; P.length > 0; ) {
+ var E = P.pop(), z = E.vertices, O = E.adjacent, U = z.indexOf(T);
+ if (!(U < 0)) {
+ for (var G = 0; G <= L; ++G) if (G !== U) {
+ var Z = O[G];
+ if (!(!Z.boundary || Z.lastVisited >= T)) {
+ var j = Z.vertices;
+ if (Z.lastVisited !== -T) {
+ for (var N = 0, H = 0; H <= L; ++H) j[H] < 0 ? (N = H, C[H] = k) : C[H] = x[j[H]];
+ var re = this.orient();
+ if (re > 0) {
+ j[N] = T, Z.boundary = false, M.push(Z), P.push(Z), Z.lastVisited = T;
+ continue;
+ } else Z.lastVisited = -T;
+ }
+ var oe = Z.adjacent, _e = z.slice(), Ce = O.slice(), Le = new u(_e, Ce, true);
+ g.push(Le);
+ var ge = oe.indexOf(E);
+ if (!(ge < 0)) {
+ oe[ge] = Le, Ce[U] = Z, _e[G] = -1, Ce[G] = E, O[G] = Le, Le.flip();
+ for (var H = 0; H <= L; ++H) {
+ var ie = _e[H];
+ if (!(ie < 0 || ie === T)) {
+ for (var Se = new Array(L - 1), Ee = 0, Ae = 0; Ae <= L; ++Ae) {
+ var Be = _e[Ae];
+ Be < 0 || Ae === H || (Se[Ee++] = Be);
+ }
+ A.push(new c(Se, Le, H));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ A.sort(f);
+ for (var G = 0; G + 1 < A.length; G += 2) {
+ var Pe = A[G], me = A[G + 1], De = Pe.index, ce = me.index;
+ De < 0 || ce < 0 || (Pe.cell.adjacent[Pe.index] = me.cell, me.cell.adjacent[me.index] = Pe.cell);
+ }
+ }, b.insert = function(k, E) {
+ var T = this.vertices;
+ T.push(k);
+ var L = this.walk(k, E);
+ if (L) {
+ for (var x = this.dimension, C = this.tuple, M = 0; M <= x; ++M) {
+ var g = L.vertices[M];
+ g < 0 ? C[M] = k : C[M] = T[g];
+ }
+ var P = this.orient(C);
+ P < 0 || P === 0 && (L = this.handleBoundaryDegeneracy(L, k), !L) || this.addPeaks(k, L);
+ }
+ }, b.boundary = function() {
+ for (var k = this.dimension, E = [], T = this.simplices, L = T.length, x = 0; x < L; ++x) {
+ var C = T[x];
+ if (C.boundary) {
+ for (var M = new Array(k), g = C.vertices, P = 0, A = 0, z = 0; z <= k; ++z) g[z] >= 0 ? M[P++] = g[z] : A = z & 1;
+ if (A === (k & 1)) {
+ var O = M[0];
+ M[0] = M[1], M[1] = O;
+ }
+ E.push(M);
+ }
+ }
+ return E;
+ };
+ function p(k, E) {
+ var T = k.length;
+ if (T === 0) throw new Error("Must have at least d+1 points");
+ var L = k[0].length;
+ if (T <= L) throw new Error("Must input at least d+1 points");
+ var x = k.slice(0, L + 1), C = s.apply(void 0, x);
+ if (C === 0) throw new Error("Input not in general position");
+ for (var M = new Array(L + 1), g = 0; g <= L; ++g) M[g] = g;
+ C < 0 && (M[0] = 1, M[1] = 0);
+ for (var P = new u(M, new Array(L + 1), false), A = P.adjacent, z = new Array(L + 2), g = 0; g <= L; ++g) {
+ for (var O = M.slice(), U = 0; U <= L; ++U) U === g && (O[U] = -1);
+ var G = O[0];
+ O[0] = O[1], O[1] = G;
+ var Z = new u(O, new Array(L + 1), true);
+ A[g] = Z, z[g] = Z;
+ }
+ z[L + 1] = P;
+ for (var g = 0; g <= L; ++g) for (var O = A[g].vertices, j = A[g].adjacent, U = 0; U <= L; ++U) {
+ var N = O[U];
+ if (N < 0) {
+ j[U] = P;
+ continue;
+ }
+ for (var H = 0; H <= L; ++H) A[H].vertices.indexOf(N) < 0 && (j[U] = A[H]);
+ }
+ for (var re = new _(L, x, z), oe = !!E, g = L + 1; g < T; ++g) re.insert(k[g], oe);
+ return re.boundary();
+ }
+ }, 8987: function(i, a, o) {
+ var s = o(7842), l = o(6504);
+ i.exports = u;
+ function u(c, f) {
+ for (var h = s(f), d = c.length, v = new Array(d), _ = 0; _ < d; ++_) v[_] = l(c[_], h);
+ return v;
+ }
+ }, 9060: function(i, a, o) {
+ var s = o(9405), l = o(2762), u = o(8116), c = o(7766), f = o(6760), h = o(7608), d = o(9618), v = o(6729), _ = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
+ function b(C, M, g, P, A, z, O, U, G, Z, j) {
+ this.gl = C, this.pixelRatio = 1, this.cells = [], this.positions = [], this.intensity = [], this.texture = M, this.dirty = true, this.triShader = g, this.pickShader = P, this.trianglePositions = A, this.triangleVectors = z, this.triangleColors = U, this.triangleUVs = G, this.triangleIds = O, this.triangleVAO = Z, this.triangleCount = 0, this.pickId = 1, this.bounds = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]], this.clipBounds = [[-1 / 0, -1 / 0, -1 / 0], [1 / 0, 1 / 0, 1 / 0]], this.lightPosition = [1e5, 1e5, 0], this.ambientLight = 0.8, this.diffuseLight = 0.8, this.specularLight = 2, this.roughness = 0.5, this.fresnel = 1.5, this.opacity = 1, this.traceType = j, this.tubeScale = 1, this.coneScale = 2, this.vectorScale = 1, this.coneOffset = 0.25, this._model = _, this._view = _, this._projection = _, this._resolution = [1, 1];
+ }
+ var p = b.prototype;
+ p.isOpaque = function() {
+ return this.opacity >= 1;
+ }, p.isTransparent = function() {
+ return this.opacity < 1;
+ }, p.pickSlots = 1, p.setPickBase = function(C) {
+ this.pickId = C;
+ };
+ function k(C) {
+ for (var M = v({ colormap: C, nshades: 256, format: "rgba" }), g = new Uint8Array(256 * 4), P = 0; P < 256; ++P) {
+ for (var A = M[P], z = 0; z < 3; ++z) g[4 * P + z] = A[z];
+ g[4 * P + 3] = A[3] * 255;
+ }
+ return d(g, [256, 256, 4], [4, 0, 1]);
+ }
+ function E(C) {
+ for (var M = C.length, g = new Array(M), P = 0; P < M; ++P) g[P] = C[P][2];
+ return g;
+ }
+ p.update = function(C) {
+ C = C || {};
+ var M = this.gl;
+ this.dirty = true, "lightPosition" in C && (this.lightPosition = C.lightPosition), "opacity" in C && (this.opacity = C.opacity), "ambient" in C && (this.ambientLight = C.ambient), "diffuse" in C && (this.diffuseLight = C.diffuse), "specular" in C && (this.specularLight = C.specular), "roughness" in C && (this.roughness = C.roughness), "fresnel" in C && (this.fresnel = C.fresnel), C.tubeScale !== void 0 && (this.tubeScale = C.tubeScale), C.vectorScale !== void 0 && (this.vectorScale = C.vectorScale), C.coneScale !== void 0 && (this.coneScale = C.coneScale), C.coneOffset !== void 0 && (this.coneOffset = C.coneOffset), C.colormap && (this.texture.shape = [256, 256], this.texture.minFilter = M.LINEAR_MIPMAP_LINEAR, this.texture.magFilter = M.LINEAR, this.texture.setPixels(k(C.colormap)), this.texture.generateMipmap());
+ var g = C.cells, P = C.positions, A = C.vectors;
+ if (!(!P || !g || !A)) {
+ var z = [], O = [], U = [], G = [], Z = [];
+ this.cells = g, this.positions = P, this.vectors = A;
+ var j = C.meshColor || [1, 1, 1, 1], N = C.vertexIntensity, H = 1 / 0, re = -1 / 0;
+ if (N) if (C.vertexIntensityBounds) H = +C.vertexIntensityBounds[0], re = +C.vertexIntensityBounds[1];
+ else for (var oe = 0; oe < N.length; ++oe) {
+ var _e = N[oe];
+ H = Math.min(H, _e), re = Math.max(re, _e);
+ }
+ else for (var oe = 0; oe < P.length; ++oe) {
+ var _e = P[oe][2];
+ H = Math.min(H, _e), re = Math.max(re, _e);
+ }
+ N ? this.intensity = N : this.intensity = E(P), this.bounds = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]];
+ for (var oe = 0; oe < P.length; ++oe) for (var Ce = P[oe], Le = 0; Le < 3; ++Le) isNaN(Ce[Le]) || !isFinite(Ce[Le]) || (this.bounds[0][Le] = Math.min(this.bounds[0][Le], Ce[Le]), this.bounds[1][Le] = Math.max(this.bounds[1][Le], Ce[Le]));
+ var ge = 0;
+ e: for (var oe = 0; oe < g.length; ++oe) {
+ var ie = g[oe];
+ switch (ie.length) {
+ case 3:
+ for (var Le = 0; Le < 3; ++Le) for (var Se = ie[Le], Ce = P[Se], Ee = 0; Ee < 3; ++Ee) if (isNaN(Ce[Ee]) || !isFinite(Ce[Ee])) continue e;
+ for (var Le = 0; Le < 3; ++Le) {
+ var Se = ie[2 - Le], Ce = P[Se];
+ z.push(Ce[0], Ce[1], Ce[2], Ce[3]);
+ var Ae = A[Se];
+ O.push(Ae[0], Ae[1], Ae[2], Ae[3] || 0);
+ var Be = j;
+ Be.length === 3 ? U.push(Be[0], Be[1], Be[2], 1) : U.push(Be[0], Be[1], Be[2], Be[3]);
+ var Pe;
+ N ? Pe = [(N[Se] - H) / (re - H), 0] : Pe = [(Ce[2] - H) / (re - H), 0], G.push(Pe[0], Pe[1]), Z.push(oe);
+ }
+ ge += 1;
+ break;
+ }
+ }
+ this.triangleCount = ge, this.trianglePositions.update(z), this.triangleVectors.update(O), this.triangleColors.update(U), this.triangleUVs.update(G), this.triangleIds.update(new Uint32Array(Z));
+ }
+ }, p.drawTransparent = p.draw = function(C) {
+ C = C || {};
+ for (var M = this.gl, g = C.model || _, P = C.view || _, A = C.projection || _, z = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]], O = 0; O < 3; ++O) z[0][O] = Math.max(z[0][O], this.clipBounds[0][O]), z[1][O] = Math.min(z[1][O], this.clipBounds[1][O]);
+ var U = { model: g, view: P, projection: A, inverseModel: _.slice(), clipBounds: z, kambient: this.ambientLight, kdiffuse: this.diffuseLight, kspecular: this.specularLight, roughness: this.roughness, fresnel: this.fresnel, eyePosition: [0, 0, 0], lightPosition: [0, 0, 0], opacity: this.opacity, tubeScale: this.tubeScale, vectorScale: this.vectorScale, coneScale: this.coneScale, coneOffset: this.coneOffset, texture: 0 };
+ U.inverseModel = h(U.inverseModel, U.model), M.disable(M.CULL_FACE), this.texture.bind(0);
+ var G = new Array(16);
+ f(G, U.view, U.model), f(G, U.projection, G), h(G, G);
+ for (var O = 0; O < 3; ++O) U.eyePosition[O] = G[12 + O] / G[15];
+ for (var Z = G[15], O = 0; O < 3; ++O) Z += this.lightPosition[O] * G[4 * O + 3];
+ for (var O = 0; O < 3; ++O) {
+ for (var j = G[12 + O], N = 0; N < 3; ++N) j += G[4 * N + O] * this.lightPosition[N];
+ U.lightPosition[O] = j / Z;
+ }
+ if (this.triangleCount > 0) {
+ var H = this.triShader;
+ H.bind(), H.uniforms = U, this.triangleVAO.bind(), M.drawArrays(M.TRIANGLES, 0, this.triangleCount * 3), this.triangleVAO.unbind();
+ }
+ }, p.drawPick = function(C) {
+ C = C || {};
+ for (var M = this.gl, g = C.model || _, P = C.view || _, A = C.projection || _, z = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]], O = 0; O < 3; ++O) z[0][O] = Math.max(z[0][O], this.clipBounds[0][O]), z[1][O] = Math.min(z[1][O], this.clipBounds[1][O]);
+ this._model = [].slice.call(g), this._view = [].slice.call(P), this._projection = [].slice.call(A), this._resolution = [M.drawingBufferWidth, M.drawingBufferHeight];
+ var U = { model: g, view: P, projection: A, clipBounds: z, tubeScale: this.tubeScale, vectorScale: this.vectorScale, coneScale: this.coneScale, coneOffset: this.coneOffset, pickId: this.pickId / 255 }, G = this.pickShader;
+ G.bind(), G.uniforms = U, this.triangleCount > 0 && (this.triangleVAO.bind(), M.drawArrays(M.TRIANGLES, 0, this.triangleCount * 3), this.triangleVAO.unbind());
+ }, p.pick = function(C) {
+ if (!C || C.id !== this.pickId) return null;
+ var M = C.value[0] + 256 * C.value[1] + 65536 * C.value[2], g = this.cells[M], P = this.positions[g[1]].slice(0, 3), A = { position: P, dataCoordinate: P, index: Math.floor(g[1] / 48) };
+ return this.traceType === "cone" ? A.index = Math.floor(g[1] / 48) : this.traceType === "streamtube" && (A.intensity = this.intensity[g[1]], A.velocity = this.vectors[g[1]].slice(0, 3), A.divergence = this.vectors[g[1]][3], A.index = M), A;
+ }, p.dispose = function() {
+ this.texture.dispose(), this.triShader.dispose(), this.pickShader.dispose(), this.triangleVAO.dispose(), this.trianglePositions.dispose(), this.triangleVectors.dispose(), this.triangleColors.dispose(), this.triangleUVs.dispose(), this.triangleIds.dispose();
+ };
+ function T(C, M) {
+ var g = s(C, M.meshShader.vertex, M.meshShader.fragment, null, M.meshShader.attributes);
+ return g.attributes.position.location = 0, g.attributes.color.location = 2, g.attributes.uv.location = 3, g.attributes.vector.location = 4, g;
+ }
+ function L(C, M) {
+ var g = s(C, M.pickShader.vertex, M.pickShader.fragment, null, M.pickShader.attributes);
+ return g.attributes.position.location = 0, g.attributes.id.location = 1, g.attributes.vector.location = 4, g;
+ }
+ function x(C, M, g) {
+ var P = g.shaders;
+ arguments.length === 1 && (M = C, C = M.gl);
+ var A = T(C, P), z = L(C, P), O = c(C, d(new Uint8Array([255, 255, 255, 255]), [1, 1, 4]));
+ O.generateMipmap(), O.minFilter = C.LINEAR_MIPMAP_LINEAR, O.magFilter = C.LINEAR;
+ var U = l(C), G = l(C), Z = l(C), j = l(C), N = l(C), H = u(C, [{ buffer: U, type: C.FLOAT, size: 4 }, { buffer: N, type: C.UNSIGNED_BYTE, size: 4, normalized: true }, { buffer: Z, type: C.FLOAT, size: 4 }, { buffer: j, type: C.FLOAT, size: 2 }, { buffer: G, type: C.FLOAT, size: 4 }]), re = new b(C, O, A, z, U, G, N, Z, j, H, g.traceType || "cone");
+ return re.update(M), re;
+ }
+ i.exports = x;
+ }, 9127: function(i, a, o) {
+ i.exports = u;
+ var s = o(6204), l = o(5771);
+ function u(c) {
+ return l(s(c));
+ }
+ }, 9131: function(i, a, o) {
+ var s = o(5177), l = o(9288);
+ i.exports = u;
+ function u(c, f) {
+ return f = f || 1, c[0] = Math.random(), c[1] = Math.random(), c[2] = Math.random(), c[3] = Math.random(), s(c, c), l(c, c, f), c;
+ }
+ }, 9165: function(i, a, o) {
+ i.exports = b;
+ var s = o(2762), l = o(8116), u = o(3436), c = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
+ function f(p, k, E, T) {
+ this.gl = p, this.shader = T, this.buffer = k, this.vao = E, this.pixelRatio = 1, this.bounds = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]], this.clipBounds = [[-1 / 0, -1 / 0, -1 / 0], [1 / 0, 1 / 0, 1 / 0]], this.lineWidth = [1, 1, 1], this.capSize = [10, 10, 10], this.lineCount = [0, 0, 0], this.lineOffset = [0, 0, 0], this.opacity = 1, this.hasAlpha = false;
+ }
+ var h = f.prototype;
+ h.isOpaque = function() {
+ return !this.hasAlpha;
+ }, h.isTransparent = function() {
+ return this.hasAlpha;
+ }, h.drawTransparent = h.draw = function(p) {
+ var k = this.gl, E = this.shader.uniforms;
+ this.shader.bind();
+ var T = E.view = p.view || c, L = E.projection = p.projection || c;
+ E.model = p.model || c, E.clipBounds = this.clipBounds, E.opacity = this.opacity;
+ var x = T[12], C = T[13], M = T[14], g = T[15], P = p._ortho || false, A = P ? 2 : 1, z = A * this.pixelRatio * (L[3] * x + L[7] * C + L[11] * M + L[15] * g) / k.drawingBufferHeight;
+ this.vao.bind();
+ for (var O = 0; O < 3; ++O) k.lineWidth(this.lineWidth[O] * this.pixelRatio), E.capSize = this.capSize[O] * z, this.lineCount[O] && k.drawArrays(k.LINES, this.lineOffset[O], this.lineCount[O]);
+ this.vao.unbind();
+ };
+ function d(p, k) {
+ for (var E = 0; E < 3; ++E) p[0][E] = Math.min(p[0][E], k[E]), p[1][E] = Math.max(p[1][E], k[E]);
+ }
+ var v = function() {
+ for (var p = new Array(3), k = 0; k < 3; ++k) {
+ for (var E = [], T = 1; T <= 2; ++T) for (var L = -1; L <= 1; L += 2) {
+ var x = (T + k) % 3, C = [0, 0, 0];
+ C[x] = L, E.push(C);
+ }
+ p[k] = E;
+ }
+ return p;
+ }();
+ function _(p, k, E, T) {
+ for (var L = v[T], x = 0; x < L.length; ++x) {
+ var C = L[x];
+ p.push(k[0], k[1], k[2], E[0], E[1], E[2], E[3], C[0], C[1], C[2]);
+ }
+ return L.length;
+ }
+ h.update = function(p) {
+ p = p || {}, "lineWidth" in p && (this.lineWidth = p.lineWidth, Array.isArray(this.lineWidth) || (this.lineWidth = [this.lineWidth, this.lineWidth, this.lineWidth])), "capSize" in p && (this.capSize = p.capSize, Array.isArray(this.capSize) || (this.capSize = [this.capSize, this.capSize, this.capSize])), this.hasAlpha = false, "opacity" in p && (this.opacity = +p.opacity, this.opacity < 1 && (this.hasAlpha = true));
+ var k = p.color || [[0, 0, 0], [0, 0, 0], [0, 0, 0]], E = p.position, T = p.error;
+ if (Array.isArray(k[0]) || (k = [k, k, k]), E && T) {
+ var L = [], x = E.length, C = 0;
+ this.bounds = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]], this.lineCount = [0, 0, 0];
+ for (var M = 0; M < 3; ++M) {
+ this.lineOffset[M] = C;
+ e: for (var g = 0; g < x; ++g) {
+ for (var P = E[g], A = 0; A < 3; ++A) if (isNaN(P[A]) || !isFinite(P[A])) continue e;
+ var z = T[g], O = k[M];
+ if (Array.isArray(O[0]) && (O = k[g]), O.length === 3 ? O = [O[0], O[1], O[2], 1] : O.length === 4 && (O = [O[0], O[1], O[2], O[3]], !this.hasAlpha && O[3] < 1 && (this.hasAlpha = true)), !(isNaN(z[0][M]) || isNaN(z[1][M]))) {
+ if (z[0][M] < 0) {
+ var U = P.slice();
+ U[M] += z[0][M], L.push(P[0], P[1], P[2], O[0], O[1], O[2], O[3], 0, 0, 0, U[0], U[1], U[2], O[0], O[1], O[2], O[3], 0, 0, 0), d(this.bounds, U), C += 2 + _(L, U, O, M);
+ }
+ if (z[1][M] > 0) {
+ var U = P.slice();
+ U[M] += z[1][M], L.push(P[0], P[1], P[2], O[0], O[1], O[2], O[3], 0, 0, 0, U[0], U[1], U[2], O[0], O[1], O[2], O[3], 0, 0, 0), d(this.bounds, U), C += 2 + _(L, U, O, M);
+ }
+ }
+ }
+ this.lineCount[M] = C - this.lineOffset[M];
+ }
+ this.buffer.update(L);
+ }
+ }, h.dispose = function() {
+ this.shader.dispose(), this.buffer.dispose(), this.vao.dispose();
+ };
+ function b(p) {
+ var k = p.gl, E = s(k), T = l(k, [{ buffer: E, type: k.FLOAT, size: 3, offset: 0, stride: 40 }, { buffer: E, type: k.FLOAT, size: 4, offset: 12, stride: 40 }, { buffer: E, type: k.FLOAT, size: 3, offset: 28, stride: 40 }]), L = u(k);
+ L.attributes.position.location = 0, L.attributes.color.location = 1, L.attributes.offset.location = 2;
+ var x = new f(k, E, T, L);
+ return x.update(p), x;
+ }
+ }, 9215: function(i, a, o) {
+ i.exports = d;
+ var s = o(4769), l = o(2478);
+ function u(v, _, b) {
+ return Math.min(_, Math.max(v, b));
+ }
+ function c(v, _, b) {
+ this.dimension = v.length, this.bounds = [new Array(this.dimension), new Array(this.dimension)];
+ for (var p = 0; p < this.dimension; ++p) this.bounds[0][p] = -1 / 0, this.bounds[1][p] = 1 / 0;
+ this._state = v.slice().reverse(), this._velocity = _.slice().reverse(), this._time = [b], this._scratch = [v.slice(), v.slice(), v.slice(), v.slice(), v.slice()];
+ }
+ var f = c.prototype;
+ f.flush = function(v) {
+ var _ = l.gt(this._time, v) - 1;
+ _ <= 0 || (this._time.splice(0, _), this._state.splice(0, _ * this.dimension), this._velocity.splice(0, _ * this.dimension));
+ }, f.curve = function(v) {
+ var _ = this._time, b = _.length, p = l.le(_, v), k = this._scratch[0], E = this._state, T = this._velocity, L = this.dimension, x = this.bounds;
+ if (p < 0) for (var C = L - 1, M = 0; M < L; ++M, --C) k[M] = E[C];
+ else if (p >= b - 1) for (var C = E.length - 1, g = v - _[b - 1], M = 0; M < L; ++M, --C) k[M] = E[C] + g * T[C];
+ else {
+ for (var C = L * (p + 1) - 1, P = _[p], A = _[p + 1], z = A - P || 1, O = this._scratch[1], U = this._scratch[2], G = this._scratch[3], Z = this._scratch[4], j = true, M = 0; M < L; ++M, --C) O[M] = E[C], G[M] = T[C] * z, U[M] = E[C + L], Z[M] = T[C + L] * z, j = j && O[M] === U[M] && G[M] === Z[M] && G[M] === 0;
+ if (j) for (var M = 0; M < L; ++M) k[M] = O[M];
+ else s(O, G, U, Z, (v - P) / z, k);
+ }
+ for (var N = x[0], H = x[1], M = 0; M < L; ++M) k[M] = u(N[M], H[M], k[M]);
+ return k;
+ }, f.dcurve = function(v) {
+ var _ = this._time, b = _.length, p = l.le(_, v), k = this._scratch[0], E = this._state, T = this._velocity, L = this.dimension;
+ if (p >= b - 1) for (var x = E.length - 1, C = v - _[b - 1], M = 0; M < L; ++M, --x) k[M] = T[x];
+ else {
+ for (var x = L * (p + 1) - 1, g = _[p], P = _[p + 1], A = P - g || 1, z = this._scratch[1], O = this._scratch[2], U = this._scratch[3], G = this._scratch[4], Z = true, M = 0; M < L; ++M, --x) z[M] = E[x], U[M] = T[x] * A, O[M] = E[x + L], G[M] = T[x + L] * A, Z = Z && z[M] === O[M] && U[M] === G[M] && U[M] === 0;
+ if (Z) for (var M = 0; M < L; ++M) k[M] = 0;
+ else {
+ s.derivative(z, U, O, G, (v - g) / A, k);
+ for (var M = 0; M < L; ++M) k[M] /= A;
+ }
+ }
+ return k;
+ }, f.lastT = function() {
+ var v = this._time;
+ return v[v.length - 1];
+ }, f.stable = function() {
+ for (var v = this._velocity, _ = v.length, b = this.dimension - 1; b >= 0; --b) if (v[--_]) return false;
+ return true;
+ }, f.jump = function(v) {
+ var _ = this.lastT(), b = this.dimension;
+ if (!(v < _ || arguments.length !== b + 1)) {
+ var p = this._state, k = this._velocity, E = p.length - this.dimension, T = this.bounds, L = T[0], x = T[1];
+ this._time.push(_, v);
+ for (var C = 0; C < 2; ++C) for (var M = 0; M < b; ++M) p.push(p[E++]), k.push(0);
+ this._time.push(v);
+ for (var M = b; M > 0; --M) p.push(u(L[M - 1], x[M - 1], arguments[M])), k.push(0);
+ }
+ }, f.push = function(v) {
+ var _ = this.lastT(), b = this.dimension;
+ if (!(v < _ || arguments.length !== b + 1)) {
+ var p = this._state, k = this._velocity, E = p.length - this.dimension, T = v - _, L = this.bounds, x = L[0], C = L[1], M = T > 1e-6 ? 1 / T : 0;
+ this._time.push(v);
+ for (var g = b; g > 0; --g) {
+ var P = u(x[g - 1], C[g - 1], arguments[g]);
+ p.push(P), k.push((P - p[E++]) * M);
+ }
+ }
+ }, f.set = function(v) {
+ var _ = this.dimension;
+ if (!(v < this.lastT() || arguments.length !== _ + 1)) {
+ var b = this._state, p = this._velocity, k = this.bounds, E = k[0], T = k[1];
+ this._time.push(v);
+ for (var L = _; L > 0; --L) b.push(u(E[L - 1], T[L - 1], arguments[L])), p.push(0);
+ }
+ }, f.move = function(v) {
+ var _ = this.lastT(), b = this.dimension;
+ if (!(v <= _ || arguments.length !== b + 1)) {
+ var p = this._state, k = this._velocity, E = p.length - this.dimension, T = this.bounds, L = T[0], x = T[1], C = v - _, M = C > 1e-6 ? 1 / C : 0;
+ this._time.push(v);
+ for (var g = b; g > 0; --g) {
+ var P = arguments[g];
+ p.push(u(L[g - 1], x[g - 1], p[E++] + P)), k.push(P * M);
+ }
+ }
+ }, f.idle = function(v) {
+ var _ = this.lastT();
+ if (!(v < _)) {
+ var b = this.dimension, p = this._state, k = this._velocity, E = p.length - b, T = this.bounds, L = T[0], x = T[1], C = v - _;
+ this._time.push(v);
+ for (var M = b - 1; M >= 0; --M) p.push(u(L[M], x[M], p[E] + C * k[E])), k.push(0), E += 1;
+ }
+ };
+ function h(v) {
+ for (var _ = new Array(v), b = 0; b < v; ++b) _[b] = 0;
+ return _;
+ }
+ function d(v, _, b) {
+ switch (arguments.length) {
+ case 0:
+ return new c([0], [0], 0);
+ case 1:
+ if (typeof v == "number") {
+ var p = h(v);
+ return new c(p, p, 0);
+ } else return new c(v, h(v.length), 0);
+ case 2:
+ if (typeof _ == "number") {
+ var p = h(v.length);
+ return new c(v, p, +_);
+ } else b = 0;
+ case 3:
+ if (v.length !== _.length) throw new Error("state and velocity lengths must match");
+ return new c(v, _, b);
+ }
+ }
+ }, 9216: function(i) {
+ i.exports = l, i.exports.isMobile = l, i.exports.default = l;
+ var a = /(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, o = /CrOS/, s = /android|ipad|playbook|silk/i;
+ function l(u) {
+ u || (u = {});
+ var c = u.ua;
+ if (!c && typeof navigator != "undefined" && (c = navigator.userAgent), c && c.headers && typeof c.headers["user-agent"] == "string" && (c = c.headers["user-agent"]), typeof c != "string") return false;
+ var f = a.test(c) && !o.test(c) || !!u.tablet && s.test(c);
+ return !f && u.tablet && u.featureDetect && navigator && navigator.maxTouchPoints > 1 && c.indexOf("Macintosh") !== -1 && c.indexOf("Safari") !== -1 && (f = true), f;
+ }
+ }, 9226: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] = Math.ceil(s[0]), o[1] = Math.ceil(s[1]), o[2] = Math.ceil(s[2]), o;
+ }
+ }, 9265: function(i) {
+ i.exports = a;
+ function a(o, s) {
+ return o[0] === s[0] && o[1] === s[1] && o[2] === s[2];
+ }
+ }, 9288: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ return o[0] = s[0] * l, o[1] = s[1] * l, o[2] = s[2] * l, o[3] = s[3] * l, o;
+ }
+ }, 9346: function(i) {
+ var a = new Float64Array(4), o = new Float64Array(4), s = new Float64Array(4);
+ function l(u, c, f, h, d) {
+ a.length < h.length && (a = new Float64Array(h.length), o = new Float64Array(h.length), s = new Float64Array(h.length));
+ for (var v = 0; v < h.length; ++v) a[v] = u[v] - h[v], o[v] = c[v] - u[v], s[v] = f[v] - u[v];
+ for (var _ = 0, b = 0, p = 0, k = 0, E = 0, T = 0, v = 0; v < h.length; ++v) {
+ var L = o[v], x = s[v], C = a[v];
+ _ += L * L, b += L * x, p += x * x, k += C * L, E += C * x, T += C * C;
+ }
+ var M = Math.abs(_ * p - b * b), g = b * E - p * k, P = b * k - _ * E, A;
+ if (g + P <= M) if (g < 0) P < 0 && k < 0 ? (P = 0, -k >= _ ? (g = 1, A = _ + 2 * k + T) : (g = -k / _, A = k * g + T)) : (g = 0, E >= 0 ? (P = 0, A = T) : -E >= p ? (P = 1, A = p + 2 * E + T) : (P = -E / p, A = E * P + T));
+ else if (P < 0) P = 0, k >= 0 ? (g = 0, A = T) : -k >= _ ? (g = 1, A = _ + 2 * k + T) : (g = -k / _, A = k * g + T);
+ else {
+ var z = 1 / M;
+ g *= z, P *= z, A = g * (_ * g + b * P + 2 * k) + P * (b * g + p * P + 2 * E) + T;
+ }
+ else {
+ var O, U, G, Z;
+ g < 0 ? (O = b + k, U = p + E, U > O ? (G = U - O, Z = _ - 2 * b + p, G >= Z ? (g = 1, P = 0, A = _ + 2 * k + T) : (g = G / Z, P = 1 - g, A = g * (_ * g + b * P + 2 * k) + P * (b * g + p * P + 2 * E) + T)) : (g = 0, U <= 0 ? (P = 1, A = p + 2 * E + T) : E >= 0 ? (P = 0, A = T) : (P = -E / p, A = E * P + T))) : P < 0 ? (O = b + E, U = _ + k, U > O ? (G = U - O, Z = _ - 2 * b + p, G >= Z ? (P = 1, g = 0, A = p + 2 * E + T) : (P = G / Z, g = 1 - P, A = g * (_ * g + b * P + 2 * k) + P * (b * g + p * P + 2 * E) + T)) : (P = 0, U <= 0 ? (g = 1, A = _ + 2 * k + T) : k >= 0 ? (g = 0, A = T) : (g = -k / _, A = k * g + T))) : (G = p + E - b - k, G <= 0 ? (g = 0, P = 1, A = p + 2 * E + T) : (Z = _ - 2 * b + p, G >= Z ? (g = 1, P = 0, A = _ + 2 * k + T) : (g = G / Z, P = 1 - g, A = g * (_ * g + b * P + 2 * k) + P * (b * g + p * P + 2 * E) + T)));
+ }
+ for (var j = 1 - g - P, v = 0; v < h.length; ++v) d[v] = j * u[v] + g * c[v] + P * f[v];
+ return A < 0 ? 0 : A;
+ }
+ i.exports = l;
+ }, 9362: function(i) {
+ i.exports = a;
+ function a(o, s, l) {
+ var u = o + s, c = u - o, f = u - c, h = s - c, d = o - f;
+ return l ? (l[0] = d + h, l[1] = u, l) : [d + h, u];
+ }
+ }, 9366: function(i, a, o) {
+ var s = o(4359);
+ i.exports = u;
+ var l = {};
+ function u(c, f, h) {
+ var d = [f.style, f.weight, f.variant, f.family].join("_"), v = l[d];
+ if (v || (v = l[d] = {}), c in v) return v[c];
+ var _ = { textAlign: "center", textBaseline: "middle", lineHeight: 1, font: f.family, fontStyle: f.style, fontWeight: f.weight, fontVariant: f.variant, lineSpacing: 1.25, styletags: { breaklines: true, bolds: true, italics: true, subscripts: true, superscripts: true } };
+ _.triangles = true;
+ var b = s(c, _);
+ _.triangles = false;
+ var p = s(c, _), k, E;
+ if (h && h !== 1) {
+ for (k = 0; k < b.positions.length; ++k) for (E = 0; E < b.positions[k].length; ++E) b.positions[k][E] /= h;
+ for (k = 0; k < p.positions.length; ++k) for (E = 0; E < p.positions[k].length; ++E) p.positions[k][E] /= h;
+ }
+ var T = [[1 / 0, 1 / 0], [-1 / 0, -1 / 0]], L = p.positions.length;
+ for (k = 0; k < L; ++k) {
+ var x = p.positions[k];
+ for (E = 0; E < 2; ++E) T[0][E] = Math.min(T[0][E], x[E]), T[1][E] = Math.max(T[1][E], x[E]);
+ }
+ return v[c] = [b, p, T];
+ }
+ }, 9405: function(i, a, o) {
+ var s = o(3327), l = o(8731), u = o(216), c = o(5091), f = o(2145), h = o(8866);
+ function d(p) {
+ this.gl = p, this.gl.lastAttribCount = 0, this._vref = this._fref = this._relink = this.vertShader = this.fragShader = this.program = this.attributes = this.uniforms = this.types = null;
+ }
+ var v = d.prototype;
+ v.bind = function() {
+ this.program || this._relink();
+ var p, k = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES), E = this.gl.lastAttribCount;
+ if (k > E) for (p = E; p < k; p++) this.gl.enableVertexAttribArray(p);
+ else if (E > k) for (p = k; p < E; p++) this.gl.disableVertexAttribArray(p);
+ this.gl.lastAttribCount = k, this.gl.useProgram(this.program);
+ }, v.dispose = function() {
+ for (var p = this.gl.lastAttribCount, k = 0; k < p; k++) this.gl.disableVertexAttribArray(k);
+ this.gl.lastAttribCount = 0, this._fref && this._fref.dispose(), this._vref && this._vref.dispose(), this.attributes = this.types = this.vertShader = this.fragShader = this.program = this._relink = this._fref = this._vref = null;
+ };
+ function _(p, k) {
+ return p.name < k.name ? -1 : 1;
+ }
+ v.update = function(p, k, E, T) {
+ if (!k || arguments.length === 1) {
+ var L = p;
+ p = L.vertex, k = L.fragment, E = L.uniforms, T = L.attributes;
+ }
+ var x = this, C = x.gl, M = x._vref;
+ x._vref = c.shader(C, C.VERTEX_SHADER, p), M && M.dispose(), x.vertShader = x._vref.shader;
+ var g = this._fref;
+ if (x._fref = c.shader(C, C.FRAGMENT_SHADER, k), g && g.dispose(), x.fragShader = x._fref.shader, !E || !T) {
+ var P = C.createProgram();
+ if (C.attachShader(P, x.fragShader), C.attachShader(P, x.vertShader), C.linkProgram(P), !C.getProgramParameter(P, C.LINK_STATUS)) {
+ var A = C.getProgramInfoLog(P);
+ throw new h(A, "Error linking program:" + A);
+ }
+ E = E || f.uniforms(C, P), T = T || f.attributes(C, P), C.deleteProgram(P);
+ }
+ T = T.slice(), T.sort(_);
+ var z = [], O = [], U = [], G;
+ for (G = 0; G < T.length; ++G) {
+ var Z = T[G];
+ if (Z.type.indexOf("mat") >= 0) {
+ for (var j = Z.type.charAt(Z.type.length - 1) | 0, N = new Array(j), H = 0; H < j; ++H) N[H] = U.length, O.push(Z.name + "[" + H + "]"), typeof Z.location == "number" ? U.push(Z.location + H) : Array.isArray(Z.location) && Z.location.length === j && typeof Z.location[H] == "number" ? U.push(Z.location[H] | 0) : U.push(-1);
+ z.push({ name: Z.name, type: Z.type, locations: N });
+ } else z.push({ name: Z.name, type: Z.type, locations: [U.length] }), O.push(Z.name), typeof Z.location == "number" ? U.push(Z.location | 0) : U.push(-1);
+ }
+ var re = 0;
+ for (G = 0; G < U.length; ++G) if (U[G] < 0) {
+ for (; U.indexOf(re) >= 0; ) re += 1;
+ U[G] = re;
+ }
+ var oe = new Array(E.length);
+ function _e() {
+ x.program = c.program(C, x._vref, x._fref, O, U);
+ for (var Ce = 0; Ce < E.length; ++Ce) oe[Ce] = C.getUniformLocation(x.program, E[Ce].name);
+ }
+ _e(), x._relink = _e, x.types = { uniforms: u(E), attributes: u(T) }, x.attributes = l(C, x, z, U), Object.defineProperty(x, "uniforms", s(C, x, E, oe));
+ };
+ function b(p, k, E, T, L) {
+ var x = new d(p);
+ return x.update(k, E, T, L), x;
+ }
+ i.exports = b;
+ }, 9499: function(i, a, o) {
+ i.exports = Be;
+ var s = o(8828), l = o(2762), u = o(8116), c = o(7766), f = o(1888), h = o(6729), d = o(5298), v = o(9994), _ = o(9618), b = o(3711), p = o(6760), k = o(7608), E = o(2478), T = o(6199), L = o(990), x = L.createShader, C = L.createContourShader, M = L.createPickShader, g = L.createPickContourShader, P = 4 * 10, A = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], z = [[0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1]], O = [[0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0]];
+ (function() {
+ for (var Pe = 0; Pe < 3; ++Pe) {
+ var me = O[Pe], De = (Pe + 1) % 3, ce = (Pe + 2) % 3;
+ me[De + 0] = 1, me[ce + 3] = 1, me[Pe + 6] = 1;
+ }
+ })();
+ function U(Pe, me, De, ce, je) {
+ this.position = Pe, this.index = me, this.uv = De, this.level = ce, this.dataCoordinate = je;
+ }
+ var G = 256;
+ function Z(Pe, me, De, ce, je, lt, pt, Vt, ot, ut, Wt, Nt, $t, sr, Tr) {
+ this.gl = Pe, this.shape = me, this.bounds = De, this.objectOffset = Tr, this.intensityBounds = [], this._shader = ce, this._pickShader = je, this._coordinateBuffer = lt, this._vao = pt, this._colorMap = Vt, this._contourShader = ot, this._contourPickShader = ut, this._contourBuffer = Wt, this._contourVAO = Nt, this._contourOffsets = [[], [], []], this._contourCounts = [[], [], []], this._vertexCount = 0, this._pickResult = new U([0, 0, 0], [0, 0], [0, 0], [0, 0, 0], [0, 0, 0]), this._dynamicBuffer = $t, this._dynamicVAO = sr, this._dynamicOffsets = [0, 0, 0], this._dynamicCounts = [0, 0, 0], this.contourWidth = [1, 1, 1], this.contourLevels = [[1], [1], [1]], this.contourTint = [0, 0, 0], this.contourColor = [[0.5, 0.5, 0.5, 1], [0.5, 0.5, 0.5, 1], [0.5, 0.5, 0.5, 1]], this.showContour = true, this.showSurface = true, this.enableHighlight = [true, true, true], this.highlightColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.highlightTint = [1, 1, 1], this.highlightLevel = [-1, -1, -1], this.enableDynamic = [true, true, true], this.dynamicLevel = [NaN, NaN, NaN], this.dynamicColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.dynamicTint = [1, 1, 1], this.dynamicWidth = [1, 1, 1], this.axesBounds = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]], this.surfaceProject = [false, false, false], this.contourProject = [[false, false, false], [false, false, false], [false, false, false]], this.colorBounds = [false, false], this._field = [_(f.mallocFloat(1024), [0, 0]), _(f.mallocFloat(1024), [0, 0]), _(f.mallocFloat(1024), [0, 0])], this.pickId = 1, this.clipBounds = [[-1 / 0, -1 / 0, -1 / 0], [1 / 0, 1 / 0, 1 / 0]], this.snapToData = false, this.pixelRatio = 1, this.opacity = 1, this.lightPosition = [10, 1e4, 0], this.ambientLight = 0.8, this.diffuseLight = 0.8, this.specularLight = 2, this.roughness = 0.5, this.fresnel = 1.5, this.vertexColor = 0, this.dirty = true;
+ }
+ var j = Z.prototype;
+ j.genColormap = function(Pe, me) {
+ var De = false, ce = v([h({ colormap: Pe, nshades: G, format: "rgba" }).map(function(je, lt) {
+ var pt = me ? N(lt / 255, me) : je[3];
+ return pt < 1 && (De = true), [je[0], je[1], je[2], 255 * pt];
+ })]);
+ return d.divseq(ce, 255), this.hasAlphaScale = De, ce;
+ }, j.isTransparent = function() {
+ return this.opacity < 1 || this.hasAlphaScale;
+ }, j.isOpaque = function() {
+ return !this.isTransparent();
+ }, j.pickSlots = 1, j.setPickBase = function(Pe) {
+ this.pickId = Pe;
+ };
+ function N(Pe, me) {
+ if (!me || !me.length) return 1;
+ for (var De = 0; De < me.length; ++De) {
+ if (me.length < 2) return 1;
+ if (me[De][0] === Pe) return me[De][1];
+ if (me[De][0] > Pe && De > 0) {
+ var ce = (me[De][0] - Pe) / (me[De][0] - me[De - 1][0]);
+ return me[De][1] * (1 - ce) + ce * me[De - 1][1];
+ }
+ }
+ return 1;
+ }
+ var H = [0, 0, 0], re = { showSurface: false, showContour: false, projections: [A.slice(), A.slice(), A.slice()], clipBounds: [[[0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0]]] };
+ function oe(Pe, me) {
+ var De, ce, je, lt = me.axes && me.axes.lastCubeProps.axis || H, pt = me.showSurface, Vt = me.showContour;
+ for (De = 0; De < 3; ++De) for (pt = pt || me.surfaceProject[De], ce = 0; ce < 3; ++ce) Vt = Vt || me.contourProject[De][ce];
+ for (De = 0; De < 3; ++De) {
+ var ot = re.projections[De];
+ for (ce = 0; ce < 16; ++ce) ot[ce] = 0;
+ for (ce = 0; ce < 4; ++ce) ot[5 * ce] = 1;
+ ot[5 * De] = 0, ot[12 + De] = me.axesBounds[+(lt[De] > 0)][De], p(ot, Pe.model, ot);
+ var ut = re.clipBounds[De];
+ for (je = 0; je < 2; ++je) for (ce = 0; ce < 3; ++ce) ut[je][ce] = Pe.clipBounds[je][ce];
+ ut[0][De] = -1e8, ut[1][De] = 1e8;
+ }
+ return re.showSurface = pt, re.showContour = Vt, re;
+ }
+ var _e = { model: A, view: A, projection: A, inverseModel: A.slice(), lowerBound: [0, 0, 0], upperBound: [0, 0, 0], colorMap: 0, clipBounds: [[0, 0, 0], [0, 0, 0]], height: 0, contourTint: 0, contourColor: [0, 0, 0, 1], permutation: [1, 0, 0, 0, 1, 0, 0, 0, 1], zOffset: -1e-4, objectOffset: [0, 0, 0], kambient: 1, kdiffuse: 1, kspecular: 1, lightPosition: [1e3, 1e3, 1e3], eyePosition: [0, 0, 0], roughness: 1, fresnel: 1, opacity: 1, vertexColor: 0 }, Ce = A.slice(), Le = [1, 0, 0, 0, 1, 0, 0, 0, 1];
+ function ge(Pe, me) {
+ Pe = Pe || {};
+ var De = this.gl;
+ De.disable(De.CULL_FACE), this._colorMap.bind(0);
+ var ce = _e;
+ ce.model = Pe.model || A, ce.view = Pe.view || A, ce.projection = Pe.projection || A, ce.lowerBound = [this.bounds[0][0], this.bounds[0][1], this.colorBounds[0] || this.bounds[0][2]], ce.upperBound = [this.bounds[1][0], this.bounds[1][1], this.colorBounds[1] || this.bounds[1][2]], ce.objectOffset = this.objectOffset, ce.contourColor = this.contourColor[0], ce.inverseModel = k(ce.inverseModel, ce.model);
+ for (var je = 0; je < 2; ++je) for (var lt = ce.clipBounds[je], pt = 0; pt < 3; ++pt) lt[pt] = Math.min(Math.max(this.clipBounds[je][pt], -1e8), 1e8);
+ ce.kambient = this.ambientLight, ce.kdiffuse = this.diffuseLight, ce.kspecular = this.specularLight, ce.roughness = this.roughness, ce.fresnel = this.fresnel, ce.opacity = this.opacity, ce.height = 0, ce.permutation = Le, ce.vertexColor = this.vertexColor;
+ var Vt = Ce;
+ for (p(Vt, ce.view, ce.model), p(Vt, ce.projection, Vt), k(Vt, Vt), je = 0; je < 3; ++je) ce.eyePosition[je] = Vt[12 + je] / Vt[15];
+ var ot = Vt[15];
+ for (je = 0; je < 3; ++je) ot += this.lightPosition[je] * Vt[4 * je + 3];
+ for (je = 0; je < 3; ++je) {
+ var ut = Vt[12 + je];
+ for (pt = 0; pt < 3; ++pt) ut += Vt[4 * pt + je] * this.lightPosition[pt];
+ ce.lightPosition[je] = ut / ot;
+ }
+ var Wt = oe(ce, this);
+ if (Wt.showSurface) {
+ for (this._shader.bind(), this._shader.uniforms = ce, this._vao.bind(), this.showSurface && this._vertexCount && this._vao.draw(De.TRIANGLES, this._vertexCount), je = 0; je < 3; ++je) !this.surfaceProject[je] || !this.vertexCount || (this._shader.uniforms.model = Wt.projections[je], this._shader.uniforms.clipBounds = Wt.clipBounds[je], this._vao.draw(De.TRIANGLES, this._vertexCount));
+ this._vao.unbind();
+ }
+ if (Wt.showContour) {
+ var Nt = this._contourShader;
+ ce.kambient = 1, ce.kdiffuse = 0, ce.kspecular = 0, ce.opacity = 1, Nt.bind(), Nt.uniforms = ce;
+ var $t = this._contourVAO;
+ for ($t.bind(), je = 0; je < 3; ++je) for (Nt.uniforms.permutation = O[je], De.lineWidth(this.contourWidth[je] * this.pixelRatio), pt = 0; pt < this.contourLevels[je].length; ++pt) pt === this.highlightLevel[je] ? (Nt.uniforms.contourColor = this.highlightColor[je], Nt.uniforms.contourTint = this.highlightTint[je]) : (pt === 0 || pt - 1 === this.highlightLevel[je]) && (Nt.uniforms.contourColor = this.contourColor[je], Nt.uniforms.contourTint = this.contourTint[je]), this._contourCounts[je][pt] && (Nt.uniforms.height = this.contourLevels[je][pt], $t.draw(De.LINES, this._contourCounts[je][pt], this._contourOffsets[je][pt]));
+ for (je = 0; je < 3; ++je) for (Nt.uniforms.model = Wt.projections[je], Nt.uniforms.clipBounds = Wt.clipBounds[je], pt = 0; pt < 3; ++pt) if (this.contourProject[je][pt]) {
+ Nt.uniforms.permutation = O[pt], De.lineWidth(this.contourWidth[pt] * this.pixelRatio);
+ for (var sr = 0; sr < this.contourLevels[pt].length; ++sr) sr === this.highlightLevel[pt] ? (Nt.uniforms.contourColor = this.highlightColor[pt], Nt.uniforms.contourTint = this.highlightTint[pt]) : (sr === 0 || sr - 1 === this.highlightLevel[pt]) && (Nt.uniforms.contourColor = this.contourColor[pt], Nt.uniforms.contourTint = this.contourTint[pt]), this._contourCounts[pt][sr] && (Nt.uniforms.height = this.contourLevels[pt][sr], $t.draw(De.LINES, this._contourCounts[pt][sr], this._contourOffsets[pt][sr]));
+ }
+ for ($t.unbind(), $t = this._dynamicVAO, $t.bind(), je = 0; je < 3; ++je) if (this._dynamicCounts[je] !== 0) for (Nt.uniforms.model = ce.model, Nt.uniforms.clipBounds = ce.clipBounds, Nt.uniforms.permutation = O[je], De.lineWidth(this.dynamicWidth[je] * this.pixelRatio), Nt.uniforms.contourColor = this.dynamicColor[je], Nt.uniforms.contourTint = this.dynamicTint[je], Nt.uniforms.height = this.dynamicLevel[je], $t.draw(De.LINES, this._dynamicCounts[je], this._dynamicOffsets[je]), pt = 0; pt < 3; ++pt) this.contourProject[pt][je] && (Nt.uniforms.model = Wt.projections[pt], Nt.uniforms.clipBounds = Wt.clipBounds[pt], $t.draw(De.LINES, this._dynamicCounts[je], this._dynamicOffsets[je]));
+ $t.unbind();
+ }
+ }
+ j.draw = function(Pe) {
+ return ge.call(this, Pe, false);
+ }, j.drawTransparent = function(Pe) {
+ return ge.call(this, Pe, true);
+ };
+ var ie = { model: A, view: A, projection: A, inverseModel: A, clipBounds: [[0, 0, 0], [0, 0, 0]], height: 0, shape: [0, 0], pickId: 0, lowerBound: [0, 0, 0], upperBound: [0, 0, 0], zOffset: 0, objectOffset: [0, 0, 0], permutation: [1, 0, 0, 0, 1, 0, 0, 0, 1], lightPosition: [0, 0, 0], eyePosition: [0, 0, 0] };
+ j.drawPick = function(Pe) {
+ Pe = Pe || {};
+ var me = this.gl;
+ me.disable(me.CULL_FACE);
+ var De = ie;
+ De.model = Pe.model || A, De.view = Pe.view || A, De.projection = Pe.projection || A, De.shape = this._field[2].shape, De.pickId = this.pickId / 255, De.lowerBound = this.bounds[0], De.upperBound = this.bounds[1], De.objectOffset = this.objectOffset, De.permutation = Le;
+ for (var ce = 0; ce < 2; ++ce) for (var je = De.clipBounds[ce], lt = 0; lt < 3; ++lt) je[lt] = Math.min(Math.max(this.clipBounds[ce][lt], -1e8), 1e8);
+ var pt = oe(De, this);
+ if (pt.showSurface) {
+ for (this._pickShader.bind(), this._pickShader.uniforms = De, this._vao.bind(), this._vao.draw(me.TRIANGLES, this._vertexCount), ce = 0; ce < 3; ++ce) this.surfaceProject[ce] && (this._pickShader.uniforms.model = pt.projections[ce], this._pickShader.uniforms.clipBounds = pt.clipBounds[ce], this._vao.draw(me.TRIANGLES, this._vertexCount));
+ this._vao.unbind();
+ }
+ if (pt.showContour) {
+ var Vt = this._contourPickShader;
+ Vt.bind(), Vt.uniforms = De;
+ var ot = this._contourVAO;
+ for (ot.bind(), lt = 0; lt < 3; ++lt) for (me.lineWidth(this.contourWidth[lt] * this.pixelRatio), Vt.uniforms.permutation = O[lt], ce = 0; ce < this.contourLevels[lt].length; ++ce) this._contourCounts[lt][ce] && (Vt.uniforms.height = this.contourLevels[lt][ce], ot.draw(me.LINES, this._contourCounts[lt][ce], this._contourOffsets[lt][ce]));
+ for (ce = 0; ce < 3; ++ce) for (Vt.uniforms.model = pt.projections[ce], Vt.uniforms.clipBounds = pt.clipBounds[ce], lt = 0; lt < 3; ++lt) if (this.contourProject[ce][lt]) {
+ Vt.uniforms.permutation = O[lt], me.lineWidth(this.contourWidth[lt] * this.pixelRatio);
+ for (var ut = 0; ut < this.contourLevels[lt].length; ++ut) this._contourCounts[lt][ut] && (Vt.uniforms.height = this.contourLevels[lt][ut], ot.draw(me.LINES, this._contourCounts[lt][ut], this._contourOffsets[lt][ut]));
+ }
+ ot.unbind();
+ }
+ }, j.pick = function(Pe) {
+ if (!Pe || Pe.id !== this.pickId) return null;
+ var me = this._field[2].shape, De = this._pickResult, ce = me[0] * (Pe.value[0] + (Pe.value[2] >> 4) / 16) / 255, je = Math.floor(ce), lt = ce - je, pt = me[1] * (Pe.value[1] + (Pe.value[2] & 15) / 16) / 255, Vt = Math.floor(pt), ot = pt - Vt;
+ je += 1, Vt += 1;
+ var ut = De.position;
+ ut[0] = ut[1] = ut[2] = 0;
+ for (var Wt = 0; Wt < 2; ++Wt) for (var Nt = Wt ? lt : 1 - lt, $t = 0; $t < 2; ++$t) for (var sr = $t ? ot : 1 - ot, Tr = je + Wt, fr = Vt + $t, $e = Nt * sr, St = 0; St < 3; ++St) ut[St] += this._field[St].get(Tr, fr) * $e;
+ for (var Qt = this._pickResult.level, Gt = 0; Gt < 3; ++Gt) if (Qt[Gt] = E.le(this.contourLevels[Gt], ut[Gt]), Qt[Gt] < 0) this.contourLevels[Gt].length > 0 && (Qt[Gt] = 0);
+ else if (Qt[Gt] < this.contourLevels[Gt].length - 1) {
+ var _t = this.contourLevels[Gt][Qt[Gt]], It = this.contourLevels[Gt][Qt[Gt] + 1];
+ Math.abs(_t - ut[Gt]) > Math.abs(It - ut[Gt]) && (Qt[Gt] += 1);
+ }
+ for (De.index[0] = lt < 0.5 ? je : je + 1, De.index[1] = ot < 0.5 ? Vt : Vt + 1, De.uv[0] = ce / me[0], De.uv[1] = pt / me[1], St = 0; St < 3; ++St) De.dataCoordinate[St] = this._field[St].get(De.index[0], De.index[1]);
+ return De;
+ }, j.padField = function(Pe, me) {
+ var De = me.shape.slice(), ce = Pe.shape.slice();
+ d.assign(Pe.lo(1, 1).hi(De[0], De[1]), me), d.assign(Pe.lo(1).hi(De[0], 1), me.hi(De[0], 1)), d.assign(Pe.lo(1, ce[1] - 1).hi(De[0], 1), me.lo(0, De[1] - 1).hi(De[0], 1)), d.assign(Pe.lo(0, 1).hi(1, De[1]), me.hi(1)), d.assign(Pe.lo(ce[0] - 1, 1).hi(1, De[1]), me.lo(De[0] - 1)), Pe.set(0, 0, me.get(0, 0)), Pe.set(0, ce[1] - 1, me.get(0, De[1] - 1)), Pe.set(ce[0] - 1, 0, me.get(De[0] - 1, 0)), Pe.set(ce[0] - 1, ce[1] - 1, me.get(De[0] - 1, De[1] - 1));
+ };
+ function Se(Pe, me) {
+ return Array.isArray(Pe) ? [me(Pe[0]), me(Pe[1]), me(Pe[2])] : [me(Pe), me(Pe), me(Pe)];
+ }
+ function Ee(Pe) {
+ return Array.isArray(Pe) ? Pe.length === 3 ? [Pe[0], Pe[1], Pe[2], 1] : [Pe[0], Pe[1], Pe[2], Pe[3]] : [0, 0, 0, 1];
+ }
+ function Ae(Pe) {
+ if (Array.isArray(Pe)) {
+ if (Array.isArray(Pe)) return [Ee(Pe[0]), Ee(Pe[1]), Ee(Pe[2])];
+ var me = Ee(Pe);
+ return [me.slice(), me.slice(), me.slice()];
+ }
+ }
+ j.update = function(Pe) {
+ Pe = Pe || {}, this.objectOffset = Pe.objectOffset || this.objectOffset, this.dirty = true, "contourWidth" in Pe && (this.contourWidth = Se(Pe.contourWidth, Number)), "showContour" in Pe && (this.showContour = Se(Pe.showContour, Boolean)), "showSurface" in Pe && (this.showSurface = !!Pe.showSurface), "contourTint" in Pe && (this.contourTint = Se(Pe.contourTint, Boolean)), "contourColor" in Pe && (this.contourColor = Ae(Pe.contourColor)), "contourProject" in Pe && (this.contourProject = Se(Pe.contourProject, function(yn) {
+ return Se(yn, Boolean);
+ })), "surfaceProject" in Pe && (this.surfaceProject = Pe.surfaceProject), "dynamicColor" in Pe && (this.dynamicColor = Ae(Pe.dynamicColor)), "dynamicTint" in Pe && (this.dynamicTint = Se(Pe.dynamicTint, Number)), "dynamicWidth" in Pe && (this.dynamicWidth = Se(Pe.dynamicWidth, Number)), "opacity" in Pe && (this.opacity = Pe.opacity), "opacityscale" in Pe && (this.opacityscale = Pe.opacityscale), "colorBounds" in Pe && (this.colorBounds = Pe.colorBounds), "vertexColor" in Pe && (this.vertexColor = Pe.vertexColor ? 1 : 0), "colormap" in Pe && this._colorMap.setPixels(this.genColormap(Pe.colormap, this.opacityscale));
+ var me = Pe.field || Pe.coords && Pe.coords[2] || null, De = false;
+ if (me || (this._field[2].shape[0] || this._field[2].shape[2] ? me = this._field[2].lo(1, 1).hi(this._field[2].shape[0] - 2, this._field[2].shape[1] - 2) : me = this._field[2].hi(0, 0)), "field" in Pe || "coords" in Pe) {
+ var ce = (me.shape[0] + 2) * (me.shape[1] + 2);
+ ce > this._field[2].data.length && (f.freeFloat(this._field[2].data), this._field[2].data = f.mallocFloat(s.nextPow2(ce))), this._field[2] = _(this._field[2].data, [me.shape[0] + 2, me.shape[1] + 2]), this.padField(this._field[2], me), this.shape = me.shape.slice();
+ for (var je = this.shape, lt = 0; lt < 2; ++lt) this._field[2].size > this._field[lt].data.length && (f.freeFloat(this._field[lt].data), this._field[lt].data = f.mallocFloat(this._field[2].size)), this._field[lt] = _(this._field[lt].data, [je[0] + 2, je[1] + 2]);
+ if (Pe.coords) {
+ var pt = Pe.coords;
+ if (!Array.isArray(pt) || pt.length !== 3) throw new Error("gl-surface: invalid coordinates for x/y");
+ for (lt = 0; lt < 2; ++lt) {
+ var Vt = pt[lt];
+ for ($t = 0; $t < 2; ++$t) if (Vt.shape[$t] !== je[$t]) throw new Error("gl-surface: coords have incorrect shape");
+ this.padField(this._field[lt], Vt);
+ }
+ } else if (Pe.ticks) {
+ var ot = Pe.ticks;
+ if (!Array.isArray(ot) || ot.length !== 2) throw new Error("gl-surface: invalid ticks");
+ for (lt = 0; lt < 2; ++lt) {
+ var ut = ot[lt];
+ if ((Array.isArray(ut) || ut.length) && (ut = _(ut)), ut.shape[0] !== je[lt]) throw new Error("gl-surface: invalid tick length");
+ var Wt = _(ut.data, je);
+ Wt.stride[lt] = ut.stride[0], Wt.stride[lt ^ 1] = 0, this.padField(this._field[lt], Wt);
+ }
+ } else {
+ for (lt = 0; lt < 2; ++lt) {
+ var Nt = [0, 0];
+ Nt[lt] = 1, this._field[lt] = _(this._field[lt].data, [je[0] + 2, je[1] + 2], Nt, 0);
+ }
+ this._field[0].set(0, 0, 0);
+ for (var $t = 0; $t < je[0]; ++$t) this._field[0].set($t + 1, 0, $t);
+ for (this._field[0].set(je[0] + 1, 0, je[0] - 1), this._field[1].set(0, 0, 0), $t = 0; $t < je[1]; ++$t) this._field[1].set(0, $t + 1, $t);
+ this._field[1].set(0, je[1] + 1, je[1] - 1);
+ }
+ var sr = this._field, Tr = _(f.mallocFloat(sr[2].size * 3 * 2), [3, je[0] + 2, je[1] + 2, 2]);
+ for (lt = 0; lt < 3; ++lt) T(Tr.pick(lt), sr[lt], "mirror");
+ var fr = _(f.mallocFloat(sr[2].size * 3), [je[0] + 2, je[1] + 2, 3]);
+ for (lt = 0; lt < je[0] + 2; ++lt) for ($t = 0; $t < je[1] + 2; ++$t) {
+ var $e = Tr.get(0, lt, $t, 0), St = Tr.get(0, lt, $t, 1), Qt = Tr.get(1, lt, $t, 0), Gt = Tr.get(1, lt, $t, 1), _t = Tr.get(2, lt, $t, 0), It = Tr.get(2, lt, $t, 1), mt = Qt * It - Gt * _t, er = _t * St - It * $e, lr = $e * Gt - St * Qt, wr = Math.sqrt(mt * mt + er * er + lr * lr);
+ wr < 1e-8 ? (wr = Math.max(Math.abs(mt), Math.abs(er), Math.abs(lr)), wr < 1e-8 ? (lr = 1, er = mt = 0, wr = 1) : wr = 1 / wr) : wr = 1 / Math.sqrt(wr), fr.set(lt, $t, 0, mt * wr), fr.set(lt, $t, 1, er * wr), fr.set(lt, $t, 2, lr * wr);
+ }
+ f.free(Tr.data);
+ var Lr = [1 / 0, 1 / 0, 1 / 0], ti = [-1 / 0, -1 / 0, -1 / 0], Br = 1 / 0, Vr = -1 / 0, dt = (je[0] - 1) * (je[1] - 1) * 6, Ge = f.mallocFloat(s.nextPow2(10 * dt)), Je = 0, We = 0;
+ for (lt = 0; lt < je[0] - 1; ++lt) e: for ($t = 0; $t < je[1] - 1; ++$t) {
+ for (var tt = 0; tt < 2; ++tt) for (var xt = 0; xt < 2; ++xt) for (var Ie = 0; Ie < 3; ++Ie) {
+ var xe = this._field[Ie].get(1 + lt + tt, 1 + $t + xt);
+ if (isNaN(xe) || !isFinite(xe)) continue e;
+ }
+ for (Ie = 0; Ie < 6; ++Ie) {
+ var ke = lt + z[Ie][0], vt = $t + z[Ie][1], ir = this._field[0].get(ke + 1, vt + 1), ar = this._field[1].get(ke + 1, vt + 1);
+ xe = this._field[2].get(ke + 1, vt + 1), mt = fr.get(ke + 1, vt + 1, 0), er = fr.get(ke + 1, vt + 1, 1), lr = fr.get(ke + 1, vt + 1, 2), Pe.intensity && (vr = Pe.intensity.get(ke, vt));
+ var vr = Pe.intensity ? Pe.intensity.get(ke, vt) : xe + this.objectOffset[2];
+ Ge[Je++] = ke, Ge[Je++] = vt, Ge[Je++] = ir, Ge[Je++] = ar, Ge[Je++] = xe, Ge[Je++] = 0, Ge[Je++] = vr, Ge[Je++] = mt, Ge[Je++] = er, Ge[Je++] = lr, Lr[0] = Math.min(Lr[0], ir + this.objectOffset[0]), Lr[1] = Math.min(Lr[1], ar + this.objectOffset[1]), Lr[2] = Math.min(Lr[2], xe + this.objectOffset[2]), Br = Math.min(Br, vr), ti[0] = Math.max(ti[0], ir + this.objectOffset[0]), ti[1] = Math.max(ti[1], ar + this.objectOffset[1]), ti[2] = Math.max(ti[2], xe + this.objectOffset[2]), Vr = Math.max(Vr, vr), We += 1;
+ }
+ }
+ for (Pe.intensityBounds && (Br = +Pe.intensityBounds[0], Vr = +Pe.intensityBounds[1]), lt = 6; lt < Je; lt += 10) Ge[lt] = (Ge[lt] - Br) / (Vr - Br);
+ this._vertexCount = We, this._coordinateBuffer.update(Ge.subarray(0, Je)), f.freeFloat(Ge), f.free(fr.data), this.bounds = [Lr, ti], this.intensity = Pe.intensity || this._field[2], (this.intensityBounds[0] !== Br || this.intensityBounds[1] !== Vr) && (De = true), this.intensityBounds = [Br, Vr];
+ }
+ if ("levels" in Pe) {
+ var ii = Pe.levels;
+ for (Array.isArray(ii[0]) ? ii = ii.slice() : ii = [[], [], ii], lt = 0; lt < 3; ++lt) ii[lt] = ii[lt].slice(), ii[lt].sort(function(yn, Sn) {
+ return yn - Sn;
+ });
+ for (lt = 0; lt < 3; ++lt) for ($t = 0; $t < ii[lt].length; ++$t) ii[lt][$t] -= this.objectOffset[lt];
+ e: for (lt = 0; lt < 3; ++lt) {
+ if (ii[lt].length !== this.contourLevels[lt].length) {
+ De = true;
+ break;
+ }
+ for ($t = 0; $t < ii[lt].length; ++$t) if (ii[lt][$t] !== this.contourLevels[lt][$t]) {
+ De = true;
+ break e;
+ }
+ }
+ this.contourLevels = ii;
+ }
+ if (De) {
+ sr = this._field, je = this.shape;
+ for (var pi = [], $r = 0; $r < 3; ++$r) {
+ var di = this.contourLevels[$r], ji = [], In = [], wi = [0, 0, 0];
+ for (lt = 0; lt < di.length; ++lt) {
+ var On = b(this._field[$r], di[lt]);
+ ji.push(pi.length / 5 | 0), We = 0;
+ e: for ($t = 0; $t < On.cells.length; ++$t) {
+ var qn = On.cells[$t];
+ for (Ie = 0; Ie < 2; ++Ie) {
+ var Fn = On.positions[qn[Ie]], ra = Fn[0], la = Math.floor(ra) | 0, Ut = ra - la, wt = Fn[1], rr = Math.floor(wt) | 0, nr = wt - rr, Er = false;
+ t: for (var Xr = 0; Xr < 3; ++Xr) {
+ wi[Xr] = 0;
+ var ri = ($r + Xr + 1) % 3;
+ for (tt = 0; tt < 2; ++tt) {
+ var Qr = tt ? Ut : 1 - Ut;
+ for (ke = Math.min(Math.max(la + tt, 0), je[0]) | 0, xt = 0; xt < 2; ++xt) {
+ var Oi = xt ? nr : 1 - nr;
+ if (vt = Math.min(Math.max(rr + xt, 0), je[1]) | 0, Xr < 2 ? xe = this._field[ri].get(ke, vt) : xe = (this.intensity.get(ke, vt) - this.intensityBounds[0]) / (this.intensityBounds[1] - this.intensityBounds[0]), !isFinite(xe) || isNaN(xe)) {
+ Er = true;
+ break t;
+ }
+ var $i = Qr * Oi;
+ wi[Xr] += $i * xe;
+ }
+ }
+ }
+ if (!Er) pi.push(wi[0], wi[1], Fn[0], Fn[1], wi[2]), We += 1;
+ else {
+ if (Ie > 0) {
+ for (var tn = 0; tn < 5; ++tn) pi.pop();
+ We -= 1;
+ }
+ continue e;
+ }
+ }
+ }
+ In.push(We);
+ }
+ this._contourOffsets[$r] = ji, this._contourCounts[$r] = In;
+ }
+ var fn = f.mallocFloat(pi.length);
+ for (lt = 0; lt < pi.length; ++lt) fn[lt] = pi[lt];
+ this._contourBuffer.update(fn), f.freeFloat(fn);
+ }
+ }, j.dispose = function() {
+ this._shader.dispose(), this._vao.dispose(), this._coordinateBuffer.dispose(), this._colorMap.dispose(), this._contourBuffer.dispose(), this._contourVAO.dispose(), this._contourShader.dispose(), this._contourPickShader.dispose(), this._dynamicBuffer.dispose(), this._dynamicVAO.dispose();
+ for (var Pe = 0; Pe < 3; ++Pe) f.freeFloat(this._field[Pe].data);
+ }, j.highlight = function(Pe) {
+ var me;
+ if (!Pe) {
+ this._dynamicCounts = [0, 0, 0], this.dyanamicLevel = [NaN, NaN, NaN], this.highlightLevel = [-1, -1, -1];
+ return;
+ }
+ for (me = 0; me < 3; ++me) this.enableHighlight[me] ? this.highlightLevel[me] = Pe.level[me] : this.highlightLevel[me] = -1;
+ var De;
+ for (this.snapToData ? De = Pe.dataCoordinate : De = Pe.position, me = 0; me < 3; ++me) De[me] -= this.objectOffset[me];
+ if (!((!this.enableDynamic[0] || De[0] === this.dynamicLevel[0]) && (!this.enableDynamic[1] || De[1] === this.dynamicLevel[1]) && (!this.enableDynamic[2] || De[2] === this.dynamicLevel[2]))) {
+ for (var ce = 0, je = this.shape, lt = f.mallocFloat(12 * je[0] * je[1]), pt = 0; pt < 3; ++pt) {
+ if (!this.enableDynamic[pt]) {
+ this.dynamicLevel[pt] = NaN, this._dynamicCounts[pt] = 0;
+ continue;
+ }
+ this.dynamicLevel[pt] = De[pt];
+ var Vt = (pt + 1) % 3, ot = (pt + 2) % 3, ut = this._field[pt], Wt = this._field[Vt], Nt = this._field[ot], $t = b(ut, De[pt]), sr = $t.cells, Tr = $t.positions;
+ for (this._dynamicOffsets[pt] = ce, me = 0; me < sr.length; ++me) for (var fr = sr[me], $e = 0; $e < 2; ++$e) {
+ var St = Tr[fr[$e]], Qt = +St[0], Gt = Qt | 0, _t = Math.min(Gt + 1, je[0]) | 0, It = Qt - Gt, mt = 1 - It, er = +St[1], lr = er | 0, wr = Math.min(lr + 1, je[1]) | 0, Lr = er - lr, ti = 1 - Lr, Br = mt * ti, Vr = mt * Lr, dt = It * ti, Ge = It * Lr, Je = Br * Wt.get(Gt, lr) + Vr * Wt.get(Gt, wr) + dt * Wt.get(_t, lr) + Ge * Wt.get(_t, wr), We = Br * Nt.get(Gt, lr) + Vr * Nt.get(Gt, wr) + dt * Nt.get(_t, lr) + Ge * Nt.get(_t, wr);
+ if (isNaN(Je) || isNaN(We)) {
+ $e && (ce -= 1);
+ break;
+ }
+ lt[2 * ce + 0] = Je, lt[2 * ce + 1] = We, ce += 1;
+ }
+ this._dynamicCounts[pt] = ce - this._dynamicOffsets[pt];
+ }
+ this._dynamicBuffer.update(lt.subarray(0, 2 * ce)), f.freeFloat(lt);
+ }
+ };
+ function Be(Pe) {
+ var me = Pe.gl, De = x(me), ce = M(me), je = C(me), lt = g(me), pt = l(me), Vt = u(me, [{ buffer: pt, size: 4, stride: P, offset: 0 }, { buffer: pt, size: 3, stride: P, offset: 16 }, { buffer: pt, size: 3, stride: P, offset: 28 }]), ot = l(me), ut = u(me, [{ buffer: ot, size: 4, stride: 20, offset: 0 }, { buffer: ot, size: 1, stride: 20, offset: 16 }]), Wt = l(me), Nt = u(me, [{ buffer: Wt, size: 2, type: me.FLOAT }]), $t = c(me, 1, G, me.RGBA, me.UNSIGNED_BYTE);
+ $t.minFilter = me.LINEAR, $t.magFilter = me.LINEAR;
+ var sr = new Z(me, [0, 0], [[0, 0, 0], [0, 0, 0]], De, ce, pt, Vt, $t, je, lt, ot, ut, Wt, Nt, [0, 0, 0]), Tr = { levels: [[], [], []] };
+ for (var fr in Pe) Tr[fr] = Pe[fr];
+ return Tr.colormap = Tr.colormap || "jet", sr.update(Tr), sr;
+ }
+ }, 9507: function(i) {
+ i.exports = true;
+ }, 9618: function(i, a, o) {
+ var s = o(7163), l = typeof Float64Array != "undefined";
+ function u(b, p) {
+ return b[0] - p[0];
+ }
+ function c() {
+ var b = this.stride, p = new Array(b.length), k;
+ for (k = 0; k < p.length; ++k) p[k] = [Math.abs(b[k]), k];
+ p.sort(u);
+ var E = new Array(p.length);
+ for (k = 0; k < E.length; ++k) E[k] = p[k][1];
+ return E;
+ }
+ var f = { T: function(b) {
+ function p(E) {
+ this.data = E;
+ }
+ var k = p.prototype;
+ return k.dtype = b, k.index = function() {
+ return -1;
+ }, k.size = 0, k.dimension = -1, k.shape = k.stride = k.order = [], k.lo = k.hi = k.transpose = k.step = function() {
+ return new p(this.data);
+ }, k.get = k.set = function() {
+ }, k.pick = function() {
+ return null;
+ }, function(T) {
+ return new p(T);
+ };
+ }, 0: function(b, p) {
+ function k(T, L) {
+ this.data = T, this.offset = L;
+ }
+ var E = k.prototype;
+ return E.dtype = b, E.index = function() {
+ return this.offset;
+ }, E.dimension = 0, E.size = 1, E.shape = E.stride = E.order = [], E.lo = E.hi = E.transpose = E.step = function() {
+ return new k(this.data, this.offset);
+ }, E.pick = function() {
+ return p(this.data);
+ }, E.valueOf = E.get = function() {
+ return b === "generic" ? this.data.get(this.offset) : this.data[this.offset];
+ }, E.set = function(L) {
+ return b === "generic" ? this.data.set(this.offset, L) : this.data[this.offset] = L;
+ }, function(L, x, C, M) {
+ return new k(L, M);
+ };
+ }, 1: function(b, p, k) {
+ function E(L, x, C, M) {
+ this.data = L, this.shape = [x], this.stride = [C], this.offset = M | 0;
+ }
+ var T = E.prototype;
+ return T.dtype = b, T.dimension = 1, Object.defineProperty(T, "size", { get: function() {
+ return this.shape[0];
+ } }), T.order = [0], T.set = function(x, C) {
+ return b === "generic" ? this.data.set(this.offset + this.stride[0] * x, C) : this.data[this.offset + this.stride[0] * x] = C;
+ }, T.get = function(x) {
+ return b === "generic" ? this.data.get(this.offset + this.stride[0] * x) : this.data[this.offset + this.stride[0] * x];
+ }, T.index = function(x) {
+ return this.offset + this.stride[0] * x;
+ }, T.hi = function(x) {
+ return new E(this.data, typeof x != "number" || x < 0 ? this.shape[0] : x | 0, this.stride[0], this.offset);
+ }, T.lo = function(x) {
+ var C = this.offset, M = 0, g = this.shape[0], P = this.stride[0];
+ return typeof x == "number" && x >= 0 && (M = x | 0, C += P * M, g -= M), new E(this.data, g, P, C);
+ }, T.step = function(x) {
+ var C = this.shape[0], M = this.stride[0], g = this.offset, P = 0, A = Math.ceil;
+ return typeof x == "number" && (P = x | 0, P < 0 ? (g += M * (C - 1), C = A(-C / P)) : C = A(C / P), M *= P), new E(this.data, C, M, g);
+ }, T.transpose = function(x) {
+ x = x === void 0 ? 0 : x | 0;
+ var C = this.shape, M = this.stride;
+ return new E(this.data, C[x], M[x], this.offset);
+ }, T.pick = function(x) {
+ var C = [], M = [], g = this.offset;
+ typeof x == "number" && x >= 0 ? g = g + this.stride[0] * x | 0 : (C.push(this.shape[0]), M.push(this.stride[0]));
+ var P = p[C.length + 1];
+ return P(this.data, C, M, g);
+ }, function(x, C, M, g) {
+ return new E(x, C[0], M[0], g);
+ };
+ }, 2: function(b, p, k) {
+ function E(L, x, C, M, g, P) {
+ this.data = L, this.shape = [x, C], this.stride = [M, g], this.offset = P | 0;
+ }
+ var T = E.prototype;
+ return T.dtype = b, T.dimension = 2, Object.defineProperty(T, "size", { get: function() {
+ return this.shape[0] * this.shape[1];
+ } }), Object.defineProperty(T, "order", { get: function() {
+ return Math.abs(this.stride[0]) > Math.abs(this.stride[1]) ? [1, 0] : [0, 1];
+ } }), T.set = function(x, C, M) {
+ return b === "generic" ? this.data.set(this.offset + this.stride[0] * x + this.stride[1] * C, M) : this.data[this.offset + this.stride[0] * x + this.stride[1] * C] = M;
+ }, T.get = function(x, C) {
+ return b === "generic" ? this.data.get(this.offset + this.stride[0] * x + this.stride[1] * C) : this.data[this.offset + this.stride[0] * x + this.stride[1] * C];
+ }, T.index = function(x, C) {
+ return this.offset + this.stride[0] * x + this.stride[1] * C;
+ }, T.hi = function(x, C) {
+ return new E(this.data, typeof x != "number" || x < 0 ? this.shape[0] : x | 0, typeof C != "number" || C < 0 ? this.shape[1] : C | 0, this.stride[0], this.stride[1], this.offset);
+ }, T.lo = function(x, C) {
+ var M = this.offset, g = 0, P = this.shape[0], A = this.shape[1], z = this.stride[0], O = this.stride[1];
+ return typeof x == "number" && x >= 0 && (g = x | 0, M += z * g, P -= g), typeof C == "number" && C >= 0 && (g = C | 0, M += O * g, A -= g), new E(this.data, P, A, z, O, M);
+ }, T.step = function(x, C) {
+ var M = this.shape[0], g = this.shape[1], P = this.stride[0], A = this.stride[1], z = this.offset, O = 0, U = Math.ceil;
+ return typeof x == "number" && (O = x | 0, O < 0 ? (z += P * (M - 1), M = U(-M / O)) : M = U(M / O), P *= O), typeof C == "number" && (O = C | 0, O < 0 ? (z += A * (g - 1), g = U(-g / O)) : g = U(g / O), A *= O), new E(this.data, M, g, P, A, z);
+ }, T.transpose = function(x, C) {
+ x = x === void 0 ? 0 : x | 0, C = C === void 0 ? 1 : C | 0;
+ var M = this.shape, g = this.stride;
+ return new E(this.data, M[x], M[C], g[x], g[C], this.offset);
+ }, T.pick = function(x, C) {
+ var M = [], g = [], P = this.offset;
+ typeof x == "number" && x >= 0 ? P = P + this.stride[0] * x | 0 : (M.push(this.shape[0]), g.push(this.stride[0])), typeof C == "number" && C >= 0 ? P = P + this.stride[1] * C | 0 : (M.push(this.shape[1]), g.push(this.stride[1]));
+ var A = p[M.length + 1];
+ return A(this.data, M, g, P);
+ }, function(x, C, M, g) {
+ return new E(x, C[0], C[1], M[0], M[1], g);
+ };
+ }, 3: function(b, p, k) {
+ function E(L, x, C, M, g, P, A, z) {
+ this.data = L, this.shape = [x, C, M], this.stride = [g, P, A], this.offset = z | 0;
+ }
+ var T = E.prototype;
+ return T.dtype = b, T.dimension = 3, Object.defineProperty(T, "size", { get: function() {
+ return this.shape[0] * this.shape[1] * this.shape[2];
+ } }), Object.defineProperty(T, "order", { get: function() {
+ var x = Math.abs(this.stride[0]), C = Math.abs(this.stride[1]), M = Math.abs(this.stride[2]);
+ return x > C ? C > M ? [2, 1, 0] : x > M ? [1, 2, 0] : [1, 0, 2] : x > M ? [2, 0, 1] : M > C ? [0, 1, 2] : [0, 2, 1];
+ } }), T.set = function(x, C, M, g) {
+ return b === "generic" ? this.data.set(this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M, g) : this.data[this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M] = g;
+ }, T.get = function(x, C, M) {
+ return b === "generic" ? this.data.get(this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M) : this.data[this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M];
+ }, T.index = function(x, C, M) {
+ return this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M;
+ }, T.hi = function(x, C, M) {
+ return new E(this.data, typeof x != "number" || x < 0 ? this.shape[0] : x | 0, typeof C != "number" || C < 0 ? this.shape[1] : C | 0, typeof M != "number" || M < 0 ? this.shape[2] : M | 0, this.stride[0], this.stride[1], this.stride[2], this.offset);
+ }, T.lo = function(x, C, M) {
+ var g = this.offset, P = 0, A = this.shape[0], z = this.shape[1], O = this.shape[2], U = this.stride[0], G = this.stride[1], Z = this.stride[2];
+ return typeof x == "number" && x >= 0 && (P = x | 0, g += U * P, A -= P), typeof C == "number" && C >= 0 && (P = C | 0, g += G * P, z -= P), typeof M == "number" && M >= 0 && (P = M | 0, g += Z * P, O -= P), new E(this.data, A, z, O, U, G, Z, g);
+ }, T.step = function(x, C, M) {
+ var g = this.shape[0], P = this.shape[1], A = this.shape[2], z = this.stride[0], O = this.stride[1], U = this.stride[2], G = this.offset, Z = 0, j = Math.ceil;
+ return typeof x == "number" && (Z = x | 0, Z < 0 ? (G += z * (g - 1), g = j(-g / Z)) : g = j(g / Z), z *= Z), typeof C == "number" && (Z = C | 0, Z < 0 ? (G += O * (P - 1), P = j(-P / Z)) : P = j(P / Z), O *= Z), typeof M == "number" && (Z = M | 0, Z < 0 ? (G += U * (A - 1), A = j(-A / Z)) : A = j(A / Z), U *= Z), new E(this.data, g, P, A, z, O, U, G);
+ }, T.transpose = function(x, C, M) {
+ x = x === void 0 ? 0 : x | 0, C = C === void 0 ? 1 : C | 0, M = M === void 0 ? 2 : M | 0;
+ var g = this.shape, P = this.stride;
+ return new E(this.data, g[x], g[C], g[M], P[x], P[C], P[M], this.offset);
+ }, T.pick = function(x, C, M) {
+ var g = [], P = [], A = this.offset;
+ typeof x == "number" && x >= 0 ? A = A + this.stride[0] * x | 0 : (g.push(this.shape[0]), P.push(this.stride[0])), typeof C == "number" && C >= 0 ? A = A + this.stride[1] * C | 0 : (g.push(this.shape[1]), P.push(this.stride[1])), typeof M == "number" && M >= 0 ? A = A + this.stride[2] * M | 0 : (g.push(this.shape[2]), P.push(this.stride[2]));
+ var z = p[g.length + 1];
+ return z(this.data, g, P, A);
+ }, function(x, C, M, g) {
+ return new E(x, C[0], C[1], C[2], M[0], M[1], M[2], g);
+ };
+ }, 4: function(b, p, k) {
+ function E(L, x, C, M, g, P, A, z, O, U) {
+ this.data = L, this.shape = [x, C, M, g], this.stride = [P, A, z, O], this.offset = U | 0;
+ }
+ var T = E.prototype;
+ return T.dtype = b, T.dimension = 4, Object.defineProperty(T, "size", { get: function() {
+ return this.shape[0] * this.shape[1] * this.shape[2] * this.shape[3];
+ } }), Object.defineProperty(T, "order", { get: k }), T.set = function(x, C, M, g, P) {
+ return b === "generic" ? this.data.set(this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M + this.stride[3] * g, P) : this.data[this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M + this.stride[3] * g] = P;
+ }, T.get = function(x, C, M, g) {
+ return b === "generic" ? this.data.get(this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M + this.stride[3] * g) : this.data[this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M + this.stride[3] * g];
+ }, T.index = function(x, C, M, g) {
+ return this.offset + this.stride[0] * x + this.stride[1] * C + this.stride[2] * M + this.stride[3] * g;
+ }, T.hi = function(x, C, M, g) {
+ return new E(this.data, typeof x != "number" || x < 0 ? this.shape[0] : x | 0, typeof C != "number" || C < 0 ? this.shape[1] : C | 0, typeof M != "number" || M < 0 ? this.shape[2] : M | 0, typeof g != "number" || g < 0 ? this.shape[3] : g | 0, this.stride[0], this.stride[1], this.stride[2], this.stride[3], this.offset);
+ }, T.lo = function(x, C, M, g) {
+ var P = this.offset, A = 0, z = this.shape[0], O = this.shape[1], U = this.shape[2], G = this.shape[3], Z = this.stride[0], j = this.stride[1], N = this.stride[2], H = this.stride[3];
+ return typeof x == "number" && x >= 0 && (A = x | 0, P += Z * A, z -= A), typeof C == "number" && C >= 0 && (A = C | 0, P += j * A, O -= A), typeof M == "number" && M >= 0 && (A = M | 0, P += N * A, U -= A), typeof g == "number" && g >= 0 && (A = g | 0, P += H * A, G -= A), new E(this.data, z, O, U, G, Z, j, N, H, P);
+ }, T.step = function(x, C, M, g) {
+ var P = this.shape[0], A = this.shape[1], z = this.shape[2], O = this.shape[3], U = this.stride[0], G = this.stride[1], Z = this.stride[2], j = this.stride[3], N = this.offset, H = 0, re = Math.ceil;
+ return typeof x == "number" && (H = x | 0, H < 0 ? (N += U * (P - 1), P = re(-P / H)) : P = re(P / H), U *= H), typeof C == "number" && (H = C | 0, H < 0 ? (N += G * (A - 1), A = re(-A / H)) : A = re(A / H), G *= H), typeof M == "number" && (H = M | 0, H < 0 ? (N += Z * (z - 1), z = re(-z / H)) : z = re(z / H), Z *= H), typeof g == "number" && (H = g | 0, H < 0 ? (N += j * (O - 1), O = re(-O / H)) : O = re(O / H), j *= H), new E(this.data, P, A, z, O, U, G, Z, j, N);
+ }, T.transpose = function(x, C, M, g) {
+ x = x === void 0 ? 0 : x | 0, C = C === void 0 ? 1 : C | 0, M = M === void 0 ? 2 : M | 0, g = g === void 0 ? 3 : g | 0;
+ var P = this.shape, A = this.stride;
+ return new E(this.data, P[x], P[C], P[M], P[g], A[x], A[C], A[M], A[g], this.offset);
+ }, T.pick = function(x, C, M, g) {
+ var P = [], A = [], z = this.offset;
+ typeof x == "number" && x >= 0 ? z = z + this.stride[0] * x | 0 : (P.push(this.shape[0]), A.push(this.stride[0])), typeof C == "number" && C >= 0 ? z = z + this.stride[1] * C | 0 : (P.push(this.shape[1]), A.push(this.stride[1])), typeof M == "number" && M >= 0 ? z = z + this.stride[2] * M | 0 : (P.push(this.shape[2]), A.push(this.stride[2])), typeof g == "number" && g >= 0 ? z = z + this.stride[3] * g | 0 : (P.push(this.shape[3]), A.push(this.stride[3]));
+ var O = p[P.length + 1];
+ return O(this.data, P, A, z);
+ }, function(x, C, M, g) {
+ return new E(x, C[0], C[1], C[2], C[3], M[0], M[1], M[2], M[3], g);
+ };
+ }, 5: function(p, k, E) {
+ function T(x, C, M, g, P, A, z, O, U, G, Z, j) {
+ this.data = x, this.shape = [C, M, g, P, A], this.stride = [z, O, U, G, Z], this.offset = j | 0;
+ }
+ var L = T.prototype;
+ return L.dtype = p, L.dimension = 5, Object.defineProperty(L, "size", { get: function() {
+ return this.shape[0] * this.shape[1] * this.shape[2] * this.shape[3] * this.shape[4];
+ } }), Object.defineProperty(L, "order", { get: E }), L.set = function(C, M, g, P, A, z) {
+ return p === "generic" ? this.data.set(this.offset + this.stride[0] * C + this.stride[1] * M + this.stride[2] * g + this.stride[3] * P + this.stride[4] * A, z) : this.data[this.offset + this.stride[0] * C + this.stride[1] * M + this.stride[2] * g + this.stride[3] * P + this.stride[4] * A] = z;
+ }, L.get = function(C, M, g, P, A) {
+ return p === "generic" ? this.data.get(this.offset + this.stride[0] * C + this.stride[1] * M + this.stride[2] * g + this.stride[3] * P + this.stride[4] * A) : this.data[this.offset + this.stride[0] * C + this.stride[1] * M + this.stride[2] * g + this.stride[3] * P + this.stride[4] * A];
+ }, L.index = function(C, M, g, P, A) {
+ return this.offset + this.stride[0] * C + this.stride[1] * M + this.stride[2] * g + this.stride[3] * P + this.stride[4] * A;
+ }, L.hi = function(C, M, g, P, A) {
+ return new T(this.data, typeof C != "number" || C < 0 ? this.shape[0] : C | 0, typeof M != "number" || M < 0 ? this.shape[1] : M | 0, typeof g != "number" || g < 0 ? this.shape[2] : g | 0, typeof P != "number" || P < 0 ? this.shape[3] : P | 0, typeof A != "number" || A < 0 ? this.shape[4] : A | 0, this.stride[0], this.stride[1], this.stride[2], this.stride[3], this.stride[4], this.offset);
+ }, L.lo = function(C, M, g, P, A) {
+ var z = this.offset, O = 0, U = this.shape[0], G = this.shape[1], Z = this.shape[2], j = this.shape[3], N = this.shape[4], H = this.stride[0], re = this.stride[1], oe = this.stride[2], _e = this.stride[3], Ce = this.stride[4];
+ return typeof C == "number" && C >= 0 && (O = C | 0, z += H * O, U -= O), typeof M == "number" && M >= 0 && (O = M | 0, z += re * O, G -= O), typeof g == "number" && g >= 0 && (O = g | 0, z += oe * O, Z -= O), typeof P == "number" && P >= 0 && (O = P | 0, z += _e * O, j -= O), typeof A == "number" && A >= 0 && (O = A | 0, z += Ce * O, N -= O), new T(this.data, U, G, Z, j, N, H, re, oe, _e, Ce, z);
+ }, L.step = function(C, M, g, P, A) {
+ var z = this.shape[0], O = this.shape[1], U = this.shape[2], G = this.shape[3], Z = this.shape[4], j = this.stride[0], N = this.stride[1], H = this.stride[2], re = this.stride[3], oe = this.stride[4], _e = this.offset, Ce = 0, Le = Math.ceil;
+ return typeof C == "number" && (Ce = C | 0, Ce < 0 ? (_e += j * (z - 1), z = Le(-z / Ce)) : z = Le(z / Ce), j *= Ce), typeof M == "number" && (Ce = M | 0, Ce < 0 ? (_e += N * (O - 1), O = Le(-O / Ce)) : O = Le(O / Ce), N *= Ce), typeof g == "number" && (Ce = g | 0, Ce < 0 ? (_e += H * (U - 1), U = Le(-U / Ce)) : U = Le(U / Ce), H *= Ce), typeof P == "number" && (Ce = P | 0, Ce < 0 ? (_e += re * (G - 1), G = Le(-G / Ce)) : G = Le(G / Ce), re *= Ce), typeof A == "number" && (Ce = A | 0, Ce < 0 ? (_e += oe * (Z - 1), Z = Le(-Z / Ce)) : Z = Le(Z / Ce), oe *= Ce), new T(this.data, z, O, U, G, Z, j, N, H, re, oe, _e);
+ }, L.transpose = function(C, M, g, P, A) {
+ C = C === void 0 ? 0 : C | 0, M = M === void 0 ? 1 : M | 0, g = g === void 0 ? 2 : g | 0, P = P === void 0 ? 3 : P | 0, A = A === void 0 ? 4 : A | 0;
+ var z = this.shape, O = this.stride;
+ return new T(this.data, z[C], z[M], z[g], z[P], z[A], O[C], O[M], O[g], O[P], O[A], this.offset);
+ }, L.pick = function(C, M, g, P, A) {
+ var z = [], O = [], U = this.offset;
+ typeof C == "number" && C >= 0 ? U = U + this.stride[0] * C | 0 : (z.push(this.shape[0]), O.push(this.stride[0])), typeof M == "number" && M >= 0 ? U = U + this.stride[1] * M | 0 : (z.push(this.shape[1]), O.push(this.stride[1])), typeof g == "number" && g >= 0 ? U = U + this.stride[2] * g | 0 : (z.push(this.shape[2]), O.push(this.stride[2])), typeof P == "number" && P >= 0 ? U = U + this.stride[3] * P | 0 : (z.push(this.shape[3]), O.push(this.stride[3])), typeof A == "number" && A >= 0 ? U = U + this.stride[4] * A | 0 : (z.push(this.shape[4]), O.push(this.stride[4]));
+ var G = k[z.length + 1];
+ return G(this.data, z, O, U);
+ }, function(C, M, g, P) {
+ return new T(C, M[0], M[1], M[2], M[3], M[4], g[0], g[1], g[2], g[3], g[4], P);
+ };
+ } };
+ function h(b, p) {
+ var k = p === -1 ? "T" : String(p), E = f[k];
+ return p === -1 ? E(b) : p === 0 ? E(b, v[b][0]) : E(b, v[b], c);
+ }
+ function d(b) {
+ if (s(b)) return "buffer";
+ if (l) switch (Object.prototype.toString.call(b)) {
+ case "[object Float64Array]":
+ return "float64";
+ case "[object Float32Array]":
+ return "float32";
+ case "[object Int8Array]":
+ return "int8";
+ case "[object Int16Array]":
+ return "int16";
+ case "[object Int32Array]":
+ return "int32";
+ case "[object Uint8ClampedArray]":
+ return "uint8_clamped";
+ case "[object Uint8Array]":
+ return "uint8";
+ case "[object Uint16Array]":
+ return "uint16";
+ case "[object Uint32Array]":
+ return "uint32";
+ case "[object BigInt64Array]":
+ return "bigint64";
+ case "[object BigUint64Array]":
+ return "biguint64";
+ }
+ return Array.isArray(b) ? "array" : "generic";
+ }
+ var v = { generic: [], buffer: [], array: [], float32: [], float64: [], int8: [], int16: [], int32: [], uint8_clamped: [], uint8: [], uint16: [], uint32: [], bigint64: [], biguint64: [] };
+ function _(b, p, k, E) {
+ if (b === void 0) {
+ var g = v.array[0];
+ return g([]);
+ } else typeof b == "number" && (b = [b]);
+ p === void 0 && (p = [b.length]);
+ var T = p.length;
+ if (k === void 0) {
+ k = new Array(T);
+ for (var L = T - 1, x = 1; L >= 0; --L) k[L] = x, x *= p[L];
+ }
+ if (E === void 0) {
+ E = 0;
+ for (var L = 0; L < T; ++L) k[L] < 0 && (E -= (p[L] - 1) * k[L]);
+ }
+ for (var C = d(b), M = v[C]; M.length <= T + 1; ) M.push(h(C, M.length - 1));
+ var g = M[T + 1];
+ return g(b, p, k, E);
+ }
+ i.exports = _;
+ }, 9921: function(i) {
+ i.exports = a;
+ function a(o) {
+ var s = o[0], l = o[1], u = o[2], c = o[3], f = o[4], h = o[5], d = o[6], v = o[7], _ = o[8], b = o[9], p = o[10], k = o[11], E = o[12], T = o[13], L = o[14], x = o[15], C = s * h - l * f, M = s * d - u * f, g = s * v - c * f, P = l * d - u * h, A = l * v - c * h, z = u * v - c * d, O = _ * T - b * E, U = _ * L - p * E, G = _ * x - k * E, Z = b * L - p * T, j = b * x - k * T, N = p * x - k * L;
+ return C * N - M * j + g * Z + P * G - A * U + z * O;
+ }
+ }, 9922: function(i, a, o) {
+ i.exports = l;
+ var s = o(2613);
+ function l(u, c) {
+ var f = u[0], h = u[1], d = u[2], v = c[0], _ = c[1], b = c[2];
+ return Math.abs(f - v) <= s * Math.max(1, Math.abs(f), Math.abs(v)) && Math.abs(h - _) <= s * Math.max(1, Math.abs(h), Math.abs(_)) && Math.abs(d - b) <= s * Math.max(1, Math.abs(d), Math.abs(b));
+ }
+ }, 9970: function(i, a, o) {
+ i.exports = { create: o(7536), clone: o(2335), fromValues: o(3390), copy: o(2933), set: o(4578), add: o(4361), subtract: o(6860), multiply: o(3576), divide: o(1373), min: o(2334), max: o(160), scale: o(9288), scaleAndAdd: o(4844), distance: o(4691), squaredDistance: o(7960), length: o(6808), squaredLength: o(483), negate: o(1498), inverse: o(4494), normalize: o(5177), dot: o(3750), lerp: o(2573), random: o(9131), transformMat4: o(5352), transformQuat: o(4041) };
+ }, 9977: function(i, a, o) {
+ i.exports = p;
+ var s = o(9215), l = o(6582), u = o(7399), c = o(7608), f = o(4081);
+ function h(k, E, T) {
+ return Math.sqrt(Math.pow(k, 2) + Math.pow(E, 2) + Math.pow(T, 2));
+ }
+ function d(k, E, T, L) {
+ return Math.sqrt(Math.pow(k, 2) + Math.pow(E, 2) + Math.pow(T, 2) + Math.pow(L, 2));
+ }
+ function v(k, E) {
+ var T = E[0], L = E[1], x = E[2], C = E[3], M = d(T, L, x, C);
+ M > 1e-6 ? (k[0] = T / M, k[1] = L / M, k[2] = x / M, k[3] = C / M) : (k[0] = k[1] = k[2] = 0, k[3] = 1);
+ }
+ function _(k, E, T) {
+ this.radius = s([T]), this.center = s(E), this.rotation = s(k), this.computedRadius = this.radius.curve(0), this.computedCenter = this.center.curve(0), this.computedRotation = this.rotation.curve(0), this.computedUp = [0.1, 0, 0], this.computedEye = [0.1, 0, 0], this.computedMatrix = [0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], this.recalcMatrix(0);
+ }
+ var b = _.prototype;
+ b.lastT = function() {
+ return Math.max(this.radius.lastT(), this.center.lastT(), this.rotation.lastT());
+ }, b.recalcMatrix = function(k) {
+ this.radius.curve(k), this.center.curve(k), this.rotation.curve(k);
+ var E = this.computedRotation;
+ v(E, E);
+ var T = this.computedMatrix;
+ u(T, E);
+ var L = this.computedCenter, x = this.computedEye, C = this.computedUp, M = Math.exp(this.computedRadius[0]);
+ x[0] = L[0] + M * T[2], x[1] = L[1] + M * T[6], x[2] = L[2] + M * T[10], C[0] = T[1], C[1] = T[5], C[2] = T[9];
+ for (var g = 0; g < 3; ++g) {
+ for (var P = 0, A = 0; A < 3; ++A) P += T[g + 4 * A] * x[A];
+ T[12 + g] = -P;
+ }
+ }, b.getMatrix = function(k, E) {
+ this.recalcMatrix(k);
+ var T = this.computedMatrix;
+ if (E) {
+ for (var L = 0; L < 16; ++L) E[L] = T[L];
+ return E;
+ }
+ return T;
+ }, b.idle = function(k) {
+ this.center.idle(k), this.radius.idle(k), this.rotation.idle(k);
+ }, b.flush = function(k) {
+ this.center.flush(k), this.radius.flush(k), this.rotation.flush(k);
+ }, b.pan = function(k, E, T, L) {
+ E = E || 0, T = T || 0, L = L || 0, this.recalcMatrix(k);
+ var x = this.computedMatrix, C = x[1], M = x[5], g = x[9], P = h(C, M, g);
+ C /= P, M /= P, g /= P;
+ var A = x[0], z = x[4], O = x[8], U = A * C + z * M + O * g;
+ A -= C * U, z -= M * U, O -= g * U;
+ var G = h(A, z, O);
+ A /= G, z /= G, O /= G;
+ x[2];
+ x[6];
+ x[10];
+ var _e = A * E + C * T, Ce = z * E + M * T, Le = O * E + g * T;
+ this.center.move(k, _e, Ce, Le);
+ var ge = Math.exp(this.computedRadius[0]);
+ ge = Math.max(1e-4, ge + L), this.radius.set(k, Math.log(ge));
+ }, b.rotate = function(k, E, T, L) {
+ this.recalcMatrix(k), E = E || 0, T = T || 0;
+ var x = this.computedMatrix, C = x[0], M = x[4], g = x[8], P = x[1], A = x[5], z = x[9], O = x[2], U = x[6], G = x[10], Z = E * C + T * P, j = E * M + T * A, N = E * g + T * z, H = -(U * N - G * j), re = -(G * Z - O * N), oe = -(O * j - U * Z), _e = Math.sqrt(Math.max(0, 1 - Math.pow(H, 2) - Math.pow(re, 2) - Math.pow(oe, 2))), Ce = d(H, re, oe, _e);
+ Ce > 1e-6 ? (H /= Ce, re /= Ce, oe /= Ce, _e /= Ce) : (H = re = oe = 0, _e = 1);
+ var Le = this.computedRotation, ge = Le[0], ie = Le[1], Se = Le[2], Ee = Le[3], Ae = ge * _e + Ee * H + ie * oe - Se * re, Be = ie * _e + Ee * re + Se * H - ge * oe, Pe = Se * _e + Ee * oe + ge * re - ie * H, me = Ee * _e - ge * H - ie * re - Se * oe;
+ if (L) {
+ H = O, re = U, oe = G;
+ var De = Math.sin(L) / h(H, re, oe);
+ H *= De, re *= De, oe *= De, _e = Math.cos(E), Ae = Ae * _e + me * H + Be * oe - Pe * re, Be = Be * _e + me * re + Pe * H - Ae * oe, Pe = Pe * _e + me * oe + Ae * re - Be * H, me = me * _e - Ae * H - Be * re - Pe * oe;
+ }
+ var ce = d(Ae, Be, Pe, me);
+ ce > 1e-6 ? (Ae /= ce, Be /= ce, Pe /= ce, me /= ce) : (Ae = Be = Pe = 0, me = 1), this.rotation.set(k, Ae, Be, Pe, me);
+ }, b.lookAt = function(k, E, T, L) {
+ this.recalcMatrix(k), T = T || this.computedCenter, E = E || this.computedEye, L = L || this.computedUp;
+ var x = this.computedMatrix;
+ l(x, E, T, L);
+ var C = this.computedRotation;
+ f(C, x[0], x[1], x[2], x[4], x[5], x[6], x[8], x[9], x[10]), v(C, C), this.rotation.set(k, C[0], C[1], C[2], C[3]);
+ for (var M = 0, g = 0; g < 3; ++g) M += Math.pow(T[g] - E[g], 2);
+ this.radius.set(k, 0.5 * Math.log(Math.max(M, 1e-6))), this.center.set(k, T[0], T[1], T[2]);
+ }, b.translate = function(k, E, T, L) {
+ this.center.move(k, E || 0, T || 0, L || 0);
+ }, b.setMatrix = function(k, E) {
+ var T = this.computedRotation;
+ f(T, E[0], E[1], E[2], E[4], E[5], E[6], E[8], E[9], E[10]), v(T, T), this.rotation.set(k, T[0], T[1], T[2], T[3]);
+ var L = this.computedMatrix;
+ c(L, E);
+ var x = L[15];
+ if (Math.abs(x) > 1e-6) {
+ var C = L[12] / x, M = L[13] / x, g = L[14] / x;
+ this.recalcMatrix(k);
+ var P = Math.exp(this.computedRadius[0]);
+ this.center.set(k, C - L[2] * P, M - L[6] * P, g - L[10] * P), this.radius.idle(k);
+ } else this.center.idle(k), this.radius.idle(k);
+ }, b.setDistance = function(k, E) {
+ E > 0 && this.radius.set(k, Math.log(E));
+ }, b.setDistanceLimits = function(k, E) {
+ k > 0 ? k = Math.log(k) : k = -1 / 0, E > 0 ? E = Math.log(E) : E = 1 / 0, E = Math.max(E, k), this.radius.bounds[0][0] = k, this.radius.bounds[1][0] = E;
+ }, b.getDistanceLimits = function(k) {
+ var E = this.radius.bounds;
+ return k ? (k[0] = Math.exp(E[0][0]), k[1] = Math.exp(E[1][0]), k) : [Math.exp(E[0][0]), Math.exp(E[1][0])];
+ }, b.toJSON = function() {
+ return this.recalcMatrix(this.lastT()), { center: this.computedCenter.slice(), rotation: this.computedRotation.slice(), distance: Math.log(this.computedRadius[0]), zoomMin: this.radius.bounds[0][0], zoomMax: this.radius.bounds[1][0] };
+ }, b.fromJSON = function(k) {
+ var E = this.lastT(), T = k.center;
+ T && this.center.set(E, T[0], T[1], T[2]);
+ var L = k.rotation;
+ L && this.rotation.set(E, L[0], L[1], L[2], L[3]);
+ var x = k.distance;
+ x && x > 0 && this.radius.set(E, Math.log(x)), this.setDistanceLimits(k.zoomMin, k.zoomMax);
+ };
+ function p(k) {
+ k = k || {};
+ var E = k.center || [0, 0, 0], T = k.rotation || [0, 0, 0, 1], L = k.radius || 1;
+ E = [].slice.call(E, 0, 3), T = [].slice.call(T, 0, 4), v(T, T);
+ var x = new _(T, E, Math.log(L));
+ return x.setDistanceLimits(k.zoomMin, k.zoomMax), ("eye" in k || "up" in k) && x.lookAt(0, k.eye, k.center, k.up), x;
+ }
+ }, 9994: function(i, a, o) {
+ var s = o(9618), l = o(8277);
+ i.exports = function(c, f) {
+ for (var h = [], d = c, v = 1; Array.isArray(d); ) h.push(d.length), v *= d.length, d = d[0];
+ return h.length === 0 ? s() : (f || (f = s(new Float64Array(v), h)), l(f, c), f);
+ };
+ } }, t = {};
+ function r(i) {
+ var a = t[i];
+ if (a !== void 0) return a.exports;
+ var o = t[i] = { id: i, loaded: false, exports: {} };
+ return e[i].call(o.exports, o, o.exports, r), o.loaded = true, o.exports;
+ }
+ (function() {
+ r.g = function() {
+ if (typeof globalThis == "object") return globalThis;
+ try {
+ return this || new Function("return this")();
+ } catch (i) {
+ if (typeof window == "object") return window;
+ }
+ }();
+ })(), function() {
+ r.nmd = function(i) {
+ return i.paths = [], i.children || (i.children = []), i;
+ };
+ }();
+ var n = r(1964);
+ APe.exports = n;
+ })();
+ });
+ var TX = ye((egr, SPe) => {
+ SPe.exports = { aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50] };
+ });
+ var CPe = ye((tgr, kPe) => {
+ var MPe = TX();
+ kPe.exports = fIt;
+ var EPe = { red: 0, orange: 60, yellow: 120, green: 180, blue: 240, purple: 300 };
+ function fIt(e) {
+ var t, r = [], n = 1, i;
+ if (typeof e == "string") if (e = e.toLowerCase(), MPe[e]) r = MPe[e].slice(), i = "rgb";
+ else if (e === "transparent") n = 0, i = "rgb", r = [0, 0, 0];
+ else if (/^#[A-Fa-f0-9]+$/.test(e)) {
+ var a = e.slice(1), o = a.length, s = o <= 4;
+ n = 1, s ? (r = [parseInt(a[0] + a[0], 16), parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16)], o === 4 && (n = parseInt(a[3] + a[3], 16) / 255)) : (r = [parseInt(a[0] + a[1], 16), parseInt(a[2] + a[3], 16), parseInt(a[4] + a[5], 16)], o === 8 && (n = parseInt(a[6] + a[7], 16) / 255)), r[0] || (r[0] = 0), r[1] || (r[1] = 0), r[2] || (r[2] = 0), i = "rgb";
+ } else if (t = /^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(e)) {
+ var l = t[1], u = l === "rgb", a = l.replace(/a$/, "");
+ i = a;
+ var o = a === "cmyk" ? 4 : a === "gray" ? 1 : 3;
+ r = t[2].trim().split(/\s*[,\/]\s*|\s+/).map(function(h, d) {
+ if (/%$/.test(h)) return d === o ? parseFloat(h) / 100 : a === "rgb" ? parseFloat(h) * 255 / 100 : parseFloat(h);
+ if (a[d] === "h") {
+ if (/deg$/.test(h)) return parseFloat(h);
+ if (EPe[h] !== void 0) return EPe[h];
+ }
+ return parseFloat(h);
+ }), l === a && r.push(1), n = u || r[o] === void 0 ? 1 : r[o], r = r.slice(0, o);
+ } else e.length > 10 && /[0-9](?:\s|\/)/.test(e) && (r = e.match(/([0-9]+)/g).map(function(c) {
+ return parseFloat(c);
+ }), i = e.match(/([a-z])/ig).join("").toLowerCase());
+ else isNaN(e) ? Array.isArray(e) || e.length ? (r = [e[0], e[1], e[2]], i = "rgb", n = e.length === 4 ? e[3] : 1) : e instanceof Object && (e.r != null || e.red != null || e.R != null ? (i = "rgb", r = [e.r || e.red || e.R || 0, e.g || e.green || e.G || 0, e.b || e.blue || e.B || 0]) : (i = "hsl", r = [e.h || e.hue || e.H || 0, e.s || e.saturation || e.S || 0, e.l || e.lightness || e.L || e.b || e.brightness]), n = e.a || e.alpha || e.opacity || 1, e.opacity != null && (n /= 100)) : (i = "rgb", r = [e >>> 16, (e & 65280) >>> 8, e & 255]);
+ return { space: i, values: r, alpha: n };
+ }
+ });
+ var PPe = ye((rgr, LPe) => {
+ var hIt = CPe();
+ LPe.exports = function(t) {
+ Array.isArray(t) && t.raw && (t = String.raw.apply(null, arguments));
+ var r, a = hIt(t);
+ if (!a.space) return [];
+ var o = [0, 0, 0], s = a.space[0] === "h" ? [360, 100, 100] : [255, 255, 255];
+ return r = Array(3), r[0] = Math.min(Math.max(a.values[0], o[0]), s[0]), r[1] = Math.min(Math.max(a.values[1], o[1]), s[1]), r[2] = Math.min(Math.max(a.values[2], o[2]), s[2]), a.space[0] === "h" && (r = dIt(r)), r.push(Math.min(Math.max(a.alpha, 0), 1)), r;
+ };
+ function dIt(e) {
+ var t = e[0] / 360, r = e[1] / 100, n = e[2] / 100, i, a, o, s, l, u = 0;
+ if (r === 0) return l = n * 255, [l, l, l];
+ for (a = n < 0.5 ? n * (1 + r) : n + r - n * r, i = 2 * n - a, s = [0, 0, 0]; u < 3; ) o = t + 1 / 3 * -(u - 1), o < 0 ? o++ : o > 1 && o--, l = 6 * o < 1 ? i + (a - i) * 6 * o : 2 * o < 1 ? a : 3 * o < 2 ? i + (a - i) * (2 / 3 - o) * 6 : i, s[u++] = l * 255;
+ return s;
+ }
+ });
+ var rk = ye((igr, IPe) => {
+ IPe.exports = vIt;
+ function vIt(e, t, r) {
+ return t < r ? e < t ? t : e > r ? r : e : e < r ? r : e > t ? t : e;
+ }
+ });
+ var QD = ye((ngr, RPe) => {
+ RPe.exports = function(e) {
+ switch (e) {
+ case "int8":
+ return Int8Array;
+ case "int16":
+ return Int16Array;
+ case "int32":
+ return Int32Array;
+ case "uint8":
+ return Uint8Array;
+ case "uint16":
+ return Uint16Array;
+ case "uint32":
+ return Uint32Array;
+ case "float32":
+ return Float32Array;
+ case "float64":
+ return Float64Array;
+ case "array":
+ return Array;
+ case "uint8_clamped":
+ return Uint8ClampedArray;
+ }
+ };
+ });
+ var ox = ye((agr, DPe) => {
+ var pIt = PPe(), eF = rk(), gIt = QD();
+ DPe.exports = function(t, r) {
+ (r === "float" || !r) && (r = "array"), r === "uint" && (r = "uint8"), r === "uint_clamped" && (r = "uint8_clamped");
+ var n = gIt(r), i = new n(4), a = r !== "uint8" && r !== "uint8_clamped";
+ return (!t.length || typeof t == "string") && (t = pIt(t), t[0] /= 255, t[1] /= 255, t[2] /= 255), mIt(t) ? (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3] != null ? t[3] : 255, a && (i[0] /= 255, i[1] /= 255, i[2] /= 255, i[3] /= 255), i) : (a ? (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3] != null ? t[3] : 1) : (i[0] = eF(Math.floor(t[0] * 255), 0, 255), i[1] = eF(Math.floor(t[1] * 255), 0, 255), i[2] = eF(Math.floor(t[2] * 255), 0, 255), i[3] = t[3] == null ? 255 : eF(Math.floor(t[3] * 255), 0, 255)), i);
+ };
+ function mIt(e) {
+ return !!(e instanceof Uint8Array || e instanceof Uint8ClampedArray || Array.isArray(e) && (e[0] > 1 || e[0] === 0) && (e[1] > 1 || e[1] === 0) && (e[2] > 1 || e[2] === 0) && (!e[3] || e[3] > 1));
+ }
+ });
+ var n1 = ye((ogr, FPe) => {
+ var yIt = ox();
+ function _It(e) {
+ return e ? yIt(e) : [0, 0, 0, 1];
+ }
+ FPe.exports = _It;
+ });
+ var a1 = ye((sgr, VPe) => {
+ var NPe = Eo(), xIt = fd(), tF = ox(), rF = tc(), bIt = Ih().defaultLine, zPe = vv().isArrayOrTypedArray, AX = tF(bIt), UPe = 1;
+ function OPe(e, t) {
+ var r = e;
+ return r[3] *= t, r;
+ }
+ function qPe(e) {
+ if (NPe(e)) return AX;
+ var t = tF(e);
+ return t.length ? t : AX;
+ }
+ function BPe(e) {
+ return NPe(e) ? e : UPe;
+ }
+ function wIt(e, t, r) {
+ var n = e.color;
+ n && n._inputArray && (n = n._inputArray);
+ var i = zPe(n), a = zPe(t), o = rF.extractOpts(e), s = [], l, u, c, f, h;
+ if (o.colorscale !== void 0 ? l = rF.makeColorScaleFuncFromTrace(e) : l = qPe, i ? u = function(v, _) {
+ return v[_] === void 0 ? AX : tF(l(v[_]));
+ } : u = qPe, a ? c = function(v, _) {
+ return v[_] === void 0 ? UPe : BPe(v[_]);
+ } : c = BPe, i || a) for (var d = 0; d < r; d++) f = u(n, d), h = c(t, d), s[d] = OPe(f, h);
+ else s = OPe(tF(n), t);
+ return s;
+ }
+ function TIt(e) {
+ var t = rF.extractOpts(e), r = t.colorscale;
+ return t.reversescale && (r = rF.flipScale(t.colorscale)), r.map(function(n) {
+ var i = n[0], a = xIt(n[1]), o = a.toRgb();
+ return { index: i, rgb: [o.r, o.g, o.b, o.a] };
+ });
+ }
+ VPe.exports = { formatColor: wIt, parseColorScale: TIt };
+ });
+ var SX = ye((lgr, GPe) => {
+ GPe.exports = { solid: [[], 0], dot: [[0.5, 1], 200], dash: [[0.5, 1], 50], longdash: [[0.5, 1], 10], dashdot: [[0.5, 0.625, 0.875, 1], 50], longdashdot: [[0.5, 0.7, 0.8, 1], 10] };
+ });
+ var iF = ye((ugr, HPe) => {
+ HPe.exports = { circle: "●", "circle-open": "○", square: "■", "square-open": "□", diamond: "◆", "diamond-open": "◇", cross: "+", x: "❌" };
+ });
+ var WPe = ye((cgr, jPe) => {
+ var AIt = qa();
+ function MX(e, t, r, n) {
+ if (!t || !t.visible) return null;
+ for (var i = AIt.getComponentMethod("errorbars", "makeComputeError")(t), a = new Array(e.length), o = 0; o < e.length; o++) {
+ var s = i(+e[o], o);
+ if (n.type === "log") {
+ var l = n.c2l(e[o]), u = e[o] - s[0], c = e[o] + s[1];
+ if (a[o] = [(n.c2l(u, true) - l) * r, (n.c2l(c, true) - l) * r], u > 0) {
+ var f = n.c2l(u);
+ n._lowerLogErrorBound || (n._lowerLogErrorBound = f), n._lowerErrorBound = Math.min(n._lowerLogErrorBound, f);
+ }
+ } else a[o] = [-s[0] * r, s[1] * r];
+ }
+ return a;
+ }
+ function SIt(e) {
+ for (var t = 0; t < e.length; t++) if (e[t]) return e[t].length;
+ return 0;
+ }
+ function MIt(e, t, r) {
+ var n = [MX(e.x, e.error_x, t[0], r.xaxis), MX(e.y, e.error_y, t[1], r.yaxis), MX(e.z, e.error_z, t[2], r.zaxis)], i = SIt(n);
+ if (i === 0) return null;
+ for (var a = new Array(i), o = 0; o < i; o++) {
+ for (var s = [[0, 0, 0], [0, 0, 0]], l = 0; l < 3; l++) if (n[l]) for (var u = 0; u < 2; u++) s[u][l] = n[l][o][u];
+ a[o] = s;
+ }
+ return a;
+ }
+ jPe.exports = MIt;
+ });
+ var tIe = ye((fgr, eIe) => {
+ var EIt = zd().gl_line3d, XPe = zd().gl_scatter3d, kIt = zd().gl_error3d, CIt = zd().gl_mesh3d, LIt = zd().delaunay_triangulate, o1 = Dr(), $Pe = n1(), nF = a1().formatColor, PIt = O3(), EX = SX(), IIt = iF(), RIt = ho(), DIt = ip().appendArrayPointValue, FIt = WPe();
+ function QPe(e, t) {
+ this.scene = e, this.uid = t, this.linePlot = null, this.scatterPlot = null, this.errorBars = null, this.textMarkers = null, this.delaunayMesh = null, this.color = null, this.mode = "", this.dataPoints = [], this.axesBounds = [[-1 / 0, -1 / 0, -1 / 0], [1 / 0, 1 / 0, 1 / 0]], this.textLabels = null, this.data = null;
+ }
+ var CX = QPe.prototype;
+ CX.handlePick = function(e) {
+ if (e.object && (e.object === this.linePlot || e.object === this.delaunayMesh || e.object === this.textMarkers || e.object === this.scatterPlot)) {
+ var t = e.index = e.data.index;
+ return e.object.highlight && e.object.highlight(null), this.scatterPlot && (e.object = this.scatterPlot, this.scatterPlot.highlight(e.data)), e.textLabel = "", this.textLabels && (o1.isArrayOrTypedArray(this.textLabels) ? (this.textLabels[t] || this.textLabels[t] === 0) && (e.textLabel = this.textLabels[t]) : e.textLabel = this.textLabels), e.traceCoordinate = [this.data.x[t], this.data.y[t], this.data.z[t]], true;
+ }
+ };
+ function zIt(e, t, r) {
+ var n = (r + 1) % 3, i = (r + 2) % 3, a = [], o = [], s;
+ for (s = 0; s < e.length; ++s) {
+ var l = e[s];
+ isNaN(l[n]) || !isFinite(l[n]) || isNaN(l[i]) || !isFinite(l[i]) || (a.push([l[n], l[i]]), o.push(s));
+ }
+ var u = LIt(a);
+ for (s = 0; s < u.length; ++s) for (var c = u[s], f = 0; f < c.length; ++f) c[f] = o[c[f]];
+ return { positions: e, cells: u, meshColor: t };
+ }
+ function OIt(e) {
+ for (var t = [0, 0, 0], r = [[0, 0, 0], [0, 0, 0], [0, 0, 0]], n = [1, 1, 1], i = 0; i < 3; i++) {
+ var a = e[i];
+ a && a.copy_zstyle !== false && e[2].visible !== false && (a = e[2]), !(!a || !a.visible) && (t[i] = a.width / 2, r[i] = $Pe(a.color), n[i] = a.thickness);
+ }
+ return { capSize: t, color: r, lineWidth: n };
+ }
+ function ZPe(e) {
+ return e == null ? 0 : e.indexOf("left") > -1 ? -1 : e.indexOf("right") > -1 ? 1 : 0;
+ }
+ function YPe(e) {
+ return e == null ? 0 : e.indexOf("top") > -1 ? -1 : e.indexOf("bottom") > -1 ? 1 : 0;
+ }
+ function qIt(e) {
+ var t = 0, r = 0, n = [t, r];
+ if (Array.isArray(e)) for (var i = 0; i < e.length; i++) n[i] = [t, r], e[i] && (n[i][0] = ZPe(e[i]), n[i][1] = YPe(e[i]));
+ else n[0] = ZPe(e), n[1] = YPe(e);
+ return n;
+ }
+ function BIt(e, t) {
+ return t(e * 4);
+ }
+ function NIt(e) {
+ return IIt[e];
+ }
+ function kX(e, t, r, n, i) {
+ var a = null;
+ if (o1.isArrayOrTypedArray(e)) {
+ a = [];
+ for (var o = 0; o < t; o++) e[o] === void 0 ? a[o] = n : a[o] = r(e[o], i);
+ } else a = r(e, o1.identity);
+ return a;
+ }
+ function UIt(e, t) {
+ var r = [], n = e.fullSceneLayout, i = e.dataScale, a = n.xaxis, o = n.yaxis, s = n.zaxis, l = t.marker, u = t.line, c = t.x || [], f = t.y || [], h = t.z || [], d = c.length, v = t.xcalendar, _ = t.ycalendar, b = t.zcalendar, p, k, E, T, L, x;
+ for (L = 0; L < d; L++) p = a.d2l(c[L], 0, v) * i[0], k = o.d2l(f[L], 0, _) * i[1], E = s.d2l(h[L], 0, b) * i[2], r[L] = [p, k, E];
+ if (Array.isArray(t.text)) x = t.text;
+ else if (o1.isTypedArray(t.text)) x = Array.from(t.text);
+ else if (t.text !== void 0) for (x = new Array(d), L = 0; L < d; L++) x[L] = t.text;
+ function C(oe, _e) {
+ var Ce = n[oe];
+ return RIt.tickText(Ce, Ce.d2l(_e), true).text;
+ }
+ var M = t.texttemplate;
+ if (M) {
+ var g = e.fullLayout, P = g._d3locale, A = Array.isArray(M), z = A ? Math.min(M.length, d) : d, O = A ? function(oe) {
+ return M[oe];
+ } : function() {
+ return M;
+ };
+ for (x = new Array(z), L = 0; L < z; L++) {
+ var U = { x: c[L], y: f[L], z: h[L] }, G = { xLabel: C("xaxis", c[L]), yLabel: C("yaxis", f[L]), zLabel: C("zaxis", h[L]) }, Z = {};
+ DIt(Z, t, L), x[L] = o1.texttemplateString({ data: [Z, U, t._meta], fallback: t.texttemplatefallback, labels: G, locale: P, template: O(L) });
+ }
+ }
+ if (T = { position: r, mode: t.mode, text: x }, "line" in t && (T.lineColor = nF(u, 1, d), T.lineWidth = u.width, T.lineDashes = u.dash), "marker" in t) {
+ var j = PIt(t);
+ T.scatterColor = nF(l, 1, d), T.scatterSize = kX(l.size, d, BIt, 20, j), T.scatterMarker = kX(l.symbol, d, NIt, "●"), T.scatterLineWidth = l.line.width, T.scatterLineColor = nF(l.line, 1, d), T.scatterAngle = 0;
+ }
+ "textposition" in t && (T.textOffset = qIt(t.textposition), T.textColor = nF(t.textfont, 1, d), T.textSize = kX(t.textfont.size, d, o1.identity, 12), T.textFontFamily = t.textfont.family, T.textFontWeight = t.textfont.weight, T.textFontStyle = t.textfont.style, T.textFontVariant = t.textfont.variant, T.textAngle = 0);
+ var N = ["x", "y", "z"];
+ for (T.project = [false, false, false], T.projectScale = [1, 1, 1], T.projectOpacity = [1, 1, 1], L = 0; L < 3; ++L) {
+ var H = t.projection[N[L]];
+ (T.project[L] = H.show) && (T.projectOpacity[L] = H.opacity, T.projectScale[L] = H.scale);
+ }
+ T.errorBounds = FIt(t, i, n);
+ var re = OIt([t.error_x, t.error_y, t.error_z]);
+ return T.errorColor = re.color, T.errorLineWidth = re.lineWidth, T.errorCapSize = re.capSize, T.delaunayAxis = t.surfaceaxis, T.delaunayColor = $Pe(t.surfacecolor), T;
+ }
+ function KPe(e) {
+ if (o1.isArrayOrTypedArray(e)) {
+ var t = e[0];
+ return o1.isArrayOrTypedArray(t) && (e = t), "rgb(" + e.slice(0, 3).map(function(r) {
+ return Math.round(r * 255);
+ }) + ")";
+ }
+ return null;
+ }
+ function JPe(e) {
+ return o1.isArrayOrTypedArray(e) ? e.length === 4 && typeof e[0] == "number" ? KPe(e) : e.map(KPe) : null;
+ }
+ CX.update = function(e) {
+ var t = this.scene.glplot.gl, r, n, i, a, o = EX.solid;
+ this.data = e;
+ var s = UIt(this.scene, e);
+ "mode" in s && (this.mode = s.mode), "lineDashes" in s && s.lineDashes in EX && (o = EX[s.lineDashes]), this.color = JPe(s.scatterColor) || JPe(s.lineColor), this.dataPoints = s.position, r = { gl: this.scene.glplot.gl, position: s.position, color: s.lineColor, lineWidth: s.lineWidth || 1, dashes: o[0], dashScale: o[1], opacity: e.opacity, connectGaps: e.connectgaps }, this.mode.indexOf("lines") !== -1 ? this.linePlot ? this.linePlot.update(r) : (this.linePlot = EIt(r), this.linePlot._trace = this, this.scene.glplot.add(this.linePlot)) : this.linePlot && (this.scene.glplot.remove(this.linePlot), this.linePlot.dispose(), this.linePlot = null);
+ var l = e.opacity;
+ if (e.marker && e.marker.opacity !== void 0 && (l *= e.marker.opacity), n = { gl: this.scene.glplot.gl, position: s.position, color: s.scatterColor, size: s.scatterSize, glyph: s.scatterMarker, opacity: l, orthographic: true, lineWidth: s.scatterLineWidth, lineColor: s.scatterLineColor, project: s.project, projectScale: s.projectScale, projectOpacity: s.projectOpacity }, this.mode.indexOf("markers") !== -1 ? this.scatterPlot ? this.scatterPlot.update(n) : (this.scatterPlot = XPe(n), this.scatterPlot._trace = this, this.scatterPlot.highlightScale = 1, this.scene.glplot.add(this.scatterPlot)) : this.scatterPlot && (this.scene.glplot.remove(this.scatterPlot), this.scatterPlot.dispose(), this.scatterPlot = null), a = { gl: this.scene.glplot.gl, position: s.position, glyph: s.text, color: s.textColor, size: s.textSize, angle: s.textAngle, alignment: s.textOffset, font: s.textFontFamily, fontWeight: s.textFontWeight, fontStyle: s.textFontStyle, fontVariant: s.textFontVariant, orthographic: true, lineWidth: 0, project: false, opacity: e.opacity }, this.textLabels = e.hovertext || e.text, this.mode.indexOf("text") !== -1 ? this.textMarkers ? this.textMarkers.update(a) : (this.textMarkers = XPe(a), this.textMarkers._trace = this, this.textMarkers.highlightScale = 1, this.scene.glplot.add(this.textMarkers)) : this.textMarkers && (this.scene.glplot.remove(this.textMarkers), this.textMarkers.dispose(), this.textMarkers = null), i = { gl: this.scene.glplot.gl, position: s.position, color: s.errorColor, error: s.errorBounds, lineWidth: s.errorLineWidth, capSize: s.errorCapSize, opacity: e.opacity }, this.errorBars ? s.errorBounds ? this.errorBars.update(i) : (this.scene.glplot.remove(this.errorBars), this.errorBars.dispose(), this.errorBars = null) : s.errorBounds && (this.errorBars = kIt(i), this.errorBars._trace = this, this.scene.glplot.add(this.errorBars)), s.delaunayAxis >= 0) {
+ var u = zIt(s.position, s.delaunayColor, s.delaunayAxis);
+ u.opacity = e.opacity, this.delaunayMesh ? this.delaunayMesh.update(u) : (u.gl = t, this.delaunayMesh = CIt(u), this.delaunayMesh._trace = this, this.scene.glplot.add(this.delaunayMesh));
+ } else this.delaunayMesh && (this.scene.glplot.remove(this.delaunayMesh), this.delaunayMesh.dispose(), this.delaunayMesh = null);
+ };
+ CX.dispose = function() {
+ this.linePlot && (this.scene.glplot.remove(this.linePlot), this.linePlot.dispose()), this.scatterPlot && (this.scene.glplot.remove(this.scatterPlot), this.scatterPlot.dispose()), this.errorBars && (this.scene.glplot.remove(this.errorBars), this.errorBars.dispose()), this.textMarkers && (this.scene.glplot.remove(this.textMarkers), this.textMarkers.dispose()), this.delaunayMesh && (this.scene.glplot.remove(this.delaunayMesh), this.delaunayMesh.dispose());
+ };
+ function VIt(e, t) {
+ var r = new QPe(e, t.uid);
+ return r.update(t), r;
+ }
+ eIe.exports = VIt;
+ });
+ var DX = ye((hgr, aIe) => {
+ var s1 = pf(), GIt = ec(), RX = Tu(), LX = df().axisHoverFormat, { hovertemplateAttrs: HIt, texttemplateAttrs: jIt, templatefallbackAttrs: rIe } = Ll(), iIe = Gl(), WIt = SX(), XIt = iF(), $g = Ao().extendFlat, ZIt = mc().overrideAll, nIe = t_(), YIt = s1.line, J2 = s1.marker, KIt = J2.line, JIt = $g({ width: YIt.width, dash: { valType: "enumerated", values: nIe(WIt), dflt: "solid" } }, RX("line"));
+ function PX(e) {
+ return { show: { valType: "boolean", dflt: false }, opacity: { valType: "number", min: 0, max: 1, dflt: 1 }, scale: { valType: "number", min: 0, max: 10, dflt: 2 / 3 } };
+ }
+ var IX = aIe.exports = ZIt({ x: s1.x, y: s1.y, z: { valType: "data_array" }, text: $g({}, s1.text, {}), texttemplate: jIt(), texttemplatefallback: rIe({ editType: "calc" }), hovertext: $g({}, s1.hovertext, {}), hovertemplate: HIt(), hovertemplatefallback: rIe(), xhoverformat: LX("x"), yhoverformat: LX("y"), zhoverformat: LX("z"), mode: $g({}, s1.mode, { dflt: "lines+markers" }), surfaceaxis: { valType: "enumerated", values: [-1, 0, 1, 2], dflt: -1 }, surfacecolor: { valType: "color" }, projection: { x: PX(), y: PX(), z: PX() }, connectgaps: s1.connectgaps, line: JIt, marker: $g({ symbol: { valType: "enumerated", values: nIe(XIt), dflt: "circle", arrayOk: true }, size: $g({}, J2.size, { dflt: 8 }), sizeref: J2.sizeref, sizemin: J2.sizemin, sizemode: J2.sizemode, opacity: $g({}, J2.opacity, { arrayOk: false }), colorbar: J2.colorbar, line: $g({ width: $g({}, KIt.width, { arrayOk: false }) }, RX("marker.line")) }, RX("marker")), textposition: $g({}, s1.textposition, { dflt: "top center" }), textfont: GIt({ noFontShadow: true, noFontLineposition: true, noFontTextcase: true, editType: "calc", colorEditType: "style", arrayOk: true, variantValues: ["normal", "small-caps"] }), opacity: iIe.opacity, hoverinfo: $g({}, iIe.hoverinfo) }, "calc", "nested");
+ IX.x.editType = IX.y.editType = IX.z.editType = "calc+clearAxisTypes";
+ });
+ var lIe = ye((dgr, sIe) => {
+ var oIe = qa(), $It = Dr(), FX = Ru(), QIt = $p(), e8t = D0(), t8t = F0(), r8t = DX();
+ sIe.exports = function(t, r, n, i) {
+ function a(d, v) {
+ return $It.coerce(t, r, r8t, d, v);
+ }
+ var o = i8t(t, r, a, i);
+ if (!o) {
+ r.visible = false;
+ return;
+ }
+ a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("xhoverformat"), a("yhoverformat"), a("zhoverformat"), a("mode"), FX.hasMarkers(r) && QIt(t, r, n, i, a, { noAngle: true, noLineDash: true, noSelect: true }), FX.hasLines(r) && (a("connectgaps"), e8t(t, r, n, i, a)), FX.hasText(r) && (a("texttemplate"), a("texttemplatefallback"), t8t(t, r, i, a, { noSelect: true, noFontShadow: true, noFontLineposition: true, noFontTextcase: true }));
+ var s = (r.line || {}).color, l = (r.marker || {}).color;
+ a("surfaceaxis") >= 0 && a("surfacecolor", s || l);
+ for (var u = ["x", "y", "z"], c = 0; c < 3; ++c) {
+ var f = "projection." + u[c];
+ a(f + ".show") && (a(f + ".opacity"), a(f + ".scale"));
+ }
+ var h = oIe.getComponentMethod("errorbars", "supplyDefaults");
+ h(t, r, s || l || n, { axis: "z" }), h(t, r, s || l || n, { axis: "y", inherit: "z" }), h(t, r, s || l || n, { axis: "x", inherit: "z" });
+ };
+ function i8t(e, t, r, n) {
+ var i = 0, a = r("x"), o = r("y"), s = r("z"), l = oIe.getComponentMethod("calendars", "handleTraceDefaults");
+ return l(e, t, ["x", "y", "z"], n), a && o && s && (i = Math.min(a.length, o.length, s.length), t._length = t._xlength = t._ylength = t._zlength = i), i;
+ }
+ });
+ var cIe = ye((vgr, uIe) => {
+ var n8t = Rm(), a8t = z0();
+ uIe.exports = function(t, r) {
+ var n = [{ x: false, y: false, trace: r, t: {} }];
+ return n8t(n, r), a8t(t, r), n;
+ };
+ });
+ var hIe = ye((pgr, fIe) => {
+ fIe.exports = o8t;
+ function o8t(e, t) {
+ if (typeof e != "string") throw new TypeError("must specify type string");
+ if (t = t || {}, typeof document == "undefined" && !t.canvas) return null;
+ var r = t.canvas || document.createElement("canvas");
+ typeof t.width == "number" && (r.width = t.width), typeof t.height == "number" && (r.height = t.height);
+ var n = t, i;
+ try {
+ var a = [e];
+ e.indexOf("webgl") === 0 && a.push("experimental-" + e);
+ for (var o = 0; o < a.length; o++) if (i = r.getContext(a[o], n), i) return i;
+ } catch (s) {
+ i = null;
+ }
+ return i || null;
+ }
+ });
+ var vIe = ye((ggr, dIe) => {
+ var s8t = hIe();
+ dIe.exports = function(t) {
+ return s8t("webgl", t);
+ };
+ });
+ var zX = ye((mgr, gIe) => {
+ var pIe = ka(), l8t = function() {
+ };
+ gIe.exports = function(t) {
+ for (var r in t) typeof t[r] == "function" && (t[r] = l8t);
+ t.destroy = function() {
+ t.container.parentNode.removeChild(t.container);
+ };
+ var n = document.createElement("div");
+ n.className = "no-webgl", n.style.cursor = "pointer", n.style.fontSize = "24px", n.style.color = pIe.defaults[0], n.style.position = "absolute", n.style.left = n.style.top = "0px", n.style.width = n.style.height = "100%", n.style["background-color"] = pIe.lightLine, n.style["z-index"] = 30;
+ var i = document.createElement("p");
+ return i.textContent = "WebGL is not supported by your browser - visit https://get.webgl.org for more info", i.style.position = "relative", i.style.top = "50%", i.style.left = "50%", i.style.height = "30%", i.style.width = "50%", i.style.margin = "-15% 0 0 -25%", n.appendChild(i), t.container.appendChild(n), t.container.style.background = "#FFFFFF", t.container.onclick = function() {
+ window.open("https://get.webgl.org");
+ }, false;
+ };
+ });
+ var _Ie = ye((ygr, yIe) => {
+ var $2 = n1(), u8t = Dr(), c8t = ["xaxis", "yaxis", "zaxis"];
+ function mIe() {
+ this.bounds = [[-10, -10, -10], [10, 10, 10]], this.ticks = [[], [], []], this.tickEnable = [true, true, true], this.tickFont = ["sans-serif", "sans-serif", "sans-serif"], this.tickSize = [12, 12, 12], this.tickFontWeight = ["normal", "normal", "normal", "normal"], this.tickFontStyle = ["normal", "normal", "normal", "normal"], this.tickFontVariant = ["normal", "normal", "normal", "normal"], this.tickAngle = [0, 0, 0], this.tickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.tickPad = [18, 18, 18], this.labels = ["x", "y", "z"], this.labelEnable = [true, true, true], this.labelFont = ["Open Sans", "Open Sans", "Open Sans"], this.labelSize = [20, 20, 20], this.labelFontWeight = ["normal", "normal", "normal", "normal"], this.labelFontStyle = ["normal", "normal", "normal", "normal"], this.labelFontVariant = ["normal", "normal", "normal", "normal"], this.labelColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.labelPad = [30, 30, 30], this.lineEnable = [true, true, true], this.lineMirror = [false, false, false], this.lineWidth = [1, 1, 1], this.lineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.lineTickEnable = [true, true, true], this.lineTickMirror = [false, false, false], this.lineTickLength = [10, 10, 10], this.lineTickWidth = [1, 1, 1], this.lineTickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.gridEnable = [true, true, true], this.gridWidth = [1, 1, 1], this.gridColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.zeroEnable = [true, true, true], this.zeroLineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.zeroLineWidth = [2, 2, 2], this.backgroundEnable = [true, true, true], this.backgroundColor = [[0.8, 0.8, 0.8, 0.5], [0.8, 0.8, 0.8, 0.5], [0.8, 0.8, 0.8, 0.5]], this._defaultTickPad = this.tickPad.slice(), this._defaultLabelPad = this.labelPad.slice(), this._defaultLineTickLength = this.lineTickLength.slice();
+ }
+ var f8t = mIe.prototype;
+ f8t.merge = function(e, t) {
+ for (var r = this, n = 0; n < 3; ++n) {
+ var i = t[c8t[n]];
+ if (!i.visible) {
+ r.tickEnable[n] = false, r.labelEnable[n] = false, r.lineEnable[n] = false, r.lineTickEnable[n] = false, r.gridEnable[n] = false, r.zeroEnable[n] = false, r.backgroundEnable[n] = false;
+ continue;
+ }
+ r.labels[n] = e._meta ? u8t.templateString(i.title.text, e._meta) : i.title.text, "font" in i.title && (i.title.font.color && (r.labelColor[n] = $2(i.title.font.color)), i.title.font.family && (r.labelFont[n] = i.title.font.family), i.title.font.size && (r.labelSize[n] = i.title.font.size), i.title.font.weight && (r.labelFontWeight[n] = i.title.font.weight), i.title.font.style && (r.labelFontStyle[n] = i.title.font.style), i.title.font.variant && (r.labelFontVariant[n] = i.title.font.variant)), "showline" in i && (r.lineEnable[n] = i.showline), "linecolor" in i && (r.lineColor[n] = $2(i.linecolor)), "linewidth" in i && (r.lineWidth[n] = i.linewidth), "showgrid" in i && (r.gridEnable[n] = i.showgrid), "gridcolor" in i && (r.gridColor[n] = $2(i.gridcolor)), "gridwidth" in i && (r.gridWidth[n] = i.gridwidth), i.type === "log" ? r.zeroEnable[n] = false : "zeroline" in i && (r.zeroEnable[n] = i.zeroline), "zerolinecolor" in i && (r.zeroLineColor[n] = $2(i.zerolinecolor)), "zerolinewidth" in i && (r.zeroLineWidth[n] = i.zerolinewidth), "ticks" in i && i.ticks ? r.lineTickEnable[n] = true : r.lineTickEnable[n] = false, "ticklen" in i && (r.lineTickLength[n] = r._defaultLineTickLength[n] = i.ticklen), "tickcolor" in i && (r.lineTickColor[n] = $2(i.tickcolor)), "tickwidth" in i && (r.lineTickWidth[n] = i.tickwidth), "tickangle" in i && (r.tickAngle[n] = i.tickangle === "auto" ? -3600 : Math.PI * -i.tickangle / 180), "showticklabels" in i && (r.tickEnable[n] = i.showticklabels), "tickfont" in i && (i.tickfont.color && (r.tickColor[n] = $2(i.tickfont.color)), i.tickfont.family && (r.tickFont[n] = i.tickfont.family), i.tickfont.size && (r.tickSize[n] = i.tickfont.size), i.tickfont.weight && (r.tickFontWeight[n] = i.tickfont.weight), i.tickfont.style && (r.tickFontStyle[n] = i.tickfont.style), i.tickfont.variant && (r.tickFontVariant[n] = i.tickfont.variant)), "mirror" in i ? ["ticks", "all", "allticks"].indexOf(i.mirror) !== -1 ? (r.lineTickMirror[n] = true, r.lineMirror[n] = true) : i.mirror === true ? (r.lineTickMirror[n] = false, r.lineMirror[n] = true) : (r.lineTickMirror[n] = false, r.lineMirror[n] = false) : r.lineMirror[n] = false, "showbackground" in i && i.showbackground !== false ? (r.backgroundEnable[n] = true, r.backgroundColor[n] = $2(i.backgroundcolor)) : r.backgroundEnable[n] = false;
+ }
+ };
+ function h8t(e, t) {
+ var r = new mIe();
+ return r.merge(e, t), r;
+ }
+ yIe.exports = h8t;
+ });
+ var wIe = ye((_gr, bIe) => {
+ var d8t = n1(), v8t = ["xaxis", "yaxis", "zaxis"];
+ function xIe() {
+ this.enabled = [true, true, true], this.colors = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]], this.drawSides = [true, true, true], this.lineWidth = [1, 1, 1];
+ }
+ var p8t = xIe.prototype;
+ p8t.merge = function(e) {
+ for (var t = 0; t < 3; ++t) {
+ var r = e[v8t[t]];
+ if (!r.visible) {
+ this.enabled[t] = false, this.drawSides[t] = false;
+ continue;
+ }
+ this.enabled[t] = r.showspikes, this.colors[t] = d8t(r.spikecolor), this.drawSides[t] = r.spikesides, this.lineWidth[t] = r.spikethickness;
+ }
+ };
+ function g8t(e) {
+ var t = new xIe();
+ return t.merge(e), t;
+ }
+ bIe.exports = g8t;
+ });
+ var SIe = ye((xgr, AIe) => {
+ AIe.exports = b8t;
+ var TIe = ho(), m8t = Dr(), y8t = ["xaxis", "yaxis", "zaxis"];
+ function x8t(e) {
+ for (var t = new Array(3), r = 0; r < 3; ++r) {
+ for (var n = e[r], i = new Array(n.length), a = 0; a < n.length; ++a) i[a] = n[a].x;
+ t[r] = i;
+ }
+ return t;
+ }
+ function b8t(e) {
+ for (var t = e.axesOptions, r = e.glplot.axesPixels, n = e.fullSceneLayout, i = [[], [], []], a = 0; a < 3; ++a) {
+ var o = n[y8t[a]];
+ if (o._length = (r[a].hi - r[a].lo) * r[a].pixelsPerDataUnit / e.dataScale[a], Math.abs(o._length) === 1 / 0 || isNaN(o._length)) i[a] = [];
+ else {
+ o._input_range = o.range.slice(), o.range[0] = r[a].lo / e.dataScale[a], o.range[1] = r[a].hi / e.dataScale[a], o._m = 1 / (e.dataScale[a] * r[a].pixelsPerDataUnit), o.range[0] === o.range[1] && (o.range[0] -= 1, o.range[1] += 1);
+ var s = o.tickmode;
+ if (o.tickmode === "auto") {
+ o.tickmode = "linear";
+ var l = o.nticks || m8t.constrain(o._length / 40, 4, 9);
+ TIe.autoTicks(o, Math.abs(o.range[1] - o.range[0]) / l);
+ }
+ for (var u = TIe.calcTicks(o, { msUTC: true }), c = 0; c < u.length; ++c) u[c].x = u[c].x * e.dataScale[a], o.type === "date" && (u[c].text = u[c].text.replace(/\ /g, " "));
+ i[a] = u, o.tickmode = s;
+ }
+ }
+ t.ticks = i;
+ for (var a = 0; a < 3; ++a) {
+ 0.5 * (e.glplot.bounds[0][a] + e.glplot.bounds[1][a]);
+ for (var c = 0; c < 2; ++c) t.bounds[c][a] = e.glplot.bounds[c][a];
+ }
+ e.contourLevels = x8t(i);
+ }
+ });
+ var IIe = ye((bgr, PIe) => {
+ var kIe = zd().gl_plot3d, w8t = kIe.createCamera, MIe = kIe.createScene, T8t = vIe(), A8t = UL(), sF = qa(), cp = Dr(), oF = cp.preserveDrawingBuffer(), lF = ho(), Qg = vf(), S8t = n1(), M8t = zX(), E8t = XU(), k8t = _Ie(), C8t = wIe(), L8t = SIe(), P8t = Mg().applyAutorangeOptions, ik, aF, CIe = false;
+ function LIe(e, t) {
+ var r = document.createElement("div"), n = e.container;
+ this.graphDiv = e.graphDiv;
+ var i = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ i.style.position = "absolute", i.style.top = i.style.left = "0px", i.style.width = i.style.height = "100%", i.style["z-index"] = 20, i.style["pointer-events"] = "none", r.appendChild(i), this.svgContainer = i, r.id = e.id, r.style.position = "absolute", r.style.top = r.style.left = "0px", r.style.width = r.style.height = "100%", n.appendChild(r), this.fullLayout = t, this.id = e.id || "scene", this.fullSceneLayout = t[this.id], this.plotArgs = [[], {}, {}], this.axesOptions = k8t(t, t[this.id]), this.spikeOptions = C8t(t[this.id]), this.container = r, this.staticMode = !!e.staticPlot, this.pixelRatio = this.pixelRatio || e.plotGlPixelRatio || 2, this.dataScale = [1, 1, 1], this.contourLevels = [[], [], []], this.convertAnnotations = sF.getComponentMethod("annotations3d", "convert"), this.drawAnnotations = sF.getComponentMethod("annotations3d", "draw"), this.initializeGLPlot();
+ }
+ var Sv = LIe.prototype;
+ Sv.prepareOptions = function() {
+ var e = this, t = { canvas: e.canvas, gl: e.gl, glOptions: { preserveDrawingBuffer: oF, premultipliedAlpha: true, antialias: true }, container: e.container, axes: e.axesOptions, spikes: e.spikeOptions, pickRadius: 10, snapToData: true, autoScale: true, autoBounds: false, cameraObject: e.camera, pixelRatio: e.pixelRatio };
+ if (e.staticMode) {
+ if (!aF && (ik = document.createElement("canvas"), aF = T8t({ canvas: ik, preserveDrawingBuffer: true, premultipliedAlpha: true, antialias: true }), !aF)) throw new Error("error creating static canvas/context for image server");
+ t.gl = aF, t.canvas = ik;
+ }
+ return t;
+ };
+ var EIe = true;
+ Sv.tryCreatePlot = function() {
+ var e = this, t = e.prepareOptions(), r = true;
+ try {
+ e.glplot = MIe(t);
+ } catch (n) {
+ if (e.staticMode || !EIe || oF) r = false;
+ else {
+ cp.warn(["webgl setup failed possibly due to", "false preserveDrawingBuffer config.", "The mobile/tablet device may not be detected by is-mobile module.", "Enabling preserveDrawingBuffer in second attempt to create webgl scene..."].join(" "));
+ try {
+ oF = t.glOptions.preserveDrawingBuffer = true, e.glplot = MIe(t);
+ } catch (i) {
+ oF = t.glOptions.preserveDrawingBuffer = false, r = false;
+ }
+ }
+ }
+ return EIe = false, r;
+ };
+ Sv.initializeGLCamera = function() {
+ var e = this, t = e.fullSceneLayout.camera, r = t.projection.type === "orthographic";
+ e.camera = w8t(e.container, { center: [t.center.x, t.center.y, t.center.z], eye: [t.eye.x, t.eye.y, t.eye.z], up: [t.up.x, t.up.y, t.up.z], _ortho: r, zoomMin: 0.01, zoomMax: 100, mode: "orbit" });
+ };
+ Sv.initializeGLPlot = function() {
+ var e = this;
+ e.initializeGLCamera();
+ var t = e.tryCreatePlot();
+ if (!t) return M8t(e);
+ e.traces = {}, e.make4thDimension();
+ var r = e.graphDiv, n = r.layout, i = function() {
+ var o = {};
+ return e.isCameraChanged(n) && (o[e.id + ".camera"] = e.getCamera()), e.isAspectChanged(n) && (o[e.id + ".aspectratio"] = e.glplot.getAspectratio(), n[e.id].aspectmode !== "manual" && (e.fullSceneLayout.aspectmode = n[e.id].aspectmode = o[e.id + ".aspectmode"] = "manual")), o;
+ }, a = function(o) {
+ if (o.fullSceneLayout.dragmode !== false) {
+ var s = i();
+ o.saveLayout(n), o.graphDiv.emit("plotly_relayout", s);
+ }
+ };
+ return e.glplot.canvas && (e.glplot.canvas.addEventListener("mouseup", function() {
+ a(e);
+ }), e.glplot.canvas.addEventListener("touchstart", function() {
+ CIe = true;
+ }), e.glplot.canvas.addEventListener("wheel", function(o) {
+ if (r._context._scrollZoom.gl3d) {
+ if (e.camera._ortho) {
+ var s = o.deltaX > o.deltaY ? 1.1 : 0.9090909090909091, l = e.glplot.getAspectratio();
+ e.glplot.setAspectratio({ x: s * l.x, y: s * l.y, z: s * l.z });
+ }
+ a(e);
+ }
+ }, A8t ? { passive: false } : false), e.glplot.canvas.addEventListener("mousemove", function() {
+ if (e.fullSceneLayout.dragmode !== false && e.camera.mouseListener.buttons !== 0) {
+ var o = i();
+ e.graphDiv.emit("plotly_relayouting", o);
+ }
+ }), e.staticMode || e.glplot.canvas.addEventListener("webglcontextlost", function(o) {
+ r && r.emit && r.emit("plotly_webglcontextlost", { event: o, layer: e.id });
+ }, false)), e.glplot.oncontextloss = function() {
+ e.recoverContext();
+ }, e.glplot.onrender = function() {
+ e.render();
+ }, true;
+ };
+ Sv.render = function() {
+ var e = this, t = e.graphDiv, r, n = e.svgContainer, i = e.container.getBoundingClientRect();
+ t._fullLayout._calcInverseTransform(t);
+ var a = t._fullLayout._invScaleX, o = t._fullLayout._invScaleY, s = i.width * a, l = i.height * o;
+ n.setAttributeNS(null, "viewBox", "0 0 " + s + " " + l), n.setAttributeNS(null, "width", s), n.setAttributeNS(null, "height", l), L8t(e), e.glplot.axes.update(e.axesOptions);
+ for (var u = Object.keys(e.traces), c = null, f = e.glplot.selection, h = 0; h < u.length; ++h) r = e.traces[u[h]], r.data.hoverinfo !== "skip" && r.handlePick(f) && (c = r), r.setContourLevels && r.setContourLevels();
+ function d(P, A, z) {
+ var O = e.fullSceneLayout[P + "axis"];
+ return O.type !== "log" && (A = O.d2l(A)), lF.hoverLabelText(O, A, z);
+ }
+ if (c !== null) {
+ var v = E8t(e.glplot.cameraParams, f.dataCoordinate);
+ r = c.data;
+ var _ = t._fullData[r.index], b = f.index, p = { xLabel: d("x", f.traceCoordinate[0], r.xhoverformat), yLabel: d("y", f.traceCoordinate[1], r.yhoverformat), zLabel: d("z", f.traceCoordinate[2], r.zhoverformat) }, k = Qg.castHoverinfo(_, e.fullLayout, b), E = (k || "").split("+"), T = k && k === "all";
+ !_.hovertemplate && !T && (E.indexOf("x") === -1 && (p.xLabel = void 0), E.indexOf("y") === -1 && (p.yLabel = void 0), E.indexOf("z") === -1 && (p.zLabel = void 0), E.indexOf("text") === -1 && (f.textLabel = void 0), E.indexOf("name") === -1 && (c.name = void 0));
+ var L, x = [];
+ r.type === "cone" || r.type === "streamtube" ? (p.uLabel = d("x", f.traceCoordinate[3], r.uhoverformat), (T || E.indexOf("u") !== -1) && x.push("u: " + p.uLabel), p.vLabel = d("y", f.traceCoordinate[4], r.vhoverformat), (T || E.indexOf("v") !== -1) && x.push("v: " + p.vLabel), p.wLabel = d("z", f.traceCoordinate[5], r.whoverformat), (T || E.indexOf("w") !== -1) && x.push("w: " + p.wLabel), p.normLabel = f.traceCoordinate[6].toPrecision(3), (T || E.indexOf("norm") !== -1) && x.push("norm: " + p.normLabel), r.type === "streamtube" && (p.divergenceLabel = f.traceCoordinate[7].toPrecision(3), (T || E.indexOf("divergence") !== -1) && x.push("divergence: " + p.divergenceLabel)), f.textLabel && x.push(f.textLabel), L = x.join(" ")) : r.type === "isosurface" || r.type === "volume" ? (p.valueLabel = lF.hoverLabelText(e._mockAxis, e._mockAxis.d2l(f.traceCoordinate[3]), r.valuehoverformat), x.push("value: " + p.valueLabel), f.textLabel && x.push(f.textLabel), L = x.join(" ")) : L = f.textLabel;
+ var C = { x: f.traceCoordinate[0], y: f.traceCoordinate[1], z: f.traceCoordinate[2], data: _._input, fullData: _, curveNumber: _.index, pointNumber: b };
+ Qg.appendArrayPointValue(C, _, b), r._module.eventData && (C = _._module.eventData(C, f, _, {}, b));
+ var M = { points: [C] };
+ if (e.fullSceneLayout.hovermode) {
+ var g = [];
+ Qg.loneHover({ trace: _, x: (0.5 + 0.5 * v[0] / v[3]) * s, y: (0.5 - 0.5 * v[1] / v[3]) * l, xLabel: p.xLabel, yLabel: p.yLabel, zLabel: p.zLabel, text: L, name: c.name, color: Qg.castHoverOption(_, b, "bgcolor") || c.color, borderColor: Qg.castHoverOption(_, b, "bordercolor"), fontFamily: Qg.castHoverOption(_, b, "font.family"), fontSize: Qg.castHoverOption(_, b, "font.size"), fontColor: Qg.castHoverOption(_, b, "font.color"), nameLength: Qg.castHoverOption(_, b, "namelength"), textAlign: Qg.castHoverOption(_, b, "align"), hovertemplate: cp.castOption(_, b, "hovertemplate"), hovertemplateLabels: cp.extendFlat({}, C, p), eventData: [C] }, { container: n, gd: t, inOut_bbox: g }), C.bbox = g[0];
+ }
+ f.distance < 5 && (f.buttons || CIe) ? t.emit("plotly_click", M) : t.emit("plotly_hover", M), this.oldEventData = M;
+ } else Qg.loneUnhover(n), this.oldEventData && t.emit("plotly_unhover", this.oldEventData), this.oldEventData = void 0;
+ e.drawAnnotations(e);
+ };
+ Sv.recoverContext = function() {
+ var e = this;
+ e.glplot.dispose();
+ var t = function() {
+ if (e.glplot.gl.isContextLost()) {
+ requestAnimationFrame(t);
+ return;
+ }
+ if (!e.initializeGLPlot()) {
+ cp.error("Catastrophic and unrecoverable WebGL error. Context lost.");
+ return;
+ }
+ e.plot.apply(e, e.plotArgs);
+ };
+ requestAnimationFrame(t);
+ };
+ var nk = ["xaxis", "yaxis", "zaxis"];
+ function I8t(e, t, r) {
+ for (var n = e.fullSceneLayout, i = 0; i < 3; i++) {
+ var a = nk[i], o = a.charAt(0), s = n[a], l = t[o], u = t[o + "calendar"], c = t["_" + o + "length"];
+ if (!cp.isArrayOrTypedArray(l)) r[0][i] = Math.min(r[0][i], 0), r[1][i] = Math.max(r[1][i], c - 1);
+ else for (var f, h = 0; h < (c || l.length); h++) if (cp.isArrayOrTypedArray(l[h])) for (var d = 0; d < l[h].length; ++d) f = s.d2l(l[h][d], 0, u), !isNaN(f) && isFinite(f) && (r[0][i] = Math.min(r[0][i], f), r[1][i] = Math.max(r[1][i], f));
+ else f = s.d2l(l[h], 0, u), !isNaN(f) && isFinite(f) && (r[0][i] = Math.min(r[0][i], f), r[1][i] = Math.max(r[1][i], f));
+ }
+ }
+ function R8t(e, t) {
+ for (var r = e.fullSceneLayout, n = r.annotations || [], i = 0; i < 3; i++) for (var a = nk[i], o = a.charAt(0), s = r[a], l = 0; l < n.length; l++) {
+ var u = n[l];
+ if (u.visible) {
+ var c = s.r2l(u[o]);
+ !isNaN(c) && isFinite(c) && (t[0][i] = Math.min(t[0][i], c), t[1][i] = Math.max(t[1][i], c));
+ }
+ }
+ }
+ Sv.plot = function(e, t, r) {
+ var n = this;
+ if (n.plotArgs = [e, t, r], !n.glplot.contextLost) {
+ var i, a, o, s, l, u, c = t[n.id], f = r[n.id];
+ n.fullLayout = t, n.fullSceneLayout = c, n.axesOptions.merge(t, c), n.spikeOptions.merge(c), n.setViewport(c), n.updateFx(c.dragmode, c.hovermode), n.camera.enableWheel = n.graphDiv._context._scrollZoom.gl3d, n.glplot.setClearColor(S8t(c.bgcolor)), n.setConvert(l), e ? Array.isArray(e) || (e = [e]) : e = [];
+ var h = [[1 / 0, 1 / 0, 1 / 0], [-1 / 0, -1 / 0, -1 / 0]];
+ for (o = 0; o < e.length; ++o) i = e[o], !(i.visible !== true || i._length === 0) && I8t(this, i, h);
+ R8t(this, h);
+ var d = [1, 1, 1];
+ for (s = 0; s < 3; ++s) h[1][s] === h[0][s] ? d[s] = 1 : d[s] = 1 / (h[1][s] - h[0][s]);
+ for (n.dataScale = d, n.convertAnnotations(this), o = 0; o < e.length; ++o) i = e[o], !(i.visible !== true || i._length === 0) && (a = n.traces[i.uid], a ? a.data.type === i.type ? a.update(i) : (a.dispose(), a = i._module.plot(this, i), n.traces[i.uid] = a) : (a = i._module.plot(this, i), n.traces[i.uid] = a), a.name = i.name);
+ var v = Object.keys(n.traces);
+ e: for (o = 0; o < v.length; ++o) {
+ for (s = 0; s < e.length; ++s) if (e[s].uid === v[o] && e[s].visible === true && e[s]._length !== 0) continue e;
+ a = n.traces[v[o]], a.dispose(), delete n.traces[v[o]];
+ }
+ n.glplot.objects.sort(function(oe, _e) {
+ return oe._trace.data.index - _e._trace.data.index;
+ });
+ var _ = [[0, 0, 0], [0, 0, 0]], b = [], p = {};
+ for (o = 0; o < 3; ++o) {
+ l = c[nk[o]], u = l.type, u in p ? (p[u].acc *= d[o], p[u].count += 1) : p[u] = { acc: d[o], count: 1 };
+ var k;
+ if (l.autorange) {
+ _[0][o] = 1 / 0, _[1][o] = -1 / 0;
+ var E = n.glplot.objects, T = n.fullSceneLayout.annotations || [], L = l._name.charAt(0);
+ for (s = 0; s < E.length; s++) {
+ var x = E[s], C = x.bounds, M = x._trace.data._pad || 0;
+ x.constructor.name === "ErrorBars" && l._lowerLogErrorBound ? _[0][o] = Math.min(_[0][o], l._lowerLogErrorBound) : _[0][o] = Math.min(_[0][o], C[0][o] / d[o] - M), _[1][o] = Math.max(_[1][o], C[1][o] / d[o] + M);
+ }
+ for (s = 0; s < T.length; s++) {
+ var g = T[s];
+ if (g.visible) {
+ var P = l.r2l(g[L]);
+ _[0][o] = Math.min(_[0][o], P), _[1][o] = Math.max(_[1][o], P);
+ }
+ }
+ if ("rangemode" in l && l.rangemode === "tozero" && (_[0][o] = Math.min(_[0][o], 0), _[1][o] = Math.max(_[1][o], 0)), _[0][o] > _[1][o]) _[0][o] = -1, _[1][o] = 1;
+ else {
+ var A = _[1][o] - _[0][o];
+ _[0][o] -= A / 32, _[1][o] += A / 32;
+ }
+ if (k = [_[0][o], _[1][o]], k = P8t(k, l), _[0][o] = k[0], _[1][o] = k[1], l.isReversed()) {
+ var z = _[0][o];
+ _[0][o] = _[1][o], _[1][o] = z;
+ }
+ } else k = l.range, _[0][o] = l.r2l(k[0]), _[1][o] = l.r2l(k[1]);
+ _[0][o] === _[1][o] && (_[0][o] -= 1, _[1][o] += 1), b[o] = _[1][o] - _[0][o], l.range = [_[0][o], _[1][o]], l.limitRange(), n.glplot.setBounds(o, { min: l.range[0] * d[o], max: l.range[1] * d[o] });
+ }
+ var O, U = c.aspectmode;
+ if (U === "cube") O = [1, 1, 1];
+ else if (U === "manual") {
+ var G = c.aspectratio;
+ O = [G.x, G.y, G.z];
+ } else if (U === "auto" || U === "data") {
+ var Z = [1, 1, 1];
+ for (o = 0; o < 3; ++o) {
+ l = c[nk[o]], u = l.type;
+ var j = p[u];
+ Z[o] = Math.pow(j.acc, 1 / j.count) / d[o];
+ }
+ U === "data" || Math.max.apply(null, Z) / Math.min.apply(null, Z) <= 4 ? O = Z : O = [1, 1, 1];
+ } else throw new Error("scene.js aspectRatio was not one of the enumerated types");
+ c.aspectratio.x = f.aspectratio.x = O[0], c.aspectratio.y = f.aspectratio.y = O[1], c.aspectratio.z = f.aspectratio.z = O[2], n.glplot.setAspectratio(c.aspectratio), n.viewInitial.aspectratio || (n.viewInitial.aspectratio = { x: c.aspectratio.x, y: c.aspectratio.y, z: c.aspectratio.z }), n.viewInitial.aspectmode || (n.viewInitial.aspectmode = c.aspectmode);
+ var N = c.domain || null, H = t._size || null;
+ if (N && H) {
+ var re = n.container.style;
+ re.position = "absolute", re.left = H.l + N.x[0] * H.w + "px", re.top = H.t + (1 - N.y[1]) * H.h + "px", re.width = H.w * (N.x[1] - N.x[0]) + "px", re.height = H.h * (N.y[1] - N.y[0]) + "px";
+ }
+ n.glplot.redraw();
+ }
+ };
+ Sv.destroy = function() {
+ var e = this;
+ e.glplot && (e.camera.mouseListener.enabled = false, e.container.removeEventListener("wheel", e.camera.wheelListener), e.camera = null, e.glplot.dispose(), e.container.parentNode.removeChild(e.container), e.glplot = null);
+ };
+ function D8t(e) {
+ return [[e.eye.x, e.eye.y, e.eye.z], [e.center.x, e.center.y, e.center.z], [e.up.x, e.up.y, e.up.z]];
+ }
+ function F8t(e) {
+ return { up: { x: e.up[0], y: e.up[1], z: e.up[2] }, center: { x: e.center[0], y: e.center[1], z: e.center[2] }, eye: { x: e.eye[0], y: e.eye[1], z: e.eye[2] }, projection: { type: e._ortho === true ? "orthographic" : "perspective" } };
+ }
+ Sv.getCamera = function() {
+ var e = this;
+ return e.camera.view.recalcMatrix(e.camera.view.lastT()), F8t(e.camera);
+ };
+ Sv.setViewport = function(e) {
+ var t = this, r = e.camera;
+ t.camera.lookAt.apply(this, D8t(r)), t.glplot.setAspectratio(e.aspectratio);
+ var n = r.projection.type === "orthographic", i = t.camera._ortho;
+ n !== i && (t.glplot.redraw(), t.glplot.clearRGBA(), t.glplot.dispose(), t.initializeGLPlot());
+ };
+ Sv.isCameraChanged = function(e) {
+ var t = this, r = t.getCamera(), n = cp.nestedProperty(e, t.id + ".camera"), i = n.get();
+ function a(u, c, f, h) {
+ var d = ["up", "center", "eye"], v = ["x", "y", "z"];
+ return c[d[f]] && u[d[f]][v[h]] === c[d[f]][v[h]];
+ }
+ var o = false;
+ if (i === void 0) o = true;
+ else {
+ for (var s = 0; s < 3; s++) for (var l = 0; l < 3; l++) if (!a(r, i, s, l)) {
+ o = true;
+ break;
+ }
+ (!i.projection || r.projection && r.projection.type !== i.projection.type) && (o = true);
+ }
+ return o;
+ };
+ Sv.isAspectChanged = function(e) {
+ var t = this, r = t.glplot.getAspectratio(), n = cp.nestedProperty(e, t.id + ".aspectratio"), i = n.get();
+ return i === void 0 || i.x !== r.x || i.y !== r.y || i.z !== r.z;
+ };
+ Sv.saveLayout = function(e) {
+ var t = this, r = t.fullLayout, n, i, a, o, s, l, u = t.isCameraChanged(e), c = t.isAspectChanged(e), f = u || c;
+ if (f) {
+ var h = {};
+ if (u && (n = t.getCamera(), i = cp.nestedProperty(e, t.id + ".camera"), a = i.get(), h[t.id + ".camera"] = a), c && (o = t.glplot.getAspectratio(), s = cp.nestedProperty(e, t.id + ".aspectratio"), l = s.get(), h[t.id + ".aspectratio"] = l), sF.call("_storeDirectGUIEdit", e, r._preGUI, h), u) {
+ i.set(n);
+ var d = cp.nestedProperty(r, t.id + ".camera");
+ d.set(n);
+ }
+ if (c) {
+ s.set(o);
+ var v = cp.nestedProperty(r, t.id + ".aspectratio");
+ v.set(o), t.glplot.redraw();
+ }
+ }
+ return f;
+ };
+ Sv.updateFx = function(e, t) {
+ var r = this, n = r.camera;
+ if (n) if (e === "orbit") n.mode = "orbit", n.keyBindingMode = "rotate";
+ else if (e === "turntable") {
+ n.up = [0, 0, 1], n.mode = "turntable", n.keyBindingMode = "rotate";
+ var i = r.graphDiv, a = i._fullLayout, o = r.fullSceneLayout.camera, s = o.up.x, l = o.up.y, u = o.up.z;
+ if (u / Math.sqrt(s * s + l * l + u * u) < 0.999) {
+ var c = r.id + ".camera.up", f = { x: 0, y: 0, z: 1 }, h = {};
+ h[c] = f;
+ var d = i.layout;
+ sF.call("_storeDirectGUIEdit", d, a._preGUI, h), o.up = f, cp.nestedProperty(d, c).set(f);
+ }
+ } else n.keyBindingMode = e;
+ r.fullSceneLayout.hovermode = t;
+ };
+ function z8t(e, t, r) {
+ for (var n = 0, i = r - 1; n < i; ++n, --i) for (var a = 0; a < t; ++a) for (var o = 0; o < 4; ++o) {
+ var s = 4 * (t * n + a) + o, l = 4 * (t * i + a) + o, u = e[s];
+ e[s] = e[l], e[l] = u;
+ }
+ }
+ function O8t(e, t, r) {
+ for (var n = 0; n < r; ++n) for (var i = 0; i < t; ++i) {
+ var a = 4 * (t * n + i), o = e[a + 3];
+ if (o > 0) for (var s = 255 / o, l = 0; l < 3; ++l) e[a + l] = Math.min(s * e[a + l], 255);
+ }
+ }
+ Sv.toImage = function(e) {
+ var t = this;
+ e || (e = "png"), t.staticMode && t.container.appendChild(ik), t.glplot.redraw();
+ var r = t.glplot.gl, n = r.drawingBufferWidth, i = r.drawingBufferHeight;
+ r.bindFramebuffer(r.FRAMEBUFFER, null);
+ var a = new Uint8Array(n * i * 4);
+ r.readPixels(0, 0, n, i, r.RGBA, r.UNSIGNED_BYTE, a), z8t(a, n, i), O8t(a, n, i);
+ var o = document.createElement("canvas");
+ o.width = n, o.height = i;
+ var s = o.getContext("2d", { willReadFrequently: true }), l = s.createImageData(n, i);
+ l.data.set(a), s.putImageData(l, 0, 0);
+ var u;
+ switch (e) {
+ case "jpeg":
+ u = o.toDataURL("image/jpeg");
+ break;
+ case "webp":
+ u = o.toDataURL("image/webp");
+ break;
+ default:
+ u = o.toDataURL("image/png");
+ }
+ return t.staticMode && t.container.removeChild(ik), u;
+ };
+ Sv.setConvert = function() {
+ for (var e = this, t = 0; t < 3; t++) {
+ var r = e.fullSceneLayout[nk[t]];
+ lF.setConvert(r, e.fullLayout), r.setScale = cp.noop;
+ }
+ };
+ Sv.make4thDimension = function() {
+ var e = this, t = e.graphDiv, r = t._fullLayout;
+ e._mockAxis = { type: "linear", showexponent: "all", exponentformat: "B" }, lF.setConvert(e._mockAxis, r);
+ };
+ PIe.exports = LIe;
+ });
+ var DIe = ye((wgr, RIe) => {
+ RIe.exports = { scene: { valType: "subplotid", dflt: "scene", editType: "calc+clearAxisTypes" } };
+ });
+ var qX = ye((Tgr, FIe) => {
+ var q8t = ka(), xs = Rd(), OX = Ao().extendFlat, B8t = mc().overrideAll;
+ FIe.exports = B8t({ visible: xs.visible, showspikes: { valType: "boolean", dflt: true }, spikesides: { valType: "boolean", dflt: true }, spikethickness: { valType: "number", min: 0, dflt: 2 }, spikecolor: { valType: "color", dflt: q8t.defaultLine }, showbackground: { valType: "boolean", dflt: false }, backgroundcolor: { valType: "color", dflt: "rgba(204, 204, 204, 0.5)" }, showaxeslabels: { valType: "boolean", dflt: true }, color: xs.color, categoryorder: xs.categoryorder, categoryarray: xs.categoryarray, title: { text: xs.title.text, font: xs.title.font }, type: OX({}, xs.type, { values: ["-", "linear", "log", "date", "category"] }), autotypenumbers: xs.autotypenumbers, autorange: xs.autorange, autorangeoptions: { minallowed: xs.autorangeoptions.minallowed, maxallowed: xs.autorangeoptions.maxallowed, clipmin: xs.autorangeoptions.clipmin, clipmax: xs.autorangeoptions.clipmax, include: xs.autorangeoptions.include, editType: "plot" }, rangemode: xs.rangemode, minallowed: xs.minallowed, maxallowed: xs.maxallowed, range: OX({}, xs.range, { items: [{ valType: "any", editType: "plot", impliedEdits: { "^autorange": false } }, { valType: "any", editType: "plot", impliedEdits: { "^autorange": false } }], anim: false }), tickmode: xs.minor.tickmode, nticks: xs.nticks, tick0: xs.tick0, dtick: xs.dtick, tickvals: xs.tickvals, ticktext: xs.ticktext, ticks: xs.ticks, mirror: xs.mirror, ticklen: xs.ticklen, tickwidth: xs.tickwidth, tickcolor: xs.tickcolor, showticklabels: xs.showticklabels, labelalias: xs.labelalias, tickfont: xs.tickfont, tickangle: xs.tickangle, tickprefix: xs.tickprefix, showtickprefix: xs.showtickprefix, ticksuffix: xs.ticksuffix, showticksuffix: xs.showticksuffix, showexponent: xs.showexponent, exponentformat: xs.exponentformat, minexponent: xs.minexponent, separatethousands: xs.separatethousands, tickformat: xs.tickformat, tickformatstops: xs.tickformatstops, hoverformat: xs.hoverformat, showline: xs.showline, linecolor: xs.linecolor, linewidth: xs.linewidth, showgrid: xs.showgrid, gridcolor: OX({}, xs.gridcolor, { dflt: "rgb(204, 204, 204)" }), gridwidth: xs.gridwidth, zeroline: xs.zeroline, zerolinecolor: xs.zerolinecolor, zerolinewidth: xs.zerolinewidth }, "plot", "from-root");
+ });
+ var VX = ye((Agr, zIe) => {
+ var BX = qX(), N8t = Cc().attributes, NX = Ao().extendFlat, U8t = Dr().counterRegex;
+ function UX(e, t, r) {
+ return { x: { valType: "number", dflt: e, editType: "camera" }, y: { valType: "number", dflt: t, editType: "camera" }, z: { valType: "number", dflt: r, editType: "camera" }, editType: "camera" };
+ }
+ zIe.exports = { _arrayAttrRegexps: [U8t("scene", ".annotations", true)], bgcolor: { valType: "color", dflt: "rgba(0,0,0,0)", editType: "plot" }, camera: { up: NX(UX(0, 0, 1), {}), center: NX(UX(0, 0, 0), {}), eye: NX(UX(1.25, 1.25, 1.25), {}), projection: { type: { valType: "enumerated", values: ["perspective", "orthographic"], dflt: "perspective", editType: "calc" }, editType: "calc" }, editType: "camera" }, domain: N8t({ name: "scene", editType: "plot" }), aspectmode: { valType: "enumerated", values: ["auto", "cube", "data", "manual"], dflt: "auto", editType: "plot", impliedEdits: { "aspectratio.x": void 0, "aspectratio.y": void 0, "aspectratio.z": void 0 } }, aspectratio: { x: { valType: "number", min: 0, editType: "plot", impliedEdits: { "^aspectmode": "manual" } }, y: { valType: "number", min: 0, editType: "plot", impliedEdits: { "^aspectmode": "manual" } }, z: { valType: "number", min: 0, editType: "plot", impliedEdits: { "^aspectmode": "manual" } }, editType: "plot", impliedEdits: { aspectmode: "manual" } }, xaxis: BX, yaxis: BX, zaxis: BX, dragmode: { valType: "enumerated", values: ["orbit", "turntable", "zoom", "pan", false], editType: "plot" }, hovermode: { valType: "enumerated", values: ["closest", false], dflt: "closest", editType: "modebar" }, uirevision: { valType: "any", editType: "none" }, editType: "plot" };
+ });
+ var NIe = ye((Sgr, BIe) => {
+ var V8t = fd().mix, OIe = Dr(), G8t = vl(), H8t = qX(), j8t = PU(), W8t = f4(), qIe = ["xaxis", "yaxis", "zaxis"], X8t = 100 * 136 / 187;
+ BIe.exports = function(t, r, n) {
+ var i, a;
+ function o(u, c) {
+ return OIe.coerce(i, a, H8t, u, c);
+ }
+ for (var s = 0; s < qIe.length; s++) {
+ var l = qIe[s];
+ i = t[l] || {}, a = G8t.newContainer(r, l), a._id = l[0] + n.scene, a._name = l, j8t(i, a, o, n), W8t(i, a, o, { font: n.font, letter: l[0], data: n.data, showGrid: true, noAutotickangles: true, noMinorloglabels: true, noTicklabelindex: true, noTickson: true, noTicklabelmode: true, noTicklabelshift: true, noTicklabelstandoff: true, noTicklabelstep: true, noTicklabelposition: true, noTicklabeloverflow: true, noInsiderange: true, noUnifiedhovertitle: true, bgColor: n.bgColor, calendar: n.calendar }, n.fullLayout), o("gridcolor", V8t(a.color, n.bgColor, X8t).toRgbString()), o("title.text", l[0]), a.setScale = OIe.noop, o("showspikes") && (o("spikesides"), o("spikethickness"), o("spikecolor", a.color)), o("showaxeslabels"), o("showbackground") && o("backgroundcolor");
+ }
+ };
+ });
+ var HIe = ye((Mgr, GIe) => {
+ var Z8t = Dr(), Y8t = ka(), K8t = qa(), J8t = O_(), $8t = NIe(), UIe = VX(), Q8t = Id().getSubplotData, VIe = "gl3d";
+ GIe.exports = function(t, r, n) {
+ var i = r._basePlotModules.length > 1;
+ function a(o) {
+ if (!i) {
+ var s = Z8t.validate(t[o], UIe[o]);
+ if (s) return t[o];
+ }
+ }
+ J8t(t, r, n, { type: VIe, attributes: UIe, handleDefaults: eRt, fullLayout: r, font: r.font, fullData: n, getDfltFromLayout: a, autotypenumbersDflt: r.autotypenumbers, paper_bgcolor: r.paper_bgcolor, calendar: r.calendar });
+ };
+ function eRt(e, t, r, n) {
+ for (var i = r("bgcolor"), a = Y8t.combine(i, n.paper_bgcolor), o = ["up", "center", "eye"], s = 0; s < o.length; s++) r("camera." + o[s] + ".x"), r("camera." + o[s] + ".y"), r("camera." + o[s] + ".z");
+ r("camera.projection.type");
+ var l = !!r("aspectratio.x") && !!r("aspectratio.y") && !!r("aspectratio.z"), u = l ? "manual" : "auto", c = r("aspectmode", u);
+ l || (e.aspectratio = t.aspectratio = { x: 1, y: 1, z: 1 }, c === "manual" && (t.aspectmode = "auto"), e.aspectmode = t.aspectmode);
+ var f = Q8t(n.fullData, VIe, n.id);
+ $8t(e, t, { font: n.font, scene: n.id, data: f, bgColor: a, calendar: n.calendar, autotypenumbersDflt: n.autotypenumbersDflt, fullLayout: n.fullLayout }), K8t.getComponentMethod("annotations3d", "handleDefaults")(e, t, n);
+ var h = n.getDfltFromLayout("dragmode");
+ if (h !== false && !h) if (h = "orbit", e.camera && e.camera.up) {
+ var d = e.camera.up.x, v = e.camera.up.y, _ = e.camera.up.z;
+ _ !== 0 && (!d || !v || !_ || _ / Math.sqrt(d * d + v * v + _ * _) > 0.999) && (h = "turntable");
+ } else h = "turntable";
+ r("dragmode", h), r("hovermode", n.getDfltFromLayout("hovermode"));
+ }
+ });
+ var sx = ye((fp) => {
+ var tRt = mc().overrideAll, rRt = W1(), iRt = IIe(), nRt = Id().getSubplotData, aRt = Dr(), oRt = Wp(), XA = "gl3d", GX = "scene";
+ fp.name = XA;
+ fp.attr = GX;
+ fp.idRoot = GX;
+ fp.idRegex = fp.attrRegex = aRt.counterRegex("scene");
+ fp.attributes = DIe();
+ fp.layoutAttributes = VX();
+ fp.baseLayoutAttrOverrides = tRt({ hoverlabel: rRt.hoverlabel }, "plot", "nested");
+ fp.supplyLayoutDefaults = HIe();
+ fp.plot = function(t) {
+ for (var r = t._fullLayout, n = t._fullData, i = r._subplots[XA], a = 0; a < i.length; a++) {
+ var o = i[a], s = nRt(n, XA, o), l = r[o], u = l.camera, c = l._scene;
+ c || (c = new iRt({ id: o, graphDiv: t, container: t.querySelector(".gl-container"), staticPlot: t._context.staticPlot, plotGlPixelRatio: t._context.plotGlPixelRatio, camera: u }, r), l._scene = c), c.viewInitial || (c.viewInitial = { up: { x: u.up.x, y: u.up.y, z: u.up.z }, eye: { x: u.eye.x, y: u.eye.y, z: u.eye.z }, center: { x: u.center.x, y: u.center.y, z: u.center.z } }), c.plot(s, r, t.layout);
+ }
+ };
+ fp.clean = function(e, t, r, n) {
+ for (var i = n._subplots[XA] || [], a = 0; a < i.length; a++) {
+ var o = i[a];
+ !t[o] && n[o]._scene && (n[o]._scene.destroy(), n._infolayer && n._infolayer.selectAll(".annotation-" + o).remove());
+ }
+ };
+ fp.toSVG = function(e) {
+ for (var t = e._fullLayout, r = t._subplots[XA], n = t._size, i = 0; i < r.length; i++) {
+ var a = t[r[i]], o = a.domain, s = a._scene, l = s.toImage("png"), u = t._glimages.append("svg:image");
+ u.attr({ xmlns: oRt.svg, "xlink:href": l, x: n.l + n.w * o.x[0], y: n.t + n.h * (1 - o.y[1]), width: n.w * (o.x[1] - o.x[0]), height: n.h * (o.y[1] - o.y[0]), preserveAspectRatio: "none" }), s.destroy();
+ }
+ };
+ fp.cleanId = function(t) {
+ if (t.match(/^scene[0-9]*$/)) {
+ var r = t.slice(5);
+ return r === "1" && (r = ""), GX + r;
+ }
+ };
+ fp.updateFx = function(e) {
+ for (var t = e._fullLayout, r = t._subplots[XA], n = 0; n < r.length; n++) {
+ var i = t[r[n]]._scene;
+ i.updateFx(t.dragmode, t.hovermode);
+ }
+ };
+ });
+ var WIe = ye((kgr, jIe) => {
+ jIe.exports = { plot: tIe(), attributes: DX(), markerSymbols: iF(), supplyDefaults: lIe(), colorbar: [{ container: "marker", min: "cmin", max: "cmax" }, { container: "line", min: "cmin", max: "cmax" }], calc: cIe(), moduleType: "trace", name: "scatter3d", basePlotModule: sx(), categories: ["gl3d", "symbols", "showLegend", "scatter-like"], meta: {} };
+ });
+ var ZIe = ye((Cgr, XIe) => {
+ XIe.exports = WIe();
+ });
+ var ak = ye((Lgr, JIe) => {
+ var YIe = ka(), sRt = Tu(), HX = df().axisHoverFormat, { hovertemplateAttrs: lRt, templatefallbackAttrs: uRt } = Ll(), KIe = Gl(), jX = Ao().extendFlat, cRt = mc().overrideAll;
+ function WX(e) {
+ return { valType: "boolean", dflt: false };
+ }
+ function XX(e) {
+ return { show: { valType: "boolean", dflt: false }, start: { valType: "number", dflt: null, editType: "plot" }, end: { valType: "number", dflt: null, editType: "plot" }, size: { valType: "number", dflt: null, min: 0, editType: "plot" }, project: { x: WX(), y: WX(), z: WX() }, color: { valType: "color", dflt: YIe.defaultLine }, usecolormap: { valType: "boolean", dflt: false }, width: { valType: "number", min: 1, max: 16, dflt: 2 }, highlight: { valType: "boolean", dflt: true }, highlightcolor: { valType: "color", dflt: YIe.defaultLine }, highlightwidth: { valType: "number", min: 1, max: 16, dflt: 2 } };
+ }
+ var ZX = JIe.exports = cRt(jX({ z: { valType: "data_array" }, x: { valType: "data_array" }, y: { valType: "data_array" }, text: { valType: "string", dflt: "", arrayOk: true }, hovertext: { valType: "string", dflt: "", arrayOk: true }, hovertemplate: lRt(), hovertemplatefallback: uRt(), xhoverformat: HX("x"), yhoverformat: HX("y"), zhoverformat: HX("z"), connectgaps: { valType: "boolean", dflt: false, editType: "calc" }, surfacecolor: { valType: "data_array" } }, sRt("", { colorAttr: "z or surfacecolor", showScaleDflt: true, autoColorDflt: false, editTypeOverride: "calc" }), { contours: { x: XX(), y: XX(), z: XX() }, hidesurface: { valType: "boolean", dflt: false }, lightposition: { x: { valType: "number", min: -1e5, max: 1e5, dflt: 10 }, y: { valType: "number", min: -1e5, max: 1e5, dflt: 1e4 }, z: { valType: "number", min: -1e5, max: 1e5, dflt: 0 } }, lighting: { ambient: { valType: "number", min: 0, max: 1, dflt: 0.8 }, diffuse: { valType: "number", min: 0, max: 1, dflt: 0.8 }, specular: { valType: "number", min: 0, max: 2, dflt: 0.05, description: "Represents the level that incident rays are reflected in a single direction, causing shine." }, roughness: { valType: "number", min: 0, max: 1, dflt: 0.5, description: "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine." }, fresnel: { valType: "number", min: 0, max: 5, dflt: 0.2 } }, opacity: { valType: "number", min: 0, max: 1, dflt: 1 }, opacityscale: { valType: "any", editType: "calc" }, hoverinfo: jX({}, KIe.hoverinfo), showlegend: jX({}, KIe.showlegend, { dflt: false }) }), "calc", "nested");
+ ZX.x.editType = ZX.y.editType = ZX.z.editType = "calc+clearAxisTypes";
+ });
+ var KX = ye((Pgr, e8e) => {
+ var fRt = qa(), $Ie = Dr(), hRt = td(), dRt = ak(), YX = 0.1;
+ function vRt(e, t) {
+ for (var r = [], n = 32, i = 0; i < n; i++) {
+ var a = i / (n - 1), o = t + (1 - t) * (1 - Math.pow(Math.sin(e * a * Math.PI), 2));
+ r.push([a, Math.max(0, Math.min(1, o))]);
+ }
+ return r;
+ }
+ function pRt(e) {
+ var t = 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 false;
+ for (var r = 0; r < e.length; r++) {
+ var n = e[r];
+ if (n.length !== 2 || +n[0] < t) return false;
+ t = +n[0];
+ }
+ return true;
+ }
+ function gRt(e, t, r, n) {
+ var i, a;
+ function o(b, p) {
+ return $Ie.coerce(e, t, dRt, b, p);
+ }
+ var s = o("x"), l = o("y"), u = o("z");
+ if (!u || !u.length || s && s.length < 1 || l && l.length < 1) {
+ t.visible = false;
+ return;
+ }
+ t._xlength = Array.isArray(s) && $Ie.isArrayOrTypedArray(s[0]) ? u.length : u[0].length, t._ylength = u.length;
+ var c = fRt.getComponentMethod("calendars", "handleTraceDefaults");
+ c(e, t, ["x", "y", "z"], n), o("text"), o("hovertext"), o("hovertemplate"), o("hovertemplatefallback"), o("xhoverformat"), o("yhoverformat"), o("zhoverformat"), ["lighting.ambient", "lighting.diffuse", "lighting.specular", "lighting.roughness", "lighting.fresnel", "lightposition.x", "lightposition.y", "lightposition.z", "hidesurface", "connectgaps", "opacity"].forEach(function(b) {
+ o(b);
+ });
+ o("surfacecolor");
+ var h = ["x", "y", "z"];
+ for (i = 0; i < 3; ++i) {
+ var d = "contours." + h[i], v = o(d + ".show"), _ = o(d + ".highlight");
+ if (v || _) for (a = 0; a < 3; ++a) o(d + ".project." + h[a]);
+ v && (o(d + ".color"), o(d + ".width"), o(d + ".usecolormap")), _ && (o(d + ".highlightcolor"), o(d + ".highlightwidth")), o(d + ".start"), o(d + ".end"), o(d + ".size");
+ }
+ hRt(e, t, n, o, { prefix: "", cLetter: "c" }), QIe(e, t, n, o), t._length = null;
+ }
+ function QIe(e, t, r, n) {
+ var i = n("opacityscale");
+ i === "max" ? t.opacityscale = [[0, YX], [1, 1]] : i === "min" ? t.opacityscale = [[0, 1], [1, YX]] : i === "extremes" ? t.opacityscale = vRt(1, YX) : pRt(i) || (t.opacityscale = void 0);
+ }
+ e8e.exports = { supplyDefaults: gRt, opacityscaleDefaults: QIe };
+ });
+ var i8e = ye((Igr, r8e) => {
+ var t8e = gv();
+ r8e.exports = function(t, r) {
+ r.surfacecolor ? t8e(t, r, { vals: r.surfacecolor, containerStr: "", cLetter: "c" }) : t8e(t, r, { vals: r.z, containerStr: "", cLetter: "c" });
+ };
+ });
+ var u8e = ye((Rgr, l8e) => {
+ var mRt = zd().gl_surface3d, ZA = zd().ndarray, yRt = zd().ndarray_linear_interpolate.d2, _Rt = c8(), xRt = f8(), ok = Dr().isArrayOrTypedArray, bRt = a1().parseColorScale, n8e = n1(), wRt = tc().extractOpts;
+ function o8e(e, t, r) {
+ this.scene = e, this.uid = r, this.surface = t, this.data = null, this.showContour = [false, false, false], this.contourStart = [null, null, null], this.contourEnd = [null, null, null], this.contourSize = [0, 0, 0], this.minValues = [1 / 0, 1 / 0, 1 / 0], this.maxValues = [-1 / 0, -1 / 0, -1 / 0], this.dataScaleX = 1, this.dataScaleY = 1, this.refineData = true, this.objectOffset = [0, 0, 0];
+ }
+ var em = o8e.prototype;
+ em.getXat = function(e, t, r, n) {
+ var i = ok(this.data.x) ? ok(this.data.x[0]) ? this.data.x[t][e] : this.data.x[e] : e;
+ return r === void 0 ? i : n.d2l(i, 0, r);
+ };
+ em.getYat = function(e, t, r, n) {
+ var i = ok(this.data.y) ? ok(this.data.y[0]) ? this.data.y[t][e] : this.data.y[t] : t;
+ return r === void 0 ? i : n.d2l(i, 0, r);
+ };
+ em.getZat = function(e, t, r, n) {
+ var i = this.data.z[t][e];
+ return i === null && this.data.connectgaps && this.data._interpolatedZ && (i = this.data._interpolatedZ[t][e]), r === void 0 ? i : n.d2l(i, 0, r);
+ };
+ em.handlePick = function(e) {
+ if (e.object === this.surface) {
+ var t = (e.data.index[0] - 1) / this.dataScaleX - 1, r = (e.data.index[1] - 1) / this.dataScaleY - 1, n = Math.max(Math.min(Math.round(t), this.data.z[0].length - 1), 0), i = Math.max(Math.min(Math.round(r), this.data._ylength - 1), 0);
+ e.index = [n, i], e.traceCoordinate = [this.getXat(n, i), this.getYat(n, i), this.getZat(n, i)], e.dataCoordinate = [this.getXat(n, i, this.data.xcalendar, this.scene.fullSceneLayout.xaxis), this.getYat(n, i, this.data.ycalendar, this.scene.fullSceneLayout.yaxis), this.getZat(n, i, this.data.zcalendar, this.scene.fullSceneLayout.zaxis)];
+ for (var a = 0; a < 3; a++) {
+ var o = e.dataCoordinate[a];
+ o != null && (e.dataCoordinate[a] *= this.scene.dataScale[a]);
+ }
+ var s = this.data.hovertext || this.data.text;
+ return ok(s) && s[i] && s[i][n] !== void 0 ? e.textLabel = s[i][n] : s ? e.textLabel = s : e.textLabel = "", e.data.dataCoordinate = e.dataCoordinate.slice(), this.surface.highlight(e.data), this.scene.glplot.spikes.position = e.dataCoordinate, true;
+ }
+ };
+ function TRt(e) {
+ var t = e[0].rgb, r = e[e.length - 1].rgb;
+ return t[0] === r[0] && t[1] === r[1] && t[2] === r[2] && t[3] === r[3];
+ }
+ var YA = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999];
+ function ARt(e, t) {
+ if (e < t) return 0;
+ for (var r = 0; Math.floor(e % t) === 0; ) e /= t, r++;
+ return r;
+ }
+ function JX(e) {
+ for (var t = [], r = 0; r < YA.length; r++) {
+ var n = YA[r];
+ t.push(ARt(e, n));
+ }
+ return t;
+ }
+ function SRt(e) {
+ for (var t = JX(e), r = e, n = 0; n < YA.length; n++) if (t[n] > 0) {
+ r = YA[n];
+ break;
+ }
+ return r;
+ }
+ function MRt(e, t) {
+ if (!(e < 1 || t < 1)) {
+ for (var r = JX(e), n = JX(t), i = 1, a = 0; a < YA.length; a++) i *= Math.pow(YA[a], Math.max(r[a], n[a]));
+ return i;
+ }
+ }
+ function ERt(e) {
+ if (e.length !== 0) {
+ for (var t = 1, r = 0; r < e.length; r++) t = MRt(t, e[r]);
+ return t;
+ }
+ }
+ em.calcXnums = function(e) {
+ var t, r = [];
+ for (t = 1; t < e; t++) {
+ var n = this.getXat(t - 1, 0), i = this.getXat(t, 0);
+ i !== n && n !== void 0 && n !== null && i !== void 0 && i !== null ? r[t - 1] = Math.abs(i - n) : r[t - 1] = 0;
+ }
+ var a = 0;
+ for (t = 1; t < e; t++) a += r[t - 1];
+ for (t = 1; t < e; t++) r[t - 1] === 0 ? r[t - 1] = 1 : r[t - 1] = Math.round(a / r[t - 1]);
+ return r;
+ };
+ em.calcYnums = function(e) {
+ var t, r = [];
+ for (t = 1; t < e; t++) {
+ var n = this.getYat(0, t - 1), i = this.getYat(0, t);
+ i !== n && n !== void 0 && n !== null && i !== void 0 && i !== null ? r[t - 1] = Math.abs(i - n) : r[t - 1] = 0;
+ }
+ var a = 0;
+ for (t = 1; t < e; t++) a += r[t - 1];
+ for (t = 1; t < e; t++) r[t - 1] === 0 ? r[t - 1] = 1 : r[t - 1] = Math.round(a / r[t - 1]);
+ return r;
+ };
+ var s8e = [1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260], a8e = s8e[9], uF = s8e[13];
+ em.estimateScale = function(e, t) {
+ for (var r = t === 0 ? this.calcXnums(e) : this.calcYnums(e), n = 1 + ERt(r); n < a8e; ) n *= 2;
+ for (; n > uF; ) n--, n /= SRt(n), n++, n < a8e && (n = uF);
+ var i = Math.round(n / e);
+ return i > 1 ? i : 1;
+ };
+ function kRt(e, t, r) {
+ var n = r[8] + r[2] * t[0] + r[5] * t[1];
+ return e[0] = (r[6] + r[0] * t[0] + r[3] * t[1]) / n, e[1] = (r[7] + r[1] * t[0] + r[4] * t[1]) / n, e;
+ }
+ function CRt(e, t, r) {
+ return LRt(e, t, kRt, r), e;
+ }
+ function LRt(e, t, r, n) {
+ for (var i = [0, 0], a = e.shape[0], o = e.shape[1], s = 0; s < a; s++) for (var l = 0; l < o; l++) r(i, [s, l], n), e.set(s, l, yRt(t, i[0], i[1]));
+ return e;
+ }
+ em.refineCoords = function(e) {
+ for (var t = this.dataScaleX, r = this.dataScaleY, n = e[0].shape[0], i = e[0].shape[1], a = Math.floor(e[0].shape[0] * t + 1) | 0, o = Math.floor(e[0].shape[1] * r + 1) | 0, s = 1 + n + 1, l = 1 + i + 1, u = ZA(new Float32Array(s * l), [s, l]), c = [1 / t, 0, 0, 0, 1 / r, 0, 0, 0, 1], f = 0; f < e.length; ++f) {
+ this.surface.padField(u, e[f]);
+ var h = ZA(new Float32Array(a * o), [a, o]);
+ CRt(h, u, c), e[f] = h;
+ }
+ };
+ function PRt(e, t) {
+ for (var r = false, n = 0; n < e.length; n++) if (t === e[n]) {
+ r = true;
+ break;
+ }
+ r === false && e.push(t);
+ }
+ em.setContourLevels = function() {
+ var e = [[], [], []], t = [false, false, false], r = false, n, i, a;
+ for (n = 0; n < 3; ++n) if (this.showContour[n] && (r = true, this.contourSize[n] > 0 && this.contourStart[n] !== null && this.contourEnd[n] !== null && this.contourEnd[n] > this.contourStart[n])) for (t[n] = true, i = this.contourStart[n]; i < this.contourEnd[n]; i += this.contourSize[n]) a = i * this.scene.dataScale[n], PRt(e[n], a);
+ if (r) {
+ var o = [[], [], []];
+ for (n = 0; n < 3; ++n) this.showContour[n] && (o[n] = t[n] ? e[n] : this.scene.contourLevels[n]);
+ this.surface.update({ levels: o });
+ }
+ };
+ em.update = function(e) {
+ var t = this.scene, r = t.fullSceneLayout, n = this.surface, i = bRt(e), a = t.dataScale, o = e.z[0].length, s = e._ylength, l = t.contourLevels;
+ this.data = e;
+ var u, c, f, h, d = [];
+ for (u = 0; u < 3; u++) for (d[u] = [], c = 0; c < o; c++) d[u][c] = [];
+ for (c = 0; c < o; c++) for (f = 0; f < s; f++) d[0][c][f] = this.getXat(c, f, e.xcalendar, r.xaxis), d[1][c][f] = this.getYat(c, f, e.ycalendar, r.yaxis), d[2][c][f] = this.getZat(c, f, e.zcalendar, r.zaxis);
+ if (e.connectgaps) for (e._emptypoints = xRt(d[2]), _Rt(d[2], e._emptypoints), e._interpolatedZ = [], c = 0; c < o; c++) for (e._interpolatedZ[c] = [], f = 0; f < s; f++) e._interpolatedZ[c][f] = d[2][c][f];
+ for (u = 0; u < 3; u++) for (c = 0; c < o; c++) for (f = 0; f < s; f++) h = d[u][c][f], h == null ? d[u][c][f] = NaN : h = d[u][c][f] *= a[u];
+ for (u = 0; u < 3; u++) for (c = 0; c < o; c++) for (f = 0; f < s; f++) h = d[u][c][f], h != null && (this.minValues[u] > h && (this.minValues[u] = h), this.maxValues[u] < h && (this.maxValues[u] = h));
+ for (u = 0; u < 3; u++) this.objectOffset[u] = 0.5 * (this.minValues[u] + this.maxValues[u]);
+ for (u = 0; u < 3; u++) for (c = 0; c < o; c++) for (f = 0; f < s; f++) h = d[u][c][f], h != null && (d[u][c][f] -= this.objectOffset[u]);
+ var v = [ZA(new Float32Array(o * s), [o, s]), ZA(new Float32Array(o * s), [o, s]), ZA(new Float32Array(o * s), [o, s])];
+ for (u = 0; u < 3; u++) for (c = 0; c < o; c++) for (f = 0; f < s; f++) v[u].set(c, f, d[u][c][f]);
+ d = [];
+ var _ = { colormap: i, levels: [[], [], []], showContour: [true, true, true], showSurface: !e.hidesurface, contourProject: [[false, false, false], [false, false, false], [false, false, false]], contourWidth: [1, 1, 1], contourColor: [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], contourTint: [1, 1, 1], dynamicColor: [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], dynamicWidth: [1, 1, 1], dynamicTint: [1, 1, 1], opacityscale: e.opacityscale, opacity: e.opacity }, b = wRt(e);
+ if (_.intensityBounds = [b.min, b.max], e.surfacecolor) {
+ var p = ZA(new Float32Array(o * s), [o, s]);
+ for (c = 0; c < o; c++) for (f = 0; f < s; f++) p.set(c, f, e.surfacecolor[f][c]);
+ v.push(p);
+ } else _.intensityBounds[0] *= a[2], _.intensityBounds[1] *= a[2];
+ (uF < v[0].shape[0] || uF < v[0].shape[1]) && (this.refineData = false), this.refineData === true && (this.dataScaleX = this.estimateScale(v[0].shape[0], 0), this.dataScaleY = this.estimateScale(v[0].shape[1], 1), (this.dataScaleX !== 1 || this.dataScaleY !== 1) && this.refineCoords(v)), e.surfacecolor && (_.intensity = v.pop());
+ var k = [true, true, true], E = ["x", "y", "z"];
+ for (u = 0; u < 3; ++u) {
+ var T = e.contours[E[u]];
+ k[u] = T.highlight, _.showContour[u] = T.show || T.highlight, _.showContour[u] && (_.contourProject[u] = [T.project.x, T.project.y, T.project.z], T.show ? (this.showContour[u] = true, _.levels[u] = l[u], n.highlightColor[u] = _.contourColor[u] = n8e(T.color), T.usecolormap ? n.highlightTint[u] = _.contourTint[u] = 0 : n.highlightTint[u] = _.contourTint[u] = 1, _.contourWidth[u] = T.width, this.contourStart[u] = T.start, this.contourEnd[u] = T.end, this.contourSize[u] = T.size) : (this.showContour[u] = false, this.contourStart[u] = null, this.contourEnd[u] = null, this.contourSize[u] = 0), T.highlight && (_.dynamicColor[u] = n8e(T.highlightcolor), _.dynamicWidth[u] = T.highlightwidth));
+ }
+ TRt(i) && (_.vertexColor = true), _.objectOffset = this.objectOffset, _.coords = v, n.update(_), n.visible = e.visible, n.enableDynamic = k, n.enableHighlight = k, n.snapToData = true, "lighting" in e && (n.ambientLight = e.lighting.ambient, n.diffuseLight = e.lighting.diffuse, n.specularLight = e.lighting.specular, n.roughness = e.lighting.roughness, n.fresnel = e.lighting.fresnel), "lightposition" in e && (n.lightPosition = [e.lightposition.x, e.lightposition.y, e.lightposition.z]);
+ };
+ em.dispose = function() {
+ this.scene.glplot.remove(this.surface), this.surface.dispose();
+ };
+ function IRt(e, t) {
+ var r = e.glplot.gl, n = mRt({ gl: r }), i = new o8e(e, n, t.uid);
+ return n._trace = i, i.update(t), e.glplot.add(n), i;
+ }
+ l8e.exports = IRt;
+ });
+ var f8e = ye((Dgr, c8e) => {
+ c8e.exports = { attributes: ak(), supplyDefaults: KX().supplyDefaults, colorbar: { min: "cmin", max: "cmax" }, calc: i8e(), plot: u8e(), moduleType: "trace", name: "surface", basePlotModule: sx(), categories: ["gl3d", "2dMap", "showLegend"], meta: {} };
+ });
+ var d8e = ye((Fgr, h8e) => {
+ h8e.exports = f8e();
+ });
+ var KA = ye((zgr, p8e) => {
+ var RRt = Tu(), $X = df().axisHoverFormat, { hovertemplateAttrs: DRt, templatefallbackAttrs: FRt } = Ll(), lx = ak(), v8e = Gl(), ux = Ao().extendFlat;
+ p8e.exports = ux({ x: { valType: "data_array", editType: "calc+clearAxisTypes" }, y: { valType: "data_array", editType: "calc+clearAxisTypes" }, z: { valType: "data_array", editType: "calc+clearAxisTypes" }, i: { valType: "data_array", editType: "calc" }, j: { valType: "data_array", editType: "calc" }, k: { valType: "data_array", editType: "calc" }, text: { valType: "string", dflt: "", arrayOk: true, editType: "calc" }, hovertext: { valType: "string", dflt: "", arrayOk: true, editType: "calc" }, hovertemplate: DRt({ editType: "calc" }), hovertemplatefallback: FRt({ editType: "calc" }), xhoverformat: $X("x"), yhoverformat: $X("y"), zhoverformat: $X("z"), delaunayaxis: { valType: "enumerated", values: ["x", "y", "z"], dflt: "z", editType: "calc" }, alphahull: { valType: "number", dflt: -1, editType: "calc" }, intensity: { valType: "data_array", editType: "calc" }, intensitymode: { valType: "enumerated", values: ["vertex", "cell"], dflt: "vertex", editType: "calc" }, color: { valType: "color", editType: "calc" }, vertexcolor: { valType: "data_array", editType: "calc" }, facecolor: { valType: "data_array", editType: "calc" } }, RRt("", { colorAttr: "`intensity`", showScaleDflt: true, editTypeOverride: "calc" }), { opacity: lx.opacity, flatshading: { valType: "boolean", dflt: false, editType: "calc" }, contour: { show: ux({}, lx.contours.x.show, {}), color: lx.contours.x.color, width: lx.contours.x.width, editType: "calc" }, lightposition: { x: ux({}, lx.lightposition.x, { dflt: 1e5 }), y: ux({}, lx.lightposition.y, { dflt: 1e5 }), z: ux({}, lx.lightposition.z, { dflt: 0 }), editType: "calc" }, lighting: ux({ vertexnormalsepsilon: { valType: "number", min: 0, max: 1, dflt: 1e-12, editType: "calc", description: "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." }, facenormalsepsilon: { valType: "number", min: 0, max: 1, dflt: 1e-6, editType: "calc", description: "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." }, editType: "calc" }, lx.lighting), hoverinfo: ux({}, v8e.hoverinfo, { editType: "calc" }), showlegend: ux({}, v8e.showlegend, { dflt: false }) });
+ });
+ var fF = ye((Ogr, m8e) => {
+ var zRt = Tu(), cF = df().axisHoverFormat, { hovertemplateAttrs: ORt, templatefallbackAttrs: qRt } = Ll(), sk = KA(), g8e = Gl(), QX = Ao().extendFlat, BRt = mc().overrideAll;
+ function eZ(e) {
+ return { show: { valType: "boolean", dflt: false }, locations: { valType: "data_array", dflt: [] }, fill: { valType: "number", min: 0, max: 1, dflt: 1 } };
+ }
+ function tZ(e) {
+ return { show: { valType: "boolean", dflt: true }, fill: { valType: "number", min: 0, max: 1, dflt: 1 } };
+ }
+ var JA = m8e.exports = BRt(QX({ x: { valType: "data_array" }, y: { valType: "data_array" }, z: { valType: "data_array" }, value: { valType: "data_array" }, isomin: { valType: "number" }, isomax: { valType: "number" }, surface: { show: { valType: "boolean", dflt: true }, count: { valType: "integer", dflt: 2, min: 1 }, fill: { valType: "number", min: 0, max: 1, dflt: 1 }, pattern: { valType: "flaglist", flags: ["A", "B", "C", "D", "E"], extras: ["all", "odd", "even"], dflt: "all" } }, spaceframe: { show: { valType: "boolean", dflt: false }, fill: { valType: "number", min: 0, max: 1, dflt: 0.15 } }, slices: { x: eZ(), y: eZ(), z: eZ() }, caps: { x: tZ(), y: tZ(), z: tZ() }, text: { valType: "string", dflt: "", arrayOk: true }, hovertext: { valType: "string", dflt: "", arrayOk: true }, hovertemplate: ORt(), hovertemplatefallback: qRt(), xhoverformat: cF("x"), yhoverformat: cF("y"), zhoverformat: cF("z"), valuehoverformat: cF("value", 1), showlegend: QX({}, g8e.showlegend, { dflt: false }) }, zRt("", { colorAttr: "`value`", showScaleDflt: true, editTypeOverride: "calc" }), { opacity: sk.opacity, lightposition: sk.lightposition, lighting: sk.lighting, flatshading: sk.flatshading, contour: sk.contour, hoverinfo: QX({}, g8e.hoverinfo) }), "calc", "nested");
+ JA.flatshading.dflt = true;
+ JA.lighting.facenormalsepsilon.dflt = 0;
+ JA.x.editType = JA.y.editType = JA.z.editType = JA.value.editType = "calc+clearAxisTypes";
+ });
+ var rZ = ye((qgr, _8e) => {
+ var NRt = Dr(), URt = qa(), VRt = fF(), GRt = td();
+ function HRt(e, t, r, n) {
+ function i(a, o) {
+ return NRt.coerce(e, t, VRt, a, o);
+ }
+ y8e(e, t, r, n, i);
+ }
+ function y8e(e, t, r, n, i) {
+ var a = i("isomin"), o = i("isomax");
+ o != null && a !== void 0 && a !== null && a > o && (t.isomin = null, t.isomax = null);
+ var s = i("x"), l = i("y"), u = i("z"), c = i("value");
+ if (!s || !s.length || !l || !l.length || !u || !u.length || !c || !c.length) {
+ t.visible = false;
+ return;
+ }
+ var f = URt.getComponentMethod("calendars", "handleTraceDefaults");
+ f(e, t, ["x", "y", "z"], n), i("valuehoverformat"), ["x", "y", "z"].forEach(function(_) {
+ i(_ + "hoverformat");
+ var b = "caps." + _, p = i(b + ".show");
+ p && i(b + ".fill");
+ var k = "slices." + _, E = i(k + ".show");
+ E && (i(k + ".fill"), i(k + ".locations"));
+ });
+ var h = i("spaceframe.show");
+ h && i("spaceframe.fill");
+ var d = i("surface.show");
+ d && (i("surface.count"), i("surface.fill"), i("surface.pattern"));
+ var v = i("contour.show");
+ v && (i("contour.color"), i("contour.width")), ["text", "hovertext", "hovertemplate", "lighting.ambient", "lighting.diffuse", "lighting.specular", "lighting.roughness", "lighting.fresnel", "lighting.vertexnormalsepsilon", "lighting.facenormalsepsilon", "lightposition.x", "lightposition.y", "lightposition.z", "flatshading", "opacity"].forEach(function(_) {
+ i(_);
+ }), GRt(e, t, n, i, { prefix: "", cLetter: "c" }), t._length = null;
+ }
+ _8e.exports = { supplyDefaults: HRt, supplyIsoDefaults: y8e };
+ });
+ var hF = ye((Bgr, b8e) => {
+ var nZ = Dr(), jRt = gv();
+ function WRt(e, t) {
+ t._len = Math.min(t.u.length, t.v.length, t.w.length, t.x.length, t.y.length, t.z.length), t._u = Jm(t.u, t._len), t._v = Jm(t.v, t._len), t._w = Jm(t.w, t._len), t._x = Jm(t.x, t._len), t._y = Jm(t.y, t._len), t._z = Jm(t.z, t._len);
+ var r = x8e(t);
+ t._gridFill = r.fill, t._Xs = r.Xs, t._Ys = r.Ys, t._Zs = r.Zs, t._len = r.len;
+ var n = 0, i, a, o;
+ t.starts && (i = Jm(t.starts.x || []), a = Jm(t.starts.y || []), o = Jm(t.starts.z || []), n = Math.min(i.length, a.length, o.length)), t._startsX = i || [], t._startsY = a || [], t._startsZ = o || [];
+ var s = 0, l = 1 / 0, u;
+ for (u = 0; u < t._len; u++) {
+ var c = t._u[u], f = t._v[u], h = t._w[u], d = Math.sqrt(c * c + f * f + h * h);
+ s = Math.max(s, d), l = Math.min(l, d);
+ }
+ for (jRt(e, t, { vals: [l, s], containerStr: "", cLetter: "c" }), u = 0; u < n; u++) {
+ var v = i[u];
+ r.xMax = Math.max(r.xMax, v), r.xMin = Math.min(r.xMin, v);
+ var _ = a[u];
+ r.yMax = Math.max(r.yMax, _), r.yMin = Math.min(r.yMin, _);
+ var b = o[u];
+ r.zMax = Math.max(r.zMax, b), r.zMin = Math.min(r.zMin, b);
+ }
+ t._slen = n, t._normMax = s, t._xbnds = [r.xMin, r.xMax], t._ybnds = [r.yMin, r.yMax], t._zbnds = [r.zMin, r.zMax];
+ }
+ function x8e(e) {
+ var t = e._x, r = e._y, n = e._z, i = e._len, a, o, s, l = -1 / 0, u = 1 / 0, c = -1 / 0, f = 1 / 0, h = -1 / 0, d = 1 / 0, v = "", _, b, p, k, E, T, L, x, C;
+ for (i && (k = t[0], T = r[0], x = n[0]), i > 1 && (E = t[i - 1], L = r[i - 1], C = n[i - 1]), a = 0; a < i; a++) l = Math.max(l, t[a]), u = Math.min(u, t[a]), c = Math.max(c, r[a]), f = Math.min(f, r[a]), h = Math.max(h, n[a]), d = Math.min(d, n[a]), !_ && t[a] !== k && (_ = true, v += "x"), !b && r[a] !== T && (b = true, v += "y"), !p && n[a] !== x && (p = true, v += "z");
+ _ || (v += "x"), b || (v += "y"), p || (v += "z");
+ var M = iZ(e._x), g = iZ(e._y), P = iZ(e._z);
+ v = v.replace("x", (k > E ? "-" : "+") + "x"), v = v.replace("y", (T > L ? "-" : "+") + "y"), v = v.replace("z", (x > C ? "-" : "+") + "z");
+ var A = function() {
+ i = 0, M = [], g = [], P = [];
+ };
+ (!i || i < M.length * g.length * P.length) && A();
+ var z = function(Be) {
+ return Be === "x" ? t : Be === "y" ? r : n;
+ }, O = function(Be) {
+ return Be === "x" ? M : Be === "y" ? g : P;
+ }, U = function(Be) {
+ return Be[i - 1] < Be[0] ? -1 : 1;
+ }, G = z(v[1]), Z = z(v[3]), j = z(v[5]), N = O(v[1]).length, H = O(v[3]).length, re = O(v[5]).length, oe = false, _e = function(Be, Pe, me) {
+ return N * (H * Be + Pe) + me;
+ }, Ce = U(z(v[1])), Le = U(z(v[3])), ge = U(z(v[5]));
+ for (a = 0; a < re - 1; a++) {
+ for (o = 0; o < H - 1; o++) {
+ for (s = 0; s < N - 1; s++) {
+ var ie = _e(a, o, s), Se = _e(a, o, s + 1), Ee = _e(a, o + 1, s), Ae = _e(a + 1, o, s);
+ if ((!(G[ie] * Ce < G[Se] * Ce) || !(Z[ie] * Le < Z[Ee] * Le) || !(j[ie] * ge < j[Ae] * ge)) && (oe = true), oe) break;
+ }
+ if (oe) break;
+ }
+ if (oe) break;
+ }
+ return oe && (nZ.warn("Encountered arbitrary coordinates! Unable to input data grid."), A()), { xMin: u, yMin: f, zMin: d, xMax: l, yMax: c, zMax: h, Xs: M, Ys: g, Zs: P, len: i, fill: v };
+ }
+ function iZ(e) {
+ return nZ.distinctVals(e).vals;
+ }
+ function Jm(e, t) {
+ if (t === void 0 && (t = e.length), nZ.isTypedArray(e)) return e.subarray(0, t);
+ for (var r = [], n = 0; n < t; n++) r[n] = +e[n];
+ return r;
+ }
+ b8e.exports = { calc: WRt, filter: Jm, processGrid: x8e };
+ });
+ var aZ = ye((Ngr, w8e) => {
+ var XRt = gv(), ZRt = hF().processGrid, dF = hF().filter;
+ w8e.exports = function(t, r) {
+ r._len = Math.min(r.x.length, r.y.length, r.z.length, r.value.length), r._x = dF(r.x, r._len), r._y = dF(r.y, r._len), r._z = dF(r.z, r._len), r._value = dF(r.value, r._len);
+ var n = ZRt(r);
+ r._gridFill = n.fill, r._Xs = n.Xs, r._Ys = n.Ys, r._Zs = n.Zs, r._len = n.len;
+ for (var i = 1 / 0, a = -1 / 0, o = 0; o < r._len; o++) {
+ var s = r._value[o];
+ i = Math.min(i, s), a = Math.max(a, s);
+ }
+ r._minValues = i, r._maxValues = a, r._vMin = r.isomin === void 0 || r.isomin === null ? i : r.isomin, r._vMax = r.isomax === void 0 || r.isomax === null ? a : r.isomax, XRt(t, r, { vals: [r._vMin, r._vMax], containerStr: "", cLetter: "c" });
+ };
+ });
+ var $A = ye((Ugr, T8e) => {
+ T8e.exports = function(t, r, n, i) {
+ i = i || t.length;
+ for (var a = new Array(i), o = 0; o < i; o++) a[o] = [t[o], r[o], n[o]];
+ return a;
+ };
+ });
+ var vF = ye((Vgr, E8e) => {
+ var YRt = zd().gl_mesh3d, KRt = a1().parseColorScale, JRt = Dr().isArrayOrTypedArray, $Rt = n1(), QRt = tc().extractOpts, A8e = $A(), lk = function(e, t) {
+ for (var r = t.length - 1; r > 0; r--) {
+ var n = Math.min(t[r], t[r - 1]), i = Math.max(t[r], t[r - 1]);
+ if (i > n && n < e && e <= i) return { id: r, distRatio: (i - e) / (i - n) };
+ }
+ return { id: 0, distRatio: 0 };
+ };
+ function S8e(e, t, r) {
+ this.scene = e, this.uid = r, this.mesh = t, this.name = "", this.data = null, this.showContour = false;
+ }
+ var oZ = S8e.prototype;
+ oZ.handlePick = function(e) {
+ if (e.object === this.mesh) {
+ var t = e.data.index, r = this.data._meshX[t], n = this.data._meshY[t], i = this.data._meshZ[t], a = this.data._Ys.length, o = this.data._Zs.length, s = lk(r, this.data._Xs).id, l = lk(n, this.data._Ys).id, u = lk(i, this.data._Zs).id, c = e.index = u + o * l + o * a * s;
+ e.traceCoordinate = [this.data._meshX[c], this.data._meshY[c], this.data._meshZ[c], this.data._value[c]];
+ var f = this.data.hovertext || this.data.text;
+ return JRt(f) && f[c] !== void 0 ? e.textLabel = f[c] : f && (e.textLabel = f), true;
+ }
+ };
+ oZ.update = function(e) {
+ var t = this.scene, r = t.fullSceneLayout;
+ this.data = M8e(e);
+ function n(l, u, c, f) {
+ return u.map(function(h) {
+ return l.d2l(h, 0, f) * c;
+ });
+ }
+ var i = A8e(n(r.xaxis, e._meshX, t.dataScale[0], e.xcalendar), n(r.yaxis, e._meshY, t.dataScale[1], e.ycalendar), n(r.zaxis, e._meshZ, t.dataScale[2], e.zcalendar)), a = A8e(e._meshI, e._meshJ, e._meshK), o = { positions: i, cells: a, lightPosition: [e.lightposition.x, e.lightposition.y, e.lightposition.z], ambient: e.lighting.ambient, diffuse: e.lighting.diffuse, specular: e.lighting.specular, roughness: e.lighting.roughness, fresnel: e.lighting.fresnel, vertexNormalsEpsilon: e.lighting.vertexnormalsepsilon, faceNormalsEpsilon: e.lighting.facenormalsepsilon, opacity: e.opacity, contourEnable: e.contour.show, contourColor: $Rt(e.contour.color).slice(0, 3), contourWidth: e.contour.width, useFacetNormals: e.flatshading }, s = QRt(e);
+ o.vertexIntensity = e._meshIntensity, o.vertexIntensityBounds = [s.min, s.max], o.colormap = KRt(e), this.mesh.update(o);
+ };
+ oZ.dispose = function() {
+ this.scene.glplot.remove(this.mesh), this.mesh.dispose();
+ };
+ var eDt = ["xyz", "xzy", "yxz", "yzx", "zxy", "zyx"];
+ function M8e(e) {
+ e._meshI = [], e._meshJ = [], e._meshK = [];
+ var t = e.surface.show, r = e.spaceframe.show, n = e.surface.fill, i = e.spaceframe.fill, a = false, o = false, s = 0, l, u, c = e._Xs, f = e._Ys, h = e._Zs, d = c.length, v = f.length, _ = h.length, b = eDt.indexOf(e._gridFill.replace(/-/g, "").replace(/\+/g, "")), p = function(Qt, Gt, _t) {
+ switch (b) {
+ case 5:
+ return _t + _ * Gt + _ * v * Qt;
+ case 4:
+ return _t + _ * Qt + _ * d * Gt;
+ case 3:
+ return Gt + v * _t + v * _ * Qt;
+ case 2:
+ return Gt + v * Qt + v * d * _t;
+ case 1:
+ return Qt + d * _t + d * _ * Gt;
+ default:
+ return Qt + d * Gt + d * v * _t;
+ }
+ }, k = e._minValues, E = e._maxValues, T = e._vMin, L = e._vMax, x, C, M, g;
+ function P(Qt, Gt, _t) {
+ for (var It = g.length, mt = u; mt < It; mt++) if (Qt === x[mt] && Gt === C[mt] && _t === M[mt]) return mt;
+ return -1;
+ }
+ function A() {
+ u = l;
+ }
+ function z() {
+ x = [], C = [], M = [], g = [], l = 0, A();
+ }
+ function O(Qt, Gt, _t, It) {
+ return x.push(Qt), C.push(Gt), M.push(_t), g.push(It), l++, l - 1;
+ }
+ function U(Qt, Gt, _t) {
+ return e._meshI.push(Qt), e._meshJ.push(Gt), e._meshK.push(_t), s++, s - 1;
+ }
+ function G(Qt, Gt, _t) {
+ for (var It = [], mt = 0; mt < Qt.length; mt++) It[mt] = (Qt[mt] + Gt[mt] + _t[mt]) / 3;
+ return It;
+ }
+ function Z(Qt, Gt, _t) {
+ for (var It = [], mt = 0; mt < Qt.length; mt++) It[mt] = Qt[mt] * (1 - _t) + _t * Gt[mt];
+ return It;
+ }
+ var j;
+ function N(Qt) {
+ j = Qt;
+ }
+ function H(Qt, Gt) {
+ var _t = Qt[0], It = Qt[1], mt = Qt[2], er = G(_t, It, mt), lr = Math.sqrt(1 - j), wr = Z(er, _t, lr), Lr = Z(er, It, lr), ti = Z(er, mt, lr), Br = Gt[0], Vr = Gt[1], dt = Gt[2];
+ return { xyzv: [[_t, It, Lr], [Lr, wr, _t], [It, mt, ti], [ti, Lr, It], [mt, _t, wr], [wr, ti, mt]], abc: [[Br, Vr, -1], [-1, -1, Br], [Vr, dt, -1], [-1, -1, Vr], [dt, Br, -1], [-1, -1, dt]] };
+ }
+ function re(Qt, Gt) {
+ return Qt === "all" || Qt === null ? true : Qt.indexOf(Gt) > -1;
+ }
+ function oe(Qt, Gt) {
+ return Qt === null ? Gt : Qt;
+ }
+ function _e(Qt, Gt, _t) {
+ A();
+ var It = [Gt], mt = [_t];
+ if (j >= 1) It = [Gt], mt = [_t];
+ else if (j > 0) {
+ var er = H(Gt, _t);
+ It = er.xyzv, mt = er.abc;
+ }
+ for (var lr = 0; lr < It.length; lr++) {
+ Gt = It[lr], _t = mt[lr];
+ for (var wr = [], Lr = 0; Lr < 3; Lr++) {
+ var ti = Gt[Lr][0], Br = Gt[Lr][1], Vr = Gt[Lr][2], dt = Gt[Lr][3], Ge = _t[Lr] > -1 ? _t[Lr] : P(ti, Br, Vr);
+ Ge > -1 ? wr[Lr] = Ge : wr[Lr] = O(ti, Br, Vr, oe(Qt, dt));
+ }
+ U(wr[0], wr[1], wr[2]);
+ }
+ }
+ function Ce(Qt, Gt, _t) {
+ var It = function(mt, er, lr) {
+ _e(Qt, [Gt[mt], Gt[er], Gt[lr]], [_t[mt], _t[er], _t[lr]]);
+ };
+ It(0, 1, 2), It(2, 3, 0);
+ }
+ function Le(Qt, Gt, _t) {
+ var It = function(mt, er, lr) {
+ _e(Qt, [Gt[mt], Gt[er], Gt[lr]], [_t[mt], _t[er], _t[lr]]);
+ };
+ It(0, 1, 2), It(3, 0, 1), It(2, 3, 0), It(1, 2, 3);
+ }
+ function ge(Qt, Gt, _t, It) {
+ var mt = Qt[3];
+ mt < _t && (mt = _t), mt > It && (mt = It);
+ for (var er = (Qt[3] - mt) / (Qt[3] - Gt[3] + 1e-9), lr = [], wr = 0; wr < 4; wr++) lr[wr] = (1 - er) * Qt[wr] + er * Gt[wr];
+ return lr;
+ }
+ function ie(Qt, Gt, _t) {
+ return Qt >= Gt && Qt <= _t;
+ }
+ function Se(Qt) {
+ var Gt = 1e-3 * (L - T);
+ return Qt >= T - Gt && Qt <= L + Gt;
+ }
+ function Ee(Qt) {
+ for (var Gt = [], _t = 0; _t < 4; _t++) {
+ var It = Qt[_t];
+ Gt.push([e._x[It], e._y[It], e._z[It], e._value[It]]);
+ }
+ return Gt;
+ }
+ var Ae = 3;
+ function Be(Qt, Gt, _t, It, mt, er) {
+ er || (er = 1), _t = [-1, -1, -1];
+ var lr = false, wr = [ie(Gt[0][3], It, mt), ie(Gt[1][3], It, mt), ie(Gt[2][3], It, mt)];
+ if (!wr[0] && !wr[1] && !wr[2]) return false;
+ var Lr = function(Br, Vr, dt) {
+ return Se(Vr[0][3]) && Se(Vr[1][3]) && Se(Vr[2][3]) ? (_e(Br, Vr, dt), true) : er < Ae ? Be(Br, Vr, dt, T, L, ++er) : false;
+ };
+ if (wr[0] && wr[1] && wr[2]) return Lr(Qt, Gt, _t) || lr;
+ var ti = false;
+ return [[0, 1, 2], [2, 0, 1], [1, 2, 0]].forEach(function(Br) {
+ if (wr[Br[0]] && wr[Br[1]] && !wr[Br[2]]) {
+ var Vr = Gt[Br[0]], dt = Gt[Br[1]], Ge = Gt[Br[2]], Je = ge(Ge, Vr, It, mt), We = ge(Ge, dt, It, mt);
+ lr = Lr(Qt, [We, Je, Vr], [-1, -1, _t[Br[0]]]) || lr, lr = Lr(Qt, [Vr, dt, We], [_t[Br[0]], _t[Br[1]], -1]) || lr, ti = true;
+ }
+ }), ti || [[0, 1, 2], [1, 2, 0], [2, 0, 1]].forEach(function(Br) {
+ if (wr[Br[0]] && !wr[Br[1]] && !wr[Br[2]]) {
+ var Vr = Gt[Br[0]], dt = Gt[Br[1]], Ge = Gt[Br[2]], Je = ge(dt, Vr, It, mt), We = ge(Ge, Vr, It, mt);
+ lr = Lr(Qt, [We, Je, Vr], [-1, -1, _t[Br[0]]]) || lr, ti = true;
+ }
+ }), lr;
+ }
+ function Pe(Qt, Gt, _t, It) {
+ var mt = false, er = Ee(Gt), lr = [ie(er[0][3], _t, It), ie(er[1][3], _t, It), ie(er[2][3], _t, It), ie(er[3][3], _t, It)];
+ if (!lr[0] && !lr[1] && !lr[2] && !lr[3]) return mt;
+ if (lr[0] && lr[1] && lr[2] && lr[3]) return o && (mt = Le(Qt, er, Gt) || mt), mt;
+ var wr = false;
+ return [[0, 1, 2, 3], [3, 0, 1, 2], [2, 3, 0, 1], [1, 2, 3, 0]].forEach(function(Lr) {
+ if (lr[Lr[0]] && lr[Lr[1]] && lr[Lr[2]] && !lr[Lr[3]]) {
+ var ti = er[Lr[0]], Br = er[Lr[1]], Vr = er[Lr[2]], dt = er[Lr[3]];
+ if (o) mt = _e(Qt, [ti, Br, Vr], [Gt[Lr[0]], Gt[Lr[1]], Gt[Lr[2]]]) || mt;
+ else {
+ var Ge = ge(dt, ti, _t, It), Je = ge(dt, Br, _t, It), We = ge(dt, Vr, _t, It);
+ mt = _e(null, [Ge, Je, We], [-1, -1, -1]) || mt;
+ }
+ wr = true;
+ }
+ }), wr || ([[0, 1, 2, 3], [1, 2, 3, 0], [2, 3, 0, 1], [3, 0, 1, 2], [0, 2, 3, 1], [1, 3, 2, 0]].forEach(function(Lr) {
+ if (lr[Lr[0]] && lr[Lr[1]] && !lr[Lr[2]] && !lr[Lr[3]]) {
+ var ti = er[Lr[0]], Br = er[Lr[1]], Vr = er[Lr[2]], dt = er[Lr[3]], Ge = ge(Vr, ti, _t, It), Je = ge(Vr, Br, _t, It), We = ge(dt, Br, _t, It), tt = ge(dt, ti, _t, It);
+ o ? (mt = _e(Qt, [ti, tt, Ge], [Gt[Lr[0]], -1, -1]) || mt, mt = _e(Qt, [Br, Je, We], [Gt[Lr[1]], -1, -1]) || mt) : mt = Ce(null, [Ge, Je, We, tt], [-1, -1, -1, -1]) || mt, wr = true;
+ }
+ }), wr) || [[0, 1, 2, 3], [1, 2, 3, 0], [2, 3, 0, 1], [3, 0, 1, 2]].forEach(function(Lr) {
+ if (lr[Lr[0]] && !lr[Lr[1]] && !lr[Lr[2]] && !lr[Lr[3]]) {
+ var ti = er[Lr[0]], Br = er[Lr[1]], Vr = er[Lr[2]], dt = er[Lr[3]], Ge = ge(Br, ti, _t, It), Je = ge(Vr, ti, _t, It), We = ge(dt, ti, _t, It);
+ o ? (mt = _e(Qt, [ti, Ge, Je], [Gt[Lr[0]], -1, -1]) || mt, mt = _e(Qt, [ti, Je, We], [Gt[Lr[0]], -1, -1]) || mt, mt = _e(Qt, [ti, We, Ge], [Gt[Lr[0]], -1, -1]) || mt) : mt = _e(null, [Ge, Je, We], [-1, -1, -1]) || mt, wr = true;
+ }
+ }), mt;
+ }
+ function me(Qt, Gt, _t, It, mt, er, lr, wr, Lr, ti, Br) {
+ var Vr = false;
+ return a && (re(Qt, "A") && (Vr = Pe(null, [Gt, _t, It, er], ti, Br) || Vr), re(Qt, "B") && (Vr = Pe(null, [_t, It, mt, Lr], ti, Br) || Vr), re(Qt, "C") && (Vr = Pe(null, [_t, er, lr, Lr], ti, Br) || Vr), re(Qt, "D") && (Vr = Pe(null, [It, er, wr, Lr], ti, Br) || Vr), re(Qt, "E") && (Vr = Pe(null, [_t, It, er, Lr], ti, Br) || Vr)), o && (Vr = Pe(Qt, [_t, It, er, Lr], ti, Br) || Vr), Vr;
+ }
+ function De(Qt, Gt, _t, It, mt, er, lr, wr) {
+ return [wr[0] === true ? true : Be(Qt, Ee([Gt, _t, It]), [Gt, _t, It], er, lr), wr[1] === true ? true : Be(Qt, Ee([It, mt, Gt]), [It, mt, Gt], er, lr)];
+ }
+ function ce(Qt, Gt, _t, It, mt, er, lr, wr, Lr) {
+ return wr ? De(Qt, Gt, _t, mt, It, er, lr, Lr) : De(Qt, _t, mt, It, Gt, er, lr, Lr);
+ }
+ function je(Qt, Gt, _t, It, mt, er, lr) {
+ var wr = false, Lr, ti, Br, Vr, dt = function() {
+ wr = Be(Qt, [Lr, ti, Br], [-1, -1, -1], mt, er) || wr, wr = Be(Qt, [Br, Vr, Lr], [-1, -1, -1], mt, er) || wr;
+ }, Ge = lr[0], Je = lr[1], We = lr[2];
+ return Ge && (Lr = Z(Ee([p(Gt, _t - 0, It - 0)])[0], Ee([p(Gt - 1, _t - 0, It - 0)])[0], Ge), ti = Z(Ee([p(Gt, _t - 0, It - 1)])[0], Ee([p(Gt - 1, _t - 0, It - 1)])[0], Ge), Br = Z(Ee([p(Gt, _t - 1, It - 1)])[0], Ee([p(Gt - 1, _t - 1, It - 1)])[0], Ge), Vr = Z(Ee([p(Gt, _t - 1, It - 0)])[0], Ee([p(Gt - 1, _t - 1, It - 0)])[0], Ge), dt()), Je && (Lr = Z(Ee([p(Gt - 0, _t, It - 0)])[0], Ee([p(Gt - 0, _t - 1, It - 0)])[0], Je), ti = Z(Ee([p(Gt - 0, _t, It - 1)])[0], Ee([p(Gt - 0, _t - 1, It - 1)])[0], Je), Br = Z(Ee([p(Gt - 1, _t, It - 1)])[0], Ee([p(Gt - 1, _t - 1, It - 1)])[0], Je), Vr = Z(Ee([p(Gt - 1, _t, It - 0)])[0], Ee([p(Gt - 1, _t - 1, It - 0)])[0], Je), dt()), We && (Lr = Z(Ee([p(Gt - 0, _t - 0, It)])[0], Ee([p(Gt - 0, _t - 0, It - 1)])[0], We), ti = Z(Ee([p(Gt - 0, _t - 1, It)])[0], Ee([p(Gt - 0, _t - 1, It - 1)])[0], We), Br = Z(Ee([p(Gt - 1, _t - 1, It)])[0], Ee([p(Gt - 1, _t - 1, It - 1)])[0], We), Vr = Z(Ee([p(Gt - 1, _t - 0, It)])[0], Ee([p(Gt - 1, _t - 0, It - 1)])[0], We), dt()), wr;
+ }
+ function lt(Qt, Gt, _t, It, mt, er, lr, wr, Lr, ti, Br, Vr) {
+ var dt = Qt;
+ return Vr ? (a && Qt === "even" && (dt = null), me(dt, Gt, _t, It, mt, er, lr, wr, Lr, ti, Br)) : (a && Qt === "odd" && (dt = null), me(dt, Lr, wr, lr, er, mt, It, _t, Gt, ti, Br));
+ }
+ function pt(Qt, Gt, _t, It, mt) {
+ for (var er = [], lr = 0, wr = 0; wr < Gt.length; wr++) for (var Lr = Gt[wr], ti = 1; ti < _; ti++) for (var Br = 1; Br < v; Br++) er.push(ce(Qt, p(Lr, Br - 1, ti - 1), p(Lr, Br - 1, ti), p(Lr, Br, ti - 1), p(Lr, Br, ti), _t, It, (Lr + Br + ti) % 2, mt && mt[lr] ? mt[lr] : [])), lr++;
+ return er;
+ }
+ function Vt(Qt, Gt, _t, It, mt) {
+ for (var er = [], lr = 0, wr = 0; wr < Gt.length; wr++) for (var Lr = Gt[wr], ti = 1; ti < d; ti++) for (var Br = 1; Br < _; Br++) er.push(ce(Qt, p(ti - 1, Lr, Br - 1), p(ti, Lr, Br - 1), p(ti - 1, Lr, Br), p(ti, Lr, Br), _t, It, (ti + Lr + Br) % 2, mt && mt[lr] ? mt[lr] : [])), lr++;
+ return er;
+ }
+ function ot(Qt, Gt, _t, It, mt) {
+ for (var er = [], lr = 0, wr = 0; wr < Gt.length; wr++) for (var Lr = Gt[wr], ti = 1; ti < v; ti++) for (var Br = 1; Br < d; Br++) er.push(ce(Qt, p(Br - 1, ti - 1, Lr), p(Br - 1, ti, Lr), p(Br, ti - 1, Lr), p(Br, ti, Lr), _t, It, (Br + ti + Lr) % 2, mt && mt[lr] ? mt[lr] : [])), lr++;
+ return er;
+ }
+ function ut(Qt, Gt, _t) {
+ for (var It = 1; It < _; It++) for (var mt = 1; mt < v; mt++) for (var er = 1; er < d; er++) lt(Qt, p(er - 1, mt - 1, It - 1), p(er - 1, mt - 1, It), p(er - 1, mt, It - 1), p(er - 1, mt, It), p(er, mt - 1, It - 1), p(er, mt - 1, It), p(er, mt, It - 1), p(er, mt, It), Gt, _t, (er + mt + It) % 2);
+ }
+ function Wt(Qt, Gt, _t) {
+ o = true, ut(Qt, Gt, _t), o = false;
+ }
+ function Nt(Qt, Gt, _t) {
+ a = true, ut(Qt, Gt, _t), a = false;
+ }
+ function $t(Qt, Gt, _t, It, mt, er) {
+ for (var lr = [], wr = 0, Lr = 0; Lr < Gt.length; Lr++) for (var ti = Gt[Lr], Br = 1; Br < _; Br++) for (var Vr = 1; Vr < v; Vr++) lr.push(je(Qt, ti, Vr, Br, _t, It, mt[Lr], er && er[wr] ? er[wr] : [])), wr++;
+ return lr;
+ }
+ function sr(Qt, Gt, _t, It, mt, er) {
+ for (var lr = [], wr = 0, Lr = 0; Lr < Gt.length; Lr++) for (var ti = Gt[Lr], Br = 1; Br < d; Br++) for (var Vr = 1; Vr < _; Vr++) lr.push(je(Qt, Br, ti, Vr, _t, It, mt[Lr], er && er[wr] ? er[wr] : [])), wr++;
+ return lr;
+ }
+ function Tr(Qt, Gt, _t, It, mt, er) {
+ for (var lr = [], wr = 0, Lr = 0; Lr < Gt.length; Lr++) for (var ti = Gt[Lr], Br = 1; Br < v; Br++) for (var Vr = 1; Vr < d; Vr++) lr.push(je(Qt, Vr, Br, ti, _t, It, mt[Lr], er && er[wr] ? er[wr] : [])), wr++;
+ return lr;
+ }
+ function fr(Qt, Gt) {
+ for (var _t = [], It = Qt; It < Gt; It++) _t.push(It);
+ return _t;
+ }
+ function $e() {
+ for (var Qt = 0; Qt < d; Qt++) for (var Gt = 0; Gt < v; Gt++) for (var _t = 0; _t < _; _t++) {
+ var It = p(Qt, Gt, _t);
+ O(e._x[It], e._y[It], e._z[It], e._value[It]);
+ }
+ }
+ function St() {
+ z(), $e();
+ var Qt = null;
+ if (r && i && (N(i), Wt(Qt, T, L)), t && n) {
+ N(n);
+ for (var Gt = e.surface.pattern, _t = e.surface.count, It = 0; It < _t; It++) {
+ var mt = _t === 1 ? 0.5 : It / (_t - 1), er = (1 - mt) * T + mt * L, lr = Math.abs(er - k), wr = Math.abs(er - E), Lr = lr > wr ? [k, er] : [er, E];
+ Nt(Gt, Lr[0], Lr[1]);
+ }
+ }
+ var ti = [[Math.min(T, E), Math.max(T, E)], [Math.min(k, L), Math.max(k, L)]];
+ ["x", "y", "z"].forEach(function(Br) {
+ for (var Vr = [], dt = 0; dt < ti.length; dt++) {
+ var Ge = 0, Je = ti[dt][0], We = ti[dt][1], tt = e.slices[Br];
+ if (tt.show && tt.fill) {
+ N(tt.fill);
+ var xt = [], Ie = [], xe = [];
+ if (tt.locations.length) for (var ke = 0; ke < tt.locations.length; ke++) {
+ var vt = lk(tt.locations[ke], Br === "x" ? c : Br === "y" ? f : h);
+ vt.distRatio === 0 ? xt.push(vt.id) : vt.id > 0 && (Ie.push(vt.id), Br === "x" ? xe.push([vt.distRatio, 0, 0]) : Br === "y" ? xe.push([0, vt.distRatio, 0]) : xe.push([0, 0, vt.distRatio]));
+ }
+ else Br === "x" ? xt = fr(1, d - 1) : Br === "y" ? xt = fr(1, v - 1) : xt = fr(1, _ - 1);
+ Ie.length > 0 && (Br === "x" ? Vr[Ge] = $t(Qt, Ie, Je, We, xe, Vr[Ge]) : Br === "y" ? Vr[Ge] = sr(Qt, Ie, Je, We, xe, Vr[Ge]) : Vr[Ge] = Tr(Qt, Ie, Je, We, xe, Vr[Ge]), Ge++), xt.length > 0 && (Br === "x" ? Vr[Ge] = pt(Qt, xt, Je, We, Vr[Ge]) : Br === "y" ? Vr[Ge] = Vt(Qt, xt, Je, We, Vr[Ge]) : Vr[Ge] = ot(Qt, xt, Je, We, Vr[Ge]), Ge++);
+ }
+ var ir = e.caps[Br];
+ ir.show && ir.fill && (N(ir.fill), Br === "x" ? Vr[Ge] = pt(Qt, [0, d - 1], Je, We, Vr[Ge]) : Br === "y" ? Vr[Ge] = Vt(Qt, [0, v - 1], Je, We, Vr[Ge]) : Vr[Ge] = ot(Qt, [0, _ - 1], Je, We, Vr[Ge]), Ge++);
+ }
+ }), s === 0 && z(), e._meshX = x, e._meshY = C, e._meshZ = M, e._meshIntensity = g, e._Xs = c, e._Ys = f, e._Zs = h;
+ }
+ return St(), e;
+ }
+ function tDt(e, t) {
+ var r = e.glplot.gl, n = YRt({ gl: r }), i = new S8e(e, n, t.uid);
+ return n._trace = i, i.update(t), e.glplot.add(n), i;
+ }
+ E8e.exports = { findNearestOnAxis: lk, generateIsoMeshes: M8e, createIsosurfaceTrace: tDt };
+ });
+ var C8e = ye((Ggr, k8e) => {
+ k8e.exports = { attributes: fF(), supplyDefaults: rZ().supplyDefaults, calc: aZ(), colorbar: { min: "cmin", max: "cmax" }, plot: vF().createIsosurfaceTrace, moduleType: "trace", name: "isosurface", basePlotModule: sx(), categories: ["gl3d", "showLegend"], meta: {} };
+ });
+ var P8e = ye((Hgr, L8e) => {
+ L8e.exports = C8e();
+ });
+ var lZ = ye((jgr, R8e) => {
+ var rDt = Tu(), xh = fF(), iDt = ak(), I8e = Gl(), sZ = Ao().extendFlat, nDt = mc().overrideAll, pF = R8e.exports = nDt(sZ({ x: xh.x, y: xh.y, z: xh.z, value: xh.value, isomin: xh.isomin, isomax: xh.isomax, surface: xh.surface, spaceframe: { show: { valType: "boolean", dflt: false }, fill: { valType: "number", min: 0, max: 1, dflt: 1 } }, slices: xh.slices, caps: xh.caps, text: xh.text, hovertext: xh.hovertext, xhoverformat: xh.xhoverformat, yhoverformat: xh.yhoverformat, zhoverformat: xh.zhoverformat, valuehoverformat: xh.valuehoverformat, hovertemplate: xh.hovertemplate, hovertemplatefallback: xh.hovertemplatefallback }, rDt("", { colorAttr: "`value`", showScaleDflt: true, editTypeOverride: "calc" }), { colorbar: xh.colorbar, opacity: xh.opacity, opacityscale: iDt.opacityscale, lightposition: xh.lightposition, lighting: xh.lighting, flatshading: xh.flatshading, contour: xh.contour, hoverinfo: sZ({}, I8e.hoverinfo), showlegend: sZ({}, I8e.showlegend, { dflt: false }) }), "calc", "nested");
+ pF.x.editType = pF.y.editType = pF.z.editType = pF.value.editType = "calc+clearAxisTypes";
+ });
+ var F8e = ye((Wgr, D8e) => {
+ var aDt = Dr(), oDt = lZ(), sDt = rZ().supplyIsoDefaults, lDt = KX().opacityscaleDefaults;
+ D8e.exports = function(t, r, n, i) {
+ function a(o, s) {
+ return aDt.coerce(t, r, oDt, o, s);
+ }
+ sDt(t, r, n, i, a), lDt(t, r, i, a);
+ };
+ });
+ var B8e = ye((Xgr, q8e) => {
+ var uDt = zd().gl_mesh3d, cDt = a1().parseColorScale, fDt = Dr().isArrayOrTypedArray, hDt = n1(), dDt = tc().extractOpts, z8e = $A(), uZ = vF().findNearestOnAxis, vDt = vF().generateIsoMeshes;
+ function O8e(e, t, r) {
+ this.scene = e, this.uid = r, this.mesh = t, this.name = "", this.data = null, this.showContour = false;
+ }
+ var cZ = O8e.prototype;
+ cZ.handlePick = function(e) {
+ if (e.object === this.mesh) {
+ var t = e.data.index, r = this.data._meshX[t], n = this.data._meshY[t], i = this.data._meshZ[t], a = this.data._Ys.length, o = this.data._Zs.length, s = uZ(r, this.data._Xs).id, l = uZ(n, this.data._Ys).id, u = uZ(i, this.data._Zs).id, c = e.index = u + o * l + o * a * s;
+ e.traceCoordinate = [this.data._meshX[c], this.data._meshY[c], this.data._meshZ[c], this.data._value[c]];
+ var f = this.data.hovertext || this.data.text;
+ return fDt(f) && f[c] !== void 0 ? e.textLabel = f[c] : f && (e.textLabel = f), true;
+ }
+ };
+ cZ.update = function(e) {
+ var t = this.scene, r = t.fullSceneLayout;
+ this.data = vDt(e);
+ function n(l, u, c, f) {
+ return u.map(function(h) {
+ return l.d2l(h, 0, f) * c;
+ });
+ }
+ var i = z8e(n(r.xaxis, e._meshX, t.dataScale[0], e.xcalendar), n(r.yaxis, e._meshY, t.dataScale[1], e.ycalendar), n(r.zaxis, e._meshZ, t.dataScale[2], e.zcalendar)), a = z8e(e._meshI, e._meshJ, e._meshK), o = { positions: i, cells: a, lightPosition: [e.lightposition.x, e.lightposition.y, e.lightposition.z], ambient: e.lighting.ambient, diffuse: e.lighting.diffuse, specular: e.lighting.specular, roughness: e.lighting.roughness, fresnel: e.lighting.fresnel, vertexNormalsEpsilon: e.lighting.vertexnormalsepsilon, faceNormalsEpsilon: e.lighting.facenormalsepsilon, opacity: e.opacity, opacityscale: e.opacityscale, contourEnable: e.contour.show, contourColor: hDt(e.contour.color).slice(0, 3), contourWidth: e.contour.width, useFacetNormals: e.flatshading }, s = dDt(e);
+ o.vertexIntensity = e._meshIntensity, o.vertexIntensityBounds = [s.min, s.max], o.colormap = cDt(e), this.mesh.update(o);
+ };
+ cZ.dispose = function() {
+ this.scene.glplot.remove(this.mesh), this.mesh.dispose();
+ };
+ function pDt(e, t) {
+ var r = e.glplot.gl, n = uDt({ gl: r }), i = new O8e(e, n, t.uid);
+ return n._trace = i, i.update(t), e.glplot.add(n), i;
+ }
+ q8e.exports = pDt;
+ });
+ var U8e = ye((Zgr, N8e) => {
+ N8e.exports = { attributes: lZ(), supplyDefaults: F8e(), calc: aZ(), colorbar: { min: "cmin", max: "cmax" }, plot: B8e(), moduleType: "trace", name: "volume", basePlotModule: sx(), categories: ["gl3d", "showLegend"], meta: {} };
+ });
+ var G8e = ye((Ygr, V8e) => {
+ V8e.exports = U8e();
+ });
+ var W8e = ye((Kgr, j8e) => {
+ var gDt = qa(), H8e = Dr(), mDt = td(), yDt = KA();
+ j8e.exports = function(t, r, n, i) {
+ function a(c, f) {
+ return H8e.coerce(t, r, yDt, c, f);
+ }
+ function o(c) {
+ var f = c.map(function(h) {
+ var d = a(h);
+ return d && H8e.isArrayOrTypedArray(d) ? d : null;
+ });
+ return f.every(function(h) {
+ return h && h.length === f[0].length;
+ }) && f;
+ }
+ var s = o(["x", "y", "z"]);
+ if (!s) {
+ r.visible = false;
+ return;
+ }
+ if (o(["i", "j", "k"]), r.i && (!r.j || !r.k) || r.j && (!r.k || !r.i) || r.k && (!r.i || !r.j)) {
+ r.visible = false;
+ return;
+ }
+ var l = gDt.getComponentMethod("calendars", "handleTraceDefaults");
+ l(t, r, ["x", "y", "z"], i), ["lighting.ambient", "lighting.diffuse", "lighting.specular", "lighting.roughness", "lighting.fresnel", "lighting.vertexnormalsepsilon", "lighting.facenormalsepsilon", "lightposition.x", "lightposition.y", "lightposition.z", "flatshading", "alphahull", "delaunayaxis", "opacity"].forEach(function(c) {
+ a(c);
+ });
+ var u = a("contour.show");
+ u && (a("contour.color"), a("contour.width")), "intensity" in t ? (a("intensity"), a("intensitymode"), mDt(t, r, i, a, { prefix: "", cLetter: "c" })) : (r.showscale = false, "facecolor" in t ? a("facecolor") : "vertexcolor" in t ? a("vertexcolor") : a("color", n)), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("xhoverformat"), a("yhoverformat"), a("zhoverformat"), r._length = null;
+ };
+ });
+ var Z8e = ye((Jgr, X8e) => {
+ var _Dt = gv();
+ X8e.exports = function(t, r) {
+ r.intensity && _Dt(t, r, { vals: r.intensity, containerStr: "", cLetter: "c" });
+ };
+ });
+ var Q8e = ye(($gr, $8e) => {
+ var xDt = zd().gl_mesh3d, bDt = zd().delaunay_triangulate, wDt = zd().alpha_shape, TDt = zd().convex_hull, ADt = a1().parseColorScale, SDt = Dr().isArrayOrTypedArray, vZ = n1(), MDt = tc().extractOpts, Y8e = $A();
+ function J8e(e, t, r) {
+ this.scene = e, this.uid = r, this.mesh = t, this.name = "", this.color = "#fff", this.data = null, this.showContour = false;
+ }
+ var pZ = J8e.prototype;
+ pZ.handlePick = function(e) {
+ if (e.object === this.mesh) {
+ var t = e.index = e.data.index;
+ e.data._cellCenter ? e.traceCoordinate = e.data.dataCoordinate : e.traceCoordinate = [this.data.x[t], this.data.y[t], this.data.z[t]];
+ var r = this.data.hovertext || this.data.text;
+ return SDt(r) && r[t] !== void 0 ? e.textLabel = r[t] : r && (e.textLabel = r), true;
+ }
+ };
+ function K8e(e) {
+ for (var t = [], r = e.length, n = 0; n < r; n++) t[n] = vZ(e[n]);
+ return t;
+ }
+ function fZ(e, t, r, n) {
+ for (var i = [], a = t.length, o = 0; o < a; o++) i[o] = e.d2l(t[o], 0, n) * r;
+ return i;
+ }
+ function hZ(e) {
+ for (var t = [], r = e.length, n = 0; n < r; n++) t[n] = Math.round(e[n]);
+ return t;
+ }
+ function EDt(e, t) {
+ for (var r = ["x", "y", "z"].indexOf(e), n = [], i = t.length, a = 0; a < i; a++) n[a] = [t[a][(r + 1) % 3], t[a][(r + 2) % 3]];
+ return bDt(n);
+ }
+ function dZ(e, t) {
+ for (var r = e.length, n = 0; n < r; n++) if (e[n] <= -0.5 || e[n] >= t - 0.5) return false;
+ return true;
+ }
+ pZ.update = function(e) {
+ var t = this.scene, r = t.fullSceneLayout;
+ this.data = e;
+ var n = e.x.length, i = Y8e(fZ(r.xaxis, e.x, t.dataScale[0], e.xcalendar), fZ(r.yaxis, e.y, t.dataScale[1], e.ycalendar), fZ(r.zaxis, e.z, t.dataScale[2], e.zcalendar)), a;
+ if (e.i && e.j && e.k) {
+ if (e.i.length !== e.j.length || e.j.length !== e.k.length || !dZ(e.i, n) || !dZ(e.j, n) || !dZ(e.k, n)) return;
+ a = Y8e(hZ(e.i), hZ(e.j), hZ(e.k));
+ } else e.alphahull === 0 ? a = TDt(i) : e.alphahull > 0 ? a = wDt(e.alphahull, i) : a = EDt(e.delaunayaxis, i);
+ var o = { positions: i, cells: a, lightPosition: [e.lightposition.x, e.lightposition.y, e.lightposition.z], ambient: e.lighting.ambient, diffuse: e.lighting.diffuse, specular: e.lighting.specular, roughness: e.lighting.roughness, fresnel: e.lighting.fresnel, vertexNormalsEpsilon: e.lighting.vertexnormalsepsilon, faceNormalsEpsilon: e.lighting.facenormalsepsilon, opacity: e.opacity, contourEnable: e.contour.show, contourColor: vZ(e.contour.color).slice(0, 3), contourWidth: e.contour.width, useFacetNormals: e.flatshading };
+ if (e.intensity) {
+ var s = MDt(e);
+ this.color = "#fff";
+ var l = e.intensitymode;
+ o[l + "Intensity"] = e.intensity, o[l + "IntensityBounds"] = [s.min, s.max], o.colormap = ADt(e);
+ } else e.vertexcolor ? (this.color = e.vertexcolor[0], o.vertexColors = K8e(e.vertexcolor)) : e.facecolor ? (this.color = e.facecolor[0], o.cellColors = K8e(e.facecolor)) : (this.color = e.color, o.meshColor = vZ(e.color));
+ this.mesh.update(o);
+ };
+ pZ.dispose = function() {
+ this.scene.glplot.remove(this.mesh), this.mesh.dispose();
+ };
+ function kDt(e, t) {
+ var r = e.glplot.gl, n = xDt({ gl: r }), i = new J8e(e, n, t.uid);
+ return n._trace = i, i.update(t), e.glplot.add(n), i;
+ }
+ $8e.exports = kDt;
+ });
+ var tRe = ye((Qgr, eRe) => {
+ eRe.exports = { attributes: KA(), supplyDefaults: W8e(), calc: Z8e(), colorbar: { min: "cmin", max: "cmax" }, plot: Q8e(), moduleType: "trace", name: "mesh3d", basePlotModule: sx(), categories: ["gl3d", "showLegend"], meta: {} };
+ });
+ var iRe = ye((emr, rRe) => {
+ rRe.exports = tRe();
+ });
+ var mZ = ye((tmr, aRe) => {
+ var CDt = Tu(), QA = df().axisHoverFormat, { hovertemplateAttrs: LDt, templatefallbackAttrs: PDt } = Ll(), IDt = KA(), nRe = Gl(), gZ = Ao().extendFlat, gF = { x: { valType: "data_array", editType: "calc+clearAxisTypes" }, y: { valType: "data_array", editType: "calc+clearAxisTypes" }, z: { valType: "data_array", editType: "calc+clearAxisTypes" }, u: { valType: "data_array", editType: "calc" }, v: { valType: "data_array", editType: "calc" }, w: { valType: "data_array", editType: "calc" }, sizemode: { valType: "enumerated", values: ["scaled", "absolute", "raw"], editType: "calc", dflt: "scaled" }, sizeref: { valType: "number", editType: "calc", min: 0 }, anchor: { valType: "enumerated", editType: "calc", values: ["tip", "tail", "cm", "center"], dflt: "cm" }, text: { valType: "string", dflt: "", arrayOk: true, editType: "calc" }, hovertext: { valType: "string", dflt: "", arrayOk: true, editType: "calc" }, hovertemplate: LDt({ editType: "calc" }, { keys: ["norm"] }), hovertemplatefallback: PDt({ editType: "calc" }), uhoverformat: QA("u", 1), vhoverformat: QA("v", 1), whoverformat: QA("w", 1), xhoverformat: QA("x"), yhoverformat: QA("y"), zhoverformat: QA("z"), showlegend: gZ({}, nRe.showlegend, { dflt: false }) };
+ gZ(gF, CDt("", { colorAttr: "u/v/w norm", showScaleDflt: true, editTypeOverride: "calc" }));
+ var RDt = ["opacity", "lightposition", "lighting"];
+ RDt.forEach(function(e) {
+ gF[e] = IDt[e];
+ });
+ gF.hoverinfo = gZ({}, nRe.hoverinfo, { editType: "calc", flags: ["x", "y", "z", "u", "v", "w", "norm", "text", "name"], dflt: "x+y+z+norm+text+name" });
+ aRe.exports = gF;
+ });
+ var sRe = ye((rmr, oRe) => {
+ var DDt = Dr(), FDt = td(), zDt = mZ();
+ oRe.exports = function(t, r, n, i) {
+ function a(d, v) {
+ return DDt.coerce(t, r, zDt, d, v);
+ }
+ var o = a("u"), s = a("v"), l = a("w"), u = a("x"), c = a("y"), f = a("z");
+ if (!o || !o.length || !s || !s.length || !l || !l.length || !u || !u.length || !c || !c.length || !f || !f.length) {
+ r.visible = false;
+ return;
+ }
+ var h = a("sizemode");
+ a("sizeref", h === "raw" ? 1 : 0.5), a("anchor"), a("lighting.ambient"), a("lighting.diffuse"), a("lighting.specular"), a("lighting.roughness"), a("lighting.fresnel"), a("lightposition.x"), a("lightposition.y"), a("lightposition.z"), FDt(t, r, i, a, { prefix: "", cLetter: "c" }), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("uhoverformat"), a("vhoverformat"), a("whoverformat"), a("xhoverformat"), a("yhoverformat"), a("zhoverformat"), r._length = null;
+ };
+ });
+ var uRe = ye((imr, lRe) => {
+ var ODt = gv();
+ lRe.exports = function(t, r) {
+ for (var n = r.u, i = r.v, a = r.w, o = Math.min(r.x.length, r.y.length, r.z.length, n.length, i.length, a.length), s = -1 / 0, l = 1 / 0, u = 0; u < o; u++) {
+ var c = n[u], f = i[u], h = a[u], d = Math.sqrt(c * c + f * f + h * h);
+ s = Math.max(s, d), l = Math.min(l, d);
+ }
+ r._len = o, r._normMax = s, ODt(t, r, { vals: [l, s], containerStr: "", cLetter: "c" });
+ };
+ });
+ var vRe = ye((nmr, dRe) => {
+ var qDt = zd().gl_cone3d, BDt = zd().gl_cone3d.createConeMesh, NDt = Dr().simpleMap, UDt = a1().parseColorScale, VDt = tc().extractOpts, GDt = Dr().isArrayOrTypedArray, cRe = $A();
+ function fRe(e, t) {
+ this.scene = e, this.uid = t, this.mesh = null, this.data = null;
+ }
+ var yZ = fRe.prototype;
+ yZ.handlePick = function(e) {
+ if (e.object === this.mesh) {
+ var t = e.index = e.data.index, r = this.data.x[t], n = this.data.y[t], i = this.data.z[t], a = this.data.u[t], o = this.data.v[t], s = this.data.w[t];
+ e.traceCoordinate = [r, n, i, a, o, s, Math.sqrt(a * a + o * o + s * s)];
+ var l = this.data.hovertext || this.data.text;
+ return GDt(l) && l[t] !== void 0 ? e.textLabel = l[t] : l && (e.textLabel = l), true;
+ }
+ };
+ var HDt = { xaxis: 0, yaxis: 1, zaxis: 2 }, jDt = { tip: 1, tail: 0, cm: 0.25, center: 0.5 }, WDt = { tip: 1, tail: 1, cm: 0.75, center: 0.5 };
+ function hRe(e, t) {
+ var r = e.fullSceneLayout, n = e.dataScale, i = {};
+ function a(c, f) {
+ var h = r[f], d = n[HDt[f]];
+ return NDt(c, function(v) {
+ return h.d2l(v) * d;
+ });
+ }
+ i.vectors = cRe(a(t.u, "xaxis"), a(t.v, "yaxis"), a(t.w, "zaxis"), t._len), i.positions = cRe(a(t.x, "xaxis"), a(t.y, "yaxis"), a(t.z, "zaxis"), t._len);
+ var o = VDt(t);
+ i.colormap = UDt(t), i.vertexIntensityBounds = [o.min / t._normMax, o.max / t._normMax], i.coneOffset = jDt[t.anchor];
+ var s = t.sizemode;
+ s === "scaled" ? i.coneSize = t.sizeref || 0.5 : s === "absolute" ? i.coneSize = t.sizeref && t._normMax ? t.sizeref / t._normMax : 0.5 : s === "raw" && (i.coneSize = t.sizeref), i.coneSizemode = s;
+ var l = qDt(i), u = t.lightposition;
+ return l.lightPosition = [u.x, u.y, u.z], l.ambient = t.lighting.ambient, l.diffuse = t.lighting.diffuse, l.specular = t.lighting.specular, l.roughness = t.lighting.roughness, l.fresnel = t.lighting.fresnel, l.opacity = t.opacity, t._pad = WDt[t.anchor] * l.vectorScale * l.coneScale * t._normMax, l;
+ }
+ yZ.update = function(e) {
+ this.data = e;
+ var t = hRe(this.scene, e);
+ this.mesh.update(t);
+ };
+ yZ.dispose = function() {
+ this.scene.glplot.remove(this.mesh), this.mesh.dispose();
+ };
+ function XDt(e, t) {
+ var r = e.glplot.gl, n = hRe(e, t), i = BDt(r, n), a = new fRe(e, t.uid);
+ return a.mesh = i, a.data = t, i._trace = a, e.glplot.add(i), a;
+ }
+ dRe.exports = XDt;
+ });
+ var gRe = ye((amr, pRe) => {
+ pRe.exports = { moduleType: "trace", name: "cone", basePlotModule: sx(), categories: ["gl3d", "showLegend"], attributes: mZ(), supplyDefaults: sRe(), colorbar: { min: "cmin", max: "cmax" }, calc: uRe(), plot: vRe(), eventData: function(e, t) {
+ return e.norm = t.traceCoordinate[6], e;
+ }, meta: {} };
+ });
+ var yRe = ye((omr, mRe) => {
+ mRe.exports = gRe();
+ });
+ var xZ = ye((smr, xRe) => {
+ var ZDt = Tu(), e5 = df().axisHoverFormat, { hovertemplateAttrs: YDt, templatefallbackAttrs: KDt } = Ll(), JDt = KA(), _Re = Gl(), _Z = Ao().extendFlat, mF = { x: { valType: "data_array", editType: "calc+clearAxisTypes" }, y: { valType: "data_array", editType: "calc+clearAxisTypes" }, z: { valType: "data_array", editType: "calc+clearAxisTypes" }, u: { valType: "data_array", editType: "calc" }, v: { valType: "data_array", editType: "calc" }, w: { valType: "data_array", editType: "calc" }, starts: { x: { valType: "data_array", editType: "calc" }, y: { valType: "data_array", editType: "calc" }, z: { valType: "data_array", editType: "calc" }, editType: "calc" }, maxdisplayed: { valType: "integer", min: 0, dflt: 1e3, editType: "calc" }, sizeref: { valType: "number", editType: "calc", min: 0, dflt: 1 }, text: { valType: "string", dflt: "", editType: "calc" }, hovertext: { valType: "string", dflt: "", editType: "calc" }, hovertemplate: YDt({ editType: "calc" }, { keys: ["tubex", "tubey", "tubez", "tubeu", "tubev", "tubew", "norm", "divergence"] }), hovertemplatefallback: KDt({ editType: "calc" }), uhoverformat: e5("u", 1), vhoverformat: e5("v", 1), whoverformat: e5("w", 1), xhoverformat: e5("x"), yhoverformat: e5("y"), zhoverformat: e5("z"), showlegend: _Z({}, _Re.showlegend, { dflt: false }) };
+ _Z(mF, ZDt("", { colorAttr: "u/v/w norm", showScaleDflt: true, editTypeOverride: "calc" }));
+ var $Dt = ["opacity", "lightposition", "lighting"];
+ $Dt.forEach(function(e) {
+ mF[e] = JDt[e];
+ });
+ mF.hoverinfo = _Z({}, _Re.hoverinfo, { editType: "calc", flags: ["x", "y", "z", "u", "v", "w", "norm", "divergence", "text", "name"], dflt: "x+y+z+norm+text+name" });
+ xRe.exports = mF;
+ });
+ var wRe = ye((lmr, bRe) => {
+ var QDt = Dr(), eFt = td(), tFt = xZ();
+ bRe.exports = function(t, r, n, i) {
+ function a(h, d) {
+ return QDt.coerce(t, r, tFt, h, d);
+ }
+ var o = a("u"), s = a("v"), l = a("w"), u = a("x"), c = a("y"), f = a("z");
+ if (!o || !o.length || !s || !s.length || !l || !l.length || !u || !u.length || !c || !c.length || !f || !f.length) {
+ r.visible = false;
+ return;
+ }
+ a("starts.x"), a("starts.y"), a("starts.z"), a("maxdisplayed"), a("sizeref"), a("lighting.ambient"), a("lighting.diffuse"), a("lighting.specular"), a("lighting.roughness"), a("lighting.fresnel"), a("lightposition.x"), a("lightposition.y"), a("lightposition.z"), eFt(t, r, i, a, { prefix: "", cLetter: "c" }), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("uhoverformat"), a("vhoverformat"), a("whoverformat"), a("xhoverformat"), a("yhoverformat"), a("zhoverformat"), r._length = null;
+ };
+ });
+ var LRe = ye((umr, CRe) => {
+ var SRe = zd().gl_streamtube3d, rFt = SRe.createTubeMesh, iFt = Dr(), nFt = a1().parseColorScale, aFt = tc().extractOpts, TRe = $A(), MRe = { xaxis: 0, yaxis: 1, zaxis: 2 };
+ function ERe(e, t) {
+ this.scene = e, this.uid = t, this.mesh = null, this.data = null;
+ }
+ var wZ = ERe.prototype;
+ wZ.handlePick = function(e) {
+ var t = this.scene.fullSceneLayout, r = this.scene.dataScale;
+ function n(o, s) {
+ var l = t[s], u = r[MRe[s]];
+ return l.l2c(o) / u;
+ }
+ if (e.object === this.mesh) {
+ var i = e.data.position, a = e.data.velocity;
+ return e.traceCoordinate = [n(i[0], "xaxis"), n(i[1], "yaxis"), n(i[2], "zaxis"), n(a[0], "xaxis"), n(a[1], "yaxis"), n(a[2], "zaxis"), e.data.intensity * this.data._normMax, e.data.divergence], e.textLabel = this.data.hovertext || this.data.text, true;
+ }
+ };
+ function ARe(e) {
+ var t = e.length, r;
+ return t > 2 ? r = e.slice(1, t - 1) : t === 2 ? r = [(e[0] + e[1]) / 2] : r = e, r;
+ }
+ function bZ(e) {
+ var t = e.length;
+ return t === 1 ? [0.5, 0.5] : [e[1] - e[0], e[t - 1] - e[t - 2]];
+ }
+ function kRe(e, t) {
+ var r = e.fullSceneLayout, n = e.dataScale, i = t._len, a = {};
+ function o(z, O) {
+ var U = r[O], G = n[MRe[O]];
+ return iFt.simpleMap(z, function(Z) {
+ return U.d2l(Z) * G;
+ });
+ }
+ if (a.vectors = TRe(o(t._u, "xaxis"), o(t._v, "yaxis"), o(t._w, "zaxis"), i), !i) return { positions: [], cells: [] };
+ var s = o(t._Xs, "xaxis"), l = o(t._Ys, "yaxis"), u = o(t._Zs, "zaxis");
+ a.meshgrid = [s, l, u], a.gridFill = t._gridFill;
+ var c = t._slen;
+ if (c) a.startingPositions = TRe(o(t._startsX, "xaxis"), o(t._startsY, "yaxis"), o(t._startsZ, "zaxis"));
+ else {
+ for (var f = l[0], h = ARe(s), d = ARe(u), v = new Array(h.length * d.length), _ = 0, b = 0; b < h.length; b++) for (var p = 0; p < d.length; p++) v[_++] = [h[b], f, d[p]];
+ a.startingPositions = v;
+ }
+ a.colormap = nFt(t), a.tubeSize = t.sizeref, a.maxLength = t.maxdisplayed;
+ var k = o(t._xbnds, "xaxis"), E = o(t._ybnds, "yaxis"), T = o(t._zbnds, "zaxis"), L = bZ(s), x = bZ(l), C = bZ(u), M = [[k[0] - L[0], E[0] - x[0], T[0] - C[0]], [k[1] + L[1], E[1] + x[1], T[1] + C[1]]], g = SRe(a, M), P = aFt(t);
+ g.vertexIntensityBounds = [P.min / t._normMax, P.max / t._normMax];
+ var A = t.lightposition;
+ return g.lightPosition = [A.x, A.y, A.z], g.ambient = t.lighting.ambient, g.diffuse = t.lighting.diffuse, g.specular = t.lighting.specular, g.roughness = t.lighting.roughness, g.fresnel = t.lighting.fresnel, g.opacity = t.opacity, t._pad = g.tubeScale * t.sizeref * 2, g;
+ }
+ wZ.update = function(e) {
+ this.data = e;
+ var t = kRe(this.scene, e);
+ this.mesh.update(t);
+ };
+ wZ.dispose = function() {
+ this.scene.glplot.remove(this.mesh), this.mesh.dispose();
+ };
+ function oFt(e, t) {
+ var r = e.glplot.gl, n = kRe(e, t), i = rFt(r, n), a = new ERe(e, t.uid);
+ return a.mesh = i, a.data = t, i._trace = a, e.glplot.add(i), a;
+ }
+ CRe.exports = oFt;
+ });
+ var IRe = ye((cmr, PRe) => {
+ PRe.exports = { moduleType: "trace", name: "streamtube", basePlotModule: sx(), categories: ["gl3d", "showLegend"], attributes: xZ(), supplyDefaults: wRe(), colorbar: { min: "cmin", max: "cmax" }, calc: hF().calc, plot: LRe(), eventData: function(e, t) {
+ return e.tubex = e.x, e.tubey = e.y, e.tubez = e.z, e.tubeu = t.traceCoordinate[3], e.tubev = t.traceCoordinate[4], e.tubew = t.traceCoordinate[5], e.norm = t.traceCoordinate[6], e.divergence = t.traceCoordinate[7], delete e.x, delete e.y, delete e.z, e;
+ }, meta: {} };
+ });
+ var DRe = ye((fmr, RRe) => {
+ RRe.exports = IRe();
+ });
+ var ew = ye((dmr, BRe) => {
+ var { hovertemplateAttrs: sFt, texttemplateAttrs: lFt, templatefallbackAttrs: FRe } = Ll(), uFt = Pg(), $m = pf(), cFt = Gl(), zRe = Tu(), fFt = Pd().dash, Q2 = Ao().extendFlat, hFt = mc().overrideAll, rg = $m.marker, ORe = $m.line, qRe = rg.line;
+ BRe.exports = hFt({ lon: { valType: "data_array" }, lat: { valType: "data_array" }, locations: { valType: "data_array" }, locationmode: { valType: "enumerated", values: ["ISO-3", "USA-states", "country names", "geojson-id"], dflt: "ISO-3" }, geojson: { valType: "any", editType: "calc" }, featureidkey: { valType: "string", editType: "calc", dflt: "id" }, mode: Q2({}, $m.mode, { dflt: "markers" }), text: Q2({}, $m.text, {}), texttemplate: lFt({ editType: "plot" }, { keys: ["lat", "lon", "location", "text"] }), texttemplatefallback: FRe({ editType: "plot" }), hovertext: Q2({}, $m.hovertext, {}), textfont: $m.textfont, textposition: $m.textposition, line: { color: ORe.color, width: ORe.width, dash: fFt }, connectgaps: $m.connectgaps, marker: Q2({ symbol: rg.symbol, opacity: rg.opacity, angle: rg.angle, angleref: Q2({}, rg.angleref, { values: ["previous", "up", "north"] }), standoff: rg.standoff, size: rg.size, sizeref: rg.sizeref, sizemin: rg.sizemin, sizemode: rg.sizemode, colorbar: rg.colorbar, line: Q2({ width: qRe.width, dash: qRe.dash }, zRe("marker.line")), gradient: rg.gradient }, zRe("marker")), fill: { valType: "enumerated", values: ["none", "toself"], dflt: "none" }, fillcolor: uFt(), selected: $m.selected, unselected: $m.unselected, hoverinfo: Q2({}, cFt.hoverinfo, { flags: ["lon", "lat", "location", "text", "name"] }), hovertemplate: sFt(), hovertemplatefallback: FRe() }, "calc", "nested");
+ });
+ var URe = ye((vmr, NRe) => {
+ var yF = Dr(), TZ = Ru(), dFt = $p(), vFt = D0(), pFt = F0(), gFt = Fg(), mFt = ew(), yFt = ["The library used by the *country names* `locationmode` option is changing in the next major version.", "Some country names in existing plots may not work in the new version.", "To ensure consistent behavior, consider setting `locationmode` to *ISO-3*."].join(" ");
+ NRe.exports = function(t, r, n, i) {
+ function a(d, v) {
+ return yF.coerce(t, r, mFt, d, v);
+ }
+ var o = a("locations"), s;
+ if (o && o.length) {
+ var l = a("geojson"), u;
+ (typeof l == "string" && l !== "" || yF.isPlainObject(l)) && (u = "geojson-id");
+ var c = a("locationmode", u);
+ c === "country names" && yF.warn(yFt), c === "geojson-id" && a("featureidkey"), s = o.length;
+ } else {
+ var f = a("lon") || [], h = a("lat") || [];
+ s = Math.min(f.length, h.length);
+ }
+ if (!s) {
+ r.visible = false;
+ return;
+ }
+ r._length = s, a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("mode"), TZ.hasMarkers(r) && dFt(t, r, n, i, a, { gradient: true }), TZ.hasLines(r) && (vFt(t, r, n, i, a), a("connectgaps")), TZ.hasText(r) && (a("texttemplate"), a("texttemplatefallback"), pFt(t, r, i, a)), a("fill"), r.fill !== "none" && gFt(t, r, n, a), yF.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var HRe = ye((pmr, GRe) => {
+ var VRe = ho();
+ GRe.exports = function(t, r, n) {
+ var i = {}, a = n[r.geo]._subplot, o = a.mockAxis, s = t.lonlat;
+ return i.lonLabel = VRe.tickText(o, o.c2l(s[0]), true).text, i.latLabel = VRe.tickText(o, o.c2l(s[1]), true).text, i;
+ };
+ });
+ var _F = ye((gmr, ZRe) => {
+ var AZ = Eo(), jRe = fs().BADNUM, _Ft = z0(), xFt = Rm(), bFt = O0(), wFt = Dr().isArrayOrTypedArray, WRe = Dr()._;
+ function XRe(e) {
+ return e && typeof e == "string";
+ }
+ ZRe.exports = function(t, r) {
+ var n = wFt(r.locations), i = n ? r.locations.length : r._length, a = new Array(i), o;
+ r.geojson ? o = function(h) {
+ return XRe(h) || AZ(h);
+ } : o = XRe;
+ for (var s = 0; s < i; s++) {
+ var l = a[s] = {};
+ if (n) {
+ var u = r.locations[s];
+ l.loc = o(u) ? u : null;
+ } else {
+ var c = r.lon[s], f = r.lat[s];
+ AZ(c) && AZ(f) ? l.lonlat = [+c, +f] : l.lonlat = [jRe, jRe];
+ }
+ }
+ return xFt(a, r), _Ft(t, r), bFt(a, r), i && (a[0].t = { labels: { lat: WRe(t, "lat:") + " ", lon: WRe(t, "lon:") + " " } }), a;
+ };
+ });
+ var uk = ye((Mv) => {
+ Mv.projNames = { airy: "airy", aitoff: "aitoff", "albers usa": "albersUsa", albers: "albers", august: "august", "azimuthal equal area": "azimuthalEqualArea", "azimuthal equidistant": "azimuthalEquidistant", baker: "baker", bertin1953: "bertin1953", boggs: "boggs", bonne: "bonne", bottomley: "bottomley", bromley: "bromley", collignon: "collignon", "conic conformal": "conicConformal", "conic equal area": "conicEqualArea", "conic equidistant": "conicEquidistant", craig: "craig", craster: "craster", "cylindrical equal area": "cylindricalEqualArea", "cylindrical stereographic": "cylindricalStereographic", eckert1: "eckert1", eckert2: "eckert2", eckert3: "eckert3", eckert4: "eckert4", eckert5: "eckert5", eckert6: "eckert6", eisenlohr: "eisenlohr", "equal earth": "equalEarth", equirectangular: "equirectangular", fahey: "fahey", "foucaut sinusoidal": "foucautSinusoidal", foucaut: "foucaut", ginzburg4: "ginzburg4", ginzburg5: "ginzburg5", ginzburg6: "ginzburg6", ginzburg8: "ginzburg8", ginzburg9: "ginzburg9", gnomonic: "gnomonic", "gringorten quincuncial": "gringortenQuincuncial", gringorten: "gringorten", guyou: "guyou", hammer: "hammer", hill: "hill", homolosine: "homolosine", hufnagel: "hufnagel", hyperelliptical: "hyperelliptical", kavrayskiy7: "kavrayskiy7", lagrange: "lagrange", larrivee: "larrivee", laskowski: "laskowski", loximuthal: "loximuthal", mercator: "mercator", miller: "miller", mollweide: "mollweide", "mt flat polar parabolic": "mtFlatPolarParabolic", "mt flat polar quartic": "mtFlatPolarQuartic", "mt flat polar sinusoidal": "mtFlatPolarSinusoidal", "natural earth": "naturalEarth", "natural earth1": "naturalEarth1", "natural earth2": "naturalEarth2", "nell hammer": "nellHammer", nicolosi: "nicolosi", orthographic: "orthographic", patterson: "patterson", "peirce quincuncial": "peirceQuincuncial", polyconic: "polyconic", "rectangular polyconic": "rectangularPolyconic", robinson: "robinson", satellite: "satellite", "sinu mollweide": "sinuMollweide", sinusoidal: "sinusoidal", stereographic: "stereographic", times: "times", "transverse mercator": "transverseMercator", "van der grinten": "vanDerGrinten", "van der grinten2": "vanDerGrinten2", "van der grinten3": "vanDerGrinten3", "van der grinten4": "vanDerGrinten4", wagner4: "wagner4", wagner6: "wagner6", wiechel: "wiechel", "winkel tripel": "winkel3", winkel3: "winkel3" };
+ Mv.axesNames = ["lonaxis", "lataxis"];
+ Mv.lonaxisSpan = { orthographic: 180, "azimuthal equal area": 360, "azimuthal equidistant": 360, "conic conformal": 180, gnomonic: 160, stereographic: 180, "transverse mercator": 180, "*": 360 };
+ Mv.lataxisSpan = { "conic conformal": 150, stereographic: 179.5, "*": 180 };
+ Mv.scopeDefaults = { world: { lonaxisRange: [-180, 180], lataxisRange: [-90, 90], projType: "equirectangular", projRotate: [0, 0, 0] }, usa: { lonaxisRange: [-180, -50], lataxisRange: [15, 80], projType: "albers usa" }, europe: { lonaxisRange: [-30, 60], lataxisRange: [30, 85], projType: "conic conformal", projRotate: [15, 0, 0], projParallels: [0, 60] }, asia: { lonaxisRange: [22, 160], lataxisRange: [-15, 55], projType: "mercator", projRotate: [0, 0, 0] }, africa: { lonaxisRange: [-30, 60], lataxisRange: [-40, 40], projType: "mercator", projRotate: [0, 0, 0] }, "north america": { lonaxisRange: [-180, -45], lataxisRange: [5, 85], projType: "conic conformal", projRotate: [-100, 0, 0], projParallels: [29.5, 45.5] }, "south america": { lonaxisRange: [-100, -30], lataxisRange: [-60, 15], projType: "mercator", projRotate: [0, 0, 0] }, antarctica: { lonaxisRange: [-180, 180], lataxisRange: [-90, -60], projType: "equirectangular", projRotate: [0, 0, 0] }, oceania: { lonaxisRange: [-180, 180], lataxisRange: [-50, 25], projType: "equirectangular", projRotate: [0, 0, 0] } };
+ Mv.clipPad = 1e-3;
+ Mv.precision = 0.1;
+ Mv.landColor = "#F0DC82";
+ Mv.waterColor = "#3399FF";
+ Mv.locationmodeToLayer = { "ISO-3": "countries", "USA-states": "subunits", "country names": "countries" };
+ Mv.sphereSVG = { type: "Sphere" };
+ Mv.fillLayers = { ocean: 1, land: 1, lakes: 1 };
+ Mv.lineLayers = { subunits: 1, countries: 1, coastlines: 1, rivers: 1, frame: 1 };
+ Mv.layers = ["bg", "ocean", "land", "lakes", "subunits", "countries", "coastlines", "rivers", "lataxis", "lonaxis", "frame", "backplot", "frontplot"];
+ Mv.layersForChoropleth = ["bg", "ocean", "land", "subunits", "countries", "coastlines", "lataxis", "lonaxis", "frame", "backplot", "rivers", "lakes", "frontplot"];
+ Mv.layerNameToAdjective = { ocean: "ocean", land: "land", lakes: "lake", subunits: "subunit", countries: "country", coastlines: "coastline", rivers: "river", frame: "frame" };
+ });
+ var SZ = ye((xF, YRe) => {
+ (function(e, t) {
+ typeof xF == "object" && typeof YRe != "undefined" ? t(xF) : (e = e || self, t(e.topojson = e.topojson || {}));
+ })(xF, function(e) {
+ function t(E) {
+ return E;
+ }
+ function r(E) {
+ if (E == null) return t;
+ var T, L, x = E.scale[0], C = E.scale[1], M = E.translate[0], g = E.translate[1];
+ return function(P, A) {
+ A || (T = L = 0);
+ var z = 2, O = P.length, U = new Array(O);
+ for (U[0] = (T += P[0]) * x + M, U[1] = (L += P[1]) * C + g; z < O; ) U[z] = P[z], ++z;
+ return U;
+ };
+ }
+ function n(E) {
+ var T = r(E.transform), L, x = 1 / 0, C = x, M = -x, g = -x;
+ function P(z) {
+ z = T(z), z[0] < x && (x = z[0]), z[0] > M && (M = z[0]), z[1] < C && (C = z[1]), z[1] > g && (g = z[1]);
+ }
+ function A(z) {
+ switch (z.type) {
+ case "GeometryCollection":
+ z.geometries.forEach(A);
+ break;
+ case "Point":
+ P(z.coordinates);
+ break;
+ case "MultiPoint":
+ z.coordinates.forEach(P);
+ break;
+ }
+ }
+ E.arcs.forEach(function(z) {
+ for (var O = -1, U = z.length, G; ++O < U; ) G = T(z[O], O), G[0] < x && (x = G[0]), G[0] > M && (M = G[0]), G[1] < C && (C = G[1]), G[1] > g && (g = G[1]);
+ });
+ for (L in E.objects) A(E.objects[L]);
+ return [x, C, M, g];
+ }
+ function i(E, T) {
+ for (var L, x = E.length, C = x - T; C < --x; ) L = E[C], E[C++] = E[x], E[x] = L;
+ }
+ function a(E, T) {
+ return typeof T == "string" && (T = E.objects[T]), T.type === "GeometryCollection" ? { type: "FeatureCollection", features: T.geometries.map(function(L) {
+ return o(E, L);
+ }) } : o(E, T);
+ }
+ function o(E, T) {
+ var L = T.id, x = T.bbox, C = T.properties == null ? {} : T.properties, M = s(E, T);
+ return L == null && x == null ? { type: "Feature", properties: C, geometry: M } : x == null ? { type: "Feature", id: L, properties: C, geometry: M } : { type: "Feature", id: L, bbox: x, properties: C, geometry: M };
+ }
+ function s(E, T) {
+ var L = r(E.transform), x = E.arcs;
+ function C(O, U) {
+ U.length && U.pop();
+ for (var G = x[O < 0 ? ~O : O], Z = 0, j = G.length; Z < j; ++Z) U.push(L(G[Z], Z));
+ O < 0 && i(U, j);
+ }
+ function M(O) {
+ return L(O);
+ }
+ function g(O) {
+ for (var U = [], G = 0, Z = O.length; G < Z; ++G) C(O[G], U);
+ return U.length < 2 && U.push(U[0]), U;
+ }
+ function P(O) {
+ for (var U = g(O); U.length < 4; ) U.push(U[0]);
+ return U;
+ }
+ function A(O) {
+ return O.map(P);
+ }
+ function z(O) {
+ var U = O.type, G;
+ switch (U) {
+ case "GeometryCollection":
+ return { type: U, geometries: O.geometries.map(z) };
+ case "Point":
+ G = M(O.coordinates);
+ break;
+ case "MultiPoint":
+ G = O.coordinates.map(M);
+ break;
+ case "LineString":
+ G = g(O.arcs);
+ break;
+ case "MultiLineString":
+ G = O.arcs.map(g);
+ break;
+ case "Polygon":
+ G = A(O.arcs);
+ break;
+ case "MultiPolygon":
+ G = O.arcs.map(A);
+ break;
+ default:
+ return null;
+ }
+ return { type: U, coordinates: G };
+ }
+ return z(T);
+ }
+ function l(E, T) {
+ var L = {}, x = {}, C = {}, M = [], g = -1;
+ T.forEach(function(z, O) {
+ var U = E.arcs[z < 0 ? ~z : z], G;
+ U.length < 3 && !U[1][0] && !U[1][1] && (G = T[++g], T[g] = z, T[O] = G);
+ }), T.forEach(function(z) {
+ var O = P(z), U = O[0], G = O[1], Z, j;
+ if (Z = C[U]) if (delete C[Z.end], Z.push(z), Z.end = G, j = x[G]) {
+ delete x[j.start];
+ var N = j === Z ? Z : Z.concat(j);
+ x[N.start = Z.start] = C[N.end = j.end] = N;
+ } else x[Z.start] = C[Z.end] = Z;
+ else if (Z = x[G]) if (delete x[Z.start], Z.unshift(z), Z.start = U, j = C[U]) {
+ delete C[j.end];
+ var H = j === Z ? Z : j.concat(Z);
+ x[H.start = j.start] = C[H.end = Z.end] = H;
+ } else x[Z.start] = C[Z.end] = Z;
+ else Z = [z], x[Z.start = U] = C[Z.end = G] = Z;
+ });
+ function P(z) {
+ var O = E.arcs[z < 0 ? ~z : z], U = O[0], G;
+ return E.transform ? (G = [0, 0], O.forEach(function(Z) {
+ G[0] += Z[0], G[1] += Z[1];
+ })) : G = O[O.length - 1], z < 0 ? [G, U] : [U, G];
+ }
+ function A(z, O) {
+ for (var U in z) {
+ var G = z[U];
+ delete O[G.start], delete G.start, delete G.end, G.forEach(function(Z) {
+ L[Z < 0 ? ~Z : Z] = 1;
+ }), M.push(G);
+ }
+ }
+ return A(C, x), A(x, C), T.forEach(function(z) {
+ L[z < 0 ? ~z : z] || M.push([z]);
+ }), M;
+ }
+ function u(E) {
+ return s(E, c.apply(this, arguments));
+ }
+ function c(E, T, L) {
+ var x, C, M;
+ if (arguments.length > 1) x = f(E, T, L);
+ else for (C = 0, x = new Array(M = E.arcs.length); C < M; ++C) x[C] = C;
+ return { type: "MultiLineString", arcs: l(E, x) };
+ }
+ function f(E, T, L) {
+ var x = [], C = [], M;
+ function g(U) {
+ var G = U < 0 ? ~U : U;
+ (C[G] || (C[G] = [])).push({ i: U, g: M });
+ }
+ function P(U) {
+ U.forEach(g);
+ }
+ function A(U) {
+ U.forEach(P);
+ }
+ function z(U) {
+ U.forEach(A);
+ }
+ function O(U) {
+ switch (M = U, U.type) {
+ case "GeometryCollection":
+ U.geometries.forEach(O);
+ break;
+ case "LineString":
+ P(U.arcs);
+ break;
+ case "MultiLineString":
+ case "Polygon":
+ A(U.arcs);
+ break;
+ case "MultiPolygon":
+ z(U.arcs);
+ break;
+ }
+ }
+ return O(T), C.forEach(L == null ? function(U) {
+ x.push(U[0].i);
+ } : function(U) {
+ L(U[0].g, U[U.length - 1].g) && x.push(U[0].i);
+ }), x;
+ }
+ function h(E) {
+ for (var T = -1, L = E.length, x, C = E[L - 1], M = 0; ++T < L; ) x = C, C = E[T], M += x[0] * C[1] - x[1] * C[0];
+ return Math.abs(M);
+ }
+ function d(E) {
+ return s(E, v.apply(this, arguments));
+ }
+ function v(E, T) {
+ var L = {}, x = [], C = [];
+ T.forEach(M);
+ function M(A) {
+ switch (A.type) {
+ case "GeometryCollection":
+ A.geometries.forEach(M);
+ break;
+ case "Polygon":
+ g(A.arcs);
+ break;
+ case "MultiPolygon":
+ A.arcs.forEach(g);
+ break;
+ }
+ }
+ function g(A) {
+ A.forEach(function(z) {
+ z.forEach(function(O) {
+ (L[O = O < 0 ? ~O : O] || (L[O] = [])).push(A);
+ });
+ }), x.push(A);
+ }
+ function P(A) {
+ return h(s(E, { type: "Polygon", arcs: [A] }).coordinates[0]);
+ }
+ return x.forEach(function(A) {
+ if (!A._) {
+ var z = [], O = [A];
+ for (A._ = 1, C.push(z); A = O.pop(); ) z.push(A), A.forEach(function(U) {
+ U.forEach(function(G) {
+ L[G < 0 ? ~G : G].forEach(function(Z) {
+ Z._ || (Z._ = 1, O.push(Z));
+ });
+ });
+ });
+ }
+ }), x.forEach(function(A) {
+ delete A._;
+ }), { type: "MultiPolygon", arcs: C.map(function(A) {
+ var z = [], O;
+ if (A.forEach(function(N) {
+ N.forEach(function(H) {
+ H.forEach(function(re) {
+ L[re < 0 ? ~re : re].length < 2 && z.push(re);
+ });
+ });
+ }), z = l(E, z), (O = z.length) > 1) for (var U = 1, G = P(z[0]), Z, j; U < O; ++U) (Z = P(z[U])) > G && (j = z[0], z[0] = z[U], z[U] = j, G = Z);
+ return z;
+ }).filter(function(A) {
+ return A.length > 0;
+ }) };
+ }
+ function _(E, T) {
+ for (var L = 0, x = E.length; L < x; ) {
+ var C = L + x >>> 1;
+ E[C] < T ? L = C + 1 : x = C;
+ }
+ return L;
+ }
+ function b(E) {
+ var T = {}, L = E.map(function() {
+ return [];
+ });
+ function x(N, H) {
+ N.forEach(function(re) {
+ re < 0 && (re = ~re);
+ var oe = T[re];
+ oe ? oe.push(H) : T[re] = [H];
+ });
+ }
+ function C(N, H) {
+ N.forEach(function(re) {
+ x(re, H);
+ });
+ }
+ function M(N, H) {
+ N.type === "GeometryCollection" ? N.geometries.forEach(function(re) {
+ M(re, H);
+ }) : N.type in g && g[N.type](N.arcs, H);
+ }
+ var g = { LineString: x, MultiLineString: C, Polygon: C, MultiPolygon: function(N, H) {
+ N.forEach(function(re) {
+ C(re, H);
+ });
+ } };
+ E.forEach(M);
+ for (var P in T) for (var A = T[P], z = A.length, O = 0; O < z; ++O) for (var U = O + 1; U < z; ++U) {
+ var G = A[O], Z = A[U], j;
+ (j = L[G])[P = _(j, Z)] !== Z && j.splice(P, 0, Z), (j = L[Z])[P = _(j, G)] !== G && j.splice(P, 0, G);
+ }
+ return L;
+ }
+ function p(E) {
+ if (E == null) return t;
+ var T, L, x = E.scale[0], C = E.scale[1], M = E.translate[0], g = E.translate[1];
+ return function(P, A) {
+ A || (T = L = 0);
+ var z = 2, O = P.length, U = new Array(O), G = Math.round((P[0] - M) / x), Z = Math.round((P[1] - g) / C);
+ for (U[0] = G - T, T = G, U[1] = Z - L, L = Z; z < O; ) U[z] = P[z], ++z;
+ return U;
+ };
+ }
+ function k(E, T) {
+ if (E.transform) throw new Error("already quantized");
+ if (!T || !T.scale) {
+ if (!((g = Math.floor(T)) >= 2)) throw new Error("n must be ≥2");
+ A = E.bbox || n(E);
+ var L = A[0], x = A[1], C = A[2], M = A[3], g;
+ T = { scale: [C - L ? (C - L) / (g - 1) : 1, M - x ? (M - x) / (g - 1) : 1], translate: [L, x] };
+ } else A = E.bbox;
+ var P = p(T), A, z, O = E.objects, U = {};
+ function G(N) {
+ return P(N);
+ }
+ function Z(N) {
+ var H;
+ switch (N.type) {
+ case "GeometryCollection":
+ H = { type: "GeometryCollection", geometries: N.geometries.map(Z) };
+ break;
+ case "Point":
+ H = { type: "Point", coordinates: G(N.coordinates) };
+ break;
+ case "MultiPoint":
+ H = { type: "MultiPoint", coordinates: N.coordinates.map(G) };
+ break;
+ default:
+ return N;
+ }
+ return N.id != null && (H.id = N.id), N.bbox != null && (H.bbox = N.bbox), N.properties != null && (H.properties = N.properties), H;
+ }
+ function j(N) {
+ var H = 0, re = 1, oe = N.length, _e, Ce = new Array(oe);
+ for (Ce[0] = P(N[0], 0); ++H < oe; ) ((_e = P(N[H], H))[0] || _e[1]) && (Ce[re++] = _e);
+ return re === 1 && (Ce[re++] = [0, 0]), Ce.length = re, Ce;
+ }
+ for (z in O) U[z] = Z(O[z]);
+ return { type: "Topology", bbox: A, transform: T, objects: U, arcs: E.arcs.map(j) };
+ }
+ e.bbox = n, e.feature = a, e.merge = d, e.mergeArcs = v, e.mesh = u, e.meshArcs = c, e.neighbors = b, e.quantize = k, e.transform = r, e.untransform = p, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var bF = ye((ymr, KRe) => {
+ var MZ = KRe.exports = {}, TFt = uk().locationmodeToLayer, AFt = SZ().feature;
+ MZ.getTopojsonName = function(e) {
+ return [e.scope.replace(/ /g, "-"), "_", e.resolution.toString(), "m"].join("");
+ };
+ MZ.getTopojsonPath = function(e, t) {
+ return e += e.endsWith("/") ? "" : "/", `${e}${t}.json`;
+ };
+ MZ.getTopojsonFeatures = function(e, t) {
+ var r = TFt[e.locationmode], n = t.objects[r];
+ return AFt(t, n).features;
+ };
+ });
+ var cx = ye((ck) => {
+ var SFt = fs().BADNUM;
+ ck.calcTraceToLineCoords = function(e) {
+ for (var t = e[0].trace, r = t.connectgaps, n = [], i = [], a = 0; a < e.length; a++) {
+ var o = e[a], s = o.lonlat;
+ s[0] !== SFt ? i.push(s) : !r && i.length > 0 && (n.push(i), i = []);
+ }
+ return i.length > 0 && n.push(i), n;
+ };
+ ck.makeLine = function(e) {
+ return e.length === 1 ? { type: "LineString", coordinates: e[0] } : { type: "MultiLineString", coordinates: e };
+ };
+ ck.makePolygon = function(e) {
+ if (e.length === 1) return { type: "Polygon", coordinates: e };
+ for (var t = new Array(e.length), r = 0; r < e.length; r++) t[r] = [e[r]];
+ return { type: "MultiPolygon", coordinates: t };
+ };
+ ck.makeBlank = function() {
+ return { type: "Point", coordinates: [] };
+ };
+ });
+ var $Re = ye((xmr, JRe) => {
+ JRe.exports = { AFG: "afghan", ALA: "\\b\\wland", ALB: "albania", DZA: "algeria", ASM: "^(?=.*americ).*samoa", AND: "andorra", AGO: "angola", AIA: "anguill?a", ATA: "antarctica", ATG: "antigua", ARG: "argentin", ARM: "armenia", ABW: "^(?!.*bonaire).*\\baruba", AUS: "australia", AUT: "^(?!.*hungary).*austria|\\baustri.*\\bemp", AZE: "azerbaijan", BHS: "bahamas", BHR: "bahrain", BGD: "bangladesh|^(?=.*east).*paki?stan", BRB: "barbados", BLR: "belarus|byelo", BEL: "^(?!.*luxem).*belgium", BLZ: "belize|^(?=.*british).*honduras", BEN: "benin|dahome", BMU: "bermuda", BTN: "bhutan", BOL: "bolivia", BES: "^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands", BIH: "herzegovina|bosnia", BWA: "botswana|bechuana", BVT: "bouvet", BRA: "brazil", IOT: "british.?indian.?ocean", BRN: "brunei", BGR: "bulgaria", BFA: "burkina|\\bfaso|upper.?volta", BDI: "burundi", CPV: "verde", KHM: "cambodia|kampuchea|khmer", CMR: "cameroon", CAN: "canada", CYM: "cayman", CAF: "\\bcentral.african.republic", TCD: "\\bchad", CHL: "\\bchile", CHN: "^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china", CXR: "christmas", CCK: "\\bcocos|keeling", COL: "colombia", COM: "comoro", COG: "^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo", COK: "\\bcook", CRI: "costa.?rica", CIV: "ivoire|ivory", HRV: "croatia", CUB: "\\bcuba", CUW: "^(?!.*bonaire).*\\bcura(c|ç)ao", CYP: "cyprus", CSK: "czechoslovakia", CZE: "^(?=.*rep).*czech|czechia|bohemia", COD: "\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc", DNK: "denmark", DJI: "djibouti", DMA: "dominica(?!n)", DOM: "dominican.rep", ECU: "ecuador", EGY: "egypt", SLV: "el.?salvador", GNQ: "guine.*eq|eq.*guine|^(?=.*span).*guinea", ERI: "eritrea", EST: "estonia", ETH: "ethiopia|abyssinia", FLK: "falkland|malvinas", FRO: "faroe|faeroe", FJI: "fiji", FIN: "finland", FRA: "^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul", GUF: "^(?=.*french).*guiana", PYF: "french.?polynesia|tahiti", ATF: "french.?southern", GAB: "gabon", GMB: "gambia", GEO: "^(?!.*south).*georgia", DDR: "german.?democratic.?republic|democratic.?republic.*germany|east.germany", DEU: "^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german", GHA: "ghana|gold.?coast", GIB: "gibraltar", GRC: "greece|hellenic|hellas", GRL: "greenland", GRD: "grenada", GLP: "guadeloupe", GUM: "\\bguam", GTM: "guatemala", GGY: "guernsey", GIN: "^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea", GNB: "bissau|^(?=.*portu).*guinea", GUY: "guyana|british.?guiana", HTI: "haiti", HMD: "heard.*mcdonald", VAT: "holy.?see|vatican|papal.?st", HND: "^(?!.*brit).*honduras", HKG: "hong.?kong", HUN: "^(?!.*austr).*hungary", ISL: "iceland", IND: "india(?!.*ocea)", IDN: "indonesia", IRN: "\\biran|persia", IRQ: "\\biraq|mesopotamia", IRL: "(^ireland)|(^republic.*ireland)", IMN: "^(?=.*isle).*\\bman", ISR: "israel", ITA: "italy", JAM: "jamaica", JPN: "japan", JEY: "jersey", JOR: "jordan", KAZ: "kazak", KEN: "kenya|british.?east.?africa|east.?africa.?prot", KIR: "kiribati", PRK: "^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)", KWT: "kuwait", KGZ: "kyrgyz|kirghiz", LAO: "\\blaos?\\b", LVA: "latvia", LBN: "lebanon", LSO: "lesotho|basuto", LBR: "liberia", LBY: "libya", LIE: "liechtenstein", LTU: "lithuania", LUX: "^(?!.*belg).*luxem", MAC: "maca(o|u)", MDG: "madagascar|malagasy", MWI: "malawi|nyasa", MYS: "malaysia", MDV: "maldive", MLI: "\\bmali\\b", MLT: "\\bmalta", MHL: "marshall", MTQ: "martinique", MRT: "mauritania", MUS: "mauritius", MYT: "\\bmayotte", MEX: "\\bmexic", FSM: "fed.*micronesia|micronesia.*fed", MCO: "monaco", MNG: "mongolia", MNE: "^(?!.*serbia).*montenegro", MSR: "montserrat", MAR: "morocco|\\bmaroc", MOZ: "mozambique", MMR: "myanmar|burma", NAM: "namibia", NRU: "nauru", NPL: "nepal", NLD: "^(?!.*\\bant)(?!.*\\bcarib).*netherlands", ANT: "^(?=.*\\bant).*(nether|dutch)", NCL: "new.?caledonia", NZL: "new.?zealand", NIC: "nicaragua", NER: "\\bniger(?!ia)", NGA: "nigeria", NIU: "niue", NFK: "norfolk", MNP: "mariana", NOR: "norway", OMN: "\\boman|trucial", PAK: "^(?!.*east).*paki?stan", PLW: "palau", PSE: "palestin|\\bgaza|west.?bank", PAN: "panama", PNG: "papua|new.?guinea", PRY: "paraguay", PER: "peru", PHL: "philippines", PCN: "pitcairn", POL: "poland", PRT: "portugal", PRI: "puerto.?rico", QAT: "qatar", KOR: "^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)", MDA: "moldov|b(a|e)ssarabia", REU: "r(e|é)union", ROU: "r(o|u|ou)mania", RUS: "\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics", RWA: "rwanda", BLM: "barth(e|é)lemy", SHN: "helena", KNA: "kitts|\\bnevis", LCA: "\\blucia", MAF: "^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)", SPM: "miquelon", VCT: "vincent", WSM: "^(?!.*amer).*samoa", SMR: "san.?marino", STP: "\\bs(a|ã)o.?tom(e|é)", SAU: "\\bsa\\w*.?arabia", SEN: "senegal", SRB: "^(?!.*monte).*serbia", SYC: "seychell", SLE: "sierra", SGP: "singapore", SXM: "^(?!.*martin)(?!.*saba).*maarten", SVK: "^(?!.*cze).*slovak", SVN: "slovenia", SLB: "solomon", SOM: "somali", ZAF: "south.africa|s\\\\..?africa", SGS: "south.?georgia|sandwich", SSD: "\\bs\\w*.?sudan", ESP: "spain", LKA: "sri.?lanka|ceylon", SDN: "^(?!.*\\bs(?!u)).*sudan", SUR: "surinam|dutch.?guiana", SJM: "svalbard", SWZ: "swaziland", SWE: "sweden", CHE: "switz|swiss", SYR: "syria", TWN: "taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china", TJK: "tajik", THA: "thailand|\\bsiam", MKD: "macedonia|fyrom", TLS: "^(?=.*leste).*timor|^(?=.*east).*timor", TGO: "togo", TKL: "tokelau", TON: "tonga", TTO: "trinidad|tobago", TUN: "tunisia", TUR: "turkey", TKM: "turkmen", TCA: "turks", TUV: "tuvalu", UGA: "uganda", UKR: "ukrain", ARE: "emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em", GBR: "united.?kingdom|britain|^u\\.?k\\.?$", TZA: "tanzania", USA: "united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)", UMI: "minor.?outlying.?is", URY: "uruguay", UZB: "uzbek", VUT: "vanuatu|new.?hebrides", VEN: "venezuela", VNM: "^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam", VGB: "^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin", VIR: "^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin", WLF: "futuna|wallis", ESH: "western.sahara", YEM: "^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen", YMD: "^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen", YUG: "yugoslavia", ZMB: "zambia|northern.?rhodesia", EAZ: "zanzibar", ZWE: "zimbabwe|^(?!.*northern).*rhodesia" };
+ });
+ var AF = ye((ic) => {
+ Object.defineProperty(ic, "__esModule", { value: true });
+ var Op = 63710088e-1, kZ = { centimeters: Op * 100, centimetres: Op * 100, degrees: 360 / (2 * Math.PI), feet: Op * 3.28084, inches: Op * 39.37, kilometers: Op / 1e3, kilometres: Op / 1e3, meters: Op, metres: Op, miles: Op / 1609.344, millimeters: Op * 1e3, millimetres: Op * 1e3, nauticalmiles: Op / 1852, radians: 1, yards: Op * 1.0936 }, EZ = { acres: 247105e-9, centimeters: 1e4, centimetres: 1e4, feet: 10.763910417, hectares: 1e-4, inches: 1550.003100006, kilometers: 1e-6, kilometres: 1e-6, meters: 1, metres: 1, miles: 386e-9, nauticalmiles: 29155334959812285e-23, millimeters: 1e6, millimetres: 1e6, yards: 1.195990046 };
+ function fx(e, t, r = {}) {
+ let n = { type: "Feature" };
+ return (r.id === 0 || r.id) && (n.id = r.id), r.bbox && (n.bbox = r.bbox), n.properties = t || {}, n.geometry = e, n;
+ }
+ function MFt(e, t, r = {}) {
+ switch (e) {
+ case "Point":
+ return CZ(t).geometry;
+ case "LineString":
+ return PZ(t).geometry;
+ case "Polygon":
+ return LZ(t).geometry;
+ case "MultiPoint":
+ return eDe(t).geometry;
+ case "MultiLineString":
+ return QRe(t).geometry;
+ case "MultiPolygon":
+ return tDe(t).geometry;
+ default:
+ throw new Error(e + " is invalid");
+ }
+ }
+ function CZ(e, t, r = {}) {
+ if (!e) throw new Error("coordinates is required");
+ if (!Array.isArray(e)) throw new Error("coordinates must be an Array");
+ if (e.length < 2) throw new Error("coordinates must be at least 2 numbers long");
+ if (!wF(e[0]) || !wF(e[1])) throw new Error("coordinates must contain numbers");
+ return fx({ type: "Point", coordinates: e }, t, r);
+ }
+ function EFt(e, t, r = {}) {
+ return TF(e.map((n) => CZ(n, t)), r);
+ }
+ function LZ(e, t, r = {}) {
+ for (let i of e) {
+ if (i.length < 4) throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");
+ if (i[i.length - 1].length !== i[0].length) throw new Error("First and last Position are not equivalent.");
+ for (let a = 0; a < i[i.length - 1].length; a++) if (i[i.length - 1][a] !== i[0][a]) throw new Error("First and last Position are not equivalent.");
+ }
+ return fx({ type: "Polygon", coordinates: e }, t, r);
+ }
+ function kFt(e, t, r = {}) {
+ return TF(e.map((n) => LZ(n, t)), r);
+ }
+ function PZ(e, t, r = {}) {
+ if (e.length < 2) throw new Error("coordinates must be an array of two or more positions");
+ return fx({ type: "LineString", coordinates: e }, t, r);
+ }
+ function CFt(e, t, r = {}) {
+ return TF(e.map((n) => PZ(n, t)), r);
+ }
+ function TF(e, t = {}) {
+ let r = { type: "FeatureCollection" };
+ return t.id && (r.id = t.id), t.bbox && (r.bbox = t.bbox), r.features = e, r;
+ }
+ function QRe(e, t, r = {}) {
+ return fx({ type: "MultiLineString", coordinates: e }, t, r);
+ }
+ function eDe(e, t, r = {}) {
+ return fx({ type: "MultiPoint", coordinates: e }, t, r);
+ }
+ function tDe(e, t, r = {}) {
+ return fx({ type: "MultiPolygon", coordinates: e }, t, r);
+ }
+ function LFt(e, t, r = {}) {
+ return fx({ type: "GeometryCollection", geometries: e }, t, r);
+ }
+ function PFt(e, t = 0) {
+ if (t && !(t >= 0)) throw new Error("precision must be a positive number");
+ let r = Math.pow(10, t || 0);
+ return Math.round(e * r) / r;
+ }
+ function rDe(e, t = "kilometers") {
+ let r = kZ[t];
+ if (!r) throw new Error(t + " units is invalid");
+ return e * r;
+ }
+ function IZ(e, t = "kilometers") {
+ let r = kZ[t];
+ if (!r) throw new Error(t + " units is invalid");
+ return e / r;
+ }
+ function IFt(e, t) {
+ return iDe(IZ(e, t));
+ }
+ function RFt(e) {
+ let t = e % 360;
+ return t < 0 && (t += 360), t;
+ }
+ function DFt(e) {
+ return e = e % 360, e > 180 ? e - 360 : e < -180 ? e + 360 : e;
+ }
+ function iDe(e) {
+ return e % (2 * Math.PI) * 180 / Math.PI;
+ }
+ function FFt(e) {
+ return e % 360 * Math.PI / 180;
+ }
+ function zFt(e, t = "kilometers", r = "kilometers") {
+ if (!(e >= 0)) throw new Error("length must be a positive number");
+ return rDe(IZ(e, t), r);
+ }
+ function OFt(e, t = "meters", r = "kilometers") {
+ if (!(e >= 0)) throw new Error("area must be a positive number");
+ let n = EZ[t];
+ if (!n) throw new Error("invalid original units");
+ let i = EZ[r];
+ if (!i) throw new Error("invalid final units");
+ return e / n * i;
+ }
+ function wF(e) {
+ return !isNaN(e) && e !== null && !Array.isArray(e);
+ }
+ function qFt(e) {
+ return e !== null && typeof e == "object" && !Array.isArray(e);
+ }
+ function BFt(e) {
+ if (!e) throw new Error("bbox is required");
+ if (!Array.isArray(e)) throw new Error("bbox must be an Array");
+ if (e.length !== 4 && e.length !== 6) throw new Error("bbox must be an Array of 4 or 6 numbers");
+ e.forEach((t) => {
+ if (!wF(t)) throw new Error("bbox must only contain numbers");
+ });
+ }
+ function NFt(e) {
+ if (!e) throw new Error("id is required");
+ if (["string", "number"].indexOf(typeof e) === -1) throw new Error("id must be a number or a string");
+ }
+ ic.areaFactors = EZ;
+ ic.azimuthToBearing = DFt;
+ ic.bearingToAzimuth = RFt;
+ ic.convertArea = OFt;
+ ic.convertLength = zFt;
+ ic.degreesToRadians = FFt;
+ ic.earthRadius = Op;
+ ic.factors = kZ;
+ ic.feature = fx;
+ ic.featureCollection = TF;
+ ic.geometry = MFt;
+ ic.geometryCollection = LFt;
+ ic.isNumber = wF;
+ ic.isObject = qFt;
+ ic.lengthToDegrees = IFt;
+ ic.lengthToRadians = IZ;
+ ic.lineString = PZ;
+ ic.lineStrings = CFt;
+ ic.multiLineString = QRe;
+ ic.multiPoint = eDe;
+ ic.multiPolygon = tDe;
+ ic.point = CZ;
+ ic.points = EFt;
+ ic.polygon = LZ;
+ ic.polygons = kFt;
+ ic.radiansToDegrees = iDe;
+ ic.radiansToLength = rDe;
+ ic.round = PFt;
+ ic.validateBBox = BFt;
+ ic.validateId = NFt;
+ });
+ var MF = ye((Od) => {
+ Object.defineProperty(Od, "__esModule", { value: true });
+ var Wv = AF();
+ function fk(e, t, r) {
+ if (e !== null) for (var n, i, a, o, s, l, u, c = 0, f = 0, h, d = e.type, v = d === "FeatureCollection", _ = d === "Feature", b = v ? e.features.length : 1, p = 0; p < b; p++) {
+ u = v ? e.features[p].geometry : _ ? e.geometry : e, h = u ? u.type === "GeometryCollection" : false, s = h ? u.geometries.length : 1;
+ for (var k = 0; k < s; k++) {
+ var E = 0, T = 0;
+ if (o = h ? u.geometries[k] : u, o !== null) {
+ l = o.coordinates;
+ var L = o.type;
+ switch (c = r && (L === "Polygon" || L === "MultiPolygon") ? 1 : 0, L) {
+ case null:
+ break;
+ case "Point":
+ if (t(l, f, p, E, T) === false) return false;
+ f++, E++;
+ break;
+ case "LineString":
+ case "MultiPoint":
+ for (n = 0; n < l.length; n++) {
+ if (t(l[n], f, p, E, T) === false) return false;
+ f++, L === "MultiPoint" && E++;
+ }
+ L === "LineString" && E++;
+ break;
+ case "Polygon":
+ case "MultiLineString":
+ for (n = 0; n < l.length; n++) {
+ for (i = 0; i < l[n].length - c; i++) {
+ if (t(l[n][i], f, p, E, T) === false) return false;
+ f++;
+ }
+ L === "MultiLineString" && E++, L === "Polygon" && T++;
+ }
+ L === "Polygon" && E++;
+ break;
+ case "MultiPolygon":
+ for (n = 0; n < l.length; n++) {
+ for (T = 0, i = 0; i < l[n].length; i++) {
+ for (a = 0; a < l[n][i].length - c; a++) {
+ if (t(l[n][i][a], f, p, E, T) === false) return false;
+ f++;
+ }
+ T++;
+ }
+ E++;
+ }
+ break;
+ case "GeometryCollection":
+ for (n = 0; n < o.geometries.length; n++) if (fk(o.geometries[n], t, r) === false) return false;
+ break;
+ default:
+ throw new Error("Unknown Geometry Type");
+ }
+ }
+ }
+ }
+ }
+ function UFt(e, t, r, n) {
+ var i = r;
+ return fk(e, function(a, o, s, l, u) {
+ o === 0 && r === void 0 ? i = a : i = t(i, a, o, s, l, u);
+ }, n), i;
+ }
+ function nDe(e, t) {
+ var r;
+ switch (e.type) {
+ case "FeatureCollection":
+ for (r = 0; r < e.features.length && t(e.features[r].properties, r) !== false; r++) ;
+ break;
+ case "Feature":
+ t(e.properties, 0);
+ break;
+ }
+ }
+ function VFt(e, t, r) {
+ var n = r;
+ return nDe(e, function(i, a) {
+ a === 0 && r === void 0 ? n = i : n = t(n, i, a);
+ }), n;
+ }
+ function aDe(e, t) {
+ if (e.type === "Feature") t(e, 0);
+ else if (e.type === "FeatureCollection") for (var r = 0; r < e.features.length && t(e.features[r], r) !== false; r++) ;
+ }
+ function GFt(e, t, r) {
+ var n = r;
+ return aDe(e, function(i, a) {
+ a === 0 && r === void 0 ? n = i : n = t(n, i, a);
+ }), n;
+ }
+ function HFt(e) {
+ var t = [];
+ return fk(e, function(r) {
+ t.push(r);
+ }), t;
+ }
+ function RZ(e, t) {
+ var r, n, i, a, o, s, l, u, c, f, h = 0, d = e.type === "FeatureCollection", v = e.type === "Feature", _ = d ? e.features.length : 1;
+ for (r = 0; r < _; r++) {
+ for (s = d ? e.features[r].geometry : v ? e.geometry : e, u = d ? e.features[r].properties : v ? e.properties : {}, c = d ? e.features[r].bbox : v ? e.bbox : void 0, f = d ? e.features[r].id : v ? e.id : void 0, l = s ? s.type === "GeometryCollection" : false, o = l ? s.geometries.length : 1, i = 0; i < o; i++) {
+ if (a = l ? s.geometries[i] : s, a === null) {
+ if (t(null, h, u, c, f) === false) return false;
+ continue;
+ }
+ switch (a.type) {
+ case "Point":
+ case "LineString":
+ case "MultiPoint":
+ case "Polygon":
+ case "MultiLineString":
+ case "MultiPolygon": {
+ if (t(a, h, u, c, f) === false) return false;
+ break;
+ }
+ case "GeometryCollection": {
+ for (n = 0; n < a.geometries.length; n++) if (t(a.geometries[n], h, u, c, f) === false) return false;
+ break;
+ }
+ default:
+ throw new Error("Unknown Geometry Type");
+ }
+ }
+ h++;
+ }
+ }
+ function jFt(e, t, r) {
+ var n = r;
+ return RZ(e, function(i, a, o, s, l) {
+ a === 0 && r === void 0 ? n = i : n = t(n, i, a, o, s, l);
+ }), n;
+ }
+ function SF(e, t) {
+ RZ(e, function(r, n, i, a, o) {
+ var s = r === null ? null : r.type;
+ switch (s) {
+ case null:
+ case "Point":
+ case "LineString":
+ case "Polygon":
+ return t(Wv.feature.call(void 0, r, i, { bbox: a, id: o }), n, 0) === false ? false : void 0;
+ }
+ var l;
+ switch (s) {
+ case "MultiPoint":
+ l = "Point";
+ break;
+ case "MultiLineString":
+ l = "LineString";
+ break;
+ case "MultiPolygon":
+ l = "Polygon";
+ break;
+ }
+ for (var u = 0; u < r.coordinates.length; u++) {
+ var c = r.coordinates[u], f = { type: l, coordinates: c };
+ if (t(Wv.feature.call(void 0, f, i), n, u) === false) return false;
+ }
+ });
+ }
+ function WFt(e, t, r) {
+ var n = r;
+ return SF(e, function(i, a, o) {
+ a === 0 && o === 0 && r === void 0 ? n = i : n = t(n, i, a, o);
+ }), n;
+ }
+ function oDe(e, t) {
+ SF(e, function(r, n, i) {
+ var a = 0;
+ if (r.geometry) {
+ var o = r.geometry.type;
+ if (!(o === "Point" || o === "MultiPoint")) {
+ var s, l = 0, u = 0, c = 0;
+ if (fk(r, function(f, h, d, v, _) {
+ if (s === void 0 || n > l || v > u || _ > c) {
+ s = f, l = n, u = v, c = _, a = 0;
+ return;
+ }
+ var b = Wv.lineString.call(void 0, [s, f], r.properties);
+ if (t(b, n, i, _, a) === false) return false;
+ a++, s = f;
+ }) === false) return false;
+ }
+ }
+ });
+ }
+ function XFt(e, t, r) {
+ var n = r, i = false;
+ return oDe(e, function(a, o, s, l, u) {
+ i === false && r === void 0 ? n = a : n = t(n, a, o, s, l, u), i = true;
+ }), n;
+ }
+ function sDe(e, t) {
+ if (!e) throw new Error("geojson is required");
+ SF(e, function(r, n, i) {
+ if (r.geometry !== null) {
+ var a = r.geometry.type, o = r.geometry.coordinates;
+ switch (a) {
+ case "LineString":
+ if (t(r, n, i, 0, 0) === false) return false;
+ break;
+ case "Polygon":
+ for (var s = 0; s < o.length; s++) if (t(Wv.lineString.call(void 0, o[s], r.properties), n, i, s) === false) return false;
+ break;
+ }
+ }
+ });
+ }
+ function ZFt(e, t, r) {
+ var n = r;
+ return sDe(e, function(i, a, o, s) {
+ a === 0 && r === void 0 ? n = i : n = t(n, i, a, o, s);
+ }), n;
+ }
+ function YFt(e, t) {
+ if (t = t || {}, !Wv.isObject.call(void 0, t)) throw new Error("options is invalid");
+ var r = t.featureIndex || 0, n = t.multiFeatureIndex || 0, i = t.geometryIndex || 0, a = t.segmentIndex || 0, o = t.properties, s;
+ switch (e.type) {
+ case "FeatureCollection":
+ r < 0 && (r = e.features.length + r), o = o || e.features[r].properties, s = e.features[r].geometry;
+ break;
+ case "Feature":
+ o = o || e.properties, s = e.geometry;
+ break;
+ case "Point":
+ case "MultiPoint":
+ return null;
+ case "LineString":
+ case "Polygon":
+ case "MultiLineString":
+ case "MultiPolygon":
+ s = e;
+ break;
+ default:
+ throw new Error("geojson is invalid");
+ }
+ if (s === null) return null;
+ var l = s.coordinates;
+ switch (s.type) {
+ case "Point":
+ case "MultiPoint":
+ return null;
+ case "LineString":
+ return a < 0 && (a = l.length + a - 1), Wv.lineString.call(void 0, [l[a], l[a + 1]], o, t);
+ case "Polygon":
+ return i < 0 && (i = l.length + i), a < 0 && (a = l[i].length + a - 1), Wv.lineString.call(void 0, [l[i][a], l[i][a + 1]], o, t);
+ case "MultiLineString":
+ return n < 0 && (n = l.length + n), a < 0 && (a = l[n].length + a - 1), Wv.lineString.call(void 0, [l[n][a], l[n][a + 1]], o, t);
+ case "MultiPolygon":
+ return n < 0 && (n = l.length + n), i < 0 && (i = l[n].length + i), a < 0 && (a = l[n][i].length - a - 1), Wv.lineString.call(void 0, [l[n][i][a], l[n][i][a + 1]], o, t);
+ }
+ throw new Error("geojson is invalid");
+ }
+ function KFt(e, t) {
+ if (t = t || {}, !Wv.isObject.call(void 0, t)) throw new Error("options is invalid");
+ var r = t.featureIndex || 0, n = t.multiFeatureIndex || 0, i = t.geometryIndex || 0, a = t.coordIndex || 0, o = t.properties, s;
+ switch (e.type) {
+ case "FeatureCollection":
+ r < 0 && (r = e.features.length + r), o = o || e.features[r].properties, s = e.features[r].geometry;
+ break;
+ case "Feature":
+ o = o || e.properties, s = e.geometry;
+ break;
+ case "Point":
+ case "MultiPoint":
+ return null;
+ case "LineString":
+ case "Polygon":
+ case "MultiLineString":
+ case "MultiPolygon":
+ s = e;
+ break;
+ default:
+ throw new Error("geojson is invalid");
+ }
+ if (s === null) return null;
+ var l = s.coordinates;
+ switch (s.type) {
+ case "Point":
+ return Wv.point.call(void 0, l, o, t);
+ case "MultiPoint":
+ return n < 0 && (n = l.length + n), Wv.point.call(void 0, l[n], o, t);
+ case "LineString":
+ return a < 0 && (a = l.length + a), Wv.point.call(void 0, l[a], o, t);
+ case "Polygon":
+ return i < 0 && (i = l.length + i), a < 0 && (a = l[i].length + a), Wv.point.call(void 0, l[i][a], o, t);
+ case "MultiLineString":
+ return n < 0 && (n = l.length + n), a < 0 && (a = l[n].length + a), Wv.point.call(void 0, l[n][a], o, t);
+ case "MultiPolygon":
+ return n < 0 && (n = l.length + n), i < 0 && (i = l[n].length + i), a < 0 && (a = l[n][i].length - a), Wv.point.call(void 0, l[n][i][a], o, t);
+ }
+ throw new Error("geojson is invalid");
+ }
+ Od.coordAll = HFt;
+ Od.coordEach = fk;
+ Od.coordReduce = UFt;
+ Od.featureEach = aDe;
+ Od.featureReduce = GFt;
+ Od.findPoint = KFt;
+ Od.findSegment = YFt;
+ Od.flattenEach = SF;
+ Od.flattenReduce = WFt;
+ Od.geomEach = RZ;
+ Od.geomReduce = jFt;
+ Od.lineEach = sDe;
+ Od.lineReduce = ZFt;
+ Od.propEach = nDe;
+ Od.propReduce = VFt;
+ Od.segmentEach = oDe;
+ Od.segmentReduce = XFt;
+ });
+ var hDe = ye((EF) => {
+ Object.defineProperty(EF, "__esModule", { value: true });
+ var lDe = AF(), JFt = MF();
+ function fDe(e) {
+ return JFt.geomReduce.call(void 0, e, (t, r) => t + $Ft(r), 0);
+ }
+ function $Ft(e) {
+ let t = 0, r;
+ switch (e.type) {
+ case "Polygon":
+ return uDe(e.coordinates);
+ case "MultiPolygon":
+ for (r = 0; r < e.coordinates.length; r++) t += uDe(e.coordinates[r]);
+ return t;
+ case "Point":
+ case "MultiPoint":
+ case "LineString":
+ case "MultiLineString":
+ return 0;
+ }
+ return 0;
+ }
+ function uDe(e) {
+ let t = 0;
+ if (e && e.length > 0) {
+ t += Math.abs(cDe(e[0]));
+ for (let r = 1; r < e.length; r++) t -= Math.abs(cDe(e[r]));
+ }
+ return t;
+ }
+ var QFt = lDe.earthRadius * lDe.earthRadius / 2, DZ = Math.PI / 180;
+ function cDe(e) {
+ let t = e.length - 1;
+ if (t <= 2) return 0;
+ let r = 0, n = 0;
+ for (; n < t; ) {
+ let i = e[n], a = e[n + 1 === t ? 0 : n + 1], o = e[n + 2 >= t ? (n + 2) % t : n + 2], s = i[0] * DZ, l = a[1] * DZ, u = o[0] * DZ;
+ r += (u - s) * Math.sin(l), n++;
+ }
+ return r * QFt;
+ }
+ var ezt = fDe;
+ EF.area = fDe;
+ EF.default = ezt;
+ });
+ var vDe = ye((kF) => {
+ Object.defineProperty(kF, "__esModule", { value: true });
+ var tzt = AF(), rzt = MF();
+ function dDe(e, t = {}) {
+ let r = 0, n = 0, i = 0;
+ return rzt.coordEach.call(void 0, e, function(a) {
+ r += a[0], n += a[1], i++;
+ }, true), tzt.point.call(void 0, [r / i, n / i], t.properties);
+ }
+ var izt = dDe;
+ kF.centroid = dDe;
+ kF.default = izt;
+ });
+ var gDe = ye((CF) => {
+ Object.defineProperty(CF, "__esModule", { value: true });
+ var nzt = MF();
+ function pDe(e, t = {}) {
+ if (e.bbox != null && t.recompute !== true) return e.bbox;
+ let r = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
+ return nzt.coordEach.call(void 0, e, (n) => {
+ r[0] > n[0] && (r[0] = n[0]), r[1] > n[1] && (r[1] = n[1]), r[2] < n[0] && (r[2] = n[0]), r[3] < n[1] && (r[3] = n[1]);
+ }), r;
+ }
+ var azt = pDe;
+ CF.bbox = pDe;
+ CF.default = azt;
+ });
+ var hx = ye((Mmr, bDe) => {
+ var ozt = Oa(), _De = $Re(), { area: szt } = hDe(), { centroid: lzt } = vDe(), { bbox: uzt } = gDe(), mDe = ZS(), t5 = K1(), czt = Ty(), fzt = FS(), LF = FM(), yDe = Object.keys(_De), hzt = { "ISO-3": mDe, "USA-states": mDe, "country names": dzt };
+ function dzt(e) {
+ for (var t = 0; t < yDe.length; t++) {
+ var r = yDe[t], n = new RegExp(_De[r]);
+ if (n.test(e.trim().toLowerCase())) return r;
+ }
+ return t5.log("Unrecognized country name: " + e + "."), false;
+ }
+ function vzt(e, t, r) {
+ if (!t || typeof t != "string") return false;
+ var n = hzt[e](t), i, a, o;
+ if (n) {
+ if (e === "USA-states") for (i = [], o = 0; o < r.length; o++) a = r[o], a.properties && a.properties.gu && a.properties.gu === "USA" && i.push(a);
+ else i = r;
+ for (o = 0; o < i.length; o++) if (a = i[o], a.id === n) return a;
+ t5.log(["Location with id", n, "does not have a matching topojson feature at this resolution."].join(" "));
+ }
+ return false;
+ }
+ function pzt(e) {
+ var t = e.geometry, r = t.coordinates, n = e.id, i = [], a, o, s, l;
+ function u(c) {
+ for (var f = 0; f < c.length - 1; f++) if (c[f][0] > 0 && c[f + 1][0] < 0) return f;
+ return null;
+ }
+ switch (n === "RUS" || n === "FJI" ? a = function(c) {
+ var f;
+ if (u(c) === null) f = c;
+ else for (f = new Array(c.length), l = 0; l < c.length; l++) f[l] = [c[l][0] < 0 ? c[l][0] + 360 : c[l][0], c[l][1]];
+ i.push(LF.tester(f));
+ } : n === "ATA" ? a = function(c) {
+ var f = u(c);
+ if (f === null) return i.push(LF.tester(c));
+ var h = new Array(c.length + 1), d = 0;
+ for (l = 0; l < c.length; l++) l > f ? h[d++] = [c[l][0] + 360, c[l][1]] : l === f ? (h[d++] = c[l], h[d++] = [c[l][0], -90]) : h[d++] = c[l];
+ var v = LF.tester(h);
+ v.pts.pop(), i.push(v);
+ } : a = function(c) {
+ i.push(LF.tester(c));
+ }, t.type) {
+ case "MultiPolygon":
+ for (o = 0; o < r.length; o++) for (s = 0; s < r[o].length; s++) a(r[o][s]);
+ break;
+ case "Polygon":
+ for (o = 0; o < r.length; o++) a(r[o]);
+ break;
+ }
+ return i;
+ }
+ function xDe(e) {
+ var t = e.geojson, r = window.PlotlyGeoAssets || {}, n = typeof t == "string" ? r[t] : t;
+ return czt(n) ? n : (t5.error("Oops ... something went wrong when fetching " + t), false);
+ }
+ function gzt(e) {
+ var t = e[0].trace, r = xDe(t);
+ if (!r) return false;
+ var n = {}, i = [], a;
+ for (a = 0; a < t._length; a++) {
+ var o = e[a];
+ (o.loc || o.loc === 0) && (n[o.loc] = o);
+ }
+ function s(c) {
+ var f = fzt(c, t.featureidkey || "id").get(), h = n[f];
+ if (h) {
+ var d = c.geometry;
+ if (d.type === "Polygon" || d.type === "MultiPolygon") {
+ var v = { type: "Feature", id: f, geometry: d, properties: {} };
+ v.geometry.coordinates.length > 0 ? v.properties.ct = mzt(v) : v.properties.ct = [NaN, NaN], h.fIn = c, h.fOut = v, i.push(v);
+ } else t5.log(["Location", h.loc, "does not have a valid GeoJSON geometry.", "Traces with locationmode *geojson-id* only support", "*Polygon* and *MultiPolygon* geometries."].join(" "));
+ }
+ delete n[f];
+ }
+ switch (r.type) {
+ case "FeatureCollection":
+ var l = r.features;
+ for (a = 0; a < l.length; a++) s(l[a]);
+ break;
+ case "Feature":
+ s(r);
+ break;
+ default:
+ return t5.warn(["Invalid GeoJSON type", (r.type || "none") + ".", "Traces with locationmode *geojson-id* only support", "*FeatureCollection* and *Feature* types."].join(" ")), false;
+ }
+ for (var u in n) t5.log(["Location *" + u + "*", "does not have a matching feature with id-key", "*" + t.featureidkey + "*."].join(" "));
+ return i;
+ }
+ function mzt(e) {
+ var t = e.geometry, r;
+ if (t.type === "MultiPolygon") for (var n = t.coordinates, i = 0, a = 0; a < n.length; a++) {
+ var o = { type: "Polygon", coordinates: n[a] }, s = szt(o);
+ s > i && (i = s, r = o);
+ }
+ else r = t;
+ return lzt(r).geometry.coordinates;
+ }
+ function yzt(e) {
+ var t = window.PlotlyGeoAssets || {}, r = [];
+ function n(l) {
+ return new Promise(function(u, c) {
+ ozt.json(l, function(f, h) {
+ if (f) {
+ delete t[l];
+ var d = f.status === 404 ? 'GeoJSON at URL "' + l + '" does not exist.' : "Unexpected error while fetching from " + l;
+ return c(new Error(d));
+ }
+ return t[l] = h, u(h);
+ });
+ });
+ }
+ function i(l) {
+ return new Promise(function(u, c) {
+ var f = 0, h = setInterval(function() {
+ if (t[l] && t[l] !== "pending") return clearInterval(h), u(t[l]);
+ if (f > 100) return clearInterval(h), c("Unexpected error while fetching from " + l);
+ f++;
+ }, 50);
+ });
+ }
+ for (var a = 0; a < e.length; a++) {
+ var o = e[a][0].trace, s = o.geojson;
+ typeof s == "string" && (t[s] ? t[s] === "pending" && r.push(i(s)) : (t[s] = "pending", r.push(n(s))));
+ }
+ return r;
+ }
+ function _zt(e) {
+ return uzt(e);
+ }
+ bDe.exports = { locationToFeature: vzt, feature2polygons: pzt, getTraceGeojson: xDe, extractTraceFeature: gzt, fetchTraceGeoData: yzt, computeBbox: _zt };
+ });
+ var FZ = ye((Emr, ADe) => {
+ var xzt = Oa(), bzt = So(), wDe = ka(), TDe = sp(), wzt = TDe.stylePoints, Tzt = TDe.styleText;
+ ADe.exports = function(t, r) {
+ r && Azt(t, r);
+ };
+ function Azt(e, t) {
+ var r = t[0].trace, n = t[0].node3;
+ n.style("opacity", t[0].trace.opacity), wzt(n, r, e), Tzt(n, r, e), n.selectAll("path.js-line").style("fill", "none").each(function(i) {
+ var a = xzt.select(this), o = i.trace, s = o.line || {};
+ a.call(wDe.stroke, s.color).call(bzt.dashLine, s.dash || "", s.width || 0), o.fill !== "none" && a.call(wDe.fill, o.fillcolor);
+ });
+ }
+ });
+ var BZ = ye((kmr, EDe) => {
+ var SDe = Oa(), IF = Dr(), Szt = bF().getTopojsonFeatures, zZ = cx(), PF = hx(), MDe = Mg().findExtremes, qZ = fs().BADNUM, Mzt = q0().calcMarkerSize, OZ = Ru(), Ezt = FZ();
+ function kzt(e, t, r) {
+ var n = t.layers.frontplot.select(".scatterlayer"), i = IF.makeTraceGroups(n, r, "trace scattergeo");
+ function a(o, s) {
+ o.lonlat[0] === qZ && SDe.select(s).remove();
+ }
+ i.selectAll("*").remove(), i.each(function(o) {
+ var s = SDe.select(this), l = o[0].trace;
+ if (OZ.hasLines(l) || l.fill !== "none") {
+ var u = zZ.calcTraceToLineCoords(o), c = l.fill !== "none" ? zZ.makePolygon(u) : zZ.makeLine(u);
+ s.selectAll("path.js-line").data([{ geojson: c, trace: l }]).enter().append("path").classed("js-line", true).style("stroke-miterlimit", 2);
+ }
+ OZ.hasMarkers(l) && s.selectAll("path.point").data(IF.identity).enter().append("path").classed("point", true).each(function(f) {
+ a(f, this);
+ }), OZ.hasText(l) && s.selectAll("g").data(IF.identity).enter().append("g").append("text").each(function(f) {
+ a(f, this);
+ }), Ezt(e, o);
+ });
+ }
+ function Czt(e, t) {
+ var r = e[0].trace, n = t[r.geo], i = n._subplot, a = r._length, o, s;
+ if (IF.isArrayOrTypedArray(r.locations)) {
+ var l = r.locationmode, u = l === "geojson-id" ? PF.extractTraceFeature(e) : Szt(r, i.topojson);
+ for (o = 0; o < a; o++) {
+ s = e[o];
+ var c = l === "geojson-id" ? s.fOut : PF.locationToFeature(l, s.loc, u);
+ s.lonlat = c ? c.properties.ct : [qZ, qZ];
+ }
+ }
+ var f = { padded: true }, h, d;
+ if (n.fitbounds === "geojson" && r.locationmode === "geojson-id") {
+ var v = PF.computeBbox(PF.getTraceGeojson(r));
+ h = [v[0], v[2]], d = [v[1], v[3]];
+ } else {
+ for (h = new Array(a), d = new Array(a), o = 0; o < a; o++) s = e[o], h[o] = s.lonlat[0], d[o] = s.lonlat[1];
+ f.ppad = Mzt(r, a);
+ }
+ r._extremes.lon = MDe(n.lonaxis._ax, h, f), r._extremes.lat = MDe(n.lataxis._ax, d, f);
+ }
+ EDe.exports = { calcGeoJSON: Czt, plot: kzt };
+ });
+ var CDe = ye((Cmr, kDe) => {
+ var Lzt = vf(), Pzt = fs().BADNUM, Izt = gT(), Rzt = Dr().fillText, Dzt = ew();
+ kDe.exports = function(t, r, n) {
+ var i = t.cd, a = i[0].trace, o = t.xa, s = t.ya, l = t.subplot, u = l.projection.isLonLatOverEdges, c = l.project;
+ function f(k) {
+ var E = k.lonlat;
+ if (E[0] === Pzt || u(E)) return 1 / 0;
+ var T = c(E), L = c([r, n]), x = Math.abs(T[0] - L[0]), C = Math.abs(T[1] - L[1]), M = Math.max(3, k.mrc || 0);
+ return Math.max(Math.sqrt(x * x + C * C) - M, 1 - 3 / M);
+ }
+ if (Lzt.getClosest(i, f, t), t.index !== false) {
+ var h = i[t.index], d = h.lonlat, v = [o.c2p(d), s.c2p(d)], _ = h.mrc || 1;
+ t.x0 = v[0] - _, t.x1 = v[0] + _, t.y0 = v[1] - _, t.y1 = v[1] + _, t.loc = h.loc, t.lon = d[0], t.lat = d[1];
+ var b = {};
+ b[a.geo] = { _subplot: l };
+ var p = a._module.formatLabels(h, a, b);
+ return t.lonLabel = p.lonLabel, t.latLabel = p.latLabel, t.color = Izt(a, h), t.extraText = Fzt(a, h, t, i[0].t.labels), t.hovertemplate = a.hovertemplate, [t];
+ }
+ };
+ function Fzt(e, t, r, n) {
+ if (e.hovertemplate) return;
+ var i = t.hi || e.hoverinfo, a = i === "all" ? Dzt.hoverinfo.flags : i.split("+"), o = a.indexOf("location") !== -1 && Array.isArray(e.locations), s = a.indexOf("lon") !== -1, l = a.indexOf("lat") !== -1, u = a.indexOf("text") !== -1, c = [];
+ function f(h) {
+ return h + "°";
+ }
+ return o ? c.push(t.loc) : s && l ? c.push("(" + f(r.latLabel) + ", " + f(r.lonLabel) + ")") : s ? c.push(n.lon + f(r.lonLabel)) : l && c.push(n.lat + f(r.latLabel)), u && Rzt(t, e, c), c.join(" ");
+ }
+ });
+ var PDe = ye((Lmr, LDe) => {
+ LDe.exports = function(t, r, n, i, a) {
+ t.lon = r.lon, t.lat = r.lat, t.location = r.loc ? r.loc : null;
+ var o = i[a];
+ return o.fIn && o.fIn.properties && (t.properties = o.fIn.properties), t;
+ };
+ });
+ var DDe = ye((Pmr, RDe) => {
+ var IDe = Ru(), zzt = fs().BADNUM;
+ RDe.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = [], s = n[0].trace, l, u, c, f, h, d = !IDe.hasMarkers(s) && !IDe.hasText(s);
+ if (d) return [];
+ if (r === false) for (h = 0; h < n.length; h++) n[h].selected = 0;
+ else for (h = 0; h < n.length; h++) l = n[h], u = l.lonlat, u[0] !== zzt && (c = i.c2p(u), f = a.c2p(u), r.contains([c, f], null, h, t) ? (o.push({ pointNumber: h, lon: u[0], lat: u[1] }), l.selected = 1) : l.selected = 0);
+ return o;
+ };
+ });
+ var hk = ye((RF, FDe) => {
+ (function(e, t) {
+ t(typeof RF == "object" && typeof FDe != "undefined" ? RF : e.d3 = e.d3 || {});
+ })(RF, function(e) {
+ function t(Ee, Ae) {
+ return Ee < Ae ? -1 : Ee > Ae ? 1 : Ee >= Ae ? 0 : NaN;
+ }
+ function r(Ee) {
+ return Ee.length === 1 && (Ee = n(Ee)), { left: function(Ae, Be, Pe, me) {
+ for (Pe == null && (Pe = 0), me == null && (me = Ae.length); Pe < me; ) {
+ var De = Pe + me >>> 1;
+ Ee(Ae[De], Be) < 0 ? Pe = De + 1 : me = De;
+ }
+ return Pe;
+ }, right: function(Ae, Be, Pe, me) {
+ for (Pe == null && (Pe = 0), me == null && (me = Ae.length); Pe < me; ) {
+ var De = Pe + me >>> 1;
+ Ee(Ae[De], Be) > 0 ? me = De : Pe = De + 1;
+ }
+ return Pe;
+ } };
+ }
+ function n(Ee) {
+ return function(Ae, Be) {
+ return t(Ee(Ae), Be);
+ };
+ }
+ var i = r(t), a = i.right, o = i.left;
+ function s(Ee, Ae) {
+ Ae == null && (Ae = l);
+ for (var Be = 0, Pe = Ee.length - 1, me = Ee[0], De = new Array(Pe < 0 ? 0 : Pe); Be < Pe; ) De[Be] = Ae(me, me = Ee[++Be]);
+ return De;
+ }
+ function l(Ee, Ae) {
+ return [Ee, Ae];
+ }
+ function u(Ee, Ae, Be) {
+ var Pe = Ee.length, me = Ae.length, De = new Array(Pe * me), ce, je, lt, pt;
+ for (Be == null && (Be = l), ce = lt = 0; ce < Pe; ++ce) for (pt = Ee[ce], je = 0; je < me; ++je, ++lt) De[lt] = Be(pt, Ae[je]);
+ return De;
+ }
+ function c(Ee, Ae) {
+ return Ae < Ee ? -1 : Ae > Ee ? 1 : Ae >= Ee ? 0 : NaN;
+ }
+ function f(Ee) {
+ return Ee === null ? NaN : +Ee;
+ }
+ function h(Ee, Ae) {
+ var Be = Ee.length, Pe = 0, me = -1, De = 0, ce, je, lt = 0;
+ if (Ae == null) for (; ++me < Be; ) isNaN(ce = f(Ee[me])) || (je = ce - De, De += je / ++Pe, lt += je * (ce - De));
+ else for (; ++me < Be; ) isNaN(ce = f(Ae(Ee[me], me, Ee))) || (je = ce - De, De += je / ++Pe, lt += je * (ce - De));
+ if (Pe > 1) return lt / (Pe - 1);
+ }
+ function d(Ee, Ae) {
+ var Be = h(Ee, Ae);
+ return Be && Math.sqrt(Be);
+ }
+ function v(Ee, Ae) {
+ var Be = Ee.length, Pe = -1, me, De, ce;
+ if (Ae == null) {
+ for (; ++Pe < Be; ) if ((me = Ee[Pe]) != null && me >= me) for (De = ce = me; ++Pe < Be; ) (me = Ee[Pe]) != null && (De > me && (De = me), ce < me && (ce = me));
+ } else for (; ++Pe < Be; ) if ((me = Ae(Ee[Pe], Pe, Ee)) != null && me >= me) for (De = ce = me; ++Pe < Be; ) (me = Ae(Ee[Pe], Pe, Ee)) != null && (De > me && (De = me), ce < me && (ce = me));
+ return [De, ce];
+ }
+ var _ = Array.prototype, b = _.slice, p = _.map;
+ function k(Ee) {
+ return function() {
+ return Ee;
+ };
+ }
+ function E(Ee) {
+ return Ee;
+ }
+ function T(Ee, Ae, Be) {
+ Ee = +Ee, Ae = +Ae, Be = (me = arguments.length) < 2 ? (Ae = Ee, Ee = 0, 1) : me < 3 ? 1 : +Be;
+ for (var Pe = -1, me = Math.max(0, Math.ceil((Ae - Ee) / Be)) | 0, De = new Array(me); ++Pe < me; ) De[Pe] = Ee + Pe * Be;
+ return De;
+ }
+ var L = Math.sqrt(50), x = Math.sqrt(10), C = Math.sqrt(2);
+ function M(Ee, Ae, Be) {
+ var Pe, me = -1, De, ce, je;
+ if (Ae = +Ae, Ee = +Ee, Be = +Be, Ee === Ae && Be > 0) return [Ee];
+ if ((Pe = Ae < Ee) && (De = Ee, Ee = Ae, Ae = De), (je = g(Ee, Ae, Be)) === 0 || !isFinite(je)) return [];
+ if (je > 0) for (Ee = Math.ceil(Ee / je), Ae = Math.floor(Ae / je), ce = new Array(De = Math.ceil(Ae - Ee + 1)); ++me < De; ) ce[me] = (Ee + me) * je;
+ else for (Ee = Math.floor(Ee * je), Ae = Math.ceil(Ae * je), ce = new Array(De = Math.ceil(Ee - Ae + 1)); ++me < De; ) ce[me] = (Ee - me) / je;
+ return Pe && ce.reverse(), ce;
+ }
+ function g(Ee, Ae, Be) {
+ var Pe = (Ae - Ee) / Math.max(0, Be), me = Math.floor(Math.log(Pe) / Math.LN10), De = Pe / Math.pow(10, me);
+ return me >= 0 ? (De >= L ? 10 : De >= x ? 5 : De >= C ? 2 : 1) * Math.pow(10, me) : -Math.pow(10, -me) / (De >= L ? 10 : De >= x ? 5 : De >= C ? 2 : 1);
+ }
+ function P(Ee, Ae, Be) {
+ var Pe = Math.abs(Ae - Ee) / Math.max(0, Be), me = Math.pow(10, Math.floor(Math.log(Pe) / Math.LN10)), De = Pe / me;
+ return De >= L ? me *= 10 : De >= x ? me *= 5 : De >= C && (me *= 2), Ae < Ee ? -me : me;
+ }
+ function A(Ee) {
+ return Math.ceil(Math.log(Ee.length) / Math.LN2) + 1;
+ }
+ function z() {
+ var Ee = E, Ae = v, Be = A;
+ function Pe(me) {
+ var De, ce = me.length, je, lt = new Array(ce);
+ for (De = 0; De < ce; ++De) lt[De] = Ee(me[De], De, me);
+ var pt = Ae(lt), Vt = pt[0], ot = pt[1], ut = Be(lt, Vt, ot);
+ Array.isArray(ut) || (ut = P(Vt, ot, ut), ut = T(Math.ceil(Vt / ut) * ut, ot, ut));
+ for (var Wt = ut.length; ut[0] <= Vt; ) ut.shift(), --Wt;
+ for (; ut[Wt - 1] > ot; ) ut.pop(), --Wt;
+ var Nt = new Array(Wt + 1), $t;
+ for (De = 0; De <= Wt; ++De) $t = Nt[De] = [], $t.x0 = De > 0 ? ut[De - 1] : Vt, $t.x1 = De < Wt ? ut[De] : ot;
+ for (De = 0; De < ce; ++De) je = lt[De], Vt <= je && je <= ot && Nt[a(ut, je, 0, Wt)].push(me[De]);
+ return Nt;
+ }
+ return Pe.value = function(me) {
+ return arguments.length ? (Ee = typeof me == "function" ? me : k(me), Pe) : Ee;
+ }, Pe.domain = function(me) {
+ return arguments.length ? (Ae = typeof me == "function" ? me : k([me[0], me[1]]), Pe) : Ae;
+ }, Pe.thresholds = function(me) {
+ return arguments.length ? (Be = typeof me == "function" ? me : Array.isArray(me) ? k(b.call(me)) : k(me), Pe) : Be;
+ }, Pe;
+ }
+ function O(Ee, Ae, Be) {
+ if (Be == null && (Be = f), !!(Pe = Ee.length)) {
+ if ((Ae = +Ae) <= 0 || Pe < 2) return +Be(Ee[0], 0, Ee);
+ if (Ae >= 1) return +Be(Ee[Pe - 1], Pe - 1, Ee);
+ var Pe, me = (Pe - 1) * Ae, De = Math.floor(me), ce = +Be(Ee[De], De, Ee), je = +Be(Ee[De + 1], De + 1, Ee);
+ return ce + (je - ce) * (me - De);
+ }
+ }
+ function U(Ee, Ae, Be) {
+ return Ee = p.call(Ee, f).sort(t), Math.ceil((Be - Ae) / (2 * (O(Ee, 0.75) - O(Ee, 0.25)) * Math.pow(Ee.length, -1 / 3)));
+ }
+ function G(Ee, Ae, Be) {
+ return Math.ceil((Be - Ae) / (3.5 * d(Ee) * Math.pow(Ee.length, -1 / 3)));
+ }
+ function Z(Ee, Ae) {
+ var Be = Ee.length, Pe = -1, me, De;
+ if (Ae == null) {
+ for (; ++Pe < Be; ) if ((me = Ee[Pe]) != null && me >= me) for (De = me; ++Pe < Be; ) (me = Ee[Pe]) != null && me > De && (De = me);
+ } else for (; ++Pe < Be; ) if ((me = Ae(Ee[Pe], Pe, Ee)) != null && me >= me) for (De = me; ++Pe < Be; ) (me = Ae(Ee[Pe], Pe, Ee)) != null && me > De && (De = me);
+ return De;
+ }
+ function j(Ee, Ae) {
+ var Be = Ee.length, Pe = Be, me = -1, De, ce = 0;
+ if (Ae == null) for (; ++me < Be; ) isNaN(De = f(Ee[me])) ? --Pe : ce += De;
+ else for (; ++me < Be; ) isNaN(De = f(Ae(Ee[me], me, Ee))) ? --Pe : ce += De;
+ if (Pe) return ce / Pe;
+ }
+ function N(Ee, Ae) {
+ var Be = Ee.length, Pe = -1, me, De = [];
+ if (Ae == null) for (; ++Pe < Be; ) isNaN(me = f(Ee[Pe])) || De.push(me);
+ else for (; ++Pe < Be; ) isNaN(me = f(Ae(Ee[Pe], Pe, Ee))) || De.push(me);
+ return O(De.sort(t), 0.5);
+ }
+ function H(Ee) {
+ for (var Ae = Ee.length, Be, Pe = -1, me = 0, De, ce; ++Pe < Ae; ) me += Ee[Pe].length;
+ for (De = new Array(me); --Ae >= 0; ) for (ce = Ee[Ae], Be = ce.length; --Be >= 0; ) De[--me] = ce[Be];
+ return De;
+ }
+ function re(Ee, Ae) {
+ var Be = Ee.length, Pe = -1, me, De;
+ if (Ae == null) {
+ for (; ++Pe < Be; ) if ((me = Ee[Pe]) != null && me >= me) for (De = me; ++Pe < Be; ) (me = Ee[Pe]) != null && De > me && (De = me);
+ } else for (; ++Pe < Be; ) if ((me = Ae(Ee[Pe], Pe, Ee)) != null && me >= me) for (De = me; ++Pe < Be; ) (me = Ae(Ee[Pe], Pe, Ee)) != null && De > me && (De = me);
+ return De;
+ }
+ function oe(Ee, Ae) {
+ for (var Be = Ae.length, Pe = new Array(Be); Be--; ) Pe[Be] = Ee[Ae[Be]];
+ return Pe;
+ }
+ function _e(Ee, Ae) {
+ if (Be = Ee.length) {
+ var Be, Pe = 0, me = 0, De, ce = Ee[me];
+ for (Ae == null && (Ae = t); ++Pe < Be; ) (Ae(De = Ee[Pe], ce) < 0 || Ae(ce, ce) !== 0) && (ce = De, me = Pe);
+ if (Ae(ce, ce) === 0) return me;
+ }
+ }
+ function Ce(Ee, Ae, Be) {
+ for (var Pe = (Be == null ? Ee.length : Be) - (Ae = Ae == null ? 0 : +Ae), me, De; Pe; ) De = Math.random() * Pe-- | 0, me = Ee[Pe + Ae], Ee[Pe + Ae] = Ee[De + Ae], Ee[De + Ae] = me;
+ return Ee;
+ }
+ function Le(Ee, Ae) {
+ var Be = Ee.length, Pe = -1, me, De = 0;
+ if (Ae == null) for (; ++Pe < Be; ) (me = +Ee[Pe]) && (De += me);
+ else for (; ++Pe < Be; ) (me = +Ae(Ee[Pe], Pe, Ee)) && (De += me);
+ return De;
+ }
+ function ge(Ee) {
+ if (!(De = Ee.length)) return [];
+ for (var Ae = -1, Be = re(Ee, ie), Pe = new Array(Be); ++Ae < Be; ) for (var me = -1, De, ce = Pe[Ae] = new Array(De); ++me < De; ) ce[me] = Ee[me][Ae];
+ return Pe;
+ }
+ function ie(Ee) {
+ return Ee.length;
+ }
+ function Se() {
+ return ge(arguments);
+ }
+ e.bisect = a, e.bisectRight = a, e.bisectLeft = o, e.ascending = t, e.bisector = r, e.cross = u, e.descending = c, e.deviation = d, e.extent = v, e.histogram = z, e.thresholdFreedmanDiaconis = U, e.thresholdScott = G, e.thresholdSturges = A, e.max = Z, e.mean = j, e.median = N, e.merge = H, e.min = re, e.pairs = s, e.permute = oe, e.quantile = O, e.range = T, e.scan = _e, e.shuffle = Ce, e.sum = Le, e.ticks = M, e.tickIncrement = g, e.tickStep = P, e.transpose = ge, e.variance = h, e.zip = Se, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var NZ = ye((DF, zDe) => {
+ (function(e, t) {
+ typeof DF == "object" && typeof zDe != "undefined" ? t(DF, hk()) : (e = e || self, t(e.d3 = e.d3 || {}, e.d3));
+ })(DF, function(e, t) {
+ function r() {
+ return new n();
+ }
+ function n() {
+ this.reset();
+ }
+ n.prototype = { constructor: n, reset: function() {
+ this.s = this.t = 0;
+ }, add: function(At) {
+ a(i, At, this.t), a(this, i.s, this.s), this.s ? this.t += i.t : this.s = i.t;
+ }, valueOf: function() {
+ return this.s;
+ } };
+ var i = new n();
+ function a(At, Xt, Cr) {
+ var Ar = At.s = Xt + Cr, Kr = Ar - Xt, ki = Ar - Kr;
+ At.t = Xt - ki + (Cr - Kr);
+ }
+ var o = 1e-6, s = 1e-12, l = Math.PI, u = l / 2, c = l / 4, f = l * 2, h = 180 / l, d = l / 180, v = Math.abs, _ = Math.atan, b = Math.atan2, p = Math.cos, k = Math.ceil, E = Math.exp, T = Math.log, L = Math.pow, x = Math.sin, C = Math.sign || function(At) {
+ return At > 0 ? 1 : At < 0 ? -1 : 0;
+ }, M = Math.sqrt, g = Math.tan;
+ function P(At) {
+ return At > 1 ? 0 : At < -1 ? l : Math.acos(At);
+ }
+ function A(At) {
+ return At > 1 ? u : At < -1 ? -u : Math.asin(At);
+ }
+ function z(At) {
+ return (At = x(At / 2)) * At;
+ }
+ function O() {
+ }
+ function U(At, Xt) {
+ At && Z.hasOwnProperty(At.type) && Z[At.type](At, Xt);
+ }
+ var G = { Feature: function(At, Xt) {
+ U(At.geometry, Xt);
+ }, FeatureCollection: function(At, Xt) {
+ for (var Cr = At.features, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) U(Cr[Ar].geometry, Xt);
+ } }, Z = { Sphere: function(At, Xt) {
+ Xt.sphere();
+ }, Point: function(At, Xt) {
+ At = At.coordinates, Xt.point(At[0], At[1], At[2]);
+ }, MultiPoint: function(At, Xt) {
+ for (var Cr = At.coordinates, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) At = Cr[Ar], Xt.point(At[0], At[1], At[2]);
+ }, LineString: function(At, Xt) {
+ j(At.coordinates, Xt, 0);
+ }, MultiLineString: function(At, Xt) {
+ for (var Cr = At.coordinates, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) j(Cr[Ar], Xt, 0);
+ }, Polygon: function(At, Xt) {
+ N(At.coordinates, Xt);
+ }, MultiPolygon: function(At, Xt) {
+ for (var Cr = At.coordinates, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) N(Cr[Ar], Xt);
+ }, GeometryCollection: function(At, Xt) {
+ for (var Cr = At.geometries, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) U(Cr[Ar], Xt);
+ } };
+ function j(At, Xt, Cr) {
+ var Ar = -1, Kr = At.length - Cr, ki;
+ for (Xt.lineStart(); ++Ar < Kr; ) ki = At[Ar], Xt.point(ki[0], ki[1], ki[2]);
+ Xt.lineEnd();
+ }
+ function N(At, Xt) {
+ var Cr = -1, Ar = At.length;
+ for (Xt.polygonStart(); ++Cr < Ar; ) j(At[Cr], Xt, 1);
+ Xt.polygonEnd();
+ }
+ function H(At, Xt) {
+ At && G.hasOwnProperty(At.type) ? G[At.type](At, Xt) : U(At, Xt);
+ }
+ var re = r(), oe = r(), _e, Ce, Le, ge, ie, Se = { point: O, lineStart: O, lineEnd: O, polygonStart: function() {
+ re.reset(), Se.lineStart = Ee, Se.lineEnd = Ae;
+ }, polygonEnd: function() {
+ var At = +re;
+ oe.add(At < 0 ? f + At : At), this.lineStart = this.lineEnd = this.point = O;
+ }, sphere: function() {
+ oe.add(f);
+ } };
+ function Ee() {
+ Se.point = Be;
+ }
+ function Ae() {
+ Pe(_e, Ce);
+ }
+ function Be(At, Xt) {
+ Se.point = Pe, _e = At, Ce = Xt, At *= d, Xt *= d, Le = At, ge = p(Xt = Xt / 2 + c), ie = x(Xt);
+ }
+ function Pe(At, Xt) {
+ At *= d, Xt *= d, Xt = Xt / 2 + c;
+ var Cr = At - Le, Ar = Cr >= 0 ? 1 : -1, Kr = Ar * Cr, ki = p(Xt), Xi = x(Xt), dn = ie * Xi, wn = ge * ki + dn * p(Kr), Nn = dn * Ar * x(Kr);
+ re.add(b(Nn, wn)), Le = At, ge = ki, ie = Xi;
+ }
+ function me(At) {
+ return oe.reset(), H(At, Se), oe * 2;
+ }
+ function De(At) {
+ return [b(At[1], At[0]), A(At[2])];
+ }
+ function ce(At) {
+ var Xt = At[0], Cr = At[1], Ar = p(Cr);
+ return [Ar * p(Xt), Ar * x(Xt), x(Cr)];
+ }
+ function je(At, Xt) {
+ return At[0] * Xt[0] + At[1] * Xt[1] + At[2] * Xt[2];
+ }
+ function lt(At, Xt) {
+ return [At[1] * Xt[2] - At[2] * Xt[1], At[2] * Xt[0] - At[0] * Xt[2], At[0] * Xt[1] - At[1] * Xt[0]];
+ }
+ function pt(At, Xt) {
+ At[0] += Xt[0], At[1] += Xt[1], At[2] += Xt[2];
+ }
+ function Vt(At, Xt) {
+ return [At[0] * Xt, At[1] * Xt, At[2] * Xt];
+ }
+ function ot(At) {
+ var Xt = M(At[0] * At[0] + At[1] * At[1] + At[2] * At[2]);
+ At[0] /= Xt, At[1] /= Xt, At[2] /= Xt;
+ }
+ var ut, Wt, Nt, $t, sr, Tr, fr, $e, St = r(), Qt, Gt, _t = { point: It, lineStart: er, lineEnd: lr, polygonStart: function() {
+ _t.point = wr, _t.lineStart = Lr, _t.lineEnd = ti, St.reset(), Se.polygonStart();
+ }, polygonEnd: function() {
+ Se.polygonEnd(), _t.point = It, _t.lineStart = er, _t.lineEnd = lr, re < 0 ? (ut = -(Nt = 180), Wt = -($t = 90)) : St > o ? $t = 90 : St < -1e-6 && (Wt = -90), Gt[0] = ut, Gt[1] = Nt;
+ }, sphere: function() {
+ ut = -(Nt = 180), Wt = -($t = 90);
+ } };
+ function It(At, Xt) {
+ Qt.push(Gt = [ut = At, Nt = At]), Xt < Wt && (Wt = Xt), Xt > $t && ($t = Xt);
+ }
+ function mt(At, Xt) {
+ var Cr = ce([At * d, Xt * d]);
+ if ($e) {
+ var Ar = lt($e, Cr), Kr = [Ar[1], -Ar[0], 0], ki = lt(Kr, Ar);
+ ot(ki), ki = De(ki);
+ var Xi = At - sr, dn = Xi > 0 ? 1 : -1, wn = ki[0] * h * dn, Nn, Yi = v(Xi) > 180;
+ Yi ^ (dn * sr < wn && wn < dn * At) ? (Nn = ki[1] * h, Nn > $t && ($t = Nn)) : (wn = (wn + 360) % 360 - 180, Yi ^ (dn * sr < wn && wn < dn * At) ? (Nn = -ki[1] * h, Nn < Wt && (Wt = Nn)) : (Xt < Wt && (Wt = Xt), Xt > $t && ($t = Xt))), Yi ? At < sr ? Br(ut, At) > Br(ut, Nt) && (Nt = At) : Br(At, Nt) > Br(ut, Nt) && (ut = At) : Nt >= ut ? (At < ut && (ut = At), At > Nt && (Nt = At)) : At > sr ? Br(ut, At) > Br(ut, Nt) && (Nt = At) : Br(At, Nt) > Br(ut, Nt) && (ut = At);
+ } else Qt.push(Gt = [ut = At, Nt = At]);
+ Xt < Wt && (Wt = Xt), Xt > $t && ($t = Xt), $e = Cr, sr = At;
+ }
+ function er() {
+ _t.point = mt;
+ }
+ function lr() {
+ Gt[0] = ut, Gt[1] = Nt, _t.point = It, $e = null;
+ }
+ function wr(At, Xt) {
+ if ($e) {
+ var Cr = At - sr;
+ St.add(v(Cr) > 180 ? Cr + (Cr > 0 ? 360 : -360) : Cr);
+ } else Tr = At, fr = Xt;
+ Se.point(At, Xt), mt(At, Xt);
+ }
+ function Lr() {
+ Se.lineStart();
+ }
+ function ti() {
+ wr(Tr, fr), Se.lineEnd(), v(St) > o && (ut = -(Nt = 180)), Gt[0] = ut, Gt[1] = Nt, $e = null;
+ }
+ function Br(At, Xt) {
+ return (Xt -= At) < 0 ? Xt + 360 : Xt;
+ }
+ function Vr(At, Xt) {
+ return At[0] - Xt[0];
+ }
+ function dt(At, Xt) {
+ return At[0] <= At[1] ? At[0] <= Xt && Xt <= At[1] : Xt < At[0] || At[1] < Xt;
+ }
+ function Ge(At) {
+ var Xt, Cr, Ar, Kr, ki, Xi, dn;
+ if ($t = Nt = -(ut = Wt = 1 / 0), Qt = [], H(At, _t), Cr = Qt.length) {
+ for (Qt.sort(Vr), Xt = 1, Ar = Qt[0], ki = [Ar]; Xt < Cr; ++Xt) Kr = Qt[Xt], dt(Ar, Kr[0]) || dt(Ar, Kr[1]) ? (Br(Ar[0], Kr[1]) > Br(Ar[0], Ar[1]) && (Ar[1] = Kr[1]), Br(Kr[0], Ar[1]) > Br(Ar[0], Ar[1]) && (Ar[0] = Kr[0])) : ki.push(Ar = Kr);
+ for (Xi = -1 / 0, Cr = ki.length - 1, Xt = 0, Ar = ki[Cr]; Xt <= Cr; Ar = Kr, ++Xt) Kr = ki[Xt], (dn = Br(Ar[1], Kr[0])) > Xi && (Xi = dn, ut = Kr[0], Nt = Ar[1]);
+ }
+ return Qt = Gt = null, ut === 1 / 0 || Wt === 1 / 0 ? [[NaN, NaN], [NaN, NaN]] : [[ut, Wt], [Nt, $t]];
+ }
+ var Je, We, tt, xt, Ie, xe, ke, vt, ir, ar, vr, ii, pi, $r, di, ji, In = { sphere: O, point: wi, lineStart: qn, lineEnd: la, polygonStart: function() {
+ In.lineStart = Ut, In.lineEnd = wt;
+ }, polygonEnd: function() {
+ In.lineStart = qn, In.lineEnd = la;
+ } };
+ function wi(At, Xt) {
+ At *= d, Xt *= d;
+ var Cr = p(Xt);
+ On(Cr * p(At), Cr * x(At), x(Xt));
+ }
+ function On(At, Xt, Cr) {
+ ++Je, tt += (At - tt) / Je, xt += (Xt - xt) / Je, Ie += (Cr - Ie) / Je;
+ }
+ function qn() {
+ In.point = Fn;
+ }
+ function Fn(At, Xt) {
+ At *= d, Xt *= d;
+ var Cr = p(Xt);
+ $r = Cr * p(At), di = Cr * x(At), ji = x(Xt), In.point = ra, On($r, di, ji);
+ }
+ function ra(At, Xt) {
+ At *= d, Xt *= d;
+ var Cr = p(Xt), Ar = Cr * p(At), Kr = Cr * x(At), ki = x(Xt), Xi = b(M((Xi = di * ki - ji * Kr) * Xi + (Xi = ji * Ar - $r * ki) * Xi + (Xi = $r * Kr - di * Ar) * Xi), $r * Ar + di * Kr + ji * ki);
+ We += Xi, xe += Xi * ($r + ($r = Ar)), ke += Xi * (di + (di = Kr)), vt += Xi * (ji + (ji = ki)), On($r, di, ji);
+ }
+ function la() {
+ In.point = wi;
+ }
+ function Ut() {
+ In.point = rr;
+ }
+ function wt() {
+ nr(ii, pi), In.point = wi;
+ }
+ function rr(At, Xt) {
+ ii = At, pi = Xt, At *= d, Xt *= d, In.point = nr;
+ var Cr = p(Xt);
+ $r = Cr * p(At), di = Cr * x(At), ji = x(Xt), On($r, di, ji);
+ }
+ function nr(At, Xt) {
+ At *= d, Xt *= d;
+ var Cr = p(Xt), Ar = Cr * p(At), Kr = Cr * x(At), ki = x(Xt), Xi = di * ki - ji * Kr, dn = ji * Ar - $r * ki, wn = $r * Kr - di * Ar, Nn = M(Xi * Xi + dn * dn + wn * wn), Yi = A(Nn), Qi = Nn && -Yi / Nn;
+ ir += Qi * Xi, ar += Qi * dn, vr += Qi * wn, We += Yi, xe += Yi * ($r + ($r = Ar)), ke += Yi * (di + (di = Kr)), vt += Yi * (ji + (ji = ki)), On($r, di, ji);
+ }
+ function Er(At) {
+ Je = We = tt = xt = Ie = xe = ke = vt = ir = ar = vr = 0, H(At, In);
+ var Xt = ir, Cr = ar, Ar = vr, Kr = Xt * Xt + Cr * Cr + Ar * Ar;
+ return Kr < s && (Xt = xe, Cr = ke, Ar = vt, We < o && (Xt = tt, Cr = xt, Ar = Ie), Kr = Xt * Xt + Cr * Cr + Ar * Ar, Kr < s) ? [NaN, NaN] : [b(Cr, Xt) * h, A(Ar / M(Kr)) * h];
+ }
+ function Xr(At) {
+ return function() {
+ return At;
+ };
+ }
+ function ri(At, Xt) {
+ function Cr(Ar, Kr) {
+ return Ar = At(Ar, Kr), Xt(Ar[0], Ar[1]);
+ }
+ return At.invert && Xt.invert && (Cr.invert = function(Ar, Kr) {
+ return Ar = Xt.invert(Ar, Kr), Ar && At.invert(Ar[0], Ar[1]);
+ }), Cr;
+ }
+ function Qr(At, Xt) {
+ return [v(At) > l ? At + Math.round(-At / f) * f : At, Xt];
+ }
+ Qr.invert = Qr;
+ function Oi(At, Xt, Cr) {
+ return (At %= f) ? Xt || Cr ? ri(tn(At), fn(Xt, Cr)) : tn(At) : Xt || Cr ? fn(Xt, Cr) : Qr;
+ }
+ function $i(At) {
+ return function(Xt, Cr) {
+ return Xt += At, [Xt > l ? Xt - f : Xt < -l ? Xt + f : Xt, Cr];
+ };
+ }
+ function tn(At) {
+ var Xt = $i(At);
+ return Xt.invert = $i(-At), Xt;
+ }
+ function fn(At, Xt) {
+ var Cr = p(At), Ar = x(At), Kr = p(Xt), ki = x(Xt);
+ function Xi(dn, wn) {
+ var Nn = p(wn), Yi = p(dn) * Nn, Qi = x(dn) * Nn, on = x(wn), Fi = on * Cr + Yi * Ar;
+ return [b(Qi * Kr - Fi * ki, Yi * Cr - on * Ar), A(Fi * Kr + Qi * ki)];
+ }
+ return Xi.invert = function(dn, wn) {
+ var Nn = p(wn), Yi = p(dn) * Nn, Qi = x(dn) * Nn, on = x(wn), Fi = on * Kr - Qi * ki;
+ return [b(Qi * Kr + on * ki, Yi * Cr + Fi * Ar), A(Fi * Cr - Yi * Ar)];
+ }, Xi;
+ }
+ function yn(At) {
+ At = Oi(At[0] * d, At[1] * d, At.length > 2 ? At[2] * d : 0);
+ function Xt(Cr) {
+ return Cr = At(Cr[0] * d, Cr[1] * d), Cr[0] *= h, Cr[1] *= h, Cr;
+ }
+ return Xt.invert = function(Cr) {
+ return Cr = At.invert(Cr[0] * d, Cr[1] * d), Cr[0] *= h, Cr[1] *= h, Cr;
+ }, Xt;
+ }
+ function Sn(At, Xt, Cr, Ar, Kr, ki) {
+ if (Cr) {
+ var Xi = p(Xt), dn = x(Xt), wn = Ar * Cr;
+ Kr == null ? (Kr = Xt + Ar * f, ki = Xt - wn / 2) : (Kr = Ba(Xi, Kr), ki = Ba(Xi, ki), (Ar > 0 ? Kr < ki : Kr > ki) && (Kr += Ar * f));
+ for (var Nn, Yi = Kr; Ar > 0 ? Yi > ki : Yi < ki; Yi -= wn) Nn = De([Xi, -dn * p(Yi), -dn * x(Yi)]), At.point(Nn[0], Nn[1]);
+ }
+ }
+ function Ba(At, Xt) {
+ Xt = ce(Xt), Xt[0] -= At, ot(Xt);
+ var Cr = P(-Xt[1]);
+ return ((-Xt[2] < 0 ? -Cr : Cr) + f - o) % f;
+ }
+ function ua() {
+ var At = Xr([0, 0]), Xt = Xr(90), Cr = Xr(6), Ar, Kr, ki = { point: Xi };
+ function Xi(wn, Nn) {
+ Ar.push(wn = Kr(wn, Nn)), wn[0] *= h, wn[1] *= h;
+ }
+ function dn() {
+ var wn = At.apply(this, arguments), Nn = Xt.apply(this, arguments) * d, Yi = Cr.apply(this, arguments) * d;
+ return Ar = [], Kr = Oi(-wn[0] * d, -wn[1] * d, 0).invert, Sn(ki, Nn, Yi, 1), wn = { type: "Polygon", coordinates: [Ar] }, Ar = Kr = null, wn;
+ }
+ return dn.center = function(wn) {
+ return arguments.length ? (At = typeof wn == "function" ? wn : Xr([+wn[0], +wn[1]]), dn) : At;
+ }, dn.radius = function(wn) {
+ return arguments.length ? (Xt = typeof wn == "function" ? wn : Xr(+wn), dn) : Xt;
+ }, dn.precision = function(wn) {
+ return arguments.length ? (Cr = typeof wn == "function" ? wn : Xr(+wn), dn) : Cr;
+ }, dn;
+ }
+ function ma() {
+ var At = [], Xt;
+ return { point: function(Cr, Ar, Kr) {
+ Xt.push([Cr, Ar, Kr]);
+ }, lineStart: function() {
+ At.push(Xt = []);
+ }, lineEnd: O, rejoin: function() {
+ At.length > 1 && At.push(At.pop().concat(At.shift()));
+ }, result: function() {
+ var Cr = At;
+ return At = [], Xt = null, Cr;
+ } };
+ }
+ function Wa(At, Xt) {
+ return v(At[0] - Xt[0]) < o && v(At[1] - Xt[1]) < o;
+ }
+ function Fa(At, Xt, Cr, Ar) {
+ this.x = At, this.z = Xt, this.o = Cr, this.e = Ar, this.v = false, this.n = this.p = null;
+ }
+ function Xo(At, Xt, Cr, Ar, Kr) {
+ var ki = [], Xi = [], dn, wn;
+ if (At.forEach(function(Qn) {
+ if (!((Ca = Qn.length - 1) <= 0)) {
+ var Ca, Ra = Qn[0], La = Qn[Ca], Na;
+ if (Wa(Ra, La)) {
+ if (!Ra[2] && !La[2]) {
+ for (Kr.lineStart(), dn = 0; dn < Ca; ++dn) Kr.point((Ra = Qn[dn])[0], Ra[1]);
+ Kr.lineEnd();
+ return;
+ }
+ La[0] += 2 * o;
+ }
+ ki.push(Na = new Fa(Ra, Qn, null, true)), Xi.push(Na.o = new Fa(Ra, null, Na, false)), ki.push(Na = new Fa(La, Qn, null, false)), Xi.push(Na.o = new Fa(La, null, Na, true));
+ }
+ }), !!ki.length) {
+ for (Xi.sort(Xt), da(ki), da(Xi), dn = 0, wn = Xi.length; dn < wn; ++dn) Xi[dn].e = Cr = !Cr;
+ for (var Nn = ki[0], Yi, Qi; ; ) {
+ for (var on = Nn, Fi = true; on.v; ) if ((on = on.n) === Nn) return;
+ Yi = on.z, Kr.lineStart();
+ do {
+ if (on.v = on.o.v = true, on.e) {
+ if (Fi) for (dn = 0, wn = Yi.length; dn < wn; ++dn) Kr.point((Qi = Yi[dn])[0], Qi[1]);
+ else Ar(on.x, on.n.x, 1, Kr);
+ on = on.n;
+ } else {
+ if (Fi) for (Yi = on.p.z, dn = Yi.length - 1; dn >= 0; --dn) Kr.point((Qi = Yi[dn])[0], Qi[1]);
+ else Ar(on.x, on.p.x, -1, Kr);
+ on = on.p;
+ }
+ on = on.o, Yi = on.z, Fi = !Fi;
+ } while (!on.v);
+ Kr.lineEnd();
+ }
+ }
+ }
+ function da(At) {
+ if (Xt = At.length) {
+ for (var Xt, Cr = 0, Ar = At[0], Kr; ++Cr < Xt; ) Ar.n = Kr = At[Cr], Kr.p = Ar, Ar = Kr;
+ Ar.n = Kr = At[0], Kr.p = Ar;
+ }
+ }
+ var Wn = r();
+ function Ha(At) {
+ return v(At[0]) <= l ? At[0] : C(At[0]) * ((v(At[0]) + l) % f - l);
+ }
+ function vo(At, Xt) {
+ var Cr = Ha(Xt), Ar = Xt[1], Kr = x(Ar), ki = [x(Cr), -p(Cr), 0], Xi = 0, dn = 0;
+ Wn.reset(), Kr === 1 ? Ar = u + o : Kr === -1 && (Ar = -u - o);
+ for (var wn = 0, Nn = At.length; wn < Nn; ++wn) if (Qi = (Yi = At[wn]).length) for (var Yi, Qi, on = Yi[Qi - 1], Fi = Ha(on), Qn = on[1] / 2 + c, Ca = x(Qn), Ra = p(Qn), La = 0; La < Qi; ++La, Fi = Yn, Ca = Ka, Ra = bo, on = Na) {
+ var Na = Yi[La], Yn = Ha(Na), Dn = Na[1] / 2 + c, Ka = x(Dn), bo = p(Dn), Zo = Yn - Fi, Ss = Zo >= 0 ? 1 : -1, as = Ss * Zo, ws = as > l, Ho = Ca * Ka;
+ if (Wn.add(b(Ho * Ss * x(as), Ra * bo + Ho * p(as))), Xi += ws ? Zo + Ss * f : Zo, ws ^ Fi >= Cr ^ Yn >= Cr) {
+ var ml = lt(ce(on), ce(Na));
+ ot(ml);
+ var Ws = lt(ki, ml);
+ ot(Ws);
+ var Ls = (ws ^ Zo >= 0 ? -1 : 1) * A(Ws[2]);
+ (Ar > Ls || Ar === Ls && (ml[0] || ml[1])) && (dn += ws ^ Zo >= 0 ? 1 : -1);
+ }
+ }
+ return (Xi < -1e-6 || Xi < o && Wn < -1e-6) ^ dn & 1;
+ }
+ function jn(At, Xt, Cr, Ar) {
+ return function(Kr) {
+ var ki = Xt(Kr), Xi = ma(), dn = Xt(Xi), wn = false, Nn, Yi, Qi, on = { point: Fi, lineStart: Ca, lineEnd: Ra, polygonStart: function() {
+ on.point = La, on.lineStart = Na, on.lineEnd = Yn, Yi = [], Nn = [];
+ }, polygonEnd: function() {
+ on.point = Fi, on.lineStart = Ca, on.lineEnd = Ra, Yi = t.merge(Yi);
+ var Dn = vo(Nn, Ar);
+ Yi.length ? (wn || (Kr.polygonStart(), wn = true), Xo(Yi, kr, Dn, Cr, Kr)) : Dn && (wn || (Kr.polygonStart(), wn = true), Kr.lineStart(), Cr(null, null, 1, Kr), Kr.lineEnd()), wn && (Kr.polygonEnd(), wn = false), Yi = Nn = null;
+ }, sphere: function() {
+ Kr.polygonStart(), Kr.lineStart(), Cr(null, null, 1, Kr), Kr.lineEnd(), Kr.polygonEnd();
+ } };
+ function Fi(Dn, Ka) {
+ At(Dn, Ka) && Kr.point(Dn, Ka);
+ }
+ function Qn(Dn, Ka) {
+ ki.point(Dn, Ka);
+ }
+ function Ca() {
+ on.point = Qn, ki.lineStart();
+ }
+ function Ra() {
+ on.point = Fi, ki.lineEnd();
+ }
+ function La(Dn, Ka) {
+ Qi.push([Dn, Ka]), dn.point(Dn, Ka);
+ }
+ function Na() {
+ dn.lineStart(), Qi = [];
+ }
+ function Yn() {
+ La(Qi[0][0], Qi[0][1]), dn.lineEnd();
+ var Dn = dn.clean(), Ka = Xi.result(), bo, Zo = Ka.length, Ss, as, ws;
+ if (Qi.pop(), Nn.push(Qi), Qi = null, !!Zo) {
+ if (Dn & 1) {
+ if (as = Ka[0], (Ss = as.length - 1) > 0) {
+ for (wn || (Kr.polygonStart(), wn = true), Kr.lineStart(), bo = 0; bo < Ss; ++bo) Kr.point((ws = as[bo])[0], ws[1]);
+ Kr.lineEnd();
+ }
+ return;
+ }
+ Zo > 1 && Dn & 2 && Ka.push(Ka.pop().concat(Ka.shift())), Yi.push(Ka.filter(Mt));
+ }
+ }
+ return on;
+ };
+ }
+ function Mt(At) {
+ return At.length > 1;
+ }
+ function kr(At, Xt) {
+ return ((At = At.x)[0] < 0 ? At[1] - u - o : u - At[1]) - ((Xt = Xt.x)[0] < 0 ? Xt[1] - u - o : u - Xt[1]);
+ }
+ var Jr = jn(function() {
+ return true;
+ }, vi, An, [-l, -u]);
+ function vi(At) {
+ var Xt = NaN, Cr = NaN, Ar = NaN, Kr;
+ return { lineStart: function() {
+ At.lineStart(), Kr = 1;
+ }, point: function(ki, Xi) {
+ var dn = ki > 0 ? l : -l, wn = v(ki - Xt);
+ v(wn - l) < o ? (At.point(Xt, Cr = (Cr + Xi) / 2 > 0 ? u : -u), At.point(Ar, Cr), At.lineEnd(), At.lineStart(), At.point(dn, Cr), At.point(ki, Cr), Kr = 0) : Ar !== dn && wn >= l && (v(Xt - Ar) < o && (Xt -= Ar * o), v(ki - dn) < o && (ki -= dn * o), Cr = hn(Xt, Cr, ki, Xi), At.point(Ar, Cr), At.lineEnd(), At.lineStart(), At.point(dn, Cr), Kr = 0), At.point(Xt = ki, Cr = Xi), Ar = dn;
+ }, lineEnd: function() {
+ At.lineEnd(), Xt = Cr = NaN;
+ }, clean: function() {
+ return 2 - Kr;
+ } };
+ }
+ function hn(At, Xt, Cr, Ar) {
+ var Kr, ki, Xi = x(At - Cr);
+ return v(Xi) > o ? _((x(Xt) * (ki = p(Ar)) * x(Cr) - x(Ar) * (Kr = p(Xt)) * x(At)) / (Kr * ki * Xi)) : (Xt + Ar) / 2;
+ }
+ function An(At, Xt, Cr, Ar) {
+ var Kr;
+ if (At == null) Kr = Cr * u, Ar.point(-l, Kr), Ar.point(0, Kr), Ar.point(l, Kr), Ar.point(l, 0), Ar.point(l, -Kr), Ar.point(0, -Kr), Ar.point(-l, -Kr), Ar.point(-l, 0), Ar.point(-l, Kr);
+ else if (v(At[0] - Xt[0]) > o) {
+ var ki = At[0] < Xt[0] ? l : -l;
+ Kr = Cr * ki / 2, Ar.point(-ki, Kr), Ar.point(0, Kr), Ar.point(ki, Kr);
+ } else Ar.point(Xt[0], Xt[1]);
+ }
+ function Mn(At) {
+ var Xt = p(At), Cr = 6 * d, Ar = Xt > 0, Kr = v(Xt) > o;
+ function ki(Yi, Qi, on, Fi) {
+ Sn(Fi, At, Cr, on, Yi, Qi);
+ }
+ function Xi(Yi, Qi) {
+ return p(Yi) * p(Qi) > Xt;
+ }
+ function dn(Yi) {
+ var Qi, on, Fi, Qn, Ca;
+ return { lineStart: function() {
+ Qn = Fi = false, Ca = 1;
+ }, point: function(Ra, La) {
+ var Na = [Ra, La], Yn, Dn = Xi(Ra, La), Ka = Ar ? Dn ? 0 : Nn(Ra, La) : Dn ? Nn(Ra + (Ra < 0 ? l : -l), La) : 0;
+ if (!Qi && (Qn = Fi = Dn) && Yi.lineStart(), Dn !== Fi && (Yn = wn(Qi, Na), (!Yn || Wa(Qi, Yn) || Wa(Na, Yn)) && (Na[2] = 1)), Dn !== Fi) Ca = 0, Dn ? (Yi.lineStart(), Yn = wn(Na, Qi), Yi.point(Yn[0], Yn[1])) : (Yn = wn(Qi, Na), Yi.point(Yn[0], Yn[1], 2), Yi.lineEnd()), Qi = Yn;
+ else if (Kr && Qi && Ar ^ Dn) {
+ var bo;
+ !(Ka & on) && (bo = wn(Na, Qi, true)) && (Ca = 0, Ar ? (Yi.lineStart(), Yi.point(bo[0][0], bo[0][1]), Yi.point(bo[1][0], bo[1][1]), Yi.lineEnd()) : (Yi.point(bo[1][0], bo[1][1]), Yi.lineEnd(), Yi.lineStart(), Yi.point(bo[0][0], bo[0][1], 3)));
+ }
+ Dn && (!Qi || !Wa(Qi, Na)) && Yi.point(Na[0], Na[1]), Qi = Na, Fi = Dn, on = Ka;
+ }, lineEnd: function() {
+ Fi && Yi.lineEnd(), Qi = null;
+ }, clean: function() {
+ return Ca | (Qn && Fi) << 1;
+ } };
+ }
+ function wn(Yi, Qi, on) {
+ var Fi = ce(Yi), Qn = ce(Qi), Ca = [1, 0, 0], Ra = lt(Fi, Qn), La = je(Ra, Ra), Na = Ra[0], Yn = La - Na * Na;
+ if (!Yn) return !on && Yi;
+ var Dn = Xt * La / Yn, Ka = -Xt * Na / Yn, bo = lt(Ca, Ra), Zo = Vt(Ca, Dn), Ss = Vt(Ra, Ka);
+ pt(Zo, Ss);
+ var as = bo, ws = je(Zo, as), Ho = je(as, as), ml = ws * ws - Ho * (je(Zo, Zo) - 1);
+ if (!(ml < 0)) {
+ var Ws = M(ml), Ls = Vt(as, (-ws - Ws) / Ho);
+ if (pt(Ls, Zo), Ls = De(Ls), !on) return Ls;
+ var va = Yi[0], no = Qi[0], ys = Yi[1], rs = Qi[1], Ql;
+ no < va && (Ql = va, va = no, no = Ql);
+ var Cu = no - va, Yu = v(Cu - l) < o, Nc = Yu || Cu < o;
+ if (!Yu && rs < ys && (Ql = ys, ys = rs, rs = Ql), Nc ? Yu ? ys + rs > 0 ^ Ls[1] < (v(Ls[0] - va) < o ? ys : rs) : ys <= Ls[1] && Ls[1] <= rs : Cu > l ^ (va <= Ls[0] && Ls[0] <= no)) {
+ var pu = Vt(as, (-ws + Ws) / Ho);
+ return pt(pu, Zo), [Ls, De(pu)];
+ }
+ }
+ }
+ function Nn(Yi, Qi) {
+ var on = Ar ? At : l - At, Fi = 0;
+ return Yi < -on ? Fi |= 1 : Yi > on && (Fi |= 2), Qi < -on ? Fi |= 4 : Qi > on && (Fi |= 8), Fi;
+ }
+ return jn(Xi, dn, ki, Ar ? [0, -At] : [-l, At - l]);
+ }
+ function Li(At, Xt, Cr, Ar, Kr, ki) {
+ var Xi = At[0], dn = At[1], wn = Xt[0], Nn = Xt[1], Yi = 0, Qi = 1, on = wn - Xi, Fi = Nn - dn, Qn;
+ if (Qn = Cr - Xi, !(!on && Qn > 0)) {
+ if (Qn /= on, on < 0) {
+ if (Qn < Yi) return;
+ Qn < Qi && (Qi = Qn);
+ } else if (on > 0) {
+ if (Qn > Qi) return;
+ Qn > Yi && (Yi = Qn);
+ }
+ if (Qn = Kr - Xi, !(!on && Qn < 0)) {
+ if (Qn /= on, on < 0) {
+ if (Qn > Qi) return;
+ Qn > Yi && (Yi = Qn);
+ } else if (on > 0) {
+ if (Qn < Yi) return;
+ Qn < Qi && (Qi = Qn);
+ }
+ if (Qn = Ar - dn, !(!Fi && Qn > 0)) {
+ if (Qn /= Fi, Fi < 0) {
+ if (Qn < Yi) return;
+ Qn < Qi && (Qi = Qn);
+ } else if (Fi > 0) {
+ if (Qn > Qi) return;
+ Qn > Yi && (Yi = Qn);
+ }
+ if (Qn = ki - dn, !(!Fi && Qn < 0)) {
+ if (Qn /= Fi, Fi < 0) {
+ if (Qn > Qi) return;
+ Qn > Yi && (Yi = Qn);
+ } else if (Fi > 0) {
+ if (Qn < Yi) return;
+ Qn < Qi && (Qi = Qn);
+ }
+ return Yi > 0 && (At[0] = Xi + Yi * on, At[1] = dn + Yi * Fi), Qi < 1 && (Xt[0] = Xi + Qi * on, Xt[1] = dn + Qi * Fi), true;
+ }
+ }
+ }
+ }
+ }
+ var _n = 1e9, ya = -1e9;
+ function $n(At, Xt, Cr, Ar) {
+ function Kr(Nn, Yi) {
+ return At <= Nn && Nn <= Cr && Xt <= Yi && Yi <= Ar;
+ }
+ function ki(Nn, Yi, Qi, on) {
+ var Fi = 0, Qn = 0;
+ if (Nn == null || (Fi = Xi(Nn, Qi)) !== (Qn = Xi(Yi, Qi)) || wn(Nn, Yi) < 0 ^ Qi > 0) do
+ on.point(Fi === 0 || Fi === 3 ? At : Cr, Fi > 1 ? Ar : Xt);
+ while ((Fi = (Fi + Qi + 4) % 4) !== Qn);
+ else on.point(Yi[0], Yi[1]);
+ }
+ function Xi(Nn, Yi) {
+ return v(Nn[0] - At) < o ? Yi > 0 ? 0 : 3 : v(Nn[0] - Cr) < o ? Yi > 0 ? 2 : 1 : v(Nn[1] - Xt) < o ? Yi > 0 ? 1 : 0 : Yi > 0 ? 3 : 2;
+ }
+ function dn(Nn, Yi) {
+ return wn(Nn.x, Yi.x);
+ }
+ function wn(Nn, Yi) {
+ var Qi = Xi(Nn, 1), on = Xi(Yi, 1);
+ return Qi !== on ? Qi - on : Qi === 0 ? Yi[1] - Nn[1] : Qi === 1 ? Nn[0] - Yi[0] : Qi === 2 ? Nn[1] - Yi[1] : Yi[0] - Nn[0];
+ }
+ return function(Nn) {
+ var Yi = Nn, Qi = ma(), on, Fi, Qn, Ca, Ra, La, Na, Yn, Dn, Ka, bo, Zo = { point: Ss, lineStart: ml, lineEnd: Ws, polygonStart: ws, polygonEnd: Ho };
+ function Ss(va, no) {
+ Kr(va, no) && Yi.point(va, no);
+ }
+ function as() {
+ for (var va = 0, no = 0, ys = Fi.length; no < ys; ++no) for (var rs = Fi[no], Ql = 1, Cu = rs.length, Yu = rs[0], Nc, pu, Uc = Yu[0], xu = Yu[1]; Ql < Cu; ++Ql) Nc = Uc, pu = xu, Yu = rs[Ql], Uc = Yu[0], xu = Yu[1], pu <= Ar ? xu > Ar && (Uc - Nc) * (Ar - pu) > (xu - pu) * (At - Nc) && ++va : xu <= Ar && (Uc - Nc) * (Ar - pu) < (xu - pu) * (At - Nc) && --va;
+ return va;
+ }
+ function ws() {
+ Yi = Qi, on = [], Fi = [], bo = true;
+ }
+ function Ho() {
+ var va = as(), no = bo && va, ys = (on = t.merge(on)).length;
+ (no || ys) && (Nn.polygonStart(), no && (Nn.lineStart(), ki(null, null, 1, Nn), Nn.lineEnd()), ys && Xo(on, dn, va, ki, Nn), Nn.polygonEnd()), Yi = Nn, on = Fi = Qn = null;
+ }
+ function ml() {
+ Zo.point = Ls, Fi && Fi.push(Qn = []), Ka = true, Dn = false, Na = Yn = NaN;
+ }
+ function Ws() {
+ on && (Ls(Ca, Ra), La && Dn && Qi.rejoin(), on.push(Qi.result())), Zo.point = Ss, Dn && Yi.lineEnd();
+ }
+ function Ls(va, no) {
+ var ys = Kr(va, no);
+ if (Fi && Qn.push([va, no]), Ka) Ca = va, Ra = no, La = ys, Ka = false, ys && (Yi.lineStart(), Yi.point(va, no));
+ else if (ys && Dn) Yi.point(va, no);
+ else {
+ var rs = [Na = Math.max(ya, Math.min(_n, Na)), Yn = Math.max(ya, Math.min(_n, Yn))], Ql = [va = Math.max(ya, Math.min(_n, va)), no = Math.max(ya, Math.min(_n, no))];
+ Li(rs, Ql, At, Xt, Cr, Ar) ? (Dn || (Yi.lineStart(), Yi.point(rs[0], rs[1])), Yi.point(Ql[0], Ql[1]), ys || Yi.lineEnd(), bo = false) : ys && (Yi.lineStart(), Yi.point(va, no), bo = false);
+ }
+ Na = va, Yn = no, Dn = ys;
+ }
+ return Zo;
+ };
+ }
+ function Ma() {
+ var At = 0, Xt = 0, Cr = 960, Ar = 500, Kr, ki, Xi;
+ return Xi = { stream: function(dn) {
+ return Kr && ki === dn ? Kr : Kr = $n(At, Xt, Cr, Ar)(ki = dn);
+ }, extent: function(dn) {
+ return arguments.length ? (At = +dn[0][0], Xt = +dn[0][1], Cr = +dn[1][0], Ar = +dn[1][1], Kr = ki = null, Xi) : [[At, Xt], [Cr, Ar]];
+ } };
+ }
+ var _o = r(), No, po, Lo, ko = { sphere: O, point: O, lineStart: Ds, lineEnd: O, polygonStart: O, polygonEnd: O };
+ function Ds() {
+ ko.point = ll, ko.lineEnd = Fs;
+ }
+ function Fs() {
+ ko.point = ko.lineEnd = O;
+ }
+ function ll(At, Xt) {
+ At *= d, Xt *= d, No = At, po = x(Xt), Lo = p(Xt), ko.point = ul;
+ }
+ function ul(At, Xt) {
+ At *= d, Xt *= d;
+ var Cr = x(Xt), Ar = p(Xt), Kr = v(At - No), ki = p(Kr), Xi = x(Kr), dn = Ar * Xi, wn = Lo * Cr - po * Ar * ki, Nn = po * Cr + Lo * Ar * ki;
+ _o.add(b(M(dn * dn + wn * wn), Nn)), No = At, po = Cr, Lo = Ar;
+ }
+ function zl(At) {
+ return _o.reset(), H(At, ko), +_o;
+ }
+ var us = [null, null], il = { type: "LineString", coordinates: us };
+ function As(At, Xt) {
+ return us[0] = At, us[1] = Xt, zl(il);
+ }
+ var cl = { Feature: function(At, Xt) {
+ return zs(At.geometry, Xt);
+ }, FeatureCollection: function(At, Xt) {
+ for (var Cr = At.features, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) if (zs(Cr[Ar].geometry, Xt)) return true;
+ return false;
+ } }, Ks = { Sphere: function() {
+ return true;
+ }, Point: function(At, Xt) {
+ return Io(At.coordinates, Xt);
+ }, MultiPoint: function(At, Xt) {
+ for (var Cr = At.coordinates, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) if (Io(Cr[Ar], Xt)) return true;
+ return false;
+ }, LineString: function(At, Xt) {
+ return ls(At.coordinates, Xt);
+ }, MultiLineString: function(At, Xt) {
+ for (var Cr = At.coordinates, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) if (ls(Cr[Ar], Xt)) return true;
+ return false;
+ }, Polygon: function(At, Xt) {
+ return Yl(At.coordinates, Xt);
+ }, MultiPolygon: function(At, Xt) {
+ for (var Cr = At.coordinates, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) if (Yl(Cr[Ar], Xt)) return true;
+ return false;
+ }, GeometryCollection: function(At, Xt) {
+ for (var Cr = At.geometries, Ar = -1, Kr = Cr.length; ++Ar < Kr; ) if (zs(Cr[Ar], Xt)) return true;
+ return false;
+ } };
+ function zs(At, Xt) {
+ return At && Ks.hasOwnProperty(At.type) ? Ks[At.type](At, Xt) : false;
+ }
+ function Io(At, Xt) {
+ return As(At, Xt) === 0;
+ }
+ function ls(At, Xt) {
+ for (var Cr, Ar, Kr, ki = 0, Xi = At.length; ki < Xi; ki++) {
+ if (Ar = As(At[ki], Xt), Ar === 0 || ki > 0 && (Kr = As(At[ki], At[ki - 1]), Kr > 0 && Cr <= Kr && Ar <= Kr && (Cr + Ar - Kr) * (1 - Math.pow((Cr - Ar) / Kr, 2)) < s * Kr)) return true;
+ Cr = Ar;
+ }
+ return false;
+ }
+ function Yl(At, Xt) {
+ return !!vo(At.map(Su), nc(Xt));
+ }
+ function Su(At) {
+ return At = At.map(nc), At.pop(), At;
+ }
+ function nc(At) {
+ return [At[0] * d, At[1] * d];
+ }
+ function bs(At, Xt) {
+ return (At && cl.hasOwnProperty(At.type) ? cl[At.type] : zs)(At, Xt);
+ }
+ function Rn(At, Xt, Cr) {
+ var Ar = t.range(At, Xt - o, Cr).concat(Xt);
+ return function(Kr) {
+ return Ar.map(function(ki) {
+ return [Kr, ki];
+ });
+ };
+ }
+ function _a(At, Xt, Cr) {
+ var Ar = t.range(At, Xt - o, Cr).concat(Xt);
+ return function(Kr) {
+ return Ar.map(function(ki) {
+ return [ki, Kr];
+ });
+ };
+ }
+ function Vu() {
+ var At, Xt, Cr, Ar, Kr, ki, Xi, dn, wn = 10, Nn = wn, Yi = 90, Qi = 360, on, Fi, Qn, Ca, Ra = 2.5;
+ function La() {
+ return { type: "MultiLineString", coordinates: Na() };
+ }
+ function Na() {
+ return t.range(k(Ar / Yi) * Yi, Cr, Yi).map(Qn).concat(t.range(k(dn / Qi) * Qi, Xi, Qi).map(Ca)).concat(t.range(k(Xt / wn) * wn, At, wn).filter(function(Yn) {
+ return v(Yn % Yi) > o;
+ }).map(on)).concat(t.range(k(ki / Nn) * Nn, Kr, Nn).filter(function(Yn) {
+ return v(Yn % Qi) > o;
+ }).map(Fi));
+ }
+ return La.lines = function() {
+ return Na().map(function(Yn) {
+ return { type: "LineString", coordinates: Yn };
+ });
+ }, La.outline = function() {
+ return { type: "Polygon", coordinates: [Qn(Ar).concat(Ca(Xi).slice(1), Qn(Cr).reverse().slice(1), Ca(dn).reverse().slice(1))] };
+ }, La.extent = function(Yn) {
+ return arguments.length ? La.extentMajor(Yn).extentMinor(Yn) : La.extentMinor();
+ }, La.extentMajor = function(Yn) {
+ return arguments.length ? (Ar = +Yn[0][0], Cr = +Yn[1][0], dn = +Yn[0][1], Xi = +Yn[1][1], Ar > Cr && (Yn = Ar, Ar = Cr, Cr = Yn), dn > Xi && (Yn = dn, dn = Xi, Xi = Yn), La.precision(Ra)) : [[Ar, dn], [Cr, Xi]];
+ }, La.extentMinor = function(Yn) {
+ return arguments.length ? (Xt = +Yn[0][0], At = +Yn[1][0], ki = +Yn[0][1], Kr = +Yn[1][1], Xt > At && (Yn = Xt, Xt = At, At = Yn), ki > Kr && (Yn = ki, ki = Kr, Kr = Yn), La.precision(Ra)) : [[Xt, ki], [At, Kr]];
+ }, La.step = function(Yn) {
+ return arguments.length ? La.stepMajor(Yn).stepMinor(Yn) : La.stepMinor();
+ }, La.stepMajor = function(Yn) {
+ return arguments.length ? (Yi = +Yn[0], Qi = +Yn[1], La) : [Yi, Qi];
+ }, La.stepMinor = function(Yn) {
+ return arguments.length ? (wn = +Yn[0], Nn = +Yn[1], La) : [wn, Nn];
+ }, La.precision = function(Yn) {
+ return arguments.length ? (Ra = +Yn, on = Rn(ki, Kr, 90), Fi = _a(Xt, At, Ra), Qn = Rn(dn, Xi, 90), Ca = _a(Ar, Cr, Ra), La) : Ra;
+ }, La.extentMajor([[-180, -90 + o], [180, 90 - o]]).extentMinor([[-180, -80 - o], [180, 80 + o]]);
+ }
+ function Ol() {
+ return Vu()();
+ }
+ function xo(At, Xt) {
+ var Cr = At[0] * d, Ar = At[1] * d, Kr = Xt[0] * d, ki = Xt[1] * d, Xi = p(Ar), dn = x(Ar), wn = p(ki), Nn = x(ki), Yi = Xi * p(Cr), Qi = Xi * x(Cr), on = wn * p(Kr), Fi = wn * x(Kr), Qn = 2 * A(M(z(ki - Ar) + Xi * wn * z(Kr - Cr))), Ca = x(Qn), Ra = Qn ? function(La) {
+ var Na = x(La *= Qn) / Ca, Yn = x(Qn - La) / Ca, Dn = Yn * Yi + Na * on, Ka = Yn * Qi + Na * Fi, bo = Yn * dn + Na * Nn;
+ return [b(Ka, Dn) * h, b(bo, M(Dn * Dn + Ka * Ka)) * h];
+ } : function() {
+ return [Cr * h, Ar * h];
+ };
+ return Ra.distance = Qn, Ra;
+ }
+ function Kl(At) {
+ return At;
+ }
+ var Ns = r(), Hl = r(), ac, aa, Oo, qo, ql = { point: O, lineStart: O, lineEnd: O, polygonStart: function() {
+ ql.lineStart = Pc, ql.lineEnd = Vf;
+ }, polygonEnd: function() {
+ ql.lineStart = ql.lineEnd = ql.point = O, Ns.add(v(Hl)), Hl.reset();
+ }, result: function() {
+ var At = Ns / 2;
+ return Ns.reset(), At;
+ } };
+ function Pc() {
+ ql.point = Do;
+ }
+ function Do(At, Xt) {
+ ql.point = rf, ac = Oo = At, aa = qo = Xt;
+ }
+ function rf(At, Xt) {
+ Hl.add(qo * At - Oo * Xt), Oo = At, qo = Xt;
+ }
+ function Vf() {
+ rf(ac, aa);
+ }
+ var pl = 1 / 0, Zc = pl, Jl = -pl, Os = Jl, yu = { point: oc, lineStart: O, lineEnd: O, polygonStart: O, polygonEnd: O, result: function() {
+ var At = [[pl, Zc], [Jl, Os]];
+ return Jl = Os = -(Zc = pl = 1 / 0), At;
+ } };
+ function oc(At, Xt) {
+ At < pl && (pl = At), At > Jl && (Jl = At), Xt < Zc && (Zc = Xt), Xt > Os && (Os = Xt);
+ }
+ var Cf = 0, sc = 0, jh = 0, Lf = 0, cs = 0, nf = 0, Gf = 0, $l = 0, fl = 0, lc, Fu, Es, Hs, Go = { point: ps, lineStart: uc, lineEnd: qs, polygonStart: function() {
+ Go.lineStart = od, Go.lineEnd = Po;
+ }, polygonEnd: function() {
+ Go.point = ps, Go.lineStart = uc, Go.lineEnd = qs;
+ }, result: function() {
+ var At = fl ? [Gf / fl, $l / fl] : nf ? [Lf / nf, cs / nf] : jh ? [Cf / jh, sc / jh] : [NaN, NaN];
+ return Cf = sc = jh = Lf = cs = nf = Gf = $l = fl = 0, At;
+ } };
+ function ps(At, Xt) {
+ Cf += At, sc += Xt, ++jh;
+ }
+ function uc() {
+ Go.point = xl;
+ }
+ function xl(At, Xt) {
+ Go.point = Gu, ps(Es = At, Hs = Xt);
+ }
+ function Gu(At, Xt) {
+ var Cr = At - Es, Ar = Xt - Hs, Kr = M(Cr * Cr + Ar * Ar);
+ Lf += Kr * (Es + At) / 2, cs += Kr * (Hs + Xt) / 2, nf += Kr, ps(Es = At, Hs = Xt);
+ }
+ function qs() {
+ Go.point = ps;
+ }
+ function od() {
+ Go.point = sd;
+ }
+ function Po() {
+ Ko(lc, Fu);
+ }
+ function sd(At, Xt) {
+ Go.point = Ko, ps(lc = Es = At, Fu = Hs = Xt);
+ }
+ function Ko(At, Xt) {
+ var Cr = At - Es, Ar = Xt - Hs, Kr = M(Cr * Cr + Ar * Ar);
+ Lf += Kr * (Es + At) / 2, cs += Kr * (Hs + Xt) / 2, nf += Kr, Kr = Hs * At - Es * Xt, Gf += Kr * (Es + At), $l += Kr * (Hs + Xt), fl += Kr * 3, ps(Es = At, Hs = Xt);
+ }
+ function Pa(At) {
+ this._context = At;
+ }
+ Pa.prototype = { _radius: 4.5, pointRadius: function(At) {
+ return this._radius = At, this;
+ }, polygonStart: function() {
+ this._line = 0;
+ }, polygonEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._point = 0;
+ }, lineEnd: function() {
+ this._line === 0 && this._context.closePath(), this._point = NaN;
+ }, point: function(At, Xt) {
+ switch (this._point) {
+ case 0: {
+ this._context.moveTo(At, Xt), this._point = 1;
+ break;
+ }
+ case 1: {
+ this._context.lineTo(At, Xt);
+ break;
+ }
+ default: {
+ this._context.moveTo(At + this._radius, Xt), this._context.arc(At, Xt, this._radius, 0, f);
+ break;
+ }
+ }
+ }, result: O };
+ var af = r(), Hu, bl, Hf, Ic, yf, Bl = { point: O, lineStart: function() {
+ Bl.point = Ah;
+ }, lineEnd: function() {
+ Hu && Qf(bl, Hf), Bl.point = O;
+ }, polygonStart: function() {
+ Hu = true;
+ }, polygonEnd: function() {
+ Hu = null;
+ }, result: function() {
+ var At = +af;
+ return af.reset(), At;
+ } };
+ function Ah(At, Xt) {
+ Bl.point = Qf, bl = Ic = At, Hf = yf = Xt;
+ }
+ function Qf(At, Xt) {
+ Ic -= At, yf -= Xt, af.add(M(Ic * Ic + yf * yf)), Ic = At, yf = Xt;
+ }
+ function _f() {
+ this._string = [];
+ }
+ _f.prototype = { _radius: 4.5, _circle: Yc(4.5), pointRadius: function(At) {
+ return (At = +At) !== this._radius && (this._radius = At, this._circle = null), this;
+ }, polygonStart: function() {
+ this._line = 0;
+ }, polygonEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._point = 0;
+ }, lineEnd: function() {
+ this._line === 0 && this._string.push("Z"), this._point = NaN;
+ }, point: function(At, Xt) {
+ switch (this._point) {
+ case 0: {
+ this._string.push("M", At, ",", Xt), this._point = 1;
+ break;
+ }
+ case 1: {
+ this._string.push("L", At, ",", Xt);
+ break;
+ }
+ default: {
+ this._circle == null && (this._circle = Yc(this._radius)), this._string.push("M", At, ",", Xt, this._circle);
+ break;
+ }
+ }
+ }, result: function() {
+ if (this._string.length) {
+ var At = this._string.join("");
+ return this._string = [], At;
+ } else return null;
+ } };
+ function Yc(At) {
+ return "m0," + At + "a" + At + "," + At + " 0 1,1 0," + -2 * At + "a" + At + "," + At + " 0 1,1 0," + 2 * At + "z";
+ }
+ function eh(At, Xt) {
+ var Cr = 4.5, Ar, Kr;
+ function ki(Xi) {
+ return Xi && (typeof Cr == "function" && Kr.pointRadius(+Cr.apply(this, arguments)), H(Xi, Ar(Kr))), Kr.result();
+ }
+ return ki.area = function(Xi) {
+ return H(Xi, Ar(ql)), ql.result();
+ }, ki.measure = function(Xi) {
+ return H(Xi, Ar(Bl)), Bl.result();
+ }, ki.bounds = function(Xi) {
+ return H(Xi, Ar(yu)), yu.result();
+ }, ki.centroid = function(Xi) {
+ return H(Xi, Ar(Go)), Go.result();
+ }, ki.projection = function(Xi) {
+ return arguments.length ? (Ar = Xi == null ? (At = null, Kl) : (At = Xi).stream, ki) : At;
+ }, ki.context = function(Xi) {
+ return arguments.length ? (Kr = Xi == null ? (Xt = null, new _f()) : new Pa(Xt = Xi), typeof Cr != "function" && Kr.pointRadius(Cr), ki) : Xt;
+ }, ki.pointRadius = function(Xi) {
+ return arguments.length ? (Cr = typeof Xi == "function" ? Xi : (Kr.pointRadius(+Xi), +Xi), ki) : Cr;
+ }, ki.projection(At).context(Xt);
+ }
+ function th(At) {
+ return { stream: ju(At) };
+ }
+ function ju(At) {
+ return function(Xt) {
+ var Cr = new jf();
+ for (var Ar in At) Cr[Ar] = At[Ar];
+ return Cr.stream = Xt, Cr;
+ };
+ }
+ function jf() {
+ }
+ jf.prototype = { constructor: jf, point: function(At, Xt) {
+ this.stream.point(At, Xt);
+ }, sphere: function() {
+ this.stream.sphere();
+ }, lineStart: function() {
+ this.stream.lineStart();
+ }, lineEnd: function() {
+ this.stream.lineEnd();
+ }, polygonStart: function() {
+ this.stream.polygonStart();
+ }, polygonEnd: function() {
+ this.stream.polygonEnd();
+ } };
+ function cc(At, Xt, Cr) {
+ var Ar = At.clipExtent && At.clipExtent();
+ return At.scale(150).translate([0, 0]), Ar != null && At.clipExtent(null), H(Cr, At.stream(yu)), Xt(yu.result()), Ar != null && At.clipExtent(Ar), At;
+ }
+ function of(At, Xt, Cr) {
+ return cc(At, function(Ar) {
+ var Kr = Xt[1][0] - Xt[0][0], ki = Xt[1][1] - Xt[0][1], Xi = Math.min(Kr / (Ar[1][0] - Ar[0][0]), ki / (Ar[1][1] - Ar[0][1])), dn = +Xt[0][0] + (Kr - Xi * (Ar[1][0] + Ar[0][0])) / 2, wn = +Xt[0][1] + (ki - Xi * (Ar[1][1] + Ar[0][1])) / 2;
+ At.scale(150 * Xi).translate([dn, wn]);
+ }, Cr);
+ }
+ function Nl(At, Xt, Cr) {
+ return of(At, [[0, 0], Xt], Cr);
+ }
+ function Kc(At, Xt, Cr) {
+ return cc(At, function(Ar) {
+ var Kr = +Xt, ki = Kr / (Ar[1][0] - Ar[0][0]), Xi = (Kr - ki * (Ar[1][0] + Ar[0][0])) / 2, dn = -ki * Ar[0][1];
+ At.scale(150 * ki).translate([Xi, dn]);
+ }, Cr);
+ }
+ function Rc(At, Xt, Cr) {
+ return cc(At, function(Ar) {
+ var Kr = +Xt, ki = Kr / (Ar[1][1] - Ar[0][1]), Xi = -ki * Ar[0][0], dn = (Kr - ki * (Ar[1][1] + Ar[0][1])) / 2;
+ At.scale(150 * ki).translate([Xi, dn]);
+ }, Cr);
+ }
+ var gs = 16, Wf = p(30 * d);
+ function Wh(At, Xt) {
+ return +Xt ? sf(At, Xt) : rh(At);
+ }
+ function rh(At) {
+ return ju({ point: function(Xt, Cr) {
+ Xt = At(Xt, Cr), this.stream.point(Xt[0], Xt[1]);
+ } });
+ }
+ function sf(At, Xt) {
+ function Cr(Ar, Kr, ki, Xi, dn, wn, Nn, Yi, Qi, on, Fi, Qn, Ca, Ra) {
+ var La = Nn - Ar, Na = Yi - Kr, Yn = La * La + Na * Na;
+ if (Yn > 4 * Xt && Ca--) {
+ var Dn = Xi + on, Ka = dn + Fi, bo = wn + Qn, Zo = M(Dn * Dn + Ka * Ka + bo * bo), Ss = A(bo /= Zo), as = v(v(bo) - 1) < o || v(ki - Qi) < o ? (ki + Qi) / 2 : b(Ka, Dn), ws = At(as, Ss), Ho = ws[0], ml = ws[1], Ws = Ho - Ar, Ls = ml - Kr, va = Na * Ws - La * Ls;
+ (va * va / Yn > Xt || v((La * Ws + Na * Ls) / Yn - 0.5) > 0.3 || Xi * on + dn * Fi + wn * Qn < Wf) && (Cr(Ar, Kr, ki, Xi, dn, wn, Ho, ml, as, Dn /= Zo, Ka /= Zo, bo, Ca, Ra), Ra.point(Ho, ml), Cr(Ho, ml, as, Dn, Ka, bo, Nn, Yi, Qi, on, Fi, Qn, Ca, Ra));
+ }
+ }
+ return function(Ar) {
+ var Kr, ki, Xi, dn, wn, Nn, Yi, Qi, on, Fi, Qn, Ca, Ra = { point: La, lineStart: Na, lineEnd: Dn, polygonStart: function() {
+ Ar.polygonStart(), Ra.lineStart = Ka;
+ }, polygonEnd: function() {
+ Ar.polygonEnd(), Ra.lineStart = Na;
+ } };
+ function La(Ss, as) {
+ Ss = At(Ss, as), Ar.point(Ss[0], Ss[1]);
+ }
+ function Na() {
+ Qi = NaN, Ra.point = Yn, Ar.lineStart();
+ }
+ function Yn(Ss, as) {
+ var ws = ce([Ss, as]), Ho = At(Ss, as);
+ Cr(Qi, on, Yi, Fi, Qn, Ca, Qi = Ho[0], on = Ho[1], Yi = Ss, Fi = ws[0], Qn = ws[1], Ca = ws[2], gs, Ar), Ar.point(Qi, on);
+ }
+ function Dn() {
+ Ra.point = La, Ar.lineEnd();
+ }
+ function Ka() {
+ Na(), Ra.point = bo, Ra.lineEnd = Zo;
+ }
+ function bo(Ss, as) {
+ Yn(Kr = Ss, as), ki = Qi, Xi = on, dn = Fi, wn = Qn, Nn = Ca, Ra.point = Yn;
+ }
+ function Zo() {
+ Cr(Qi, on, Yi, Fi, Qn, Ca, ki, Xi, Kr, dn, wn, Nn, gs, Ar), Ra.lineEnd = Dn, Dn();
+ }
+ return Ra;
+ };
+ }
+ var Sh = ju({ point: function(At, Xt) {
+ this.stream.point(At * d, Xt * d);
+ } });
+ function Mu(At) {
+ return ju({ point: function(Xt, Cr) {
+ var Ar = At(Xt, Cr);
+ return this.stream.point(Ar[0], Ar[1]);
+ } });
+ }
+ function ih(At, Xt, Cr, Ar, Kr) {
+ function ki(Xi, dn) {
+ return Xi *= Ar, dn *= Kr, [Xt + At * Xi, Cr - At * dn];
+ }
+ return ki.invert = function(Xi, dn) {
+ return [(Xi - Xt) / At * Ar, (Cr - dn) / At * Kr];
+ }, ki;
+ }
+ function js(At, Xt, Cr, Ar, Kr, ki) {
+ var Xi = p(ki), dn = x(ki), wn = Xi * At, Nn = dn * At, Yi = Xi / At, Qi = dn / At, on = (dn * Cr - Xi * Xt) / At, Fi = (dn * Xt + Xi * Cr) / At;
+ function Qn(Ca, Ra) {
+ return Ca *= Ar, Ra *= Kr, [wn * Ca - Nn * Ra + Xt, Cr - Nn * Ca - wn * Ra];
+ }
+ return Qn.invert = function(Ca, Ra) {
+ return [Ar * (Yi * Ca - Qi * Ra + on), Kr * (Fi - Qi * Ca - Yi * Ra)];
+ }, Qn;
+ }
+ function Eu(At) {
+ return Dc(function() {
+ return At;
+ })();
+ }
+ function Dc(At) {
+ var Xt, Cr = 150, Ar = 480, Kr = 250, ki = 0, Xi = 0, dn = 0, wn = 0, Nn = 0, Yi, Qi = 0, on = 1, Fi = 1, Qn = null, Ca = Jr, Ra = null, La, Na, Yn, Dn = Kl, Ka = 0.5, bo, Zo, Ss, as, ws;
+ function Ho(va) {
+ return Ss(va[0] * d, va[1] * d);
+ }
+ function ml(va) {
+ return va = Ss.invert(va[0], va[1]), va && [va[0] * h, va[1] * h];
+ }
+ Ho.stream = function(va) {
+ return as && ws === va ? as : as = Sh(Mu(Yi)(Ca(bo(Dn(ws = va)))));
+ }, Ho.preclip = function(va) {
+ return arguments.length ? (Ca = va, Qn = void 0, Ls()) : Ca;
+ }, Ho.postclip = function(va) {
+ return arguments.length ? (Dn = va, Ra = La = Na = Yn = null, Ls()) : Dn;
+ }, Ho.clipAngle = function(va) {
+ return arguments.length ? (Ca = +va ? Mn(Qn = va * d) : (Qn = null, Jr), Ls()) : Qn * h;
+ }, Ho.clipExtent = function(va) {
+ return arguments.length ? (Dn = va == null ? (Ra = La = Na = Yn = null, Kl) : $n(Ra = +va[0][0], La = +va[0][1], Na = +va[1][0], Yn = +va[1][1]), Ls()) : Ra == null ? null : [[Ra, La], [Na, Yn]];
+ }, Ho.scale = function(va) {
+ return arguments.length ? (Cr = +va, Ws()) : Cr;
+ }, Ho.translate = function(va) {
+ return arguments.length ? (Ar = +va[0], Kr = +va[1], Ws()) : [Ar, Kr];
+ }, Ho.center = function(va) {
+ return arguments.length ? (ki = va[0] % 360 * d, Xi = va[1] % 360 * d, Ws()) : [ki * h, Xi * h];
+ }, Ho.rotate = function(va) {
+ return arguments.length ? (dn = va[0] % 360 * d, wn = va[1] % 360 * d, Nn = va.length > 2 ? va[2] % 360 * d : 0, Ws()) : [dn * h, wn * h, Nn * h];
+ }, Ho.angle = function(va) {
+ return arguments.length ? (Qi = va % 360 * d, Ws()) : Qi * h;
+ }, Ho.reflectX = function(va) {
+ return arguments.length ? (on = va ? -1 : 1, Ws()) : on < 0;
+ }, Ho.reflectY = function(va) {
+ return arguments.length ? (Fi = va ? -1 : 1, Ws()) : Fi < 0;
+ }, Ho.precision = function(va) {
+ return arguments.length ? (bo = Wh(Zo, Ka = va * va), Ls()) : M(Ka);
+ }, Ho.fitExtent = function(va, no) {
+ return of(Ho, va, no);
+ }, Ho.fitSize = function(va, no) {
+ return Nl(Ho, va, no);
+ }, Ho.fitWidth = function(va, no) {
+ return Kc(Ho, va, no);
+ }, Ho.fitHeight = function(va, no) {
+ return Rc(Ho, va, no);
+ };
+ function Ws() {
+ var va = js(Cr, 0, 0, on, Fi, Qi).apply(null, Xt(ki, Xi)), no = (Qi ? js : ih)(Cr, Ar - va[0], Kr - va[1], on, Fi, Qi);
+ return Yi = Oi(dn, wn, Nn), Zo = ri(Xt, no), Ss = ri(Yi, Zo), bo = Wh(Zo, Ka), Ls();
+ }
+ function Ls() {
+ return as = ws = null, Ho;
+ }
+ return function() {
+ return Xt = At.apply(this, arguments), Ho.invert = Xt.invert && ml, Ws();
+ };
+ }
+ function ks(At) {
+ var Xt = 0, Cr = l / 3, Ar = Dc(At), Kr = Ar(Xt, Cr);
+ return Kr.parallels = function(ki) {
+ return arguments.length ? Ar(Xt = ki[0] * d, Cr = ki[1] * d) : [Xt * h, Cr * h];
+ }, Kr;
+ }
+ function bc(At) {
+ var Xt = p(At);
+ function Cr(Ar, Kr) {
+ return [Ar * Xt, x(Kr) / Xt];
+ }
+ return Cr.invert = function(Ar, Kr) {
+ return [Ar / Xt, A(Kr * Xt)];
+ }, Cr;
+ }
+ function hu(At, Xt) {
+ var Cr = x(At), Ar = (Cr + x(Xt)) / 2;
+ if (v(Ar) < o) return bc(At);
+ var Kr = 1 + Cr * (2 * Ar - Cr), ki = M(Kr) / Ar;
+ function Xi(dn, wn) {
+ var Nn = M(Kr - 2 * Ar * x(wn)) / Ar;
+ return [Nn * x(dn *= Ar), ki - Nn * p(dn)];
+ }
+ return Xi.invert = function(dn, wn) {
+ var Nn = ki - wn, Yi = b(dn, v(Nn)) * C(Nn);
+ return Nn * Ar < 0 && (Yi -= l * C(dn) * C(Nn)), [Yi / Ar, A((Kr - (dn * dn + Nn * Nn) * Ar * Ar) / (2 * Ar))];
+ }, Xi;
+ }
+ function _u() {
+ return ks(hu).scale(155.424).center([0, 33.6442]);
+ }
+ function nl() {
+ return _u().parallels([29.5, 45.5]).scale(1070).translate([480, 250]).rotate([96, 0]).center([-0.6, 38.7]);
+ }
+ function nh(At) {
+ var Xt = At.length;
+ return { point: function(Cr, Ar) {
+ for (var Kr = -1; ++Kr < Xt; ) At[Kr].point(Cr, Ar);
+ }, sphere: function() {
+ for (var Cr = -1; ++Cr < Xt; ) At[Cr].sphere();
+ }, lineStart: function() {
+ for (var Cr = -1; ++Cr < Xt; ) At[Cr].lineStart();
+ }, lineEnd: function() {
+ for (var Cr = -1; ++Cr < Xt; ) At[Cr].lineEnd();
+ }, polygonStart: function() {
+ for (var Cr = -1; ++Cr < Xt; ) At[Cr].polygonStart();
+ }, polygonEnd: function() {
+ for (var Cr = -1; ++Cr < Xt; ) At[Cr].polygonEnd();
+ } };
+ }
+ function Mh() {
+ var At, Xt, Cr = nl(), Ar, Kr = _u().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), ki, Xi = _u().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), dn, wn, Nn = { point: function(on, Fi) {
+ wn = [on, Fi];
+ } };
+ function Yi(on) {
+ var Fi = on[0], Qn = on[1];
+ return wn = null, Ar.point(Fi, Qn), wn || (ki.point(Fi, Qn), wn) || (dn.point(Fi, Qn), wn);
+ }
+ Yi.invert = function(on) {
+ var Fi = Cr.scale(), Qn = Cr.translate(), Ca = (on[0] - Qn[0]) / Fi, Ra = (on[1] - Qn[1]) / Fi;
+ return (Ra >= 0.12 && Ra < 0.234 && Ca >= -0.425 && Ca < -0.214 ? Kr : Ra >= 0.166 && Ra < 0.234 && Ca >= -0.214 && Ca < -0.115 ? Xi : Cr).invert(on);
+ }, Yi.stream = function(on) {
+ return At && Xt === on ? At : At = nh([Cr.stream(Xt = on), Kr.stream(on), Xi.stream(on)]);
+ }, Yi.precision = function(on) {
+ return arguments.length ? (Cr.precision(on), Kr.precision(on), Xi.precision(on), Qi()) : Cr.precision();
+ }, Yi.scale = function(on) {
+ return arguments.length ? (Cr.scale(on), Kr.scale(on * 0.35), Xi.scale(on), Yi.translate(Cr.translate())) : Cr.scale();
+ }, Yi.translate = function(on) {
+ if (!arguments.length) return Cr.translate();
+ var Fi = Cr.scale(), Qn = +on[0], Ca = +on[1];
+ return Ar = Cr.translate(on).clipExtent([[Qn - 0.455 * Fi, Ca - 0.238 * Fi], [Qn + 0.455 * Fi, Ca + 0.238 * Fi]]).stream(Nn), ki = Kr.translate([Qn - 0.307 * Fi, Ca + 0.201 * Fi]).clipExtent([[Qn - 0.425 * Fi + o, Ca + 0.12 * Fi + o], [Qn - 0.214 * Fi - o, Ca + 0.234 * Fi - o]]).stream(Nn), dn = Xi.translate([Qn - 0.205 * Fi, Ca + 0.212 * Fi]).clipExtent([[Qn - 0.214 * Fi + o, Ca + 0.166 * Fi + o], [Qn - 0.115 * Fi - o, Ca + 0.234 * Fi - o]]).stream(Nn), Qi();
+ }, Yi.fitExtent = function(on, Fi) {
+ return of(Yi, on, Fi);
+ }, Yi.fitSize = function(on, Fi) {
+ return Nl(Yi, on, Fi);
+ }, Yi.fitWidth = function(on, Fi) {
+ return Kc(Yi, on, Fi);
+ }, Yi.fitHeight = function(on, Fi) {
+ return Rc(Yi, on, Fi);
+ };
+ function Qi() {
+ return At = Xt = null, Yi;
+ }
+ return Yi.scale(1070);
+ }
+ function zu(At) {
+ return function(Xt, Cr) {
+ var Ar = p(Xt), Kr = p(Cr), ki = At(Ar * Kr);
+ return [ki * Kr * x(Xt), ki * x(Cr)];
+ };
+ }
+ function Fc(At) {
+ return function(Xt, Cr) {
+ var Ar = M(Xt * Xt + Cr * Cr), Kr = At(Ar), ki = x(Kr), Xi = p(Kr);
+ return [b(Xt * ki, Ar * Xi), A(Ar && Cr * ki / Ar)];
+ };
+ }
+ var wc = zu(function(At) {
+ return M(2 / (1 + At));
+ });
+ wc.invert = Fc(function(At) {
+ return 2 * A(At / 2);
+ });
+ function bd() {
+ return Eu(wc).scale(124.75).clipAngle(180 - 1e-3);
+ }
+ var xf = zu(function(At) {
+ return (At = P(At)) && At / x(At);
+ });
+ xf.invert = Fc(function(At) {
+ return At;
+ });
+ function Pf() {
+ return Eu(xf).scale(79.4188).clipAngle(180 - 1e-3);
+ }
+ function Ou(At, Xt) {
+ return [At, T(g((u + Xt) / 2))];
+ }
+ Ou.invert = function(At, Xt) {
+ return [At, 2 * _(E(Xt)) - u];
+ };
+ function bf() {
+ return jl(Ou).scale(961 / f);
+ }
+ function jl(At) {
+ var Xt = Eu(At), Cr = Xt.center, Ar = Xt.scale, Kr = Xt.translate, ki = Xt.clipExtent, Xi = null, dn, wn, Nn;
+ Xt.scale = function(Qi) {
+ return arguments.length ? (Ar(Qi), Yi()) : Ar();
+ }, Xt.translate = function(Qi) {
+ return arguments.length ? (Kr(Qi), Yi()) : Kr();
+ }, Xt.center = function(Qi) {
+ return arguments.length ? (Cr(Qi), Yi()) : Cr();
+ }, Xt.clipExtent = function(Qi) {
+ return arguments.length ? (Qi == null ? Xi = dn = wn = Nn = null : (Xi = +Qi[0][0], dn = +Qi[0][1], wn = +Qi[1][0], Nn = +Qi[1][1]), Yi()) : Xi == null ? null : [[Xi, dn], [wn, Nn]];
+ };
+ function Yi() {
+ var Qi = l * Ar(), on = Xt(yn(Xt.rotate()).invert([0, 0]));
+ return ki(Xi == null ? [[on[0] - Qi, on[1] - Qi], [on[0] + Qi, on[1] + Qi]] : At === Ou ? [[Math.max(on[0] - Qi, Xi), dn], [Math.min(on[0] + Qi, wn), Nn]] : [[Xi, Math.max(on[1] - Qi, dn)], [wn, Math.min(on[1] + Qi, Nn)]]);
+ }
+ return Yi();
+ }
+ function lf(At) {
+ return g((u + At) / 2);
+ }
+ function Xh(At, Xt) {
+ var Cr = p(At), Ar = At === Xt ? x(At) : T(Cr / p(Xt)) / T(lf(Xt) / lf(At)), Kr = Cr * L(lf(At), Ar) / Ar;
+ if (!Ar) return Ou;
+ function ki(Xi, dn) {
+ Kr > 0 ? dn < -u + o && (dn = -u + o) : dn > u - o && (dn = u - o);
+ var wn = Kr / L(lf(dn), Ar);
+ return [wn * x(Ar * Xi), Kr - wn * p(Ar * Xi)];
+ }
+ return ki.invert = function(Xi, dn) {
+ var wn = Kr - dn, Nn = C(Ar) * M(Xi * Xi + wn * wn), Yi = b(Xi, v(wn)) * C(wn);
+ return wn * Ar < 0 && (Yi -= l * C(Xi) * C(wn)), [Yi / Ar, 2 * _(L(Kr / Nn, 1 / Ar)) - u];
+ }, ki;
+ }
+ function If() {
+ return ks(Xh).scale(109.5).parallels([30, 30]);
+ }
+ function Cs(At, Xt) {
+ return [At, Xt];
+ }
+ Cs.invert = Cs;
+ function du() {
+ return Eu(Cs).scale(152.63);
+ }
+ function ku(At, Xt) {
+ var Cr = p(At), Ar = At === Xt ? x(At) : (Cr - p(Xt)) / (Xt - At), Kr = Cr / Ar + At;
+ if (v(Ar) < o) return Cs;
+ function ki(Xi, dn) {
+ var wn = Kr - dn, Nn = Ar * Xi;
+ return [wn * x(Nn), Kr - wn * p(Nn)];
+ }
+ return ki.invert = function(Xi, dn) {
+ var wn = Kr - dn, Nn = b(Xi, v(wn)) * C(wn);
+ return wn * Ar < 0 && (Nn -= l * C(Xi) * C(wn)), [Nn / Ar, Kr - C(Ar) * M(Xi * Xi + wn * wn)];
+ }, ki;
+ }
+ function Xf() {
+ return ks(ku).scale(131.154).center([0, 13.9389]);
+ }
+ var Us = 1.340264, wf = -0.081106, zc = 893e-6, Wu = 3796e-6, Rf = M(3) / 2, Xu = 12;
+ function uf(At, Xt) {
+ var Cr = A(Rf * x(Xt)), Ar = Cr * Cr, Kr = Ar * Ar * Ar;
+ return [At * p(Cr) / (Rf * (Us + 3 * wf * Ar + Kr * (7 * zc + 9 * Wu * Ar))), Cr * (Us + wf * Ar + Kr * (zc + Wu * Ar))];
+ }
+ uf.invert = function(At, Xt) {
+ for (var Cr = Xt, Ar = Cr * Cr, Kr = Ar * Ar * Ar, ki = 0, Xi, dn, wn; ki < Xu && (dn = Cr * (Us + wf * Ar + Kr * (zc + Wu * Ar)) - Xt, wn = Us + 3 * wf * Ar + Kr * (7 * zc + 9 * Wu * Ar), Cr -= Xi = dn / wn, Ar = Cr * Cr, Kr = Ar * Ar * Ar, !(v(Xi) < s)); ++ki) ;
+ return [Rf * At * (Us + 3 * wf * Ar + Kr * (7 * zc + 9 * Wu * Ar)) / p(Cr), A(x(Cr) / Rf)];
+ };
+ function Zf() {
+ return Eu(uf).scale(177.158);
+ }
+ function Wl(At, Xt) {
+ var Cr = p(Xt), Ar = p(At) * Cr;
+ return [Cr * x(At) / Ar, x(Xt) / Ar];
+ }
+ Wl.invert = Fc(_);
+ function ah() {
+ return Eu(Wl).scale(144.049).clipAngle(60);
+ }
+ function Zu() {
+ var At = 1, Xt = 0, Cr = 0, Ar = 1, Kr = 1, ki = 0, Xi, dn, wn = null, Nn, Yi, Qi, on = 1, Fi = 1, Qn = ju({ point: function(Dn, Ka) {
+ var bo = Yn([Dn, Ka]);
+ this.stream.point(bo[0], bo[1]);
+ } }), Ca = Kl, Ra, La;
+ function Na() {
+ return on = At * Ar, Fi = At * Kr, Ra = La = null, Yn;
+ }
+ function Yn(Dn) {
+ var Ka = Dn[0] * on, bo = Dn[1] * Fi;
+ if (ki) {
+ var Zo = bo * Xi - Ka * dn;
+ Ka = Ka * Xi + bo * dn, bo = Zo;
+ }
+ return [Ka + Xt, bo + Cr];
+ }
+ return Yn.invert = function(Dn) {
+ var Ka = Dn[0] - Xt, bo = Dn[1] - Cr;
+ if (ki) {
+ var Zo = bo * Xi + Ka * dn;
+ Ka = Ka * Xi - bo * dn, bo = Zo;
+ }
+ return [Ka / on, bo / Fi];
+ }, Yn.stream = function(Dn) {
+ return Ra && La === Dn ? Ra : Ra = Qn(Ca(La = Dn));
+ }, Yn.postclip = function(Dn) {
+ return arguments.length ? (Ca = Dn, wn = Nn = Yi = Qi = null, Na()) : Ca;
+ }, Yn.clipExtent = function(Dn) {
+ return arguments.length ? (Ca = Dn == null ? (wn = Nn = Yi = Qi = null, Kl) : $n(wn = +Dn[0][0], Nn = +Dn[0][1], Yi = +Dn[1][0], Qi = +Dn[1][1]), Na()) : wn == null ? null : [[wn, Nn], [Yi, Qi]];
+ }, Yn.scale = function(Dn) {
+ return arguments.length ? (At = +Dn, Na()) : At;
+ }, Yn.translate = function(Dn) {
+ return arguments.length ? (Xt = +Dn[0], Cr = +Dn[1], Na()) : [Xt, Cr];
+ }, Yn.angle = function(Dn) {
+ return arguments.length ? (ki = Dn % 360 * d, dn = x(ki), Xi = p(ki), Na()) : ki * h;
+ }, Yn.reflectX = function(Dn) {
+ return arguments.length ? (Ar = Dn ? -1 : 1, Na()) : Ar < 0;
+ }, Yn.reflectY = function(Dn) {
+ return arguments.length ? (Kr = Dn ? -1 : 1, Na()) : Kr < 0;
+ }, Yn.fitExtent = function(Dn, Ka) {
+ return of(Yn, Dn, Ka);
+ }, Yn.fitSize = function(Dn, Ka) {
+ return Nl(Yn, Dn, Ka);
+ }, Yn.fitWidth = function(Dn, Ka) {
+ return Kc(Yn, Dn, Ka);
+ }, Yn.fitHeight = function(Dn, Ka) {
+ return Rc(Yn, Dn, Ka);
+ }, Yn;
+ }
+ function Oc(At, Xt) {
+ var Cr = Xt * Xt, Ar = Cr * Cr;
+ return [At * (0.8707 - 0.131979 * Cr + Ar * (-0.013791 + Ar * (3971e-6 * Cr - 1529e-6 * Ar))), Xt * (1.007226 + Cr * (0.015085 + Ar * (-0.044475 + 0.028874 * Cr - 5916e-6 * Ar)))];
+ }
+ Oc.invert = function(At, Xt) {
+ var Cr = Xt, Ar = 25, Kr;
+ do {
+ var ki = Cr * Cr, Xi = ki * ki;
+ Cr -= Kr = (Cr * (1.007226 + ki * (0.015085 + Xi * (-0.044475 + 0.028874 * ki - 5916e-6 * Xi))) - Xt) / (1.007226 + ki * (0.015085 * 3 + Xi * (-0.044475 * 7 + 0.028874 * 9 * ki - 5916e-6 * 11 * Xi)));
+ } while (v(Kr) > o && --Ar > 0);
+ return [At / (0.8707 + (ki = Cr * Cr) * (-0.131979 + ki * (-0.013791 + ki * ki * ki * (3971e-6 - 1529e-6 * ki)))), Cr];
+ };
+ function Tc() {
+ return Eu(Oc).scale(175.295);
+ }
+ function wl(At, Xt) {
+ return [p(Xt) * x(At), x(Xt)];
+ }
+ wl.invert = Fc(A);
+ function vu() {
+ return Eu(wl).scale(249.5).clipAngle(90 + o);
+ }
+ function qc(At, Xt) {
+ var Cr = p(Xt), Ar = 1 + p(At) * Cr;
+ return [Cr * x(At) / Ar, x(Xt) / Ar];
+ }
+ qc.invert = Fc(function(At) {
+ return 2 * _(At);
+ });
+ function cf() {
+ return Eu(qc).scale(250).clipAngle(142);
+ }
+ function fc(At, Xt) {
+ return [T(g((u + Xt) / 2)), -At];
+ }
+ fc.invert = function(At, Xt) {
+ return [-Xt, 2 * _(E(At)) - u];
+ };
+ function Bc() {
+ var At = jl(fc), Xt = At.center, Cr = At.rotate;
+ return At.center = function(Ar) {
+ return arguments.length ? Xt([-Ar[1], Ar[0]]) : (Ar = Xt(), [Ar[1], -Ar[0]]);
+ }, At.rotate = function(Ar) {
+ return arguments.length ? Cr([Ar[0], Ar[1], Ar.length > 2 ? Ar[2] + 90 : 90]) : (Ar = Cr(), [Ar[0], Ar[1], Ar[2] - 90]);
+ }, Cr([0, 0, 90]).scale(159.155);
+ }
+ e.geoAlbers = nl, e.geoAlbersUsa = Mh, e.geoArea = me, e.geoAzimuthalEqualArea = bd, e.geoAzimuthalEqualAreaRaw = wc, e.geoAzimuthalEquidistant = Pf, e.geoAzimuthalEquidistantRaw = xf, e.geoBounds = Ge, e.geoCentroid = Er, e.geoCircle = ua, e.geoClipAntimeridian = Jr, e.geoClipCircle = Mn, e.geoClipExtent = Ma, e.geoClipRectangle = $n, e.geoConicConformal = If, e.geoConicConformalRaw = Xh, e.geoConicEqualArea = _u, e.geoConicEqualAreaRaw = hu, e.geoConicEquidistant = Xf, e.geoConicEquidistantRaw = ku, e.geoContains = bs, e.geoDistance = As, e.geoEqualEarth = Zf, e.geoEqualEarthRaw = uf, e.geoEquirectangular = du, e.geoEquirectangularRaw = Cs, e.geoGnomonic = ah, e.geoGnomonicRaw = Wl, e.geoGraticule = Vu, e.geoGraticule10 = Ol, e.geoIdentity = Zu, e.geoInterpolate = xo, e.geoLength = zl, e.geoMercator = bf, e.geoMercatorRaw = Ou, e.geoNaturalEarth1 = Tc, e.geoNaturalEarth1Raw = Oc, e.geoOrthographic = vu, e.geoOrthographicRaw = wl, e.geoPath = eh, e.geoProjection = Eu, e.geoProjectionMutator = Dc, e.geoRotation = yn, e.geoStereographic = cf, e.geoStereographicRaw = qc, e.geoStream = H, e.geoTransform = th, e.geoTransverseMercator = Bc, e.geoTransverseMercatorRaw = fc, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var qDe = ye((FF, ODe) => {
+ (function(e, t) {
+ typeof FF == "object" && typeof ODe != "undefined" ? t(FF, NZ(), hk()) : t(e.d3 = e.d3 || {}, e.d3, e.d3);
+ })(FF, function(e, t, r) {
+ var n = Math.abs, i = Math.atan, a = Math.atan2, o = Math.cos, s = Math.exp, l = Math.floor, u = Math.log, c = Math.max, f = Math.min, h = Math.pow, d = Math.round, v = Math.sign || function(ve) {
+ return ve > 0 ? 1 : ve < 0 ? -1 : 0;
+ }, _ = Math.sin, b = Math.tan, p = 1e-6, k = 1e-12, E = Math.PI, T = E / 2, L = E / 4, x = Math.SQRT1_2, C = G(2), M = G(E), g = E * 2, P = 180 / E, A = E / 180;
+ function z(ve) {
+ return ve ? ve / Math.sin(ve) : 1;
+ }
+ function O(ve) {
+ return ve > 1 ? T : ve < -1 ? -T : Math.asin(ve);
+ }
+ function U(ve) {
+ return ve > 1 ? 0 : ve < -1 ? E : Math.acos(ve);
+ }
+ function G(ve) {
+ return ve > 0 ? Math.sqrt(ve) : 0;
+ }
+ function Z(ve) {
+ return ve = s(2 * ve), (ve - 1) / (ve + 1);
+ }
+ function j(ve) {
+ return (s(ve) - s(-ve)) / 2;
+ }
+ function N(ve) {
+ return (s(ve) + s(-ve)) / 2;
+ }
+ function H(ve) {
+ return u(ve + G(ve * ve + 1));
+ }
+ function re(ve) {
+ return u(ve + G(ve * ve - 1));
+ }
+ function oe(ve) {
+ var be = b(ve / 2), Re = 2 * u(o(ve / 2)) / (be * be);
+ function qe(et, Xe) {
+ var it = o(et), Ft = o(Xe), Ht = _(Xe), tr = Ft * it, dr = -((1 - tr ? u((1 + tr) / 2) / (1 - tr) : -0.5) + Re / (1 + tr));
+ return [dr * Ft * _(et), dr * Ht];
+ }
+ return qe.invert = function(et, Xe) {
+ var it = G(et * et + Xe * Xe), Ft = -ve / 2, Ht = 50, tr;
+ if (!it) return [0, 0];
+ do {
+ var dr = Ft / 2, Sr = o(dr), Or = _(dr), Wr = Or / Sr, ni = -u(n(Sr));
+ Ft -= tr = (2 / Wr * ni - Re * Wr - it) / (-ni / (Or * Or) + 1 - Re / (2 * Sr * Sr)) * (Sr < 0 ? 0.7 : 1);
+ } while (n(tr) > p && --Ht > 0);
+ var Pi = _(Ft);
+ return [a(et * Pi, it * o(Ft)), O(Xe * Pi / it)];
+ }, qe;
+ }
+ function _e() {
+ var ve = T, be = t.geoProjectionMutator(oe), Re = be(ve);
+ return Re.radius = function(qe) {
+ return arguments.length ? be(ve = qe * A) : ve * P;
+ }, Re.scale(179.976).clipAngle(147);
+ }
+ function Ce(ve, be) {
+ var Re = o(be), qe = z(U(Re * o(ve /= 2)));
+ return [2 * Re * _(ve) * qe, _(be) * qe];
+ }
+ Ce.invert = function(ve, be) {
+ if (!(ve * ve + 4 * be * be > E * E + p)) {
+ var Re = ve, qe = be, et = 25;
+ do {
+ var Xe = _(Re), it = _(Re / 2), Ft = o(Re / 2), Ht = _(qe), tr = o(qe), dr = _(2 * qe), Sr = Ht * Ht, Or = tr * tr, Wr = it * it, ni = 1 - Or * Ft * Ft, Pi = ni ? U(tr * Ft) * G(cn = 1 / ni) : cn = 0, cn, ln = 2 * Pi * tr * it - ve, Cn = Pi * Ht - be, Kn = cn * (Or * Wr + Pi * tr * Ft * Sr), Aa = cn * (0.5 * Xe * dr - Pi * 2 * Ht * it), fa = cn * 0.25 * (dr * it - Pi * Ht * Or * Xe), $a = cn * (Sr * Ft + Pi * Wr * tr), Co = Aa * fa - $a * Kn;
+ if (!Co) break;
+ var Qa = (Cn * Aa - ln * $a) / Co, mo = (ln * fa - Cn * Kn) / Co;
+ Re -= Qa, qe -= mo;
+ } while ((n(Qa) > p || n(mo) > p) && --et > 0);
+ return [Re, qe];
+ }
+ };
+ function Le() {
+ return t.geoProjection(Ce).scale(152.63);
+ }
+ function ge(ve) {
+ var be = _(ve), Re = o(ve), qe = ve >= 0 ? 1 : -1, et = b(qe * ve), Xe = (1 + be - Re) / 2;
+ function it(Ft, Ht) {
+ var tr = o(Ht), dr = o(Ft /= 2);
+ return [(1 + tr) * _(Ft), (qe * Ht > -a(dr, et) - 1e-3 ? 0 : -qe * 10) + Xe + _(Ht) * Re - (1 + tr) * be * dr];
+ }
+ return it.invert = function(Ft, Ht) {
+ var tr = 0, dr = 0, Sr = 50;
+ do {
+ var Or = o(tr), Wr = _(tr), ni = o(dr), Pi = _(dr), cn = 1 + ni, ln = cn * Wr - Ft, Cn = Xe + Pi * Re - cn * be * Or - Ht, Kn = cn * Or / 2, Aa = -Wr * Pi, fa = be * cn * Wr / 2, $a = Re * ni + be * Or * Pi, Co = Aa * fa - $a * Kn, Qa = (Cn * Aa - ln * $a) / Co / 2, mo = (ln * fa - Cn * Kn) / Co;
+ n(mo) > 2 && (mo /= 2), tr -= Qa, dr -= mo;
+ } while ((n(Qa) > p || n(mo) > p) && --Sr > 0);
+ return qe * dr > -a(o(tr), et) - 1e-3 ? [tr * 2, dr] : null;
+ }, it;
+ }
+ function ie() {
+ var ve = 20 * A, be = ve >= 0 ? 1 : -1, Re = b(be * ve), qe = t.geoProjectionMutator(ge), et = qe(ve), Xe = et.stream;
+ return et.parallel = function(it) {
+ return arguments.length ? (Re = b((be = (ve = it * A) >= 0 ? 1 : -1) * ve), qe(ve)) : ve * P;
+ }, et.stream = function(it) {
+ var Ft = et.rotate(), Ht = Xe(it), tr = (et.rotate([0, 0]), Xe(it)), dr = et.precision();
+ return et.rotate(Ft), Ht.sphere = function() {
+ tr.polygonStart(), tr.lineStart();
+ for (var Sr = be * -180; be * Sr < 180; Sr += be * 90) tr.point(Sr, be * 90);
+ if (ve) for (; be * (Sr -= 3 * be * dr) >= -180; ) tr.point(Sr, be * -a(o(Sr * A / 2), Re) * P);
+ tr.lineEnd(), tr.polygonEnd();
+ }, Ht;
+ }, et.scale(218.695).center([0, 28.0974]);
+ }
+ function Se(ve, be) {
+ var Re = b(be / 2), qe = G(1 - Re * Re), et = 1 + qe * o(ve /= 2), Xe = _(ve) * qe / et, it = Re / et, Ft = Xe * Xe, Ht = it * it;
+ return [4 / 3 * Xe * (3 + Ft - 3 * Ht), 4 / 3 * it * (3 + 3 * Ft - Ht)];
+ }
+ Se.invert = function(ve, be) {
+ if (ve *= 3 / 8, be *= 3 / 8, !ve && n(be) > 1) return null;
+ var Re = ve * ve, qe = be * be, et = 1 + Re + qe, Xe = G((et - G(et * et - 4 * be * be)) / 2), it = O(Xe) / 3, Ft = Xe ? re(n(be / Xe)) / 3 : H(n(ve)) / 3, Ht = o(it), tr = N(Ft), dr = tr * tr - Ht * Ht;
+ return [v(ve) * 2 * a(j(Ft) * Ht, 0.25 - dr), v(be) * 2 * a(tr * _(it), 0.25 + dr)];
+ };
+ function Ee() {
+ return t.geoProjection(Se).scale(66.1603);
+ }
+ var Ae = G(8), Be = u(1 + C);
+ function Pe(ve, be) {
+ var Re = n(be);
+ return Re < L ? [ve, u(b(L + be / 2))] : [ve * o(Re) * (2 * C - 1 / _(Re)), v(be) * (2 * C * (Re - L) - u(b(Re / 2)))];
+ }
+ Pe.invert = function(ve, be) {
+ if ((Xe = n(be)) < Be) return [ve, 2 * i(s(be)) - T];
+ var Re = L, qe = 25, et, Xe;
+ do {
+ var it = o(Re / 2), Ft = b(Re / 2);
+ Re -= et = (Ae * (Re - L) - u(Ft) - Xe) / (Ae - it * it / (2 * Ft));
+ } while (n(et) > k && --qe > 0);
+ return [ve / (o(Re) * (Ae - 1 / _(Re))), v(be) * Re];
+ };
+ function me() {
+ return t.geoProjection(Pe).scale(112.314);
+ }
+ function De(ve) {
+ var be = 2 * E / ve;
+ function Re(qe, et) {
+ var Xe = t.geoAzimuthalEquidistantRaw(qe, et);
+ if (n(qe) > T) {
+ var it = a(Xe[1], Xe[0]), Ft = G(Xe[0] * Xe[0] + Xe[1] * Xe[1]), Ht = be * d((it - T) / be) + T, tr = a(_(it -= Ht), 2 - o(it));
+ it = Ht + O(E / Ft * _(tr)) - tr, Xe[0] = Ft * o(it), Xe[1] = Ft * _(it);
+ }
+ return Xe;
+ }
+ return Re.invert = function(qe, et) {
+ var Xe = G(qe * qe + et * et);
+ if (Xe > T) {
+ var it = a(et, qe), Ft = be * d((it - T) / be) + T, Ht = it > Ft ? -1 : 1, tr = Xe * o(Ft - it), dr = 1 / b(Ht * U((tr - E) / G(E * (E - 2 * tr) + Xe * Xe)));
+ it = Ft + 2 * i((dr + Ht * G(dr * dr - 3)) / 3), qe = Xe * o(it), et = Xe * _(it);
+ }
+ return t.geoAzimuthalEquidistantRaw.invert(qe, et);
+ }, Re;
+ }
+ function ce() {
+ var ve = 5, be = t.geoProjectionMutator(De), Re = be(ve), qe = Re.stream, et = 0.01, Xe = -o(et * A), it = _(et * A);
+ return Re.lobes = function(Ft) {
+ return arguments.length ? be(ve = +Ft) : ve;
+ }, Re.stream = function(Ft) {
+ var Ht = Re.rotate(), tr = qe(Ft), dr = (Re.rotate([0, 0]), qe(Ft));
+ return Re.rotate(Ht), tr.sphere = function() {
+ dr.polygonStart(), dr.lineStart();
+ for (var Sr = 0, Or = 360 / ve, Wr = 2 * E / ve, ni = 90 - 180 / ve, Pi = T; Sr < ve; ++Sr, ni -= Or, Pi -= Wr) dr.point(a(it * o(Pi), Xe) * P, O(it * _(Pi)) * P), ni < -90 ? (dr.point(-90, -180 - ni - et), dr.point(-90, -180 - ni + et)) : (dr.point(90, ni + et), dr.point(90, ni - et));
+ dr.lineEnd(), dr.polygonEnd();
+ }, tr;
+ }, Re.scale(87.8076).center([0, 17.1875]).clipAngle(180 - 1e-3);
+ }
+ function je(ve, be) {
+ if (arguments.length < 2 && (be = ve), be === 1) return t.geoAzimuthalEqualAreaRaw;
+ if (be === 1 / 0) return lt;
+ function Re(qe, et) {
+ var Xe = t.geoAzimuthalEqualAreaRaw(qe / be, et);
+ return Xe[0] *= ve, Xe;
+ }
+ return Re.invert = function(qe, et) {
+ var Xe = t.geoAzimuthalEqualAreaRaw.invert(qe / ve, et);
+ return Xe[0] *= be, Xe;
+ }, Re;
+ }
+ function lt(ve, be) {
+ return [ve * o(be) / o(be /= 2), 2 * _(be)];
+ }
+ lt.invert = function(ve, be) {
+ var Re = 2 * O(be / 2);
+ return [ve * o(Re / 2) / o(Re), Re];
+ };
+ function pt() {
+ var ve = 2, be = t.geoProjectionMutator(je), Re = be(ve);
+ return Re.coefficient = function(qe) {
+ return arguments.length ? be(ve = +qe) : ve;
+ }, Re.scale(169.529);
+ }
+ function Vt(ve, be, Re) {
+ var qe = 100, et, Xe, it;
+ Re = Re === void 0 ? 0 : +Re, be = +be;
+ do
+ Xe = ve(Re), it = ve(Re + p), Xe === it && (it = Xe + p), Re -= et = -1 * p * (Xe - be) / (Xe - it);
+ while (qe-- > 0 && n(et) > p);
+ return qe < 0 ? NaN : Re;
+ }
+ function ot(ve, be, Re) {
+ return be === void 0 && (be = 40), Re === void 0 && (Re = k), function(qe, et, Xe, it) {
+ var Ft, Ht, tr;
+ Xe = Xe === void 0 ? 0 : +Xe, it = it === void 0 ? 0 : +it;
+ for (var dr = 0; dr < be; dr++) {
+ var Sr = ve(Xe, it), Or = Sr[0] - qe, Wr = Sr[1] - et;
+ if (n(Or) < Re && n(Wr) < Re) break;
+ var ni = Or * Or + Wr * Wr;
+ if (ni > Ft) {
+ Xe -= Ht /= 2, it -= tr /= 2;
+ continue;
+ }
+ Ft = ni;
+ var Pi = (Xe > 0 ? -1 : 1) * Re, cn = (it > 0 ? -1 : 1) * Re, ln = ve(Xe + Pi, it), Cn = ve(Xe, it + cn), Kn = (ln[0] - Sr[0]) / Pi, Aa = (ln[1] - Sr[1]) / Pi, fa = (Cn[0] - Sr[0]) / cn, $a = (Cn[1] - Sr[1]) / cn, Co = $a * Kn - Aa * fa, Qa = (n(Co) < 0.5 ? 0.5 : 1) / Co;
+ if (Ht = (Wr * fa - Or * $a) * Qa, tr = (Or * Aa - Wr * Kn) * Qa, Xe += Ht, it += tr, n(Ht) < Re && n(tr) < Re) break;
+ }
+ return [Xe, it];
+ };
+ }
+ function ut() {
+ var ve = je(1.68, 2), be = 1.4, Re = 12;
+ function qe(et, Xe) {
+ if (et + Xe < -1.4) {
+ var it = (et - Xe + 1.6) * (et + Xe + be) / 8;
+ et += it, Xe -= 0.8 * it * _(Xe + E / 2);
+ }
+ var Ft = ve(et, Xe), Ht = (1 - o(et * Xe)) / Re;
+ return Ft[1] < 0 && (Ft[0] *= 1 + Ht), Ft[1] > 0 && (Ft[1] *= 1 + Ht / 1.5 * Ft[0] * Ft[0]), Ft;
+ }
+ return qe.invert = ot(qe), qe;
+ }
+ function Wt() {
+ return t.geoProjection(ut()).rotate([-16.5, -42]).scale(176.57).center([7.93, 0.09]);
+ }
+ function Nt(ve, be) {
+ var Re = ve * _(be), qe = 30, et;
+ do
+ be -= et = (be + _(be) - Re) / (1 + o(be));
+ while (n(et) > p && --qe > 0);
+ return be / 2;
+ }
+ function $t(ve, be, Re) {
+ function qe(et, Xe) {
+ return [ve * et * o(Xe = Nt(Re, Xe)), be * _(Xe)];
+ }
+ return qe.invert = function(et, Xe) {
+ return Xe = O(Xe / be), [et / (ve * o(Xe)), O((2 * Xe + _(2 * Xe)) / Re)];
+ }, qe;
+ }
+ var sr = $t(C / T, C, E);
+ function Tr() {
+ return t.geoProjection(sr).scale(169.529);
+ }
+ var fr = 2.00276, $e = 1.11072;
+ function St(ve, be) {
+ var Re = Nt(E, be);
+ return [fr * ve / (1 / o(be) + $e / o(Re)), (be + C * _(Re)) / fr];
+ }
+ St.invert = function(ve, be) {
+ var Re = fr * be, qe = be < 0 ? -L : L, et = 25, Xe, it;
+ do
+ it = Re - C * _(qe), qe -= Xe = (_(2 * qe) + 2 * qe - E * _(it)) / (2 * o(2 * qe) + 2 + E * o(it) * C * o(qe));
+ while (n(Xe) > p && --et > 0);
+ return it = Re - C * _(qe), [ve * (1 / o(it) + $e / o(qe)) / fr, it];
+ };
+ function Qt() {
+ return t.geoProjection(St).scale(160.857);
+ }
+ function Gt(ve) {
+ var be = 0, Re = t.geoProjectionMutator(ve), qe = Re(be);
+ return qe.parallel = function(et) {
+ return arguments.length ? Re(be = et * A) : be * P;
+ }, qe;
+ }
+ function _t(ve, be) {
+ return [ve * o(be), be];
+ }
+ _t.invert = function(ve, be) {
+ return [ve / o(be), be];
+ };
+ function It() {
+ return t.geoProjection(_t).scale(152.63);
+ }
+ function mt(ve) {
+ if (!ve) return _t;
+ var be = 1 / b(ve);
+ function Re(qe, et) {
+ var Xe = be + ve - et, it = Xe && qe * o(et) / Xe;
+ return [Xe * _(it), be - Xe * o(it)];
+ }
+ return Re.invert = function(qe, et) {
+ var Xe = G(qe * qe + (et = be - et) * et), it = be + ve - Xe;
+ return [Xe / o(it) * a(qe, et), it];
+ }, Re;
+ }
+ function er() {
+ return Gt(mt).scale(123.082).center([0, 26.1441]).parallel(45);
+ }
+ function lr(ve) {
+ function be(Re, qe) {
+ var et = T - qe, Xe = et && Re * ve * _(et) / et;
+ return [et * _(Xe) / ve, T - et * o(Xe)];
+ }
+ return be.invert = function(Re, qe) {
+ var et = Re * ve, Xe = T - qe, it = G(et * et + Xe * Xe), Ft = a(et, Xe);
+ return [(it ? it / _(it) : 1) * Ft / ve, T - it];
+ }, be;
+ }
+ function wr() {
+ var ve = 0.5, be = t.geoProjectionMutator(lr), Re = be(ve);
+ return Re.fraction = function(qe) {
+ return arguments.length ? be(ve = +qe) : ve;
+ }, Re.scale(158.837);
+ }
+ var Lr = $t(1, 4 / E, E);
+ function ti() {
+ return t.geoProjection(Lr).scale(152.63);
+ }
+ function Br(ve, be, Re, qe, et, Xe) {
+ var it = o(Xe), Ft;
+ if (n(ve) > 1 || n(Xe) > 1) Ft = U(Re * et + be * qe * it);
+ else {
+ var Ht = _(ve / 2), tr = _(Xe / 2);
+ Ft = 2 * O(G(Ht * Ht + be * qe * tr * tr));
+ }
+ return n(Ft) > p ? [Ft, a(qe * _(Xe), be * et - Re * qe * it)] : [0, 0];
+ }
+ function Vr(ve, be, Re) {
+ return U((ve * ve + be * be - Re * Re) / (2 * ve * be));
+ }
+ function dt(ve) {
+ return ve - 2 * E * l((ve + E) / (2 * E));
+ }
+ function Ge(ve, be, Re) {
+ for (var qe = [[ve[0], ve[1], _(ve[1]), o(ve[1])], [be[0], be[1], _(be[1]), o(be[1])], [Re[0], Re[1], _(Re[1]), o(Re[1])]], et = qe[2], Xe, it = 0; it < 3; ++it, et = Xe) Xe = qe[it], et.v = Br(Xe[1] - et[1], et[3], et[2], Xe[3], Xe[2], Xe[0] - et[0]), et.point = [0, 0];
+ var Ft = Vr(qe[0].v[0], qe[2].v[0], qe[1].v[0]), Ht = Vr(qe[0].v[0], qe[1].v[0], qe[2].v[0]), tr = E - Ft;
+ qe[2].point[1] = 0, qe[0].point[0] = -(qe[1].point[0] = qe[0].v[0] / 2);
+ var dr = [qe[2].point[0] = qe[0].point[0] + qe[2].v[0] * o(Ft), 2 * (qe[0].point[1] = qe[1].point[1] = qe[2].v[0] * _(Ft))];
+ function Sr(Or, Wr) {
+ var ni = _(Wr), Pi = o(Wr), cn = new Array(3), ln;
+ for (ln = 0; ln < 3; ++ln) {
+ var Cn = qe[ln];
+ if (cn[ln] = Br(Wr - Cn[1], Cn[3], Cn[2], Pi, ni, Or - Cn[0]), !cn[ln][0]) return Cn.point;
+ cn[ln][1] = dt(cn[ln][1] - Cn.v[1]);
+ }
+ var Kn = dr.slice();
+ for (ln = 0; ln < 3; ++ln) {
+ var Aa = ln == 2 ? 0 : ln + 1, fa = Vr(qe[ln].v[0], cn[ln][0], cn[Aa][0]);
+ cn[ln][1] < 0 && (fa = -fa), ln ? ln == 1 ? (fa = Ht - fa, Kn[0] -= cn[ln][0] * o(fa), Kn[1] -= cn[ln][0] * _(fa)) : (fa = tr - fa, Kn[0] += cn[ln][0] * o(fa), Kn[1] += cn[ln][0] * _(fa)) : (Kn[0] += cn[ln][0] * o(fa), Kn[1] -= cn[ln][0] * _(fa));
+ }
+ return Kn[0] /= 3, Kn[1] /= 3, Kn;
+ }
+ return Sr;
+ }
+ function Je(ve) {
+ return ve[0] *= A, ve[1] *= A, ve;
+ }
+ function We() {
+ return tt([0, 22], [45, 22], [22.5, -22]).scale(380).center([22.5, 2]);
+ }
+ function tt(ve, be, Re) {
+ var qe = t.geoCentroid({ type: "MultiPoint", coordinates: [ve, be, Re] }), et = [-qe[0], -qe[1]], Xe = t.geoRotation(et), it = Ge(Je(Xe(ve)), Je(Xe(be)), Je(Xe(Re)));
+ it.invert = ot(it);
+ var Ft = t.geoProjection(it).rotate(et), Ht = Ft.center;
+ return delete Ft.rotate, Ft.center = function(tr) {
+ return arguments.length ? Ht(Xe(tr)) : Xe.invert(Ht());
+ }, Ft.clipAngle(90);
+ }
+ function xt(ve, be) {
+ var Re = G(1 - _(be));
+ return [2 / M * ve * Re, M * (1 - Re)];
+ }
+ xt.invert = function(ve, be) {
+ var Re = (Re = be / M - 1) * Re;
+ return [Re > 0 ? ve * G(E / Re) / 2 : 0, O(1 - Re)];
+ };
+ function Ie() {
+ return t.geoProjection(xt).scale(95.6464).center([0, 30]);
+ }
+ function xe(ve) {
+ var be = b(ve);
+ function Re(qe, et) {
+ return [qe, (qe ? qe / _(qe) : 1) * (_(et) * o(qe) - be * o(et))];
+ }
+ return Re.invert = be ? function(qe, et) {
+ qe && (et *= _(qe) / qe);
+ var Xe = o(qe);
+ return [qe, 2 * a(G(Xe * Xe + be * be - et * et) - Xe, be - et)];
+ } : function(qe, et) {
+ return [qe, O(qe ? et * b(qe) / qe : et)];
+ }, Re;
+ }
+ function ke() {
+ return Gt(xe).scale(249.828).clipAngle(90);
+ }
+ var vt = G(3);
+ function ir(ve, be) {
+ return [vt * ve * (2 * o(2 * be / 3) - 1) / M, vt * M * _(be / 3)];
+ }
+ ir.invert = function(ve, be) {
+ var Re = 3 * O(be / (vt * M));
+ return [M * ve / (vt * (2 * o(2 * Re / 3) - 1)), Re];
+ };
+ function ar() {
+ return t.geoProjection(ir).scale(156.19);
+ }
+ function vr(ve) {
+ var be = o(ve);
+ function Re(qe, et) {
+ return [qe * be, _(et) / be];
+ }
+ return Re.invert = function(qe, et) {
+ return [qe / be, O(et * be)];
+ }, Re;
+ }
+ function ii() {
+ return Gt(vr).parallel(38.58).scale(195.044);
+ }
+ function pi(ve) {
+ var be = o(ve);
+ function Re(qe, et) {
+ return [qe * be, (1 + be) * b(et / 2)];
+ }
+ return Re.invert = function(qe, et) {
+ return [qe / be, i(et / (1 + be)) * 2];
+ }, Re;
+ }
+ function $r() {
+ return Gt(pi).scale(124.75);
+ }
+ function di(ve, be) {
+ var Re = G(8 / (3 * E));
+ return [Re * ve * (1 - n(be) / E), Re * be];
+ }
+ di.invert = function(ve, be) {
+ var Re = G(8 / (3 * E)), qe = be / Re;
+ return [ve / (Re * (1 - n(qe) / E)), qe];
+ };
+ function ji() {
+ return t.geoProjection(di).scale(165.664);
+ }
+ function In(ve, be) {
+ var Re = G(4 - 3 * _(n(be)));
+ return [2 / G(6 * E) * ve * Re, v(be) * G(2 * E / 3) * (2 - Re)];
+ }
+ In.invert = function(ve, be) {
+ var Re = 2 - n(be) / G(2 * E / 3);
+ return [ve * G(6 * E) / (2 * Re), v(be) * O((4 - Re * Re) / 3)];
+ };
+ function wi() {
+ return t.geoProjection(In).scale(165.664);
+ }
+ function On(ve, be) {
+ var Re = G(E * (4 + E));
+ return [2 / Re * ve * (1 + G(1 - 4 * be * be / (E * E))), 4 / Re * be];
+ }
+ On.invert = function(ve, be) {
+ var Re = G(E * (4 + E)) / 2;
+ return [ve * Re / (1 + G(1 - be * be * (4 + E) / (4 * E))), be * Re / 2];
+ };
+ function qn() {
+ return t.geoProjection(On).scale(180.739);
+ }
+ function Fn(ve, be) {
+ var Re = (2 + T) * _(be);
+ be /= 2;
+ for (var qe = 0, et = 1 / 0; qe < 10 && n(et) > p; qe++) {
+ var Xe = o(be);
+ be -= et = (be + _(be) * (Xe + 2) - Re) / (2 * Xe * (1 + Xe));
+ }
+ return [2 / G(E * (4 + E)) * ve * (1 + o(be)), 2 * G(E / (4 + E)) * _(be)];
+ }
+ Fn.invert = function(ve, be) {
+ var Re = be * G((4 + E) / E) / 2, qe = O(Re), et = o(qe);
+ return [ve / (2 / G(E * (4 + E)) * (1 + et)), O((qe + Re * (et + 2)) / (2 + T))];
+ };
+ function ra() {
+ return t.geoProjection(Fn).scale(180.739);
+ }
+ function la(ve, be) {
+ return [ve * (1 + o(be)) / G(2 + E), 2 * be / G(2 + E)];
+ }
+ la.invert = function(ve, be) {
+ var Re = G(2 + E), qe = be * Re / 2;
+ return [Re * ve / (1 + o(qe)), qe];
+ };
+ function Ut() {
+ return t.geoProjection(la).scale(173.044);
+ }
+ function wt(ve, be) {
+ for (var Re = (1 + T) * _(be), qe = 0, et = 1 / 0; qe < 10 && n(et) > p; qe++) be -= et = (be + _(be) - Re) / (1 + o(be));
+ return Re = G(2 + E), [ve * (1 + o(be)) / Re, 2 * be / Re];
+ }
+ wt.invert = function(ve, be) {
+ var Re = 1 + T, qe = G(Re / 2);
+ return [ve * 2 * qe / (1 + o(be *= qe)), O((be + _(be)) / Re)];
+ };
+ function rr() {
+ return t.geoProjection(wt).scale(173.044);
+ }
+ var nr = 3 + 2 * C;
+ function Er(ve, be) {
+ var Re = _(ve /= 2), qe = o(ve), et = G(o(be)), Xe = o(be /= 2), it = _(be) / (Xe + C * qe * et), Ft = G(2 / (1 + it * it)), Ht = G((C * Xe + (qe + Re) * et) / (C * Xe + (qe - Re) * et));
+ return [nr * (Ft * (Ht - 1 / Ht) - 2 * u(Ht)), nr * (Ft * it * (Ht + 1 / Ht) - 2 * i(it))];
+ }
+ Er.invert = function(ve, be) {
+ if (!(Xe = Se.invert(ve / 1.2, be * 1.065))) return null;
+ var Re = Xe[0], qe = Xe[1], et = 20, Xe;
+ ve /= nr, be /= nr;
+ do {
+ var it = Re / 2, Ft = qe / 2, Ht = _(it), tr = o(it), dr = _(Ft), Sr = o(Ft), Or = o(qe), Wr = G(Or), ni = dr / (Sr + C * tr * Wr), Pi = ni * ni, cn = G(2 / (1 + Pi)), ln = C * Sr + (tr + Ht) * Wr, Cn = C * Sr + (tr - Ht) * Wr, Kn = ln / Cn, Aa = G(Kn), fa = Aa - 1 / Aa, $a = Aa + 1 / Aa, Co = cn * fa - 2 * u(Aa) - ve, Qa = cn * ni * $a - 2 * i(ni) - be, mo = dr && x * Wr * Ht * Pi / dr, Bo = (C * tr * Sr + Wr) / (2 * (Sr + C * tr * Wr) * (Sr + C * tr * Wr) * Wr), Ps = -0.5 * ni * cn * cn * cn, Ts = Ps * mo, wo = Ps * Bo, To = (To = 2 * Sr + C * Wr * (tr - Ht)) * To * Aa, hl = (C * tr * Sr * Wr + Or) / To, Ul = -(C * Ht * dr) / (Wr * To), Lu = fa * Ts - 2 * hl / Aa + cn * (hl + hl / Kn), au = fa * wo - 2 * Ul / Aa + cn * (Ul + Ul / Kn), Js = ni * $a * Ts - 2 * mo / (1 + Pi) + cn * $a * mo + cn * ni * (hl - hl / Kn), eu = ni * $a * wo - 2 * Bo / (1 + Pi) + cn * $a * Bo + cn * ni * (Ul - Ul / Kn), dc = au * Js - eu * Lu;
+ if (!dc) break;
+ var Tl = (Qa * au - Co * eu) / dc, Al = (Co * Js - Qa * Lu) / dc;
+ Re -= Tl, qe = c(-T, f(T, qe - Al));
+ } while ((n(Tl) > p || n(Al) > p) && --et > 0);
+ return n(n(qe) - T) < p ? [0, qe] : et && [Re, qe];
+ };
+ function Xr() {
+ return t.geoProjection(Er).scale(62.5271);
+ }
+ var ri = o(35 * A);
+ function Qr(ve, be) {
+ var Re = b(be / 2);
+ return [ve * ri * G(1 - Re * Re), (1 + ri) * Re];
+ }
+ Qr.invert = function(ve, be) {
+ var Re = be / (1 + ri);
+ return [ve && ve / (ri * G(1 - Re * Re)), 2 * i(Re)];
+ };
+ function Oi() {
+ return t.geoProjection(Qr).scale(137.152);
+ }
+ function $i(ve, be) {
+ var Re = be / 2, qe = o(Re);
+ return [2 * ve / M * o(be) * qe * qe, M * b(Re)];
+ }
+ $i.invert = function(ve, be) {
+ var Re = i(be / M), qe = o(Re), et = 2 * Re;
+ return [ve * M / 2 / (o(et) * qe * qe), et];
+ };
+ function tn() {
+ return t.geoProjection($i).scale(135.264);
+ }
+ function fn(ve) {
+ var be = 1 - ve, Re = Xe(E, 0)[0] - Xe(-E, 0)[0], qe = Xe(0, T)[1] - Xe(0, -T)[1], et = G(2 * qe / Re);
+ function Xe(Ht, tr) {
+ var dr = o(tr), Sr = _(tr);
+ return [dr / (be + ve * dr) * Ht, be * tr + ve * Sr];
+ }
+ function it(Ht, tr) {
+ var dr = Xe(Ht, tr);
+ return [dr[0] * et, dr[1] / et];
+ }
+ function Ft(Ht) {
+ return it(0, Ht)[1];
+ }
+ return it.invert = function(Ht, tr) {
+ var dr = Vt(Ft, tr), Sr = Ht / et * (ve + be / o(dr));
+ return [Sr, dr];
+ }, it;
+ }
+ function yn() {
+ var ve = 0.5, be = t.geoProjectionMutator(fn), Re = be(ve);
+ return Re.alpha = function(qe) {
+ return arguments.length ? be(ve = +qe) : ve;
+ }, Re.scale(168.725);
+ }
+ function Sn(ve) {
+ return [ve[0] / 2, O(b(ve[1] / 2 * A)) * P];
+ }
+ function Ba(ve) {
+ return [ve[0] * 2, 2 * i(_(ve[1] * A)) * P];
+ }
+ function ua(ve) {
+ ve == null && (ve = t.geoOrthographic);
+ var be = ve(), Re = t.geoEquirectangular().scale(P).precision(0).clipAngle(null).translate([0, 0]);
+ function qe(Xe) {
+ return be(Sn(Xe));
+ }
+ be.invert && (qe.invert = function(Xe) {
+ return Ba(be.invert(Xe));
+ }), qe.stream = function(Xe) {
+ var it = be.stream(Xe), Ft = Re.stream({ point: function(Ht, tr) {
+ it.point(Ht / 2, O(b(-tr / 2 * A)) * P);
+ }, lineStart: function() {
+ it.lineStart();
+ }, lineEnd: function() {
+ it.lineEnd();
+ }, polygonStart: function() {
+ it.polygonStart();
+ }, polygonEnd: function() {
+ it.polygonEnd();
+ } });
+ return Ft.sphere = it.sphere, Ft;
+ };
+ function et(Xe) {
+ qe[Xe] = function() {
+ return arguments.length ? (be[Xe].apply(be, arguments), qe) : be[Xe]();
+ };
+ }
+ return qe.rotate = function(Xe) {
+ return arguments.length ? (Re.rotate(Xe), qe) : Re.rotate();
+ }, qe.center = function(Xe) {
+ return arguments.length ? (be.center(Sn(Xe)), qe) : Ba(be.center());
+ }, et("angle"), et("clipAngle"), et("clipExtent"), et("fitExtent"), et("fitHeight"), et("fitSize"), et("fitWidth"), et("scale"), et("translate"), et("precision"), qe.scale(249.5);
+ }
+ function ma(ve, be) {
+ var Re = 2 * E / be, qe = ve * ve;
+ function et(Xe, it) {
+ var Ft = t.geoAzimuthalEquidistantRaw(Xe, it), Ht = Ft[0], tr = Ft[1], dr = Ht * Ht + tr * tr;
+ if (dr > qe) {
+ var Sr = G(dr), Or = a(tr, Ht), Wr = Re * d(Or / Re), ni = Or - Wr, Pi = ve * o(ni), cn = (ve * _(ni) - ni * _(Pi)) / (T - Pi), ln = Wa(ni, cn), Cn = (E - ve) / Fa(ln, Pi, E);
+ Ht = Sr;
+ var Kn = 50, Aa;
+ do
+ Ht -= Aa = (ve + Fa(ln, Pi, Ht) * Cn - Sr) / (ln(Ht) * Cn);
+ while (n(Aa) > p && --Kn > 0);
+ tr = ni * _(Ht), Ht < T && (tr -= cn * (Ht - T));
+ var fa = _(Wr), $a = o(Wr);
+ Ft[0] = Ht * $a - tr * fa, Ft[1] = Ht * fa + tr * $a;
+ }
+ return Ft;
+ }
+ return et.invert = function(Xe, it) {
+ var Ft = Xe * Xe + it * it;
+ if (Ft > qe) {
+ var Ht = G(Ft), tr = a(it, Xe), dr = Re * d(tr / Re), Sr = tr - dr;
+ Xe = Ht * o(Sr), it = Ht * _(Sr);
+ for (var Or = Xe - T, Wr = _(Xe), ni = it / Wr, Pi = Xe < T ? 1 / 0 : 0, cn = 10; ; ) {
+ var ln = ve * _(ni), Cn = ve * o(ni), Kn = _(Cn), Aa = T - Cn, fa = (ln - ni * Kn) / Aa, $a = Wa(ni, fa);
+ if (n(Pi) < k || !--cn) break;
+ ni -= Pi = (ni * Wr - fa * Or - it) / (Wr - Or * 2 * (Aa * (Cn + ni * ln * o(Cn) - Kn) - ln * (ln - ni * Kn)) / (Aa * Aa));
+ }
+ Ht = ve + Fa($a, Cn, Xe) * (E - ve) / Fa($a, Cn, E), tr = dr + ni, Xe = Ht * o(tr), it = Ht * _(tr);
+ }
+ return t.geoAzimuthalEquidistantRaw.invert(Xe, it);
+ }, et;
+ }
+ function Wa(ve, be) {
+ return function(Re) {
+ var qe = ve * o(Re);
+ return Re < T && (qe -= be), G(1 + qe * qe);
+ };
+ }
+ function Fa(ve, be, Re) {
+ for (var qe = 50, et = (Re - be) / qe, Xe = ve(be) + ve(Re), it = 1, Ft = be; it < qe; ++it) Xe += 2 * ve(Ft += et);
+ return Xe * 0.5 * et;
+ }
+ function Xo() {
+ var ve = 6, be = 30 * A, Re = o(be), qe = _(be), et = t.geoProjectionMutator(ma), Xe = et(be, ve), it = Xe.stream, Ft = 0.01, Ht = -o(Ft * A), tr = _(Ft * A);
+ return Xe.radius = function(dr) {
+ return arguments.length ? (Re = o(be = dr * A), qe = _(be), et(be, ve)) : be * P;
+ }, Xe.lobes = function(dr) {
+ return arguments.length ? et(be, ve = +dr) : ve;
+ }, Xe.stream = function(dr) {
+ var Sr = Xe.rotate(), Or = it(dr), Wr = (Xe.rotate([0, 0]), it(dr));
+ return Xe.rotate(Sr), Or.sphere = function() {
+ Wr.polygonStart(), Wr.lineStart();
+ for (var ni = 0, Pi = 2 * E / ve, cn = 0; ni < ve; ++ni, cn -= Pi) Wr.point(a(tr * o(cn), Ht) * P, O(tr * _(cn)) * P), Wr.point(a(qe * o(cn - Pi / 2), Re) * P, O(qe * _(cn - Pi / 2)) * P);
+ Wr.lineEnd(), Wr.polygonEnd();
+ }, Or;
+ }, Xe.rotate([90, -40]).scale(91.7095).clipAngle(180 - 1e-3);
+ }
+ function da(ve, be, Re, qe, et, Xe, it, Ft) {
+ arguments.length < 8 && (Ft = 0);
+ function Ht(tr, dr) {
+ if (!dr) return [ve * tr / E, 0];
+ var Sr = dr * dr, Or = ve + Sr * (be + Sr * (Re + Sr * qe)), Wr = dr * (et - 1 + Sr * (Xe - Ft + Sr * it)), ni = (Or * Or + Wr * Wr) / (2 * Wr), Pi = tr * O(Or / ni) / E;
+ return [ni * _(Pi), dr * (1 + Sr * Ft) + ni * (1 - o(Pi))];
+ }
+ return Ht.invert = function(tr, dr) {
+ var Sr = E * tr / ve, Or = dr, Wr, ni, Pi = 50;
+ do {
+ var cn = Or * Or, ln = ve + cn * (be + cn * (Re + cn * qe)), Cn = Or * (et - 1 + cn * (Xe - Ft + cn * it)), Kn = ln * ln + Cn * Cn, Aa = 2 * Cn, fa = Kn / Aa, $a = fa * fa, Co = O(ln / fa) / E, Qa = Sr * Co, mo = ln * ln, Bo = (2 * be + cn * (4 * Re + cn * 6 * qe)) * Or, Ps = et + cn * (3 * Xe + cn * 5 * it), Ts = 2 * (ln * Bo + Cn * (Ps - 1)), wo = 2 * (Ps - 1), To = (Ts * Aa - Kn * wo) / (Aa * Aa), hl = o(Qa), Ul = _(Qa), Lu = fa * hl, au = fa * Ul, Js = Sr / E * (1 / G(1 - mo / $a)) * (Bo * fa - ln * To) / $a, eu = au - tr, dc = Or * (1 + cn * Ft) + fa - Lu - dr, Tl = To * Ul + Lu * Js, Al = Lu * Co, X = 1 + To - (To * hl - au * Js), se = au * Co, Te = Tl * se - X * Al;
+ if (!Te) break;
+ Sr -= Wr = (dc * Tl - eu * X) / Te, Or -= ni = (eu * se - dc * Al) / Te;
+ } while ((n(Wr) > p || n(ni) > p) && --Pi > 0);
+ return [Sr, Or];
+ }, Ht;
+ }
+ var Wn = da(2.8284, -1.6988, 0.75432, -0.18071, 1.76003, -0.38914, 0.042555);
+ function Ha() {
+ return t.geoProjection(Wn).scale(149.995);
+ }
+ var vo = da(2.583819, -0.835827, 0.170354, -0.038094, 1.543313, -0.411435, 0.082742);
+ function jn() {
+ return t.geoProjection(vo).scale(153.93);
+ }
+ var Mt = da(5 / 6 * E, -0.62636, -0.0344, 0, 1.3493, -0.05524, 0, 0.045);
+ function kr() {
+ return t.geoProjection(Mt).scale(130.945);
+ }
+ function Jr(ve, be) {
+ var Re = ve * ve, qe = be * be;
+ return [ve * (1 - 0.162388 * qe) * (0.87 - 952426e-9 * Re * Re), be * (1 + qe / 12)];
+ }
+ Jr.invert = function(ve, be) {
+ var Re = ve, qe = be, et = 50, Xe;
+ do {
+ var it = qe * qe;
+ qe -= Xe = (qe * (1 + it / 12) - be) / (1 + it / 4);
+ } while (n(Xe) > p && --et > 0);
+ et = 50, ve /= 1 - 0.162388 * it;
+ do {
+ var Ft = (Ft = Re * Re) * Ft;
+ Re -= Xe = (Re * (0.87 - 952426e-9 * Ft) - ve) / (0.87 - 476213e-8 * Ft);
+ } while (n(Xe) > p && --et > 0);
+ return [Re, qe];
+ };
+ function vi() {
+ return t.geoProjection(Jr).scale(131.747);
+ }
+ var hn = da(2.6516, -0.76534, 0.19123, -0.047094, 1.36289, -0.13965, 0.031762);
+ function An() {
+ return t.geoProjection(hn).scale(131.087);
+ }
+ function Mn(ve) {
+ var be = ve(T, 0)[0] - ve(-T, 0)[0];
+ function Re(qe, et) {
+ var Xe = qe > 0 ? -0.5 : 0.5, it = ve(qe + Xe * E, et);
+ return it[0] -= Xe * be, it;
+ }
+ return ve.invert && (Re.invert = function(qe, et) {
+ var Xe = qe > 0 ? -0.5 : 0.5, it = ve.invert(qe + Xe * be, et), Ft = it[0] - Xe * E;
+ return Ft < -E ? Ft += 2 * E : Ft > E && (Ft -= 2 * E), it[0] = Ft, it;
+ }), Re;
+ }
+ function Li(ve, be) {
+ var Re = v(ve), qe = v(be), et = o(be), Xe = o(ve) * et, it = _(ve) * et, Ft = _(qe * be);
+ ve = n(a(it, Ft)), be = O(Xe), n(ve - T) > p && (ve %= T);
+ var Ht = _n(ve > E / 4 ? T - ve : ve, be);
+ return ve > E / 4 && (Ft = Ht[0], Ht[0] = -Ht[1], Ht[1] = -Ft), Ht[0] *= Re, Ht[1] *= -qe, Ht;
+ }
+ Li.invert = function(ve, be) {
+ n(ve) > 1 && (ve = v(ve) * 2 - ve), n(be) > 1 && (be = v(be) * 2 - be);
+ var Re = v(ve), qe = v(be), et = -Re * ve, Xe = -qe * be, it = Xe / et < 1, Ft = ya(it ? Xe : et, it ? et : Xe), Ht = Ft[0], tr = Ft[1], dr = o(tr);
+ return it && (Ht = -T - Ht), [Re * (a(_(Ht) * dr, -_(tr)) + E), qe * O(o(Ht) * dr)];
+ };
+ function _n(ve, be) {
+ if (be === T) return [0, 0];
+ var Re = _(be), qe = Re * Re, et = qe * qe, Xe = 1 + et, it = 1 + 3 * et, Ft = 1 - et, Ht = O(1 / G(Xe)), tr = Ft + qe * Xe * Ht, dr = (1 - Re) / tr, Sr = G(dr), Or = dr * Xe, Wr = G(Or), ni = Sr * Ft, Pi, cn;
+ if (ve === 0) return [0, -(ni + qe * Wr)];
+ var ln = o(be), Cn = 1 / ln, Kn = 2 * Re * ln, Aa = (-3 * qe + Ht * it) * Kn, fa = (-tr * ln - (1 - Re) * Aa) / (tr * tr), $a = 0.5 * fa / Sr, Co = Ft * $a - 2 * qe * Sr * Kn, Qa = qe * Xe * fa + dr * it * Kn, mo = -Cn * Kn, Bo = -Cn * Qa, Ps = -2 * Cn * Co, Ts = 4 * ve / E, wo;
+ if (ve > 0.222 * E || be < E / 4 && ve > 0.175 * E) {
+ if (Pi = (ni + qe * G(Or * (1 + et) - ni * ni)) / (1 + et), ve > E / 4) return [Pi, Pi];
+ var To = Pi, hl = 0.5 * Pi;
+ Pi = 0.5 * (hl + To), cn = 50;
+ do {
+ var Ul = G(Or - Pi * Pi), Lu = Pi * (Ps + mo * Ul) + Bo * O(Pi / Wr) - Ts;
+ if (!Lu) break;
+ Lu < 0 ? hl = Pi : To = Pi, Pi = 0.5 * (hl + To);
+ } while (n(To - hl) > p && --cn > 0);
+ } else {
+ Pi = p, cn = 25;
+ do {
+ var au = Pi * Pi, Js = G(Or - au), eu = Ps + mo * Js, dc = Pi * eu + Bo * O(Pi / Wr) - Ts, Tl = eu + (Bo - mo * au) / Js;
+ Pi -= wo = Js ? dc / Tl : 0;
+ } while (n(wo) > p && --cn > 0);
+ }
+ return [Pi, -ni - qe * G(Or - Pi * Pi)];
+ }
+ function ya(ve, be) {
+ for (var Re = 0, qe = 1, et = 0.5, Xe = 50; ; ) {
+ var it = et * et, Ft = G(et), Ht = O(1 / G(1 + it)), tr = 1 - it + et * (1 + it) * Ht, dr = (1 - Ft) / tr, Sr = G(dr), Or = dr * (1 + it), Wr = Sr * (1 - it), ni = Or - ve * ve, Pi = G(ni), cn = be + Wr + et * Pi;
+ if (n(qe - Re) < k || --Xe === 0 || cn === 0) break;
+ cn > 0 ? Re = et : qe = et, et = 0.5 * (Re + qe);
+ }
+ if (!Xe) return null;
+ var ln = O(Ft), Cn = o(ln), Kn = 1 / Cn, Aa = 2 * Ft * Cn, fa = (-3 * et + Ht * (1 + 3 * it)) * Aa, $a = (-tr * Cn - (1 - Ft) * fa) / (tr * tr), Co = 0.5 * $a / Sr, Qa = (1 - it) * Co - 2 * et * Sr * Aa, mo = -2 * Kn * Qa, Bo = -Kn * Aa, Ps = -Kn * (et * (1 + it) * $a + dr * (1 + 3 * it) * Aa);
+ return [E / 4 * (ve * (mo + Bo * Pi) + Ps * O(ve / G(Or))), ln];
+ }
+ function $n() {
+ return t.geoProjection(Mn(Li)).scale(239.75);
+ }
+ function Ma(ve, be, Re) {
+ var qe, et, Xe;
+ return ve ? (qe = _o(ve, Re), be ? (et = _o(be, 1 - Re), Xe = et[1] * et[1] + Re * qe[0] * qe[0] * et[0] * et[0], [[qe[0] * et[2] / Xe, qe[1] * qe[2] * et[0] * et[1] / Xe], [qe[1] * et[1] / Xe, -qe[0] * qe[2] * et[0] * et[2] / Xe], [qe[2] * et[1] * et[2] / Xe, -Re * qe[0] * qe[1] * et[0] / Xe]]) : [[qe[0], 0], [qe[1], 0], [qe[2], 0]]) : (et = _o(be, 1 - Re), [[0, et[0] / et[1]], [1 / et[1], 0], [et[2] / et[1], 0]]);
+ }
+ function _o(ve, be) {
+ var Re, qe, et, Xe, it;
+ if (be < p) return Xe = _(ve), qe = o(ve), Re = be * (ve - Xe * qe) / 4, [Xe - Re * qe, qe + Re * Xe, 1 - be * Xe * Xe / 2, ve - Re];
+ if (be >= 1 - p) return Re = (1 - be) / 4, qe = N(ve), Xe = Z(ve), et = 1 / qe, it = qe * j(ve), [Xe + Re * (it - ve) / (qe * qe), et - Re * Xe * et * (it - ve), et + Re * Xe * et * (it + ve), 2 * i(s(ve)) - T + Re * (it - ve) / qe];
+ var Ft = [1, 0, 0, 0, 0, 0, 0, 0, 0], Ht = [G(be), 0, 0, 0, 0, 0, 0, 0, 0], tr = 0;
+ for (qe = G(1 - be), it = 1; n(Ht[tr] / Ft[tr]) > p && tr < 8; ) Re = Ft[tr++], Ht[tr] = (Re - qe) / 2, Ft[tr] = (Re + qe) / 2, qe = G(Re * qe), it *= 2;
+ et = it * Ft[tr] * ve;
+ do
+ Xe = Ht[tr] * _(qe = et) / Ft[tr], et = (O(Xe) + et) / 2;
+ while (--tr);
+ return [_(et), Xe = o(et), Xe / o(et - qe), et];
+ }
+ function No(ve, be, Re) {
+ var qe = n(ve), et = n(be), Xe = j(et);
+ if (qe) {
+ var it = 1 / _(qe), Ft = 1 / (b(qe) * b(qe)), Ht = -(Ft + Re * (Xe * Xe * it * it) - 1 + Re), tr = (Re - 1) * Ft, dr = (-Ht + G(Ht * Ht - 4 * tr)) / 2;
+ return [po(i(1 / G(dr)), Re) * v(ve), po(i(G((dr / Ft - 1) / Re)), 1 - Re) * v(be)];
+ }
+ return [0, po(i(Xe), 1 - Re) * v(be)];
+ }
+ function po(ve, be) {
+ if (!be) return ve;
+ if (be === 1) return u(b(ve / 2 + L));
+ for (var Re = 1, qe = G(1 - be), et = G(be), Xe = 0; n(et) > p; Xe++) {
+ if (ve % E) {
+ var it = i(qe * b(ve) / Re);
+ it < 0 && (it += E), ve += it + ~~(ve / E) * E;
+ } else ve += ve;
+ et = (Re + qe) / 2, qe = G(Re * qe), et = ((Re = et) - qe) / 2;
+ }
+ return ve / (h(2, Xe) * Re);
+ }
+ function Lo(ve, be) {
+ var Re = (C - 1) / (C + 1), qe = G(1 - Re * Re), et = po(T, qe * qe), Xe = -1, it = u(b(E / 4 + n(be) / 2)), Ft = s(Xe * it) / G(Re), Ht = ko(Ft * o(Xe * ve), Ft * _(Xe * ve)), tr = No(Ht[0], Ht[1], qe * qe);
+ return [-tr[1], (be >= 0 ? 1 : -1) * (0.5 * et - tr[0])];
+ }
+ function ko(ve, be) {
+ var Re = ve * ve, qe = be + 1, et = 1 - Re - be * be;
+ return [0.5 * ((ve >= 0 ? T : -T) - a(et, 2 * ve)), -0.25 * u(et * et + 4 * Re) + 0.5 * u(qe * qe + Re)];
+ }
+ function Ds(ve, be) {
+ var Re = be[0] * be[0] + be[1] * be[1];
+ return [(ve[0] * be[0] + ve[1] * be[1]) / Re, (ve[1] * be[0] - ve[0] * be[1]) / Re];
+ }
+ Lo.invert = function(ve, be) {
+ var Re = (C - 1) / (C + 1), qe = G(1 - Re * Re), et = po(T, qe * qe), Xe = -1, it = Ma(0.5 * et - be, -ve, qe * qe), Ft = Ds(it[0], it[1]), Ht = a(Ft[1], Ft[0]) / Xe;
+ return [Ht, 2 * i(s(0.5 / Xe * u(Re * Ft[0] * Ft[0] + Re * Ft[1] * Ft[1]))) - T];
+ };
+ function Fs() {
+ return t.geoProjection(Mn(Lo)).scale(151.496);
+ }
+ function ll(ve) {
+ var be = _(ve), Re = o(ve), qe = ul(ve);
+ qe.invert = ul(-ve);
+ function et(Xe, it) {
+ var Ft = qe(Xe, it);
+ Xe = Ft[0], it = Ft[1];
+ var Ht = _(it), tr = o(it), dr = o(Xe), Sr = U(be * Ht + Re * tr * dr), Or = _(Sr), Wr = n(Or) > p ? Sr / Or : 1;
+ return [Wr * Re * _(Xe), (n(Xe) > T ? Wr : -Wr) * (be * tr - Re * Ht * dr)];
+ }
+ return et.invert = function(Xe, it) {
+ var Ft = G(Xe * Xe + it * it), Ht = -_(Ft), tr = o(Ft), dr = Ft * tr, Sr = -it * Ht, Or = Ft * be, Wr = G(dr * dr + Sr * Sr - Or * Or), ni = a(dr * Or + Sr * Wr, Sr * Or - dr * Wr), Pi = (Ft > T ? -1 : 1) * a(Xe * Ht, Ft * o(ni) * tr + it * _(ni) * Ht);
+ return qe.invert(Pi, ni);
+ }, et;
+ }
+ function ul(ve) {
+ var be = _(ve), Re = o(ve);
+ return function(qe, et) {
+ var Xe = o(et), it = o(qe) * Xe, Ft = _(qe) * Xe, Ht = _(et);
+ return [a(Ft, it * Re - Ht * be), O(Ht * Re + it * be)];
+ };
+ }
+ function zl() {
+ var ve = 0, be = t.geoProjectionMutator(ll), Re = be(ve), qe = Re.rotate, et = Re.stream, Xe = t.geoCircle();
+ return Re.parallel = function(it) {
+ if (!arguments.length) return ve * P;
+ var Ft = Re.rotate();
+ return be(ve = it * A).rotate(Ft);
+ }, Re.rotate = function(it) {
+ return arguments.length ? (qe.call(Re, [it[0], it[1] - ve * P]), Xe.center([-it[0], -it[1]]), Re) : (it = qe.call(Re), it[1] += ve * P, it);
+ }, Re.stream = function(it) {
+ return it = et(it), it.sphere = function() {
+ it.polygonStart();
+ var Ft = 0.01, Ht = Xe.radius(90 - Ft)().coordinates[0], tr = Ht.length - 1, dr = -1, Sr;
+ for (it.lineStart(); ++dr < tr; ) it.point((Sr = Ht[dr])[0], Sr[1]);
+ for (it.lineEnd(), Ht = Xe.radius(90 + Ft)().coordinates[0], tr = Ht.length - 1, it.lineStart(); --dr >= 0; ) it.point((Sr = Ht[dr])[0], Sr[1]);
+ it.lineEnd(), it.polygonEnd();
+ }, it;
+ }, Re.scale(79.4187).parallel(45).clipAngle(180 - 1e-3);
+ }
+ var us = 3, il = O(1 - 1 / us) * P, As = vr(0);
+ function cl(ve) {
+ var be = il * A, Re = xt(E, be)[0] - xt(-E, be)[0], qe = As(0, be)[1], et = xt(0, be)[1], Xe = M - et, it = g / ve, Ft = 4 / g, Ht = qe + Xe * Xe * 4 / g;
+ function tr(dr, Sr) {
+ var Or, Wr = n(Sr);
+ if (Wr > be) {
+ var ni = f(ve - 1, c(0, l((dr + E) / it)));
+ dr += E * (ve - 1) / ve - ni * it, Or = xt(dr, Wr), Or[0] = Or[0] * g / Re - g * (ve - 1) / (2 * ve) + ni * g / ve, Or[1] = qe + (Or[1] - et) * 4 * Xe / g, Sr < 0 && (Or[1] = -Or[1]);
+ } else Or = As(dr, Sr);
+ return Or[0] *= Ft, Or[1] /= Ht, Or;
+ }
+ return tr.invert = function(dr, Sr) {
+ dr /= Ft, Sr *= Ht;
+ var Or = n(Sr);
+ if (Or > qe) {
+ var Wr = f(ve - 1, c(0, l((dr + E) / it)));
+ dr = (dr + E * (ve - 1) / ve - Wr * it) * Re / g;
+ var ni = xt.invert(dr, 0.25 * (Or - qe) * g / Xe + et);
+ return ni[0] -= E * (ve - 1) / ve - Wr * it, Sr < 0 && (ni[1] = -ni[1]), ni;
+ }
+ return As.invert(dr, Sr);
+ }, tr;
+ }
+ function Ks(ve, be) {
+ return [ve, be & 1 ? 90 - p : il];
+ }
+ function zs(ve, be) {
+ return [ve, be & 1 ? -90 + p : -il];
+ }
+ function Io(ve) {
+ return [ve[0] * (1 - p), ve[1]];
+ }
+ function ls(ve) {
+ var be = [].concat(r.range(-180, 180 + ve / 2, ve).map(Ks), r.range(180, -180 - ve / 2, -ve).map(zs));
+ return { type: "Polygon", coordinates: [ve === 180 ? be.map(Io) : be] };
+ }
+ function Yl() {
+ var ve = 4, be = t.geoProjectionMutator(cl), Re = be(ve), qe = Re.stream;
+ return Re.lobes = function(et) {
+ return arguments.length ? be(ve = +et) : ve;
+ }, Re.stream = function(et) {
+ var Xe = Re.rotate(), it = qe(et), Ft = (Re.rotate([0, 0]), qe(et));
+ return Re.rotate(Xe), it.sphere = function() {
+ t.geoStream(ls(180 / ve), Ft);
+ }, it;
+ }, Re.scale(239.75);
+ }
+ function Su(ve) {
+ var be = 1 + ve, Re = _(1 / be), qe = O(Re), et = 2 * G(E / (Xe = E + 4 * qe * be)), Xe, it = 0.5 * et * (be + G(ve * (2 + ve))), Ft = ve * ve, Ht = be * be;
+ function tr(dr, Sr) {
+ var Or = 1 - _(Sr), Wr, ni;
+ if (Or && Or < 2) {
+ var Pi = T - Sr, cn = 25, ln;
+ do {
+ var Cn = _(Pi), Kn = o(Pi), Aa = qe + a(Cn, be - Kn), fa = 1 + Ht - 2 * be * Kn;
+ Pi -= ln = (Pi - Ft * qe - be * Cn + fa * Aa - 0.5 * Or * Xe) / (2 * be * Cn * Aa);
+ } while (n(ln) > k && --cn > 0);
+ Wr = et * G(fa), ni = dr * Aa / E;
+ } else Wr = et * (ve + Or), ni = dr * qe / E;
+ return [Wr * _(ni), it - Wr * o(ni)];
+ }
+ return tr.invert = function(dr, Sr) {
+ var Or = dr * dr + (Sr -= it) * Sr, Wr = (1 + Ht - Or / (et * et)) / (2 * be), ni = U(Wr), Pi = _(ni), cn = qe + a(Pi, be - Wr);
+ return [O(dr / G(Or)) * E / cn, O(1 - 2 * (ni - Ft * qe - be * Pi + (1 + Ht - 2 * be * Wr) * cn) / Xe)];
+ }, tr;
+ }
+ function nc() {
+ var ve = 1, be = t.geoProjectionMutator(Su), Re = be(ve);
+ return Re.ratio = function(qe) {
+ return arguments.length ? be(ve = +qe) : ve;
+ }, Re.scale(167.774).center([0, 18.67]);
+ }
+ var bs = 0.7109889596207567, Rn = 0.0528035274542;
+ function _a(ve, be) {
+ return be > -0.7109889596207567 ? (ve = sr(ve, be), ve[1] += Rn, ve) : _t(ve, be);
+ }
+ _a.invert = function(ve, be) {
+ return be > -0.7109889596207567 ? sr.invert(ve, be - Rn) : _t.invert(ve, be);
+ };
+ function Vu() {
+ return t.geoProjection(_a).rotate([-20, -55]).scale(164.263).center([0, -5.4036]);
+ }
+ function Ol(ve, be) {
+ return n(be) > bs ? (ve = sr(ve, be), ve[1] -= be > 0 ? Rn : -0.0528035274542, ve) : _t(ve, be);
+ }
+ Ol.invert = function(ve, be) {
+ return n(be) > bs ? sr.invert(ve, be + (be > 0 ? Rn : -0.0528035274542)) : _t.invert(ve, be);
+ };
+ function xo() {
+ return t.geoProjection(Ol).scale(152.63);
+ }
+ function Kl(ve, be, Re, qe) {
+ var et = G(4 * E / (2 * Re + (1 + ve - be / 2) * _(2 * Re) + (ve + be) / 2 * _(4 * Re) + be / 2 * _(6 * Re))), Xe = G(qe * _(Re) * G((1 + ve * o(2 * Re) + be * o(4 * Re)) / (1 + ve + be))), it = Re * Ht(1);
+ function Ft(Sr) {
+ return G(1 + ve * o(2 * Sr) + be * o(4 * Sr));
+ }
+ function Ht(Sr) {
+ var Or = Sr * Re;
+ return (2 * Or + (1 + ve - be / 2) * _(2 * Or) + (ve + be) / 2 * _(4 * Or) + be / 2 * _(6 * Or)) / Re;
+ }
+ function tr(Sr) {
+ return Ft(Sr) * _(Sr);
+ }
+ var dr = function(Sr, Or) {
+ var Wr = Re * Vt(Ht, it * _(Or) / Re, Or / E);
+ isNaN(Wr) && (Wr = Re * v(Or));
+ var ni = et * Ft(Wr);
+ return [ni * Xe * Sr / E * o(Wr), ni / Xe * _(Wr)];
+ };
+ return dr.invert = function(Sr, Or) {
+ var Wr = Vt(tr, Or * Xe / et);
+ return [Sr * E / (o(Wr) * et * Xe * Ft(Wr)), O(Re * Ht(Wr / Re) / it)];
+ }, Re === 0 && (et = G(qe / E), dr = function(Sr, Or) {
+ return [Sr * et, _(Or) / et];
+ }, dr.invert = function(Sr, Or) {
+ return [Sr / et, O(Or * et)];
+ }), dr;
+ }
+ function Ns() {
+ var ve = 1, be = 0, Re = 45 * A, qe = 2, et = t.geoProjectionMutator(Kl), Xe = et(ve, be, Re, qe);
+ return Xe.a = function(it) {
+ return arguments.length ? et(ve = +it, be, Re, qe) : ve;
+ }, Xe.b = function(it) {
+ return arguments.length ? et(ve, be = +it, Re, qe) : be;
+ }, Xe.psiMax = function(it) {
+ return arguments.length ? et(ve, be, Re = +it * A, qe) : Re * P;
+ }, Xe.ratio = function(it) {
+ return arguments.length ? et(ve, be, Re, qe = +it) : qe;
+ }, Xe.scale(180.739);
+ }
+ function Hl(ve, be, Re, qe, et, Xe, it, Ft, Ht, tr, dr) {
+ if (dr.nanEncountered) return NaN;
+ var Sr, Or, Wr, ni, Pi, cn, ln, Cn, Kn, Aa;
+ if (Sr = Re - be, Or = ve(be + Sr * 0.25), Wr = ve(Re - Sr * 0.25), isNaN(Or)) {
+ dr.nanEncountered = true;
+ return;
+ }
+ if (isNaN(Wr)) {
+ dr.nanEncountered = true;
+ return;
+ }
+ return ni = Sr * (qe + 4 * Or + et) / 12, Pi = Sr * (et + 4 * Wr + Xe) / 12, cn = ni + Pi, Aa = (cn - it) / 15, tr > Ht ? (dr.maxDepthCount++, cn + Aa) : Math.abs(Aa) < Ft ? cn + Aa : (ln = be + Sr * 0.5, Cn = Hl(ve, be, ln, qe, Or, et, ni, Ft * 0.5, Ht, tr + 1, dr), isNaN(Cn) ? (dr.nanEncountered = true, NaN) : (Kn = Hl(ve, ln, Re, et, Wr, Xe, Pi, Ft * 0.5, Ht, tr + 1, dr), isNaN(Kn) ? (dr.nanEncountered = true, NaN) : Cn + Kn));
+ }
+ function ac(ve, be, Re, qe, et) {
+ var Xe = { maxDepthCount: 0, nanEncountered: false };
+ et === void 0 && (et = 20);
+ var it = ve(be), Ft = ve(0.5 * (be + Re)), Ht = ve(Re), tr = (it + 4 * Ft + Ht) * (Re - be) / 6, dr = Hl(ve, be, Re, it, Ft, Ht, tr, qe, et, 1, Xe);
+ return dr;
+ }
+ function aa(ve, be, Re) {
+ function qe(Wr) {
+ return ve + (1 - ve) * h(1 - h(Wr, be), 1 / be);
+ }
+ function et(Wr) {
+ return ac(qe, 0, Wr, 1e-4);
+ }
+ for (var Xe = 1 / et(1), it = 1e3, Ft = (1 + 1e-8) * Xe, Ht = [], tr = 0; tr <= it; tr++) Ht.push(et(tr / it) * Ft);
+ function dr(Wr) {
+ var ni = 0, Pi = it, cn = it >> 1;
+ do
+ Ht[cn] > Wr ? Pi = cn : ni = cn, cn = ni + Pi >> 1;
+ while (cn > ni);
+ var ln = Ht[cn + 1] - Ht[cn];
+ return ln && (ln = (Wr - Ht[cn + 1]) / ln), (cn + 1 + ln) / it;
+ }
+ var Sr = 2 * dr(1) / E * Xe / Re, Or = function(Wr, ni) {
+ var Pi = dr(n(_(ni))), cn = qe(Pi) * Wr;
+ return Pi /= Sr, [cn, ni >= 0 ? Pi : -Pi];
+ };
+ return Or.invert = function(Wr, ni) {
+ var Pi;
+ return ni *= Sr, n(ni) < 1 && (Pi = v(ni) * O(et(n(ni)) * Xe)), [Wr / qe(n(ni)), Pi];
+ }, Or;
+ }
+ function Oo() {
+ var ve = 0, be = 2.5, Re = 1.183136, qe = t.geoProjectionMutator(aa), et = qe(ve, be, Re);
+ return et.alpha = function(Xe) {
+ return arguments.length ? qe(ve = +Xe, be, Re) : ve;
+ }, et.k = function(Xe) {
+ return arguments.length ? qe(ve, be = +Xe, Re) : be;
+ }, et.gamma = function(Xe) {
+ return arguments.length ? qe(ve, be, Re = +Xe) : Re;
+ }, et.scale(152.63);
+ }
+ function qo(ve, be) {
+ return n(ve[0] - be[0]) < p && n(ve[1] - be[1]) < p;
+ }
+ function ql(ve, be) {
+ for (var Re = -1, qe = ve.length, et = ve[0], Xe, it, Ft, Ht = []; ++Re < qe; ) {
+ Xe = ve[Re], it = (Xe[0] - et[0]) / be, Ft = (Xe[1] - et[1]) / be;
+ for (var tr = 0; tr < be; ++tr) Ht.push([et[0] + tr * it, et[1] + tr * Ft]);
+ et = Xe;
+ }
+ return Ht.push(Xe), Ht;
+ }
+ function Pc(ve) {
+ var be = [], Re, qe, et, Xe, it, Ft, Ht, tr = ve[0].length;
+ for (Ht = 0; Ht < tr; ++Ht) Re = ve[0][Ht], qe = Re[0][0], et = Re[0][1], Xe = Re[1][1], it = Re[2][0], Ft = Re[2][1], be.push(ql([[qe + p, et + p], [qe + p, Xe - p], [it - p, Xe - p], [it - p, Ft + p]], 30));
+ for (Ht = ve[1].length - 1; Ht >= 0; --Ht) Re = ve[1][Ht], qe = Re[0][0], et = Re[0][1], Xe = Re[1][1], it = Re[2][0], Ft = Re[2][1], be.push(ql([[it - p, Ft - p], [it - p, Xe + p], [qe + p, Xe + p], [qe + p, et - p]], 30));
+ return { type: "Polygon", coordinates: [r.merge(be)] };
+ }
+ function Do(ve, be, Re) {
+ var qe, et;
+ function Xe(Ht, tr) {
+ for (var dr = tr < 0 ? -1 : 1, Sr = be[+(tr < 0)], Or = 0, Wr = Sr.length - 1; Or < Wr && Ht > Sr[Or][2][0]; ++Or) ;
+ var ni = ve(Ht - Sr[Or][1][0], tr);
+ return ni[0] += ve(Sr[Or][1][0], dr * tr > dr * Sr[Or][0][1] ? Sr[Or][0][1] : tr)[0], ni;
+ }
+ Re ? Xe.invert = Re(Xe) : ve.invert && (Xe.invert = function(Ht, tr) {
+ for (var dr = et[+(tr < 0)], Sr = be[+(tr < 0)], Or = 0, Wr = dr.length; Or < Wr; ++Or) {
+ var ni = dr[Or];
+ if (ni[0][0] <= Ht && Ht < ni[1][0] && ni[0][1] <= tr && tr < ni[1][1]) {
+ var Pi = ve.invert(Ht - ve(Sr[Or][1][0], 0)[0], tr);
+ return Pi[0] += Sr[Or][1][0], qo(Xe(Pi[0], Pi[1]), [Ht, tr]) ? Pi : null;
+ }
+ }
+ });
+ var it = t.geoProjection(Xe), Ft = it.stream;
+ return it.stream = function(Ht) {
+ var tr = it.rotate(), dr = Ft(Ht), Sr = (it.rotate([0, 0]), Ft(Ht));
+ return it.rotate(tr), dr.sphere = function() {
+ t.geoStream(qe, Sr);
+ }, dr;
+ }, it.lobes = function(Ht) {
+ return arguments.length ? (qe = Pc(Ht), be = Ht.map(function(tr) {
+ return tr.map(function(dr) {
+ return [[dr[0][0] * A, dr[0][1] * A], [dr[1][0] * A, dr[1][1] * A], [dr[2][0] * A, dr[2][1] * A]];
+ });
+ }), et = be.map(function(tr) {
+ return tr.map(function(dr) {
+ var Sr = ve(dr[0][0], dr[0][1])[0], Or = ve(dr[2][0], dr[2][1])[0], Wr = ve(dr[1][0], dr[0][1])[1], ni = ve(dr[1][0], dr[1][1])[1], Pi;
+ return Wr > ni && (Pi = Wr, Wr = ni, ni = Pi), [[Sr, Wr], [Or, ni]];
+ });
+ }), it) : be.map(function(tr) {
+ return tr.map(function(dr) {
+ return [[dr[0][0] * P, dr[0][1] * P], [dr[1][0] * P, dr[1][1] * P], [dr[2][0] * P, dr[2][1] * P]];
+ });
+ });
+ }, be != null && it.lobes(be), it;
+ }
+ var rf = [[[[-180, 0], [-100, 90], [-40, 0]], [[-40, 0], [30, 90], [180, 0]]], [[[-180, 0], [-160, -90], [-100, 0]], [[-100, 0], [-60, -90], [-20, 0]], [[-20, 0], [20, -90], [80, 0]], [[80, 0], [140, -90], [180, 0]]]];
+ function Vf() {
+ return Do(St, rf).scale(160.857);
+ }
+ var pl = [[[[-180, 0], [-100, 90], [-40, 0]], [[-40, 0], [30, 90], [180, 0]]], [[[-180, 0], [-160, -90], [-100, 0]], [[-100, 0], [-60, -90], [-20, 0]], [[-20, 0], [20, -90], [80, 0]], [[80, 0], [140, -90], [180, 0]]]];
+ function Zc() {
+ return Do(Ol, pl).scale(152.63);
+ }
+ var Jl = [[[[-180, 0], [-100, 90], [-40, 0]], [[-40, 0], [30, 90], [180, 0]]], [[[-180, 0], [-160, -90], [-100, 0]], [[-100, 0], [-60, -90], [-20, 0]], [[-20, 0], [20, -90], [80, 0]], [[80, 0], [140, -90], [180, 0]]]];
+ function Os() {
+ return Do(sr, Jl).scale(169.529);
+ }
+ var yu = [[[[-180, 0], [-90, 90], [0, 0]], [[0, 0], [90, 90], [180, 0]]], [[[-180, 0], [-90, -90], [0, 0]], [[0, 0], [90, -90], [180, 0]]]];
+ function oc() {
+ return Do(sr, yu).scale(169.529).rotate([20, 0]);
+ }
+ var Cf = [[[[-180, 35], [-30, 90], [0, 35]], [[0, 35], [30, 90], [180, 35]]], [[[-180, -10], [-102, -90], [-65, -10]], [[-65, -10], [5, -90], [77, -10]], [[77, -10], [103, -90], [180, -10]]]];
+ function sc() {
+ return Do(_a, Cf, ot).rotate([-20, -55]).scale(164.263).center([0, -5.4036]);
+ }
+ var jh = [[[[-180, 0], [-110, 90], [-40, 0]], [[-40, 0], [0, 90], [40, 0]], [[40, 0], [110, 90], [180, 0]]], [[[-180, 0], [-110, -90], [-40, 0]], [[-40, 0], [0, -90], [40, 0]], [[40, 0], [110, -90], [180, 0]]]];
+ function Lf() {
+ return Do(_t, jh).scale(152.63).rotate([-20, 0]);
+ }
+ function cs(ve, be) {
+ return [3 / g * ve * G(E * E / 3 - be * be), be];
+ }
+ cs.invert = function(ve, be) {
+ return [g / 3 * ve / G(E * E / 3 - be * be), be];
+ };
+ function nf() {
+ return t.geoProjection(cs).scale(158.837);
+ }
+ function Gf(ve) {
+ function be(Re, qe) {
+ if (n(n(qe) - T) < p) return [0, qe < 0 ? -2 : 2];
+ var et = _(qe), Xe = h((1 + et) / (1 - et), ve / 2), it = 0.5 * (Xe + 1 / Xe) + o(Re *= ve);
+ return [2 * _(Re) / it, (Xe - 1 / Xe) / it];
+ }
+ return be.invert = function(Re, qe) {
+ var et = n(qe);
+ if (n(et - 2) < p) return Re ? null : [0, v(qe) * T];
+ if (et > 2) return null;
+ Re /= 2, qe /= 2;
+ var Xe = Re * Re, it = qe * qe, Ft = 2 * qe / (1 + Xe + it);
+ return Ft = h((1 + Ft) / (1 - Ft), 1 / ve), [a(2 * Re, 1 - Xe - it) / ve, O((Ft - 1) / (Ft + 1))];
+ }, be;
+ }
+ function $l() {
+ var ve = 0.5, be = t.geoProjectionMutator(Gf), Re = be(ve);
+ return Re.spacing = function(qe) {
+ return arguments.length ? be(ve = +qe) : ve;
+ }, Re.scale(124.75);
+ }
+ var fl = E / C;
+ function lc(ve, be) {
+ return [ve * (1 + G(o(be))) / 2, be / (o(be / 2) * o(ve / 6))];
+ }
+ lc.invert = function(ve, be) {
+ var Re = n(ve), qe = n(be), et = p, Xe = T;
+ qe < fl ? Xe *= qe / fl : et += 6 * U(fl / qe);
+ for (var it = 0; it < 25; it++) {
+ var Ft = _(Xe), Ht = G(o(Xe)), tr = _(Xe / 2), dr = o(Xe / 2), Sr = _(et / 6), Or = o(et / 6), Wr = 0.5 * et * (1 + Ht) - Re, ni = Xe / (dr * Or) - qe, Pi = Ht ? -0.25 * et * Ft / Ht : 0, cn = 0.5 * (1 + Ht), ln = (1 + 0.5 * Xe * tr / dr) / (dr * Or), Cn = Xe / dr * (Sr / 6) / (Or * Or), Kn = Pi * Cn - ln * cn, Aa = (Wr * Cn - ni * cn) / Kn, fa = (ni * Pi - Wr * ln) / Kn;
+ if (Xe -= Aa, et -= fa, n(Aa) < p && n(fa) < p) break;
+ }
+ return [ve < 0 ? -et : et, be < 0 ? -Xe : Xe];
+ };
+ function Fu() {
+ return t.geoProjection(lc).scale(97.2672);
+ }
+ function Es(ve, be) {
+ var Re = ve * ve, qe = be * be;
+ return [ve * (0.975534 + qe * (-0.119161 + Re * -0.0143059 + qe * -0.0547009)), be * (1.00384 + Re * (0.0802894 + qe * -0.02855 + Re * 199025e-9) + qe * (0.0998909 + qe * -0.0491032))];
+ }
+ Es.invert = function(ve, be) {
+ var Re = v(ve) * E, qe = be / 2, et = 50;
+ do {
+ var Xe = Re * Re, it = qe * qe, Ft = Re * qe, Ht = Re * (0.975534 + it * (-0.119161 + Xe * -0.0143059 + it * -0.0547009)) - ve, tr = qe * (1.00384 + Xe * (0.0802894 + it * -0.02855 + Xe * 199025e-9) + it * (0.0998909 + it * -0.0491032)) - be, dr = 0.975534 - it * (0.119161 + 3 * Xe * 0.0143059 + it * 0.0547009), Sr = -Ft * (2 * 0.119161 + 4 * 0.0547009 * it + 2 * 0.0143059 * Xe), Or = Ft * (2 * 0.0802894 + 4 * 199025e-9 * Xe + 2 * -0.02855 * it), Wr = 1.00384 + Xe * (0.0802894 + 199025e-9 * Xe) + it * (3 * (0.0998909 - 0.02855 * Xe) - 5 * 0.0491032 * it), ni = Sr * Or - Wr * dr, Pi = (tr * Sr - Ht * Wr) / ni, cn = (Ht * Or - tr * dr) / ni;
+ Re -= Pi, qe -= cn;
+ } while ((n(Pi) > p || n(cn) > p) && --et > 0);
+ return et && [Re, qe];
+ };
+ function Hs() {
+ return t.geoProjection(Es).scale(139.98);
+ }
+ function Go(ve, be) {
+ return [_(ve) / o(be), b(be) * o(ve)];
+ }
+ Go.invert = function(ve, be) {
+ var Re = ve * ve, qe = be * be, et = qe + 1, Xe = Re + et, it = ve ? x * G((Xe - G(Xe * Xe - 4 * Re)) / Re) : 1 / G(et);
+ return [O(ve * it), v(be) * U(it)];
+ };
+ function ps() {
+ return t.geoProjection(Go).scale(144.049).clipAngle(90 - 1e-3);
+ }
+ function uc(ve) {
+ var be = o(ve), Re = b(L + ve / 2);
+ function qe(et, Xe) {
+ var it = Xe - ve, Ft = n(it) < p ? et * be : n(Ft = L + Xe / 2) < p || n(n(Ft) - T) < p ? 0 : et * it / u(b(Ft) / Re);
+ return [Ft, it];
+ }
+ return qe.invert = function(et, Xe) {
+ var it, Ft = Xe + ve;
+ return [n(Xe) < p ? et / be : n(it = L + Ft / 2) < p || n(n(it) - T) < p ? 0 : et * u(b(it) / Re) / Xe, Ft];
+ }, qe;
+ }
+ function xl() {
+ return Gt(uc).parallel(40).scale(158.837);
+ }
+ function Gu(ve, be) {
+ return [ve, 1.25 * u(b(L + 0.4 * be))];
+ }
+ Gu.invert = function(ve, be) {
+ return [ve, 2.5 * i(s(0.8 * be)) - 0.625 * E];
+ };
+ function qs() {
+ return t.geoProjection(Gu).scale(108.318);
+ }
+ function od(ve) {
+ var be = ve.length - 1;
+ function Re(qe, et) {
+ for (var Xe = o(et), it = 2 / (1 + Xe * o(qe)), Ft = it * Xe * _(qe), Ht = it * _(et), tr = be, dr = ve[tr], Sr = dr[0], Or = dr[1], Wr; --tr >= 0; ) dr = ve[tr], Sr = dr[0] + Ft * (Wr = Sr) - Ht * Or, Or = dr[1] + Ft * Or + Ht * Wr;
+ return Sr = Ft * (Wr = Sr) - Ht * Or, Or = Ft * Or + Ht * Wr, [Sr, Or];
+ }
+ return Re.invert = function(qe, et) {
+ var Xe = 20, it = qe, Ft = et;
+ do {
+ for (var Ht = be, tr = ve[Ht], dr = tr[0], Sr = tr[1], Or = 0, Wr = 0, ni; --Ht >= 0; ) tr = ve[Ht], Or = dr + it * (ni = Or) - Ft * Wr, Wr = Sr + it * Wr + Ft * ni, dr = tr[0] + it * (ni = dr) - Ft * Sr, Sr = tr[1] + it * Sr + Ft * ni;
+ Or = dr + it * (ni = Or) - Ft * Wr, Wr = Sr + it * Wr + Ft * ni, dr = it * (ni = dr) - Ft * Sr - qe, Sr = it * Sr + Ft * ni - et;
+ var Pi = Or * Or + Wr * Wr, cn, ln;
+ it -= cn = (dr * Or + Sr * Wr) / Pi, Ft -= ln = (Sr * Or - dr * Wr) / Pi;
+ } while (n(cn) + n(ln) > p * p && --Xe > 0);
+ if (Xe) {
+ var Cn = G(it * it + Ft * Ft), Kn = 2 * i(Cn * 0.5), Aa = _(Kn);
+ return [a(it * Aa, Cn * o(Kn)), Cn ? O(Ft * Aa / Cn) : 0];
+ }
+ }, Re;
+ }
+ var Po = [[0.9972523, 0], [52513e-7, -41175e-7], [74606e-7, 48125e-7], [-0.0153783, -0.1968253], [0.0636871, -0.1408027], [0.3660976, -0.2937382]], sd = [[0.98879, 0], [0, 0], [-0.050909, 0], [0, 0], [0.075528, 0]], Ko = [[0.984299, 0], [0.0211642, 37608e-7], [-0.1036018, -0.0575102], [-0.0329095, -0.0320119], [0.0499471, 0.1223335], [0.026046, 0.0899805], [7388e-7, -0.1435792], [75848e-7, -0.1334108], [-0.0216473, 0.0776645], [-0.0225161, 0.0853673]], Pa = [[0.9245, 0], [0, 0], [0.01943, 0]], af = [[0.721316, 0], [0, 0], [-881625e-8, -617325e-8]];
+ function Hu() {
+ return Bl(Po, [152, -64]).scale(1400).center([-160.908, 62.4864]).clipAngle(30).angle(7.8);
+ }
+ function bl() {
+ return Bl(sd, [95, -38]).scale(1e3).clipAngle(55).center([-96.5563, 38.8675]);
+ }
+ function Hf() {
+ return Bl(Ko, [120, -45]).scale(359.513).clipAngle(55).center([-117.474, 53.0628]);
+ }
+ function Ic() {
+ return Bl(Pa, [-20, -18]).scale(209.091).center([20, 16.7214]).clipAngle(82);
+ }
+ function yf() {
+ return Bl(af, [165, 10]).scale(250).clipAngle(130).center([-165, -10]);
+ }
+ function Bl(ve, be) {
+ var Re = t.geoProjection(od(ve)).rotate(be).clipAngle(90), qe = t.geoRotation(be), et = Re.center;
+ return delete Re.rotate, Re.center = function(Xe) {
+ return arguments.length ? et(qe(Xe)) : qe.invert(et());
+ }, Re;
+ }
+ var Ah = G(6), Qf = G(7);
+ function _f(ve, be) {
+ var Re = O(7 * _(be) / (3 * Ah));
+ return [Ah * ve * (2 * o(2 * Re / 3) - 1) / Qf, 9 * _(Re / 3) / Qf];
+ }
+ _f.invert = function(ve, be) {
+ var Re = 3 * O(be * Qf / 9);
+ return [ve * Qf / (Ah * (2 * o(2 * Re / 3) - 1)), O(_(Re) * 3 * Ah / 7)];
+ };
+ function Yc() {
+ return t.geoProjection(_f).scale(164.859);
+ }
+ function eh(ve, be) {
+ for (var Re = (1 + x) * _(be), qe = be, et = 0, Xe; et < 25 && (qe -= Xe = (_(qe / 2) + _(qe) - Re) / (0.5 * o(qe / 2) + o(qe)), !(n(Xe) < p)); et++) ;
+ return [ve * (1 + 2 * o(qe) / o(qe / 2)) / (3 * C), 2 * G(3) * _(qe / 2) / G(2 + C)];
+ }
+ eh.invert = function(ve, be) {
+ var Re = be * G(2 + C) / (2 * G(3)), qe = 2 * O(Re);
+ return [3 * C * ve / (1 + 2 * o(qe) / o(qe / 2)), O((Re + _(qe)) / (1 + x))];
+ };
+ function th() {
+ return t.geoProjection(eh).scale(188.209);
+ }
+ function ju(ve, be) {
+ for (var Re = G(6 / (4 + E)), qe = (1 + E / 4) * _(be), et = be / 2, Xe = 0, it; Xe < 25 && (et -= it = (et / 2 + _(et) - qe) / (0.5 + o(et)), !(n(it) < p)); Xe++) ;
+ return [Re * (0.5 + o(et)) * ve / 1.5, Re * et];
+ }
+ ju.invert = function(ve, be) {
+ var Re = G(6 / (4 + E)), qe = be / Re;
+ return n(n(qe) - T) < p && (qe = qe < 0 ? -T : T), [1.5 * ve / (Re * (0.5 + o(qe))), O((qe / 2 + _(qe)) / (1 + E / 4))];
+ };
+ function jf() {
+ return t.geoProjection(ju).scale(166.518);
+ }
+ function cc(ve, be) {
+ var Re = be * be, qe = Re * Re, et = Re * qe;
+ return [ve * (0.84719 - 0.13063 * Re + et * et * (-0.04515 + 0.05494 * Re - 0.02326 * qe + 331e-5 * et)), be * (1.01183 + qe * qe * (-0.02625 + 0.01926 * Re - 396e-5 * qe))];
+ }
+ cc.invert = function(ve, be) {
+ var Re = be, qe = 25, et, Xe, it, Ft;
+ do
+ Xe = Re * Re, it = Xe * Xe, Re -= et = (Re * (1.01183 + it * it * (-0.02625 + 0.01926 * Xe - 396e-5 * it)) - be) / (1.01183 + it * it * (9 * -0.02625 + 11 * 0.01926 * Xe + 13 * -396e-5 * it));
+ while (n(et) > k && --qe > 0);
+ return Xe = Re * Re, it = Xe * Xe, Ft = Xe * it, [ve / (0.84719 - 0.13063 * Xe + Ft * Ft * (-0.04515 + 0.05494 * Xe - 0.02326 * it + 331e-5 * Ft)), Re];
+ };
+ function of() {
+ return t.geoProjection(cc).scale(175.295);
+ }
+ function Nl(ve, be) {
+ return [ve * (1 + o(be)) / 2, 2 * (be - b(be / 2))];
+ }
+ Nl.invert = function(ve, be) {
+ for (var Re = be / 2, qe = 0, et = 1 / 0; qe < 10 && n(et) > p; ++qe) {
+ var Xe = o(be / 2);
+ be -= et = (be - b(be / 2) - Re) / (1 - 0.5 / (Xe * Xe));
+ }
+ return [2 * ve / (1 + o(be)), be];
+ };
+ function Kc() {
+ return t.geoProjection(Nl).scale(152.63);
+ }
+ var Rc = [[[[-180, 0], [-90, 90], [0, 0]], [[0, 0], [90, 90], [180, 0]]], [[[-180, 0], [-90, -90], [0, 0]], [[0, 0], [90, -90], [180, 0]]]];
+ function gs() {
+ return Do(je(1 / 0), Rc).rotate([20, 0]).scale(152.63);
+ }
+ function Wf(ve, be) {
+ var Re = _(be), qe = o(be), et = v(ve);
+ if (ve === 0 || n(be) === T) return [0, be];
+ if (be === 0) return [ve, 0];
+ if (n(ve) === T) return [ve * qe, T * Re];
+ var Xe = E / (2 * ve) - 2 * ve / E, it = 2 * be / E, Ft = (1 - it * it) / (Re - it), Ht = Xe * Xe, tr = Ft * Ft, dr = 1 + Ht / tr, Sr = 1 + tr / Ht, Or = (Xe * Re / Ft - Xe / 2) / dr, Wr = (tr * Re / Ht + Ft / 2) / Sr, ni = Or * Or + qe * qe / dr, Pi = Wr * Wr - (tr * Re * Re / Ht + Ft * Re - 1) / Sr;
+ return [T * (Or + G(ni) * et), T * (Wr + G(Pi < 0 ? 0 : Pi) * v(-be * Xe) * et)];
+ }
+ Wf.invert = function(ve, be) {
+ ve /= T, be /= T;
+ var Re = ve * ve, qe = be * be, et = Re + qe, Xe = E * E;
+ return [ve ? (et - 1 + G((1 - et) * (1 - et) + 4 * Re)) / (2 * ve) * T : 0, Vt(function(it) {
+ return et * (E * _(it) - 2 * it) * E + 4 * it * it * (be - _(it)) + 2 * E * it - Xe * be;
+ }, 0)];
+ };
+ function Wh() {
+ return t.geoProjection(Wf).scale(127.267);
+ }
+ var rh = 1.0148, sf = 0.23185, Sh = -0.14499, Mu = 0.02406, ih = rh, js = 5 * sf, Eu = 7 * Sh, Dc = 9 * Mu, ks = 1.790857183;
+ function bc(ve, be) {
+ var Re = be * be;
+ return [ve, be * (rh + Re * Re * (sf + Re * (Sh + Mu * Re)))];
+ }
+ bc.invert = function(ve, be) {
+ be > ks ? be = ks : be < -1.790857183 && (be = -1.790857183);
+ var Re = be, qe;
+ do {
+ var et = Re * Re;
+ Re -= qe = (Re * (rh + et * et * (sf + et * (Sh + Mu * et))) - be) / (ih + et * et * (js + et * (Eu + Dc * et)));
+ } while (n(qe) > p);
+ return [ve, Re];
+ };
+ function hu() {
+ return t.geoProjection(bc).scale(139.319);
+ }
+ function _u(ve, be) {
+ if (n(be) < p) return [ve, 0];
+ var Re = b(be), qe = ve * _(be);
+ return [_(qe) / Re, be + (1 - o(qe)) / Re];
+ }
+ _u.invert = function(ve, be) {
+ if (n(be) < p) return [ve, 0];
+ var Re = ve * ve + be * be, qe = be * 0.5, et = 10, Xe;
+ do {
+ var it = b(qe), Ft = 1 / o(qe), Ht = Re - 2 * be * qe + qe * qe;
+ qe -= Xe = (it * Ht + 2 * (qe - be)) / (2 + Ht * Ft * Ft + 2 * (qe - be) * it);
+ } while (n(Xe) > p && --et > 0);
+ return it = b(qe), [(n(be) < n(qe + 1 / it) ? O(ve * it) : v(be) * v(ve) * (U(n(ve * it)) + T)) / _(qe), qe];
+ };
+ function nl() {
+ return t.geoProjection(_u).scale(103.74);
+ }
+ function nh(ve, be) {
+ var Re = Fc(ve[1], ve[0]), qe = Fc(be[1], be[0]), et = bd(Re, qe), Xe = wc(Re) / wc(qe);
+ return zu([1, 0, ve[0][0], 0, 1, ve[0][1]], zu([Xe, 0, 0, 0, Xe, 0], zu([o(et), _(et), 0, -_(et), o(et), 0], [1, 0, -be[0][0], 0, 1, -be[0][1]])));
+ }
+ function Mh(ve) {
+ var be = 1 / (ve[0] * ve[4] - ve[1] * ve[3]);
+ return [be * ve[4], -be * ve[1], be * (ve[1] * ve[5] - ve[2] * ve[4]), -be * ve[3], be * ve[0], be * (ve[2] * ve[3] - ve[0] * ve[5])];
+ }
+ function zu(ve, be) {
+ return [ve[0] * be[0] + ve[1] * be[3], ve[0] * be[1] + ve[1] * be[4], ve[0] * be[2] + ve[1] * be[5] + ve[2], ve[3] * be[0] + ve[4] * be[3], ve[3] * be[1] + ve[4] * be[4], ve[3] * be[2] + ve[4] * be[5] + ve[5]];
+ }
+ function Fc(ve, be) {
+ return [ve[0] - be[0], ve[1] - be[1]];
+ }
+ function wc(ve) {
+ return G(ve[0] * ve[0] + ve[1] * ve[1]);
+ }
+ function bd(ve, be) {
+ return a(ve[0] * be[1] - ve[1] * be[0], ve[0] * be[0] + ve[1] * be[1]);
+ }
+ function xf(ve, be, Re) {
+ qe(ve, { transform: null });
+ function qe(tr, dr) {
+ if (tr.edges = jl(tr.face), dr.face) {
+ var Sr = tr.shared = bf(tr.face, dr.face), Or = nh(Sr.map(dr.project), Sr.map(tr.project));
+ tr.transform = dr.transform ? zu(dr.transform, Or) : Or;
+ for (var Wr = dr.edges, ni = 0, Pi = Wr.length; ni < Pi; ++ni) Ou(Sr[0], Wr[ni][1]) && Ou(Sr[1], Wr[ni][0]) && (Wr[ni] = tr), Ou(Sr[0], Wr[ni][0]) && Ou(Sr[1], Wr[ni][1]) && (Wr[ni] = tr);
+ for (Wr = tr.edges, ni = 0, Pi = Wr.length; ni < Pi; ++ni) Ou(Sr[0], Wr[ni][0]) && Ou(Sr[1], Wr[ni][1]) && (Wr[ni] = dr), Ou(Sr[0], Wr[ni][1]) && Ou(Sr[1], Wr[ni][0]) && (Wr[ni] = dr);
+ } else tr.transform = dr.transform;
+ return tr.children && tr.children.forEach(function(cn) {
+ qe(cn, tr);
+ }), tr;
+ }
+ function et(tr, dr) {
+ var Sr = be(tr, dr), Or = Sr.project([tr * P, dr * P]), Wr;
+ return (Wr = Sr.transform) ? [Wr[0] * Or[0] + Wr[1] * Or[1] + Wr[2], -(Wr[3] * Or[0] + Wr[4] * Or[1] + Wr[5])] : (Or[1] = -Or[1], Or);
+ }
+ lf(ve) && (et.invert = function(tr, dr) {
+ var Sr = Xe(ve, [tr, -dr]);
+ return Sr && (Sr[0] *= A, Sr[1] *= A, Sr);
+ });
+ function Xe(tr, dr) {
+ var Sr = tr.project.invert, Or = tr.transform, Wr = dr;
+ if (Or && (Or = Mh(Or), Wr = [Or[0] * Wr[0] + Or[1] * Wr[1] + Or[2], Or[3] * Wr[0] + Or[4] * Wr[1] + Or[5]]), Sr && tr === it(ni = Sr(Wr))) return ni;
+ for (var ni, Pi = tr.children, cn = 0, ln = Pi && Pi.length; cn < ln; ++cn) if (ni = Xe(Pi[cn], dr)) return ni;
+ }
+ function it(tr) {
+ return be(tr[0] * A, tr[1] * A);
+ }
+ var Ft = t.geoProjection(et), Ht = Ft.stream;
+ return Ft.stream = function(tr) {
+ var dr = Ft.rotate(), Sr = Ht(tr), Or = (Ft.rotate([0, 0]), Ht(tr));
+ return Ft.rotate(dr), Sr.sphere = function() {
+ Or.polygonStart(), Or.lineStart(), Pf(Or, ve), Or.lineEnd(), Or.polygonEnd();
+ }, Sr;
+ }, Ft.angle(Re == null ? -30 : Re * P);
+ }
+ function Pf(ve, be, Re) {
+ var qe, et = be.edges, Xe = et.length, it, Ft = { type: "MultiPoint", coordinates: be.face }, Ht = be.face.filter(function(Pi) {
+ return n(Pi[1]) !== 90;
+ }), tr = t.geoBounds({ type: "MultiPoint", coordinates: Ht }), dr = false, Sr = -1, Or = tr[1][0] - tr[0][0], Wr = Or === 180 || Or === 360 ? [(tr[0][0] + tr[1][0]) / 2, (tr[0][1] + tr[1][1]) / 2] : t.geoCentroid(Ft);
+ if (Re) for (; ++Sr < Xe && et[Sr] !== Re; ) ;
+ ++Sr;
+ for (var ni = 0; ni < Xe; ++ni) it = et[(ni + Sr) % Xe], Array.isArray(it) ? (dr || (ve.point((qe = t.geoInterpolate(it[0], Wr)(p))[0], qe[1]), dr = true), ve.point((qe = t.geoInterpolate(it[1], Wr)(p))[0], qe[1])) : (dr = false, it !== Re && Pf(ve, it, be));
+ }
+ function Ou(ve, be) {
+ return ve && be && ve[0] === be[0] && ve[1] === be[1];
+ }
+ function bf(ve, be) {
+ for (var Re, qe, et = ve.length, Xe = null, it = 0; it < et; ++it) {
+ Re = ve[it];
+ for (var Ft = be.length; --Ft >= 0; ) if (qe = be[Ft], Re[0] === qe[0] && Re[1] === qe[1]) {
+ if (Xe) return [Xe, Re];
+ Xe = Re;
+ }
+ }
+ }
+ function jl(ve) {
+ for (var be = ve.length, Re = [], qe = ve[be - 1], et = 0; et < be; ++et) Re.push([qe, qe = ve[et]]);
+ return Re;
+ }
+ function lf(ve) {
+ return ve.project.invert || ve.children && ve.children.some(lf);
+ }
+ var Xh = [[0, 90], [-90, 0], [0, 0], [90, 0], [180, 0], [0, -90]], If = [[0, 2, 1], [0, 3, 2], [5, 1, 2], [5, 2, 3], [0, 1, 4], [0, 4, 3], [5, 4, 1], [5, 3, 4]].map(function(ve) {
+ return ve.map(function(be) {
+ return Xh[be];
+ });
+ });
+ function Cs(ve) {
+ ve = ve || function(Re) {
+ var qe = t.geoCentroid({ type: "MultiPoint", coordinates: Re });
+ return t.geoGnomonic().scale(1).translate([0, 0]).rotate([-qe[0], -qe[1]]);
+ };
+ var be = If.map(function(Re) {
+ return { face: Re, project: ve(Re) };
+ });
+ return [-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(Re, qe) {
+ var et = be[Re];
+ et && (et.children || (et.children = [])).push(be[qe]);
+ }), xf(be[0], function(Re, qe) {
+ return be[Re < -E / 2 ? qe < 0 ? 6 : 4 : Re < 0 ? qe < 0 ? 2 : 0 : Re < E / 2 ? qe < 0 ? 3 : 1 : qe < 0 ? 7 : 5];
+ }).angle(-30).scale(101.858).center([0, 45]);
+ }
+ var du = 2 / G(3);
+ function ku(ve, be) {
+ var Re = xt(ve, be);
+ return [Re[0] * du, Re[1]];
+ }
+ ku.invert = function(ve, be) {
+ return xt.invert(ve / du, be);
+ };
+ function Xf(ve) {
+ ve = ve || function(Re) {
+ var qe = t.geoCentroid({ type: "MultiPoint", coordinates: Re });
+ return t.geoProjection(ku).translate([0, 0]).scale(1).rotate(qe[1] > 0 ? [-qe[0], 0] : [180 - qe[0], 180]);
+ };
+ var be = If.map(function(Re) {
+ return { face: Re, project: ve(Re) };
+ });
+ return [-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(Re, qe) {
+ var et = be[Re];
+ et && (et.children || (et.children = [])).push(be[qe]);
+ }), xf(be[0], function(Re, qe) {
+ return be[Re < -E / 2 ? qe < 0 ? 6 : 4 : Re < 0 ? qe < 0 ? 2 : 0 : Re < E / 2 ? qe < 0 ? 3 : 1 : qe < 0 ? 7 : 5];
+ }).angle(-30).scale(121.906).center([0, 48.5904]);
+ }
+ function Us(ve) {
+ ve = ve || function(it) {
+ var Ft = it.length === 6 ? t.geoCentroid({ type: "MultiPoint", coordinates: it }) : it[0];
+ return t.geoGnomonic().scale(1).translate([0, 0]).rotate([-Ft[0], -Ft[1]]);
+ };
+ var be = If.map(function(it) {
+ for (var Ft = it.map(Rf), Ht = Ft.length, tr = Ft[Ht - 1], dr, Sr = [], Or = 0; Or < Ht; ++Or) dr = Ft[Or], Sr.push(Wu([tr[0] * 0.9486832980505138 + dr[0] * 0.31622776601683794, tr[1] * 0.9486832980505138 + dr[1] * 0.31622776601683794, tr[2] * 0.9486832980505138 + dr[2] * 0.31622776601683794]), Wu([dr[0] * 0.9486832980505138 + tr[0] * 0.31622776601683794, dr[1] * 0.9486832980505138 + tr[1] * 0.31622776601683794, dr[2] * 0.9486832980505138 + tr[2] * 0.31622776601683794])), tr = dr;
+ return Sr;
+ }), Re = [], qe = [-1, 0, 0, 1, 0, 1, 4, 5];
+ be.forEach(function(it, Ft) {
+ for (var Ht = If[Ft], tr = Ht.length, dr = Re[Ft] = [], Sr = 0; Sr < tr; ++Sr) be.push([Ht[Sr], it[(Sr * 2 + 2) % (2 * tr)], it[(Sr * 2 + 1) % (2 * tr)]]), qe.push(Ft), dr.push(zc(Rf(it[(Sr * 2 + 2) % (2 * tr)]), Rf(it[(Sr * 2 + 1) % (2 * tr)])));
+ });
+ var et = be.map(function(it) {
+ return { project: ve(it), face: it };
+ });
+ qe.forEach(function(it, Ft) {
+ var Ht = et[it];
+ Ht && (Ht.children || (Ht.children = [])).push(et[Ft]);
+ });
+ function Xe(it, Ft) {
+ var Ht = o(Ft), tr = [Ht * o(it), Ht * _(it), _(Ft)], dr = it < -E / 2 ? Ft < 0 ? 6 : 4 : it < 0 ? Ft < 0 ? 2 : 0 : it < E / 2 ? Ft < 0 ? 3 : 1 : Ft < 0 ? 7 : 5, Sr = Re[dr];
+ return et[wf(Sr[0], tr) < 0 ? 8 + 3 * dr : wf(Sr[1], tr) < 0 ? 8 + 3 * dr + 1 : wf(Sr[2], tr) < 0 ? 8 + 3 * dr + 2 : dr];
+ }
+ return xf(et[0], Xe).angle(-30).scale(110.625).center([0, 45]);
+ }
+ function wf(ve, be) {
+ for (var Re = 0, qe = ve.length, et = 0; Re < qe; ++Re) et += ve[Re] * be[Re];
+ return et;
+ }
+ function zc(ve, be) {
+ return [ve[1] * be[2] - ve[2] * be[1], ve[2] * be[0] - ve[0] * be[2], ve[0] * be[1] - ve[1] * be[0]];
+ }
+ function Wu(ve) {
+ return [a(ve[1], ve[0]) * P, O(c(-1, f(1, ve[2]))) * P];
+ }
+ function Rf(ve) {
+ var be = ve[0] * A, Re = ve[1] * A, qe = o(Re);
+ return [qe * o(be), qe * _(be), _(Re)];
+ }
+ function Xu() {
+ }
+ function uf(ve) {
+ if ((Re = ve.length) < 4) return false;
+ for (var be = 0, Re, qe = ve[Re - 1][1] * ve[0][0] - ve[Re - 1][0] * ve[0][1]; ++be < Re; ) qe += ve[be - 1][1] * ve[be][0] - ve[be - 1][0] * ve[be][1];
+ return qe <= 0;
+ }
+ function Zf(ve, be) {
+ for (var Re = be[0], qe = be[1], et = false, Xe = 0, it = ve.length, Ft = it - 1; Xe < it; Ft = Xe++) {
+ var Ht = ve[Xe], tr = Ht[0], dr = Ht[1], Sr = ve[Ft], Or = Sr[0], Wr = Sr[1];
+ dr > qe ^ Wr > qe && Re < (Or - tr) * (qe - dr) / (Wr - dr) + tr && (et = !et);
+ }
+ return et;
+ }
+ function Wl(ve, be) {
+ var Re = be.stream, qe;
+ if (!Re) throw new Error("invalid projection");
+ switch (ve && ve.type) {
+ case "Feature":
+ qe = Zu;
+ break;
+ case "FeatureCollection":
+ qe = ah;
+ break;
+ default:
+ qe = Tc;
+ break;
+ }
+ return qe(ve, Re);
+ }
+ function ah(ve, be) {
+ return { type: "FeatureCollection", features: ve.features.map(function(Re) {
+ return Zu(Re, be);
+ }) };
+ }
+ function Zu(ve, be) {
+ return { type: "Feature", id: ve.id, properties: ve.properties, geometry: Tc(ve.geometry, be) };
+ }
+ function Oc(ve, be) {
+ return { type: "GeometryCollection", geometries: ve.geometries.map(function(Re) {
+ return Tc(Re, be);
+ }) };
+ }
+ function Tc(ve, be) {
+ if (!ve) return null;
+ if (ve.type === "GeometryCollection") return Oc(ve, be);
+ var Re;
+ switch (ve.type) {
+ case "Point":
+ Re = qc;
+ break;
+ case "MultiPoint":
+ Re = qc;
+ break;
+ case "LineString":
+ Re = cf;
+ break;
+ case "MultiLineString":
+ Re = cf;
+ break;
+ case "Polygon":
+ Re = fc;
+ break;
+ case "MultiPolygon":
+ Re = fc;
+ break;
+ case "Sphere":
+ Re = fc;
+ break;
+ default:
+ return null;
+ }
+ return t.geoStream(ve, be(Re)), Re.result();
+ }
+ var wl = [], vu = [], qc = { point: function(ve, be) {
+ wl.push([ve, be]);
+ }, result: function() {
+ var ve = wl.length ? wl.length < 2 ? { type: "Point", coordinates: wl[0] } : { type: "MultiPoint", coordinates: wl } : null;
+ return wl = [], ve;
+ } }, cf = { lineStart: Xu, point: function(ve, be) {
+ wl.push([ve, be]);
+ }, lineEnd: function() {
+ wl.length && (vu.push(wl), wl = []);
+ }, result: function() {
+ var ve = vu.length ? vu.length < 2 ? { type: "LineString", coordinates: vu[0] } : { type: "MultiLineString", coordinates: vu } : null;
+ return vu = [], ve;
+ } }, fc = { polygonStart: Xu, lineStart: Xu, point: function(ve, be) {
+ wl.push([ve, be]);
+ }, lineEnd: function() {
+ var ve = wl.length;
+ if (ve) {
+ do
+ wl.push(wl[0].slice());
+ while (++ve < 4);
+ vu.push(wl), wl = [];
+ }
+ }, polygonEnd: Xu, result: function() {
+ if (!vu.length) return null;
+ var ve = [], be = [];
+ return vu.forEach(function(Re) {
+ uf(Re) ? ve.push([Re]) : be.push(Re);
+ }), be.forEach(function(Re) {
+ var qe = Re[0];
+ ve.some(function(et) {
+ if (Zf(et[0], qe)) return et.push(Re), true;
+ }) || ve.push([Re]);
+ }), vu = [], ve.length ? ve.length > 1 ? { type: "MultiPolygon", coordinates: ve } : { type: "Polygon", coordinates: ve[0] } : null;
+ } };
+ function Bc(ve) {
+ var be = ve(T, 0)[0] - ve(-T, 0)[0];
+ function Re(qe, et) {
+ var Xe = n(qe) < T, it = ve(Xe ? qe : qe > 0 ? qe - E : qe + E, et), Ft = (it[0] - it[1]) * x, Ht = (it[0] + it[1]) * x;
+ if (Xe) return [Ft, Ht];
+ var tr = be * x, dr = Ft > 0 ^ Ht > 0 ? -1 : 1;
+ return [dr * Ft - v(Ht) * tr, dr * Ht - v(Ft) * tr];
+ }
+ return ve.invert && (Re.invert = function(qe, et) {
+ var Xe = (qe + et) * x, it = (et - qe) * x, Ft = n(Xe) < 0.5 * be && n(it) < 0.5 * be;
+ if (!Ft) {
+ var Ht = be * x, tr = Xe > 0 ^ it > 0 ? -1 : 1, dr = -tr * qe + (it > 0 ? 1 : -1) * Ht, Sr = -tr * et + (Xe > 0 ? 1 : -1) * Ht;
+ Xe = (-dr - Sr) * x, it = (dr - Sr) * x;
+ }
+ var Or = ve.invert(Xe, it);
+ return Ft || (Or[0] += Xe > 0 ? E : -E), Or;
+ }), t.geoProjection(Re).rotate([-90, -90, 45]).clipAngle(180 - 1e-3);
+ }
+ function At() {
+ return Bc(Li).scale(176.423);
+ }
+ function Xt() {
+ return Bc(Lo).scale(111.48);
+ }
+ function Cr(ve, be) {
+ if (!(0 <= (be = +be) && be <= 20)) throw new Error("invalid digits");
+ function Re(tr) {
+ var dr = tr.length, Sr = 2, Or = new Array(dr);
+ for (Or[0] = +tr[0].toFixed(be), Or[1] = +tr[1].toFixed(be); Sr < dr; ) Or[Sr] = tr[Sr], ++Sr;
+ return Or;
+ }
+ function qe(tr) {
+ return tr.map(Re);
+ }
+ function et(tr) {
+ for (var dr = Re(tr[0]), Sr = [dr], Or = 1; Or < tr.length; Or++) {
+ var Wr = Re(tr[Or]);
+ (Wr.length > 2 || Wr[0] != dr[0] || Wr[1] != dr[1]) && (Sr.push(Wr), dr = Wr);
+ }
+ return Sr.length === 1 && tr.length > 1 && Sr.push(Re(tr[tr.length - 1])), Sr;
+ }
+ function Xe(tr) {
+ return tr.map(et);
+ }
+ function it(tr) {
+ if (tr == null) return tr;
+ var dr;
+ switch (tr.type) {
+ case "GeometryCollection":
+ dr = { type: "GeometryCollection", geometries: tr.geometries.map(it) };
+ break;
+ case "Point":
+ dr = { type: "Point", coordinates: Re(tr.coordinates) };
+ break;
+ case "MultiPoint":
+ dr = { type: tr.type, coordinates: qe(tr.coordinates) };
+ break;
+ case "LineString":
+ dr = { type: tr.type, coordinates: et(tr.coordinates) };
+ break;
+ case "MultiLineString":
+ case "Polygon":
+ dr = { type: tr.type, coordinates: Xe(tr.coordinates) };
+ break;
+ case "MultiPolygon":
+ dr = { type: "MultiPolygon", coordinates: tr.coordinates.map(Xe) };
+ break;
+ default:
+ return tr;
+ }
+ return tr.bbox != null && (dr.bbox = tr.bbox), dr;
+ }
+ function Ft(tr) {
+ var dr = { type: "Feature", properties: tr.properties, geometry: it(tr.geometry) };
+ return tr.id != null && (dr.id = tr.id), tr.bbox != null && (dr.bbox = tr.bbox), dr;
+ }
+ if (ve != null) switch (ve.type) {
+ case "Feature":
+ return Ft(ve);
+ case "FeatureCollection": {
+ var Ht = { type: "FeatureCollection", features: ve.features.map(Ft) };
+ return ve.bbox != null && (Ht.bbox = ve.bbox), Ht;
+ }
+ default:
+ return it(ve);
+ }
+ return ve;
+ }
+ function Ar(ve) {
+ var be = _(ve);
+ function Re(qe, et) {
+ var Xe = be ? b(qe * be / 2) / be : qe / 2;
+ if (!et) return [2 * Xe, -ve];
+ var it = 2 * i(Xe * _(et)), Ft = 1 / b(et);
+ return [_(it) * Ft, et + (1 - o(it)) * Ft - ve];
+ }
+ return Re.invert = function(qe, et) {
+ if (n(et += ve) < p) return [be ? 2 * i(be * qe / 2) / be : qe, 0];
+ var Xe = qe * qe + et * et, it = 0, Ft = 10, Ht;
+ do {
+ var tr = b(it), dr = 1 / o(it), Sr = Xe - 2 * et * it + it * it;
+ it -= Ht = (tr * Sr + 2 * (it - et)) / (2 + Sr * dr * dr + 2 * (it - et) * tr);
+ } while (n(Ht) > p && --Ft > 0);
+ var Or = qe * (tr = b(it)), Wr = b(n(et) < n(it + 1 / tr) ? O(Or) * 0.5 : U(Or) * 0.5 + E / 4) / _(it);
+ return [be ? 2 * i(be * Wr) / be : 2 * Wr, it];
+ }, Re;
+ }
+ function Kr() {
+ return Gt(Ar).scale(131.215);
+ }
+ var ki = [[0.9986, -0.062], [1, 0], [0.9986, 0.062], [0.9954, 0.124], [0.99, 0.186], [0.9822, 0.248], [0.973, 0.31], [0.96, 0.372], [0.9427, 0.434], [0.9216, 0.4958], [0.8962, 0.5571], [0.8679, 0.6176], [0.835, 0.6769], [0.7986, 0.7346], [0.7597, 0.7903], [0.7186, 0.8435], [0.6732, 0.8936], [0.6213, 0.9394], [0.5722, 0.9761], [0.5322, 1]];
+ ki.forEach(function(ve) {
+ ve[1] *= 1.0144;
+ });
+ function Xi(ve, be) {
+ var Re = f(18, n(be) * 36 / E), qe = l(Re), et = Re - qe, Xe = (Sr = ki[qe])[0], it = Sr[1], Ft = (Sr = ki[++qe])[0], Ht = Sr[1], tr = (Sr = ki[f(19, ++qe)])[0], dr = Sr[1], Sr;
+ return [ve * (Ft + et * (tr - Xe) / 2 + et * et * (tr - 2 * Ft + Xe) / 2), (be > 0 ? T : -T) * (Ht + et * (dr - it) / 2 + et * et * (dr - 2 * Ht + it) / 2)];
+ }
+ Xi.invert = function(ve, be) {
+ var Re = be / T, qe = Re * 90, et = f(18, n(qe / 5)), Xe = c(0, l(et));
+ do {
+ var it = ki[Xe][1], Ft = ki[Xe + 1][1], Ht = ki[f(19, Xe + 2)][1], tr = Ht - it, dr = Ht - 2 * Ft + it, Sr = 2 * (n(Re) - Ft) / tr, Or = dr / tr, Wr = Sr * (1 - Or * Sr * (1 - 2 * Or * Sr));
+ if (Wr >= 0 || Xe === 1) {
+ qe = (be >= 0 ? 5 : -5) * (Wr + et);
+ var ni = 50, Pi;
+ do
+ et = f(18, n(qe) / 5), Xe = l(et), Wr = et - Xe, it = ki[Xe][1], Ft = ki[Xe + 1][1], Ht = ki[f(19, Xe + 2)][1], qe -= (Pi = (be >= 0 ? T : -T) * (Ft + Wr * (Ht - it) / 2 + Wr * Wr * (Ht - 2 * Ft + it) / 2) - be) * P;
+ while (n(Pi) > k && --ni > 0);
+ break;
+ }
+ } while (--Xe >= 0);
+ var cn = ki[Xe][0], ln = ki[Xe + 1][0], Cn = ki[f(19, Xe + 2)][0];
+ return [ve / (ln + Wr * (Cn - cn) / 2 + Wr * Wr * (Cn - 2 * ln + cn) / 2), qe * A];
+ };
+ function dn() {
+ return t.geoProjection(Xi).scale(152.63);
+ }
+ function wn(ve) {
+ function be(Re, qe) {
+ var et = o(qe), Xe = (ve - 1) / (ve - et * o(Re));
+ return [Xe * et * _(Re), Xe * _(qe)];
+ }
+ return be.invert = function(Re, qe) {
+ var et = Re * Re + qe * qe, Xe = G(et), it = (ve - G(1 - et * (ve + 1) / (ve - 1))) / ((ve - 1) / Xe + Xe / (ve - 1));
+ return [a(Re * it, Xe * G(1 - it * it)), Xe ? O(qe * it / Xe) : 0];
+ }, be;
+ }
+ function Nn(ve, be) {
+ var Re = wn(ve);
+ if (!be) return Re;
+ var qe = o(be), et = _(be);
+ function Xe(it, Ft) {
+ var Ht = Re(it, Ft), tr = Ht[1], dr = tr * et / (ve - 1) + qe;
+ return [Ht[0] * qe / dr, tr / dr];
+ }
+ return Xe.invert = function(it, Ft) {
+ var Ht = (ve - 1) / (ve - 1 - Ft * et);
+ return Re.invert(Ht * it, Ht * Ft * qe);
+ }, Xe;
+ }
+ function Yi() {
+ var ve = 2, be = 0, Re = t.geoProjectionMutator(Nn), qe = Re(ve, be);
+ return qe.distance = function(et) {
+ return arguments.length ? Re(ve = +et, be) : ve;
+ }, qe.tilt = function(et) {
+ return arguments.length ? Re(ve, be = et * A) : be * P;
+ }, qe.scale(432.147).clipAngle(U(1 / ve) * P - 1e-6);
+ }
+ var Qi = 1e-4, on = 1e4, Fi = -180, Qn = Fi + Qi, Ca = 180, Ra = Ca - Qi, La = -90, Na = La + Qi, Yn = 90, Dn = Yn - Qi;
+ function Ka(ve) {
+ return ve.length > 0;
+ }
+ function bo(ve) {
+ return Math.floor(ve * on) / on;
+ }
+ function Zo(ve) {
+ return ve === La || ve === Yn ? [0, ve] : [Fi, bo(ve)];
+ }
+ function Ss(ve) {
+ var be = ve[0], Re = ve[1], qe = false;
+ return be <= Qn ? (be = Fi, qe = true) : be >= Ra && (be = Ca, qe = true), Re <= Na ? (Re = La, qe = true) : Re >= Dn && (Re = Yn, qe = true), qe ? [be, Re] : ve;
+ }
+ function as(ve) {
+ return ve.map(Ss);
+ }
+ function ws(ve, be, Re) {
+ for (var qe = 0, et = ve.length; qe < et; ++qe) {
+ var Xe = ve[qe].slice();
+ Re.push({ index: -1, polygon: be, ring: Xe });
+ for (var it = 0, Ft = Xe.length; it < Ft; ++it) {
+ var Ht = Xe[it], tr = Ht[0], dr = Ht[1];
+ if (tr <= Qn || tr >= Ra || dr <= Na || dr >= Dn) {
+ Xe[it] = Ss(Ht);
+ for (var Sr = it + 1; Sr < Ft; ++Sr) {
+ var Or = Xe[Sr], Wr = Or[0], ni = Or[1];
+ if (Wr > Qn && Wr < Ra && ni > Na && ni < Dn) break;
+ }
+ if (Sr === it + 1) continue;
+ if (it) {
+ var Pi = { index: -1, polygon: be, ring: Xe.slice(0, it + 1) };
+ Pi.ring[Pi.ring.length - 1] = Zo(dr), Re[Re.length - 1] = Pi;
+ } else Re.pop();
+ if (Sr >= Ft) break;
+ Re.push({ index: -1, polygon: be, ring: Xe = Xe.slice(Sr - 1) }), Xe[0] = Zo(Xe[0][1]), it = -1, Ft = Xe.length;
+ }
+ }
+ }
+ }
+ function Ho(ve) {
+ var be, Re = ve.length, qe = {}, et = {}, Xe, it, Ft, Ht, tr;
+ for (be = 0; be < Re; ++be) {
+ if (Xe = ve[be], it = Xe.ring[0], Ht = Xe.ring[Xe.ring.length - 1], it[0] === Ht[0] && it[1] === Ht[1]) {
+ Xe.polygon.push(Xe.ring), ve[be] = null;
+ continue;
+ }
+ Xe.index = be, qe[it] = et[Ht] = Xe;
+ }
+ for (be = 0; be < Re; ++be) if (Xe = ve[be], Xe) {
+ if (it = Xe.ring[0], Ht = Xe.ring[Xe.ring.length - 1], Ft = et[it], tr = qe[Ht], delete qe[it], delete et[Ht], it[0] === Ht[0] && it[1] === Ht[1]) {
+ Xe.polygon.push(Xe.ring);
+ continue;
+ }
+ Ft ? (delete et[it], delete qe[Ft.ring[0]], Ft.ring.pop(), ve[Ft.index] = null, Xe = { index: -1, polygon: Ft.polygon, ring: Ft.ring.concat(Xe.ring) }, Ft === tr ? Xe.polygon.push(Xe.ring) : (Xe.index = Re++, ve.push(qe[Xe.ring[0]] = et[Xe.ring[Xe.ring.length - 1]] = Xe))) : tr ? (delete qe[Ht], delete et[tr.ring[tr.ring.length - 1]], Xe.ring.pop(), Xe = { index: Re++, polygon: tr.polygon, ring: Xe.ring.concat(tr.ring) }, ve[tr.index] = null, ve.push(qe[Xe.ring[0]] = et[Xe.ring[Xe.ring.length - 1]] = Xe)) : (Xe.ring.push(Xe.ring[0]), Xe.polygon.push(Xe.ring));
+ }
+ }
+ function ml(ve) {
+ var be = { type: "Feature", geometry: Ws(ve.geometry) };
+ return ve.id != null && (be.id = ve.id), ve.bbox != null && (be.bbox = ve.bbox), ve.properties != null && (be.properties = ve.properties), be;
+ }
+ function Ws(ve) {
+ if (ve == null) return ve;
+ var be, Re, qe, et;
+ switch (ve.type) {
+ case "GeometryCollection":
+ be = { type: "GeometryCollection", geometries: ve.geometries.map(Ws) };
+ break;
+ case "Point":
+ be = { type: "Point", coordinates: Ss(ve.coordinates) };
+ break;
+ case "MultiPoint":
+ case "LineString":
+ be = { type: ve.type, coordinates: as(ve.coordinates) };
+ break;
+ case "MultiLineString":
+ be = { type: "MultiLineString", coordinates: ve.coordinates.map(as) };
+ break;
+ case "Polygon": {
+ var Xe = [];
+ ws(ve.coordinates, Xe, Re = []), Ho(Re), be = { type: "Polygon", coordinates: Xe };
+ break;
+ }
+ case "MultiPolygon": {
+ Re = [], qe = -1, et = ve.coordinates.length;
+ for (var it = new Array(et); ++qe < et; ) ws(ve.coordinates[qe], it[qe] = [], Re);
+ Ho(Re), be = { type: "MultiPolygon", coordinates: it.filter(Ka) };
+ break;
+ }
+ default:
+ return ve;
+ }
+ return ve.bbox != null && (be.bbox = ve.bbox), be;
+ }
+ function Ls(ve) {
+ if (ve == null) return ve;
+ switch (ve.type) {
+ case "Feature":
+ return ml(ve);
+ case "FeatureCollection": {
+ var be = { type: "FeatureCollection", features: ve.features.map(ml) };
+ return ve.bbox != null && (be.bbox = ve.bbox), be;
+ }
+ default:
+ return Ws(ve);
+ }
+ }
+ function va(ve, be) {
+ var Re = b(be / 2), qe = _(L * Re);
+ return [ve * (0.74482 - 0.34588 * qe * qe), 1.70711 * Re];
+ }
+ va.invert = function(ve, be) {
+ var Re = be / 1.70711, qe = _(L * Re);
+ return [ve / (0.74482 - 0.34588 * qe * qe), 2 * i(Re)];
+ };
+ function no() {
+ return t.geoProjection(va).scale(146.153);
+ }
+ function ys(ve, be, Re) {
+ var qe = t.geoInterpolate(be, Re), et = qe(0.5), Xe = t.geoRotation([-et[0], -et[1]])(be), it = qe.distance / 2, Ft = -O(_(Xe[1] * A) / _(it)), Ht = [-et[0], -et[1], -(Xe[0] > 0 ? E - Ft : Ft) * P], tr = t.geoProjection(ve(it)).rotate(Ht), dr = t.geoRotation(Ht), Sr = tr.center;
+ return delete tr.rotate, tr.center = function(Or) {
+ return arguments.length ? Sr(dr(Or)) : dr.invert(Sr());
+ }, tr.clipAngle(90);
+ }
+ function rs(ve) {
+ var be = o(ve);
+ function Re(qe, et) {
+ var Xe = t.geoGnomonicRaw(qe, et);
+ return Xe[0] *= be, Xe;
+ }
+ return Re.invert = function(qe, et) {
+ return t.geoGnomonicRaw.invert(qe / be, et);
+ }, Re;
+ }
+ function Ql() {
+ return Cu([-158, 21.5], [-77, 39]).clipAngle(60).scale(400);
+ }
+ function Cu(ve, be) {
+ return ys(rs, ve, be);
+ }
+ function Yu(ve) {
+ if (!(ve *= 2)) return t.geoAzimuthalEquidistantRaw;
+ var be = -ve / 2, Re = -be, qe = ve * ve, et = b(Re), Xe = 0.5 / _(Re);
+ function it(Ft, Ht) {
+ var tr = U(o(Ht) * o(Ft - be)), dr = U(o(Ht) * o(Ft - Re)), Sr = Ht < 0 ? -1 : 1;
+ return tr *= tr, dr *= dr, [(tr - dr) / (2 * ve), Sr * G(4 * qe * dr - (qe - tr + dr) * (qe - tr + dr)) / (2 * ve)];
+ }
+ return it.invert = function(Ft, Ht) {
+ var tr = Ht * Ht, dr = o(G(tr + (Or = Ft + be) * Or)), Sr = o(G(tr + (Or = Ft + Re) * Or)), Or, Wr;
+ return [a(Wr = dr - Sr, Or = (dr + Sr) * et), (Ht < 0 ? -1 : 1) * U(G(Or * Or + Wr * Wr) * Xe)];
+ }, it;
+ }
+ function Nc() {
+ return pu([-158, 21.5], [-77, 39]).clipAngle(130).scale(122.571);
+ }
+ function pu(ve, be) {
+ return ys(Yu, ve, be);
+ }
+ function Uc(ve, be) {
+ if (n(be) < p) return [ve, 0];
+ var Re = n(be / T), qe = O(Re);
+ if (n(ve) < p || n(n(be) - T) < p) return [0, v(be) * E * b(qe / 2)];
+ var et = o(qe), Xe = n(E / ve - ve / E) / 2, it = Xe * Xe, Ft = et / (Re + et - 1), Ht = Ft * (2 / Re - 1), tr = Ht * Ht, dr = tr + it, Sr = Ft - tr, Or = it + Ft;
+ return [v(ve) * E * (Xe * Sr + G(it * Sr * Sr - dr * (Ft * Ft - tr))) / dr, v(be) * E * (Ht * Or - Xe * G((it + 1) * dr - Or * Or)) / dr];
+ }
+ Uc.invert = function(ve, be) {
+ if (n(be) < p) return [ve, 0];
+ if (n(ve) < p) return [0, T * _(2 * i(be / E))];
+ var Re = (ve /= E) * ve, qe = (be /= E) * be, et = Re + qe, Xe = et * et, it = -n(be) * (1 + et), Ft = it - 2 * qe + Re, Ht = -2 * it + 1 + 2 * qe + Xe, tr = qe / Ht + (2 * Ft * Ft * Ft / (Ht * Ht * Ht) - 9 * it * Ft / (Ht * Ht)) / 27, dr = (it - Ft * Ft / (3 * Ht)) / Ht, Sr = 2 * G(-dr / 3), Or = U(3 * tr / (dr * Sr)) / 3;
+ return [E * (et - 1 + G(1 + 2 * (Re - qe) + Xe)) / (2 * ve), v(be) * E * (-Sr * o(Or + E / 3) - Ft / (3 * Ht))];
+ };
+ function xu() {
+ return t.geoProjection(Uc).scale(79.4183);
+ }
+ function Ac(ve, be) {
+ if (n(be) < p) return [ve, 0];
+ var Re = n(be / T), qe = O(Re);
+ if (n(ve) < p || n(n(be) - T) < p) return [0, v(be) * E * b(qe / 2)];
+ var et = o(qe), Xe = n(E / ve - ve / E) / 2, it = Xe * Xe, Ft = et * (G(1 + it) - Xe * et) / (1 + it * Re * Re);
+ return [v(ve) * E * Ft, v(be) * E * G(1 - Ft * (2 * Xe + Ft))];
+ }
+ Ac.invert = function(ve, be) {
+ if (!ve) return [0, T * _(2 * i(be / E))];
+ var Re = n(ve / E), qe = (1 - Re * Re - (be /= E) * be) / (2 * Re), et = qe * qe, Xe = G(et + 1);
+ return [v(ve) * E * (Xe - qe), v(be) * T * _(2 * a(G((1 - 2 * qe * Re) * (qe + Xe) - Re), G(Xe + qe + Re)))];
+ };
+ function Ua() {
+ return t.geoProjection(Ac).scale(79.4183);
+ }
+ function oo(ve, be) {
+ if (n(be) < p) return [ve, 0];
+ var Re = be / T, qe = O(Re);
+ if (n(ve) < p || n(n(be) - T) < p) return [0, E * b(qe / 2)];
+ var et = (E / ve - ve / E) / 2, Xe = Re / (1 + o(qe));
+ return [E * (v(ve) * G(et * et + 1 - Xe * Xe) - et), E * Xe];
+ }
+ oo.invert = function(ve, be) {
+ if (!be) return [ve, 0];
+ var Re = be / E, qe = (E * E * (1 - Re * Re) - ve * ve) / (2 * E * ve);
+ return [ve ? E * (v(ve) * G(qe * qe + 1) - qe) : 0, T * _(2 * i(Re))];
+ };
+ function Vc() {
+ return t.geoProjection(oo).scale(79.4183);
+ }
+ function hc(ve, be) {
+ if (!be) return [ve, 0];
+ var Re = n(be);
+ if (!ve || Re === T) return [0, be];
+ var qe = Re / T, et = qe * qe, Xe = (8 * qe - et * (et + 2) - 5) / (2 * et * (qe - 1)), it = Xe * Xe, Ft = qe * Xe, Ht = et + it + 2 * Ft, tr = qe + 3 * Xe, dr = ve / T, Sr = dr + 1 / dr, Or = v(n(ve) - T) * G(Sr * Sr - 4), Wr = Or * Or, ni = Ht * (et + it * Wr - 1) + (1 - et) * (et * (tr * tr + 4 * it) + 12 * Ft * it + 4 * it * it), Pi = (Or * (Ht + it - 1) + 2 * G(ni)) / (4 * Ht + Wr);
+ return [v(ve) * T * Pi, v(be) * T * G(1 + Or * n(Pi) - Pi * Pi)];
+ }
+ hc.invert = function(ve, be) {
+ var Re;
+ if (!ve || !be) return [ve, be];
+ be /= E;
+ var qe = v(ve) * ve / T, et = (qe * qe - 1 + 4 * be * be) / n(qe), Xe = et * et, it = 2 * be, Ft = 50;
+ do {
+ var Ht = it * it, tr = (8 * it - Ht * (Ht + 2) - 5) / (2 * Ht * (it - 1)), dr = (3 * it - Ht * it - 10) / (2 * Ht * it), Sr = tr * tr, Or = it * tr, Wr = it + tr, ni = Wr * Wr, Pi = it + 3 * tr, cn = ni * (Ht + Sr * Xe - 1) + (1 - Ht) * (Ht * (Pi * Pi + 4 * Sr) + Sr * (12 * Or + 4 * Sr)), ln = -2 * Wr * (4 * Or * Sr + (1 - 4 * Ht + 3 * Ht * Ht) * (1 + dr) + Sr * (-6 + 14 * Ht - Xe + (-8 + 8 * Ht - 2 * Xe) * dr) + Or * (-8 + 12 * Ht + (-10 + 10 * Ht - Xe) * dr)), Cn = G(cn), Kn = et * (ni + Sr - 1) + 2 * Cn - qe * (4 * ni + Xe), Aa = et * (2 * tr * dr + 2 * Wr * (1 + dr)) + ln / Cn - 8 * Wr * (et * (-1 + Sr + ni) + 2 * Cn) * (1 + dr) / (Xe + 4 * ni);
+ it -= Re = Kn / Aa;
+ } while (Re > p && --Ft > 0);
+ return [v(ve) * (G(et * et + 4) + et) * E / 4, T * it];
+ };
+ function Ku() {
+ return t.geoProjection(hc).scale(127.16);
+ }
+ function ue(ve, be, Re, qe, et) {
+ function Xe(it, Ft) {
+ var Ht = Re * _(qe * Ft), tr = G(1 - Ht * Ht), dr = G(2 / (1 + tr * o(it *= et)));
+ return [ve * tr * dr * _(it), be * Ht * dr];
+ }
+ return Xe.invert = function(it, Ft) {
+ var Ht = it / ve, tr = Ft / be, dr = G(Ht * Ht + tr * tr), Sr = 2 * O(dr / 2);
+ return [a(it * b(Sr), ve * dr) / et, dr && O(Ft * _(Sr) / (be * Re * dr)) / qe];
+ }, Xe;
+ }
+ function w(ve, be, Re, qe) {
+ var et = E / 3;
+ ve = c(ve, p), be = c(be, p), ve = f(ve, T), be = f(be, E - p), Re = c(Re, 0), Re = f(Re, 100 - p), qe = c(qe, p);
+ var Xe = Re / 100 + 1, it = qe / 100, Ft = U(Xe * o(et)) / et, Ht = _(ve) / _(Ft * T), tr = be / E, dr = G(it * _(ve / 2) / _(be / 2)), Sr = dr / G(tr * Ht * Ft), Or = 1 / (dr * G(tr * Ht * Ft));
+ return ue(Sr, Or, Ht, Ft, tr);
+ }
+ function B() {
+ var ve = 65 * A, be = 60 * A, Re = 20, qe = 200, et = t.geoProjectionMutator(w), Xe = et(ve, be, Re, qe);
+ return Xe.poleline = function(it) {
+ return arguments.length ? et(ve = +it * A, be, Re, qe) : ve * P;
+ }, Xe.parallels = function(it) {
+ return arguments.length ? et(ve, be = +it * A, Re, qe) : be * P;
+ }, Xe.inflation = function(it) {
+ return arguments.length ? et(ve, be, Re = +it, qe) : Re;
+ }, Xe.ratio = function(it) {
+ return arguments.length ? et(ve, be, Re, qe = +it) : qe;
+ }, Xe.scale(163.775);
+ }
+ function Q() {
+ return B().poleline(65).parallels(60).inflation(0).ratio(200).scale(172.633);
+ }
+ var ee = 4 * E + 3 * G(3), le = 2 * G(2 * E * G(3) / ee), Oe = $t(le * G(3) / E, le, ee / 6);
+ function Ze() {
+ return t.geoProjection(Oe).scale(176.84);
+ }
+ function st(ve, be) {
+ return [ve * G(1 - 3 * be * be / (E * E)), be];
+ }
+ st.invert = function(ve, be) {
+ return [ve / G(1 - 3 * be * be / (E * E)), be];
+ };
+ function Tt() {
+ return t.geoProjection(st).scale(152.63);
+ }
+ function Yt(ve, be) {
+ var Re = o(be), qe = o(ve) * Re, et = 1 - qe, Xe = o(ve = a(_(ve) * Re, -_(be))), it = _(ve);
+ return Re = G(1 - qe * qe), [it * Re - Xe * et, -Xe * Re - it * et];
+ }
+ Yt.invert = function(ve, be) {
+ var Re = (ve * ve + be * be) / -2, qe = G(-Re * (2 + Re)), et = be * Re + ve * qe, Xe = ve * Re - be * qe, it = G(Xe * Xe + et * et);
+ return [a(qe * et, it * (1 + Re)), it ? -O(qe * Xe / it) : 0];
+ };
+ function Kt() {
+ return t.geoProjection(Yt).rotate([0, -90, 45]).scale(124.75).clipAngle(180 - 1e-3);
+ }
+ function xr(ve, be) {
+ var Re = Ce(ve, be);
+ return [(Re[0] + ve / T) / 2, (Re[1] + be) / 2];
+ }
+ xr.invert = function(ve, be) {
+ var Re = ve, qe = be, et = 25;
+ do {
+ var Xe = o(qe), it = _(qe), Ft = _(2 * qe), Ht = it * it, tr = Xe * Xe, dr = _(Re), Sr = o(Re / 2), Or = _(Re / 2), Wr = Or * Or, ni = 1 - tr * Sr * Sr, Pi = ni ? U(Xe * Sr) * G(cn = 1 / ni) : cn = 0, cn, ln = 0.5 * (2 * Pi * Xe * Or + Re / T) - ve, Cn = 0.5 * (Pi * it + qe) - be, Kn = 0.5 * cn * (tr * Wr + Pi * Xe * Sr * Ht) + 0.5 / T, Aa = cn * (dr * Ft / 4 - Pi * it * Or), fa = 0.125 * cn * (Ft * Or - Pi * it * tr * dr), $a = 0.5 * cn * (Ht * Sr + Pi * Wr * Xe) + 0.5, Co = Aa * fa - $a * Kn, Qa = (Cn * Aa - ln * $a) / Co, mo = (ln * fa - Cn * Kn) / Co;
+ Re -= Qa, qe -= mo;
+ } while ((n(Qa) > p || n(mo) > p) && --et > 0);
+ return [Re, qe];
+ };
+ function Ir() {
+ return t.geoProjection(xr).scale(158.837);
+ }
+ e.geoNaturalEarth = t.geoNaturalEarth1, e.geoNaturalEarthRaw = t.geoNaturalEarth1Raw, e.geoAiry = _e, e.geoAiryRaw = oe, e.geoAitoff = Le, e.geoAitoffRaw = Ce, e.geoArmadillo = ie, e.geoArmadilloRaw = ge, e.geoAugust = Ee, e.geoAugustRaw = Se, e.geoBaker = me, e.geoBakerRaw = Pe, e.geoBerghaus = ce, e.geoBerghausRaw = De, e.geoBertin1953 = Wt, e.geoBertin1953Raw = ut, e.geoBoggs = Qt, e.geoBoggsRaw = St, e.geoBonne = er, e.geoBonneRaw = mt, e.geoBottomley = wr, e.geoBottomleyRaw = lr, e.geoBromley = ti, e.geoBromleyRaw = Lr, e.geoChamberlin = tt, e.geoChamberlinRaw = Ge, e.geoChamberlinAfrica = We, e.geoCollignon = Ie, e.geoCollignonRaw = xt, e.geoCraig = ke, e.geoCraigRaw = xe, e.geoCraster = ar, e.geoCrasterRaw = ir, e.geoCylindricalEqualArea = ii, e.geoCylindricalEqualAreaRaw = vr, e.geoCylindricalStereographic = $r, e.geoCylindricalStereographicRaw = pi, e.geoEckert1 = ji, e.geoEckert1Raw = di, e.geoEckert2 = wi, e.geoEckert2Raw = In, e.geoEckert3 = qn, e.geoEckert3Raw = On, e.geoEckert4 = ra, e.geoEckert4Raw = Fn, e.geoEckert5 = Ut, e.geoEckert5Raw = la, e.geoEckert6 = rr, e.geoEckert6Raw = wt, e.geoEisenlohr = Xr, e.geoEisenlohrRaw = Er, e.geoFahey = Oi, e.geoFaheyRaw = Qr, e.geoFoucaut = tn, e.geoFoucautRaw = $i, e.geoFoucautSinusoidal = yn, e.geoFoucautSinusoidalRaw = fn, e.geoGilbert = ua, e.geoGingery = Xo, e.geoGingeryRaw = ma, e.geoGinzburg4 = Ha, e.geoGinzburg4Raw = Wn, e.geoGinzburg5 = jn, e.geoGinzburg5Raw = vo, e.geoGinzburg6 = kr, e.geoGinzburg6Raw = Mt, e.geoGinzburg8 = vi, e.geoGinzburg8Raw = Jr, e.geoGinzburg9 = An, e.geoGinzburg9Raw = hn, e.geoGringorten = $n, e.geoGringortenRaw = Li, e.geoGuyou = Fs, e.geoGuyouRaw = Lo, e.geoHammer = pt, e.geoHammerRaw = je, e.geoHammerRetroazimuthal = zl, e.geoHammerRetroazimuthalRaw = ll, e.geoHealpix = Yl, e.geoHealpixRaw = cl, e.geoHill = nc, e.geoHillRaw = Su, e.geoHomolosine = xo, e.geoHomolosineRaw = Ol, e.geoHufnagel = Ns, e.geoHufnagelRaw = Kl, e.geoHyperelliptical = Oo, e.geoHyperellipticalRaw = aa, e.geoInterrupt = Do, e.geoInterruptedBoggs = Vf, e.geoInterruptedHomolosine = Zc, e.geoInterruptedMollweide = Os, e.geoInterruptedMollweideHemispheres = oc, e.geoInterruptedSinuMollweide = sc, e.geoInterruptedSinusoidal = Lf, e.geoKavrayskiy7 = nf, e.geoKavrayskiy7Raw = cs, e.geoLagrange = $l, e.geoLagrangeRaw = Gf, e.geoLarrivee = Fu, e.geoLarriveeRaw = lc, e.geoLaskowski = Hs, e.geoLaskowskiRaw = Es, e.geoLittrow = ps, e.geoLittrowRaw = Go, e.geoLoximuthal = xl, e.geoLoximuthalRaw = uc, e.geoMiller = qs, e.geoMillerRaw = Gu, e.geoModifiedStereographic = Bl, e.geoModifiedStereographicRaw = od, e.geoModifiedStereographicAlaska = Hu, e.geoModifiedStereographicGs48 = bl, e.geoModifiedStereographicGs50 = Hf, e.geoModifiedStereographicMiller = Ic, e.geoModifiedStereographicLee = yf, e.geoMollweide = Tr, e.geoMollweideRaw = sr, e.geoMtFlatPolarParabolic = Yc, e.geoMtFlatPolarParabolicRaw = _f, e.geoMtFlatPolarQuartic = th, e.geoMtFlatPolarQuarticRaw = eh, e.geoMtFlatPolarSinusoidal = jf, e.geoMtFlatPolarSinusoidalRaw = ju, e.geoNaturalEarth2 = of, e.geoNaturalEarth2Raw = cc, e.geoNellHammer = Kc, e.geoNellHammerRaw = Nl, e.geoInterruptedQuarticAuthalic = gs, e.geoNicolosi = Wh, e.geoNicolosiRaw = Wf, e.geoPatterson = hu, e.geoPattersonRaw = bc, e.geoPolyconic = nl, e.geoPolyconicRaw = _u, e.geoPolyhedral = xf, e.geoPolyhedralButterfly = Cs, e.geoPolyhedralCollignon = Xf, e.geoPolyhedralWaterman = Us, e.geoProject = Wl, e.geoGringortenQuincuncial = At, e.geoPeirceQuincuncial = Xt, e.geoPierceQuincuncial = Xt, e.geoQuantize = Cr, e.geoQuincuncial = Bc, e.geoRectangularPolyconic = Kr, e.geoRectangularPolyconicRaw = Ar, e.geoRobinson = dn, e.geoRobinsonRaw = Xi, e.geoSatellite = Yi, e.geoSatelliteRaw = Nn, e.geoSinuMollweide = Vu, e.geoSinuMollweideRaw = _a, e.geoSinusoidal = It, e.geoSinusoidalRaw = _t, e.geoStitch = Ls, e.geoTimes = no, e.geoTimesRaw = va, e.geoTwoPointAzimuthal = Cu, e.geoTwoPointAzimuthalRaw = rs, e.geoTwoPointAzimuthalUsa = Ql, e.geoTwoPointEquidistant = pu, e.geoTwoPointEquidistantRaw = Yu, e.geoTwoPointEquidistantUsa = Nc, e.geoVanDerGrinten = xu, e.geoVanDerGrintenRaw = Uc, e.geoVanDerGrinten2 = Ua, e.geoVanDerGrinten2Raw = Ac, e.geoVanDerGrinten3 = Vc, e.geoVanDerGrinten3Raw = oo, e.geoVanDerGrinten4 = Ku, e.geoVanDerGrinten4Raw = hc, e.geoWagner = B, e.geoWagner7 = Q, e.geoWagnerRaw = w, e.geoWagner4 = Ze, e.geoWagner4Raw = Oe, e.geoWagner6 = Tt, e.geoWagner6Raw = st, e.geoWiechel = Kt, e.geoWiechelRaw = Yt, e.geoWinkel3 = Ir, e.geoWinkel3Raw = xr, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var GDe = ye((Imr, VDe) => {
+ var nd = Oa(), UZ = Dr(), Ozt = qa(), r5 = Math.PI / 180, tw = 180 / Math.PI, GZ = { cursor: "pointer" }, HZ = { cursor: "auto" };
+ function qzt(e, t) {
+ var r = e.projection, n;
+ return t._isScoped ? n = Bzt : t._isClipped ? n = Uzt : n = Nzt, n(e, r);
+ }
+ VDe.exports = qzt;
+ function jZ(e, t) {
+ return nd.behavior.zoom().translate(t.translate()).scale(t.scale());
+ }
+ function WZ(e, t, r) {
+ var n = e.id, i = e.graphDiv, a = i.layout, o = a[n], s = i._fullLayout, l = s[n], u = {}, c = {};
+ function f(h, d) {
+ u[n + "." + h] = UZ.nestedProperty(o, h).get(), Ozt.call("_storeDirectGUIEdit", a, s._preGUI, u);
+ var v = UZ.nestedProperty(l, h);
+ v.get() !== d && (v.set(d), UZ.nestedProperty(o, h).set(d), c[n + "." + h] = d);
+ }
+ r(f), f("projection.scale", t.scale() / e.fitScale), f("fitbounds", false), i.emit("plotly_relayout", c);
+ }
+ function Bzt(e, t) {
+ var r = jZ(e, t);
+ function n() {
+ nd.select(this).style(GZ);
+ }
+ function i() {
+ t.scale(nd.event.scale).translate(nd.event.translate), e.render(true);
+ var s = t.invert(e.midPt);
+ e.graphDiv.emit("plotly_relayouting", { "geo.projection.scale": t.scale() / e.fitScale, "geo.center.lon": s[0], "geo.center.lat": s[1] });
+ }
+ function a(s) {
+ var l = t.invert(e.midPt);
+ s("center.lon", l[0]), s("center.lat", l[1]);
+ }
+ function o() {
+ nd.select(this).style(HZ), WZ(e, t, a);
+ }
+ return r.on("zoomstart", n).on("zoom", i).on("zoomend", o), r;
+ }
+ function Nzt(e, t) {
+ var r = jZ(e, t), n = 2, i, a, o, s, l, u, c, f, h;
+ function d(E) {
+ return t.invert(E);
+ }
+ function v(E) {
+ var T = d(E);
+ if (!T) return true;
+ var L = t(T);
+ return Math.abs(L[0] - E[0]) > n || Math.abs(L[1] - E[1]) > n;
+ }
+ function _() {
+ nd.select(this).style(GZ), i = nd.mouse(this), a = t.rotate(), o = t.translate(), s = a, l = d(i);
+ }
+ function b() {
+ if (u = nd.mouse(this), v(i)) {
+ r.scale(t.scale()), r.translate(t.translate());
+ return;
+ }
+ t.scale(nd.event.scale), t.translate([o[0], nd.event.translate[1]]), l ? d(u) && (f = d(u), c = [s[0] + (f[0] - l[0]), a[1], a[2]], t.rotate(c), s = c) : (i = u, l = d(i)), h = true, e.render(true);
+ var E = t.rotate(), T = t.invert(e.midPt);
+ e.graphDiv.emit("plotly_relayouting", { "geo.projection.scale": t.scale() / e.fitScale, "geo.center.lon": T[0], "geo.center.lat": T[1], "geo.projection.rotation.lon": -E[0] });
+ }
+ function p() {
+ nd.select(this).style(HZ), h && WZ(e, t, k);
+ }
+ function k(E) {
+ var T = t.rotate(), L = t.invert(e.midPt);
+ E("projection.rotation.lon", -T[0]), E("center.lon", L[0]), E("center.lat", L[1]);
+ }
+ return r.on("zoomstart", _).on("zoom", b).on("zoomend", p), r;
+ }
+ function Uzt(e, t) {
+ ({ r: t.rotate(), k: t.scale() });
+ var n = jZ(e, t), i = Yzt(n, "zoomstart", "zoom", "zoomend"), a = 0, o = n.on, s;
+ n.on("zoomstart", function() {
+ nd.select(this).style(GZ);
+ var h = nd.mouse(this), d = t.rotate(), v = d, _ = t.translate(), b = Vzt(d);
+ s = zF(t, h), o.call(n, "zoom", function() {
+ var p = nd.mouse(this);
+ if (t.scale(nd.event.scale), !s) h = p, s = zF(t, h);
+ else if (zF(t, p)) {
+ t.rotate(d).translate(_);
+ var k = zF(t, p), E = Hzt(s, k), T = Wzt(Gzt(b, E)), L = jzt(T, s, v);
+ (!isFinite(L[0]) || !isFinite(L[1]) || !isFinite(L[2])) && (L = v), t.rotate(L), v = L;
+ }
+ u(i.of(this, arguments));
+ }), l(i.of(this, arguments));
+ }).on("zoomend", function() {
+ nd.select(this).style(HZ), o.call(n, "zoom", null), c(i.of(this, arguments)), WZ(e, t, f);
+ }).on("zoom.redraw", function() {
+ e.render(true);
+ var h = t.rotate();
+ e.graphDiv.emit("plotly_relayouting", { "geo.projection.scale": t.scale() / e.fitScale, "geo.projection.rotation.lon": -h[0], "geo.projection.rotation.lat": -h[1] });
+ });
+ function l(h) {
+ a++ || h({ type: "zoomstart" });
+ }
+ function u(h) {
+ h({ type: "zoom" });
+ }
+ function c(h) {
+ --a || h({ type: "zoomend" });
+ }
+ function f(h) {
+ var d = t.rotate();
+ h("projection.rotation.lon", -d[0]), h("projection.rotation.lat", -d[1]);
+ }
+ return nd.rebind(n, i, "on");
+ }
+ function zF(e, t) {
+ var r = e.invert(t);
+ return r && isFinite(r[0]) && isFinite(r[1]) && Xzt(r);
+ }
+ function Vzt(e) {
+ var t = 0.5 * e[0] * r5, r = 0.5 * e[1] * r5, n = 0.5 * e[2] * r5, i = Math.sin(t), a = Math.cos(t), o = Math.sin(r), s = Math.cos(r), l = Math.sin(n), u = Math.cos(n);
+ return [a * s * u + i * o * l, i * s * u - a * o * l, a * o * u + i * s * l, a * s * l - i * o * u];
+ }
+ function Gzt(e, t) {
+ var r = e[0], n = e[1], i = e[2], a = e[3], o = t[0], s = t[1], l = t[2], u = t[3];
+ return [r * o - n * s - i * l - a * u, r * s + n * o + i * u - a * l, r * l - n * u + i * o + a * s, r * u + n * l - i * s + a * o];
+ }
+ function Hzt(e, t) {
+ if (!(!e || !t)) {
+ var r = Zzt(e, t), n = Math.sqrt(UDe(r, r)), i = 0.5 * Math.acos(Math.max(-1, Math.min(1, UDe(e, t)))), a = Math.sin(i) / n;
+ return n && [Math.cos(i), r[2] * a, -r[1] * a, r[0] * a];
+ }
+ }
+ function jzt(e, t, r) {
+ var n = VZ(t, 2, e[0]);
+ n = VZ(n, 1, e[1]), n = VZ(n, 0, e[2] - r[2]);
+ var i = t[0], a = t[1], o = t[2], s = n[0], l = n[1], u = n[2], c = Math.atan2(a, i) * tw, f = Math.sqrt(i * i + a * a), h, d;
+ Math.abs(l) > f ? (d = (l > 0 ? 90 : -90) - c, h = 0) : (d = Math.asin(l / f) * tw - c, h = Math.sqrt(f * f - l * l));
+ var v = 180 - d - 2 * c, _ = (Math.atan2(u, s) - Math.atan2(o, h)) * tw, b = (Math.atan2(u, s) - Math.atan2(o, -h)) * tw, p = BDe(r[0], r[1], d, _), k = BDe(r[0], r[1], v, b);
+ return p <= k ? [d, _, r[2]] : [v, b, r[2]];
+ }
+ function BDe(e, t, r, n) {
+ var i = NDe(r - e), a = NDe(n - t);
+ return Math.sqrt(i * i + a * a);
+ }
+ function NDe(e) {
+ return (e % 360 + 540) % 360 - 180;
+ }
+ function VZ(e, t, r) {
+ var n = r * r5, i = e.slice(), a = t === 0 ? 1 : 0, o = t === 2 ? 1 : 2, s = Math.cos(n), l = Math.sin(n);
+ return i[a] = e[a] * s - e[o] * l, i[o] = e[o] * s + e[a] * l, i;
+ }
+ function Wzt(e) {
+ return [Math.atan2(2 * (e[0] * e[1] + e[2] * e[3]), 1 - 2 * (e[1] * e[1] + e[2] * e[2])) * tw, Math.asin(Math.max(-1, Math.min(1, 2 * (e[0] * e[2] - e[3] * e[1])))) * tw, Math.atan2(2 * (e[0] * e[3] + e[1] * e[2]), 1 - 2 * (e[2] * e[2] + e[3] * e[3])) * tw];
+ }
+ function Xzt(e) {
+ var t = e[0] * r5, r = e[1] * r5, n = Math.cos(r);
+ return [n * Math.cos(t), n * Math.sin(t), Math.sin(r)];
+ }
+ function UDe(e, t) {
+ for (var r = 0, n = 0, i = e.length; n < i; ++n) r += e[n] * t[n];
+ return r;
+ }
+ function Zzt(e, t) {
+ return [e[1] * t[2] - e[2] * t[1], e[2] * t[0] - e[0] * t[2], e[0] * t[1] - e[1] * t[0]];
+ }
+ function Yzt(e) {
+ for (var t = 0, r = arguments.length, n = []; ++t < r; ) n.push(arguments[t]);
+ var i = nd.dispatch.apply(null, n);
+ return i.of = function(a, o) {
+ return function(s) {
+ var l;
+ try {
+ l = s.sourceEvent = nd.event, s.target = e, nd.event = s, i[s.type].apply(a, o);
+ } finally {
+ nd.event = l;
+ }
+ };
+ }, i;
+ }
+ });
+ var KDe = ye((Rmr, YDe) => {
+ var l1 = Oa(), YZ = NZ(), Kzt = YZ.geoPath, Jzt = YZ.geoDistance, $zt = qDe(), Qzt = qa(), vk = Dr(), e7t = vk.strTranslate, OF = ka(), dk = So(), HDe = vf(), t7t = Mc(), ZZ = ho(), jDe = Mg().getAutoRange, XZ = yv(), r7t = Of().prepSelect, i7t = Of().clearOutline, n7t = Of().selectOnClick, a7t = GDe(), hp = uk(), o7t = hx(), XDe = bF(), s7t = SZ().feature;
+ function ZDe(e) {
+ this.id = e.id, this.graphDiv = e.graphDiv, this.container = e.container, this.topojsonURL = e.topojsonURL, this.isStatic = e.staticPlot, this.topojsonName = null, this.topojson = null, this.projection = null, this.scope = null, this.viewInitial = null, this.fitScale = null, this.bounds = null, this.midPt = null, this.hasChoropleth = false, this.traceHash = {}, this.layers = {}, this.basePaths = {}, this.dataPaths = {}, this.dataPoints = {}, this.clipDef = null, this.clipRect = null, this.bgRect = null, this.makeFramework();
+ }
+ var tm = ZDe.prototype;
+ YDe.exports = function(t) {
+ return new ZDe(t);
+ };
+ tm.plot = function(e, t, r, n) {
+ var i = this;
+ if (n) return i.update(e, t, true);
+ i._geoCalcData = e, i._fullLayout = t;
+ var a = t[this.id], o = [], s = false;
+ for (var l in hp.layerNameToAdjective) if (l !== "frame" && a["show" + l]) {
+ s = true;
+ break;
+ }
+ for (var u = false, c = 0; c < e.length; c++) {
+ var f = e[0][0].trace;
+ f._geo = i, f.locationmode && (s = true);
+ var h = f.marker;
+ if (h) {
+ var d = h.angle, v = h.angleref;
+ (d || v === "north" || v === "previous") && (u = true);
+ }
+ }
+ if (this._hasMarkerAngles = u, s) {
+ var _ = XDe.getTopojsonName(a);
+ (i.topojson === null || _ !== i.topojsonName) && (i.topojsonName = _, PlotlyGeoAssets.topojson[i.topojsonName] === void 0 && o.push(i.fetchTopojson()));
+ }
+ o = o.concat(o7t.fetchTraceGeoData(e)), r.push(new Promise(function(b, p) {
+ Promise.all(o).then(function() {
+ i.topojson = PlotlyGeoAssets.topojson[i.topojsonName], i.update(e, t), b();
+ }).catch(p);
+ }));
+ };
+ tm.fetchTopojson = function() {
+ var e = this, t = XDe.getTopojsonPath(e.topojsonURL, e.topojsonName);
+ return new Promise(function(r, n) {
+ l1.json(t, function(i, a) {
+ if (i) return i.status === 404 ? n(new Error(["plotly.js could not find topojson file at", t + ".", "Make sure the *topojsonURL* plot config option", "is set properly."].join(" "))) : n(new Error(["unexpected error while fetching topojson file at", t].join(" ")));
+ PlotlyGeoAssets.topojson[e.topojsonName] = a, r();
+ });
+ });
+ };
+ tm.update = function(e, t, r) {
+ var n = t[this.id];
+ this.hasChoropleth = false;
+ for (var i = 0; i < e.length; i++) {
+ var a = e[i], o = a[0].trace;
+ o.type === "choropleth" && (this.hasChoropleth = true), o.visible === true && o._length > 0 && o._module.calcGeoJSON(a, t);
+ }
+ if (!r) {
+ var s = this.updateProjection(e, t);
+ if (s) return;
+ (!this.viewInitial || this.scope !== n.scope) && this.saveViewInitial(n);
+ }
+ this.scope = n.scope, this.updateBaseLayers(t, n), this.updateDims(t, n), this.updateFx(t, n), t7t.generalUpdatePerTraceModule(this.graphDiv, this, e, n);
+ var l = this.layers.frontplot.select(".scatterlayer");
+ this.dataPoints.point = l.selectAll(".point"), this.dataPoints.text = l.selectAll("text"), this.dataPaths.line = l.selectAll(".js-line");
+ var u = this.layers.backplot.select(".choroplethlayer");
+ this.dataPaths.choropleth = u.selectAll("path"), this._render();
+ };
+ tm.updateProjection = function(e, t) {
+ var r = this.graphDiv, n = t[this.id], i = t._size, a = n.domain, o = n.projection, s = n.lonaxis, l = n.lataxis, u = s._ax, c = l._ax, f = this.projection = l7t(n), h = [[i.l + i.w * a.x[0], i.t + i.h * (1 - a.y[1])], [i.l + i.w * a.x[1], i.t + i.h * (1 - a.y[0])]], d = n.center || {}, v = o.rotation || {}, _ = s.range || [], b = l.range || [];
+ if (n.fitbounds) {
+ u._length = h[1][0] - h[0][0], c._length = h[1][1] - h[0][1], u.range = jDe(r, u), c.range = jDe(r, c);
+ var p = (u.range[0] + u.range[1]) / 2, k = (c.range[0] + c.range[1]) / 2;
+ if (n._isScoped) d = { lon: p, lat: k };
+ else if (n._isClipped) {
+ d = { lon: p, lat: k }, v = { lon: p, lat: k, roll: v.roll };
+ var E = o.type, T = hp.lonaxisSpan[E] / 2 || 180, L = hp.lataxisSpan[E] / 2 || 90;
+ _ = [p - T, p + T], b = [k - L, k + L];
+ } else d = { lon: p, lat: k }, v = { lon: p, lat: v.lat, roll: v.roll };
+ }
+ f.center([d.lon - v.lon, d.lat - v.lat]).rotate([-v.lon, -v.lat, v.roll]).parallels(o.parallels);
+ var x = WDe(_, b);
+ f.fitExtent(h, x);
+ var C = this.bounds = f.getBounds(x), M = this.fitScale = f.scale(), g = f.translate();
+ if (n.fitbounds) {
+ var P = f.getBounds(WDe(u.range, c.range)), A = Math.min((C[1][0] - C[0][0]) / (P[1][0] - P[0][0]), (C[1][1] - C[0][1]) / (P[1][1] - P[0][1]));
+ isFinite(A) ? f.scale(A * M) : vk.warn("Something went wrong during" + this.id + "fitbounds computations.");
+ } else f.scale(o.scale * M);
+ var z = this.midPt = [(C[0][0] + C[1][0]) / 2, (C[0][1] + C[1][1]) / 2];
+ if (f.translate([g[0] + (z[0] - g[0]), g[1] + (z[1] - g[1])]).clipExtent(C), n._isAlbersUsa) {
+ var O = f([d.lon, d.lat]), U = f.translate();
+ f.translate([U[0] - (O[0] - U[0]), U[1] - (O[1] - U[1])]);
+ }
+ };
+ tm.updateBaseLayers = function(e, t) {
+ var r = this, n = r.topojson, i = r.layers, a = r.basePaths;
+ function o(h) {
+ return h === "lonaxis" || h === "lataxis";
+ }
+ function s(h) {
+ return !!hp.lineLayers[h];
+ }
+ function l(h) {
+ return !!hp.fillLayers[h];
+ }
+ var u = this.hasChoropleth ? hp.layersForChoropleth : hp.layers, c = u.filter(function(h) {
+ return s(h) || l(h) ? t["show" + h] : o(h) ? t[h].showgrid : true;
+ }), f = r.framework.selectAll(".layer").data(c, String);
+ f.exit().each(function(h) {
+ delete i[h], delete a[h], l1.select(this).remove();
+ }), f.enter().append("g").attr("class", function(h) {
+ return "layer " + h;
+ }).each(function(h) {
+ var d = i[h] = l1.select(this);
+ h === "bg" ? r.bgRect = d.append("rect").style("pointer-events", "all") : o(h) ? a[h] = d.append("path").style("fill", "none") : h === "backplot" ? d.append("g").classed("choroplethlayer", true) : h === "frontplot" ? d.append("g").classed("scatterlayer", true) : s(h) ? a[h] = d.append("path").style("fill", "none").style("stroke-miterlimit", 2) : l(h) && (a[h] = d.append("path").style("stroke", "none"));
+ }), f.order(), f.each(function(h) {
+ var d = a[h], v = hp.layerNameToAdjective[h];
+ h === "frame" ? d.datum(hp.sphereSVG) : s(h) || l(h) ? d.datum(s7t(n, n.objects[h])) : o(h) && d.datum(u7t(h, t, e)).call(OF.stroke, t[h].gridcolor).call(dk.dashLine, t[h].griddash, t[h].gridwidth), s(h) ? d.call(OF.stroke, t[v + "color"]).call(dk.dashLine, "", t[v + "width"]) : l(h) && d.call(OF.fill, t[v + "color"]);
+ });
+ };
+ tm.updateDims = function(e, t) {
+ var r = this.bounds, n = (t.framewidth || 0) / 2, i = r[0][0] - n, a = r[0][1] - n, o = r[1][0] - i + n, s = r[1][1] - a + n;
+ dk.setRect(this.clipRect, i, a, o, s), this.bgRect.call(dk.setRect, i, a, o, s).call(OF.fill, t.bgcolor), this.xaxis._offset = i, this.xaxis._length = o, this.yaxis._offset = a, this.yaxis._length = s;
+ };
+ tm.updateFx = function(e, t) {
+ var r = this, n = r.graphDiv, i = r.bgRect, a = e.dragmode, o = e.clickmode;
+ if (r.isStatic) return;
+ function s() {
+ var f = r.viewInitial, h = {};
+ for (var d in f) h[r.id + "." + d] = f[d];
+ Qzt.call("_guiRelayout", n, h), n.emit("plotly_doubleclick", null);
+ }
+ function l(f) {
+ return r.projection.invert([f[0] + r.xaxis._offset, f[1] + r.yaxis._offset]);
+ }
+ var u = function(f, h) {
+ if (h.isRect) {
+ var d = f.range = {};
+ d[r.id] = [l([h.xmin, h.ymin]), l([h.xmax, h.ymax])];
+ } else {
+ var v = f.lassoPoints = {};
+ v[r.id] = h.map(l);
+ }
+ }, c = { element: r.bgRect.node(), gd: n, plotinfo: { id: r.id, xaxis: r.xaxis, yaxis: r.yaxis, fillRangeItems: u }, xaxes: [r.xaxis], yaxes: [r.yaxis], subplot: r.id, clickFn: function(f) {
+ f === 2 && i7t(n);
+ } };
+ a === "pan" ? (i.node().onmousedown = null, i.call(a7t(r, t)), i.on("dblclick.zoom", s), n._context._scrollZoom.geo || i.on("wheel.zoom", null)) : (a === "select" || a === "lasso") && (i.on(".zoom", null), c.prepFn = function(f, h, d) {
+ r7t(f, h, d, c, a);
+ }, XZ.init(c)), i.on("mousemove", function() {
+ var f = r.projection.invert(vk.getPositionFromD3Event());
+ if (!f) return XZ.unhover(n, l1.event);
+ r.xaxis.p2c = function() {
+ return f[0];
+ }, r.yaxis.p2c = function() {
+ return f[1];
+ }, HDe.hover(n, l1.event, r.id);
+ }), i.on("mouseout", function() {
+ n._dragging || XZ.unhover(n, l1.event);
+ }), i.on("click", function() {
+ a !== "select" && a !== "lasso" && (o.indexOf("select") > -1 && n7t(l1.event, n, [r.xaxis], [r.yaxis], r.id, c), o.indexOf("event") > -1 && HDe.click(n, l1.event));
+ });
+ };
+ tm.makeFramework = function() {
+ var e = this, t = e.graphDiv, r = t._fullLayout, n = "clip" + r._uid + e.id;
+ e.clipDef = r._clips.append("clipPath").attr("id", n), e.clipRect = e.clipDef.append("rect"), e.framework = l1.select(e.container).append("g").attr("class", "geo " + e.id).call(dk.setClipUrl, n, t), e.project = function(i) {
+ var a = e.projection(i);
+ return a ? [a[0] - e.xaxis._offset, a[1] - e.yaxis._offset] : [null, null];
+ }, e.xaxis = { _id: "x", c2p: function(i) {
+ return e.project(i)[0];
+ } }, e.yaxis = { _id: "y", c2p: function(i) {
+ return e.project(i)[1];
+ } }, e.mockAxis = { type: "linear", showexponent: "all", exponentformat: "B" }, ZZ.setConvert(e.mockAxis, r);
+ };
+ tm.saveViewInitial = function(e) {
+ var t = e.center || {}, r = e.projection, n = r.rotation || {};
+ this.viewInitial = { fitbounds: e.fitbounds, "projection.scale": r.scale };
+ var i;
+ e._isScoped ? i = { "center.lon": t.lon, "center.lat": t.lat } : e._isClipped ? i = { "projection.rotation.lon": n.lon, "projection.rotation.lat": n.lat } : i = { "center.lon": t.lon, "center.lat": t.lat, "projection.rotation.lon": n.lon }, vk.extendFlat(this.viewInitial, i);
+ };
+ tm.render = function(e) {
+ this._hasMarkerAngles && e ? this.plot(this._geoCalcData, this._fullLayout, [], true) : this._render();
+ };
+ tm._render = function() {
+ var e = this.projection, t = e.getPath(), r;
+ function n(a) {
+ var o = e(a.lonlat);
+ return o ? e7t(o[0], o[1]) : null;
+ }
+ function i(a) {
+ return e.isLonLatOverEdges(a.lonlat) ? "none" : null;
+ }
+ for (r in this.basePaths) this.basePaths[r].attr("d", t);
+ for (r in this.dataPaths) this.dataPaths[r].attr("d", function(a) {
+ return t(a.geojson);
+ });
+ for (r in this.dataPoints) this.dataPoints[r].attr("display", i).attr("transform", n);
+ };
+ function l7t(e) {
+ var t = e.projection, r = t.type, n = hp.projNames[r];
+ n = "geo" + vk.titleCase(n);
+ for (var i = YZ[n] || $zt[n], a = i(), o = e._isSatellite ? Math.acos(1 / t.distance) * 180 / Math.PI : e._isClipped ? hp.lonaxisSpan[r] / 2 : null, s = ["center", "rotate", "parallels", "clipExtent"], l = function(f) {
+ return f ? a : [];
+ }, u = 0; u < s.length; u++) {
+ var c = s[u];
+ typeof a[c] != "function" && (a[c] = l);
+ }
+ return a.isLonLatOverEdges = function(f) {
+ if (a(f) === null) return true;
+ if (o) {
+ var h = a.rotate(), d = Jzt(f, [-h[0], -h[1]]), v = o * Math.PI / 180;
+ return d > v;
+ } else return false;
+ }, a.getPath = function() {
+ return Kzt().projection(a);
+ }, a.getBounds = function(f) {
+ return a.getPath().bounds(f);
+ }, a.precision(hp.precision), e._isSatellite && a.tilt(t.tilt).distance(t.distance), o && a.clipAngle(o - hp.clipPad), a;
+ }
+ function u7t(e, t, r) {
+ var n = 1e-6, i = 2.5, a = t[e], o = hp.scopeDefaults[t.scope], s, l, u;
+ e === "lonaxis" ? (s = o.lonaxisRange, l = o.lataxisRange, u = function(k, E) {
+ return [k, E];
+ }) : e === "lataxis" && (s = o.lataxisRange, l = o.lonaxisRange, u = function(k, E) {
+ return [E, k];
+ });
+ var c = { type: "linear", range: [s[0], s[1] - n], tick0: a.tick0, dtick: a.dtick };
+ ZZ.setConvert(c, r);
+ var f = ZZ.calcTicks(c);
+ !t.isScoped && e === "lonaxis" && f.pop();
+ for (var h = f.length, d = new Array(h), v = 0; v < h; v++) for (var _ = f[v].x, b = d[v] = [], p = l[0]; p < l[1] + i; p += i) b.push(u(_, p));
+ return { type: "MultiLineString", coordinates: d };
+ }
+ function WDe(e, t) {
+ var r = hp.clipPad, n = e[0] + r, i = e[1] - r, a = t[0] + r, o = t[1] - r;
+ n > 0 && i < 0 && (i += 360);
+ var s = (i - n) / 4;
+ return { type: "Polygon", coordinates: [[[n, a], [n, o], [n + s, o], [n + 2 * s, o], [n + 3 * s, o], [i, o], [i, a], [i - s, a], [i - 2 * s, a], [i - 3 * s, a], [n, a]]] };
+ }
+ });
+ var KZ = ye((Dmr, QDe) => {
+ var n5 = Ih(), c7t = Cc().attributes, f7t = Pd().dash, i5 = uk(), h7t = mc().overrideAll, JDe = t_(), $De = { range: { valType: "info_array", items: [{ valType: "number" }, { valType: "number" }] }, showgrid: { valType: "boolean", dflt: false }, tick0: { valType: "number", dflt: 0 }, dtick: { valType: "number" }, gridcolor: { valType: "color", dflt: n5.lightLine }, gridwidth: { valType: "number", min: 0, dflt: 1 }, griddash: f7t }, d7t = QDe.exports = h7t({ domain: c7t({ name: "geo" }, {}), fitbounds: { valType: "enumerated", values: [false, "locations", "geojson"], dflt: false, editType: "plot" }, resolution: { valType: "enumerated", values: [110, 50], dflt: 110, coerceNumber: true }, scope: { valType: "enumerated", values: JDe(i5.scopeDefaults), dflt: "world" }, projection: { type: { valType: "enumerated", values: JDe(i5.projNames) }, rotation: { lon: { valType: "number" }, lat: { valType: "number" }, roll: { valType: "number" } }, tilt: { valType: "number", dflt: 0 }, distance: { valType: "number", min: 1.001, dflt: 2 }, parallels: { valType: "info_array", items: [{ valType: "number" }, { valType: "number" }] }, scale: { valType: "number", min: 0, dflt: 1 } }, center: { lon: { valType: "number" }, lat: { valType: "number" } }, visible: { valType: "boolean", dflt: true }, showcoastlines: { valType: "boolean" }, coastlinecolor: { valType: "color", dflt: n5.defaultLine }, coastlinewidth: { valType: "number", min: 0, dflt: 1 }, showland: { valType: "boolean", dflt: false }, landcolor: { valType: "color", dflt: i5.landColor }, showocean: { valType: "boolean", dflt: false }, oceancolor: { valType: "color", dflt: i5.waterColor }, showlakes: { valType: "boolean", dflt: false }, lakecolor: { valType: "color", dflt: i5.waterColor }, showrivers: { valType: "boolean", dflt: false }, rivercolor: { valType: "color", dflt: i5.waterColor }, riverwidth: { valType: "number", min: 0, dflt: 1 }, showcountries: { valType: "boolean" }, countrycolor: { valType: "color", dflt: n5.defaultLine }, countrywidth: { valType: "number", min: 0, dflt: 1 }, showsubunits: { valType: "boolean" }, subunitcolor: { valType: "color", dflt: n5.defaultLine }, subunitwidth: { valType: "number", min: 0, dflt: 1 }, showframe: { valType: "boolean" }, framecolor: { valType: "color", dflt: n5.defaultLine }, framewidth: { valType: "number", min: 0, dflt: 1 }, bgcolor: { valType: "color", dflt: n5.background }, lonaxis: $De, lataxis: $De }, "plot", "from-root");
+ d7t.uirevision = { valType: "any", editType: "none" };
+ });
+ var rFe = ye((Fmr, tFe) => {
+ var qF = Dr(), v7t = O_(), p7t = Id().getSubplotData, BF = uk(), g7t = KZ(), eFe = BF.axesNames;
+ tFe.exports = function(t, r, n) {
+ v7t(t, r, n, { type: "geo", attributes: g7t, handleDefaults: m7t, fullData: n, partition: "y" });
+ };
+ function m7t(e, t, r, n) {
+ var i = p7t(n.fullData, "geo", n.id), a = i.map(function(oe) {
+ return oe.index;
+ }), o = r("resolution"), s = r("scope"), l = BF.scopeDefaults[s], u = r("projection.type", l.projType), c = t._isAlbersUsa = u === "albers usa";
+ c && (s = t.scope = "usa");
+ var f = t._isScoped = s !== "world", h = t._isSatellite = u === "satellite", d = t._isConic = u.indexOf("conic") !== -1 || u === "albers", v = t._isClipped = !!BF.lonaxisSpan[u];
+ if (e.visible === false) {
+ var _ = qF.extendDeep({}, t._template);
+ _.showcoastlines = false, _.showcountries = false, _.showframe = false, _.showlakes = false, _.showland = false, _.showocean = false, _.showrivers = false, _.showsubunits = false, _.lonaxis && (_.lonaxis.showgrid = false), _.lataxis && (_.lataxis.showgrid = false), t._template = _;
+ }
+ for (var b = r("visible"), p, k = 0; k < eFe.length; k++) {
+ var E = eFe[k], T = [30, 10][k], L;
+ if (f) L = l[E + "Range"];
+ else {
+ var x = BF[E + "Span"], C = (x[u] || x["*"]) / 2, M = r("projection.rotation." + E.slice(0, 3), l.projRotate[k]);
+ L = [M - C, M + C];
+ }
+ var g = r(E + ".range", L);
+ r(E + ".tick0"), r(E + ".dtick", T), p = r(E + ".showgrid", b ? void 0 : false), p && (r(E + ".gridcolor"), r(E + ".gridwidth"), r(E + ".griddash")), t[E]._ax = { type: "linear", _id: E.slice(0, 3), _traceIndices: a, setScale: qF.identity, c2l: qF.identity, r2l: qF.identity, autorange: true, range: g.slice(), _m: 1, _input: {} };
+ }
+ var P = t.lonaxis.range, A = t.lataxis.range, z = P[0], O = P[1];
+ z > 0 && O < 0 && (O += 360);
+ var U = (z + O) / 2, G;
+ if (!c) {
+ var Z = f ? l.projRotate : [U, 0, 0];
+ G = r("projection.rotation.lon", Z[0]), r("projection.rotation.lat", Z[1]), r("projection.rotation.roll", Z[2]), p = r("showcoastlines", !f && b), p && (r("coastlinecolor"), r("coastlinewidth")), p = r("showocean", b ? void 0 : false), p && r("oceancolor");
+ }
+ var j, N;
+ if (c ? (j = -96.6, N = 38.7) : (j = f ? U : G, N = (A[0] + A[1]) / 2), r("center.lon", j), r("center.lat", N), h && (r("projection.tilt"), r("projection.distance")), d) {
+ var H = l.projParallels || [0, 60];
+ r("projection.parallels", H);
+ }
+ r("projection.scale"), p = r("showland", b ? void 0 : false), p && r("landcolor"), p = r("showlakes", b ? void 0 : false), p && r("lakecolor"), p = r("showrivers", b ? void 0 : false), p && (r("rivercolor"), r("riverwidth")), p = r("showcountries", f && s !== "usa" && b), p && (r("countrycolor"), r("countrywidth")), (s === "usa" || s === "north america" && o === 50) && (r("showsubunits", b), r("subunitcolor"), r("subunitwidth")), f || (p = r("showframe", b), p && (r("framecolor"), r("framewidth"))), r("bgcolor");
+ var re = r("fitbounds");
+ re && (delete t.projection.scale, f ? (delete t.center.lon, delete t.center.lat) : v ? (delete t.center.lon, delete t.center.lat, delete t.projection.rotation.lon, delete t.projection.rotation.lat, delete t.lonaxis.range, delete t.lataxis.range) : (delete t.center.lon, delete t.center.lat, delete t.projection.rotation.lon));
+ }
+ });
+ var JZ = ye((zmr, aFe) => {
+ var y7t = Id().getSubplotCalcData, _7t = Dr().counterRegex, x7t = KDe(), Qm = "geo", iFe = _7t(Qm), nFe = {};
+ nFe[Qm] = { valType: "subplotid", dflt: Qm, editType: "calc" };
+ function b7t(e) {
+ for (var t = e._fullLayout, r = e.calcdata, n = t._subplots[Qm], i = 0; i < n.length; i++) {
+ var a = n[i], o = y7t(r, Qm, a), s = t[a], l = s._subplot;
+ l || (l = x7t({ id: a, graphDiv: e, container: t._geolayer.node(), topojsonURL: e._context.topojsonURL, staticPlot: e._context.staticPlot }), t[a]._subplot = l), l.plot(o, t, e._promises);
+ }
+ }
+ function w7t(e, t, r, n) {
+ for (var i = n._subplots[Qm] || [], a = 0; a < i.length; a++) {
+ var o = i[a], s = n[o]._subplot;
+ !t[o] && s && (s.framework.remove(), s.clipDef.remove());
+ }
+ }
+ function T7t(e) {
+ for (var t = e._fullLayout, r = t._subplots[Qm], n = 0; n < r.length; n++) {
+ var i = t[r[n]], a = i._subplot;
+ a.updateFx(t, i);
+ }
+ }
+ aFe.exports = { attr: Qm, name: Qm, idRoot: Qm, idRegex: iFe, attrRegex: iFe, attributes: nFe, layoutAttributes: KZ(), supplyLayoutDefaults: rFe(), plot: b7t, updateFx: T7t, clean: w7t };
+ });
+ var sFe = ye((Omr, oFe) => {
+ oFe.exports = { attributes: ew(), supplyDefaults: URe(), colorbar: $d(), formatLabels: HRe(), calc: _F(), calcGeoJSON: BZ().calcGeoJSON, plot: BZ().plot, style: FZ(), styleOnSelect: sp().styleOnSelect, hoverPoints: CDe(), eventData: PDe(), selectPoints: DDe(), moduleType: "trace", name: "scattergeo", basePlotModule: JZ(), categories: ["geo", "symbols", "showLegend", "scatter-like"], meta: {} };
+ });
+ var uFe = ye((qmr, lFe) => {
+ lFe.exports = sFe();
+ });
+ var a5 = ye((Bmr, hFe) => {
+ var { hovertemplateAttrs: A7t, templatefallbackAttrs: S7t } = Ll(), vx = ew(), M7t = Tu(), cFe = Gl(), E7t = Ih().defaultLine, dx = Ao().extendFlat, fFe = vx.marker.line;
+ hFe.exports = dx({ locations: { valType: "data_array", editType: "calc" }, locationmode: vx.locationmode, z: { valType: "data_array", editType: "calc" }, geojson: dx({}, vx.geojson, {}), featureidkey: vx.featureidkey, text: dx({}, vx.text, {}), hovertext: dx({}, vx.hovertext, {}), marker: { line: { color: dx({}, fFe.color, { dflt: E7t }), width: dx({}, fFe.width, { dflt: 1 }), editType: "calc" }, opacity: { valType: "number", arrayOk: true, min: 0, max: 1, dflt: 1, editType: "style" }, editType: "calc" }, selected: { marker: { opacity: vx.selected.marker.opacity, editType: "plot" }, editType: "plot" }, unselected: { marker: { opacity: vx.unselected.marker.opacity, editType: "plot" }, editType: "plot" }, hoverinfo: dx({}, cFe.hoverinfo, { editType: "calc", flags: ["location", "z", "text", "name"] }), hovertemplate: A7t(), hovertemplatefallback: S7t(), showlegend: dx({}, cFe.showlegend, { dflt: false }) }, M7t("", { cLetter: "z", editTypeOverride: "calc" }));
+ });
+ var vFe = ye((Nmr, dFe) => {
+ var pk = Dr(), k7t = td(), C7t = a5(), L7t = ["The library used by the *country names* `locationmode` option is changing in the next major version.", "Some country names in existing plots may not work in the new version.", "To ensure consistent behavior, consider setting `locationmode` to *ISO-3*."].join(" ");
+ dFe.exports = function(t, r, n, i) {
+ function a(h, d) {
+ return pk.coerce(t, r, C7t, h, d);
+ }
+ var o = a("locations"), s = a("z");
+ if (!(o && o.length && pk.isArrayOrTypedArray(s) && s.length)) {
+ r.visible = false;
+ return;
+ }
+ r._length = Math.min(o.length, s.length);
+ var l = a("geojson"), u;
+ (typeof l == "string" && l !== "" || pk.isPlainObject(l)) && (u = "geojson-id");
+ var c = a("locationmode", u);
+ c === "country names" && pk.warn(L7t), c === "geojson-id" && a("featureidkey"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback");
+ var f = a("marker.line.width");
+ f && a("marker.line.color"), a("marker.opacity"), k7t(t, r, i, a, { prefix: "", cLetter: "z" }), pk.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var NF = ye((Umr, mFe) => {
+ var pFe = Eo(), P7t = fs().BADNUM, I7t = gv(), R7t = Rm(), D7t = O0();
+ function gFe(e) {
+ return e && typeof e == "string";
+ }
+ mFe.exports = function(t, r) {
+ var n = r._length, i = new Array(n), a;
+ r.geojson ? a = function(c) {
+ return gFe(c) || pFe(c);
+ } : a = gFe;
+ for (var o = 0; o < n; o++) {
+ var s = i[o] = {}, l = r.locations[o], u = r.z[o];
+ a(l) && pFe(u) ? (s.loc = l, s.z = u) : (s.loc = null, s.z = P7t), s.index = o;
+ }
+ return R7t(i, r), I7t(t, r, { vals: r.z, containerStr: "", cLetter: "z" }), D7t(i, r), i;
+ };
+ });
+ var UF = ye((Vmr, _Fe) => {
+ var F7t = Oa(), z7t = ka(), $Z = So(), O7t = tc();
+ function q7t(e, t) {
+ t && yFe(e, t);
+ }
+ function yFe(e, t) {
+ var r = t[0].trace, n = t[0].node3, i = n.selectAll(".choroplethlocation"), a = r.marker || {}, o = a.line || {}, s = O7t.makeColorScaleFuncFromTrace(r);
+ i.each(function(l) {
+ F7t.select(this).attr("fill", s(l.z)).call(z7t.stroke, l.mlc || o.color).call($Z.dashLine, "", l.mlw || o.width || 0).style("opacity", a.opacity);
+ }), $Z.selectedPointStyle(i, r);
+ }
+ function B7t(e, t) {
+ var r = t[0].node3, n = t[0].trace;
+ n.selectedpoints ? $Z.selectedPointStyle(r.selectAll(".choroplethlocation"), n) : yFe(e, t);
+ }
+ _Fe.exports = { style: q7t, styleOnSelect: B7t };
+ });
+ var QZ = ye((Gmr, wFe) => {
+ var N7t = Oa(), xFe = Dr(), o5 = hx(), U7t = bF().getTopojsonFeatures, bFe = Mg().findExtremes, V7t = UF().style;
+ function G7t(e, t, r) {
+ var n = t.layers.backplot.select(".choroplethlayer");
+ xFe.makeTraceGroups(n, r, "trace choropleth").each(function(i) {
+ var a = N7t.select(this), o = a.selectAll("path.choroplethlocation").data(xFe.identity);
+ o.enter().append("path").classed("choroplethlocation", true), o.exit().remove(), V7t(e, i);
+ });
+ }
+ function H7t(e, t) {
+ for (var r = e[0].trace, n = t[r.geo], i = n._subplot, a = r.locationmode, o = r._length, s = a === "geojson-id" ? o5.extractTraceFeature(e) : U7t(r, i.topojson), l = [], u = [], c = 0; c < o; c++) {
+ var f = e[c], h = a === "geojson-id" ? f.fOut : o5.locationToFeature(a, f.loc, s);
+ if (h) {
+ f.geojson = h, f.ct = h.properties.ct, f._polygons = o5.feature2polygons(h);
+ var d = o5.computeBbox(h);
+ l.push(d[0], d[2]), u.push(d[1], d[3]);
+ } else f.geojson = null;
+ }
+ if (n.fitbounds === "geojson" && a === "geojson-id") {
+ var v = o5.computeBbox(o5.getTraceGeojson(r));
+ l = [v[0], v[2]], u = [v[1], v[3]];
+ }
+ var _ = { padded: true };
+ r._extremes.lon = bFe(n.lonaxis._ax, l, _), r._extremes.lat = bFe(n.lataxis._ax, u, _);
+ }
+ wFe.exports = { calcGeoJSON: H7t, plot: G7t };
+ });
+ var VF = ye((Hmr, TFe) => {
+ var j7t = ho(), W7t = a5(), X7t = Dr().fillText;
+ TFe.exports = function(t, r, n) {
+ var i = t.cd, a = i[0].trace, o = t.subplot, s, l, u, c, f = [r, n], h = [r + 360, n];
+ for (l = 0; l < i.length; l++) if (s = i[l], c = false, s._polygons) {
+ for (u = 0; u < s._polygons.length; u++) s._polygons[u].contains(f) && (c = !c), s._polygons[u].contains(h) && (c = !c);
+ if (c) break;
+ }
+ if (!(!c || !s)) return t.x0 = t.x1 = t.xa.c2p(s.ct), t.y0 = t.y1 = t.ya.c2p(s.ct), t.index = s.index, t.location = s.loc, t.z = s.z, t.zLabel = j7t.tickText(o.mockAxis, o.mockAxis.c2l(s.z), "hover").text, t.hovertemplate = s.hovertemplate, Z7t(t, a, s), [t];
+ };
+ function Z7t(e, t, r) {
+ if (!t.hovertemplate) {
+ var n = r.hi || t.hoverinfo, i = String(r.loc), a = n === "all" ? W7t.hoverinfo.flags : n.split("+"), o = a.indexOf("name") !== -1, s = a.indexOf("location") !== -1, l = a.indexOf("z") !== -1, u = a.indexOf("text") !== -1, c = !o && s, f = [];
+ c ? e.nameOverride = i : (o && (e.nameOverride = t.name), s && f.push(i)), l && f.push(e.zLabel), u && X7t(r, t, f), e.extraText = f.join(" ");
+ }
+ }
+ });
+ var GF = ye((jmr, AFe) => {
+ AFe.exports = function(t, r, n, i, a) {
+ t.location = r.location, t.z = r.z;
+ var o = i[a];
+ return o.fIn && o.fIn.properties && (t.properties = o.fIn.properties), t.ct = o.ct, t;
+ };
+ });
+ var HF = ye((Wmr, SFe) => {
+ SFe.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = [], s, l, u, c, f;
+ if (r === false) for (s = 0; s < n.length; s++) n[s].selected = 0;
+ else for (s = 0; s < n.length; s++) l = n[s], u = l.ct, u && (c = i.c2p(u), f = a.c2p(u), r.contains([c, f], null, s, t) ? (o.push({ pointNumber: s, lon: u[0], lat: u[1] }), l.selected = 1) : l.selected = 0);
+ return o;
+ };
+ });
+ var EFe = ye((Xmr, MFe) => {
+ MFe.exports = { attributes: a5(), supplyDefaults: vFe(), colorbar: D_(), calc: NF(), calcGeoJSON: QZ().calcGeoJSON, plot: QZ().plot, style: UF().style, styleOnSelect: UF().styleOnSelect, hoverPoints: VF(), eventData: GF(), selectPoints: HF(), moduleType: "trace", name: "choropleth", basePlotModule: JZ(), categories: ["geo", "noOpacity", "showLegend"], meta: {} };
+ });
+ var CFe = ye((Zmr, kFe) => {
+ kFe.exports = EFe();
+ });
+ var jF = ye((Ymr, PFe) => {
+ var Y7t = qa(), l0 = Dr(), K7t = gT();
+ function J7t(e, t, r, n) {
+ var i = e.cd, a = i[0].t, o = i[0].trace, s = e.xa, l = e.ya, u = a.x, c = a.y, f = s.c2p(t), h = l.c2p(r), d = e.distance, v;
+ if (a.tree) {
+ var _ = s.p2c(f - d), b = s.p2c(f + d), p = l.p2c(h - d), k = l.p2c(h + d);
+ n === "x" ? v = a.tree.range(Math.min(_, b), Math.min(l._rl[0], l._rl[1]), Math.max(_, b), Math.max(l._rl[0], l._rl[1])) : v = a.tree.range(Math.min(_, b), Math.min(p, k), Math.max(_, b), Math.max(p, k));
+ } else v = a.ids;
+ var E, T, L, x, C, M, g, P, A, z = d;
+ if (n === "x") {
+ var O = !!o.xperiodalignment, U = !!o.yperiodalignment;
+ for (C = 0; C < v.length; C++) {
+ if (E = v[C], L = u[E], M = Math.abs(s.c2p(L) - f), O) {
+ var G = s.c2p(o._xStarts[E]), Z = s.c2p(o._xEnds[E]);
+ M = f >= Math.min(G, Z) && f <= Math.max(G, Z) ? 0 : 1 / 0;
+ }
+ if (M < z) {
+ if (z = M, x = c[E], g = l.c2p(x) - h, U) {
+ var j = l.c2p(o._yStarts[E]), N = l.c2p(o._yEnds[E]);
+ g = h >= Math.min(j, N) && h <= Math.max(j, N) ? 0 : 1 / 0;
+ }
+ A = Math.sqrt(M * M + g * g), T = v[C];
+ }
+ }
+ } else for (C = v.length - 1; C > -1; C--) E = v[C], L = u[E], x = c[E], M = s.c2p(L) - f, g = l.c2p(x) - h, P = Math.sqrt(M * M + g * g), P < z && (z = A = P, T = E);
+ return e.index = T, e.distance = z, e.dxy = A, T === void 0 ? [e] : [LFe(e, u, c, o)];
+ }
+ function LFe(e, t, r, n) {
+ var i = e.xa, a = e.ya, o = e.distance, s = e.dxy, l = e.index, u = { pointNumber: l, x: t[l], y: r[l] };
+ u.tx = l0.isArrayOrTypedArray(n.text) ? n.text[l] : n.text, u.htx = Array.isArray(n.hovertext) ? n.hovertext[l] : n.hovertext, u.data = Array.isArray(n.customdata) ? n.customdata[l] : n.customdata, u.tp = Array.isArray(n.textposition) ? n.textposition[l] : n.textposition;
+ var c = n.textfont;
+ c && (u.ts = l0.isArrayOrTypedArray(c.size) ? c.size[l] : c.size, u.tc = l0.isArrayOrTypedArray(c.color) ? c.color[l] : c.color, u.tf = Array.isArray(c.family) ? c.family[l] : c.family, u.tw = Array.isArray(c.weight) ? c.weight[l] : c.weight, u.ty = Array.isArray(c.style) ? c.style[l] : c.style, u.tv = Array.isArray(c.variant) ? c.variant[l] : c.variant);
+ var f = n.marker;
+ f && (u.ms = l0.isArrayOrTypedArray(f.size) ? f.size[l] : f.size, u.mo = l0.isArrayOrTypedArray(f.opacity) ? f.opacity[l] : f.opacity, u.mx = l0.isArrayOrTypedArray(f.symbol) ? f.symbol[l] : f.symbol, u.ma = l0.isArrayOrTypedArray(f.angle) ? f.angle[l] : f.angle, u.mc = l0.isArrayOrTypedArray(f.color) ? f.color[l] : f.color);
+ var h = f && f.line;
+ h && (u.mlc = Array.isArray(h.color) ? h.color[l] : h.color, u.mlw = l0.isArrayOrTypedArray(h.width) ? h.width[l] : h.width);
+ var d = f && f.gradient;
+ d && d.type !== "none" && (u.mgt = Array.isArray(d.type) ? d.type[l] : d.type, u.mgc = Array.isArray(d.color) ? d.color[l] : d.color);
+ var v = i.c2p(u.x, true), _ = a.c2p(u.y, true), b = u.mrc || 1, p = n.hoverlabel;
+ p && (u.hbg = Array.isArray(p.bgcolor) ? p.bgcolor[l] : p.bgcolor, u.hbc = Array.isArray(p.bordercolor) ? p.bordercolor[l] : p.bordercolor, u.hts = l0.isArrayOrTypedArray(p.font.size) ? p.font.size[l] : p.font.size, u.htc = Array.isArray(p.font.color) ? p.font.color[l] : p.font.color, u.htf = Array.isArray(p.font.family) ? p.font.family[l] : p.font.family, u.hnl = l0.isArrayOrTypedArray(p.namelength) ? p.namelength[l] : p.namelength);
+ var k = n.hoverinfo;
+ k && (u.hi = Array.isArray(k) ? k[l] : k);
+ var E = n.hovertemplate;
+ E && (u.ht = Array.isArray(E) ? E[l] : E);
+ var T = {};
+ T[e.index] = u;
+ var L = n._origX, x = n._origY, C = l0.extendFlat({}, e, { color: K7t(n, u), x0: v - b, x1: v + b, xLabelVal: L ? L[l] : u.x, y0: _ - b, y1: _ + b, yLabelVal: x ? x[l] : u.y, cd: T, distance: o, spikeDistance: s, hovertemplate: u.ht });
+ return u.htx ? C.text = u.htx : u.tx ? C.text = u.tx : n.text && (C.text = n.text), l0.fillText(u, n, C), Y7t.getComponentMethod("errorbars", "hoverInfo")(u, n, C), C;
+ }
+ PFe.exports = { hoverPoints: J7t, calcHover: LFe };
+ });
+ var px = ye((Kmr, RFe) => {
+ var IFe = 20;
+ RFe.exports = { TOO_MANY_POINTS: 1e5, SYMBOL_SDF_SIZE: 200, SYMBOL_SIZE: IFe, SYMBOL_STROKE: IFe / 20, DOT_RE: /-dot/, OPEN_RE: /-open/, DASHES: { solid: [1], dot: [1, 1], dash: [4, 1], longdash: [8, 1], dashdot: [4, 1, 1, 1], longdashdot: [8, 1, 1, 1] } };
+ });
+ var gk = ye((Jmr, OFe) => {
+ var $7t = Gl(), Q7t = ec(), e9t = Pg(), mf = pf(), DFe = df().axisHoverFormat, FFe = Tu(), t9t = t_(), eY = Ao().extendFlat, r9t = mc().overrideAll, i9t = px().DASHES, zFe = mf.line, u1 = mf.marker, n9t = u1.line, gx = OFe.exports = r9t({ x: mf.x, x0: mf.x0, dx: mf.dx, y: mf.y, y0: mf.y0, dy: mf.dy, xperiod: mf.xperiod, yperiod: mf.yperiod, xperiod0: mf.xperiod0, yperiod0: mf.yperiod0, xperiodalignment: mf.xperiodalignment, yperiodalignment: mf.yperiodalignment, xhoverformat: DFe("x"), yhoverformat: DFe("y"), text: mf.text, hovertext: mf.hovertext, textposition: mf.textposition, textfont: Q7t({ noFontShadow: true, noFontLineposition: true, noFontTextcase: true, editType: "calc", colorEditType: "style", arrayOk: true, noNumericWeightValues: true, variantValues: ["normal", "small-caps"] }), mode: { valType: "flaglist", flags: ["lines", "markers", "text"], extras: ["none"] }, line: { color: zFe.color, width: zFe.width, shape: { valType: "enumerated", values: ["linear", "hv", "vh", "hvh", "vhv"], dflt: "linear", editType: "plot" }, dash: { valType: "enumerated", values: t9t(i9t), dflt: "solid" } }, marker: eY({}, FFe("marker"), { symbol: u1.symbol, angle: u1.angle, size: u1.size, sizeref: u1.sizeref, sizemin: u1.sizemin, sizemode: u1.sizemode, opacity: u1.opacity, colorbar: u1.colorbar, line: eY({}, FFe("marker.line"), { width: n9t.width }) }), connectgaps: mf.connectgaps, fill: eY({}, mf.fill, { dflt: "none" }), fillcolor: e9t(), selected: { marker: mf.selected.marker, textfont: mf.selected.textfont }, unselected: { marker: mf.unselected.marker, textfont: mf.unselected.textfont }, opacity: $7t.opacity }, "calc", "nested");
+ gx.x.editType = gx.y.editType = gx.x0.editType = gx.y0.editType = "calc+clearAxisTypes";
+ gx.hovertemplate = mf.hovertemplate;
+ gx.hovertemplatefallback = mf.hovertemplatefallback;
+ gx.texttemplate = mf.texttemplate;
+ gx.texttemplatefallback = mf.texttemplatefallback;
+ });
+ var WF = ye((tY) => {
+ var qFe = px();
+ tY.isOpenSymbol = function(e) {
+ return typeof e == "string" ? qFe.OPEN_RE.test(e) : e % 200 > 100;
+ };
+ tY.isDotSymbol = function(e) {
+ return typeof e == "string" ? qFe.DOT_RE.test(e) : e > 200;
+ };
+ });
+ var UFe = ye((Qmr, NFe) => {
+ var BFe = Dr(), a9t = qa(), o9t = WF(), s9t = gk(), l9t = Lm(), XF = Ru(), u9t = oT(), c9t = Dg(), f9t = $p(), h9t = D0(), d9t = Fg(), v9t = F0();
+ NFe.exports = function(t, r, n, i) {
+ function a(d, v) {
+ return BFe.coerce(t, r, s9t, d, v);
+ }
+ var o = t.marker ? o9t.isOpenSymbol(t.marker.symbol) : false, s = XF.isBubble(t), l = u9t(t, r, i, a);
+ if (!l) {
+ r.visible = false;
+ return;
+ }
+ c9t(t, r, i, a), a("xhoverformat"), a("yhoverformat");
+ var u = l < l9t.PTS_LINESONLY ? "lines+markers" : "lines";
+ a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("mode", u), XF.hasMarkers(r) && (f9t(t, r, n, i, a, { noAngleRef: true, noLineDash: true, noStandOff: true }), a("marker.line.width", o || s ? 1 : 0)), XF.hasLines(r) && (a("connectgaps"), h9t(t, r, n, i, a), a("line.shape")), XF.hasText(r) && (a("texttemplate"), a("texttemplatefallback"), v9t(t, r, i, a, { noFontShadow: true, noFontLineposition: true, noFontTextcase: true }));
+ var c = (r.line || {}).color, f = (r.marker || {}).color;
+ a("fill"), r.fill !== "none" && d9t(t, r, n, a);
+ var h = a9t.getComponentMethod("errorbars", "supplyDefaults");
+ h(t, r, c || f || n, { axis: "y" }), h(t, r, c || f || n, { axis: "x", inherit: "y" }), BFe.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var GFe = ye((eyr, VFe) => {
+ var p9t = lI();
+ VFe.exports = function(t, r, n) {
+ var i = t.i;
+ return "x" in t || (t.x = r._x[i]), "y" in t || (t.y = r._y[i]), p9t(t, r, n);
+ };
+ });
+ var jFe = ye((tyr, HFe) => {
+ function g9t(e, t, r, n, i) {
+ for (var a = i + 1; n <= i; ) {
+ var o = n + i >>> 1, s = e[o], l = r !== void 0 ? r(s, t) : s - t;
+ l >= 0 ? (a = o, i = o - 1) : n = o + 1;
+ }
+ return a;
+ }
+ function m9t(e, t, r, n, i) {
+ for (var a = i + 1; n <= i; ) {
+ var o = n + i >>> 1, s = e[o], l = r !== void 0 ? r(s, t) : s - t;
+ l > 0 ? (a = o, i = o - 1) : n = o + 1;
+ }
+ return a;
+ }
+ function y9t(e, t, r, n, i) {
+ for (var a = n - 1; n <= i; ) {
+ var o = n + i >>> 1, s = e[o], l = r !== void 0 ? r(s, t) : s - t;
+ l < 0 ? (a = o, n = o + 1) : i = o - 1;
+ }
+ return a;
+ }
+ function _9t(e, t, r, n, i) {
+ for (var a = n - 1; n <= i; ) {
+ var o = n + i >>> 1, s = e[o], l = r !== void 0 ? r(s, t) : s - t;
+ l <= 0 ? (a = o, n = o + 1) : i = o - 1;
+ }
+ return a;
+ }
+ function x9t(e, t, r, n, i) {
+ for (; n <= i; ) {
+ var a = n + i >>> 1, o = e[a], s = r !== void 0 ? r(o, t) : o - t;
+ if (s === 0) return a;
+ s <= 0 ? n = a + 1 : i = a - 1;
+ }
+ return -1;
+ }
+ function mk(e, t, r, n, i, a) {
+ return typeof r == "function" ? a(e, t, r, n === void 0 ? 0 : n | 0, i === void 0 ? e.length - 1 : i | 0) : a(e, t, void 0, r === void 0 ? 0 : r | 0, n === void 0 ? e.length - 1 : n | 0);
+ }
+ HFe.exports = { ge: function(e, t, r, n, i) {
+ return mk(e, t, r, n, i, g9t);
+ }, gt: function(e, t, r, n, i) {
+ return mk(e, t, r, n, i, m9t);
+ }, lt: function(e, t, r, n, i) {
+ return mk(e, t, r, n, i, y9t);
+ }, le: function(e, t, r, n, i) {
+ return mk(e, t, r, n, i, _9t);
+ }, eq: function(e, t, r, n, i) {
+ return mk(e, t, r, n, i, x9t);
+ } };
+ });
+ var ey = ye((ryr, XFe) => {
+ XFe.exports = function(t, r, n) {
+ var i = {}, a, o;
+ if (typeof r == "string" && (r = WFe(r)), Array.isArray(r)) {
+ var s = {};
+ for (o = 0; o < r.length; o++) s[r[o]] = true;
+ r = s;
+ }
+ for (a in r) r[a] = WFe(r[a]);
+ var l = {};
+ for (a in r) {
+ var u = r[a];
+ if (Array.isArray(u)) for (o = 0; o < u.length; o++) {
+ var c = u[o];
+ if (n && (l[c] = true), c in t) {
+ if (i[a] = t[c], n) for (var f = o; f < u.length; f++) l[u[f]] = true;
+ break;
+ }
+ }
+ else a in t && (r[a] && (i[a] = t[a]), n && (l[a] = true));
+ }
+ if (n) for (a in t) l[a] || (i[a] = t[a]);
+ return i;
+ };
+ var rY = {};
+ function WFe(e) {
+ return rY[e] ? rY[e] : (typeof e == "string" && (e = rY[e] = e.split(/\s*,\s*|\s+/)), e);
+ }
+ });
+ var s5 = ye((iyr, ZFe) => {
+ var b9t = ey();
+ ZFe.exports = w9t;
+ function w9t(e) {
+ var t;
+ return arguments.length > 1 && (e = arguments), typeof e == "string" ? e = e.split(/\s/).map(parseFloat) : typeof e == "number" && (e = [e]), e.length && typeof e[0] == "number" ? e.length === 1 ? t = { width: e[0], height: e[0], x: 0, y: 0 } : e.length === 2 ? t = { width: e[0], height: e[1], x: 0, y: 0 } : t = { x: e[0], y: e[1], width: e[2] - e[0] || 0, height: e[3] - e[1] || 0 } : e && (e = b9t(e, { left: "x l left Left", top: "y t top Top", width: "w width W Width", height: "h height W Width", bottom: "b bottom Bottom", right: "r right Right" }), t = { x: e.left || 0, y: e.top || 0 }, e.width == null ? e.right ? t.width = e.right - t.x : t.width = 0 : t.width = e.width, e.height == null ? e.bottom ? t.height = e.bottom - t.y : t.height = 0 : t.height = e.height), t;
+ }
+ });
+ var rw = ye((nyr, YFe) => {
+ YFe.exports = T9t;
+ function T9t(e, t) {
+ if (!e || e.length == null) throw Error("Argument should be an array");
+ t == null ? t = 1 : t = Math.floor(t);
+ for (var r = Array(t * 2), n = 0; n < t; n++) {
+ for (var i = -1 / 0, a = 1 / 0, o = n, s = e.length; o < s; o += t) e[o] > i && (i = e[o]), e[o] < a && (a = e[o]);
+ r[n] = a, r[t + n] = i;
+ }
+ return r;
+ }
+ });
+ var JFe = ye((ayr, KFe) => {
+ KFe.exports = function() {
+ for (var e = 0; e < arguments.length; e++) if (arguments[e] !== void 0) return arguments[e];
+ };
+ });
+ var iw = ye((oyr, QFe) => {
+ var $Fe = QD();
+ QFe.exports = A9t;
+ function A9t(e, t, r) {
+ if (!e) throw new TypeError("must specify data as first parameter");
+ if (r = +(r || 0) | 0, Array.isArray(e) && e[0] && typeof e[0][0] == "number") {
+ var n = e[0].length, i = e.length * n, a, o, s, l;
+ (!t || typeof t == "string") && (t = new ($Fe(t || "float32"))(i + r));
+ var u = t.length - r;
+ if (i !== u) throw new Error("source length " + i + " (" + n + "x" + e.length + ") does not match destination length " + u);
+ for (a = 0, s = r; a < e.length; a++) for (o = 0; o < n; o++) t[s++] = e[a][o] === null ? NaN : e[a][o];
+ } else if (!t || typeof t == "string") {
+ var c = $Fe(t || "float32");
+ if (Array.isArray(e) || t === "array") for (t = new c(e.length + r), a = 0, s = r, l = t.length; s < l; s++, a++) t[s] = e[a] === null ? NaN : e[a];
+ else r === 0 ? t = new c(e) : (t = new c(e.length + r), t.set(e, r));
+ } else t.set(e, r);
+ return t;
+ }
+ });
+ var tze = ye((syr, eze) => {
+ eze.exports = function(e) {
+ var t = typeof e;
+ return e !== null && (t === "object" || t === "function");
+ };
+ });
+ var ize = ye((lyr, rze) => {
+ rze.exports = Math.log2 || function(e) {
+ return Math.log(e) * Math.LOG2E;
+ };
+ });
+ var cze = ye((uyr, uze) => {
+ var nze = jFe(), aze = rk(), S9t = s5(), M9t = rw(), oze = ey(), iY = JFe(), E9t = iw(), k9t = tze(), C9t = QD(), sze = ize(), L9t = 1073741824;
+ uze.exports = function(t, r) {
+ r || (r = {}), t = E9t(t, "float64"), r = oze(r, { bounds: "range bounds dataBox databox", maxDepth: "depth maxDepth maxdepth level maxLevel maxlevel levels", dtype: "type dtype format out dst output destination" });
+ let n = iY(r.maxDepth, 255), i = iY(r.bounds, M9t(t, 2));
+ i[0] === i[2] && i[2]++, i[1] === i[3] && i[3]++;
+ let a = lze(t, i), o = t.length >>> 1, s;
+ r.dtype || (r.dtype = "array"), typeof r.dtype == "string" ? s = new (C9t(r.dtype))(o) : r.dtype && (s = r.dtype, Array.isArray(s) && (s.length = o));
+ for (let p = 0; p < o; ++p) s[p] = p;
+ let l = [], u = [], c = [], f = [];
+ d(0, 0, 1, s, 0, 1);
+ let h = 0;
+ for (let p = 0; p < l.length; p++) {
+ let k = l[p];
+ if (s.set) s.set(k, h);
+ else for (let T = 0, L = k.length; T < L; T++) s[T + h] = k[T];
+ let E = h + l[p].length;
+ f[p] = [h, E], h = E;
+ }
+ return s.range = v, s;
+ function d(p, k, E, T, L, x) {
+ if (!T.length) return null;
+ let C = l[L] || (l[L] = []), M = c[L] || (c[L] = []), g = u[L] || (u[L] = []), P = C.length;
+ if (L++, L > n || x > L9t) {
+ for (let N = 0; N < T.length; N++) C.push(T[N]), M.push(x), g.push(null, null, null, null);
+ return P;
+ }
+ if (C.push(T[0]), M.push(x), T.length <= 1) return g.push(null, null, null, null), P;
+ let A = E * 0.5, z = p + A, O = k + A, U = [], G = [], Z = [], j = [];
+ for (let N = 1, H = T.length; N < H; N++) {
+ let re = T[N], oe = a[re * 2], _e = a[re * 2 + 1];
+ oe < z ? _e < O ? U.push(re) : G.push(re) : _e < O ? Z.push(re) : j.push(re);
+ }
+ return x <<= 2, g.push(d(p, k, A, U, L, x), d(p, O, A, G, L, x + 1), d(z, k, A, Z, L, x + 2), d(z, O, A, j, L, x + 3)), P;
+ }
+ function v(...p) {
+ let k;
+ if (k9t(p[p.length - 1])) {
+ let Z = p.pop();
+ !p.length && (Z.x != null || Z.l != null || Z.left != null) && (p = [Z], k = {}), k = oze(Z, { level: "level maxLevel", d: "d diam diameter r radius px pxSize pixel pixelSize maxD size minSize", lod: "lod details ranges offsets" });
+ } else k = {};
+ p.length || (p = i);
+ let E = S9t(...p), [T, L, x, C] = [Math.min(E.x, E.x + E.width), Math.min(E.y, E.y + E.height), Math.max(E.x, E.x + E.width), Math.max(E.y, E.y + E.height)], [M, g, P, A] = lze([T, L, x, C], i), z = iY(k.level, l.length);
+ if (k.d != null) {
+ let Z;
+ typeof k.d == "number" ? Z = [k.d, k.d] : k.d.length && (Z = k.d), z = Math.min(Math.max(Math.ceil(-sze(Math.abs(Z[0]) / (i[2] - i[0]))), Math.ceil(-sze(Math.abs(Z[1]) / (i[3] - i[1])))), z);
+ }
+ if (z = Math.min(z, l.length), k.lod) return _(M, g, P, A, z);
+ let O = [];
+ U(0, 0, 1, 0, 0, 1);
+ function U(Z, j, N, H, re, oe) {
+ if (re === null || oe === null) return;
+ let _e = Z + N, Ce = j + N;
+ if (M > _e || g > Ce || P < Z || A < j || H >= z || re === oe) return;
+ let Le = l[H];
+ oe === void 0 && (oe = Le.length);
+ for (let De = re; De < oe; De++) {
+ let ce = Le[De], je = t[ce * 2], lt = t[ce * 2 + 1];
+ je >= T && je <= x && lt >= L && lt <= C && O.push(ce);
+ }
+ let ge = u[H], ie = ge[re * 4 + 0], Se = ge[re * 4 + 1], Ee = ge[re * 4 + 2], Ae = ge[re * 4 + 3], Be = G(ge, re + 1), Pe = N * 0.5, me = H + 1;
+ U(Z, j, Pe, me, ie, Se || Ee || Ae || Be), U(Z, j + Pe, Pe, me, Se, Ee || Ae || Be), U(Z + Pe, j, Pe, me, Ee, Ae || Be), U(Z + Pe, j + Pe, Pe, me, Ae, Be);
+ }
+ function G(Z, j) {
+ let N = null, H = 0;
+ for (; N === null; ) if (N = Z[j * 4 + H], H++, H > Z.length) return null;
+ return N;
+ }
+ return O;
+ }
+ function _(p, k, E, T, L) {
+ let x = [];
+ for (let C = 0; C < L; C++) {
+ let M = c[C], g = f[C][0], P = b(p, k, C), A = b(E, T, C), z = nze.ge(M, P), O = nze.gt(M, A, z, M.length - 1);
+ x[C] = [z + g, O + g];
+ }
+ return x;
+ }
+ function b(p, k, E) {
+ let T = 1, L = 0.5, x = 0.5, C = 0.5;
+ for (let M = 0; M < E; M++) T <<= 2, T += p < L ? k < x ? 0 : 1 : k < x ? 2 : 3, C *= 0.5, L += p < L ? -C : C, x += k < x ? -C : C;
+ return T;
+ }
+ };
+ function lze(e, t) {
+ let [r, n, i, a] = t, o = 1 / (i - r), s = 1 / (a - n), l = new Array(e.length);
+ for (let u = 0, c = e.length / 2; u < c; u++) l[2 * u] = aze((e[2 * u] - r) * o, 0, 1), l[2 * u + 1] = aze((e[2 * u + 1] - n) * s, 0, 1);
+ return l;
+ }
+ });
+ var ZF = ye((cyr, fze) => {
+ fze.exports = cze();
+ });
+ var nY = ye((fyr, hze) => {
+ hze.exports = P9t;
+ function P9t(e) {
+ var t = 0, r = 0, n = 0, i = 0;
+ return e.map(function(a) {
+ a = a.slice();
+ var o = a[0], s = o.toUpperCase();
+ if (o != s) switch (a[0] = s, o) {
+ case "a":
+ a[6] += n, a[7] += i;
+ break;
+ case "v":
+ a[1] += i;
+ break;
+ case "h":
+ a[1] += n;
+ break;
+ default:
+ for (var l = 1; l < a.length; ) a[l++] += n, a[l++] += i;
+ }
+ switch (s) {
+ case "Z":
+ n = t, i = r;
+ break;
+ case "H":
+ n = a[1];
+ break;
+ case "V":
+ i = a[1];
+ break;
+ case "M":
+ n = t = a[1], i = r = a[2];
+ break;
+ default:
+ n = a[a.length - 2], i = a[a.length - 1];
+ }
+ return a;
+ });
+ }
+ });
+ var pze = ye((YF, vze) => {
+ Object.defineProperty(YF, "__esModule", { value: true });
+ var I9t = /* @__PURE__ */ function() {
+ function e(t, r) {
+ var n = [], i = true, a = false, o = void 0;
+ try {
+ for (var s = t[Symbol.iterator](), l; !(i = (l = s.next()).done) && (n.push(l.value), !(r && n.length === r)); i = true) ;
+ } catch (u) {
+ a = true, o = u;
+ } finally {
+ try {
+ !i && s.return && s.return();
+ } finally {
+ if (a) throw o;
+ }
+ }
+ return n;
+ }
+ return function(t, r) {
+ if (Array.isArray(t)) return t;
+ if (Symbol.iterator in Object(t)) return e(t, r);
+ throw new TypeError("Invalid attempt to destructure non-iterable instance");
+ };
+ }(), yk = Math.PI * 2, aY = function(t, r, n, i, a, o, s) {
+ var l = t.x, u = t.y;
+ l *= r, u *= n;
+ var c = i * l - a * u, f = a * l + i * u;
+ return { x: c + o, y: f + s };
+ }, R9t = function(t, r) {
+ var n = r === 1.5707963267948966 ? 0.551915024494 : r === -1.5707963267948966 ? -0.551915024494 : 1.3333333333333333 * Math.tan(r / 4), i = Math.cos(t), a = Math.sin(t), o = Math.cos(t + r), s = Math.sin(t + r);
+ return [{ x: i - a * n, y: a + i * n }, { x: o + s * n, y: s - o * n }, { x: o, y: s }];
+ }, dze = function(t, r, n, i) {
+ var a = t * i - r * n < 0 ? -1 : 1, o = t * n + r * i;
+ return o > 1 && (o = 1), o < -1 && (o = -1), a * Math.acos(o);
+ }, D9t = function(t, r, n, i, a, o, s, l, u, c, f, h) {
+ var d = Math.pow(a, 2), v = Math.pow(o, 2), _ = Math.pow(f, 2), b = Math.pow(h, 2), p = d * v - d * b - v * _;
+ p < 0 && (p = 0), p /= d * b + v * _, p = Math.sqrt(p) * (s === l ? -1 : 1);
+ var k = p * a / o * h, E = p * -o / a * f, T = c * k - u * E + (t + n) / 2, L = u * k + c * E + (r + i) / 2, x = (f - k) / a, C = (h - E) / o, M = (-f - k) / a, g = (-h - E) / o, P = dze(1, 0, x, C), A = dze(x, C, M, g);
+ return l === 0 && A > 0 && (A -= yk), l === 1 && A < 0 && (A += yk), [T, L, P, A];
+ }, F9t = function(t) {
+ var r = t.px, n = t.py, i = t.cx, a = t.cy, o = t.rx, s = t.ry, l = t.xAxisRotation, u = l === void 0 ? 0 : l, c = t.largeArcFlag, f = c === void 0 ? 0 : c, h = t.sweepFlag, d = h === void 0 ? 0 : h, v = [];
+ if (o === 0 || s === 0) return [];
+ var _ = Math.sin(u * yk / 360), b = Math.cos(u * yk / 360), p = b * (r - i) / 2 + _ * (n - a) / 2, k = -_ * (r - i) / 2 + b * (n - a) / 2;
+ if (p === 0 && k === 0) return [];
+ o = Math.abs(o), s = Math.abs(s);
+ var E = Math.pow(p, 2) / Math.pow(o, 2) + Math.pow(k, 2) / Math.pow(s, 2);
+ E > 1 && (o *= Math.sqrt(E), s *= Math.sqrt(E));
+ var T = D9t(r, n, i, a, o, s, f, d, _, b, p, k), L = I9t(T, 4), x = L[0], C = L[1], M = L[2], g = L[3], P = Math.abs(g) / (yk / 4);
+ Math.abs(1 - P) < 1e-7 && (P = 1);
+ var A = Math.max(Math.ceil(P), 1);
+ g /= A;
+ for (var z = 0; z < A; z++) v.push(R9t(M, g)), M += g;
+ return v.map(function(O) {
+ var U = aY(O[0], o, s, b, _, x, C), G = U.x, Z = U.y, j = aY(O[1], o, s, b, _, x, C), N = j.x, H = j.y, re = aY(O[2], o, s, b, _, x, C), oe = re.x, _e = re.y;
+ return { x1: G, y1: Z, x2: N, y2: H, x: oe, y: _e };
+ });
+ };
+ YF.default = F9t;
+ vze.exports = YF.default;
+ });
+ var yze = ye((hyr, mze) => {
+ mze.exports = O9t;
+ var z9t = pze();
+ function O9t(e) {
+ for (var t, r = [], n = 0, i = 0, a = 0, o = 0, s = null, l = null, u = 0, c = 0, f = 0, h = e.length; f < h; f++) {
+ var d = e[f], v = d[0];
+ switch (v) {
+ case "M":
+ a = d[1], o = d[2];
+ break;
+ case "A":
+ var _ = z9t({ px: u, py: c, cx: d[6], cy: d[7], rx: d[1], ry: d[2], xAxisRotation: d[3], largeArcFlag: d[4], sweepFlag: d[5] });
+ if (!_.length) continue;
+ for (var b = 0, p; b < _.length; b++) p = _[b], d = ["C", p.x1, p.y1, p.x2, p.y2, p.x, p.y], b < _.length - 1 && r.push(d);
+ break;
+ case "S":
+ var k = u, E = c;
+ (t == "C" || t == "S") && (k += k - n, E += E - i), d = ["C", k, E, d[1], d[2], d[3], d[4]];
+ break;
+ case "T":
+ t == "Q" || t == "T" ? (s = u * 2 - s, l = c * 2 - l) : (s = u, l = c), d = gze(u, c, s, l, d[1], d[2]);
+ break;
+ case "Q":
+ s = d[1], l = d[2], d = gze(u, c, d[1], d[2], d[3], d[4]);
+ break;
+ case "L":
+ d = KF(u, c, d[1], d[2]);
+ break;
+ case "H":
+ d = KF(u, c, d[1], c);
+ break;
+ case "V":
+ d = KF(u, c, u, d[1]);
+ break;
+ case "Z":
+ d = KF(u, c, a, o);
+ break;
+ }
+ t = v, u = d[d.length - 2], c = d[d.length - 1], d.length > 4 ? (n = d[d.length - 4], i = d[d.length - 3]) : (n = u, i = c), r.push(d);
+ }
+ return r;
+ }
+ function KF(e, t, r, n) {
+ return ["C", e, t, r, n, r, n];
+ }
+ function gze(e, t, r, n, i, a) {
+ return ["C", e / 3 + 2 / 3 * r, t / 3 + 2 / 3 * n, i / 3 + 2 / 3 * r, a / 3 + 2 / 3 * n, i, a];
+ }
+ });
+ var oY = ye((dyr, _ze) => {
+ _ze.exports = function(t) {
+ return typeof t != "string" ? false : (t = t.trim(), !!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t) && /[\dz]$/i.test(t) && t.length > 4));
+ };
+ });
+ var wze = ye((vyr, bze) => {
+ var q9t = nM(), B9t = nY(), N9t = yze(), U9t = oY(), xze = gE();
+ bze.exports = V9t;
+ function V9t(e) {
+ if (Array.isArray(e) && e.length === 1 && typeof e[0] == "string" && (e = e[0]), typeof e == "string" && (xze(U9t(e), "String is not an SVG path."), e = q9t(e)), xze(Array.isArray(e), "Argument should be a string or an array of path segments."), e = B9t(e), e = N9t(e), !e.length) return [0, 0, 0, 0];
+ for (var t = [1 / 0, 1 / 0, -1 / 0, -1 / 0], r = 0, n = e.length; r < n; r++) for (var i = e[r].slice(1), a = 0; a < i.length; a += 2) i[a + 0] < t[0] && (t[0] = i[a + 0]), i[a + 1] < t[1] && (t[1] = i[a + 1]), i[a + 0] > t[2] && (t[2] = i[a + 0]), i[a + 1] > t[3] && (t[3] = i[a + 1]);
+ return t;
+ }
+ });
+ var kze = ye((pyr, Eze) => {
+ var nw = Math.PI, Tze = Mze(120);
+ Eze.exports = G9t;
+ function G9t(e) {
+ for (var t, r = [], n = 0, i = 0, a = 0, o = 0, s = null, l = null, u = 0, c = 0, f = 0, h = e.length; f < h; f++) {
+ var d = e[f], v = d[0];
+ switch (v) {
+ case "M":
+ a = d[1], o = d[2];
+ break;
+ case "A":
+ d = Sze(u, c, d[1], d[2], Mze(d[3]), d[4], d[5], d[6], d[7]), d.unshift("C"), d.length > 7 && (r.push(d.splice(0, 7)), d.unshift("C"));
+ break;
+ case "S":
+ var _ = u, b = c;
+ (t == "C" || t == "S") && (_ += _ - n, b += b - i), d = ["C", _, b, d[1], d[2], d[3], d[4]];
+ break;
+ case "T":
+ t == "Q" || t == "T" ? (s = u * 2 - s, l = c * 2 - l) : (s = u, l = c), d = Aze(u, c, s, l, d[1], d[2]);
+ break;
+ case "Q":
+ s = d[1], l = d[2], d = Aze(u, c, d[1], d[2], d[3], d[4]);
+ break;
+ case "L":
+ d = JF(u, c, d[1], d[2]);
+ break;
+ case "H":
+ d = JF(u, c, d[1], c);
+ break;
+ case "V":
+ d = JF(u, c, u, d[1]);
+ break;
+ case "Z":
+ d = JF(u, c, a, o);
+ break;
+ }
+ t = v, u = d[d.length - 2], c = d[d.length - 1], d.length > 4 ? (n = d[d.length - 4], i = d[d.length - 3]) : (n = u, i = c), r.push(d);
+ }
+ return r;
+ }
+ function JF(e, t, r, n) {
+ return ["C", e, t, r, n, r, n];
+ }
+ function Aze(e, t, r, n, i, a) {
+ return ["C", e / 3 + 2 / 3 * r, t / 3 + 2 / 3 * n, i / 3 + 2 / 3 * r, a / 3 + 2 / 3 * n, i, a];
+ }
+ function Sze(e, t, r, n, i, a, o, s, l, u) {
+ if (u) E = u[0], T = u[1], p = u[2], k = u[3];
+ else {
+ var c = sY(e, t, -i);
+ e = c.x, t = c.y, c = sY(s, l, -i), s = c.x, l = c.y;
+ var f = (e - s) / 2, h = (t - l) / 2, d = f * f / (r * r) + h * h / (n * n);
+ d > 1 && (d = Math.sqrt(d), r = d * r, n = d * n);
+ var v = r * r, _ = n * n, b = (a == o ? -1 : 1) * Math.sqrt(Math.abs((v * _ - v * h * h - _ * f * f) / (v * h * h + _ * f * f)));
+ b == 1 / 0 && (b = 1);
+ var p = b * r * h / n + (e + s) / 2, k = b * -n * f / r + (t + l) / 2, E = Math.asin(((t - k) / n).toFixed(9)), T = Math.asin(((l - k) / n).toFixed(9));
+ E = e < p ? nw - E : E, T = s < p ? nw - T : T, E < 0 && (E = nw * 2 + E), T < 0 && (T = nw * 2 + T), o && E > T && (E = E - nw * 2), !o && T > E && (T = T - nw * 2);
+ }
+ if (Math.abs(T - E) > Tze) {
+ var L = T, x = s, C = l;
+ T = E + Tze * (o && T > E ? 1 : -1), s = p + r * Math.cos(T), l = k + n * Math.sin(T);
+ var M = Sze(s, l, r, n, i, 0, o, x, C, [T, L, p, k]);
+ }
+ var g = Math.tan((T - E) / 4), P = 4 / 3 * r * g, A = 4 / 3 * n * g, z = [2 * e - (e + P * Math.sin(E)), 2 * t - (t - A * Math.cos(E)), s + P * Math.sin(T), l - A * Math.cos(T), s, l];
+ if (u) return z;
+ M && (z = z.concat(M));
+ for (var O = 0; O < z.length; ) {
+ var U = sY(z[O], z[O + 1], i);
+ z[O++] = U.x, z[O++] = U.y;
+ }
+ return z;
+ }
+ function sY(e, t, r) {
+ return { x: e * Math.cos(r) - t * Math.sin(r), y: e * Math.sin(r) + t * Math.cos(r) };
+ }
+ function Mze(e) {
+ return e * (nw / 180);
+ }
+ });
+ var Lze = ye((gyr, Cze) => {
+ var H9t = nY(), j9t = kze(), W9t = { M: "moveTo", C: "bezierCurveTo" };
+ Cze.exports = function(e, t) {
+ e.beginPath(), j9t(H9t(t)).forEach(function(r) {
+ var n = r[0], i = r.slice(1);
+ e[W9t[n]].apply(e, i);
+ }), e.closePath();
+ };
+ });
+ var Dze = ye((myr, Rze) => {
+ var X9t = rk();
+ Rze.exports = Z9t;
+ var _k = 1e20;
+ function Z9t(e, t) {
+ t || (t = {});
+ var r = t.cutoff == null ? 0.25 : t.cutoff, n = t.radius == null ? 8 : t.radius, i = t.channel || 0, a, o, s, l, u, c, f, h, d, v, _;
+ if (ArrayBuffer.isView(e) || Array.isArray(e)) {
+ if (!t.width || !t.height) throw Error("For raw data width and height should be provided by options");
+ a = t.width, o = t.height, l = e, t.stride ? c = t.stride : c = Math.floor(e.length / a / o);
+ } else window.HTMLCanvasElement && e instanceof window.HTMLCanvasElement ? (h = e, f = h.getContext("2d"), a = h.width, o = h.height, d = f.getImageData(0, 0, a, o), l = d.data, c = 4) : window.CanvasRenderingContext2D && e instanceof window.CanvasRenderingContext2D ? (h = e.canvas, f = e, a = h.width, o = h.height, d = f.getImageData(0, 0, a, o), l = d.data, c = 4) : window.ImageData && e instanceof window.ImageData && (d = e, a = e.width, o = e.height, l = d.data, c = 4);
+ if (s = Math.max(a, o), window.Uint8ClampedArray && l instanceof window.Uint8ClampedArray || window.Uint8Array && l instanceof window.Uint8Array) for (u = l, l = Array(a * o), v = 0, _ = u.length; v < _; v++) l[v] = u[v * c + i] / 255;
+ else if (c !== 1) throw Error("Raw data can have only 1 value per pixel");
+ var b = Array(a * o), p = Array(a * o), k = Array(s), E = Array(s), T = Array(s + 1), L = Array(s);
+ for (v = 0, _ = a * o; v < _; v++) {
+ var x = l[v];
+ b[v] = x === 1 ? 0 : x === 0 ? _k : Math.pow(Math.max(0, 0.5 - x), 2), p[v] = x === 1 ? _k : x === 0 ? 0 : Math.pow(Math.max(0, x - 0.5), 2);
+ }
+ Pze(b, a, o, k, E, L, T), Pze(p, a, o, k, E, L, T);
+ var C = window.Float32Array ? new Float32Array(a * o) : new Array(a * o);
+ for (v = 0, _ = a * o; v < _; v++) C[v] = X9t(1 - ((b[v] - p[v]) / n + r), 0, 1);
+ return C;
+ }
+ function Pze(e, t, r, n, i, a, o) {
+ for (var s = 0; s < t; s++) {
+ for (var l = 0; l < r; l++) n[l] = e[l * t + s];
+ for (Ize(n, i, a, o, r), l = 0; l < r; l++) e[l * t + s] = i[l];
+ }
+ for (l = 0; l < r; l++) {
+ for (s = 0; s < t; s++) n[s] = e[l * t + s];
+ for (Ize(n, i, a, o, t), s = 0; s < t; s++) e[l * t + s] = Math.sqrt(i[s]);
+ }
+ }
+ function Ize(e, t, r, n, i) {
+ r[0] = 0, n[0] = -1e20, n[1] = 1e20;
+ for (var a = 1, o = 0; a < i; a++) {
+ for (var s = (e[a] + a * a - (e[r[o]] + r[o] * r[o])) / (2 * a - 2 * r[o]); s <= n[o]; ) o--, s = (e[a] + a * a - (e[r[o]] + r[o] * r[o])) / (2 * a - 2 * r[o]);
+ o++, r[o] = a, n[o] = s, n[o + 1] = 1e20;
+ }
+ for (a = 0, o = 0; a < i; a++) {
+ for (; n[o + 1] < a; ) o++;
+ t[a] = (a - r[o]) * (a - r[o]) + e[r[o]];
+ }
+ }
+ });
+ var zze = ye((yyr, Fze) => {
+ var Y9t = wze(), K9t = nM(), J9t = Lze(), $9t = oY(), Q9t = Dze(), lY = document.createElement("canvas"), dp = lY.getContext("2d");
+ Fze.exports = eOt;
+ function eOt(e, t) {
+ if (!$9t(e)) throw Error("Argument should be valid svg path string");
+ t || (t = {});
+ var r, n;
+ t.shape ? (r = t.shape[0], n = t.shape[1]) : (r = lY.width = t.w || t.width || 200, n = lY.height = t.h || t.height || 200);
+ var i = Math.min(r, n), a = t.stroke || 0, o = t.viewbox || t.viewBox || Y9t(e), s = [r / (o[2] - o[0]), n / (o[3] - o[1])], l = Math.min(s[0] || 0, s[1] || 0) / 2;
+ if (dp.fillStyle = "black", dp.fillRect(0, 0, r, n), dp.fillStyle = "white", a && (typeof a != "number" && (a = 1), a > 0 ? dp.strokeStyle = "white" : dp.strokeStyle = "black", dp.lineWidth = Math.abs(a)), dp.translate(r * 0.5, n * 0.5), dp.scale(l, l), tOt()) {
+ var u = new Path2D(e);
+ dp.fill(u), a && dp.stroke(u);
+ } else {
+ var c = K9t(e);
+ J9t(dp, c), dp.fill(), a && dp.stroke();
+ }
+ dp.setTransform(1, 0, 0, 1, 0, 0);
+ var f = Q9t(dp, { cutoff: t.cutoff != null ? t.cutoff : 0.5, radius: t.radius != null ? t.radius : i * 0.5 });
+ return f;
+ }
+ var $F;
+ function tOt() {
+ if ($F != null) return $F;
+ var e = document.createElement("canvas").getContext("2d");
+ if (e.canvas.width = e.canvas.height = 1, !window.Path2D) return $F = false;
+ var t = new Path2D("M0,0h1v1h-1v-1Z");
+ e.fillStyle = "black", e.fill(t);
+ var r = e.getImageData(0, 0, 1, 1);
+ return $F = r && r.data && r.data[3] === 255;
+ }
+ });
+ var ow = ye((_yr, Xze) => {
+ var ez = Eo(), rOt = zze(), QF = ox(), iOt = qa(), c5 = Dr(), bh = c5.isArrayOrTypedArray, l5 = So(), Oze = hf(), qze = a1().formatColor, u5 = Ru(), nOt = O3(), cY = WF(), xk = px(), aOt = X1().DESELECTDIM, Bze = { start: 1, left: 1, end: -1, right: -1, middle: 0, center: 0, bottom: 1, top: -1 }, oOt = ip().appendArrayPointValue;
+ function sOt(e, t) {
+ var r, n = { marker: void 0, markerSel: void 0, markerUnsel: void 0, line: void 0, fill: void 0, errorX: void 0, errorY: void 0, text: void 0, textSel: void 0, textUnsel: void 0 }, i = e._context.plotGlPixelRatio;
+ if (t.visible !== true) return n;
+ if (u5.hasText(t) && (n.text = Wze(e, t), n.textSel = Uze(e, t, t.selected), n.textUnsel = Uze(e, t, t.unselected)), u5.hasMarkers(t) && (n.marker = hY(e, t), n.markerSel = fY(e, t, t.selected), n.markerUnsel = fY(e, t, t.unselected), !t.unselected && bh(t.marker.opacity))) {
+ var a = t.marker.opacity;
+ for (n.markerUnsel.opacity = new Array(a.length), r = 0; r < a.length; r++) n.markerUnsel.opacity[r] = aOt * a[r];
+ }
+ if (u5.hasLines(t)) {
+ n.line = { overlay: true, thickness: t.line.width * i, color: t.line.color, opacity: t.opacity };
+ var o = (xk.DASHES[t.line.dash] || [1]).slice();
+ for (r = 0; r < o.length; ++r) o[r] *= t.line.width * i;
+ n.line.dashes = o;
+ }
+ return t.error_x && t.error_x.visible && (n.errorX = Vze(t, t.error_x, i)), t.error_y && t.error_y.visible && (n.errorY = Vze(t, t.error_y, i)), t.fill && t.fill !== "none" && (n.fill = { closed: true, fill: t.fillcolor, thickness: 0 }), n;
+ }
+ function Wze(e, t) {
+ var r = e._fullLayout, n = t._length, i = t.textfont, a = t.textposition, o = bh(a) ? a : [a], s = i.color, l = i.size, u = i.family, c = i.weight, f = i.style, h = i.variant, d = {}, v, _ = e._context.plotGlPixelRatio, b = t.texttemplate;
+ if (b) {
+ d.text = [];
+ var p = r._d3locale, k = Array.isArray(b), E = k ? Math.min(b.length, n) : n, T = k ? function(P) {
+ return b[P];
+ } : function() {
+ return b;
+ };
+ for (v = 0; v < E; v++) {
+ var L = { i: v }, x = t._module.formatLabels(L, t, r), C = {};
+ oOt(C, t, v), d.text.push(c5.texttemplateString({ data: [C, L, t._meta], fallback: t.texttemplatefallback, labels: x, locale: p, template: T(v) }));
+ }
+ } else bh(t.text) && t.text.length < n ? d.text = t.text.slice() : d.text = t.text;
+ if (bh(d.text)) for (v = d.text.length; v < n; v++) d.text[v] = "";
+ for (d.opacity = t.opacity, d.font = {}, d.align = [], d.baseline = [], v = 0; v < o.length; v++) {
+ var M = o[v].split(/\s+/);
+ switch (M[1]) {
+ case "left":
+ d.align.push("right");
+ break;
+ case "right":
+ d.align.push("left");
+ break;
+ default:
+ d.align.push(M[1]);
+ }
+ switch (M[0]) {
+ case "top":
+ d.baseline.push("bottom");
+ break;
+ case "bottom":
+ d.baseline.push("top");
+ break;
+ default:
+ d.baseline.push(M[0]);
+ }
+ }
+ if (bh(s)) for (d.color = new Array(n), v = 0; v < n; v++) d.color[v] = s[v];
+ else d.color = s;
+ if (bh(l) || Array.isArray(u) || bh(c) || Array.isArray(f) || Array.isArray(h)) for (d.font = new Array(n), v = 0; v < n; v++) {
+ var g = d.font[v] = {};
+ g.size = (c5.isTypedArray(l) ? l[v] : bh(l) ? ez(l[v]) ? l[v] : 0 : l) * _, g.family = Array.isArray(u) ? u[v] : u, g.weight = Nze(bh(c) ? c[v] : c), g.style = Array.isArray(f) ? f[v] : f, g.variant = Array.isArray(h) ? h[v] : h;
+ }
+ else d.font = { size: l * _, family: u, weight: Nze(c), style: f, variant: h };
+ return d;
+ }
+ function Nze(e) {
+ return e <= 1e3 ? e > 500 ? "bold" : "normal" : e;
+ }
+ function hY(e, t) {
+ var r = t._length, n = t.marker, i = {}, a, o = bh(n.symbol), s = bh(n.angle), l = bh(n.color), u = bh(n.line.color), c = bh(n.opacity), f = bh(n.size), h = bh(n.line.width), d;
+ if (o || (d = cY.isOpenSymbol(n.symbol)), o || l || u || c || s) {
+ i.symbols = new Array(r), i.angles = new Array(r), i.colors = new Array(r), i.borderColors = new Array(r);
+ var v = n.symbol, _ = n.angle, b = qze(n, n.opacity, r), p = qze(n.line, n.opacity, r);
+ if (!bh(p[0])) {
+ var k = p;
+ for (p = Array(r), a = 0; a < r; a++) p[a] = k;
+ }
+ if (!bh(b[0])) {
+ var E = b;
+ for (b = Array(r), a = 0; a < r; a++) b[a] = E;
+ }
+ if (!bh(v)) {
+ var T = v;
+ for (v = Array(r), a = 0; a < r; a++) v[a] = T;
+ }
+ if (!bh(_)) {
+ var L = _;
+ for (_ = Array(r), a = 0; a < r; a++) _[a] = L;
+ }
+ for (i.symbols = v, i.angles = _, i.colors = b, i.borderColors = p, a = 0; a < r; a++) o && (d = cY.isOpenSymbol(n.symbol[a])), d && (p[a] = b[a].slice(), b[a] = b[a].slice(), b[a][3] = 0);
+ for (i.opacity = t.opacity, i.markers = new Array(r), a = 0; a < r; a++) i.markers[a] = jze({ mx: i.symbols[a], ma: i.angles[a] }, t);
+ } else d ? (i.color = QF(n.color, "uint8"), i.color[3] = 0, i.borderColor = QF(n.color, "uint8")) : (i.color = QF(n.color, "uint8"), i.borderColor = QF(n.line.color, "uint8")), i.opacity = t.opacity * n.opacity, i.marker = jze({ mx: n.symbol, ma: n.angle }, t);
+ var x = 1, C = nOt(t, x), M;
+ if (f || h) {
+ var g = i.sizes = new Array(r), P = i.borderSizes = new Array(r), A = 0, z;
+ if (f) {
+ for (a = 0; a < r; a++) g[a] = C(n.size[a]), A += g[a];
+ z = A / r;
+ } else for (M = C(n.size), a = 0; a < r; a++) g[a] = M;
+ if (h) for (a = 0; a < r; a++) P[a] = n.line.width[a];
+ else for (M = n.line.width, a = 0; a < r; a++) P[a] = M;
+ i.sizeAvg = z;
+ } else i.size = C(n && n.size || 10), i.borderSizes = C(n.line.width);
+ return i;
+ }
+ function fY(e, t, r) {
+ var n = t.marker, i = {};
+ return r && (r.marker && r.marker.symbol ? i = hY(e, c5.extendFlat({}, n, r.marker)) : r.marker && (r.marker.size && (i.size = r.marker.size), r.marker.color && (i.colors = r.marker.color), r.marker.opacity !== void 0 && (i.opacity = r.marker.opacity))), i;
+ }
+ function Uze(e, t, r) {
+ var n = {};
+ if (!r) return n;
+ if (r.textfont) {
+ var i = { opacity: 1, text: t.text, texttemplate: t.texttemplate, textposition: t.textposition, textfont: c5.extendFlat({}, t.textfont) };
+ r.textfont && c5.extendFlat(i.textfont, r.textfont), n = Wze(e, i);
+ }
+ return n;
+ }
+ function Vze(e, t, r) {
+ var n = { capSize: t.width * 2 * r, lineWidth: t.thickness * r, color: t.color };
+ return t.copy_ystyle && (n = e.error_y), n;
+ }
+ var Gze = xk.SYMBOL_SDF_SIZE, aw = xk.SYMBOL_SIZE, Hze = xk.SYMBOL_STROKE, uY = {}, lOt = l5.symbolFuncs[0](aw * 0.05);
+ function jze(e, t) {
+ var r = e.mx;
+ if (r === "circle") return null;
+ var n, i, a = l5.symbolNumber(r), o = l5.symbolFuncs[a % 100], s = !!l5.symbolNoDot[a % 100], l = !!l5.symbolNoFill[a % 100], u = cY.isDotSymbol(r);
+ if (e.ma && (r += "_" + e.ma), uY[r]) return uY[r];
+ var c = l5.getMarkerAngle(e, t);
+ return u && !s ? n = o(aw * 1.1, c) + lOt : n = o(aw, c), i = rOt(n, { w: Gze, h: Gze, viewBox: [-aw, -aw, aw, aw], stroke: l ? Hze : -Hze }), uY[r] = i, i || null;
+ }
+ function uOt(e, t, r) {
+ var n = r.length, i = n / 2, a, o;
+ if (u5.hasLines(t) && i) if (t.line.shape === "hv") {
+ for (a = [], o = 0; o < i - 1; o++) isNaN(r[o * 2]) || isNaN(r[o * 2 + 1]) ? a.push(NaN, NaN, NaN, NaN) : (a.push(r[o * 2], r[o * 2 + 1]), !isNaN(r[o * 2 + 2]) && !isNaN(r[o * 2 + 3]) ? a.push(r[o * 2 + 2], r[o * 2 + 1]) : a.push(NaN, NaN));
+ a.push(r[n - 2], r[n - 1]);
+ } else if (t.line.shape === "hvh") {
+ for (a = [], o = 0; o < i - 1; o++) if (isNaN(r[o * 2]) || isNaN(r[o * 2 + 1]) || isNaN(r[o * 2 + 2]) || isNaN(r[o * 2 + 3])) !isNaN(r[o * 2]) && !isNaN(r[o * 2 + 1]) ? a.push(r[o * 2], r[o * 2 + 1]) : a.push(NaN, NaN), a.push(NaN, NaN);
+ else {
+ var s = (r[o * 2] + r[o * 2 + 2]) / 2;
+ a.push(r[o * 2], r[o * 2 + 1], s, r[o * 2 + 1], s, r[o * 2 + 3]);
+ }
+ a.push(r[n - 2], r[n - 1]);
+ } else if (t.line.shape === "vhv") {
+ for (a = [], o = 0; o < i - 1; o++) if (isNaN(r[o * 2]) || isNaN(r[o * 2 + 1]) || isNaN(r[o * 2 + 2]) || isNaN(r[o * 2 + 3])) !isNaN(r[o * 2]) && !isNaN(r[o * 2 + 1]) ? a.push(r[o * 2], r[o * 2 + 1]) : a.push(NaN, NaN), a.push(NaN, NaN);
+ else {
+ var l = (r[o * 2 + 1] + r[o * 2 + 3]) / 2;
+ a.push(r[o * 2], r[o * 2 + 1], r[o * 2], l, r[o * 2 + 2], l);
+ }
+ a.push(r[n - 2], r[n - 1]);
+ } else if (t.line.shape === "vh") {
+ for (a = [], o = 0; o < i - 1; o++) isNaN(r[o * 2]) || isNaN(r[o * 2 + 1]) ? a.push(NaN, NaN, NaN, NaN) : (a.push(r[o * 2], r[o * 2 + 1]), !isNaN(r[o * 2 + 2]) && !isNaN(r[o * 2 + 3]) ? a.push(r[o * 2], r[o * 2 + 3]) : a.push(NaN, NaN));
+ a.push(r[n - 2], r[n - 1]);
+ } else a = r;
+ var u = false;
+ for (o = 0; o < a.length; o++) if (isNaN(a[o])) {
+ u = true;
+ break;
+ }
+ var c = u || a.length > xk.TOO_MANY_POINTS || u5.hasMarkers(t) ? "rect" : "round";
+ if (u && t.connectgaps) {
+ var f = a[0], h = a[1];
+ for (o = 0; o < a.length; o += 2) isNaN(a[o]) || isNaN(a[o + 1]) ? (a[o] = f, a[o + 1] = h) : (f = a[o], h = a[o + 1]);
+ }
+ return { join: c, positions: a };
+ }
+ function cOt(e, t, r, n, i) {
+ var a = iOt.getComponentMethod("errorbars", "makeComputeError"), o = Oze.getFromId(e, t.xaxis, "x"), s = Oze.getFromId(e, t.yaxis, "y"), l = r.length / 2, u = {};
+ function c(f, h) {
+ var d = h._id.charAt(0), v = t["error_" + d];
+ if (v && v.visible && (h.type === "linear" || h.type === "log")) {
+ for (var _ = a(v), b = { x: 0, y: 1 }[d], p = { x: [0, 1, 2, 3], y: [2, 3, 0, 1] }[d], k = new Float64Array(4 * l), E = 1 / 0, T = -1 / 0, L = 0, x = 0; L < l; L++, x += 4) {
+ var C = f[L];
+ if (ez(C)) {
+ var M = r[L * 2 + b], g = _(C, L), P = g[0], A = g[1];
+ if (ez(P) && ez(A)) {
+ var z = C - P, O = C + A;
+ k[x + p[0]] = M - h.c2l(z), k[x + p[1]] = h.c2l(O) - M, k[x + p[2]] = 0, k[x + p[3]] = 0, E = Math.min(E, C - P), T = Math.max(T, C + A);
+ }
+ }
+ }
+ u[d] = { positions: r, errors: k, _bnds: [E, T] };
+ }
+ }
+ return c(n, o), c(i, s), u;
+ }
+ function fOt(e, t, r, n) {
+ var i = t._length, a = {}, o;
+ if (u5.hasMarkers(t)) {
+ var s = r.font, l = r.align, u = r.baseline;
+ for (a.offset = new Array(i), o = 0; o < i; o++) {
+ var c = n.sizes ? n.sizes[o] : n.size, f = bh(s) ? s[o].size : s.size, h = bh(l) ? l.length > 1 ? l[o] : l[0] : l, d = bh(u) ? u.length > 1 ? u[o] : u[0] : u, v = Bze[h], _ = Bze[d], b = c ? c / 0.8 + 1 : 0, p = -_ * b - _ * 0.5;
+ a.offset[o] = [v * b / f, p / f];
+ }
+ }
+ return a;
+ }
+ Xze.exports = { style: sOt, markerStyle: hY, markerSelection: fY, linePositions: uOt, errorBarPositions: cOt, textPosition: fOt };
+ });
+ var dY = ye((xyr, Zze) => {
+ var tz = Dr();
+ Zze.exports = function(t, r) {
+ var n = r._scene, i = { count: 0, dirty: true, lineOptions: [], fillOptions: [], markerOptions: [], markerSelectedOptions: [], markerUnselectedOptions: [], errorXOptions: [], errorYOptions: [], textOptions: [], textSelectedOptions: [], textUnselectedOptions: [], selectBatch: [], unselectBatch: [] }, a = { fill2d: false, scatter2d: false, error2d: false, line2d: false, glText: false, select2d: false };
+ return r._scene || (n = r._scene = {}, n.init = function() {
+ tz.extendFlat(n, a, i);
+ }, n.init(), n.update = function(s) {
+ var l = tz.repeat(s, n.count);
+ if (n.fill2d && n.fill2d.update(l), n.scatter2d && n.scatter2d.update(l), n.line2d && n.line2d.update(l), n.error2d && n.error2d.update(l.concat(l)), n.select2d && n.select2d.update(l), n.glText) for (var u = 0; u < n.count; u++) n.glText[u].update(s);
+ }, n.draw = function() {
+ for (var s = n.count, l = n.fill2d, u = n.error2d, c = n.line2d, f = n.scatter2d, h = n.glText, d = n.select2d, v = n.selectBatch, _ = n.unselectBatch, b = 0; b < s; b++) {
+ if (l && n.fillOrder[b] && l.draw(n.fillOrder[b]), c && n.lineOptions[b] && c.draw(b), u && (n.errorXOptions[b] && u.draw(b), n.errorYOptions[b] && u.draw(b + s)), f && n.markerOptions[b]) if (_[b].length) {
+ var p = tz.repeat([], n.count);
+ p[b] = _[b], f.draw(p);
+ } else v[b].length || f.draw(b);
+ h[b] && n.textOptions[b] && h[b].render();
+ }
+ d && d.draw(v), n.dirty = false;
+ }, n.destroy = function() {
+ n.fill2d && n.fill2d.destroy && n.fill2d.destroy(), n.scatter2d && n.scatter2d.destroy && n.scatter2d.destroy(), n.error2d && n.error2d.destroy && n.error2d.destroy(), n.line2d && n.line2d.destroy && n.line2d.destroy(), n.select2d && n.select2d.destroy && n.select2d.destroy(), n.glText && n.glText.forEach(function(s) {
+ s.destroy && s.destroy();
+ }), n.lineOptions = null, n.fillOptions = null, n.markerOptions = null, n.markerSelectedOptions = null, n.markerUnselectedOptions = null, n.errorXOptions = null, n.errorYOptions = null, n.textOptions = null, n.textSelectedOptions = null, n.textUnselectedOptions = null, n.selectBatch = null, n.unselectBatch = null, r._scene = null;
+ }), n.dirty || tz.extendFlat(n, i), n;
+ };
+ });
+ var e7e = ye((byr, Qze) => {
+ var hOt = ZF(), f5 = Dr(), Yze = hf(), dOt = Mg().findExtremes, Kze = zg(), vY = q0(), vOt = vY.calcMarkerSize, pOt = vY.calcAxisExpansion, gOt = vY.setFirstScatter, mOt = z0(), h5 = ow(), yOt = dY(), Jze = fs().BADNUM, _Ot = px().TOO_MANY_POINTS;
+ Qze.exports = function(t, r) {
+ var n = t._fullLayout, i = r._xA = Yze.getFromId(t, r.xaxis, "x"), a = r._yA = Yze.getFromId(t, r.yaxis, "y"), o = n._plots[r.xaxis + r.yaxis], s = r._length, l = s >= _Ot, u = s * 2, c = {}, f, h = i.makeCalcdata(r, "x"), d = a.makeCalcdata(r, "y"), v = Kze(r, i, "x", h), _ = Kze(r, a, "y", d), b = v.vals, p = _.vals;
+ r._x = b, r._y = p, r.xperiodalignment && (r._origX = h, r._xStarts = v.starts, r._xEnds = v.ends), r.yperiodalignment && (r._origY = d, r._yStarts = _.starts, r._yEnds = _.ends);
+ var k = new Array(u), E = new Array(s);
+ for (f = 0; f < s; f++) k[f * 2] = b[f] === Jze ? NaN : b[f], k[f * 2 + 1] = p[f] === Jze ? NaN : p[f], E[f] = f;
+ if (i.type === "log") for (f = 0; f < u; f += 2) k[f] = i.c2l(k[f]);
+ if (a.type === "log") for (f = 1; f < u; f += 2) k[f] = a.c2l(k[f]);
+ l && i.type !== "log" && a.type !== "log" ? c.tree = hOt(k) : c.ids = E, mOt(t, r);
+ var T = xOt(t, o, r, k, b, p), L = yOt(t, o);
+ gOt(n, r);
+ var x;
+ return l ? T.marker && (x = T.marker.sizeAvg || Math.max(T.marker.size, 3)) : x = vOt(r, s), pOt(t, r, i, a, b, p, x), T.errorX && $ze(r, i, T.errorX), T.errorY && $ze(r, a, T.errorY), T.fill && !L.fill2d && (L.fill2d = true), T.marker && !L.scatter2d && (L.scatter2d = true), T.line && !L.line2d && (L.line2d = true), (T.errorX || T.errorY) && !L.error2d && (L.error2d = true), T.text && !L.glText && (L.glText = true), T.marker && (T.marker.snap = s), L.lineOptions.push(T.line), L.errorXOptions.push(T.errorX), L.errorYOptions.push(T.errorY), L.fillOptions.push(T.fill), L.markerOptions.push(T.marker), L.markerSelectedOptions.push(T.markerSel), L.markerUnselectedOptions.push(T.markerUnsel), L.textOptions.push(T.text), L.textSelectedOptions.push(T.textSel), L.textUnselectedOptions.push(T.textUnsel), L.selectBatch.push([]), L.unselectBatch.push([]), c._scene = L, c.index = L.count, c.x = b, c.y = p, c.positions = k, L.count++, [{ x: false, y: false, t: c, trace: r }];
+ };
+ function $ze(e, t, r) {
+ var n = e._extremes[t._id], i = dOt(t, r._bnds, { padded: true });
+ n.min = n.min.concat(i.min), n.max = n.max.concat(i.max);
+ }
+ function xOt(e, t, r, n, i, a) {
+ var o = h5.style(e, r);
+ if (o.marker && (o.marker.positions = n), o.line && n.length > 1 && f5.extendFlat(o.line, h5.linePositions(e, r, n)), o.errorX || o.errorY) {
+ var s = h5.errorBarPositions(e, r, n, i, a);
+ o.errorX && f5.extendFlat(o.errorX, s.x), o.errorY && f5.extendFlat(o.errorY, s.y);
+ }
+ return o.text && (f5.extendFlat(o.text, { positions: n }, h5.textPosition(e, r, o.text, o.marker)), f5.extendFlat(o.textSel, { positions: n }, h5.textPosition(e, r, o.text, o.markerSel)), f5.extendFlat(o.textUnsel, { positions: n }, h5.textPosition(e, r, o.text, o.markerUnsel))), o;
+ }
+ });
+ var pY = ye((wyr, r7e) => {
+ var t7e = Dr(), bOt = ka(), wOt = X1().DESELECTDIM;
+ function TOt(e) {
+ var t = e[0], r = t.trace, n = t.t, i = n._scene, a = n.index, o = i.selectBatch[a], s = i.unselectBatch[a], l = i.textOptions[a], u = i.textSelectedOptions[a] || {}, c = i.textUnselectedOptions[a] || {}, f = t7e.extendFlat({}, l), h, d;
+ if (o.length || s.length) {
+ var v = u.color, _ = c.color, b = l.color, p = t7e.isArrayOrTypedArray(b);
+ for (f.color = new Array(r._length), h = 0; h < o.length; h++) d = o[h], f.color[d] = v || (p ? b[d] : b);
+ for (h = 0; h < s.length; h++) {
+ d = s[h];
+ var k = p ? b[d] : b;
+ f.color[d] = _ || (v ? k : bOt.addOpacity(k, wOt));
+ }
+ }
+ i.glText[a].update(f);
+ }
+ r7e.exports = { styleTextSelection: TOt };
+ });
+ var gY = ye((Tyr, n7e) => {
+ var i7e = Ru(), AOt = pY().styleTextSelection;
+ n7e.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = [], s = n[0].trace, l = n[0].t, u = s._length, c = l.x, f = l.y, h = l._scene, d = l.index;
+ if (!h) return o;
+ var v = i7e.hasText(s), _ = i7e.hasMarkers(s), b = !_ && !v;
+ if (s.visible !== true || b) return o;
+ var p = [], k = [];
+ if (r !== false && !r.degenerate) for (var E = 0; E < u; E++) r.contains([l.xpx[E], l.ypx[E]], false, E, t) ? (p.push(E), o.push({ pointNumber: E, x: i.c2d(c[E]), y: a.c2d(f[E]) })) : k.push(E);
+ if (_) {
+ var T = h.scatter2d;
+ if (!p.length && !k.length) {
+ var L = new Array(h.count);
+ L[d] = h.markerOptions[d], T.update.apply(T, L);
+ } else if (!h.selectBatch[d].length && !h.unselectBatch[d].length) {
+ var x = new Array(h.count);
+ x[d] = h.markerUnselectedOptions[d], T.update.apply(T, x);
+ }
+ }
+ return h.selectBatch[d] = p, h.unselectBatch[d] = k, v && AOt(n), o;
+ };
+ });
+ var o7e = ye((Ayr, a7e) => {
+ var SOt = jF();
+ a7e.exports = { moduleType: "trace", name: "scattergl", basePlotModule: mh(), categories: ["gl", "regl", "cartesian", "symbols", "errorBarsOK", "showLegend", "scatter-like"], attributes: gk(), supplyDefaults: UFe(), crossTraceDefaults: cU(), colorbar: $d(), formatLabels: GFe(), calc: e7e(), hoverPoints: SOt.hoverPoints, selectPoints: gY(), meta: {} };
+ });
+ var l7e = ye((Syr, iz) => {
+ var rz = rk();
+ iz.exports = s7e;
+ iz.exports.to = s7e;
+ iz.exports.from = MOt;
+ function s7e(e, t) {
+ t == null && (t = true);
+ var r = e[0], n = e[1], i = e[2], a = e[3];
+ a == null && (a = t ? 1 : 255), t && (r *= 255, n *= 255, i *= 255, a *= 255), r = rz(r, 0, 255) & 255, n = rz(n, 0, 255) & 255, i = rz(i, 0, 255) & 255, a = rz(a, 0, 255) & 255;
+ var o = r * 16777216 + (n << 16) + (i << 8) + a;
+ return o;
+ }
+ function MOt(e, t) {
+ e = +e;
+ var r = e >>> 24, n = (e & 16711680) >>> 16, i = (e & 65280) >>> 8, a = e & 255;
+ return t === false ? [r, n, i, a] : [r / 255, n / 255, i / 255, a / 255];
+ }
+ });
+ var Nh = ye((Myr, c7e) => {
+ var u7e = Object.getOwnPropertySymbols, EOt = Object.prototype.hasOwnProperty, kOt = Object.prototype.propertyIsEnumerable;
+ function COt(e) {
+ if (e == null) throw new TypeError("Object.assign cannot be called with null or undefined");
+ return Object(e);
+ }
+ function LOt() {
+ try {
+ if (!Object.assign) return false;
+ var e = new String("abc");
+ if (e[5] = "de", Object.getOwnPropertyNames(e)[0] === "5") return false;
+ for (var t = {}, r = 0; r < 10; r++) t["_" + String.fromCharCode(r)] = r;
+ var n = Object.getOwnPropertyNames(t).map(function(a) {
+ return t[a];
+ });
+ if (n.join("") !== "0123456789") return false;
+ var i = {};
+ return "abcdefghijklmnopqrst".split("").forEach(function(a) {
+ i[a] = a;
+ }), Object.keys(Object.assign({}, i)).join("") === "abcdefghijklmnopqrst";
+ } catch (a) {
+ return false;
+ }
+ }
+ c7e.exports = LOt() ? Object.assign : function(e, t) {
+ for (var r, n = COt(e), i, a = 1; a < arguments.length; a++) {
+ r = Object(arguments[a]);
+ for (var o in r) EOt.call(r, o) && (n[o] = r[o]);
+ if (u7e) {
+ i = u7e(r);
+ for (var s = 0; s < i.length; s++) kOt.call(r, i[s]) && (n[i[s]] = r[i[s]]);
+ }
+ }
+ return n;
+ };
+ });
+ var h7e = ye((Eyr, f7e) => {
+ f7e.exports = function(e) {
+ typeof e == "string" && (e = [e]);
+ for (var t = [].slice.call(arguments, 1), r = [], n = 0; n < e.length - 1; n++) r.push(e[n], t[n] || "");
+ return r.push(e[n]), r.join("");
+ };
+ });
+ var mY = ye((kyr, d7e) => {
+ d7e.exports = function(t, r, n) {
+ Array.isArray(n) || (n = [].slice.call(arguments, 2));
+ for (var i = 0, a = n.length; i < a; i++) {
+ var o = n[i];
+ for (var s in o) if (!(r[s] !== void 0 && !Array.isArray(r[s]) && t[s] === r[s]) && s in r) {
+ var l;
+ if (o[s] === true) l = r[s];
+ else {
+ if (o[s] === false) continue;
+ if (typeof o[s] == "function" && (l = o[s](r[s], t, r), l === void 0)) continue;
+ }
+ t[s] = l;
+ }
+ }
+ return t;
+ };
+ });
+ var p7e = ye((Cyr, v7e) => {
+ v7e.exports = typeof navigator != "undefined" && (/MSIE/.test(navigator.userAgent) || /Trident\//.test(navigator.appVersion));
+ });
+ var nz = ye((Lyr, d5) => {
+ d5.exports = bk;
+ d5.exports.float32 = d5.exports.float = bk;
+ d5.exports.fract32 = d5.exports.fract = POt;
+ var g7e = new Float32Array(1);
+ function POt(e, t) {
+ if (e.length) {
+ if (e instanceof Float32Array) return new Float32Array(e.length);
+ t instanceof Float32Array || (t = bk(e));
+ for (var r = 0, n = t.length; r < n; r++) t[r] = e[r] - t[r];
+ return t;
+ }
+ return bk(e - bk(e));
+ }
+ function bk(e) {
+ return e.length ? e instanceof Float32Array ? e : new Float32Array(e) : (g7e[0] = e, g7e[0]);
+ }
+ });
+ var _Y = ye((Pyr, _7e) => {
+ function IOt(e, t) {
+ var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
+ if (r != null) {
+ var n, i, a, o, s = [], l = true, u = false;
+ try {
+ if (a = (r = r.call(e)).next, t === 0) ;
+ else for (; !(l = (n = a.call(r)).done) && (s.push(n.value), s.length !== t); l = true) ;
+ } catch (c) {
+ u = true, i = c;
+ } finally {
+ try {
+ if (!l && r.return != null && (o = r.return(), Object(o) !== o)) return;
+ } finally {
+ if (u) throw i;
+ }
+ }
+ return s;
+ }
+ }
+ function ROt(e, t) {
+ return zOt(e) || IOt(e, t) || y7e(e, t) || BOt();
+ }
+ function DOt(e) {
+ return FOt(e) || OOt(e) || y7e(e) || qOt();
+ }
+ function FOt(e) {
+ if (Array.isArray(e)) return yY(e);
+ }
+ function zOt(e) {
+ if (Array.isArray(e)) return e;
+ }
+ function OOt(e) {
+ if (typeof Symbol != "undefined" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e);
+ }
+ function y7e(e, t) {
+ if (e) {
+ if (typeof e == "string") return yY(e, t);
+ var r = Object.prototype.toString.call(e).slice(8, -1);
+ if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set") return Array.from(e);
+ if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return yY(e, t);
+ }
+ }
+ function yY(e, t) {
+ (t == null || t > e.length) && (t = e.length);
+ for (var r = 0, n = new Array(t); r < t; r++) n[r] = e[r];
+ return n;
+ }
+ function qOt() {
+ throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
+ }
+ function BOt() {
+ throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
+ }
+ var NOt = ox(), UOt = rw(), VOt = l7e(), GOt = ZF(), sw = Nh(), az = h7e(), HOt = ey(), jOt = mY(), WOt = iw(), m7e = p7e(), oz = nz(), XOt = s5(), ZOt = nv;
+ function nv(e, t) {
+ var r = this;
+ if (!(this instanceof nv)) return new nv(e, t);
+ typeof e == "function" ? (t || (t = {}), t.regl = e) : (t = e, e = null), t && t.length && (t.positions = t), e = t.regl;
+ var n = e._gl, i, a = [], o = {}, s = [], l = [null], u = [null], c = 255, f = 100;
+ this.tooManyColors = m7e, i = e.texture({ data: new Uint8Array(c * 4), width: c, height: 1, type: "uint8", format: "rgba", wrapS: "clamp", wrapT: "clamp", mag: "nearest", min: "nearest" }), sw(this, { regl: e, gl: n, groups: s, markerCache: u, markerTextures: l, palette: a, paletteIds: o, paletteTexture: i, maxColors: c, maxSize: f, canvas: n.canvas }), this.update(t);
+ var h = { uniforms: { constPointSize: !!t.constPointSize, opacity: e.prop("opacity"), paletteSize: function(b, p) {
+ return [r.tooManyColors ? 0 : c, i.height];
+ }, pixelRatio: e.context("pixelRatio"), scale: e.prop("scale"), scaleFract: e.prop("scaleFract"), translate: e.prop("translate"), translateFract: e.prop("translateFract"), markerTexture: e.prop("markerTexture"), paletteTexture: i }, attributes: { x: function(b, p) {
+ return p.xAttr || { buffer: p.positionBuffer, stride: 8, offset: 0 };
+ }, y: function(b, p) {
+ return p.yAttr || { buffer: p.positionBuffer, stride: 8, offset: 4 };
+ }, xFract: function(b, p) {
+ return p.xAttr ? { constant: [0, 0] } : { buffer: p.positionFractBuffer, stride: 8, offset: 0 };
+ }, yFract: function(b, p) {
+ return p.yAttr ? { constant: [0, 0] } : { buffer: p.positionFractBuffer, stride: 8, offset: 4 };
+ }, size: function(b, p) {
+ return p.size.length ? { buffer: p.sizeBuffer, stride: 2, offset: 0 } : { constant: [Math.round(p.size * 255 / r.maxSize)] };
+ }, borderSize: function(b, p) {
+ return p.borderSize.length ? { buffer: p.sizeBuffer, stride: 2, offset: 1 } : { constant: [Math.round(p.borderSize * 255 / r.maxSize)] };
+ }, colorId: function(b, p) {
+ return p.color.length ? { buffer: p.colorBuffer, stride: r.tooManyColors ? 8 : 4, offset: 0 } : { constant: r.tooManyColors ? a.slice(p.color * 4, p.color * 4 + 4) : [p.color] };
+ }, borderColorId: function(b, p) {
+ return p.borderColor.length ? { buffer: p.colorBuffer, stride: r.tooManyColors ? 8 : 4, offset: r.tooManyColors ? 4 : 2 } : { constant: r.tooManyColors ? a.slice(p.borderColor * 4, p.borderColor * 4 + 4) : [p.borderColor] };
+ }, isActive: function(b, p) {
+ return p.activation === true ? { constant: [1] } : p.activation ? p.activation : { constant: [0] };
+ } }, blend: { enable: true, color: [0, 0, 0, 1], func: { srcRGB: "src alpha", dstRGB: "one minus src alpha", srcAlpha: "one minus dst alpha", dstAlpha: "one" } }, scissor: { enable: true, box: e.prop("viewport") }, viewport: e.prop("viewport"), stencil: { enable: false }, depth: { enable: false }, elements: e.prop("elements"), count: e.prop("count"), offset: e.prop("offset"), primitive: "points" }, d = sw({}, h);
+ d.frag = az([`precision highp float;
+#define GLSLIFY 1
+
+uniform float opacity;
+uniform sampler2D markerTexture;
+
+varying vec4 fragColor, fragBorderColor;
+varying float fragWidth, fragBorderColorLevel, fragColorLevel;
+
+float smoothStep(float x, float y) {
+ return 1.0 / (1.0 + exp(50.0*(x - y)));
+}
+
+void main() {
+ float dist = texture2D(markerTexture, gl_PointCoord).r, delta = fragWidth;
+
+ // max-distance alpha
+ if (dist < 0.003) discard;
+
+ // null-border case
+ if (fragBorderColorLevel == fragColorLevel || fragBorderColor.a == 0.) {
+ float colorAmt = smoothstep(.5 - delta, .5 + delta, dist);
+ gl_FragColor = vec4(fragColor.rgb, colorAmt * fragColor.a * opacity);
+ }
+ else {
+ float borderColorAmt = smoothstep(fragBorderColorLevel - delta, fragBorderColorLevel + delta, dist);
+ float colorAmt = smoothstep(fragColorLevel - delta, fragColorLevel + delta, dist);
+
+ vec4 color = fragBorderColor;
+ color.a *= borderColorAmt;
+ color = mix(color, fragColor, colorAmt);
+ color.a *= opacity;
+
+ gl_FragColor = color;
+ }
+
+}
+`]), d.vert = az([`precision highp float;
+#define GLSLIFY 1
+
+attribute float x, y, xFract, yFract;
+attribute float size, borderSize;
+attribute vec4 colorId, borderColorId;
+attribute float isActive;
+
+// \`invariant\` effectively turns off optimizations for the position.
+// We need this because -fast-math on M1 Macs is re-ordering
+// floating point operations in a way that causes floating point
+// precision limits to put points in the wrong locations.
+invariant gl_Position;
+
+uniform bool constPointSize;
+uniform float pixelRatio;
+uniform vec2 scale, scaleFract, translate, translateFract, paletteSize;
+uniform sampler2D paletteTexture;
+
+const float maxSize = 100.;
+const float borderLevel = .5;
+
+varying vec4 fragColor, fragBorderColor;
+varying float fragPointSize, fragBorderRadius, fragWidth, fragBorderColorLevel, fragColorLevel;
+
+float pointSizeScale = (constPointSize) ? 2. : pixelRatio;
+
+bool isDirect = (paletteSize.x < 1.);
+
+vec4 getColor(vec4 id) {
+ return isDirect ? id / 255. : texture2D(paletteTexture,
+ vec2(
+ (id.x + .5) / paletteSize.x,
+ (id.y + .5) / paletteSize.y
+ )
+ );
+}
+
+void main() {
+ // ignore inactive points
+ if (isActive == 0.) return;
+
+ vec2 position = vec2(x, y);
+ vec2 positionFract = vec2(xFract, yFract);
+
+ vec4 color = getColor(colorId);
+ vec4 borderColor = getColor(borderColorId);
+
+ float size = size * maxSize / 255.;
+ float borderSize = borderSize * maxSize / 255.;
+
+ gl_PointSize = 2. * size * pointSizeScale;
+ fragPointSize = size * pixelRatio;
+
+ vec2 pos = (position + translate) * scale
+ + (positionFract + translateFract) * scale
+ + (position + translate) * scaleFract
+ + (positionFract + translateFract) * scaleFract;
+
+ gl_Position = vec4(pos * 2. - 1., 0., 1.);
+
+ fragColor = color;
+ fragBorderColor = borderColor;
+ fragWidth = 1. / gl_PointSize;
+
+ fragBorderColorLevel = clamp(borderLevel - borderLevel * borderSize / size, 0., 1.);
+ fragColorLevel = clamp(borderLevel + (1. - borderLevel) * borderSize / size, 0., 1.);
+}
+`]), this.drawMarker = e(d);
+ var v = sw({}, h);
+ v.frag = az([`precision highp float;
+#define GLSLIFY 1
+
+varying vec4 fragColor, fragBorderColor;
+varying float fragBorderRadius, fragWidth;
+
+uniform float opacity;
+
+float smoothStep(float edge0, float edge1, float x) {
+ float t;
+ t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
+ return t * t * (3.0 - 2.0 * t);
+}
+
+void main() {
+ float radius, alpha = 1.0, delta = fragWidth;
+
+ radius = length(2.0 * gl_PointCoord.xy - 1.0);
+
+ if (radius > 1.0 + delta) {
+ discard;
+ }
+
+ alpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);
+
+ float borderRadius = fragBorderRadius;
+ float ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);
+ vec4 color = mix(fragColor, fragBorderColor, ratio);
+ color.a *= alpha * opacity;
+ gl_FragColor = color;
+}
+`]), v.vert = az([`precision highp float;
+#define GLSLIFY 1
+
+attribute float x, y, xFract, yFract;
+attribute float size, borderSize;
+attribute vec4 colorId, borderColorId;
+attribute float isActive;
+
+// \`invariant\` effectively turns off optimizations for the position.
+// We need this because -fast-math on M1 Macs is re-ordering
+// floating point operations in a way that causes floating point
+// precision limits to put points in the wrong locations.
+invariant gl_Position;
+
+uniform bool constPointSize;
+uniform float pixelRatio;
+uniform vec2 paletteSize, scale, scaleFract, translate, translateFract;
+uniform sampler2D paletteTexture;
+
+const float maxSize = 100.;
+
+varying vec4 fragColor, fragBorderColor;
+varying float fragBorderRadius, fragWidth;
+
+float pointSizeScale = (constPointSize) ? 2. : pixelRatio;
+
+bool isDirect = (paletteSize.x < 1.);
+
+vec4 getColor(vec4 id) {
+ return isDirect ? id / 255. : texture2D(paletteTexture,
+ vec2(
+ (id.x + .5) / paletteSize.x,
+ (id.y + .5) / paletteSize.y
+ )
+ );
+}
+
+void main() {
+ // ignore inactive points
+ if (isActive == 0.) return;
+
+ vec2 position = vec2(x, y);
+ vec2 positionFract = vec2(xFract, yFract);
+
+ vec4 color = getColor(colorId);
+ vec4 borderColor = getColor(borderColorId);
+
+ float size = size * maxSize / 255.;
+ float borderSize = borderSize * maxSize / 255.;
+
+ gl_PointSize = (size + borderSize) * pointSizeScale;
+
+ vec2 pos = (position + translate) * scale
+ + (positionFract + translateFract) * scale
+ + (position + translate) * scaleFract
+ + (positionFract + translateFract) * scaleFract;
+
+ gl_Position = vec4(pos * 2. - 1., 0., 1.);
+
+ fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);
+ fragColor = color;
+ fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;
+ fragWidth = 1. / gl_PointSize;
+}
+`]), m7e && (v.frag = v.frag.replace("smoothstep", "smoothStep"), d.frag = d.frag.replace("smoothstep", "smoothStep")), this.drawCircle = e(v);
+ }
+ nv.defaults = { color: "black", borderColor: "transparent", borderSize: 0, size: 12, opacity: 1, marker: void 0, viewport: null, range: null, pixelSize: null, count: 0, offset: 0, bounds: null, positions: [], snap: 1e4 };
+ nv.prototype.render = function() {
+ return arguments.length && this.update.apply(this, arguments), this.draw(), this;
+ };
+ nv.prototype.draw = function() {
+ for (var e = this, t = arguments.length, r = new Array(t), n = 0; n < t; n++) r[n] = arguments[n];
+ var i = this.groups;
+ if (r.length === 1 && Array.isArray(r[0]) && (r[0][0] === null || Array.isArray(r[0][0])) && (r = r[0]), this.regl._refresh(), r.length) for (var a = 0; a < r.length; a++) this.drawItem(a, r[a]);
+ else i.forEach(function(o, s) {
+ e.drawItem(s);
+ });
+ return this;
+ };
+ nv.prototype.drawItem = function(e, t) {
+ var r = this.groups, n = r[e];
+ if (typeof t == "number" && (e = t, n = r[t], t = null), !!(n && n.count && n.opacity)) {
+ n.activation[0] && this.drawCircle(this.getMarkerDrawOptions(0, n, t));
+ for (var i = [], a = 1; a < n.activation.length; a++) !n.activation[a] || n.activation[a] !== true && !n.activation[a].data.length || i.push.apply(i, DOt(this.getMarkerDrawOptions(a, n, t)));
+ i.length && this.drawMarker(i);
+ }
+ };
+ nv.prototype.getMarkerDrawOptions = function(e, t, r) {
+ var n = t.range, i = t.tree, a = t.viewport, o = t.activation, s = t.selectionBuffer, l = t.count;
+ this.regl;
+ if (!i) return r ? [sw({}, t, { markerTexture: this.markerTextures[e], activation: o[e], count: r.length, elements: r, offset: 0 })] : [sw({}, t, { markerTexture: this.markerTextures[e], activation: o[e], offset: 0 })];
+ var c = [], f = i.range(n, { lod: true, px: [(n[2] - n[0]) / a.width, (n[3] - n[1]) / a.height] });
+ if (r) {
+ for (var h = o[e], d = h.data, v = new Uint8Array(l), _ = 0; _ < r.length; _++) {
+ var b = r[_];
+ v[b] = d ? d[b] : 1;
+ }
+ s.subdata(v);
+ }
+ for (var p = f.length; p--; ) {
+ var k = ROt(f[p], 2), E = k[0], T = k[1];
+ c.push(sw({}, t, { markerTexture: this.markerTextures[e], activation: r ? s : o[e], offset: E, count: T - E }));
+ }
+ return c;
+ };
+ nv.prototype.update = function() {
+ for (var e = this, t = arguments.length, r = new Array(t), n = 0; n < t; n++) r[n] = arguments[n];
+ if (r.length) {
+ r.length === 1 && Array.isArray(r[0]) && (r = r[0]);
+ var i = this.groups, a = this.gl, o = this.regl, s = this.maxSize, l = this.maxColors, u = this.palette;
+ this.groups = i = r.map(function(c, f) {
+ var h = i[f];
+ if (c === void 0) return h;
+ c === null ? c = { positions: null } : typeof c == "function" ? c = { ondraw: c } : typeof c[0] == "number" && (c = { positions: c }), c = HOt(c, { positions: "positions data points", snap: "snap cluster lod tree", size: "sizes size radius", borderSize: "borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline", color: "colors color fill fill-color fillColor", borderColor: "borderColors borderColor stroke stroke-color strokeColor", marker: "markers marker shape", range: "range dataBox databox", viewport: "viewport viewPort viewBox viewbox", opacity: "opacity alpha transparency", bounds: "bound bounds boundaries limits", tooManyColors: "tooManyColors palette paletteMode optimizePalette enablePalette" }), c.positions === null && (c.positions = []), c.tooManyColors != null && (e.tooManyColors = c.tooManyColors), h || (i[f] = h = { id: f, scale: null, translate: null, scaleFract: null, translateFract: null, activation: [], selectionBuffer: o.buffer({ data: new Uint8Array(0), usage: "stream", type: "uint8" }), sizeBuffer: o.buffer({ data: new Uint8Array(0), usage: "dynamic", type: "uint8" }), colorBuffer: o.buffer({ data: new Uint8Array(0), usage: "dynamic", type: "uint8" }), positionBuffer: o.buffer({ data: new Uint8Array(0), usage: "dynamic", type: "float" }), positionFractBuffer: o.buffer({ data: new Uint8Array(0), usage: "dynamic", type: "float" }) }, c = sw({}, nv.defaults, c)), c.positions && !("marker" in c) && (c.marker = h.marker, delete h.marker), c.marker && !("positions" in c) && (c.positions = h.positions, delete h.positions);
+ var d = 0, v = 0;
+ if (jOt(h, c, [{ snap: true, size: function(j, N) {
+ return j == null && (j = nv.defaults.size), d += j && j.length ? 1 : 0, j;
+ }, borderSize: function(j, N) {
+ return j == null && (j = nv.defaults.borderSize), d += j && j.length ? 1 : 0, j;
+ }, opacity: parseFloat, color: function(j, N) {
+ return j == null && (j = nv.defaults.color), j = e.updateColor(j), v++, j;
+ }, borderColor: function(j, N) {
+ return j == null && (j = nv.defaults.borderColor), j = e.updateColor(j), v++, j;
+ }, bounds: function(j, N, H) {
+ return "range" in H || (H.range = null), j;
+ }, positions: function(j, N, H) {
+ var re = N.snap, oe = N.positionBuffer, _e = N.positionFractBuffer, Ce = N.selectionBuffer;
+ if (j.x || j.y) return j.x.length ? N.xAttr = { buffer: o.buffer(j.x), offset: 0, stride: 4, count: j.x.length } : N.xAttr = { buffer: j.x.buffer, offset: j.x.offset * 4 || 0, stride: (j.x.stride || 1) * 4, count: j.x.count }, j.y.length ? N.yAttr = { buffer: o.buffer(j.y), offset: 0, stride: 4, count: j.y.length } : N.yAttr = { buffer: j.y.buffer, offset: j.y.offset * 4 || 0, stride: (j.y.stride || 1) * 4, count: j.y.count }, N.count = Math.max(N.xAttr.count, N.yAttr.count), j;
+ j = WOt(j, "float64");
+ var Le = N.count = Math.floor(j.length / 2), ge = N.bounds = Le ? UOt(j, 2) : null;
+ if (!H.range && !N.range && (delete N.range, H.range = ge), !H.marker && !N.marker && (delete N.marker, H.marker = null), re && (re === true || Le > re) ? N.tree = GOt(j, { bounds: ge }) : re && re.length && (N.tree = re), N.tree) {
+ var ie = { primitive: "points", usage: "static", data: N.tree, type: "uint32" };
+ N.elements ? N.elements(ie) : N.elements = o.elements(ie);
+ }
+ var Se = oz.float32(j);
+ oe({ data: Se, usage: "dynamic" });
+ var Ee = oz.fract32(j, Se);
+ return _e({ data: Ee, usage: "dynamic" }), Ce({ data: new Uint8Array(Le), type: "uint8", usage: "stream" }), j;
+ } }, { marker: function(j, N, H) {
+ var re = N.activation;
+ if (re.forEach(function(Ee) {
+ return Ee && Ee.destroy && Ee.destroy();
+ }), re.length = 0, !j || typeof j[0] == "number") {
+ var oe = e.addMarker(j);
+ re[oe] = true;
+ } else {
+ for (var _e = [], Ce = 0, Le = Math.min(j.length, N.count); Ce < Le; Ce++) {
+ var ge = e.addMarker(j[Ce]);
+ _e[ge] || (_e[ge] = new Uint8Array(N.count)), _e[ge][Ce] = 1;
+ }
+ for (var ie = 0; ie < _e.length; ie++) if (_e[ie]) {
+ var Se = { data: _e[ie], type: "uint8", usage: "static" };
+ re[ie] ? re[ie](Se) : re[ie] = o.buffer(Se), re[ie].data = _e[ie];
+ }
+ }
+ return j;
+ }, range: function(j, N, H) {
+ var re = N.bounds;
+ if (re) return j || (j = re), N.scale = [1 / (j[2] - j[0]), 1 / (j[3] - j[1])], N.translate = [-j[0], -j[1]], N.scaleFract = oz.fract(N.scale), N.translateFract = oz.fract(N.translate), j;
+ }, viewport: function(j) {
+ var N = XOt(j || [a.drawingBufferWidth, a.drawingBufferHeight]);
+ return N;
+ } }]), d) {
+ var _ = h, b = _.count, p = _.size, k = _.borderSize, E = _.sizeBuffer, T = new Uint8Array(b * 2);
+ if (p.length || k.length) for (var L = 0; L < b; L++) T[L * 2] = Math.round((p[L] == null ? p : p[L]) * 255 / s), T[L * 2 + 1] = Math.round((k[L] == null ? k : k[L]) * 255 / s);
+ E({ data: T, usage: "dynamic" });
+ }
+ if (v) {
+ var x = h, C = x.count, M = x.color, g = x.borderColor, P = x.colorBuffer, A;
+ if (e.tooManyColors) {
+ if (M.length || g.length) {
+ A = new Uint8Array(C * 8);
+ for (var z = 0; z < C; z++) {
+ var O = M[z];
+ A[z * 8] = u[O * 4], A[z * 8 + 1] = u[O * 4 + 1], A[z * 8 + 2] = u[O * 4 + 2], A[z * 8 + 3] = u[O * 4 + 3];
+ var U = g[z];
+ A[z * 8 + 4] = u[U * 4], A[z * 8 + 5] = u[U * 4 + 1], A[z * 8 + 6] = u[U * 4 + 2], A[z * 8 + 7] = u[U * 4 + 3];
+ }
+ }
+ } else if (M.length || g.length) {
+ A = new Uint8Array(C * 4 + 2);
+ for (var G = 0; G < C; G++) M[G] != null && (A[G * 4] = M[G] % l, A[G * 4 + 1] = Math.floor(M[G] / l)), g[G] != null && (A[G * 4 + 2] = g[G] % l, A[G * 4 + 3] = Math.floor(g[G] / l));
+ }
+ P({ data: A || new Uint8Array(0), type: "uint8", usage: "dynamic" });
+ }
+ return h;
+ });
+ }
+ };
+ nv.prototype.addMarker = function(e) {
+ var t = this.markerTextures, r = this.regl, n = this.markerCache, i = e == null ? 0 : n.indexOf(e);
+ if (i >= 0) return i;
+ var a;
+ if (e instanceof Uint8Array || e instanceof Uint8ClampedArray) a = e;
+ else {
+ a = new Uint8Array(e.length);
+ for (var o = 0, s = e.length; o < s; o++) a[o] = e[o] * 255;
+ }
+ var l = Math.floor(Math.sqrt(a.length));
+ return i = t.length, n.push(e), t.push(r.texture({ channels: 1, data: a, radius: l, mag: "linear", min: "linear" })), i;
+ };
+ nv.prototype.updateColor = function(e) {
+ var t = this.paletteIds, r = this.palette, n = this.maxColors;
+ Array.isArray(e) || (e = [e]);
+ var i = [];
+ if (typeof e[0] == "number") {
+ var a = [];
+ if (Array.isArray(e)) for (var o = 0; o < e.length; o += 4) a.push(e.slice(o, o + 4));
+ else for (var s = 0; s < e.length; s += 4) a.push(e.subarray(s, s + 4));
+ e = a;
+ }
+ for (var l = 0; l < e.length; l++) {
+ var u = e[l];
+ u = NOt(u, "uint8");
+ var c = VOt(u, false);
+ if (t[c] == null) {
+ var f = r.length;
+ t[c] = Math.floor(f / 4), r[f] = u[0], r[f + 1] = u[1], r[f + 2] = u[2], r[f + 3] = u[3];
+ }
+ i[l] = t[c];
+ }
+ return !this.tooManyColors && r.length > n * 4 && (this.tooManyColors = true), this.updatePalette(r), i.length === 1 ? i[0] : i;
+ };
+ nv.prototype.updatePalette = function(e) {
+ if (!this.tooManyColors) {
+ var t = this.maxColors, r = this.paletteTexture, n = Math.ceil(e.length * 0.25 / t);
+ if (n > 1) {
+ e = e.slice();
+ for (var i = e.length * 0.25 % t; i < n * t; i++) e.push(0, 0, 0, 0);
+ }
+ r.height < n && r.resize(t, n), r.subimage({ width: Math.min(e.length * 0.25, t), height: n, data: e }, 0, 0);
+ }
+ };
+ nv.prototype.destroy = function() {
+ return this.groups.forEach(function(e) {
+ e.sizeBuffer.destroy(), e.positionBuffer.destroy(), e.positionFractBuffer.destroy(), e.colorBuffer.destroy(), e.activation.forEach(function(t) {
+ return t && t.destroy && t.destroy();
+ }), e.selectionBuffer.destroy(), e.elements && e.elements.destroy();
+ }), this.groups.length = 0, this.paletteTexture.destroy(), this.markerTextures.forEach(function(e) {
+ return e && e.destroy && e.destroy();
+ }), this;
+ };
+ var YOt = Nh(), KOt = function(t, r) {
+ var n = new ZOt(t, r), i = n.render.bind(n);
+ return YOt(i, { render: i, update: n.update.bind(n), draw: n.draw.bind(n), destroy: n.destroy.bind(n), regl: n.regl, gl: n.gl, canvas: n.gl.canvas, groups: n.groups, markers: n.markerCache, palette: n.palette }), i;
+ };
+ _7e.exports = KOt;
+ });
+ var A7e = ye((Iyr, TY) => {
+ TY.exports = uz;
+ TY.exports.default = uz;
+ function uz(e, t, r) {
+ r = r || 2;
+ var n = t && t.length, i = n ? t[0] * r : e.length, a = b7e(e, 0, i, r, true), o = [];
+ if (!a || a.next === a.prev) return o;
+ var s, l, u, c, f, h, d;
+ if (n && (a = tqt(e, t, a, r)), e.length > 80 * r) {
+ s = u = e[0], l = c = e[1];
+ for (var v = r; v < i; v += r) f = e[v], h = e[v + 1], f < s && (s = f), h < l && (l = h), f > u && (u = f), h > c && (c = h);
+ d = Math.max(u - s, c - l), d = d !== 0 ? 32767 / d : 0;
+ }
+ return wk(a, o, r, s, l, d, 0), o;
+ }
+ function b7e(e, t, r, n, i) {
+ var a, o;
+ if (i === wY(e, t, r, n) > 0) for (a = t; a < r; a += n) o = x7e(a, e[a], e[a + 1], o);
+ else for (a = r - n; a >= t; a -= n) o = x7e(a, e[a], e[a + 1], o);
+ return o && cz(o, o.next) && (Ak(o), o = o.next), o;
+ }
+ function lw(e, t) {
+ if (!e) return e;
+ t || (t = e);
+ var r = e, n;
+ do
+ if (n = false, !r.steiner && (cz(r, r.next) || wh(r.prev, r, r.next) === 0)) {
+ if (Ak(r), r = t = r.prev, r === r.next) break;
+ n = true;
+ } else r = r.next;
+ while (n || r !== t);
+ return t;
+ }
+ function wk(e, t, r, n, i, a, o) {
+ if (e) {
+ !o && a && oqt(e, n, i, a);
+ for (var s = e, l, u; e.prev !== e.next; ) {
+ if (l = e.prev, u = e.next, a ? $Ot(e, n, i, a) : JOt(e)) {
+ t.push(l.i / r | 0), t.push(e.i / r | 0), t.push(u.i / r | 0), Ak(e), e = u.next, s = u.next;
+ continue;
+ }
+ if (e = u, e === s) {
+ o ? o === 1 ? (e = QOt(lw(e), t, r), wk(e, t, r, n, i, a, 2)) : o === 2 && eqt(e, t, r, n, i, a) : wk(lw(e), t, r, n, i, a, 1);
+ break;
+ }
+ }
+ }
+ }
+ function JOt(e) {
+ var t = e.prev, r = e, n = e.next;
+ if (wh(t, r, n) >= 0) return false;
+ for (var i = t.x, a = r.x, o = n.x, s = t.y, l = r.y, u = n.y, c = i < a ? i < o ? i : o : a < o ? a : o, f = s < l ? s < u ? s : u : l < u ? l : u, h = i > a ? i > o ? i : o : a > o ? a : o, d = s > l ? s > u ? s : u : l > u ? l : u, v = n.next; v !== t; ) {
+ if (v.x >= c && v.x <= h && v.y >= f && v.y <= d && v5(i, s, a, l, o, u, v.x, v.y) && wh(v.prev, v, v.next) >= 0) return false;
+ v = v.next;
+ }
+ return true;
+ }
+ function $Ot(e, t, r, n) {
+ var i = e.prev, a = e, o = e.next;
+ if (wh(i, a, o) >= 0) return false;
+ for (var s = i.x, l = a.x, u = o.x, c = i.y, f = a.y, h = o.y, d = s < l ? s < u ? s : u : l < u ? l : u, v = c < f ? c < h ? c : h : f < h ? f : h, _ = s > l ? s > u ? s : u : l > u ? l : u, b = c > f ? c > h ? c : h : f > h ? f : h, p = xY(d, v, t, r, n), k = xY(_, b, t, r, n), E = e.prevZ, T = e.nextZ; E && E.z >= p && T && T.z <= k; ) {
+ if (E.x >= d && E.x <= _ && E.y >= v && E.y <= b && E !== i && E !== o && v5(s, c, l, f, u, h, E.x, E.y) && wh(E.prev, E, E.next) >= 0 || (E = E.prevZ, T.x >= d && T.x <= _ && T.y >= v && T.y <= b && T !== i && T !== o && v5(s, c, l, f, u, h, T.x, T.y) && wh(T.prev, T, T.next) >= 0)) return false;
+ T = T.nextZ;
+ }
+ for (; E && E.z >= p; ) {
+ if (E.x >= d && E.x <= _ && E.y >= v && E.y <= b && E !== i && E !== o && v5(s, c, l, f, u, h, E.x, E.y) && wh(E.prev, E, E.next) >= 0) return false;
+ E = E.prevZ;
+ }
+ for (; T && T.z <= k; ) {
+ if (T.x >= d && T.x <= _ && T.y >= v && T.y <= b && T !== i && T !== o && v5(s, c, l, f, u, h, T.x, T.y) && wh(T.prev, T, T.next) >= 0) return false;
+ T = T.nextZ;
+ }
+ return true;
+ }
+ function QOt(e, t, r) {
+ var n = e;
+ do {
+ var i = n.prev, a = n.next.next;
+ !cz(i, a) && w7e(i, n, n.next, a) && Tk(i, a) && Tk(a, i) && (t.push(i.i / r | 0), t.push(n.i / r | 0), t.push(a.i / r | 0), Ak(n), Ak(n.next), n = e = a), n = n.next;
+ } while (n !== e);
+ return lw(n);
+ }
+ function eqt(e, t, r, n, i, a) {
+ var o = e;
+ do {
+ for (var s = o.next.next; s !== o.prev; ) {
+ if (o.i !== s.i && uqt(o, s)) {
+ var l = T7e(o, s);
+ o = lw(o, o.next), l = lw(l, l.next), wk(o, t, r, n, i, a, 0), wk(l, t, r, n, i, a, 0);
+ return;
+ }
+ s = s.next;
+ }
+ o = o.next;
+ } while (o !== e);
+ }
+ function tqt(e, t, r, n) {
+ var i = [], a, o, s, l, u;
+ for (a = 0, o = t.length; a < o; a++) s = t[a] * n, l = a < o - 1 ? t[a + 1] * n : e.length, u = b7e(e, s, l, n, false), u === u.next && (u.steiner = true), i.push(lqt(u));
+ for (i.sort(rqt), a = 0; a < i.length; a++) r = iqt(i[a], r);
+ return r;
+ }
+ function rqt(e, t) {
+ return e.x - t.x;
+ }
+ function iqt(e, t) {
+ var r = nqt(e, t);
+ if (!r) return t;
+ var n = T7e(r, e);
+ return lw(n, n.next), lw(r, r.next);
+ }
+ function nqt(e, t) {
+ var r = t, n = e.x, i = e.y, a = -1 / 0, o;
+ do {
+ if (i <= r.y && i >= r.next.y && r.next.y !== r.y) {
+ var s = r.x + (i - r.y) * (r.next.x - r.x) / (r.next.y - r.y);
+ if (s <= n && s > a && (a = s, o = r.x < r.next.x ? r : r.next, s === n)) return o;
+ }
+ r = r.next;
+ } while (r !== t);
+ if (!o) return null;
+ var l = o, u = o.x, c = o.y, f = 1 / 0, h;
+ r = o;
+ do
+ n >= r.x && r.x >= u && n !== r.x && v5(i < c ? n : a, i, u, c, i < c ? a : n, i, r.x, r.y) && (h = Math.abs(i - r.y) / (n - r.x), Tk(r, e) && (h < f || h === f && (r.x > o.x || r.x === o.x && aqt(o, r))) && (o = r, f = h)), r = r.next;
+ while (r !== l);
+ return o;
+ }
+ function aqt(e, t) {
+ return wh(e.prev, e, t.prev) < 0 && wh(t.next, e, e.next) < 0;
+ }
+ function oqt(e, t, r, n) {
+ var i = e;
+ do
+ i.z === 0 && (i.z = xY(i.x, i.y, t, r, n)), i.prevZ = i.prev, i.nextZ = i.next, i = i.next;
+ while (i !== e);
+ i.prevZ.nextZ = null, i.prevZ = null, sqt(i);
+ }
+ function sqt(e) {
+ var t, r, n, i, a, o, s, l, u = 1;
+ do {
+ for (r = e, e = null, a = null, o = 0; r; ) {
+ for (o++, n = r, s = 0, t = 0; t < u && (s++, n = n.nextZ, !!n); t++) ;
+ for (l = u; s > 0 || l > 0 && n; ) s !== 0 && (l === 0 || !n || r.z <= n.z) ? (i = r, r = r.nextZ, s--) : (i = n, n = n.nextZ, l--), a ? a.nextZ = i : e = i, i.prevZ = a, a = i;
+ r = n;
+ }
+ a.nextZ = null, u *= 2;
+ } while (o > 1);
+ return e;
+ }
+ function xY(e, t, r, n, i) {
+ return e = (e - r) * i | 0, t = (t - n) * i | 0, e = (e | e << 8) & 16711935, e = (e | e << 4) & 252645135, e = (e | e << 2) & 858993459, e = (e | e << 1) & 1431655765, t = (t | t << 8) & 16711935, t = (t | t << 4) & 252645135, t = (t | t << 2) & 858993459, t = (t | t << 1) & 1431655765, e | t << 1;
+ }
+ function lqt(e) {
+ var t = e, r = e;
+ do
+ (t.x < r.x || t.x === r.x && t.y < r.y) && (r = t), t = t.next;
+ while (t !== e);
+ return r;
+ }
+ function v5(e, t, r, n, i, a, o, s) {
+ return (i - o) * (t - s) >= (e - o) * (a - s) && (e - o) * (n - s) >= (r - o) * (t - s) && (r - o) * (a - s) >= (i - o) * (n - s);
+ }
+ function uqt(e, t) {
+ return e.next.i !== t.i && e.prev.i !== t.i && !cqt(e, t) && (Tk(e, t) && Tk(t, e) && fqt(e, t) && (wh(e.prev, e, t.prev) || wh(e, t.prev, t)) || cz(e, t) && wh(e.prev, e, e.next) > 0 && wh(t.prev, t, t.next) > 0);
+ }
+ function wh(e, t, r) {
+ return (t.y - e.y) * (r.x - t.x) - (t.x - e.x) * (r.y - t.y);
+ }
+ function cz(e, t) {
+ return e.x === t.x && e.y === t.y;
+ }
+ function w7e(e, t, r, n) {
+ var i = lz(wh(e, t, r)), a = lz(wh(e, t, n)), o = lz(wh(r, n, e)), s = lz(wh(r, n, t));
+ return !!(i !== a && o !== s || i === 0 && sz(e, r, t) || a === 0 && sz(e, n, t) || o === 0 && sz(r, e, n) || s === 0 && sz(r, t, n));
+ }
+ function sz(e, t, r) {
+ return t.x <= Math.max(e.x, r.x) && t.x >= Math.min(e.x, r.x) && t.y <= Math.max(e.y, r.y) && t.y >= Math.min(e.y, r.y);
+ }
+ function lz(e) {
+ return e > 0 ? 1 : e < 0 ? -1 : 0;
+ }
+ function cqt(e, t) {
+ var r = e;
+ do {
+ if (r.i !== e.i && r.next.i !== e.i && r.i !== t.i && r.next.i !== t.i && w7e(r, r.next, e, t)) return true;
+ r = r.next;
+ } while (r !== e);
+ return false;
+ }
+ function Tk(e, t) {
+ return wh(e.prev, e, e.next) < 0 ? wh(e, t, e.next) >= 0 && wh(e, e.prev, t) >= 0 : wh(e, t, e.prev) < 0 || wh(e, e.next, t) < 0;
+ }
+ function fqt(e, t) {
+ var r = e, n = false, i = (e.x + t.x) / 2, a = (e.y + t.y) / 2;
+ do
+ r.y > a != r.next.y > a && r.next.y !== r.y && i < (r.next.x - r.x) * (a - r.y) / (r.next.y - r.y) + r.x && (n = !n), r = r.next;
+ while (r !== e);
+ return n;
+ }
+ function T7e(e, t) {
+ var r = new bY(e.i, e.x, e.y), n = new bY(t.i, t.x, t.y), i = e.next, a = t.prev;
+ return e.next = t, t.prev = e, r.next = i, i.prev = r, n.next = r, r.prev = n, a.next = n, n.prev = a, n;
+ }
+ function x7e(e, t, r, n) {
+ var i = new bY(e, t, r);
+ return n ? (i.next = n.next, i.prev = n, n.next.prev = i, n.next = i) : (i.prev = i, i.next = i), i;
+ }
+ function Ak(e) {
+ e.next.prev = e.prev, e.prev.next = e.next, e.prevZ && (e.prevZ.nextZ = e.nextZ), e.nextZ && (e.nextZ.prevZ = e.prevZ);
+ }
+ function bY(e, t, r) {
+ this.i = e, this.x = t, this.y = r, this.prev = null, this.next = null, this.z = 0, this.prevZ = null, this.nextZ = null, this.steiner = false;
+ }
+ uz.deviation = function(e, t, r, n) {
+ var i = t && t.length, a = i ? t[0] * r : e.length, o = Math.abs(wY(e, 0, a, r));
+ if (i) for (var s = 0, l = t.length; s < l; s++) {
+ var u = t[s] * r, c = s < l - 1 ? t[s + 1] * r : e.length;
+ o -= Math.abs(wY(e, u, c, r));
+ }
+ var f = 0;
+ for (s = 0; s < n.length; s += 3) {
+ var h = n[s] * r, d = n[s + 1] * r, v = n[s + 2] * r;
+ f += Math.abs((e[h] - e[v]) * (e[d + 1] - e[h + 1]) - (e[h] - e[d]) * (e[v + 1] - e[h + 1]));
+ }
+ return o === 0 && f === 0 ? 0 : Math.abs((f - o) / o);
+ };
+ function wY(e, t, r, n) {
+ for (var i = 0, a = t, o = r - n; a < r; a += n) i += (e[o] - e[a]) * (e[a + 1] + e[o + 1]), o = a;
+ return i;
+ }
+ uz.flatten = function(e) {
+ for (var t = e[0][0].length, r = { vertices: [], holes: [], dimensions: t }, n = 0, i = 0; i < e.length; i++) {
+ for (var a = 0; a < e[i].length; a++) for (var o = 0; o < t; o++) r.vertices.push(e[i][a][o]);
+ i > 0 && (n += e[i - 1].length, r.holes.push(n));
+ }
+ return r;
+ };
+ });
+ var M7e = ye((Ryr, S7e) => {
+ var hqt = rw();
+ S7e.exports = dqt;
+ function dqt(e, t, r) {
+ if (!e || e.length == null) throw Error("Argument should be an array");
+ t == null && (t = 1), r == null && (r = hqt(e, t));
+ for (var n = 0; n < t; n++) {
+ var i = r[t + n], a = r[n], o = n, s = e.length;
+ if (i === 1 / 0 && a === -1 / 0) for (o = n; o < s; o += t) e[o] = e[o] === i ? 1 : e[o] === a ? 0 : 0.5;
+ else if (i === 1 / 0) for (o = n; o < s; o += t) e[o] = e[o] === i ? 1 : 0;
+ else if (a === -1 / 0) for (o = n; o < s; o += t) e[o] = e[o] === a ? 0 : 1;
+ else {
+ var l = i - a;
+ for (o = n; o < s; o += t) isNaN(e[o]) || (e[o] = l === 0 ? 0.5 : (e[o] - a) / l);
+ }
+ }
+ return e;
+ }
+ });
+ var k7e = ye((Dyr, E7e) => {
+ E7e.exports = function() {
+ var e, t;
+ if (typeof WeakMap != "function") return false;
+ try {
+ e = new WeakMap([[t = {}, "one"], [{}, "two"], [{}, "three"]]);
+ } catch (r) {
+ return false;
+ }
+ return !(String(e) !== "[object WeakMap]" || typeof e.set != "function" || e.set({}, 1) !== e || typeof e.delete != "function" || typeof e.has != "function" || e.get(t) !== "one");
+ };
+ });
+ var L7e = ye((Fyr, C7e) => {
+ C7e.exports = function() {
+ };
+ });
+ var mx = ye((zyr, P7e) => {
+ var vqt = L7e()();
+ P7e.exports = function(e) {
+ return e !== vqt && e !== null;
+ };
+ });
+ var AY = ye((Oyr, R7e) => {
+ var pqt = Object.create, gqt = Object.getPrototypeOf, I7e = {};
+ R7e.exports = function() {
+ var e = Object.setPrototypeOf, t = arguments[0] || pqt;
+ return typeof e != "function" ? false : gqt(e(t(null), I7e)) === I7e;
+ };
+ });
+ var SY = ye((qyr, D7e) => {
+ var mqt = mx(), yqt = { function: true, object: true };
+ D7e.exports = function(e) {
+ return mqt(e) && yqt[typeof e] || false;
+ };
+ });
+ var c1 = ye((Byr, F7e) => {
+ var _qt = mx();
+ F7e.exports = function(e) {
+ if (!_qt(e)) throw new TypeError("Cannot use null or undefined");
+ return e;
+ };
+ });
+ var O7e = ye((Nyr, z7e) => {
+ var MY = Object.create, fz;
+ AY()() || (fz = EY());
+ z7e.exports = function() {
+ var e, t, r;
+ return !fz || fz.level !== 1 ? MY : (e = {}, t = {}, r = { configurable: false, enumerable: false, writable: true, value: void 0 }, Object.getOwnPropertyNames(Object.prototype).forEach(function(n) {
+ if (n === "__proto__") {
+ t[n] = { configurable: true, enumerable: false, writable: true, value: void 0 };
+ return;
+ }
+ t[n] = r;
+ }), Object.defineProperties(e, t), Object.defineProperty(fz, "nullPolyfill", { configurable: false, enumerable: false, writable: false, value: e }), function(n, i) {
+ return MY(n === null ? e : n, i);
+ });
+ }();
+ });
+ var EY = ye((Uyr, q7e) => {
+ var xqt = SY(), bqt = c1(), wqt = Object.prototype.isPrototypeOf, Tqt = Object.defineProperty, Aqt = { configurable: true, enumerable: false, writable: true, value: void 0 }, hz;
+ hz = function(e, t) {
+ if (bqt(e), t === null || xqt(t)) return e;
+ throw new TypeError("Prototype must be null or an object");
+ };
+ q7e.exports = function(e) {
+ var t, r;
+ return e ? (e.level === 2 ? e.set ? (r = e.set, t = function(n, i) {
+ return r.call(hz(n, i), i), n;
+ }) : t = function(n, i) {
+ return hz(n, i).__proto__ = i, n;
+ } : t = function n(i, a) {
+ var o;
+ return hz(i, a), o = wqt.call(n.nullPolyfill, i), o && delete n.nullPolyfill.__proto__, a === null && (a = n.nullPolyfill), i.__proto__ = a, o && Tqt(n.nullPolyfill, "__proto__", Aqt), i;
+ }, Object.defineProperty(t, "level", { configurable: false, enumerable: false, writable: false, value: e.level })) : null;
+ }(function() {
+ var e = /* @__PURE__ */ Object.create(null), t = {}, r, n = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__");
+ if (n) {
+ try {
+ r = n.set, r.call(e, t);
+ } catch (i) {
+ }
+ if (Object.getPrototypeOf(e) === t) return { set: r, level: 2 };
+ }
+ return e.__proto__ = t, Object.getPrototypeOf(e) === t ? { level: 2 } : (e = {}, e.__proto__ = t, Object.getPrototypeOf(e) === t ? { level: 1 } : false);
+ }());
+ O7e();
+ });
+ var dz = ye((Vyr, B7e) => {
+ B7e.exports = AY()() ? Object.setPrototypeOf : EY();
+ });
+ var U7e = ye((Gyr, N7e) => {
+ var Sqt = SY();
+ N7e.exports = function(e) {
+ if (!Sqt(e)) throw new TypeError(e + " is not an Object");
+ return e;
+ };
+ });
+ var G7e = ye((Hyr, V7e) => {
+ var Mqt = /* @__PURE__ */ Object.create(null), Eqt = Math.random;
+ V7e.exports = function() {
+ var e;
+ do
+ e = Eqt().toString(36).slice(2);
+ while (Mqt[e]);
+ return e;
+ };
+ });
+ var uw = ye((jyr, H7e) => {
+ var kqt = void 0;
+ H7e.exports = function(e) {
+ return e !== kqt && e !== null;
+ };
+ });
+ var vz = ye((Wyr, j7e) => {
+ var Cqt = uw(), Lqt = { object: true, function: true, undefined: true };
+ j7e.exports = function(e) {
+ return Cqt(e) ? hasOwnProperty.call(Lqt, typeof e) : false;
+ };
+ });
+ var X7e = ye((Xyr, W7e) => {
+ var Pqt = vz();
+ W7e.exports = function(e) {
+ if (!Pqt(e)) return false;
+ try {
+ return e.constructor ? e.constructor.prototype === e : false;
+ } catch (t) {
+ return false;
+ }
+ };
+ });
+ var Y7e = ye((Zyr, Z7e) => {
+ var Iqt = X7e();
+ Z7e.exports = function(e) {
+ if (typeof e != "function" || !hasOwnProperty.call(e, "length")) return false;
+ try {
+ if (typeof e.length != "number" || typeof e.call != "function" || typeof e.apply != "function") return false;
+ } catch (t) {
+ return false;
+ }
+ return !Iqt(e);
+ };
+ });
+ var kY = ye((Yyr, K7e) => {
+ var Rqt = Y7e(), Dqt = /^\s*class[\s{/}]/, Fqt = Function.prototype.toString;
+ K7e.exports = function(e) {
+ return !(!Rqt(e) || Dqt.test(Fqt.call(e)));
+ };
+ });
+ var $7e = ye((Kyr, J7e) => {
+ J7e.exports = function() {
+ var e = Object.assign, t;
+ return typeof e != "function" ? false : (t = { foo: "raz" }, e(t, { bar: "dwa" }, { trzy: "trzy" }), t.foo + t.bar + t.trzy === "razdwatrzy");
+ };
+ });
+ var e9e = ye((Jyr, Q7e) => {
+ Q7e.exports = function() {
+ try {
+ return Object.keys("primitive"), true;
+ } catch (e) {
+ return false;
+ }
+ };
+ });
+ var r9e = ye(($yr, t9e) => {
+ var zqt = mx(), Oqt = Object.keys;
+ t9e.exports = function(e) {
+ return Oqt(zqt(e) ? Object(e) : e);
+ };
+ });
+ var n9e = ye((Qyr, i9e) => {
+ i9e.exports = e9e()() ? Object.keys : r9e();
+ });
+ var o9e = ye((e1r, a9e) => {
+ var qqt = n9e(), Bqt = c1(), Nqt = Math.max;
+ a9e.exports = function(e, t) {
+ var r, n, i = Nqt(arguments.length, 2), a;
+ for (e = Object(Bqt(e)), a = function(o) {
+ try {
+ e[o] = t[o];
+ } catch (s) {
+ r || (r = s);
+ }
+ }, n = 1; n < i; ++n) t = arguments[n], qqt(t).forEach(a);
+ if (r !== void 0) throw r;
+ return e;
+ };
+ });
+ var pz = ye((t1r, s9e) => {
+ s9e.exports = $7e()() ? Object.assign : o9e();
+ });
+ var CY = ye((r1r, l9e) => {
+ var Uqt = mx(), Vqt = Array.prototype.forEach, Gqt = Object.create, Hqt = function(e, t) {
+ var r;
+ for (r in e) t[r] = e[r];
+ };
+ l9e.exports = function(e) {
+ var t = Gqt(null);
+ return Vqt.call(arguments, function(r) {
+ Uqt(r) && Hqt(Object(r), t);
+ }), t;
+ };
+ });
+ var c9e = ye((i1r, u9e) => {
+ var LY = "razdwatrzy";
+ u9e.exports = function() {
+ return typeof LY.contains != "function" ? false : LY.contains("dwa") === true && LY.contains("foo") === false;
+ };
+ });
+ var h9e = ye((n1r, f9e) => {
+ var jqt = String.prototype.indexOf;
+ f9e.exports = function(e) {
+ return jqt.call(this, e, arguments[1]) > -1;
+ };
+ });
+ var PY = ye((a1r, d9e) => {
+ d9e.exports = c9e()() ? String.prototype.contains : h9e();
+ });
+ var f1 = ye((o1r, m9e) => {
+ var gz = uw(), v9e = kY(), p9e = pz(), g9e = CY(), Sk = PY(), Wqt = m9e.exports = function(e, t) {
+ var r, n, i, a, o;
+ return arguments.length < 2 || typeof e != "string" ? (a = t, t = e, e = null) : a = arguments[2], gz(e) ? (r = Sk.call(e, "c"), n = Sk.call(e, "e"), i = Sk.call(e, "w")) : (r = i = true, n = false), o = { value: t, configurable: r, enumerable: n, writable: i }, a ? p9e(g9e(a), o) : o;
+ };
+ Wqt.gs = function(e, t, r) {
+ var n, i, a, o;
+ return typeof e != "string" ? (a = r, r = t, t = e, e = null) : a = arguments[3], gz(t) ? v9e(t) ? gz(r) ? v9e(r) || (a = r, r = void 0) : r = void 0 : (a = t, t = r = void 0) : t = void 0, gz(e) ? (n = Sk.call(e, "c"), i = Sk.call(e, "e")) : (n = true, i = false), o = { get: t, set: r, configurable: n, enumerable: i }, a ? p9e(g9e(a), o) : o;
+ };
+ });
+ var Mk = ye((s1r, _9e) => {
+ var y9e = Object.prototype.toString, Xqt = y9e.call(/* @__PURE__ */ function() {
+ return arguments;
+ }());
+ _9e.exports = function(e) {
+ return y9e.call(e) === Xqt;
+ };
+ });
+ var Ek = ye((l1r, b9e) => {
+ var x9e = Object.prototype.toString, Zqt = x9e.call("");
+ b9e.exports = function(e) {
+ return typeof e == "string" || e && typeof e == "object" && (e instanceof String || x9e.call(e) === Zqt) || false;
+ };
+ });
+ var T9e = ye((u1r, w9e) => {
+ w9e.exports = function() {
+ return typeof globalThis != "object" || !globalThis ? false : globalThis.Array === Array;
+ };
+ });
+ var M9e = ye((c1r, S9e) => {
+ var A9e = function() {
+ if (typeof self == "object" && self) return self;
+ if (typeof window == "object" && window) return window;
+ throw new Error("Unable to resolve global `this`");
+ };
+ S9e.exports = function() {
+ if (this) return this;
+ try {
+ Object.defineProperty(Object.prototype, "__global__", { get: function() {
+ return this;
+ }, configurable: true });
+ } catch (e) {
+ return A9e();
+ }
+ try {
+ return __global__ || A9e();
+ } finally {
+ delete Object.prototype.__global__;
+ }
+ }();
+ });
+ var kk = ye((f1r, E9e) => {
+ E9e.exports = T9e()() ? globalThis : M9e();
+ });
+ var C9e = ye((h1r, k9e) => {
+ var Yqt = kk(), IY = { object: true, symbol: true };
+ k9e.exports = function() {
+ var e = Yqt.Symbol, t;
+ if (typeof e != "function") return false;
+ t = e("test symbol");
+ try {
+ String(t);
+ } catch (r) {
+ return false;
+ }
+ return !(!IY[typeof e.iterator] || !IY[typeof e.toPrimitive] || !IY[typeof e.toStringTag]);
+ };
+ });
+ var P9e = ye((d1r, L9e) => {
+ L9e.exports = function(e) {
+ return e ? typeof e == "symbol" ? true : !e.constructor || e.constructor.name !== "Symbol" ? false : e[e.constructor.toStringTag] === "Symbol" : false;
+ };
+ });
+ var RY = ye((v1r, I9e) => {
+ var Kqt = P9e();
+ I9e.exports = function(e) {
+ if (!Kqt(e)) throw new TypeError(e + " is not a symbol");
+ return e;
+ };
+ });
+ var O9e = ye((p1r, z9e) => {
+ var R9e = f1(), Jqt = Object.create, D9e = Object.defineProperty, $qt = Object.prototype, F9e = Jqt(null);
+ z9e.exports = function(e) {
+ for (var t = 0, r, n; F9e[e + (t || "")]; ) ++t;
+ return e += t || "", F9e[e] = true, r = "@@" + e, D9e($qt, r, R9e.gs(null, function(i) {
+ n || (n = true, D9e(this, r, R9e(i)), n = false);
+ })), r;
+ };
+ });
+ var B9e = ye((g1r, q9e) => {
+ var rm = f1(), Uh = kk().Symbol;
+ q9e.exports = function(e) {
+ return Object.defineProperties(e, { hasInstance: rm("", Uh && Uh.hasInstance || e("hasInstance")), isConcatSpreadable: rm("", Uh && Uh.isConcatSpreadable || e("isConcatSpreadable")), iterator: rm("", Uh && Uh.iterator || e("iterator")), match: rm("", Uh && Uh.match || e("match")), replace: rm("", Uh && Uh.replace || e("replace")), search: rm("", Uh && Uh.search || e("search")), species: rm("", Uh && Uh.species || e("species")), split: rm("", Uh && Uh.split || e("split")), toPrimitive: rm("", Uh && Uh.toPrimitive || e("toPrimitive")), toStringTag: rm("", Uh && Uh.toStringTag || e("toStringTag")), unscopables: rm("", Uh && Uh.unscopables || e("unscopables")) });
+ };
+ });
+ var V9e = ye((m1r, U9e) => {
+ var N9e = f1(), Qqt = RY(), Ck = /* @__PURE__ */ Object.create(null);
+ U9e.exports = function(e) {
+ return Object.defineProperties(e, { for: N9e(function(t) {
+ return Ck[t] ? Ck[t] : Ck[t] = e(String(t));
+ }), keyFor: N9e(function(t) {
+ var r;
+ Qqt(t);
+ for (r in Ck) if (Ck[r] === t) return r;
+ }) });
+ };
+ });
+ var j9e = ye((y1r, H9e) => {
+ var ty = f1(), DY = RY(), mz = kk().Symbol, eBt = O9e(), tBt = B9e(), rBt = V9e(), iBt = Object.create, FY = Object.defineProperties, yz = Object.defineProperty, Xv, p5, G9e;
+ if (typeof mz == "function") try {
+ String(mz()), G9e = true;
+ } catch (e) {
+ }
+ else mz = null;
+ p5 = function(t) {
+ if (this instanceof p5) throw new TypeError("Symbol is not a constructor");
+ return Xv(t);
+ };
+ H9e.exports = Xv = function e(t) {
+ var r;
+ if (this instanceof e) throw new TypeError("Symbol is not a constructor");
+ return G9e ? mz(t) : (r = iBt(p5.prototype), t = t === void 0 ? "" : String(t), FY(r, { __description__: ty("", t), __name__: ty("", eBt(t)) }));
+ };
+ tBt(Xv);
+ rBt(Xv);
+ FY(p5.prototype, { constructor: ty(Xv), toString: ty("", function() {
+ return this.__name__;
+ }) });
+ FY(Xv.prototype, { toString: ty(function() {
+ return "Symbol (" + DY(this).__description__ + ")";
+ }), valueOf: ty(function() {
+ return DY(this);
+ }) });
+ yz(Xv.prototype, Xv.toPrimitive, ty("", function() {
+ var e = DY(this);
+ return typeof e == "symbol" ? e : e.toString();
+ }));
+ yz(Xv.prototype, Xv.toStringTag, ty("c", "Symbol"));
+ yz(p5.prototype, Xv.toStringTag, ty("c", Xv.prototype[Xv.toStringTag]));
+ yz(p5.prototype, Xv.toPrimitive, ty("c", Xv.prototype[Xv.toPrimitive]));
+ });
+ var yx = ye((_1r, W9e) => {
+ W9e.exports = C9e()() ? kk().Symbol : j9e();
+ });
+ var Z9e = ye((x1r, X9e) => {
+ var nBt = c1();
+ X9e.exports = function() {
+ return nBt(this).length = 0, this;
+ };
+ });
+ var g5 = ye((b1r, Y9e) => {
+ Y9e.exports = function(e) {
+ if (typeof e != "function") throw new TypeError(e + " is not a function");
+ return e;
+ };
+ });
+ var J9e = ye((w1r, K9e) => {
+ var aBt = uw(), oBt = vz(), sBt = Object.prototype.toString;
+ K9e.exports = function(e) {
+ if (!aBt(e)) return null;
+ if (oBt(e)) {
+ var t = e.toString;
+ if (typeof t != "function" || t === sBt) return null;
+ }
+ try {
+ return "" + e;
+ } catch (r) {
+ return null;
+ }
+ };
+ });
+ var Q9e = ye((T1r, $9e) => {
+ $9e.exports = function(e) {
+ try {
+ return e.toString();
+ } catch (t) {
+ try {
+ return String(e);
+ } catch (r) {
+ return null;
+ }
+ }
+ };
+ });
+ var tOe = ye((A1r, eOe) => {
+ var lBt = Q9e(), uBt = /[\n\r\u2028\u2029]/g;
+ eOe.exports = function(e) {
+ var t = lBt(e);
+ return t === null ? "" : (t.length > 100 && (t = t.slice(0, 99) + "…"), t = t.replace(uBt, function(r) {
+ switch (r) {
+ case `
+`:
+ return "\\n";
+ case "\r":
+ return "\\r";
+ case "\u2028":
+ return "\\u2028";
+ case "\u2029":
+ return "\\u2029";
+ default:
+ throw new Error("Unexpected character");
+ }
+ }), t);
+ };
+ });
+ var zY = ye((S1r, nOe) => {
+ var rOe = uw(), cBt = vz(), fBt = J9e(), hBt = tOe(), iOe = function(e, t) {
+ return e.replace("%v", hBt(t));
+ };
+ nOe.exports = function(e, t, r) {
+ if (!cBt(r)) throw new TypeError(iOe(t, e));
+ if (!rOe(e)) {
+ if ("default" in r) return r.default;
+ if (r.isOptional) return null;
+ }
+ var n = fBt(r.errorMessage);
+ throw rOe(n) || (n = t), new TypeError(iOe(n, e));
+ };
+ });
+ var oOe = ye((M1r, aOe) => {
+ var dBt = zY(), vBt = uw();
+ aOe.exports = function(e) {
+ return vBt(e) ? e : dBt(e, "Cannot use %v", arguments[1]);
+ };
+ });
+ var lOe = ye((E1r, sOe) => {
+ var pBt = zY(), gBt = kY();
+ sOe.exports = function(e) {
+ return gBt(e) ? e : pBt(e, "%v is not a plain function", arguments[1]);
+ };
+ });
+ var cOe = ye((k1r, uOe) => {
+ uOe.exports = function() {
+ var e = Array.from, t, r;
+ return typeof e != "function" ? false : (t = ["raz", "dwa"], r = e(t), !!(r && r !== t && r[1] === "dwa"));
+ };
+ });
+ var hOe = ye((C1r, fOe) => {
+ var mBt = Object.prototype.toString, yBt = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);
+ fOe.exports = function(e) {
+ return typeof e == "function" && yBt(mBt.call(e));
+ };
+ });
+ var vOe = ye((L1r, dOe) => {
+ dOe.exports = function() {
+ var e = Math.sign;
+ return typeof e != "function" ? false : e(10) === 1 && e(-20) === -1;
+ };
+ });
+ var gOe = ye((P1r, pOe) => {
+ pOe.exports = function(e) {
+ return e = Number(e), isNaN(e) || e === 0 ? e : e > 0 ? 1 : -1;
+ };
+ });
+ var yOe = ye((I1r, mOe) => {
+ mOe.exports = vOe()() ? Math.sign : gOe();
+ });
+ var xOe = ye((R1r, _Oe) => {
+ var _Bt = yOe(), xBt = Math.abs, bBt = Math.floor;
+ _Oe.exports = function(e) {
+ return isNaN(e) ? 0 : (e = Number(e), e === 0 || !isFinite(e) ? e : _Bt(e) * bBt(xBt(e)));
+ };
+ });
+ var wOe = ye((D1r, bOe) => {
+ var wBt = xOe(), TBt = Math.max;
+ bOe.exports = function(e) {
+ return TBt(0, wBt(e));
+ };
+ });
+ var MOe = ye((F1r, SOe) => {
+ var ABt = yx().iterator, SBt = Mk(), MBt = hOe(), EBt = wOe(), TOe = g5(), kBt = c1(), CBt = mx(), LBt = Ek(), AOe = Array.isArray, OY = Function.prototype.call, cw = { configurable: true, enumerable: true, writable: true, value: null }, qY = Object.defineProperty;
+ SOe.exports = function(e) {
+ var t = arguments[1], r = arguments[2], n, i, a, o, s, l, u, c, f, h;
+ if (e = Object(kBt(e)), CBt(t) && TOe(t), !this || this === Array || !MBt(this)) {
+ if (!t) {
+ if (SBt(e)) return s = e.length, s !== 1 ? Array.apply(null, e) : (o = new Array(1), o[0] = e[0], o);
+ if (AOe(e)) {
+ for (o = new Array(s = e.length), i = 0; i < s; ++i) o[i] = e[i];
+ return o;
+ }
+ }
+ o = [];
+ } else n = this;
+ if (!AOe(e)) {
+ if ((f = e[ABt]) !== void 0) {
+ for (u = TOe(f).call(e), n && (o = new n()), c = u.next(), i = 0; !c.done; ) h = t ? OY.call(t, r, c.value, i) : c.value, n ? (cw.value = h, qY(o, i, cw)) : o[i] = h, c = u.next(), ++i;
+ s = i;
+ } else if (LBt(e)) {
+ for (s = e.length, n && (o = new n()), i = 0, a = 0; i < s; ++i) h = e[i], i + 1 < s && (l = h.charCodeAt(0), l >= 55296 && l <= 56319 && (h += e[++i])), h = t ? OY.call(t, r, h, a) : h, n ? (cw.value = h, qY(o, a, cw)) : o[a] = h, ++a;
+ s = a;
+ }
+ }
+ if (s === void 0) for (s = EBt(e.length), n && (o = new n(s)), i = 0; i < s; ++i) h = t ? OY.call(t, r, e[i], i) : e[i], n ? (cw.value = h, qY(o, i, cw)) : o[i] = h;
+ return n && (cw.value = null, o.length = s), o;
+ };
+ });
+ var kOe = ye((z1r, EOe) => {
+ EOe.exports = cOe()() ? Array.from : MOe();
+ });
+ var LOe = ye((O1r, COe) => {
+ var PBt = kOe(), IBt = pz(), RBt = c1();
+ COe.exports = function(e) {
+ var t = Object(RBt(e)), r = arguments[1], n = Object(arguments[2]);
+ if (t !== e && !r) return t;
+ var i = {};
+ return r ? PBt(r, function(a) {
+ (n.ensure || a in e) && (i[a] = e[a]);
+ }) : IBt(i, e), i;
+ };
+ });
+ var ROe = ye((q1r, IOe) => {
+ var DBt = g5(), FBt = c1(), zBt = Function.prototype.bind, POe = Function.prototype.call, OBt = Object.keys, qBt = Object.prototype.propertyIsEnumerable;
+ IOe.exports = function(e, t) {
+ return function(r, n) {
+ var i, a = arguments[2], o = arguments[3];
+ return r = Object(FBt(r)), DBt(n), i = OBt(r), o && i.sort(typeof o == "function" ? zBt.call(o, r) : void 0), typeof e != "function" && (e = i[e]), POe.call(e, i, function(s, l) {
+ return qBt.call(r, s) ? POe.call(n, a, r[s], s, r, l) : t;
+ });
+ };
+ };
+ });
+ var FOe = ye((B1r, DOe) => {
+ DOe.exports = ROe()("forEach");
+ });
+ var OOe = ye((N1r, zOe) => {
+ var BBt = g5(), NBt = FOe(), UBt = Function.prototype.call;
+ zOe.exports = function(e, t) {
+ var r = {}, n = arguments[2];
+ return BBt(t), NBt(e, function(i, a, o, s) {
+ r[a] = UBt.call(t, n, i, a, o, s);
+ }), r;
+ };
+ });
+ var UOe = ye((U1r, NOe) => {
+ var VBt = uw(), GBt = oOe(), qOe = lOe(), HBt = LOe(), jBt = CY(), WBt = OOe(), XBt = Function.prototype.bind, ZBt = Object.defineProperty, YBt = Object.prototype.hasOwnProperty, BOe;
+ BOe = function(e, t, r) {
+ var n = GBt(t) && qOe(t.value), i;
+ return i = HBt(t), delete i.writable, delete i.value, i.get = function() {
+ return !r.overwriteDefinition && YBt.call(this, e) ? n : (t.value = XBt.call(n, r.resolveContext ? r.resolveContext(this) : this), ZBt(this, e, t), this[e]);
+ }, i;
+ };
+ NOe.exports = function(e) {
+ var t = jBt(arguments[1]);
+ return VBt(t.resolveContext) && qOe(t.resolveContext), WBt(e, function(r, n) {
+ return BOe(n, r, t);
+ });
+ };
+ });
+ var BY = ye((V1r, jOe) => {
+ var KBt = Z9e(), JBt = pz(), $Bt = g5(), QBt = c1(), qp = f1(), eNt = UOe(), VOe = yx(), GOe = Object.defineProperty, HOe = Object.defineProperties, Lk;
+ jOe.exports = Lk = function(e, t) {
+ if (!(this instanceof Lk)) throw new TypeError("Constructor requires 'new'");
+ HOe(this, { __list__: qp("w", QBt(e)), __context__: qp("w", t), __nextIndex__: qp("w", 0) }), t && ($Bt(t.on), t.on("_add", this._onAdd), t.on("_delete", this._onDelete), t.on("_clear", this._onClear));
+ };
+ delete Lk.prototype.constructor;
+ HOe(Lk.prototype, JBt({ _next: qp(function() {
+ var e;
+ if (this.__list__) {
+ if (this.__redo__ && (e = this.__redo__.shift(), e !== void 0)) return e;
+ if (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;
+ this._unBind();
+ }
+ }), next: qp(function() {
+ return this._createResult(this._next());
+ }), _createResult: qp(function(e) {
+ return e === void 0 ? { done: true, value: void 0 } : { done: false, value: this._resolve(e) };
+ }), _resolve: qp(function(e) {
+ return this.__list__[e];
+ }), _unBind: qp(function() {
+ this.__list__ = null, delete this.__redo__, this.__context__ && (this.__context__.off("_add", this._onAdd), this.__context__.off("_delete", this._onDelete), this.__context__.off("_clear", this._onClear), this.__context__ = null);
+ }), toString: qp(function() {
+ return "[object " + (this[VOe.toStringTag] || "Object") + "]";
+ }) }, eNt({ _onAdd: qp(function(e) {
+ if (!(e >= this.__nextIndex__)) {
+ if (++this.__nextIndex__, !this.__redo__) {
+ GOe(this, "__redo__", qp("c", [e]));
+ return;
+ }
+ this.__redo__.forEach(function(t, r) {
+ t >= e && (this.__redo__[r] = ++t);
+ }, this), this.__redo__.push(e);
+ }
+ }), _onDelete: qp(function(e) {
+ var t;
+ e >= this.__nextIndex__ || (--this.__nextIndex__, this.__redo__ && (t = this.__redo__.indexOf(e), t !== -1 && this.__redo__.splice(t, 1), this.__redo__.forEach(function(r, n) {
+ r > e && (this.__redo__[n] = --r);
+ }, this)));
+ }), _onClear: qp(function() {
+ this.__redo__ && KBt.call(this.__redo__), this.__nextIndex__ = 0;
+ }) })));
+ GOe(Lk.prototype, VOe.iterator, qp(function() {
+ return this;
+ }));
+ });
+ var KOe = ye((G1r, YOe) => {
+ var WOe = dz(), XOe = PY(), NY = f1(), tNt = yx(), UY = BY(), ZOe = Object.defineProperty, m5;
+ m5 = YOe.exports = function(e, t) {
+ if (!(this instanceof m5)) throw new TypeError("Constructor requires 'new'");
+ UY.call(this, e), t ? XOe.call(t, "key+value") ? t = "key+value" : XOe.call(t, "key") ? t = "key" : t = "value" : t = "value", ZOe(this, "__kind__", NY("", t));
+ };
+ WOe && WOe(m5, UY);
+ delete m5.prototype.constructor;
+ m5.prototype = Object.create(UY.prototype, { _resolve: NY(function(e) {
+ return this.__kind__ === "value" ? this.__list__[e] : this.__kind__ === "key+value" ? [e, this.__list__[e]] : e;
+ }) });
+ ZOe(m5.prototype, tNt.toStringTag, NY("c", "Array Iterator"));
+ });
+ var eqe = ye((H1r, QOe) => {
+ var JOe = dz(), _z = f1(), rNt = yx(), VY = BY(), $Oe = Object.defineProperty, y5;
+ y5 = QOe.exports = function(e) {
+ if (!(this instanceof y5)) throw new TypeError("Constructor requires 'new'");
+ e = String(e), VY.call(this, e), $Oe(this, "__length__", _z("", e.length));
+ };
+ JOe && JOe(y5, VY);
+ delete y5.prototype.constructor;
+ y5.prototype = Object.create(VY.prototype, { _next: _z(function() {
+ if (this.__list__) {
+ if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++;
+ this._unBind();
+ }
+ }), _resolve: _z(function(e) {
+ var t = this.__list__[e], r;
+ return this.__nextIndex__ === this.__length__ ? t : (r = t.charCodeAt(0), r >= 55296 && r <= 56319 ? t + this.__list__[this.__nextIndex__++] : t);
+ }) });
+ $Oe(y5.prototype, rNt.toStringTag, _z("c", "String Iterator"));
+ });
+ var rqe = ye((j1r, tqe) => {
+ var iNt = Mk(), nNt = mx(), aNt = Ek(), oNt = yx().iterator, sNt = Array.isArray;
+ tqe.exports = function(e) {
+ return nNt(e) ? sNt(e) || aNt(e) || iNt(e) ? true : typeof e[oNt] == "function" : false;
+ };
+ });
+ var nqe = ye((W1r, iqe) => {
+ var lNt = rqe();
+ iqe.exports = function(e) {
+ if (!lNt(e)) throw new TypeError(e + " is not iterable");
+ return e;
+ };
+ });
+ var GY = ye((X1r, sqe) => {
+ var uNt = Mk(), cNt = Ek(), aqe = KOe(), fNt = eqe(), hNt = nqe(), oqe = yx().iterator;
+ sqe.exports = function(e) {
+ return typeof hNt(e)[oqe] == "function" ? e[oqe]() : uNt(e) ? new aqe(e) : cNt(e) ? new fNt(e) : new aqe(e);
+ };
+ });
+ var uqe = ye((Z1r, lqe) => {
+ var dNt = Mk(), vNt = g5(), pNt = Ek(), gNt = GY(), mNt = Array.isArray, HY = Function.prototype.call, yNt = Array.prototype.some;
+ lqe.exports = function(e, t) {
+ var r, n = arguments[2], i, a, o, s, l, u, c;
+ if (mNt(e) || dNt(e) ? r = "array" : pNt(e) ? r = "string" : e = gNt(e), vNt(t), a = function() {
+ o = true;
+ }, r === "array") {
+ yNt.call(e, function(f) {
+ return HY.call(t, n, f, a), o;
+ });
+ return;
+ }
+ if (r === "string") {
+ for (l = e.length, s = 0; s < l && (u = e[s], s + 1 < l && (c = u.charCodeAt(0), c >= 55296 && c <= 56319 && (u += e[++s])), HY.call(t, n, u, a), !o); ++s) ;
+ return;
+ }
+ for (i = e.next(); !i.done; ) {
+ if (HY.call(t, n, i.value, a), o) return;
+ i = e.next();
+ }
+ };
+ });
+ var fqe = ye((Y1r, cqe) => {
+ cqe.exports = function() {
+ return typeof WeakMap != "function" ? false : Object.prototype.toString.call(/* @__PURE__ */ new WeakMap()) === "[object WeakMap]";
+ }();
+ });
+ var vqe = ye((K1r, dqe) => {
+ var _Nt = mx(), bz = dz(), xz = U7e(), xNt = c1(), bNt = G7e(), h1 = f1(), wNt = GY(), TNt = uqe(), ANt = yx().toStringTag, hqe = fqe(), SNt = Array.isArray, WY = Object.defineProperty, jY = Object.prototype.hasOwnProperty, MNt = Object.getPrototypeOf, _x;
+ dqe.exports = _x = function() {
+ var e = arguments[0], t;
+ if (!(this instanceof _x)) throw new TypeError("Constructor requires 'new'");
+ return t = hqe && bz && WeakMap !== _x ? bz(/* @__PURE__ */ new WeakMap(), MNt(this)) : this, _Nt(e) && (SNt(e) || (e = wNt(e))), WY(t, "__weakMapData__", h1("c", "$weakMap$" + bNt())), e && TNt(e, function(r) {
+ xNt(r), t.set(r[0], r[1]);
+ }), t;
+ };
+ hqe && (bz && bz(_x, WeakMap), _x.prototype = Object.create(WeakMap.prototype, { constructor: h1(_x) }));
+ Object.defineProperties(_x.prototype, { delete: h1(function(e) {
+ return jY.call(xz(e), this.__weakMapData__) ? (delete e[this.__weakMapData__], true) : false;
+ }), get: h1(function(e) {
+ if (jY.call(xz(e), this.__weakMapData__)) return e[this.__weakMapData__];
+ }), has: h1(function(e) {
+ return jY.call(xz(e), this.__weakMapData__);
+ }), set: h1(function(e, t) {
+ return WY(xz(e), this.__weakMapData__, h1("c", t)), this;
+ }), toString: h1(function() {
+ return "[object WeakMap]";
+ }) });
+ WY(_x.prototype, ANt, h1("c", "WeakMap"));
+ });
+ var XY = ye((J1r, pqe) => {
+ pqe.exports = k7e()() ? WeakMap : vqe();
+ });
+ var mqe = ye(($1r, gqe) => {
+ gqe.exports = function(e, t, r) {
+ if (typeof Array.prototype.findIndex == "function") return e.findIndex(t, r);
+ if (typeof t != "function") throw new TypeError("predicate must be a function");
+ var n = Object(e), i = n.length;
+ if (i === 0) return -1;
+ for (var a = 0; a < i; a++) if (t.call(r, n[a], a, n)) return a;
+ return -1;
+ };
+ });
+ var KY = ye((Q1r, xqe) => {
+ var wz = ox(), ENt = rw(), YY = Nh(), kNt = ey(), CNt = iw(), yqe = A7e(), LNt = M7e(), { float32: PNt, fract32: ZY } = nz(), INt = XY(), _qe = s5(), RNt = mqe(), DNt = `
+precision highp float;
+
+attribute vec2 aCoord, bCoord, aCoordFract, bCoordFract;
+attribute vec4 color;
+attribute float lineEnd, lineTop;
+
+uniform vec2 scale, scaleFract, translate, translateFract;
+uniform float thickness, pixelRatio, id, depth;
+uniform vec4 viewport;
+
+varying vec4 fragColor;
+varying vec2 tangent;
+
+vec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) {
+ // the order is important
+ return position * scale + translate
+ + positionFract * scale + translateFract
+ + position * scaleFract
+ + positionFract * scaleFract;
+}
+
+void main() {
+ float lineStart = 1. - lineEnd;
+ float lineOffset = lineTop * 2. - 1.;
+
+ vec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract);
+ tangent = normalize(diff * scale * viewport.zw);
+ vec2 normal = vec2(-tangent.y, tangent.x);
+
+ vec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart
+ + project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd
+
+ + thickness * normal * .5 * lineOffset / viewport.zw;
+
+ gl_Position = vec4(position * 2.0 - 1.0, depth, 1);
+
+ fragColor = color / 255.;
+}
+`, FNt = `
+precision highp float;
+
+uniform float dashLength, pixelRatio, thickness, opacity, id;
+uniform sampler2D dashTexture;
+
+varying vec4 fragColor;
+varying vec2 tangent;
+
+void main() {
+ float alpha = 1.;
+
+ float t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;
+ float dash = texture2D(dashTexture, vec2(t, .5)).r;
+
+ gl_FragColor = fragColor;
+ gl_FragColor.a *= alpha * opacity * dash;
+}
+`, zNt = `
+precision highp float;
+
+attribute vec2 position, positionFract;
+
+uniform vec4 color;
+uniform vec2 scale, scaleFract, translate, translateFract;
+uniform float pixelRatio, id;
+uniform vec4 viewport;
+uniform float opacity;
+
+varying vec4 fragColor;
+
+const float MAX_LINES = 256.;
+
+void main() {
+ float depth = (MAX_LINES - 4. - id) / (MAX_LINES);
+
+ vec2 position = position * scale + translate
+ + positionFract * scale + translateFract
+ + position * scaleFract
+ + positionFract * scaleFract;
+
+ gl_Position = vec4(position * 2.0 - 1.0, depth, 1);
+
+ fragColor = color / 255.;
+ fragColor.a *= opacity;
+}
+`, ONt = `
+precision highp float;
+varying vec4 fragColor;
+
+void main() {
+ gl_FragColor = fragColor;
+}
+`, qNt = `
+precision highp float;
+
+attribute vec2 aCoord, bCoord, nextCoord, prevCoord;
+attribute vec4 aColor, bColor;
+attribute float lineEnd, lineTop;
+
+uniform vec2 scale, translate;
+uniform float thickness, pixelRatio, id, depth;
+uniform vec4 viewport;
+uniform float miterLimit, miterMode;
+
+varying vec4 fragColor;
+varying vec4 startCutoff, endCutoff;
+varying vec2 tangent;
+varying vec2 startCoord, endCoord;
+varying float enableStartMiter, enableEndMiter;
+
+const float REVERSE_THRESHOLD = -.875;
+const float MIN_DIFF = 1e-6;
+
+// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead
+// TODO: precalculate dot products, normalize things beforehead etc.
+// TODO: refactor to rectangular algorithm
+
+float distToLine(vec2 p, vec2 a, vec2 b) {
+ vec2 diff = b - a;
+ vec2 perp = normalize(vec2(-diff.y, diff.x));
+ return dot(p - a, perp);
+}
+
+bool isNaN( float val ){
+ return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;
+}
+
+void main() {
+ vec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;
+
+ vec2 adjustedScale;
+ adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;
+ adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;
+
+ vec2 scaleRatio = adjustedScale * viewport.zw;
+ vec2 normalWidth = thickness / scaleRatio;
+
+ float lineStart = 1. - lineEnd;
+ float lineBot = 1. - lineTop;
+
+ fragColor = (lineStart * aColor + lineEnd * bColor) / 255.;
+
+ if (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;
+
+ if (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);
+ if (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);
+
+
+ vec2 prevDiff = aCoord - prevCoord;
+ vec2 currDiff = bCoord - aCoord;
+ vec2 nextDiff = nextCoord - bCoord;
+
+ vec2 prevTangent = normalize(prevDiff * scaleRatio);
+ vec2 currTangent = normalize(currDiff * scaleRatio);
+ vec2 nextTangent = normalize(nextDiff * scaleRatio);
+
+ vec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);
+ vec2 currNormal = vec2(-currTangent.y, currTangent.x);
+ vec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);
+
+ vec2 startJoinDirection = normalize(prevTangent - currTangent);
+ vec2 endJoinDirection = normalize(currTangent - nextTangent);
+
+ // collapsed/unidirectional segment cases
+ // FIXME: there should be more elegant solution
+ vec2 prevTanDiff = abs(prevTangent - currTangent);
+ vec2 nextTanDiff = abs(nextTangent - currTangent);
+ if (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {
+ startJoinDirection = currNormal;
+ }
+ if (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {
+ endJoinDirection = currNormal;
+ }
+ if (aCoord == bCoord) {
+ endJoinDirection = startJoinDirection;
+ currNormal = prevNormal;
+ currTangent = prevTangent;
+ }
+
+ tangent = currTangent;
+
+ //calculate join shifts relative to normals
+ float startJoinShift = dot(currNormal, startJoinDirection);
+ float endJoinShift = dot(currNormal, endJoinDirection);
+
+ float startMiterRatio = abs(1. / startJoinShift);
+ float endMiterRatio = abs(1. / endJoinShift);
+
+ vec2 startJoin = startJoinDirection * startMiterRatio;
+ vec2 endJoin = endJoinDirection * endMiterRatio;
+
+ vec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;
+ startTopJoin = sign(startJoinShift) * startJoin * .5;
+ startBotJoin = -startTopJoin;
+
+ endTopJoin = sign(endJoinShift) * endJoin * .5;
+ endBotJoin = -endTopJoin;
+
+ vec2 aTopCoord = aCoord + normalWidth * startTopJoin;
+ vec2 bTopCoord = bCoord + normalWidth * endTopJoin;
+ vec2 aBotCoord = aCoord + normalWidth * startBotJoin;
+ vec2 bBotCoord = bCoord + normalWidth * endBotJoin;
+
+ //miter anti-clipping
+ float baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));
+ float abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));
+
+ //prevent close to reverse direction switch
+ bool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) < length(normalWidth * currNormal);
+ bool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) < length(normalWidth * currNormal);
+
+ if (prevReverse) {
+ //make join rectangular
+ vec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;
+ float normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);
+ aBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;
+ aTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;
+ }
+ else if (!nextReverse && baClipping > 0. && baClipping < length(normalWidth * endBotJoin)) {
+ //handle miter clipping
+ bTopCoord -= normalWidth * endTopJoin;
+ bTopCoord += normalize(endTopJoin * normalWidth) * baClipping;
+ }
+
+ if (nextReverse) {
+ //make join rectangular
+ vec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;
+ float normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);
+ bBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;
+ bTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;
+ }
+ else if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {
+ //handle miter clipping
+ aBotCoord -= normalWidth * startBotJoin;
+ aBotCoord += normalize(startBotJoin * normalWidth) * abClipping;
+ }
+
+ vec2 aTopPosition = (aTopCoord) * adjustedScale + translate;
+ vec2 aBotPosition = (aBotCoord) * adjustedScale + translate;
+
+ vec2 bTopPosition = (bTopCoord) * adjustedScale + translate;
+ vec2 bBotPosition = (bBotCoord) * adjustedScale + translate;
+
+ //position is normalized 0..1 coord on the screen
+ vec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;
+
+ startCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;
+ endCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;
+
+ gl_Position = vec4(position * 2.0 - 1.0, depth, 1);
+
+ enableStartMiter = step(dot(currTangent, prevTangent), .5);
+ enableEndMiter = step(dot(currTangent, nextTangent), .5);
+
+ //bevel miter cutoffs
+ if (miterMode == 1.) {
+ if (enableStartMiter == 1.) {
+ vec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;
+ startCutoff = vec4(aCoord, aCoord);
+ startCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;
+ startCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;
+ startCutoff += viewport.xyxy;
+ startCutoff += startMiterWidth.xyxy;
+ }
+
+ if (enableEndMiter == 1.) {
+ vec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;
+ endCutoff = vec4(bCoord, bCoord);
+ endCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;
+ endCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;
+ endCutoff += viewport.xyxy;
+ endCutoff += endMiterWidth.xyxy;
+ }
+ }
+
+ //round miter cutoffs
+ else if (miterMode == 2.) {
+ if (enableStartMiter == 1.) {
+ vec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;
+ startCutoff = vec4(aCoord, aCoord);
+ startCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;
+ startCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;
+ startCutoff += viewport.xyxy;
+ startCutoff += startMiterWidth.xyxy;
+ }
+
+ if (enableEndMiter == 1.) {
+ vec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;
+ endCutoff = vec4(bCoord, bCoord);
+ endCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;
+ endCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;
+ endCutoff += viewport.xyxy;
+ endCutoff += endMiterWidth.xyxy;
+ }
+ }
+}
+`, BNt = `
+precision highp float;
+
+uniform float dashLength, pixelRatio, thickness, opacity, id, miterMode;
+uniform sampler2D dashTexture;
+
+varying vec4 fragColor;
+varying vec2 tangent;
+varying vec4 startCutoff, endCutoff;
+varying vec2 startCoord, endCoord;
+varying float enableStartMiter, enableEndMiter;
+
+float distToLine(vec2 p, vec2 a, vec2 b) {
+ vec2 diff = b - a;
+ vec2 perp = normalize(vec2(-diff.y, diff.x));
+ return dot(p - a, perp);
+}
+
+void main() {
+ float alpha = 1., distToStart, distToEnd;
+ float cutoff = thickness * .5;
+
+ //bevel miter
+ if (miterMode == 1.) {
+ if (enableStartMiter == 1.) {
+ distToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);
+ if (distToStart < -1.) {
+ discard;
+ return;
+ }
+ alpha *= min(max(distToStart + 1., 0.), 1.);
+ }
+
+ if (enableEndMiter == 1.) {
+ distToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);
+ if (distToEnd < -1.) {
+ discard;
+ return;
+ }
+ alpha *= min(max(distToEnd + 1., 0.), 1.);
+ }
+ }
+
+ // round miter
+ else if (miterMode == 2.) {
+ if (enableStartMiter == 1.) {
+ distToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);
+ if (distToStart < 0.) {
+ float radius = length(gl_FragCoord.xy - startCoord);
+
+ if(radius > cutoff + .5) {
+ discard;
+ return;
+ }
+
+ alpha -= smoothstep(cutoff - .5, cutoff + .5, radius);
+ }
+ }
+
+ if (enableEndMiter == 1.) {
+ distToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);
+ if (distToEnd < 0.) {
+ float radius = length(gl_FragCoord.xy - endCoord);
+
+ if(radius > cutoff + .5) {
+ discard;
+ return;
+ }
+
+ alpha -= smoothstep(cutoff - .5, cutoff + .5, radius);
+ }
+ }
+ }
+
+ float t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;
+ float dash = texture2D(dashTexture, vec2(t, .5)).r;
+
+ gl_FragColor = fragColor;
+ gl_FragColor.a *= alpha * opacity * dash;
+}
+`;
+ xqe.exports = Wc;
+ function Wc(e, t) {
+ if (!(this instanceof Wc)) return new Wc(e, t);
+ if (typeof e == "function" ? (t || (t = {}), t.regl = e) : t = e, t.length && (t.positions = t), e = t.regl, !e.hasExtension("ANGLE_instanced_arrays")) throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");
+ this.gl = e._gl, this.regl = e, this.passes = [], this.shaders = Wc.shaders.has(e) ? Wc.shaders.get(e) : Wc.shaders.set(e, Wc.createShaders(e)).get(e), this.update(t);
+ }
+ Wc.dashMult = 2;
+ Wc.maxPatternLength = 256;
+ Wc.precisionThreshold = 3e6;
+ Wc.maxPoints = 1e4;
+ Wc.maxLines = 2048;
+ Wc.shaders = new INt();
+ Wc.createShaders = function(e) {
+ let t = e.buffer({ usage: "static", type: "float", data: [0, 1, 0, 0, 1, 1, 1, 0] }), r = { primitive: "triangle strip", instances: e.prop("count"), count: 4, offset: 0, uniforms: { miterMode: (o, s) => s.join === "round" ? 2 : 1, miterLimit: e.prop("miterLimit"), scale: e.prop("scale"), scaleFract: e.prop("scaleFract"), translateFract: e.prop("translateFract"), translate: e.prop("translate"), thickness: e.prop("thickness"), dashTexture: e.prop("dashTexture"), opacity: e.prop("opacity"), pixelRatio: e.context("pixelRatio"), id: e.prop("id"), dashLength: e.prop("dashLength"), viewport: (o, s) => [s.viewport.x, s.viewport.y, o.viewportWidth, o.viewportHeight], depth: e.prop("depth") }, blend: { enable: true, color: [0, 0, 0, 0], equation: { rgb: "add", alpha: "add" }, func: { srcRGB: "src alpha", dstRGB: "one minus src alpha", srcAlpha: "one minus dst alpha", dstAlpha: "one" } }, depth: { enable: (o, s) => !s.overlay }, stencil: { enable: false }, scissor: { enable: true, box: e.prop("viewport") }, viewport: e.prop("viewport") }, n = e(YY({ vert: DNt, frag: FNt, attributes: { lineEnd: { buffer: t, divisor: 0, stride: 8, offset: 0 }, lineTop: { buffer: t, divisor: 0, stride: 8, offset: 4 }, aCoord: { buffer: e.prop("positionBuffer"), stride: 8, offset: 8, divisor: 1 }, bCoord: { buffer: e.prop("positionBuffer"), stride: 8, offset: 16, divisor: 1 }, aCoordFract: { buffer: e.prop("positionFractBuffer"), stride: 8, offset: 8, divisor: 1 }, bCoordFract: { buffer: e.prop("positionFractBuffer"), stride: 8, offset: 16, divisor: 1 }, color: { buffer: e.prop("colorBuffer"), stride: 4, offset: 0, divisor: 1 } } }, r)), i;
+ try {
+ i = e(YY({ cull: { enable: true, face: "back" }, vert: qNt, frag: BNt, attributes: { lineEnd: { buffer: t, divisor: 0, stride: 8, offset: 0 }, lineTop: { buffer: t, divisor: 0, stride: 8, offset: 4 }, aColor: { buffer: e.prop("colorBuffer"), stride: 4, offset: 0, divisor: 1 }, bColor: { buffer: e.prop("colorBuffer"), stride: 4, offset: 4, divisor: 1 }, prevCoord: { buffer: e.prop("positionBuffer"), stride: 8, offset: 0, divisor: 1 }, aCoord: { buffer: e.prop("positionBuffer"), stride: 8, offset: 8, divisor: 1 }, bCoord: { buffer: e.prop("positionBuffer"), stride: 8, offset: 16, divisor: 1 }, nextCoord: { buffer: e.prop("positionBuffer"), stride: 8, offset: 24, divisor: 1 } } }, r));
+ } catch (o) {
+ i = n;
+ }
+ return { fill: e({ primitive: "triangle", elements: (o, s) => s.triangles, offset: 0, vert: zNt, frag: ONt, uniforms: { scale: e.prop("scale"), color: e.prop("fill"), scaleFract: e.prop("scaleFract"), translateFract: e.prop("translateFract"), translate: e.prop("translate"), opacity: e.prop("opacity"), pixelRatio: e.context("pixelRatio"), id: e.prop("id"), viewport: (o, s) => [s.viewport.x, s.viewport.y, o.viewportWidth, o.viewportHeight] }, attributes: { position: { buffer: e.prop("positionBuffer"), stride: 8, offset: 8 }, positionFract: { buffer: e.prop("positionFractBuffer"), stride: 8, offset: 8 } }, blend: r.blend, depth: { enable: false }, scissor: r.scissor, stencil: r.stencil, viewport: r.viewport }), rect: n, miter: i };
+ };
+ Wc.defaults = { dashes: null, join: "miter", miterLimit: 1, thickness: 10, cap: "square", color: "black", opacity: 1, overlay: false, viewport: null, range: null, close: false, fill: null };
+ Wc.prototype.render = function(...e) {
+ e.length && this.update(...e), this.draw();
+ };
+ Wc.prototype.draw = function(...e) {
+ return (e.length ? e : this.passes).forEach((t, r) => {
+ if (t && Array.isArray(t)) return this.draw(...t);
+ typeof t == "number" && (t = this.passes[t]), t && t.count > 1 && t.opacity && (this.regl._refresh(), t.fill && t.triangles && t.triangles.length > 2 && this.shaders.fill(t), t.thickness && (t.scale[0] * t.viewport.width > Wc.precisionThreshold || t.scale[1] * t.viewport.height > Wc.precisionThreshold ? this.shaders.rect(t) : t.join === "rect" || !t.join && (t.thickness <= 2 || t.count >= Wc.maxPoints) ? this.shaders.rect(t) : this.shaders.miter(t)));
+ }), this;
+ };
+ Wc.prototype.update = function(e) {
+ if (!e) return;
+ e.length != null ? typeof e[0] == "number" && (e = [{ positions: e }]) : Array.isArray(e) || (e = [e]);
+ let { regl: t, gl: r } = this;
+ if (e.forEach((i, a) => {
+ let o = this.passes[a];
+ if (i !== void 0) {
+ if (i === null) {
+ this.passes[a] = null;
+ return;
+ }
+ if (typeof i[0] == "number" && (i = { positions: i }), i = kNt(i, { positions: "positions points data coords", thickness: "thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth", join: "lineJoin linejoin join type mode", miterLimit: "miterlimit miterLimit", dashes: "dash dashes dasharray dash-array dashArray", color: "color colour stroke colors colours stroke-color strokeColor", fill: "fill fill-color fillColor", opacity: "alpha opacity", overlay: "overlay crease overlap intersect", close: "closed close closed-path closePath", range: "range dataBox", viewport: "viewport viewBox", hole: "holes hole hollow", splitNull: "splitNull" }), o || (this.passes[a] = o = { id: a, scale: null, scaleFract: null, translate: null, translateFract: null, count: 0, hole: [], depth: 0, dashLength: 1, dashTexture: t.texture({ channels: 1, data: new Uint8Array([255]), width: 1, height: 1, mag: "linear", min: "linear" }), colorBuffer: t.buffer({ usage: "dynamic", type: "uint8", data: new Uint8Array() }), positionBuffer: t.buffer({ usage: "dynamic", type: "float", data: new Uint8Array() }), positionFractBuffer: t.buffer({ usage: "dynamic", type: "float", data: new Uint8Array() }) }, i = YY({}, Wc.defaults, i)), i.thickness != null && (o.thickness = parseFloat(i.thickness)), i.opacity != null && (o.opacity = parseFloat(i.opacity)), i.miterLimit != null && (o.miterLimit = parseFloat(i.miterLimit)), i.overlay != null && (o.overlay = !!i.overlay, a < Wc.maxLines && (o.depth = 2 * (Wc.maxLines - 1 - a % Wc.maxLines) / Wc.maxLines - 1)), i.join != null && (o.join = i.join), i.hole != null && (o.hole = i.hole), i.fill != null && (o.fill = i.fill ? wz(i.fill, "uint8") : null), i.viewport != null && (o.viewport = _qe(i.viewport)), o.viewport || (o.viewport = _qe([r.drawingBufferWidth, r.drawingBufferHeight])), i.close != null && (o.close = i.close), i.positions === null && (i.positions = []), i.positions) {
+ let u, c;
+ if (i.positions.x && i.positions.y) {
+ let v = i.positions.x, _ = i.positions.y;
+ c = o.count = Math.max(v.length, _.length), u = new Float64Array(c * 2);
+ for (let b = 0; b < c; b++) u[b * 2] = v[b], u[b * 2 + 1] = _[b];
+ } else u = CNt(i.positions, "float64"), c = o.count = Math.floor(u.length / 2);
+ let f = o.bounds = ENt(u, 2);
+ if (o.fill) {
+ let v = [], _ = {}, b = 0;
+ for (let p = 0, k = 0, E = o.count; p < E; p++) {
+ let T = u[p * 2], L = u[p * 2 + 1];
+ isNaN(T) || isNaN(L) || T == null || L == null ? (T = u[b * 2], L = u[b * 2 + 1], _[p] = b) : b = p, v[k++] = T, v[k++] = L;
+ }
+ if (i.splitNull) {
+ o.count - 1 in _ || (_[o.count] = o.count - 1);
+ let p = Object.keys(_).map(Number).sort((L, x) => L - x), k = [], E = 0, T = o.hole != null ? o.hole[0] : null;
+ if (T != null) {
+ let L = RNt(p, (x) => x >= T);
+ p = p.slice(0, L), p.push(T);
+ }
+ for (let L = 0; L < p.length; L++) {
+ let x = v.slice(E * 2, p[L] * 2).concat(T ? v.slice(T * 2) : []), C = (o.hole || []).map((g) => g - T + (p[L] - E)), M = yqe(x, C);
+ M = M.map((g) => g + E + (g + E < p[L] ? 0 : T - p[L])), k.push(...M), E = p[L] + 1;
+ }
+ for (let L = 0, x = k.length; L < x; L++) _[k[L]] != null && (k[L] = _[k[L]]);
+ o.triangles = k;
+ } else {
+ let p = yqe(v, o.hole || []);
+ for (let k = 0, E = p.length; k < E; k++) _[p[k]] != null && (p[k] = _[p[k]]);
+ o.triangles = p;
+ }
+ }
+ let h = new Float64Array(u);
+ LNt(h, 2, f);
+ let d = new Float64Array(c * 2 + 6);
+ o.close ? u[0] === u[c * 2 - 2] && u[1] === u[c * 2 - 1] ? (d[0] = h[c * 2 - 4], d[1] = h[c * 2 - 3]) : (d[0] = h[c * 2 - 2], d[1] = h[c * 2 - 1]) : (d[0] = h[0], d[1] = h[1]), d.set(h, 2), o.close ? u[0] === u[c * 2 - 2] && u[1] === u[c * 2 - 1] ? (d[c * 2 + 2] = h[2], d[c * 2 + 3] = h[3], o.count -= 1) : (d[c * 2 + 2] = h[0], d[c * 2 + 3] = h[1], d[c * 2 + 4] = h[2], d[c * 2 + 5] = h[3]) : (d[c * 2 + 2] = h[c * 2 - 2], d[c * 2 + 3] = h[c * 2 - 1], d[c * 2 + 4] = h[c * 2 - 2], d[c * 2 + 5] = h[c * 2 - 1]);
+ var s = PNt(d);
+ o.positionBuffer(s);
+ var l = ZY(d, s);
+ o.positionFractBuffer(l);
+ }
+ if (i.range ? o.range = i.range : o.range || (o.range = o.bounds), (i.range || i.positions) && o.count) {
+ let u = o.bounds, c = u[2] - u[0], f = u[3] - u[1], h = o.range[2] - o.range[0], d = o.range[3] - o.range[1];
+ o.scale = [c / h, f / d], o.translate = [-o.range[0] / h + u[0] / h || 0, -o.range[1] / d + u[1] / d || 0], o.scaleFract = ZY(o.scale), o.translateFract = ZY(o.translate);
+ }
+ if (i.dashes) {
+ let u = 0, c;
+ if (!i.dashes || i.dashes.length < 2) u = 1, c = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);
+ else {
+ u = 0;
+ for (let d = 0; d < i.dashes.length; ++d) u += i.dashes[d];
+ c = new Uint8Array(u * Wc.dashMult);
+ let f = 0, h = 255;
+ for (let d = 0; d < 2; d++) for (let v = 0; v < i.dashes.length; ++v) {
+ for (let _ = 0, b = i.dashes[v] * Wc.dashMult * 0.5; _ < b; ++_) c[f++] = h;
+ h ^= 255;
+ }
+ }
+ o.dashLength = u, o.dashTexture({ channels: 1, data: c, width: c.length, height: 1, mag: "linear", min: "linear" }, 0, 0);
+ }
+ if (i.color) {
+ let u = o.count, c = i.color;
+ c || (c = "transparent");
+ let f = new Uint8Array(u * 4 + 4);
+ if (!Array.isArray(c) || typeof c[0] == "number") {
+ let h = wz(c, "uint8");
+ for (let d = 0; d < u + 1; d++) f.set(h, d * 4);
+ } else {
+ for (let h = 0; h < u; h++) {
+ let d = wz(c[h], "uint8");
+ f.set(d, h * 4);
+ }
+ f.set(wz(c[0], "uint8"), u * 4);
+ }
+ o.colorBuffer({ usage: "dynamic", type: "uint8", data: f });
+ }
+ }
+ }), e.length < this.passes.length) {
+ for (let i = e.length; i < this.passes.length; i++) {
+ let a = this.passes[i];
+ a && (a.colorBuffer.destroy(), a.positionBuffer.destroy(), a.dashTexture.destroy());
+ }
+ this.passes.length = e.length;
+ }
+ let n = [];
+ for (let i = 0; i < this.passes.length; i++) this.passes[i] !== null && n.push(this.passes[i]);
+ return this.passes = n, this;
+ };
+ Wc.prototype.destroy = function() {
+ return this.passes.forEach((e) => {
+ e.colorBuffer.destroy(), e.positionBuffer.destroy(), e.dashTexture.destroy();
+ }), this.passes.length = 0, this;
+ };
+ });
+ var Sqe = ye((e_r, Aqe) => {
+ var NNt = rw(), UNt = ox(), VNt = mY(), GNt = ey(), bqe = Nh(), wqe = iw(), { float32: HNt, fract32: JY } = nz();
+ Aqe.exports = jNt;
+ var Tqe = [[1, 0, 0, 1, 0, 0], [1, 0, 0, -1, 0, 0], [-1, 0, 0, -1, 0, 0], [-1, 0, 0, -1, 0, 0], [-1, 0, 0, 1, 0, 0], [1, 0, 0, 1, 0, 0], [1, 0, -1, 0, 0, 1], [1, 0, -1, 0, 0, -1], [1, 0, 1, 0, 0, -1], [1, 0, 1, 0, 0, -1], [1, 0, 1, 0, 0, 1], [1, 0, -1, 0, 0, 1], [-1, 0, -1, 0, 0, 1], [-1, 0, -1, 0, 0, -1], [-1, 0, 1, 0, 0, -1], [-1, 0, 1, 0, 0, -1], [-1, 0, 1, 0, 0, 1], [-1, 0, -1, 0, 0, 1], [0, 1, 1, 0, 0, 0], [0, 1, -1, 0, 0, 0], [0, -1, -1, 0, 0, 0], [0, -1, -1, 0, 0, 0], [0, 1, 1, 0, 0, 0], [0, -1, 1, 0, 0, 0], [0, 1, 0, -1, 1, 0], [0, 1, 0, -1, -1, 0], [0, 1, 0, 1, -1, 0], [0, 1, 0, 1, 1, 0], [0, 1, 0, -1, 1, 0], [0, 1, 0, 1, -1, 0], [0, -1, 0, -1, 1, 0], [0, -1, 0, -1, -1, 0], [0, -1, 0, 1, -1, 0], [0, -1, 0, 1, 1, 0], [0, -1, 0, -1, 1, 0], [0, -1, 0, 1, -1, 0]];
+ function jNt(e, t) {
+ if (typeof e == "function" ? (t || (t = {}), t.regl = e) : t = e, t.length && (t.positions = t), e = t.regl, !e.hasExtension("ANGLE_instanced_arrays")) throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");
+ let r = e._gl, n, i, a, o, s, l, u = { color: "black", capSize: 5, lineWidth: 1, opacity: 1, viewport: null, range: null, offset: 0, count: 0, bounds: null, positions: [], errors: [] }, c = [];
+ return o = e.buffer({ usage: "dynamic", type: "uint8", data: new Uint8Array(0) }), i = e.buffer({ usage: "dynamic", type: "float", data: new Uint8Array(0) }), a = e.buffer({ usage: "dynamic", type: "float", data: new Uint8Array(0) }), s = e.buffer({ usage: "dynamic", type: "float", data: new Uint8Array(0) }), l = e.buffer({ usage: "static", type: "float", data: Tqe }), v(t), n = e({ vert: `
+ precision highp float;
+
+ attribute vec2 position, positionFract;
+ attribute vec4 error;
+ attribute vec4 color;
+
+ attribute vec2 direction, lineOffset, capOffset;
+
+ uniform vec4 viewport;
+ uniform float lineWidth, capSize;
+ uniform vec2 scale, scaleFract, translate, translateFract;
+
+ varying vec4 fragColor;
+
+ void main() {
+ fragColor = color / 255.;
+
+ vec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;
+
+ vec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;
+
+ vec2 position = position + dxy;
+
+ vec2 pos = (position + translate) * scale
+ + (positionFract + translateFract) * scale
+ + (position + translate) * scaleFract
+ + (positionFract + translateFract) * scaleFract;
+
+ pos += pixelOffset / viewport.zw;
+
+ gl_Position = vec4(pos * 2. - 1., 0, 1);
+ }
+ `, frag: `
+ precision highp float;
+
+ varying vec4 fragColor;
+
+ uniform float opacity;
+
+ void main() {
+ gl_FragColor = fragColor;
+ gl_FragColor.a *= opacity;
+ }
+ `, uniforms: { range: e.prop("range"), lineWidth: e.prop("lineWidth"), capSize: e.prop("capSize"), opacity: e.prop("opacity"), scale: e.prop("scale"), translate: e.prop("translate"), scaleFract: e.prop("scaleFract"), translateFract: e.prop("translateFract"), viewport: (b, p) => [p.viewport.x, p.viewport.y, b.viewportWidth, b.viewportHeight] }, attributes: { color: { buffer: o, offset: (b, p) => p.offset * 4, divisor: 1 }, position: { buffer: i, offset: (b, p) => p.offset * 8, divisor: 1 }, positionFract: { buffer: a, offset: (b, p) => p.offset * 8, divisor: 1 }, error: { buffer: s, offset: (b, p) => p.offset * 16, divisor: 1 }, direction: { buffer: l, stride: 24, offset: 0 }, lineOffset: { buffer: l, stride: 24, offset: 8 }, capOffset: { buffer: l, stride: 24, offset: 16 } }, primitive: "triangles", blend: { enable: true, color: [0, 0, 0, 0], equation: { rgb: "add", alpha: "add" }, func: { srcRGB: "src alpha", dstRGB: "one minus src alpha", srcAlpha: "one minus dst alpha", dstAlpha: "one" } }, depth: { enable: false }, scissor: { enable: true, box: e.prop("viewport") }, viewport: e.prop("viewport"), stencil: false, instances: e.prop("count"), count: Tqe.length }), bqe(f, { update: v, draw: h, destroy: _, regl: e, gl: r, canvas: r.canvas, groups: c }), f;
+ function f(b) {
+ b ? v(b) : b === null && _(), h();
+ }
+ function h(b) {
+ if (typeof b == "number") return d(b);
+ b && !Array.isArray(b) && (b = [b]), e._refresh(), c.forEach((p, k) => {
+ if (p) {
+ if (b && (b[k] ? p.draw = true : p.draw = false), !p.draw) {
+ p.draw = true;
+ return;
+ }
+ d(k);
+ }
+ });
+ }
+ function d(b) {
+ typeof b == "number" && (b = c[b]), b != null && b && b.count && b.color && b.opacity && b.positions && b.positions.length > 1 && (b.scaleRatio = [b.scale[0] * b.viewport.width, b.scale[1] * b.viewport.height], n(b), b.after && b.after(b));
+ }
+ function v(b) {
+ if (!b) return;
+ b.length != null ? typeof b[0] == "number" && (b = [{ positions: b }]) : Array.isArray(b) || (b = [b]);
+ let p = 0, k = 0;
+ if (f.groups = c = b.map((L, x) => {
+ let C = c[x];
+ if (L) typeof L == "function" ? L = { after: L } : typeof L[0] == "number" && (L = { positions: L });
+ else return C;
+ return L = GNt(L, { color: "color colors fill", capSize: "capSize cap capsize cap-size", lineWidth: "lineWidth line-width width line thickness", opacity: "opacity alpha", range: "range dataBox", viewport: "viewport viewBox", errors: "errors error", positions: "positions position data points" }), C || (c[x] = C = { id: x, scale: null, translate: null, scaleFract: null, translateFract: null, draw: true }, L = bqe({}, u, L)), VNt(C, L, [{ lineWidth: (M) => +M * 0.5, capSize: (M) => +M * 0.5, opacity: parseFloat, errors: (M) => (M = wqe(M), k += M.length, M), positions: (M, g) => (M = wqe(M, "float64"), g.count = Math.floor(M.length / 2), g.bounds = NNt(M, 2), g.offset = p, p += g.count, M) }, { color: (M, g) => {
+ let P = g.count;
+ if (M || (M = "transparent"), !Array.isArray(M) || typeof M[0] == "number") {
+ let z = M;
+ M = Array(P);
+ for (let O = 0; O < P; O++) M[O] = z;
+ }
+ if (M.length < P) throw Error("Not enough colors");
+ let A = new Uint8Array(P * 4);
+ for (let z = 0; z < P; z++) {
+ let O = UNt(M[z], "uint8");
+ A.set(O, z * 4);
+ }
+ return A;
+ }, range: (M, g, P) => {
+ let A = g.bounds;
+ return M || (M = A), g.scale = [1 / (M[2] - M[0]), 1 / (M[3] - M[1])], g.translate = [-M[0], -M[1]], g.scaleFract = JY(g.scale), g.translateFract = JY(g.translate), M;
+ }, viewport: (M) => {
+ let g;
+ return Array.isArray(M) ? g = { x: M[0], y: M[1], width: M[2] - M[0], height: M[3] - M[1] } : M ? (g = { x: M.x || M.left || 0, y: M.y || M.top || 0 }, M.right ? g.width = M.right - g.x : g.width = M.w || M.width || 0, M.bottom ? g.height = M.bottom - g.y : g.height = M.h || M.height || 0) : g = { x: 0, y: 0, width: r.drawingBufferWidth, height: r.drawingBufferHeight }, g;
+ } }]), C;
+ }), p || k) {
+ let L = c.reduce((g, P, A) => g + (P ? P.count : 0), 0), x = new Float64Array(L * 2), C = new Uint8Array(L * 4), M = new Float32Array(L * 4);
+ c.forEach((g, P) => {
+ if (!g) return;
+ let { positions: A, count: z, offset: O, color: U, errors: G } = g;
+ z && (C.set(U, O * 4), M.set(G, O * 4), x.set(A, O * 2));
+ });
+ var E = HNt(x);
+ i(E);
+ var T = JY(x, E);
+ a(T), o(C), s(M);
+ }
+ }
+ function _() {
+ i.destroy(), a.destroy(), o.destroy(), s.destroy(), l.destroy();
+ }
+ }
+ });
+ var kqe = ye((t_r, Eqe) => {
+ var Mqe = /[\'\"]/;
+ Eqe.exports = function(t) {
+ return t ? (Mqe.test(t.charAt(0)) && (t = t.substr(1)), Mqe.test(t.charAt(t.length - 1)) && (t = t.substr(0, t.length - 1)), t) : "";
+ };
+ });
+ var $Y = ye((r_r, WNt) => {
+ WNt.exports = ["inherit", "initial", "unset"];
+ });
+ var QY = ye((i_r, XNt) => {
+ XNt.exports = ["caption", "icon", "menu", "message-box", "small-caption", "status-bar"];
+ });
+ var eK = ye((n_r, ZNt) => {
+ ZNt.exports = ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"];
+ });
+ var tK = ye((a_r, YNt) => {
+ YNt.exports = ["normal", "italic", "oblique"];
+ });
+ var rK = ye((o_r, KNt) => {
+ KNt.exports = ["normal", "condensed", "semi-condensed", "extra-condensed", "ultra-condensed", "expanded", "semi-expanded", "extra-expanded", "ultra-expanded"];
+ });
+ var Iqe = ye((s_r, Pqe) => {
+ function Cqe(e, t) {
+ if (typeof e != "string") return [e];
+ var r = [e];
+ typeof t == "string" || Array.isArray(t) ? t = { brackets: t } : t || (t = {});
+ var n = t.brackets ? Array.isArray(t.brackets) ? t.brackets : [t.brackets] : ["{}", "[]", "()"], i = t.escape || "___", a = !!t.flat;
+ n.forEach(function(l) {
+ var u = new RegExp(["\\", l[0], "[^\\", l[0], "\\", l[1], "]*\\", l[1]].join("")), c = [];
+ function f(h, d, v) {
+ var _ = r.push(h.slice(l[0].length, -l[1].length)) - 1;
+ return c.push(_), i + _ + i;
+ }
+ r.forEach(function(h, d) {
+ for (var v, _ = 0; h != v; ) if (v = h, h = h.replace(u, f), _++ > 1e4) throw Error("References have circular dependency. Please, check them.");
+ r[d] = h;
+ }), c = c.reverse(), r = r.map(function(h) {
+ return c.forEach(function(d) {
+ h = h.replace(new RegExp("(\\" + i + d + "\\" + i + ")", "g"), l[0] + "$1" + l[1]);
+ }), h;
+ });
+ });
+ var o = new RegExp("\\" + i + "([0-9]+)\\" + i);
+ function s(l, u, c) {
+ for (var f = [], h, d = 0; h = o.exec(l); ) {
+ if (d++ > 1e4) throw Error("Circular references in parenthesis");
+ f.push(l.slice(0, h.index)), f.push(s(u[h[1]], u)), l = l.slice(h.index + h[0].length);
+ }
+ return f.push(l), f;
+ }
+ return a ? r : s(r[0], r);
+ }
+ function Lqe(e, t) {
+ if (t && t.flat) {
+ var r = t && t.escape || "___", n = e[0], i;
+ if (!n) return "";
+ for (var a = new RegExp("\\" + r + "([0-9]+)\\" + r), o = 0; n != i; ) {
+ if (o++ > 1e4) throw Error("Circular references in " + e);
+ i = n, n = n.replace(a, s);
+ }
+ return n;
+ }
+ return e.reduce(function l(u, c) {
+ return Array.isArray(c) && (c = c.reduce(l, "")), u + c;
+ }, "");
+ function s(l, u) {
+ if (e[u] == null) throw Error("Reference " + u + "is undefined");
+ return e[u];
+ }
+ }
+ function iK(e, t) {
+ return Array.isArray(e) ? Lqe(e, t) : Cqe(e, t);
+ }
+ iK.parse = Cqe;
+ iK.stringify = Lqe;
+ Pqe.exports = iK;
+ });
+ var Fqe = ye((l_r, Dqe) => {
+ var Rqe = Iqe();
+ Dqe.exports = function(t, r, n) {
+ if (t == null) throw Error("First argument should be a string");
+ if (r == null) throw Error("Separator should be a string or a RegExp");
+ n ? (typeof n == "string" || Array.isArray(n)) && (n = { ignore: n }) : n = {}, n.escape == null && (n.escape = true), n.ignore == null ? n.ignore = ["[]", "()", "{}", "<>", '""', "''", "``", "“”", "«»"] : (typeof n.ignore == "string" && (n.ignore = [n.ignore]), n.ignore = n.ignore.map(function(f) {
+ return f.length === 1 && (f = f + f), f;
+ }));
+ var i = Rqe.parse(t, { flat: true, brackets: n.ignore }), a = i[0], o = a.split(r);
+ if (n.escape) {
+ for (var s = [], l = 0; l < o.length; l++) {
+ var u = o[l], c = o[l + 1];
+ u[u.length - 1] === "\\" && u[u.length - 2] !== "\\" ? (s.push(u + r + c), l++) : s.push(u);
+ }
+ o = s;
+ }
+ for (var l = 0; l < o.length; l++) i[0] = o[l], o[l] = Rqe.stringify(i, { flat: true });
+ return o;
+ };
+ });
+ var zqe = ye((u_r, JNt) => {
+ JNt.exports = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller"];
+ });
+ var nK = ye((c_r, Oqe) => {
+ var $Nt = zqe();
+ Oqe.exports = { isSize: function(t) {
+ return /^[\d\.]/.test(t) || t.indexOf("/") !== -1 || $Nt.indexOf(t) !== -1;
+ } };
+ });
+ var Uqe = ye((f_r, Nqe) => {
+ var QNt = kqe(), eUt = $Y(), tUt = QY(), rUt = eK(), iUt = tK(), nUt = rK(), aK = Fqe(), aUt = nK().isSize;
+ Nqe.exports = Bqe;
+ var Pk = Bqe.cache = {};
+ function Bqe(e) {
+ if (typeof e != "string") throw new Error("Font argument must be a string.");
+ if (Pk[e]) return Pk[e];
+ if (e === "") throw new Error("Cannot parse an empty string.");
+ if (tUt.indexOf(e) !== -1) return Pk[e] = { system: e };
+ for (var t = { style: "normal", variant: "normal", weight: "normal", stretch: "normal", lineHeight: "normal", size: "1rem", family: ["serif"] }, r = aK(e, /\s+/), n; n = r.shift(); ) {
+ if (eUt.indexOf(n) !== -1) return ["style", "variant", "weight", "stretch"].forEach(function(a) {
+ t[a] = n;
+ }), Pk[e] = t;
+ if (iUt.indexOf(n) !== -1) {
+ t.style = n;
+ continue;
+ }
+ if (n === "normal" || n === "small-caps") {
+ t.variant = n;
+ continue;
+ }
+ if (nUt.indexOf(n) !== -1) {
+ t.stretch = n;
+ continue;
+ }
+ if (rUt.indexOf(n) !== -1) {
+ t.weight = n;
+ continue;
+ }
+ if (aUt(n)) {
+ var i = aK(n, "/");
+ if (t.size = i[0], i[1] != null ? t.lineHeight = qqe(i[1]) : r[0] === "/" && (r.shift(), t.lineHeight = qqe(r.shift())), !r.length) throw new Error("Missing required font-family.");
+ return t.family = aK(r.join(" "), /\s*,\s*/).map(QNt), Pk[e] = t;
+ }
+ throw new Error("Unknown or unsupported font token: " + n);
+ }
+ throw new Error("Missing required font-size.");
+ }
+ function qqe(e) {
+ var t = parseFloat(e);
+ return t.toString() === e ? t : e;
+ }
+ });
+ var sK = ye((h_r, Vqe) => {
+ var oUt = ey(), sUt = nK().isSize, lUt = Rk($Y()), uUt = Rk(QY()), cUt = Rk(eK()), fUt = Rk(tK()), hUt = Rk(rK()), dUt = { normal: 1, "small-caps": 1 }, vUt = { serif: 1, "sans-serif": 1, monospace: 1, cursive: 1, fantasy: 1, "system-ui": 1 }, oK = { size: "1rem", family: "serif" };
+ Vqe.exports = function(t) {
+ if (t = oUt(t, { style: "style fontstyle fontStyle font-style slope distinction", variant: "variant font-variant fontVariant fontvariant var capitalization", weight: "weight w font-weight fontWeight fontweight", stretch: "stretch font-stretch fontStretch fontstretch width", size: "size s font-size fontSize fontsize height em emSize", lineHeight: "lh line-height lineHeight lineheight leading", family: "font family fontFamily font-family fontfamily type typeface face", system: "system reserved default global" }), t.system) return t.system && Ik(t.system, uUt), t.system;
+ if (Ik(t.style, fUt), Ik(t.variant, dUt), Ik(t.weight, cUt), Ik(t.stretch, hUt), t.size == null && (t.size = oK.size), typeof t.size == "number" && (t.size += "px"), !sUt) throw Error("Bad size value `" + t.size + "`");
+ t.family || (t.family = oK.family), Array.isArray(t.family) && (t.family.length || (t.family = [oK.family]), t.family = t.family.map(function(n) {
+ return vUt[n] ? n : '"' + n + '"';
+ }).join(", "));
+ var r = [];
+ return r.push(t.style), t.variant !== t.style && r.push(t.variant), t.weight !== t.variant && t.weight !== t.style && r.push(t.weight), t.stretch !== t.weight && t.stretch !== t.variant && t.stretch !== t.style && r.push(t.stretch), r.push(t.size + (t.lineHeight == null || t.lineHeight === "normal" || t.lineHeight + "" == "1" ? "" : "/" + t.lineHeight)), r.push(t.family), r.filter(Boolean).join(" ");
+ };
+ function Ik(e, t) {
+ if (e && !t[e] && !lUt[e]) throw Error("Unknown keyword `" + e + "`");
+ return e;
+ }
+ function Rk(e) {
+ for (var t = {}, r = 0; r < e.length; r++) t[e[r]] = 1;
+ return t;
+ }
+ });
+ var Hqe = ye((d_r, Gqe) => {
+ Gqe.exports = { parse: Uqe(), stringify: sK() };
+ });
+ var jqe = ye((lK, uK) => {
+ (function(e, t) {
+ typeof lK == "object" && typeof uK != "undefined" ? uK.exports = t() : e.createREGL = t();
+ })(lK, function() {
+ var e = function(Me, bt) {
+ for (var zt = Object.keys(bt), Rr = 0; Rr < zt.length; ++Rr) Me[zt[Rr]] = bt[zt[Rr]];
+ return Me;
+ }, t = 0, r = 0, n = 5, i = 6;
+ function a(Me, bt) {
+ this.id = t++, this.type = Me, this.data = bt;
+ }
+ function o(Me) {
+ return Me.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
+ }
+ function s(Me) {
+ if (Me.length === 0) return [];
+ var bt = Me.charAt(0), zt = Me.charAt(Me.length - 1);
+ if (Me.length > 1 && bt === zt && (bt === '"' || bt === "'")) return ['"' + o(Me.substr(1, Me.length - 2)) + '"'];
+ var Rr = /\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(Me);
+ if (Rr) return s(Me.substr(0, Rr.index)).concat(s(Rr[1])).concat(s(Me.substr(Rr.index + Rr[0].length)));
+ var jr = Me.split(".");
+ if (jr.length === 1) return ['"' + o(Me) + '"'];
+ for (var Nr = [], Gr = 0; Gr < jr.length; ++Gr) Nr = Nr.concat(s(jr[Gr]));
+ return Nr;
+ }
+ function l(Me) {
+ return "[" + s(Me).join("][") + "]";
+ }
+ function u(Me, bt) {
+ return new a(Me, l(bt + ""));
+ }
+ function c(Me) {
+ return typeof Me == "function" && !Me._reglType || Me instanceof a;
+ }
+ function f(Me, bt) {
+ if (typeof Me == "function") return new a(r, Me);
+ if (typeof Me == "number" || typeof Me == "boolean") return new a(n, Me);
+ if (Array.isArray(Me)) return new a(i, Me.map(function(zt, Rr) {
+ return f(zt);
+ }));
+ if (Me instanceof a) return Me;
+ }
+ var h = { DynamicVariable: a, define: u, isDynamic: c, unbox: f, accessor: l }, d = { next: typeof requestAnimationFrame == "function" ? function(Me) {
+ return requestAnimationFrame(Me);
+ } : function(Me) {
+ return setTimeout(Me, 16);
+ }, cancel: typeof cancelAnimationFrame == "function" ? function(Me) {
+ return cancelAnimationFrame(Me);
+ } : clearTimeout }, v = typeof performance != "undefined" && performance.now ? function() {
+ return performance.now();
+ } : function() {
+ return +/* @__PURE__ */ new Date();
+ };
+ function _() {
+ var Me = { "": 0 }, bt = [""];
+ return { id: function(zt) {
+ var Rr = Me[zt];
+ return Rr || (Rr = Me[zt] = bt.length, bt.push(zt), Rr);
+ }, str: function(zt) {
+ return bt[zt];
+ } };
+ }
+ function b(Me, bt, zt) {
+ var Rr = document.createElement("canvas");
+ e(Rr.style, { border: 0, margin: 0, padding: 0, top: 0, left: 0, width: "100%", height: "100%" }), Me.appendChild(Rr), Me === document.body && (Rr.style.position = "absolute", e(Me.style, { margin: 0, padding: 0 }));
+ function jr() {
+ var mi = window.innerWidth, Ui = window.innerHeight;
+ if (Me !== document.body) {
+ var qi = Rr.getBoundingClientRect();
+ mi = qi.right - qi.left, Ui = qi.bottom - qi.top;
+ }
+ Rr.width = zt * mi, Rr.height = zt * Ui;
+ }
+ var Nr;
+ Me !== document.body && typeof ResizeObserver == "function" ? (Nr = new ResizeObserver(function() {
+ setTimeout(jr);
+ }), Nr.observe(Me)) : window.addEventListener("resize", jr, false);
+ function Gr() {
+ Nr ? Nr.disconnect() : window.removeEventListener("resize", jr), Me.removeChild(Rr);
+ }
+ return jr(), { canvas: Rr, onDestroy: Gr };
+ }
+ function p(Me, bt) {
+ function zt(Rr) {
+ try {
+ return Me.getContext(Rr, bt);
+ } catch (jr) {
+ return null;
+ }
+ }
+ return zt("webgl") || zt("experimental-webgl") || zt("webgl-experimental");
+ }
+ function k(Me) {
+ return typeof Me.nodeName == "string" && typeof Me.appendChild == "function" && typeof Me.getBoundingClientRect == "function";
+ }
+ function E(Me) {
+ return typeof Me.drawArrays == "function" || typeof Me.drawElements == "function";
+ }
+ function T(Me) {
+ return typeof Me == "string" ? Me.split() : Me;
+ }
+ function L(Me) {
+ return typeof Me == "string" ? document.querySelector(Me) : Me;
+ }
+ function x(Me) {
+ var bt = Me || {}, zt, Rr, jr, Nr, Gr = {}, mi = [], Ui = [], qi = typeof window == "undefined" ? 1 : window.devicePixelRatio, Ei = false, Hn = {}, en = function(Mr) {
+ }, Wi = function() {
+ };
+ if (typeof bt == "string" ? zt = document.querySelector(bt) : typeof bt == "object" && (k(bt) ? zt = bt : E(bt) ? (Nr = bt, jr = Nr.canvas) : ("gl" in bt ? Nr = bt.gl : "canvas" in bt ? jr = L(bt.canvas) : "container" in bt && (Rr = L(bt.container)), "attributes" in bt && (Gr = bt.attributes), "extensions" in bt && (mi = T(bt.extensions)), "optionalExtensions" in bt && (Ui = T(bt.optionalExtensions)), "onDone" in bt && (en = bt.onDone), "profile" in bt && (Ei = !!bt.profile), "pixelRatio" in bt && (qi = +bt.pixelRatio), "cachedCode" in bt && (Hn = bt.cachedCode))), zt && (zt.nodeName.toLowerCase() === "canvas" ? jr = zt : Rr = zt), !Nr) {
+ if (!jr) {
+ var si = b(Rr || document.body, en, qi);
+ if (!si) return null;
+ jr = si.canvas, Wi = si.onDestroy;
+ }
+ Gr.premultipliedAlpha === void 0 && (Gr.premultipliedAlpha = true), Nr = p(jr, Gr);
+ }
+ return Nr ? { gl: Nr, canvas: jr, container: Rr, extensions: mi, optionalExtensions: Ui, pixelRatio: qi, profile: Ei, cachedCode: Hn, onDone: en, onDestroy: Wi } : (Wi(), en("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"), null);
+ }
+ function C(Me, bt) {
+ var zt = {};
+ function Rr(Gr) {
+ var mi = Gr.toLowerCase(), Ui;
+ try {
+ Ui = zt[mi] = Me.getExtension(mi);
+ } catch (qi) {
+ }
+ return !!Ui;
+ }
+ for (var jr = 0; jr < bt.extensions.length; ++jr) {
+ var Nr = bt.extensions[jr];
+ if (!Rr(Nr)) return bt.onDestroy(), bt.onDone('"' + Nr + '" extension is not supported by the current WebGL context, try upgrading your system or a different browser'), null;
+ }
+ return bt.optionalExtensions.forEach(Rr), { extensions: zt, restore: function() {
+ Object.keys(zt).forEach(function(Gr) {
+ if (zt[Gr] && !Rr(Gr)) throw new Error("(regl): error restoring extension " + Gr);
+ });
+ } };
+ }
+ function M(Me, bt) {
+ for (var zt = Array(Me), Rr = 0; Rr < Me; ++Rr) zt[Rr] = bt(Rr);
+ return zt;
+ }
+ var g = 5120, P = 5121, A = 5122, z = 5123, O = 5124, U = 5125, G = 5126;
+ function Z(Me) {
+ for (var bt = 16; bt <= 1 << 28; bt *= 16) if (Me <= bt) return bt;
+ return 0;
+ }
+ function j(Me) {
+ var bt, zt;
+ return bt = (Me > 65535) << 4, Me >>>= bt, zt = (Me > 255) << 3, Me >>>= zt, bt |= zt, zt = (Me > 15) << 2, Me >>>= zt, bt |= zt, zt = (Me > 3) << 1, Me >>>= zt, bt |= zt, bt | Me >> 1;
+ }
+ function N() {
+ var Me = M(8, function() {
+ return [];
+ });
+ function bt(Nr) {
+ var Gr = Z(Nr), mi = Me[j(Gr) >> 2];
+ return mi.length > 0 ? mi.pop() : new ArrayBuffer(Gr);
+ }
+ function zt(Nr) {
+ Me[j(Nr.byteLength) >> 2].push(Nr);
+ }
+ function Rr(Nr, Gr) {
+ var mi = null;
+ switch (Nr) {
+ case g:
+ mi = new Int8Array(bt(Gr), 0, Gr);
+ break;
+ case P:
+ mi = new Uint8Array(bt(Gr), 0, Gr);
+ break;
+ case A:
+ mi = new Int16Array(bt(2 * Gr), 0, Gr);
+ break;
+ case z:
+ mi = new Uint16Array(bt(2 * Gr), 0, Gr);
+ break;
+ case O:
+ mi = new Int32Array(bt(4 * Gr), 0, Gr);
+ break;
+ case U:
+ mi = new Uint32Array(bt(4 * Gr), 0, Gr);
+ break;
+ case G:
+ mi = new Float32Array(bt(4 * Gr), 0, Gr);
+ break;
+ default:
+ return null;
+ }
+ return mi.length !== Gr ? mi.subarray(0, Gr) : mi;
+ }
+ function jr(Nr) {
+ zt(Nr.buffer);
+ }
+ return { alloc: bt, free: zt, allocType: Rr, freeType: jr };
+ }
+ var H = N();
+ H.zero = N();
+ var re = 3408, oe = 3410, _e = 3411, Ce = 3412, Le = 3413, ge = 3414, ie = 3415, Se = 33901, Ee = 33902, Ae = 3379, Be = 3386, Pe = 34921, me = 36347, De = 36348, ce = 35661, je = 35660, lt = 34930, pt = 36349, Vt = 34076, ot = 34024, ut = 7936, Wt = 7937, Nt = 7938, $t = 35724, sr = 34047, Tr = 36063, fr = 34852, $e = 3553, St = 34067, Qt = 34069, Gt = 33984, _t = 6408, It = 5126, mt = 5121, er = 36160, lr = 36053, wr = 36064, Lr = 16384, ti = function(Me, bt) {
+ var zt = 1;
+ bt.ext_texture_filter_anisotropic && (zt = Me.getParameter(sr));
+ var Rr = 1, jr = 1;
+ bt.webgl_draw_buffers && (Rr = Me.getParameter(fr), jr = Me.getParameter(Tr));
+ var Nr = !!bt.oes_texture_float;
+ if (Nr) {
+ var Gr = Me.createTexture();
+ Me.bindTexture($e, Gr), Me.texImage2D($e, 0, _t, 1, 1, 0, _t, It, null);
+ var mi = Me.createFramebuffer();
+ if (Me.bindFramebuffer(er, mi), Me.framebufferTexture2D(er, wr, $e, Gr, 0), Me.bindTexture($e, null), Me.checkFramebufferStatus(er) !== lr) Nr = false;
+ else {
+ Me.viewport(0, 0, 1, 1), Me.clearColor(1, 0, 0, 1), Me.clear(Lr);
+ var Ui = H.allocType(It, 4);
+ Me.readPixels(0, 0, 1, 1, _t, It, Ui), Me.getError() ? Nr = false : (Me.deleteFramebuffer(mi), Me.deleteTexture(Gr), Nr = Ui[0] === 1), H.freeType(Ui);
+ }
+ }
+ var qi = typeof navigator != "undefined" && (/MSIE/.test(navigator.userAgent) || /Trident\//.test(navigator.appVersion) || /Edge/.test(navigator.userAgent)), Ei = true;
+ if (!qi) {
+ var Hn = Me.createTexture(), en = H.allocType(mt, 36);
+ Me.activeTexture(Gt), Me.bindTexture(St, Hn), Me.texImage2D(Qt, 0, _t, 3, 3, 0, _t, mt, en), H.freeType(en), Me.bindTexture(St, null), Me.deleteTexture(Hn), Ei = !Me.getError();
+ }
+ return { colorBits: [Me.getParameter(oe), Me.getParameter(_e), Me.getParameter(Ce), Me.getParameter(Le)], depthBits: Me.getParameter(ge), stencilBits: Me.getParameter(ie), subpixelBits: Me.getParameter(re), extensions: Object.keys(bt).filter(function(Wi) {
+ return !!bt[Wi];
+ }), maxAnisotropic: zt, maxDrawbuffers: Rr, maxColorAttachments: jr, pointSizeDims: Me.getParameter(Se), lineWidthDims: Me.getParameter(Ee), maxViewportDims: Me.getParameter(Be), maxCombinedTextureUnits: Me.getParameter(ce), maxCubeMapSize: Me.getParameter(Vt), maxRenderbufferSize: Me.getParameter(ot), maxTextureUnits: Me.getParameter(lt), maxTextureSize: Me.getParameter(Ae), maxAttributes: Me.getParameter(Pe), maxVertexUniforms: Me.getParameter(me), maxVertexTextureUnits: Me.getParameter(je), maxVaryingVectors: Me.getParameter(De), maxFragmentUniforms: Me.getParameter(pt), glsl: Me.getParameter($t), renderer: Me.getParameter(Wt), vendor: Me.getParameter(ut), version: Me.getParameter(Nt), readFloat: Nr, npotTextureCube: Ei };
+ }, Br = function(Me) {
+ return Me instanceof Uint8Array || Me instanceof Uint16Array || Me instanceof Uint32Array || Me instanceof Int8Array || Me instanceof Int16Array || Me instanceof Int32Array || Me instanceof Float32Array || Me instanceof Float64Array || Me instanceof Uint8ClampedArray;
+ };
+ function Vr(Me) {
+ return !!Me && typeof Me == "object" && Array.isArray(Me.shape) && Array.isArray(Me.stride) && typeof Me.offset == "number" && Me.shape.length === Me.stride.length && (Array.isArray(Me.data) || Br(Me.data));
+ }
+ var dt = function(Me) {
+ return Object.keys(Me).map(function(bt) {
+ return Me[bt];
+ });
+ }, Ge = { shape: xe, flatten: Ie };
+ function Je(Me, bt, zt) {
+ for (var Rr = 0; Rr < bt; ++Rr) zt[Rr] = Me[Rr];
+ }
+ function We(Me, bt, zt, Rr) {
+ for (var jr = 0, Nr = 0; Nr < bt; ++Nr) for (var Gr = Me[Nr], mi = 0; mi < zt; ++mi) Rr[jr++] = Gr[mi];
+ }
+ function tt(Me, bt, zt, Rr, jr, Nr) {
+ for (var Gr = Nr, mi = 0; mi < bt; ++mi) for (var Ui = Me[mi], qi = 0; qi < zt; ++qi) for (var Ei = Ui[qi], Hn = 0; Hn < Rr; ++Hn) jr[Gr++] = Ei[Hn];
+ }
+ function xt(Me, bt, zt, Rr, jr) {
+ for (var Nr = 1, Gr = zt + 1; Gr < bt.length; ++Gr) Nr *= bt[Gr];
+ var mi = bt[zt];
+ if (bt.length - zt === 4) {
+ var Ui = bt[zt + 1], qi = bt[zt + 2], Ei = bt[zt + 3];
+ for (Gr = 0; Gr < mi; ++Gr) tt(Me[Gr], Ui, qi, Ei, Rr, jr), jr += Nr;
+ } else for (Gr = 0; Gr < mi; ++Gr) xt(Me[Gr], bt, zt + 1, Rr, jr), jr += Nr;
+ }
+ function Ie(Me, bt, zt, Rr) {
+ var jr = 1;
+ if (bt.length) for (var Nr = 0; Nr < bt.length; ++Nr) jr *= bt[Nr];
+ else jr = 0;
+ var Gr = Rr || H.allocType(zt, jr);
+ switch (bt.length) {
+ case 0:
+ break;
+ case 1:
+ Je(Me, bt[0], Gr);
+ break;
+ case 2:
+ We(Me, bt[0], bt[1], Gr);
+ break;
+ case 3:
+ tt(Me, bt[0], bt[1], bt[2], Gr, 0);
+ break;
+ default:
+ xt(Me, bt, 0, Gr, 0);
+ }
+ return Gr;
+ }
+ function xe(Me) {
+ for (var bt = [], zt = Me; zt.length; zt = zt[0]) bt.push(zt.length);
+ return bt;
+ }
+ var ke = { "[object Int8Array]": 5120, "[object Int16Array]": 5122, "[object Int32Array]": 5124, "[object Uint8Array]": 5121, "[object Uint8ClampedArray]": 5121, "[object Uint16Array]": 5123, "[object Uint32Array]": 5125, "[object Float32Array]": 5126, "[object Float64Array]": 5121, "[object ArrayBuffer]": 5121 }, vt = 5120, ir = 5122, ar = 5124, vr = 5121, ii = 5123, pi = 5125, $r = 5126, di = 5126, ji = { int8: vt, int16: ir, int32: ar, uint8: vr, uint16: ii, uint32: pi, float: $r, float32: di }, In = 35048, wi = 35040, On = { dynamic: In, stream: wi, static: 35044 }, qn = Ge.flatten, Fn = Ge.shape, ra = 35044, la = 35040, Ut = 5121, wt = 5126, rr = [];
+ rr[5120] = 1, rr[5122] = 2, rr[5124] = 4, rr[5121] = 1, rr[5123] = 2, rr[5125] = 4, rr[5126] = 4;
+ function nr(Me) {
+ return ke[Object.prototype.toString.call(Me)] | 0;
+ }
+ function Er(Me, bt) {
+ for (var zt = 0; zt < bt.length; ++zt) Me[zt] = bt[zt];
+ }
+ function Xr(Me, bt, zt, Rr, jr, Nr, Gr) {
+ for (var mi = 0, Ui = 0; Ui < zt; ++Ui) for (var qi = 0; qi < Rr; ++qi) Me[mi++] = bt[jr * Ui + Nr * qi + Gr];
+ }
+ function ri(Me, bt, zt, Rr) {
+ var jr = 0, Nr = {};
+ function Gr(Mr) {
+ this.id = jr++, this.buffer = Me.createBuffer(), this.type = Mr, this.usage = ra, this.byteLength = 0, this.dimension = 1, this.dtype = Ut, this.persistentData = null, zt.profile && (this.stats = { size: 0 });
+ }
+ Gr.prototype.bind = function() {
+ Me.bindBuffer(this.type, this.buffer);
+ }, Gr.prototype.destroy = function() {
+ en(this);
+ };
+ var mi = [];
+ function Ui(Mr, Yr) {
+ var xi = mi.pop();
+ return xi || (xi = new Gr(Mr)), xi.bind(), Hn(xi, Yr, la, 0, 1, false), xi;
+ }
+ function qi(Mr) {
+ mi.push(Mr);
+ }
+ function Ei(Mr, Yr, xi) {
+ Mr.byteLength = Yr.byteLength, Me.bufferData(Mr.type, Yr, xi);
+ }
+ function Hn(Mr, Yr, xi, Ri, ci, an) {
+ var Zi;
+ if (Mr.usage = xi, Array.isArray(Yr)) {
+ if (Mr.dtype = Ri || wt, Yr.length > 0) {
+ var Bn;
+ if (Array.isArray(Yr[0])) {
+ Zi = Fn(Yr);
+ for (var hi = 1, li = 1; li < Zi.length; ++li) hi *= Zi[li];
+ Mr.dimension = hi, Bn = qn(Yr, Zi, Mr.dtype), Ei(Mr, Bn, xi), an ? Mr.persistentData = Bn : H.freeType(Bn);
+ } else if (typeof Yr[0] == "number") {
+ Mr.dimension = ci;
+ var mn = H.allocType(Mr.dtype, Yr.length);
+ Er(mn, Yr), Ei(Mr, mn, xi), an ? Mr.persistentData = mn : H.freeType(mn);
+ } else Br(Yr[0]) && (Mr.dimension = Yr[0].length, Mr.dtype = Ri || nr(Yr[0]) || wt, Bn = qn(Yr, [Yr.length, Yr[0].length], Mr.dtype), Ei(Mr, Bn, xi), an ? Mr.persistentData = Bn : H.freeType(Bn));
+ }
+ } else if (Br(Yr)) Mr.dtype = Ri || nr(Yr), Mr.dimension = ci, Ei(Mr, Yr, xi), an && (Mr.persistentData = new Uint8Array(new Uint8Array(Yr.buffer)));
+ else if (Vr(Yr)) {
+ Zi = Yr.shape;
+ var Ji = Yr.stride, Vi = Yr.offset, Ni = 0, pn = 0, Vn = 0, na = 0;
+ Zi.length === 1 ? (Ni = Zi[0], pn = 1, Vn = Ji[0], na = 0) : Zi.length === 2 && (Ni = Zi[0], pn = Zi[1], Vn = Ji[0], na = Ji[1]), Mr.dtype = Ri || nr(Yr.data) || wt, Mr.dimension = pn;
+ var Ki = H.allocType(Mr.dtype, Ni * pn);
+ Xr(Ki, Yr.data, Ni, pn, Vn, na, Vi), Ei(Mr, Ki, xi), an ? Mr.persistentData = Ki : H.freeType(Ki);
+ } else Yr instanceof ArrayBuffer && (Mr.dtype = Ut, Mr.dimension = ci, Ei(Mr, Yr, xi), an && (Mr.persistentData = new Uint8Array(new Uint8Array(Yr))));
+ }
+ function en(Mr) {
+ bt.bufferCount--, Rr(Mr);
+ var Yr = Mr.buffer;
+ Me.deleteBuffer(Yr), Mr.buffer = null, delete Nr[Mr.id];
+ }
+ function Wi(Mr, Yr, xi, Ri) {
+ bt.bufferCount++;
+ var ci = new Gr(Yr);
+ Nr[ci.id] = ci;
+ function an(hi) {
+ var li = ra, mn = null, Ji = 0, Vi = 0, Ni = 1;
+ return Array.isArray(hi) || Br(hi) || Vr(hi) || hi instanceof ArrayBuffer ? mn = hi : typeof hi == "number" ? Ji = hi | 0 : hi && ("data" in hi && (mn = hi.data), "usage" in hi && (li = On[hi.usage]), "type" in hi && (Vi = ji[hi.type]), "dimension" in hi && (Ni = hi.dimension | 0), "length" in hi && (Ji = hi.length | 0)), ci.bind(), mn ? Hn(ci, mn, li, Vi, Ni, Ri) : (Ji && Me.bufferData(ci.type, Ji, li), ci.dtype = Vi || Ut, ci.usage = li, ci.dimension = Ni, ci.byteLength = Ji), zt.profile && (ci.stats.size = ci.byteLength * rr[ci.dtype]), an;
+ }
+ function Zi(hi, li) {
+ Me.bufferSubData(ci.type, li, hi);
+ }
+ function Bn(hi, li) {
+ var mn = (li || 0) | 0, Ji;
+ if (ci.bind(), Br(hi) || hi instanceof ArrayBuffer) Zi(hi, mn);
+ else if (Array.isArray(hi)) {
+ if (hi.length > 0) {
+ if (typeof hi[0] == "number") {
+ var Vi = H.allocType(ci.dtype, hi.length);
+ Er(Vi, hi), Zi(Vi, mn), H.freeType(Vi);
+ } else if (Array.isArray(hi[0]) || Br(hi[0])) {
+ Ji = Fn(hi);
+ var Ni = qn(hi, Ji, ci.dtype);
+ Zi(Ni, mn), H.freeType(Ni);
+ }
+ }
+ } else if (Vr(hi)) {
+ Ji = hi.shape;
+ var pn = hi.stride, Vn = 0, na = 0, Ki = 0, kn = 0;
+ Ji.length === 1 ? (Vn = Ji[0], na = 1, Ki = pn[0], kn = 0) : Ji.length === 2 && (Vn = Ji[0], na = Ji[1], Ki = pn[0], kn = pn[1]);
+ var ta = Array.isArray(hi.data) ? ci.dtype : nr(hi.data), oa = H.allocType(ta, Vn * na);
+ Xr(oa, hi.data, Vn, na, Ki, kn, hi.offset), Zi(oa, mn), H.freeType(oa);
+ }
+ return an;
+ }
+ return xi || an(Mr), an._reglType = "buffer", an._buffer = ci, an.subdata = Bn, zt.profile && (an.stats = ci.stats), an.destroy = function() {
+ en(ci);
+ }, an;
+ }
+ function si() {
+ dt(Nr).forEach(function(Mr) {
+ Mr.buffer = Me.createBuffer(), Me.bindBuffer(Mr.type, Mr.buffer), Me.bufferData(Mr.type, Mr.persistentData || Mr.byteLength, Mr.usage);
+ });
+ }
+ return zt.profile && (bt.getTotalBufferSize = function() {
+ var Mr = 0;
+ return Object.keys(Nr).forEach(function(Yr) {
+ Mr += Nr[Yr].stats.size;
+ }), Mr;
+ }), { create: Wi, createStream: Ui, destroyStream: qi, clear: function() {
+ dt(Nr).forEach(en), mi.forEach(en);
+ }, getBuffer: function(Mr) {
+ return Mr && Mr._buffer instanceof Gr ? Mr._buffer : null;
+ }, restore: si, _initBuffer: Hn };
+ }
+ var Qr = 0, Oi = 0, $i = 1, tn = 1, fn = 4, yn = 4, Sn = { points: Qr, point: Oi, lines: $i, line: tn, triangles: fn, triangle: yn, "line loop": 2, "line strip": 3, "triangle strip": 5, "triangle fan": 6 }, Ba = 0, ua = 1, ma = 4, Wa = 5120, Fa = 5121, Xo = 5122, da = 5123, Wn = 5124, Ha = 5125, vo = 34963, jn = 35040, Mt = 35044;
+ function kr(Me, bt, zt, Rr) {
+ var jr = {}, Nr = 0, Gr = { uint8: Fa, uint16: da };
+ bt.oes_element_index_uint && (Gr.uint32 = Ha);
+ function mi(si) {
+ this.id = Nr++, jr[this.id] = this, this.buffer = si, this.primType = ma, this.vertCount = 0, this.type = 0;
+ }
+ mi.prototype.bind = function() {
+ this.buffer.bind();
+ };
+ var Ui = [];
+ function qi(si) {
+ var Mr = Ui.pop();
+ return Mr || (Mr = new mi(zt.create(null, vo, true, false)._buffer)), Hn(Mr, si, jn, -1, -1, 0, 0), Mr;
+ }
+ function Ei(si) {
+ Ui.push(si);
+ }
+ function Hn(si, Mr, Yr, xi, Ri, ci, an) {
+ si.buffer.bind();
+ var Zi;
+ if (Mr) {
+ var Bn = an;
+ !an && (!Br(Mr) || Vr(Mr) && !Br(Mr.data)) && (Bn = bt.oes_element_index_uint ? Ha : da), zt._initBuffer(si.buffer, Mr, Yr, Bn, 3);
+ } else Me.bufferData(vo, ci, Yr), si.buffer.dtype = Zi || Fa, si.buffer.usage = Yr, si.buffer.dimension = 3, si.buffer.byteLength = ci;
+ if (Zi = an, !an) {
+ switch (si.buffer.dtype) {
+ case Fa:
+ case Wa:
+ Zi = Fa;
+ break;
+ case da:
+ case Xo:
+ Zi = da;
+ break;
+ case Ha:
+ case Wn:
+ Zi = Ha;
+ break;
+ }
+ si.buffer.dtype = Zi;
+ }
+ si.type = Zi;
+ var hi = Ri;
+ hi < 0 && (hi = si.buffer.byteLength, Zi === da ? hi >>= 1 : Zi === Ha && (hi >>= 2)), si.vertCount = hi;
+ var li = xi;
+ if (xi < 0) {
+ li = ma;
+ var mn = si.buffer.dimension;
+ mn === 1 && (li = Ba), mn === 2 && (li = ua), mn === 3 && (li = ma);
+ }
+ si.primType = li;
+ }
+ function en(si) {
+ Rr.elementsCount--, delete jr[si.id], si.buffer.destroy(), si.buffer = null;
+ }
+ function Wi(si, Mr) {
+ var Yr = zt.create(null, vo, true), xi = new mi(Yr._buffer);
+ Rr.elementsCount++;
+ function Ri(ci) {
+ if (!ci) Yr(), xi.primType = ma, xi.vertCount = 0, xi.type = Fa;
+ else if (typeof ci == "number") Yr(ci), xi.primType = ma, xi.vertCount = ci | 0, xi.type = Fa;
+ else {
+ var an = null, Zi = Mt, Bn = -1, hi = -1, li = 0, mn = 0;
+ Array.isArray(ci) || Br(ci) || Vr(ci) ? an = ci : ("data" in ci && (an = ci.data), "usage" in ci && (Zi = On[ci.usage]), "primitive" in ci && (Bn = Sn[ci.primitive]), "count" in ci && (hi = ci.count | 0), "type" in ci && (mn = Gr[ci.type]), "length" in ci ? li = ci.length | 0 : (li = hi, mn === da || mn === Xo ? li *= 2 : (mn === Ha || mn === Wn) && (li *= 4))), Hn(xi, an, Zi, Bn, hi, li, mn);
+ }
+ return Ri;
+ }
+ return Ri(si), Ri._reglType = "elements", Ri._elements = xi, Ri.subdata = function(ci, an) {
+ return Yr.subdata(ci, an), Ri;
+ }, Ri.destroy = function() {
+ en(xi);
+ }, Ri;
+ }
+ return { create: Wi, createStream: qi, destroyStream: Ei, getElements: function(si) {
+ return typeof si == "function" && si._elements instanceof mi ? si._elements : null;
+ }, clear: function() {
+ dt(jr).forEach(en);
+ } };
+ }
+ var Jr = new Float32Array(1), vi = new Uint32Array(Jr.buffer), hn = 5123;
+ function An(Me) {
+ for (var bt = H.allocType(hn, Me.length), zt = 0; zt < Me.length; ++zt) if (isNaN(Me[zt])) bt[zt] = 65535;
+ else if (Me[zt] === 1 / 0) bt[zt] = 31744;
+ else if (Me[zt] === -1 / 0) bt[zt] = 64512;
+ else {
+ Jr[0] = Me[zt];
+ var Rr = vi[0], jr = Rr >>> 31 << 15, Nr = (Rr << 1 >>> 24) - 127, Gr = Rr >> 13 & 1023;
+ if (Nr < -24) bt[zt] = jr;
+ else if (Nr < -14) {
+ var mi = -14 - Nr;
+ bt[zt] = jr + (Gr + 1024 >> mi);
+ } else Nr > 15 ? bt[zt] = jr + 31744 : bt[zt] = jr + (Nr + 15 << 10) + Gr;
+ }
+ return bt;
+ }
+ function Mn(Me) {
+ return Array.isArray(Me) || Br(Me);
+ }
+ var Li = 34467, _n = 3553, ya = 34067, $n = 34069, Ma = 6408, _o = 6406, No = 6407, po = 6409, Lo = 6410, ko = 32854, Ds = 32855, Fs = 36194, ll = 32819, ul = 32820, zl = 33635, us = 34042, il = 6402, As = 34041, cl = 35904, Ks = 35906, zs = 36193, Io = 33776, ls = 33777, Yl = 33778, Su = 33779, nc = 35986, bs = 35987, Rn = 34798, _a = 35840, Vu = 35841, Ol = 35842, xo = 35843, Kl = 36196, Ns = 5121, Hl = 5123, ac = 5125, aa = 5126, Oo = 10242, qo = 10243, ql = 10497, Pc = 33071, Do = 33648, rf = 10240, Vf = 10241, pl = 9728, Zc = 9729, Jl = 9984, Os = 9985, yu = 9986, oc = 9987, Cf = 33170, sc = 4352, jh = 4353, Lf = 4354, cs = 34046, nf = 3317, Gf = 37440, $l = 37441, fl = 37443, lc = 37444, Fu = 33984, Es = [Jl, yu, Os, oc], Hs = [0, po, Lo, No, Ma], Go = {};
+ Go[po] = Go[_o] = Go[il] = 1, Go[As] = Go[Lo] = 2, Go[No] = Go[cl] = 3, Go[Ma] = Go[Ks] = 4;
+ function ps(Me) {
+ return "[object " + Me + "]";
+ }
+ var uc = ps("HTMLCanvasElement"), xl = ps("OffscreenCanvas"), Gu = ps("CanvasRenderingContext2D"), qs = ps("ImageBitmap"), od = ps("HTMLImageElement"), Po = ps("HTMLVideoElement"), sd = Object.keys(ke).concat([uc, xl, Gu, qs, od, Po]), Ko = [];
+ Ko[Ns] = 1, Ko[aa] = 4, Ko[zs] = 2, Ko[Hl] = 2, Ko[ac] = 4;
+ var Pa = [];
+ Pa[ko] = 2, Pa[Ds] = 2, Pa[Fs] = 2, Pa[As] = 4, Pa[Io] = 0.5, Pa[ls] = 0.5, Pa[Yl] = 1, Pa[Su] = 1, Pa[nc] = 0.5, Pa[bs] = 1, Pa[Rn] = 1, Pa[_a] = 0.5, Pa[Vu] = 0.25, Pa[Ol] = 0.5, Pa[xo] = 0.25, Pa[Kl] = 0.5;
+ function af(Me) {
+ return Array.isArray(Me) && (Me.length === 0 || typeof Me[0] == "number");
+ }
+ function Hu(Me) {
+ if (!Array.isArray(Me)) return false;
+ var bt = Me.length;
+ return !(bt === 0 || !Mn(Me[0]));
+ }
+ function bl(Me) {
+ return Object.prototype.toString.call(Me);
+ }
+ function Hf(Me) {
+ return bl(Me) === uc;
+ }
+ function Ic(Me) {
+ return bl(Me) === xl;
+ }
+ function yf(Me) {
+ return bl(Me) === Gu;
+ }
+ function Bl(Me) {
+ return bl(Me) === qs;
+ }
+ function Ah(Me) {
+ return bl(Me) === od;
+ }
+ function Qf(Me) {
+ return bl(Me) === Po;
+ }
+ function _f(Me) {
+ if (!Me) return false;
+ var bt = bl(Me);
+ return sd.indexOf(bt) >= 0 ? true : af(Me) || Hu(Me) || Vr(Me);
+ }
+ function Yc(Me) {
+ return ke[Object.prototype.toString.call(Me)] | 0;
+ }
+ function eh(Me, bt) {
+ var zt = bt.length;
+ switch (Me.type) {
+ case Ns:
+ case Hl:
+ case ac:
+ case aa:
+ var Rr = H.allocType(Me.type, zt);
+ Rr.set(bt), Me.data = Rr;
+ break;
+ case zs:
+ Me.data = An(bt);
+ break;
+ }
+ }
+ function th(Me, bt) {
+ return H.allocType(Me.type === zs ? aa : Me.type, bt);
+ }
+ function ju(Me, bt) {
+ Me.type === zs ? (Me.data = An(bt), H.freeType(bt)) : Me.data = bt;
+ }
+ function jf(Me, bt, zt, Rr, jr, Nr) {
+ for (var Gr = Me.width, mi = Me.height, Ui = Me.channels, qi = Gr * mi * Ui, Ei = th(Me, qi), Hn = 0, en = 0; en < mi; ++en) for (var Wi = 0; Wi < Gr; ++Wi) for (var si = 0; si < Ui; ++si) Ei[Hn++] = bt[zt * Wi + Rr * en + jr * si + Nr];
+ ju(Me, Ei);
+ }
+ function cc(Me, bt, zt, Rr, jr, Nr) {
+ var Gr;
+ if (typeof Pa[Me] != "undefined" ? Gr = Pa[Me] : Gr = Go[Me] * Ko[bt], Nr && (Gr *= 6), jr) {
+ for (var mi = 0, Ui = zt; Ui >= 1; ) mi += Gr * Ui * Ui, Ui /= 2;
+ return mi;
+ } else return Gr * zt * Rr;
+ }
+ function of(Me, bt, zt, Rr, jr, Nr, Gr) {
+ var mi = { "don't care": sc, "dont care": sc, nice: Lf, fast: jh }, Ui = { repeat: ql, clamp: Pc, mirror: Do }, qi = { nearest: pl, linear: Zc }, Ei = e({ mipmap: oc, "nearest mipmap nearest": Jl, "linear mipmap nearest": Os, "nearest mipmap linear": yu, "linear mipmap linear": oc }, qi), Hn = { none: 0, browser: lc }, en = { uint8: Ns, rgba4: ll, rgb565: zl, "rgb5 a1": ul }, Wi = { alpha: _o, luminance: po, "luminance alpha": Lo, rgb: No, rgba: Ma, rgba4: ko, "rgb5 a1": Ds, rgb565: Fs }, si = {};
+ bt.ext_srgb && (Wi.srgb = cl, Wi.srgba = Ks), bt.oes_texture_float && (en.float32 = en.float = aa), bt.oes_texture_half_float && (en.float16 = en["half float"] = zs), bt.webgl_depth_texture && (e(Wi, { depth: il, "depth stencil": As }), e(en, { uint16: Hl, uint32: ac, "depth stencil": us })), bt.webgl_compressed_texture_s3tc && e(si, { "rgb s3tc dxt1": Io, "rgba s3tc dxt1": ls, "rgba s3tc dxt3": Yl, "rgba s3tc dxt5": Su }), bt.webgl_compressed_texture_atc && e(si, { "rgb atc": nc, "rgba atc explicit alpha": bs, "rgba atc interpolated alpha": Rn }), bt.webgl_compressed_texture_pvrtc && e(si, { "rgb pvrtc 4bppv1": _a, "rgb pvrtc 2bppv1": Vu, "rgba pvrtc 4bppv1": Ol, "rgba pvrtc 2bppv1": xo }), bt.webgl_compressed_texture_etc1 && (si["rgb etc1"] = Kl);
+ var Mr = Array.prototype.slice.call(Me.getParameter(Li));
+ Object.keys(si).forEach(function(ne) {
+ var we = si[ne];
+ Mr.indexOf(we) >= 0 && (Wi[ne] = we);
+ });
+ var Yr = Object.keys(Wi);
+ zt.textureFormats = Yr;
+ var xi = [];
+ Object.keys(Wi).forEach(function(ne) {
+ var we = Wi[ne];
+ xi[we] = ne;
+ });
+ var Ri = [];
+ Object.keys(en).forEach(function(ne) {
+ var we = en[ne];
+ Ri[we] = ne;
+ });
+ var ci = [];
+ Object.keys(qi).forEach(function(ne) {
+ var we = qi[ne];
+ ci[we] = ne;
+ });
+ var an = [];
+ Object.keys(Ei).forEach(function(ne) {
+ var we = Ei[ne];
+ an[we] = ne;
+ });
+ var Zi = [];
+ Object.keys(Ui).forEach(function(ne) {
+ var we = Ui[ne];
+ Zi[we] = ne;
+ });
+ var Bn = Yr.reduce(function(ne, we) {
+ var Ue = Wi[we];
+ return Ue === po || Ue === _o || Ue === po || Ue === Lo || Ue === il || Ue === As || bt.ext_srgb && (Ue === cl || Ue === Ks) ? ne[Ue] = Ue : Ue === Ds || we.indexOf("rgba") >= 0 ? ne[Ue] = Ma : ne[Ue] = No, ne;
+ }, {});
+ function hi() {
+ this.internalformat = Ma, this.format = Ma, this.type = Ns, this.compressed = false, this.premultiplyAlpha = false, this.flipY = false, this.unpackAlignment = 1, this.colorSpace = lc, this.width = 0, this.height = 0, this.channels = 0;
+ }
+ function li(ne, we) {
+ ne.internalformat = we.internalformat, ne.format = we.format, ne.type = we.type, ne.compressed = we.compressed, ne.premultiplyAlpha = we.premultiplyAlpha, ne.flipY = we.flipY, ne.unpackAlignment = we.unpackAlignment, ne.colorSpace = we.colorSpace, ne.width = we.width, ne.height = we.height, ne.channels = we.channels;
+ }
+ function mn(ne, we) {
+ if (!(typeof we != "object" || !we)) {
+ if ("premultiplyAlpha" in we && (ne.premultiplyAlpha = we.premultiplyAlpha), "flipY" in we && (ne.flipY = we.flipY), "alignment" in we && (ne.unpackAlignment = we.alignment), "colorSpace" in we && (ne.colorSpace = Hn[we.colorSpace]), "type" in we) {
+ var Ue = we.type;
+ ne.type = en[Ue];
+ }
+ var ft = ne.width, Zt = ne.height, hr = ne.channels, qt = false;
+ "shape" in we ? (ft = we.shape[0], Zt = we.shape[1], we.shape.length === 3 && (hr = we.shape[2], qt = true)) : ("radius" in we && (ft = Zt = we.radius), "width" in we && (ft = we.width), "height" in we && (Zt = we.height), "channels" in we && (hr = we.channels, qt = true)), ne.width = ft | 0, ne.height = Zt | 0, ne.channels = hr | 0;
+ var Ve = false;
+ if ("format" in we) {
+ var Qe = we.format, at = ne.internalformat = Wi[Qe];
+ ne.format = Bn[at], Qe in en && ("type" in we || (ne.type = en[Qe])), Qe in si && (ne.compressed = true), Ve = true;
+ }
+ !qt && Ve ? ne.channels = Go[ne.format] : qt && !Ve && ne.channels !== Hs[ne.format] && (ne.format = ne.internalformat = Hs[ne.channels]);
+ }
+ }
+ function Ji(ne) {
+ Me.pixelStorei(Gf, ne.flipY), Me.pixelStorei($l, ne.premultiplyAlpha), Me.pixelStorei(fl, ne.colorSpace), Me.pixelStorei(nf, ne.unpackAlignment);
+ }
+ function Vi() {
+ hi.call(this), this.xOffset = 0, this.yOffset = 0, this.data = null, this.needsFree = false, this.element = null, this.needsCopy = false;
+ }
+ function Ni(ne, we) {
+ var Ue = null;
+ if (_f(we) ? Ue = we : we && (mn(ne, we), "x" in we && (ne.xOffset = we.x | 0), "y" in we && (ne.yOffset = we.y | 0), _f(we.data) && (Ue = we.data)), we.copy) {
+ var ft = jr.viewportWidth, Zt = jr.viewportHeight;
+ ne.width = ne.width || ft - ne.xOffset, ne.height = ne.height || Zt - ne.yOffset, ne.needsCopy = true;
+ } else if (!Ue) ne.width = ne.width || 1, ne.height = ne.height || 1, ne.channels = ne.channels || 4;
+ else if (Br(Ue)) ne.channels = ne.channels || 4, ne.data = Ue, !("type" in we) && ne.type === Ns && (ne.type = Yc(Ue));
+ else if (af(Ue)) ne.channels = ne.channels || 4, eh(ne, Ue), ne.alignment = 1, ne.needsFree = true;
+ else if (Vr(Ue)) {
+ var hr = Ue.data;
+ !Array.isArray(hr) && ne.type === Ns && (ne.type = Yc(hr));
+ var qt = Ue.shape, Ve = Ue.stride, Qe, at, Ct, Ot, Rt, Bt;
+ qt.length === 3 ? (Ct = qt[2], Bt = Ve[2]) : (Ct = 1, Bt = 1), Qe = qt[0], at = qt[1], Ot = Ve[0], Rt = Ve[1], ne.alignment = 1, ne.width = Qe, ne.height = at, ne.channels = Ct, ne.format = ne.internalformat = Hs[Ct], ne.needsFree = true, jf(ne, hr, Ot, Rt, Bt, Ue.offset);
+ } else if (Hf(Ue) || Ic(Ue) || yf(Ue)) Hf(Ue) || Ic(Ue) ? ne.element = Ue : ne.element = Ue.canvas, ne.width = ne.element.width, ne.height = ne.element.height, ne.channels = 4;
+ else if (Bl(Ue)) ne.element = Ue, ne.width = Ue.width, ne.height = Ue.height, ne.channels = 4;
+ else if (Ah(Ue)) ne.element = Ue, ne.width = Ue.naturalWidth, ne.height = Ue.naturalHeight, ne.channels = 4;
+ else if (Qf(Ue)) ne.element = Ue, ne.width = Ue.videoWidth, ne.height = Ue.videoHeight, ne.channels = 4;
+ else if (Hu(Ue)) {
+ var Dt = ne.width || Ue[0].length, yt = ne.height || Ue.length, Pt = ne.channels;
+ Mn(Ue[0][0]) ? Pt = Pt || Ue[0][0].length : Pt = Pt || 1;
+ for (var ht = Ge.shape(Ue), ur = 1, br = 0; br < ht.length; ++br) ur *= ht[br];
+ var Ur = th(ne, ur);
+ Ge.flatten(Ue, ht, "", Ur), ju(ne, Ur), ne.alignment = 1, ne.width = Dt, ne.height = yt, ne.channels = Pt, ne.format = ne.internalformat = Hs[Pt], ne.needsFree = true;
+ }
+ ne.type === aa || ne.type;
+ }
+ function pn(ne, we, Ue) {
+ var ft = ne.element, Zt = ne.data, hr = ne.internalformat, qt = ne.format, Ve = ne.type, Qe = ne.width, at = ne.height;
+ Ji(ne), ft ? Me.texImage2D(we, Ue, qt, qt, Ve, ft) : ne.compressed ? Me.compressedTexImage2D(we, Ue, hr, Qe, at, 0, Zt) : ne.needsCopy ? (Rr(), Me.copyTexImage2D(we, Ue, qt, ne.xOffset, ne.yOffset, Qe, at, 0)) : Me.texImage2D(we, Ue, qt, Qe, at, 0, qt, Ve, Zt || null);
+ }
+ function Vn(ne, we, Ue, ft, Zt) {
+ var hr = ne.element, qt = ne.data, Ve = ne.internalformat, Qe = ne.format, at = ne.type, Ct = ne.width, Ot = ne.height;
+ Ji(ne), hr ? Me.texSubImage2D(we, Zt, Ue, ft, Qe, at, hr) : ne.compressed ? Me.compressedTexSubImage2D(we, Zt, Ue, ft, Ve, Ct, Ot, qt) : ne.needsCopy ? (Rr(), Me.copyTexSubImage2D(we, Zt, Ue, ft, ne.xOffset, ne.yOffset, Ct, Ot)) : Me.texSubImage2D(we, Zt, Ue, ft, Ct, Ot, Qe, at, qt);
+ }
+ var na = [];
+ function Ki() {
+ return na.pop() || new Vi();
+ }
+ function kn(ne) {
+ ne.needsFree && H.freeType(ne.data), Vi.call(ne), na.push(ne);
+ }
+ function ta() {
+ hi.call(this), this.genMipmaps = false, this.mipmapHint = sc, this.mipmask = 0, this.images = Array(16);
+ }
+ function oa(ne, we, Ue) {
+ var ft = ne.images[0] = Ki();
+ ne.mipmask = 1, ft.width = ne.width = we, ft.height = ne.height = Ue, ft.channels = ne.channels = 4;
+ }
+ function ba(ne, we) {
+ var Ue = null;
+ if (_f(we)) Ue = ne.images[0] = Ki(), li(Ue, ne), Ni(Ue, we), ne.mipmask = 1;
+ else if (mn(ne, we), Array.isArray(we.mipmap)) for (var ft = we.mipmap, Zt = 0; Zt < ft.length; ++Zt) Ue = ne.images[Zt] = Ki(), li(Ue, ne), Ue.width >>= Zt, Ue.height >>= Zt, Ni(Ue, ft[Zt]), ne.mipmask |= 1 << Zt;
+ else Ue = ne.images[0] = Ki(), li(Ue, ne), Ni(Ue, we), ne.mipmask = 1;
+ li(ne, ne.images[0]), ne.compressed && (ne.internalformat === Io || ne.internalformat === ls || ne.internalformat === Yl || ne.internalformat);
+ }
+ function is(ne, we) {
+ for (var Ue = ne.images, ft = 0; ft < Ue.length; ++ft) {
+ if (!Ue[ft]) return;
+ pn(Ue[ft], we, ft);
+ }
+ }
+ var Zs = [];
+ function Va() {
+ var ne = Zs.pop() || new ta();
+ hi.call(ne), ne.mipmask = 0;
+ for (var we = 0; we < 16; ++we) ne.images[we] = null;
+ return ne;
+ }
+ function Ml(ne) {
+ for (var we = ne.images, Ue = 0; Ue < we.length; ++Ue) we[Ue] && kn(we[Ue]), we[Ue] = null;
+ Zs.push(ne);
+ }
+ function zo() {
+ this.minFilter = pl, this.magFilter = pl, this.wrapS = Pc, this.wrapT = Pc, this.anisotropic = 1, this.genMipmaps = false, this.mipmapHint = sc;
+ }
+ function Qs(ne, we) {
+ if ("min" in we) {
+ var Ue = we.min;
+ ne.minFilter = Ei[Ue], Es.indexOf(ne.minFilter) >= 0 && !("faces" in we) && (ne.genMipmaps = true);
+ }
+ if ("mag" in we) {
+ var ft = we.mag;
+ ne.magFilter = qi[ft];
+ }
+ var Zt = ne.wrapS, hr = ne.wrapT;
+ if ("wrap" in we) {
+ var qt = we.wrap;
+ typeof qt == "string" ? Zt = hr = Ui[qt] : Array.isArray(qt) && (Zt = Ui[qt[0]], hr = Ui[qt[1]]);
+ } else {
+ if ("wrapS" in we) {
+ var Ve = we.wrapS;
+ Zt = Ui[Ve];
+ }
+ if ("wrapT" in we) {
+ var Qe = we.wrapT;
+ hr = Ui[Qe];
+ }
+ }
+ if (ne.wrapS = Zt, ne.wrapT = hr, "anisotropic" in we) {
+ we.anisotropic;
+ ne.anisotropic = we.anisotropic;
+ }
+ if ("mipmap" in we) {
+ var Ct = false;
+ switch (typeof we.mipmap) {
+ case "string":
+ ne.mipmapHint = mi[we.mipmap], ne.genMipmaps = true, Ct = true;
+ break;
+ case "boolean":
+ Ct = ne.genMipmaps = we.mipmap;
+ break;
+ case "object":
+ ne.genMipmaps = false, Ct = true;
+ break;
+ }
+ Ct && !("min" in we) && (ne.minFilter = Jl);
+ }
+ }
+ function al(ne, we) {
+ Me.texParameteri(we, Vf, ne.minFilter), Me.texParameteri(we, rf, ne.magFilter), Me.texParameteri(we, Oo, ne.wrapS), Me.texParameteri(we, qo, ne.wrapT), bt.ext_texture_filter_anisotropic && Me.texParameteri(we, cs, ne.anisotropic), ne.genMipmaps && (Me.hint(Cf, ne.mipmapHint), Me.generateMipmap(we));
+ }
+ var Vl = 0, ss = {}, Vs = zt.maxTextureUnits, Ys = Array(Vs).map(function() {
+ return null;
+ });
+ function wa(ne) {
+ hi.call(this), this.mipmask = 0, this.internalformat = Ma, this.id = Vl++, this.refCount = 1, this.target = ne, this.texture = Me.createTexture(), this.unit = -1, this.bindCount = 0, this.texInfo = new zo(), Gr.profile && (this.stats = { size: 0 });
+ }
+ function ol(ne) {
+ Me.activeTexture(Fu), Me.bindTexture(ne.target, ne.texture);
+ }
+ function io() {
+ var ne = Ys[0];
+ ne ? Me.bindTexture(ne.target, ne.texture) : Me.bindTexture(_n, null);
+ }
+ function Y(ne) {
+ var we = ne.texture, Ue = ne.unit, ft = ne.target;
+ Ue >= 0 && (Me.activeTexture(Fu + Ue), Me.bindTexture(ft, null), Ys[Ue] = null), Me.deleteTexture(we), ne.texture = null, ne.params = null, ne.pixels = null, ne.refCount = 0, delete ss[ne.id], Nr.textureCount--;
+ }
+ e(wa.prototype, { bind: function() {
+ var ne = this;
+ ne.bindCount += 1;
+ var we = ne.unit;
+ if (we < 0) {
+ for (var Ue = 0; Ue < Vs; ++Ue) {
+ var ft = Ys[Ue];
+ if (ft) {
+ if (ft.bindCount > 0) continue;
+ ft.unit = -1;
+ }
+ Ys[Ue] = ne, we = Ue;
+ break;
+ }
+ Gr.profile && Nr.maxTextureUnits < we + 1 && (Nr.maxTextureUnits = we + 1), ne.unit = we, Me.activeTexture(Fu + we), Me.bindTexture(ne.target, ne.texture);
+ }
+ return we;
+ }, unbind: function() {
+ this.bindCount -= 1;
+ }, decRef: function() {
+ --this.refCount <= 0 && Y(this);
+ } });
+ function D(ne, we) {
+ var Ue = new wa(_n);
+ ss[Ue.id] = Ue, Nr.textureCount++;
+ function ft(qt, Ve) {
+ var Qe = Ue.texInfo;
+ zo.call(Qe);
+ var at = Va();
+ return typeof qt == "number" ? typeof Ve == "number" ? oa(at, qt | 0, Ve | 0) : oa(at, qt | 0, qt | 0) : qt ? (Qs(Qe, qt), ba(at, qt)) : oa(at, 1, 1), Qe.genMipmaps && (at.mipmask = (at.width << 1) - 1), Ue.mipmask = at.mipmask, li(Ue, at), Ue.internalformat = at.internalformat, ft.width = at.width, ft.height = at.height, ol(Ue), is(at, _n), al(Qe, _n), io(), Ml(at), Gr.profile && (Ue.stats.size = cc(Ue.internalformat, Ue.type, at.width, at.height, Qe.genMipmaps, false)), ft.format = xi[Ue.internalformat], ft.type = Ri[Ue.type], ft.mag = ci[Qe.magFilter], ft.min = an[Qe.minFilter], ft.wrapS = Zi[Qe.wrapS], ft.wrapT = Zi[Qe.wrapT], ft;
+ }
+ function Zt(qt, Ve, Qe, at) {
+ var Ct = Ve | 0, Ot = Qe | 0, Rt = at | 0, Bt = Ki();
+ return li(Bt, Ue), Bt.width = 0, Bt.height = 0, Ni(Bt, qt), Bt.width = Bt.width || (Ue.width >> Rt) - Ct, Bt.height = Bt.height || (Ue.height >> Rt) - Ot, ol(Ue), Vn(Bt, _n, Ct, Ot, Rt), io(), kn(Bt), ft;
+ }
+ function hr(qt, Ve) {
+ var Qe = qt | 0, at = Ve | 0 || Qe;
+ if (Qe === Ue.width && at === Ue.height) return ft;
+ ft.width = Ue.width = Qe, ft.height = Ue.height = at, ol(Ue);
+ for (var Ct = 0; Ue.mipmask >> Ct; ++Ct) {
+ var Ot = Qe >> Ct, Rt = at >> Ct;
+ if (!Ot || !Rt) break;
+ Me.texImage2D(_n, Ct, Ue.format, Ot, Rt, 0, Ue.format, Ue.type, null);
+ }
+ return io(), Gr.profile && (Ue.stats.size = cc(Ue.internalformat, Ue.type, Qe, at, false, false)), ft;
+ }
+ return ft(ne, we), ft.subimage = Zt, ft.resize = hr, ft._reglType = "texture2d", ft._texture = Ue, Gr.profile && (ft.stats = Ue.stats), ft.destroy = function() {
+ Ue.decRef();
+ }, ft;
+ }
+ function J(ne, we, Ue, ft, Zt, hr) {
+ var qt = new wa(ya);
+ ss[qt.id] = qt, Nr.cubeCount++;
+ var Ve = new Array(6);
+ function Qe(Ot, Rt, Bt, Dt, yt, Pt) {
+ var ht, ur = qt.texInfo;
+ for (zo.call(ur), ht = 0; ht < 6; ++ht) Ve[ht] = Va();
+ if (typeof Ot == "number" || !Ot) {
+ var br = Ot | 0 || 1;
+ for (ht = 0; ht < 6; ++ht) oa(Ve[ht], br, br);
+ } else if (typeof Ot == "object") if (Rt) ba(Ve[0], Ot), ba(Ve[1], Rt), ba(Ve[2], Bt), ba(Ve[3], Dt), ba(Ve[4], yt), ba(Ve[5], Pt);
+ else if (Qs(ur, Ot), mn(qt, Ot), "faces" in Ot) {
+ var Ur = Ot.faces;
+ for (ht = 0; ht < 6; ++ht) li(Ve[ht], qt), ba(Ve[ht], Ur[ht]);
+ } else for (ht = 0; ht < 6; ++ht) ba(Ve[ht], Ot);
+ for (li(qt, Ve[0]), ur.genMipmaps ? qt.mipmask = (Ve[0].width << 1) - 1 : qt.mipmask = Ve[0].mipmask, qt.internalformat = Ve[0].internalformat, Qe.width = Ve[0].width, Qe.height = Ve[0].height, ol(qt), ht = 0; ht < 6; ++ht) is(Ve[ht], $n + ht);
+ for (al(ur, ya), io(), Gr.profile && (qt.stats.size = cc(qt.internalformat, qt.type, Qe.width, Qe.height, ur.genMipmaps, true)), Qe.format = xi[qt.internalformat], Qe.type = Ri[qt.type], Qe.mag = ci[ur.magFilter], Qe.min = an[ur.minFilter], Qe.wrapS = Zi[ur.wrapS], Qe.wrapT = Zi[ur.wrapT], ht = 0; ht < 6; ++ht) Ml(Ve[ht]);
+ return Qe;
+ }
+ function at(Ot, Rt, Bt, Dt, yt) {
+ var Pt = Bt | 0, ht = Dt | 0, ur = yt | 0, br = Ki();
+ return li(br, qt), br.width = 0, br.height = 0, Ni(br, Rt), br.width = br.width || (qt.width >> ur) - Pt, br.height = br.height || (qt.height >> ur) - ht, ol(qt), Vn(br, $n + Ot, Pt, ht, ur), io(), kn(br), Qe;
+ }
+ function Ct(Ot) {
+ var Rt = Ot | 0;
+ if (Rt !== qt.width) {
+ Qe.width = qt.width = Rt, Qe.height = qt.height = Rt, ol(qt);
+ for (var Bt = 0; Bt < 6; ++Bt) for (var Dt = 0; qt.mipmask >> Dt; ++Dt) Me.texImage2D($n + Bt, Dt, qt.format, Rt >> Dt, Rt >> Dt, 0, qt.format, qt.type, null);
+ return io(), Gr.profile && (qt.stats.size = cc(qt.internalformat, qt.type, Qe.width, Qe.height, false, true)), Qe;
+ }
+ }
+ return Qe(ne, we, Ue, ft, Zt, hr), Qe.subimage = at, Qe.resize = Ct, Qe._reglType = "textureCube", Qe._texture = qt, Gr.profile && (Qe.stats = qt.stats), Qe.destroy = function() {
+ qt.decRef();
+ }, Qe;
+ }
+ function q() {
+ for (var ne = 0; ne < Vs; ++ne) Me.activeTexture(Fu + ne), Me.bindTexture(_n, null), Ys[ne] = null;
+ dt(ss).forEach(Y), Nr.cubeCount = 0, Nr.textureCount = 0;
+ }
+ Gr.profile && (Nr.getTotalTextureSize = function() {
+ var ne = 0;
+ return Object.keys(ss).forEach(function(we) {
+ ne += ss[we].stats.size;
+ }), ne;
+ });
+ function K() {
+ for (var ne = 0; ne < Vs; ++ne) {
+ var we = Ys[ne];
+ we && (we.bindCount = 0, we.unit = -1, Ys[ne] = null);
+ }
+ dt(ss).forEach(function(Ue) {
+ Ue.texture = Me.createTexture(), Me.bindTexture(Ue.target, Ue.texture);
+ for (var ft = 0; ft < 32; ++ft) if ((Ue.mipmask & 1 << ft) !== 0) if (Ue.target === _n) Me.texImage2D(_n, ft, Ue.internalformat, Ue.width >> ft, Ue.height >> ft, 0, Ue.internalformat, Ue.type, null);
+ else for (var Zt = 0; Zt < 6; ++Zt) Me.texImage2D($n + Zt, ft, Ue.internalformat, Ue.width >> ft, Ue.height >> ft, 0, Ue.internalformat, Ue.type, null);
+ al(Ue.texInfo, Ue.target);
+ });
+ }
+ function de() {
+ for (var ne = 0; ne < Vs; ++ne) {
+ var we = Ys[ne];
+ we && (we.bindCount = 0, we.unit = -1, Ys[ne] = null), Me.activeTexture(Fu + ne), Me.bindTexture(_n, null), Me.bindTexture(ya, null);
+ }
+ }
+ return { create2D: D, createCube: J, clear: q, getTexture: function(ne) {
+ return null;
+ }, restore: K, refresh: de };
+ }
+ var Nl = 36161, Kc = 32854, Rc = 32855, gs = 36194, Wf = 33189, Wh = 36168, rh = 34041, sf = 35907, Sh = 34836, Mu = 34842, ih = 34843, js = [];
+ js[Kc] = 2, js[Rc] = 2, js[gs] = 2, js[Wf] = 2, js[Wh] = 1, js[rh] = 4, js[sf] = 4, js[Sh] = 16, js[Mu] = 8, js[ih] = 6;
+ function Eu(Me, bt, zt) {
+ return js[Me] * bt * zt;
+ }
+ var Dc = function(Me, bt, zt, Rr, jr) {
+ var Nr = { rgba4: Kc, rgb565: gs, "rgb5 a1": Rc, depth: Wf, stencil: Wh, "depth stencil": rh };
+ bt.ext_srgb && (Nr.srgba = sf), bt.ext_color_buffer_half_float && (Nr.rgba16f = Mu, Nr.rgb16f = ih), bt.webgl_color_buffer_float && (Nr.rgba32f = Sh);
+ var Gr = [];
+ Object.keys(Nr).forEach(function(Wi) {
+ var si = Nr[Wi];
+ Gr[si] = Wi;
+ });
+ var mi = 0, Ui = {};
+ function qi(Wi) {
+ this.id = mi++, this.refCount = 1, this.renderbuffer = Wi, this.format = Kc, this.width = 0, this.height = 0, jr.profile && (this.stats = { size: 0 });
+ }
+ qi.prototype.decRef = function() {
+ --this.refCount <= 0 && Ei(this);
+ };
+ function Ei(Wi) {
+ var si = Wi.renderbuffer;
+ Me.bindRenderbuffer(Nl, null), Me.deleteRenderbuffer(si), Wi.renderbuffer = null, Wi.refCount = 0, delete Ui[Wi.id], Rr.renderbufferCount--;
+ }
+ function Hn(Wi, si) {
+ var Mr = new qi(Me.createRenderbuffer());
+ Ui[Mr.id] = Mr, Rr.renderbufferCount++;
+ function Yr(Ri, ci) {
+ var an = 0, Zi = 0, Bn = Kc;
+ if (typeof Ri == "object" && Ri) {
+ var hi = Ri;
+ if ("shape" in hi) {
+ var li = hi.shape;
+ an = li[0] | 0, Zi = li[1] | 0;
+ } else "radius" in hi && (an = Zi = hi.radius | 0), "width" in hi && (an = hi.width | 0), "height" in hi && (Zi = hi.height | 0);
+ "format" in hi && (Bn = Nr[hi.format]);
+ } else typeof Ri == "number" ? (an = Ri | 0, typeof ci == "number" ? Zi = ci | 0 : Zi = an) : Ri || (an = Zi = 1);
+ if (!(an === Mr.width && Zi === Mr.height && Bn === Mr.format)) return Yr.width = Mr.width = an, Yr.height = Mr.height = Zi, Mr.format = Bn, Me.bindRenderbuffer(Nl, Mr.renderbuffer), Me.renderbufferStorage(Nl, Bn, an, Zi), jr.profile && (Mr.stats.size = Eu(Mr.format, Mr.width, Mr.height)), Yr.format = Gr[Mr.format], Yr;
+ }
+ function xi(Ri, ci) {
+ var an = Ri | 0, Zi = ci | 0 || an;
+ return an === Mr.width && Zi === Mr.height || (Yr.width = Mr.width = an, Yr.height = Mr.height = Zi, Me.bindRenderbuffer(Nl, Mr.renderbuffer), Me.renderbufferStorage(Nl, Mr.format, an, Zi), jr.profile && (Mr.stats.size = Eu(Mr.format, Mr.width, Mr.height))), Yr;
+ }
+ return Yr(Wi, si), Yr.resize = xi, Yr._reglType = "renderbuffer", Yr._renderbuffer = Mr, jr.profile && (Yr.stats = Mr.stats), Yr.destroy = function() {
+ Mr.decRef();
+ }, Yr;
+ }
+ jr.profile && (Rr.getTotalRenderbufferSize = function() {
+ var Wi = 0;
+ return Object.keys(Ui).forEach(function(si) {
+ Wi += Ui[si].stats.size;
+ }), Wi;
+ });
+ function en() {
+ dt(Ui).forEach(function(Wi) {
+ Wi.renderbuffer = Me.createRenderbuffer(), Me.bindRenderbuffer(Nl, Wi.renderbuffer), Me.renderbufferStorage(Nl, Wi.format, Wi.width, Wi.height);
+ }), Me.bindRenderbuffer(Nl, null);
+ }
+ return { create: Hn, clear: function() {
+ dt(Ui).forEach(Ei);
+ }, restore: en };
+ }, ks = 36160, bc = 36161, hu = 3553, _u = 34069, nl = 36064, nh = 36096, Mh = 36128, zu = 33306, wc = 36193, bd = 5121, xf = 5126, Pf = 6407, Ou = 6408, bf = [];
+ bf[Ou] = 4, bf[Pf] = 3;
+ var jl = [];
+ jl[bd] = 1, jl[xf] = 4, jl[wc] = 2;
+ function lf(Me, bt, zt, Rr, jr, Nr) {
+ var Gr = { cur: null, next: null, dirty: false, setFBO: null }, mi = ["rgba"], Ui = ["rgba4", "rgb565", "rgb5 a1"];
+ bt.ext_srgb && Ui.push("srgba"), bt.ext_color_buffer_half_float && Ui.push("rgba16f", "rgb16f"), bt.webgl_color_buffer_float && Ui.push("rgba32f");
+ var qi = ["uint8"];
+ bt.oes_texture_half_float && qi.push("half float", "float16"), bt.oes_texture_float && qi.push("float", "float32");
+ function Ei(Vi, Ni, pn) {
+ this.target = Vi, this.texture = Ni, this.renderbuffer = pn;
+ var Vn = 0, na = 0;
+ Ni ? (Vn = Ni.width, na = Ni.height) : pn && (Vn = pn.width, na = pn.height), this.width = Vn, this.height = na;
+ }
+ function Hn(Vi) {
+ Vi && (Vi.texture && Vi.texture._texture.decRef(), Vi.renderbuffer && Vi.renderbuffer._renderbuffer.decRef());
+ }
+ function en(Vi, Ni, pn) {
+ if (Vi) if (Vi.texture) {
+ var Vn = Vi.texture._texture;
+ Math.max(1, Vn.width);
+ Math.max(1, Vn.height);
+ Vn.refCount += 1;
+ } else {
+ var kn = Vi.renderbuffer._renderbuffer;
+ kn.refCount += 1;
+ }
+ }
+ function Wi(Vi, Ni) {
+ Ni && (Ni.texture ? Me.framebufferTexture2D(ks, Vi, Ni.target, Ni.texture._texture.texture, 0) : Me.framebufferRenderbuffer(ks, Vi, bc, Ni.renderbuffer._renderbuffer.renderbuffer));
+ }
+ function si(Vi) {
+ var Ni = hu, pn = null, Vn = null, na = Vi;
+ typeof Vi == "object" && (na = Vi.data, "target" in Vi && (Ni = Vi.target | 0));
+ var Ki = na._reglType;
+ return Ki === "texture2d" || Ki === "textureCube" ? pn = na : Ki === "renderbuffer" && (Vn = na, Ni = bc), new Ei(Ni, pn, Vn);
+ }
+ function Mr(Vi, Ni, pn, Vn, na) {
+ if (pn) {
+ var Ki = Rr.create2D({ width: Vi, height: Ni, format: Vn, type: na });
+ return Ki._texture.refCount = 0, new Ei(hu, Ki, null);
+ } else {
+ var kn = jr.create({ width: Vi, height: Ni, format: Vn });
+ return kn._renderbuffer.refCount = 0, new Ei(bc, null, kn);
+ }
+ }
+ function Yr(Vi) {
+ return Vi && (Vi.texture || Vi.renderbuffer);
+ }
+ function xi(Vi, Ni, pn) {
+ Vi && (Vi.texture ? Vi.texture.resize(Ni, pn) : Vi.renderbuffer && Vi.renderbuffer.resize(Ni, pn), Vi.width = Ni, Vi.height = pn);
+ }
+ var Ri = 0, ci = {};
+ function an() {
+ this.id = Ri++, ci[this.id] = this, this.framebuffer = Me.createFramebuffer(), this.width = 0, this.height = 0, this.colorAttachments = [], this.depthAttachment = null, this.stencilAttachment = null, this.depthStencilAttachment = null;
+ }
+ function Zi(Vi) {
+ Vi.colorAttachments.forEach(Hn), Hn(Vi.depthAttachment), Hn(Vi.stencilAttachment), Hn(Vi.depthStencilAttachment);
+ }
+ function Bn(Vi) {
+ var Ni = Vi.framebuffer;
+ Me.deleteFramebuffer(Ni), Vi.framebuffer = null, Nr.framebufferCount--, delete ci[Vi.id];
+ }
+ function hi(Vi) {
+ var Ni;
+ Me.bindFramebuffer(ks, Vi.framebuffer);
+ var pn = Vi.colorAttachments;
+ for (Ni = 0; Ni < pn.length; ++Ni) Wi(nl + Ni, pn[Ni]);
+ for (Ni = pn.length; Ni < zt.maxColorAttachments; ++Ni) Me.framebufferTexture2D(ks, nl + Ni, hu, null, 0);
+ Me.framebufferTexture2D(ks, zu, hu, null, 0), Me.framebufferTexture2D(ks, nh, hu, null, 0), Me.framebufferTexture2D(ks, Mh, hu, null, 0), Wi(nh, Vi.depthAttachment), Wi(Mh, Vi.stencilAttachment), Wi(zu, Vi.depthStencilAttachment);
+ Me.checkFramebufferStatus(ks);
+ Me.isContextLost(), Me.bindFramebuffer(ks, Gr.next ? Gr.next.framebuffer : null), Gr.cur = Gr.next, Me.getError();
+ }
+ function li(Vi, Ni) {
+ var pn = new an();
+ Nr.framebufferCount++;
+ function Vn(Ki, kn) {
+ var ta, oa = 0, ba = 0, is = true, Zs = true, Va = null, Ml = true, zo = "rgba", Qs = "uint8", al = 1, Vl = null, ss = null, Vs = null, Ys = false;
+ if (typeof Ki == "number") oa = Ki | 0, ba = kn | 0 || oa;
+ else if (!Ki) oa = ba = 1;
+ else {
+ var wa = Ki;
+ if ("shape" in wa) {
+ var ol = wa.shape;
+ oa = ol[0], ba = ol[1];
+ } else "radius" in wa && (oa = ba = wa.radius), "width" in wa && (oa = wa.width), "height" in wa && (ba = wa.height);
+ ("color" in wa || "colors" in wa) && (Va = wa.color || wa.colors, Array.isArray(Va)), Va || ("colorCount" in wa && (al = wa.colorCount | 0), "colorTexture" in wa && (Ml = !!wa.colorTexture, zo = "rgba4"), "colorType" in wa && (Qs = wa.colorType, Ml || (Qs === "half float" || Qs === "float16" ? zo = "rgba16f" : (Qs === "float" || Qs === "float32") && (zo = "rgba32f"))), "colorFormat" in wa && (zo = wa.colorFormat, mi.indexOf(zo) >= 0 ? Ml = true : Ui.indexOf(zo) >= 0 && (Ml = false))), ("depthTexture" in wa || "depthStencilTexture" in wa) && (Ys = !!(wa.depthTexture || wa.depthStencilTexture)), "depth" in wa && (typeof wa.depth == "boolean" ? is = wa.depth : (Vl = wa.depth, Zs = false)), "stencil" in wa && (typeof wa.stencil == "boolean" ? Zs = wa.stencil : (ss = wa.stencil, is = false)), "depthStencil" in wa && (typeof wa.depthStencil == "boolean" ? is = Zs = wa.depthStencil : (Vs = wa.depthStencil, is = false, Zs = false));
+ }
+ var io = null, Y = null, D = null, J = null;
+ if (Array.isArray(Va)) io = Va.map(si);
+ else if (Va) io = [si(Va)];
+ else for (io = new Array(al), ta = 0; ta < al; ++ta) io[ta] = Mr(oa, ba, Ml, zo, Qs);
+ oa = oa || io[0].width, ba = ba || io[0].height, Vl ? Y = si(Vl) : is && !Zs && (Y = Mr(oa, ba, Ys, "depth", "uint32")), ss ? D = si(ss) : Zs && !is && (D = Mr(oa, ba, false, "stencil", "uint8")), Vs ? J = si(Vs) : !Vl && !ss && Zs && is && (J = Mr(oa, ba, Ys, "depth stencil", "depth stencil"));
+ for (ta = 0; ta < io.length; ++ta) if (en(io[ta]), io[ta] && io[ta].texture) {
+ bf[io[ta].texture._texture.format] * jl[io[ta].texture._texture.type];
+ }
+ return en(Y), en(D), en(J), Zi(pn), pn.width = oa, pn.height = ba, pn.colorAttachments = io, pn.depthAttachment = Y, pn.stencilAttachment = D, pn.depthStencilAttachment = J, Vn.color = io.map(Yr), Vn.depth = Yr(Y), Vn.stencil = Yr(D), Vn.depthStencil = Yr(J), Vn.width = pn.width, Vn.height = pn.height, hi(pn), Vn;
+ }
+ function na(Ki, kn) {
+ var ta = Math.max(Ki | 0, 1), oa = Math.max(kn | 0 || ta, 1);
+ if (ta === pn.width && oa === pn.height) return Vn;
+ for (var ba = pn.colorAttachments, is = 0; is < ba.length; ++is) xi(ba[is], ta, oa);
+ return xi(pn.depthAttachment, ta, oa), xi(pn.stencilAttachment, ta, oa), xi(pn.depthStencilAttachment, ta, oa), pn.width = Vn.width = ta, pn.height = Vn.height = oa, hi(pn), Vn;
+ }
+ return Vn(Vi, Ni), e(Vn, { resize: na, _reglType: "framebuffer", _framebuffer: pn, destroy: function() {
+ Bn(pn), Zi(pn);
+ }, use: function(Ki) {
+ Gr.setFBO({ framebuffer: Vn }, Ki);
+ } });
+ }
+ function mn(Vi) {
+ var Ni = Array(6);
+ function pn(na) {
+ var Ki, kn = { color: null }, ta = 0, oa = null, ba = "rgba", is = "uint8", Zs = 1;
+ if (typeof na == "number") ta = na | 0;
+ else if (!na) ta = 1;
+ else {
+ var Va = na;
+ if ("shape" in Va) {
+ var Ml = Va.shape;
+ ta = Ml[0];
+ } else "radius" in Va && (ta = Va.radius | 0), "width" in Va ? (ta = Va.width | 0, "height" in Va) : "height" in Va && (ta = Va.height | 0);
+ ("color" in Va || "colors" in Va) && (oa = Va.color || Va.colors, Array.isArray(oa)), oa || ("colorCount" in Va && (Zs = Va.colorCount | 0), "colorType" in Va && (is = Va.colorType), "colorFormat" in Va && (ba = Va.colorFormat)), "depth" in Va && (kn.depth = Va.depth), "stencil" in Va && (kn.stencil = Va.stencil), "depthStencil" in Va && (kn.depthStencil = Va.depthStencil);
+ }
+ var zo;
+ if (oa) if (Array.isArray(oa)) for (zo = [], Ki = 0; Ki < oa.length; ++Ki) zo[Ki] = oa[Ki];
+ else zo = [oa];
+ else {
+ zo = Array(Zs);
+ var Qs = { radius: ta, format: ba, type: is };
+ for (Ki = 0; Ki < Zs; ++Ki) zo[Ki] = Rr.createCube(Qs);
+ }
+ for (kn.color = Array(zo.length), Ki = 0; Ki < zo.length; ++Ki) {
+ var al = zo[Ki];
+ ta = ta || al.width, kn.color[Ki] = { target: _u, data: zo[Ki] };
+ }
+ for (Ki = 0; Ki < 6; ++Ki) {
+ for (var Vl = 0; Vl < zo.length; ++Vl) kn.color[Vl].target = _u + Ki;
+ Ki > 0 && (kn.depth = Ni[0].depth, kn.stencil = Ni[0].stencil, kn.depthStencil = Ni[0].depthStencil), Ni[Ki] ? Ni[Ki](kn) : Ni[Ki] = li(kn);
+ }
+ return e(pn, { width: ta, height: ta, color: zo });
+ }
+ function Vn(na) {
+ var Ki, kn = na | 0;
+ if (kn === pn.width) return pn;
+ var ta = pn.color;
+ for (Ki = 0; Ki < ta.length; ++Ki) ta[Ki].resize(kn);
+ for (Ki = 0; Ki < 6; ++Ki) Ni[Ki].resize(kn);
+ return pn.width = pn.height = kn, pn;
+ }
+ return pn(Vi), e(pn, { faces: Ni, resize: Vn, _reglType: "framebufferCube", destroy: function() {
+ Ni.forEach(function(na) {
+ na.destroy();
+ });
+ } });
+ }
+ function Ji() {
+ Gr.cur = null, Gr.next = null, Gr.dirty = true, dt(ci).forEach(function(Vi) {
+ Vi.framebuffer = Me.createFramebuffer(), hi(Vi);
+ });
+ }
+ return e(Gr, { getFramebuffer: function(Vi) {
+ if (typeof Vi == "function" && Vi._reglType === "framebuffer") {
+ var Ni = Vi._framebuffer;
+ if (Ni instanceof an) return Ni;
+ }
+ return null;
+ }, create: li, createCube: mn, clear: function() {
+ dt(ci).forEach(Bn);
+ }, restore: Ji });
+ }
+ var Xh = 5126, If = 34962, Cs = 34963;
+ function du() {
+ this.state = 0, this.x = 0, this.y = 0, this.z = 0, this.w = 0, this.buffer = null, this.size = 0, this.normalized = false, this.type = Xh, this.offset = 0, this.stride = 0, this.divisor = 0;
+ }
+ function ku(Me, bt, zt, Rr, jr, Nr, Gr) {
+ for (var mi = zt.maxAttributes, Ui = new Array(mi), qi = 0; qi < mi; ++qi) Ui[qi] = new du();
+ var Ei = 0, Hn = {}, en = { Record: du, scope: {}, state: Ui, currentVAO: null, targetVAO: null, restore: si() ? Zi : function() {
+ }, createVAO: Bn, getVAO: Yr, destroyBuffer: Wi, setVAO: si() ? xi : Ri, clear: si() ? ci : function() {
+ } };
+ function Wi(hi) {
+ for (var li = 0; li < Ui.length; ++li) {
+ var mn = Ui[li];
+ mn.buffer === hi && (Me.disableVertexAttribArray(li), mn.buffer = null);
+ }
+ }
+ function si() {
+ return bt.oes_vertex_array_object;
+ }
+ function Mr() {
+ return bt.angle_instanced_arrays;
+ }
+ function Yr(hi) {
+ return typeof hi == "function" && hi._vao ? hi._vao : null;
+ }
+ function xi(hi) {
+ if (hi !== en.currentVAO) {
+ var li = si();
+ hi ? li.bindVertexArrayOES(hi.vao) : li.bindVertexArrayOES(null), en.currentVAO = hi;
+ }
+ }
+ function Ri(hi) {
+ if (hi !== en.currentVAO) {
+ if (hi) hi.bindAttrs();
+ else {
+ for (var li = Mr(), mn = 0; mn < Ui.length; ++mn) {
+ var Ji = Ui[mn];
+ Ji.buffer ? (Me.enableVertexAttribArray(mn), Ji.buffer.bind(), Me.vertexAttribPointer(mn, Ji.size, Ji.type, Ji.normalized, Ji.stride, Ji.offfset), li && Ji.divisor && li.vertexAttribDivisorANGLE(mn, Ji.divisor)) : (Me.disableVertexAttribArray(mn), Me.vertexAttrib4f(mn, Ji.x, Ji.y, Ji.z, Ji.w));
+ }
+ Gr.elements ? Me.bindBuffer(Cs, Gr.elements.buffer.buffer) : Me.bindBuffer(Cs, null);
+ }
+ en.currentVAO = hi;
+ }
+ }
+ function ci() {
+ dt(Hn).forEach(function(hi) {
+ hi.destroy();
+ });
+ }
+ function an() {
+ this.id = ++Ei, this.attributes = [], this.elements = null, this.ownsElements = false, this.count = 0, this.offset = 0, this.instances = -1, this.primitive = 4;
+ var hi = si();
+ hi ? this.vao = hi.createVertexArrayOES() : this.vao = null, Hn[this.id] = this, this.buffers = [];
+ }
+ an.prototype.bindAttrs = function() {
+ for (var hi = Mr(), li = this.attributes, mn = 0; mn < li.length; ++mn) {
+ var Ji = li[mn];
+ Ji.buffer ? (Me.enableVertexAttribArray(mn), Me.bindBuffer(If, Ji.buffer.buffer), Me.vertexAttribPointer(mn, Ji.size, Ji.type, Ji.normalized, Ji.stride, Ji.offset), hi && Ji.divisor && hi.vertexAttribDivisorANGLE(mn, Ji.divisor)) : (Me.disableVertexAttribArray(mn), Me.vertexAttrib4f(mn, Ji.x, Ji.y, Ji.z, Ji.w));
+ }
+ for (var Vi = li.length; Vi < mi; ++Vi) Me.disableVertexAttribArray(Vi);
+ var Ni = Nr.getElements(this.elements);
+ Ni ? Me.bindBuffer(Cs, Ni.buffer.buffer) : Me.bindBuffer(Cs, null);
+ }, an.prototype.refresh = function() {
+ var hi = si();
+ hi && (hi.bindVertexArrayOES(this.vao), this.bindAttrs(), en.currentVAO = null, hi.bindVertexArrayOES(null));
+ }, an.prototype.destroy = function() {
+ if (this.vao) {
+ var hi = si();
+ this === en.currentVAO && (en.currentVAO = null, hi.bindVertexArrayOES(null)), hi.deleteVertexArrayOES(this.vao), this.vao = null;
+ }
+ this.ownsElements && (this.elements.destroy(), this.elements = null, this.ownsElements = false), Hn[this.id] && (delete Hn[this.id], Rr.vaoCount -= 1);
+ };
+ function Zi() {
+ var hi = si();
+ hi && dt(Hn).forEach(function(li) {
+ li.refresh();
+ });
+ }
+ function Bn(hi) {
+ var li = new an();
+ Rr.vaoCount += 1;
+ function mn(Ji) {
+ var Vi;
+ if (Array.isArray(Ji)) Vi = Ji, li.elements && li.ownsElements && li.elements.destroy(), li.elements = null, li.ownsElements = false, li.offset = 0, li.count = 0, li.instances = -1, li.primitive = 4;
+ else {
+ if (Ji.elements) {
+ var Ni = Ji.elements;
+ li.ownsElements ? typeof Ni == "function" && Ni._reglType === "elements" ? (li.elements.destroy(), li.ownsElements = false) : (li.elements(Ni), li.ownsElements = false) : Nr.getElements(Ji.elements) ? (li.elements = Ji.elements, li.ownsElements = false) : (li.elements = Nr.create(Ji.elements), li.ownsElements = true);
+ } else li.elements = null, li.ownsElements = false;
+ Vi = Ji.attributes, li.offset = 0, li.count = -1, li.instances = -1, li.primitive = 4, li.elements && (li.count = li.elements._elements.vertCount, li.primitive = li.elements._elements.primType), "offset" in Ji && (li.offset = Ji.offset | 0), "count" in Ji && (li.count = Ji.count | 0), "instances" in Ji && (li.instances = Ji.instances | 0), "primitive" in Ji && (li.primitive = Sn[Ji.primitive]);
+ }
+ var pn = {}, Vn = li.attributes;
+ Vn.length = Vi.length;
+ for (var na = 0; na < Vi.length; ++na) {
+ var Ki = Vi[na], kn = Vn[na] = new du(), ta = Ki.data || Ki;
+ if (Array.isArray(ta) || Br(ta) || Vr(ta)) {
+ var oa;
+ li.buffers[na] && (oa = li.buffers[na], Br(ta) && oa._buffer.byteLength >= ta.byteLength ? oa.subdata(ta) : (oa.destroy(), li.buffers[na] = null)), li.buffers[na] || (oa = li.buffers[na] = jr.create(Ki, If, false, true)), kn.buffer = jr.getBuffer(oa), kn.size = kn.buffer.dimension | 0, kn.normalized = false, kn.type = kn.buffer.dtype, kn.offset = 0, kn.stride = 0, kn.divisor = 0, kn.state = 1, pn[na] = 1;
+ } else jr.getBuffer(Ki) ? (kn.buffer = jr.getBuffer(Ki), kn.size = kn.buffer.dimension | 0, kn.normalized = false, kn.type = kn.buffer.dtype, kn.offset = 0, kn.stride = 0, kn.divisor = 0, kn.state = 1) : jr.getBuffer(Ki.buffer) ? (kn.buffer = jr.getBuffer(Ki.buffer), kn.size = (+Ki.size || kn.buffer.dimension) | 0, kn.normalized = !!Ki.normalized || false, "type" in Ki ? kn.type = ji[Ki.type] : kn.type = kn.buffer.dtype, kn.offset = (Ki.offset || 0) | 0, kn.stride = (Ki.stride || 0) | 0, kn.divisor = (Ki.divisor || 0) | 0, kn.state = 1) : "x" in Ki && (kn.x = +Ki.x || 0, kn.y = +Ki.y || 0, kn.z = +Ki.z || 0, kn.w = +Ki.w || 0, kn.state = 2);
+ }
+ for (var ba = 0; ba < li.buffers.length; ++ba) !pn[ba] && li.buffers[ba] && (li.buffers[ba].destroy(), li.buffers[ba] = null);
+ return li.refresh(), mn;
+ }
+ return mn.destroy = function() {
+ for (var Ji = 0; Ji < li.buffers.length; ++Ji) li.buffers[Ji] && li.buffers[Ji].destroy();
+ li.buffers.length = 0, li.ownsElements && (li.elements.destroy(), li.elements = null, li.ownsElements = false), li.destroy();
+ }, mn._vao = li, mn._reglType = "vao", mn(hi);
+ }
+ return en;
+ }
+ var Xf = 35632, Us = 35633, wf = 35718, zc = 35721;
+ function Wu(Me, bt, zt, Rr) {
+ var jr = {}, Nr = {};
+ function Gr(Mr, Yr, xi, Ri) {
+ this.name = Mr, this.id = Yr, this.location = xi, this.info = Ri;
+ }
+ function mi(Mr, Yr) {
+ for (var xi = 0; xi < Mr.length; ++xi) if (Mr[xi].id === Yr.id) {
+ Mr[xi].location = Yr.location;
+ return;
+ }
+ Mr.push(Yr);
+ }
+ function Ui(Mr, Yr, xi) {
+ var Ri = Mr === Xf ? jr : Nr, ci = Ri[Yr];
+ if (!ci) {
+ var an = bt.str(Yr);
+ ci = Me.createShader(Mr), Me.shaderSource(ci, an), Me.compileShader(ci), Ri[Yr] = ci;
+ }
+ return ci;
+ }
+ var qi = {}, Ei = [], Hn = 0;
+ function en(Mr, Yr) {
+ this.id = Hn++, this.fragId = Mr, this.vertId = Yr, this.program = null, this.uniforms = [], this.attributes = [], this.refCount = 1, Rr.profile && (this.stats = { uniformsCount: 0, attributesCount: 0 });
+ }
+ function Wi(Mr, Yr, xi) {
+ var Ri, ci, an = Ui(Xf, Mr.fragId), Zi = Ui(Us, Mr.vertId), Bn = Mr.program = Me.createProgram();
+ if (Me.attachShader(Bn, an), Me.attachShader(Bn, Zi), xi) for (Ri = 0; Ri < xi.length; ++Ri) {
+ var hi = xi[Ri];
+ Me.bindAttribLocation(Bn, hi[0], hi[1]);
+ }
+ Me.linkProgram(Bn);
+ var li = Me.getProgramParameter(Bn, wf);
+ Rr.profile && (Mr.stats.uniformsCount = li);
+ var mn = Mr.uniforms;
+ for (Ri = 0; Ri < li; ++Ri) if (ci = Me.getActiveUniform(Bn, Ri), ci) if (ci.size > 1) for (var Ji = 0; Ji < ci.size; ++Ji) {
+ var Vi = ci.name.replace("[0]", "[" + Ji + "]");
+ mi(mn, new Gr(Vi, bt.id(Vi), Me.getUniformLocation(Bn, Vi), ci));
+ }
+ else mi(mn, new Gr(ci.name, bt.id(ci.name), Me.getUniformLocation(Bn, ci.name), ci));
+ var Ni = Me.getProgramParameter(Bn, zc);
+ Rr.profile && (Mr.stats.attributesCount = Ni);
+ var pn = Mr.attributes;
+ for (Ri = 0; Ri < Ni; ++Ri) ci = Me.getActiveAttrib(Bn, Ri), ci && mi(pn, new Gr(ci.name, bt.id(ci.name), Me.getAttribLocation(Bn, ci.name), ci));
+ }
+ Rr.profile && (zt.getMaxUniformsCount = function() {
+ var Mr = 0;
+ return Ei.forEach(function(Yr) {
+ Yr.stats.uniformsCount > Mr && (Mr = Yr.stats.uniformsCount);
+ }), Mr;
+ }, zt.getMaxAttributesCount = function() {
+ var Mr = 0;
+ return Ei.forEach(function(Yr) {
+ Yr.stats.attributesCount > Mr && (Mr = Yr.stats.attributesCount);
+ }), Mr;
+ });
+ function si() {
+ jr = {}, Nr = {};
+ for (var Mr = 0; Mr < Ei.length; ++Mr) Wi(Ei[Mr], null, Ei[Mr].attributes.map(function(Yr) {
+ return [Yr.location, Yr.name];
+ }));
+ }
+ return { clear: function() {
+ var Mr = Me.deleteShader.bind(Me);
+ dt(jr).forEach(Mr), jr = {}, dt(Nr).forEach(Mr), Nr = {}, Ei.forEach(function(Yr) {
+ Me.deleteProgram(Yr.program);
+ }), Ei.length = 0, qi = {}, zt.shaderCount = 0;
+ }, program: function(Mr, Yr, xi, Ri) {
+ var ci = qi[Yr];
+ ci || (ci = qi[Yr] = {});
+ var an = ci[Mr];
+ if (an && (an.refCount++, !Ri)) return an;
+ var Zi = new en(Yr, Mr);
+ return zt.shaderCount++, Wi(Zi, xi, Ri), an || (ci[Mr] = Zi), Ei.push(Zi), e(Zi, { destroy: function() {
+ if (Zi.refCount--, Zi.refCount <= 0) {
+ Me.deleteProgram(Zi.program);
+ var Bn = Ei.indexOf(Zi);
+ Ei.splice(Bn, 1), zt.shaderCount--;
+ }
+ ci[Zi.vertId].refCount <= 0 && (Me.deleteShader(Nr[Zi.vertId]), delete Nr[Zi.vertId], delete qi[Zi.fragId][Zi.vertId]), Object.keys(qi[Zi.fragId]).length || (Me.deleteShader(jr[Zi.fragId]), delete jr[Zi.fragId], delete qi[Zi.fragId]);
+ } });
+ }, restore: si, shader: Ui, frag: -1, vert: -1 };
+ }
+ var Rf = 6408, Xu = 5121, uf = 3333, Zf = 5126;
+ function Wl(Me, bt, zt, Rr, jr, Nr, Gr) {
+ function mi(Ei) {
+ var Hn;
+ bt.next === null ? Hn = Xu : Hn = bt.next.colorAttachments[0].texture._texture.type;
+ var en = 0, Wi = 0, si = Rr.framebufferWidth, Mr = Rr.framebufferHeight, Yr = null;
+ Br(Ei) ? Yr = Ei : Ei && (en = Ei.x | 0, Wi = Ei.y | 0, si = (Ei.width || Rr.framebufferWidth - en) | 0, Mr = (Ei.height || Rr.framebufferHeight - Wi) | 0, Yr = Ei.data || null), zt();
+ var xi = si * Mr * 4;
+ return Yr || (Hn === Xu ? Yr = new Uint8Array(xi) : Hn === Zf && (Yr = Yr || new Float32Array(xi))), Me.pixelStorei(uf, 4), Me.readPixels(en, Wi, si, Mr, Rf, Hn, Yr), Yr;
+ }
+ function Ui(Ei) {
+ var Hn;
+ return bt.setFBO({ framebuffer: Ei.framebuffer }, function() {
+ Hn = mi(Ei);
+ }), Hn;
+ }
+ function qi(Ei) {
+ return !Ei || !("framebuffer" in Ei) ? mi(Ei) : Ui(Ei);
+ }
+ return qi;
+ }
+ function Oc(Me) {
+ return vu(Tc(fc(Me)));
+ }
+ function Tc(Me) {
+ return At(Yi(Bc(Me), Me.length * 8));
+ }
+ function vu(Me) {
+ for (var bt = "0123456789abcdef", zt = "", Rr, jr = 0; jr < Me.length; jr++) Rr = Me.charCodeAt(jr), zt += bt.charAt(Rr >>> 4 & 15) + bt.charAt(Rr & 15);
+ return zt;
+ }
+ function fc(Me) {
+ for (var bt = "", zt = -1, Rr, jr; ++zt < Me.length; ) Rr = Me.charCodeAt(zt), jr = zt + 1 < Me.length ? Me.charCodeAt(zt + 1) : 0, 55296 <= Rr && Rr <= 56319 && 56320 <= jr && jr <= 57343 && (Rr = 65536 + ((Rr & 1023) << 10) + (jr & 1023), zt++), Rr <= 127 ? bt += String.fromCharCode(Rr) : Rr <= 2047 ? bt += String.fromCharCode(192 | Rr >>> 6 & 31, 128 | Rr & 63) : Rr <= 65535 ? bt += String.fromCharCode(224 | Rr >>> 12 & 15, 128 | Rr >>> 6 & 63, 128 | Rr & 63) : Rr <= 2097151 && (bt += String.fromCharCode(240 | Rr >>> 18 & 7, 128 | Rr >>> 12 & 63, 128 | Rr >>> 6 & 63, 128 | Rr & 63));
+ return bt;
+ }
+ function Bc(Me) {
+ for (var bt = Array(Me.length >> 2), zt = 0; zt < bt.length; zt++) bt[zt] = 0;
+ for (var zt = 0; zt < Me.length * 8; zt += 8) bt[zt >> 5] |= (Me.charCodeAt(zt / 8) & 255) << 24 - zt % 32;
+ return bt;
+ }
+ function At(Me) {
+ for (var bt = "", zt = 0; zt < Me.length * 32; zt += 8) bt += String.fromCharCode(Me[zt >> 5] >>> 24 - zt % 32 & 255);
+ return bt;
+ }
+ function Xt(Me, bt) {
+ return Me >>> bt | Me << 32 - bt;
+ }
+ function Cr(Me, bt) {
+ return Me >>> bt;
+ }
+ function Ar(Me, bt, zt) {
+ return Me & bt ^ ~Me & zt;
+ }
+ function Kr(Me, bt, zt) {
+ return Me & bt ^ Me & zt ^ bt & zt;
+ }
+ function ki(Me) {
+ return Xt(Me, 2) ^ Xt(Me, 13) ^ Xt(Me, 22);
+ }
+ function Xi(Me) {
+ return Xt(Me, 6) ^ Xt(Me, 11) ^ Xt(Me, 25);
+ }
+ function dn(Me) {
+ return Xt(Me, 7) ^ Xt(Me, 18) ^ Cr(Me, 3);
+ }
+ function wn(Me) {
+ return Xt(Me, 17) ^ Xt(Me, 19) ^ Cr(Me, 10);
+ }
+ var Nn = new Array(1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993, -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987, 1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885, -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872, -1866530822, -1538233109, -1090935817, -965641998);
+ function Yi(Me, bt) {
+ var zt = new Array(1779033703, -1150833019, 1013904242, -1521486534, 1359893119, -1694144372, 528734635, 1541459225), Rr = new Array(64), jr, Nr, Gr, mi, Ui, qi, Ei, Hn, en, Wi, si, Mr;
+ for (Me[bt >> 5] |= 128 << 24 - bt % 32, Me[(bt + 64 >> 9 << 4) + 15] = bt, en = 0; en < Me.length; en += 16) {
+ for (jr = zt[0], Nr = zt[1], Gr = zt[2], mi = zt[3], Ui = zt[4], qi = zt[5], Ei = zt[6], Hn = zt[7], Wi = 0; Wi < 64; Wi++) Wi < 16 ? Rr[Wi] = Me[Wi + en] : Rr[Wi] = Qi(Qi(Qi(wn(Rr[Wi - 2]), Rr[Wi - 7]), dn(Rr[Wi - 15])), Rr[Wi - 16]), si = Qi(Qi(Qi(Qi(Hn, Xi(Ui)), Ar(Ui, qi, Ei)), Nn[Wi]), Rr[Wi]), Mr = Qi(ki(jr), Kr(jr, Nr, Gr)), Hn = Ei, Ei = qi, qi = Ui, Ui = Qi(mi, si), mi = Gr, Gr = Nr, Nr = jr, jr = Qi(si, Mr);
+ zt[0] = Qi(jr, zt[0]), zt[1] = Qi(Nr, zt[1]), zt[2] = Qi(Gr, zt[2]), zt[3] = Qi(mi, zt[3]), zt[4] = Qi(Ui, zt[4]), zt[5] = Qi(qi, zt[5]), zt[6] = Qi(Ei, zt[6]), zt[7] = Qi(Hn, zt[7]);
+ }
+ return zt;
+ }
+ function Qi(Me, bt) {
+ var zt = (Me & 65535) + (bt & 65535), Rr = (Me >> 16) + (bt >> 16) + (zt >> 16);
+ return Rr << 16 | zt & 65535;
+ }
+ function on(Me) {
+ return Array.prototype.slice.call(Me);
+ }
+ function Fi(Me) {
+ return on(Me).join("");
+ }
+ function Qn(Me) {
+ var bt = Me && Me.cache, zt = 0, Rr = [], jr = [], Nr = [];
+ function Gr(si, Mr) {
+ var Yr = Mr && Mr.stable;
+ if (!Yr) {
+ for (var xi = 0; xi < jr.length; ++xi) if (jr[xi] === si && !Nr[xi]) return Rr[xi];
+ }
+ var Ri = "g" + zt++;
+ return Rr.push(Ri), jr.push(si), Nr.push(Yr), Ri;
+ }
+ function mi() {
+ var si = [];
+ function Mr() {
+ si.push.apply(si, on(arguments));
+ }
+ var Yr = [];
+ function xi() {
+ var Ri = "v" + zt++;
+ return Yr.push(Ri), arguments.length > 0 && (si.push(Ri, "="), si.push.apply(si, on(arguments)), si.push(";")), Ri;
+ }
+ return e(Mr, { def: xi, toString: function() {
+ return Fi([Yr.length > 0 ? "var " + Yr.join(",") + ";" : "", Fi(si)]);
+ } });
+ }
+ function Ui() {
+ var si = mi(), Mr = mi(), Yr = si.toString, xi = Mr.toString;
+ function Ri(ci, an) {
+ Mr(ci, an, "=", si.def(ci, an), ";");
+ }
+ return e(function() {
+ si.apply(si, on(arguments));
+ }, { def: si.def, entry: si, exit: Mr, save: Ri, set: function(ci, an, Zi) {
+ Ri(ci, an), si(ci, an, "=", Zi, ";");
+ }, toString: function() {
+ return Yr() + xi();
+ } });
+ }
+ function qi() {
+ var si = Fi(arguments), Mr = Ui(), Yr = Ui(), xi = Mr.toString, Ri = Yr.toString;
+ return e(Mr, { then: function() {
+ return Mr.apply(Mr, on(arguments)), this;
+ }, else: function() {
+ return Yr.apply(Yr, on(arguments)), this;
+ }, toString: function() {
+ var ci = Ri();
+ return ci && (ci = "else{" + ci + "}"), Fi(["if(", si, "){", xi(), "}", ci]);
+ } });
+ }
+ var Ei = mi(), Hn = {};
+ function en(si, Mr) {
+ var Yr = [];
+ function xi() {
+ var Bn = "a" + Yr.length;
+ return Yr.push(Bn), Bn;
+ }
+ Mr = Mr || 0;
+ for (var Ri = 0; Ri < Mr; ++Ri) xi();
+ var ci = Ui(), an = ci.toString, Zi = Hn[si] = e(ci, { arg: xi, toString: function() {
+ return Fi(["function(", Yr.join(), "){", an(), "}"]);
+ } });
+ return Zi;
+ }
+ function Wi() {
+ var si = ['"use strict";', Ei, "return {"];
+ Object.keys(Hn).forEach(function(Ri) {
+ si.push('"', Ri, '":', Hn[Ri].toString(), ",");
+ }), si.push("}");
+ var Mr = Fi(si).replace(/;/g, `;
+`).replace(/}/g, `}
+`).replace(/{/g, `{
+`), Yr;
+ if (bt && (Yr = Oc(Mr), bt[Yr])) return bt[Yr].apply(null, jr);
+ var xi = Function.apply(null, Rr.concat(Mr));
+ return bt && (bt[Yr] = xi), xi.apply(null, jr);
+ }
+ return { global: Ei, link: Gr, block: mi, proc: en, scope: Ui, cond: qi, compile: Wi };
+ }
+ var Ca = "xyzw".split(""), Ra = 5121, La = 1, Na = 2, Yn = 0, Dn = 1, Ka = 2, bo = 3, Zo = 4, Ss = 5, as = 6, ws = "dither", Ho = "blend.enable", ml = "blend.color", Ws = "blend.equation", Ls = "blend.func", va = "depth.enable", no = "depth.func", ys = "depth.range", rs = "depth.mask", Ql = "colorMask", Cu = "cull.enable", Yu = "cull.face", Nc = "frontFace", pu = "lineWidth", Uc = "polygonOffset.enable", xu = "polygonOffset.offset", Ac = "sample.alpha", Ua = "sample.enable", oo = "sample.coverage", Vc = "stencil.enable", hc = "stencil.mask", Ku = "stencil.func", ue = "stencil.opFront", w = "stencil.opBack", B = "scissor.enable", Q = "scissor.box", ee = "viewport", le = "profile", Oe = "framebuffer", Ze = "vert", st = "frag", Tt = "elements", Yt = "primitive", Kt = "count", xr = "offset", Ir = "instances", ve = "vao", be = "Width", Re = "Height", qe = Oe + be, et = Oe + Re, Xe = ee + be, it = ee + Re, Ft = "drawingBuffer", Ht = Ft + be, tr = Ft + Re, dr = [Ls, Ws, Ku, ue, w, oo, ee, Q, xu], Sr = 34962, Or = 34963, Wr = 2884, ni = 3042, Pi = 3024, cn = 2960, ln = 2929, Cn = 3089, Kn = 32823, Aa = 32926, fa = 32928, $a = 5126, Co = 35664, Qa = 35665, mo = 35666, Bo = 5124, Ps = 35667, Ts = 35668, wo = 35669, To = 35670, hl = 35671, Ul = 35672, Lu = 35673, au = 35674, Js = 35675, eu = 35676, dc = 35678, Tl = 35680, Al = 4, X = 1028, se = 1029, Te = 2304, Ne = 2305, He = 32775, Ye = 32776, kt = 519, nt = 7680, jt = 0, gr = 1, yr = 32774, Hr = 513, qr = 36160, _i = 36064, bi = { 0: 0, 1: 1, zero: 0, one: 1, "src color": 768, "one minus src color": 769, "src alpha": 770, "one minus src alpha": 771, "dst color": 774, "one minus dst color": 775, "dst alpha": 772, "one minus dst alpha": 773, "constant color": 32769, "one minus constant color": 32770, "constant alpha": 32771, "one minus constant alpha": 32772, "src alpha saturate": 776 }, Zr = { never: 512, less: 513, "<": 513, equal: 514, "=": 514, "==": 514, "===": 514, lequal: 515, "<=": 515, greater: 516, ">": 516, notequal: 517, "!=": 517, "!==": 517, gequal: 518, ">=": 518, always: 519 }, ai = { 0: 0, zero: 0, keep: 7680, replace: 7681, increment: 7682, decrement: 7683, "increment wrap": 34055, "decrement wrap": 34056, invert: 5386 }, gi = { cw: Te, ccw: Ne };
+ function Ii(Me) {
+ return Array.isArray(Me) || Br(Me) || Vr(Me);
+ }
+ function Si(Me) {
+ return Me.sort(function(bt, zt) {
+ return bt === ee ? -1 : zt === ee ? 1 : bt < zt ? -1 : 1;
+ });
+ }
+ function ei(Me, bt, zt, Rr) {
+ this.thisDep = Me, this.contextDep = bt, this.propDep = zt, this.append = Rr;
+ }
+ function Ln(Me) {
+ return Me && !(Me.thisDep || Me.contextDep || Me.propDep);
+ }
+ function En(Me) {
+ return new ei(false, false, false, Me);
+ }
+ function Un(Me, bt) {
+ var zt = Me.type;
+ if (zt === Yn) {
+ var Rr = Me.data.length;
+ return new ei(true, Rr >= 1, Rr >= 2, bt);
+ } else if (zt === Zo) {
+ var jr = Me.data;
+ return new ei(jr.thisDep, jr.contextDep, jr.propDep, bt);
+ } else {
+ if (zt === Ss) return new ei(false, false, false, bt);
+ if (zt === as) {
+ for (var Nr = false, Gr = false, mi = false, Ui = 0; Ui < Me.data.length; ++Ui) {
+ var qi = Me.data[Ui];
+ if (qi.type === Dn) mi = true;
+ else if (qi.type === Ka) Gr = true;
+ else if (qi.type === bo) Nr = true;
+ else if (qi.type === Yn) {
+ Nr = true;
+ var Ei = qi.data;
+ Ei >= 1 && (Gr = true), Ei >= 2 && (mi = true);
+ } else qi.type === Zo && (Nr = Nr || qi.data.thisDep, Gr = Gr || qi.data.contextDep, mi = mi || qi.data.propDep);
+ }
+ return new ei(Nr, Gr, mi, bt);
+ } else return new ei(zt === bo, zt === Ka, zt === Dn, bt);
+ }
+ }
+ var ia = new ei(false, false, false, function() {
+ });
+ function Ea(Me, bt, zt, Rr, jr, Nr, Gr, mi, Ui, qi, Ei, Hn, en, Wi, si, Mr) {
+ var Yr = qi.Record, xi = { add: 32774, subtract: 32778, "reverse subtract": 32779 };
+ zt.ext_blend_minmax && (xi.min = He, xi.max = Ye);
+ var Ri = zt.angle_instanced_arrays, ci = zt.webgl_draw_buffers, an = zt.oes_vertex_array_object, Zi = { dirty: true, profile: Mr.profile }, Bn = {}, hi = [], li = {}, mn = {};
+ function Ji(Ve) {
+ return Ve.replace(".", "_");
+ }
+ function Vi(Ve, Qe, at) {
+ var Ct = Ji(Ve);
+ hi.push(Ve), Bn[Ct] = Zi[Ct] = !!at, li[Ct] = Qe;
+ }
+ function Ni(Ve, Qe, at) {
+ var Ct = Ji(Ve);
+ hi.push(Ve), Array.isArray(at) ? (Zi[Ct] = at.slice(), Bn[Ct] = at.slice()) : Zi[Ct] = Bn[Ct] = at, mn[Ct] = Qe;
+ }
+ function pn(Ve) {
+ return !!isNaN(Ve);
+ }
+ Vi(ws, Pi), Vi(Ho, ni), Ni(ml, "blendColor", [0, 0, 0, 0]), Ni(Ws, "blendEquationSeparate", [yr, yr]), Ni(Ls, "blendFuncSeparate", [gr, jt, gr, jt]), Vi(va, ln, true), Ni(no, "depthFunc", Hr), Ni(ys, "depthRange", [0, 1]), Ni(rs, "depthMask", true), Ni(Ql, Ql, [true, true, true, true]), Vi(Cu, Wr), Ni(Yu, "cullFace", se), Ni(Nc, Nc, Ne), Ni(pu, pu, 1), Vi(Uc, Kn), Ni(xu, "polygonOffset", [0, 0]), Vi(Ac, Aa), Vi(Ua, fa), Ni(oo, "sampleCoverage", [1, false]), Vi(Vc, cn), Ni(hc, "stencilMask", -1), Ni(Ku, "stencilFunc", [kt, 0, -1]), Ni(ue, "stencilOpSeparate", [X, nt, nt, nt]), Ni(w, "stencilOpSeparate", [se, nt, nt, nt]), Vi(B, Cn), Ni(Q, "scissor", [0, 0, Me.drawingBufferWidth, Me.drawingBufferHeight]), Ni(ee, ee, [0, 0, Me.drawingBufferWidth, Me.drawingBufferHeight]);
+ var Vn = { gl: Me, context: en, strings: bt, next: Bn, current: Zi, draw: Hn, elements: Nr, buffer: jr, shader: Ei, attributes: qi.state, vao: qi, uniforms: Ui, framebuffer: mi, extensions: zt, timer: Wi, isBufferArgs: Ii }, na = { primTypes: Sn, compareFuncs: Zr, blendFuncs: bi, blendEquations: xi, stencilOps: ai, glTypes: ji, orientationType: gi };
+ ci && (na.backBuffer = [se], na.drawBuffer = M(Rr.maxDrawbuffers, function(Ve) {
+ return Ve === 0 ? [0] : M(Ve, function(Qe) {
+ return _i + Qe;
+ });
+ }));
+ var Ki = 0;
+ function kn() {
+ var Ve = Qn({ cache: si }), Qe = Ve.link, at = Ve.global;
+ Ve.id = Ki++, Ve.batchId = "0";
+ var Ct = Qe(Vn), Ot = Ve.shared = { props: "a0" };
+ Object.keys(Vn).forEach(function(Pt) {
+ Ot[Pt] = at.def(Ct, ".", Pt);
+ });
+ var Rt = Ve.next = {}, Bt = Ve.current = {};
+ Object.keys(mn).forEach(function(Pt) {
+ Array.isArray(Zi[Pt]) && (Rt[Pt] = at.def(Ot.next, ".", Pt), Bt[Pt] = at.def(Ot.current, ".", Pt));
+ });
+ var Dt = Ve.constants = {};
+ Object.keys(na).forEach(function(Pt) {
+ Dt[Pt] = at.def(JSON.stringify(na[Pt]));
+ }), Ve.invoke = function(Pt, ht) {
+ switch (ht.type) {
+ case Yn:
+ var ur = ["this", Ot.context, Ot.props, Ve.batchId];
+ return Pt.def(Qe(ht.data), ".call(", ur.slice(0, Math.max(ht.data.length + 1, 4)), ")");
+ case Dn:
+ return Pt.def(Ot.props, ht.data);
+ case Ka:
+ return Pt.def(Ot.context, ht.data);
+ case bo:
+ return Pt.def("this", ht.data);
+ case Zo:
+ return ht.data.append(Ve, Pt), ht.data.ref;
+ case Ss:
+ return ht.data.toString();
+ case as:
+ return ht.data.map(function(br) {
+ return Ve.invoke(Pt, br);
+ });
+ }
+ }, Ve.attribCache = {};
+ var yt = {};
+ return Ve.scopeAttrib = function(Pt) {
+ var ht = bt.id(Pt);
+ if (ht in yt) return yt[ht];
+ var ur = qi.scope[ht];
+ ur || (ur = qi.scope[ht] = new Yr());
+ var br = yt[ht] = Qe(ur);
+ return br;
+ }, Ve;
+ }
+ function ta(Ve) {
+ var Qe = Ve.static, at = Ve.dynamic, Ct;
+ if (le in Qe) {
+ var Ot = !!Qe[le];
+ Ct = En(function(Bt, Dt) {
+ return Ot;
+ }), Ct.enable = Ot;
+ } else if (le in at) {
+ var Rt = at[le];
+ Ct = Un(Rt, function(Bt, Dt) {
+ return Bt.invoke(Dt, Rt);
+ });
+ }
+ return Ct;
+ }
+ function oa(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic;
+ if (Oe in at) {
+ var Ot = at[Oe];
+ return Ot ? (Ot = mi.getFramebuffer(Ot), En(function(Bt, Dt) {
+ var yt = Bt.link(Ot), Pt = Bt.shared;
+ Dt.set(Pt.framebuffer, ".next", yt);
+ var ht = Pt.context;
+ return Dt.set(ht, "." + qe, yt + ".width"), Dt.set(ht, "." + et, yt + ".height"), yt;
+ })) : En(function(Bt, Dt) {
+ var yt = Bt.shared;
+ Dt.set(yt.framebuffer, ".next", "null");
+ var Pt = yt.context;
+ return Dt.set(Pt, "." + qe, Pt + "." + Ht), Dt.set(Pt, "." + et, Pt + "." + tr), "null";
+ });
+ } else if (Oe in Ct) {
+ var Rt = Ct[Oe];
+ return Un(Rt, function(Bt, Dt) {
+ var yt = Bt.invoke(Dt, Rt), Pt = Bt.shared, ht = Pt.framebuffer, ur = Dt.def(ht, ".getFramebuffer(", yt, ")");
+ Dt.set(ht, ".next", ur);
+ var br = Pt.context;
+ return Dt.set(br, "." + qe, ur + "?" + ur + ".width:" + br + "." + Ht), Dt.set(br, "." + et, ur + "?" + ur + ".height:" + br + "." + tr), ur;
+ });
+ } else return null;
+ }
+ function ba(Ve, Qe, at) {
+ var Ct = Ve.static, Ot = Ve.dynamic;
+ function Rt(yt) {
+ if (yt in Ct) {
+ var Pt = Ct[yt], ht = true, ur = Pt.x | 0, br = Pt.y | 0, Ur, Di;
+ return "width" in Pt ? Ur = Pt.width | 0 : ht = false, "height" in Pt ? Di = Pt.height | 0 : ht = false, new ei(!ht && Qe && Qe.thisDep, !ht && Qe && Qe.contextDep, !ht && Qe && Qe.propDep, function(gn, rn) {
+ var Ci = gn.shared.context, Bi = Ur;
+ "width" in Pt || (Bi = rn.def(Ci, ".", qe, "-", ur));
+ var Gi = Di;
+ return "height" in Pt || (Gi = rn.def(Ci, ".", et, "-", br)), [ur, br, Bi, Gi];
+ });
+ } else if (yt in Ot) {
+ var fi = Ot[yt], Ti = Un(fi, function(gn, rn) {
+ var Ci = gn.invoke(rn, fi), Bi = gn.shared.context, Gi = rn.def(Ci, ".x|0"), sn = rn.def(Ci, ".y|0"), zn = rn.def('"width" in ', Ci, "?", Ci, ".width|0:", "(", Bi, ".", qe, "-", Gi, ")"), Ja = rn.def('"height" in ', Ci, "?", Ci, ".height|0:", "(", Bi, ".", et, "-", sn, ")");
+ return [Gi, sn, zn, Ja];
+ });
+ return Qe && (Ti.thisDep = Ti.thisDep || Qe.thisDep, Ti.contextDep = Ti.contextDep || Qe.contextDep, Ti.propDep = Ti.propDep || Qe.propDep), Ti;
+ } else return Qe ? new ei(Qe.thisDep, Qe.contextDep, Qe.propDep, function(gn, rn) {
+ var Ci = gn.shared.context;
+ return [0, 0, rn.def(Ci, ".", qe), rn.def(Ci, ".", et)];
+ }) : null;
+ }
+ var Bt = Rt(ee);
+ if (Bt) {
+ var Dt = Bt;
+ Bt = new ei(Bt.thisDep, Bt.contextDep, Bt.propDep, function(yt, Pt) {
+ var ht = Dt.append(yt, Pt), ur = yt.shared.context;
+ return Pt.set(ur, "." + Xe, ht[2]), Pt.set(ur, "." + it, ht[3]), ht;
+ });
+ }
+ return { viewport: Bt, scissor_box: Rt(Q) };
+ }
+ function is(Ve, Qe) {
+ var at = Ve.static, Ct = typeof at[st] == "string" && typeof at[Ze] == "string";
+ if (Ct) {
+ if (Object.keys(Qe.dynamic).length > 0) return null;
+ var Ot = Qe.static, Rt = Object.keys(Ot);
+ if (Rt.length > 0 && typeof Ot[Rt[0]] == "number") {
+ for (var Bt = [], Dt = 0; Dt < Rt.length; ++Dt) Bt.push([Ot[Rt[Dt]] | 0, Rt[Dt]]);
+ return Bt;
+ }
+ }
+ return null;
+ }
+ function Zs(Ve, Qe, at) {
+ var Ct = Ve.static, Ot = Ve.dynamic;
+ function Rt(ht) {
+ if (ht in Ct) {
+ var ur = bt.id(Ct[ht]), br = En(function() {
+ return ur;
+ });
+ return br.id = ur, br;
+ } else if (ht in Ot) {
+ var Ur = Ot[ht];
+ return Un(Ur, function(Di, fi) {
+ var Ti = Di.invoke(fi, Ur), gn = fi.def(Di.shared.strings, ".id(", Ti, ")");
+ return gn;
+ });
+ }
+ return null;
+ }
+ var Bt = Rt(st), Dt = Rt(Ze), yt = null, Pt;
+ return Ln(Bt) && Ln(Dt) ? (yt = Ei.program(Dt.id, Bt.id, null, at), Pt = En(function(ht, ur) {
+ return ht.link(yt);
+ })) : Pt = new ei(Bt && Bt.thisDep || Dt && Dt.thisDep, Bt && Bt.contextDep || Dt && Dt.contextDep, Bt && Bt.propDep || Dt && Dt.propDep, function(ht, ur) {
+ var br = ht.shared.shader, Ur;
+ Bt ? Ur = Bt.append(ht, ur) : Ur = ur.def(br, ".", st);
+ var Di;
+ Dt ? Di = Dt.append(ht, ur) : Di = ur.def(br, ".", Ze);
+ var fi = br + ".program(" + Di + "," + Ur;
+ return ur.def(fi + ")");
+ }), { frag: Bt, vert: Dt, progVar: Pt, program: yt };
+ }
+ function Va(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic, Ot = {}, Rt = false;
+ function Bt() {
+ if (ve in at) {
+ var rn = at[ve];
+ return rn !== null && qi.getVAO(rn) === null && (rn = qi.createVAO(rn)), Rt = true, Ot.vao = rn, En(function(Bi) {
+ var Gi = qi.getVAO(rn);
+ return Gi ? Bi.link(Gi) : "null";
+ });
+ } else if (ve in Ct) {
+ Rt = true;
+ var Ci = Ct[ve];
+ return Un(Ci, function(Bi, Gi) {
+ var sn = Bi.invoke(Gi, Ci);
+ return Gi.def(Bi.shared.vao + ".getVAO(" + sn + ")");
+ });
+ }
+ return null;
+ }
+ var Dt = Bt(), yt = false;
+ function Pt() {
+ if (Tt in at) {
+ var rn = at[Tt];
+ if (Ot.elements = rn, Ii(rn)) {
+ var Ci = Ot.elements = Nr.create(rn, true);
+ rn = Nr.getElements(Ci), yt = true;
+ } else rn && (rn = Nr.getElements(rn), yt = true);
+ var Bi = En(function(sn, zn) {
+ if (rn) {
+ var Ja = sn.link(rn);
+ return sn.ELEMENTS = Ja, Ja;
+ }
+ return sn.ELEMENTS = null, null;
+ });
+ return Bi.value = rn, Bi;
+ } else if (Tt in Ct) {
+ yt = true;
+ var Gi = Ct[Tt];
+ return Un(Gi, function(sn, zn) {
+ var Ja = sn.shared, co = Ja.isBufferArgs, ts = Ja.elements, so = sn.invoke(zn, Gi), Yo = zn.def("null"), ms = zn.def(co, "(", so, ")"), ou = sn.cond(ms).then(Yo, "=", ts, ".createStream(", so, ");").else(Yo, "=", ts, ".getElements(", so, ");");
+ return zn.entry(ou), zn.exit(sn.cond(ms).then(ts, ".destroyStream(", Yo, ");")), sn.ELEMENTS = Yo, Yo;
+ });
+ } else if (Rt) return new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(sn, zn) {
+ return zn.def(sn.shared.vao + ".currentVAO?" + sn.shared.elements + ".getElements(" + sn.shared.vao + ".currentVAO.elements):null");
+ });
+ return null;
+ }
+ var ht = Pt();
+ function ur() {
+ if (Yt in at) {
+ var rn = at[Yt];
+ return Ot.primitive = rn, En(function(Bi, Gi) {
+ return Sn[rn];
+ });
+ } else if (Yt in Ct) {
+ var Ci = Ct[Yt];
+ return Un(Ci, function(Bi, Gi) {
+ var sn = Bi.constants.primTypes, zn = Bi.invoke(Gi, Ci);
+ return Gi.def(sn, "[", zn, "]");
+ });
+ } else {
+ if (yt) return Ln(ht) ? ht.value ? En(function(Bi, Gi) {
+ return Gi.def(Bi.ELEMENTS, ".primType");
+ }) : En(function() {
+ return Al;
+ }) : new ei(ht.thisDep, ht.contextDep, ht.propDep, function(Bi, Gi) {
+ var sn = Bi.ELEMENTS;
+ return Gi.def(sn, "?", sn, ".primType:", Al);
+ });
+ if (Rt) return new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(Bi, Gi) {
+ return Gi.def(Bi.shared.vao + ".currentVAO?" + Bi.shared.vao + ".currentVAO.primitive:" + Al);
+ });
+ }
+ return null;
+ }
+ function br(rn, Ci) {
+ if (rn in at) {
+ var Bi = at[rn] | 0;
+ return Ci ? Ot.offset = Bi : Ot.instances = Bi, En(function(sn, zn) {
+ return Ci && (sn.OFFSET = Bi), Bi;
+ });
+ } else if (rn in Ct) {
+ var Gi = Ct[rn];
+ return Un(Gi, function(sn, zn) {
+ var Ja = sn.invoke(zn, Gi);
+ return Ci && (sn.OFFSET = Ja), Ja;
+ });
+ } else if (Ci) {
+ if (yt) return En(function(sn, zn) {
+ return sn.OFFSET = 0, 0;
+ });
+ if (Rt) return new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(sn, zn) {
+ return zn.def(sn.shared.vao + ".currentVAO?" + sn.shared.vao + ".currentVAO.offset:0");
+ });
+ } else if (Rt) return new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(sn, zn) {
+ return zn.def(sn.shared.vao + ".currentVAO?" + sn.shared.vao + ".currentVAO.instances:-1");
+ });
+ return null;
+ }
+ var Ur = br(xr, true);
+ function Di() {
+ if (Kt in at) {
+ var rn = at[Kt] | 0;
+ return Ot.count = rn, En(function() {
+ return rn;
+ });
+ } else if (Kt in Ct) {
+ var Ci = Ct[Kt];
+ return Un(Ci, function(zn, Ja) {
+ var co = zn.invoke(Ja, Ci);
+ return co;
+ });
+ } else if (yt) if (Ln(ht)) {
+ if (ht) return Ur ? new ei(Ur.thisDep, Ur.contextDep, Ur.propDep, function(zn, Ja) {
+ var co = Ja.def(zn.ELEMENTS, ".vertCount-", zn.OFFSET);
+ return co;
+ }) : En(function(zn, Ja) {
+ return Ja.def(zn.ELEMENTS, ".vertCount");
+ });
+ var Bi = En(function() {
+ return -1;
+ });
+ return Bi;
+ } else {
+ var Gi = new ei(ht.thisDep || Ur.thisDep, ht.contextDep || Ur.contextDep, ht.propDep || Ur.propDep, function(zn, Ja) {
+ var co = zn.ELEMENTS;
+ return zn.OFFSET ? Ja.def(co, "?", co, ".vertCount-", zn.OFFSET, ":-1") : Ja.def(co, "?", co, ".vertCount:-1");
+ });
+ return Gi;
+ }
+ else if (Rt) {
+ var sn = new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(zn, Ja) {
+ return Ja.def(zn.shared.vao, ".currentVAO?", zn.shared.vao, ".currentVAO.count:-1");
+ });
+ return sn;
+ }
+ return null;
+ }
+ var fi = ur(), Ti = Di(), gn = br(Ir, false);
+ return { elements: ht, primitive: fi, count: Ti, instances: gn, offset: Ur, vao: Dt, vaoActive: Rt, elementsActive: yt, static: Ot };
+ }
+ function Ml(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic, Ot = {};
+ return hi.forEach(function(Rt) {
+ var Bt = Ji(Rt);
+ function Dt(yt, Pt) {
+ if (Rt in at) {
+ var ht = yt(at[Rt]);
+ Ot[Bt] = En(function() {
+ return ht;
+ });
+ } else if (Rt in Ct) {
+ var ur = Ct[Rt];
+ Ot[Bt] = Un(ur, function(br, Ur) {
+ return Pt(br, Ur, br.invoke(Ur, ur));
+ });
+ }
+ }
+ switch (Rt) {
+ case Cu:
+ case Ho:
+ case ws:
+ case Vc:
+ case va:
+ case B:
+ case Uc:
+ case Ac:
+ case Ua:
+ case rs:
+ return Dt(function(yt) {
+ return yt;
+ }, function(yt, Pt, ht) {
+ return ht;
+ });
+ case no:
+ return Dt(function(yt) {
+ return Zr[yt];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.compareFuncs;
+ return Pt.def(ur, "[", ht, "]");
+ });
+ case ys:
+ return Dt(function(yt) {
+ return yt;
+ }, function(yt, Pt, ht) {
+ var ur = Pt.def("+", ht, "[0]"), br = Pt.def("+", ht, "[1]");
+ return [ur, br];
+ });
+ case Ls:
+ return Dt(function(yt) {
+ var Pt = "srcRGB" in yt ? yt.srcRGB : yt.src, ht = "srcAlpha" in yt ? yt.srcAlpha : yt.src, ur = "dstRGB" in yt ? yt.dstRGB : yt.dst, br = "dstAlpha" in yt ? yt.dstAlpha : yt.dst;
+ return [bi[Pt], bi[ur], bi[ht], bi[br]];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.blendFuncs;
+ function br(Ci, Bi) {
+ var Gi = Pt.def('"', Ci, Bi, '" in ', ht, "?", ht, ".", Ci, Bi, ":", ht, ".", Ci);
+ return Gi;
+ }
+ var Ur = br("src", "RGB"), Di = br("dst", "RGB"), fi = Pt.def(ur, "[", Ur, "]"), Ti = Pt.def(ur, "[", br("src", "Alpha"), "]"), gn = Pt.def(ur, "[", Di, "]"), rn = Pt.def(ur, "[", br("dst", "Alpha"), "]");
+ return [fi, gn, Ti, rn];
+ });
+ case Ws:
+ return Dt(function(yt) {
+ if (typeof yt == "string") return [xi[yt], xi[yt]];
+ if (typeof yt == "object") return [xi[yt.rgb], xi[yt.alpha]];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.blendEquations, br = Pt.def(), Ur = Pt.def(), Di = yt.cond("typeof ", ht, '==="string"');
+ return Di.then(br, "=", Ur, "=", ur, "[", ht, "];"), Di.else(br, "=", ur, "[", ht, ".rgb];", Ur, "=", ur, "[", ht, ".alpha];"), Pt(Di), [br, Ur];
+ });
+ case ml:
+ return Dt(function(yt) {
+ return M(4, function(Pt) {
+ return +yt[Pt];
+ });
+ }, function(yt, Pt, ht) {
+ return M(4, function(ur) {
+ return Pt.def("+", ht, "[", ur, "]");
+ });
+ });
+ case hc:
+ return Dt(function(yt) {
+ return yt | 0;
+ }, function(yt, Pt, ht) {
+ return Pt.def(ht, "|0");
+ });
+ case Ku:
+ return Dt(function(yt) {
+ var Pt = yt.cmp || "keep", ht = yt.ref || 0, ur = "mask" in yt ? yt.mask : -1;
+ return [Zr[Pt], ht, ur];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.compareFuncs, br = Pt.def('"cmp" in ', ht, "?", ur, "[", ht, ".cmp]", ":", nt), Ur = Pt.def(ht, ".ref|0"), Di = Pt.def('"mask" in ', ht, "?", ht, ".mask|0:-1");
+ return [br, Ur, Di];
+ });
+ case ue:
+ case w:
+ return Dt(function(yt) {
+ var Pt = yt.fail || "keep", ht = yt.zfail || "keep", ur = yt.zpass || "keep";
+ return [Rt === w ? se : X, ai[Pt], ai[ht], ai[ur]];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.stencilOps;
+ function br(Ur) {
+ return Pt.def('"', Ur, '" in ', ht, "?", ur, "[", ht, ".", Ur, "]:", nt);
+ }
+ return [Rt === w ? se : X, br("fail"), br("zfail"), br("zpass")];
+ });
+ case xu:
+ return Dt(function(yt) {
+ var Pt = yt.factor | 0, ht = yt.units | 0;
+ return [Pt, ht];
+ }, function(yt, Pt, ht) {
+ var ur = Pt.def(ht, ".factor|0"), br = Pt.def(ht, ".units|0");
+ return [ur, br];
+ });
+ case Yu:
+ return Dt(function(yt) {
+ var Pt = 0;
+ return yt === "front" ? Pt = X : yt === "back" && (Pt = se), Pt;
+ }, function(yt, Pt, ht) {
+ return Pt.def(ht, '==="front"?', X, ":", se);
+ });
+ case pu:
+ return Dt(function(yt) {
+ return yt;
+ }, function(yt, Pt, ht) {
+ return ht;
+ });
+ case Nc:
+ return Dt(function(yt) {
+ return gi[yt];
+ }, function(yt, Pt, ht) {
+ return Pt.def(ht + '==="cw"?' + Te + ":" + Ne);
+ });
+ case Ql:
+ return Dt(function(yt) {
+ return yt.map(function(Pt) {
+ return !!Pt;
+ });
+ }, function(yt, Pt, ht) {
+ return M(4, function(ur) {
+ return "!!" + ht + "[" + ur + "]";
+ });
+ });
+ case oo:
+ return Dt(function(yt) {
+ var Pt = "value" in yt ? yt.value : 1, ht = !!yt.invert;
+ return [Pt, ht];
+ }, function(yt, Pt, ht) {
+ var ur = Pt.def('"value" in ', ht, "?+", ht, ".value:1"), br = Pt.def("!!", ht, ".invert");
+ return [ur, br];
+ });
+ }
+ }), Ot;
+ }
+ function zo(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic, Ot = {};
+ return Object.keys(at).forEach(function(Rt) {
+ var Bt = at[Rt], Dt;
+ if (typeof Bt == "number" || typeof Bt == "boolean") Dt = En(function() {
+ return Bt;
+ });
+ else if (typeof Bt == "function") {
+ var yt = Bt._reglType;
+ yt === "texture2d" || yt === "textureCube" ? Dt = En(function(Pt) {
+ return Pt.link(Bt);
+ }) : (yt === "framebuffer" || yt === "framebufferCube") && (Dt = En(function(Pt) {
+ return Pt.link(Bt.color[0]);
+ }));
+ } else Mn(Bt) && (Dt = En(function(Pt) {
+ var ht = Pt.global.def("[", M(Bt.length, function(ur) {
+ return Bt[ur];
+ }), "]");
+ return ht;
+ }));
+ Dt.value = Bt, Ot[Rt] = Dt;
+ }), Object.keys(Ct).forEach(function(Rt) {
+ var Bt = Ct[Rt];
+ Ot[Rt] = Un(Bt, function(Dt, yt) {
+ return Dt.invoke(yt, Bt);
+ });
+ }), Ot;
+ }
+ function Qs(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic, Ot = {};
+ return Object.keys(at).forEach(function(Rt) {
+ var Bt = at[Rt], Dt = bt.id(Rt), yt = new Yr();
+ if (Ii(Bt)) yt.state = La, yt.buffer = jr.getBuffer(jr.create(Bt, Sr, false, true)), yt.type = 0;
+ else {
+ var Pt = jr.getBuffer(Bt);
+ if (Pt) yt.state = La, yt.buffer = Pt, yt.type = 0;
+ else if ("constant" in Bt) {
+ var ht = Bt.constant;
+ yt.buffer = "null", yt.state = Na, typeof ht == "number" ? yt.x = ht : Ca.forEach(function(gn, rn) {
+ rn < ht.length && (yt[gn] = ht[rn]);
+ });
+ } else {
+ Ii(Bt.buffer) ? Pt = jr.getBuffer(jr.create(Bt.buffer, Sr, false, true)) : Pt = jr.getBuffer(Bt.buffer);
+ var ur = Bt.offset | 0, br = Bt.stride | 0, Ur = Bt.size | 0, Di = !!Bt.normalized, fi = 0;
+ "type" in Bt && (fi = ji[Bt.type]);
+ var Ti = Bt.divisor | 0;
+ yt.buffer = Pt, yt.state = La, yt.size = Ur, yt.normalized = Di, yt.type = fi || Pt.dtype, yt.offset = ur, yt.stride = br, yt.divisor = Ti;
+ }
+ }
+ Ot[Rt] = En(function(gn, rn) {
+ var Ci = gn.attribCache;
+ if (Dt in Ci) return Ci[Dt];
+ var Bi = { isStream: false };
+ return Object.keys(yt).forEach(function(Gi) {
+ Bi[Gi] = yt[Gi];
+ }), yt.buffer && (Bi.buffer = gn.link(yt.buffer), Bi.type = Bi.type || Bi.buffer + ".dtype"), Ci[Dt] = Bi, Bi;
+ });
+ }), Object.keys(Ct).forEach(function(Rt) {
+ var Bt = Ct[Rt];
+ function Dt(yt, Pt) {
+ var ht = yt.invoke(Pt, Bt), ur = yt.shared, br = yt.constants, Ur = ur.isBufferArgs, Di = ur.buffer, fi = { isStream: Pt.def(false) }, Ti = new Yr();
+ Ti.state = La, Object.keys(Ti).forEach(function(Bi) {
+ fi[Bi] = Pt.def("" + Ti[Bi]);
+ });
+ var gn = fi.buffer, rn = fi.type;
+ Pt("if(", Ur, "(", ht, ")){", fi.isStream, "=true;", gn, "=", Di, ".createStream(", Sr, ",", ht, ");", rn, "=", gn, ".dtype;", "}else{", gn, "=", Di, ".getBuffer(", ht, ");", "if(", gn, "){", rn, "=", gn, ".dtype;", '}else if("constant" in ', ht, "){", fi.state, "=", Na, ";", "if(typeof " + ht + '.constant === "number"){', fi[Ca[0]], "=", ht, ".constant;", Ca.slice(1).map(function(Bi) {
+ return fi[Bi];
+ }).join("="), "=0;", "}else{", Ca.map(function(Bi, Gi) {
+ return fi[Bi] + "=" + ht + ".constant.length>" + Gi + "?" + ht + ".constant[" + Gi + "]:0;";
+ }).join(""), "}}else{", "if(", Ur, "(", ht, ".buffer)){", gn, "=", Di, ".createStream(", Sr, ",", ht, ".buffer);", "}else{", gn, "=", Di, ".getBuffer(", ht, ".buffer);", "}", rn, '="type" in ', ht, "?", br.glTypes, "[", ht, ".type]:", gn, ".dtype;", fi.normalized, "=!!", ht, ".normalized;");
+ function Ci(Bi) {
+ Pt(fi[Bi], "=", ht, ".", Bi, "|0;");
+ }
+ return Ci("size"), Ci("offset"), Ci("stride"), Ci("divisor"), Pt("}}"), Pt.exit("if(", fi.isStream, "){", Di, ".destroyStream(", gn, ");", "}"), fi;
+ }
+ Ot[Rt] = Un(Bt, Dt);
+ }), Ot;
+ }
+ function al(Ve) {
+ var Qe = Ve.static, at = Ve.dynamic, Ct = {};
+ return Object.keys(Qe).forEach(function(Ot) {
+ var Rt = Qe[Ot];
+ Ct[Ot] = En(function(Bt, Dt) {
+ return typeof Rt == "number" || typeof Rt == "boolean" ? "" + Rt : Bt.link(Rt);
+ });
+ }), Object.keys(at).forEach(function(Ot) {
+ var Rt = at[Ot];
+ Ct[Ot] = Un(Rt, function(Bt, Dt) {
+ return Bt.invoke(Dt, Rt);
+ });
+ }), Ct;
+ }
+ function Vl(Ve, Qe, at, Ct, Ot) {
+ Ve.static;
+ Ve.dynamic;
+ var Dt = is(Ve, Qe), yt = oa(Ve), Pt = ba(Ve, yt), ht = Va(Ve), ur = Ml(Ve), br = Zs(Ve, Ot, Dt);
+ function Ur(Ci) {
+ var Bi = Pt[Ci];
+ Bi && (ur[Ci] = Bi);
+ }
+ Ur(ee), Ur(Ji(Q));
+ var Di = Object.keys(ur).length > 0, fi = { framebuffer: yt, draw: ht, shader: br, state: ur, dirty: Di, scopeVAO: null, drawVAO: null, useVAO: false, attributes: {} };
+ if (fi.profile = ta(Ve), fi.uniforms = zo(at), fi.drawVAO = fi.scopeVAO = ht.vao, !fi.drawVAO && br.program && !Dt && zt.angle_instanced_arrays && ht.static.elements) {
+ var Ti = true, gn = br.program.attributes.map(function(Ci) {
+ var Bi = Qe.static[Ci];
+ return Ti = Ti && !!Bi, Bi;
+ });
+ if (Ti && gn.length > 0) {
+ var rn = qi.getVAO(qi.createVAO({ attributes: gn, elements: ht.static.elements }));
+ fi.drawVAO = new ei(null, null, null, function(Ci, Bi) {
+ return Ci.link(rn);
+ }), fi.useVAO = true;
+ }
+ }
+ return Dt ? fi.useVAO = true : fi.attributes = Qs(Qe), fi.context = al(Ct), fi;
+ }
+ function ss(Ve, Qe, at) {
+ var Ct = Ve.shared, Ot = Ct.context, Rt = Ve.scope();
+ Object.keys(at).forEach(function(Bt) {
+ Qe.save(Ot, "." + Bt);
+ var Dt = at[Bt], yt = Dt.append(Ve, Qe);
+ Array.isArray(yt) ? Rt(Ot, ".", Bt, "=[", yt.join(), "];") : Rt(Ot, ".", Bt, "=", yt, ";");
+ }), Qe(Rt);
+ }
+ function Vs(Ve, Qe, at, Ct) {
+ var Ot = Ve.shared, Rt = Ot.gl, Bt = Ot.framebuffer, Dt;
+ ci && (Dt = Qe.def(Ot.extensions, ".webgl_draw_buffers"));
+ var yt = Ve.constants, Pt = yt.drawBuffer, ht = yt.backBuffer, ur;
+ at ? ur = at.append(Ve, Qe) : ur = Qe.def(Bt, ".next"), Ct || Qe("if(", ur, "!==", Bt, ".cur){"), Qe("if(", ur, "){", Rt, ".bindFramebuffer(", qr, ",", ur, ".framebuffer);"), ci && Qe(Dt, ".drawBuffersWEBGL(", Pt, "[", ur, ".colorAttachments.length]);"), Qe("}else{", Rt, ".bindFramebuffer(", qr, ",null);"), ci && Qe(Dt, ".drawBuffersWEBGL(", ht, ");"), Qe("}", Bt, ".cur=", ur, ";"), Ct || Qe("}");
+ }
+ function Ys(Ve, Qe, at) {
+ var Ct = Ve.shared, Ot = Ct.gl, Rt = Ve.current, Bt = Ve.next, Dt = Ct.current, yt = Ct.next, Pt = Ve.cond(Dt, ".dirty");
+ hi.forEach(function(ht) {
+ var ur = Ji(ht);
+ if (!(ur in at.state)) {
+ var br, Ur;
+ if (ur in Bt) {
+ br = Bt[ur], Ur = Rt[ur];
+ var Di = M(Zi[ur].length, function(Ti) {
+ return Pt.def(br, "[", Ti, "]");
+ });
+ Pt(Ve.cond(Di.map(function(Ti, gn) {
+ return Ti + "!==" + Ur + "[" + gn + "]";
+ }).join("||")).then(Ot, ".", mn[ur], "(", Di, ");", Di.map(function(Ti, gn) {
+ return Ur + "[" + gn + "]=" + Ti;
+ }).join(";"), ";"));
+ } else {
+ br = Pt.def(yt, ".", ur);
+ var fi = Ve.cond(br, "!==", Dt, ".", ur);
+ Pt(fi), ur in li ? fi(Ve.cond(br).then(Ot, ".enable(", li[ur], ");").else(Ot, ".disable(", li[ur], ");"), Dt, ".", ur, "=", br, ";") : fi(Ot, ".", mn[ur], "(", br, ");", Dt, ".", ur, "=", br, ";");
+ }
+ }
+ }), Object.keys(at.state).length === 0 && Pt(Dt, ".dirty=false;"), Qe(Pt);
+ }
+ function wa(Ve, Qe, at, Ct) {
+ var Ot = Ve.shared, Rt = Ve.current, Bt = Ot.current, Dt = Ot.gl, yt;
+ Si(Object.keys(at)).forEach(function(Pt) {
+ var ht = at[Pt];
+ if (!(Ct && !Ct(ht))) {
+ var ur = ht.append(Ve, Qe);
+ if (li[Pt]) {
+ var br = li[Pt];
+ Ln(ht) ? (yt = Ve.link(ur, { stable: true }), Qe(Ve.cond(yt).then(Dt, ".enable(", br, ");").else(Dt, ".disable(", br, ");")), Qe(Bt, ".", Pt, "=", yt, ";")) : (Qe(Ve.cond(ur).then(Dt, ".enable(", br, ");").else(Dt, ".disable(", br, ");")), Qe(Bt, ".", Pt, "=", ur, ";"));
+ } else if (Mn(ur)) {
+ var Ur = Rt[Pt];
+ Qe(Dt, ".", mn[Pt], "(", ur, ");", ur.map(function(Di, fi) {
+ return Ur + "[" + fi + "]=" + Di;
+ }).join(";"), ";");
+ } else Ln(ht) ? (yt = Ve.link(ur, { stable: true }), Qe(Dt, ".", mn[Pt], "(", yt, ");", Bt, ".", Pt, "=", yt, ";")) : Qe(Dt, ".", mn[Pt], "(", ur, ");", Bt, ".", Pt, "=", ur, ";");
+ }
+ });
+ }
+ function ol(Ve, Qe) {
+ Ri && (Ve.instancing = Qe.def(Ve.shared.extensions, ".angle_instanced_arrays"));
+ }
+ function io(Ve, Qe, at, Ct, Ot) {
+ var Rt = Ve.shared, Bt = Ve.stats, Dt = Rt.current, yt = Rt.timer, Pt = at.profile;
+ function ht() {
+ return typeof performance == "undefined" ? "Date.now()" : "performance.now()";
+ }
+ var ur, br;
+ function Ur(Ci) {
+ ur = Qe.def(), Ci(ur, "=", ht(), ";"), typeof Ot == "string" ? Ci(Bt, ".count+=", Ot, ";") : Ci(Bt, ".count++;"), Wi && (Ct ? (br = Qe.def(), Ci(br, "=", yt, ".getNumPendingQueries();")) : Ci(yt, ".beginQuery(", Bt, ");"));
+ }
+ function Di(Ci) {
+ Ci(Bt, ".cpuTime+=", ht(), "-", ur, ";"), Wi && (Ct ? Ci(yt, ".pushScopeStats(", br, ",", yt, ".getNumPendingQueries(),", Bt, ");") : Ci(yt, ".endQuery();"));
+ }
+ function fi(Ci) {
+ var Bi = Qe.def(Dt, ".profile");
+ Qe(Dt, ".profile=", Ci, ";"), Qe.exit(Dt, ".profile=", Bi, ";");
+ }
+ var Ti;
+ if (Pt) {
+ if (Ln(Pt)) {
+ Pt.enable ? (Ur(Qe), Di(Qe.exit), fi("true")) : fi("false");
+ return;
+ }
+ Ti = Pt.append(Ve, Qe), fi(Ti);
+ } else Ti = Qe.def(Dt, ".profile");
+ var gn = Ve.block();
+ Ur(gn), Qe("if(", Ti, "){", gn, "}");
+ var rn = Ve.block();
+ Di(rn), Qe.exit("if(", Ti, "){", rn, "}");
+ }
+ function Y(Ve, Qe, at, Ct, Ot) {
+ var Rt = Ve.shared;
+ function Bt(yt) {
+ switch (yt) {
+ case Co:
+ case Ps:
+ case hl:
+ return 2;
+ case Qa:
+ case Ts:
+ case Ul:
+ return 3;
+ case mo:
+ case wo:
+ case Lu:
+ return 4;
+ default:
+ return 1;
+ }
+ }
+ function Dt(yt, Pt, ht) {
+ var ur = Rt.gl, br = Qe.def(yt, ".location"), Ur = Qe.def(Rt.attributes, "[", br, "]"), Di = ht.state, fi = ht.buffer, Ti = [ht.x, ht.y, ht.z, ht.w], gn = ["buffer", "normalized", "offset", "stride"];
+ function rn() {
+ Qe("if(!", Ur, ".buffer){", ur, ".enableVertexAttribArray(", br, ");}");
+ var Bi = ht.type, Gi;
+ if (ht.size ? Gi = Qe.def(ht.size, "||", Pt) : Gi = Pt, Qe("if(", Ur, ".type!==", Bi, "||", Ur, ".size!==", Gi, "||", gn.map(function(zn) {
+ return Ur + "." + zn + "!==" + ht[zn];
+ }).join("||"), "){", ur, ".bindBuffer(", Sr, ",", fi, ".buffer);", ur, ".vertexAttribPointer(", [br, Gi, Bi, ht.normalized, ht.stride, ht.offset], ");", Ur, ".type=", Bi, ";", Ur, ".size=", Gi, ";", gn.map(function(zn) {
+ return Ur + "." + zn + "=" + ht[zn] + ";";
+ }).join(""), "}"), Ri) {
+ var sn = ht.divisor;
+ Qe("if(", Ur, ".divisor!==", sn, "){", Ve.instancing, ".vertexAttribDivisorANGLE(", [br, sn], ");", Ur, ".divisor=", sn, ";}");
+ }
+ }
+ function Ci() {
+ Qe("if(", Ur, ".buffer){", ur, ".disableVertexAttribArray(", br, ");", Ur, ".buffer=null;", "}if(", Ca.map(function(Bi, Gi) {
+ return Ur + "." + Bi + "!==" + Ti[Gi];
+ }).join("||"), "){", ur, ".vertexAttrib4f(", br, ",", Ti, ");", Ca.map(function(Bi, Gi) {
+ return Ur + "." + Bi + "=" + Ti[Gi] + ";";
+ }).join(""), "}");
+ }
+ Di === La ? rn() : Di === Na ? Ci() : (Qe("if(", Di, "===", La, "){"), rn(), Qe("}else{"), Ci(), Qe("}"));
+ }
+ Ct.forEach(function(yt) {
+ var Pt = yt.name, ht = at.attributes[Pt], ur;
+ if (ht) {
+ if (!Ot(ht)) return;
+ ur = ht.append(Ve, Qe);
+ } else {
+ if (!Ot(ia)) return;
+ var br = Ve.scopeAttrib(Pt);
+ ur = {}, Object.keys(new Yr()).forEach(function(Ur) {
+ ur[Ur] = Qe.def(br, ".", Ur);
+ });
+ }
+ Dt(Ve.link(yt), Bt(yt.info.type), ur);
+ });
+ }
+ function D(Ve, Qe, at, Ct, Ot, Rt) {
+ for (var Bt = Ve.shared, Dt = Bt.gl, yt, Pt = 0; Pt < Ct.length; ++Pt) {
+ var ht = Ct[Pt], ur = ht.name, br = ht.info.type, Ur = at.uniforms[ur], Di = Ve.link(ht), fi = Di + ".location", Ti;
+ if (Ur) {
+ if (!Ot(Ur)) continue;
+ if (Ln(Ur)) {
+ var gn = Ur.value;
+ if (br === dc || br === Tl) {
+ var rn = Ve.link(gn._texture || gn.color[0]._texture);
+ Qe(Dt, ".uniform1i(", fi, ",", rn + ".bind());"), Qe.exit(rn, ".unbind();");
+ } else if (br === au || br === Js || br === eu) {
+ var Ci = Ve.global.def("new Float32Array([" + Array.prototype.slice.call(gn) + "])"), Bi = 2;
+ br === Js ? Bi = 3 : br === eu && (Bi = 4), Qe(Dt, ".uniformMatrix", Bi, "fv(", fi, ",false,", Ci, ");");
+ } else {
+ switch (br) {
+ case $a:
+ yt = "1f";
+ break;
+ case Co:
+ yt = "2f";
+ break;
+ case Qa:
+ yt = "3f";
+ break;
+ case mo:
+ yt = "4f";
+ break;
+ case To:
+ yt = "1i";
+ break;
+ case Bo:
+ yt = "1i";
+ break;
+ case hl:
+ yt = "2i";
+ break;
+ case Ps:
+ yt = "2i";
+ break;
+ case Ul:
+ yt = "3i";
+ break;
+ case Ts:
+ yt = "3i";
+ break;
+ case Lu:
+ yt = "4i";
+ break;
+ case wo:
+ yt = "4i";
+ break;
+ }
+ Qe(Dt, ".uniform", yt, "(", fi, ",", Mn(gn) ? Array.prototype.slice.call(gn) : gn, ");");
+ }
+ continue;
+ } else Ti = Ur.append(Ve, Qe);
+ } else {
+ if (!Ot(ia)) continue;
+ Ti = Qe.def(Bt.uniforms, "[", bt.id(ur), "]");
+ }
+ br === dc ? Qe("if(", Ti, "&&", Ti, '._reglType==="framebuffer"){', Ti, "=", Ti, ".color[0];", "}") : br === Tl && Qe("if(", Ti, "&&", Ti, '._reglType==="framebufferCube"){', Ti, "=", Ti, ".color[0];", "}");
+ var Gi = 1;
+ switch (br) {
+ case dc:
+ case Tl:
+ var sn = Qe.def(Ti, "._texture");
+ Qe(Dt, ".uniform1i(", fi, ",", sn, ".bind());"), Qe.exit(sn, ".unbind();");
+ continue;
+ case Bo:
+ case To:
+ yt = "1i";
+ break;
+ case Ps:
+ case hl:
+ yt = "2i", Gi = 2;
+ break;
+ case Ts:
+ case Ul:
+ yt = "3i", Gi = 3;
+ break;
+ case wo:
+ case Lu:
+ yt = "4i", Gi = 4;
+ break;
+ case $a:
+ yt = "1f";
+ break;
+ case Co:
+ yt = "2f", Gi = 2;
+ break;
+ case Qa:
+ yt = "3f", Gi = 3;
+ break;
+ case mo:
+ yt = "4f", Gi = 4;
+ break;
+ case au:
+ yt = "Matrix2fv";
+ break;
+ case Js:
+ yt = "Matrix3fv";
+ break;
+ case eu:
+ yt = "Matrix4fv";
+ break;
+ }
+ if (yt.charAt(0) === "M") {
+ Qe(Dt, ".uniform", yt, "(", fi, ",");
+ var zn = Math.pow(br - au + 2, 2), Ja = Ve.global.def("new Float32Array(", zn, ")");
+ Array.isArray(Ti) ? Qe("false,(", M(zn, function(ms) {
+ return Ja + "[" + ms + "]=" + Ti[ms];
+ }), ",", Ja, ")") : Qe("false,(Array.isArray(", Ti, ")||", Ti, " instanceof Float32Array)?", Ti, ":(", M(zn, function(ms) {
+ return Ja + "[" + ms + "]=" + Ti + "[" + ms + "]";
+ }), ",", Ja, ")"), Qe(");");
+ } else if (Gi > 1) {
+ for (var co = [], ts = [], so = 0; so < Gi; ++so) Array.isArray(Ti) ? ts.push(Ti[so]) : ts.push(Qe.def(Ti + "[" + so + "]")), Rt && co.push(Qe.def());
+ Rt && Qe("if(!", Ve.batchId, "||", co.map(function(ms, ou) {
+ return ms + "!==" + ts[ou];
+ }).join("||"), "){", co.map(function(ms, ou) {
+ return ms + "=" + ts[ou] + ";";
+ }).join("")), Qe(Dt, ".uniform", yt, "(", fi, ",", ts.join(","), ");"), Rt && Qe("}");
+ } else {
+ if (Rt) {
+ var Yo = Qe.def();
+ Qe("if(!", Ve.batchId, "||", Yo, "!==", Ti, "){", Yo, "=", Ti, ";");
+ }
+ Qe(Dt, ".uniform", yt, "(", fi, ",", Ti, ");"), Rt && Qe("}");
+ }
+ }
+ }
+ function J(Ve, Qe, at, Ct) {
+ var Ot = Ve.shared, Rt = Ot.gl, Bt = Ot.draw, Dt = Ct.draw;
+ function yt() {
+ var Gi = Dt.elements, sn, zn = Qe;
+ return Gi ? ((Gi.contextDep && Ct.contextDynamic || Gi.propDep) && (zn = at), sn = Gi.append(Ve, zn), Dt.elementsActive && zn("if(" + sn + ")" + Rt + ".bindBuffer(" + Or + "," + sn + ".buffer.buffer);")) : (sn = zn.def(), zn(sn, "=", Bt, ".", Tt, ";", "if(", sn, "){", Rt, ".bindBuffer(", Or, ",", sn, ".buffer.buffer);}", "else if(", Ot.vao, ".currentVAO){", sn, "=", Ve.shared.elements + ".getElements(" + Ot.vao, ".currentVAO.elements);", an ? "" : "if(" + sn + ")" + Rt + ".bindBuffer(" + Or + "," + sn + ".buffer.buffer);", "}")), sn;
+ }
+ function Pt() {
+ var Gi = Dt.count, sn, zn = Qe;
+ return Gi ? ((Gi.contextDep && Ct.contextDynamic || Gi.propDep) && (zn = at), sn = Gi.append(Ve, zn)) : sn = zn.def(Bt, ".", Kt), sn;
+ }
+ var ht = yt();
+ function ur(Gi) {
+ var sn = Dt[Gi];
+ return sn ? sn.contextDep && Ct.contextDynamic || sn.propDep ? sn.append(Ve, at) : sn.append(Ve, Qe) : Qe.def(Bt, ".", Gi);
+ }
+ var br = ur(Yt), Ur = ur(xr), Di = Pt();
+ if (typeof Di == "number") {
+ if (Di === 0) return;
+ } else at("if(", Di, "){"), at.exit("}");
+ var fi, Ti;
+ Ri && (fi = ur(Ir), Ti = Ve.instancing);
+ var gn = ht + ".type", rn = Dt.elements && Ln(Dt.elements) && !Dt.vaoActive;
+ function Ci() {
+ function Gi() {
+ at(Ti, ".drawElementsInstancedANGLE(", [br, Di, gn, Ur + "<<((" + gn + "-" + Ra + ")>>1)", fi], ");");
+ }
+ function sn() {
+ at(Ti, ".drawArraysInstancedANGLE(", [br, Ur, Di, fi], ");");
+ }
+ ht && ht !== "null" ? rn ? Gi() : (at("if(", ht, "){"), Gi(), at("}else{"), sn(), at("}")) : sn();
+ }
+ function Bi() {
+ function Gi() {
+ at(Rt + ".drawElements(" + [br, Di, gn, Ur + "<<((" + gn + "-" + Ra + ")>>1)"] + ");");
+ }
+ function sn() {
+ at(Rt + ".drawArrays(" + [br, Ur, Di] + ");");
+ }
+ ht && ht !== "null" ? rn ? Gi() : (at("if(", ht, "){"), Gi(), at("}else{"), sn(), at("}")) : sn();
+ }
+ Ri && (typeof fi != "number" || fi >= 0) ? typeof fi == "string" ? (at("if(", fi, ">0){"), Ci(), at("}else if(", fi, "<0){"), Bi(), at("}")) : Ci() : Bi();
+ }
+ function q(Ve, Qe, at, Ct, Ot) {
+ var Rt = kn(), Bt = Rt.proc("body", Ot);
+ return Ri && (Rt.instancing = Bt.def(Rt.shared.extensions, ".angle_instanced_arrays")), Ve(Rt, Bt, at, Ct), Rt.compile().body;
+ }
+ function K(Ve, Qe, at, Ct) {
+ ol(Ve, Qe), at.useVAO ? at.drawVAO ? Qe(Ve.shared.vao, ".setVAO(", at.drawVAO.append(Ve, Qe), ");") : Qe(Ve.shared.vao, ".setVAO(", Ve.shared.vao, ".targetVAO);") : (Qe(Ve.shared.vao, ".setVAO(null);"), Y(Ve, Qe, at, Ct.attributes, function() {
+ return true;
+ })), D(Ve, Qe, at, Ct.uniforms, function() {
+ return true;
+ }, false), J(Ve, Qe, Qe, at);
+ }
+ function de(Ve, Qe) {
+ var at = Ve.proc("draw", 1);
+ ol(Ve, at), ss(Ve, at, Qe.context), Vs(Ve, at, Qe.framebuffer), Ys(Ve, at, Qe), wa(Ve, at, Qe.state), io(Ve, at, Qe, false, true);
+ var Ct = Qe.shader.progVar.append(Ve, at);
+ if (at(Ve.shared.gl, ".useProgram(", Ct, ".program);"), Qe.shader.program) K(Ve, at, Qe, Qe.shader.program);
+ else {
+ at(Ve.shared.vao, ".setVAO(null);");
+ var Ot = Ve.global.def("{}"), Rt = at.def(Ct, ".id"), Bt = at.def(Ot, "[", Rt, "]");
+ at(Ve.cond(Bt).then(Bt, ".call(this,a0);").else(Bt, "=", Ot, "[", Rt, "]=", Ve.link(function(Dt) {
+ return q(K, Ve, Qe, Dt, 1);
+ }), "(", Ct, ");", Bt, ".call(this,a0);"));
+ }
+ Object.keys(Qe.state).length > 0 && at(Ve.shared.current, ".dirty=true;"), Ve.shared.vao && at(Ve.shared.vao, ".setVAO(null);");
+ }
+ function ne(Ve, Qe, at, Ct) {
+ Ve.batchId = "a1", ol(Ve, Qe);
+ function Ot() {
+ return true;
+ }
+ Y(Ve, Qe, at, Ct.attributes, Ot), D(Ve, Qe, at, Ct.uniforms, Ot, false), J(Ve, Qe, Qe, at);
+ }
+ function we(Ve, Qe, at, Ct) {
+ ol(Ve, Qe);
+ var Ot = at.contextDep, Rt = Qe.def(), Bt = "a0", Dt = "a1", yt = Qe.def();
+ Ve.shared.props = yt, Ve.batchId = Rt;
+ var Pt = Ve.scope(), ht = Ve.scope();
+ Qe(Pt.entry, "for(", Rt, "=0;", Rt, "<", Dt, ";++", Rt, "){", yt, "=", Bt, "[", Rt, "];", ht, "}", Pt.exit);
+ function ur(gn) {
+ return gn.contextDep && Ot || gn.propDep;
+ }
+ function br(gn) {
+ return !ur(gn);
+ }
+ if (at.needsContext && ss(Ve, ht, at.context), at.needsFramebuffer && Vs(Ve, ht, at.framebuffer), wa(Ve, ht, at.state, ur), at.profile && ur(at.profile) && io(Ve, ht, at, false, true), Ct) at.useVAO ? at.drawVAO ? ur(at.drawVAO) ? ht(Ve.shared.vao, ".setVAO(", at.drawVAO.append(Ve, ht), ");") : Pt(Ve.shared.vao, ".setVAO(", at.drawVAO.append(Ve, Pt), ");") : Pt(Ve.shared.vao, ".setVAO(", Ve.shared.vao, ".targetVAO);") : (Pt(Ve.shared.vao, ".setVAO(null);"), Y(Ve, Pt, at, Ct.attributes, br), Y(Ve, ht, at, Ct.attributes, ur)), D(Ve, Pt, at, Ct.uniforms, br, false), D(Ve, ht, at, Ct.uniforms, ur, true), J(Ve, Pt, ht, at);
+ else {
+ var Ur = Ve.global.def("{}"), Di = at.shader.progVar.append(Ve, ht), fi = ht.def(Di, ".id"), Ti = ht.def(Ur, "[", fi, "]");
+ ht(Ve.shared.gl, ".useProgram(", Di, ".program);", "if(!", Ti, "){", Ti, "=", Ur, "[", fi, "]=", Ve.link(function(gn) {
+ return q(ne, Ve, at, gn, 2);
+ }), "(", Di, ");}", Ti, ".call(this,a0[", Rt, "],", Rt, ");");
+ }
+ }
+ function Ue(Ve, Qe) {
+ var at = Ve.proc("batch", 2);
+ Ve.batchId = "0", ol(Ve, at);
+ var Ct = false, Ot = true;
+ Object.keys(Qe.context).forEach(function(Ur) {
+ Ct = Ct || Qe.context[Ur].propDep;
+ }), Ct || (ss(Ve, at, Qe.context), Ot = false);
+ var Rt = Qe.framebuffer, Bt = false;
+ Rt ? (Rt.propDep ? Ct = Bt = true : Rt.contextDep && Ct && (Bt = true), Bt || Vs(Ve, at, Rt)) : Vs(Ve, at, null), Qe.state.viewport && Qe.state.viewport.propDep && (Ct = true);
+ function Dt(Ur) {
+ return Ur.contextDep && Ct || Ur.propDep;
+ }
+ Ys(Ve, at, Qe), wa(Ve, at, Qe.state, function(Ur) {
+ return !Dt(Ur);
+ }), (!Qe.profile || !Dt(Qe.profile)) && io(Ve, at, Qe, false, "a1"), Qe.contextDep = Ct, Qe.needsContext = Ot, Qe.needsFramebuffer = Bt;
+ var yt = Qe.shader.progVar;
+ if (yt.contextDep && Ct || yt.propDep) we(Ve, at, Qe, null);
+ else {
+ var Pt = yt.append(Ve, at);
+ if (at(Ve.shared.gl, ".useProgram(", Pt, ".program);"), Qe.shader.program) we(Ve, at, Qe, Qe.shader.program);
+ else {
+ at(Ve.shared.vao, ".setVAO(null);");
+ var ht = Ve.global.def("{}"), ur = at.def(Pt, ".id"), br = at.def(ht, "[", ur, "]");
+ at(Ve.cond(br).then(br, ".call(this,a0,a1);").else(br, "=", ht, "[", ur, "]=", Ve.link(function(Ur) {
+ return q(we, Ve, Qe, Ur, 2);
+ }), "(", Pt, ");", br, ".call(this,a0,a1);"));
+ }
+ }
+ Object.keys(Qe.state).length > 0 && at(Ve.shared.current, ".dirty=true;"), Ve.shared.vao && at(Ve.shared.vao, ".setVAO(null);");
+ }
+ function ft(Ve, Qe) {
+ var at = Ve.proc("scope", 3);
+ Ve.batchId = "a2";
+ var Ct = Ve.shared, Ot = Ct.current;
+ if (ss(Ve, at, Qe.context), Qe.framebuffer && Qe.framebuffer.append(Ve, at), Si(Object.keys(Qe.state)).forEach(function(Dt) {
+ var yt = Qe.state[Dt], Pt = yt.append(Ve, at);
+ Mn(Pt) ? Pt.forEach(function(ht, ur) {
+ pn(ht) ? at.set(Ve.next[Dt], "[" + ur + "]", ht) : at.set(Ve.next[Dt], "[" + ur + "]", Ve.link(ht, { stable: true }));
+ }) : Ln(yt) ? at.set(Ct.next, "." + Dt, Ve.link(Pt, { stable: true })) : at.set(Ct.next, "." + Dt, Pt);
+ }), io(Ve, at, Qe, true, true), [Tt, xr, Kt, Ir, Yt].forEach(function(Dt) {
+ var yt = Qe.draw[Dt];
+ if (yt) {
+ var Pt = yt.append(Ve, at);
+ pn(Pt) ? at.set(Ct.draw, "." + Dt, Pt) : at.set(Ct.draw, "." + Dt, Ve.link(Pt), { stable: true });
+ }
+ }), Object.keys(Qe.uniforms).forEach(function(Dt) {
+ var yt = Qe.uniforms[Dt].append(Ve, at);
+ Array.isArray(yt) && (yt = "[" + yt.map(function(Pt) {
+ return pn(Pt) ? Pt : Ve.link(Pt, { stable: true });
+ }) + "]"), at.set(Ct.uniforms, "[" + Ve.link(bt.id(Dt), { stable: true }) + "]", yt);
+ }), Object.keys(Qe.attributes).forEach(function(Dt) {
+ var yt = Qe.attributes[Dt].append(Ve, at), Pt = Ve.scopeAttrib(Dt);
+ Object.keys(new Yr()).forEach(function(ht) {
+ at.set(Pt, "." + ht, yt[ht]);
+ });
+ }), Qe.scopeVAO) {
+ var Rt = Qe.scopeVAO.append(Ve, at);
+ pn(Rt) ? at.set(Ct.vao, ".targetVAO", Rt) : at.set(Ct.vao, ".targetVAO", Ve.link(Rt, { stable: true }));
+ }
+ function Bt(Dt) {
+ var yt = Qe.shader[Dt];
+ if (yt) {
+ var Pt = yt.append(Ve, at);
+ pn(Pt) ? at.set(Ct.shader, "." + Dt, Pt) : at.set(Ct.shader, "." + Dt, Ve.link(Pt, { stable: true }));
+ }
+ }
+ Bt(Ze), Bt(st), Object.keys(Qe.state).length > 0 && (at(Ot, ".dirty=true;"), at.exit(Ot, ".dirty=true;")), at("a1(", Ve.shared.context, ",a0,", Ve.batchId, ");");
+ }
+ function Zt(Ve) {
+ if (!(typeof Ve != "object" || Mn(Ve))) {
+ for (var Qe = Object.keys(Ve), at = 0; at < Qe.length; ++at) if (h.isDynamic(Ve[Qe[at]])) return true;
+ return false;
+ }
+ }
+ function hr(Ve, Qe, at) {
+ var Ct = Qe.static[at];
+ if (!Ct || !Zt(Ct)) return;
+ var Ot = Ve.global, Rt = Object.keys(Ct), Bt = false, Dt = false, yt = false, Pt = Ve.global.def("{}");
+ Rt.forEach(function(ur) {
+ var br = Ct[ur];
+ if (h.isDynamic(br)) {
+ typeof br == "function" && (br = Ct[ur] = h.unbox(br));
+ var Ur = Un(br, null);
+ Bt = Bt || Ur.thisDep, yt = yt || Ur.propDep, Dt = Dt || Ur.contextDep;
+ } else {
+ switch (Ot(Pt, ".", ur, "="), typeof br) {
+ case "number":
+ Ot(br);
+ break;
+ case "string":
+ Ot('"', br, '"');
+ break;
+ case "object":
+ Array.isArray(br) && Ot("[", br.join(), "]");
+ break;
+ default:
+ Ot(Ve.link(br));
+ break;
+ }
+ Ot(";");
+ }
+ });
+ function ht(ur, br) {
+ Rt.forEach(function(Ur) {
+ var Di = Ct[Ur];
+ if (h.isDynamic(Di)) {
+ var fi = ur.invoke(br, Di);
+ br(Pt, ".", Ur, "=", fi, ";");
+ }
+ });
+ }
+ Qe.dynamic[at] = new h.DynamicVariable(Zo, { thisDep: Bt, contextDep: Dt, propDep: yt, ref: Pt, append: ht }), delete Qe.static[at];
+ }
+ function qt(Ve, Qe, at, Ct, Ot) {
+ var Rt = kn();
+ Rt.stats = Rt.link(Ot), Object.keys(Qe.static).forEach(function(Dt) {
+ hr(Rt, Qe, Dt);
+ }), dr.forEach(function(Dt) {
+ hr(Rt, Ve, Dt);
+ });
+ var Bt = Vl(Ve, Qe, at, Ct, Rt);
+ return Bt.shader.program && (Bt.shader.program.attributes.sort(function(Dt, yt) {
+ return Dt.name < yt.name ? -1 : 1;
+ }), Bt.shader.program.uniforms.sort(function(Dt, yt) {
+ return Dt.name < yt.name ? -1 : 1;
+ })), de(Rt, Bt), ft(Rt, Bt), Ue(Rt, Bt), e(Rt.compile(), { destroy: function() {
+ Bt.shader.program.destroy();
+ } });
+ }
+ return { next: Bn, current: Zi, procs: function() {
+ var Ve = kn(), Qe = Ve.proc("poll"), at = Ve.proc("refresh"), Ct = Ve.block();
+ Qe(Ct), at(Ct);
+ var Ot = Ve.shared, Rt = Ot.gl, Bt = Ot.next, Dt = Ot.current;
+ Ct(Dt, ".dirty=false;"), Vs(Ve, Qe), Vs(Ve, at, null, true);
+ var yt;
+ Ri && (yt = Ve.link(Ri)), zt.oes_vertex_array_object && at(Ve.link(zt.oes_vertex_array_object), ".bindVertexArrayOES(null);");
+ var Pt = at.def(Ot.attributes), ht = at.def(0), ur = Ve.cond(ht, ".buffer");
+ ur.then(Rt, ".enableVertexAttribArray(i);", Rt, ".bindBuffer(", Sr, ",", ht, ".buffer.buffer);", Rt, ".vertexAttribPointer(i,", ht, ".size,", ht, ".type,", ht, ".normalized,", ht, ".stride,", ht, ".offset);").else(Rt, ".disableVertexAttribArray(i);", Rt, ".vertexAttrib4f(i,", ht, ".x,", ht, ".y,", ht, ".z,", ht, ".w);", ht, ".buffer=null;");
+ var br = Ve.link(Rr.maxAttributes, { stable: true });
+ return at("for(var i=0;i<", br, ";++i){", ht, "=", Pt, "[i];", ur, "}"), Ri && at("for(var i=0;i<", br, ";++i){", yt, ".vertexAttribDivisorANGLE(i,", Pt, "[i].divisor);", "}"), at(Ve.shared.vao, ".currentVAO=null;", Ve.shared.vao, ".setVAO(", Ve.shared.vao, ".targetVAO);"), Object.keys(li).forEach(function(Ur) {
+ var Di = li[Ur], fi = Ct.def(Bt, ".", Ur), Ti = Ve.block();
+ Ti("if(", fi, "){", Rt, ".enable(", Di, ")}else{", Rt, ".disable(", Di, ")}", Dt, ".", Ur, "=", fi, ";"), at(Ti), Qe("if(", fi, "!==", Dt, ".", Ur, "){", Ti, "}");
+ }), Object.keys(mn).forEach(function(Ur) {
+ var Di = mn[Ur], fi = Zi[Ur], Ti, gn, rn = Ve.block();
+ if (rn(Rt, ".", Di, "("), Mn(fi)) {
+ var Ci = fi.length;
+ Ti = Ve.global.def(Bt, ".", Ur), gn = Ve.global.def(Dt, ".", Ur), rn(M(Ci, function(Bi) {
+ return Ti + "[" + Bi + "]";
+ }), ");", M(Ci, function(Bi) {
+ return gn + "[" + Bi + "]=" + Ti + "[" + Bi + "];";
+ }).join("")), Qe("if(", M(Ci, function(Bi) {
+ return Ti + "[" + Bi + "]!==" + gn + "[" + Bi + "]";
+ }).join("||"), "){", rn, "}");
+ } else Ti = Ct.def(Bt, ".", Ur), gn = Ct.def(Dt, ".", Ur), rn(Ti, ");", Dt, ".", Ur, "=", Ti, ";"), Qe("if(", Ti, "!==", gn, "){", rn, "}");
+ at(rn);
+ }), Ve.compile();
+ }(), compile: qt };
+ }
+ function Ia() {
+ return { vaoCount: 0, bufferCount: 0, elementsCount: 0, framebufferCount: 0, shaderCount: 0, textureCount: 0, cubeCount: 0, renderbufferCount: 0, maxTextureUnits: 0 };
+ }
+ var yo = 34918, Da = 34919, go = 35007, Is = function(Me, bt) {
+ if (!bt.ext_disjoint_timer_query) return null;
+ var zt = [];
+ function Rr() {
+ return zt.pop() || bt.ext_disjoint_timer_query.createQueryEXT();
+ }
+ function jr(xi) {
+ zt.push(xi);
+ }
+ var Nr = [];
+ function Gr(xi) {
+ var Ri = Rr();
+ bt.ext_disjoint_timer_query.beginQueryEXT(go, Ri), Nr.push(Ri), Wi(Nr.length - 1, Nr.length, xi);
+ }
+ function mi() {
+ bt.ext_disjoint_timer_query.endQueryEXT(go);
+ }
+ function Ui() {
+ this.startQueryIndex = -1, this.endQueryIndex = -1, this.sum = 0, this.stats = null;
+ }
+ var qi = [];
+ function Ei() {
+ return qi.pop() || new Ui();
+ }
+ function Hn(xi) {
+ qi.push(xi);
+ }
+ var en = [];
+ function Wi(xi, Ri, ci) {
+ var an = Ei();
+ an.startQueryIndex = xi, an.endQueryIndex = Ri, an.sum = 0, an.stats = ci, en.push(an);
+ }
+ var si = [], Mr = [];
+ function Yr() {
+ var xi, Ri, ci = Nr.length;
+ if (ci !== 0) {
+ Mr.length = Math.max(Mr.length, ci + 1), si.length = Math.max(si.length, ci + 1), si[0] = 0, Mr[0] = 0;
+ var an = 0;
+ for (xi = 0, Ri = 0; Ri < Nr.length; ++Ri) {
+ var Zi = Nr[Ri];
+ bt.ext_disjoint_timer_query.getQueryObjectEXT(Zi, Da) ? (an += bt.ext_disjoint_timer_query.getQueryObjectEXT(Zi, yo), jr(Zi)) : Nr[xi++] = Zi, si[Ri + 1] = an, Mr[Ri + 1] = xi;
+ }
+ for (Nr.length = xi, xi = 0, Ri = 0; Ri < en.length; ++Ri) {
+ var Bn = en[Ri], hi = Bn.startQueryIndex, li = Bn.endQueryIndex;
+ Bn.sum += si[li] - si[hi];
+ var mn = Mr[hi], Ji = Mr[li];
+ Ji === mn ? (Bn.stats.gpuTime += Bn.sum / 1e6, Hn(Bn)) : (Bn.startQueryIndex = mn, Bn.endQueryIndex = Ji, en[xi++] = Bn);
+ }
+ en.length = xi;
+ }
+ }
+ return { beginQuery: Gr, endQuery: mi, pushScopeStats: Wi, update: Yr, getNumPendingQueries: function() {
+ return Nr.length;
+ }, clear: function() {
+ zt.push.apply(zt, Nr);
+ for (var xi = 0; xi < zt.length; xi++) bt.ext_disjoint_timer_query.deleteQueryEXT(zt[xi]);
+ Nr.length = 0, zt.length = 0;
+ }, restore: function() {
+ Nr.length = 0, zt.length = 0;
+ } };
+ }, Ms = 16384, Xs = 256, Gn = 1024, ja = 34962, Fo = "webglcontextlost", Uo = "webglcontextrestored", $s = 1, Sl = 2, bu = 3;
+ function dl(Me, bt) {
+ for (var zt = 0; zt < Me.length; ++zt) if (Me[zt] === bt) return zt;
+ return -1;
+ }
+ function Sc(Me) {
+ var bt = x(Me);
+ if (!bt) return null;
+ var zt = bt.gl, Rr = zt.getContextAttributes();
+ zt.isContextLost();
+ var Nr = C(zt, bt);
+ if (!Nr) return null;
+ var Gr = _(), mi = Ia(), Ui = bt.cachedCode || {}, qi = Nr.extensions, Ei = Is(zt, qi), Hn = v(), en = zt.drawingBufferWidth, Wi = zt.drawingBufferHeight, si = { tick: 0, time: 0, viewportWidth: en, viewportHeight: Wi, framebufferWidth: en, framebufferHeight: Wi, drawingBufferWidth: en, drawingBufferHeight: Wi, pixelRatio: bt.pixelRatio }, Mr = {}, Yr = { elements: null, primitive: 4, count: -1, offset: 0, instances: -1 }, xi = ti(zt, qi), Ri = ri(zt, mi, bt, Zi), ci = kr(zt, qi, Ri, mi), an = ku(zt, qi, xi, mi, Ri, ci, Yr);
+ function Zi(q) {
+ return an.destroyBuffer(q);
+ }
+ var Bn = Wu(zt, Gr, mi, bt), hi = of(zt, qi, xi, function() {
+ Ji.procs.poll();
+ }, si, mi, bt), li = Dc(zt, qi, xi, mi, bt), mn = lf(zt, qi, xi, hi, li, mi), Ji = Ea(zt, Gr, qi, xi, Ri, ci, hi, mn, Mr, an, Bn, Yr, si, Ei, Ui, bt), Vi = Wl(zt, mn, Ji.procs.poll, si), Ni = Ji.next, pn = zt.canvas, Vn = [], na = [], Ki = [], kn = [bt.onDestroy], ta = null;
+ function oa() {
+ if (Vn.length === 0) {
+ Ei && Ei.update(), ta = null;
+ return;
+ }
+ ta = d.next(oa), Ys();
+ for (var q = Vn.length - 1; q >= 0; --q) {
+ var K = Vn[q];
+ K && K(si, null, 0);
+ }
+ zt.flush(), Ei && Ei.update();
+ }
+ function ba() {
+ !ta && Vn.length > 0 && (ta = d.next(oa));
+ }
+ function is() {
+ ta && (d.cancel(oa), ta = null);
+ }
+ function Zs(q) {
+ q.preventDefault(), is(), na.forEach(function(K) {
+ K();
+ });
+ }
+ function Va(q) {
+ zt.getError(), Nr.restore(), Bn.restore(), Ri.restore(), hi.restore(), li.restore(), mn.restore(), an.restore(), Ei && Ei.restore(), Ji.procs.refresh(), ba(), Ki.forEach(function(K) {
+ K();
+ });
+ }
+ pn && (pn.addEventListener(Fo, Zs, false), pn.addEventListener(Uo, Va, false));
+ function Ml() {
+ Vn.length = 0, is(), pn && (pn.removeEventListener(Fo, Zs), pn.removeEventListener(Uo, Va)), Bn.clear(), mn.clear(), li.clear(), an.clear(), hi.clear(), ci.clear(), Ri.clear(), Ei && Ei.clear(), kn.forEach(function(q) {
+ q();
+ });
+ }
+ function zo(q) {
+ function K(Rt) {
+ var Bt = e({}, Rt);
+ delete Bt.uniforms, delete Bt.attributes, delete Bt.context, delete Bt.vao, "stencil" in Bt && Bt.stencil.op && (Bt.stencil.opBack = Bt.stencil.opFront = Bt.stencil.op, delete Bt.stencil.op);
+ function Dt(yt) {
+ if (yt in Bt) {
+ var Pt = Bt[yt];
+ delete Bt[yt], Object.keys(Pt).forEach(function(ht) {
+ Bt[yt + "." + ht] = Pt[ht];
+ });
+ }
+ }
+ return Dt("blend"), Dt("depth"), Dt("cull"), Dt("stencil"), Dt("polygonOffset"), Dt("scissor"), Dt("sample"), "vao" in Rt && (Bt.vao = Rt.vao), Bt;
+ }
+ function de(Rt, Bt) {
+ var Dt = {}, yt = {};
+ return Object.keys(Rt).forEach(function(Pt) {
+ var ht = Rt[Pt];
+ if (h.isDynamic(ht)) {
+ yt[Pt] = h.unbox(ht, Pt);
+ return;
+ } else if (Bt && Array.isArray(ht)) {
+ for (var ur = 0; ur < ht.length; ++ur) if (h.isDynamic(ht[ur])) {
+ yt[Pt] = h.unbox(ht, Pt);
+ return;
+ }
+ }
+ Dt[Pt] = ht;
+ }), { dynamic: yt, static: Dt };
+ }
+ var ne = de(q.context || {}, true), we = de(q.uniforms || {}, true), Ue = de(q.attributes || {}, false), ft = de(K(q), false), Zt = { gpuTime: 0, cpuTime: 0, count: 0 }, hr = Ji.compile(ft, Ue, we, ne, Zt), qt = hr.draw, Ve = hr.batch, Qe = hr.scope, at = [];
+ function Ct(Rt) {
+ for (; at.length < Rt; ) at.push(null);
+ return at;
+ }
+ function Ot(Rt, Bt) {
+ var Dt;
+ if (typeof Rt == "function") return Qe.call(this, null, Rt, 0);
+ if (typeof Bt == "function") if (typeof Rt == "number") for (Dt = 0; Dt < Rt; ++Dt) Qe.call(this, null, Bt, Dt);
+ else if (Array.isArray(Rt)) for (Dt = 0; Dt < Rt.length; ++Dt) Qe.call(this, Rt[Dt], Bt, Dt);
+ else return Qe.call(this, Rt, Bt, 0);
+ else if (typeof Rt == "number") {
+ if (Rt > 0) return Ve.call(this, Ct(Rt | 0), Rt | 0);
+ } else if (Array.isArray(Rt)) {
+ if (Rt.length) return Ve.call(this, Rt, Rt.length);
+ } else return qt.call(this, Rt);
+ }
+ return e(Ot, { stats: Zt, destroy: function() {
+ hr.destroy();
+ } });
+ }
+ var Qs = mn.setFBO = zo({ framebuffer: h.define.call(null, $s, "framebuffer") });
+ function al(q, K) {
+ var de = 0;
+ Ji.procs.poll();
+ var ne = K.color;
+ ne && (zt.clearColor(+ne[0] || 0, +ne[1] || 0, +ne[2] || 0, +ne[3] || 0), de |= Ms), "depth" in K && (zt.clearDepth(+K.depth), de |= Xs), "stencil" in K && (zt.clearStencil(K.stencil | 0), de |= Gn), zt.clear(de);
+ }
+ function Vl(q) {
+ if ("framebuffer" in q) if (q.framebuffer && q.framebuffer_reglType === "framebufferCube") for (var K = 0; K < 6; ++K) Qs(e({ framebuffer: q.framebuffer.faces[K] }, q), al);
+ else Qs(q, al);
+ else al(null, q);
+ }
+ function ss(q) {
+ Vn.push(q);
+ function K() {
+ var de = dl(Vn, q);
+ function ne() {
+ var we = dl(Vn, ne);
+ Vn[we] = Vn[Vn.length - 1], Vn.length -= 1, Vn.length <= 0 && is();
+ }
+ Vn[de] = ne;
+ }
+ return ba(), { cancel: K };
+ }
+ function Vs() {
+ var q = Ni.viewport, K = Ni.scissor_box;
+ q[0] = q[1] = K[0] = K[1] = 0, si.viewportWidth = si.framebufferWidth = si.drawingBufferWidth = q[2] = K[2] = zt.drawingBufferWidth, si.viewportHeight = si.framebufferHeight = si.drawingBufferHeight = q[3] = K[3] = zt.drawingBufferHeight;
+ }
+ function Ys() {
+ si.tick += 1, si.time = ol(), Vs(), Ji.procs.poll();
+ }
+ function wa() {
+ hi.refresh(), Vs(), Ji.procs.refresh(), Ei && Ei.update();
+ }
+ function ol() {
+ return (v() - Hn) / 1e3;
+ }
+ wa();
+ function io(q, K) {
+ var de;
+ switch (q) {
+ case "frame":
+ return ss(K);
+ case "lost":
+ de = na;
+ break;
+ case "restore":
+ de = Ki;
+ break;
+ case "destroy":
+ de = kn;
+ break;
+ }
+ return de.push(K), { cancel: function() {
+ for (var ne = 0; ne < de.length; ++ne) if (de[ne] === K) {
+ de[ne] = de[de.length - 1], de.pop();
+ return;
+ }
+ } };
+ }
+ function Y() {
+ return Ui;
+ }
+ function D(q) {
+ Object.entries(q).forEach(function(K) {
+ Ui[K[0]] = K[1];
+ });
+ }
+ var J = e(zo, { clear: Vl, prop: h.define.bind(null, $s), context: h.define.bind(null, Sl), this: h.define.bind(null, bu), draw: zo({}), buffer: function(q) {
+ return Ri.create(q, ja, false, false);
+ }, elements: function(q) {
+ return ci.create(q, false);
+ }, texture: hi.create2D, cube: hi.createCube, renderbuffer: li.create, framebuffer: mn.create, framebufferCube: mn.createCube, vao: an.createVAO, attributes: Rr, frame: ss, on: io, limits: xi, hasExtension: function(q) {
+ return xi.extensions.indexOf(q.toLowerCase()) >= 0;
+ }, read: Vi, destroy: Ml, _gl: zt, _refresh: wa, poll: function() {
+ Ys(), Ei && Ei.update();
+ }, now: ol, stats: mi, getCachedCode: Y, preloadCachedCode: D });
+ return bt.onDone(null, J), J;
+ }
+ return Sc;
+ });
+ });
+ var Kqe = ye((v_r, Yqe) => {
+ var pUt = ey();
+ Yqe.exports = function(t) {
+ if (t ? typeof t == "string" && (t = { container: t }) : t = {}, Xqe(t) ? t = { container: t } : gUt(t) ? t = { container: t } : mUt(t) ? t = { gl: t } : t = pUt(t, { container: "container target element el canvas holder parent parentNode wrapper use ref root node", gl: "gl context webgl glContext", attrs: "attributes attrs contextAttributes", pixelRatio: "pixelRatio pxRatio px ratio pxratio pixelratio", width: "w width", height: "h height" }, true), t.pixelRatio || (t.pixelRatio = window.pixelRatio || 1), t.gl) return t.gl;
+ if (t.canvas && (t.container = t.canvas.parentNode), t.container) {
+ if (typeof t.container == "string") {
+ var r = document.querySelector(t.container);
+ if (!r) throw Error("Element " + t.container + " is not found");
+ t.container = r;
+ }
+ Xqe(t.container) ? (t.canvas = t.container, t.container = t.canvas.parentNode) : t.canvas || (t.canvas = Zqe(), t.container.appendChild(t.canvas), Wqe(t));
+ } else if (!t.canvas) if (typeof document != "undefined") t.container = document.body || document.documentElement, t.canvas = Zqe(), t.container.appendChild(t.canvas), Wqe(t);
+ else throw Error("Not DOM environment. Use headless-gl.");
+ return t.gl || ["webgl", "experimental-webgl", "webgl-experimental"].some(function(n) {
+ try {
+ t.gl = t.canvas.getContext(n, t.attrs);
+ } catch (i) {
+ }
+ return t.gl;
+ }), t.gl;
+ };
+ function Wqe(e) {
+ if (e.container) if (e.container == document.body) document.body.style.width || (e.canvas.width = e.width || e.pixelRatio * window.innerWidth), document.body.style.height || (e.canvas.height = e.height || e.pixelRatio * window.innerHeight);
+ else {
+ var t = e.container.getBoundingClientRect();
+ e.canvas.width = e.width || t.right - t.left, e.canvas.height = e.height || t.bottom - t.top;
+ }
+ }
+ function Xqe(e) {
+ return typeof e.getContext == "function" && "width" in e && "height" in e;
+ }
+ function gUt(e) {
+ return typeof e.nodeName == "string" && typeof e.appendChild == "function" && typeof e.getBoundingClientRect == "function";
+ }
+ function mUt(e) {
+ return typeof e.drawArrays == "function" || typeof e.drawElements == "function";
+ }
+ function Zqe() {
+ var e = document.createElement("canvas");
+ return e.style.position = "absolute", e.style.top = 0, e.style.left = 0, e;
+ }
+ });
+ var $qe = ye((p_r, Jqe) => {
+ var yUt = sK(), _Ut = [32, 126];
+ Jqe.exports = xUt;
+ function xUt(e) {
+ e = e || {};
+ var t = e.shape ? e.shape : e.canvas ? [e.canvas.width, e.canvas.height] : [512, 512], r = e.canvas || document.createElement("canvas"), n = e.font, i = typeof e.step == "number" ? [e.step, e.step] : e.step || [32, 32], a = e.chars || _Ut;
+ if (n && typeof n != "string" && (n = yUt(n)), !Array.isArray(a)) a = String(a).split("");
+ else if (a.length === 2 && typeof a[0] == "number" && typeof a[1] == "number") {
+ for (var o = [], s = a[0], l = 0; s <= a[1]; s++) o[l++] = String.fromCharCode(s);
+ a = o;
+ }
+ t = t.slice(), r.width = t[0], r.height = t[1];
+ var u = r.getContext("2d");
+ u.fillStyle = "#000", u.fillRect(0, 0, r.width, r.height), u.font = n, u.textAlign = "center", u.textBaseline = "middle", u.fillStyle = "#fff";
+ for (var c = i[0] / 2, f = i[1] / 2, s = 0; s < a.length; s++) u.fillText(a[s], c, f), (c += i[0]) > t[0] - i[0] / 2 && (c = i[0] / 2, f += i[1]);
+ return r;
+ }
+ });
+ var fK = ye((Vh) => {
+ "use restrict";
+ var cK = 32;
+ Vh.INT_BITS = cK;
+ Vh.INT_MAX = 2147483647;
+ Vh.INT_MIN = -1 << cK - 1;
+ Vh.sign = function(e) {
+ return (e > 0) - (e < 0);
+ };
+ Vh.abs = function(e) {
+ var t = e >> cK - 1;
+ return (e ^ t) - t;
+ };
+ Vh.min = function(e, t) {
+ return t ^ (e ^ t) & -(e < t);
+ };
+ Vh.max = function(e, t) {
+ return e ^ (e ^ t) & -(e < t);
+ };
+ Vh.isPow2 = function(e) {
+ return !(e & e - 1) && !!e;
+ };
+ Vh.log2 = function(e) {
+ var t, r;
+ return t = (e > 65535) << 4, e >>>= t, r = (e > 255) << 3, e >>>= r, t |= r, r = (e > 15) << 2, e >>>= r, t |= r, r = (e > 3) << 1, e >>>= r, t |= r, t | e >> 1;
+ };
+ Vh.log10 = function(e) {
+ return e >= 1e9 ? 9 : e >= 1e8 ? 8 : e >= 1e7 ? 7 : e >= 1e6 ? 6 : e >= 1e5 ? 5 : e >= 1e4 ? 4 : e >= 1e3 ? 3 : e >= 100 ? 2 : e >= 10 ? 1 : 0;
+ };
+ Vh.popCount = function(e) {
+ return e = e - (e >>> 1 & 1431655765), e = (e & 858993459) + (e >>> 2 & 858993459), (e + (e >>> 4) & 252645135) * 16843009 >>> 24;
+ };
+ function Qqe(e) {
+ var t = 32;
+ return e &= -e, e && t--, e & 65535 && (t -= 16), e & 16711935 && (t -= 8), e & 252645135 && (t -= 4), e & 858993459 && (t -= 2), e & 1431655765 && (t -= 1), t;
+ }
+ Vh.countTrailingZeros = Qqe;
+ Vh.nextPow2 = function(e) {
+ return e += e === 0, --e, e |= e >>> 1, e |= e >>> 2, e |= e >>> 4, e |= e >>> 8, e |= e >>> 16, e + 1;
+ };
+ Vh.prevPow2 = function(e) {
+ return e |= e >>> 1, e |= e >>> 2, e |= e >>> 4, e |= e >>> 8, e |= e >>> 16, e - (e >>> 1);
+ };
+ Vh.parity = function(e) {
+ return e ^= e >>> 16, e ^= e >>> 8, e ^= e >>> 4, e &= 15, 27030 >>> e & 1;
+ };
+ var Dk = new Array(256);
+ (function(e) {
+ for (var t = 0; t < 256; ++t) {
+ var r = t, n = t, i = 7;
+ for (r >>>= 1; r; r >>>= 1) n <<= 1, n |= r & 1, --i;
+ e[t] = n << i & 255;
+ }
+ })(Dk);
+ Vh.reverse = function(e) {
+ return Dk[e & 255] << 24 | Dk[e >>> 8 & 255] << 16 | Dk[e >>> 16 & 255] << 8 | Dk[e >>> 24 & 255];
+ };
+ Vh.interleave2 = function(e, t) {
+ return e &= 65535, e = (e | e << 8) & 16711935, e = (e | e << 4) & 252645135, e = (e | e << 2) & 858993459, e = (e | e << 1) & 1431655765, t &= 65535, t = (t | t << 8) & 16711935, t = (t | t << 4) & 252645135, t = (t | t << 2) & 858993459, t = (t | t << 1) & 1431655765, e | t << 1;
+ };
+ Vh.deinterleave2 = function(e, t) {
+ return e = e >>> t & 1431655765, e = (e | e >>> 1) & 858993459, e = (e | e >>> 2) & 252645135, e = (e | e >>> 4) & 16711935, e = (e | e >>> 16) & 65535, e << 16 >> 16;
+ };
+ Vh.interleave3 = function(e, t, r) {
+ return e &= 1023, e = (e | e << 16) & 4278190335, e = (e | e << 8) & 251719695, e = (e | e << 4) & 3272356035, e = (e | e << 2) & 1227133513, t &= 1023, t = (t | t << 16) & 4278190335, t = (t | t << 8) & 251719695, t = (t | t << 4) & 3272356035, t = (t | t << 2) & 1227133513, e |= t << 1, r &= 1023, r = (r | r << 16) & 4278190335, r = (r | r << 8) & 251719695, r = (r | r << 4) & 3272356035, r = (r | r << 2) & 1227133513, e | r << 2;
+ };
+ Vh.deinterleave3 = function(e, t) {
+ return e = e >>> t & 1227133513, e = (e | e >>> 2) & 3272356035, e = (e | e >>> 4) & 251719695, e = (e | e >>> 8) & 4278190335, e = (e | e >>> 16) & 1023, e << 22 >> 22;
+ };
+ Vh.nextCombination = function(e) {
+ var t = e | e - 1;
+ return t + 1 | (~t & -~t) - 1 >>> Qqe(e) + 1;
+ };
+ });
+ var rBe = ye((m_r, tBe) => {
+ function eBe(e, t, r) {
+ var n = e[r] | 0;
+ if (n <= 0) return [];
+ var i = new Array(n), a;
+ if (r === e.length - 1) for (a = 0; a < n; ++a) i[a] = t;
+ else for (a = 0; a < n; ++a) i[a] = eBe(e, t, r + 1);
+ return i;
+ }
+ function bUt(e, t) {
+ var r, n;
+ for (r = new Array(e), n = 0; n < e; ++n) r[n] = t;
+ return r;
+ }
+ function wUt(e, t) {
+ switch (typeof t == "undefined" && (t = 0), typeof e) {
+ case "number":
+ if (e > 0) return bUt(e | 0, t);
+ break;
+ case "object":
+ if (typeof e.length == "number") return eBe(e, t, 0);
+ break;
+ }
+ return [];
+ }
+ tBe.exports = wUt;
+ });
+ var mBe = ye((mu) => {
+ var xx = fK(), Ev = rBe(), iBe = _2().Buffer;
+ window.__TYPEDARRAY_POOL || (window.__TYPEDARRAY_POOL = { UINT8: Ev([32, 0]), UINT16: Ev([32, 0]), UINT32: Ev([32, 0]), BIGUINT64: Ev([32, 0]), INT8: Ev([32, 0]), INT16: Ev([32, 0]), INT32: Ev([32, 0]), BIGINT64: Ev([32, 0]), FLOAT: Ev([32, 0]), DOUBLE: Ev([32, 0]), DATA: Ev([32, 0]), UINT8C: Ev([32, 0]), BUFFER: Ev([32, 0]) });
+ var TUt = typeof Uint8ClampedArray != "undefined", AUt = typeof BigUint64Array != "undefined", SUt = typeof BigInt64Array != "undefined", ad = window.__TYPEDARRAY_POOL;
+ ad.UINT8C || (ad.UINT8C = Ev([32, 0]));
+ ad.BIGUINT64 || (ad.BIGUINT64 = Ev([32, 0]));
+ ad.BIGINT64 || (ad.BIGINT64 = Ev([32, 0]));
+ ad.BUFFER || (ad.BUFFER = Ev([32, 0]));
+ var Tz = ad.DATA, Az = ad.BUFFER;
+ mu.free = function(t) {
+ if (iBe.isBuffer(t)) Az[xx.log2(t.length)].push(t);
+ else {
+ if (Object.prototype.toString.call(t) !== "[object ArrayBuffer]" && (t = t.buffer), !t) return;
+ var r = t.length || t.byteLength, n = xx.log2(r) | 0;
+ Tz[n].push(t);
+ }
+ };
+ function nBe(e) {
+ if (e) {
+ var t = e.length || e.byteLength, r = xx.log2(t);
+ Tz[r].push(e);
+ }
+ }
+ function MUt(e) {
+ nBe(e.buffer);
+ }
+ mu.freeUint8 = mu.freeUint16 = mu.freeUint32 = mu.freeBigUint64 = mu.freeInt8 = mu.freeInt16 = mu.freeInt32 = mu.freeBigInt64 = mu.freeFloat32 = mu.freeFloat = mu.freeFloat64 = mu.freeDouble = mu.freeUint8Clamped = mu.freeDataView = MUt;
+ mu.freeArrayBuffer = nBe;
+ mu.freeBuffer = function(t) {
+ Az[xx.log2(t.length)].push(t);
+ };
+ mu.malloc = function(t, r) {
+ if (r === void 0 || r === "arraybuffer") return Bp(t);
+ switch (r) {
+ case "uint8":
+ return hK(t);
+ case "uint16":
+ return aBe(t);
+ case "uint32":
+ return oBe(t);
+ case "int8":
+ return sBe(t);
+ case "int16":
+ return lBe(t);
+ case "int32":
+ return uBe(t);
+ case "float":
+ case "float32":
+ return cBe(t);
+ case "double":
+ case "float64":
+ return fBe(t);
+ case "uint8_clamped":
+ return hBe(t);
+ case "bigint64":
+ return vBe(t);
+ case "biguint64":
+ return dBe(t);
+ case "buffer":
+ return gBe(t);
+ case "data":
+ case "dataview":
+ return pBe(t);
+ default:
+ return null;
+ }
+ return null;
+ };
+ function Bp(t) {
+ var t = xx.nextPow2(t), r = xx.log2(t), n = Tz[r];
+ return n.length > 0 ? n.pop() : new ArrayBuffer(t);
+ }
+ mu.mallocArrayBuffer = Bp;
+ function hK(e) {
+ return new Uint8Array(Bp(e), 0, e);
+ }
+ mu.mallocUint8 = hK;
+ function aBe(e) {
+ return new Uint16Array(Bp(2 * e), 0, e);
+ }
+ mu.mallocUint16 = aBe;
+ function oBe(e) {
+ return new Uint32Array(Bp(4 * e), 0, e);
+ }
+ mu.mallocUint32 = oBe;
+ function sBe(e) {
+ return new Int8Array(Bp(e), 0, e);
+ }
+ mu.mallocInt8 = sBe;
+ function lBe(e) {
+ return new Int16Array(Bp(2 * e), 0, e);
+ }
+ mu.mallocInt16 = lBe;
+ function uBe(e) {
+ return new Int32Array(Bp(4 * e), 0, e);
+ }
+ mu.mallocInt32 = uBe;
+ function cBe(e) {
+ return new Float32Array(Bp(4 * e), 0, e);
+ }
+ mu.mallocFloat32 = mu.mallocFloat = cBe;
+ function fBe(e) {
+ return new Float64Array(Bp(8 * e), 0, e);
+ }
+ mu.mallocFloat64 = mu.mallocDouble = fBe;
+ function hBe(e) {
+ return TUt ? new Uint8ClampedArray(Bp(e), 0, e) : hK(e);
+ }
+ mu.mallocUint8Clamped = hBe;
+ function dBe(e) {
+ return AUt ? new BigUint64Array(Bp(8 * e), 0, e) : null;
+ }
+ mu.mallocBigUint64 = dBe;
+ function vBe(e) {
+ return SUt ? new BigInt64Array(Bp(8 * e), 0, e) : null;
+ }
+ mu.mallocBigInt64 = vBe;
+ function pBe(e) {
+ return new DataView(Bp(e), 0, e);
+ }
+ mu.mallocDataView = pBe;
+ function gBe(e) {
+ e = xx.nextPow2(e);
+ var t = xx.log2(e), r = Az[t];
+ return r.length > 0 ? r.pop() : new iBe(e);
+ }
+ mu.mallocBuffer = gBe;
+ mu.clearCache = function() {
+ for (var t = 0; t < 32; ++t) ad.UINT8[t].length = 0, ad.UINT16[t].length = 0, ad.UINT32[t].length = 0, ad.INT8[t].length = 0, ad.INT16[t].length = 0, ad.INT32[t].length = 0, ad.FLOAT[t].length = 0, ad.DOUBLE[t].length = 0, ad.BIGUINT64[t].length = 0, ad.BIGINT64[t].length = 0, ad.UINT8C[t].length = 0, Tz[t].length = 0, Az[t].length = 0;
+ };
+ });
+ var _Be = ye((__r, yBe) => {
+ var EUt = Object.prototype.toString;
+ yBe.exports = function(e) {
+ var t;
+ return EUt.call(e) === "[object Object]" && (t = Object.getPrototypeOf(e), t === null || t === Object.getPrototypeOf({}));
+ };
+ });
+ var dK = ye((x_r, xBe) => {
+ xBe.exports = function(t, r) {
+ r || (r = [0, ""]), t = String(t);
+ var n = parseFloat(t, 10);
+ return r[0] = n, r[1] = t.match(/[\d.\-\+]*\s*(.*)/)[1] || "", r;
+ };
+ });
+ var TBe = ye((b_r, wBe) => {
+ var kUt = dK();
+ wBe.exports = bBe;
+ var Fk = 96;
+ function vK(e, t) {
+ var r = kUt(getComputedStyle(e).getPropertyValue(t));
+ return r[0] * bBe(r[1], e);
+ }
+ function CUt(e, t) {
+ var r = document.createElement("div");
+ r.style["font-size"] = "128" + e, t.appendChild(r);
+ var n = vK(r, "font-size") / 128;
+ return t.removeChild(r), n;
+ }
+ function bBe(e, t) {
+ switch (t = t || document.body, e = (e || "px").trim().toLowerCase(), (t === window || t === document) && (t = document.body), e) {
+ case "%":
+ return t.clientHeight / 100;
+ case "ch":
+ case "ex":
+ return CUt(e, t);
+ case "em":
+ return vK(t, "font-size");
+ case "rem":
+ return vK(document.body, "font-size");
+ case "vw":
+ return window.innerWidth / 100;
+ case "vh":
+ return window.innerHeight / 100;
+ case "vmin":
+ return Math.min(window.innerWidth, window.innerHeight) / 100;
+ case "vmax":
+ return Math.max(window.innerWidth, window.innerHeight) / 100;
+ case "in":
+ return Fk;
+ case "cm":
+ return Fk / 2.54;
+ case "mm":
+ return Fk / 25.4;
+ case "pt":
+ return Fk / 72;
+ case "pc":
+ return Fk / 6;
+ }
+ return 1;
+ }
+ });
+ var MBe = ye((w_r, SBe) => {
+ SBe.exports = Ez;
+ var LUt = Ez.canvas = document.createElement("canvas"), Sz = LUt.getContext("2d"), ABe = Mz([32, 126]);
+ Ez.createPairs = Mz;
+ Ez.ascii = ABe;
+ function Ez(e, t) {
+ Array.isArray(e) && (e = e.join(", "));
+ var r = {}, n, i = 16, a = 0.05;
+ t && (t.length === 2 && typeof t[0] == "number" ? n = Mz(t) : Array.isArray(t) ? n = t : (t.o ? n = Mz(t.o) : t.pairs && (n = t.pairs), t.fontSize && (i = t.fontSize), t.threshold != null && (a = t.threshold))), n || (n = ABe), Sz.font = i + "px " + e;
+ for (var o = 0; o < n.length; o++) {
+ var s = n[o], l = Sz.measureText(s[0]).width + Sz.measureText(s[1]).width, u = Sz.measureText(s).width;
+ if (Math.abs(l - u) > i * a) {
+ var c = (u - l) / i;
+ r[s] = c * 1e3;
+ }
+ }
+ return r;
+ }
+ function Mz(e) {
+ for (var t = [], r = e[0]; r <= e[1]; r++) for (var n = String.fromCharCode(r), i = e[0]; i < e[1]; i++) {
+ var a = String.fromCharCode(i), o = n + a;
+ t.push(o);
+ }
+ return t;
+ }
+ });
+ var LBe = ye((T_r, CBe) => {
+ CBe.exports = bx;
+ bx.canvas = document.createElement("canvas");
+ bx.cache = {};
+ function bx(o, t) {
+ t || (t = {}), (typeof o == "string" || Array.isArray(o)) && (t.family = o);
+ var r = Array.isArray(t.family) ? t.family.join(", ") : t.family;
+ if (!r) throw Error("`family` must be defined");
+ var n = t.size || t.fontSize || t.em || 48, i = t.weight || t.fontWeight || "", a = t.style || t.fontStyle || "", o = [a, i, n].join(" ") + "px " + r, s = t.origin || "top";
+ if (bx.cache[r] && n <= bx.cache[r].em) return EBe(bx.cache[r], s);
+ var l = t.canvas || bx.canvas, u = l.getContext("2d"), c = { upper: t.upper !== void 0 ? t.upper : "H", lower: t.lower !== void 0 ? t.lower : "x", descent: t.descent !== void 0 ? t.descent : "p", ascent: t.ascent !== void 0 ? t.ascent : "h", tittle: t.tittle !== void 0 ? t.tittle : "i", overshoot: t.overshoot !== void 0 ? t.overshoot : "O" }, f = Math.ceil(n * 1.5);
+ l.height = f, l.width = f * 0.5, u.font = o;
+ var h = "H", d = { top: 0 };
+ u.clearRect(0, 0, f, f), u.textBaseline = "top", u.fillStyle = "black", u.fillText(h, 0, 0);
+ var v = ry(u.getImageData(0, 0, f, f));
+ u.clearRect(0, 0, f, f), u.textBaseline = "bottom", u.fillText(h, 0, f);
+ var _ = ry(u.getImageData(0, 0, f, f));
+ d.lineHeight = d.bottom = f - _ + v, u.clearRect(0, 0, f, f), u.textBaseline = "alphabetic", u.fillText(h, 0, f);
+ var b = ry(u.getImageData(0, 0, f, f)), p = f - b - 1 + v;
+ d.baseline = d.alphabetic = p, u.clearRect(0, 0, f, f), u.textBaseline = "middle", u.fillText(h, 0, f * 0.5);
+ var k = ry(u.getImageData(0, 0, f, f));
+ d.median = d.middle = f - k - 1 + v - f * 0.5, u.clearRect(0, 0, f, f), u.textBaseline = "hanging", u.fillText(h, 0, f * 0.5);
+ var E = ry(u.getImageData(0, 0, f, f));
+ d.hanging = f - E - 1 + v - f * 0.5, u.clearRect(0, 0, f, f), u.textBaseline = "ideographic", u.fillText(h, 0, f);
+ var T = ry(u.getImageData(0, 0, f, f));
+ if (d.ideographic = f - T - 1 + v, c.upper && (u.clearRect(0, 0, f, f), u.textBaseline = "top", u.fillText(c.upper, 0, 0), d.upper = ry(u.getImageData(0, 0, f, f)), d.capHeight = d.baseline - d.upper), c.lower && (u.clearRect(0, 0, f, f), u.textBaseline = "top", u.fillText(c.lower, 0, 0), d.lower = ry(u.getImageData(0, 0, f, f)), d.xHeight = d.baseline - d.lower), c.tittle && (u.clearRect(0, 0, f, f), u.textBaseline = "top", u.fillText(c.tittle, 0, 0), d.tittle = ry(u.getImageData(0, 0, f, f))), c.ascent && (u.clearRect(0, 0, f, f), u.textBaseline = "top", u.fillText(c.ascent, 0, 0), d.ascent = ry(u.getImageData(0, 0, f, f))), c.descent && (u.clearRect(0, 0, f, f), u.textBaseline = "top", u.fillText(c.descent, 0, 0), d.descent = kBe(u.getImageData(0, 0, f, f))), c.overshoot) {
+ u.clearRect(0, 0, f, f), u.textBaseline = "top", u.fillText(c.overshoot, 0, 0);
+ var L = kBe(u.getImageData(0, 0, f, f));
+ d.overshoot = L - p;
+ }
+ for (var x in d) d[x] /= n;
+ return d.em = n, bx.cache[r] = d, EBe(d, s);
+ }
+ function EBe(e, t) {
+ var r = {};
+ typeof t == "string" && (t = e[t]);
+ for (var n in e) n !== "em" && (r[n] = e[n] - t);
+ return r;
+ }
+ function ry(e) {
+ for (var t = e.height, r = e.data, n = 3; n < r.length; n += 4) if (r[n] !== 0) return Math.floor((n - 3) * 0.25 / t);
+ }
+ function kBe(e) {
+ for (var t = e.height, r = e.data, n = r.length - 1; n > 0; n -= 4) if (r[n] !== 0) return Math.floor((n - 3) * 0.25 / t);
+ }
+ });
+ var DBe = ye((A_r, RBe) => {
+ var _5 = Hqe(), PUt = ey(), IUt = jqe(), RUt = Kqe(), DUt = XY(), pK = ox(), FUt = $qe(), wx = mBe(), zUt = s5(), OUt = _Be(), qUt = dK(), BUt = TBe(), NUt = MBe(), UUt = Nh(), VUt = LBe(), GUt = iw(), HUt = fK(), PBe = HUt.nextPow2, IBe = new DUt(), Cz = false;
+ document.body && (kz = document.body.appendChild(document.createElement("div")), kz.style.font = "italic small-caps bold condensed 16px/2 cursive", getComputedStyle(kz).fontStretch && (Cz = true), document.body.removeChild(kz));
+ var kz, xc = function(t) {
+ jUt(t) ? (t = { regl: t }, this.gl = t.regl._gl) : this.gl = RUt(t), this.shader = IBe.get(this.gl), this.shader ? this.regl = this.shader.regl : this.regl = t.regl || IUt({ gl: this.gl }), this.charBuffer = this.regl.buffer({ type: "uint8", usage: "stream" }), this.sizeBuffer = this.regl.buffer({ type: "float", usage: "stream" }), this.shader || (this.shader = this.createShader(), IBe.set(this.gl, this.shader)), this.batch = [], this.fontSize = [], this.font = [], this.fontAtlas = [], this.draw = this.shader.draw.bind(this), this.render = function() {
+ this.regl._refresh(), this.draw(this.batch);
+ }, this.canvas = this.gl.canvas, this.update(OUt(t) ? t : {});
+ };
+ xc.prototype.createShader = function() {
+ var t = this.regl, r = t({ blend: { enable: true, color: [0, 0, 0, 1], func: { srcRGB: "src alpha", dstRGB: "one minus src alpha", srcAlpha: "one minus dst alpha", dstAlpha: "one" } }, stencil: { enable: false }, depth: { enable: false }, count: t.prop("count"), offset: t.prop("offset"), attributes: { charOffset: { offset: 4, stride: 8, buffer: t.this("sizeBuffer") }, width: { offset: 0, stride: 8, buffer: t.this("sizeBuffer") }, char: t.this("charBuffer"), position: t.this("position") }, uniforms: { atlasSize: function(i, a) {
+ return [a.atlas.width, a.atlas.height];
+ }, atlasDim: function(i, a) {
+ return [a.atlas.cols, a.atlas.rows];
+ }, atlas: function(i, a) {
+ return a.atlas.texture;
+ }, charStep: function(i, a) {
+ return a.atlas.step;
+ }, em: function(i, a) {
+ return a.atlas.em;
+ }, color: t.prop("color"), opacity: t.prop("opacity"), viewport: t.this("viewportArray"), scale: t.this("scale"), align: t.prop("align"), baseline: t.prop("baseline"), translate: t.this("translate"), positionOffset: t.prop("positionOffset") }, primitive: "points", viewport: t.this("viewport"), vert: `
+ precision highp float;
+ attribute float width, charOffset, char;
+ attribute vec2 position;
+ uniform float fontSize, charStep, em, align, baseline;
+ uniform vec4 viewport;
+ uniform vec4 color;
+ uniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;
+ varying vec2 charCoord, charId;
+ varying float charWidth;
+ varying vec4 fontColor;
+ void main () {
+ vec2 offset = floor(em * (vec2(align + charOffset, baseline)
+ + vec2(positionOffset.x, -positionOffset.y)))
+ / (viewport.zw * scale.xy);
+
+ vec2 position = (position + translate) * scale;
+ position += offset * scale;
+
+ charCoord = position * viewport.zw + viewport.xy;
+
+ gl_Position = vec4(position * 2. - 1., 0, 1);
+
+ gl_PointSize = charStep;
+
+ charId.x = mod(char, atlasDim.x);
+ charId.y = floor(char / atlasDim.x);
+
+ charWidth = width * em;
+
+ fontColor = color / 255.;
+ }`, frag: `
+ precision highp float;
+ uniform float fontSize, charStep, opacity;
+ uniform vec2 atlasSize;
+ uniform vec4 viewport;
+ uniform sampler2D atlas;
+ varying vec4 fontColor;
+ varying vec2 charCoord, charId;
+ varying float charWidth;
+
+ float lightness(vec4 color) {
+ return color.r * 0.299 + color.g * 0.587 + color.b * 0.114;
+ }
+
+ void main () {
+ vec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;
+ float halfCharStep = floor(charStep * .5 + .5);
+
+ // invert y and shift by 1px (FF expecially needs that)
+ uv.y = charStep - uv.y;
+
+ // ignore points outside of character bounding box
+ float halfCharWidth = ceil(charWidth * .5);
+ if (floor(uv.x) > halfCharStep + halfCharWidth ||
+ floor(uv.x) < halfCharStep - halfCharWidth) return;
+
+ uv += charId * charStep;
+ uv = uv / atlasSize;
+
+ vec4 color = fontColor;
+ vec4 mask = texture2D(atlas, uv);
+
+ float maskY = lightness(mask);
+ // float colorY = lightness(color);
+ color.a *= maskY;
+ color.a *= opacity;
+
+ // color.a += .1;
+
+ // antialiasing, see yiq color space y-channel formula
+ // color.rgb += (1. - color.rgb) * (1. - mask.rgb);
+
+ gl_FragColor = color;
+ }` }), n = {};
+ return { regl: t, draw: r, atlas: n };
+ };
+ xc.prototype.update = function(t) {
+ var r = this;
+ if (typeof t == "string") t = { text: t };
+ else if (!t) return;
+ t = PUt(t, { position: "position positions coord coords coordinates", font: "font fontFace fontface typeface cssFont css-font family fontFamily", fontSize: "fontSize fontsize size font-size", text: "text texts chars characters value values symbols", align: "align alignment textAlign textbaseline", baseline: "baseline textBaseline textbaseline", direction: "dir direction textDirection", color: "color colour fill fill-color fillColor textColor textcolor", kerning: "kerning kern", range: "range dataBox", viewport: "vp viewport viewBox viewbox viewPort", opacity: "opacity alpha transparency visible visibility opaque", offset: "offset positionOffset padding shift indent indentation" }, true), t.opacity != null && (Array.isArray(t.opacity) ? this.opacity = t.opacity.map(function(Le) {
+ return parseFloat(Le);
+ }) : this.opacity = parseFloat(t.opacity)), t.viewport != null && (this.viewport = zUt(t.viewport), this.viewportArray = [this.viewport.x, this.viewport.y, this.viewport.width, this.viewport.height]), this.viewport == null && (this.viewport = { x: 0, y: 0, width: this.gl.drawingBufferWidth, height: this.gl.drawingBufferHeight }, this.viewportArray = [this.viewport.x, this.viewport.y, this.viewport.width, this.viewport.height]), t.kerning != null && (this.kerning = t.kerning), t.offset != null && (typeof t.offset == "number" && (t.offset = [t.offset, 0]), this.positionOffset = GUt(t.offset)), t.direction && (this.direction = t.direction), t.range && (this.range = t.range, this.scale = [1 / (t.range[2] - t.range[0]), 1 / (t.range[3] - t.range[1])], this.translate = [-t.range[0], -t.range[1]]), t.scale && (this.scale = t.scale), t.translate && (this.translate = t.translate), this.scale || (this.scale = [1 / this.viewport.width, 1 / this.viewport.height]), this.translate || (this.translate = [0, 0]), !this.font.length && !t.font && (t.font = xc.baseFontSize + "px sans-serif");
+ var n = false, i = false;
+ if (t.font && (Array.isArray(t.font) ? t.font : [t.font]).forEach(function(Le, ge) {
+ if (typeof Le == "string") try {
+ Le = _5.parse(Le);
+ } catch (je) {
+ Le = _5.parse(xc.baseFontSize + "px " + Le);
+ }
+ else {
+ var ie = Le.style, Se = Le.weight, Ee = Le.stretch, Ae = Le.variant;
+ Le = _5.parse(_5.stringify(Le)), ie && (Le.style = ie), Se && (Le.weight = Se), Ee && (Le.stretch = Ee), Ae && (Le.variant = Ae);
+ }
+ var Be = _5.stringify({ size: xc.baseFontSize, family: Le.family, stretch: Cz ? Le.stretch : void 0, variant: Le.variant, weight: Le.weight, style: Le.style }), Pe = qUt(Le.size), me = Math.round(Pe[0] * BUt(Pe[1]));
+ if (me !== r.fontSize[ge] && (i = true, r.fontSize[ge] = me), (!r.font[ge] || Be != r.font[ge].baseString) && (n = true, r.font[ge] = xc.fonts[Be], !r.font[ge])) {
+ var De = Le.family.join(", "), ce = [Le.style];
+ Le.style != Le.variant && ce.push(Le.variant), Le.variant != Le.weight && ce.push(Le.weight), Cz && Le.weight != Le.stretch && ce.push(Le.stretch), r.font[ge] = { baseString: Be, family: De, weight: Le.weight, stretch: Le.stretch, style: Le.style, variant: Le.variant, width: {}, kerning: {}, metrics: VUt(De, { origin: "top", fontSize: xc.baseFontSize, fontStyle: ce.join(" ") }) }, xc.fonts[Be] = r.font[ge];
+ }
+ }), (n || i) && this.font.forEach(function(Le, ge) {
+ var ie = _5.stringify({ size: r.fontSize[ge], family: Le.family, stretch: Cz ? Le.stretch : void 0, variant: Le.variant, weight: Le.weight, style: Le.style });
+ if (r.fontAtlas[ge] = r.shader.atlas[ie], !r.fontAtlas[ge]) {
+ var Se = Le.metrics;
+ r.shader.atlas[ie] = r.fontAtlas[ge] = { fontString: ie, step: Math.ceil(r.fontSize[ge] * Se.bottom * 0.5) * 2, em: r.fontSize[ge], cols: 0, rows: 0, height: 0, width: 0, chars: [], ids: {}, texture: r.regl.texture() };
+ }
+ t.text == null && (t.text = r.text);
+ }), typeof t.text == "string" && t.position && t.position.length > 2) {
+ for (var a = Array(t.position.length * 0.5), o = 0; o < a.length; o++) a[o] = t.text;
+ t.text = a;
+ }
+ var s;
+ if (t.text != null || n) {
+ if (this.textOffsets = [0], Array.isArray(t.text)) {
+ this.count = t.text[0].length, this.counts = [this.count];
+ for (var l = 1; l < t.text.length; l++) this.textOffsets[l] = this.textOffsets[l - 1] + t.text[l - 1].length, this.count += t.text[l].length, this.counts.push(t.text[l].length);
+ this.text = t.text.join("");
+ } else this.text = t.text, this.count = this.text.length, this.counts = [this.count];
+ s = [], this.font.forEach(function(Le, ge) {
+ xc.atlasContext.font = Le.baseString;
+ for (var ie = r.fontAtlas[ge], Se = 0; Se < r.text.length; Se++) {
+ var Ee = r.text.charAt(Se);
+ if (ie.ids[Ee] == null && (ie.ids[Ee] = ie.chars.length, ie.chars.push(Ee), s.push(Ee)), Le.width[Ee] == null && (Le.width[Ee] = xc.atlasContext.measureText(Ee).width / xc.baseFontSize, r.kerning)) {
+ var Ae = [];
+ for (var Be in Le.width) Ae.push(Be + Ee, Ee + Be);
+ UUt(Le.kerning, NUt(Le.family, { pairs: Ae }));
+ }
+ }
+ });
+ }
+ if (t.position) if (t.position.length > 2) {
+ for (var u = !t.position[0].length, c = wx.mallocFloat(this.count * 2), f = 0, h = 0; f < this.counts.length; f++) {
+ var d = this.counts[f];
+ if (u) for (var v = 0; v < d; v++) c[h++] = t.position[f * 2], c[h++] = t.position[f * 2 + 1];
+ else for (var _ = 0; _ < d; _++) c[h++] = t.position[f][0], c[h++] = t.position[f][1];
+ }
+ this.position.call ? this.position({ type: "float", data: c }) : this.position = this.regl.buffer({ type: "float", data: c }), wx.freeFloat(c);
+ } else this.position.destroy && this.position.destroy(), this.position = { constant: t.position };
+ if (t.text || n) {
+ var b = wx.mallocUint8(this.count), p = wx.mallocFloat(this.count * 2);
+ this.textWidth = [];
+ for (var k = 0, E = 0; k < this.counts.length; k++) {
+ for (var T = this.counts[k], L = this.font[k] || this.font[0], x = this.fontAtlas[k] || this.fontAtlas[0], C = 0; C < T; C++) {
+ var M = this.text.charAt(E), g = this.text.charAt(E - 1);
+ if (b[E] = x.ids[M], p[E * 2] = L.width[M], C) {
+ var P = p[E * 2 - 2], A = p[E * 2], z = p[E * 2 - 1], O = z + P * 0.5 + A * 0.5;
+ if (this.kerning) {
+ var U = L.kerning[g + M];
+ U && (O += U * 1e-3);
+ }
+ p[E * 2 + 1] = O;
+ } else p[E * 2 + 1] = p[E * 2] * 0.5;
+ E++;
+ }
+ this.textWidth.push(p.length ? p[E * 2 - 2] * 0.5 + p[E * 2 - 1] : 0);
+ }
+ t.align || (t.align = this.align), this.charBuffer({ data: b, type: "uint8", usage: "stream" }), this.sizeBuffer({ data: p, type: "float", usage: "stream" }), wx.freeUint8(b), wx.freeFloat(p), s.length && this.font.forEach(function(Le, ge) {
+ var ie = r.fontAtlas[ge], Se = ie.step, Ee = Math.floor(xc.maxAtlasSize / Se), Ae = Math.min(Ee, ie.chars.length), Be = Math.ceil(ie.chars.length / Ae), Pe = PBe(Ae * Se), me = PBe(Be * Se);
+ ie.width = Pe, ie.height = me, ie.rows = Be, ie.cols = Ae, ie.em && ie.texture({ data: FUt({ canvas: xc.atlasCanvas, font: ie.fontString, chars: ie.chars, shape: [Pe, me], step: [Se, Se] }) });
+ });
+ }
+ if (t.align && (this.align = t.align, this.alignOffset = this.textWidth.map(function(Le, ge) {
+ var ie = Array.isArray(r.align) ? r.align.length > 1 ? r.align[ge] : r.align[0] : r.align;
+ if (typeof ie == "number") return ie;
+ switch (ie) {
+ case "right":
+ case "end":
+ return -Le;
+ case "center":
+ case "centre":
+ case "middle":
+ return -Le * 0.5;
+ }
+ return 0;
+ })), this.baseline == null && t.baseline == null && (t.baseline = 0), t.baseline != null && (this.baseline = t.baseline, Array.isArray(this.baseline) || (this.baseline = [this.baseline]), this.baselineOffset = this.baseline.map(function(Le, ge) {
+ var ie = (r.font[ge] || r.font[0]).metrics, Se = 0;
+ return Se += ie.bottom * 0.5, typeof Le == "number" ? Se += Le - ie.baseline : Se += -ie[Le], Se *= -1, Se;
+ })), t.color != null) if (t.color || (t.color = "transparent"), typeof t.color == "string" || !isNaN(t.color)) this.color = pK(t.color, "uint8");
+ else {
+ var G;
+ if (typeof t.color[0] == "number" && t.color.length > this.counts.length) {
+ var Z = t.color.length;
+ G = wx.mallocUint8(Z);
+ for (var j = (t.color.subarray || t.color.slice).bind(t.color), N = 0; N < Z; N += 4) G.set(pK(j(N, N + 4), "uint8"), N);
+ } else {
+ var H = t.color.length;
+ G = wx.mallocUint8(H * 4);
+ for (var re = 0; re < H; re++) G.set(pK(t.color[re] || 0, "uint8"), re * 4);
+ }
+ this.color = G;
+ }
+ if (t.position || t.text || t.color || t.baseline || t.align || t.font || t.offset || t.opacity) {
+ var oe = this.color.length > 4 || this.baselineOffset.length > 1 || this.align && this.align.length > 1 || this.fontAtlas.length > 1 || this.positionOffset.length > 2;
+ if (oe) {
+ var _e = Math.max(this.position.length * 0.5 || 0, this.color.length * 0.25 || 0, this.baselineOffset.length || 0, this.alignOffset.length || 0, this.font.length || 0, this.opacity.length || 0, this.positionOffset.length * 0.5 || 0);
+ this.batch = Array(_e);
+ for (var Ce = 0; Ce < this.batch.length; Ce++) this.batch[Ce] = { count: this.counts.length > 1 ? this.counts[Ce] : this.counts[0], offset: this.textOffsets.length > 1 ? this.textOffsets[Ce] : this.textOffsets[0], color: this.color ? this.color.length <= 4 ? this.color : this.color.subarray(Ce * 4, Ce * 4 + 4) : [0, 0, 0, 255], opacity: Array.isArray(this.opacity) ? this.opacity[Ce] : this.opacity, baseline: this.baselineOffset[Ce] != null ? this.baselineOffset[Ce] : this.baselineOffset[0], align: this.align ? this.alignOffset[Ce] != null ? this.alignOffset[Ce] : this.alignOffset[0] : 0, atlas: this.fontAtlas[Ce] || this.fontAtlas[0], positionOffset: this.positionOffset.length > 2 ? this.positionOffset.subarray(Ce * 2, Ce * 2 + 2) : this.positionOffset };
+ } else this.count ? this.batch = [{ count: this.count, offset: 0, color: this.color || [0, 0, 0, 255], opacity: Array.isArray(this.opacity) ? this.opacity[0] : this.opacity, baseline: this.baselineOffset[0], align: this.alignOffset ? this.alignOffset[0] : 0, atlas: this.fontAtlas[0], positionOffset: this.positionOffset }] : this.batch = [];
+ }
+ };
+ xc.prototype.destroy = function() {
+ };
+ xc.prototype.kerning = true;
+ xc.prototype.position = { constant: new Float32Array(2) };
+ xc.prototype.translate = null;
+ xc.prototype.scale = null;
+ xc.prototype.font = null;
+ xc.prototype.text = "";
+ xc.prototype.positionOffset = [0, 0];
+ xc.prototype.opacity = 1;
+ xc.prototype.color = new Uint8Array([0, 0, 0, 255]);
+ xc.prototype.alignOffset = [0, 0];
+ xc.maxAtlasSize = 1024;
+ xc.atlasCanvas = document.createElement("canvas");
+ xc.atlasContext = xc.atlasCanvas.getContext("2d", { alpha: false });
+ xc.baseFontSize = 64;
+ xc.fonts = {};
+ function jUt(e) {
+ return typeof e == "function" && e._gl && e.prop && e.texture && e.buffer;
+ }
+ RBe.exports = xc;
+ });
+ var FBe = ye((gK, mK) => {
+ (function(e, t) {
+ typeof gK == "object" && typeof mK != "undefined" ? mK.exports = t() : e.createREGL = t();
+ })(gK, function() {
+ var e = function(Me, bt) {
+ for (var zt = Object.keys(bt), Rr = 0; Rr < zt.length; ++Rr) Me[zt[Rr]] = bt[zt[Rr]];
+ return Me;
+ }, t = 0, r = 0, n = 5, i = 6;
+ function a(Me, bt) {
+ this.id = t++, this.type = Me, this.data = bt;
+ }
+ function o(Me) {
+ return Me.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
+ }
+ function s(Me) {
+ if (Me.length === 0) return [];
+ var bt = Me.charAt(0), zt = Me.charAt(Me.length - 1);
+ if (Me.length > 1 && bt === zt && (bt === '"' || bt === "'")) return ['"' + o(Me.substr(1, Me.length - 2)) + '"'];
+ var Rr = /\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(Me);
+ if (Rr) return s(Me.substr(0, Rr.index)).concat(s(Rr[1])).concat(s(Me.substr(Rr.index + Rr[0].length)));
+ var jr = Me.split(".");
+ if (jr.length === 1) return ['"' + o(Me) + '"'];
+ for (var Nr = [], Gr = 0; Gr < jr.length; ++Gr) Nr = Nr.concat(s(jr[Gr]));
+ return Nr;
+ }
+ function l(Me) {
+ return "[" + s(Me).join("][") + "]";
+ }
+ function u(Me, bt) {
+ return new a(Me, l(bt + ""));
+ }
+ function c(Me) {
+ return typeof Me == "function" && !Me._reglType || Me instanceof a;
+ }
+ function f(Me, bt) {
+ if (typeof Me == "function") return new a(r, Me);
+ if (typeof Me == "number" || typeof Me == "boolean") return new a(n, Me);
+ if (Array.isArray(Me)) return new a(i, Me.map(function(zt, Rr) {
+ return f(zt);
+ }));
+ if (Me instanceof a) return Me;
+ }
+ var h = { DynamicVariable: a, define: u, isDynamic: c, unbox: f, accessor: l }, d = { next: typeof requestAnimationFrame == "function" ? function(Me) {
+ return requestAnimationFrame(Me);
+ } : function(Me) {
+ return setTimeout(Me, 16);
+ }, cancel: typeof cancelAnimationFrame == "function" ? function(Me) {
+ return cancelAnimationFrame(Me);
+ } : clearTimeout }, v = typeof performance != "undefined" && performance.now ? function() {
+ return performance.now();
+ } : function() {
+ return +/* @__PURE__ */ new Date();
+ };
+ function _() {
+ var Me = { "": 0 }, bt = [""];
+ return { id: function(zt) {
+ var Rr = Me[zt];
+ return Rr || (Rr = Me[zt] = bt.length, bt.push(zt), Rr);
+ }, str: function(zt) {
+ return bt[zt];
+ } };
+ }
+ function b(Me, bt, zt) {
+ var Rr = document.createElement("canvas");
+ e(Rr.style, { border: 0, margin: 0, padding: 0, top: 0, left: 0, width: "100%", height: "100%" }), Me.appendChild(Rr), Me === document.body && (Rr.style.position = "absolute", e(Me.style, { margin: 0, padding: 0 }));
+ function jr() {
+ var mi = window.innerWidth, Ui = window.innerHeight;
+ if (Me !== document.body) {
+ var qi = Rr.getBoundingClientRect();
+ mi = qi.right - qi.left, Ui = qi.bottom - qi.top;
+ }
+ Rr.width = zt * mi, Rr.height = zt * Ui;
+ }
+ var Nr;
+ Me !== document.body && typeof ResizeObserver == "function" ? (Nr = new ResizeObserver(function() {
+ setTimeout(jr);
+ }), Nr.observe(Me)) : window.addEventListener("resize", jr, false);
+ function Gr() {
+ Nr ? Nr.disconnect() : window.removeEventListener("resize", jr), Me.removeChild(Rr);
+ }
+ return jr(), { canvas: Rr, onDestroy: Gr };
+ }
+ function p(Me, bt) {
+ function zt(Rr) {
+ try {
+ return Me.getContext(Rr, bt);
+ } catch (jr) {
+ return null;
+ }
+ }
+ return zt("webgl") || zt("experimental-webgl") || zt("webgl-experimental");
+ }
+ function k(Me) {
+ return typeof Me.nodeName == "string" && typeof Me.appendChild == "function" && typeof Me.getBoundingClientRect == "function";
+ }
+ function E(Me) {
+ return typeof Me.drawArrays == "function" || typeof Me.drawElements == "function";
+ }
+ function T(Me) {
+ return typeof Me == "string" ? Me.split() : Me;
+ }
+ function L(Me) {
+ return typeof Me == "string" ? document.querySelector(Me) : Me;
+ }
+ function x(Me) {
+ var bt = Me || {}, zt, Rr, jr, Nr, Gr = {}, mi = [], Ui = [], qi = typeof window == "undefined" ? 1 : window.devicePixelRatio, Ei = false, Hn = {}, en = function(Mr) {
+ }, Wi = function() {
+ };
+ if (typeof bt == "string" ? zt = document.querySelector(bt) : typeof bt == "object" && (k(bt) ? zt = bt : E(bt) ? (Nr = bt, jr = Nr.canvas) : ("gl" in bt ? Nr = bt.gl : "canvas" in bt ? jr = L(bt.canvas) : "container" in bt && (Rr = L(bt.container)), "attributes" in bt && (Gr = bt.attributes), "extensions" in bt && (mi = T(bt.extensions)), "optionalExtensions" in bt && (Ui = T(bt.optionalExtensions)), "onDone" in bt && (en = bt.onDone), "profile" in bt && (Ei = !!bt.profile), "pixelRatio" in bt && (qi = +bt.pixelRatio), "cachedCode" in bt && (Hn = bt.cachedCode))), zt && (zt.nodeName.toLowerCase() === "canvas" ? jr = zt : Rr = zt), !Nr) {
+ if (!jr) {
+ var si = b(Rr || document.body, en, qi);
+ if (!si) return null;
+ jr = si.canvas, Wi = si.onDestroy;
+ }
+ Gr.premultipliedAlpha === void 0 && (Gr.premultipliedAlpha = true), Nr = p(jr, Gr);
+ }
+ return Nr ? { gl: Nr, canvas: jr, container: Rr, extensions: mi, optionalExtensions: Ui, pixelRatio: qi, profile: Ei, cachedCode: Hn, onDone: en, onDestroy: Wi } : (Wi(), en("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"), null);
+ }
+ function C(Me, bt) {
+ var zt = {};
+ function Rr(Gr) {
+ var mi = Gr.toLowerCase(), Ui;
+ try {
+ Ui = zt[mi] = Me.getExtension(mi);
+ } catch (qi) {
+ }
+ return !!Ui;
+ }
+ for (var jr = 0; jr < bt.extensions.length; ++jr) {
+ var Nr = bt.extensions[jr];
+ if (!Rr(Nr)) return bt.onDestroy(), bt.onDone('"' + Nr + '" extension is not supported by the current WebGL context, try upgrading your system or a different browser'), null;
+ }
+ return bt.optionalExtensions.forEach(Rr), { extensions: zt, restore: function() {
+ Object.keys(zt).forEach(function(Gr) {
+ if (zt[Gr] && !Rr(Gr)) throw new Error("(regl): error restoring extension " + Gr);
+ });
+ } };
+ }
+ function M(Me, bt) {
+ for (var zt = Array(Me), Rr = 0; Rr < Me; ++Rr) zt[Rr] = bt(Rr);
+ return zt;
+ }
+ var g = 5120, P = 5121, A = 5122, z = 5123, O = 5124, U = 5125, G = 5126;
+ function Z(Me) {
+ for (var bt = 16; bt <= 1 << 28; bt *= 16) if (Me <= bt) return bt;
+ return 0;
+ }
+ function j(Me) {
+ var bt, zt;
+ return bt = (Me > 65535) << 4, Me >>>= bt, zt = (Me > 255) << 3, Me >>>= zt, bt |= zt, zt = (Me > 15) << 2, Me >>>= zt, bt |= zt, zt = (Me > 3) << 1, Me >>>= zt, bt |= zt, bt | Me >> 1;
+ }
+ function N() {
+ var Me = M(8, function() {
+ return [];
+ });
+ function bt(Nr) {
+ var Gr = Z(Nr), mi = Me[j(Gr) >> 2];
+ return mi.length > 0 ? mi.pop() : new ArrayBuffer(Gr);
+ }
+ function zt(Nr) {
+ Me[j(Nr.byteLength) >> 2].push(Nr);
+ }
+ function Rr(Nr, Gr) {
+ var mi = null;
+ switch (Nr) {
+ case g:
+ mi = new Int8Array(bt(Gr), 0, Gr);
+ break;
+ case P:
+ mi = new Uint8Array(bt(Gr), 0, Gr);
+ break;
+ case A:
+ mi = new Int16Array(bt(2 * Gr), 0, Gr);
+ break;
+ case z:
+ mi = new Uint16Array(bt(2 * Gr), 0, Gr);
+ break;
+ case O:
+ mi = new Int32Array(bt(4 * Gr), 0, Gr);
+ break;
+ case U:
+ mi = new Uint32Array(bt(4 * Gr), 0, Gr);
+ break;
+ case G:
+ mi = new Float32Array(bt(4 * Gr), 0, Gr);
+ break;
+ default:
+ return null;
+ }
+ return mi.length !== Gr ? mi.subarray(0, Gr) : mi;
+ }
+ function jr(Nr) {
+ zt(Nr.buffer);
+ }
+ return { alloc: bt, free: zt, allocType: Rr, freeType: jr };
+ }
+ var H = N();
+ H.zero = N();
+ var re = 3408, oe = 3410, _e = 3411, Ce = 3412, Le = 3413, ge = 3414, ie = 3415, Se = 33901, Ee = 33902, Ae = 3379, Be = 3386, Pe = 34921, me = 36347, De = 36348, ce = 35661, je = 35660, lt = 34930, pt = 36349, Vt = 34076, ot = 34024, ut = 7936, Wt = 7937, Nt = 7938, $t = 35724, sr = 34047, Tr = 36063, fr = 34852, $e = 3553, St = 34067, Qt = 34069, Gt = 33984, _t = 6408, It = 5126, mt = 5121, er = 36160, lr = 36053, wr = 36064, Lr = 16384, ti = function(Me, bt) {
+ var zt = 1;
+ bt.ext_texture_filter_anisotropic && (zt = Me.getParameter(sr));
+ var Rr = 1, jr = 1;
+ bt.webgl_draw_buffers && (Rr = Me.getParameter(fr), jr = Me.getParameter(Tr));
+ var Nr = !!bt.oes_texture_float;
+ if (Nr) {
+ var Gr = Me.createTexture();
+ Me.bindTexture($e, Gr), Me.texImage2D($e, 0, _t, 1, 1, 0, _t, It, null);
+ var mi = Me.createFramebuffer();
+ if (Me.bindFramebuffer(er, mi), Me.framebufferTexture2D(er, wr, $e, Gr, 0), Me.bindTexture($e, null), Me.checkFramebufferStatus(er) !== lr) Nr = false;
+ else {
+ Me.viewport(0, 0, 1, 1), Me.clearColor(1, 0, 0, 1), Me.clear(Lr);
+ var Ui = H.allocType(It, 4);
+ Me.readPixels(0, 0, 1, 1, _t, It, Ui), Me.getError() ? Nr = false : (Me.deleteFramebuffer(mi), Me.deleteTexture(Gr), Nr = Ui[0] === 1), H.freeType(Ui);
+ }
+ }
+ var qi = typeof navigator != "undefined" && (/MSIE/.test(navigator.userAgent) || /Trident\//.test(navigator.appVersion) || /Edge/.test(navigator.userAgent)), Ei = true;
+ if (!qi) {
+ var Hn = Me.createTexture(), en = H.allocType(mt, 36);
+ Me.activeTexture(Gt), Me.bindTexture(St, Hn), Me.texImage2D(Qt, 0, _t, 3, 3, 0, _t, mt, en), H.freeType(en), Me.bindTexture(St, null), Me.deleteTexture(Hn), Ei = !Me.getError();
+ }
+ return { colorBits: [Me.getParameter(oe), Me.getParameter(_e), Me.getParameter(Ce), Me.getParameter(Le)], depthBits: Me.getParameter(ge), stencilBits: Me.getParameter(ie), subpixelBits: Me.getParameter(re), extensions: Object.keys(bt).filter(function(Wi) {
+ return !!bt[Wi];
+ }), maxAnisotropic: zt, maxDrawbuffers: Rr, maxColorAttachments: jr, pointSizeDims: Me.getParameter(Se), lineWidthDims: Me.getParameter(Ee), maxViewportDims: Me.getParameter(Be), maxCombinedTextureUnits: Me.getParameter(ce), maxCubeMapSize: Me.getParameter(Vt), maxRenderbufferSize: Me.getParameter(ot), maxTextureUnits: Me.getParameter(lt), maxTextureSize: Me.getParameter(Ae), maxAttributes: Me.getParameter(Pe), maxVertexUniforms: Me.getParameter(me), maxVertexTextureUnits: Me.getParameter(je), maxVaryingVectors: Me.getParameter(De), maxFragmentUniforms: Me.getParameter(pt), glsl: Me.getParameter($t), renderer: Me.getParameter(Wt), vendor: Me.getParameter(ut), version: Me.getParameter(Nt), readFloat: Nr, npotTextureCube: Ei };
+ }, Br = function(Me) {
+ return Me instanceof Uint8Array || Me instanceof Uint16Array || Me instanceof Uint32Array || Me instanceof Int8Array || Me instanceof Int16Array || Me instanceof Int32Array || Me instanceof Float32Array || Me instanceof Float64Array || Me instanceof Uint8ClampedArray;
+ };
+ function Vr(Me) {
+ return !!Me && typeof Me == "object" && Array.isArray(Me.shape) && Array.isArray(Me.stride) && typeof Me.offset == "number" && Me.shape.length === Me.stride.length && (Array.isArray(Me.data) || Br(Me.data));
+ }
+ var dt = function(Me) {
+ return Object.keys(Me).map(function(bt) {
+ return Me[bt];
+ });
+ }, Ge = { shape: xe, flatten: Ie };
+ function Je(Me, bt, zt) {
+ for (var Rr = 0; Rr < bt; ++Rr) zt[Rr] = Me[Rr];
+ }
+ function We(Me, bt, zt, Rr) {
+ for (var jr = 0, Nr = 0; Nr < bt; ++Nr) for (var Gr = Me[Nr], mi = 0; mi < zt; ++mi) Rr[jr++] = Gr[mi];
+ }
+ function tt(Me, bt, zt, Rr, jr, Nr) {
+ for (var Gr = Nr, mi = 0; mi < bt; ++mi) for (var Ui = Me[mi], qi = 0; qi < zt; ++qi) for (var Ei = Ui[qi], Hn = 0; Hn < Rr; ++Hn) jr[Gr++] = Ei[Hn];
+ }
+ function xt(Me, bt, zt, Rr, jr) {
+ for (var Nr = 1, Gr = zt + 1; Gr < bt.length; ++Gr) Nr *= bt[Gr];
+ var mi = bt[zt];
+ if (bt.length - zt === 4) {
+ var Ui = bt[zt + 1], qi = bt[zt + 2], Ei = bt[zt + 3];
+ for (Gr = 0; Gr < mi; ++Gr) tt(Me[Gr], Ui, qi, Ei, Rr, jr), jr += Nr;
+ } else for (Gr = 0; Gr < mi; ++Gr) xt(Me[Gr], bt, zt + 1, Rr, jr), jr += Nr;
+ }
+ function Ie(Me, bt, zt, Rr) {
+ var jr = 1;
+ if (bt.length) for (var Nr = 0; Nr < bt.length; ++Nr) jr *= bt[Nr];
+ else jr = 0;
+ var Gr = Rr || H.allocType(zt, jr);
+ switch (bt.length) {
+ case 0:
+ break;
+ case 1:
+ Je(Me, bt[0], Gr);
+ break;
+ case 2:
+ We(Me, bt[0], bt[1], Gr);
+ break;
+ case 3:
+ tt(Me, bt[0], bt[1], bt[2], Gr, 0);
+ break;
+ default:
+ xt(Me, bt, 0, Gr, 0);
+ }
+ return Gr;
+ }
+ function xe(Me) {
+ for (var bt = [], zt = Me; zt.length; zt = zt[0]) bt.push(zt.length);
+ return bt;
+ }
+ var ke = { "[object Int8Array]": 5120, "[object Int16Array]": 5122, "[object Int32Array]": 5124, "[object Uint8Array]": 5121, "[object Uint8ClampedArray]": 5121, "[object Uint16Array]": 5123, "[object Uint32Array]": 5125, "[object Float32Array]": 5126, "[object Float64Array]": 5121, "[object ArrayBuffer]": 5121 }, vt = 5120, ir = 5122, ar = 5124, vr = 5121, ii = 5123, pi = 5125, $r = 5126, di = 5126, ji = { int8: vt, int16: ir, int32: ar, uint8: vr, uint16: ii, uint32: pi, float: $r, float32: di }, In = 35048, wi = 35040, On = { dynamic: In, stream: wi, static: 35044 }, qn = Ge.flatten, Fn = Ge.shape, ra = 35044, la = 35040, Ut = 5121, wt = 5126, rr = [];
+ rr[5120] = 1, rr[5122] = 2, rr[5124] = 4, rr[5121] = 1, rr[5123] = 2, rr[5125] = 4, rr[5126] = 4;
+ function nr(Me) {
+ return ke[Object.prototype.toString.call(Me)] | 0;
+ }
+ function Er(Me, bt) {
+ for (var zt = 0; zt < bt.length; ++zt) Me[zt] = bt[zt];
+ }
+ function Xr(Me, bt, zt, Rr, jr, Nr, Gr) {
+ for (var mi = 0, Ui = 0; Ui < zt; ++Ui) for (var qi = 0; qi < Rr; ++qi) Me[mi++] = bt[jr * Ui + Nr * qi + Gr];
+ }
+ function ri(Me, bt, zt, Rr) {
+ var jr = 0, Nr = {};
+ function Gr(Mr) {
+ this.id = jr++, this.buffer = Me.createBuffer(), this.type = Mr, this.usage = ra, this.byteLength = 0, this.dimension = 1, this.dtype = Ut, this.persistentData = null, zt.profile && (this.stats = { size: 0 });
+ }
+ Gr.prototype.bind = function() {
+ Me.bindBuffer(this.type, this.buffer);
+ }, Gr.prototype.destroy = function() {
+ en(this);
+ };
+ var mi = [];
+ function Ui(Mr, Yr) {
+ var xi = mi.pop();
+ return xi || (xi = new Gr(Mr)), xi.bind(), Hn(xi, Yr, la, 0, 1, false), xi;
+ }
+ function qi(Mr) {
+ mi.push(Mr);
+ }
+ function Ei(Mr, Yr, xi) {
+ Mr.byteLength = Yr.byteLength, Me.bufferData(Mr.type, Yr, xi);
+ }
+ function Hn(Mr, Yr, xi, Ri, ci, an) {
+ var Zi;
+ if (Mr.usage = xi, Array.isArray(Yr)) {
+ if (Mr.dtype = Ri || wt, Yr.length > 0) {
+ var Bn;
+ if (Array.isArray(Yr[0])) {
+ Zi = Fn(Yr);
+ for (var hi = 1, li = 1; li < Zi.length; ++li) hi *= Zi[li];
+ Mr.dimension = hi, Bn = qn(Yr, Zi, Mr.dtype), Ei(Mr, Bn, xi), an ? Mr.persistentData = Bn : H.freeType(Bn);
+ } else if (typeof Yr[0] == "number") {
+ Mr.dimension = ci;
+ var mn = H.allocType(Mr.dtype, Yr.length);
+ Er(mn, Yr), Ei(Mr, mn, xi), an ? Mr.persistentData = mn : H.freeType(mn);
+ } else Br(Yr[0]) && (Mr.dimension = Yr[0].length, Mr.dtype = Ri || nr(Yr[0]) || wt, Bn = qn(Yr, [Yr.length, Yr[0].length], Mr.dtype), Ei(Mr, Bn, xi), an ? Mr.persistentData = Bn : H.freeType(Bn));
+ }
+ } else if (Br(Yr)) Mr.dtype = Ri || nr(Yr), Mr.dimension = ci, Ei(Mr, Yr, xi), an && (Mr.persistentData = new Uint8Array(new Uint8Array(Yr.buffer)));
+ else if (Vr(Yr)) {
+ Zi = Yr.shape;
+ var Ji = Yr.stride, Vi = Yr.offset, Ni = 0, pn = 0, Vn = 0, na = 0;
+ Zi.length === 1 ? (Ni = Zi[0], pn = 1, Vn = Ji[0], na = 0) : Zi.length === 2 && (Ni = Zi[0], pn = Zi[1], Vn = Ji[0], na = Ji[1]), Mr.dtype = Ri || nr(Yr.data) || wt, Mr.dimension = pn;
+ var Ki = H.allocType(Mr.dtype, Ni * pn);
+ Xr(Ki, Yr.data, Ni, pn, Vn, na, Vi), Ei(Mr, Ki, xi), an ? Mr.persistentData = Ki : H.freeType(Ki);
+ } else Yr instanceof ArrayBuffer && (Mr.dtype = Ut, Mr.dimension = ci, Ei(Mr, Yr, xi), an && (Mr.persistentData = new Uint8Array(new Uint8Array(Yr))));
+ }
+ function en(Mr) {
+ bt.bufferCount--, Rr(Mr);
+ var Yr = Mr.buffer;
+ Me.deleteBuffer(Yr), Mr.buffer = null, delete Nr[Mr.id];
+ }
+ function Wi(Mr, Yr, xi, Ri) {
+ bt.bufferCount++;
+ var ci = new Gr(Yr);
+ Nr[ci.id] = ci;
+ function an(hi) {
+ var li = ra, mn = null, Ji = 0, Vi = 0, Ni = 1;
+ return Array.isArray(hi) || Br(hi) || Vr(hi) || hi instanceof ArrayBuffer ? mn = hi : typeof hi == "number" ? Ji = hi | 0 : hi && ("data" in hi && (mn = hi.data), "usage" in hi && (li = On[hi.usage]), "type" in hi && (Vi = ji[hi.type]), "dimension" in hi && (Ni = hi.dimension | 0), "length" in hi && (Ji = hi.length | 0)), ci.bind(), mn ? Hn(ci, mn, li, Vi, Ni, Ri) : (Ji && Me.bufferData(ci.type, Ji, li), ci.dtype = Vi || Ut, ci.usage = li, ci.dimension = Ni, ci.byteLength = Ji), zt.profile && (ci.stats.size = ci.byteLength * rr[ci.dtype]), an;
+ }
+ function Zi(hi, li) {
+ Me.bufferSubData(ci.type, li, hi);
+ }
+ function Bn(hi, li) {
+ var mn = (li || 0) | 0, Ji;
+ if (ci.bind(), Br(hi) || hi instanceof ArrayBuffer) Zi(hi, mn);
+ else if (Array.isArray(hi)) {
+ if (hi.length > 0) {
+ if (typeof hi[0] == "number") {
+ var Vi = H.allocType(ci.dtype, hi.length);
+ Er(Vi, hi), Zi(Vi, mn), H.freeType(Vi);
+ } else if (Array.isArray(hi[0]) || Br(hi[0])) {
+ Ji = Fn(hi);
+ var Ni = qn(hi, Ji, ci.dtype);
+ Zi(Ni, mn), H.freeType(Ni);
+ }
+ }
+ } else if (Vr(hi)) {
+ Ji = hi.shape;
+ var pn = hi.stride, Vn = 0, na = 0, Ki = 0, kn = 0;
+ Ji.length === 1 ? (Vn = Ji[0], na = 1, Ki = pn[0], kn = 0) : Ji.length === 2 && (Vn = Ji[0], na = Ji[1], Ki = pn[0], kn = pn[1]);
+ var ta = Array.isArray(hi.data) ? ci.dtype : nr(hi.data), oa = H.allocType(ta, Vn * na);
+ Xr(oa, hi.data, Vn, na, Ki, kn, hi.offset), Zi(oa, mn), H.freeType(oa);
+ }
+ return an;
+ }
+ return xi || an(Mr), an._reglType = "buffer", an._buffer = ci, an.subdata = Bn, zt.profile && (an.stats = ci.stats), an.destroy = function() {
+ en(ci);
+ }, an;
+ }
+ function si() {
+ dt(Nr).forEach(function(Mr) {
+ Mr.buffer = Me.createBuffer(), Me.bindBuffer(Mr.type, Mr.buffer), Me.bufferData(Mr.type, Mr.persistentData || Mr.byteLength, Mr.usage);
+ });
+ }
+ return zt.profile && (bt.getTotalBufferSize = function() {
+ var Mr = 0;
+ return Object.keys(Nr).forEach(function(Yr) {
+ Mr += Nr[Yr].stats.size;
+ }), Mr;
+ }), { create: Wi, createStream: Ui, destroyStream: qi, clear: function() {
+ dt(Nr).forEach(en), mi.forEach(en);
+ }, getBuffer: function(Mr) {
+ return Mr && Mr._buffer instanceof Gr ? Mr._buffer : null;
+ }, restore: si, _initBuffer: Hn };
+ }
+ var Qr = 0, Oi = 0, $i = 1, tn = 1, fn = 4, yn = 4, Sn = { points: Qr, point: Oi, lines: $i, line: tn, triangles: fn, triangle: yn, "line loop": 2, "line strip": 3, "triangle strip": 5, "triangle fan": 6 }, Ba = 0, ua = 1, ma = 4, Wa = 5120, Fa = 5121, Xo = 5122, da = 5123, Wn = 5124, Ha = 5125, vo = 34963, jn = 35040, Mt = 35044;
+ function kr(Me, bt, zt, Rr) {
+ var jr = {}, Nr = 0, Gr = { uint8: Fa, uint16: da };
+ bt.oes_element_index_uint && (Gr.uint32 = Ha);
+ function mi(si) {
+ this.id = Nr++, jr[this.id] = this, this.buffer = si, this.primType = ma, this.vertCount = 0, this.type = 0;
+ }
+ mi.prototype.bind = function() {
+ this.buffer.bind();
+ };
+ var Ui = [];
+ function qi(si) {
+ var Mr = Ui.pop();
+ return Mr || (Mr = new mi(zt.create(null, vo, true, false)._buffer)), Hn(Mr, si, jn, -1, -1, 0, 0), Mr;
+ }
+ function Ei(si) {
+ Ui.push(si);
+ }
+ function Hn(si, Mr, Yr, xi, Ri, ci, an) {
+ si.buffer.bind();
+ var Zi;
+ if (Mr) {
+ var Bn = an;
+ !an && (!Br(Mr) || Vr(Mr) && !Br(Mr.data)) && (Bn = bt.oes_element_index_uint ? Ha : da), zt._initBuffer(si.buffer, Mr, Yr, Bn, 3);
+ } else Me.bufferData(vo, ci, Yr), si.buffer.dtype = Zi || Fa, si.buffer.usage = Yr, si.buffer.dimension = 3, si.buffer.byteLength = ci;
+ if (Zi = an, !an) {
+ switch (si.buffer.dtype) {
+ case Fa:
+ case Wa:
+ Zi = Fa;
+ break;
+ case da:
+ case Xo:
+ Zi = da;
+ break;
+ case Ha:
+ case Wn:
+ Zi = Ha;
+ break;
+ }
+ si.buffer.dtype = Zi;
+ }
+ si.type = Zi;
+ var hi = Ri;
+ hi < 0 && (hi = si.buffer.byteLength, Zi === da ? hi >>= 1 : Zi === Ha && (hi >>= 2)), si.vertCount = hi;
+ var li = xi;
+ if (xi < 0) {
+ li = ma;
+ var mn = si.buffer.dimension;
+ mn === 1 && (li = Ba), mn === 2 && (li = ua), mn === 3 && (li = ma);
+ }
+ si.primType = li;
+ }
+ function en(si) {
+ Rr.elementsCount--, delete jr[si.id], si.buffer.destroy(), si.buffer = null;
+ }
+ function Wi(si, Mr) {
+ var Yr = zt.create(null, vo, true), xi = new mi(Yr._buffer);
+ Rr.elementsCount++;
+ function Ri(ci) {
+ if (!ci) Yr(), xi.primType = ma, xi.vertCount = 0, xi.type = Fa;
+ else if (typeof ci == "number") Yr(ci), xi.primType = ma, xi.vertCount = ci | 0, xi.type = Fa;
+ else {
+ var an = null, Zi = Mt, Bn = -1, hi = -1, li = 0, mn = 0;
+ Array.isArray(ci) || Br(ci) || Vr(ci) ? an = ci : ("data" in ci && (an = ci.data), "usage" in ci && (Zi = On[ci.usage]), "primitive" in ci && (Bn = Sn[ci.primitive]), "count" in ci && (hi = ci.count | 0), "type" in ci && (mn = Gr[ci.type]), "length" in ci ? li = ci.length | 0 : (li = hi, mn === da || mn === Xo ? li *= 2 : (mn === Ha || mn === Wn) && (li *= 4))), Hn(xi, an, Zi, Bn, hi, li, mn);
+ }
+ return Ri;
+ }
+ return Ri(si), Ri._reglType = "elements", Ri._elements = xi, Ri.subdata = function(ci, an) {
+ return Yr.subdata(ci, an), Ri;
+ }, Ri.destroy = function() {
+ en(xi);
+ }, Ri;
+ }
+ return { create: Wi, createStream: qi, destroyStream: Ei, getElements: function(si) {
+ return typeof si == "function" && si._elements instanceof mi ? si._elements : null;
+ }, clear: function() {
+ dt(jr).forEach(en);
+ } };
+ }
+ var Jr = new Float32Array(1), vi = new Uint32Array(Jr.buffer), hn = 5123;
+ function An(Me) {
+ for (var bt = H.allocType(hn, Me.length), zt = 0; zt < Me.length; ++zt) if (isNaN(Me[zt])) bt[zt] = 65535;
+ else if (Me[zt] === 1 / 0) bt[zt] = 31744;
+ else if (Me[zt] === -1 / 0) bt[zt] = 64512;
+ else {
+ Jr[0] = Me[zt];
+ var Rr = vi[0], jr = Rr >>> 31 << 15, Nr = (Rr << 1 >>> 24) - 127, Gr = Rr >> 13 & 1023;
+ if (Nr < -24) bt[zt] = jr;
+ else if (Nr < -14) {
+ var mi = -14 - Nr;
+ bt[zt] = jr + (Gr + 1024 >> mi);
+ } else Nr > 15 ? bt[zt] = jr + 31744 : bt[zt] = jr + (Nr + 15 << 10) + Gr;
+ }
+ return bt;
+ }
+ function Mn(Me) {
+ return Array.isArray(Me) || Br(Me);
+ }
+ var Li = 34467, _n = 3553, ya = 34067, $n = 34069, Ma = 6408, _o = 6406, No = 6407, po = 6409, Lo = 6410, ko = 32854, Ds = 32855, Fs = 36194, ll = 32819, ul = 32820, zl = 33635, us = 34042, il = 6402, As = 34041, cl = 35904, Ks = 35906, zs = 36193, Io = 33776, ls = 33777, Yl = 33778, Su = 33779, nc = 35986, bs = 35987, Rn = 34798, _a = 35840, Vu = 35841, Ol = 35842, xo = 35843, Kl = 36196, Ns = 5121, Hl = 5123, ac = 5125, aa = 5126, Oo = 10242, qo = 10243, ql = 10497, Pc = 33071, Do = 33648, rf = 10240, Vf = 10241, pl = 9728, Zc = 9729, Jl = 9984, Os = 9985, yu = 9986, oc = 9987, Cf = 33170, sc = 4352, jh = 4353, Lf = 4354, cs = 34046, nf = 3317, Gf = 37440, $l = 37441, fl = 37443, lc = 37444, Fu = 33984, Es = [Jl, yu, Os, oc], Hs = [0, po, Lo, No, Ma], Go = {};
+ Go[po] = Go[_o] = Go[il] = 1, Go[As] = Go[Lo] = 2, Go[No] = Go[cl] = 3, Go[Ma] = Go[Ks] = 4;
+ function ps(Me) {
+ return "[object " + Me + "]";
+ }
+ var uc = ps("HTMLCanvasElement"), xl = ps("OffscreenCanvas"), Gu = ps("CanvasRenderingContext2D"), qs = ps("ImageBitmap"), od = ps("HTMLImageElement"), Po = ps("HTMLVideoElement"), sd = Object.keys(ke).concat([uc, xl, Gu, qs, od, Po]), Ko = [];
+ Ko[Ns] = 1, Ko[aa] = 4, Ko[zs] = 2, Ko[Hl] = 2, Ko[ac] = 4;
+ var Pa = [];
+ Pa[ko] = 2, Pa[Ds] = 2, Pa[Fs] = 2, Pa[As] = 4, Pa[Io] = 0.5, Pa[ls] = 0.5, Pa[Yl] = 1, Pa[Su] = 1, Pa[nc] = 0.5, Pa[bs] = 1, Pa[Rn] = 1, Pa[_a] = 0.5, Pa[Vu] = 0.25, Pa[Ol] = 0.5, Pa[xo] = 0.25, Pa[Kl] = 0.5;
+ function af(Me) {
+ return Array.isArray(Me) && (Me.length === 0 || typeof Me[0] == "number");
+ }
+ function Hu(Me) {
+ if (!Array.isArray(Me)) return false;
+ var bt = Me.length;
+ return !(bt === 0 || !Mn(Me[0]));
+ }
+ function bl(Me) {
+ return Object.prototype.toString.call(Me);
+ }
+ function Hf(Me) {
+ return bl(Me) === uc;
+ }
+ function Ic(Me) {
+ return bl(Me) === xl;
+ }
+ function yf(Me) {
+ return bl(Me) === Gu;
+ }
+ function Bl(Me) {
+ return bl(Me) === qs;
+ }
+ function Ah(Me) {
+ return bl(Me) === od;
+ }
+ function Qf(Me) {
+ return bl(Me) === Po;
+ }
+ function _f(Me) {
+ if (!Me) return false;
+ var bt = bl(Me);
+ return sd.indexOf(bt) >= 0 ? true : af(Me) || Hu(Me) || Vr(Me);
+ }
+ function Yc(Me) {
+ return ke[Object.prototype.toString.call(Me)] | 0;
+ }
+ function eh(Me, bt) {
+ var zt = bt.length;
+ switch (Me.type) {
+ case Ns:
+ case Hl:
+ case ac:
+ case aa:
+ var Rr = H.allocType(Me.type, zt);
+ Rr.set(bt), Me.data = Rr;
+ break;
+ case zs:
+ Me.data = An(bt);
+ break;
+ }
+ }
+ function th(Me, bt) {
+ return H.allocType(Me.type === zs ? aa : Me.type, bt);
+ }
+ function ju(Me, bt) {
+ Me.type === zs ? (Me.data = An(bt), H.freeType(bt)) : Me.data = bt;
+ }
+ function jf(Me, bt, zt, Rr, jr, Nr) {
+ for (var Gr = Me.width, mi = Me.height, Ui = Me.channels, qi = Gr * mi * Ui, Ei = th(Me, qi), Hn = 0, en = 0; en < mi; ++en) for (var Wi = 0; Wi < Gr; ++Wi) for (var si = 0; si < Ui; ++si) Ei[Hn++] = bt[zt * Wi + Rr * en + jr * si + Nr];
+ ju(Me, Ei);
+ }
+ function cc(Me, bt, zt, Rr, jr, Nr) {
+ var Gr;
+ if (typeof Pa[Me] != "undefined" ? Gr = Pa[Me] : Gr = Go[Me] * Ko[bt], Nr && (Gr *= 6), jr) {
+ for (var mi = 0, Ui = zt; Ui >= 1; ) mi += Gr * Ui * Ui, Ui /= 2;
+ return mi;
+ } else return Gr * zt * Rr;
+ }
+ function of(Me, bt, zt, Rr, jr, Nr, Gr) {
+ var mi = { "don't care": sc, "dont care": sc, nice: Lf, fast: jh }, Ui = { repeat: ql, clamp: Pc, mirror: Do }, qi = { nearest: pl, linear: Zc }, Ei = e({ mipmap: oc, "nearest mipmap nearest": Jl, "linear mipmap nearest": Os, "nearest mipmap linear": yu, "linear mipmap linear": oc }, qi), Hn = { none: 0, browser: lc }, en = { uint8: Ns, rgba4: ll, rgb565: zl, "rgb5 a1": ul }, Wi = { alpha: _o, luminance: po, "luminance alpha": Lo, rgb: No, rgba: Ma, rgba4: ko, "rgb5 a1": Ds, rgb565: Fs }, si = {};
+ bt.ext_srgb && (Wi.srgb = cl, Wi.srgba = Ks), bt.oes_texture_float && (en.float32 = en.float = aa), bt.oes_texture_half_float && (en.float16 = en["half float"] = zs), bt.webgl_depth_texture && (e(Wi, { depth: il, "depth stencil": As }), e(en, { uint16: Hl, uint32: ac, "depth stencil": us })), bt.webgl_compressed_texture_s3tc && e(si, { "rgb s3tc dxt1": Io, "rgba s3tc dxt1": ls, "rgba s3tc dxt3": Yl, "rgba s3tc dxt5": Su }), bt.webgl_compressed_texture_atc && e(si, { "rgb atc": nc, "rgba atc explicit alpha": bs, "rgba atc interpolated alpha": Rn }), bt.webgl_compressed_texture_pvrtc && e(si, { "rgb pvrtc 4bppv1": _a, "rgb pvrtc 2bppv1": Vu, "rgba pvrtc 4bppv1": Ol, "rgba pvrtc 2bppv1": xo }), bt.webgl_compressed_texture_etc1 && (si["rgb etc1"] = Kl);
+ var Mr = Array.prototype.slice.call(Me.getParameter(Li));
+ Object.keys(si).forEach(function(ne) {
+ var we = si[ne];
+ Mr.indexOf(we) >= 0 && (Wi[ne] = we);
+ });
+ var Yr = Object.keys(Wi);
+ zt.textureFormats = Yr;
+ var xi = [];
+ Object.keys(Wi).forEach(function(ne) {
+ var we = Wi[ne];
+ xi[we] = ne;
+ });
+ var Ri = [];
+ Object.keys(en).forEach(function(ne) {
+ var we = en[ne];
+ Ri[we] = ne;
+ });
+ var ci = [];
+ Object.keys(qi).forEach(function(ne) {
+ var we = qi[ne];
+ ci[we] = ne;
+ });
+ var an = [];
+ Object.keys(Ei).forEach(function(ne) {
+ var we = Ei[ne];
+ an[we] = ne;
+ });
+ var Zi = [];
+ Object.keys(Ui).forEach(function(ne) {
+ var we = Ui[ne];
+ Zi[we] = ne;
+ });
+ var Bn = Yr.reduce(function(ne, we) {
+ var Ue = Wi[we];
+ return Ue === po || Ue === _o || Ue === po || Ue === Lo || Ue === il || Ue === As || bt.ext_srgb && (Ue === cl || Ue === Ks) ? ne[Ue] = Ue : Ue === Ds || we.indexOf("rgba") >= 0 ? ne[Ue] = Ma : ne[Ue] = No, ne;
+ }, {});
+ function hi() {
+ this.internalformat = Ma, this.format = Ma, this.type = Ns, this.compressed = false, this.premultiplyAlpha = false, this.flipY = false, this.unpackAlignment = 1, this.colorSpace = lc, this.width = 0, this.height = 0, this.channels = 0;
+ }
+ function li(ne, we) {
+ ne.internalformat = we.internalformat, ne.format = we.format, ne.type = we.type, ne.compressed = we.compressed, ne.premultiplyAlpha = we.premultiplyAlpha, ne.flipY = we.flipY, ne.unpackAlignment = we.unpackAlignment, ne.colorSpace = we.colorSpace, ne.width = we.width, ne.height = we.height, ne.channels = we.channels;
+ }
+ function mn(ne, we) {
+ if (!(typeof we != "object" || !we)) {
+ if ("premultiplyAlpha" in we && (ne.premultiplyAlpha = we.premultiplyAlpha), "flipY" in we && (ne.flipY = we.flipY), "alignment" in we && (ne.unpackAlignment = we.alignment), "colorSpace" in we && (ne.colorSpace = Hn[we.colorSpace]), "type" in we) {
+ var Ue = we.type;
+ ne.type = en[Ue];
+ }
+ var ft = ne.width, Zt = ne.height, hr = ne.channels, qt = false;
+ "shape" in we ? (ft = we.shape[0], Zt = we.shape[1], we.shape.length === 3 && (hr = we.shape[2], qt = true)) : ("radius" in we && (ft = Zt = we.radius), "width" in we && (ft = we.width), "height" in we && (Zt = we.height), "channels" in we && (hr = we.channels, qt = true)), ne.width = ft | 0, ne.height = Zt | 0, ne.channels = hr | 0;
+ var Ve = false;
+ if ("format" in we) {
+ var Qe = we.format, at = ne.internalformat = Wi[Qe];
+ ne.format = Bn[at], Qe in en && ("type" in we || (ne.type = en[Qe])), Qe in si && (ne.compressed = true), Ve = true;
+ }
+ !qt && Ve ? ne.channels = Go[ne.format] : qt && !Ve && ne.channels !== Hs[ne.format] && (ne.format = ne.internalformat = Hs[ne.channels]);
+ }
+ }
+ function Ji(ne) {
+ Me.pixelStorei(Gf, ne.flipY), Me.pixelStorei($l, ne.premultiplyAlpha), Me.pixelStorei(fl, ne.colorSpace), Me.pixelStorei(nf, ne.unpackAlignment);
+ }
+ function Vi() {
+ hi.call(this), this.xOffset = 0, this.yOffset = 0, this.data = null, this.needsFree = false, this.element = null, this.needsCopy = false;
+ }
+ function Ni(ne, we) {
+ var Ue = null;
+ if (_f(we) ? Ue = we : we && (mn(ne, we), "x" in we && (ne.xOffset = we.x | 0), "y" in we && (ne.yOffset = we.y | 0), _f(we.data) && (Ue = we.data)), we.copy) {
+ var ft = jr.viewportWidth, Zt = jr.viewportHeight;
+ ne.width = ne.width || ft - ne.xOffset, ne.height = ne.height || Zt - ne.yOffset, ne.needsCopy = true;
+ } else if (!Ue) ne.width = ne.width || 1, ne.height = ne.height || 1, ne.channels = ne.channels || 4;
+ else if (Br(Ue)) ne.channels = ne.channels || 4, ne.data = Ue, !("type" in we) && ne.type === Ns && (ne.type = Yc(Ue));
+ else if (af(Ue)) ne.channels = ne.channels || 4, eh(ne, Ue), ne.alignment = 1, ne.needsFree = true;
+ else if (Vr(Ue)) {
+ var hr = Ue.data;
+ !Array.isArray(hr) && ne.type === Ns && (ne.type = Yc(hr));
+ var qt = Ue.shape, Ve = Ue.stride, Qe, at, Ct, Ot, Rt, Bt;
+ qt.length === 3 ? (Ct = qt[2], Bt = Ve[2]) : (Ct = 1, Bt = 1), Qe = qt[0], at = qt[1], Ot = Ve[0], Rt = Ve[1], ne.alignment = 1, ne.width = Qe, ne.height = at, ne.channels = Ct, ne.format = ne.internalformat = Hs[Ct], ne.needsFree = true, jf(ne, hr, Ot, Rt, Bt, Ue.offset);
+ } else if (Hf(Ue) || Ic(Ue) || yf(Ue)) Hf(Ue) || Ic(Ue) ? ne.element = Ue : ne.element = Ue.canvas, ne.width = ne.element.width, ne.height = ne.element.height, ne.channels = 4;
+ else if (Bl(Ue)) ne.element = Ue, ne.width = Ue.width, ne.height = Ue.height, ne.channels = 4;
+ else if (Ah(Ue)) ne.element = Ue, ne.width = Ue.naturalWidth, ne.height = Ue.naturalHeight, ne.channels = 4;
+ else if (Qf(Ue)) ne.element = Ue, ne.width = Ue.videoWidth, ne.height = Ue.videoHeight, ne.channels = 4;
+ else if (Hu(Ue)) {
+ var Dt = ne.width || Ue[0].length, yt = ne.height || Ue.length, Pt = ne.channels;
+ Mn(Ue[0][0]) ? Pt = Pt || Ue[0][0].length : Pt = Pt || 1;
+ for (var ht = Ge.shape(Ue), ur = 1, br = 0; br < ht.length; ++br) ur *= ht[br];
+ var Ur = th(ne, ur);
+ Ge.flatten(Ue, ht, "", Ur), ju(ne, Ur), ne.alignment = 1, ne.width = Dt, ne.height = yt, ne.channels = Pt, ne.format = ne.internalformat = Hs[Pt], ne.needsFree = true;
+ }
+ ne.type === aa || ne.type;
+ }
+ function pn(ne, we, Ue) {
+ var ft = ne.element, Zt = ne.data, hr = ne.internalformat, qt = ne.format, Ve = ne.type, Qe = ne.width, at = ne.height;
+ Ji(ne), ft ? Me.texImage2D(we, Ue, qt, qt, Ve, ft) : ne.compressed ? Me.compressedTexImage2D(we, Ue, hr, Qe, at, 0, Zt) : ne.needsCopy ? (Rr(), Me.copyTexImage2D(we, Ue, qt, ne.xOffset, ne.yOffset, Qe, at, 0)) : Me.texImage2D(we, Ue, qt, Qe, at, 0, qt, Ve, Zt || null);
+ }
+ function Vn(ne, we, Ue, ft, Zt) {
+ var hr = ne.element, qt = ne.data, Ve = ne.internalformat, Qe = ne.format, at = ne.type, Ct = ne.width, Ot = ne.height;
+ Ji(ne), hr ? Me.texSubImage2D(we, Zt, Ue, ft, Qe, at, hr) : ne.compressed ? Me.compressedTexSubImage2D(we, Zt, Ue, ft, Ve, Ct, Ot, qt) : ne.needsCopy ? (Rr(), Me.copyTexSubImage2D(we, Zt, Ue, ft, ne.xOffset, ne.yOffset, Ct, Ot)) : Me.texSubImage2D(we, Zt, Ue, ft, Ct, Ot, Qe, at, qt);
+ }
+ var na = [];
+ function Ki() {
+ return na.pop() || new Vi();
+ }
+ function kn(ne) {
+ ne.needsFree && H.freeType(ne.data), Vi.call(ne), na.push(ne);
+ }
+ function ta() {
+ hi.call(this), this.genMipmaps = false, this.mipmapHint = sc, this.mipmask = 0, this.images = Array(16);
+ }
+ function oa(ne, we, Ue) {
+ var ft = ne.images[0] = Ki();
+ ne.mipmask = 1, ft.width = ne.width = we, ft.height = ne.height = Ue, ft.channels = ne.channels = 4;
+ }
+ function ba(ne, we) {
+ var Ue = null;
+ if (_f(we)) Ue = ne.images[0] = Ki(), li(Ue, ne), Ni(Ue, we), ne.mipmask = 1;
+ else if (mn(ne, we), Array.isArray(we.mipmap)) for (var ft = we.mipmap, Zt = 0; Zt < ft.length; ++Zt) Ue = ne.images[Zt] = Ki(), li(Ue, ne), Ue.width >>= Zt, Ue.height >>= Zt, Ni(Ue, ft[Zt]), ne.mipmask |= 1 << Zt;
+ else Ue = ne.images[0] = Ki(), li(Ue, ne), Ni(Ue, we), ne.mipmask = 1;
+ li(ne, ne.images[0]), ne.compressed && (ne.internalformat === Io || ne.internalformat === ls || ne.internalformat === Yl || ne.internalformat);
+ }
+ function is(ne, we) {
+ for (var Ue = ne.images, ft = 0; ft < Ue.length; ++ft) {
+ if (!Ue[ft]) return;
+ pn(Ue[ft], we, ft);
+ }
+ }
+ var Zs = [];
+ function Va() {
+ var ne = Zs.pop() || new ta();
+ hi.call(ne), ne.mipmask = 0;
+ for (var we = 0; we < 16; ++we) ne.images[we] = null;
+ return ne;
+ }
+ function Ml(ne) {
+ for (var we = ne.images, Ue = 0; Ue < we.length; ++Ue) we[Ue] && kn(we[Ue]), we[Ue] = null;
+ Zs.push(ne);
+ }
+ function zo() {
+ this.minFilter = pl, this.magFilter = pl, this.wrapS = Pc, this.wrapT = Pc, this.anisotropic = 1, this.genMipmaps = false, this.mipmapHint = sc;
+ }
+ function Qs(ne, we) {
+ if ("min" in we) {
+ var Ue = we.min;
+ ne.minFilter = Ei[Ue], Es.indexOf(ne.minFilter) >= 0 && !("faces" in we) && (ne.genMipmaps = true);
+ }
+ if ("mag" in we) {
+ var ft = we.mag;
+ ne.magFilter = qi[ft];
+ }
+ var Zt = ne.wrapS, hr = ne.wrapT;
+ if ("wrap" in we) {
+ var qt = we.wrap;
+ typeof qt == "string" ? Zt = hr = Ui[qt] : Array.isArray(qt) && (Zt = Ui[qt[0]], hr = Ui[qt[1]]);
+ } else {
+ if ("wrapS" in we) {
+ var Ve = we.wrapS;
+ Zt = Ui[Ve];
+ }
+ if ("wrapT" in we) {
+ var Qe = we.wrapT;
+ hr = Ui[Qe];
+ }
+ }
+ if (ne.wrapS = Zt, ne.wrapT = hr, "anisotropic" in we) {
+ we.anisotropic;
+ ne.anisotropic = we.anisotropic;
+ }
+ if ("mipmap" in we) {
+ var Ct = false;
+ switch (typeof we.mipmap) {
+ case "string":
+ ne.mipmapHint = mi[we.mipmap], ne.genMipmaps = true, Ct = true;
+ break;
+ case "boolean":
+ Ct = ne.genMipmaps = we.mipmap;
+ break;
+ case "object":
+ ne.genMipmaps = false, Ct = true;
+ break;
+ }
+ Ct && !("min" in we) && (ne.minFilter = Jl);
+ }
+ }
+ function al(ne, we) {
+ Me.texParameteri(we, Vf, ne.minFilter), Me.texParameteri(we, rf, ne.magFilter), Me.texParameteri(we, Oo, ne.wrapS), Me.texParameteri(we, qo, ne.wrapT), bt.ext_texture_filter_anisotropic && Me.texParameteri(we, cs, ne.anisotropic), ne.genMipmaps && (Me.hint(Cf, ne.mipmapHint), Me.generateMipmap(we));
+ }
+ var Vl = 0, ss = {}, Vs = zt.maxTextureUnits, Ys = Array(Vs).map(function() {
+ return null;
+ });
+ function wa(ne) {
+ hi.call(this), this.mipmask = 0, this.internalformat = Ma, this.id = Vl++, this.refCount = 1, this.target = ne, this.texture = Me.createTexture(), this.unit = -1, this.bindCount = 0, this.texInfo = new zo(), Gr.profile && (this.stats = { size: 0 });
+ }
+ function ol(ne) {
+ Me.activeTexture(Fu), Me.bindTexture(ne.target, ne.texture);
+ }
+ function io() {
+ var ne = Ys[0];
+ ne ? Me.bindTexture(ne.target, ne.texture) : Me.bindTexture(_n, null);
+ }
+ function Y(ne) {
+ var we = ne.texture, Ue = ne.unit, ft = ne.target;
+ Ue >= 0 && (Me.activeTexture(Fu + Ue), Me.bindTexture(ft, null), Ys[Ue] = null), Me.deleteTexture(we), ne.texture = null, ne.params = null, ne.pixels = null, ne.refCount = 0, delete ss[ne.id], Nr.textureCount--;
+ }
+ e(wa.prototype, { bind: function() {
+ var ne = this;
+ ne.bindCount += 1;
+ var we = ne.unit;
+ if (we < 0) {
+ for (var Ue = 0; Ue < Vs; ++Ue) {
+ var ft = Ys[Ue];
+ if (ft) {
+ if (ft.bindCount > 0) continue;
+ ft.unit = -1;
+ }
+ Ys[Ue] = ne, we = Ue;
+ break;
+ }
+ Gr.profile && Nr.maxTextureUnits < we + 1 && (Nr.maxTextureUnits = we + 1), ne.unit = we, Me.activeTexture(Fu + we), Me.bindTexture(ne.target, ne.texture);
+ }
+ return we;
+ }, unbind: function() {
+ this.bindCount -= 1;
+ }, decRef: function() {
+ --this.refCount <= 0 && Y(this);
+ } });
+ function D(ne, we) {
+ var Ue = new wa(_n);
+ ss[Ue.id] = Ue, Nr.textureCount++;
+ function ft(qt, Ve) {
+ var Qe = Ue.texInfo;
+ zo.call(Qe);
+ var at = Va();
+ return typeof qt == "number" ? typeof Ve == "number" ? oa(at, qt | 0, Ve | 0) : oa(at, qt | 0, qt | 0) : qt ? (Qs(Qe, qt), ba(at, qt)) : oa(at, 1, 1), Qe.genMipmaps && (at.mipmask = (at.width << 1) - 1), Ue.mipmask = at.mipmask, li(Ue, at), Ue.internalformat = at.internalformat, ft.width = at.width, ft.height = at.height, ol(Ue), is(at, _n), al(Qe, _n), io(), Ml(at), Gr.profile && (Ue.stats.size = cc(Ue.internalformat, Ue.type, at.width, at.height, Qe.genMipmaps, false)), ft.format = xi[Ue.internalformat], ft.type = Ri[Ue.type], ft.mag = ci[Qe.magFilter], ft.min = an[Qe.minFilter], ft.wrapS = Zi[Qe.wrapS], ft.wrapT = Zi[Qe.wrapT], ft;
+ }
+ function Zt(qt, Ve, Qe, at) {
+ var Ct = Ve | 0, Ot = Qe | 0, Rt = at | 0, Bt = Ki();
+ return li(Bt, Ue), Bt.width = 0, Bt.height = 0, Ni(Bt, qt), Bt.width = Bt.width || (Ue.width >> Rt) - Ct, Bt.height = Bt.height || (Ue.height >> Rt) - Ot, ol(Ue), Vn(Bt, _n, Ct, Ot, Rt), io(), kn(Bt), ft;
+ }
+ function hr(qt, Ve) {
+ var Qe = qt | 0, at = Ve | 0 || Qe;
+ if (Qe === Ue.width && at === Ue.height) return ft;
+ ft.width = Ue.width = Qe, ft.height = Ue.height = at, ol(Ue);
+ for (var Ct = 0; Ue.mipmask >> Ct; ++Ct) {
+ var Ot = Qe >> Ct, Rt = at >> Ct;
+ if (!Ot || !Rt) break;
+ Me.texImage2D(_n, Ct, Ue.format, Ot, Rt, 0, Ue.format, Ue.type, null);
+ }
+ return io(), Gr.profile && (Ue.stats.size = cc(Ue.internalformat, Ue.type, Qe, at, false, false)), ft;
+ }
+ return ft(ne, we), ft.subimage = Zt, ft.resize = hr, ft._reglType = "texture2d", ft._texture = Ue, Gr.profile && (ft.stats = Ue.stats), ft.destroy = function() {
+ Ue.decRef();
+ }, ft;
+ }
+ function J(ne, we, Ue, ft, Zt, hr) {
+ var qt = new wa(ya);
+ ss[qt.id] = qt, Nr.cubeCount++;
+ var Ve = new Array(6);
+ function Qe(Ot, Rt, Bt, Dt, yt, Pt) {
+ var ht, ur = qt.texInfo;
+ for (zo.call(ur), ht = 0; ht < 6; ++ht) Ve[ht] = Va();
+ if (typeof Ot == "number" || !Ot) {
+ var br = Ot | 0 || 1;
+ for (ht = 0; ht < 6; ++ht) oa(Ve[ht], br, br);
+ } else if (typeof Ot == "object") if (Rt) ba(Ve[0], Ot), ba(Ve[1], Rt), ba(Ve[2], Bt), ba(Ve[3], Dt), ba(Ve[4], yt), ba(Ve[5], Pt);
+ else if (Qs(ur, Ot), mn(qt, Ot), "faces" in Ot) {
+ var Ur = Ot.faces;
+ for (ht = 0; ht < 6; ++ht) li(Ve[ht], qt), ba(Ve[ht], Ur[ht]);
+ } else for (ht = 0; ht < 6; ++ht) ba(Ve[ht], Ot);
+ for (li(qt, Ve[0]), ur.genMipmaps ? qt.mipmask = (Ve[0].width << 1) - 1 : qt.mipmask = Ve[0].mipmask, qt.internalformat = Ve[0].internalformat, Qe.width = Ve[0].width, Qe.height = Ve[0].height, ol(qt), ht = 0; ht < 6; ++ht) is(Ve[ht], $n + ht);
+ for (al(ur, ya), io(), Gr.profile && (qt.stats.size = cc(qt.internalformat, qt.type, Qe.width, Qe.height, ur.genMipmaps, true)), Qe.format = xi[qt.internalformat], Qe.type = Ri[qt.type], Qe.mag = ci[ur.magFilter], Qe.min = an[ur.minFilter], Qe.wrapS = Zi[ur.wrapS], Qe.wrapT = Zi[ur.wrapT], ht = 0; ht < 6; ++ht) Ml(Ve[ht]);
+ return Qe;
+ }
+ function at(Ot, Rt, Bt, Dt, yt) {
+ var Pt = Bt | 0, ht = Dt | 0, ur = yt | 0, br = Ki();
+ return li(br, qt), br.width = 0, br.height = 0, Ni(br, Rt), br.width = br.width || (qt.width >> ur) - Pt, br.height = br.height || (qt.height >> ur) - ht, ol(qt), Vn(br, $n + Ot, Pt, ht, ur), io(), kn(br), Qe;
+ }
+ function Ct(Ot) {
+ var Rt = Ot | 0;
+ if (Rt !== qt.width) {
+ Qe.width = qt.width = Rt, Qe.height = qt.height = Rt, ol(qt);
+ for (var Bt = 0; Bt < 6; ++Bt) for (var Dt = 0; qt.mipmask >> Dt; ++Dt) Me.texImage2D($n + Bt, Dt, qt.format, Rt >> Dt, Rt >> Dt, 0, qt.format, qt.type, null);
+ return io(), Gr.profile && (qt.stats.size = cc(qt.internalformat, qt.type, Qe.width, Qe.height, false, true)), Qe;
+ }
+ }
+ return Qe(ne, we, Ue, ft, Zt, hr), Qe.subimage = at, Qe.resize = Ct, Qe._reglType = "textureCube", Qe._texture = qt, Gr.profile && (Qe.stats = qt.stats), Qe.destroy = function() {
+ qt.decRef();
+ }, Qe;
+ }
+ function q() {
+ for (var ne = 0; ne < Vs; ++ne) Me.activeTexture(Fu + ne), Me.bindTexture(_n, null), Ys[ne] = null;
+ dt(ss).forEach(Y), Nr.cubeCount = 0, Nr.textureCount = 0;
+ }
+ Gr.profile && (Nr.getTotalTextureSize = function() {
+ var ne = 0;
+ return Object.keys(ss).forEach(function(we) {
+ ne += ss[we].stats.size;
+ }), ne;
+ });
+ function K() {
+ for (var ne = 0; ne < Vs; ++ne) {
+ var we = Ys[ne];
+ we && (we.bindCount = 0, we.unit = -1, Ys[ne] = null);
+ }
+ dt(ss).forEach(function(Ue) {
+ Ue.texture = Me.createTexture(), Me.bindTexture(Ue.target, Ue.texture);
+ for (var ft = 0; ft < 32; ++ft) if ((Ue.mipmask & 1 << ft) !== 0) if (Ue.target === _n) Me.texImage2D(_n, ft, Ue.internalformat, Ue.width >> ft, Ue.height >> ft, 0, Ue.internalformat, Ue.type, null);
+ else for (var Zt = 0; Zt < 6; ++Zt) Me.texImage2D($n + Zt, ft, Ue.internalformat, Ue.width >> ft, Ue.height >> ft, 0, Ue.internalformat, Ue.type, null);
+ al(Ue.texInfo, Ue.target);
+ });
+ }
+ function de() {
+ for (var ne = 0; ne < Vs; ++ne) {
+ var we = Ys[ne];
+ we && (we.bindCount = 0, we.unit = -1, Ys[ne] = null), Me.activeTexture(Fu + ne), Me.bindTexture(_n, null), Me.bindTexture(ya, null);
+ }
+ }
+ return { create2D: D, createCube: J, clear: q, getTexture: function(ne) {
+ return null;
+ }, restore: K, refresh: de };
+ }
+ var Nl = 36161, Kc = 32854, Rc = 32855, gs = 36194, Wf = 33189, Wh = 36168, rh = 34041, sf = 35907, Sh = 34836, Mu = 34842, ih = 34843, js = [];
+ js[Kc] = 2, js[Rc] = 2, js[gs] = 2, js[Wf] = 2, js[Wh] = 1, js[rh] = 4, js[sf] = 4, js[Sh] = 16, js[Mu] = 8, js[ih] = 6;
+ function Eu(Me, bt, zt) {
+ return js[Me] * bt * zt;
+ }
+ var Dc = function(Me, bt, zt, Rr, jr) {
+ var Nr = { rgba4: Kc, rgb565: gs, "rgb5 a1": Rc, depth: Wf, stencil: Wh, "depth stencil": rh };
+ bt.ext_srgb && (Nr.srgba = sf), bt.ext_color_buffer_half_float && (Nr.rgba16f = Mu, Nr.rgb16f = ih), bt.webgl_color_buffer_float && (Nr.rgba32f = Sh);
+ var Gr = [];
+ Object.keys(Nr).forEach(function(Wi) {
+ var si = Nr[Wi];
+ Gr[si] = Wi;
+ });
+ var mi = 0, Ui = {};
+ function qi(Wi) {
+ this.id = mi++, this.refCount = 1, this.renderbuffer = Wi, this.format = Kc, this.width = 0, this.height = 0, jr.profile && (this.stats = { size: 0 });
+ }
+ qi.prototype.decRef = function() {
+ --this.refCount <= 0 && Ei(this);
+ };
+ function Ei(Wi) {
+ var si = Wi.renderbuffer;
+ Me.bindRenderbuffer(Nl, null), Me.deleteRenderbuffer(si), Wi.renderbuffer = null, Wi.refCount = 0, delete Ui[Wi.id], Rr.renderbufferCount--;
+ }
+ function Hn(Wi, si) {
+ var Mr = new qi(Me.createRenderbuffer());
+ Ui[Mr.id] = Mr, Rr.renderbufferCount++;
+ function Yr(Ri, ci) {
+ var an = 0, Zi = 0, Bn = Kc;
+ if (typeof Ri == "object" && Ri) {
+ var hi = Ri;
+ if ("shape" in hi) {
+ var li = hi.shape;
+ an = li[0] | 0, Zi = li[1] | 0;
+ } else "radius" in hi && (an = Zi = hi.radius | 0), "width" in hi && (an = hi.width | 0), "height" in hi && (Zi = hi.height | 0);
+ "format" in hi && (Bn = Nr[hi.format]);
+ } else typeof Ri == "number" ? (an = Ri | 0, typeof ci == "number" ? Zi = ci | 0 : Zi = an) : Ri || (an = Zi = 1);
+ if (!(an === Mr.width && Zi === Mr.height && Bn === Mr.format)) return Yr.width = Mr.width = an, Yr.height = Mr.height = Zi, Mr.format = Bn, Me.bindRenderbuffer(Nl, Mr.renderbuffer), Me.renderbufferStorage(Nl, Bn, an, Zi), jr.profile && (Mr.stats.size = Eu(Mr.format, Mr.width, Mr.height)), Yr.format = Gr[Mr.format], Yr;
+ }
+ function xi(Ri, ci) {
+ var an = Ri | 0, Zi = ci | 0 || an;
+ return an === Mr.width && Zi === Mr.height || (Yr.width = Mr.width = an, Yr.height = Mr.height = Zi, Me.bindRenderbuffer(Nl, Mr.renderbuffer), Me.renderbufferStorage(Nl, Mr.format, an, Zi), jr.profile && (Mr.stats.size = Eu(Mr.format, Mr.width, Mr.height))), Yr;
+ }
+ return Yr(Wi, si), Yr.resize = xi, Yr._reglType = "renderbuffer", Yr._renderbuffer = Mr, jr.profile && (Yr.stats = Mr.stats), Yr.destroy = function() {
+ Mr.decRef();
+ }, Yr;
+ }
+ jr.profile && (Rr.getTotalRenderbufferSize = function() {
+ var Wi = 0;
+ return Object.keys(Ui).forEach(function(si) {
+ Wi += Ui[si].stats.size;
+ }), Wi;
+ });
+ function en() {
+ dt(Ui).forEach(function(Wi) {
+ Wi.renderbuffer = Me.createRenderbuffer(), Me.bindRenderbuffer(Nl, Wi.renderbuffer), Me.renderbufferStorage(Nl, Wi.format, Wi.width, Wi.height);
+ }), Me.bindRenderbuffer(Nl, null);
+ }
+ return { create: Hn, clear: function() {
+ dt(Ui).forEach(Ei);
+ }, restore: en };
+ }, ks = 36160, bc = 36161, hu = 3553, _u = 34069, nl = 36064, nh = 36096, Mh = 36128, zu = 33306, wc = 36193, bd = 5121, xf = 5126, Pf = 6407, Ou = 6408, bf = [];
+ bf[Ou] = 4, bf[Pf] = 3;
+ var jl = [];
+ jl[bd] = 1, jl[xf] = 4, jl[wc] = 2;
+ function lf(Me, bt, zt, Rr, jr, Nr) {
+ var Gr = { cur: null, next: null, dirty: false, setFBO: null }, mi = ["rgba"], Ui = ["rgba4", "rgb565", "rgb5 a1"];
+ bt.ext_srgb && Ui.push("srgba"), bt.ext_color_buffer_half_float && Ui.push("rgba16f", "rgb16f"), bt.webgl_color_buffer_float && Ui.push("rgba32f");
+ var qi = ["uint8"];
+ bt.oes_texture_half_float && qi.push("half float", "float16"), bt.oes_texture_float && qi.push("float", "float32");
+ function Ei(Vi, Ni, pn) {
+ this.target = Vi, this.texture = Ni, this.renderbuffer = pn;
+ var Vn = 0, na = 0;
+ Ni ? (Vn = Ni.width, na = Ni.height) : pn && (Vn = pn.width, na = pn.height), this.width = Vn, this.height = na;
+ }
+ function Hn(Vi) {
+ Vi && (Vi.texture && Vi.texture._texture.decRef(), Vi.renderbuffer && Vi.renderbuffer._renderbuffer.decRef());
+ }
+ function en(Vi, Ni, pn) {
+ if (Vi) if (Vi.texture) {
+ var Vn = Vi.texture._texture;
+ Math.max(1, Vn.width);
+ Math.max(1, Vn.height);
+ Vn.refCount += 1;
+ } else {
+ var kn = Vi.renderbuffer._renderbuffer;
+ kn.refCount += 1;
+ }
+ }
+ function Wi(Vi, Ni) {
+ Ni && (Ni.texture ? Me.framebufferTexture2D(ks, Vi, Ni.target, Ni.texture._texture.texture, 0) : Me.framebufferRenderbuffer(ks, Vi, bc, Ni.renderbuffer._renderbuffer.renderbuffer));
+ }
+ function si(Vi) {
+ var Ni = hu, pn = null, Vn = null, na = Vi;
+ typeof Vi == "object" && (na = Vi.data, "target" in Vi && (Ni = Vi.target | 0));
+ var Ki = na._reglType;
+ return Ki === "texture2d" || Ki === "textureCube" ? pn = na : Ki === "renderbuffer" && (Vn = na, Ni = bc), new Ei(Ni, pn, Vn);
+ }
+ function Mr(Vi, Ni, pn, Vn, na) {
+ if (pn) {
+ var Ki = Rr.create2D({ width: Vi, height: Ni, format: Vn, type: na });
+ return Ki._texture.refCount = 0, new Ei(hu, Ki, null);
+ } else {
+ var kn = jr.create({ width: Vi, height: Ni, format: Vn });
+ return kn._renderbuffer.refCount = 0, new Ei(bc, null, kn);
+ }
+ }
+ function Yr(Vi) {
+ return Vi && (Vi.texture || Vi.renderbuffer);
+ }
+ function xi(Vi, Ni, pn) {
+ Vi && (Vi.texture ? Vi.texture.resize(Ni, pn) : Vi.renderbuffer && Vi.renderbuffer.resize(Ni, pn), Vi.width = Ni, Vi.height = pn);
+ }
+ var Ri = 0, ci = {};
+ function an() {
+ this.id = Ri++, ci[this.id] = this, this.framebuffer = Me.createFramebuffer(), this.width = 0, this.height = 0, this.colorAttachments = [], this.depthAttachment = null, this.stencilAttachment = null, this.depthStencilAttachment = null;
+ }
+ function Zi(Vi) {
+ Vi.colorAttachments.forEach(Hn), Hn(Vi.depthAttachment), Hn(Vi.stencilAttachment), Hn(Vi.depthStencilAttachment);
+ }
+ function Bn(Vi) {
+ var Ni = Vi.framebuffer;
+ Me.deleteFramebuffer(Ni), Vi.framebuffer = null, Nr.framebufferCount--, delete ci[Vi.id];
+ }
+ function hi(Vi) {
+ var Ni;
+ Me.bindFramebuffer(ks, Vi.framebuffer);
+ var pn = Vi.colorAttachments;
+ for (Ni = 0; Ni < pn.length; ++Ni) Wi(nl + Ni, pn[Ni]);
+ for (Ni = pn.length; Ni < zt.maxColorAttachments; ++Ni) Me.framebufferTexture2D(ks, nl + Ni, hu, null, 0);
+ Me.framebufferTexture2D(ks, zu, hu, null, 0), Me.framebufferTexture2D(ks, nh, hu, null, 0), Me.framebufferTexture2D(ks, Mh, hu, null, 0), Wi(nh, Vi.depthAttachment), Wi(Mh, Vi.stencilAttachment), Wi(zu, Vi.depthStencilAttachment);
+ Me.checkFramebufferStatus(ks);
+ Me.isContextLost(), Me.bindFramebuffer(ks, Gr.next ? Gr.next.framebuffer : null), Gr.cur = Gr.next, Me.getError();
+ }
+ function li(Vi, Ni) {
+ var pn = new an();
+ Nr.framebufferCount++;
+ function Vn(Ki, kn) {
+ var ta, oa = 0, ba = 0, is = true, Zs = true, Va = null, Ml = true, zo = "rgba", Qs = "uint8", al = 1, Vl = null, ss = null, Vs = null, Ys = false;
+ if (typeof Ki == "number") oa = Ki | 0, ba = kn | 0 || oa;
+ else if (!Ki) oa = ba = 1;
+ else {
+ var wa = Ki;
+ if ("shape" in wa) {
+ var ol = wa.shape;
+ oa = ol[0], ba = ol[1];
+ } else "radius" in wa && (oa = ba = wa.radius), "width" in wa && (oa = wa.width), "height" in wa && (ba = wa.height);
+ ("color" in wa || "colors" in wa) && (Va = wa.color || wa.colors, Array.isArray(Va)), Va || ("colorCount" in wa && (al = wa.colorCount | 0), "colorTexture" in wa && (Ml = !!wa.colorTexture, zo = "rgba4"), "colorType" in wa && (Qs = wa.colorType, Ml || (Qs === "half float" || Qs === "float16" ? zo = "rgba16f" : (Qs === "float" || Qs === "float32") && (zo = "rgba32f"))), "colorFormat" in wa && (zo = wa.colorFormat, mi.indexOf(zo) >= 0 ? Ml = true : Ui.indexOf(zo) >= 0 && (Ml = false))), ("depthTexture" in wa || "depthStencilTexture" in wa) && (Ys = !!(wa.depthTexture || wa.depthStencilTexture)), "depth" in wa && (typeof wa.depth == "boolean" ? is = wa.depth : (Vl = wa.depth, Zs = false)), "stencil" in wa && (typeof wa.stencil == "boolean" ? Zs = wa.stencil : (ss = wa.stencil, is = false)), "depthStencil" in wa && (typeof wa.depthStencil == "boolean" ? is = Zs = wa.depthStencil : (Vs = wa.depthStencil, is = false, Zs = false));
+ }
+ var io = null, Y = null, D = null, J = null;
+ if (Array.isArray(Va)) io = Va.map(si);
+ else if (Va) io = [si(Va)];
+ else for (io = new Array(al), ta = 0; ta < al; ++ta) io[ta] = Mr(oa, ba, Ml, zo, Qs);
+ oa = oa || io[0].width, ba = ba || io[0].height, Vl ? Y = si(Vl) : is && !Zs && (Y = Mr(oa, ba, Ys, "depth", "uint32")), ss ? D = si(ss) : Zs && !is && (D = Mr(oa, ba, false, "stencil", "uint8")), Vs ? J = si(Vs) : !Vl && !ss && Zs && is && (J = Mr(oa, ba, Ys, "depth stencil", "depth stencil"));
+ for (ta = 0; ta < io.length; ++ta) if (en(io[ta]), io[ta] && io[ta].texture) {
+ bf[io[ta].texture._texture.format] * jl[io[ta].texture._texture.type];
+ }
+ return en(Y), en(D), en(J), Zi(pn), pn.width = oa, pn.height = ba, pn.colorAttachments = io, pn.depthAttachment = Y, pn.stencilAttachment = D, pn.depthStencilAttachment = J, Vn.color = io.map(Yr), Vn.depth = Yr(Y), Vn.stencil = Yr(D), Vn.depthStencil = Yr(J), Vn.width = pn.width, Vn.height = pn.height, hi(pn), Vn;
+ }
+ function na(Ki, kn) {
+ var ta = Math.max(Ki | 0, 1), oa = Math.max(kn | 0 || ta, 1);
+ if (ta === pn.width && oa === pn.height) return Vn;
+ for (var ba = pn.colorAttachments, is = 0; is < ba.length; ++is) xi(ba[is], ta, oa);
+ return xi(pn.depthAttachment, ta, oa), xi(pn.stencilAttachment, ta, oa), xi(pn.depthStencilAttachment, ta, oa), pn.width = Vn.width = ta, pn.height = Vn.height = oa, hi(pn), Vn;
+ }
+ return Vn(Vi, Ni), e(Vn, { resize: na, _reglType: "framebuffer", _framebuffer: pn, destroy: function() {
+ Bn(pn), Zi(pn);
+ }, use: function(Ki) {
+ Gr.setFBO({ framebuffer: Vn }, Ki);
+ } });
+ }
+ function mn(Vi) {
+ var Ni = Array(6);
+ function pn(na) {
+ var Ki, kn = { color: null }, ta = 0, oa = null, ba = "rgba", is = "uint8", Zs = 1;
+ if (typeof na == "number") ta = na | 0;
+ else if (!na) ta = 1;
+ else {
+ var Va = na;
+ if ("shape" in Va) {
+ var Ml = Va.shape;
+ ta = Ml[0];
+ } else "radius" in Va && (ta = Va.radius | 0), "width" in Va ? (ta = Va.width | 0, "height" in Va) : "height" in Va && (ta = Va.height | 0);
+ ("color" in Va || "colors" in Va) && (oa = Va.color || Va.colors, Array.isArray(oa)), oa || ("colorCount" in Va && (Zs = Va.colorCount | 0), "colorType" in Va && (is = Va.colorType), "colorFormat" in Va && (ba = Va.colorFormat)), "depth" in Va && (kn.depth = Va.depth), "stencil" in Va && (kn.stencil = Va.stencil), "depthStencil" in Va && (kn.depthStencil = Va.depthStencil);
+ }
+ var zo;
+ if (oa) if (Array.isArray(oa)) for (zo = [], Ki = 0; Ki < oa.length; ++Ki) zo[Ki] = oa[Ki];
+ else zo = [oa];
+ else {
+ zo = Array(Zs);
+ var Qs = { radius: ta, format: ba, type: is };
+ for (Ki = 0; Ki < Zs; ++Ki) zo[Ki] = Rr.createCube(Qs);
+ }
+ for (kn.color = Array(zo.length), Ki = 0; Ki < zo.length; ++Ki) {
+ var al = zo[Ki];
+ ta = ta || al.width, kn.color[Ki] = { target: _u, data: zo[Ki] };
+ }
+ for (Ki = 0; Ki < 6; ++Ki) {
+ for (var Vl = 0; Vl < zo.length; ++Vl) kn.color[Vl].target = _u + Ki;
+ Ki > 0 && (kn.depth = Ni[0].depth, kn.stencil = Ni[0].stencil, kn.depthStencil = Ni[0].depthStencil), Ni[Ki] ? Ni[Ki](kn) : Ni[Ki] = li(kn);
+ }
+ return e(pn, { width: ta, height: ta, color: zo });
+ }
+ function Vn(na) {
+ var Ki, kn = na | 0;
+ if (kn === pn.width) return pn;
+ var ta = pn.color;
+ for (Ki = 0; Ki < ta.length; ++Ki) ta[Ki].resize(kn);
+ for (Ki = 0; Ki < 6; ++Ki) Ni[Ki].resize(kn);
+ return pn.width = pn.height = kn, pn;
+ }
+ return pn(Vi), e(pn, { faces: Ni, resize: Vn, _reglType: "framebufferCube", destroy: function() {
+ Ni.forEach(function(na) {
+ na.destroy();
+ });
+ } });
+ }
+ function Ji() {
+ Gr.cur = null, Gr.next = null, Gr.dirty = true, dt(ci).forEach(function(Vi) {
+ Vi.framebuffer = Me.createFramebuffer(), hi(Vi);
+ });
+ }
+ return e(Gr, { getFramebuffer: function(Vi) {
+ if (typeof Vi == "function" && Vi._reglType === "framebuffer") {
+ var Ni = Vi._framebuffer;
+ if (Ni instanceof an) return Ni;
+ }
+ return null;
+ }, create: li, createCube: mn, clear: function() {
+ dt(ci).forEach(Bn);
+ }, restore: Ji });
+ }
+ var Xh = 5126, If = 34962, Cs = 34963;
+ function du() {
+ this.state = 0, this.x = 0, this.y = 0, this.z = 0, this.w = 0, this.buffer = null, this.size = 0, this.normalized = false, this.type = Xh, this.offset = 0, this.stride = 0, this.divisor = 0;
+ }
+ function ku(Me, bt, zt, Rr, jr, Nr, Gr) {
+ for (var mi = zt.maxAttributes, Ui = new Array(mi), qi = 0; qi < mi; ++qi) Ui[qi] = new du();
+ var Ei = 0, Hn = {}, en = { Record: du, scope: {}, state: Ui, currentVAO: null, targetVAO: null, restore: si() ? Zi : function() {
+ }, createVAO: Bn, getVAO: Yr, destroyBuffer: Wi, setVAO: si() ? xi : Ri, clear: si() ? ci : function() {
+ } };
+ function Wi(hi) {
+ for (var li = 0; li < Ui.length; ++li) {
+ var mn = Ui[li];
+ mn.buffer === hi && (Me.disableVertexAttribArray(li), mn.buffer = null);
+ }
+ }
+ function si() {
+ return bt.oes_vertex_array_object;
+ }
+ function Mr() {
+ return bt.angle_instanced_arrays;
+ }
+ function Yr(hi) {
+ return typeof hi == "function" && hi._vao ? hi._vao : null;
+ }
+ function xi(hi) {
+ if (hi !== en.currentVAO) {
+ var li = si();
+ hi ? li.bindVertexArrayOES(hi.vao) : li.bindVertexArrayOES(null), en.currentVAO = hi;
+ }
+ }
+ function Ri(hi) {
+ if (hi !== en.currentVAO) {
+ if (hi) hi.bindAttrs();
+ else {
+ for (var li = Mr(), mn = 0; mn < Ui.length; ++mn) {
+ var Ji = Ui[mn];
+ Ji.buffer ? (Me.enableVertexAttribArray(mn), Ji.buffer.bind(), Me.vertexAttribPointer(mn, Ji.size, Ji.type, Ji.normalized, Ji.stride, Ji.offfset), li && Ji.divisor && li.vertexAttribDivisorANGLE(mn, Ji.divisor)) : (Me.disableVertexAttribArray(mn), Me.vertexAttrib4f(mn, Ji.x, Ji.y, Ji.z, Ji.w));
+ }
+ Gr.elements ? Me.bindBuffer(Cs, Gr.elements.buffer.buffer) : Me.bindBuffer(Cs, null);
+ }
+ en.currentVAO = hi;
+ }
+ }
+ function ci() {
+ dt(Hn).forEach(function(hi) {
+ hi.destroy();
+ });
+ }
+ function an() {
+ this.id = ++Ei, this.attributes = [], this.elements = null, this.ownsElements = false, this.count = 0, this.offset = 0, this.instances = -1, this.primitive = 4;
+ var hi = si();
+ hi ? this.vao = hi.createVertexArrayOES() : this.vao = null, Hn[this.id] = this, this.buffers = [];
+ }
+ an.prototype.bindAttrs = function() {
+ for (var hi = Mr(), li = this.attributes, mn = 0; mn < li.length; ++mn) {
+ var Ji = li[mn];
+ Ji.buffer ? (Me.enableVertexAttribArray(mn), Me.bindBuffer(If, Ji.buffer.buffer), Me.vertexAttribPointer(mn, Ji.size, Ji.type, Ji.normalized, Ji.stride, Ji.offset), hi && Ji.divisor && hi.vertexAttribDivisorANGLE(mn, Ji.divisor)) : (Me.disableVertexAttribArray(mn), Me.vertexAttrib4f(mn, Ji.x, Ji.y, Ji.z, Ji.w));
+ }
+ for (var Vi = li.length; Vi < mi; ++Vi) Me.disableVertexAttribArray(Vi);
+ var Ni = Nr.getElements(this.elements);
+ Ni ? Me.bindBuffer(Cs, Ni.buffer.buffer) : Me.bindBuffer(Cs, null);
+ }, an.prototype.refresh = function() {
+ var hi = si();
+ hi && (hi.bindVertexArrayOES(this.vao), this.bindAttrs(), en.currentVAO = null, hi.bindVertexArrayOES(null));
+ }, an.prototype.destroy = function() {
+ if (this.vao) {
+ var hi = si();
+ this === en.currentVAO && (en.currentVAO = null, hi.bindVertexArrayOES(null)), hi.deleteVertexArrayOES(this.vao), this.vao = null;
+ }
+ this.ownsElements && (this.elements.destroy(), this.elements = null, this.ownsElements = false), Hn[this.id] && (delete Hn[this.id], Rr.vaoCount -= 1);
+ };
+ function Zi() {
+ var hi = si();
+ hi && dt(Hn).forEach(function(li) {
+ li.refresh();
+ });
+ }
+ function Bn(hi) {
+ var li = new an();
+ Rr.vaoCount += 1;
+ function mn(Ji) {
+ var Vi;
+ if (Array.isArray(Ji)) Vi = Ji, li.elements && li.ownsElements && li.elements.destroy(), li.elements = null, li.ownsElements = false, li.offset = 0, li.count = 0, li.instances = -1, li.primitive = 4;
+ else {
+ if (Ji.elements) {
+ var Ni = Ji.elements;
+ li.ownsElements ? typeof Ni == "function" && Ni._reglType === "elements" ? (li.elements.destroy(), li.ownsElements = false) : (li.elements(Ni), li.ownsElements = false) : Nr.getElements(Ji.elements) ? (li.elements = Ji.elements, li.ownsElements = false) : (li.elements = Nr.create(Ji.elements), li.ownsElements = true);
+ } else li.elements = null, li.ownsElements = false;
+ Vi = Ji.attributes, li.offset = 0, li.count = -1, li.instances = -1, li.primitive = 4, li.elements && (li.count = li.elements._elements.vertCount, li.primitive = li.elements._elements.primType), "offset" in Ji && (li.offset = Ji.offset | 0), "count" in Ji && (li.count = Ji.count | 0), "instances" in Ji && (li.instances = Ji.instances | 0), "primitive" in Ji && (li.primitive = Sn[Ji.primitive]);
+ }
+ var pn = {}, Vn = li.attributes;
+ Vn.length = Vi.length;
+ for (var na = 0; na < Vi.length; ++na) {
+ var Ki = Vi[na], kn = Vn[na] = new du(), ta = Ki.data || Ki;
+ if (Array.isArray(ta) || Br(ta) || Vr(ta)) {
+ var oa;
+ li.buffers[na] && (oa = li.buffers[na], Br(ta) && oa._buffer.byteLength >= ta.byteLength ? oa.subdata(ta) : (oa.destroy(), li.buffers[na] = null)), li.buffers[na] || (oa = li.buffers[na] = jr.create(Ki, If, false, true)), kn.buffer = jr.getBuffer(oa), kn.size = kn.buffer.dimension | 0, kn.normalized = false, kn.type = kn.buffer.dtype, kn.offset = 0, kn.stride = 0, kn.divisor = 0, kn.state = 1, pn[na] = 1;
+ } else jr.getBuffer(Ki) ? (kn.buffer = jr.getBuffer(Ki), kn.size = kn.buffer.dimension | 0, kn.normalized = false, kn.type = kn.buffer.dtype, kn.offset = 0, kn.stride = 0, kn.divisor = 0, kn.state = 1) : jr.getBuffer(Ki.buffer) ? (kn.buffer = jr.getBuffer(Ki.buffer), kn.size = (+Ki.size || kn.buffer.dimension) | 0, kn.normalized = !!Ki.normalized || false, "type" in Ki ? kn.type = ji[Ki.type] : kn.type = kn.buffer.dtype, kn.offset = (Ki.offset || 0) | 0, kn.stride = (Ki.stride || 0) | 0, kn.divisor = (Ki.divisor || 0) | 0, kn.state = 1) : "x" in Ki && (kn.x = +Ki.x || 0, kn.y = +Ki.y || 0, kn.z = +Ki.z || 0, kn.w = +Ki.w || 0, kn.state = 2);
+ }
+ for (var ba = 0; ba < li.buffers.length; ++ba) !pn[ba] && li.buffers[ba] && (li.buffers[ba].destroy(), li.buffers[ba] = null);
+ return li.refresh(), mn;
+ }
+ return mn.destroy = function() {
+ for (var Ji = 0; Ji < li.buffers.length; ++Ji) li.buffers[Ji] && li.buffers[Ji].destroy();
+ li.buffers.length = 0, li.ownsElements && (li.elements.destroy(), li.elements = null, li.ownsElements = false), li.destroy();
+ }, mn._vao = li, mn._reglType = "vao", mn(hi);
+ }
+ return en;
+ }
+ var Xf = 35632, Us = 35633, wf = 35718, zc = 35721;
+ function Wu(Me, bt, zt, Rr) {
+ var jr = {}, Nr = {};
+ function Gr(Mr, Yr, xi, Ri) {
+ this.name = Mr, this.id = Yr, this.location = xi, this.info = Ri;
+ }
+ function mi(Mr, Yr) {
+ for (var xi = 0; xi < Mr.length; ++xi) if (Mr[xi].id === Yr.id) {
+ Mr[xi].location = Yr.location;
+ return;
+ }
+ Mr.push(Yr);
+ }
+ function Ui(Mr, Yr, xi) {
+ var Ri = Mr === Xf ? jr : Nr, ci = Ri[Yr];
+ if (!ci) {
+ var an = bt.str(Yr);
+ ci = Me.createShader(Mr), Me.shaderSource(ci, an), Me.compileShader(ci), Ri[Yr] = ci;
+ }
+ return ci;
+ }
+ var qi = {}, Ei = [], Hn = 0;
+ function en(Mr, Yr) {
+ this.id = Hn++, this.fragId = Mr, this.vertId = Yr, this.program = null, this.uniforms = [], this.attributes = [], this.refCount = 1, Rr.profile && (this.stats = { uniformsCount: 0, attributesCount: 0 });
+ }
+ function Wi(Mr, Yr, xi) {
+ var Ri, ci, an = Ui(Xf, Mr.fragId), Zi = Ui(Us, Mr.vertId), Bn = Mr.program = Me.createProgram();
+ if (Me.attachShader(Bn, an), Me.attachShader(Bn, Zi), xi) for (Ri = 0; Ri < xi.length; ++Ri) {
+ var hi = xi[Ri];
+ Me.bindAttribLocation(Bn, hi[0], hi[1]);
+ }
+ Me.linkProgram(Bn);
+ var li = Me.getProgramParameter(Bn, wf);
+ Rr.profile && (Mr.stats.uniformsCount = li);
+ var mn = Mr.uniforms;
+ for (Ri = 0; Ri < li; ++Ri) if (ci = Me.getActiveUniform(Bn, Ri), ci) if (ci.size > 1) for (var Ji = 0; Ji < ci.size; ++Ji) {
+ var Vi = ci.name.replace("[0]", "[" + Ji + "]");
+ mi(mn, new Gr(Vi, bt.id(Vi), Me.getUniformLocation(Bn, Vi), ci));
+ }
+ else mi(mn, new Gr(ci.name, bt.id(ci.name), Me.getUniformLocation(Bn, ci.name), ci));
+ var Ni = Me.getProgramParameter(Bn, zc);
+ Rr.profile && (Mr.stats.attributesCount = Ni);
+ var pn = Mr.attributes;
+ for (Ri = 0; Ri < Ni; ++Ri) ci = Me.getActiveAttrib(Bn, Ri), ci && mi(pn, new Gr(ci.name, bt.id(ci.name), Me.getAttribLocation(Bn, ci.name), ci));
+ }
+ Rr.profile && (zt.getMaxUniformsCount = function() {
+ var Mr = 0;
+ return Ei.forEach(function(Yr) {
+ Yr.stats.uniformsCount > Mr && (Mr = Yr.stats.uniformsCount);
+ }), Mr;
+ }, zt.getMaxAttributesCount = function() {
+ var Mr = 0;
+ return Ei.forEach(function(Yr) {
+ Yr.stats.attributesCount > Mr && (Mr = Yr.stats.attributesCount);
+ }), Mr;
+ });
+ function si() {
+ jr = {}, Nr = {};
+ for (var Mr = 0; Mr < Ei.length; ++Mr) Wi(Ei[Mr], null, Ei[Mr].attributes.map(function(Yr) {
+ return [Yr.location, Yr.name];
+ }));
+ }
+ return { clear: function() {
+ var Mr = Me.deleteShader.bind(Me);
+ dt(jr).forEach(Mr), jr = {}, dt(Nr).forEach(Mr), Nr = {}, Ei.forEach(function(Yr) {
+ Me.deleteProgram(Yr.program);
+ }), Ei.length = 0, qi = {}, zt.shaderCount = 0;
+ }, program: function(Mr, Yr, xi, Ri) {
+ var ci = qi[Yr];
+ ci || (ci = qi[Yr] = {});
+ var an = ci[Mr];
+ if (an && (an.refCount++, !Ri)) return an;
+ var Zi = new en(Yr, Mr);
+ return zt.shaderCount++, Wi(Zi, xi, Ri), an || (ci[Mr] = Zi), Ei.push(Zi), e(Zi, { destroy: function() {
+ if (Zi.refCount--, Zi.refCount <= 0) {
+ Me.deleteProgram(Zi.program);
+ var Bn = Ei.indexOf(Zi);
+ Ei.splice(Bn, 1), zt.shaderCount--;
+ }
+ ci[Zi.vertId].refCount <= 0 && (Me.deleteShader(Nr[Zi.vertId]), delete Nr[Zi.vertId], delete qi[Zi.fragId][Zi.vertId]), Object.keys(qi[Zi.fragId]).length || (Me.deleteShader(jr[Zi.fragId]), delete jr[Zi.fragId], delete qi[Zi.fragId]);
+ } });
+ }, restore: si, shader: Ui, frag: -1, vert: -1 };
+ }
+ var Rf = 6408, Xu = 5121, uf = 3333, Zf = 5126;
+ function Wl(Me, bt, zt, Rr, jr, Nr, Gr) {
+ function mi(Ei) {
+ var Hn;
+ bt.next === null ? Hn = Xu : Hn = bt.next.colorAttachments[0].texture._texture.type;
+ var en = 0, Wi = 0, si = Rr.framebufferWidth, Mr = Rr.framebufferHeight, Yr = null;
+ Br(Ei) ? Yr = Ei : Ei && (en = Ei.x | 0, Wi = Ei.y | 0, si = (Ei.width || Rr.framebufferWidth - en) | 0, Mr = (Ei.height || Rr.framebufferHeight - Wi) | 0, Yr = Ei.data || null), zt();
+ var xi = si * Mr * 4;
+ return Yr || (Hn === Xu ? Yr = new Uint8Array(xi) : Hn === Zf && (Yr = Yr || new Float32Array(xi))), Me.pixelStorei(uf, 4), Me.readPixels(en, Wi, si, Mr, Rf, Hn, Yr), Yr;
+ }
+ function Ui(Ei) {
+ var Hn;
+ return bt.setFBO({ framebuffer: Ei.framebuffer }, function() {
+ Hn = mi(Ei);
+ }), Hn;
+ }
+ function qi(Ei) {
+ return !Ei || !("framebuffer" in Ei) ? mi(Ei) : Ui(Ei);
+ }
+ return qi;
+ }
+ function Oc(Me) {
+ return vu(Tc(fc(Me)));
+ }
+ function Tc(Me) {
+ return At(Yi(Bc(Me), Me.length * 8));
+ }
+ function vu(Me) {
+ for (var bt = "0123456789abcdef", zt = "", Rr, jr = 0; jr < Me.length; jr++) Rr = Me.charCodeAt(jr), zt += bt.charAt(Rr >>> 4 & 15) + bt.charAt(Rr & 15);
+ return zt;
+ }
+ function fc(Me) {
+ for (var bt = "", zt = -1, Rr, jr; ++zt < Me.length; ) Rr = Me.charCodeAt(zt), jr = zt + 1 < Me.length ? Me.charCodeAt(zt + 1) : 0, 55296 <= Rr && Rr <= 56319 && 56320 <= jr && jr <= 57343 && (Rr = 65536 + ((Rr & 1023) << 10) + (jr & 1023), zt++), Rr <= 127 ? bt += String.fromCharCode(Rr) : Rr <= 2047 ? bt += String.fromCharCode(192 | Rr >>> 6 & 31, 128 | Rr & 63) : Rr <= 65535 ? bt += String.fromCharCode(224 | Rr >>> 12 & 15, 128 | Rr >>> 6 & 63, 128 | Rr & 63) : Rr <= 2097151 && (bt += String.fromCharCode(240 | Rr >>> 18 & 7, 128 | Rr >>> 12 & 63, 128 | Rr >>> 6 & 63, 128 | Rr & 63));
+ return bt;
+ }
+ function Bc(Me) {
+ for (var bt = Array(Me.length >> 2), zt = 0; zt < bt.length; zt++) bt[zt] = 0;
+ for (var zt = 0; zt < Me.length * 8; zt += 8) bt[zt >> 5] |= (Me.charCodeAt(zt / 8) & 255) << 24 - zt % 32;
+ return bt;
+ }
+ function At(Me) {
+ for (var bt = "", zt = 0; zt < Me.length * 32; zt += 8) bt += String.fromCharCode(Me[zt >> 5] >>> 24 - zt % 32 & 255);
+ return bt;
+ }
+ function Xt(Me, bt) {
+ return Me >>> bt | Me << 32 - bt;
+ }
+ function Cr(Me, bt) {
+ return Me >>> bt;
+ }
+ function Ar(Me, bt, zt) {
+ return Me & bt ^ ~Me & zt;
+ }
+ function Kr(Me, bt, zt) {
+ return Me & bt ^ Me & zt ^ bt & zt;
+ }
+ function ki(Me) {
+ return Xt(Me, 2) ^ Xt(Me, 13) ^ Xt(Me, 22);
+ }
+ function Xi(Me) {
+ return Xt(Me, 6) ^ Xt(Me, 11) ^ Xt(Me, 25);
+ }
+ function dn(Me) {
+ return Xt(Me, 7) ^ Xt(Me, 18) ^ Cr(Me, 3);
+ }
+ function wn(Me) {
+ return Xt(Me, 17) ^ Xt(Me, 19) ^ Cr(Me, 10);
+ }
+ var Nn = new Array(1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993, -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987, 1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885, -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872, -1866530822, -1538233109, -1090935817, -965641998);
+ function Yi(Me, bt) {
+ var zt = new Array(1779033703, -1150833019, 1013904242, -1521486534, 1359893119, -1694144372, 528734635, 1541459225), Rr = new Array(64), jr, Nr, Gr, mi, Ui, qi, Ei, Hn, en, Wi, si, Mr;
+ for (Me[bt >> 5] |= 128 << 24 - bt % 32, Me[(bt + 64 >> 9 << 4) + 15] = bt, en = 0; en < Me.length; en += 16) {
+ for (jr = zt[0], Nr = zt[1], Gr = zt[2], mi = zt[3], Ui = zt[4], qi = zt[5], Ei = zt[6], Hn = zt[7], Wi = 0; Wi < 64; Wi++) Wi < 16 ? Rr[Wi] = Me[Wi + en] : Rr[Wi] = Qi(Qi(Qi(wn(Rr[Wi - 2]), Rr[Wi - 7]), dn(Rr[Wi - 15])), Rr[Wi - 16]), si = Qi(Qi(Qi(Qi(Hn, Xi(Ui)), Ar(Ui, qi, Ei)), Nn[Wi]), Rr[Wi]), Mr = Qi(ki(jr), Kr(jr, Nr, Gr)), Hn = Ei, Ei = qi, qi = Ui, Ui = Qi(mi, si), mi = Gr, Gr = Nr, Nr = jr, jr = Qi(si, Mr);
+ zt[0] = Qi(jr, zt[0]), zt[1] = Qi(Nr, zt[1]), zt[2] = Qi(Gr, zt[2]), zt[3] = Qi(mi, zt[3]), zt[4] = Qi(Ui, zt[4]), zt[5] = Qi(qi, zt[5]), zt[6] = Qi(Ei, zt[6]), zt[7] = Qi(Hn, zt[7]);
+ }
+ return zt;
+ }
+ function Qi(Me, bt) {
+ var zt = (Me & 65535) + (bt & 65535), Rr = (Me >> 16) + (bt >> 16) + (zt >> 16);
+ return Rr << 16 | zt & 65535;
+ }
+ function on(Me) {
+ return Array.prototype.slice.call(Me);
+ }
+ function Fi(Me) {
+ return on(Me).join("");
+ }
+ function Qn(Me) {
+ var bt = Me && Me.cache, zt = 0, Rr = [], jr = [], Nr = [];
+ function Gr(si, Mr) {
+ var Yr = Mr && Mr.stable;
+ if (!Yr) {
+ for (var xi = 0; xi < jr.length; ++xi) if (jr[xi] === si && !Nr[xi]) return Rr[xi];
+ }
+ var Ri = "g" + zt++;
+ return Rr.push(Ri), jr.push(si), Nr.push(Yr), Ri;
+ }
+ function mi() {
+ var si = [];
+ function Mr() {
+ si.push.apply(si, on(arguments));
+ }
+ var Yr = [];
+ function xi() {
+ var Ri = "v" + zt++;
+ return Yr.push(Ri), arguments.length > 0 && (si.push(Ri, "="), si.push.apply(si, on(arguments)), si.push(";")), Ri;
+ }
+ return e(Mr, { def: xi, toString: function() {
+ return Fi([Yr.length > 0 ? "var " + Yr.join(",") + ";" : "", Fi(si)]);
+ } });
+ }
+ function Ui() {
+ var si = mi(), Mr = mi(), Yr = si.toString, xi = Mr.toString;
+ function Ri(ci, an) {
+ Mr(ci, an, "=", si.def(ci, an), ";");
+ }
+ return e(function() {
+ si.apply(si, on(arguments));
+ }, { def: si.def, entry: si, exit: Mr, save: Ri, set: function(ci, an, Zi) {
+ Ri(ci, an), si(ci, an, "=", Zi, ";");
+ }, toString: function() {
+ return Yr() + xi();
+ } });
+ }
+ function qi() {
+ var si = Fi(arguments), Mr = Ui(), Yr = Ui(), xi = Mr.toString, Ri = Yr.toString;
+ return e(Mr, { then: function() {
+ return Mr.apply(Mr, on(arguments)), this;
+ }, else: function() {
+ return Yr.apply(Yr, on(arguments)), this;
+ }, toString: function() {
+ var ci = Ri();
+ return ci && (ci = "else{" + ci + "}"), Fi(["if(", si, "){", xi(), "}", ci]);
+ } });
+ }
+ var Ei = mi(), Hn = {};
+ function en(si, Mr) {
+ var Yr = [];
+ function xi() {
+ var Bn = "a" + Yr.length;
+ return Yr.push(Bn), Bn;
+ }
+ Mr = Mr || 0;
+ for (var Ri = 0; Ri < Mr; ++Ri) xi();
+ var ci = Ui(), an = ci.toString, Zi = Hn[si] = e(ci, { arg: xi, toString: function() {
+ return Fi(["function(", Yr.join(), "){", an(), "}"]);
+ } });
+ return Zi;
+ }
+ function Wi() {
+ var si = ['"use strict";', Ei, "return {"];
+ Object.keys(Hn).forEach(function(Ri) {
+ si.push('"', Ri, '":', Hn[Ri].toString(), ",");
+ }), si.push("}");
+ var Mr = Fi(si).replace(/;/g, `;
+`).replace(/}/g, `}
+`).replace(/{/g, `{
+`), Yr;
+ if (bt && (Yr = Oc(Mr), bt[Yr])) return bt[Yr].apply(null, jr);
+ var xi = Function.apply(null, Rr.concat(Mr));
+ return bt && (bt[Yr] = xi), xi.apply(null, jr);
+ }
+ return { global: Ei, link: Gr, block: mi, proc: en, scope: Ui, cond: qi, compile: Wi };
+ }
+ var Ca = "xyzw".split(""), Ra = 5121, La = 1, Na = 2, Yn = 0, Dn = 1, Ka = 2, bo = 3, Zo = 4, Ss = 5, as = 6, ws = "dither", Ho = "blend.enable", ml = "blend.color", Ws = "blend.equation", Ls = "blend.func", va = "depth.enable", no = "depth.func", ys = "depth.range", rs = "depth.mask", Ql = "colorMask", Cu = "cull.enable", Yu = "cull.face", Nc = "frontFace", pu = "lineWidth", Uc = "polygonOffset.enable", xu = "polygonOffset.offset", Ac = "sample.alpha", Ua = "sample.enable", oo = "sample.coverage", Vc = "stencil.enable", hc = "stencil.mask", Ku = "stencil.func", ue = "stencil.opFront", w = "stencil.opBack", B = "scissor.enable", Q = "scissor.box", ee = "viewport", le = "profile", Oe = "framebuffer", Ze = "vert", st = "frag", Tt = "elements", Yt = "primitive", Kt = "count", xr = "offset", Ir = "instances", ve = "vao", be = "Width", Re = "Height", qe = Oe + be, et = Oe + Re, Xe = ee + be, it = ee + Re, Ft = "drawingBuffer", Ht = Ft + be, tr = Ft + Re, dr = [Ls, Ws, Ku, ue, w, oo, ee, Q, xu], Sr = 34962, Or = 34963, Wr = 2884, ni = 3042, Pi = 3024, cn = 2960, ln = 2929, Cn = 3089, Kn = 32823, Aa = 32926, fa = 32928, $a = 5126, Co = 35664, Qa = 35665, mo = 35666, Bo = 5124, Ps = 35667, Ts = 35668, wo = 35669, To = 35670, hl = 35671, Ul = 35672, Lu = 35673, au = 35674, Js = 35675, eu = 35676, dc = 35678, Tl = 35680, Al = 4, X = 1028, se = 1029, Te = 2304, Ne = 2305, He = 32775, Ye = 32776, kt = 519, nt = 7680, jt = 0, gr = 1, yr = 32774, Hr = 513, qr = 36160, _i = 36064, bi = { 0: 0, 1: 1, zero: 0, one: 1, "src color": 768, "one minus src color": 769, "src alpha": 770, "one minus src alpha": 771, "dst color": 774, "one minus dst color": 775, "dst alpha": 772, "one minus dst alpha": 773, "constant color": 32769, "one minus constant color": 32770, "constant alpha": 32771, "one minus constant alpha": 32772, "src alpha saturate": 776 }, Zr = { never: 512, less: 513, "<": 513, equal: 514, "=": 514, "==": 514, "===": 514, lequal: 515, "<=": 515, greater: 516, ">": 516, notequal: 517, "!=": 517, "!==": 517, gequal: 518, ">=": 518, always: 519 }, ai = { 0: 0, zero: 0, keep: 7680, replace: 7681, increment: 7682, decrement: 7683, "increment wrap": 34055, "decrement wrap": 34056, invert: 5386 }, gi = { cw: Te, ccw: Ne };
+ function Ii(Me) {
+ return Array.isArray(Me) || Br(Me) || Vr(Me);
+ }
+ function Si(Me) {
+ return Me.sort(function(bt, zt) {
+ return bt === ee ? -1 : zt === ee ? 1 : bt < zt ? -1 : 1;
+ });
+ }
+ function ei(Me, bt, zt, Rr) {
+ this.thisDep = Me, this.contextDep = bt, this.propDep = zt, this.append = Rr;
+ }
+ function Ln(Me) {
+ return Me && !(Me.thisDep || Me.contextDep || Me.propDep);
+ }
+ function En(Me) {
+ return new ei(false, false, false, Me);
+ }
+ function Un(Me, bt) {
+ var zt = Me.type;
+ if (zt === Yn) {
+ var Rr = Me.data.length;
+ return new ei(true, Rr >= 1, Rr >= 2, bt);
+ } else if (zt === Zo) {
+ var jr = Me.data;
+ return new ei(jr.thisDep, jr.contextDep, jr.propDep, bt);
+ } else {
+ if (zt === Ss) return new ei(false, false, false, bt);
+ if (zt === as) {
+ for (var Nr = false, Gr = false, mi = false, Ui = 0; Ui < Me.data.length; ++Ui) {
+ var qi = Me.data[Ui];
+ if (qi.type === Dn) mi = true;
+ else if (qi.type === Ka) Gr = true;
+ else if (qi.type === bo) Nr = true;
+ else if (qi.type === Yn) {
+ Nr = true;
+ var Ei = qi.data;
+ Ei >= 1 && (Gr = true), Ei >= 2 && (mi = true);
+ } else qi.type === Zo && (Nr = Nr || qi.data.thisDep, Gr = Gr || qi.data.contextDep, mi = mi || qi.data.propDep);
+ }
+ return new ei(Nr, Gr, mi, bt);
+ } else return new ei(zt === bo, zt === Ka, zt === Dn, bt);
+ }
+ }
+ var ia = new ei(false, false, false, function() {
+ });
+ function Ea(Me, bt, zt, Rr, jr, Nr, Gr, mi, Ui, qi, Ei, Hn, en, Wi, si, Mr) {
+ var Yr = qi.Record, xi = { add: 32774, subtract: 32778, "reverse subtract": 32779 };
+ zt.ext_blend_minmax && (xi.min = He, xi.max = Ye);
+ var Ri = zt.angle_instanced_arrays, ci = zt.webgl_draw_buffers, an = zt.oes_vertex_array_object, Zi = { dirty: true, profile: Mr.profile }, Bn = {}, hi = [], li = {}, mn = {};
+ function Ji(Ve) {
+ return Ve.replace(".", "_");
+ }
+ function Vi(Ve, Qe, at) {
+ var Ct = Ji(Ve);
+ hi.push(Ve), Bn[Ct] = Zi[Ct] = !!at, li[Ct] = Qe;
+ }
+ function Ni(Ve, Qe, at) {
+ var Ct = Ji(Ve);
+ hi.push(Ve), Array.isArray(at) ? (Zi[Ct] = at.slice(), Bn[Ct] = at.slice()) : Zi[Ct] = Bn[Ct] = at, mn[Ct] = Qe;
+ }
+ function pn(Ve) {
+ return !!isNaN(Ve);
+ }
+ Vi(ws, Pi), Vi(Ho, ni), Ni(ml, "blendColor", [0, 0, 0, 0]), Ni(Ws, "blendEquationSeparate", [yr, yr]), Ni(Ls, "blendFuncSeparate", [gr, jt, gr, jt]), Vi(va, ln, true), Ni(no, "depthFunc", Hr), Ni(ys, "depthRange", [0, 1]), Ni(rs, "depthMask", true), Ni(Ql, Ql, [true, true, true, true]), Vi(Cu, Wr), Ni(Yu, "cullFace", se), Ni(Nc, Nc, Ne), Ni(pu, pu, 1), Vi(Uc, Kn), Ni(xu, "polygonOffset", [0, 0]), Vi(Ac, Aa), Vi(Ua, fa), Ni(oo, "sampleCoverage", [1, false]), Vi(Vc, cn), Ni(hc, "stencilMask", -1), Ni(Ku, "stencilFunc", [kt, 0, -1]), Ni(ue, "stencilOpSeparate", [X, nt, nt, nt]), Ni(w, "stencilOpSeparate", [se, nt, nt, nt]), Vi(B, Cn), Ni(Q, "scissor", [0, 0, Me.drawingBufferWidth, Me.drawingBufferHeight]), Ni(ee, ee, [0, 0, Me.drawingBufferWidth, Me.drawingBufferHeight]);
+ var Vn = { gl: Me, context: en, strings: bt, next: Bn, current: Zi, draw: Hn, elements: Nr, buffer: jr, shader: Ei, attributes: qi.state, vao: qi, uniforms: Ui, framebuffer: mi, extensions: zt, timer: Wi, isBufferArgs: Ii }, na = { primTypes: Sn, compareFuncs: Zr, blendFuncs: bi, blendEquations: xi, stencilOps: ai, glTypes: ji, orientationType: gi };
+ ci && (na.backBuffer = [se], na.drawBuffer = M(Rr.maxDrawbuffers, function(Ve) {
+ return Ve === 0 ? [0] : M(Ve, function(Qe) {
+ return _i + Qe;
+ });
+ }));
+ var Ki = 0;
+ function kn() {
+ var Ve = Qn({ cache: si }), Qe = Ve.link, at = Ve.global;
+ Ve.id = Ki++, Ve.batchId = "0";
+ var Ct = Qe(Vn), Ot = Ve.shared = { props: "a0" };
+ Object.keys(Vn).forEach(function(Pt) {
+ Ot[Pt] = at.def(Ct, ".", Pt);
+ });
+ var Rt = Ve.next = {}, Bt = Ve.current = {};
+ Object.keys(mn).forEach(function(Pt) {
+ Array.isArray(Zi[Pt]) && (Rt[Pt] = at.def(Ot.next, ".", Pt), Bt[Pt] = at.def(Ot.current, ".", Pt));
+ });
+ var Dt = Ve.constants = {};
+ Object.keys(na).forEach(function(Pt) {
+ Dt[Pt] = at.def(JSON.stringify(na[Pt]));
+ }), Ve.invoke = function(Pt, ht) {
+ switch (ht.type) {
+ case Yn:
+ var ur = ["this", Ot.context, Ot.props, Ve.batchId];
+ return Pt.def(Qe(ht.data), ".call(", ur.slice(0, Math.max(ht.data.length + 1, 4)), ")");
+ case Dn:
+ return Pt.def(Ot.props, ht.data);
+ case Ka:
+ return Pt.def(Ot.context, ht.data);
+ case bo:
+ return Pt.def("this", ht.data);
+ case Zo:
+ return ht.data.append(Ve, Pt), ht.data.ref;
+ case Ss:
+ return ht.data.toString();
+ case as:
+ return ht.data.map(function(br) {
+ return Ve.invoke(Pt, br);
+ });
+ }
+ }, Ve.attribCache = {};
+ var yt = {};
+ return Ve.scopeAttrib = function(Pt) {
+ var ht = bt.id(Pt);
+ if (ht in yt) return yt[ht];
+ var ur = qi.scope[ht];
+ ur || (ur = qi.scope[ht] = new Yr());
+ var br = yt[ht] = Qe(ur);
+ return br;
+ }, Ve;
+ }
+ function ta(Ve) {
+ var Qe = Ve.static, at = Ve.dynamic, Ct;
+ if (le in Qe) {
+ var Ot = !!Qe[le];
+ Ct = En(function(Bt, Dt) {
+ return Ot;
+ }), Ct.enable = Ot;
+ } else if (le in at) {
+ var Rt = at[le];
+ Ct = Un(Rt, function(Bt, Dt) {
+ return Bt.invoke(Dt, Rt);
+ });
+ }
+ return Ct;
+ }
+ function oa(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic;
+ if (Oe in at) {
+ var Ot = at[Oe];
+ return Ot ? (Ot = mi.getFramebuffer(Ot), En(function(Bt, Dt) {
+ var yt = Bt.link(Ot), Pt = Bt.shared;
+ Dt.set(Pt.framebuffer, ".next", yt);
+ var ht = Pt.context;
+ return Dt.set(ht, "." + qe, yt + ".width"), Dt.set(ht, "." + et, yt + ".height"), yt;
+ })) : En(function(Bt, Dt) {
+ var yt = Bt.shared;
+ Dt.set(yt.framebuffer, ".next", "null");
+ var Pt = yt.context;
+ return Dt.set(Pt, "." + qe, Pt + "." + Ht), Dt.set(Pt, "." + et, Pt + "." + tr), "null";
+ });
+ } else if (Oe in Ct) {
+ var Rt = Ct[Oe];
+ return Un(Rt, function(Bt, Dt) {
+ var yt = Bt.invoke(Dt, Rt), Pt = Bt.shared, ht = Pt.framebuffer, ur = Dt.def(ht, ".getFramebuffer(", yt, ")");
+ Dt.set(ht, ".next", ur);
+ var br = Pt.context;
+ return Dt.set(br, "." + qe, ur + "?" + ur + ".width:" + br + "." + Ht), Dt.set(br, "." + et, ur + "?" + ur + ".height:" + br + "." + tr), ur;
+ });
+ } else return null;
+ }
+ function ba(Ve, Qe, at) {
+ var Ct = Ve.static, Ot = Ve.dynamic;
+ function Rt(yt) {
+ if (yt in Ct) {
+ var Pt = Ct[yt], ht = true, ur = Pt.x | 0, br = Pt.y | 0, Ur, Di;
+ return "width" in Pt ? Ur = Pt.width | 0 : ht = false, "height" in Pt ? Di = Pt.height | 0 : ht = false, new ei(!ht && Qe && Qe.thisDep, !ht && Qe && Qe.contextDep, !ht && Qe && Qe.propDep, function(gn, rn) {
+ var Ci = gn.shared.context, Bi = Ur;
+ "width" in Pt || (Bi = rn.def(Ci, ".", qe, "-", ur));
+ var Gi = Di;
+ return "height" in Pt || (Gi = rn.def(Ci, ".", et, "-", br)), [ur, br, Bi, Gi];
+ });
+ } else if (yt in Ot) {
+ var fi = Ot[yt], Ti = Un(fi, function(gn, rn) {
+ var Ci = gn.invoke(rn, fi), Bi = gn.shared.context, Gi = rn.def(Ci, ".x|0"), sn = rn.def(Ci, ".y|0"), zn = rn.def('"width" in ', Ci, "?", Ci, ".width|0:", "(", Bi, ".", qe, "-", Gi, ")"), Ja = rn.def('"height" in ', Ci, "?", Ci, ".height|0:", "(", Bi, ".", et, "-", sn, ")");
+ return [Gi, sn, zn, Ja];
+ });
+ return Qe && (Ti.thisDep = Ti.thisDep || Qe.thisDep, Ti.contextDep = Ti.contextDep || Qe.contextDep, Ti.propDep = Ti.propDep || Qe.propDep), Ti;
+ } else return Qe ? new ei(Qe.thisDep, Qe.contextDep, Qe.propDep, function(gn, rn) {
+ var Ci = gn.shared.context;
+ return [0, 0, rn.def(Ci, ".", qe), rn.def(Ci, ".", et)];
+ }) : null;
+ }
+ var Bt = Rt(ee);
+ if (Bt) {
+ var Dt = Bt;
+ Bt = new ei(Bt.thisDep, Bt.contextDep, Bt.propDep, function(yt, Pt) {
+ var ht = Dt.append(yt, Pt), ur = yt.shared.context;
+ return Pt.set(ur, "." + Xe, ht[2]), Pt.set(ur, "." + it, ht[3]), ht;
+ });
+ }
+ return { viewport: Bt, scissor_box: Rt(Q) };
+ }
+ function is(Ve, Qe) {
+ var at = Ve.static, Ct = typeof at[st] == "string" && typeof at[Ze] == "string";
+ if (Ct) {
+ if (Object.keys(Qe.dynamic).length > 0) return null;
+ var Ot = Qe.static, Rt = Object.keys(Ot);
+ if (Rt.length > 0 && typeof Ot[Rt[0]] == "number") {
+ for (var Bt = [], Dt = 0; Dt < Rt.length; ++Dt) Bt.push([Ot[Rt[Dt]] | 0, Rt[Dt]]);
+ return Bt;
+ }
+ }
+ return null;
+ }
+ function Zs(Ve, Qe, at) {
+ var Ct = Ve.static, Ot = Ve.dynamic;
+ function Rt(ht) {
+ if (ht in Ct) {
+ var ur = bt.id(Ct[ht]), br = En(function() {
+ return ur;
+ });
+ return br.id = ur, br;
+ } else if (ht in Ot) {
+ var Ur = Ot[ht];
+ return Un(Ur, function(Di, fi) {
+ var Ti = Di.invoke(fi, Ur), gn = fi.def(Di.shared.strings, ".id(", Ti, ")");
+ return gn;
+ });
+ }
+ return null;
+ }
+ var Bt = Rt(st), Dt = Rt(Ze), yt = null, Pt;
+ return Ln(Bt) && Ln(Dt) ? (yt = Ei.program(Dt.id, Bt.id, null, at), Pt = En(function(ht, ur) {
+ return ht.link(yt);
+ })) : Pt = new ei(Bt && Bt.thisDep || Dt && Dt.thisDep, Bt && Bt.contextDep || Dt && Dt.contextDep, Bt && Bt.propDep || Dt && Dt.propDep, function(ht, ur) {
+ var br = ht.shared.shader, Ur;
+ Bt ? Ur = Bt.append(ht, ur) : Ur = ur.def(br, ".", st);
+ var Di;
+ Dt ? Di = Dt.append(ht, ur) : Di = ur.def(br, ".", Ze);
+ var fi = br + ".program(" + Di + "," + Ur;
+ return ur.def(fi + ")");
+ }), { frag: Bt, vert: Dt, progVar: Pt, program: yt };
+ }
+ function Va(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic, Ot = {}, Rt = false;
+ function Bt() {
+ if (ve in at) {
+ var rn = at[ve];
+ return rn !== null && qi.getVAO(rn) === null && (rn = qi.createVAO(rn)), Rt = true, Ot.vao = rn, En(function(Bi) {
+ var Gi = qi.getVAO(rn);
+ return Gi ? Bi.link(Gi) : "null";
+ });
+ } else if (ve in Ct) {
+ Rt = true;
+ var Ci = Ct[ve];
+ return Un(Ci, function(Bi, Gi) {
+ var sn = Bi.invoke(Gi, Ci);
+ return Gi.def(Bi.shared.vao + ".getVAO(" + sn + ")");
+ });
+ }
+ return null;
+ }
+ var Dt = Bt(), yt = false;
+ function Pt() {
+ if (Tt in at) {
+ var rn = at[Tt];
+ if (Ot.elements = rn, Ii(rn)) {
+ var Ci = Ot.elements = Nr.create(rn, true);
+ rn = Nr.getElements(Ci), yt = true;
+ } else rn && (rn = Nr.getElements(rn), yt = true);
+ var Bi = En(function(sn, zn) {
+ if (rn) {
+ var Ja = sn.link(rn);
+ return sn.ELEMENTS = Ja, Ja;
+ }
+ return sn.ELEMENTS = null, null;
+ });
+ return Bi.value = rn, Bi;
+ } else if (Tt in Ct) {
+ yt = true;
+ var Gi = Ct[Tt];
+ return Un(Gi, function(sn, zn) {
+ var Ja = sn.shared, co = Ja.isBufferArgs, ts = Ja.elements, so = sn.invoke(zn, Gi), Yo = zn.def("null"), ms = zn.def(co, "(", so, ")"), ou = sn.cond(ms).then(Yo, "=", ts, ".createStream(", so, ");").else(Yo, "=", ts, ".getElements(", so, ");");
+ return zn.entry(ou), zn.exit(sn.cond(ms).then(ts, ".destroyStream(", Yo, ");")), sn.ELEMENTS = Yo, Yo;
+ });
+ } else if (Rt) return new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(sn, zn) {
+ return zn.def(sn.shared.vao + ".currentVAO?" + sn.shared.elements + ".getElements(" + sn.shared.vao + ".currentVAO.elements):null");
+ });
+ return null;
+ }
+ var ht = Pt();
+ function ur() {
+ if (Yt in at) {
+ var rn = at[Yt];
+ return Ot.primitive = rn, En(function(Bi, Gi) {
+ return Sn[rn];
+ });
+ } else if (Yt in Ct) {
+ var Ci = Ct[Yt];
+ return Un(Ci, function(Bi, Gi) {
+ var sn = Bi.constants.primTypes, zn = Bi.invoke(Gi, Ci);
+ return Gi.def(sn, "[", zn, "]");
+ });
+ } else {
+ if (yt) return Ln(ht) ? ht.value ? En(function(Bi, Gi) {
+ return Gi.def(Bi.ELEMENTS, ".primType");
+ }) : En(function() {
+ return Al;
+ }) : new ei(ht.thisDep, ht.contextDep, ht.propDep, function(Bi, Gi) {
+ var sn = Bi.ELEMENTS;
+ return Gi.def(sn, "?", sn, ".primType:", Al);
+ });
+ if (Rt) return new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(Bi, Gi) {
+ return Gi.def(Bi.shared.vao + ".currentVAO?" + Bi.shared.vao + ".currentVAO.primitive:" + Al);
+ });
+ }
+ return null;
+ }
+ function br(rn, Ci) {
+ if (rn in at) {
+ var Bi = at[rn] | 0;
+ return Ci ? Ot.offset = Bi : Ot.instances = Bi, En(function(sn, zn) {
+ return Ci && (sn.OFFSET = Bi), Bi;
+ });
+ } else if (rn in Ct) {
+ var Gi = Ct[rn];
+ return Un(Gi, function(sn, zn) {
+ var Ja = sn.invoke(zn, Gi);
+ return Ci && (sn.OFFSET = Ja), Ja;
+ });
+ } else if (Ci) {
+ if (yt) return En(function(sn, zn) {
+ return sn.OFFSET = 0, 0;
+ });
+ if (Rt) return new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(sn, zn) {
+ return zn.def(sn.shared.vao + ".currentVAO?" + sn.shared.vao + ".currentVAO.offset:0");
+ });
+ } else if (Rt) return new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(sn, zn) {
+ return zn.def(sn.shared.vao + ".currentVAO?" + sn.shared.vao + ".currentVAO.instances:-1");
+ });
+ return null;
+ }
+ var Ur = br(xr, true);
+ function Di() {
+ if (Kt in at) {
+ var rn = at[Kt] | 0;
+ return Ot.count = rn, En(function() {
+ return rn;
+ });
+ } else if (Kt in Ct) {
+ var Ci = Ct[Kt];
+ return Un(Ci, function(zn, Ja) {
+ var co = zn.invoke(Ja, Ci);
+ return co;
+ });
+ } else if (yt) if (Ln(ht)) {
+ if (ht) return Ur ? new ei(Ur.thisDep, Ur.contextDep, Ur.propDep, function(zn, Ja) {
+ var co = Ja.def(zn.ELEMENTS, ".vertCount-", zn.OFFSET);
+ return co;
+ }) : En(function(zn, Ja) {
+ return Ja.def(zn.ELEMENTS, ".vertCount");
+ });
+ var Bi = En(function() {
+ return -1;
+ });
+ return Bi;
+ } else {
+ var Gi = new ei(ht.thisDep || Ur.thisDep, ht.contextDep || Ur.contextDep, ht.propDep || Ur.propDep, function(zn, Ja) {
+ var co = zn.ELEMENTS;
+ return zn.OFFSET ? Ja.def(co, "?", co, ".vertCount-", zn.OFFSET, ":-1") : Ja.def(co, "?", co, ".vertCount:-1");
+ });
+ return Gi;
+ }
+ else if (Rt) {
+ var sn = new ei(Dt.thisDep, Dt.contextDep, Dt.propDep, function(zn, Ja) {
+ return Ja.def(zn.shared.vao, ".currentVAO?", zn.shared.vao, ".currentVAO.count:-1");
+ });
+ return sn;
+ }
+ return null;
+ }
+ var fi = ur(), Ti = Di(), gn = br(Ir, false);
+ return { elements: ht, primitive: fi, count: Ti, instances: gn, offset: Ur, vao: Dt, vaoActive: Rt, elementsActive: yt, static: Ot };
+ }
+ function Ml(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic, Ot = {};
+ return hi.forEach(function(Rt) {
+ var Bt = Ji(Rt);
+ function Dt(yt, Pt) {
+ if (Rt in at) {
+ var ht = yt(at[Rt]);
+ Ot[Bt] = En(function() {
+ return ht;
+ });
+ } else if (Rt in Ct) {
+ var ur = Ct[Rt];
+ Ot[Bt] = Un(ur, function(br, Ur) {
+ return Pt(br, Ur, br.invoke(Ur, ur));
+ });
+ }
+ }
+ switch (Rt) {
+ case Cu:
+ case Ho:
+ case ws:
+ case Vc:
+ case va:
+ case B:
+ case Uc:
+ case Ac:
+ case Ua:
+ case rs:
+ return Dt(function(yt) {
+ return yt;
+ }, function(yt, Pt, ht) {
+ return ht;
+ });
+ case no:
+ return Dt(function(yt) {
+ return Zr[yt];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.compareFuncs;
+ return Pt.def(ur, "[", ht, "]");
+ });
+ case ys:
+ return Dt(function(yt) {
+ return yt;
+ }, function(yt, Pt, ht) {
+ var ur = Pt.def("+", ht, "[0]"), br = Pt.def("+", ht, "[1]");
+ return [ur, br];
+ });
+ case Ls:
+ return Dt(function(yt) {
+ var Pt = "srcRGB" in yt ? yt.srcRGB : yt.src, ht = "srcAlpha" in yt ? yt.srcAlpha : yt.src, ur = "dstRGB" in yt ? yt.dstRGB : yt.dst, br = "dstAlpha" in yt ? yt.dstAlpha : yt.dst;
+ return [bi[Pt], bi[ur], bi[ht], bi[br]];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.blendFuncs;
+ function br(Ci, Bi) {
+ var Gi = Pt.def('"', Ci, Bi, '" in ', ht, "?", ht, ".", Ci, Bi, ":", ht, ".", Ci);
+ return Gi;
+ }
+ var Ur = br("src", "RGB"), Di = br("dst", "RGB"), fi = Pt.def(ur, "[", Ur, "]"), Ti = Pt.def(ur, "[", br("src", "Alpha"), "]"), gn = Pt.def(ur, "[", Di, "]"), rn = Pt.def(ur, "[", br("dst", "Alpha"), "]");
+ return [fi, gn, Ti, rn];
+ });
+ case Ws:
+ return Dt(function(yt) {
+ if (typeof yt == "string") return [xi[yt], xi[yt]];
+ if (typeof yt == "object") return [xi[yt.rgb], xi[yt.alpha]];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.blendEquations, br = Pt.def(), Ur = Pt.def(), Di = yt.cond("typeof ", ht, '==="string"');
+ return Di.then(br, "=", Ur, "=", ur, "[", ht, "];"), Di.else(br, "=", ur, "[", ht, ".rgb];", Ur, "=", ur, "[", ht, ".alpha];"), Pt(Di), [br, Ur];
+ });
+ case ml:
+ return Dt(function(yt) {
+ return M(4, function(Pt) {
+ return +yt[Pt];
+ });
+ }, function(yt, Pt, ht) {
+ return M(4, function(ur) {
+ return Pt.def("+", ht, "[", ur, "]");
+ });
+ });
+ case hc:
+ return Dt(function(yt) {
+ return yt | 0;
+ }, function(yt, Pt, ht) {
+ return Pt.def(ht, "|0");
+ });
+ case Ku:
+ return Dt(function(yt) {
+ var Pt = yt.cmp || "keep", ht = yt.ref || 0, ur = "mask" in yt ? yt.mask : -1;
+ return [Zr[Pt], ht, ur];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.compareFuncs, br = Pt.def('"cmp" in ', ht, "?", ur, "[", ht, ".cmp]", ":", nt), Ur = Pt.def(ht, ".ref|0"), Di = Pt.def('"mask" in ', ht, "?", ht, ".mask|0:-1");
+ return [br, Ur, Di];
+ });
+ case ue:
+ case w:
+ return Dt(function(yt) {
+ var Pt = yt.fail || "keep", ht = yt.zfail || "keep", ur = yt.zpass || "keep";
+ return [Rt === w ? se : X, ai[Pt], ai[ht], ai[ur]];
+ }, function(yt, Pt, ht) {
+ var ur = yt.constants.stencilOps;
+ function br(Ur) {
+ return Pt.def('"', Ur, '" in ', ht, "?", ur, "[", ht, ".", Ur, "]:", nt);
+ }
+ return [Rt === w ? se : X, br("fail"), br("zfail"), br("zpass")];
+ });
+ case xu:
+ return Dt(function(yt) {
+ var Pt = yt.factor | 0, ht = yt.units | 0;
+ return [Pt, ht];
+ }, function(yt, Pt, ht) {
+ var ur = Pt.def(ht, ".factor|0"), br = Pt.def(ht, ".units|0");
+ return [ur, br];
+ });
+ case Yu:
+ return Dt(function(yt) {
+ var Pt = 0;
+ return yt === "front" ? Pt = X : yt === "back" && (Pt = se), Pt;
+ }, function(yt, Pt, ht) {
+ return Pt.def(ht, '==="front"?', X, ":", se);
+ });
+ case pu:
+ return Dt(function(yt) {
+ return yt;
+ }, function(yt, Pt, ht) {
+ return ht;
+ });
+ case Nc:
+ return Dt(function(yt) {
+ return gi[yt];
+ }, function(yt, Pt, ht) {
+ return Pt.def(ht + '==="cw"?' + Te + ":" + Ne);
+ });
+ case Ql:
+ return Dt(function(yt) {
+ return yt.map(function(Pt) {
+ return !!Pt;
+ });
+ }, function(yt, Pt, ht) {
+ return M(4, function(ur) {
+ return "!!" + ht + "[" + ur + "]";
+ });
+ });
+ case oo:
+ return Dt(function(yt) {
+ var Pt = "value" in yt ? yt.value : 1, ht = !!yt.invert;
+ return [Pt, ht];
+ }, function(yt, Pt, ht) {
+ var ur = Pt.def('"value" in ', ht, "?+", ht, ".value:1"), br = Pt.def("!!", ht, ".invert");
+ return [ur, br];
+ });
+ }
+ }), Ot;
+ }
+ function zo(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic, Ot = {};
+ return Object.keys(at).forEach(function(Rt) {
+ var Bt = at[Rt], Dt;
+ if (typeof Bt == "number" || typeof Bt == "boolean") Dt = En(function() {
+ return Bt;
+ });
+ else if (typeof Bt == "function") {
+ var yt = Bt._reglType;
+ yt === "texture2d" || yt === "textureCube" ? Dt = En(function(Pt) {
+ return Pt.link(Bt);
+ }) : (yt === "framebuffer" || yt === "framebufferCube") && (Dt = En(function(Pt) {
+ return Pt.link(Bt.color[0]);
+ }));
+ } else Mn(Bt) && (Dt = En(function(Pt) {
+ var ht = Pt.global.def("[", M(Bt.length, function(ur) {
+ return Bt[ur];
+ }), "]");
+ return ht;
+ }));
+ Dt.value = Bt, Ot[Rt] = Dt;
+ }), Object.keys(Ct).forEach(function(Rt) {
+ var Bt = Ct[Rt];
+ Ot[Rt] = Un(Bt, function(Dt, yt) {
+ return Dt.invoke(yt, Bt);
+ });
+ }), Ot;
+ }
+ function Qs(Ve, Qe) {
+ var at = Ve.static, Ct = Ve.dynamic, Ot = {};
+ return Object.keys(at).forEach(function(Rt) {
+ var Bt = at[Rt], Dt = bt.id(Rt), yt = new Yr();
+ if (Ii(Bt)) yt.state = La, yt.buffer = jr.getBuffer(jr.create(Bt, Sr, false, true)), yt.type = 0;
+ else {
+ var Pt = jr.getBuffer(Bt);
+ if (Pt) yt.state = La, yt.buffer = Pt, yt.type = 0;
+ else if ("constant" in Bt) {
+ var ht = Bt.constant;
+ yt.buffer = "null", yt.state = Na, typeof ht == "number" ? yt.x = ht : Ca.forEach(function(gn, rn) {
+ rn < ht.length && (yt[gn] = ht[rn]);
+ });
+ } else {
+ Ii(Bt.buffer) ? Pt = jr.getBuffer(jr.create(Bt.buffer, Sr, false, true)) : Pt = jr.getBuffer(Bt.buffer);
+ var ur = Bt.offset | 0, br = Bt.stride | 0, Ur = Bt.size | 0, Di = !!Bt.normalized, fi = 0;
+ "type" in Bt && (fi = ji[Bt.type]);
+ var Ti = Bt.divisor | 0;
+ yt.buffer = Pt, yt.state = La, yt.size = Ur, yt.normalized = Di, yt.type = fi || Pt.dtype, yt.offset = ur, yt.stride = br, yt.divisor = Ti;
+ }
+ }
+ Ot[Rt] = En(function(gn, rn) {
+ var Ci = gn.attribCache;
+ if (Dt in Ci) return Ci[Dt];
+ var Bi = { isStream: false };
+ return Object.keys(yt).forEach(function(Gi) {
+ Bi[Gi] = yt[Gi];
+ }), yt.buffer && (Bi.buffer = gn.link(yt.buffer), Bi.type = Bi.type || Bi.buffer + ".dtype"), Ci[Dt] = Bi, Bi;
+ });
+ }), Object.keys(Ct).forEach(function(Rt) {
+ var Bt = Ct[Rt];
+ function Dt(yt, Pt) {
+ var ht = yt.invoke(Pt, Bt), ur = yt.shared, br = yt.constants, Ur = ur.isBufferArgs, Di = ur.buffer, fi = { isStream: Pt.def(false) }, Ti = new Yr();
+ Ti.state = La, Object.keys(Ti).forEach(function(Bi) {
+ fi[Bi] = Pt.def("" + Ti[Bi]);
+ });
+ var gn = fi.buffer, rn = fi.type;
+ Pt("if(", Ur, "(", ht, ")){", fi.isStream, "=true;", gn, "=", Di, ".createStream(", Sr, ",", ht, ");", rn, "=", gn, ".dtype;", "}else{", gn, "=", Di, ".getBuffer(", ht, ");", "if(", gn, "){", rn, "=", gn, ".dtype;", '}else if("constant" in ', ht, "){", fi.state, "=", Na, ";", "if(typeof " + ht + '.constant === "number"){', fi[Ca[0]], "=", ht, ".constant;", Ca.slice(1).map(function(Bi) {
+ return fi[Bi];
+ }).join("="), "=0;", "}else{", Ca.map(function(Bi, Gi) {
+ return fi[Bi] + "=" + ht + ".constant.length>" + Gi + "?" + ht + ".constant[" + Gi + "]:0;";
+ }).join(""), "}}else{", "if(", Ur, "(", ht, ".buffer)){", gn, "=", Di, ".createStream(", Sr, ",", ht, ".buffer);", "}else{", gn, "=", Di, ".getBuffer(", ht, ".buffer);", "}", rn, '="type" in ', ht, "?", br.glTypes, "[", ht, ".type]:", gn, ".dtype;", fi.normalized, "=!!", ht, ".normalized;");
+ function Ci(Bi) {
+ Pt(fi[Bi], "=", ht, ".", Bi, "|0;");
+ }
+ return Ci("size"), Ci("offset"), Ci("stride"), Ci("divisor"), Pt("}}"), Pt.exit("if(", fi.isStream, "){", Di, ".destroyStream(", gn, ");", "}"), fi;
+ }
+ Ot[Rt] = Un(Bt, Dt);
+ }), Ot;
+ }
+ function al(Ve) {
+ var Qe = Ve.static, at = Ve.dynamic, Ct = {};
+ return Object.keys(Qe).forEach(function(Ot) {
+ var Rt = Qe[Ot];
+ Ct[Ot] = En(function(Bt, Dt) {
+ return typeof Rt == "number" || typeof Rt == "boolean" ? "" + Rt : Bt.link(Rt);
+ });
+ }), Object.keys(at).forEach(function(Ot) {
+ var Rt = at[Ot];
+ Ct[Ot] = Un(Rt, function(Bt, Dt) {
+ return Bt.invoke(Dt, Rt);
+ });
+ }), Ct;
+ }
+ function Vl(Ve, Qe, at, Ct, Ot) {
+ Ve.static;
+ Ve.dynamic;
+ var Dt = is(Ve, Qe), yt = oa(Ve), Pt = ba(Ve, yt), ht = Va(Ve), ur = Ml(Ve), br = Zs(Ve, Ot, Dt);
+ function Ur(Ci) {
+ var Bi = Pt[Ci];
+ Bi && (ur[Ci] = Bi);
+ }
+ Ur(ee), Ur(Ji(Q));
+ var Di = Object.keys(ur).length > 0, fi = { framebuffer: yt, draw: ht, shader: br, state: ur, dirty: Di, scopeVAO: null, drawVAO: null, useVAO: false, attributes: {} };
+ if (fi.profile = ta(Ve), fi.uniforms = zo(at), fi.drawVAO = fi.scopeVAO = ht.vao, !fi.drawVAO && br.program && !Dt && zt.angle_instanced_arrays && ht.static.elements) {
+ var Ti = true, gn = br.program.attributes.map(function(Ci) {
+ var Bi = Qe.static[Ci];
+ return Ti = Ti && !!Bi, Bi;
+ });
+ if (Ti && gn.length > 0) {
+ var rn = qi.getVAO(qi.createVAO({ attributes: gn, elements: ht.static.elements }));
+ fi.drawVAO = new ei(null, null, null, function(Ci, Bi) {
+ return Ci.link(rn);
+ }), fi.useVAO = true;
+ }
+ }
+ return Dt ? fi.useVAO = true : fi.attributes = Qs(Qe), fi.context = al(Ct), fi;
+ }
+ function ss(Ve, Qe, at) {
+ var Ct = Ve.shared, Ot = Ct.context, Rt = Ve.scope();
+ Object.keys(at).forEach(function(Bt) {
+ Qe.save(Ot, "." + Bt);
+ var Dt = at[Bt], yt = Dt.append(Ve, Qe);
+ Array.isArray(yt) ? Rt(Ot, ".", Bt, "=[", yt.join(), "];") : Rt(Ot, ".", Bt, "=", yt, ";");
+ }), Qe(Rt);
+ }
+ function Vs(Ve, Qe, at, Ct) {
+ var Ot = Ve.shared, Rt = Ot.gl, Bt = Ot.framebuffer, Dt;
+ ci && (Dt = Qe.def(Ot.extensions, ".webgl_draw_buffers"));
+ var yt = Ve.constants, Pt = yt.drawBuffer, ht = yt.backBuffer, ur;
+ at ? ur = at.append(Ve, Qe) : ur = Qe.def(Bt, ".next"), Ct || Qe("if(", ur, "!==", Bt, ".cur){"), Qe("if(", ur, "){", Rt, ".bindFramebuffer(", qr, ",", ur, ".framebuffer);"), ci && Qe(Dt, ".drawBuffersWEBGL(", Pt, "[", ur, ".colorAttachments.length]);"), Qe("}else{", Rt, ".bindFramebuffer(", qr, ",null);"), ci && Qe(Dt, ".drawBuffersWEBGL(", ht, ");"), Qe("}", Bt, ".cur=", ur, ";"), Ct || Qe("}");
+ }
+ function Ys(Ve, Qe, at) {
+ var Ct = Ve.shared, Ot = Ct.gl, Rt = Ve.current, Bt = Ve.next, Dt = Ct.current, yt = Ct.next, Pt = Ve.cond(Dt, ".dirty");
+ hi.forEach(function(ht) {
+ var ur = Ji(ht);
+ if (!(ur in at.state)) {
+ var br, Ur;
+ if (ur in Bt) {
+ br = Bt[ur], Ur = Rt[ur];
+ var Di = M(Zi[ur].length, function(Ti) {
+ return Pt.def(br, "[", Ti, "]");
+ });
+ Pt(Ve.cond(Di.map(function(Ti, gn) {
+ return Ti + "!==" + Ur + "[" + gn + "]";
+ }).join("||")).then(Ot, ".", mn[ur], "(", Di, ");", Di.map(function(Ti, gn) {
+ return Ur + "[" + gn + "]=" + Ti;
+ }).join(";"), ";"));
+ } else {
+ br = Pt.def(yt, ".", ur);
+ var fi = Ve.cond(br, "!==", Dt, ".", ur);
+ Pt(fi), ur in li ? fi(Ve.cond(br).then(Ot, ".enable(", li[ur], ");").else(Ot, ".disable(", li[ur], ");"), Dt, ".", ur, "=", br, ";") : fi(Ot, ".", mn[ur], "(", br, ");", Dt, ".", ur, "=", br, ";");
+ }
+ }
+ }), Object.keys(at.state).length === 0 && Pt(Dt, ".dirty=false;"), Qe(Pt);
+ }
+ function wa(Ve, Qe, at, Ct) {
+ var Ot = Ve.shared, Rt = Ve.current, Bt = Ot.current, Dt = Ot.gl, yt;
+ Si(Object.keys(at)).forEach(function(Pt) {
+ var ht = at[Pt];
+ if (!(Ct && !Ct(ht))) {
+ var ur = ht.append(Ve, Qe);
+ if (li[Pt]) {
+ var br = li[Pt];
+ Ln(ht) ? (yt = Ve.link(ur, { stable: true }), Qe(Ve.cond(yt).then(Dt, ".enable(", br, ");").else(Dt, ".disable(", br, ");")), Qe(Bt, ".", Pt, "=", yt, ";")) : (Qe(Ve.cond(ur).then(Dt, ".enable(", br, ");").else(Dt, ".disable(", br, ");")), Qe(Bt, ".", Pt, "=", ur, ";"));
+ } else if (Mn(ur)) {
+ var Ur = Rt[Pt];
+ Qe(Dt, ".", mn[Pt], "(", ur, ");", ur.map(function(Di, fi) {
+ return Ur + "[" + fi + "]=" + Di;
+ }).join(";"), ";");
+ } else Ln(ht) ? (yt = Ve.link(ur, { stable: true }), Qe(Dt, ".", mn[Pt], "(", yt, ");", Bt, ".", Pt, "=", yt, ";")) : Qe(Dt, ".", mn[Pt], "(", ur, ");", Bt, ".", Pt, "=", ur, ";");
+ }
+ });
+ }
+ function ol(Ve, Qe) {
+ Ri && (Ve.instancing = Qe.def(Ve.shared.extensions, ".angle_instanced_arrays"));
+ }
+ function io(Ve, Qe, at, Ct, Ot) {
+ var Rt = Ve.shared, Bt = Ve.stats, Dt = Rt.current, yt = Rt.timer, Pt = at.profile;
+ function ht() {
+ return typeof performance == "undefined" ? "Date.now()" : "performance.now()";
+ }
+ var ur, br;
+ function Ur(Ci) {
+ ur = Qe.def(), Ci(ur, "=", ht(), ";"), typeof Ot == "string" ? Ci(Bt, ".count+=", Ot, ";") : Ci(Bt, ".count++;"), Wi && (Ct ? (br = Qe.def(), Ci(br, "=", yt, ".getNumPendingQueries();")) : Ci(yt, ".beginQuery(", Bt, ");"));
+ }
+ function Di(Ci) {
+ Ci(Bt, ".cpuTime+=", ht(), "-", ur, ";"), Wi && (Ct ? Ci(yt, ".pushScopeStats(", br, ",", yt, ".getNumPendingQueries(),", Bt, ");") : Ci(yt, ".endQuery();"));
+ }
+ function fi(Ci) {
+ var Bi = Qe.def(Dt, ".profile");
+ Qe(Dt, ".profile=", Ci, ";"), Qe.exit(Dt, ".profile=", Bi, ";");
+ }
+ var Ti;
+ if (Pt) {
+ if (Ln(Pt)) {
+ Pt.enable ? (Ur(Qe), Di(Qe.exit), fi("true")) : fi("false");
+ return;
+ }
+ Ti = Pt.append(Ve, Qe), fi(Ti);
+ } else Ti = Qe.def(Dt, ".profile");
+ var gn = Ve.block();
+ Ur(gn), Qe("if(", Ti, "){", gn, "}");
+ var rn = Ve.block();
+ Di(rn), Qe.exit("if(", Ti, "){", rn, "}");
+ }
+ function Y(Ve, Qe, at, Ct, Ot) {
+ var Rt = Ve.shared;
+ function Bt(yt) {
+ switch (yt) {
+ case Co:
+ case Ps:
+ case hl:
+ return 2;
+ case Qa:
+ case Ts:
+ case Ul:
+ return 3;
+ case mo:
+ case wo:
+ case Lu:
+ return 4;
+ default:
+ return 1;
+ }
+ }
+ function Dt(yt, Pt, ht) {
+ var ur = Rt.gl, br = Qe.def(yt, ".location"), Ur = Qe.def(Rt.attributes, "[", br, "]"), Di = ht.state, fi = ht.buffer, Ti = [ht.x, ht.y, ht.z, ht.w], gn = ["buffer", "normalized", "offset", "stride"];
+ function rn() {
+ Qe("if(!", Ur, ".buffer){", ur, ".enableVertexAttribArray(", br, ");}");
+ var Bi = ht.type, Gi;
+ if (ht.size ? Gi = Qe.def(ht.size, "||", Pt) : Gi = Pt, Qe("if(", Ur, ".type!==", Bi, "||", Ur, ".size!==", Gi, "||", gn.map(function(zn) {
+ return Ur + "." + zn + "!==" + ht[zn];
+ }).join("||"), "){", ur, ".bindBuffer(", Sr, ",", fi, ".buffer);", ur, ".vertexAttribPointer(", [br, Gi, Bi, ht.normalized, ht.stride, ht.offset], ");", Ur, ".type=", Bi, ";", Ur, ".size=", Gi, ";", gn.map(function(zn) {
+ return Ur + "." + zn + "=" + ht[zn] + ";";
+ }).join(""), "}"), Ri) {
+ var sn = ht.divisor;
+ Qe("if(", Ur, ".divisor!==", sn, "){", Ve.instancing, ".vertexAttribDivisorANGLE(", [br, sn], ");", Ur, ".divisor=", sn, ";}");
+ }
+ }
+ function Ci() {
+ Qe("if(", Ur, ".buffer){", ur, ".disableVertexAttribArray(", br, ");", Ur, ".buffer=null;", "}if(", Ca.map(function(Bi, Gi) {
+ return Ur + "." + Bi + "!==" + Ti[Gi];
+ }).join("||"), "){", ur, ".vertexAttrib4f(", br, ",", Ti, ");", Ca.map(function(Bi, Gi) {
+ return Ur + "." + Bi + "=" + Ti[Gi] + ";";
+ }).join(""), "}");
+ }
+ Di === La ? rn() : Di === Na ? Ci() : (Qe("if(", Di, "===", La, "){"), rn(), Qe("}else{"), Ci(), Qe("}"));
+ }
+ Ct.forEach(function(yt) {
+ var Pt = yt.name, ht = at.attributes[Pt], ur;
+ if (ht) {
+ if (!Ot(ht)) return;
+ ur = ht.append(Ve, Qe);
+ } else {
+ if (!Ot(ia)) return;
+ var br = Ve.scopeAttrib(Pt);
+ ur = {}, Object.keys(new Yr()).forEach(function(Ur) {
+ ur[Ur] = Qe.def(br, ".", Ur);
+ });
+ }
+ Dt(Ve.link(yt), Bt(yt.info.type), ur);
+ });
+ }
+ function D(Ve, Qe, at, Ct, Ot, Rt) {
+ for (var Bt = Ve.shared, Dt = Bt.gl, yt, Pt = 0; Pt < Ct.length; ++Pt) {
+ var ht = Ct[Pt], ur = ht.name, br = ht.info.type, Ur = at.uniforms[ur], Di = Ve.link(ht), fi = Di + ".location", Ti;
+ if (Ur) {
+ if (!Ot(Ur)) continue;
+ if (Ln(Ur)) {
+ var gn = Ur.value;
+ if (br === dc || br === Tl) {
+ var rn = Ve.link(gn._texture || gn.color[0]._texture);
+ Qe(Dt, ".uniform1i(", fi, ",", rn + ".bind());"), Qe.exit(rn, ".unbind();");
+ } else if (br === au || br === Js || br === eu) {
+ var Ci = Ve.global.def("new Float32Array([" + Array.prototype.slice.call(gn) + "])"), Bi = 2;
+ br === Js ? Bi = 3 : br === eu && (Bi = 4), Qe(Dt, ".uniformMatrix", Bi, "fv(", fi, ",false,", Ci, ");");
+ } else {
+ switch (br) {
+ case $a:
+ yt = "1f";
+ break;
+ case Co:
+ yt = "2f";
+ break;
+ case Qa:
+ yt = "3f";
+ break;
+ case mo:
+ yt = "4f";
+ break;
+ case To:
+ yt = "1i";
+ break;
+ case Bo:
+ yt = "1i";
+ break;
+ case hl:
+ yt = "2i";
+ break;
+ case Ps:
+ yt = "2i";
+ break;
+ case Ul:
+ yt = "3i";
+ break;
+ case Ts:
+ yt = "3i";
+ break;
+ case Lu:
+ yt = "4i";
+ break;
+ case wo:
+ yt = "4i";
+ break;
+ }
+ Qe(Dt, ".uniform", yt, "(", fi, ",", Mn(gn) ? Array.prototype.slice.call(gn) : gn, ");");
+ }
+ continue;
+ } else Ti = Ur.append(Ve, Qe);
+ } else {
+ if (!Ot(ia)) continue;
+ Ti = Qe.def(Bt.uniforms, "[", bt.id(ur), "]");
+ }
+ br === dc ? Qe("if(", Ti, "&&", Ti, '._reglType==="framebuffer"){', Ti, "=", Ti, ".color[0];", "}") : br === Tl && Qe("if(", Ti, "&&", Ti, '._reglType==="framebufferCube"){', Ti, "=", Ti, ".color[0];", "}");
+ var Gi = 1;
+ switch (br) {
+ case dc:
+ case Tl:
+ var sn = Qe.def(Ti, "._texture");
+ Qe(Dt, ".uniform1i(", fi, ",", sn, ".bind());"), Qe.exit(sn, ".unbind();");
+ continue;
+ case Bo:
+ case To:
+ yt = "1i";
+ break;
+ case Ps:
+ case hl:
+ yt = "2i", Gi = 2;
+ break;
+ case Ts:
+ case Ul:
+ yt = "3i", Gi = 3;
+ break;
+ case wo:
+ case Lu:
+ yt = "4i", Gi = 4;
+ break;
+ case $a:
+ yt = "1f";
+ break;
+ case Co:
+ yt = "2f", Gi = 2;
+ break;
+ case Qa:
+ yt = "3f", Gi = 3;
+ break;
+ case mo:
+ yt = "4f", Gi = 4;
+ break;
+ case au:
+ yt = "Matrix2fv";
+ break;
+ case Js:
+ yt = "Matrix3fv";
+ break;
+ case eu:
+ yt = "Matrix4fv";
+ break;
+ }
+ if (yt.charAt(0) === "M") {
+ Qe(Dt, ".uniform", yt, "(", fi, ",");
+ var zn = Math.pow(br - au + 2, 2), Ja = Ve.global.def("new Float32Array(", zn, ")");
+ Array.isArray(Ti) ? Qe("false,(", M(zn, function(ms) {
+ return Ja + "[" + ms + "]=" + Ti[ms];
+ }), ",", Ja, ")") : Qe("false,(Array.isArray(", Ti, ")||", Ti, " instanceof Float32Array)?", Ti, ":(", M(zn, function(ms) {
+ return Ja + "[" + ms + "]=" + Ti + "[" + ms + "]";
+ }), ",", Ja, ")"), Qe(");");
+ } else if (Gi > 1) {
+ for (var co = [], ts = [], so = 0; so < Gi; ++so) Array.isArray(Ti) ? ts.push(Ti[so]) : ts.push(Qe.def(Ti + "[" + so + "]")), Rt && co.push(Qe.def());
+ Rt && Qe("if(!", Ve.batchId, "||", co.map(function(ms, ou) {
+ return ms + "!==" + ts[ou];
+ }).join("||"), "){", co.map(function(ms, ou) {
+ return ms + "=" + ts[ou] + ";";
+ }).join("")), Qe(Dt, ".uniform", yt, "(", fi, ",", ts.join(","), ");"), Rt && Qe("}");
+ } else {
+ if (Rt) {
+ var Yo = Qe.def();
+ Qe("if(!", Ve.batchId, "||", Yo, "!==", Ti, "){", Yo, "=", Ti, ";");
+ }
+ Qe(Dt, ".uniform", yt, "(", fi, ",", Ti, ");"), Rt && Qe("}");
+ }
+ }
+ }
+ function J(Ve, Qe, at, Ct) {
+ var Ot = Ve.shared, Rt = Ot.gl, Bt = Ot.draw, Dt = Ct.draw;
+ function yt() {
+ var Gi = Dt.elements, sn, zn = Qe;
+ return Gi ? ((Gi.contextDep && Ct.contextDynamic || Gi.propDep) && (zn = at), sn = Gi.append(Ve, zn), Dt.elementsActive && zn("if(" + sn + ")" + Rt + ".bindBuffer(" + Or + "," + sn + ".buffer.buffer);")) : (sn = zn.def(), zn(sn, "=", Bt, ".", Tt, ";", "if(", sn, "){", Rt, ".bindBuffer(", Or, ",", sn, ".buffer.buffer);}", "else if(", Ot.vao, ".currentVAO){", sn, "=", Ve.shared.elements + ".getElements(" + Ot.vao, ".currentVAO.elements);", an ? "" : "if(" + sn + ")" + Rt + ".bindBuffer(" + Or + "," + sn + ".buffer.buffer);", "}")), sn;
+ }
+ function Pt() {
+ var Gi = Dt.count, sn, zn = Qe;
+ return Gi ? ((Gi.contextDep && Ct.contextDynamic || Gi.propDep) && (zn = at), sn = Gi.append(Ve, zn)) : sn = zn.def(Bt, ".", Kt), sn;
+ }
+ var ht = yt();
+ function ur(Gi) {
+ var sn = Dt[Gi];
+ return sn ? sn.contextDep && Ct.contextDynamic || sn.propDep ? sn.append(Ve, at) : sn.append(Ve, Qe) : Qe.def(Bt, ".", Gi);
+ }
+ var br = ur(Yt), Ur = ur(xr), Di = Pt();
+ if (typeof Di == "number") {
+ if (Di === 0) return;
+ } else at("if(", Di, "){"), at.exit("}");
+ var fi, Ti;
+ Ri && (fi = ur(Ir), Ti = Ve.instancing);
+ var gn = ht + ".type", rn = Dt.elements && Ln(Dt.elements) && !Dt.vaoActive;
+ function Ci() {
+ function Gi() {
+ at(Ti, ".drawElementsInstancedANGLE(", [br, Di, gn, Ur + "<<((" + gn + "-" + Ra + ")>>1)", fi], ");");
+ }
+ function sn() {
+ at(Ti, ".drawArraysInstancedANGLE(", [br, Ur, Di, fi], ");");
+ }
+ ht && ht !== "null" ? rn ? Gi() : (at("if(", ht, "){"), Gi(), at("}else{"), sn(), at("}")) : sn();
+ }
+ function Bi() {
+ function Gi() {
+ at(Rt + ".drawElements(" + [br, Di, gn, Ur + "<<((" + gn + "-" + Ra + ")>>1)"] + ");");
+ }
+ function sn() {
+ at(Rt + ".drawArrays(" + [br, Ur, Di] + ");");
+ }
+ ht && ht !== "null" ? rn ? Gi() : (at("if(", ht, "){"), Gi(), at("}else{"), sn(), at("}")) : sn();
+ }
+ Ri && (typeof fi != "number" || fi >= 0) ? typeof fi == "string" ? (at("if(", fi, ">0){"), Ci(), at("}else if(", fi, "<0){"), Bi(), at("}")) : Ci() : Bi();
+ }
+ function q(Ve, Qe, at, Ct, Ot) {
+ var Rt = kn(), Bt = Rt.proc("body", Ot);
+ return Ri && (Rt.instancing = Bt.def(Rt.shared.extensions, ".angle_instanced_arrays")), Ve(Rt, Bt, at, Ct), Rt.compile().body;
+ }
+ function K(Ve, Qe, at, Ct) {
+ ol(Ve, Qe), at.useVAO ? at.drawVAO ? Qe(Ve.shared.vao, ".setVAO(", at.drawVAO.append(Ve, Qe), ");") : Qe(Ve.shared.vao, ".setVAO(", Ve.shared.vao, ".targetVAO);") : (Qe(Ve.shared.vao, ".setVAO(null);"), Y(Ve, Qe, at, Ct.attributes, function() {
+ return true;
+ })), D(Ve, Qe, at, Ct.uniforms, function() {
+ return true;
+ }, false), J(Ve, Qe, Qe, at);
+ }
+ function de(Ve, Qe) {
+ var at = Ve.proc("draw", 1);
+ ol(Ve, at), ss(Ve, at, Qe.context), Vs(Ve, at, Qe.framebuffer), Ys(Ve, at, Qe), wa(Ve, at, Qe.state), io(Ve, at, Qe, false, true);
+ var Ct = Qe.shader.progVar.append(Ve, at);
+ if (at(Ve.shared.gl, ".useProgram(", Ct, ".program);"), Qe.shader.program) K(Ve, at, Qe, Qe.shader.program);
+ else {
+ at(Ve.shared.vao, ".setVAO(null);");
+ var Ot = Ve.global.def("{}"), Rt = at.def(Ct, ".id"), Bt = at.def(Ot, "[", Rt, "]");
+ at(Ve.cond(Bt).then(Bt, ".call(this,a0);").else(Bt, "=", Ot, "[", Rt, "]=", Ve.link(function(Dt) {
+ return q(K, Ve, Qe, Dt, 1);
+ }), "(", Ct, ");", Bt, ".call(this,a0);"));
+ }
+ Object.keys(Qe.state).length > 0 && at(Ve.shared.current, ".dirty=true;"), Ve.shared.vao && at(Ve.shared.vao, ".setVAO(null);");
+ }
+ function ne(Ve, Qe, at, Ct) {
+ Ve.batchId = "a1", ol(Ve, Qe);
+ function Ot() {
+ return true;
+ }
+ Y(Ve, Qe, at, Ct.attributes, Ot), D(Ve, Qe, at, Ct.uniforms, Ot, false), J(Ve, Qe, Qe, at);
+ }
+ function we(Ve, Qe, at, Ct) {
+ ol(Ve, Qe);
+ var Ot = at.contextDep, Rt = Qe.def(), Bt = "a0", Dt = "a1", yt = Qe.def();
+ Ve.shared.props = yt, Ve.batchId = Rt;
+ var Pt = Ve.scope(), ht = Ve.scope();
+ Qe(Pt.entry, "for(", Rt, "=0;", Rt, "<", Dt, ";++", Rt, "){", yt, "=", Bt, "[", Rt, "];", ht, "}", Pt.exit);
+ function ur(gn) {
+ return gn.contextDep && Ot || gn.propDep;
+ }
+ function br(gn) {
+ return !ur(gn);
+ }
+ if (at.needsContext && ss(Ve, ht, at.context), at.needsFramebuffer && Vs(Ve, ht, at.framebuffer), wa(Ve, ht, at.state, ur), at.profile && ur(at.profile) && io(Ve, ht, at, false, true), Ct) at.useVAO ? at.drawVAO ? ur(at.drawVAO) ? ht(Ve.shared.vao, ".setVAO(", at.drawVAO.append(Ve, ht), ");") : Pt(Ve.shared.vao, ".setVAO(", at.drawVAO.append(Ve, Pt), ");") : Pt(Ve.shared.vao, ".setVAO(", Ve.shared.vao, ".targetVAO);") : (Pt(Ve.shared.vao, ".setVAO(null);"), Y(Ve, Pt, at, Ct.attributes, br), Y(Ve, ht, at, Ct.attributes, ur)), D(Ve, Pt, at, Ct.uniforms, br, false), D(Ve, ht, at, Ct.uniforms, ur, true), J(Ve, Pt, ht, at);
+ else {
+ var Ur = Ve.global.def("{}"), Di = at.shader.progVar.append(Ve, ht), fi = ht.def(Di, ".id"), Ti = ht.def(Ur, "[", fi, "]");
+ ht(Ve.shared.gl, ".useProgram(", Di, ".program);", "if(!", Ti, "){", Ti, "=", Ur, "[", fi, "]=", Ve.link(function(gn) {
+ return q(ne, Ve, at, gn, 2);
+ }), "(", Di, ");}", Ti, ".call(this,a0[", Rt, "],", Rt, ");");
+ }
+ }
+ function Ue(Ve, Qe) {
+ var at = Ve.proc("batch", 2);
+ Ve.batchId = "0", ol(Ve, at);
+ var Ct = false, Ot = true;
+ Object.keys(Qe.context).forEach(function(Ur) {
+ Ct = Ct || Qe.context[Ur].propDep;
+ }), Ct || (ss(Ve, at, Qe.context), Ot = false);
+ var Rt = Qe.framebuffer, Bt = false;
+ Rt ? (Rt.propDep ? Ct = Bt = true : Rt.contextDep && Ct && (Bt = true), Bt || Vs(Ve, at, Rt)) : Vs(Ve, at, null), Qe.state.viewport && Qe.state.viewport.propDep && (Ct = true);
+ function Dt(Ur) {
+ return Ur.contextDep && Ct || Ur.propDep;
+ }
+ Ys(Ve, at, Qe), wa(Ve, at, Qe.state, function(Ur) {
+ return !Dt(Ur);
+ }), (!Qe.profile || !Dt(Qe.profile)) && io(Ve, at, Qe, false, "a1"), Qe.contextDep = Ct, Qe.needsContext = Ot, Qe.needsFramebuffer = Bt;
+ var yt = Qe.shader.progVar;
+ if (yt.contextDep && Ct || yt.propDep) we(Ve, at, Qe, null);
+ else {
+ var Pt = yt.append(Ve, at);
+ if (at(Ve.shared.gl, ".useProgram(", Pt, ".program);"), Qe.shader.program) we(Ve, at, Qe, Qe.shader.program);
+ else {
+ at(Ve.shared.vao, ".setVAO(null);");
+ var ht = Ve.global.def("{}"), ur = at.def(Pt, ".id"), br = at.def(ht, "[", ur, "]");
+ at(Ve.cond(br).then(br, ".call(this,a0,a1);").else(br, "=", ht, "[", ur, "]=", Ve.link(function(Ur) {
+ return q(we, Ve, Qe, Ur, 2);
+ }), "(", Pt, ");", br, ".call(this,a0,a1);"));
+ }
+ }
+ Object.keys(Qe.state).length > 0 && at(Ve.shared.current, ".dirty=true;"), Ve.shared.vao && at(Ve.shared.vao, ".setVAO(null);");
+ }
+ function ft(Ve, Qe) {
+ var at = Ve.proc("scope", 3);
+ Ve.batchId = "a2";
+ var Ct = Ve.shared, Ot = Ct.current;
+ if (ss(Ve, at, Qe.context), Qe.framebuffer && Qe.framebuffer.append(Ve, at), Si(Object.keys(Qe.state)).forEach(function(Dt) {
+ var yt = Qe.state[Dt], Pt = yt.append(Ve, at);
+ Mn(Pt) ? Pt.forEach(function(ht, ur) {
+ pn(ht) ? at.set(Ve.next[Dt], "[" + ur + "]", ht) : at.set(Ve.next[Dt], "[" + ur + "]", Ve.link(ht, { stable: true }));
+ }) : Ln(yt) ? at.set(Ct.next, "." + Dt, Ve.link(Pt, { stable: true })) : at.set(Ct.next, "." + Dt, Pt);
+ }), io(Ve, at, Qe, true, true), [Tt, xr, Kt, Ir, Yt].forEach(function(Dt) {
+ var yt = Qe.draw[Dt];
+ if (yt) {
+ var Pt = yt.append(Ve, at);
+ pn(Pt) ? at.set(Ct.draw, "." + Dt, Pt) : at.set(Ct.draw, "." + Dt, Ve.link(Pt), { stable: true });
+ }
+ }), Object.keys(Qe.uniforms).forEach(function(Dt) {
+ var yt = Qe.uniforms[Dt].append(Ve, at);
+ Array.isArray(yt) && (yt = "[" + yt.map(function(Pt) {
+ return pn(Pt) ? Pt : Ve.link(Pt, { stable: true });
+ }) + "]"), at.set(Ct.uniforms, "[" + Ve.link(bt.id(Dt), { stable: true }) + "]", yt);
+ }), Object.keys(Qe.attributes).forEach(function(Dt) {
+ var yt = Qe.attributes[Dt].append(Ve, at), Pt = Ve.scopeAttrib(Dt);
+ Object.keys(new Yr()).forEach(function(ht) {
+ at.set(Pt, "." + ht, yt[ht]);
+ });
+ }), Qe.scopeVAO) {
+ var Rt = Qe.scopeVAO.append(Ve, at);
+ pn(Rt) ? at.set(Ct.vao, ".targetVAO", Rt) : at.set(Ct.vao, ".targetVAO", Ve.link(Rt, { stable: true }));
+ }
+ function Bt(Dt) {
+ var yt = Qe.shader[Dt];
+ if (yt) {
+ var Pt = yt.append(Ve, at);
+ pn(Pt) ? at.set(Ct.shader, "." + Dt, Pt) : at.set(Ct.shader, "." + Dt, Ve.link(Pt, { stable: true }));
+ }
+ }
+ Bt(Ze), Bt(st), Object.keys(Qe.state).length > 0 && (at(Ot, ".dirty=true;"), at.exit(Ot, ".dirty=true;")), at("a1(", Ve.shared.context, ",a0,", Ve.batchId, ");");
+ }
+ function Zt(Ve) {
+ if (!(typeof Ve != "object" || Mn(Ve))) {
+ for (var Qe = Object.keys(Ve), at = 0; at < Qe.length; ++at) if (h.isDynamic(Ve[Qe[at]])) return true;
+ return false;
+ }
+ }
+ function hr(Ve, Qe, at) {
+ var Ct = Qe.static[at];
+ if (!Ct || !Zt(Ct)) return;
+ var Ot = Ve.global, Rt = Object.keys(Ct), Bt = false, Dt = false, yt = false, Pt = Ve.global.def("{}");
+ Rt.forEach(function(ur) {
+ var br = Ct[ur];
+ if (h.isDynamic(br)) {
+ typeof br == "function" && (br = Ct[ur] = h.unbox(br));
+ var Ur = Un(br, null);
+ Bt = Bt || Ur.thisDep, yt = yt || Ur.propDep, Dt = Dt || Ur.contextDep;
+ } else {
+ switch (Ot(Pt, ".", ur, "="), typeof br) {
+ case "number":
+ Ot(br);
+ break;
+ case "string":
+ Ot('"', br, '"');
+ break;
+ case "object":
+ Array.isArray(br) && Ot("[", br.join(), "]");
+ break;
+ default:
+ Ot(Ve.link(br));
+ break;
+ }
+ Ot(";");
+ }
+ });
+ function ht(ur, br) {
+ Rt.forEach(function(Ur) {
+ var Di = Ct[Ur];
+ if (h.isDynamic(Di)) {
+ var fi = ur.invoke(br, Di);
+ br(Pt, ".", Ur, "=", fi, ";");
+ }
+ });
+ }
+ Qe.dynamic[at] = new h.DynamicVariable(Zo, { thisDep: Bt, contextDep: Dt, propDep: yt, ref: Pt, append: ht }), delete Qe.static[at];
+ }
+ function qt(Ve, Qe, at, Ct, Ot) {
+ var Rt = kn();
+ Rt.stats = Rt.link(Ot), Object.keys(Qe.static).forEach(function(Dt) {
+ hr(Rt, Qe, Dt);
+ }), dr.forEach(function(Dt) {
+ hr(Rt, Ve, Dt);
+ });
+ var Bt = Vl(Ve, Qe, at, Ct, Rt);
+ return Bt.shader.program && (Bt.shader.program.attributes.sort(function(Dt, yt) {
+ return Dt.name < yt.name ? -1 : 1;
+ }), Bt.shader.program.uniforms.sort(function(Dt, yt) {
+ return Dt.name < yt.name ? -1 : 1;
+ })), de(Rt, Bt), ft(Rt, Bt), Ue(Rt, Bt), e(Rt.compile(), { destroy: function() {
+ Bt.shader.program.destroy();
+ } });
+ }
+ return { next: Bn, current: Zi, procs: function() {
+ var Ve = kn(), Qe = Ve.proc("poll"), at = Ve.proc("refresh"), Ct = Ve.block();
+ Qe(Ct), at(Ct);
+ var Ot = Ve.shared, Rt = Ot.gl, Bt = Ot.next, Dt = Ot.current;
+ Ct(Dt, ".dirty=false;"), Vs(Ve, Qe), Vs(Ve, at, null, true);
+ var yt;
+ Ri && (yt = Ve.link(Ri)), zt.oes_vertex_array_object && at(Ve.link(zt.oes_vertex_array_object), ".bindVertexArrayOES(null);");
+ var Pt = at.def(Ot.attributes), ht = at.def(0), ur = Ve.cond(ht, ".buffer");
+ ur.then(Rt, ".enableVertexAttribArray(i);", Rt, ".bindBuffer(", Sr, ",", ht, ".buffer.buffer);", Rt, ".vertexAttribPointer(i,", ht, ".size,", ht, ".type,", ht, ".normalized,", ht, ".stride,", ht, ".offset);").else(Rt, ".disableVertexAttribArray(i);", Rt, ".vertexAttrib4f(i,", ht, ".x,", ht, ".y,", ht, ".z,", ht, ".w);", ht, ".buffer=null;");
+ var br = Ve.link(Rr.maxAttributes, { stable: true });
+ return at("for(var i=0;i<", br, ";++i){", ht, "=", Pt, "[i];", ur, "}"), Ri && at("for(var i=0;i<", br, ";++i){", yt, ".vertexAttribDivisorANGLE(i,", Pt, "[i].divisor);", "}"), at(Ve.shared.vao, ".currentVAO=null;", Ve.shared.vao, ".setVAO(", Ve.shared.vao, ".targetVAO);"), Object.keys(li).forEach(function(Ur) {
+ var Di = li[Ur], fi = Ct.def(Bt, ".", Ur), Ti = Ve.block();
+ Ti("if(", fi, "){", Rt, ".enable(", Di, ")}else{", Rt, ".disable(", Di, ")}", Dt, ".", Ur, "=", fi, ";"), at(Ti), Qe("if(", fi, "!==", Dt, ".", Ur, "){", Ti, "}");
+ }), Object.keys(mn).forEach(function(Ur) {
+ var Di = mn[Ur], fi = Zi[Ur], Ti, gn, rn = Ve.block();
+ if (rn(Rt, ".", Di, "("), Mn(fi)) {
+ var Ci = fi.length;
+ Ti = Ve.global.def(Bt, ".", Ur), gn = Ve.global.def(Dt, ".", Ur), rn(M(Ci, function(Bi) {
+ return Ti + "[" + Bi + "]";
+ }), ");", M(Ci, function(Bi) {
+ return gn + "[" + Bi + "]=" + Ti + "[" + Bi + "];";
+ }).join("")), Qe("if(", M(Ci, function(Bi) {
+ return Ti + "[" + Bi + "]!==" + gn + "[" + Bi + "]";
+ }).join("||"), "){", rn, "}");
+ } else Ti = Ct.def(Bt, ".", Ur), gn = Ct.def(Dt, ".", Ur), rn(Ti, ");", Dt, ".", Ur, "=", Ti, ";"), Qe("if(", Ti, "!==", gn, "){", rn, "}");
+ at(rn);
+ }), Ve.compile();
+ }(), compile: qt };
+ }
+ function Ia() {
+ return { vaoCount: 0, bufferCount: 0, elementsCount: 0, framebufferCount: 0, shaderCount: 0, textureCount: 0, cubeCount: 0, renderbufferCount: 0, maxTextureUnits: 0 };
+ }
+ var yo = 34918, Da = 34919, go = 35007, Is = function(Me, bt) {
+ if (!bt.ext_disjoint_timer_query) return null;
+ var zt = [];
+ function Rr() {
+ return zt.pop() || bt.ext_disjoint_timer_query.createQueryEXT();
+ }
+ function jr(xi) {
+ zt.push(xi);
+ }
+ var Nr = [];
+ function Gr(xi) {
+ var Ri = Rr();
+ bt.ext_disjoint_timer_query.beginQueryEXT(go, Ri), Nr.push(Ri), Wi(Nr.length - 1, Nr.length, xi);
+ }
+ function mi() {
+ bt.ext_disjoint_timer_query.endQueryEXT(go);
+ }
+ function Ui() {
+ this.startQueryIndex = -1, this.endQueryIndex = -1, this.sum = 0, this.stats = null;
+ }
+ var qi = [];
+ function Ei() {
+ return qi.pop() || new Ui();
+ }
+ function Hn(xi) {
+ qi.push(xi);
+ }
+ var en = [];
+ function Wi(xi, Ri, ci) {
+ var an = Ei();
+ an.startQueryIndex = xi, an.endQueryIndex = Ri, an.sum = 0, an.stats = ci, en.push(an);
+ }
+ var si = [], Mr = [];
+ function Yr() {
+ var xi, Ri, ci = Nr.length;
+ if (ci !== 0) {
+ Mr.length = Math.max(Mr.length, ci + 1), si.length = Math.max(si.length, ci + 1), si[0] = 0, Mr[0] = 0;
+ var an = 0;
+ for (xi = 0, Ri = 0; Ri < Nr.length; ++Ri) {
+ var Zi = Nr[Ri];
+ bt.ext_disjoint_timer_query.getQueryObjectEXT(Zi, Da) ? (an += bt.ext_disjoint_timer_query.getQueryObjectEXT(Zi, yo), jr(Zi)) : Nr[xi++] = Zi, si[Ri + 1] = an, Mr[Ri + 1] = xi;
+ }
+ for (Nr.length = xi, xi = 0, Ri = 0; Ri < en.length; ++Ri) {
+ var Bn = en[Ri], hi = Bn.startQueryIndex, li = Bn.endQueryIndex;
+ Bn.sum += si[li] - si[hi];
+ var mn = Mr[hi], Ji = Mr[li];
+ Ji === mn ? (Bn.stats.gpuTime += Bn.sum / 1e6, Hn(Bn)) : (Bn.startQueryIndex = mn, Bn.endQueryIndex = Ji, en[xi++] = Bn);
+ }
+ en.length = xi;
+ }
+ }
+ return { beginQuery: Gr, endQuery: mi, pushScopeStats: Wi, update: Yr, getNumPendingQueries: function() {
+ return Nr.length;
+ }, clear: function() {
+ zt.push.apply(zt, Nr);
+ for (var xi = 0; xi < zt.length; xi++) bt.ext_disjoint_timer_query.deleteQueryEXT(zt[xi]);
+ Nr.length = 0, zt.length = 0;
+ }, restore: function() {
+ Nr.length = 0, zt.length = 0;
+ } };
+ }, Ms = 16384, Xs = 256, Gn = 1024, ja = 34962, Fo = "webglcontextlost", Uo = "webglcontextrestored", $s = 1, Sl = 2, bu = 3;
+ function dl(Me, bt) {
+ for (var zt = 0; zt < Me.length; ++zt) if (Me[zt] === bt) return zt;
+ return -1;
+ }
+ function Sc(Me) {
+ var bt = x(Me);
+ if (!bt) return null;
+ var zt = bt.gl, Rr = zt.getContextAttributes();
+ zt.isContextLost();
+ var Nr = C(zt, bt);
+ if (!Nr) return null;
+ var Gr = _(), mi = Ia(), Ui = bt.cachedCode || {}, qi = Nr.extensions, Ei = Is(zt, qi), Hn = v(), en = zt.drawingBufferWidth, Wi = zt.drawingBufferHeight, si = { tick: 0, time: 0, viewportWidth: en, viewportHeight: Wi, framebufferWidth: en, framebufferHeight: Wi, drawingBufferWidth: en, drawingBufferHeight: Wi, pixelRatio: bt.pixelRatio }, Mr = {}, Yr = { elements: null, primitive: 4, count: -1, offset: 0, instances: -1 }, xi = ti(zt, qi), Ri = ri(zt, mi, bt, Zi), ci = kr(zt, qi, Ri, mi), an = ku(zt, qi, xi, mi, Ri, ci, Yr);
+ function Zi(q) {
+ return an.destroyBuffer(q);
+ }
+ var Bn = Wu(zt, Gr, mi, bt), hi = of(zt, qi, xi, function() {
+ Ji.procs.poll();
+ }, si, mi, bt), li = Dc(zt, qi, xi, mi, bt), mn = lf(zt, qi, xi, hi, li, mi), Ji = Ea(zt, Gr, qi, xi, Ri, ci, hi, mn, Mr, an, Bn, Yr, si, Ei, Ui, bt), Vi = Wl(zt, mn, Ji.procs.poll, si), Ni = Ji.next, pn = zt.canvas, Vn = [], na = [], Ki = [], kn = [bt.onDestroy], ta = null;
+ function oa() {
+ if (Vn.length === 0) {
+ Ei && Ei.update(), ta = null;
+ return;
+ }
+ ta = d.next(oa), Ys();
+ for (var q = Vn.length - 1; q >= 0; --q) {
+ var K = Vn[q];
+ K && K(si, null, 0);
+ }
+ zt.flush(), Ei && Ei.update();
+ }
+ function ba() {
+ !ta && Vn.length > 0 && (ta = d.next(oa));
+ }
+ function is() {
+ ta && (d.cancel(oa), ta = null);
+ }
+ function Zs(q) {
+ q.preventDefault(), is(), na.forEach(function(K) {
+ K();
+ });
+ }
+ function Va(q) {
+ zt.getError(), Nr.restore(), Bn.restore(), Ri.restore(), hi.restore(), li.restore(), mn.restore(), an.restore(), Ei && Ei.restore(), Ji.procs.refresh(), ba(), Ki.forEach(function(K) {
+ K();
+ });
+ }
+ pn && (pn.addEventListener(Fo, Zs, false), pn.addEventListener(Uo, Va, false));
+ function Ml() {
+ Vn.length = 0, is(), pn && (pn.removeEventListener(Fo, Zs), pn.removeEventListener(Uo, Va)), Bn.clear(), mn.clear(), li.clear(), an.clear(), hi.clear(), ci.clear(), Ri.clear(), Ei && Ei.clear(), kn.forEach(function(q) {
+ q();
+ });
+ }
+ function zo(q) {
+ function K(Rt) {
+ var Bt = e({}, Rt);
+ delete Bt.uniforms, delete Bt.attributes, delete Bt.context, delete Bt.vao, "stencil" in Bt && Bt.stencil.op && (Bt.stencil.opBack = Bt.stencil.opFront = Bt.stencil.op, delete Bt.stencil.op);
+ function Dt(yt) {
+ if (yt in Bt) {
+ var Pt = Bt[yt];
+ delete Bt[yt], Object.keys(Pt).forEach(function(ht) {
+ Bt[yt + "." + ht] = Pt[ht];
+ });
+ }
+ }
+ return Dt("blend"), Dt("depth"), Dt("cull"), Dt("stencil"), Dt("polygonOffset"), Dt("scissor"), Dt("sample"), "vao" in Rt && (Bt.vao = Rt.vao), Bt;
+ }
+ function de(Rt, Bt) {
+ var Dt = {}, yt = {};
+ return Object.keys(Rt).forEach(function(Pt) {
+ var ht = Rt[Pt];
+ if (h.isDynamic(ht)) {
+ yt[Pt] = h.unbox(ht, Pt);
+ return;
+ } else if (Bt && Array.isArray(ht)) {
+ for (var ur = 0; ur < ht.length; ++ur) if (h.isDynamic(ht[ur])) {
+ yt[Pt] = h.unbox(ht, Pt);
+ return;
+ }
+ }
+ Dt[Pt] = ht;
+ }), { dynamic: yt, static: Dt };
+ }
+ var ne = de(q.context || {}, true), we = de(q.uniforms || {}, true), Ue = de(q.attributes || {}, false), ft = de(K(q), false), Zt = { gpuTime: 0, cpuTime: 0, count: 0 }, hr = Ji.compile(ft, Ue, we, ne, Zt), qt = hr.draw, Ve = hr.batch, Qe = hr.scope, at = [];
+ function Ct(Rt) {
+ for (; at.length < Rt; ) at.push(null);
+ return at;
+ }
+ function Ot(Rt, Bt) {
+ var Dt;
+ if (typeof Rt == "function") return Qe.call(this, null, Rt, 0);
+ if (typeof Bt == "function") if (typeof Rt == "number") for (Dt = 0; Dt < Rt; ++Dt) Qe.call(this, null, Bt, Dt);
+ else if (Array.isArray(Rt)) for (Dt = 0; Dt < Rt.length; ++Dt) Qe.call(this, Rt[Dt], Bt, Dt);
+ else return Qe.call(this, Rt, Bt, 0);
+ else if (typeof Rt == "number") {
+ if (Rt > 0) return Ve.call(this, Ct(Rt | 0), Rt | 0);
+ } else if (Array.isArray(Rt)) {
+ if (Rt.length) return Ve.call(this, Rt, Rt.length);
+ } else return qt.call(this, Rt);
+ }
+ return e(Ot, { stats: Zt, destroy: function() {
+ hr.destroy();
+ } });
+ }
+ var Qs = mn.setFBO = zo({ framebuffer: h.define.call(null, $s, "framebuffer") });
+ function al(q, K) {
+ var de = 0;
+ Ji.procs.poll();
+ var ne = K.color;
+ ne && (zt.clearColor(+ne[0] || 0, +ne[1] || 0, +ne[2] || 0, +ne[3] || 0), de |= Ms), "depth" in K && (zt.clearDepth(+K.depth), de |= Xs), "stencil" in K && (zt.clearStencil(K.stencil | 0), de |= Gn), zt.clear(de);
+ }
+ function Vl(q) {
+ if ("framebuffer" in q) if (q.framebuffer && q.framebuffer_reglType === "framebufferCube") for (var K = 0; K < 6; ++K) Qs(e({ framebuffer: q.framebuffer.faces[K] }, q), al);
+ else Qs(q, al);
+ else al(null, q);
+ }
+ function ss(q) {
+ Vn.push(q);
+ function K() {
+ var de = dl(Vn, q);
+ function ne() {
+ var we = dl(Vn, ne);
+ Vn[we] = Vn[Vn.length - 1], Vn.length -= 1, Vn.length <= 0 && is();
+ }
+ Vn[de] = ne;
+ }
+ return ba(), { cancel: K };
+ }
+ function Vs() {
+ var q = Ni.viewport, K = Ni.scissor_box;
+ q[0] = q[1] = K[0] = K[1] = 0, si.viewportWidth = si.framebufferWidth = si.drawingBufferWidth = q[2] = K[2] = zt.drawingBufferWidth, si.viewportHeight = si.framebufferHeight = si.drawingBufferHeight = q[3] = K[3] = zt.drawingBufferHeight;
+ }
+ function Ys() {
+ si.tick += 1, si.time = ol(), Vs(), Ji.procs.poll();
+ }
+ function wa() {
+ hi.refresh(), Vs(), Ji.procs.refresh(), Ei && Ei.update();
+ }
+ function ol() {
+ return (v() - Hn) / 1e3;
+ }
+ wa();
+ function io(q, K) {
+ var de;
+ switch (q) {
+ case "frame":
+ return ss(K);
+ case "lost":
+ de = na;
+ break;
+ case "restore":
+ de = Ki;
+ break;
+ case "destroy":
+ de = kn;
+ break;
+ }
+ return de.push(K), { cancel: function() {
+ for (var ne = 0; ne < de.length; ++ne) if (de[ne] === K) {
+ de[ne] = de[de.length - 1], de.pop();
+ return;
+ }
+ } };
+ }
+ function Y() {
+ return Ui;
+ }
+ function D(q) {
+ Object.entries(q).forEach(function(K) {
+ Ui[K[0]] = K[1];
+ });
+ }
+ var J = e(zo, { clear: Vl, prop: h.define.bind(null, $s), context: h.define.bind(null, Sl), this: h.define.bind(null, bu), draw: zo({}), buffer: function(q) {
+ return Ri.create(q, ja, false, false);
+ }, elements: function(q) {
+ return ci.create(q, false);
+ }, texture: hi.create2D, cube: hi.createCube, renderbuffer: li.create, framebuffer: mn.create, framebufferCube: mn.createCube, vao: an.createVAO, attributes: Rr, frame: ss, on: io, limits: xi, hasExtension: function(q) {
+ return xi.extensions.indexOf(q.toLowerCase()) >= 0;
+ }, read: Vi, destroy: Ml, _gl: zt, _refresh: wa, poll: function() {
+ Ys(), Ei && Ei.update();
+ }, now: ol, stats: mi, getCachedCode: Y, preloadCachedCode: D });
+ return bt.onDone(null, J), J;
+ }
+ return Sc;
+ });
+ });
+ var Lz = ye((S_r, zBe) => {
+ var WUt = zX(), XUt = FBe();
+ zBe.exports = function(t, r, n) {
+ var i = t._fullLayout, a = true;
+ return i._glcanvas.each(function(o) {
+ if (o.regl) {
+ o.regl.preloadCachedCode(n);
+ return;
+ }
+ if (!(o.pick && !i._has("parcoords"))) {
+ try {
+ o.regl = XUt({ canvas: this, attributes: { antialias: !o.pick, preserveDrawingBuffer: true }, pixelRatio: t._context.plotGlPixelRatio || window.devicePixelRatio, extensions: r || [], cachedCode: n || {} });
+ } catch (s) {
+ a = false;
+ }
+ o.regl || (a = false), a && this.addEventListener("webglcontextlost", function(s) {
+ t && t.emit && t.emit("plotly_webglcontextlost", { event: s, layer: o.key });
+ }, false);
+ }
+ }), a || WUt({ container: i._glcontainer.node() }), a;
+ };
+ });
+ var xK = ye((_K, UBe) => {
+ var OBe = _Y(), qBe = KY(), ZUt = Sqe(), BBe = DBe(), yK = Dr(), YUt = Cg().selectMode, KUt = Lz(), JUt = Ru(), $Ut = SU(), QUt = pY().styleTextSelection, NBe = {};
+ function eVt(e, t, r, n) {
+ var i = e._size, a = e.width * n, o = e.height * n, s = i.l * n, l = i.b * n, u = i.r * n, c = i.t * n, f = i.w * n, h = i.h * n;
+ return [s + t.domain[0] * f, l + r.domain[0] * h, a - u - (1 - t.domain[1]) * f, o - c - (1 - r.domain[1]) * h];
+ }
+ var _K = UBe.exports = function(t, r, n) {
+ if (n.length) {
+ var i = t._fullLayout, a = r._scene, o = r.xaxis, s = r.yaxis, l, u;
+ if (a) {
+ var c = KUt(t, ["ANGLE_instanced_arrays", "OES_element_index_uint"], NBe);
+ if (!c) {
+ a.init();
+ return;
+ }
+ var f = a.count, h = i._glcanvas.data()[0].regl;
+ if ($Ut(t, r, n), a.dirty) {
+ if ((a.line2d || a.error2d) && !(a.scatter2d || a.fill2d || a.glText) && h.clear({ color: true, depth: true }), a.error2d === true && (a.error2d = ZUt(h)), a.line2d === true && (a.line2d = qBe(h)), a.scatter2d === true && (a.scatter2d = OBe(h)), a.fill2d === true && (a.fill2d = qBe(h)), a.glText === true) for (a.glText = new Array(f), l = 0; l < f; l++) a.glText[l] = new BBe(h);
+ if (a.glText) {
+ if (f > a.glText.length) {
+ var d = f - a.glText.length;
+ for (l = 0; l < d; l++) a.glText.push(new BBe(h));
+ } else if (f < a.glText.length) {
+ var v = a.glText.length - f, _ = a.glText.splice(f, v);
+ _.forEach(function(N) {
+ N.destroy();
+ });
+ }
+ for (l = 0; l < f; l++) a.glText[l].update(a.textOptions[l]);
+ }
+ if (a.line2d && (a.line2d.update(a.lineOptions), a.lineOptions = a.lineOptions.map(function(N) {
+ if (N && N.positions) {
+ for (var H = N.positions, re = 0; re < H.length && (isNaN(H[re]) || isNaN(H[re + 1])); ) re += 2;
+ for (var oe = H.length - 2; oe > re && (isNaN(H[oe]) || isNaN(H[oe + 1])); ) oe -= 2;
+ N.positions = H.slice(re, oe + 2);
+ }
+ return N;
+ }), a.line2d.update(a.lineOptions)), a.error2d) {
+ var b = (a.errorXOptions || []).concat(a.errorYOptions || []);
+ a.error2d.update(b);
+ }
+ a.scatter2d && a.scatter2d.update(a.markerOptions), a.fillOrder = yK.repeat(null, f), a.fill2d && (a.fillOptions = a.fillOptions.map(function(N, H) {
+ var re = n[H];
+ if (!(!N || !re || !re[0] || !re[0].trace)) {
+ var oe = re[0], _e = oe.trace, Ce = oe.t, Le = a.lineOptions[H], ge, ie, Se = [];
+ _e._ownfill && Se.push(H), _e._nexttrace && Se.push(H + 1), Se.length && (a.fillOrder[H] = Se);
+ var Ee = [], Ae = Le && Le.positions || Ce.positions, Be, Pe;
+ if (_e.fill === "tozeroy") {
+ for (Be = 0; Be < Ae.length && isNaN(Ae[Be + 1]); ) Be += 2;
+ for (Pe = Ae.length - 2; Pe > Be && isNaN(Ae[Pe + 1]); ) Pe -= 2;
+ Ae[Be + 1] !== 0 && (Ee = [Ae[Be], 0]), Ee = Ee.concat(Ae.slice(Be, Pe + 2)), Ae[Pe + 1] !== 0 && (Ee = Ee.concat([Ae[Pe], 0]));
+ } else if (_e.fill === "tozerox") {
+ for (Be = 0; Be < Ae.length && isNaN(Ae[Be]); ) Be += 2;
+ for (Pe = Ae.length - 2; Pe > Be && isNaN(Ae[Pe]); ) Pe -= 2;
+ Ae[Be] !== 0 && (Ee = [0, Ae[Be + 1]]), Ee = Ee.concat(Ae.slice(Be, Pe + 2)), Ae[Pe] !== 0 && (Ee = Ee.concat([0, Ae[Pe + 1]]));
+ } else if (_e.fill === "toself" || _e.fill === "tonext") {
+ for (Ee = [], ge = 0, N.splitNull = true, ie = 0; ie < Ae.length; ie += 2) (isNaN(Ae[ie]) || isNaN(Ae[ie + 1])) && (Ee = Ee.concat(Ae.slice(ge, ie)), Ee.push(Ae[ge], Ae[ge + 1]), Ee.push(null, null), ge = ie + 2);
+ Ee = Ee.concat(Ae.slice(ge)), ge && Ee.push(Ae[ge], Ae[ge + 1]);
+ } else {
+ var me = _e._nexttrace;
+ if (me) {
+ var De = a.lineOptions[H + 1];
+ if (De) {
+ var ce = De.positions;
+ if (_e.fill === "tonexty") {
+ for (Ee = Ae.slice(), H = Math.floor(ce.length / 2); H--; ) {
+ var je = ce[H * 2], lt = ce[H * 2 + 1];
+ isNaN(je) || isNaN(lt) || Ee.push(je, lt);
+ }
+ N.fill = me.fillcolor;
+ }
+ }
+ }
+ }
+ if (_e._prevtrace && _e._prevtrace.fill === "tonext") {
+ var pt = a.lineOptions[H - 1].positions, Vt = Ee.length / 2;
+ ge = Vt;
+ var ot = [ge];
+ for (ie = 0; ie < pt.length; ie += 2) (isNaN(pt[ie]) || isNaN(pt[ie + 1])) && (ot.push(ie / 2 + Vt + 1), ge = ie + 2);
+ Ee = Ee.concat(pt), N.hole = ot;
+ }
+ return N.fillmode = _e.fill, N.opacity = _e.opacity, N.positions = Ee, N;
+ }
+ }), a.fill2d.update(a.fillOptions));
+ }
+ var p = i.dragmode, k = YUt(p), E = i.clickmode.indexOf("select") > -1;
+ for (let [N] of n) if (N) {
+ var T = N.trace, L = N.t, x = L.index, C = T._length, M = L.x, g = L.y;
+ if (T.selectedpoints || k || E) {
+ if (k || (k = true), T.selectedpoints) {
+ var P = a.selectBatch[x] = yK.selIndices2selPoints(T), A = {};
+ for (u = 0; u < P.length; u++) A[P[u]] = 1;
+ var z = [];
+ for (u = 0; u < C; u++) A[u] || z.push(u);
+ a.unselectBatch[x] = z;
+ }
+ var O = L.xpx = new Array(C), U = L.ypx = new Array(C);
+ for (u = 0; u < C; u++) O[u] = o.c2p(M[u]), U[u] = s.c2p(g[u]);
+ } else L.xpx = L.ypx = null;
+ }
+ if (k) {
+ if (a.select2d || (a.select2d = OBe(i._glcanvas.data()[1].regl)), a.scatter2d) {
+ var G = new Array(f);
+ for (l = 0; l < f; l++) G[l] = a.selectBatch[l].length || a.unselectBatch[l].length ? a.markerUnselectedOptions[l] : {};
+ a.scatter2d.update(G);
+ }
+ a.select2d && (a.select2d.update(a.markerOptions), a.select2d.update(a.markerSelectedOptions)), a.glText && n.forEach(function(N) {
+ var H = ((N || [])[0] || {}).trace || {};
+ JUt.hasText(H) && QUt(N);
+ });
+ } else a.scatter2d && a.scatter2d.update(a.markerOptions);
+ var Z = { viewport: eVt(i, o, s, t._context.plotGlPixelRatio), range: [(o._rl || o.range)[0], (s._rl || s.range)[0], (o._rl || o.range)[1], (s._rl || s.range)[1]] }, j = yK.repeat(Z, a.count);
+ a.fill2d && a.fill2d.update(j), a.line2d && a.line2d.update(j), a.error2d && a.error2d.update(j.concat(j)), a.scatter2d && a.scatter2d.update(j), a.select2d && a.select2d.update(j), a.glText && a.glText.forEach(function(N) {
+ N.update(Z);
+ });
+ }
+ }
+ };
+ _K.reglPrecompiled = NBe;
+ });
+ var HBe = ye((M_r, GBe) => {
+ var VBe = o7e();
+ VBe.plot = xK();
+ GBe.exports = VBe;
+ });
+ var WBe = ye((E_r, jBe) => {
+ jBe.exports = HBe();
+ });
+ var bK = ye((k_r, KBe) => {
+ var tVt = pf(), YBe = Tu(), XBe = df().axisHoverFormat, { hovertemplateAttrs: rVt, templatefallbackAttrs: iVt } = Ll(), zk = gk(), nVt = Rh().idRegex, aVt = vl().templatedArray, x5 = Ao().extendFlat, d1 = tVt.marker, oVt = d1.line, sVt = x5(YBe("marker.line", { editTypeOverride: "calc" }), { width: x5({}, oVt.width, { editType: "calc" }), editType: "calc" }), Pz = x5(YBe("marker"), { symbol: d1.symbol, angle: d1.angle, size: x5({}, d1.size, { editType: "markerSize" }), sizeref: d1.sizeref, sizemin: d1.sizemin, sizemode: d1.sizemode, opacity: d1.opacity, colorbar: d1.colorbar, line: sVt, editType: "calc" });
+ Pz.color.editType = Pz.cmin.editType = Pz.cmax.editType = "style";
+ function ZBe(e) {
+ return { valType: "info_array", freeLength: true, editType: "calc", items: { valType: "subplotid", regex: nVt[e], editType: "plot" } };
+ }
+ KBe.exports = { dimensions: aVt("dimension", { visible: { valType: "boolean", dflt: true, editType: "calc" }, label: { valType: "string", editType: "calc" }, values: { valType: "data_array", editType: "calc+clearAxisTypes" }, axis: { type: { valType: "enumerated", values: ["linear", "log", "date", "category"], editType: "calc+clearAxisTypes" }, matches: { valType: "boolean", dflt: false, editType: "calc" }, editType: "calc+clearAxisTypes" }, editType: "calc+clearAxisTypes" }), text: x5({}, zk.text, {}), hovertext: x5({}, zk.hovertext, {}), hovertemplate: rVt(), hovertemplatefallback: iVt(), xhoverformat: XBe("x"), yhoverformat: XBe("y"), marker: Pz, xaxes: ZBe("x"), yaxes: ZBe("y"), diagonal: { visible: { valType: "boolean", dflt: true, editType: "calc" }, editType: "calc" }, showupperhalf: { valType: "boolean", dflt: true, editType: "calc" }, showlowerhalf: { valType: "boolean", dflt: true, editType: "calc" }, selected: { marker: zk.selected.marker, editType: "calc" }, unselected: { marker: zk.unselected.marker, editType: "calc" }, opacity: zk.opacity };
+ });
+ var Iz = ye((C_r, JBe) => {
+ JBe.exports = function(e, t, r, n) {
+ n || (n = 1 / 0);
+ var i, a;
+ for (i = 0; i < t.length; i++) a = t[i], a.visible && (n = Math.min(n, a[r].length));
+ for (n === 1 / 0 && (n = 0), e._length = n, i = 0; i < t.length; i++) a = t[i], a.visible && (a._length = n);
+ return n;
+ };
+ });
+ var eNe = ye((L_r, QBe) => {
+ var wK = Dr(), lVt = Zd(), $Be = bK(), uVt = Ru(), cVt = $p(), fVt = Iz(), hVt = WF().isOpenSymbol;
+ QBe.exports = function(t, r, n, i) {
+ function a(d, v) {
+ return wK.coerce(t, r, $Be, d, v);
+ }
+ var o = lVt(t, r, { name: "dimensions", handleItemDefaults: dVt }), s = a("diagonal.visible"), l = a("showupperhalf"), u = a("showlowerhalf"), c = fVt(r, o, "values");
+ if (!c || !s && !l && !u) {
+ r.visible = false;
+ return;
+ }
+ a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("xhoverformat"), a("yhoverformat"), cVt(t, r, n, i, a, { noAngleRef: true, noLineDash: true, noStandOff: true });
+ var f = hVt(r.marker.symbol), h = uVt.isBubble(r);
+ a("marker.line.width", f || h ? 1 : 0), vVt(t, r, i, a), wK.coerceSelectionMarkerOpacity(r, a);
+ };
+ function dVt(e, t) {
+ function r(i, a) {
+ return wK.coerce(e, t, $Be.dimensions, i, a);
+ }
+ r("label");
+ var n = r("values");
+ n && n.length ? r("visible") : t.visible = false, r("axis.type"), r("axis.matches");
+ }
+ function vVt(e, t, r, n) {
+ var i = t.dimensions, a = i.length, o = t.showupperhalf, s = t.showlowerhalf, l = t.diagonal.visible, u, c, f = new Array(a), h = new Array(a);
+ for (u = 0; u < a; u++) {
+ var d = u ? u + 1 : "";
+ f[u] = "x" + d, h[u] = "y" + d;
+ }
+ var v = n("xaxes", f), _ = n("yaxes", h), b = t._diag = new Array(a);
+ t._xaxes = {}, t._yaxes = {};
+ var p = [], k = [];
+ function E(z, O, U, G) {
+ if (z) {
+ var Z = z.charAt(0), j = r._splomAxes[Z];
+ if (t["_" + Z + "axes"][z] = 1, G.push(z), !(z in j)) {
+ var N = j[z] = {};
+ U && (N.label = U.label || "", U.visible && U.axis && (U.axis.type && (N.type = U.axis.type), U.axis.matches && (N.matches = O)));
+ }
+ }
+ }
+ var T = !l && !s, L = !l && !o;
+ for (t._axesDim = {}, u = 0; u < a; u++) {
+ var x = i[u], C = u === 0, M = u === a - 1, g = C && T || M && L ? void 0 : v[u], P = C && L || M && T ? void 0 : _[u];
+ E(g, P, x, p), E(P, g, x, k), b[u] = [g, P], t._axesDim[g] = u, t._axesDim[P] = u;
+ }
+ for (u = 0; u < p.length; u++) for (c = 0; c < k.length; c++) {
+ var A = p[u] + k[c];
+ (u > c && o || u < c && s || u === c && (l || !s || !o)) && (r._splomSubplots[A] = 1);
+ }
+ (!s || !l && o && s) && (r._splomGridDflt.xside = "bottom", r._splomGridDflt.yside = "left");
+ }
+ });
+ var iNe = ye((P_r, rNe) => {
+ var tNe = Dr();
+ rNe.exports = function(t, r) {
+ var n = t._fullLayout, i = r.uid, a = n._splomScenes;
+ a || (a = n._splomScenes = {});
+ var o = { dirty: true, selectBatch: [], unselectBatch: [] }, s = { matrix: false, selectBatch: [], unselectBatch: [] }, l = a[r.uid];
+ return l || (l = a[i] = tNe.extendFlat({}, o, s), l.draw = function() {
+ l.matrix && l.matrix.draw && (l.selectBatch.length || l.unselectBatch.length ? l.matrix.draw(l.unselectBatch, l.selectBatch) : l.matrix.draw()), l.dirty = false;
+ }, l.destroy = function() {
+ l.matrix && l.matrix.destroy && l.matrix.destroy(), l.matrixOptions = null, l.selectBatch = null, l.unselectBatch = null, l = null;
+ }), l.dirty || tNe.extendFlat(l, o), l;
+ };
+ });
+ var oNe = ye((I_r, aNe) => {
+ var TK = Dr(), Rz = hf(), pVt = q0().calcMarkerSize, gVt = q0().calcAxisExpansion, mVt = z0(), nNe = ow().markerSelection, yVt = ow().markerStyle, _Vt = iNe(), xVt = fs().BADNUM, bVt = px().TOO_MANY_POINTS;
+ aNe.exports = function(t, r) {
+ var n = r.dimensions, i = r._length, a = {}, o = a.cdata = [], s = a.data = [], l = r._visibleDims = [], u, c, f, h, d;
+ function v(E, T) {
+ for (var L = E.makeCalcdata({ v: T.values, vcalendar: r.calendar }, "v"), x = 0; x < L.length; x++) L[x] = L[x] === xVt ? NaN : L[x];
+ o.push(L), s.push(E.type === "log" ? TK.simpleMap(L, E.c2l) : L);
+ }
+ for (u = 0; u < n.length; u++) if (f = n[u], f.visible) {
+ if (h = Rz.getFromId(t, r._diag[u][0]), d = Rz.getFromId(t, r._diag[u][1]), h && d && h.type !== d.type) {
+ TK.log("Skipping splom dimension " + u + " with conflicting axis types");
+ continue;
+ }
+ h ? (v(h, f), d && d.type === "category" && (d._categories = h._categories.slice())) : v(d, f), l.push(u);
+ }
+ mVt(t, r), TK.extendFlat(a, yVt(t, r));
+ var _ = o.length, b = _ * i > bVt, p;
+ for (b ? p = a.sizeAvg || Math.max(a.size, 3) : p = pVt(r, i), c = 0; c < l.length; c++) u = l[c], f = n[u], h = Rz.getFromId(t, r._diag[u][0]) || {}, d = Rz.getFromId(t, r._diag[u][1]) || {}, gVt(t, r, h, d, o[c], o[c], p);
+ var k = _Vt(t, r);
+ return k.matrix || (k.matrix = true), k.matrixOptions = a, k.selectedOptions = nNe(t, r, r.selected), k.unselectedOptions = nNe(t, r, r.unselected), [{ x: false, y: false, t: {}, trace: r }];
+ };
+ });
+ var lNe = ye((sNe, Ok) => {
+ (function() {
+ var e, t, r, n, i, a;
+ typeof performance != "undefined" && performance !== null && performance.now ? Ok.exports = function() {
+ return performance.now();
+ } : typeof process != "undefined" && process !== null && process.hrtime ? (Ok.exports = function() {
+ return (e() - i) / 1e6;
+ }, t = process.hrtime, e = function() {
+ var o;
+ return o = t(), o[0] * 1e9 + o[1];
+ }, n = e(), a = process.uptime() * 1e9, i = n - a) : Date.now ? (Ok.exports = function() {
+ return Date.now() - r;
+ }, r = Date.now()) : (Ok.exports = function() {
+ return (/* @__PURE__ */ new Date()).getTime() - r;
+ }, r = (/* @__PURE__ */ new Date()).getTime());
+ }).call(sNe);
+ });
+ var cNe = ye((R_r, zz) => {
+ var wVt = lNe(), v1 = window, Dz = ["moz", "webkit"], w5 = "AnimationFrame", T5 = v1["request" + w5], qk = v1["cancel" + w5] || v1["cancelRequest" + w5];
+ for (b5 = 0; !T5 && b5 < Dz.length; b5++) T5 = v1[Dz[b5] + "Request" + w5], qk = v1[Dz[b5] + "Cancel" + w5] || v1[Dz[b5] + "CancelRequest" + w5];
+ var b5;
+ (!T5 || !qk) && (Fz = 0, AK = 0, Tx = [], uNe = 1e3 / 60, T5 = function(e) {
+ if (Tx.length === 0) {
+ var t = wVt(), r = Math.max(0, uNe - (t - Fz));
+ Fz = r + t, setTimeout(function() {
+ var n = Tx.slice(0);
+ Tx.length = 0;
+ for (var i = 0; i < n.length; i++) if (!n[i].cancelled) try {
+ n[i].callback(Fz);
+ } catch (a) {
+ setTimeout(function() {
+ throw a;
+ }, 0);
+ }
+ }, Math.round(r));
+ }
+ return Tx.push({ handle: ++AK, callback: e, cancelled: false }), AK;
+ }, qk = function(e) {
+ for (var t = 0; t < Tx.length; t++) Tx[t].handle === e && (Tx[t].cancelled = true);
+ });
+ var Fz, AK, Tx, uNe;
+ zz.exports = function(e) {
+ return T5.call(v1, e);
+ };
+ zz.exports.cancel = function() {
+ qk.apply(v1, arguments);
+ };
+ zz.exports.polyfill = function(e) {
+ e || (e = v1), e.requestAnimationFrame = T5, e.cancelAnimationFrame = qk;
+ };
+ });
+ var hNe = ye((D_r, fNe) => {
+ fNe.exports = function(t, r) {
+ var n = typeof t == "number", i = typeof r == "number";
+ n && !i ? (r = t, t = 0) : !n && !i && (t = 0, r = 0), t = t | 0, r = r | 0;
+ var a = r - t;
+ if (a < 0) throw new Error("array length must be positive");
+ for (var o = new Array(a), s = 0, l = t; s < a; s++, l++) o[s] = l;
+ return o;
+ };
+ });
+ var gNe = ye((F_r, pNe) => {
+ var TVt = _Y(), AVt = ey(), SVt = rw(), dNe = cNe(), MVt = hNe(), SK = s5(), EVt = iw();
+ pNe.exports = Ax;
+ function Ax(e, t) {
+ if (!(this instanceof Ax)) return new Ax(e);
+ this.traces = [], this.passes = {}, this.regl = e, this.scatter = TVt(e), this.canvas = this.scatter.canvas;
+ }
+ Ax.prototype.render = function(...e) {
+ return e.length && this.update(...e), this.regl.attributes.preserveDrawingBuffer ? this.draw() : (this.dirty ? this.planned == null && (this.planned = dNe(() => {
+ this.draw(), this.dirty = true, this.planned = null;
+ })) : (this.draw(), this.dirty = true, dNe(() => {
+ this.dirty = false;
+ })), this);
+ };
+ Ax.prototype.update = function(...e) {
+ if (!e.length) return;
+ for (let n = 0; n < e.length; n++) this.updateItem(n, e[n]);
+ this.traces = this.traces.filter(Boolean);
+ let t = [], r = 0;
+ for (let n = 0; n < this.traces.length; n++) {
+ let i = this.traces[n], a = this.traces[n].passes;
+ for (let o = 0; o < a.length; o++) t.push(this.passes[a[o]]);
+ i.passOffset = r, r += i.passes.length;
+ }
+ return this.scatter.update(...t), this;
+ };
+ Ax.prototype.updateItem = function(e, t) {
+ let { regl: r } = this;
+ if (t === null) return this.traces[e] = null, this;
+ if (!t) return this;
+ let n = AVt(t, { data: "data items columns rows values dimensions samples x", snap: "snap cluster", size: "sizes size radius", color: "colors color fill fill-color fillColor", opacity: "opacity alpha transparency opaque", borderSize: "borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline", borderColor: "borderColors borderColor bordercolor stroke stroke-color strokeColor", marker: "markers marker shape", range: "range ranges databox dataBox", viewport: "viewport viewBox viewbox", domain: "domain domains area areas", padding: "pad padding paddings pads margin margins", transpose: "transpose transposed", diagonal: "diagonal diag showDiagonal", upper: "upper up top upperhalf upperHalf showupperhalf showUpper showUpperHalf", lower: "lower low bottom lowerhalf lowerHalf showlowerhalf showLowerHalf showLower" }), i = this.traces[e] || (this.traces[e] = { id: e, buffer: r.buffer({ usage: "dynamic", type: "float", data: new Uint8Array() }), color: "black", marker: null, size: 12, borderColor: "transparent", borderSize: 1, viewport: SK([r._gl.drawingBufferWidth, r._gl.drawingBufferHeight]), padding: [0, 0, 0, 0], opacity: 1, diagonal: true, upper: true, lower: true });
+ if (n.color != null && (i.color = n.color), n.size != null && (i.size = n.size), n.marker != null && (i.marker = n.marker), n.borderColor != null && (i.borderColor = n.borderColor), n.borderSize != null && (i.borderSize = n.borderSize), n.opacity != null && (i.opacity = n.opacity), n.viewport && (i.viewport = SK(n.viewport)), n.diagonal != null && (i.diagonal = n.diagonal), n.upper != null && (i.upper = n.upper), n.lower != null && (i.lower = n.lower), n.data) {
+ i.buffer(EVt(n.data)), i.columns = n.data.length, i.count = n.data[0].length, i.bounds = [];
+ for (let _ = 0; _ < i.columns; _++) i.bounds[_] = SVt(n.data[_], 1);
+ }
+ let a;
+ n.range && (i.range = n.range, a = i.range && typeof i.range[0] != "number"), n.domain && (i.domain = n.domain);
+ let o = false;
+ n.padding != null && (Array.isArray(n.padding) && n.padding.length === i.columns && typeof n.padding[n.padding.length - 1] == "number" ? (i.padding = n.padding.map(vNe), o = true) : i.padding = vNe(n.padding));
+ let s = i.columns, l = i.count, u = i.viewport.width, c = i.viewport.height, f = i.viewport.x, h = i.viewport.y, d = u / s, v = c / s;
+ i.passes = [];
+ for (let _ = 0; _ < s; _++) for (let b = 0; b < s; b++) {
+ if (!i.diagonal && b === _ || !i.upper && _ > b || !i.lower && _ < b) continue;
+ let p = kVt(i.id, _, b), k = this.passes[p] || (this.passes[p] = {});
+ if (n.data && (n.transpose ? k.positions = { x: { buffer: i.buffer, offset: b, count: l, stride: s }, y: { buffer: i.buffer, offset: _, count: l, stride: s } } : k.positions = { x: { buffer: i.buffer, offset: b * l, count: l }, y: { buffer: i.buffer, offset: _ * l, count: l } }, k.bounds = Oz(i.bounds, _, b)), n.domain || n.viewport || n.data) {
+ let E = o ? Oz(i.padding, _, b) : i.padding;
+ if (i.domain) {
+ let [T, L, x, C] = Oz(i.domain, _, b);
+ k.viewport = [f + T * u + E[0], h + L * c + E[1], f + x * u - E[2], h + C * c - E[3]];
+ } else k.viewport = [f + b * d + d * E[0], h + _ * v + v * E[1], f + (b + 1) * d - d * E[2], h + (_ + 1) * v - v * E[3]];
+ }
+ n.color && (k.color = i.color), n.size && (k.size = i.size), n.marker && (k.marker = i.marker), n.borderSize && (k.borderSize = i.borderSize), n.borderColor && (k.borderColor = i.borderColor), n.opacity && (k.opacity = i.opacity), n.range && (k.range = a ? Oz(i.range, _, b) : i.range || k.bounds), i.passes.push(p);
+ }
+ return this;
+ };
+ Ax.prototype.draw = function(...e) {
+ if (!e.length) this.scatter.draw();
+ else {
+ let t = [];
+ for (let r = 0; r < e.length; r++) if (typeof e[r] == "number") {
+ let { passes: n, passOffset: i } = this.traces[e[r]];
+ t.push(...MVt(i, i + n.length));
+ } else if (e[r].length) {
+ let n = e[r], { passes: i, passOffset: a } = this.traces[r];
+ i = i.map((o, s) => {
+ t[a + s] = n;
+ });
+ }
+ this.scatter.draw(...t);
+ }
+ return this;
+ };
+ Ax.prototype.destroy = function() {
+ return this.traces.forEach((e) => {
+ e.buffer && e.buffer.destroy && e.buffer.destroy();
+ }), this.traces = null, this.passes = null, this.scatter.destroy(), this;
+ };
+ function kVt(e, t, r) {
+ let n = e.id != null ? e.id : e, i = t, a = r;
+ return n << 16 | (i & 255) << 8 | a & 255;
+ }
+ function Oz(e, t, r) {
+ let i, o, s, u, f = e[t], h = e[r];
+ return f.length > 2 ? (f[0], f[2], i = f[1], o = f[3]) : f.length ? (i = f[0], o = f[1]) : (f.x, i = f.y, f.x + f.width, o = f.y + f.height), h.length > 2 ? (s = h[0], u = h[2], h[1], h[3]) : h.length ? (s = h[0], u = h[1]) : (s = h.x, h.y, u = h.x + h.width, h.y + h.height), [s, i, u, o];
+ }
+ function vNe(e) {
+ if (typeof e == "number") return [e, e, e, e];
+ if (e.length === 2) return [e[0], e[1], e[0], e[1]];
+ {
+ let t = SK(e);
+ return [t.x, t.y, t.x + t.width, t.y + t.height];
+ }
+ }
+ });
+ var yNe = ye((z_r, mNe) => {
+ var CVt = gNe(), MK = Dr(), qz = hf(), LVt = Cg().selectMode;
+ mNe.exports = function(t, r, n) {
+ if (n.length) for (var i = 0; i < n.length; i++) PVt(t, n[i][0]);
+ };
+ function PVt(e, t) {
+ var r = e._fullLayout, n = r._size, i = t.trace, a = t.t, o = r._splomScenes[i.uid], s = o.matrixOptions, l = s.cdata, u = r._glcanvas.data()[0].regl, c = r.dragmode, f, h, d, v, _;
+ if (l.length !== 0) {
+ s.lower = i.showupperhalf, s.upper = i.showlowerhalf, s.diagonal = i.diagonal.visible;
+ var b = i._visibleDims, p = l.length, k = o.viewOpts = {};
+ for (k.ranges = new Array(p), k.domains = new Array(p), _ = 0; _ < b.length; _++) {
+ d = b[_];
+ var E = k.ranges[_] = new Array(4), T = k.domains[_] = new Array(4);
+ f = qz.getFromId(e, i._diag[d][0]), f && (E[0] = f._rl[0], E[2] = f._rl[1], T[0] = f.domain[0], T[2] = f.domain[1]), h = qz.getFromId(e, i._diag[d][1]), h && (E[1] = h._rl[0], E[3] = h._rl[1], T[1] = h.domain[0], T[3] = h.domain[1]);
+ }
+ var L = e._context.plotGlPixelRatio, x = n.l * L, C = n.b * L, M = n.w * L, g = n.h * L;
+ k.viewport = [x, C, M + x, g + C], o.matrix === true && (o.matrix = CVt(u));
+ var P = r.clickmode.indexOf("select") > -1, A = LVt(c) || !!i.selectedpoints || P, z = true;
+ if (A) {
+ var O = i._length;
+ if (i.selectedpoints) {
+ o.selectBatch = i.selectedpoints;
+ var U = i.selectedpoints, G = {};
+ for (d = 0; d < U.length; d++) G[U[d]] = true;
+ var Z = [];
+ for (d = 0; d < O; d++) G[d] || Z.push(d);
+ o.unselectBatch = Z;
+ }
+ var j = a.xpx = new Array(p), N = a.ypx = new Array(p);
+ for (_ = 0; _ < b.length; _++) {
+ if (d = b[_], f = qz.getFromId(e, i._diag[d][0]), f) for (j[_] = new Array(O), v = 0; v < O; v++) j[_][v] = f.c2p(l[_][v]);
+ if (h = qz.getFromId(e, i._diag[d][1]), h) for (N[_] = new Array(O), v = 0; v < O; v++) N[_][v] = h.c2p(l[_][v]);
+ }
+ if (o.selectBatch.length || o.unselectBatch.length) {
+ var H = MK.extendFlat({}, s, o.unselectedOptions, k), re = MK.extendFlat({}, s, o.selectedOptions, k);
+ o.matrix.update(H, re), z = false;
+ }
+ } else a.xpx = a.ypx = null;
+ if (z) {
+ var oe = MK.extendFlat({}, s, k);
+ o.matrix.update(oe, null);
+ }
+ }
+ }
+ });
+ var EK = ye((_Ne) => {
+ _Ne.getDimIndex = function(t, r) {
+ for (var n = r._id, i = n.charAt(0), a = { x: 0, y: 1 }[i], o = t._visibleDims, s = 0; s < o.length; s++) {
+ var l = o[s];
+ if (t._diag[l][a] === n) return s;
+ }
+ return false;
+ };
+ });
+ var ANe = ye((q_r, TNe) => {
+ var xNe = EK(), IVt = jF().calcHover, bNe = ho().getFromId, RVt = Ao().extendFlat;
+ function DVt(e, t, r, n, i) {
+ i || (i = {});
+ var a = (n || "").charAt(0) === "x", o = (n || "").charAt(0) === "y", s = wNe(e, t, r);
+ if ((a || o) && i.hoversubplots === "axis" && s[0]) for (var l = (a ? e.xa : e.ya)._subplotsWith, u = i.gd, c = RVt({}, e), f = 0; f < l.length; f++) {
+ var h = l[f];
+ if (h !== e.xa._id + e.ya._id) {
+ o ? c.xa = bNe(u, h, "x") : c.ya = bNe(u, h, "y");
+ var d = a || o, v = wNe(c, t, r, d);
+ s = s.concat(v);
+ }
+ }
+ return s;
+ }
+ function wNe(e, t, r, n) {
+ var i = e.cd, a = i[0].trace, o = e.scene, s = o.matrixOptions.cdata, l = e.xa, u = e.ya, c = l.c2p(t), f = u.c2p(r), h = e.distance, d = xNe.getDimIndex(a, l), v = xNe.getDimIndex(a, u);
+ if (d === false || v === false) return [e];
+ for (var _ = s[d], b = s[v], p, k, E = h, T = 0; T < _.length; T++) if (!(n && T !== e.index)) {
+ var L = _[T], x = b[T], C = l.c2p(L) - c, M = u.c2p(x) - f, g = Math.sqrt(C * C + M * M);
+ (n || g < E) && (E = k = g, p = T);
+ }
+ return e.index = p, e.distance = E, e.dxy = k, p === void 0 ? [e] : [IVt(e, _, b, a)];
+ }
+ TNe.exports = { hoverPoints: DVt };
+ });
+ var LNe = ye((B_r, CNe) => {
+ var kNe = Dr(), SNe = kNe.pushUnique, MNe = Ru(), ENe = EK();
+ CNe.exports = function(t, r) {
+ var n = t.cd, i = n[0].trace, a = n[0].t, o = t.scene, s = o.matrixOptions.cdata, l = t.xaxis, u = t.yaxis, c = [];
+ if (!o) return c;
+ var f = !MNe.hasMarkers(i) && !MNe.hasText(i);
+ if (i.visible !== true || f) return c;
+ var h = ENe.getDimIndex(i, l), d = ENe.getDimIndex(i, u);
+ if (h === false || d === false) return c;
+ var v = a.xpx[h], _ = a.ypx[d], b = s[h], p = s[d], k = (t.scene.selectBatch || []).slice(), E = [];
+ if (r !== false && !r.degenerate) for (var T = 0; T < b.length; T++) r.contains([v[T], _[T]], null, T, t) ? (c.push({ pointNumber: T, x: b[T], y: p[T] }), SNe(k, T)) : k.indexOf(T) !== -1 ? SNe(k, T) : E.push(T);
+ var L = o.matrixOptions;
+ return !k.length && !E.length ? o.matrix.update(L, null) : !o.selectBatch.length && !o.unselectBatch.length && o.matrix.update(o.unselectedOptions, kNe.extendFlat({}, L, o.selectedOptions, o.viewOpts)), o.selectBatch = k, o.unselectBatch = E, c;
+ };
+ });
+ var RNe = ye((N_r, INe) => {
+ var PNe = Dr(), FVt = z0(), zVt = ow().markerStyle;
+ INe.exports = function(t, r) {
+ var n = r.trace, i = t._fullLayout._splomScenes[n.uid];
+ if (i) {
+ FVt(t, n), PNe.extendFlat(i.matrixOptions, zVt(t, n));
+ var a = PNe.extendFlat({}, i.matrixOptions, i.viewOpts);
+ i.matrix.update(a, null);
+ }
+ };
+ });
+ var FNe = ye((U_r, DNe) => {
+ var OVt = qa(), qVt = yV();
+ DNe.exports = { moduleType: "trace", name: "splom", categories: ["gl", "regl", "cartesian", "symbols", "showLegend", "scatter-like"], attributes: bK(), supplyDefaults: eNe(), colorbar: $d(), calc: oNe(), plot: yNe(), hoverPoints: ANe().hoverPoints, selectPoints: LNe(), editStyle: RNe(), meta: {} };
+ OVt.register(qVt);
+ });
+ var UNe = ye((V_r, NNe) => {
+ var BVt = KY(), NVt = qa(), UVt = Lz(), VVt = Id().getModuleCalcData, Sx = mh(), zNe = hf().getFromId, ONe = ho().shouldShowZeroLine, qNe = "splom", BNe = {};
+ function GVt(e) {
+ var t = e._fullLayout, r = NVt.getModule(qNe), n = VVt(e.calcdata, r)[0], i = UVt(e, ["ANGLE_instanced_arrays", "OES_element_index_uint"], BNe);
+ i && (t._hasOnlyLargeSploms && kK(e), r.plot(e, {}, n));
+ }
+ function HVt(e) {
+ var t = e.calcdata, r = e._fullLayout;
+ r._hasOnlyLargeSploms && kK(e);
+ for (var n = 0; n < t.length; n++) {
+ var i = t[n][0], a = i.trace, o = r._splomScenes[a.uid];
+ a.type === "splom" && o && o.matrix && jVt(e, a, o);
+ }
+ }
+ function jVt(e, t, r) {
+ for (var n = r.matrixOptions.data.length, i = t._visibleDims, a = r.viewOpts.ranges = new Array(n), o = 0; o < i.length; o++) {
+ var s = i[o], l = a[o] = new Array(4), u = zNe(e, t._diag[s][0]);
+ u && (l[0] = u.r2l(u.range[0]), l[2] = u.r2l(u.range[1]));
+ var c = zNe(e, t._diag[s][1]);
+ c && (l[1] = c.r2l(c.range[0]), l[3] = c.r2l(c.range[1]));
+ }
+ r.selectBatch.length || r.unselectBatch.length ? r.matrix.update({ ranges: a }, { ranges: a }) : r.matrix.update({ ranges: a });
+ }
+ function kK(e) {
+ var t = e._fullLayout, r = t._glcanvas.data()[0].regl, n = t._splomGrid;
+ n || (n = t._splomGrid = BVt(r)), n.update(WVt(e));
+ }
+ function WVt(e) {
+ var t = e._context.plotGlPixelRatio, r = e._fullLayout, n = r._size, i = [0, 0, r.width * t, r.height * t], a = {}, o;
+ function s(x, C, M, g, P, A) {
+ M *= t, g *= t, P *= t, A *= t;
+ var z = C[x + "color"], O = C[x + "width"], U = String(z + O);
+ U in a ? a[U].data.push(NaN, NaN, M, g, P, A) : a[U] = { data: [M, g, P, A], join: "rect", thickness: O * t, color: z, viewport: i, range: i, overlay: false };
+ }
+ for (o in r._splomSubplots) {
+ var l = r._plots[o], u = l.xaxis, c = l.yaxis, f = u._gridVals, h = c._gridVals, d = u._offset, v = u._length, _ = c._length, b = n.b + c.domain[0] * n.h, p = -c._m, k = -p * c.r2l(c.range[0], c.calendar), E, T;
+ if (u.showgrid) for (o = 0; o < f.length; o++) E = d + u.l2p(f[o].x), s("grid", u, E, b, E, b + _);
+ if (c.showgrid) for (o = 0; o < h.length; o++) T = b + k + p * h[o].x, s("grid", c, d, T, d + v, T);
+ ONe(e, u, c) && (E = d + u.l2p(0), s("zeroline", u, E, b, E, b + _)), ONe(e, c, u) && (T = b + k + 0, s("zeroline", c, d, T, d + v, T));
+ }
+ var L = [];
+ for (o in a) L.push(a[o]);
+ return L;
+ }
+ function XVt(e, t, r, n) {
+ var i = {}, a;
+ if (n._splomScenes) {
+ for (a = 0; a < e.length; a++) {
+ var o = e[a];
+ o.type === "splom" && (i[o.uid] = 1);
+ }
+ for (a = 0; a < r.length; a++) {
+ var s = r[a];
+ if (!i[s.uid]) {
+ var l = n._splomScenes[s.uid];
+ l && l.destroy && l.destroy(), n._splomScenes[s.uid] = null, delete n._splomScenes[s.uid];
+ }
+ }
+ }
+ Object.keys(n._splomScenes || {}).length === 0 && delete n._splomScenes, n._splomGrid && !t._hasOnlyLargeSploms && n._hasOnlyLargeSploms && (n._splomGrid.destroy(), n._splomGrid = null, delete n._splomGrid), Sx.clean(e, t, r, n);
+ }
+ NNe.exports = { name: qNe, attr: Sx.attr, attrRegex: Sx.attrRegex, layoutAttributes: Sx.layoutAttributes, supplyLayoutDefaults: Sx.supplyLayoutDefaults, drawFramework: Sx.drawFramework, plot: GVt, drag: HVt, updateGrid: kK, clean: XVt, updateFx: Sx.updateFx, toSVG: Sx.toSVG, reglPrecompiled: BNe };
+ });
+ var HNe = ye((G_r, GNe) => {
+ var VNe = FNe();
+ VNe.basePlotModule = UNe(), GNe.exports = VNe;
+ });
+ var WNe = ye((H_r, jNe) => {
+ jNe.exports = HNe();
+ });
+ var PK = ye((j_r, XNe) => {
+ var ZVt = Tu(), CK = Rd(), LK = ec(), YVt = Cc().attributes, Bz = Ao().extendFlat, KVt = vl().templatedArray;
+ XNe.exports = { domain: YVt({ name: "parcoords", trace: true, editType: "plot" }), labelangle: { valType: "angle", dflt: 0, editType: "plot" }, labelside: { valType: "enumerated", values: ["top", "bottom"], dflt: "top", editType: "plot" }, labelfont: LK({ editType: "plot" }), tickfont: LK({ autoShadowDflt: true, editType: "plot" }), rangefont: LK({ editType: "plot" }), dimensions: KVt("dimension", { label: { valType: "string", editType: "plot" }, tickvals: Bz({}, CK.tickvals, { editType: "plot" }), ticktext: Bz({}, CK.ticktext, { editType: "plot" }), tickformat: Bz({}, CK.tickformat, { editType: "plot" }), visible: { valType: "boolean", dflt: true, editType: "plot" }, range: { valType: "info_array", items: [{ valType: "number", editType: "plot" }, { valType: "number", editType: "plot" }], editType: "plot" }, constraintrange: { valType: "info_array", freeLength: true, dimensions: "1-2", items: [{ valType: "any", editType: "plot" }, { valType: "any", editType: "plot" }], editType: "plot" }, multiselect: { valType: "boolean", dflt: true, editType: "plot" }, values: { valType: "data_array", editType: "calc" }, editType: "calc" }), line: Bz({ editType: "calc" }, ZVt("line", { colorscaleDflt: "Viridis", autoColorDflt: false, editTypeOverride: "calc" })), unselected: { line: { color: { valType: "color", dflt: "#7f7f7f", editType: "plot" }, opacity: { valType: "number", min: 0, max: 1, dflt: "auto", editType: "plot" }, editType: "plot" }, editType: "plot" } };
+ });
+ var Bk = ye((W_r, ZNe) => {
+ ZNe.exports = { maxDimensionCount: 60, overdrag: 45, verticalPadding: 2, tickDistance: 50, canvasPixelRatio: 1, blockLineCount: 5e3, layers: ["contextLineLayer", "focusLineLayer", "pickLineLayer"], axisTitleOffset: 28, axisExtentOffset: 10, bar: { width: 4, captureWidth: 10, fillColor: "magenta", fillOpacity: 1, snapDuration: 150, snapRatio: 0.25, snapClose: 0.01, strokeOpacity: 1, strokeWidth: 1, handleHeight: 8, handleOpacity: 1, handleOverlap: 0 }, cn: { axisExtentText: "axis-extent-text", parcoordsLineLayers: "parcoords-line-layers", parcoordsLineLayer: "parcoords-lines", parcoords: "parcoords", parcoordsControlView: "parcoords-control-view", yAxis: "y-axis", axisOverlays: "axis-overlays", axis: "axis", axisHeading: "axis-heading", axisTitle: "axis-title", axisExtent: "axis-extent", axisExtentTop: "axis-extent-top", axisExtentTopText: "axis-extent-top-text", axisExtentBottom: "axis-extent-bottom", axisExtentBottomText: "axis-extent-bottom-text", axisBrush: "axis-brush" }, id: { filterBarPattern: "filter-bar-pattern" } };
+ });
+ var iy = ye((X_r, KNe) => {
+ var JVt = ZS();
+ function YNe(e) {
+ return [e];
+ }
+ KNe.exports = { keyFun: function(e) {
+ return e.key;
+ }, repeat: YNe, descend: JVt, wrap: YNe, unwrap: function(e) {
+ return e[0];
+ } };
+ });
+ var DK = ye((Z_r, sUe) => {
+ var Th = Bk(), im = Oa(), $Vt = iy().keyFun, Nz = iy().repeat, A5 = Dr().sorterAsc, QVt = Dr().strTranslate, JNe = Th.bar.snapRatio;
+ function $Ne(e, t) {
+ return e * (1 - JNe) + t * JNe;
+ }
+ var QNe = Th.bar.snapClose;
+ function eGt(e, t) {
+ return e * (1 - QNe) + t * QNe;
+ }
+ function Vz(e, t, r, n) {
+ if (tGt(r, n)) return r;
+ var i = e ? -1 : 1, a = 0, o = t.length - 1;
+ if (i < 0) {
+ var s = a;
+ a = o, o = s;
+ }
+ for (var l = t[a], u = l, c = a; i * c < i * o; c += i) {
+ var f = c + i, h = t[f];
+ if (i * r < i * eGt(l, h)) return $Ne(l, u);
+ if (i * r < i * h || f === o) return $Ne(h, l);
+ u = l, l = h;
+ }
+ }
+ function tGt(e, t) {
+ for (var r = 0; r < t.length; r++) if (e >= t[r][0] && e <= t[r][1]) return true;
+ return false;
+ }
+ function rGt(e) {
+ e.attr("x", -Th.bar.captureWidth / 2).attr("width", Th.bar.captureWidth);
+ }
+ function iGt(e) {
+ e.attr("visibility", "visible").style("visibility", "visible").attr("fill", "yellow").attr("opacity", 0);
+ }
+ function nGt(e) {
+ if (!e.brush.filterSpecified) return "0," + e.height;
+ for (var t = eUe(e.brush.filter.getConsolidated(), e.height), r = [0], n, i, a, o = t.length ? t[0][0] : null, s = 0; s < t.length; s++) n = t[s], i = n[1] - n[0], r.push(o), r.push(i), a = s + 1, a < t.length && (o = t[a][0] - n[1]);
+ return r.push(e.height), r;
+ }
+ function eUe(e, t) {
+ return e.map(function(r) {
+ return r.map(function(n) {
+ return Math.max(0, n * t);
+ }).sort(A5);
+ });
+ }
+ function aGt(e, t) {
+ var r = Th.bar.handleHeight;
+ if (!(t > e[1] + r || t < e[0] - r)) return t >= 0.9 * e[1] + 0.1 * e[0] ? "n" : t <= 0.9 * e[0] + 0.1 * e[1] ? "s" : "ns";
+ }
+ function tUe() {
+ im.select(document.body).style("cursor", null);
+ }
+ function RK(e) {
+ e.attr("stroke-dasharray", nGt);
+ }
+ function Uz(e, t) {
+ var r = im.select(e).selectAll(".highlight, .highlight-shadow"), n = t ? r.transition().duration(Th.bar.snapDuration).each("end", t) : r;
+ RK(n);
+ }
+ function rUe(e, t) {
+ var r = e.brush, n = r.filterSpecified, i = NaN, a = {}, o;
+ if (n) {
+ var s = e.height, l = r.filter.getConsolidated(), u = eUe(l, s), c = NaN, f = NaN, h = NaN;
+ for (o = 0; o <= u.length; o++) {
+ var d = u[o];
+ if (d && d[0] <= t && t <= d[1]) {
+ c = o;
+ break;
+ } else if (f = o ? o - 1 : NaN, d && d[0] > t) {
+ h = o;
+ break;
+ }
+ }
+ if (i = c, isNaN(i) && (isNaN(f) || isNaN(h) ? i = isNaN(f) ? h : f : i = t - u[f][1] < u[h][0] - t ? f : h), !isNaN(i)) {
+ var v = u[i], _ = aGt(v, t);
+ _ && (a.interval = l[i], a.intervalPix = v, a.region = _);
+ }
+ }
+ if (e.ordinal && !a.region) {
+ var b = e.unitTickvals, p = e.unitToPaddedPx.invert(t);
+ for (o = 0; o < b.length; o++) {
+ var k = [b[Math.max(o - 1, 0)] * 0.25 + b[o] * 0.75, b[Math.min(o + 1, b.length - 1)] * 0.25 + b[o] * 0.75];
+ if (p >= k[0] && p <= k[1]) {
+ a.clickableOrdinalRange = k;
+ break;
+ }
+ }
+ }
+ return a;
+ }
+ function oGt(e, t) {
+ im.event.sourceEvent.stopPropagation();
+ var r = t.height - im.mouse(e)[1] - 2 * Th.verticalPadding, n = t.unitToPaddedPx.invert(r), i = t.brush, a = rUe(t, r), o = a.interval, s = i.svgBrush;
+ if (s.wasDragged = false, s.grabbingBar = a.region === "ns", s.grabbingBar) {
+ var l = o.map(t.unitToPaddedPx);
+ s.grabPoint = r - l[0] - Th.verticalPadding, s.barLength = l[1] - l[0];
+ }
+ s.clickableOrdinalRange = a.clickableOrdinalRange, s.stayingIntervals = t.multiselect && i.filterSpecified ? i.filter.getConsolidated() : [], o && (s.stayingIntervals = s.stayingIntervals.filter(function(u) {
+ return u[0] !== o[0] && u[1] !== o[1];
+ })), s.startExtent = a.region ? o[a.region === "s" ? 1 : 0] : n, t.parent.inBrushDrag = true, s.brushStartCallback();
+ }
+ function iUe(e, t) {
+ im.event.sourceEvent.stopPropagation();
+ var r = t.height - im.mouse(e)[1] - 2 * Th.verticalPadding, n = t.brush.svgBrush;
+ n.wasDragged = true, n._dragging = true, n.grabbingBar ? n.newExtent = [r - n.grabPoint, r + n.barLength - n.grabPoint].map(t.unitToPaddedPx.invert) : n.newExtent = [n.startExtent, t.unitToPaddedPx.invert(r)].sort(A5), t.brush.filterSpecified = true, n.extent = n.stayingIntervals.concat([n.newExtent]), n.brushCallback(t), Uz(e.parentNode);
+ }
+ function sGt(e, t) {
+ var r = t.brush, n = r.filter, i = r.svgBrush;
+ i._dragging || (nUe(e, t), iUe(e, t), t.brush.svgBrush.wasDragged = false), i._dragging = false;
+ var a = im.event;
+ a.sourceEvent.stopPropagation();
+ var o = i.grabbingBar;
+ if (i.grabbingBar = false, i.grabLocation = void 0, t.parent.inBrushDrag = false, tUe(), !i.wasDragged) {
+ i.wasDragged = void 0, i.clickableOrdinalRange ? r.filterSpecified && t.multiselect ? i.extent.push(i.clickableOrdinalRange) : (i.extent = [i.clickableOrdinalRange], r.filterSpecified = true) : o ? (i.extent = i.stayingIntervals, i.extent.length === 0 && IK(r)) : IK(r), i.brushCallback(t), Uz(e.parentNode), i.brushEndCallback(r.filterSpecified ? n.getConsolidated() : []);
+ return;
+ }
+ var s = function() {
+ n.set(n.getConsolidated());
+ };
+ if (t.ordinal) {
+ var l = t.unitTickvals;
+ l[l.length - 1] < l[0] && l.reverse(), i.newExtent = [Vz(0, l, i.newExtent[0], i.stayingIntervals), Vz(1, l, i.newExtent[1], i.stayingIntervals)];
+ var u = i.newExtent[1] > i.newExtent[0];
+ i.extent = i.stayingIntervals.concat(u ? [i.newExtent] : []), i.extent.length || IK(r), i.brushCallback(t), u ? Uz(e.parentNode, s) : (s(), Uz(e.parentNode));
+ } else s();
+ i.brushEndCallback(r.filterSpecified ? n.getConsolidated() : []);
+ }
+ function nUe(e, t) {
+ var r = t.height - im.mouse(e)[1] - 2 * Th.verticalPadding, n = rUe(t, r), i = "crosshair";
+ n.clickableOrdinalRange ? i = "pointer" : n.region && (i = n.region + "-resize"), im.select(document.body).style("cursor", i);
+ }
+ function lGt(e) {
+ e.on("mousemove", function(t) {
+ im.event.preventDefault(), t.parent.inBrushDrag || nUe(this, t);
+ }).on("mouseleave", function(t) {
+ t.parent.inBrushDrag || tUe();
+ }).call(im.behavior.drag().on("dragstart", function(t) {
+ oGt(this, t);
+ }).on("drag", function(t) {
+ iUe(this, t);
+ }).on("dragend", function(t) {
+ sGt(this, t);
+ }));
+ }
+ function aUe(e, t) {
+ return e[0] - t[0];
+ }
+ function uGt(e, t, r) {
+ var n = r._context.staticPlot, i = e.selectAll(".background").data(Nz);
+ i.enter().append("rect").classed("background", true).call(rGt).call(iGt).style("pointer-events", n ? "none" : "auto").attr("transform", QVt(0, Th.verticalPadding)), i.call(lGt).attr("height", function(s) {
+ return s.height - Th.verticalPadding;
+ });
+ var a = e.selectAll(".highlight-shadow").data(Nz);
+ a.enter().append("line").classed("highlight-shadow", true).attr("x", -Th.bar.width / 2).attr("stroke-width", Th.bar.width + Th.bar.strokeWidth).attr("stroke", t).attr("opacity", Th.bar.strokeOpacity).attr("stroke-linecap", "butt"), a.attr("y1", function(s) {
+ return s.height;
+ }).call(RK);
+ var o = e.selectAll(".highlight").data(Nz);
+ o.enter().append("line").classed("highlight", true).attr("x", -Th.bar.width / 2).attr("stroke-width", Th.bar.width - Th.bar.strokeWidth).attr("stroke", Th.bar.fillColor).attr("opacity", Th.bar.fillOpacity).attr("stroke-linecap", "butt"), o.attr("y1", function(s) {
+ return s.height;
+ }).call(RK);
+ }
+ function cGt(e, t, r) {
+ var n = e.selectAll("." + Th.cn.axisBrush).data(Nz, $Vt);
+ n.enter().append("g").classed(Th.cn.axisBrush, true), uGt(n, t, r);
+ }
+ function fGt(e) {
+ return e.svgBrush.extent.map(function(t) {
+ return t.slice();
+ });
+ }
+ function IK(e) {
+ e.filterSpecified = false, e.svgBrush.extent = [[-1 / 0, 1 / 0]];
+ }
+ function hGt(e) {
+ return function(r) {
+ var n = r.brush, i = fGt(n), a = i.slice();
+ n.filter.set(a), e();
+ };
+ }
+ function oUe(e) {
+ for (var t = e.slice(), r = [], n, i = t.shift(); i; ) {
+ for (n = i.slice(); (i = t.shift()) && i[0] <= n[1]; ) n[1] = Math.max(n[1], i[1]);
+ r.push(n);
+ }
+ return r.length === 1 && r[0][0] > r[0][1] && (r = []), r;
+ }
+ function dGt() {
+ var e = [], t, r;
+ return { set: function(n) {
+ e = n.map(function(i) {
+ return i.slice().sort(A5);
+ }).sort(aUe), e.length === 1 && e[0][0] === -1 / 0 && e[0][1] === 1 / 0 && (e = [[0, -1]]), t = oUe(e), r = e.reduce(function(i, a) {
+ return [Math.min(i[0], a[0]), Math.max(i[1], a[1])];
+ }, [1 / 0, -1 / 0]);
+ }, get: function() {
+ return e.slice();
+ }, getConsolidated: function() {
+ return t;
+ }, getBounds: function() {
+ return r;
+ } };
+ }
+ function vGt(e, t, r, n, i, a) {
+ var o = dGt();
+ return o.set(r), { filter: o, filterSpecified: t, svgBrush: { extent: [], brushStartCallback: n, brushCallback: hGt(i), brushEndCallback: a } };
+ }
+ function pGt(e, t) {
+ if (Array.isArray(e[0]) ? (e = e.map(function(n) {
+ return n.sort(A5);
+ }), t.multiselect ? e = oUe(e.sort(aUe)) : e = [e[0]]) : e = [e.sort(A5)], t.tickvals) {
+ var r = t.tickvals.slice().sort(A5);
+ if (e = e.map(function(n) {
+ var i = [Vz(0, r, n[0], []), Vz(1, r, n[1], [])];
+ if (i[1] > i[0]) return i;
+ }).filter(function(n) {
+ return n;
+ }), !e.length) return;
+ }
+ return e.length > 1 ? e : e[0];
+ }
+ sUe.exports = { makeBrush: vGt, ensureAxisBrush: cGt, cleanRanges: pGt };
+ });
+ var cUe = ye((Y_r, uUe) => {
+ var Mx = Dr(), gGt = pv().hasColorscale, mGt = td(), yGt = Cc().defaults, _Gt = Zd(), xGt = ho(), lUe = PK(), bGt = DK(), FK = Bk().maxDimensionCount, wGt = Iz();
+ function TGt(e, t, r, n, i) {
+ var a = i("line.color", r);
+ if (gGt(e, "line") && Mx.isArrayOrTypedArray(a)) {
+ if (a.length) return i("line.colorscale"), mGt(e, t, n, i, { prefix: "line.", cLetter: "c" }), a.length;
+ t.line.color = r;
+ }
+ return 1 / 0;
+ }
+ function AGt(e, t, r, n) {
+ function i(u, c) {
+ return Mx.coerce(e, t, lUe.dimensions, u, c);
+ }
+ var a = i("values"), o = i("visible");
+ if (a && a.length || (o = t.visible = false), o) {
+ i("label"), i("tickvals"), i("ticktext"), i("tickformat");
+ var s = i("range");
+ t._ax = { _id: "y", type: "linear", showexponent: "all", exponentformat: "B", range: s }, xGt.setConvert(t._ax, n.layout), i("multiselect");
+ var l = i("constraintrange");
+ l && (t.constraintrange = bGt.cleanRanges(l, t));
+ }
+ }
+ uUe.exports = function(t, r, n, i) {
+ function a(c, f) {
+ return Mx.coerce(t, r, lUe, c, f);
+ }
+ var o = t.dimensions;
+ Array.isArray(o) && o.length > FK && (Mx.log("parcoords traces support up to " + FK + " dimensions at the moment"), o.splice(FK));
+ var s = _Gt(t, r, { name: "dimensions", layout: i, handleItemDefaults: AGt }), l = TGt(t, r, n, i, a);
+ yGt(r, i, a), (!Array.isArray(s) || !s.length) && (r.visible = false), wGt(r, s, "values", l);
+ var u = Mx.extendFlat({}, i.font, { size: Math.round(i.font.size / 1.2) });
+ Mx.coerceFont(a, "labelfont", u), Mx.coerceFont(a, "tickfont", u, { autoShadowDflt: true }), Mx.coerceFont(a, "rangefont", u), a("labelangle"), a("labelside"), a("unselected.line.color"), a("unselected.line.opacity");
+ };
+ });
+ var hUe = ye((K_r, fUe) => {
+ var SGt = Dr().isArrayOrTypedArray, zK = tc(), MGt = iy().wrap;
+ fUe.exports = function(t, r) {
+ var n, i;
+ return zK.hasColorscale(r, "line") && SGt(r.line.color) ? (n = r.line.color, i = zK.extractOpts(r.line).colorscale, zK.calc(t, r, { vals: n, containerStr: "line", cLetter: "c" })) : (n = EGt(r._length), i = [[0, r.line.color], [1, r.line.color]]), MGt({ lineColor: n, cscale: i });
+ };
+ function EGt(e) {
+ for (var t = new Array(e), r = 0; r < e; r++) t[r] = 0.5;
+ return t;
+ }
+ });
+ function kGt(e) {
+ var c, f;
+ var t, r = [], n = 1, i;
+ if (typeof e == "number") return { space: "rgb", values: [e >>> 16, (e & 65280) >>> 8, e & 255], alpha: 1 };
+ if (typeof e == "number") return { space: "rgb", values: [e >>> 16, (e & 65280) >>> 8, e & 255], alpha: 1 };
+ if (e = String(e).toLowerCase(), OK.default[e]) r = OK.default[e].slice(), i = "rgb";
+ else if (e === "transparent") n = 0, i = "rgb", r = [0, 0, 0];
+ else if (e[0] === "#") {
+ var a = e.slice(1), o = a.length, s = o <= 4;
+ n = 1, s ? (r = [parseInt(a[0] + a[0], 16), parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16)], o === 4 && (n = parseInt(a[3] + a[3], 16) / 255)) : (r = [parseInt(a[0] + a[1], 16), parseInt(a[2] + a[3], 16), parseInt(a[4] + a[5], 16)], o === 8 && (n = parseInt(a[6] + a[7], 16) / 255)), r[0] || (r[0] = 0), r[1] || (r[1] = 0), r[2] || (r[2] = 0), i = "rgb";
+ } else if (t = /^((?:rgba?|hs[lvb]a?|hwba?|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms|oklch|oklab|color))\s*\(([^\)]*)\)/.exec(e)) {
+ var l = t[1];
+ i = l.replace(/a$/, "");
+ var u = i === "cmyk" ? 4 : i === "gray" ? 1 : 3;
+ r = t[2].trim().split(/\s*[,\/]\s*|\s+/), i === "color" && (i = r.shift()), r = r.map(function(h, d) {
+ if (h[h.length - 1] === "%") return h = parseFloat(h) / 100, d === 3 ? h : i === "rgb" ? h * 255 : i[0] === "h" || i[0] === "l" && !d ? h * 100 : i === "lab" ? h * 125 : i === "lch" ? d < 2 ? h * 150 : h * 360 : i[0] === "o" && !d ? h : i === "oklab" ? h * 0.4 : i === "oklch" ? d < 2 ? h * 0.4 : h * 360 : h;
+ if (i[d] === "h" || d === 2 && i[i.length - 1] === "h") {
+ if (dUe[h] !== void 0) return dUe[h];
+ if (h.endsWith("deg")) return parseFloat(h);
+ if (h.endsWith("turn")) return parseFloat(h) * 360;
+ if (h.endsWith("grad")) return parseFloat(h) * 360 / 400;
+ if (h.endsWith("rad")) return parseFloat(h) * 180 / Math.PI;
+ }
+ return h === "none" ? 0 : parseFloat(h);
+ }), n = r.length > u ? r.pop() : 1;
+ } else /[0-9](?:\s|\/|,)/.test(e) && (r = e.match(/([0-9]+)/g).map(function(h) {
+ return parseFloat(h);
+ }), i = ((f = (c = e.match(/([a-z])/ig)) == null ? void 0 : c.join("")) == null ? void 0 : f.toLowerCase()) || "rgb");
+ return { space: i, values: r, alpha: n };
+ }
+ var OK, vUe, dUe, pUe = gu(() => {
+ OK = Att(TX()), vUe = kGt, dUe = { red: 0, orange: 60, yellow: 120, green: 180, blue: 240, purple: 300 };
+ });
+ var Nk, qK = gu(() => {
+ Nk = { name: "rgb", min: [0, 0, 0], max: [255, 255, 255], channel: ["red", "green", "blue"], alias: ["RGB"] };
+ });
+ var Gz, gUe = gu(() => {
+ qK();
+ Gz = { name: "hsl", min: [0, 0, 0], max: [360, 100, 100], channel: ["hue", "saturation", "lightness"], alias: ["HSL"], rgb: function(e) {
+ var t = e[0] / 360, r = e[1] / 100, n = e[2] / 100, i, a, o, s, l, u = 0;
+ if (r === 0) return l = n * 255, [l, l, l];
+ for (a = n < 0.5 ? n * (1 + r) : n + r - n * r, i = 2 * n - a, s = [0, 0, 0]; u < 3; ) o = t + 1 / 3 * -(u - 1), o < 0 ? o++ : o > 1 && o--, l = 6 * o < 1 ? i + (a - i) * 6 * o : 2 * o < 1 ? a : 3 * o < 2 ? i + (a - i) * (2 / 3 - o) * 6 : i, s[u++] = l * 255;
+ return s;
+ } };
+ Nk.hsl = function(e) {
+ var t = e[0] / 255, r = e[1] / 255, n = e[2] / 255, i = Math.min(t, r, n), a = Math.max(t, r, n), o = a - i, s, l, u;
+ return a === i ? s = 0 : t === a ? s = (r - n) / o : r === a ? s = 2 + (n - t) / o : n === a && (s = 4 + (t - r) / o), s = Math.min(s * 60, 360), s < 0 && (s += 360), u = (i + a) / 2, a === i ? l = 0 : u <= 0.5 ? l = o / (a + i) : l = o / (2 - a - i), [s, l * 100, u * 100];
+ };
+ });
+ var yUe = {};
+ mee(yUe, { default: () => mUe });
+ function mUe(e) {
+ Array.isArray(e) && e.raw && (e = String.raw(...arguments)), e instanceof Number && (e = +e);
+ var t, i = vUe(e);
+ if (!i.space) return [];
+ let a = i.space[0] === "h" ? Gz.min : Nk.min, o = i.space[0] === "h" ? Gz.max : Nk.max;
+ return t = Array(3), t[0] = Math.min(Math.max(i.values[0], a[0]), o[0]), t[1] = Math.min(Math.max(i.values[1], a[1]), o[1]), t[2] = Math.min(Math.max(i.values[2], a[2]), o[2]), i.space[0] === "h" && (t = Gz.rgb(t)), t.push(Math.min(Math.max(i.alpha, 0), 1)), t;
+ }
+ var _Ue = gu(() => {
+ pUe();
+ qK();
+ gUe();
+ });
+ var BK = ye((Hz) => {
+ var CGt = Dr().isTypedArray;
+ Hz.convertTypedArray = function(e) {
+ return CGt(e) ? Array.prototype.slice.call(e) : e;
+ };
+ Hz.isOrdinal = function(e) {
+ return !!e.tickvals;
+ };
+ Hz.isVisible = function(e) {
+ return e.visible || !("visible" in e);
+ };
+ });
+ var CUe = ye((axr, kUe) => {
+ var LGt = ["precision highp float;", "", "varying vec4 fragColor;", "", "attribute vec4 p01_04, p05_08, p09_12, p13_16,", " p17_20, p21_24, p25_28, p29_32,", " p33_36, p37_40, p41_44, p45_48,", " p49_52, p53_56, p57_60, colors;", "", "uniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,", " loA, hiA, loB, hiB, loC, hiC, loD, hiD;", "", "uniform vec2 resolution, viewBoxPos, viewBoxSize;", "uniform float maskHeight;", "uniform float drwLayer; // 0: context, 1: focus, 2: pick", "uniform vec4 contextColor;", "uniform sampler2D maskTexture, palette;", "", "bool isPick = (drwLayer > 1.5);", "bool isContext = (drwLayer < 0.5);", "", "const vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);", "const vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);", "", "float val(mat4 p, mat4 v) {", " return dot(matrixCompMult(p, v) * UNITS, UNITS);", "}", "", "float axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {", " float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);", " float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);", " return y1 * (1.0 - ratio) + y2 * ratio;", "}", "", "int iMod(int a, int b) {", " return a - b * (a / b);", "}", "", "bool fOutside(float p, float lo, float hi) {", " return (lo < hi) && (lo > p || p > hi);", "}", "", "bool vOutside(vec4 p, vec4 lo, vec4 hi) {", " return (", " fOutside(p[0], lo[0], hi[0]) ||", " fOutside(p[1], lo[1], hi[1]) ||", " fOutside(p[2], lo[2], hi[2]) ||", " fOutside(p[3], lo[3], hi[3])", " );", "}", "", "bool mOutside(mat4 p, mat4 lo, mat4 hi) {", " return (", " vOutside(p[0], lo[0], hi[0]) ||", " vOutside(p[1], lo[1], hi[1]) ||", " vOutside(p[2], lo[2], hi[2]) ||", " vOutside(p[3], lo[3], hi[3])", " );", "}", "", "bool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {", " return mOutside(A, loA, hiA) ||", " mOutside(B, loB, hiB) ||", " mOutside(C, loC, hiC) ||", " mOutside(D, loD, hiD);", "}", "", "bool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {", " mat4 pnts[4];", " pnts[0] = A;", " pnts[1] = B;", " pnts[2] = C;", " pnts[3] = D;", "", " for(int i = 0; i < 4; ++i) {", " for(int j = 0; j < 4; ++j) {", " for(int k = 0; k < 4; ++k) {", " if(0 == iMod(", " int(255.0 * texture2D(maskTexture,", " vec2(", " (float(i * 2 + j / 2) + 0.5) / 8.0,", " (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight", " ))[3]", " ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),", " 2", " )) return true;", " }", " }", " }", " return false;", "}", "", "vec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {", " float x = 0.5 * sign(v) + 0.5;", " float y = axisY(x, A, B, C, D);", " float z = 1.0 - abs(v);", "", " z += isContext ? 0.0 : 2.0 * float(", " outsideBoundingBox(A, B, C, D) ||", " outsideRasterMask(A, B, C, D)", " );", "", " return vec4(", " 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,", " z,", " 1.0", " );", "}", "", "void main() {", " mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);", " mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);", " mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);", " mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);", "", " float v = colors[3];", "", " gl_Position = position(isContext, v, A, B, C, D);", "", " fragColor =", " isContext ? vec4(contextColor) :", " isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));", "}"].join(`
+`), PGt = ["precision highp float;", "", "varying vec4 fragColor;", "", "void main() {", " gl_FragColor = fragColor;", "}"].join(`
+`), Uk = Bk().maxDimensionCount, SUe = Dr(), xUe = 1e-6, jz = 2048, IGt = new Uint8Array(4), bUe = new Uint8Array(4), wUe = { shape: [256, 1], format: "rgba", type: "uint8", mag: "nearest", min: "nearest" };
+ function RGt(e) {
+ e.read({ x: 0, y: 0, width: 1, height: 1, data: IGt });
+ }
+ function MUe(e, t, r, n, i) {
+ var a = e._gl;
+ a.enable(a.SCISSOR_TEST), a.scissor(t, r, n, i), e.clear({ color: [0, 0, 0, 0], depth: 1 });
+ }
+ function DGt(e, t, r, n, i, a) {
+ var o = a.key;
+ function s(l) {
+ var u = Math.min(n, i - l * n);
+ l === 0 && (window.cancelAnimationFrame(r.currentRafs[o]), delete r.currentRafs[o], MUe(e, a.scissorX, a.scissorY, a.scissorWidth, a.viewBoxSize[1])), !r.clearOnly && (a.count = 2 * u, a.offset = 2 * l * n, t(a), l * n + u < i && (r.currentRafs[o] = window.requestAnimationFrame(function() {
+ s(l + 1);
+ })), r.drawCompleted = false);
+ }
+ r.drawCompleted || (RGt(e), r.drawCompleted = true), s(0);
+ }
+ function FGt(e) {
+ return Math.max(xUe, Math.min(1 - xUe, e));
+ }
+ function zGt(e, t) {
+ for (var r = new Array(256), n = 0; n < 256; n++) r[n] = e(n / 255).concat(t);
+ return r;
+ }
+ function NK(e, t) {
+ return (e >>> 8 * t) % 256 / 255;
+ }
+ function OGt(e, t, r) {
+ for (var n = new Array(e * (Uk + 4)), i = 0, a = 0; a < e; a++) {
+ for (var o = 0; o < Uk; o++) n[i++] = o < t.length ? t[o].paddedUnitValues[a] : 0.5;
+ n[i++] = NK(a, 2), n[i++] = NK(a, 1), n[i++] = NK(a, 0), n[i++] = FGt(r[a]);
+ }
+ return n;
+ }
+ function qGt(e, t, r) {
+ for (var n = new Array(t * 8), i = 0, a = 0; a < t; a++) for (var o = 0; o < 2; o++) for (var s = 0; s < 4; s++) {
+ var l = e * 4 + s, u = r[a * 64 + l];
+ l === 63 && o === 0 && (u *= -1), n[i++] = u;
+ }
+ return n;
+ }
+ function TUe(e) {
+ var t = "0" + e;
+ return t.slice(-2);
+ }
+ function EUe(e) {
+ return e < Uk ? "p" + TUe(e + 1) + "_" + TUe(e + 4) : "colors";
+ }
+ function BGt(e, t, r) {
+ for (var n = 0; n <= Uk; n += 4) e[EUe(n)](qGt(n / 4, t, r));
+ }
+ function NGt(e) {
+ for (var t = {}, r = 0; r <= Uk; r += 4) t[EUe(r)] = e.buffer({ usage: "dynamic", type: "float", data: new Uint8Array(0) });
+ return t;
+ }
+ function UGt(e, t, r, n, i, a, o, s, l, u, c, f, h, d) {
+ for (var v = [[], []], _ = 0; _ < 64; _++) v[0][_] = _ === i ? 1 : 0, v[1][_] = _ === a ? 1 : 0;
+ o *= d, s *= d, l *= d, u *= d;
+ var b = e.lines.canvasOverdrag * d, p = e.domain, k = e.canvasWidth * d, E = e.canvasHeight * d, T = e.pad.l * d, L = e.pad.b * d, x = e.layoutHeight * d, C = e.layoutWidth * d, M = e.deselectedLines.color, g = e.deselectedLines.opacity, P = SUe.extendFlat({ key: c, resolution: [k, E], viewBoxPos: [o + b, s], viewBoxSize: [l, u], i0: i, i1: a, dim0A: v[0].slice(0, 16), dim0B: v[0].slice(16, 32), dim0C: v[0].slice(32, 48), dim0D: v[0].slice(48, 64), dim1A: v[1].slice(0, 16), dim1B: v[1].slice(16, 32), dim1C: v[1].slice(32, 48), dim1D: v[1].slice(48, 64), drwLayer: f, contextColor: [M[0] / 255, M[1] / 255, M[2] / 255, g !== "auto" ? M[3] * g : Math.max(1 / 255, Math.pow(1 / e.lines.color.length, 1 / 3))], scissorX: (n === t ? 0 : o + b) + (T - b) + C * p.x[0], scissorWidth: (n === r ? k - o + b : l + 0.5) + (n === t ? o + b : 0), scissorY: s + L + x * p.y[0], scissorHeight: u, viewportX: T - b + C * p.x[0], viewportY: L + x * p.y[0], viewportWidth: k, viewportHeight: E }, h);
+ return P;
+ }
+ function AUe(e) {
+ var t = jz - 1, r = Math.max(0, Math.floor(e[0] * t), 0), n = Math.min(t, Math.ceil(e[1] * t), t);
+ return [Math.min(r, n), Math.max(r, n)];
+ }
+ kUe.exports = function(e, t) {
+ var r = t.context, n = t.pick, i = t.regl, a = i._gl, o = a.getParameter(a.ALIASED_LINE_WIDTH_RANGE), s = Math.max(o[0], Math.min(o[1], t.viewModel.plotGlPixelRatio)), l = { currentRafs: {}, drawCompleted: true, clearOnly: false }, u, c, f, h, d = NGt(i), v, _ = i.texture(wUe), b = [];
+ k(t);
+ var p = i({ profile: false, blend: { enable: r, func: { srcRGB: "src alpha", dstRGB: "one minus src alpha", srcAlpha: 1, dstAlpha: 1 }, equation: { rgb: "add", alpha: "add" }, color: [0, 0, 0, 0] }, depth: { enable: !r, mask: true, func: "less", range: [0, 1] }, cull: { enable: true, face: "back" }, scissor: { enable: true, box: { x: i.prop("scissorX"), y: i.prop("scissorY"), width: i.prop("scissorWidth"), height: i.prop("scissorHeight") } }, viewport: { x: i.prop("viewportX"), y: i.prop("viewportY"), width: i.prop("viewportWidth"), height: i.prop("viewportHeight") }, dither: false, vert: LGt, frag: PGt, primitive: "lines", lineWidth: s, attributes: d, uniforms: { resolution: i.prop("resolution"), viewBoxPos: i.prop("viewBoxPos"), viewBoxSize: i.prop("viewBoxSize"), dim0A: i.prop("dim0A"), dim1A: i.prop("dim1A"), dim0B: i.prop("dim0B"), dim1B: i.prop("dim1B"), dim0C: i.prop("dim0C"), dim1C: i.prop("dim1C"), dim0D: i.prop("dim0D"), dim1D: i.prop("dim1D"), loA: i.prop("loA"), hiA: i.prop("hiA"), loB: i.prop("loB"), hiB: i.prop("hiB"), loC: i.prop("loC"), hiC: i.prop("hiC"), loD: i.prop("loD"), hiD: i.prop("hiD"), palette: _, contextColor: i.prop("contextColor"), maskTexture: i.prop("maskTexture"), drwLayer: i.prop("drwLayer"), maskHeight: i.prop("maskHeight") }, offset: i.prop("offset"), count: i.prop("count") });
+ function k(M) {
+ u = M.model, c = M.viewModel, f = c.dimensions.slice(), h = f[0] ? f[0].values.length : 0;
+ var g = u.lines, P = n ? g.color.map(function(z, O) {
+ return O / g.color.length;
+ }) : g.color, A = OGt(h, f, P);
+ BGt(d, h, A), !r && !n && (_ = i.texture(SUe.extendFlat({ data: zGt(u.unitToColor, 255) }, wUe)));
+ }
+ function E(M) {
+ var g, P, A, z = [[], []];
+ for (A = 0; A < 64; A++) {
+ var O = !M && A < f.length ? f[A].brush.filter.getBounds() : [-1 / 0, 1 / 0];
+ z[0][A] = O[0], z[1][A] = O[1];
+ }
+ var U = jz * 8, G = new Array(U);
+ for (g = 0; g < U; g++) G[g] = 255;
+ if (!M) for (g = 0; g < f.length; g++) {
+ var Z = g % 8, j = (g - Z) / 8, N = Math.pow(2, Z), H = f[g], re = H.brush.filter.get();
+ if (!(re.length < 2)) {
+ var oe = AUe(re[0])[1];
+ for (P = 1; P < re.length; P++) {
+ var _e = AUe(re[P]);
+ for (A = oe + 1; A < _e[0]; A++) G[A * 8 + j] &= ~N;
+ oe = Math.max(oe, _e[1]);
+ }
+ }
+ }
+ var Ce = { shape: [8, jz], format: "alpha", type: "uint8", mag: "nearest", min: "nearest", data: G };
+ return v ? v(Ce) : v = i.texture(Ce), { maskTexture: v, maskHeight: jz, loA: z[0].slice(0, 16), loB: z[0].slice(16, 32), loC: z[0].slice(32, 48), loD: z[0].slice(48, 64), hiA: z[1].slice(0, 16), hiB: z[1].slice(16, 32), hiC: z[1].slice(32, 48), hiD: z[1].slice(48, 64) };
+ }
+ function T(M, g, P) {
+ var A = M.length, z, O, U, G = 1 / 0, Z = -1 / 0;
+ for (z = 0; z < A; z++) M[z].dim0.canvasX < G && (G = M[z].dim0.canvasX, O = z), M[z].dim1.canvasX > Z && (Z = M[z].dim1.canvasX, U = z);
+ A === 0 && MUe(i, 0, 0, u.canvasWidth, u.canvasHeight);
+ var j = E(r);
+ for (z = 0; z < A; z++) {
+ var N = M[z], H = N.dim0.crossfilterDimensionIndex, re = N.dim1.crossfilterDimensionIndex, oe = N.canvasX, _e = N.canvasY, Ce = oe + N.panelSizeX, Le = N.plotGlPixelRatio;
+ if (g || !b[H] || b[H][0] !== oe || b[H][1] !== Ce) {
+ b[H] = [oe, Ce];
+ var ge = UGt(u, O, U, z, H, re, oe, _e, N.panelSizeX, N.panelSizeY, N.dim0.crossfilterDimensionIndex, r ? 0 : n ? 2 : 1, j, Le);
+ l.clearOnly = P;
+ var ie = g ? u.lines.blockLineCount : h;
+ DGt(i, p, l, ie, h, ge);
+ }
+ }
+ }
+ function L(M, g) {
+ return i.read({ x: M, y: g, width: 1, height: 1, data: bUe }), bUe;
+ }
+ function x(M, g, P, A) {
+ var z = new Uint8Array(4 * P * A);
+ return i.read({ x: M, y: g, width: P, height: A, data: z }), z;
+ }
+ function C() {
+ e.style["pointer-events"] = "none", _.destroy(), v && v.destroy();
+ for (var M in d) d[M].destroy();
+ }
+ return { render: T, readPixel: L, readPixels: x, destroy: C, update: k };
+ };
+ });
+ var GUe = ye((oxr, VUe) => {
+ var qd = Oa(), p1 = Dr(), UK = p1.isArrayOrTypedArray, FUe = p1.numberFormat, zUe = (_Ue(), pb(yUe)).default, OUe = ho(), VGt = p1.strRotate, ny = p1.strTranslate, GGt = Zl(), Wz = So(), LUe = tc(), HK = iy(), ig = HK.keyFun, ay = HK.repeat, qUe = HK.unwrap, S5 = BK(), Dl = Bk(), BUe = DK(), HGt = CUe();
+ function PUe(e, t, r) {
+ return p1.aggNums(e, null, t, r);
+ }
+ function NUe(e, t) {
+ return jK(PUe(Math.min, e, t), PUe(Math.max, e, t));
+ }
+ function Xz(e) {
+ var t = e.range;
+ return t ? jK(t[0], t[1]) : NUe(e.values, e._length);
+ }
+ function jK(e, t) {
+ return (isNaN(e) || !isFinite(e)) && (e = 0), (isNaN(t) || !isFinite(t)) && (t = 0), e === t && (e === 0 ? (e -= 1, t += 1) : (e *= 0.9, t *= 1.1)), [e, t];
+ }
+ function jGt(e, t) {
+ return t ? function(r, n) {
+ var i = t[n];
+ return i == null ? e(r) : i;
+ } : e;
+ }
+ function WGt(e, t, r, n, i) {
+ var a = Xz(r);
+ return n ? qd.scale.ordinal().domain(n.map(jGt(FUe(r.tickformat), i))).range(n.map(function(o) {
+ var s = (o - a[0]) / (a[1] - a[0]);
+ return e - t + s * (2 * t - e);
+ })) : qd.scale.linear().domain(a).range([e - t, t]);
+ }
+ function XGt(e, t) {
+ return qd.scale.linear().range([t, e - t]);
+ }
+ function ZGt(e, t) {
+ return qd.scale.linear().domain(Xz(e)).range([t, 1 - t]);
+ }
+ function YGt(e) {
+ if (e.tickvals) {
+ var t = Xz(e);
+ return qd.scale.ordinal().domain(e.tickvals).range(e.tickvals.map(function(r) {
+ return (r - t[0]) / (t[1] - t[0]);
+ }));
+ }
+ }
+ function KGt(e) {
+ var t = e.map(function(a) {
+ return a[0];
+ }), r = e.map(function(a) {
+ var o = zUe(a[1]);
+ return qd.rgb("rgb(" + o[0] + "," + o[1] + "," + o[2] + ")");
+ }), n = function(a) {
+ return function(o) {
+ return o[a];
+ };
+ }, i = "rgb".split("").map(function(a) {
+ return qd.scale.linear().clamp(true).domain(t).range(r.map(n(a)));
+ });
+ return function(a) {
+ return i.map(function(o) {
+ return o(a);
+ });
+ };
+ }
+ function GK(e) {
+ return e.dimensions.some(function(t) {
+ return t.brush.filterSpecified;
+ });
+ }
+ function JGt(e, t, r) {
+ var n = qUe(t), i = n.trace, a = S5.convertTypedArray(n.lineColor), o = i.line, s = { color: zUe(i.unselected.line.color), opacity: i.unselected.line.opacity }, l = LUe.extractOpts(o), u = l.reversescale ? LUe.flipScale(n.cscale) : n.cscale, c = i.domain, f = i.dimensions, h = e.width, d = i.labelangle, v = i.labelside, _ = i.labelfont, b = i.tickfont, p = i.rangefont, k = p1.extendDeepNoArrays({}, o, { color: a.map(qd.scale.linear().domain(Xz({ values: a, range: [l.min, l.max], _length: i._length }))), blockLineCount: Dl.blockLineCount, canvasOverdrag: Dl.overdrag * Dl.canvasPixelRatio }), E = Math.floor(h * (c.x[1] - c.x[0])), T = Math.floor(e.height * (c.y[1] - c.y[0])), L = e.margin || { l: 80, r: 80, t: 100, b: 80 }, x = E, C = T;
+ return { key: r, colCount: f.filter(S5.isVisible).length, dimensions: f, tickDistance: Dl.tickDistance, unitToColor: KGt(u), lines: k, deselectedLines: s, labelAngle: d, labelSide: v, labelFont: _, tickFont: b, rangeFont: p, layoutWidth: h, layoutHeight: e.height, domain: c, translateX: c.x[0] * h, translateY: e.height - c.y[1] * e.height, pad: L, canvasWidth: x * Dl.canvasPixelRatio + 2 * k.canvasOverdrag, canvasHeight: C * Dl.canvasPixelRatio, width: x, height: C, canvasPixelRatio: Dl.canvasPixelRatio };
+ }
+ function $Gt(e, t, r) {
+ var n = r.width, i = r.height, a = r.dimensions, o = r.canvasPixelRatio, s = function(h) {
+ return n * h / Math.max(1, r.colCount - 1);
+ }, l = Dl.verticalPadding / i, u = XGt(i, Dl.verticalPadding), c = { key: r.key, xScale: s, model: r, inBrushDrag: false }, f = {};
+ return c.dimensions = a.filter(S5.isVisible).map(function(h, d) {
+ var v = ZGt(h, l), _ = f[h.label];
+ f[h.label] = (_ || 0) + 1;
+ var b = h.label + (_ ? "__" + _ : ""), p = h.constraintrange, k = p && p.length;
+ k && !UK(p[0]) && (p = [p]);
+ var E = k ? p.map(function(O) {
+ return O.map(v);
+ }) : [[-1 / 0, 1 / 0]], T = function() {
+ var O = c;
+ O.focusLayer && O.focusLayer.render(O.panels, true);
+ var U = GK(O);
+ !e.contextShown() && U ? (O.contextLayer && O.contextLayer.render(O.panels, true), e.contextShown(true)) : e.contextShown() && !U && (O.contextLayer && O.contextLayer.render(O.panels, true, true), e.contextShown(false));
+ }, L = h.values;
+ L.length > h._length && (L = L.slice(0, h._length));
+ var x = h.tickvals, C;
+ function M(O, U) {
+ return { val: O, text: C[U] };
+ }
+ function g(O, U) {
+ return O.val - U.val;
+ }
+ if (UK(x) && x.length) {
+ p1.isTypedArray(x) && (x = Array.from(x)), C = h.ticktext, !UK(C) || !C.length ? C = x.map(FUe(h.tickformat)) : C.length > x.length ? C = C.slice(0, x.length) : x.length > C.length && (x = x.slice(0, C.length));
+ for (var P = 1; P < x.length; P++) if (x[P] < x[P - 1]) {
+ for (var A = x.map(M).sort(g), z = 0; z < x.length; z++) x[z] = A[z].val, C[z] = A[z].text;
+ break;
+ }
+ } else x = void 0;
+ return L = S5.convertTypedArray(L), { key: b, label: h.label, tickFormat: h.tickformat, tickvals: x, ticktext: C, ordinal: S5.isOrdinal(h), multiselect: h.multiselect, xIndex: d, crossfilterDimensionIndex: d, visibleIndex: h._index, height: i, values: L, paddedUnitValues: L.map(v), unitTickvals: x && x.map(v), xScale: s, x: s(d), canvasX: s(d) * o, unitToPaddedPx: u, domainScale: WGt(i, Dl.verticalPadding, h, x, C), ordinalScale: YGt(h), parent: c, model: r, brush: BUe.makeBrush(e, k, E, function() {
+ e.linePickActive(false);
+ }, T, function(O) {
+ if (c.focusLayer.render(c.panels, true), c.pickLayer && c.pickLayer.render(c.panels, true), e.linePickActive(true), t && t.filterChanged) {
+ var U = v.invert, G = O.map(function(Z) {
+ return Z.map(U).sort(p1.sorterAsc);
+ }).sort(function(Z, j) {
+ return Z[0] - j[0];
+ });
+ t.filterChanged(c.key, h._index, G);
+ }
+ }) };
+ }), c;
+ }
+ function IUe(e) {
+ e.classed(Dl.cn.axisExtentText, true).attr("text-anchor", "middle").style("cursor", "default");
+ }
+ function QGt() {
+ var e = true, t = false;
+ return { linePickActive: function(r) {
+ return arguments.length ? e = !!r : e;
+ }, contextShown: function(r) {
+ return arguments.length ? t = !!r : t;
+ } };
+ }
+ function RUe(e, t) {
+ var r = t === "top" ? 1 : -1, n = e * Math.PI / 180, i = Math.sin(n), a = Math.cos(n);
+ return { dir: r, dx: i, dy: a, degrees: e };
+ }
+ function VK(e, t, r) {
+ for (var n = t.panels || (t.panels = []), i = e.data(), a = 0; a < i.length - 1; a++) {
+ var o = n[a] || (n[a] = {}), s = i[a], l = i[a + 1];
+ o.dim0 = s, o.dim1 = l, o.canvasX = s.canvasX, o.panelSizeX = l.canvasX - s.canvasX, o.panelSizeY = t.model.canvasHeight, o.y = 0, o.canvasY = 0, o.plotGlPixelRatio = r;
+ }
+ }
+ function eHt(e) {
+ for (var t = 0; t < e.length; t++) for (var r = 0; r < e[t].length; r++) for (var n = e[t][r].trace, i = n.dimensions, a = 0; a < i.length; a++) {
+ var o = i[a].values, s = i[a]._ax;
+ s && (s.range ? s.range = jK(s.range[0], s.range[1]) : s.range = NUe(o, n._length), s.dtick || (s.dtick = 0.01 * (Math.abs(s.range[1] - s.range[0]) || 1)), s.tickformat = i[a].tickformat, OUe.calcTicks(s), s.cleanRange());
+ }
+ }
+ function UUe(e, t) {
+ return OUe.tickText(e._ax, t, false).text;
+ }
+ function DUe(e, t) {
+ if (e.ordinal) return "";
+ var r = e.domainScale.domain(), n = r[t ? r.length - 1 : 0];
+ return UUe(e.model.dimensions[e.visibleIndex], n);
+ }
+ VUe.exports = function(t, r, n, i) {
+ var a = t._context.staticPlot, o = t._fullLayout, s = o._toppaper, l = o._glcontainer, u = t._context.plotGlPixelRatio, c = t._fullLayout.paper_bgcolor;
+ eHt(r);
+ var f = QGt(), h = r.filter(function(z) {
+ return qUe(z).trace.visible;
+ }).map(JGt.bind(0, n)).map($Gt.bind(0, f, i));
+ l.each(function(z, O) {
+ return p1.extendFlat(z, h[O]);
+ });
+ var d = l.selectAll(".gl-canvas").each(function(z) {
+ z.viewModel = h[0], z.viewModel.plotGlPixelRatio = u, z.viewModel.paperColor = c, z.model = z.viewModel ? z.viewModel.model : null;
+ }), v = null, _ = d.filter(function(z) {
+ return z.pick;
+ });
+ _.style("pointer-events", a ? "none" : "auto").on("mousemove", function(z) {
+ if (f.linePickActive() && z.lineLayer && i && i.hover) {
+ var O = qd.event, U = this.width, G = this.height, Z = qd.mouse(this), j = Z[0], N = Z[1];
+ if (j < 0 || N < 0 || j >= U || N >= G) return;
+ var H = z.lineLayer.readPixel(j, G - 1 - N), re = H[3] !== 0, oe = re ? H[2] + 256 * (H[1] + 256 * H[0]) : null, _e = { x: j, y: N, clientX: O.clientX, clientY: O.clientY, dataIndex: z.model.key, curveNumber: oe };
+ oe !== v && (re ? i.hover(_e) : i.unhover && i.unhover(_e), v = oe);
+ }
+ }), d.style("opacity", function(z) {
+ return z.pick ? 0 : 1;
+ }), s.style("background", "rgba(255, 255, 255, 0)");
+ var b = s.selectAll("." + Dl.cn.parcoords).data(h, ig);
+ b.exit().remove(), b.enter().append("g").classed(Dl.cn.parcoords, true).style("shape-rendering", "crispEdges").style("pointer-events", "none"), b.attr("transform", function(z) {
+ return ny(z.model.translateX, z.model.translateY);
+ });
+ var p = b.selectAll("." + Dl.cn.parcoordsControlView).data(ay, ig);
+ p.enter().append("g").classed(Dl.cn.parcoordsControlView, true), p.attr("transform", function(z) {
+ return ny(z.model.pad.l, z.model.pad.t);
+ });
+ var k = p.selectAll("." + Dl.cn.yAxis).data(function(z) {
+ return z.dimensions;
+ }, ig);
+ k.enter().append("g").classed(Dl.cn.yAxis, true), p.each(function(z) {
+ VK(k, z, u);
+ }), d.each(function(z) {
+ if (z.viewModel) {
+ !z.lineLayer || i ? z.lineLayer = HGt(this, z) : z.lineLayer.update(z), (z.key || z.key === 0) && (z.viewModel[z.key] = z.lineLayer);
+ var O = !z.context || i;
+ z.lineLayer.render(z.viewModel.panels, O);
+ }
+ }), k.attr("transform", function(z) {
+ return ny(z.xScale(z.xIndex), 0);
+ }), k.call(qd.behavior.drag().origin(function(z) {
+ return z;
+ }).on("drag", function(z) {
+ var O = z.parent;
+ f.linePickActive(false), z.x = Math.max(-Dl.overdrag, Math.min(z.model.width + Dl.overdrag, qd.event.x)), z.canvasX = z.x * z.model.canvasPixelRatio, k.sort(function(U, G) {
+ return U.x - G.x;
+ }).each(function(U, G) {
+ U.xIndex = G, U.x = z === U ? U.x : U.xScale(U.xIndex), U.canvasX = U.x * U.model.canvasPixelRatio;
+ }), VK(k, O, u), k.filter(function(U) {
+ return Math.abs(z.xIndex - U.xIndex) !== 0;
+ }).attr("transform", function(U) {
+ return ny(U.xScale(U.xIndex), 0);
+ }), qd.select(this).attr("transform", ny(z.x, 0)), k.each(function(U, G, Z) {
+ Z === z.parent.key && (O.dimensions[G] = U);
+ }), O.contextLayer && O.contextLayer.render(O.panels, false, !GK(O)), O.focusLayer.render && O.focusLayer.render(O.panels);
+ }).on("dragend", function(z) {
+ var O = z.parent;
+ z.x = z.xScale(z.xIndex), z.canvasX = z.x * z.model.canvasPixelRatio, VK(k, O, u), qd.select(this).attr("transform", function(U) {
+ return ny(U.x, 0);
+ }), O.contextLayer && O.contextLayer.render(O.panels, false, !GK(O)), O.focusLayer && O.focusLayer.render(O.panels), O.pickLayer && O.pickLayer.render(O.panels, true), f.linePickActive(true), i && i.axesMoved && i.axesMoved(O.key, O.dimensions.map(function(U) {
+ return U.crossfilterDimensionIndex;
+ }));
+ })), k.exit().remove();
+ var E = k.selectAll("." + Dl.cn.axisOverlays).data(ay, ig);
+ E.enter().append("g").classed(Dl.cn.axisOverlays, true), E.selectAll("." + Dl.cn.axis).remove();
+ var T = E.selectAll("." + Dl.cn.axis).data(ay, ig);
+ T.enter().append("g").classed(Dl.cn.axis, true), T.each(function(z) {
+ var O = z.model.height / z.model.tickDistance, U = z.domainScale, G = U.domain();
+ qd.select(this).call(qd.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(O, z.tickFormat).tickValues(z.ordinal ? G : null).tickFormat(function(Z) {
+ return S5.isOrdinal(z) ? Z : UUe(z.model.dimensions[z.visibleIndex], Z);
+ }).scale(U)), Wz.font(T.selectAll("text"), z.model.tickFont);
+ }), T.selectAll(".domain, .tick>line").attr("fill", "none").attr("stroke", "black").attr("stroke-opacity", 0.25).attr("stroke-width", "1px"), T.selectAll("text").style("cursor", "default");
+ var L = E.selectAll("." + Dl.cn.axisHeading).data(ay, ig);
+ L.enter().append("g").classed(Dl.cn.axisHeading, true);
+ var x = L.selectAll("." + Dl.cn.axisTitle).data(ay, ig);
+ x.enter().append("text").classed(Dl.cn.axisTitle, true).attr("text-anchor", "middle").style("cursor", "ew-resize").style("pointer-events", a ? "none" : "auto"), x.text(function(z) {
+ return z.label;
+ }).each(function(z) {
+ var O = qd.select(this);
+ Wz.font(O, z.model.labelFont), GGt.convertToTspans(O, t);
+ }).attr("transform", function(z) {
+ var O = RUe(z.model.labelAngle, z.model.labelSide), U = Dl.axisTitleOffset;
+ return (O.dir > 0 ? "" : ny(0, 2 * U + z.model.height)) + VGt(O.degrees) + ny(-U * O.dx, -U * O.dy);
+ }).attr("text-anchor", function(z) {
+ var O = RUe(z.model.labelAngle, z.model.labelSide), U = Math.abs(O.dx), G = Math.abs(O.dy);
+ return 2 * U > G ? O.dir * O.dx < 0 ? "start" : "end" : "middle";
+ });
+ var C = E.selectAll("." + Dl.cn.axisExtent).data(ay, ig);
+ C.enter().append("g").classed(Dl.cn.axisExtent, true);
+ var M = C.selectAll("." + Dl.cn.axisExtentTop).data(ay, ig);
+ M.enter().append("g").classed(Dl.cn.axisExtentTop, true), M.attr("transform", ny(0, -Dl.axisExtentOffset));
+ var g = M.selectAll("." + Dl.cn.axisExtentTopText).data(ay, ig);
+ g.enter().append("text").classed(Dl.cn.axisExtentTopText, true).call(IUe), g.text(function(z) {
+ return DUe(z, true);
+ }).each(function(z) {
+ Wz.font(qd.select(this), z.model.rangeFont);
+ });
+ var P = C.selectAll("." + Dl.cn.axisExtentBottom).data(ay, ig);
+ P.enter().append("g").classed(Dl.cn.axisExtentBottom, true), P.attr("transform", function(z) {
+ return ny(0, z.model.height + Dl.axisExtentOffset);
+ });
+ var A = P.selectAll("." + Dl.cn.axisExtentBottomText).data(ay, ig);
+ A.enter().append("text").classed(Dl.cn.axisExtentBottomText, true).attr("dy", "0.75em").call(IUe), A.text(function(z) {
+ return DUe(z, false);
+ }).each(function(z) {
+ Wz.font(qd.select(this), z.model.rangeFont);
+ }), BUe.ensureAxisBrush(E, c, t);
+ };
+ });
+ var XK = ye((WK, XUe) => {
+ var tHt = GUe(), rHt = Lz(), HUe = BK().isVisible, WUe = {};
+ function jUe(e, t, r) {
+ var n = t.indexOf(r), i = e.indexOf(n);
+ return i === -1 && (i += t.length), i;
+ }
+ function iHt(e, t) {
+ return function(n, i) {
+ return jUe(e, t, n) - jUe(e, t, i);
+ };
+ }
+ var WK = XUe.exports = function(t, r) {
+ var n = t._fullLayout, i = rHt(t, [], WUe);
+ if (i) {
+ var a = {}, o = {}, s = {}, l = {}, u = n._size;
+ r.forEach(function(v, _) {
+ var b = v[0].trace;
+ s[_] = b.index;
+ var p = l[_] = b.index;
+ a[_] = t.data[p].dimensions, o[_] = t.data[p].dimensions.slice();
+ });
+ var c = function(v, _, b) {
+ var p = o[v][_], k = b.map(function(M) {
+ return M.slice();
+ }), E = "dimensions[" + _ + "].constraintrange", T = n._tracePreGUI[t._fullData[s[v]]._fullInput.uid];
+ if (T[E] === void 0) {
+ var L = p.constraintrange;
+ T[E] = L || null;
+ }
+ var x = t._fullData[s[v]].dimensions[_];
+ k.length ? (k.length === 1 && (k = k[0]), p.constraintrange = k, x.constraintrange = k.slice(), k = [k]) : (delete p.constraintrange, delete x.constraintrange, k = null);
+ var C = {};
+ C[E] = k, t.emit("plotly_restyle", [C, [l[v]]]);
+ }, f = function(v) {
+ t.emit("plotly_hover", v);
+ }, h = function(v) {
+ t.emit("plotly_unhover", v);
+ }, d = function(v, _) {
+ var b = iHt(_, o[v].filter(HUe));
+ a[v].sort(b), o[v].filter(function(p) {
+ return !HUe(p);
+ }).sort(function(p) {
+ return o[v].indexOf(p);
+ }).forEach(function(p) {
+ a[v].splice(a[v].indexOf(p), 1), a[v].splice(o[v].indexOf(p), 0, p);
+ }), t.emit("plotly_restyle", [{ dimensions: [a[v]] }, [l[v]]]);
+ };
+ tHt(t, r, { width: u.w, height: u.h, margin: { t: u.t, r: u.r, b: u.b, l: u.l } }, { filterChanged: c, hover: f, unhover: h, axesMoved: d });
+ }
+ };
+ WK.reglPrecompiled = WUe;
+ });
+ var YUe = ye((Vk) => {
+ var ZUe = Oa(), nHt = Id().getModuleCalcData, aHt = XK(), oHt = Wp();
+ Vk.name = "parcoords";
+ Vk.plot = function(e) {
+ var t = nHt(e.calcdata, "parcoords")[0];
+ t.length && aHt(e, t);
+ };
+ Vk.clean = function(e, t, r, n) {
+ var i = n._has && n._has("parcoords"), a = t._has && t._has("parcoords");
+ i && !a && (n._paperdiv.selectAll(".parcoords").remove(), n._glimages.selectAll("*").remove());
+ };
+ Vk.toSVG = function(e) {
+ var t = e._fullLayout._glimages, r = ZUe.select(e).selectAll(".svg-container"), n = r.filter(function(a, o) {
+ return o === r.size() - 1;
+ }).selectAll(".gl-canvas-context, .gl-canvas-focus");
+ function i() {
+ var a = this, o = a.toDataURL("image/png"), s = t.append("svg:image");
+ s.attr({ xmlns: oHt.svg, "xlink:href": o, preserveAspectRatio: "none", x: 0, y: 0, width: a.style.width, height: a.style.height });
+ }
+ n.each(i), window.setTimeout(function() {
+ ZUe.selectAll("#filterBarPattern").attr("id", "filterBarPattern");
+ }, 60);
+ };
+ });
+ var JUe = ye((lxr, KUe) => {
+ KUe.exports = { attributes: PK(), supplyDefaults: cUe(), calc: hUe(), colorbar: { container: "line", min: "cmin", max: "cmax" }, moduleType: "trace", name: "parcoords", basePlotModule: YUe(), categories: ["gl", "regl", "noOpacity", "noHover"], meta: {} };
+ });
+ var eVe = ye((uxr, QUe) => {
+ var $Ue = JUe();
+ $Ue.plot = XK();
+ QUe.exports = $Ue;
+ });
+ var rVe = ye((cxr, tVe) => {
+ tVe.exports = eVe();
+ });
+ var ZK = ye((fxr, sVe) => {
+ var nVe = Ao().extendFlat, sHt = Gl(), iVe = ec(), lHt = Tu(), { hovertemplateAttrs: aVe, templatefallbackAttrs: oVe } = Ll(), uHt = Cc().attributes, cHt = nVe({ editType: "calc" }, lHt("line", { editTypeOverride: "calc" }), { shape: { valType: "enumerated", values: ["linear", "hspline"], dflt: "linear", editType: "plot" }, hovertemplate: aVe({ editType: "plot", arrayOk: false }, { keys: ["count", "probability"] }), hovertemplatefallback: oVe({ editType: "plot" }) });
+ sVe.exports = { domain: uHt({ name: "parcats", trace: true, editType: "calc" }), hoverinfo: nVe({}, sHt.hoverinfo, { flags: ["count", "probability"], editType: "plot", arrayOk: false }), hoveron: { valType: "enumerated", values: ["category", "color", "dimension"], dflt: "category", editType: "plot" }, hovertemplate: aVe({ editType: "plot", arrayOk: false }, { keys: ["count", "probability", "category", "categorycount", "colorcount", "bandcolorcount"] }), hovertemplatefallback: oVe({ editType: "plot" }), arrangement: { valType: "enumerated", values: ["perpendicular", "freeform", "fixed"], dflt: "perpendicular", editType: "plot" }, bundlecolors: { valType: "boolean", dflt: true, editType: "plot" }, sortpaths: { valType: "enumerated", values: ["forward", "backward"], dflt: "forward", editType: "plot" }, labelfont: iVe({ editType: "calc" }), tickfont: iVe({ autoShadowDflt: true, editType: "calc" }), dimensions: { _isLinkedToArray: "dimension", label: { valType: "string", editType: "calc" }, categoryorder: { valType: "enumerated", values: ["trace", "category ascending", "category descending", "array"], dflt: "trace", editType: "calc" }, categoryarray: { valType: "data_array", editType: "calc" }, ticktext: { valType: "data_array", editType: "calc" }, values: { valType: "data_array", dflt: [], editType: "calc" }, displayindex: { valType: "integer", editType: "calc" }, editType: "calc", visible: { valType: "boolean", dflt: true, editType: "calc" } }, line: cHt, counts: { valType: "number", min: 0, dflt: 1, arrayOk: true, editType: "calc" }, customdata: void 0, hoverlabel: void 0, ids: void 0, legend: void 0, legendgroup: void 0, legendrank: void 0, opacity: void 0, selectedpoints: void 0, showlegend: void 0 };
+ });
+ var cVe = ye((hxr, uVe) => {
+ var M5 = Dr(), fHt = pv().hasColorscale, hHt = td(), dHt = Cc().defaults, vHt = Zd(), lVe = ZK(), pHt = Iz(), gHt = vv().isTypedArraySpec;
+ function mHt(e, t, r, n, i) {
+ i("line.shape"), i("line.hovertemplate"), i("line.hovertemplatefallback");
+ var a = i("line.color", n.colorway[0]);
+ if (fHt(e, "line") && M5.isArrayOrTypedArray(a)) {
+ if (a.length) return i("line.colorscale"), hHt(e, t, n, i, { prefix: "line.", cLetter: "c" }), a.length;
+ t.line.color = r;
+ }
+ return 1 / 0;
+ }
+ function yHt(e, t) {
+ function r(u, c) {
+ return M5.coerce(e, t, lVe.dimensions, u, c);
+ }
+ var n = r("values"), i = r("visible");
+ if (n && n.length || (i = t.visible = false), i) {
+ r("label"), r("displayindex", t._index);
+ var a = e.categoryarray, o = M5.isArrayOrTypedArray(a) && a.length > 0 || gHt(a), s;
+ o && (s = "array");
+ var l = r("categoryorder", s);
+ l === "array" ? (r("categoryarray"), r("ticktext")) : (delete e.categoryarray, delete e.ticktext), !o && l === "array" && (t.categoryorder = "trace");
+ }
+ }
+ uVe.exports = function(t, r, n, i) {
+ function a(u, c) {
+ return M5.coerce(t, r, lVe, u, c);
+ }
+ var o = vHt(t, r, { name: "dimensions", handleItemDefaults: yHt }), s = mHt(t, r, n, i, a);
+ dHt(r, i, a), (!Array.isArray(o) || !o.length) && (r.visible = false), pHt(r, o, "values", s), a("hoveron"), a("hovertemplate"), a("hovertemplatefallback"), a("arrangement"), a("bundlecolors"), a("sortpaths"), a("counts");
+ var l = i.font;
+ M5.coerceFont(a, "labelfont", l, { overrideDflt: { size: Math.round(l.size) } }), M5.coerceFont(a, "tickfont", l, { autoShadowDflt: true, overrideDflt: { size: Math.round(l.size / 1.2) } });
+ };
+ });
+ var hVe = ye((dxr, fVe) => {
+ var _Ht = iy().wrap, xHt = pv().hasColorscale, bHt = gv(), wHt = tq(), THt = So(), Gk = Dr(), AHt = Eo();
+ fVe.exports = function(t, r) {
+ var n = Gk.filterVisible(r.dimensions);
+ if (n.length === 0) return [];
+ var i = n.map(function(g) {
+ var P;
+ if (g.categoryorder === "trace") P = null;
+ else if (g.categoryorder === "array") P = g.categoryarray;
+ else {
+ P = wHt(g.values);
+ for (var A = true, z = 0; z < P.length; z++) if (!AHt(P[z])) {
+ A = false;
+ break;
+ }
+ P.sort(A ? Gk.sorterAsc : void 0), g.categoryorder === "category descending" && (P = P.reverse());
+ }
+ return PHt(g.values, P);
+ }), a, o, s;
+ Gk.isArrayOrTypedArray(r.counts) ? a = r.counts : a = [r.counts], IHt(n), n.forEach(function(g, P) {
+ RHt(g, i[P]);
+ });
+ var l = r.line, u;
+ l ? (xHt(r, "line") && bHt(t, r, { vals: r.line.color, containerStr: "line", cLetter: "c" }), u = THt.tryColorscale(l)) : u = Gk.identity;
+ function c(g) {
+ var P, A;
+ return Gk.isArrayOrTypedArray(l.color) ? (P = l.color[g % l.color.length], A = P) : P = l.color, { color: u(P), rawColor: A };
+ }
+ var f = n[0].values.length, h = {}, d = i.map(function(g) {
+ return g.inds;
+ });
+ s = 0;
+ var v, _;
+ for (v = 0; v < f; v++) {
+ var b = [];
+ for (_ = 0; _ < d.length; _++) b.push(d[_][v]);
+ o = a[v % a.length], s += o;
+ var p = c(v), k = b + "-" + p.rawColor;
+ h[k] === void 0 && (h[k] = CHt(b, p.color, p.rawColor)), LHt(h[k], v, o);
+ }
+ var E = n.map(function(g, P) {
+ return MHt(P, g._index, g._displayindex, g.label, s);
+ });
+ for (v = 0; v < f; v++) for (o = a[v % a.length], _ = 0; _ < E.length; _++) {
+ var T = E[_].containerInd, L = i[_].inds[v], x = E[_].categories;
+ if (x[L] === void 0) {
+ var C = r.dimensions[T]._categoryarray[L], M = r.dimensions[T]._ticktext[L];
+ x[L] = EHt(_, L, C, M);
+ }
+ kHt(x[L], v, o);
+ }
+ return _Ht(SHt(E, h, s));
+ };
+ function SHt(e, t, r) {
+ var n = e.map(function(i) {
+ return i.categories.length;
+ }).reduce(function(i, a) {
+ return Math.max(i, a);
+ });
+ return { dimensions: e, paths: t, trace: void 0, maxCats: n, count: r };
+ }
+ function MHt(e, t, r, n, i) {
+ return { dimensionInd: e, containerInd: t, displayInd: r, dimensionLabel: n, count: i, categories: [], dragX: null };
+ }
+ function EHt(e, t, r, n) {
+ return { dimensionInd: e, categoryInd: t, categoryValue: r, displayInd: t, categoryLabel: n, valueInds: [], count: 0, dragY: null };
+ }
+ function kHt(e, t, r) {
+ e.valueInds.push(t), e.count += r;
+ }
+ function CHt(e, t, r) {
+ return { categoryInds: e, color: t, rawColor: r, valueInds: [], count: 0 };
+ }
+ function LHt(e, t, r) {
+ e.valueInds.push(t), e.count += r;
+ }
+ function PHt(e, t) {
+ t == null ? t = [] : t = t.map(function(u) {
+ return u;
+ });
+ var r = {}, n = {}, i = [];
+ t.forEach(function(u, c) {
+ r[u] = 0, n[u] = c;
+ });
+ for (var a = 0; a < e.length; a++) {
+ var o = e[a], s;
+ r[o] === void 0 ? (r[o] = 1, s = t.push(o) - 1, n[o] = s) : (r[o]++, s = n[o]), i.push(s);
+ }
+ var l = t.map(function(u) {
+ return r[u];
+ });
+ return { uniqueValues: t, uniqueCounts: l, inds: i };
+ }
+ function IHt(e) {
+ var t = e.map(function(n) {
+ return n.displayindex;
+ }), r;
+ if (DHt(t)) for (r = 0; r < e.length; r++) e[r]._displayindex = e[r].displayindex;
+ else for (r = 0; r < e.length; r++) e[r]._displayindex = r;
+ }
+ function RHt(e, t) {
+ e._categoryarray = t.uniqueValues, e.ticktext === null || e.ticktext === void 0 ? e._ticktext = [] : e._ticktext = e.ticktext.slice();
+ for (var r = e._ticktext.length; r < t.uniqueValues.length; r++) e._ticktext.push(t.uniqueValues[r]);
+ }
+ function DHt(e) {
+ for (var t = new Array(e.length), r = 0; r < e.length; r++) {
+ if (e[r] < 0 || e[r] >= e.length || t[e[r]] !== void 0) return false;
+ t[e[r]] = true;
+ }
+ return true;
+ }
+ });
+ var bVe = ye((vxr, xVe) => {
+ var Fl = Oa(), FHt = (H2(), pb(G2)).interpolateNumber, zHt = ZP(), Wk = vf(), Ex = Dr(), Hk = Ex.strTranslate, dVe = So(), YK = fd(), OHt = Zl();
+ function qHt(e, t, r, n) {
+ var i = t._context.staticPlot, a = e.map(QHt.bind(0, t, r)), o = n.selectAll("g.parcatslayer").data([null]);
+ o.enter().append("g").attr("class", "parcatslayer").style("pointer-events", i ? "none" : "all");
+ var s = o.selectAll("g.trace.parcats").data(a, g1), l = s.enter().append("g").attr("class", "trace parcats");
+ s.attr("transform", function(k) {
+ return Hk(k.x, k.y);
+ }), l.append("g").attr("class", "paths");
+ var u = s.select("g.paths"), c = u.selectAll("path.path").data(function(k) {
+ return k.paths;
+ }, g1);
+ c.attr("fill", function(k) {
+ return k.model.color;
+ });
+ var f = c.enter().append("path").attr("class", "path").attr("stroke-opacity", 0).attr("fill", function(k) {
+ return k.model.color;
+ }).attr("fill-opacity", 0);
+ $K(f), c.attr("d", function(k) {
+ return k.svgD;
+ }), f.empty() || c.sort(KK), c.exit().remove(), c.on("mouseover", BHt).on("mouseout", NHt).on("click", UHt), l.append("g").attr("class", "dimensions");
+ var h = s.select("g.dimensions"), d = h.selectAll("g.dimension").data(function(k) {
+ return k.dimensions;
+ }, g1);
+ d.enter().append("g").attr("class", "dimension"), d.attr("transform", function(k) {
+ return Hk(k.x, 0);
+ }), d.exit().remove();
+ var v = d.selectAll("g.category").data(function(k) {
+ return k.categories;
+ }, g1), _ = v.enter().append("g").attr("class", "category");
+ v.attr("transform", function(k) {
+ return Hk(0, k.y);
+ }), _.append("rect").attr("class", "catrect").attr("pointer-events", "none"), v.select("rect.catrect").attr("fill", "none").attr("width", function(k) {
+ return k.width;
+ }).attr("height", function(k) {
+ return k.height;
+ }), pVe(_);
+ var b = v.selectAll("rect.bandrect").data(function(k) {
+ return k.bands;
+ }, g1);
+ b.each(function() {
+ Ex.raiseToTop(this);
+ }), b.attr("fill", function(k) {
+ return k.color;
+ });
+ var p = b.enter().append("rect").attr("class", "bandrect").attr("stroke-opacity", 0).attr("fill", function(k) {
+ return k.color;
+ }).attr("fill-opacity", 0);
+ b.attr("fill", function(k) {
+ return k.color;
+ }).attr("width", function(k) {
+ return k.width;
+ }).attr("height", function(k) {
+ return k.height;
+ }).attr("y", function(k) {
+ return k.y;
+ }).attr("cursor", function(k) {
+ return k.parcatsViewModel.arrangement === "fixed" ? "default" : k.parcatsViewModel.arrangement === "perpendicular" ? "ns-resize" : "move";
+ }), eJ(p), b.exit().remove(), _.append("text").attr("class", "catlabel").attr("pointer-events", "none"), v.select("text.catlabel").attr("text-anchor", function(k) {
+ return jk(k) ? "start" : "end";
+ }).attr("alignment-baseline", "middle").style("fill", "rgb(0, 0, 0)").attr("x", function(k) {
+ return jk(k) ? k.width + 5 : -5;
+ }).attr("y", function(k) {
+ return k.height / 2;
+ }).text(function(k) {
+ return k.model.categoryLabel;
+ }).each(function(k) {
+ dVe.font(Fl.select(this), k.parcatsViewModel.categorylabelfont), OHt.convertToTspans(Fl.select(this), t);
+ }), _.append("text").attr("class", "dimlabel"), v.select("text.dimlabel").attr("text-anchor", "middle").attr("alignment-baseline", "baseline").attr("cursor", function(k) {
+ return k.parcatsViewModel.arrangement === "fixed" ? "default" : "ew-resize";
+ }).attr("x", function(k) {
+ return k.width / 2;
+ }).attr("y", -5).text(function(k, E) {
+ return E === 0 ? k.parcatsViewModel.model.dimensions[k.model.dimensionInd].dimensionLabel : null;
+ }).each(function(k) {
+ dVe.font(Fl.select(this), k.parcatsViewModel.labelfont);
+ }), v.selectAll("rect.bandrect").on("mouseover", ZHt).on("mouseout", YHt), v.exit().remove(), d.call(Fl.behavior.drag().origin(function(k) {
+ return { x: k.x, y: 0 };
+ }).on("dragstart", KHt).on("drag", JHt).on("dragend", $Ht)), s.each(function(k) {
+ k.traceSelection = Fl.select(this), k.pathSelection = Fl.select(this).selectAll("g.paths").selectAll("path.path"), k.dimensionSelection = Fl.select(this).selectAll("g.dimensions").selectAll("g.dimension");
+ }), s.exit().remove();
+ }
+ xVe.exports = function(e, t, r, n) {
+ qHt(r, e, n, t);
+ };
+ function g1(e) {
+ return e.key;
+ }
+ function jk(e) {
+ var t = e.parcatsViewModel.dimensions.length, r = e.parcatsViewModel.dimensions[t - 1].model.dimensionInd;
+ return e.model.dimensionInd === r;
+ }
+ function KK(e, t) {
+ return e.model.rawColor > t.model.rawColor ? 1 : e.model.rawColor < t.model.rawColor ? -1 : 0;
+ }
+ function BHt(e) {
+ if (!e.parcatsViewModel.dragDimension && e.parcatsViewModel.hoverinfoItems.indexOf("skip") === -1) {
+ Ex.raiseToTop(this), QK(Fl.select(this));
+ var t = Xk(e), r = JK(e);
+ if (e.parcatsViewModel.graphDiv.emit("plotly_hover", { points: t, event: Fl.event, constraints: r }), e.parcatsViewModel.hoverinfoItems.indexOf("none") === -1) {
+ var n = Fl.mouse(this)[0], i = e.parcatsViewModel.graphDiv, a = e.parcatsViewModel.trace, o = i._fullLayout, s = o._paperdiv.node().getBoundingClientRect(), l = e.parcatsViewModel.graphDiv.getBoundingClientRect(), u, c, f;
+ for (f = 0; f < e.leftXs.length - 1; f++) if (e.leftXs[f] + e.dimWidths[f] - 2 <= n && n <= e.leftXs[f + 1] + 2) {
+ var h = e.parcatsViewModel.dimensions[f], d = e.parcatsViewModel.dimensions[f + 1];
+ u = (h.x + h.width + d.x) / 2, c = (e.topYs[f] + e.topYs[f + 1] + e.height) / 2;
+ break;
+ }
+ var v = e.parcatsViewModel.x + u, _ = e.parcatsViewModel.y + c, b = YK.mostReadable(e.model.color, ["black", "white"]), p = e.model.count, k = p / e.parcatsViewModel.model.count, E = { countLabel: p, probabilityLabel: k.toFixed(3) }, T = [];
+ e.parcatsViewModel.hoverinfoItems.indexOf("count") !== -1 && T.push(["Count:", E.countLabel].join(" ")), e.parcatsViewModel.hoverinfoItems.indexOf("probability") !== -1 && T.push(["P:", E.probabilityLabel].join(" "));
+ var L = T.join(" "), x = Fl.mouse(i)[0];
+ Wk.loneHover({ trace: a, x: v - s.left + l.left, y: _ - s.top + l.top, text: L, color: e.model.color, borderColor: "black", fontFamily: 'Monaco, "Courier New", monospace', fontSize: 10, fontColor: b, idealAlign: x < v ? "right" : "left", hovertemplate: (a.line || {}).hovertemplate, hovertemplateLabels: E, eventData: [{ data: a._input, fullData: a, count: p, probability: k }] }, { container: o._hoverlayer.node(), outerContainer: o._paper.node(), gd: i });
+ }
+ }
+ }
+ function NHt(e) {
+ if (!e.parcatsViewModel.dragDimension && ($K(Fl.select(this)), Wk.loneUnhover(e.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()), e.parcatsViewModel.pathSelection.sort(KK), e.parcatsViewModel.hoverinfoItems.indexOf("skip") === -1)) {
+ var t = Xk(e), r = JK(e);
+ e.parcatsViewModel.graphDiv.emit("plotly_unhover", { points: t, event: Fl.event, constraints: r });
+ }
+ }
+ function Xk(e) {
+ for (var t = [], r = mVe(e.parcatsViewModel), n = 0; n < e.model.valueInds.length; n++) {
+ var i = e.model.valueInds[n];
+ t.push({ curveNumber: r, pointNumber: i });
+ }
+ return t;
+ }
+ function JK(e) {
+ for (var t = {}, r = e.parcatsViewModel.model.dimensions, n = 0; n < r.length; n++) {
+ var i = r[n], a = i.categories[e.model.categoryInds[n]];
+ t[i.containerInd] = a.categoryValue;
+ }
+ return e.model.rawColor !== void 0 && (t.color = e.model.rawColor), t;
+ }
+ function UHt(e) {
+ if (e.parcatsViewModel.hoverinfoItems.indexOf("skip") === -1) {
+ var t = Xk(e), r = JK(e);
+ e.parcatsViewModel.graphDiv.emit("plotly_click", { points: t, event: Fl.event, constraints: r });
+ }
+ }
+ function $K(e) {
+ e.attr("fill", function(t) {
+ return t.model.color;
+ }).attr("fill-opacity", 0.6).attr("stroke", "lightgray").attr("stroke-width", 0.2).attr("stroke-opacity", 1);
+ }
+ function QK(e) {
+ e.attr("fill-opacity", 0.8).attr("stroke", function(t) {
+ return YK.mostReadable(t.model.color, ["black", "white"]);
+ }).attr("stroke-width", 0.3);
+ }
+ function VHt(e) {
+ e.select("rect.catrect").attr("stroke", "black").attr("stroke-width", 2.5);
+ }
+ function pVe(e) {
+ e.select("rect.catrect").attr("stroke", "black").attr("stroke-width", 1).attr("stroke-opacity", 1);
+ }
+ function GHt(e) {
+ e.attr("stroke", "black").attr("stroke-width", 1.5);
+ }
+ function eJ(e) {
+ e.attr("stroke", "black").attr("stroke-width", 0.2).attr("stroke-opacity", 1).attr("fill-opacity", 1);
+ }
+ function Zz(e) {
+ var t = e.parcatsViewModel.pathSelection, r = e.categoryViewModel.model.dimensionInd, n = e.categoryViewModel.model.categoryInd;
+ return t.filter(function(i) {
+ return i.model.categoryInds[r] === n && i.model.color === e.color;
+ });
+ }
+ function HHt(e) {
+ var t = Fl.select(e.parentNode).selectAll("rect.bandrect");
+ t.each(function(r) {
+ var n = Zz(r);
+ QK(n), n.each(function() {
+ Ex.raiseToTop(this);
+ });
+ }), VHt(Fl.select(e.parentNode));
+ }
+ function jHt(e) {
+ var t = Fl.select(e).datum(), r = Zz(t);
+ QK(r), r.each(function() {
+ Ex.raiseToTop(this);
+ }), Fl.select(e.parentNode).selectAll("rect.bandrect").filter(function(n) {
+ return n.color === t.color;
+ }).each(function() {
+ Ex.raiseToTop(this), GHt(Fl.select(this));
+ });
+ }
+ function tJ(e, t, r) {
+ var n = Fl.select(e).datum(), i = n.categoryViewModel.model, a = n.parcatsViewModel.graphDiv, o = Fl.select(e.parentNode).selectAll("rect.bandrect"), s = [];
+ o.each(function(u) {
+ var c = Zz(u);
+ c.each(function(f) {
+ Array.prototype.push.apply(s, Xk(f));
+ });
+ });
+ var l = {};
+ l[i.dimensionInd] = i.categoryValue, a.emit(t, { points: s, event: r, constraints: l });
+ }
+ function rJ(e, t, r) {
+ var n = Fl.select(e).datum(), i = n.categoryViewModel.model, a = n.parcatsViewModel.graphDiv, o = Zz(n), s = [];
+ o.each(function(u) {
+ Array.prototype.push.apply(s, Xk(u));
+ });
+ var l = {};
+ l[i.dimensionInd] = i.categoryValue, n.rawColor !== void 0 && (l.color = n.rawColor), a.emit(t, { points: s, event: r, constraints: l });
+ }
+ function gVe(e, t, r) {
+ e._fullLayout._calcInverseTransform(e);
+ var n = e._fullLayout._invScaleX, i = e._fullLayout._invScaleY, a = Fl.select(r.parentNode).select("rect.catrect"), o = a.node().getBoundingClientRect(), s = a.datum(), l = s.parcatsViewModel, u = l.model.dimensions[s.model.dimensionInd], c = l.trace, f = o.top + o.height / 2, h, d;
+ l.dimensions.length > 1 && u.displayInd === l.dimensions.length - 1 ? (h = o.left, d = "left") : (h = o.left + o.width, d = "right");
+ var v = s.model.count, _ = s.model.categoryLabel, b = v / s.parcatsViewModel.model.count, p = { countLabel: v, categoryLabel: _, probabilityLabel: b.toFixed(3) }, k = [];
+ s.parcatsViewModel.hoverinfoItems.indexOf("count") !== -1 && k.push(["Count:", p.countLabel].join(" ")), s.parcatsViewModel.hoverinfoItems.indexOf("probability") !== -1 && k.push(["P(" + p.categoryLabel + "):", p.probabilityLabel].join(" "));
+ var E = k.join(" ");
+ return { trace: c, x: n * (h - t.left), y: i * (f - t.top), text: E, color: "lightgray", borderColor: "black", fontFamily: 'Monaco, "Courier New", monospace', fontSize: 12, fontColor: "black", idealAlign: d, hovertemplate: c.hovertemplate, hovertemplateLabels: p, eventData: [{ data: c._input, fullData: c, count: v, category: _, probability: b }] };
+ }
+ function WHt(e, t, r) {
+ var n = [];
+ return Fl.select(r.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each(function() {
+ var i = this;
+ n.push(gVe(e, t, i));
+ }), n;
+ }
+ function XHt(e, t, r) {
+ e._fullLayout._calcInverseTransform(e);
+ var n = e._fullLayout._invScaleX, i = e._fullLayout._invScaleY, a = r.getBoundingClientRect(), o = Fl.select(r).datum(), s = o.categoryViewModel, l = s.parcatsViewModel, u = l.model.dimensions[s.model.dimensionInd], c = l.trace, f = a.y + a.height / 2, h, d;
+ l.dimensions.length > 1 && u.displayInd === l.dimensions.length - 1 ? (h = a.left, d = "left") : (h = a.left + a.width, d = "right");
+ var v = s.model.categoryLabel, _ = o.parcatsViewModel.model.count, b = 0;
+ o.categoryViewModel.bands.forEach(function(P) {
+ P.color === o.color && (b += P.count);
+ });
+ var p = s.model.count, k = 0;
+ l.pathSelection.each(function(P) {
+ P.model.color === o.color && (k += P.model.count);
+ });
+ var E = b / _, T = b / k, L = b / p, x = { countLabel: b, categoryLabel: v, probabilityLabel: E.toFixed(3) }, C = [];
+ s.parcatsViewModel.hoverinfoItems.indexOf("count") !== -1 && C.push(["Count:", x.countLabel].join(" ")), s.parcatsViewModel.hoverinfoItems.indexOf("probability") !== -1 && (C.push("P(color ∩ " + v + "): " + x.probabilityLabel), C.push("P(" + v + " | color): " + T.toFixed(3)), C.push("P(color | " + v + "): " + L.toFixed(3)));
+ var M = C.join(" "), g = YK.mostReadable(o.color, ["black", "white"]);
+ return { trace: c, x: n * (h - t.left), y: i * (f - t.top), text: M, color: o.color, borderColor: "black", fontFamily: 'Monaco, "Courier New", monospace', fontColor: g, fontSize: 10, idealAlign: d, hovertemplate: c.hovertemplate, hovertemplateLabels: x, eventData: [{ data: c._input, fullData: c, category: v, count: _, probability: E, categorycount: p, colorcount: k, bandcolorcount: b }] };
+ }
+ function ZHt(e) {
+ if (!e.parcatsViewModel.dragDimension && e.parcatsViewModel.hoverinfoItems.indexOf("skip") === -1) {
+ var t = Fl.mouse(this)[1];
+ if (t < -1) return;
+ var r = e.parcatsViewModel.graphDiv, n = r._fullLayout, i = n._paperdiv.node().getBoundingClientRect(), a = e.parcatsViewModel.hoveron, o = this;
+ if (a === "color" ? (jHt(o), rJ(o, "plotly_hover", Fl.event)) : (HHt(o), tJ(o, "plotly_hover", Fl.event)), e.parcatsViewModel.hoverinfoItems.indexOf("none") === -1) {
+ var s;
+ a === "category" ? s = gVe(r, i, o) : a === "color" ? s = XHt(r, i, o) : a === "dimension" && (s = WHt(r, i, o)), s && Wk.loneHover(s, { container: n._hoverlayer.node(), outerContainer: n._paper.node(), gd: r });
+ }
+ }
+ }
+ function YHt(e) {
+ var t = e.parcatsViewModel;
+ if (!t.dragDimension && ($K(t.pathSelection), pVe(t.dimensionSelection.selectAll("g.category")), eJ(t.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")), Wk.loneUnhover(t.graphDiv._fullLayout._hoverlayer.node()), t.pathSelection.sort(KK), t.hoverinfoItems.indexOf("skip") === -1)) {
+ var r = e.parcatsViewModel.hoveron, n = this;
+ r === "color" ? rJ(n, "plotly_unhover", Fl.event) : tJ(n, "plotly_unhover", Fl.event);
+ }
+ }
+ function KHt(e) {
+ e.parcatsViewModel.arrangement !== "fixed" && (e.dragDimensionDisplayInd = e.model.displayInd, e.initialDragDimensionDisplayInds = e.parcatsViewModel.model.dimensions.map(function(t) {
+ return t.displayInd;
+ }), e.dragHasMoved = false, e.dragCategoryDisplayInd = null, Fl.select(this).selectAll("g.category").select("rect.catrect").each(function(t) {
+ var r = Fl.mouse(this)[0], n = Fl.mouse(this)[1];
+ -2 <= r && r <= t.width + 2 && -2 <= n && n <= t.height + 2 && (e.dragCategoryDisplayInd = t.model.displayInd, e.initialDragCategoryDisplayInds = e.model.categories.map(function(i) {
+ return i.displayInd;
+ }), t.model.dragY = t.y, Ex.raiseToTop(this.parentNode), Fl.select(this.parentNode).selectAll("rect.bandrect").each(function(i) {
+ i.y < n && n <= i.y + i.height && (e.potentialClickBand = this);
+ }));
+ }), e.parcatsViewModel.dragDimension = e, Wk.loneUnhover(e.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()));
+ }
+ function JHt(e) {
+ if (e.parcatsViewModel.arrangement !== "fixed" && (e.dragHasMoved = true, e.dragDimensionDisplayInd !== null)) {
+ var t = e.dragDimensionDisplayInd, r = t - 1, n = t + 1, i = e.parcatsViewModel.dimensions[t];
+ if (e.dragCategoryDisplayInd !== null) {
+ var a = i.categories[e.dragCategoryDisplayInd];
+ a.model.dragY += Fl.event.dy;
+ var o = a.model.dragY, s = a.model.displayInd, l = i.categories, u = l[s - 1], c = l[s + 1];
+ u !== void 0 && o < u.y + u.height / 2 && (a.model.displayInd = u.model.displayInd, u.model.displayInd = s), c !== void 0 && o + a.height > c.y + c.height / 2 && (a.model.displayInd = c.model.displayInd, c.model.displayInd = s), e.dragCategoryDisplayInd = a.model.displayInd;
+ }
+ if (e.dragCategoryDisplayInd === null || e.parcatsViewModel.arrangement === "freeform") {
+ i.model.dragX = Fl.event.x;
+ var f = e.parcatsViewModel.dimensions[r], h = e.parcatsViewModel.dimensions[n];
+ f !== void 0 && i.model.dragX < f.x + f.width && (i.model.displayInd = f.model.displayInd, f.model.displayInd = t), h !== void 0 && i.model.dragX + i.width > h.x && (i.model.displayInd = h.model.displayInd, h.model.displayInd = e.dragDimensionDisplayInd), e.dragDimensionDisplayInd = i.model.displayInd;
+ }
+ nJ(e.parcatsViewModel), iJ(e.parcatsViewModel), _Ve(e.parcatsViewModel), yVe(e.parcatsViewModel);
+ }
+ }
+ function $Ht(e) {
+ if (e.parcatsViewModel.arrangement !== "fixed" && e.dragDimensionDisplayInd !== null) {
+ Fl.select(this).selectAll("text").attr("font-weight", "normal");
+ var t = {}, r = mVe(e.parcatsViewModel), n = e.parcatsViewModel.model.dimensions.map(function(h) {
+ return h.displayInd;
+ }), i = e.initialDragDimensionDisplayInds.some(function(h, d) {
+ return h !== n[d];
+ });
+ i && n.forEach(function(h, d) {
+ var v = e.parcatsViewModel.model.dimensions[d].containerInd;
+ t["dimensions[" + v + "].displayindex"] = h;
+ });
+ var a = false;
+ if (e.dragCategoryDisplayInd !== null) {
+ var o = e.model.categories.map(function(h) {
+ return h.displayInd;
+ });
+ if (a = e.initialDragCategoryDisplayInds.some(function(h, d) {
+ return h !== o[d];
+ }), a) {
+ var s = e.model.categories.slice().sort(function(h, d) {
+ return h.displayInd - d.displayInd;
+ }), l = s.map(function(h) {
+ return h.categoryValue;
+ }), u = s.map(function(h) {
+ return h.categoryLabel;
+ });
+ t["dimensions[" + e.model.containerInd + "].categoryarray"] = [l], t["dimensions[" + e.model.containerInd + "].ticktext"] = [u], t["dimensions[" + e.model.containerInd + "].categoryorder"] = "array";
+ }
+ }
+ if (e.parcatsViewModel.hoverinfoItems.indexOf("skip") === -1 && !e.dragHasMoved && e.potentialClickBand && (e.parcatsViewModel.hoveron === "color" ? rJ(e.potentialClickBand, "plotly_click", Fl.event.sourceEvent) : tJ(e.potentialClickBand, "plotly_click", Fl.event.sourceEvent)), e.model.dragX = null, e.dragCategoryDisplayInd !== null) {
+ var c = e.parcatsViewModel.dimensions[e.dragDimensionDisplayInd].categories[e.dragCategoryDisplayInd];
+ c.model.dragY = null, e.dragCategoryDisplayInd = null;
+ }
+ e.dragDimensionDisplayInd = null, e.parcatsViewModel.dragDimension = null, e.dragHasMoved = null, e.potentialClickBand = null, nJ(e.parcatsViewModel), iJ(e.parcatsViewModel);
+ var f = Fl.transition().duration(300).ease("cubic-in-out");
+ f.each(function() {
+ _Ve(e.parcatsViewModel, true), yVe(e.parcatsViewModel, true);
+ }).each("end", function() {
+ (i || a) && zHt.restyle(e.parcatsViewModel.graphDiv, t, [r]);
+ });
+ }
+ }
+ function mVe(e) {
+ for (var t, r = e.graphDiv._fullData, n = 0; n < r.length; n++) if (e.key === r[n].uid) {
+ t = n;
+ break;
+ }
+ return t;
+ }
+ function yVe(e, t) {
+ t === void 0 && (t = false);
+ function r(n) {
+ return t ? n.transition() : n;
+ }
+ e.pathSelection.data(function(n) {
+ return n.paths;
+ }, g1), r(e.pathSelection).attr("d", function(n) {
+ return n.svgD;
+ });
+ }
+ function _Ve(e, t) {
+ t === void 0 && (t = false);
+ function r(l) {
+ return t ? l.transition() : l;
+ }
+ e.dimensionSelection.data(function(l) {
+ return l.dimensions;
+ }, g1);
+ var n = e.dimensionSelection.selectAll("g.category").data(function(l) {
+ return l.categories;
+ }, g1);
+ r(e.dimensionSelection).attr("transform", function(l) {
+ return Hk(l.x, 0);
+ }), r(n).attr("transform", function(l) {
+ return Hk(0, l.y);
+ });
+ var i = n.select(".dimlabel");
+ i.text(function(l, u) {
+ return u === 0 ? l.parcatsViewModel.model.dimensions[l.model.dimensionInd].dimensionLabel : null;
+ });
+ var a = n.select(".catlabel");
+ a.attr("text-anchor", function(l) {
+ return jk(l) ? "start" : "end";
+ }).attr("x", function(l) {
+ return jk(l) ? l.width + 5 : -5;
+ }).each(function(l) {
+ var u, c;
+ jk(l) ? (u = l.width + 5, c = "start") : (u = -5, c = "end"), Fl.select(this).selectAll("tspan").attr("x", u).attr("text-anchor", c);
+ });
+ var o = n.selectAll("rect.bandrect").data(function(l) {
+ return l.bands;
+ }, g1), s = o.enter().append("rect").attr("class", "bandrect").attr("cursor", "move").attr("stroke-opacity", 0).attr("fill", function(l) {
+ return l.color;
+ }).attr("fill-opacity", 0);
+ o.attr("fill", function(l) {
+ return l.color;
+ }).attr("width", function(l) {
+ return l.width;
+ }).attr("height", function(l) {
+ return l.height;
+ }).attr("y", function(l) {
+ return l.y;
+ }), eJ(s), o.each(function() {
+ Ex.raiseToTop(this);
+ }), o.exit().remove();
+ }
+ function QHt(e, t, r) {
+ var n = r[0], i = t.margin || { l: 80, r: 80, t: 100, b: 80 }, a = n.trace, o = a.domain, s = t.width, l = t.height, u = Math.floor(s * (o.x[1] - o.x[0])), c = Math.floor(l * (o.y[1] - o.y[0])), f = o.x[0] * s + i.l, h = t.height - o.y[1] * t.height + i.t, d = a.line.shape, v;
+ a.hoverinfo === "all" ? v = ["count", "probability"] : v = (a.hoverinfo || "").split("+");
+ var _ = { trace: a, key: a.uid, model: n, x: f, y: h, width: u, height: c, hoveron: a.hoveron, hoverinfoItems: v, arrangement: a.arrangement, bundlecolors: a.bundlecolors, sortpaths: a.sortpaths, labelfont: a.labelfont, categorylabelfont: a.tickfont, pathShape: d, dragDimension: null, margin: i, paths: [], dimensions: [], graphDiv: e, traceSelection: null, pathSelection: null, dimensionSelection: null };
+ return n.dimensions && (nJ(_), iJ(_)), _;
+ }
+ function vVe(e, t, r, n, i) {
+ var a = [], o = [], s, l;
+ for (l = 0; l < r.length - 1; l++) s = FHt(r[l] + e[l], e[l + 1]), a.push(s(i)), o.push(s(1 - i));
+ var u = "M " + e[0] + "," + t[0];
+ for (u += "l" + r[0] + ",0 ", l = 1; l < r.length; l++) u += "C" + a[l - 1] + "," + t[l - 1] + " " + o[l - 1] + "," + t[l] + " " + e[l] + "," + t[l], u += "l" + r[l] + ",0 ";
+ for (u += "l0," + n + " ", u += "l -" + r[r.length - 1] + ",0 ", l = r.length - 2; l >= 0; l--) u += "C" + o[l] + "," + (t[l + 1] + n) + " " + a[l] + "," + (t[l] + n) + " " + (e[l] + r[l]) + "," + (t[l] + n), u += "l-" + r[l] + ",0 ";
+ return u += "Z", u;
+ }
+ function iJ(e) {
+ var t = e.dimensions, r = e.model, n = t.map(function(O) {
+ return O.categories.map(function(U) {
+ return U.y;
+ });
+ }), i = e.model.dimensions.map(function(O) {
+ return O.categories.map(function(U) {
+ return U.displayInd;
+ });
+ }), a = e.model.dimensions.map(function(O) {
+ return O.displayInd;
+ }), o = e.dimensions.map(function(O) {
+ return O.model.dimensionInd;
+ }), s = t.map(function(O) {
+ return O.x;
+ }), l = t.map(function(O) {
+ return O.width;
+ }), u = [];
+ for (var c in r.paths) r.paths.hasOwnProperty(c) && u.push(r.paths[c]);
+ function f(O) {
+ var U = O.categoryInds.map(function(Z, j) {
+ return i[j][Z];
+ }), G = o.map(function(Z) {
+ return U[Z];
+ });
+ return G;
+ }
+ u.sort(function(O, U) {
+ var G = f(O), Z = f(U);
+ return e.sortpaths === "backward" && (G.reverse(), Z.reverse()), G.push(O.valueInds[0]), Z.push(U.valueInds[0]), e.bundlecolors && (G.unshift(O.rawColor), Z.unshift(U.rawColor)), G < Z ? -1 : G > Z ? 1 : 0;
+ });
+ for (var h = new Array(u.length), d = t[0].model.count, v = t[0].categories.map(function(O) {
+ return O.height;
+ }).reduce(function(O, U) {
+ return O + U;
+ }), _ = 0; _ < u.length; _++) {
+ var b = u[_], p;
+ d > 0 ? p = v * (b.count / d) : p = 0;
+ for (var k = new Array(n.length), E = 0; E < b.categoryInds.length; E++) {
+ var T = b.categoryInds[E], L = i[E][T], x = a[E];
+ k[x] = n[x][L], n[x][L] += p;
+ var C = e.dimensions[x].categories[L], M = C.bands.length, g = C.bands[M - 1];
+ if (g === void 0 || b.rawColor !== g.rawColor) {
+ var P = g === void 0 ? 0 : g.y + g.height;
+ C.bands.push({ key: P, color: b.color, rawColor: b.rawColor, height: p, width: C.width, count: b.count, y: P, categoryViewModel: C, parcatsViewModel: e });
+ } else {
+ var A = C.bands[M - 1];
+ A.height += p, A.count += b.count;
+ }
+ }
+ var z;
+ e.pathShape === "hspline" ? z = vVe(s, k, l, p, 0.5) : z = vVe(s, k, l, p, 0), h[_] = { key: b.valueInds[0], model: b, height: p, leftXs: s, topYs: k, dimWidths: l, svgD: z, parcatsViewModel: e };
+ }
+ e.paths = h;
+ }
+ function nJ(e) {
+ var t = e.model.dimensions.map(function(o) {
+ return { displayInd: o.displayInd, dimensionInd: o.dimensionInd };
+ });
+ t.sort(function(o, s) {
+ return o.displayInd - s.displayInd;
+ });
+ var r = [];
+ for (var n in t) {
+ var i = t[n].dimensionInd, a = e.model.dimensions[i];
+ r.push(ejt(e, a));
+ }
+ e.dimensions = r;
+ }
+ function ejt(e, t) {
+ var r = 40, n = 16, i = e.model.dimensions.length, a = t.displayInd, o, s, l;
+ i > 1 ? o = (e.width - 2 * r - n) / (i - 1) : o = 0, s = r, l = s + o * a;
+ var u = [], c = e.model.maxCats, f = t.categories.length, h = 8, d = t.count, v = e.height - h * (c - 1), _, b, p, k, E, T = (c - f) * h / 2, L = t.categories.map(function(x) {
+ return { displayInd: x.displayInd, categoryInd: x.categoryInd };
+ });
+ for (L.sort(function(x, C) {
+ return x.displayInd - C.displayInd;
+ }), E = 0; E < f; E++) k = L[E].categoryInd, b = t.categories[k], d > 0 ? _ = b.count / d * v : _ = 0, p = { key: b.valueInds[0], model: b, width: n, height: _, y: b.dragY !== null ? b.dragY : T, bands: [], parcatsViewModel: e }, T = T + _ + h, u.push(p);
+ return { key: t.dimensionInd, x: t.dragX !== null ? t.dragX : l, y: 0, width: n, model: t, categories: u, parcatsViewModel: e, dragCategoryDisplayInd: null, dragDimensionDisplayInd: null, initialDragDimensionDisplayInds: null, initialDragCategoryDisplayInds: null, dragHasMoved: null, potentialClickBand: null };
+ }
+ });
+ var aJ = ye((pxr, wVe) => {
+ var tjt = bVe();
+ wVe.exports = function(t, r, n, i) {
+ var a = t._fullLayout, o = a._paper, s = a._size;
+ tjt(t, o, r, { width: s.w, height: s.h, margin: { t: s.t, r: s.r, b: s.b, l: s.l } }, n, i);
+ };
+ });
+ var AVe = ye((Yz) => {
+ var rjt = Id().getModuleCalcData, ijt = aJ(), TVe = "parcats";
+ Yz.name = TVe;
+ Yz.plot = function(e, t, r, n) {
+ var i = rjt(e.calcdata, TVe);
+ if (i.length) {
+ var a = i[0];
+ ijt(e, a, r, n);
+ }
+ };
+ Yz.clean = function(e, t, r, n) {
+ var i = n._has && n._has("parcats"), a = t._has && t._has("parcats");
+ i && !a && n._paperdiv.selectAll(".parcats").remove();
+ };
+ });
+ var MVe = ye((mxr, SVe) => {
+ SVe.exports = { attributes: ZK(), supplyDefaults: cVe(), calc: hVe(), plot: aJ(), colorbar: { container: "line", min: "cmin", max: "cmax" }, moduleType: "trace", name: "parcats", basePlotModule: AVe(), categories: ["noOpacity"], meta: {} };
+ });
+ var kVe = ye((yxr, EVe) => {
+ EVe.exports = MVe();
+ });
+ var m1 = ye((_xr, FVe) => {
+ var njt = t_(), CVe = "1.13.4", RVe = '© OpenStreetMap contributors', LVe = ['© Carto ', RVe].join(" "), PVe = ['Map tiles by Stamen Design ', 'under CC BY 3.0 ', "|", 'Data by OpenStreetMap contributors', 'under ODbL '].join(" "), ajt = ['Map tiles by Stamen Design ', 'under CC BY 3.0 ', "|", 'Data by OpenStreetMap contributors', 'under CC BY SA '].join(" "), DVe = { "open-street-map": { id: "osm", version: 8, sources: { "plotly-osm-tiles": { type: "raster", attribution: RVe, tiles: ["https://a.tile.openstreetmap.org/{z}/{x}/{y}.png", "https://b.tile.openstreetmap.org/{z}/{x}/{y}.png"], tileSize: 256 } }, layers: [{ id: "plotly-osm-tiles", type: "raster", source: "plotly-osm-tiles", minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" }, "white-bg": { id: "white-bg", version: 8, sources: {}, layers: [{ id: "white-bg", type: "background", paint: { "background-color": "#FFFFFF" }, minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" }, "carto-positron": { id: "carto-positron", version: 8, sources: { "plotly-carto-positron": { type: "raster", attribution: LVe, tiles: ["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png"], tileSize: 256 } }, layers: [{ id: "plotly-carto-positron", type: "raster", source: "plotly-carto-positron", minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" }, "carto-darkmatter": { id: "carto-darkmatter", version: 8, sources: { "plotly-carto-darkmatter": { type: "raster", attribution: LVe, tiles: ["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png"], tileSize: 256 } }, layers: [{ id: "plotly-carto-darkmatter", type: "raster", source: "plotly-carto-darkmatter", minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" }, "stamen-terrain": { id: "stamen-terrain", version: 8, sources: { "plotly-stamen-terrain": { type: "raster", attribution: PVe, tiles: ["https://tiles.stadiamaps.com/tiles/stamen_terrain/{z}/{x}/{y}.png?api_key="], tileSize: 256 } }, layers: [{ id: "plotly-stamen-terrain", type: "raster", source: "plotly-stamen-terrain", minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" }, "stamen-toner": { id: "stamen-toner", version: 8, sources: { "plotly-stamen-toner": { type: "raster", attribution: PVe, tiles: ["https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png?api_key="], tileSize: 256 } }, layers: [{ id: "plotly-stamen-toner", type: "raster", source: "plotly-stamen-toner", minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" }, "stamen-watercolor": { id: "stamen-watercolor", version: 8, sources: { "plotly-stamen-watercolor": { type: "raster", attribution: ajt, tiles: ["https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg?api_key="], tileSize: 256 } }, layers: [{ id: "plotly-stamen-watercolor", type: "raster", source: "plotly-stamen-watercolor", minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" } }, IVe = njt(DVe);
+ FVe.exports = { requiredVersion: CVe, styleUrlPrefix: "mapbox://styles/mapbox/", styleUrlSuffix: "v9", styleValuesMapbox: ["basic", "streets", "outdoors", "light", "dark", "satellite", "satellite-streets"], styleValueDflt: "basic", stylesNonMapbox: DVe, styleValuesNonMapbox: IVe, traceLayerPrefix: "plotly-trace-layer-", layoutLayerPrefix: "plotly-layout-layer-", wrongVersionErrorMsg: ["Your custom plotly.js bundle is not using the correct mapbox-gl version", "Please install @plotly/mapbox-gl@" + CVe + "."].join(`
+`), noAccessTokenErrorMsg: ["Missing Mapbox access token.", "Mapbox trace type require a Mapbox access token to be registered.", "For example:", " Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });", "More info here: https://www.mapbox.com/help/define-access-token/"].join(`
+`), missingStyleErrorMsg: ["No valid mapbox style found, please set `mapbox.style` to one of:", IVe.join(", "), "or register a Mapbox access token to use a Mapbox-served style."].join(`
+`), multipleTokensErrorMsg: ["Set multiple mapbox access token across different mapbox subplot,", "using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join(`
+`), mapOnErrorMsg: "Mapbox error.", mapboxLogo: { path0: "m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z", path1: "M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z", path2: "M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z", polygon: "11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34" }, styleRules: { map: "overflow:hidden;position:relative;", "missing-css": "display:none;", canary: "background-color:salmon;", "ctrl-bottom-left": "position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;", "ctrl-bottom-right": "position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;", ctrl: "clear: both; pointer-events: auto; transform: translate(0, 0);", "ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner": "display: none;", "ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner": "display: block; margin-top:2px", "ctrl-attrib.mapboxgl-compact:hover": "padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;", "ctrl-attrib.mapboxgl-compact::after": `content: ""; cursor: pointer; position: absolute; background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"%3E %3Cpath fill="%23333333" fill-rule="evenodd" d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0"/%3E %3C/svg%3E'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;`, "ctrl-attrib.mapboxgl-compact": "min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;", "ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after": "bottom: 0; right: 0", "ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after": "bottom: 0; left: 0", "ctrl-bottom-left .mapboxgl-ctrl": "margin: 0 0 10px 10px; float: left;", "ctrl-bottom-right .mapboxgl-ctrl": "margin: 0 10px 10px 0; float: right;", "ctrl-attrib": "color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px", "ctrl-attrib a": "color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px", "ctrl-attrib a:hover": "color: inherit; text-decoration: underline;", "ctrl-attrib .mapbox-improve-map": "font-weight: bold; margin-left: 2px;", "attrib-empty": "display: none;", "ctrl-logo": `display:block; width: 21px; height: 21px; background-image: url('data:image/svg+xml;charset=utf-8,%3C?xml version="1.0" encoding="utf-8"?%3E %3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 21 21" style="enable-background:new 0 0 21 21;" xml:space="preserve"%3E%3Cg transform="translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E')` } };
+ });
+ var Zk = ye((xxr, BVe) => {
+ var zVe = Dr(), OVe = ka().defaultLine, ojt = Cc().attributes, sjt = ec(), ljt = pf().textposition, ujt = mc().overrideAll, cjt = vl().templatedArray, oJ = m1(), qVe = sjt({ noFontVariant: true, noFontShadow: true, noFontLineposition: true, noFontTextcase: true });
+ qVe.family.dflt = "Open Sans Regular, Arial Unicode MS Regular";
+ var fjt = BVe.exports = ujt({ _arrayAttrRegexps: [zVe.counterRegex("mapbox", ".layers", true)], domain: ojt({ name: "mapbox" }), accesstoken: { valType: "string", noBlank: true, strict: true }, style: { valType: "any", values: oJ.styleValuesMapbox.concat(oJ.styleValuesNonMapbox), dflt: oJ.styleValueDflt }, center: { lon: { valType: "number", dflt: 0 }, lat: { valType: "number", dflt: 0 } }, zoom: { valType: "number", dflt: 1 }, bearing: { valType: "number", dflt: 0 }, pitch: { valType: "number", dflt: 0 }, bounds: { west: { valType: "number" }, east: { valType: "number" }, south: { valType: "number" }, north: { valType: "number" } }, layers: cjt("layer", { visible: { valType: "boolean", dflt: true }, sourcetype: { valType: "enumerated", values: ["geojson", "vector", "raster", "image"], dflt: "geojson" }, source: { valType: "any" }, sourcelayer: { valType: "string", dflt: "" }, sourceattribution: { valType: "string" }, type: { valType: "enumerated", values: ["circle", "line", "fill", "symbol", "raster"], dflt: "circle" }, coordinates: { valType: "any" }, below: { valType: "string" }, color: { valType: "color", dflt: OVe }, opacity: { valType: "number", min: 0, max: 1, dflt: 1 }, minzoom: { valType: "number", min: 0, max: 24, dflt: 0 }, maxzoom: { valType: "number", min: 0, max: 24, dflt: 24 }, circle: { radius: { valType: "number", dflt: 15 } }, line: { width: { valType: "number", dflt: 2 }, dash: { valType: "data_array" } }, fill: { outlinecolor: { valType: "color", dflt: OVe } }, symbol: { icon: { valType: "string", dflt: "marker" }, iconsize: { valType: "number", dflt: 10 }, text: { valType: "string", dflt: "" }, placement: { valType: "enumerated", values: ["point", "line", "line-center"], dflt: "point" }, textfont: qVe, textposition: zVe.extendFlat({}, ljt, { arrayOk: false }) } }) }, "plot", "from-root");
+ fjt.uirevision = { valType: "any", editType: "none" };
+ });
+ var Kz = ye((bxr, GVe) => {
+ var { hovertemplateAttrs: hjt, texttemplateAttrs: djt, templatefallbackAttrs: NVe } = Ll(), vjt = Pg(), Yk = ew(), E5 = pf(), UVe = Zk(), pjt = Gl(), gjt = Tu(), fw = Ao().extendFlat, mjt = mc().overrideAll, yjt = Zk(), VVe = Yk.line, k5 = Yk.marker;
+ GVe.exports = mjt({ lon: Yk.lon, lat: Yk.lat, cluster: { enabled: { valType: "boolean" }, maxzoom: fw({}, yjt.layers.maxzoom, {}), step: { valType: "number", arrayOk: true, dflt: -1, min: -1 }, size: { valType: "number", arrayOk: true, dflt: 20, min: 0 }, color: { valType: "color", arrayOk: true }, opacity: fw({}, k5.opacity, { dflt: 1 }) }, mode: fw({}, E5.mode, { dflt: "markers" }), text: fw({}, E5.text, {}), texttemplate: djt({ editType: "plot" }, { keys: ["lat", "lon", "text"] }), texttemplatefallback: NVe({ editType: "plot" }), hovertext: fw({}, E5.hovertext, {}), line: { color: VVe.color, width: VVe.width }, connectgaps: E5.connectgaps, marker: fw({ symbol: { valType: "string", dflt: "circle", arrayOk: true }, angle: { valType: "number", dflt: "auto", arrayOk: true }, allowoverlap: { valType: "boolean", dflt: false }, opacity: k5.opacity, size: k5.size, sizeref: k5.sizeref, sizemin: k5.sizemin, sizemode: k5.sizemode }, gjt("marker")), fill: Yk.fill, fillcolor: vjt(), textfont: UVe.layers.symbol.textfont, textposition: UVe.layers.symbol.textposition, below: { valType: "string" }, selected: { marker: E5.selected.marker }, unselected: { marker: E5.unselected.marker }, hoverinfo: fw({}, pjt.hoverinfo, { flags: ["lon", "lat", "text", "name"] }), hovertemplate: hjt(), hovertemplatefallback: NVe() }, "calc", "nested");
+ });
+ var sJ = ye((wxr, HVe) => {
+ var _jt = ["Metropolis Black Italic", "Metropolis Black", "Metropolis Bold Italic", "Metropolis Bold", "Metropolis Extra Bold Italic", "Metropolis Extra Bold", "Metropolis Extra Light Italic", "Metropolis Extra Light", "Metropolis Light Italic", "Metropolis Light", "Metropolis Medium Italic", "Metropolis Medium", "Metropolis Regular Italic", "Metropolis Regular", "Metropolis Semi Bold Italic", "Metropolis Semi Bold", "Metropolis Thin Italic", "Metropolis Thin", "Open Sans Bold Italic", "Open Sans Bold", "Open Sans Extrabold Italic", "Open Sans Extrabold", "Open Sans Italic", "Open Sans Light Italic", "Open Sans Light", "Open Sans Regular", "Open Sans Semibold Italic", "Open Sans Semibold", "Klokantech Noto Sans Bold", "Klokantech Noto Sans CJK Bold", "Klokantech Noto Sans CJK Regular", "Klokantech Noto Sans Italic", "Klokantech Noto Sans Regular"];
+ HVe.exports = { isSupportedFont: function(e) {
+ return _jt.indexOf(e) !== -1;
+ } };
+ });
+ var XVe = ye((Txr, WVe) => {
+ var Kk = Dr(), lJ = Ru(), xjt = $p(), bjt = D0(), wjt = F0(), Tjt = Fg(), jVe = Kz(), Ajt = sJ().isSupportedFont;
+ WVe.exports = function(t, r, n, i) {
+ function a(p, k) {
+ return Kk.coerce(t, r, jVe, p, k);
+ }
+ function o(p, k) {
+ return Kk.coerce2(t, r, jVe, p, k);
+ }
+ var s = Sjt(t, r, a);
+ if (!s) {
+ r.visible = false;
+ return;
+ }
+ if (a("text"), a("texttemplate"), a("texttemplatefallback"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("mode"), a("below"), lJ.hasMarkers(r)) {
+ xjt(t, r, n, i, a, { noLine: true, noAngle: true }), a("marker.allowoverlap"), a("marker.angle");
+ var l = r.marker;
+ l.symbol !== "circle" && (Kk.isArrayOrTypedArray(l.size) && (l.size = l.size[0]), Kk.isArrayOrTypedArray(l.color) && (l.color = l.color[0]));
+ }
+ lJ.hasLines(r) && (bjt(t, r, n, i, a, { noDash: true }), a("connectgaps"));
+ var u = o("cluster.maxzoom"), c = o("cluster.step"), f = o("cluster.color", r.marker && r.marker.color || n), h = o("cluster.size"), d = o("cluster.opacity"), v = u !== false || c !== false || f !== false || h !== false || d !== false, _ = a("cluster.enabled", v);
+ if (_ || lJ.hasText(r)) {
+ var b = i.font.family;
+ wjt(t, r, i, a, { noSelect: true, noFontVariant: true, noFontShadow: true, noFontLineposition: true, noFontTextcase: true, font: { family: Ajt(b) ? b : "Open Sans Regular", weight: i.font.weight, style: i.font.style, size: i.font.size, color: i.font.color } });
+ }
+ a("fill"), r.fill !== "none" && Tjt(t, r, n, a), Kk.coerceSelectionMarkerOpacity(r, a);
+ };
+ function Sjt(e, t, r) {
+ var n = r("lon") || [], i = r("lat") || [], a = Math.min(n.length, i.length);
+ return t._length = a, a;
+ }
+ });
+ var uJ = ye((Axr, YVe) => {
+ var ZVe = ho();
+ YVe.exports = function(t, r, n) {
+ var i = {}, a = n[r.subplot]._subplot, o = a.mockAxis, s = t.lonlat;
+ return i.lonLabel = ZVe.tickText(o, o.c2l(s[0]), true).text, i.latLabel = ZVe.tickText(o, o.c2l(s[1]), true).text, i;
+ };
+ });
+ var cJ = ye((Sxr, JVe) => {
+ var KVe = Dr();
+ JVe.exports = function(t, r) {
+ var n = t.split(" "), i = n[0], a = n[1], o = KVe.isArrayOrTypedArray(r) ? KVe.mean(r) : r, s = 0.5 + o / 100, l = 1.5 + o / 100, u = ["", ""], c = [0, 0];
+ switch (i) {
+ case "top":
+ u[0] = "top", c[1] = -l;
+ break;
+ case "bottom":
+ u[0] = "bottom", c[1] = l;
+ break;
+ }
+ switch (a) {
+ case "left":
+ u[1] = "right", c[0] = -s;
+ break;
+ case "right":
+ u[1] = "left", c[0] = s;
+ break;
+ }
+ var f;
+ return u[0] && u[1] ? f = u.join("-") : u[0] ? f = u[0] : u[1] ? f = u[1] : f = "center", { anchor: f, offset: c };
+ };
+ });
+ var iGe = ye((Mxr, rGe) => {
+ var eGe = Eo(), av = Dr(), Mjt = fs().BADNUM, $z = cx(), $Ve = tc(), Ejt = So(), kjt = O3(), Qz = Ru(), Cjt = sJ().isSupportedFont, Ljt = cJ(), Pjt = ip().appendArrayPointValue, Ijt = Zl().NEWLINES, Rjt = Zl().BR_TAG_ALL;
+ rGe.exports = function(t, r) {
+ var n = r[0].trace, i = n.visible === true && n._length !== 0, a = n.fill !== "none", o = Qz.hasLines(n), s = Qz.hasMarkers(n), l = Qz.hasText(n), u = s && n.marker.symbol === "circle", c = s && n.marker.symbol !== "circle", f = n.cluster && n.cluster.enabled, h = Jz("fill"), d = Jz("line"), v = Jz("circle"), _ = Jz("symbol"), b = { fill: h, line: d, circle: v, symbol: _ };
+ if (!i) return b;
+ var p;
+ if ((a || o) && (p = $z.calcTraceToLineCoords(r)), a && (h.geojson = $z.makePolygon(p), h.layout.visibility = "visible", av.extendFlat(h.paint, { "fill-color": n.fillcolor })), o && (d.geojson = $z.makeLine(p), d.layout.visibility = "visible", av.extendFlat(d.paint, { "line-width": n.line.width, "line-color": n.line.color, "line-opacity": n.opacity })), u) {
+ var k = Djt(r);
+ v.geojson = k.geojson, v.layout.visibility = "visible", f && (v.filter = ["!", ["has", "point_count"]], b.cluster = { type: "circle", filter: ["has", "point_count"], layout: { visibility: "visible" }, paint: { "circle-color": hJ(n.cluster.color, n.cluster.step), "circle-radius": hJ(n.cluster.size, n.cluster.step), "circle-opacity": hJ(n.cluster.opacity, n.cluster.step) } }, b.clusterCount = { type: "symbol", filter: ["has", "point_count"], paint: {}, layout: { "text-field": "{point_count_abbreviated}", "text-font": QVe(n), "text-size": 12 } }), av.extendFlat(v.paint, { "circle-color": k.mcc, "circle-radius": k.mrc, "circle-opacity": k.mo });
+ }
+ if (u && f && (v.filter = ["!", ["has", "point_count"]]), (c || l) && (_.geojson = Fjt(r, t), av.extendFlat(_.layout, { visibility: "visible", "icon-image": "{symbol}-15", "text-field": "{text}" }), c && (av.extendFlat(_.layout, { "icon-size": n.marker.size / 10 }), "angle" in n.marker && n.marker.angle !== "auto" && av.extendFlat(_.layout, { "icon-rotate": { type: "identity", property: "angle" }, "icon-rotation-alignment": "map" }), _.layout["icon-allow-overlap"] = n.marker.allowoverlap, av.extendFlat(_.paint, { "icon-opacity": n.opacity * n.marker.opacity, "icon-color": n.marker.color })), l)) {
+ var E = (n.marker || {}).size, T = Ljt(n.textposition, E);
+ av.extendFlat(_.layout, { "text-size": n.textfont.size, "text-anchor": T.anchor, "text-offset": T.offset, "text-font": QVe(n) }), av.extendFlat(_.paint, { "text-color": n.textfont.color, "text-opacity": n.opacity });
+ }
+ return b;
+ };
+ function Jz(e) {
+ return { type: e, geojson: $z.makeBlank(), layout: { visibility: "none" }, filter: null, paint: {} };
+ }
+ function Djt(e) {
+ var t = e[0].trace, r = t.marker, n = t.selectedpoints, i = av.isArrayOrTypedArray(r.color), a = av.isArrayOrTypedArray(r.size), o = av.isArrayOrTypedArray(r.opacity), s;
+ function l(E) {
+ return t.opacity * E;
+ }
+ function u(E) {
+ return E / 2;
+ }
+ var c;
+ i && ($Ve.hasColorscale(t, "marker") ? c = $Ve.makeColorScaleFuncFromTrace(r) : c = av.identity);
+ var f;
+ a && (f = kjt(t));
+ var h;
+ o && (h = function(E) {
+ var T = eGe(E) ? +av.constrain(E, 0, 1) : 0;
+ return l(T);
+ });
+ var d = [];
+ for (s = 0; s < e.length; s++) {
+ var v = e[s], _ = v.lonlat;
+ if (!tGe(_)) {
+ var b = {};
+ c && (b.mcc = v.mcc = c(v.mc)), f && (b.mrc = v.mrc = f(v.ms)), h && (b.mo = h(v.mo)), n && (b.selected = v.selected || 0), d.push({ type: "Feature", id: s + 1, geometry: { type: "Point", coordinates: _ }, properties: b });
+ }
+ }
+ var p;
+ if (n) for (p = Ejt.makeSelectedPointStyleFns(t), s = 0; s < d.length; s++) {
+ var k = d[s].properties;
+ p.selectedOpacityFn && (k.mo = l(p.selectedOpacityFn(k))), p.selectedColorFn && (k.mcc = p.selectedColorFn(k)), p.selectedSizeFn && (k.mrc = p.selectedSizeFn(k));
+ }
+ return { geojson: { type: "FeatureCollection", features: d }, mcc: i || p && p.selectedColorFn ? { type: "identity", property: "mcc" } : r.color, mrc: a || p && p.selectedSizeFn ? { type: "identity", property: "mrc" } : u(r.size), mo: o || p && p.selectedOpacityFn ? { type: "identity", property: "mo" } : l(r.opacity) };
+ }
+ function Fjt(e, t) {
+ for (var r = t._fullLayout, n = e[0].trace, i = n.marker || {}, a = i.symbol, o = i.angle, s = a !== "circle" ? fJ(a) : e7, l = o !== "auto" ? fJ(o, true) : e7, u = Qz.hasText(n) ? fJ(n.text) : e7, c = [], f = 0; f < e.length; f++) {
+ var h = e[f];
+ if (!tGe(h.lonlat)) {
+ var d = n.texttemplate, v;
+ if (d) {
+ var _ = Array.isArray(d) ? d[f] || "" : d, b = n._module.formatLabels(h, n, r), p = {};
+ Pjt(p, n, h.i), v = av.texttemplateString({ data: [p, h, n._meta], fallback: n.texttemplatefallback, labels: b, locale: r._d3locale, template: _ });
+ } else v = u(f);
+ v && (v = v.replace(Ijt, "").replace(Rjt, `
+`)), c.push({ type: "Feature", geometry: { type: "Point", coordinates: h.lonlat }, properties: { symbol: s(f), angle: l(f), text: v } });
+ }
+ }
+ return { type: "FeatureCollection", features: c };
+ }
+ function fJ(e, t) {
+ return av.isArrayOrTypedArray(e) ? t ? function(r) {
+ return eGe(e[r]) ? +e[r] : 0;
+ } : function(r) {
+ return e[r];
+ } : e ? function() {
+ return e;
+ } : e7;
+ }
+ function e7() {
+ return "";
+ }
+ function tGe(e) {
+ return e[0] === Mjt;
+ }
+ function hJ(e, t) {
+ var r;
+ if (av.isArrayOrTypedArray(e) && av.isArrayOrTypedArray(t)) {
+ r = ["step", ["get", "point_count"], e[0]];
+ for (var n = 1; n < e.length; n++) r.push(t[n - 1], e[n]);
+ } else r = e;
+ return r;
+ }
+ function QVe(e) {
+ var t = e.textfont, r = t.family, n = t.style, i = t.weight, a = r.split(" "), o = a[a.length - 1] === "Italic";
+ o && a.pop(), o = o || n === "italic";
+ var s = a.join(" ");
+ i === "bold" && a.indexOf("Bold") === -1 ? s += " Bold" : i <= 1e3 && (a[0] === "Metropolis" ? (s = "Metropolis", i > 850 ? s += " Black" : i > 750 ? s += " Extra Bold" : i > 650 ? s += " Bold" : i > 550 ? s += " Semi Bold" : i > 450 ? s += " Medium" : i > 350 ? s += " Regular" : i > 250 ? s += " Light" : i > 150 ? s += " Extra Light" : s += " Thin") : a.slice(0, 2).join(" ") === "Open Sans" ? (s = "Open Sans", i > 750 ? s += " Extrabold" : i > 650 ? s += " Bold" : i > 550 ? s += " Semibold" : i > 350 ? s += " Regular" : s += " Light") : a.slice(0, 3).join(" ") === "Klokantech Noto Sans" && (s = "Klokantech Noto Sans", a[3] === "CJK" && (s += " CJK"), s += i > 500 ? " Bold" : " Regular")), o && (s += " Italic"), s === "Open Sans Regular Italic" ? s = "Open Sans Italic" : s === "Open Sans Regular Bold" ? s = "Open Sans Bold" : s === "Open Sans Regular Bold Italic" ? s = "Open Sans Bold Italic" : s === "Klokantech Noto Sans Regular Italic" && (s = "Klokantech Noto Sans Italic"), Cjt(s) || (s = r);
+ var l = s.split(", ");
+ return l;
+ }
+ });
+ var sGe = ye((Exr, oGe) => {
+ var zjt = Dr(), nGe = iGe(), C5 = m1().traceLayerPrefix, ng = { cluster: ["cluster", "clusterCount", "circle"], nonCluster: ["fill", "line", "circle", "symbol"] };
+ function aGe(e, t, r, n) {
+ this.type = "scattermapbox", this.subplot = e, this.uid = t, this.clusterEnabled = r, this.isHidden = n, this.sourceIds = { fill: "source-" + t + "-fill", line: "source-" + t + "-line", circle: "source-" + t + "-circle", symbol: "source-" + t + "-symbol", cluster: "source-" + t + "-circle", clusterCount: "source-" + t + "-circle" }, this.layerIds = { fill: C5 + t + "-fill", line: C5 + t + "-line", circle: C5 + t + "-circle", symbol: C5 + t + "-symbol", cluster: C5 + t + "-cluster", clusterCount: C5 + t + "-cluster-count" }, this.below = null;
+ }
+ var Jk = aGe.prototype;
+ Jk.addSource = function(e, t, r) {
+ var n = { type: "geojson", data: t.geojson };
+ r && r.enabled && zjt.extendFlat(n, { cluster: true, clusterMaxZoom: r.maxzoom });
+ var i = this.subplot.map.getSource(this.sourceIds[e]);
+ i ? i.setData(t.geojson) : this.subplot.map.addSource(this.sourceIds[e], n);
+ };
+ Jk.setSourceData = function(e, t) {
+ this.subplot.map.getSource(this.sourceIds[e]).setData(t.geojson);
+ };
+ Jk.addLayer = function(e, t, r) {
+ var n = { type: t.type, id: this.layerIds[e], source: this.sourceIds[e], layout: t.layout, paint: t.paint };
+ t.filter && (n.filter = t.filter);
+ for (var i = this.layerIds[e], a, o = this.subplot.getMapLayers(), s = 0; s < o.length; s++) if (o[s].id === i) {
+ a = true;
+ break;
+ }
+ a ? (this.subplot.setOptions(i, "setLayoutProperty", n.layout), n.layout.visibility === "visible" && this.subplot.setOptions(i, "setPaintProperty", n.paint)) : this.subplot.addLayer(n, r);
+ };
+ Jk.update = function(t) {
+ var r = t[0].trace, n = this.subplot, i = n.map, a = nGe(n.gd, t), o = n.belowLookup["trace-" + this.uid], s = !!(r.cluster && r.cluster.enabled), l = !!this.clusterEnabled, u = this;
+ function c(E) {
+ E || u.addSource("circle", a.circle, r.cluster);
+ for (var T = ng.cluster, L = 0; L < T.length; L++) {
+ var x = T[L], C = a[x];
+ u.addLayer(x, C, o);
+ }
+ }
+ function f(E) {
+ for (var T = ng.cluster, L = T.length - 1; L >= 0; L--) {
+ var x = T[L];
+ i.removeLayer(u.layerIds[x]);
+ }
+ E || i.removeSource(u.sourceIds.circle);
+ }
+ function h(E) {
+ for (var T = ng.nonCluster, L = 0; L < T.length; L++) {
+ var x = T[L], C = a[x];
+ E || u.addSource(x, C), u.addLayer(x, C, o);
+ }
+ }
+ function d(E) {
+ for (var T = ng.nonCluster, L = T.length - 1; L >= 0; L--) {
+ var x = T[L];
+ i.removeLayer(u.layerIds[x]), E || i.removeSource(u.sourceIds[x]);
+ }
+ }
+ function v(E) {
+ l ? f(E) : d(E);
+ }
+ function _(E) {
+ s ? c(E) : h(E);
+ }
+ function b() {
+ for (var E = s ? ng.cluster : ng.nonCluster, T = 0; T < E.length; T++) {
+ var L = E[T], x = a[L];
+ x && (n.setOptions(u.layerIds[L], "setLayoutProperty", x.layout), x.layout.visibility === "visible" && (L !== "cluster" && u.setSourceData(L, x), n.setOptions(u.layerIds[L], "setPaintProperty", x.paint)));
+ }
+ }
+ var p = this.isHidden, k = r.visible !== true;
+ k ? p || v() : p ? k || _() : l !== s ? (v(), _()) : (this.below !== o && (v(true), _(true)), b()), this.clusterEnabled = s, this.isHidden = k, this.below = o, t[0].trace._glTrace = this;
+ };
+ Jk.dispose = function() {
+ for (var t = this.subplot.map, r = this.clusterEnabled ? ng.cluster : ng.nonCluster, n = r.length - 1; n >= 0; n--) {
+ var i = r[n];
+ t.removeLayer(this.layerIds[i]), t.removeSource(this.sourceIds[i]);
+ }
+ };
+ oGe.exports = function(t, r) {
+ var n = r[0].trace, i = n.cluster && n.cluster.enabled, a = n.visible !== true, o = new aGe(t, n.uid, i, a), s = nGe(t.gd, r), l = o.below = t.belowLookup["trace-" + n.uid], u, c, f;
+ if (i) for (o.addSource("circle", s.circle, n.cluster), u = 0; u < ng.cluster.length; u++) c = ng.cluster[u], f = s[c], o.addLayer(c, f, l);
+ else for (u = 0; u < ng.nonCluster.length; u++) c = ng.nonCluster[u], f = s[c], o.addSource(c, f, n.cluster), o.addLayer(c, f, l);
+ return r[0].trace._glTrace = o, o;
+ };
+ });
+ var t7 = ye((kxr, uGe) => {
+ var Ojt = vf(), dJ = Dr(), qjt = gT(), Bjt = dJ.fillText, Njt = fs().BADNUM, Ujt = m1().traceLayerPrefix;
+ function Vjt(e, t, r) {
+ var n = e.cd, i = n[0].trace, a = e.xa, o = e.ya, s = e.subplot, l = [], u = Ujt + i.uid + "-circle", c = i.cluster && i.cluster.enabled;
+ if (c) {
+ var f = s.map.queryRenderedFeatures(null, { layers: [u] });
+ l = f.map(function(M) {
+ return M.id;
+ });
+ }
+ var h = t >= 0 ? Math.floor((t + 180) / 360) : Math.ceil((t - 180) / 360), d = h * 360, v = t - d;
+ function _(M) {
+ var g = M.lonlat;
+ if (g[0] === Njt || c && l.indexOf(M.i + 1) === -1) return 1 / 0;
+ var P = dJ.modHalf(g[0], 360), A = g[1], z = s.project([P, A]), O = z.x - a.c2p([v, A]), U = z.y - o.c2p([P, r]), G = Math.max(3, M.mrc || 0);
+ return Math.max(Math.sqrt(O * O + U * U) - G, 1 - 3 / G);
+ }
+ if (Ojt.getClosest(n, _, e), e.index !== false) {
+ var b = n[e.index], p = b.lonlat, k = [dJ.modHalf(p[0], 360) + d, p[1]], E = a.c2p(k), T = o.c2p(k), L = b.mrc || 1;
+ e.x0 = E - L, e.x1 = E + L, e.y0 = T - L, e.y1 = T + L;
+ var x = {};
+ x[i.subplot] = { _subplot: s };
+ var C = i._module.formatLabels(b, i, x);
+ return e.lonLabel = C.lonLabel, e.latLabel = C.latLabel, e.color = qjt(i, b), e.extraText = lGe(i, b, n[0].t.labels), e.hovertemplate = i.hovertemplate, [e];
+ }
+ }
+ function lGe(e, t, r) {
+ if (e.hovertemplate) return;
+ var n = t.hi || e.hoverinfo, i = n.split("+"), a = i.indexOf("all") !== -1, o = i.indexOf("lon") !== -1, s = i.indexOf("lat") !== -1, l = t.lonlat, u = [];
+ function c(f) {
+ return f + "°";
+ }
+ return a || o && s ? u.push("(" + c(l[1]) + ", " + c(l[0]) + ")") : o ? u.push(r.lon + c(l[0])) : s && u.push(r.lat + c(l[1])), (a || i.indexOf("text") !== -1) && Bjt(t, e, u), u.join(" ");
+ }
+ uGe.exports = { hoverPoints: Vjt, getExtraText: lGe };
+ });
+ var fGe = ye((Cxr, cGe) => {
+ cGe.exports = function(t, r) {
+ return t.lon = r.lon, t.lat = r.lat, t;
+ };
+ });
+ var dGe = ye((Lxr, hGe) => {
+ var Gjt = Dr(), Hjt = Ru(), jjt = fs().BADNUM;
+ hGe.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = [], s = n[0].trace, l;
+ if (!Hjt.hasMarkers(s)) return [];
+ if (r === false) for (l = 0; l < n.length; l++) n[l].selected = 0;
+ else for (l = 0; l < n.length; l++) {
+ var u = n[l], c = u.lonlat;
+ if (c[0] !== jjt) {
+ var f = [Gjt.modHalf(c[0], 360), c[1]], h = [i.c2p(f), a.c2p(f)];
+ r.contains(h, null, l, t) ? (o.push({ pointNumber: l, lon: c[0], lat: c[1] }), u.selected = 1) : u.selected = 0;
+ }
+ }
+ return o;
+ };
+ });
+ var gJ = ye((vJ, pJ) => {
+ (function(e, t) {
+ typeof vJ == "object" && typeof pJ != "undefined" ? pJ.exports = t() : (e = e || self, e.mapboxgl = t());
+ })(vJ, function() {
+ var e, t, r;
+ function n(i, a) {
+ if (!e) e = a;
+ else if (!t) t = a;
+ else {
+ var o = "var sharedChunk = {}; (" + e + ")(sharedChunk); (" + t + ")(sharedChunk);", s = {};
+ e(s), r = a(s), typeof window != "undefined" && (r.workerUrl = window.URL.createObjectURL(new Blob([o], { type: "text/javascript" })));
+ }
+ }
+ return n(["exports"], function(i) {
+ function a(m, y) {
+ return y = { exports: {} }, m(y, y.exports), y.exports;
+ }
+ var o = "1.13.4", s = l;
+ function l(m, y, I, V) {
+ this.cx = 3 * m, this.bx = 3 * (I - m) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * y, this.by = 3 * (V - y) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = m, this.p1y = V, this.p2x = I, this.p2y = V;
+ }
+ l.prototype.sampleCurveX = function(m) {
+ return ((this.ax * m + this.bx) * m + this.cx) * m;
+ }, l.prototype.sampleCurveY = function(m) {
+ return ((this.ay * m + this.by) * m + this.cy) * m;
+ }, l.prototype.sampleCurveDerivativeX = function(m) {
+ return (3 * this.ax * m + 2 * this.bx) * m + this.cx;
+ }, l.prototype.solveCurveX = function(m, y) {
+ typeof y == "undefined" && (y = 1e-6);
+ var I, V, $, ae, he;
+ for ($ = m, he = 0; he < 8; he++) {
+ if (ae = this.sampleCurveX($) - m, Math.abs(ae) < y) return $;
+ var ze = this.sampleCurveDerivativeX($);
+ if (Math.abs(ze) < 1e-6) break;
+ $ = $ - ae / ze;
+ }
+ if (I = 0, V = 1, $ = m, $ < I) return I;
+ if ($ > V) return V;
+ for (; I < V; ) {
+ if (ae = this.sampleCurveX($), Math.abs(ae - m) < y) return $;
+ m > ae ? I = $ : V = $, $ = (V - I) * 0.5 + I;
+ }
+ return $;
+ }, l.prototype.solve = function(m, y) {
+ return this.sampleCurveY(this.solveCurveX(m, y));
+ };
+ var u = c;
+ function c(m, y) {
+ this.x = m, this.y = y;
+ }
+ c.prototype = { clone: function() {
+ return new c(this.x, this.y);
+ }, add: function(m) {
+ return this.clone()._add(m);
+ }, sub: function(m) {
+ return this.clone()._sub(m);
+ }, multByPoint: function(m) {
+ return this.clone()._multByPoint(m);
+ }, divByPoint: function(m) {
+ return this.clone()._divByPoint(m);
+ }, mult: function(m) {
+ return this.clone()._mult(m);
+ }, div: function(m) {
+ return this.clone()._div(m);
+ }, rotate: function(m) {
+ return this.clone()._rotate(m);
+ }, rotateAround: function(m, y) {
+ return this.clone()._rotateAround(m, y);
+ }, matMult: function(m) {
+ return this.clone()._matMult(m);
+ }, unit: function() {
+ return this.clone()._unit();
+ }, perp: function() {
+ return this.clone()._perp();
+ }, round: function() {
+ return this.clone()._round();
+ }, mag: function() {
+ return Math.sqrt(this.x * this.x + this.y * this.y);
+ }, equals: function(m) {
+ return this.x === m.x && this.y === m.y;
+ }, dist: function(m) {
+ return Math.sqrt(this.distSqr(m));
+ }, distSqr: function(m) {
+ var y = m.x - this.x, I = m.y - this.y;
+ return y * y + I * I;
+ }, angle: function() {
+ return Math.atan2(this.y, this.x);
+ }, angleTo: function(m) {
+ return Math.atan2(this.y - m.y, this.x - m.x);
+ }, angleWith: function(m) {
+ return this.angleWithSep(m.x, m.y);
+ }, angleWithSep: function(m, y) {
+ return Math.atan2(this.x * y - this.y * m, this.x * m + this.y * y);
+ }, _matMult: function(m) {
+ var y = m[0] * this.x + m[1] * this.y, I = m[2] * this.x + m[3] * this.y;
+ return this.x = y, this.y = I, this;
+ }, _add: function(m) {
+ return this.x += m.x, this.y += m.y, this;
+ }, _sub: function(m) {
+ return this.x -= m.x, this.y -= m.y, this;
+ }, _mult: function(m) {
+ return this.x *= m, this.y *= m, this;
+ }, _div: function(m) {
+ return this.x /= m, this.y /= m, this;
+ }, _multByPoint: function(m) {
+ return this.x *= m.x, this.y *= m.y, this;
+ }, _divByPoint: function(m) {
+ return this.x /= m.x, this.y /= m.y, this;
+ }, _unit: function() {
+ return this._div(this.mag()), this;
+ }, _perp: function() {
+ var m = this.y;
+ return this.y = this.x, this.x = -m, this;
+ }, _rotate: function(m) {
+ var y = Math.cos(m), I = Math.sin(m), V = y * this.x - I * this.y, $ = I * this.x + y * this.y;
+ return this.x = V, this.y = $, this;
+ }, _rotateAround: function(m, y) {
+ var I = Math.cos(m), V = Math.sin(m), $ = y.x + I * (this.x - y.x) - V * (this.y - y.y), ae = y.y + V * (this.x - y.x) + I * (this.y - y.y);
+ return this.x = $, this.y = ae, this;
+ }, _round: function() {
+ return this.x = Math.round(this.x), this.y = Math.round(this.y), this;
+ } }, c.convert = function(m) {
+ return m instanceof c ? m : Array.isArray(m) ? new c(m[0], m[1]) : m;
+ };
+ var f = typeof self != "undefined" ? self : {};
+ function h(m, y) {
+ if (Array.isArray(m)) {
+ if (!Array.isArray(y) || m.length !== y.length) return false;
+ for (var I = 0; I < m.length; I++) if (!h(m[I], y[I])) return false;
+ return true;
+ }
+ if (typeof m == "object" && m !== null && y !== null) {
+ if (typeof y != "object") return false;
+ var V = Object.keys(m);
+ if (V.length !== Object.keys(y).length) return false;
+ for (var $ in m) if (!h(m[$], y[$])) return false;
+ return true;
+ }
+ return m === y;
+ }
+ var d = Math.pow(2, 53) - 1;
+ function v(m) {
+ if (m <= 0) return 0;
+ if (m >= 1) return 1;
+ var y = m * m, I = y * m;
+ return 4 * (m < 0.5 ? I : 3 * (m - y) + I - 0.75);
+ }
+ function _(m, y, I, V) {
+ var $ = new s(m, y, I, V);
+ return function(ae) {
+ return $.solve(ae);
+ };
+ }
+ var b = _(0.25, 0.1, 0.25, 1);
+ function p(m, y, I) {
+ return Math.min(I, Math.max(y, m));
+ }
+ function k(m, y, I) {
+ var V = I - y, $ = ((m - y) % V + V) % V + y;
+ return $ === y ? I : $;
+ }
+ function E(m, y, I) {
+ if (!m.length) return I(null, []);
+ var V = m.length, $ = new Array(m.length), ae = null;
+ m.forEach(function(he, ze) {
+ y(he, function(rt, gt) {
+ rt && (ae = rt), $[ze] = gt, --V === 0 && I(ae, $);
+ });
+ });
+ }
+ function T(m) {
+ var y = [];
+ for (var I in m) y.push(m[I]);
+ return y;
+ }
+ function L(m, y) {
+ var I = [];
+ for (var V in m) V in y || I.push(V);
+ return I;
+ }
+ function x(m) {
+ for (var y = [], I = arguments.length - 1; I-- > 0; ) y[I] = arguments[I + 1];
+ for (var V = 0, $ = y; V < $.length; V += 1) {
+ var ae = $[V];
+ for (var he in ae) m[he] = ae[he];
+ }
+ return m;
+ }
+ function C(m, y) {
+ for (var I = {}, V = 0; V < y.length; V++) {
+ var $ = y[V];
+ $ in m && (I[$] = m[$]);
+ }
+ return I;
+ }
+ var M = 1;
+ function g() {
+ return M++;
+ }
+ function P() {
+ function m(y) {
+ return y ? (y ^ Math.random() * 16 >> y / 4).toString(16) : ([1e7] + -[1e3] + -4e3 + -8e3 + -1e11).replace(/[018]/g, m);
+ }
+ return m();
+ }
+ function A(m) {
+ return m <= 1 ? 1 : Math.pow(2, Math.ceil(Math.log(m) / Math.LN2));
+ }
+ function z(m) {
+ return m ? /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(m) : false;
+ }
+ function O(m, y) {
+ m.forEach(function(I) {
+ y[I] && (y[I] = y[I].bind(y));
+ });
+ }
+ function U(m, y) {
+ return m.indexOf(y, m.length - y.length) !== -1;
+ }
+ function G(m, y, I) {
+ var V = {};
+ for (var $ in m) V[$] = y.call(I || this, m[$], $, m);
+ return V;
+ }
+ function Z(m, y, I) {
+ var V = {};
+ for (var $ in m) y.call(I || this, m[$], $, m) && (V[$] = m[$]);
+ return V;
+ }
+ function j(m) {
+ return Array.isArray(m) ? m.map(j) : typeof m == "object" && m ? G(m, j) : m;
+ }
+ function N(m, y) {
+ for (var I = 0; I < m.length; I++) if (y.indexOf(m[I]) >= 0) return true;
+ return false;
+ }
+ var H = {};
+ function re(m) {
+ H[m] || (typeof console != "undefined" && console.warn(m), H[m] = true);
+ }
+ function oe(m, y, I) {
+ return (I.y - m.y) * (y.x - m.x) > (y.y - m.y) * (I.x - m.x);
+ }
+ function _e(m) {
+ for (var y = 0, I = 0, V = m.length, $ = V - 1, ae = void 0, he = void 0; I < V; $ = I++) ae = m[I], he = m[$], y += (he.x - ae.x) * (ae.y + he.y);
+ return y;
+ }
+ function Ce(m) {
+ var y = m[0], I = m[1], V = m[2];
+ return I += 90, I *= Math.PI / 180, V *= Math.PI / 180, { x: y * Math.cos(I) * Math.sin(V), y: y * Math.sin(I) * Math.sin(V), z: y * Math.cos(V) };
+ }
+ function Le() {
+ return typeof WorkerGlobalScope != "undefined" && typeof self != "undefined" && self instanceof WorkerGlobalScope;
+ }
+ function ge(m) {
+ var y = /(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, I = {};
+ if (m.replace(y, function($, ae, he, ze) {
+ var rt = he || ze;
+ return I[ae] = rt ? rt.toLowerCase() : true, "";
+ }), I["max-age"]) {
+ var V = parseInt(I["max-age"], 10);
+ isNaN(V) ? delete I["max-age"] : I["max-age"] = V;
+ }
+ return I;
+ }
+ var ie = null;
+ function Se(m) {
+ if (ie == null) {
+ var y = m.navigator ? m.navigator.userAgent : null;
+ ie = !!m.safari || !!(y && (/\b(iPad|iPhone|iPod)\b/.test(y) || y.match("Safari") && !y.match("Chrome")));
+ }
+ return ie;
+ }
+ function Ee(m) {
+ try {
+ var y = f[m];
+ return y.setItem("_mapbox_test_", 1), y.removeItem("_mapbox_test_"), true;
+ } catch (I) {
+ return false;
+ }
+ }
+ function Ae(m) {
+ return f.btoa(encodeURIComponent(m).replace(/%([0-9A-F]{2})/g, function(y, I) {
+ return String.fromCharCode(+("0x" + I));
+ }));
+ }
+ function Be(m) {
+ return decodeURIComponent(f.atob(m).split("").map(function(y) {
+ return "%" + ("00" + y.charCodeAt(0).toString(16)).slice(-2);
+ }).join(""));
+ }
+ var Pe = f.performance && f.performance.now ? f.performance.now.bind(f.performance) : Date.now.bind(Date), me = f.requestAnimationFrame || f.mozRequestAnimationFrame || f.webkitRequestAnimationFrame || f.msRequestAnimationFrame, De = f.cancelAnimationFrame || f.mozCancelAnimationFrame || f.webkitCancelAnimationFrame || f.msCancelAnimationFrame, ce, je, lt = { now: Pe, frame: function(y) {
+ var I = me(y);
+ return { cancel: function() {
+ return De(I);
+ } };
+ }, getImageData: function(y, I) {
+ I === void 0 && (I = 0);
+ var V = f.document.createElement("canvas"), $ = V.getContext("2d");
+ if (!$) throw new Error("failed to create canvas 2d context");
+ return V.width = y.width, V.height = y.height, $.drawImage(y, 0, 0, y.width, y.height), $.getImageData(-I, -I, y.width + 2 * I, y.height + 2 * I);
+ }, resolveURL: function(y) {
+ return ce || (ce = f.document.createElement("a")), ce.href = y, ce.href;
+ }, hardwareConcurrency: f.navigator && f.navigator.hardwareConcurrency || 4, get devicePixelRatio() {
+ return f.devicePixelRatio;
+ }, get prefersReducedMotion() {
+ return f.matchMedia ? (je == null && (je = f.matchMedia("(prefers-reduced-motion: reduce)")), je.matches) : false;
+ } }, pt = { API_URL: "https://api.mapbox.com", get EVENTS_URL() {
+ return this.API_URL ? this.API_URL.indexOf("https://api.mapbox.cn") === 0 ? "https://events.mapbox.cn/events/v2" : this.API_URL.indexOf("https://api.mapbox.com") === 0 ? "https://events.mapbox.com/events/v2" : null : null;
+ }, FEEDBACK_URL: "https://apps.mapbox.com/feedback", REQUIRE_ACCESS_TOKEN: true, ACCESS_TOKEN: null, MAX_PARALLEL_IMAGE_REQUESTS: 16 }, Vt = { supported: false, testSupport: $t }, ot, ut = false, Wt, Nt = false;
+ f.document && (Wt = f.document.createElement("img"), Wt.onload = function() {
+ ot && sr(ot), ot = null, Nt = true;
+ }, Wt.onerror = function() {
+ ut = true, ot = null;
+ }, Wt.src = "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");
+ function $t(m) {
+ ut || !Wt || (Nt ? sr(m) : ot = m);
+ }
+ function sr(m) {
+ var y = m.createTexture();
+ m.bindTexture(m.TEXTURE_2D, y);
+ try {
+ if (m.texImage2D(m.TEXTURE_2D, 0, m.RGBA, m.RGBA, m.UNSIGNED_BYTE, Wt), m.isContextLost()) return;
+ Vt.supported = true;
+ } catch (I) {
+ }
+ m.deleteTexture(y), ut = true;
+ }
+ var Tr = "01";
+ function fr() {
+ for (var m = "1", y = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", I = "", V = 0; V < 10; V++) I += y[Math.floor(Math.random() * 62)];
+ var $ = 12 * 60 * 60 * 1e3, ae = [m, Tr, I].join(""), he = Date.now() + $;
+ return { token: ae, tokenExpiresAt: he };
+ }
+ var $e = function(y, I) {
+ this._transformRequestFn = y, this._customAccessToken = I, this._createSkuToken();
+ };
+ $e.prototype._createSkuToken = function() {
+ var y = fr();
+ this._skuToken = y.token, this._skuTokenExpiresAt = y.tokenExpiresAt;
+ }, $e.prototype._isSkuTokenExpired = function() {
+ return Date.now() > this._skuTokenExpiresAt;
+ }, $e.prototype.transformRequest = function(y, I) {
+ return this._transformRequestFn ? this._transformRequestFn(y, I) || { url: y } : { url: y };
+ }, $e.prototype.normalizeStyleURL = function(y, I) {
+ if (!St(y)) return y;
+ var V = er(y);
+ return V.path = "/styles/v1" + V.path, this._makeAPIURL(V, this._customAccessToken || I);
+ }, $e.prototype.normalizeGlyphsURL = function(y, I) {
+ if (!St(y)) return y;
+ var V = er(y);
+ return V.path = "/fonts/v1" + V.path, this._makeAPIURL(V, this._customAccessToken || I);
+ }, $e.prototype.normalizeSourceURL = function(y, I) {
+ if (!St(y)) return y;
+ var V = er(y);
+ return V.path = "/v4/" + V.authority + ".json", V.params.push("secure"), this._makeAPIURL(V, this._customAccessToken || I);
+ }, $e.prototype.normalizeSpriteURL = function(y, I, V, $) {
+ var ae = er(y);
+ return St(y) ? (ae.path = "/styles/v1" + ae.path + "/sprite" + I + V, this._makeAPIURL(ae, this._customAccessToken || $)) : (ae.path += "" + I + V, lr(ae));
+ }, $e.prototype.normalizeTileURL = function(y, I) {
+ if (this._isSkuTokenExpired() && this._createSkuToken(), y && !St(y)) return y;
+ var V = er(y), $ = /(\.(png|jpg)\d*)(?=$)/, ae = /^.+\/v4\//, he = lt.devicePixelRatio >= 2 || I === 512 ? "@2x" : "", ze = Vt.supported ? ".webp" : "$1";
+ V.path = V.path.replace($, "" + he + ze), V.path = V.path.replace(ae, "/"), V.path = "/v4" + V.path;
+ var rt = this._customAccessToken || It(V.params) || pt.ACCESS_TOKEN;
+ return pt.REQUIRE_ACCESS_TOKEN && rt && this._skuToken && V.params.push("sku=" + this._skuToken), this._makeAPIURL(V, rt);
+ }, $e.prototype.canonicalizeTileURL = function(y, I) {
+ var V = "/v4/", $ = /\.[\w]+$/, ae = er(y);
+ if (!ae.path.match(/(^\/v4\/)/) || !ae.path.match($)) return y;
+ var he = "mapbox://tiles/";
+ he += ae.path.replace(V, "");
+ var ze = ae.params;
+ return I && (ze = ze.filter(function(rt) {
+ return !rt.match(/^access_token=/);
+ })), ze.length && (he += "?" + ze.join("&")), he;
+ }, $e.prototype.canonicalizeTileset = function(y, I) {
+ for (var V = I ? St(I) : false, $ = [], ae = 0, he = y.tiles || []; ae < he.length; ae += 1) {
+ var ze = he[ae];
+ Gt(ze) ? $.push(this.canonicalizeTileURL(ze, V)) : $.push(ze);
+ }
+ return $;
+ }, $e.prototype._makeAPIURL = function(y, I) {
+ var V = "See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes", $ = er(pt.API_URL);
+ if (y.protocol = $.protocol, y.authority = $.authority, y.protocol === "http") {
+ var ae = y.params.indexOf("secure");
+ ae >= 0 && y.params.splice(ae, 1);
+ }
+ if ($.path !== "/" && (y.path = "" + $.path + y.path), !pt.REQUIRE_ACCESS_TOKEN) return lr(y);
+ if (I = I || pt.ACCESS_TOKEN, !I) throw new Error("An API access token is required to use Mapbox GL. " + V);
+ if (I[0] === "s") throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). " + V);
+ return y.params = y.params.filter(function(he) {
+ return he.indexOf("access_token") === -1;
+ }), y.params.push("access_token=" + I), lr(y);
+ };
+ function St(m) {
+ return m.indexOf("mapbox:") === 0;
+ }
+ var Qt = /^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;
+ function Gt(m) {
+ return Qt.test(m);
+ }
+ function _t(m) {
+ return m.indexOf("sku=") > 0 && Gt(m);
+ }
+ function It(m) {
+ for (var y = 0, I = m; y < I.length; y += 1) {
+ var V = I[y], $ = V.match(/^access_token=(.*)$/);
+ if ($) return $[1];
+ }
+ return null;
+ }
+ var mt = /^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;
+ function er(m) {
+ var y = m.match(mt);
+ if (!y) throw new Error("Unable to parse URL object");
+ return { protocol: y[1], authority: y[2], path: y[3] || "/", params: y[4] ? y[4].split("&") : [] };
+ }
+ function lr(m) {
+ var y = m.params.length ? "?" + m.params.join("&") : "";
+ return m.protocol + "://" + m.authority + m.path + y;
+ }
+ var wr = "mapbox.eventData";
+ function Lr(m) {
+ if (!m) return null;
+ var y = m.split(".");
+ if (!y || y.length !== 3) return null;
+ try {
+ var I = JSON.parse(Be(y[1]));
+ return I;
+ } catch (V) {
+ return null;
+ }
+ }
+ var ti = function(y) {
+ this.type = y, this.anonId = null, this.eventData = {}, this.queue = [], this.pendingRequest = null;
+ };
+ ti.prototype.getStorageKey = function(y) {
+ var I = Lr(pt.ACCESS_TOKEN), V = "";
+ return I && I.u ? V = Ae(I.u) : V = pt.ACCESS_TOKEN || "", y ? wr + "." + y + ":" + V : wr + ":" + V;
+ }, ti.prototype.fetchEventData = function() {
+ var y = Ee("localStorage"), I = this.getStorageKey(), V = this.getStorageKey("uuid");
+ if (y) try {
+ var $ = f.localStorage.getItem(I);
+ $ && (this.eventData = JSON.parse($));
+ var ae = f.localStorage.getItem(V);
+ ae && (this.anonId = ae);
+ } catch (he) {
+ re("Unable to read from LocalStorage");
+ }
+ }, ti.prototype.saveEventData = function() {
+ var y = Ee("localStorage"), I = this.getStorageKey(), V = this.getStorageKey("uuid");
+ if (y) try {
+ f.localStorage.setItem(V, this.anonId), Object.keys(this.eventData).length >= 1 && f.localStorage.setItem(I, JSON.stringify(this.eventData));
+ } catch ($) {
+ re("Unable to write to LocalStorage");
+ }
+ }, ti.prototype.processRequests = function(y) {
+ }, ti.prototype.postEvent = function(y, I, V, $) {
+ var ae = this;
+ if (pt.EVENTS_URL) {
+ var he = er(pt.EVENTS_URL);
+ he.params.push("access_token=" + ($ || pt.ACCESS_TOKEN || ""));
+ var ze = { event: this.type, created: new Date(y).toISOString(), sdkIdentifier: "mapbox-gl-js", sdkVersion: o, skuId: Tr, userId: this.anonId }, rt = I ? x(ze, I) : ze, gt = { url: lr(he), headers: { "Content-Type": "text/plain" }, body: JSON.stringify([rt]) };
+ this.pendingRequest = Qr(gt, function(Et) {
+ ae.pendingRequest = null, V(Et), ae.saveEventData(), ae.processRequests($);
+ });
+ }
+ }, ti.prototype.queueRequest = function(y, I) {
+ this.queue.push(y), this.processRequests(I);
+ };
+ var Br = function(m) {
+ function y() {
+ m.call(this, "map.load"), this.success = {}, this.skuToken = "";
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.postMapLoadEvent = function(V, $, ae, he) {
+ this.skuToken = ae, (pt.EVENTS_URL && he || pt.ACCESS_TOKEN && Array.isArray(V) && V.some(function(ze) {
+ return St(ze) || Gt(ze);
+ })) && this.queueRequest({ id: $, timestamp: Date.now() }, he);
+ }, y.prototype.processRequests = function(V) {
+ var $ = this;
+ if (!(this.pendingRequest || this.queue.length === 0)) {
+ var ae = this.queue.shift(), he = ae.id, ze = ae.timestamp;
+ he && this.success[he] || (this.anonId || this.fetchEventData(), z(this.anonId) || (this.anonId = P()), this.postEvent(ze, { skuToken: this.skuToken }, function(rt) {
+ rt || he && ($.success[he] = true);
+ }, V));
+ }
+ }, y;
+ }(ti), Vr = function(m) {
+ function y(I) {
+ m.call(this, "appUserTurnstile"), this._customAccessToken = I;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.postTurnstileEvent = function(V, $) {
+ pt.EVENTS_URL && pt.ACCESS_TOKEN && Array.isArray(V) && V.some(function(ae) {
+ return St(ae) || Gt(ae);
+ }) && this.queueRequest(Date.now(), $);
+ }, y.prototype.processRequests = function(V) {
+ var $ = this;
+ if (!(this.pendingRequest || this.queue.length === 0)) {
+ (!this.anonId || !this.eventData.lastSuccess || !this.eventData.tokenU) && this.fetchEventData();
+ var ae = Lr(pt.ACCESS_TOKEN), he = ae ? ae.u : pt.ACCESS_TOKEN, ze = he !== this.eventData.tokenU;
+ z(this.anonId) || (this.anonId = P(), ze = true);
+ var rt = this.queue.shift();
+ if (this.eventData.lastSuccess) {
+ var gt = new Date(this.eventData.lastSuccess), Et = new Date(rt), or = (rt - this.eventData.lastSuccess) / (24 * 60 * 60 * 1e3);
+ ze = ze || or >= 1 || or < -1 || gt.getDate() !== Et.getDate();
+ } else ze = true;
+ if (!ze) return this.processRequests();
+ this.postEvent(rt, { "enabled.telemetry": false }, function(_r) {
+ _r || ($.eventData.lastSuccess = rt, $.eventData.tokenU = he);
+ }, V);
+ }
+ }, y;
+ }(ti), dt = new Vr(), Ge = dt.postTurnstileEvent.bind(dt), Je = new Br(), We = Je.postMapLoadEvent.bind(Je), tt = "mapbox-tiles", xt = 500, Ie = 50, xe = 1e3 * 60 * 7, ke;
+ function vt() {
+ f.caches && !ke && (ke = f.caches.open(tt));
+ }
+ var ir;
+ function ar(m, y) {
+ if (ir === void 0) try {
+ new Response(new ReadableStream()), ir = true;
+ } catch (I) {
+ ir = false;
+ }
+ ir ? y(m.body) : m.blob().then(y);
+ }
+ function vr(m, y, I) {
+ if (vt(), !!ke) {
+ var V = { status: y.status, statusText: y.statusText, headers: new f.Headers() };
+ y.headers.forEach(function(he, ze) {
+ return V.headers.set(ze, he);
+ });
+ var $ = ge(y.headers.get("Cache-Control") || "");
+ if (!$["no-store"]) {
+ $["max-age"] && V.headers.set("Expires", new Date(I + $["max-age"] * 1e3).toUTCString());
+ var ae = new Date(V.headers.get("Expires")).getTime() - I;
+ ae < xe || ar(y, function(he) {
+ var ze = new f.Response(he, V);
+ vt(), ke && ke.then(function(rt) {
+ return rt.put(ii(m.url), ze);
+ }).catch(function(rt) {
+ return re(rt.message);
+ });
+ });
+ }
+ }
+ }
+ function ii(m) {
+ var y = m.indexOf("?");
+ return y < 0 ? m : m.slice(0, y);
+ }
+ function pi(m, y) {
+ if (vt(), !ke) return y(null);
+ var I = ii(m.url);
+ ke.then(function(V) {
+ V.match(I).then(function($) {
+ var ae = $r($);
+ V.delete(I), ae && V.put(I, $.clone()), y(null, $, ae);
+ }).catch(y);
+ }).catch(y);
+ }
+ function $r(m) {
+ if (!m) return false;
+ var y = new Date(m.headers.get("Expires") || 0), I = ge(m.headers.get("Cache-Control") || "");
+ return y > Date.now() && !I["no-cache"];
+ }
+ var di = 1 / 0;
+ function ji(m) {
+ di++, di > Ie && (m.getActor().send("enforceCacheSizeLimit", xt), di = 0);
+ }
+ function In(m) {
+ vt(), ke && ke.then(function(y) {
+ y.keys().then(function(I) {
+ for (var V = 0; V < I.length - m; V++) y.delete(I[V]);
+ });
+ });
+ }
+ function wi(m) {
+ var y = f.caches.delete(tt);
+ m && y.catch(m).then(function() {
+ return m();
+ });
+ }
+ function On(m, y) {
+ xt = m, Ie = y;
+ }
+ var qn;
+ function Fn() {
+ return qn == null && (qn = f.OffscreenCanvas && new f.OffscreenCanvas(1, 1).getContext("2d") && typeof f.createImageBitmap == "function"), qn;
+ }
+ var ra = { Unknown: "Unknown", Style: "Style", Source: "Source", Tile: "Tile", Glyphs: "Glyphs", SpriteImage: "SpriteImage", SpriteJSON: "SpriteJSON", Image: "Image" };
+ typeof Object.freeze == "function" && Object.freeze(ra);
+ var la = function(m) {
+ function y(I, V, $) {
+ V === 401 && Gt($) && (I += ": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"), m.call(this, I), this.status = V, this.url = $, this.name = this.constructor.name, this.message = I;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.toString = function() {
+ return this.name + ": " + this.message + " (" + this.status + "): " + this.url;
+ }, y;
+ }(Error), Ut = Le() ? function() {
+ return self.worker && self.worker.referrer;
+ } : function() {
+ return (f.location.protocol === "blob:" ? f.parent : f).location.href;
+ }, wt = function(m) {
+ return /^file:/.test(m) || /^file:/.test(Ut()) && !/^\w+:/.test(m);
+ };
+ function rr(m, y) {
+ var I = new f.AbortController(), V = new f.Request(m.url, { method: m.method || "GET", body: m.body, credentials: m.credentials, headers: m.headers, referrer: Ut(), signal: I.signal }), $ = false, ae = false, he = _t(V.url);
+ m.type === "json" && V.headers.set("Accept", "application/json");
+ var ze = function(gt, Et, or) {
+ if (!ae) {
+ if (gt && gt.message !== "SecurityError" && re(gt), Et && or) return rt(Et);
+ var _r = Date.now();
+ f.fetch(V).then(function(pr) {
+ if (pr.ok) {
+ var Fr = he ? pr.clone() : null;
+ return rt(pr, Fr, _r);
+ } else return y(new la(pr.statusText, pr.status, m.url));
+ }).catch(function(pr) {
+ pr.code !== 20 && y(new Error(pr.message));
+ });
+ }
+ }, rt = function(gt, Et, or) {
+ (m.type === "arrayBuffer" ? gt.arrayBuffer() : m.type === "json" ? gt.json() : gt.text()).then(function(_r) {
+ ae || (Et && or && vr(V, Et, or), $ = true, y(null, _r, gt.headers.get("Cache-Control"), gt.headers.get("Expires")));
+ }).catch(function(_r) {
+ ae || y(new Error(_r.message));
+ });
+ };
+ return he ? pi(V, ze) : ze(null, null), { cancel: function() {
+ ae = true, $ || I.abort();
+ } };
+ }
+ function nr(m, y) {
+ var I = new f.XMLHttpRequest();
+ I.open(m.method || "GET", m.url, true), m.type === "arrayBuffer" && (I.responseType = "arraybuffer");
+ for (var V in m.headers) I.setRequestHeader(V, m.headers[V]);
+ return m.type === "json" && (I.responseType = "text", I.setRequestHeader("Accept", "application/json")), I.withCredentials = m.credentials === "include", I.onerror = function() {
+ y(new Error(I.statusText));
+ }, I.onload = function() {
+ if ((I.status >= 200 && I.status < 300 || I.status === 0) && I.response !== null) {
+ var $ = I.response;
+ if (m.type === "json") try {
+ $ = JSON.parse(I.response);
+ } catch (ae) {
+ return y(ae);
+ }
+ y(null, $, I.getResponseHeader("Cache-Control"), I.getResponseHeader("Expires"));
+ } else y(new la(I.statusText, I.status, m.url));
+ }, I.send(m.body), { cancel: function() {
+ return I.abort();
+ } };
+ }
+ var Er = function(m, y) {
+ if (!wt(m.url)) {
+ if (f.fetch && f.Request && f.AbortController && f.Request.prototype.hasOwnProperty("signal")) return rr(m, y);
+ if (Le() && self.worker && self.worker.actor) {
+ var I = true;
+ return self.worker.actor.send("getResource", m, y, void 0, I);
+ }
+ }
+ return nr(m, y);
+ }, Xr = function(m, y) {
+ return Er(x(m, { type: "json" }), y);
+ }, ri = function(m, y) {
+ return Er(x(m, { type: "arrayBuffer" }), y);
+ }, Qr = function(m, y) {
+ return Er(x(m, { method: "POST" }), y);
+ };
+ function Oi(m) {
+ var y = f.document.createElement("a");
+ return y.href = m, y.protocol === f.document.location.protocol && y.host === f.document.location.host;
+ }
+ var $i = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";
+ function tn(m, y, I, V) {
+ var $ = new f.Image(), ae = f.URL;
+ $.onload = function() {
+ y(null, $), ae.revokeObjectURL($.src), $.onload = null, f.requestAnimationFrame(function() {
+ $.src = $i;
+ });
+ }, $.onerror = function() {
+ return y(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));
+ };
+ var he = new f.Blob([new Uint8Array(m)], { type: "image/png" });
+ $.cacheControl = I, $.expires = V, $.src = m.byteLength ? ae.createObjectURL(he) : $i;
+ }
+ function fn(m, y) {
+ var I = new f.Blob([new Uint8Array(m)], { type: "image/png" });
+ f.createImageBitmap(I).then(function(V) {
+ y(null, V);
+ }).catch(function(V) {
+ y(new Error("Could not load image because of " + V.message + ". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));
+ });
+ }
+ var yn, Sn, Ba = function() {
+ yn = [], Sn = 0;
+ };
+ Ba();
+ var ua = function(m, y) {
+ if (Vt.supported && (m.headers || (m.headers = {}), m.headers.accept = "image/webp,*/*"), Sn >= pt.MAX_PARALLEL_IMAGE_REQUESTS) {
+ var I = { requestParameters: m, callback: y, cancelled: false, cancel: function() {
+ this.cancelled = true;
+ } };
+ return yn.push(I), I;
+ }
+ Sn++;
+ var V = false, $ = function() {
+ if (!V) for (V = true, Sn--; yn.length && Sn < pt.MAX_PARALLEL_IMAGE_REQUESTS; ) {
+ var he = yn.shift(), ze = he.requestParameters, rt = he.callback, gt = he.cancelled;
+ gt || (he.cancel = ua(ze, rt).cancel);
+ }
+ }, ae = ri(m, function(he, ze, rt, gt) {
+ $(), he ? y(he) : ze && (Fn() ? fn(ze, y) : tn(ze, y, rt, gt));
+ });
+ return { cancel: function() {
+ ae.cancel(), $();
+ } };
+ }, ma = function(m, y) {
+ var I = f.document.createElement("video");
+ I.muted = true, I.onloadstart = function() {
+ y(null, I);
+ };
+ for (var V = 0; V < m.length; V++) {
+ var $ = f.document.createElement("source");
+ Oi(m[V]) || (I.crossOrigin = "Anonymous"), $.src = m[V], I.appendChild($);
+ }
+ return { cancel: function() {
+ } };
+ };
+ function Wa(m, y, I) {
+ var V = I[m] && I[m].indexOf(y) !== -1;
+ V || (I[m] = I[m] || [], I[m].push(y));
+ }
+ function Fa(m, y, I) {
+ if (I && I[m]) {
+ var V = I[m].indexOf(y);
+ V !== -1 && I[m].splice(V, 1);
+ }
+ }
+ var Xo = function(y, I) {
+ I === void 0 && (I = {}), x(this, I), this.type = y;
+ }, da = function(m) {
+ function y(I, V) {
+ V === void 0 && (V = {}), m.call(this, "error", x({ error: I }, V));
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y;
+ }(Xo), Wn = function() {
+ };
+ Wn.prototype.on = function(y, I) {
+ return this._listeners = this._listeners || {}, Wa(y, I, this._listeners), this;
+ }, Wn.prototype.off = function(y, I) {
+ return Fa(y, I, this._listeners), Fa(y, I, this._oneTimeListeners), this;
+ }, Wn.prototype.once = function(y, I) {
+ return this._oneTimeListeners = this._oneTimeListeners || {}, Wa(y, I, this._oneTimeListeners), this;
+ }, Wn.prototype.fire = function(y, I) {
+ typeof y == "string" && (y = new Xo(y, I || {}));
+ var V = y.type;
+ if (this.listens(V)) {
+ y.target = this;
+ for (var $ = this._listeners && this._listeners[V] ? this._listeners[V].slice() : [], ae = 0, he = $; ae < he.length; ae += 1) {
+ var ze = he[ae];
+ ze.call(this, y);
+ }
+ for (var rt = this._oneTimeListeners && this._oneTimeListeners[V] ? this._oneTimeListeners[V].slice() : [], gt = 0, Et = rt; gt < Et.length; gt += 1) {
+ var or = Et[gt];
+ Fa(V, or, this._oneTimeListeners), or.call(this, y);
+ }
+ var _r = this._eventedParent;
+ _r && (x(y, typeof this._eventedParentData == "function" ? this._eventedParentData() : this._eventedParentData), _r.fire(y));
+ } else y instanceof da && console.error(y.error);
+ return this;
+ }, Wn.prototype.listens = function(y) {
+ return this._listeners && this._listeners[y] && this._listeners[y].length > 0 || this._oneTimeListeners && this._oneTimeListeners[y] && this._oneTimeListeners[y].length > 0 || this._eventedParent && this._eventedParent.listens(y);
+ }, Wn.prototype.setEventedParent = function(y, I) {
+ return this._eventedParent = y, this._eventedParentData = I, this;
+ };
+ var Ha = 8, vo = { version: { required: true, type: "enum", values: [8] }, name: { type: "string" }, metadata: { type: "*" }, center: { type: "array", value: "number" }, zoom: { type: "number" }, bearing: { type: "number", default: 0, period: 360, units: "degrees" }, pitch: { type: "number", default: 0, units: "degrees" }, light: { type: "light" }, sources: { required: true, type: "sources" }, sprite: { type: "string" }, glyphs: { type: "string" }, transition: { type: "transition" }, layers: { required: true, type: "array", value: "layer" } }, jn = { "*": { type: "source" } }, Mt = ["source_vector", "source_raster", "source_raster_dem", "source_geojson", "source_video", "source_image"], kr = { type: { required: true, type: "enum", values: { vector: {} } }, url: { type: "string" }, tiles: { type: "array", value: "string" }, bounds: { type: "array", value: "number", length: 4, default: [-180, -85.051129, 180, 85.051129] }, scheme: { type: "enum", values: { xyz: {}, tms: {} }, default: "xyz" }, minzoom: { type: "number", default: 0 }, maxzoom: { type: "number", default: 22 }, attribution: { type: "string" }, promoteId: { type: "promoteId" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, Jr = { type: { required: true, type: "enum", values: { raster: {} } }, url: { type: "string" }, tiles: { type: "array", value: "string" }, bounds: { type: "array", value: "number", length: 4, default: [-180, -85.051129, 180, 85.051129] }, minzoom: { type: "number", default: 0 }, maxzoom: { type: "number", default: 22 }, tileSize: { type: "number", default: 512, units: "pixels" }, scheme: { type: "enum", values: { xyz: {}, tms: {} }, default: "xyz" }, attribution: { type: "string" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, vi = { type: { required: true, type: "enum", values: { "raster-dem": {} } }, url: { type: "string" }, tiles: { type: "array", value: "string" }, bounds: { type: "array", value: "number", length: 4, default: [-180, -85.051129, 180, 85.051129] }, minzoom: { type: "number", default: 0 }, maxzoom: { type: "number", default: 22 }, tileSize: { type: "number", default: 512, units: "pixels" }, attribution: { type: "string" }, encoding: { type: "enum", values: { terrarium: {}, mapbox: {} }, default: "mapbox" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, hn = { type: { required: true, type: "enum", values: { geojson: {} } }, data: { type: "*" }, maxzoom: { type: "number", default: 18 }, attribution: { type: "string" }, buffer: { type: "number", default: 128, maximum: 512, minimum: 0 }, filter: { type: "*" }, tolerance: { type: "number", default: 0.375 }, cluster: { type: "boolean", default: false }, clusterRadius: { type: "number", default: 50, minimum: 0 }, clusterMaxZoom: { type: "number" }, clusterMinPoints: { type: "number" }, clusterProperties: { type: "*" }, lineMetrics: { type: "boolean", default: false }, generateId: { type: "boolean", default: false }, promoteId: { type: "promoteId" } }, An = { type: { required: true, type: "enum", values: { video: {} } }, urls: { required: true, type: "array", value: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, Mn = { type: { required: true, type: "enum", values: { image: {} } }, url: { required: true, type: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, Li = { id: { type: "string", required: true }, type: { type: "enum", values: { fill: {}, line: {}, symbol: {}, circle: {}, heatmap: {}, "fill-extrusion": {}, raster: {}, hillshade: {}, background: {} }, required: true }, metadata: { type: "*" }, source: { type: "string" }, "source-layer": { type: "string" }, minzoom: { type: "number", minimum: 0, maximum: 24 }, maxzoom: { type: "number", minimum: 0, maximum: 24 }, filter: { type: "filter" }, layout: { type: "layout" }, paint: { type: "paint" } }, _n = ["layout_fill", "layout_line", "layout_circle", "layout_heatmap", "layout_fill-extrusion", "layout_symbol", "layout_raster", "layout_hillshade", "layout_background"], ya = { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, $n = { "fill-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, Ma = { "circle-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, _o = { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, No = { "line-cap": { type: "enum", values: { butt: {}, round: {}, square: {} }, default: "butt", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-join": { type: "enum", values: { bevel: {}, round: {}, miter: {} }, default: "miter", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "line-miter-limit": { type: "number", default: 2, requires: [{ "line-join": "miter" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-round-limit": { type: "number", default: 1.05, requires: [{ "line-join": "round" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, po = { "symbol-placement": { type: "enum", values: { point: {}, line: {}, "line-center": {} }, default: "point", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-spacing": { type: "number", default: 250, minimum: 1, units: "pixels", requires: [{ "symbol-placement": "line" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-avoid-edges": { type: "boolean", default: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "symbol-z-order": { type: "enum", values: { auto: {}, "viewport-y": {}, source: {} }, default: "auto", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-allow-overlap": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-ignore-placement": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-optional": { type: "boolean", default: false, requires: ["icon-image", "text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-size": { type: "number", default: 1, minimum: 0, units: "factor of the original icon size", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-text-fit": { type: "enum", values: { none: {}, width: {}, height: {}, both: {} }, default: "none", requires: ["icon-image", "text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-text-fit-padding": { type: "array", value: "number", length: 4, default: [0, 0, 0, 0], units: "pixels", requires: ["icon-image", "text-field", { "icon-text-fit": ["both", "width", "height"] }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-image": { type: "resolvedImage", tokens: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-keep-upright": { type: "boolean", default: false, requires: ["icon-image", { "icon-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-offset": { type: "array", value: "number", length: 2, default: [0, 0], requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-anchor": { type: "enum", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, "top-left": {}, "top-right": {}, "bottom-left": {}, "bottom-right": {} }, default: "center", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-field": { type: "formatted", default: "", tokens: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-font": { type: "array", value: "string", default: ["Open Sans Regular", "Arial Unicode MS Regular"], requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-size": { type: "number", default: 16, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-max-width": { type: "number", default: 10, minimum: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-line-height": { type: "number", default: 1.2, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-letter-spacing": { type: "number", default: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-justify": { type: "enum", values: { auto: {}, left: {}, center: {}, right: {} }, default: "center", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-radial-offset": { type: "number", units: "ems", default: 0, requires: ["text-field"], "property-type": "data-driven", expression: { interpolated: true, parameters: ["zoom", "feature"] } }, "text-variable-anchor": { type: "array", value: "enum", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, "top-left": {}, "top-right": {}, "bottom-left": {}, "bottom-right": {} }, requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-anchor": { type: "enum", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, "top-left": {}, "top-right": {}, "bottom-left": {}, "bottom-right": {} }, default: "center", requires: ["text-field", { "!": "text-variable-anchor" }], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-max-angle": { type: "number", default: 45, units: "degrees", requires: ["text-field", { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-writing-mode": { type: "array", value: "enum", values: { horizontal: {}, vertical: {} }, requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-keep-upright": { type: "boolean", default: true, requires: ["text-field", { "text-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-transform": { type: "enum", values: { none: {}, uppercase: {}, lowercase: {} }, default: "none", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-offset": { type: "array", value: "number", units: "ems", length: 2, default: [0, 0], requires: ["text-field", { "!": "text-radial-offset" }], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-allow-overlap": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-ignore-placement": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-optional": { type: "boolean", default: false, requires: ["text-field", "icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, Lo = { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, ko = { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, Ds = { type: "array", value: "*" }, Fs = { type: "enum", values: { "==": {}, "!=": {}, ">": {}, ">=": {}, "<": {}, "<=": {}, in: {}, "!in": {}, all: {}, any: {}, none: {}, has: {}, "!has": {}, within: {} } }, ll = { type: "enum", values: { Point: {}, LineString: {}, Polygon: {} } }, ul = { type: "array", minimum: 0, maximum: 24, value: ["number", "color"], length: 2 }, zl = { type: "array", value: "*", minimum: 1 }, us = { anchor: { type: "enum", default: "viewport", values: { map: {}, viewport: {} }, "property-type": "data-constant", transition: false, expression: { interpolated: false, parameters: ["zoom"] } }, position: { type: "array", default: [1.15, 210, 30], length: 3, value: "number", "property-type": "data-constant", transition: true, expression: { interpolated: true, parameters: ["zoom"] } }, color: { type: "color", "property-type": "data-constant", default: "#ffffff", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, intensity: { type: "number", "property-type": "data-constant", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true } }, il = ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_background"], As = { "fill-antialias": { type: "boolean", default: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-outline-color": { type: "color", transition: true, requires: [{ "!": "fill-pattern" }, { "fill-antialias": true }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" } }, cl = { "line-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "line-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["line-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-width": { type: "number", default: 1, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-gap-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-offset": { type: "number", default: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-dasharray": { type: "array", value: "number", minimum: 0, transition: true, units: "line widths", requires: [{ "!": "line-pattern" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "line-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "line-gradient": { type: "color", transition: false, requires: [{ "!": "line-dasharray" }, { "!": "line-pattern" }, { source: "geojson", has: { lineMetrics: true } }], expression: { interpolated: true, parameters: ["line-progress"] }, "property-type": "color-ramp" } }, Ks = { "circle-radius": { type: "number", default: 5, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-blur": { type: "number", default: 0, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["circle-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-scale": { type: "enum", values: { map: {}, viewport: {} }, default: "map", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-alignment": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-stroke-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" } }, zs = { "heatmap-radius": { type: "number", default: 30, minimum: 1, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-weight": { type: "number", default: 1, minimum: 0, transition: false, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-intensity": { type: "number", default: 1, minimum: 0, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "heatmap-color": { type: "color", default: ["interpolate", ["linear"], ["heatmap-density"], 0, "rgba(0, 0, 255, 0)", 0.1, "royalblue", 0.3, "cyan", 0.5, "lime", 0.7, "yellow", 1, "red"], transition: false, expression: { interpolated: true, parameters: ["heatmap-density"] }, "property-type": "color-ramp" }, "heatmap-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, Io = { "icon-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-color": { type: "color", default: "#000000", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["icon-image", "icon-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-color": { type: "color", default: "#000000", transition: true, overridable: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["text-field", "text-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, ls = { "raster-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-hue-rotate": { type: "number", default: 0, period: 360, transition: true, units: "degrees", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-min": { type: "number", default: 0, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-max": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-saturation": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-contrast": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-resampling": { type: "enum", values: { linear: {}, nearest: {} }, default: "linear", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-fade-duration": { type: "number", default: 300, minimum: 0, transition: false, units: "milliseconds", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, Yl = { "hillshade-illumination-direction": { type: "number", default: 335, minimum: 0, maximum: 359, transition: false, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-illumination-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-exaggeration": { type: "number", default: 0.5, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-shadow-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-highlight-color": { type: "color", default: "#FFFFFF", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-accent-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, Su = { "background-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "background-pattern" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "background-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "background-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, nc = { duration: { type: "number", default: 300, minimum: 0, units: "milliseconds" }, delay: { type: "number", default: 0, minimum: 0, units: "milliseconds" } }, bs = { "*": { type: "string" } }, Rn = { $version: Ha, $root: vo, sources: jn, source: Mt, source_vector: kr, source_raster: Jr, source_raster_dem: vi, source_geojson: hn, source_video: An, source_image: Mn, layer: Li, layout: _n, layout_background: ya, layout_fill: $n, layout_circle: Ma, layout_heatmap: _o, "layout_fill-extrusion": { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_line: No, layout_symbol: po, layout_raster: Lo, layout_hillshade: ko, filter: Ds, filter_operator: Fs, geometry_type: ll, function: { expression: { type: "expression" }, stops: { type: "array", value: "function_stop" }, base: { type: "number", default: 1, minimum: 0 }, property: { type: "string", default: "$zoom" }, type: { type: "enum", values: { identity: {}, exponential: {}, interval: {}, categorical: {} }, default: "exponential" }, colorSpace: { type: "enum", values: { rgb: {}, lab: {}, hcl: {} }, default: "rgb" }, default: { type: "*", required: false } }, function_stop: ul, expression: zl, light: us, paint: il, paint_fill: As, "paint_fill-extrusion": { "fill-extrusion-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-extrusion-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-extrusion-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "fill-extrusion-height": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-base": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, requires: ["fill-extrusion-height"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-vertical-gradient": { type: "boolean", default: true, transition: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_line: cl, paint_circle: Ks, paint_heatmap: zs, paint_symbol: Io, paint_raster: ls, paint_hillshade: Yl, paint_background: Su, transition: nc, "property-type": { "data-driven": { type: "property-type" }, "cross-faded": { type: "property-type" }, "cross-faded-data-driven": { type: "property-type" }, "color-ramp": { type: "property-type" }, "data-constant": { type: "property-type" }, constant: { type: "property-type" } }, promoteId: bs }, _a = function(y, I, V, $) {
+ this.message = (y ? y + ": " : "") + V, $ && (this.identifier = $), I != null && I.__line__ && (this.line = I.__line__);
+ };
+ function Vu(m) {
+ var y = m.key, I = m.value;
+ return I ? [new _a(y, I, "constants have been deprecated as of v8")] : [];
+ }
+ function Ol(m) {
+ for (var y = [], I = arguments.length - 1; I-- > 0; ) y[I] = arguments[I + 1];
+ for (var V = 0, $ = y; V < $.length; V += 1) {
+ var ae = $[V];
+ for (var he in ae) m[he] = ae[he];
+ }
+ return m;
+ }
+ function xo(m) {
+ return m instanceof Number || m instanceof String || m instanceof Boolean ? m.valueOf() : m;
+ }
+ function Kl(m) {
+ if (Array.isArray(m)) return m.map(Kl);
+ if (m instanceof Object && !(m instanceof Number || m instanceof String || m instanceof Boolean)) {
+ var y = {};
+ for (var I in m) y[I] = Kl(m[I]);
+ return y;
+ }
+ return xo(m);
+ }
+ var Ns = function(m) {
+ function y(I, V) {
+ m.call(this, V), this.message = V, this.key = I;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y;
+ }(Error), Hl = function(y, I) {
+ I === void 0 && (I = []), this.parent = y, this.bindings = {};
+ for (var V = 0, $ = I; V < $.length; V += 1) {
+ var ae = $[V], he = ae[0], ze = ae[1];
+ this.bindings[he] = ze;
+ }
+ };
+ Hl.prototype.concat = function(y) {
+ return new Hl(this, y);
+ }, Hl.prototype.get = function(y) {
+ if (this.bindings[y]) return this.bindings[y];
+ if (this.parent) return this.parent.get(y);
+ throw new Error(y + " not found in scope.");
+ }, Hl.prototype.has = function(y) {
+ return this.bindings[y] ? true : this.parent ? this.parent.has(y) : false;
+ };
+ var ac = { kind: "null" }, aa = { kind: "number" }, Oo = { kind: "string" }, qo = { kind: "boolean" }, ql = { kind: "color" }, Pc = { kind: "object" }, Do = { kind: "value" }, rf = { kind: "error" }, Vf = { kind: "collator" }, pl = { kind: "formatted" }, Zc = { kind: "resolvedImage" };
+ function Jl(m, y) {
+ return { kind: "array", itemType: m, N: y };
+ }
+ function Os(m) {
+ if (m.kind === "array") {
+ var y = Os(m.itemType);
+ return typeof m.N == "number" ? "array<" + y + ", " + m.N + ">" : m.itemType.kind === "value" ? "array" : "array<" + y + ">";
+ } else return m.kind;
+ }
+ var yu = [ac, aa, Oo, qo, ql, pl, Pc, Jl(Do), Zc];
+ function oc(m, y) {
+ if (y.kind === "error") return null;
+ if (m.kind === "array") {
+ if (y.kind === "array" && (y.N === 0 && y.itemType.kind === "value" || !oc(m.itemType, y.itemType)) && (typeof m.N != "number" || m.N === y.N)) return null;
+ } else {
+ if (m.kind === y.kind) return null;
+ if (m.kind === "value") for (var I = 0, V = yu; I < V.length; I += 1) {
+ var $ = V[I];
+ if (!oc($, y)) return null;
+ }
+ }
+ return "Expected " + Os(m) + " but found " + Os(y) + " instead.";
+ }
+ function Cf(m, y) {
+ return y.some(function(I) {
+ return I.kind === m.kind;
+ });
+ }
+ function sc(m, y) {
+ return y.some(function(I) {
+ return I === "null" ? m === null : I === "array" ? Array.isArray(m) : I === "object" ? m && !Array.isArray(m) && typeof m == "object" : I === typeof m;
+ });
+ }
+ var jh = a(function(m, y) {
+ var I = { transparent: [0, 0, 0, 0], aliceblue: [240, 248, 255, 1], antiquewhite: [250, 235, 215, 1], aqua: [0, 255, 255, 1], aquamarine: [127, 255, 212, 1], azure: [240, 255, 255, 1], beige: [245, 245, 220, 1], bisque: [255, 228, 196, 1], black: [0, 0, 0, 1], blanchedalmond: [255, 235, 205, 1], blue: [0, 0, 255, 1], blueviolet: [138, 43, 226, 1], brown: [165, 42, 42, 1], burlywood: [222, 184, 135, 1], cadetblue: [95, 158, 160, 1], chartreuse: [127, 255, 0, 1], chocolate: [210, 105, 30, 1], coral: [255, 127, 80, 1], cornflowerblue: [100, 149, 237, 1], cornsilk: [255, 248, 220, 1], crimson: [220, 20, 60, 1], cyan: [0, 255, 255, 1], darkblue: [0, 0, 139, 1], darkcyan: [0, 139, 139, 1], darkgoldenrod: [184, 134, 11, 1], darkgray: [169, 169, 169, 1], darkgreen: [0, 100, 0, 1], darkgrey: [169, 169, 169, 1], darkkhaki: [189, 183, 107, 1], darkmagenta: [139, 0, 139, 1], darkolivegreen: [85, 107, 47, 1], darkorange: [255, 140, 0, 1], darkorchid: [153, 50, 204, 1], darkred: [139, 0, 0, 1], darksalmon: [233, 150, 122, 1], darkseagreen: [143, 188, 143, 1], darkslateblue: [72, 61, 139, 1], darkslategray: [47, 79, 79, 1], darkslategrey: [47, 79, 79, 1], darkturquoise: [0, 206, 209, 1], darkviolet: [148, 0, 211, 1], deeppink: [255, 20, 147, 1], deepskyblue: [0, 191, 255, 1], dimgray: [105, 105, 105, 1], dimgrey: [105, 105, 105, 1], dodgerblue: [30, 144, 255, 1], firebrick: [178, 34, 34, 1], floralwhite: [255, 250, 240, 1], forestgreen: [34, 139, 34, 1], fuchsia: [255, 0, 255, 1], gainsboro: [220, 220, 220, 1], ghostwhite: [248, 248, 255, 1], gold: [255, 215, 0, 1], goldenrod: [218, 165, 32, 1], gray: [128, 128, 128, 1], green: [0, 128, 0, 1], greenyellow: [173, 255, 47, 1], grey: [128, 128, 128, 1], honeydew: [240, 255, 240, 1], hotpink: [255, 105, 180, 1], indianred: [205, 92, 92, 1], indigo: [75, 0, 130, 1], ivory: [255, 255, 240, 1], khaki: [240, 230, 140, 1], lavender: [230, 230, 250, 1], lavenderblush: [255, 240, 245, 1], lawngreen: [124, 252, 0, 1], lemonchiffon: [255, 250, 205, 1], lightblue: [173, 216, 230, 1], lightcoral: [240, 128, 128, 1], lightcyan: [224, 255, 255, 1], lightgoldenrodyellow: [250, 250, 210, 1], lightgray: [211, 211, 211, 1], lightgreen: [144, 238, 144, 1], lightgrey: [211, 211, 211, 1], lightpink: [255, 182, 193, 1], lightsalmon: [255, 160, 122, 1], lightseagreen: [32, 178, 170, 1], lightskyblue: [135, 206, 250, 1], lightslategray: [119, 136, 153, 1], lightslategrey: [119, 136, 153, 1], lightsteelblue: [176, 196, 222, 1], lightyellow: [255, 255, 224, 1], lime: [0, 255, 0, 1], limegreen: [50, 205, 50, 1], linen: [250, 240, 230, 1], magenta: [255, 0, 255, 1], maroon: [128, 0, 0, 1], mediumaquamarine: [102, 205, 170, 1], mediumblue: [0, 0, 205, 1], mediumorchid: [186, 85, 211, 1], mediumpurple: [147, 112, 219, 1], mediumseagreen: [60, 179, 113, 1], mediumslateblue: [123, 104, 238, 1], mediumspringgreen: [0, 250, 154, 1], mediumturquoise: [72, 209, 204, 1], mediumvioletred: [199, 21, 133, 1], midnightblue: [25, 25, 112, 1], mintcream: [245, 255, 250, 1], mistyrose: [255, 228, 225, 1], moccasin: [255, 228, 181, 1], navajowhite: [255, 222, 173, 1], navy: [0, 0, 128, 1], oldlace: [253, 245, 230, 1], olive: [128, 128, 0, 1], olivedrab: [107, 142, 35, 1], orange: [255, 165, 0, 1], orangered: [255, 69, 0, 1], orchid: [218, 112, 214, 1], palegoldenrod: [238, 232, 170, 1], palegreen: [152, 251, 152, 1], paleturquoise: [175, 238, 238, 1], palevioletred: [219, 112, 147, 1], papayawhip: [255, 239, 213, 1], peachpuff: [255, 218, 185, 1], peru: [205, 133, 63, 1], pink: [255, 192, 203, 1], plum: [221, 160, 221, 1], powderblue: [176, 224, 230, 1], purple: [128, 0, 128, 1], rebeccapurple: [102, 51, 153, 1], red: [255, 0, 0, 1], rosybrown: [188, 143, 143, 1], royalblue: [65, 105, 225, 1], saddlebrown: [139, 69, 19, 1], salmon: [250, 128, 114, 1], sandybrown: [244, 164, 96, 1], seagreen: [46, 139, 87, 1], seashell: [255, 245, 238, 1], sienna: [160, 82, 45, 1], silver: [192, 192, 192, 1], skyblue: [135, 206, 235, 1], slateblue: [106, 90, 205, 1], slategray: [112, 128, 144, 1], slategrey: [112, 128, 144, 1], snow: [255, 250, 250, 1], springgreen: [0, 255, 127, 1], steelblue: [70, 130, 180, 1], tan: [210, 180, 140, 1], teal: [0, 128, 128, 1], thistle: [216, 191, 216, 1], tomato: [255, 99, 71, 1], turquoise: [64, 224, 208, 1], violet: [238, 130, 238, 1], wheat: [245, 222, 179, 1], white: [255, 255, 255, 1], whitesmoke: [245, 245, 245, 1], yellow: [255, 255, 0, 1], yellowgreen: [154, 205, 50, 1] };
+ function V(gt) {
+ return gt = Math.round(gt), gt < 0 ? 0 : gt > 255 ? 255 : gt;
+ }
+ function $(gt) {
+ return gt < 0 ? 0 : gt > 1 ? 1 : gt;
+ }
+ function ae(gt) {
+ return gt[gt.length - 1] === "%" ? V(parseFloat(gt) / 100 * 255) : V(parseInt(gt));
+ }
+ function he(gt) {
+ return gt[gt.length - 1] === "%" ? $(parseFloat(gt) / 100) : $(parseFloat(gt));
+ }
+ function ze(gt, Et, or) {
+ return or < 0 ? or += 1 : or > 1 && (or -= 1), or * 6 < 1 ? gt + (Et - gt) * or * 6 : or * 2 < 1 ? Et : or * 3 < 2 ? gt + (Et - gt) * (2 / 3 - or) * 6 : gt;
+ }
+ function rt(gt) {
+ var Et = gt.replace(/ /g, "").toLowerCase();
+ if (Et in I) return I[Et].slice();
+ if (Et[0] === "#") {
+ if (Et.length === 4) {
+ var or = parseInt(Et.substr(1), 16);
+ return or >= 0 && or <= 4095 ? [(or & 3840) >> 4 | (or & 3840) >> 8, or & 240 | (or & 240) >> 4, or & 15 | (or & 15) << 4, 1] : null;
+ } else if (Et.length === 7) {
+ var or = parseInt(Et.substr(1), 16);
+ return or >= 0 && or <= 16777215 ? [(or & 16711680) >> 16, (or & 65280) >> 8, or & 255, 1] : null;
+ }
+ return null;
+ }
+ var _r = Et.indexOf("("), pr = Et.indexOf(")");
+ if (_r !== -1 && pr + 1 === Et.length) {
+ var Fr = Et.substr(0, _r), oi = Et.substr(_r + 1, pr - (_r + 1)).split(","), Hi = 1;
+ switch (Fr) {
+ case "rgba":
+ if (oi.length !== 4) return null;
+ Hi = he(oi.pop());
+ case "rgb":
+ return oi.length !== 3 ? null : [ae(oi[0]), ae(oi[1]), ae(oi[2]), Hi];
+ case "hsla":
+ if (oi.length !== 4) return null;
+ Hi = he(oi.pop());
+ case "hsl":
+ if (oi.length !== 3) return null;
+ var Ai = (parseFloat(oi[0]) % 360 + 360) % 360 / 360, bn = he(oi[1]), nn = he(oi[2]), xn = nn <= 0.5 ? nn * (bn + 1) : nn + bn - nn * bn, Pn = nn * 2 - xn;
+ return [V(ze(Pn, xn, Ai + 1 / 3) * 255), V(ze(Pn, xn, Ai) * 255), V(ze(Pn, xn, Ai - 1 / 3) * 255), Hi];
+ default:
+ return null;
+ }
+ }
+ return null;
+ }
+ try {
+ y.parseCSSColor = rt;
+ } catch (gt) {
+ }
+ }), Lf = jh.parseCSSColor, cs = function(y, I, V, $) {
+ $ === void 0 && ($ = 1), this.r = y, this.g = I, this.b = V, this.a = $;
+ };
+ cs.parse = function(y) {
+ if (y) {
+ if (y instanceof cs) return y;
+ if (typeof y == "string") {
+ var I = Lf(y);
+ if (I) return new cs(I[0] / 255 * I[3], I[1] / 255 * I[3], I[2] / 255 * I[3], I[3]);
+ }
+ }
+ }, cs.prototype.toString = function() {
+ var y = this.toArray(), I = y[0], V = y[1], $ = y[2], ae = y[3];
+ return "rgba(" + Math.round(I) + "," + Math.round(V) + "," + Math.round($) + "," + ae + ")";
+ }, cs.prototype.toArray = function() {
+ var y = this, I = y.r, V = y.g, $ = y.b, ae = y.a;
+ return ae === 0 ? [0, 0, 0, 0] : [I * 255 / ae, V * 255 / ae, $ * 255 / ae, ae];
+ }, cs.black = new cs(0, 0, 0, 1), cs.white = new cs(1, 1, 1, 1), cs.transparent = new cs(0, 0, 0, 0), cs.red = new cs(1, 0, 0, 1);
+ var nf = function(y, I, V) {
+ y ? this.sensitivity = I ? "variant" : "case" : this.sensitivity = I ? "accent" : "base", this.locale = V, this.collator = new Intl.Collator(this.locale ? this.locale : [], { sensitivity: this.sensitivity, usage: "search" });
+ };
+ nf.prototype.compare = function(y, I) {
+ return this.collator.compare(y, I);
+ }, nf.prototype.resolvedLocale = function() {
+ return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale;
+ };
+ var Gf = function(y, I, V, $, ae) {
+ this.text = y, this.image = I, this.scale = V, this.fontStack = $, this.textColor = ae;
+ }, $l = function(y) {
+ this.sections = y;
+ };
+ $l.fromString = function(y) {
+ return new $l([new Gf(y, null, null, null, null)]);
+ }, $l.prototype.isEmpty = function() {
+ return this.sections.length === 0 ? true : !this.sections.some(function(y) {
+ return y.text.length !== 0 || y.image && y.image.name.length !== 0;
+ });
+ }, $l.factory = function(y) {
+ return y instanceof $l ? y : $l.fromString(y);
+ }, $l.prototype.toString = function() {
+ return this.sections.length === 0 ? "" : this.sections.map(function(y) {
+ return y.text;
+ }).join("");
+ }, $l.prototype.serialize = function() {
+ for (var y = ["format"], I = 0, V = this.sections; I < V.length; I += 1) {
+ var $ = V[I];
+ if ($.image) {
+ y.push(["image", $.image.name]);
+ continue;
+ }
+ y.push($.text);
+ var ae = {};
+ $.fontStack && (ae["text-font"] = ["literal", $.fontStack.split(",")]), $.scale && (ae["font-scale"] = $.scale), $.textColor && (ae["text-color"] = ["rgba"].concat($.textColor.toArray())), y.push(ae);
+ }
+ return y;
+ };
+ var fl = function(y) {
+ this.name = y.name, this.available = y.available;
+ };
+ fl.prototype.toString = function() {
+ return this.name;
+ }, fl.fromString = function(y) {
+ return y ? new fl({ name: y, available: false }) : null;
+ }, fl.prototype.serialize = function() {
+ return ["image", this.name];
+ };
+ function lc(m, y, I, V) {
+ if (!(typeof m == "number" && m >= 0 && m <= 255 && typeof y == "number" && y >= 0 && y <= 255 && typeof I == "number" && I >= 0 && I <= 255)) {
+ var $ = typeof V == "number" ? [m, y, I, V] : [m, y, I];
+ return "Invalid rgba value [" + $.join(", ") + "]: 'r', 'g', and 'b' must be between 0 and 255.";
+ }
+ return typeof V == "undefined" || typeof V == "number" && V >= 0 && V <= 1 ? null : "Invalid rgba value [" + [m, y, I, V].join(", ") + "]: 'a' must be between 0 and 1.";
+ }
+ function Fu(m) {
+ if (m === null) return true;
+ if (typeof m == "string") return true;
+ if (typeof m == "boolean") return true;
+ if (typeof m == "number") return true;
+ if (m instanceof cs) return true;
+ if (m instanceof nf) return true;
+ if (m instanceof $l) return true;
+ if (m instanceof fl) return true;
+ if (Array.isArray(m)) {
+ for (var y = 0, I = m; y < I.length; y += 1) {
+ var V = I[y];
+ if (!Fu(V)) return false;
+ }
+ return true;
+ } else if (typeof m == "object") {
+ for (var $ in m) if (!Fu(m[$])) return false;
+ return true;
+ } else return false;
+ }
+ function Es(m) {
+ if (m === null) return ac;
+ if (typeof m == "string") return Oo;
+ if (typeof m == "boolean") return qo;
+ if (typeof m == "number") return aa;
+ if (m instanceof cs) return ql;
+ if (m instanceof nf) return Vf;
+ if (m instanceof $l) return pl;
+ if (m instanceof fl) return Zc;
+ if (Array.isArray(m)) {
+ for (var y = m.length, I, V = 0, $ = m; V < $.length; V += 1) {
+ var ae = $[V], he = Es(ae);
+ if (!I) I = he;
+ else {
+ if (I === he) continue;
+ I = Do;
+ break;
+ }
+ }
+ return Jl(I || Do, y);
+ } else return Pc;
+ }
+ function Hs(m) {
+ var y = typeof m;
+ return m === null ? "" : y === "string" || y === "number" || y === "boolean" ? String(m) : m instanceof cs || m instanceof $l || m instanceof fl ? m.toString() : JSON.stringify(m);
+ }
+ var Go = function(y, I) {
+ this.type = y, this.value = I;
+ };
+ Go.parse = function(y, I) {
+ if (y.length !== 2) return I.error("'literal' expression requires exactly one argument, but found " + (y.length - 1) + " instead.");
+ if (!Fu(y[1])) return I.error("invalid value");
+ var V = y[1], $ = Es(V), ae = I.expectedType;
+ return $.kind === "array" && $.N === 0 && ae && ae.kind === "array" && (typeof ae.N != "number" || ae.N === 0) && ($ = ae), new Go($, V);
+ }, Go.prototype.evaluate = function() {
+ return this.value;
+ }, Go.prototype.eachChild = function() {
+ }, Go.prototype.outputDefined = function() {
+ return true;
+ }, Go.prototype.serialize = function() {
+ return this.type.kind === "array" || this.type.kind === "object" ? ["literal", this.value] : this.value instanceof cs ? ["rgba"].concat(this.value.toArray()) : this.value instanceof $l ? this.value.serialize() : this.value;
+ };
+ var ps = function(y) {
+ this.name = "ExpressionEvaluationError", this.message = y;
+ };
+ ps.prototype.toJSON = function() {
+ return this.message;
+ };
+ var uc = { string: Oo, number: aa, boolean: qo, object: Pc }, xl = function(y, I) {
+ this.type = y, this.args = I;
+ };
+ xl.parse = function(y, I) {
+ if (y.length < 2) return I.error("Expected at least one argument.");
+ var V = 1, $, ae = y[0];
+ if (ae === "array") {
+ var he;
+ if (y.length > 2) {
+ var ze = y[1];
+ if (typeof ze != "string" || !(ze in uc) || ze === "object") return I.error('The item type argument of "array" must be one of string, number, boolean', 1);
+ he = uc[ze], V++;
+ } else he = Do;
+ var rt;
+ if (y.length > 3) {
+ if (y[2] !== null && (typeof y[2] != "number" || y[2] < 0 || y[2] !== Math.floor(y[2]))) return I.error('The length argument to "array" must be a positive integer literal', 2);
+ rt = y[2], V++;
+ }
+ $ = Jl(he, rt);
+ } else $ = uc[ae];
+ for (var gt = []; V < y.length; V++) {
+ var Et = I.parse(y[V], V, Do);
+ if (!Et) return null;
+ gt.push(Et);
+ }
+ return new xl($, gt);
+ }, xl.prototype.evaluate = function(y) {
+ for (var I = 0; I < this.args.length; I++) {
+ var V = this.args[I].evaluate(y), $ = oc(this.type, Es(V));
+ if ($) {
+ if (I === this.args.length - 1) throw new ps("Expected value to be of type " + Os(this.type) + ", but found " + Os(Es(V)) + " instead.");
+ } else return V;
+ }
+ return null;
+ }, xl.prototype.eachChild = function(y) {
+ this.args.forEach(y);
+ }, xl.prototype.outputDefined = function() {
+ return this.args.every(function(y) {
+ return y.outputDefined();
+ });
+ }, xl.prototype.serialize = function() {
+ var y = this.type, I = [y.kind];
+ if (y.kind === "array") {
+ var V = y.itemType;
+ if (V.kind === "string" || V.kind === "number" || V.kind === "boolean") {
+ I.push(V.kind);
+ var $ = y.N;
+ (typeof $ == "number" || this.args.length > 1) && I.push($);
+ }
+ }
+ return I.concat(this.args.map(function(ae) {
+ return ae.serialize();
+ }));
+ };
+ var Gu = function(y) {
+ this.type = pl, this.sections = y;
+ };
+ Gu.parse = function(y, I) {
+ if (y.length < 2) return I.error("Expected at least one argument.");
+ var V = y[1];
+ if (!Array.isArray(V) && typeof V == "object") return I.error("First argument must be an image or text section.");
+ for (var $ = [], ae = false, he = 1; he <= y.length - 1; ++he) {
+ var ze = y[he];
+ if (ae && typeof ze == "object" && !Array.isArray(ze)) {
+ ae = false;
+ var rt = null;
+ if (ze["font-scale"] && (rt = I.parse(ze["font-scale"], 1, aa), !rt)) return null;
+ var gt = null;
+ if (ze["text-font"] && (gt = I.parse(ze["text-font"], 1, Jl(Oo)), !gt)) return null;
+ var Et = null;
+ if (ze["text-color"] && (Et = I.parse(ze["text-color"], 1, ql), !Et)) return null;
+ var or = $[$.length - 1];
+ or.scale = rt, or.font = gt, or.textColor = Et;
+ } else {
+ var _r = I.parse(y[he], 1, Do);
+ if (!_r) return null;
+ var pr = _r.type.kind;
+ if (pr !== "string" && pr !== "value" && pr !== "null" && pr !== "resolvedImage") return I.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");
+ ae = true, $.push({ content: _r, scale: null, font: null, textColor: null });
+ }
+ }
+ return new Gu($);
+ }, Gu.prototype.evaluate = function(y) {
+ var I = function(V) {
+ var $ = V.content.evaluate(y);
+ return Es($) === Zc ? new Gf("", $, null, null, null) : new Gf(Hs($), null, V.scale ? V.scale.evaluate(y) : null, V.font ? V.font.evaluate(y).join(",") : null, V.textColor ? V.textColor.evaluate(y) : null);
+ };
+ return new $l(this.sections.map(I));
+ }, Gu.prototype.eachChild = function(y) {
+ for (var I = 0, V = this.sections; I < V.length; I += 1) {
+ var $ = V[I];
+ y($.content), $.scale && y($.scale), $.font && y($.font), $.textColor && y($.textColor);
+ }
+ }, Gu.prototype.outputDefined = function() {
+ return false;
+ }, Gu.prototype.serialize = function() {
+ for (var y = ["format"], I = 0, V = this.sections; I < V.length; I += 1) {
+ var $ = V[I];
+ y.push($.content.serialize());
+ var ae = {};
+ $.scale && (ae["font-scale"] = $.scale.serialize()), $.font && (ae["text-font"] = $.font.serialize()), $.textColor && (ae["text-color"] = $.textColor.serialize()), y.push(ae);
+ }
+ return y;
+ };
+ var qs = function(y) {
+ this.type = Zc, this.input = y;
+ };
+ qs.parse = function(y, I) {
+ if (y.length !== 2) return I.error("Expected two arguments.");
+ var V = I.parse(y[1], 1, Oo);
+ return V ? new qs(V) : I.error("No image name provided.");
+ }, qs.prototype.evaluate = function(y) {
+ var I = this.input.evaluate(y), V = fl.fromString(I);
+ return V && y.availableImages && (V.available = y.availableImages.indexOf(I) > -1), V;
+ }, qs.prototype.eachChild = function(y) {
+ y(this.input);
+ }, qs.prototype.outputDefined = function() {
+ return false;
+ }, qs.prototype.serialize = function() {
+ return ["image", this.input.serialize()];
+ };
+ var od = { "to-boolean": qo, "to-color": ql, "to-number": aa, "to-string": Oo }, Po = function(y, I) {
+ this.type = y, this.args = I;
+ };
+ Po.parse = function(y, I) {
+ if (y.length < 2) return I.error("Expected at least one argument.");
+ var V = y[0];
+ if ((V === "to-boolean" || V === "to-string") && y.length !== 2) return I.error("Expected one argument.");
+ for (var $ = od[V], ae = [], he = 1; he < y.length; he++) {
+ var ze = I.parse(y[he], he, Do);
+ if (!ze) return null;
+ ae.push(ze);
+ }
+ return new Po($, ae);
+ }, Po.prototype.evaluate = function(y) {
+ if (this.type.kind === "boolean") return !!this.args[0].evaluate(y);
+ if (this.type.kind === "color") {
+ for (var I, V, $ = 0, ae = this.args; $ < ae.length; $ += 1) {
+ var he = ae[$];
+ if (I = he.evaluate(y), V = null, I instanceof cs) return I;
+ if (typeof I == "string") {
+ var ze = y.parseColor(I);
+ if (ze) return ze;
+ } else if (Array.isArray(I) && (I.length < 3 || I.length > 4 ? V = "Invalid rbga value " + JSON.stringify(I) + ": expected an array containing either three or four numeric values." : V = lc(I[0], I[1], I[2], I[3]), !V)) return new cs(I[0] / 255, I[1] / 255, I[2] / 255, I[3]);
+ }
+ throw new ps(V || "Could not parse color from value '" + (typeof I == "string" ? I : String(JSON.stringify(I))) + "'");
+ } else if (this.type.kind === "number") {
+ for (var rt = null, gt = 0, Et = this.args; gt < Et.length; gt += 1) {
+ var or = Et[gt];
+ if (rt = or.evaluate(y), rt === null) return 0;
+ var _r = Number(rt);
+ if (!isNaN(_r)) return _r;
+ }
+ throw new ps("Could not convert " + JSON.stringify(rt) + " to number.");
+ } else return this.type.kind === "formatted" ? $l.fromString(Hs(this.args[0].evaluate(y))) : this.type.kind === "resolvedImage" ? fl.fromString(Hs(this.args[0].evaluate(y))) : Hs(this.args[0].evaluate(y));
+ }, Po.prototype.eachChild = function(y) {
+ this.args.forEach(y);
+ }, Po.prototype.outputDefined = function() {
+ return this.args.every(function(y) {
+ return y.outputDefined();
+ });
+ }, Po.prototype.serialize = function() {
+ if (this.type.kind === "formatted") return new Gu([{ content: this.args[0], scale: null, font: null, textColor: null }]).serialize();
+ if (this.type.kind === "resolvedImage") return new qs(this.args[0]).serialize();
+ var y = ["to-" + this.type.kind];
+ return this.eachChild(function(I) {
+ y.push(I.serialize());
+ }), y;
+ };
+ var sd = ["Unknown", "Point", "LineString", "Polygon"], Ko = function() {
+ this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null;
+ };
+ Ko.prototype.id = function() {
+ return this.feature && "id" in this.feature ? this.feature.id : null;
+ }, Ko.prototype.geometryType = function() {
+ return this.feature ? typeof this.feature.type == "number" ? sd[this.feature.type] : this.feature.type : null;
+ }, Ko.prototype.geometry = function() {
+ return this.feature && "geometry" in this.feature ? this.feature.geometry : null;
+ }, Ko.prototype.canonicalID = function() {
+ return this.canonical;
+ }, Ko.prototype.properties = function() {
+ return this.feature && this.feature.properties || {};
+ }, Ko.prototype.parseColor = function(y) {
+ var I = this._parseColorCache[y];
+ return I || (I = this._parseColorCache[y] = cs.parse(y)), I;
+ };
+ var Pa = function(y, I, V, $) {
+ this.name = y, this.type = I, this._evaluate = V, this.args = $;
+ };
+ Pa.prototype.evaluate = function(y) {
+ return this._evaluate(y, this.args);
+ }, Pa.prototype.eachChild = function(y) {
+ this.args.forEach(y);
+ }, Pa.prototype.outputDefined = function() {
+ return false;
+ }, Pa.prototype.serialize = function() {
+ return [this.name].concat(this.args.map(function(y) {
+ return y.serialize();
+ }));
+ }, Pa.parse = function(y, I) {
+ var V, $ = y[0], ae = Pa.definitions[$];
+ if (!ae) return I.error('Unknown expression "' + $ + '". If you wanted a literal array, use ["literal", [...]].', 0);
+ for (var he = Array.isArray(ae) ? ae[0] : ae.type, ze = Array.isArray(ae) ? [[ae[1], ae[2]]] : ae.overloads, rt = ze.filter(function(to) {
+ var ao = to[0];
+ return !Array.isArray(ao) || ao.length === y.length - 1;
+ }), gt = null, Et = 0, or = rt; Et < or.length; Et += 1) {
+ var _r = or[Et], pr = _r[0], Fr = _r[1];
+ gt = new ks(I.registry, I.path, null, I.scope);
+ for (var oi = [], Hi = false, Ai = 1; Ai < y.length; Ai++) {
+ var bn = y[Ai], nn = Array.isArray(pr) ? pr[Ai - 1] : pr.type, xn = gt.parse(bn, 1 + oi.length, nn);
+ if (!xn) {
+ Hi = true;
+ break;
+ }
+ oi.push(xn);
+ }
+ if (!Hi) {
+ if (Array.isArray(pr) && pr.length !== oi.length) {
+ gt.error("Expected " + pr.length + " arguments, but found " + oi.length + " instead.");
+ continue;
+ }
+ for (var Pn = 0; Pn < oi.length; Pn++) {
+ var Zn = Array.isArray(pr) ? pr[Pn] : pr.type, ga = oi[Pn];
+ gt.concat(Pn + 1).checkSubtype(Zn, ga.type);
+ }
+ if (gt.errors.length === 0) return new Pa($, he, Fr, oi);
+ }
+ }
+ if (rt.length === 1) (V = I.errors).push.apply(V, gt.errors);
+ else {
+ for (var ha = rt.length ? rt : ze, eo = ha.map(function(to) {
+ var ao = to[0];
+ return af(ao);
+ }).join(" | "), za = [], Za = 1; Za < y.length; Za++) {
+ var Jo = I.parse(y[Za], 1 + za.length);
+ if (!Jo) return null;
+ za.push(Os(Jo.type));
+ }
+ I.error("Expected arguments of type " + eo + ", but found (" + za.join(", ") + ") instead.");
+ }
+ return null;
+ }, Pa.register = function(y, I) {
+ Pa.definitions = I;
+ for (var V in I) y[V] = Pa;
+ };
+ function af(m) {
+ return Array.isArray(m) ? "(" + m.map(Os).join(", ") + ")" : "(" + Os(m.type) + "...)";
+ }
+ var Hu = function(y, I, V) {
+ this.type = Vf, this.locale = V, this.caseSensitive = y, this.diacriticSensitive = I;
+ };
+ Hu.parse = function(y, I) {
+ if (y.length !== 2) return I.error("Expected one argument.");
+ var V = y[1];
+ if (typeof V != "object" || Array.isArray(V)) return I.error("Collator options argument must be an object.");
+ var $ = I.parse(V["case-sensitive"] === void 0 ? false : V["case-sensitive"], 1, qo);
+ if (!$) return null;
+ var ae = I.parse(V["diacritic-sensitive"] === void 0 ? false : V["diacritic-sensitive"], 1, qo);
+ if (!ae) return null;
+ var he = null;
+ return V.locale && (he = I.parse(V.locale, 1, Oo), !he) ? null : new Hu($, ae, he);
+ }, Hu.prototype.evaluate = function(y) {
+ return new nf(this.caseSensitive.evaluate(y), this.diacriticSensitive.evaluate(y), this.locale ? this.locale.evaluate(y) : null);
+ }, Hu.prototype.eachChild = function(y) {
+ y(this.caseSensitive), y(this.diacriticSensitive), this.locale && y(this.locale);
+ }, Hu.prototype.outputDefined = function() {
+ return false;
+ }, Hu.prototype.serialize = function() {
+ var y = {};
+ return y["case-sensitive"] = this.caseSensitive.serialize(), y["diacritic-sensitive"] = this.diacriticSensitive.serialize(), this.locale && (y.locale = this.locale.serialize()), ["collator", y];
+ };
+ var bl = 8192;
+ function Hf(m, y) {
+ m[0] = Math.min(m[0], y[0]), m[1] = Math.min(m[1], y[1]), m[2] = Math.max(m[2], y[0]), m[3] = Math.max(m[3], y[1]);
+ }
+ function Ic(m) {
+ return (180 + m) / 360;
+ }
+ function yf(m) {
+ return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + m * Math.PI / 360))) / 360;
+ }
+ function Bl(m, y) {
+ return !(m[0] <= y[0] || m[2] >= y[2] || m[1] <= y[1] || m[3] >= y[3]);
+ }
+ function Ah(m, y) {
+ var I = Ic(m[0]), V = yf(m[1]), $ = Math.pow(2, y.z);
+ return [Math.round(I * $ * bl), Math.round(V * $ * bl)];
+ }
+ function Qf(m, y, I) {
+ var V = m[0] - y[0], $ = m[1] - y[1], ae = m[0] - I[0], he = m[1] - I[1];
+ return V * he - ae * $ === 0 && V * ae <= 0 && $ * he <= 0;
+ }
+ function _f(m, y, I) {
+ return y[1] > m[1] != I[1] > m[1] && m[0] < (I[0] - y[0]) * (m[1] - y[1]) / (I[1] - y[1]) + y[0];
+ }
+ function Yc(m, y) {
+ for (var I = false, V = 0, $ = y.length; V < $; V++) for (var ae = y[V], he = 0, ze = ae.length; he < ze - 1; he++) {
+ if (Qf(m, ae[he], ae[he + 1])) return false;
+ _f(m, ae[he], ae[he + 1]) && (I = !I);
+ }
+ return I;
+ }
+ function eh(m, y) {
+ for (var I = 0; I < y.length; I++) if (Yc(m, y[I])) return true;
+ return false;
+ }
+ function th(m, y) {
+ return m[0] * y[1] - m[1] * y[0];
+ }
+ function ju(m, y, I, V) {
+ var $ = m[0] - I[0], ae = m[1] - I[1], he = y[0] - I[0], ze = y[1] - I[1], rt = V[0] - I[0], gt = V[1] - I[1], Et = $ * gt - rt * ae, or = he * gt - rt * ze;
+ return Et > 0 && or < 0 || Et < 0 && or > 0;
+ }
+ function jf(m, y, I, V) {
+ var $ = [y[0] - m[0], y[1] - m[1]], ae = [V[0] - I[0], V[1] - I[1]];
+ return th(ae, $) === 0 ? false : !!(ju(m, y, I, V) && ju(I, V, m, y));
+ }
+ function cc(m, y, I) {
+ for (var V = 0, $ = I; V < $.length; V += 1) for (var ae = $[V], he = 0; he < ae.length - 1; ++he) if (jf(m, y, ae[he], ae[he + 1])) return true;
+ return false;
+ }
+ function of(m, y) {
+ for (var I = 0; I < m.length; ++I) if (!Yc(m[I], y)) return false;
+ for (var V = 0; V < m.length - 1; ++V) if (cc(m[V], m[V + 1], y)) return false;
+ return true;
+ }
+ function Nl(m, y) {
+ for (var I = 0; I < y.length; I++) if (of(m, y[I])) return true;
+ return false;
+ }
+ function Kc(m, y, I) {
+ for (var V = [], $ = 0; $ < m.length; $++) {
+ for (var ae = [], he = 0; he < m[$].length; he++) {
+ var ze = Ah(m[$][he], I);
+ Hf(y, ze), ae.push(ze);
+ }
+ V.push(ae);
+ }
+ return V;
+ }
+ function Rc(m, y, I) {
+ for (var V = [], $ = 0; $ < m.length; $++) {
+ var ae = Kc(m[$], y, I);
+ V.push(ae);
+ }
+ return V;
+ }
+ function gs(m, y, I, V) {
+ if (m[0] < I[0] || m[0] > I[2]) {
+ var $ = V * 0.5, ae = m[0] - I[0] > $ ? -V : I[0] - m[0] > $ ? V : 0;
+ ae === 0 && (ae = m[0] - I[2] > $ ? -V : I[2] - m[0] > $ ? V : 0), m[0] += ae;
+ }
+ Hf(y, m);
+ }
+ function Wf(m) {
+ m[0] = m[1] = 1 / 0, m[2] = m[3] = -1 / 0;
+ }
+ function Wh(m, y, I, V) {
+ for (var $ = Math.pow(2, V.z) * bl, ae = [V.x * bl, V.y * bl], he = [], ze = 0, rt = m; ze < rt.length; ze += 1) for (var gt = rt[ze], Et = 0, or = gt; Et < or.length; Et += 1) {
+ var _r = or[Et], pr = [_r.x + ae[0], _r.y + ae[1]];
+ gs(pr, y, I, $), he.push(pr);
+ }
+ return he;
+ }
+ function rh(m, y, I, V) {
+ for (var $ = Math.pow(2, V.z) * bl, ae = [V.x * bl, V.y * bl], he = [], ze = 0, rt = m; ze < rt.length; ze += 1) {
+ for (var gt = rt[ze], Et = [], or = 0, _r = gt; or < _r.length; or += 1) {
+ var pr = _r[or], Fr = [pr.x + ae[0], pr.y + ae[1]];
+ Hf(y, Fr), Et.push(Fr);
+ }
+ he.push(Et);
+ }
+ if (y[2] - y[0] <= $ / 2) {
+ Wf(y);
+ for (var oi = 0, Hi = he; oi < Hi.length; oi += 1) for (var Ai = Hi[oi], bn = 0, nn = Ai; bn < nn.length; bn += 1) {
+ var xn = nn[bn];
+ gs(xn, y, I, $);
+ }
+ }
+ return he;
+ }
+ function sf(m, y) {
+ var I = [1 / 0, 1 / 0, -1 / 0, -1 / 0], V = [1 / 0, 1 / 0, -1 / 0, -1 / 0], $ = m.canonicalID();
+ if (y.type === "Polygon") {
+ var ae = Kc(y.coordinates, V, $), he = Wh(m.geometry(), I, V, $);
+ if (!Bl(I, V)) return false;
+ for (var ze = 0, rt = he; ze < rt.length; ze += 1) {
+ var gt = rt[ze];
+ if (!Yc(gt, ae)) return false;
+ }
+ }
+ if (y.type === "MultiPolygon") {
+ var Et = Rc(y.coordinates, V, $), or = Wh(m.geometry(), I, V, $);
+ if (!Bl(I, V)) return false;
+ for (var _r = 0, pr = or; _r < pr.length; _r += 1) {
+ var Fr = pr[_r];
+ if (!eh(Fr, Et)) return false;
+ }
+ }
+ return true;
+ }
+ function Sh(m, y) {
+ var I = [1 / 0, 1 / 0, -1 / 0, -1 / 0], V = [1 / 0, 1 / 0, -1 / 0, -1 / 0], $ = m.canonicalID();
+ if (y.type === "Polygon") {
+ var ae = Kc(y.coordinates, V, $), he = rh(m.geometry(), I, V, $);
+ if (!Bl(I, V)) return false;
+ for (var ze = 0, rt = he; ze < rt.length; ze += 1) {
+ var gt = rt[ze];
+ if (!of(gt, ae)) return false;
+ }
+ }
+ if (y.type === "MultiPolygon") {
+ var Et = Rc(y.coordinates, V, $), or = rh(m.geometry(), I, V, $);
+ if (!Bl(I, V)) return false;
+ for (var _r = 0, pr = or; _r < pr.length; _r += 1) {
+ var Fr = pr[_r];
+ if (!Nl(Fr, Et)) return false;
+ }
+ }
+ return true;
+ }
+ var Mu = function(y, I) {
+ this.type = qo, this.geojson = y, this.geometries = I;
+ };
+ Mu.parse = function(y, I) {
+ if (y.length !== 2) return I.error("'within' expression requires exactly one argument, but found " + (y.length - 1) + " instead.");
+ if (Fu(y[1])) {
+ var V = y[1];
+ if (V.type === "FeatureCollection") for (var $ = 0; $ < V.features.length; ++$) {
+ var ae = V.features[$].geometry.type;
+ if (ae === "Polygon" || ae === "MultiPolygon") return new Mu(V, V.features[$].geometry);
+ }
+ else if (V.type === "Feature") {
+ var he = V.geometry.type;
+ if (he === "Polygon" || he === "MultiPolygon") return new Mu(V, V.geometry);
+ } else if (V.type === "Polygon" || V.type === "MultiPolygon") return new Mu(V, V);
+ }
+ return I.error("'within' expression requires valid geojson object that contains polygon geometry type.");
+ }, Mu.prototype.evaluate = function(y) {
+ if (y.geometry() != null && y.canonicalID() != null) {
+ if (y.geometryType() === "Point") return sf(y, this.geometries);
+ if (y.geometryType() === "LineString") return Sh(y, this.geometries);
+ }
+ return false;
+ }, Mu.prototype.eachChild = function() {
+ }, Mu.prototype.outputDefined = function() {
+ return true;
+ }, Mu.prototype.serialize = function() {
+ return ["within", this.geojson];
+ };
+ function ih(m) {
+ if (m instanceof Pa) {
+ if (m.name === "get" && m.args.length === 1) return false;
+ if (m.name === "feature-state") return false;
+ if (m.name === "has" && m.args.length === 1) return false;
+ if (m.name === "properties" || m.name === "geometry-type" || m.name === "id") return false;
+ if (/^filter-/.test(m.name)) return false;
+ }
+ if (m instanceof Mu) return false;
+ var y = true;
+ return m.eachChild(function(I) {
+ y && !ih(I) && (y = false);
+ }), y;
+ }
+ function js(m) {
+ if (m instanceof Pa && m.name === "feature-state") return false;
+ var y = true;
+ return m.eachChild(function(I) {
+ y && !js(I) && (y = false);
+ }), y;
+ }
+ function Eu(m, y) {
+ if (m instanceof Pa && y.indexOf(m.name) >= 0) return false;
+ var I = true;
+ return m.eachChild(function(V) {
+ I && !Eu(V, y) && (I = false);
+ }), I;
+ }
+ var Dc = function(y, I) {
+ this.type = I.type, this.name = y, this.boundExpression = I;
+ };
+ Dc.parse = function(y, I) {
+ if (y.length !== 2 || typeof y[1] != "string") return I.error("'var' expression requires exactly one string literal argument.");
+ var V = y[1];
+ return I.scope.has(V) ? new Dc(V, I.scope.get(V)) : I.error('Unknown variable "' + V + '". Make sure "' + V + '" has been bound in an enclosing "let" expression before using it.', 1);
+ }, Dc.prototype.evaluate = function(y) {
+ return this.boundExpression.evaluate(y);
+ }, Dc.prototype.eachChild = function() {
+ }, Dc.prototype.outputDefined = function() {
+ return false;
+ }, Dc.prototype.serialize = function() {
+ return ["var", this.name];
+ };
+ var ks = function(y, I, V, $, ae) {
+ I === void 0 && (I = []), $ === void 0 && ($ = new Hl()), ae === void 0 && (ae = []), this.registry = y, this.path = I, this.key = I.map(function(he) {
+ return "[" + he + "]";
+ }).join(""), this.scope = $, this.errors = ae, this.expectedType = V;
+ };
+ ks.prototype.parse = function(y, I, V, $, ae) {
+ return ae === void 0 && (ae = {}), I ? this.concat(I, V, $)._parse(y, ae) : this._parse(y, ae);
+ }, ks.prototype._parse = function(y, I) {
+ (y === null || typeof y == "string" || typeof y == "boolean" || typeof y == "number") && (y = ["literal", y]);
+ function V(Et, or, _r) {
+ return _r === "assert" ? new xl(or, [Et]) : _r === "coerce" ? new Po(or, [Et]) : Et;
+ }
+ if (Array.isArray(y)) {
+ if (y.length === 0) return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');
+ var $ = y[0];
+ if (typeof $ != "string") return this.error("Expression name must be a string, but found " + typeof $ + ' instead. If you wanted a literal array, use ["literal", [...]].', 0), null;
+ var ae = this.registry[$];
+ if (ae) {
+ var he = ae.parse(y, this);
+ if (!he) return null;
+ if (this.expectedType) {
+ var ze = this.expectedType, rt = he.type;
+ if ((ze.kind === "string" || ze.kind === "number" || ze.kind === "boolean" || ze.kind === "object" || ze.kind === "array") && rt.kind === "value") he = V(he, ze, I.typeAnnotation || "assert");
+ else if ((ze.kind === "color" || ze.kind === "formatted" || ze.kind === "resolvedImage") && (rt.kind === "value" || rt.kind === "string")) he = V(he, ze, I.typeAnnotation || "coerce");
+ else if (this.checkSubtype(ze, rt)) return null;
+ }
+ if (!(he instanceof Go) && he.type.kind !== "resolvedImage" && bc(he)) {
+ var gt = new Ko();
+ try {
+ he = new Go(he.type, he.evaluate(gt));
+ } catch (Et) {
+ return this.error(Et.message), null;
+ }
+ }
+ return he;
+ }
+ return this.error('Unknown expression "' + $ + '". If you wanted a literal array, use ["literal", [...]].', 0);
+ } else return typeof y == "undefined" ? this.error("'undefined' value invalid. Use null instead.") : typeof y == "object" ? this.error('Bare objects invalid. Use ["literal", {...}] instead.') : this.error("Expected an array, but found " + typeof y + " instead.");
+ }, ks.prototype.concat = function(y, I, V) {
+ var $ = typeof y == "number" ? this.path.concat(y) : this.path, ae = V ? this.scope.concat(V) : this.scope;
+ return new ks(this.registry, $, I || null, ae, this.errors);
+ }, ks.prototype.error = function(y) {
+ for (var I = [], V = arguments.length - 1; V-- > 0; ) I[V] = arguments[V + 1];
+ var $ = "" + this.key + I.map(function(ae) {
+ return "[" + ae + "]";
+ }).join("");
+ this.errors.push(new Ns($, y));
+ }, ks.prototype.checkSubtype = function(y, I) {
+ var V = oc(y, I);
+ return V && this.error(V), V;
+ };
+ function bc(m) {
+ if (m instanceof Dc) return bc(m.boundExpression);
+ if (m instanceof Pa && m.name === "error") return false;
+ if (m instanceof Hu) return false;
+ if (m instanceof Mu) return false;
+ var y = m instanceof Po || m instanceof xl, I = true;
+ return m.eachChild(function(V) {
+ y ? I = I && bc(V) : I = I && V instanceof Go;
+ }), I ? ih(m) && Eu(m, ["zoom", "heatmap-density", "line-progress", "accumulated", "is-supported-script"]) : false;
+ }
+ function hu(m, y) {
+ for (var I = m.length - 1, V = 0, $ = I, ae = 0, he, ze; V <= $; ) if (ae = Math.floor((V + $) / 2), he = m[ae], ze = m[ae + 1], he <= y) {
+ if (ae === I || y < ze) return ae;
+ V = ae + 1;
+ } else if (he > y) $ = ae - 1;
+ else throw new ps("Input is not a number.");
+ return 0;
+ }
+ var _u = function(y, I, V) {
+ this.type = y, this.input = I, this.labels = [], this.outputs = [];
+ for (var $ = 0, ae = V; $ < ae.length; $ += 1) {
+ var he = ae[$], ze = he[0], rt = he[1];
+ this.labels.push(ze), this.outputs.push(rt);
+ }
+ };
+ _u.parse = function(y, I) {
+ if (y.length - 1 < 4) return I.error("Expected at least 4 arguments, but found only " + (y.length - 1) + ".");
+ if ((y.length - 1) % 2 !== 0) return I.error("Expected an even number of arguments.");
+ var V = I.parse(y[1], 1, aa);
+ if (!V) return null;
+ var $ = [], ae = null;
+ I.expectedType && I.expectedType.kind !== "value" && (ae = I.expectedType);
+ for (var he = 1; he < y.length; he += 2) {
+ var ze = he === 1 ? -1 / 0 : y[he], rt = y[he + 1], gt = he, Et = he + 1;
+ if (typeof ze != "number") return I.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', gt);
+ if ($.length && $[$.length - 1][0] >= ze) return I.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', gt);
+ var or = I.parse(rt, Et, ae);
+ if (!or) return null;
+ ae = ae || or.type, $.push([ze, or]);
+ }
+ return new _u(ae, V, $);
+ }, _u.prototype.evaluate = function(y) {
+ var I = this.labels, V = this.outputs;
+ if (I.length === 1) return V[0].evaluate(y);
+ var $ = this.input.evaluate(y);
+ if ($ <= I[0]) return V[0].evaluate(y);
+ var ae = I.length;
+ if ($ >= I[ae - 1]) return V[ae - 1].evaluate(y);
+ var he = hu(I, $);
+ return V[he].evaluate(y);
+ }, _u.prototype.eachChild = function(y) {
+ y(this.input);
+ for (var I = 0, V = this.outputs; I < V.length; I += 1) {
+ var $ = V[I];
+ y($);
+ }
+ }, _u.prototype.outputDefined = function() {
+ return this.outputs.every(function(y) {
+ return y.outputDefined();
+ });
+ }, _u.prototype.serialize = function() {
+ for (var y = ["step", this.input.serialize()], I = 0; I < this.labels.length; I++) I > 0 && y.push(this.labels[I]), y.push(this.outputs[I].serialize());
+ return y;
+ };
+ function nl(m, y, I) {
+ return m * (1 - I) + y * I;
+ }
+ function nh(m, y, I) {
+ return new cs(nl(m.r, y.r, I), nl(m.g, y.g, I), nl(m.b, y.b, I), nl(m.a, y.a, I));
+ }
+ function Mh(m, y, I) {
+ return m.map(function(V, $) {
+ return nl(V, y[$], I);
+ });
+ }
+ var zu = Object.freeze({ __proto__: null, number: nl, color: nh, array: Mh }), Fc = 0.95047, wc = 1, bd = 1.08883, xf = 4 / 29, Pf = 6 / 29, Ou = 3 * Pf * Pf, bf = Pf * Pf * Pf, jl = Math.PI / 180, lf = 180 / Math.PI;
+ function Xh(m) {
+ return m > bf ? Math.pow(m, 1 / 3) : m / Ou + xf;
+ }
+ function If(m) {
+ return m > Pf ? m * m * m : Ou * (m - xf);
+ }
+ function Cs(m) {
+ return 255 * (m <= 31308e-7 ? 12.92 * m : 1.055 * Math.pow(m, 1 / 2.4) - 0.055);
+ }
+ function du(m) {
+ return m /= 255, m <= 0.04045 ? m / 12.92 : Math.pow((m + 0.055) / 1.055, 2.4);
+ }
+ function ku(m) {
+ var y = du(m.r), I = du(m.g), V = du(m.b), $ = Xh((0.4124564 * y + 0.3575761 * I + 0.1804375 * V) / Fc), ae = Xh((0.2126729 * y + 0.7151522 * I + 0.072175 * V) / wc), he = Xh((0.0193339 * y + 0.119192 * I + 0.9503041 * V) / bd);
+ return { l: 116 * ae - 16, a: 500 * ($ - ae), b: 200 * (ae - he), alpha: m.a };
+ }
+ function Xf(m) {
+ var y = (m.l + 16) / 116, I = isNaN(m.a) ? y : y + m.a / 500, V = isNaN(m.b) ? y : y - m.b / 200;
+ return y = wc * If(y), I = Fc * If(I), V = bd * If(V), new cs(Cs(3.2404542 * I - 1.5371385 * y - 0.4985314 * V), Cs(-0.969266 * I + 1.8760108 * y + 0.041556 * V), Cs(0.0556434 * I - 0.2040259 * y + 1.0572252 * V), m.alpha);
+ }
+ function Us(m, y, I) {
+ return { l: nl(m.l, y.l, I), a: nl(m.a, y.a, I), b: nl(m.b, y.b, I), alpha: nl(m.alpha, y.alpha, I) };
+ }
+ function wf(m) {
+ var y = ku(m), I = y.l, V = y.a, $ = y.b, ae = Math.atan2($, V) * lf;
+ return { h: ae < 0 ? ae + 360 : ae, c: Math.sqrt(V * V + $ * $), l: I, alpha: m.a };
+ }
+ function zc(m) {
+ var y = m.h * jl, I = m.c, V = m.l;
+ return Xf({ l: V, a: Math.cos(y) * I, b: Math.sin(y) * I, alpha: m.alpha });
+ }
+ function Wu(m, y, I) {
+ var V = y - m;
+ return m + I * (V > 180 || V < -180 ? V - 360 * Math.round(V / 360) : V);
+ }
+ function Rf(m, y, I) {
+ return { h: Wu(m.h, y.h, I), c: nl(m.c, y.c, I), l: nl(m.l, y.l, I), alpha: nl(m.alpha, y.alpha, I) };
+ }
+ var Xu = { forward: ku, reverse: Xf, interpolate: Us }, uf = { forward: wf, reverse: zc, interpolate: Rf }, Zf = Object.freeze({ __proto__: null, lab: Xu, hcl: uf }), Wl = function(y, I, V, $, ae) {
+ this.type = y, this.operator = I, this.interpolation = V, this.input = $, this.labels = [], this.outputs = [];
+ for (var he = 0, ze = ae; he < ze.length; he += 1) {
+ var rt = ze[he], gt = rt[0], Et = rt[1];
+ this.labels.push(gt), this.outputs.push(Et);
+ }
+ };
+ Wl.interpolationFactor = function(y, I, V, $) {
+ var ae = 0;
+ if (y.name === "exponential") ae = ah(I, y.base, V, $);
+ else if (y.name === "linear") ae = ah(I, 1, V, $);
+ else if (y.name === "cubic-bezier") {
+ var he = y.controlPoints, ze = new s(he[0], he[1], he[2], he[3]);
+ ae = ze.solve(ah(I, 1, V, $));
+ }
+ return ae;
+ }, Wl.parse = function(y, I) {
+ var V = y[0], $ = y[1], ae = y[2], he = y.slice(3);
+ if (!Array.isArray($) || $.length === 0) return I.error("Expected an interpolation type expression.", 1);
+ if ($[0] === "linear") $ = { name: "linear" };
+ else if ($[0] === "exponential") {
+ var ze = $[1];
+ if (typeof ze != "number") return I.error("Exponential interpolation requires a numeric base.", 1, 1);
+ $ = { name: "exponential", base: ze };
+ } else if ($[0] === "cubic-bezier") {
+ var rt = $.slice(1);
+ if (rt.length !== 4 || rt.some(function(Ai) {
+ return typeof Ai != "number" || Ai < 0 || Ai > 1;
+ })) return I.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1);
+ $ = { name: "cubic-bezier", controlPoints: rt };
+ } else return I.error("Unknown interpolation type " + String($[0]), 1, 0);
+ if (y.length - 1 < 4) return I.error("Expected at least 4 arguments, but found only " + (y.length - 1) + ".");
+ if ((y.length - 1) % 2 !== 0) return I.error("Expected an even number of arguments.");
+ if (ae = I.parse(ae, 2, aa), !ae) return null;
+ var gt = [], Et = null;
+ V === "interpolate-hcl" || V === "interpolate-lab" ? Et = ql : I.expectedType && I.expectedType.kind !== "value" && (Et = I.expectedType);
+ for (var or = 0; or < he.length; or += 2) {
+ var _r = he[or], pr = he[or + 1], Fr = or + 3, oi = or + 4;
+ if (typeof _r != "number") return I.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', Fr);
+ if (gt.length && gt[gt.length - 1][0] >= _r) return I.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', Fr);
+ var Hi = I.parse(pr, oi, Et);
+ if (!Hi) return null;
+ Et = Et || Hi.type, gt.push([_r, Hi]);
+ }
+ return Et.kind !== "number" && Et.kind !== "color" && !(Et.kind === "array" && Et.itemType.kind === "number" && typeof Et.N == "number") ? I.error("Type " + Os(Et) + " is not interpolatable.") : new Wl(Et, V, $, ae, gt);
+ }, Wl.prototype.evaluate = function(y) {
+ var I = this.labels, V = this.outputs;
+ if (I.length === 1) return V[0].evaluate(y);
+ var $ = this.input.evaluate(y);
+ if ($ <= I[0]) return V[0].evaluate(y);
+ var ae = I.length;
+ if ($ >= I[ae - 1]) return V[ae - 1].evaluate(y);
+ var he = hu(I, $), ze = I[he], rt = I[he + 1], gt = Wl.interpolationFactor(this.interpolation, $, ze, rt), Et = V[he].evaluate(y), or = V[he + 1].evaluate(y);
+ return this.operator === "interpolate" ? zu[this.type.kind.toLowerCase()](Et, or, gt) : this.operator === "interpolate-hcl" ? uf.reverse(uf.interpolate(uf.forward(Et), uf.forward(or), gt)) : Xu.reverse(Xu.interpolate(Xu.forward(Et), Xu.forward(or), gt));
+ }, Wl.prototype.eachChild = function(y) {
+ y(this.input);
+ for (var I = 0, V = this.outputs; I < V.length; I += 1) {
+ var $ = V[I];
+ y($);
+ }
+ }, Wl.prototype.outputDefined = function() {
+ return this.outputs.every(function(y) {
+ return y.outputDefined();
+ });
+ }, Wl.prototype.serialize = function() {
+ var y;
+ this.interpolation.name === "linear" ? y = ["linear"] : this.interpolation.name === "exponential" ? this.interpolation.base === 1 ? y = ["linear"] : y = ["exponential", this.interpolation.base] : y = ["cubic-bezier"].concat(this.interpolation.controlPoints);
+ for (var I = [this.operator, y, this.input.serialize()], V = 0; V < this.labels.length; V++) I.push(this.labels[V], this.outputs[V].serialize());
+ return I;
+ };
+ function ah(m, y, I, V) {
+ var $ = V - I, ae = m - I;
+ return $ === 0 ? 0 : y === 1 ? ae / $ : (Math.pow(y, ae) - 1) / (Math.pow(y, $) - 1);
+ }
+ var Zu = function(y, I) {
+ this.type = y, this.args = I;
+ };
+ Zu.parse = function(y, I) {
+ if (y.length < 2) return I.error("Expectected at least one argument.");
+ var V = null, $ = I.expectedType;
+ $ && $.kind !== "value" && (V = $);
+ for (var ae = [], he = 0, ze = y.slice(1); he < ze.length; he += 1) {
+ var rt = ze[he], gt = I.parse(rt, 1 + ae.length, V, void 0, { typeAnnotation: "omit" });
+ if (!gt) return null;
+ V = V || gt.type, ae.push(gt);
+ }
+ var Et = $ && ae.some(function(or) {
+ return oc($, or.type);
+ });
+ return Et ? new Zu(Do, ae) : new Zu(V, ae);
+ }, Zu.prototype.evaluate = function(y) {
+ for (var I = null, V = 0, $, ae = 0, he = this.args; ae < he.length; ae += 1) {
+ var ze = he[ae];
+ if (V++, I = ze.evaluate(y), I && I instanceof fl && !I.available && ($ || ($ = I.name), I = null, V === this.args.length && (I = $)), I !== null) break;
+ }
+ return I;
+ }, Zu.prototype.eachChild = function(y) {
+ this.args.forEach(y);
+ }, Zu.prototype.outputDefined = function() {
+ return this.args.every(function(y) {
+ return y.outputDefined();
+ });
+ }, Zu.prototype.serialize = function() {
+ var y = ["coalesce"];
+ return this.eachChild(function(I) {
+ y.push(I.serialize());
+ }), y;
+ };
+ var Oc = function(y, I) {
+ this.type = I.type, this.bindings = [].concat(y), this.result = I;
+ };
+ Oc.prototype.evaluate = function(y) {
+ return this.result.evaluate(y);
+ }, Oc.prototype.eachChild = function(y) {
+ for (var I = 0, V = this.bindings; I < V.length; I += 1) {
+ var $ = V[I];
+ y($[1]);
+ }
+ y(this.result);
+ }, Oc.parse = function(y, I) {
+ if (y.length < 4) return I.error("Expected at least 3 arguments, but found " + (y.length - 1) + " instead.");
+ for (var V = [], $ = 1; $ < y.length - 1; $ += 2) {
+ var ae = y[$];
+ if (typeof ae != "string") return I.error("Expected string, but found " + typeof ae + " instead.", $);
+ if (/[^a-zA-Z0-9_]/.test(ae)) return I.error("Variable names must contain only alphanumeric characters or '_'.", $);
+ var he = I.parse(y[$ + 1], $ + 1);
+ if (!he) return null;
+ V.push([ae, he]);
+ }
+ var ze = I.parse(y[y.length - 1], y.length - 1, I.expectedType, V);
+ return ze ? new Oc(V, ze) : null;
+ }, Oc.prototype.outputDefined = function() {
+ return this.result.outputDefined();
+ }, Oc.prototype.serialize = function() {
+ for (var y = ["let"], I = 0, V = this.bindings; I < V.length; I += 1) {
+ var $ = V[I], ae = $[0], he = $[1];
+ y.push(ae, he.serialize());
+ }
+ return y.push(this.result.serialize()), y;
+ };
+ var Tc = function(y, I, V) {
+ this.type = y, this.index = I, this.input = V;
+ };
+ Tc.parse = function(y, I) {
+ if (y.length !== 3) return I.error("Expected 2 arguments, but found " + (y.length - 1) + " instead.");
+ var V = I.parse(y[1], 1, aa), $ = I.parse(y[2], 2, Jl(I.expectedType || Do));
+ if (!V || !$) return null;
+ var ae = $.type;
+ return new Tc(ae.itemType, V, $);
+ }, Tc.prototype.evaluate = function(y) {
+ var I = this.index.evaluate(y), V = this.input.evaluate(y);
+ if (I < 0) throw new ps("Array index out of bounds: " + I + " < 0.");
+ if (I >= V.length) throw new ps("Array index out of bounds: " + I + " > " + (V.length - 1) + ".");
+ if (I !== Math.floor(I)) throw new ps("Array index must be an integer, but found " + I + " instead.");
+ return V[I];
+ }, Tc.prototype.eachChild = function(y) {
+ y(this.index), y(this.input);
+ }, Tc.prototype.outputDefined = function() {
+ return false;
+ }, Tc.prototype.serialize = function() {
+ return ["at", this.index.serialize(), this.input.serialize()];
+ };
+ var wl = function(y, I) {
+ this.type = qo, this.needle = y, this.haystack = I;
+ };
+ wl.parse = function(y, I) {
+ if (y.length !== 3) return I.error("Expected 2 arguments, but found " + (y.length - 1) + " instead.");
+ var V = I.parse(y[1], 1, Do), $ = I.parse(y[2], 2, Do);
+ return !V || !$ ? null : Cf(V.type, [qo, Oo, aa, ac, Do]) ? new wl(V, $) : I.error("Expected first argument to be of type boolean, string, number or null, but found " + Os(V.type) + " instead");
+ }, wl.prototype.evaluate = function(y) {
+ var I = this.needle.evaluate(y), V = this.haystack.evaluate(y);
+ if (!V) return false;
+ if (!sc(I, ["boolean", "string", "number", "null"])) throw new ps("Expected first argument to be of type boolean, string, number or null, but found " + Os(Es(I)) + " instead.");
+ if (!sc(V, ["string", "array"])) throw new ps("Expected second argument to be of type array or string, but found " + Os(Es(V)) + " instead.");
+ return V.indexOf(I) >= 0;
+ }, wl.prototype.eachChild = function(y) {
+ y(this.needle), y(this.haystack);
+ }, wl.prototype.outputDefined = function() {
+ return true;
+ }, wl.prototype.serialize = function() {
+ return ["in", this.needle.serialize(), this.haystack.serialize()];
+ };
+ var vu = function(y, I, V) {
+ this.type = aa, this.needle = y, this.haystack = I, this.fromIndex = V;
+ };
+ vu.parse = function(y, I) {
+ if (y.length <= 2 || y.length >= 5) return I.error("Expected 3 or 4 arguments, but found " + (y.length - 1) + " instead.");
+ var V = I.parse(y[1], 1, Do), $ = I.parse(y[2], 2, Do);
+ if (!V || !$) return null;
+ if (!Cf(V.type, [qo, Oo, aa, ac, Do])) return I.error("Expected first argument to be of type boolean, string, number or null, but found " + Os(V.type) + " instead");
+ if (y.length === 4) {
+ var ae = I.parse(y[3], 3, aa);
+ return ae ? new vu(V, $, ae) : null;
+ } else return new vu(V, $);
+ }, vu.prototype.evaluate = function(y) {
+ var I = this.needle.evaluate(y), V = this.haystack.evaluate(y);
+ if (!sc(I, ["boolean", "string", "number", "null"])) throw new ps("Expected first argument to be of type boolean, string, number or null, but found " + Os(Es(I)) + " instead.");
+ if (!sc(V, ["string", "array"])) throw new ps("Expected second argument to be of type array or string, but found " + Os(Es(V)) + " instead.");
+ if (this.fromIndex) {
+ var $ = this.fromIndex.evaluate(y);
+ return V.indexOf(I, $);
+ }
+ return V.indexOf(I);
+ }, vu.prototype.eachChild = function(y) {
+ y(this.needle), y(this.haystack), this.fromIndex && y(this.fromIndex);
+ }, vu.prototype.outputDefined = function() {
+ return false;
+ }, vu.prototype.serialize = function() {
+ if (this.fromIndex != null && this.fromIndex !== void 0) {
+ var y = this.fromIndex.serialize();
+ return ["index-of", this.needle.serialize(), this.haystack.serialize(), y];
+ }
+ return ["index-of", this.needle.serialize(), this.haystack.serialize()];
+ };
+ var qc = function(y, I, V, $, ae, he) {
+ this.inputType = y, this.type = I, this.input = V, this.cases = $, this.outputs = ae, this.otherwise = he;
+ };
+ qc.parse = function(y, I) {
+ if (y.length < 5) return I.error("Expected at least 4 arguments, but found only " + (y.length - 1) + ".");
+ if (y.length % 2 !== 1) return I.error("Expected an even number of arguments.");
+ var V, $;
+ I.expectedType && I.expectedType.kind !== "value" && ($ = I.expectedType);
+ for (var ae = {}, he = [], ze = 2; ze < y.length - 1; ze += 2) {
+ var rt = y[ze], gt = y[ze + 1];
+ Array.isArray(rt) || (rt = [rt]);
+ var Et = I.concat(ze);
+ if (rt.length === 0) return Et.error("Expected at least one branch label.");
+ for (var or = 0, _r = rt; or < _r.length; or += 1) {
+ var pr = _r[or];
+ if (typeof pr != "number" && typeof pr != "string") return Et.error("Branch labels must be numbers or strings.");
+ if (typeof pr == "number" && Math.abs(pr) > Number.MAX_SAFE_INTEGER) return Et.error("Branch labels must be integers no larger than " + Number.MAX_SAFE_INTEGER + ".");
+ if (typeof pr == "number" && Math.floor(pr) !== pr) return Et.error("Numeric branch labels must be integer values.");
+ if (!V) V = Es(pr);
+ else if (Et.checkSubtype(V, Es(pr))) return null;
+ if (typeof ae[String(pr)] != "undefined") return Et.error("Branch labels must be unique.");
+ ae[String(pr)] = he.length;
+ }
+ var Fr = I.parse(gt, ze, $);
+ if (!Fr) return null;
+ $ = $ || Fr.type, he.push(Fr);
+ }
+ var oi = I.parse(y[1], 1, Do);
+ if (!oi) return null;
+ var Hi = I.parse(y[y.length - 1], y.length - 1, $);
+ return !Hi || oi.type.kind !== "value" && I.concat(1).checkSubtype(V, oi.type) ? null : new qc(V, $, oi, ae, he, Hi);
+ }, qc.prototype.evaluate = function(y) {
+ var I = this.input.evaluate(y), V = Es(I) === this.inputType && this.outputs[this.cases[I]] || this.otherwise;
+ return V.evaluate(y);
+ }, qc.prototype.eachChild = function(y) {
+ y(this.input), this.outputs.forEach(y), y(this.otherwise);
+ }, qc.prototype.outputDefined = function() {
+ return this.outputs.every(function(y) {
+ return y.outputDefined();
+ }) && this.otherwise.outputDefined();
+ }, qc.prototype.serialize = function() {
+ for (var y = this, I = ["match", this.input.serialize()], V = Object.keys(this.cases).sort(), $ = [], ae = {}, he = 0, ze = V; he < ze.length; he += 1) {
+ var rt = ze[he], gt = ae[this.cases[rt]];
+ gt === void 0 ? (ae[this.cases[rt]] = $.length, $.push([this.cases[rt], [rt]])) : $[gt][1].push(rt);
+ }
+ for (var Et = function(oi) {
+ return y.inputType.kind === "number" ? Number(oi) : oi;
+ }, or = 0, _r = $; or < _r.length; or += 1) {
+ var pr = _r[or], gt = pr[0], Fr = pr[1];
+ Fr.length === 1 ? I.push(Et(Fr[0])) : I.push(Fr.map(Et)), I.push(this.outputs[outputIndex$1].serialize());
+ }
+ return I.push(this.otherwise.serialize()), I;
+ };
+ var cf = function(y, I, V) {
+ this.type = y, this.branches = I, this.otherwise = V;
+ };
+ cf.parse = function(y, I) {
+ if (y.length < 4) return I.error("Expected at least 3 arguments, but found only " + (y.length - 1) + ".");
+ if (y.length % 2 !== 0) return I.error("Expected an odd number of arguments.");
+ var V;
+ I.expectedType && I.expectedType.kind !== "value" && (V = I.expectedType);
+ for (var $ = [], ae = 1; ae < y.length - 1; ae += 2) {
+ var he = I.parse(y[ae], ae, qo);
+ if (!he) return null;
+ var ze = I.parse(y[ae + 1], ae + 1, V);
+ if (!ze) return null;
+ $.push([he, ze]), V = V || ze.type;
+ }
+ var rt = I.parse(y[y.length - 1], y.length - 1, V);
+ return rt ? new cf(V, $, rt) : null;
+ }, cf.prototype.evaluate = function(y) {
+ for (var I = 0, V = this.branches; I < V.length; I += 1) {
+ var $ = V[I], ae = $[0], he = $[1];
+ if (ae.evaluate(y)) return he.evaluate(y);
+ }
+ return this.otherwise.evaluate(y);
+ }, cf.prototype.eachChild = function(y) {
+ for (var I = 0, V = this.branches; I < V.length; I += 1) {
+ var $ = V[I], ae = $[0], he = $[1];
+ y(ae), y(he);
+ }
+ y(this.otherwise);
+ }, cf.prototype.outputDefined = function() {
+ return this.branches.every(function(y) {
+ y[0];
+ var V = y[1];
+ return V.outputDefined();
+ }) && this.otherwise.outputDefined();
+ }, cf.prototype.serialize = function() {
+ var y = ["case"];
+ return this.eachChild(function(I) {
+ y.push(I.serialize());
+ }), y;
+ };
+ var fc = function(y, I, V, $) {
+ this.type = y, this.input = I, this.beginIndex = V, this.endIndex = $;
+ };
+ fc.parse = function(y, I) {
+ if (y.length <= 2 || y.length >= 5) return I.error("Expected 3 or 4 arguments, but found " + (y.length - 1) + " instead.");
+ var V = I.parse(y[1], 1, Do), $ = I.parse(y[2], 2, aa);
+ if (!V || !$) return null;
+ if (!Cf(V.type, [Jl(Do), Oo, Do])) return I.error("Expected first argument to be of type array or string, but found " + Os(V.type) + " instead");
+ if (y.length === 4) {
+ var ae = I.parse(y[3], 3, aa);
+ return ae ? new fc(V.type, V, $, ae) : null;
+ } else return new fc(V.type, V, $);
+ }, fc.prototype.evaluate = function(y) {
+ var I = this.input.evaluate(y), V = this.beginIndex.evaluate(y);
+ if (!sc(I, ["string", "array"])) throw new ps("Expected first argument to be of type array or string, but found " + Os(Es(I)) + " instead.");
+ if (this.endIndex) {
+ var $ = this.endIndex.evaluate(y);
+ return I.slice(V, $);
+ }
+ return I.slice(V);
+ }, fc.prototype.eachChild = function(y) {
+ y(this.input), y(this.beginIndex), this.endIndex && y(this.endIndex);
+ }, fc.prototype.outputDefined = function() {
+ return false;
+ }, fc.prototype.serialize = function() {
+ if (this.endIndex != null && this.endIndex !== void 0) {
+ var y = this.endIndex.serialize();
+ return ["slice", this.input.serialize(), this.beginIndex.serialize(), y];
+ }
+ return ["slice", this.input.serialize(), this.beginIndex.serialize()];
+ };
+ function Bc(m, y) {
+ return m === "==" || m === "!=" ? y.kind === "boolean" || y.kind === "string" || y.kind === "number" || y.kind === "null" || y.kind === "value" : y.kind === "string" || y.kind === "number" || y.kind === "value";
+ }
+ function At(m, y, I) {
+ return y === I;
+ }
+ function Xt(m, y, I) {
+ return y !== I;
+ }
+ function Cr(m, y, I) {
+ return y < I;
+ }
+ function Ar(m, y, I) {
+ return y > I;
+ }
+ function Kr(m, y, I) {
+ return y <= I;
+ }
+ function ki(m, y, I) {
+ return y >= I;
+ }
+ function Xi(m, y, I, V) {
+ return V.compare(y, I) === 0;
+ }
+ function dn(m, y, I, V) {
+ return !Xi(m, y, I, V);
+ }
+ function wn(m, y, I, V) {
+ return V.compare(y, I) < 0;
+ }
+ function Nn(m, y, I, V) {
+ return V.compare(y, I) > 0;
+ }
+ function Yi(m, y, I, V) {
+ return V.compare(y, I) <= 0;
+ }
+ function Qi(m, y, I, V) {
+ return V.compare(y, I) >= 0;
+ }
+ function on(m, y, I) {
+ var V = m !== "==" && m !== "!=";
+ return function() {
+ function $(ae, he, ze) {
+ this.type = qo, this.lhs = ae, this.rhs = he, this.collator = ze, this.hasUntypedArgument = ae.type.kind === "value" || he.type.kind === "value";
+ }
+ return $.parse = function(he, ze) {
+ if (he.length !== 3 && he.length !== 4) return ze.error("Expected two or three arguments.");
+ var rt = he[0], gt = ze.parse(he[1], 1, Do);
+ if (!gt) return null;
+ if (!Bc(rt, gt.type)) return ze.concat(1).error('"' + rt + `" comparisons are not supported for type '` + Os(gt.type) + "'.");
+ var Et = ze.parse(he[2], 2, Do);
+ if (!Et) return null;
+ if (!Bc(rt, Et.type)) return ze.concat(2).error('"' + rt + `" comparisons are not supported for type '` + Os(Et.type) + "'.");
+ if (gt.type.kind !== Et.type.kind && gt.type.kind !== "value" && Et.type.kind !== "value") return ze.error("Cannot compare types '" + Os(gt.type) + "' and '" + Os(Et.type) + "'.");
+ V && (gt.type.kind === "value" && Et.type.kind !== "value" ? gt = new xl(Et.type, [gt]) : gt.type.kind !== "value" && Et.type.kind === "value" && (Et = new xl(gt.type, [Et])));
+ var or = null;
+ if (he.length === 4) {
+ if (gt.type.kind !== "string" && Et.type.kind !== "string" && gt.type.kind !== "value" && Et.type.kind !== "value") return ze.error("Cannot use collator to compare non-string types.");
+ if (or = ze.parse(he[3], 3, Vf), !or) return null;
+ }
+ return new $(gt, Et, or);
+ }, $.prototype.evaluate = function(he) {
+ var ze = this.lhs.evaluate(he), rt = this.rhs.evaluate(he);
+ if (V && this.hasUntypedArgument) {
+ var gt = Es(ze), Et = Es(rt);
+ if (gt.kind !== Et.kind || !(gt.kind === "string" || gt.kind === "number")) throw new ps('Expected arguments for "' + m + '" to be (string, string) or (number, number), but found (' + gt.kind + ", " + Et.kind + ") instead.");
+ }
+ if (this.collator && !V && this.hasUntypedArgument) {
+ var or = Es(ze), _r = Es(rt);
+ if (or.kind !== "string" || _r.kind !== "string") return y(he, ze, rt);
+ }
+ return this.collator ? I(he, ze, rt, this.collator.evaluate(he)) : y(he, ze, rt);
+ }, $.prototype.eachChild = function(he) {
+ he(this.lhs), he(this.rhs), this.collator && he(this.collator);
+ }, $.prototype.outputDefined = function() {
+ return true;
+ }, $.prototype.serialize = function() {
+ var he = [m];
+ return this.eachChild(function(ze) {
+ he.push(ze.serialize());
+ }), he;
+ }, $;
+ }();
+ }
+ var Fi = on("==", At, Xi), Qn = on("!=", Xt, dn), Ca = on("<", Cr, wn), Ra = on(">", Ar, Nn), La = on("<=", Kr, Yi), Na = on(">=", ki, Qi), Yn = function(y, I, V, $, ae) {
+ this.type = Oo, this.number = y, this.locale = I, this.currency = V, this.minFractionDigits = $, this.maxFractionDigits = ae;
+ };
+ Yn.parse = function(y, I) {
+ if (y.length !== 3) return I.error("Expected two arguments.");
+ var V = I.parse(y[1], 1, aa);
+ if (!V) return null;
+ var $ = y[2];
+ if (typeof $ != "object" || Array.isArray($)) return I.error("NumberFormat options argument must be an object.");
+ var ae = null;
+ if ($.locale && (ae = I.parse($.locale, 1, Oo), !ae)) return null;
+ var he = null;
+ if ($.currency && (he = I.parse($.currency, 1, Oo), !he)) return null;
+ var ze = null;
+ if ($["min-fraction-digits"] && (ze = I.parse($["min-fraction-digits"], 1, aa), !ze)) return null;
+ var rt = null;
+ return $["max-fraction-digits"] && (rt = I.parse($["max-fraction-digits"], 1, aa), !rt) ? null : new Yn(V, ae, he, ze, rt);
+ }, Yn.prototype.evaluate = function(y) {
+ return new Intl.NumberFormat(this.locale ? this.locale.evaluate(y) : [], { style: this.currency ? "currency" : "decimal", currency: this.currency ? this.currency.evaluate(y) : void 0, minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(y) : void 0, maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(y) : void 0 }).format(this.number.evaluate(y));
+ }, Yn.prototype.eachChild = function(y) {
+ y(this.number), this.locale && y(this.locale), this.currency && y(this.currency), this.minFractionDigits && y(this.minFractionDigits), this.maxFractionDigits && y(this.maxFractionDigits);
+ }, Yn.prototype.outputDefined = function() {
+ return false;
+ }, Yn.prototype.serialize = function() {
+ var y = {};
+ return this.locale && (y.locale = this.locale.serialize()), this.currency && (y.currency = this.currency.serialize()), this.minFractionDigits && (y["min-fraction-digits"] = this.minFractionDigits.serialize()), this.maxFractionDigits && (y["max-fraction-digits"] = this.maxFractionDigits.serialize()), ["number-format", this.number.serialize(), y];
+ };
+ var Dn = function(y) {
+ this.type = aa, this.input = y;
+ };
+ Dn.parse = function(y, I) {
+ if (y.length !== 2) return I.error("Expected 1 argument, but found " + (y.length - 1) + " instead.");
+ var V = I.parse(y[1], 1);
+ return V ? V.type.kind !== "array" && V.type.kind !== "string" && V.type.kind !== "value" ? I.error("Expected argument of type string or array, but found " + Os(V.type) + " instead.") : new Dn(V) : null;
+ }, Dn.prototype.evaluate = function(y) {
+ var I = this.input.evaluate(y);
+ if (typeof I == "string") return I.length;
+ if (Array.isArray(I)) return I.length;
+ throw new ps("Expected value to be of type string or array, but found " + Os(Es(I)) + " instead.");
+ }, Dn.prototype.eachChild = function(y) {
+ y(this.input);
+ }, Dn.prototype.outputDefined = function() {
+ return false;
+ }, Dn.prototype.serialize = function() {
+ var y = ["length"];
+ return this.eachChild(function(I) {
+ y.push(I.serialize());
+ }), y;
+ };
+ var Ka = { "==": Fi, "!=": Qn, ">": Ra, "<": Ca, ">=": Na, "<=": La, array: xl, at: Tc, boolean: xl, case: cf, coalesce: Zu, collator: Hu, format: Gu, image: qs, in: wl, "index-of": vu, interpolate: Wl, "interpolate-hcl": Wl, "interpolate-lab": Wl, length: Dn, let: Oc, literal: Go, match: qc, number: xl, "number-format": Yn, object: xl, slice: fc, step: _u, string: xl, "to-boolean": Po, "to-color": Po, "to-number": Po, "to-string": Po, var: Dc, within: Mu };
+ function bo(m, y) {
+ var I = y[0], V = y[1], $ = y[2], ae = y[3];
+ I = I.evaluate(m), V = V.evaluate(m), $ = $.evaluate(m);
+ var he = ae ? ae.evaluate(m) : 1, ze = lc(I, V, $, he);
+ if (ze) throw new ps(ze);
+ return new cs(I / 255 * he, V / 255 * he, $ / 255 * he, he);
+ }
+ function Zo(m, y) {
+ return m in y;
+ }
+ function Ss(m, y) {
+ var I = y[m];
+ return typeof I == "undefined" ? null : I;
+ }
+ function as(m, y, I, V) {
+ for (; I <= V; ) {
+ var $ = I + V >> 1;
+ if (y[$] === m) return true;
+ y[$] > m ? V = $ - 1 : I = $ + 1;
+ }
+ return false;
+ }
+ function ws(m) {
+ return { type: m };
+ }
+ Pa.register(Ka, { error: [rf, [Oo], function(m, y) {
+ var I = y[0];
+ throw new ps(I.evaluate(m));
+ }], typeof: [Oo, [Do], function(m, y) {
+ var I = y[0];
+ return Os(Es(I.evaluate(m)));
+ }], "to-rgba": [Jl(aa, 4), [ql], function(m, y) {
+ var I = y[0];
+ return I.evaluate(m).toArray();
+ }], rgb: [ql, [aa, aa, aa], bo], rgba: [ql, [aa, aa, aa, aa], bo], has: { type: qo, overloads: [[[Oo], function(m, y) {
+ var I = y[0];
+ return Zo(I.evaluate(m), m.properties());
+ }], [[Oo, Pc], function(m, y) {
+ var I = y[0], V = y[1];
+ return Zo(I.evaluate(m), V.evaluate(m));
+ }]] }, get: { type: Do, overloads: [[[Oo], function(m, y) {
+ var I = y[0];
+ return Ss(I.evaluate(m), m.properties());
+ }], [[Oo, Pc], function(m, y) {
+ var I = y[0], V = y[1];
+ return Ss(I.evaluate(m), V.evaluate(m));
+ }]] }, "feature-state": [Do, [Oo], function(m, y) {
+ var I = y[0];
+ return Ss(I.evaluate(m), m.featureState || {});
+ }], properties: [Pc, [], function(m) {
+ return m.properties();
+ }], "geometry-type": [Oo, [], function(m) {
+ return m.geometryType();
+ }], id: [Do, [], function(m) {
+ return m.id();
+ }], zoom: [aa, [], function(m) {
+ return m.globals.zoom;
+ }], "heatmap-density": [aa, [], function(m) {
+ return m.globals.heatmapDensity || 0;
+ }], "line-progress": [aa, [], function(m) {
+ return m.globals.lineProgress || 0;
+ }], accumulated: [Do, [], function(m) {
+ return m.globals.accumulated === void 0 ? null : m.globals.accumulated;
+ }], "+": [aa, ws(aa), function(m, y) {
+ for (var I = 0, V = 0, $ = y; V < $.length; V += 1) {
+ var ae = $[V];
+ I += ae.evaluate(m);
+ }
+ return I;
+ }], "*": [aa, ws(aa), function(m, y) {
+ for (var I = 1, V = 0, $ = y; V < $.length; V += 1) {
+ var ae = $[V];
+ I *= ae.evaluate(m);
+ }
+ return I;
+ }], "-": { type: aa, overloads: [[[aa, aa], function(m, y) {
+ var I = y[0], V = y[1];
+ return I.evaluate(m) - V.evaluate(m);
+ }], [[aa], function(m, y) {
+ var I = y[0];
+ return -I.evaluate(m);
+ }]] }, "/": [aa, [aa, aa], function(m, y) {
+ var I = y[0], V = y[1];
+ return I.evaluate(m) / V.evaluate(m);
+ }], "%": [aa, [aa, aa], function(m, y) {
+ var I = y[0], V = y[1];
+ return I.evaluate(m) % V.evaluate(m);
+ }], ln2: [aa, [], function() {
+ return Math.LN2;
+ }], pi: [aa, [], function() {
+ return Math.PI;
+ }], e: [aa, [], function() {
+ return Math.E;
+ }], "^": [aa, [aa, aa], function(m, y) {
+ var I = y[0], V = y[1];
+ return Math.pow(I.evaluate(m), V.evaluate(m));
+ }], sqrt: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.sqrt(I.evaluate(m));
+ }], log10: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.log(I.evaluate(m)) / Math.LN10;
+ }], ln: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.log(I.evaluate(m));
+ }], log2: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.log(I.evaluate(m)) / Math.LN2;
+ }], sin: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.sin(I.evaluate(m));
+ }], cos: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.cos(I.evaluate(m));
+ }], tan: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.tan(I.evaluate(m));
+ }], asin: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.asin(I.evaluate(m));
+ }], acos: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.acos(I.evaluate(m));
+ }], atan: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.atan(I.evaluate(m));
+ }], min: [aa, ws(aa), function(m, y) {
+ return Math.min.apply(Math, y.map(function(I) {
+ return I.evaluate(m);
+ }));
+ }], max: [aa, ws(aa), function(m, y) {
+ return Math.max.apply(Math, y.map(function(I) {
+ return I.evaluate(m);
+ }));
+ }], abs: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.abs(I.evaluate(m));
+ }], round: [aa, [aa], function(m, y) {
+ var I = y[0], V = I.evaluate(m);
+ return V < 0 ? -Math.round(-V) : Math.round(V);
+ }], floor: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.floor(I.evaluate(m));
+ }], ceil: [aa, [aa], function(m, y) {
+ var I = y[0];
+ return Math.ceil(I.evaluate(m));
+ }], "filter-==": [qo, [Oo, Do], function(m, y) {
+ var I = y[0], V = y[1];
+ return m.properties()[I.value] === V.value;
+ }], "filter-id-==": [qo, [Do], function(m, y) {
+ var I = y[0];
+ return m.id() === I.value;
+ }], "filter-type-==": [qo, [Oo], function(m, y) {
+ var I = y[0];
+ return m.geometryType() === I.value;
+ }], "filter-<": [qo, [Oo, Do], function(m, y) {
+ var I = y[0], V = y[1], $ = m.properties()[I.value], ae = V.value;
+ return typeof $ == typeof ae && $ < ae;
+ }], "filter-id-<": [qo, [Do], function(m, y) {
+ var I = y[0], V = m.id(), $ = I.value;
+ return typeof V == typeof $ && V < $;
+ }], "filter->": [qo, [Oo, Do], function(m, y) {
+ var I = y[0], V = y[1], $ = m.properties()[I.value], ae = V.value;
+ return typeof $ == typeof ae && $ > ae;
+ }], "filter-id->": [qo, [Do], function(m, y) {
+ var I = y[0], V = m.id(), $ = I.value;
+ return typeof V == typeof $ && V > $;
+ }], "filter-<=": [qo, [Oo, Do], function(m, y) {
+ var I = y[0], V = y[1], $ = m.properties()[I.value], ae = V.value;
+ return typeof $ == typeof ae && $ <= ae;
+ }], "filter-id-<=": [qo, [Do], function(m, y) {
+ var I = y[0], V = m.id(), $ = I.value;
+ return typeof V == typeof $ && V <= $;
+ }], "filter->=": [qo, [Oo, Do], function(m, y) {
+ var I = y[0], V = y[1], $ = m.properties()[I.value], ae = V.value;
+ return typeof $ == typeof ae && $ >= ae;
+ }], "filter-id->=": [qo, [Do], function(m, y) {
+ var I = y[0], V = m.id(), $ = I.value;
+ return typeof V == typeof $ && V >= $;
+ }], "filter-has": [qo, [Do], function(m, y) {
+ var I = y[0];
+ return I.value in m.properties();
+ }], "filter-has-id": [qo, [], function(m) {
+ return m.id() !== null && m.id() !== void 0;
+ }], "filter-type-in": [qo, [Jl(Oo)], function(m, y) {
+ var I = y[0];
+ return I.value.indexOf(m.geometryType()) >= 0;
+ }], "filter-id-in": [qo, [Jl(Do)], function(m, y) {
+ var I = y[0];
+ return I.value.indexOf(m.id()) >= 0;
+ }], "filter-in-small": [qo, [Oo, Jl(Do)], function(m, y) {
+ var I = y[0], V = y[1];
+ return V.value.indexOf(m.properties()[I.value]) >= 0;
+ }], "filter-in-large": [qo, [Oo, Jl(Do)], function(m, y) {
+ var I = y[0], V = y[1];
+ return as(m.properties()[I.value], V.value, 0, V.value.length - 1);
+ }], all: { type: qo, overloads: [[[qo, qo], function(m, y) {
+ var I = y[0], V = y[1];
+ return I.evaluate(m) && V.evaluate(m);
+ }], [ws(qo), function(m, y) {
+ for (var I = 0, V = y; I < V.length; I += 1) {
+ var $ = V[I];
+ if (!$.evaluate(m)) return false;
+ }
+ return true;
+ }]] }, any: { type: qo, overloads: [[[qo, qo], function(m, y) {
+ var I = y[0], V = y[1];
+ return I.evaluate(m) || V.evaluate(m);
+ }], [ws(qo), function(m, y) {
+ for (var I = 0, V = y; I < V.length; I += 1) {
+ var $ = V[I];
+ if ($.evaluate(m)) return true;
+ }
+ return false;
+ }]] }, "!": [qo, [qo], function(m, y) {
+ var I = y[0];
+ return !I.evaluate(m);
+ }], "is-supported-script": [qo, [Oo], function(m, y) {
+ var I = y[0], V = m.globals && m.globals.isSupportedScript;
+ return V ? V(I.evaluate(m)) : true;
+ }], upcase: [Oo, [Oo], function(m, y) {
+ var I = y[0];
+ return I.evaluate(m).toUpperCase();
+ }], downcase: [Oo, [Oo], function(m, y) {
+ var I = y[0];
+ return I.evaluate(m).toLowerCase();
+ }], concat: [Oo, ws(Do), function(m, y) {
+ return y.map(function(I) {
+ return Hs(I.evaluate(m));
+ }).join("");
+ }], "resolved-locale": [Oo, [Vf], function(m, y) {
+ var I = y[0];
+ return I.evaluate(m).resolvedLocale();
+ }] });
+ function Ho(m) {
+ return { result: "success", value: m };
+ }
+ function ml(m) {
+ return { result: "error", value: m };
+ }
+ function Ws(m) {
+ return m["property-type"] === "data-driven" || m["property-type"] === "cross-faded-data-driven";
+ }
+ function Ls(m) {
+ return !!m.expression && m.expression.parameters.indexOf("zoom") > -1;
+ }
+ function va(m) {
+ return !!m.expression && m.expression.interpolated;
+ }
+ function no(m) {
+ return m instanceof Number ? "number" : m instanceof String ? "string" : m instanceof Boolean ? "boolean" : Array.isArray(m) ? "array" : m === null ? "null" : typeof m;
+ }
+ function ys(m) {
+ return typeof m == "object" && m !== null && !Array.isArray(m);
+ }
+ function rs(m) {
+ return m;
+ }
+ function Ql(m, y) {
+ var I = y.type === "color", V = m.stops && typeof m.stops[0][0] == "object", $ = V || m.property !== void 0, ae = V || !$, he = m.type || (va(y) ? "exponential" : "interval");
+ if (I && (m = Ol({}, m), m.stops && (m.stops = m.stops.map(function(ha) {
+ return [ha[0], cs.parse(ha[1])];
+ })), m.default ? m.default = cs.parse(m.default) : m.default = cs.parse(y.default)), m.colorSpace && m.colorSpace !== "rgb" && !Zf[m.colorSpace]) throw new Error("Unknown color space: " + m.colorSpace);
+ var ze, rt, gt;
+ if (he === "exponential") ze = pu;
+ else if (he === "interval") ze = Nc;
+ else if (he === "categorical") {
+ ze = Yu, rt = /* @__PURE__ */ Object.create(null);
+ for (var Et = 0, or = m.stops; Et < or.length; Et += 1) {
+ var _r = or[Et];
+ rt[_r[0]] = _r[1];
+ }
+ gt = typeof m.stops[0][0];
+ } else if (he === "identity") ze = Uc;
+ else throw new Error('Unknown function type "' + he + '"');
+ if (V) {
+ for (var pr = {}, Fr = [], oi = 0; oi < m.stops.length; oi++) {
+ var Hi = m.stops[oi], Ai = Hi[0].zoom;
+ pr[Ai] === void 0 && (pr[Ai] = { zoom: Ai, type: m.type, property: m.property, default: m.default, stops: [] }, Fr.push(Ai)), pr[Ai].stops.push([Hi[0].value, Hi[1]]);
+ }
+ for (var bn = [], nn = 0, xn = Fr; nn < xn.length; nn += 1) {
+ var Pn = xn[nn];
+ bn.push([pr[Pn].zoom, Ql(pr[Pn], y)]);
+ }
+ var Zn = { name: "linear" };
+ return { kind: "composite", interpolationType: Zn, interpolationFactor: Wl.interpolationFactor.bind(void 0, Zn), zoomStops: bn.map(function(ha) {
+ return ha[0];
+ }), evaluate: function(eo, za) {
+ var Za = eo.zoom;
+ return pu({ stops: bn, base: m.base }, y, Za).evaluate(Za, za);
+ } };
+ } else if (ae) {
+ var ga = he === "exponential" ? { name: "exponential", base: m.base !== void 0 ? m.base : 1 } : null;
+ return { kind: "camera", interpolationType: ga, interpolationFactor: Wl.interpolationFactor.bind(void 0, ga), zoomStops: m.stops.map(function(ha) {
+ return ha[0];
+ }), evaluate: function(ha) {
+ var eo = ha.zoom;
+ return ze(m, y, eo, rt, gt);
+ } };
+ } else return { kind: "source", evaluate: function(eo, za) {
+ var Za = za && za.properties ? za.properties[m.property] : void 0;
+ return Za === void 0 ? Cu(m.default, y.default) : ze(m, y, Za, rt, gt);
+ } };
+ }
+ function Cu(m, y, I) {
+ if (m !== void 0) return m;
+ if (y !== void 0) return y;
+ if (I !== void 0) return I;
+ }
+ function Yu(m, y, I, V, $) {
+ var ae = typeof I === $ ? V[I] : void 0;
+ return Cu(ae, m.default, y.default);
+ }
+ function Nc(m, y, I) {
+ if (no(I) !== "number") return Cu(m.default, y.default);
+ var V = m.stops.length;
+ if (V === 1 || I <= m.stops[0][0]) return m.stops[0][1];
+ if (I >= m.stops[V - 1][0]) return m.stops[V - 1][1];
+ var $ = hu(m.stops.map(function(ae) {
+ return ae[0];
+ }), I);
+ return m.stops[$][1];
+ }
+ function pu(m, y, I) {
+ var V = m.base !== void 0 ? m.base : 1;
+ if (no(I) !== "number") return Cu(m.default, y.default);
+ var $ = m.stops.length;
+ if ($ === 1 || I <= m.stops[0][0]) return m.stops[0][1];
+ if (I >= m.stops[$ - 1][0]) return m.stops[$ - 1][1];
+ var ae = hu(m.stops.map(function(or) {
+ return or[0];
+ }), I), he = xu(I, V, m.stops[ae][0], m.stops[ae + 1][0]), ze = m.stops[ae][1], rt = m.stops[ae + 1][1], gt = zu[y.type] || rs;
+ if (m.colorSpace && m.colorSpace !== "rgb") {
+ var Et = Zf[m.colorSpace];
+ gt = function(or, _r) {
+ return Et.reverse(Et.interpolate(Et.forward(or), Et.forward(_r), he));
+ };
+ }
+ return typeof ze.evaluate == "function" ? { evaluate: function() {
+ for (var _r = [], pr = arguments.length; pr--; ) _r[pr] = arguments[pr];
+ var Fr = ze.evaluate.apply(void 0, _r), oi = rt.evaluate.apply(void 0, _r);
+ if (!(Fr === void 0 || oi === void 0)) return gt(Fr, oi, he);
+ } } : gt(ze, rt, he);
+ }
+ function Uc(m, y, I) {
+ return y.type === "color" ? I = cs.parse(I) : y.type === "formatted" ? I = $l.fromString(I.toString()) : y.type === "resolvedImage" ? I = fl.fromString(I.toString()) : no(I) !== y.type && (y.type !== "enum" || !y.values[I]) && (I = void 0), Cu(I, m.default, y.default);
+ }
+ function xu(m, y, I, V) {
+ var $ = V - I, ae = m - I;
+ return $ === 0 ? 0 : y === 1 ? ae / $ : (Math.pow(y, ae) - 1) / (Math.pow(y, $) - 1);
+ }
+ var Ac = function(y, I) {
+ this.expression = y, this._warningHistory = {}, this._evaluator = new Ko(), this._defaultValue = I ? ee(I) : null, this._enumValues = I && I.type === "enum" ? I.values : null;
+ };
+ Ac.prototype.evaluateWithoutErrorHandling = function(y, I, V, $, ae, he) {
+ return this._evaluator.globals = y, this._evaluator.feature = I, this._evaluator.featureState = V, this._evaluator.canonical = $, this._evaluator.availableImages = ae || null, this._evaluator.formattedSection = he, this.expression.evaluate(this._evaluator);
+ }, Ac.prototype.evaluate = function(y, I, V, $, ae, he) {
+ this._evaluator.globals = y, this._evaluator.feature = I || null, this._evaluator.featureState = V || null, this._evaluator.canonical = $, this._evaluator.availableImages = ae || null, this._evaluator.formattedSection = he || null;
+ try {
+ var ze = this.expression.evaluate(this._evaluator);
+ if (ze == null || typeof ze == "number" && ze !== ze) return this._defaultValue;
+ if (this._enumValues && !(ze in this._enumValues)) throw new ps("Expected value to be one of " + Object.keys(this._enumValues).map(function(rt) {
+ return JSON.stringify(rt);
+ }).join(", ") + ", but found " + JSON.stringify(ze) + " instead.");
+ return ze;
+ } catch (rt) {
+ return this._warningHistory[rt.message] || (this._warningHistory[rt.message] = true, typeof console != "undefined" && console.warn(rt.message)), this._defaultValue;
+ }
+ };
+ function Ua(m) {
+ return Array.isArray(m) && m.length > 0 && typeof m[0] == "string" && m[0] in Ka;
+ }
+ function oo(m, y) {
+ var I = new ks(Ka, [], y ? Q(y) : void 0), V = I.parse(m, void 0, void 0, void 0, y && y.type === "string" ? { typeAnnotation: "coerce" } : void 0);
+ return V ? Ho(new Ac(V, y)) : ml(I.errors);
+ }
+ var Vc = function(y, I) {
+ this.kind = y, this._styleExpression = I, this.isStateDependent = y !== "constant" && !js(I.expression);
+ };
+ Vc.prototype.evaluateWithoutErrorHandling = function(y, I, V, $, ae, he) {
+ return this._styleExpression.evaluateWithoutErrorHandling(y, I, V, $, ae, he);
+ }, Vc.prototype.evaluate = function(y, I, V, $, ae, he) {
+ return this._styleExpression.evaluate(y, I, V, $, ae, he);
+ };
+ var hc = function(y, I, V, $) {
+ this.kind = y, this.zoomStops = V, this._styleExpression = I, this.isStateDependent = y !== "camera" && !js(I.expression), this.interpolationType = $;
+ };
+ hc.prototype.evaluateWithoutErrorHandling = function(y, I, V, $, ae, he) {
+ return this._styleExpression.evaluateWithoutErrorHandling(y, I, V, $, ae, he);
+ }, hc.prototype.evaluate = function(y, I, V, $, ae, he) {
+ return this._styleExpression.evaluate(y, I, V, $, ae, he);
+ }, hc.prototype.interpolationFactor = function(y, I, V) {
+ return this.interpolationType ? Wl.interpolationFactor(this.interpolationType, y, I, V) : 0;
+ };
+ function Ku(m, y) {
+ if (m = oo(m, y), m.result === "error") return m;
+ var I = m.value.expression, V = ih(I);
+ if (!V && !Ws(y)) return ml([new Ns("", "data expressions not supported")]);
+ var $ = Eu(I, ["zoom"]);
+ if (!$ && !Ls(y)) return ml([new Ns("", "zoom expressions not supported")]);
+ var ae = B(I);
+ if (!ae && !$) return ml([new Ns("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);
+ if (ae instanceof Ns) return ml([ae]);
+ if (ae instanceof Wl && !va(y)) return ml([new Ns("", '"interpolate" expressions cannot be used with this property')]);
+ if (!ae) return Ho(V ? new Vc("constant", m.value) : new Vc("source", m.value));
+ var he = ae instanceof Wl ? ae.interpolation : void 0;
+ return Ho(V ? new hc("camera", m.value, ae.labels, he) : new hc("composite", m.value, ae.labels, he));
+ }
+ var ue = function(y, I) {
+ this._parameters = y, this._specification = I, Ol(this, Ql(this._parameters, this._specification));
+ };
+ ue.deserialize = function(y) {
+ return new ue(y._parameters, y._specification);
+ }, ue.serialize = function(y) {
+ return { _parameters: y._parameters, _specification: y._specification };
+ };
+ function w(m, y) {
+ if (ys(m)) return new ue(m, y);
+ if (Ua(m)) {
+ var I = Ku(m, y);
+ if (I.result === "error") throw new Error(I.value.map(function($) {
+ return $.key + ": " + $.message;
+ }).join(", "));
+ return I.value;
+ } else {
+ var V = m;
+ return typeof m == "string" && y.type === "color" && (V = cs.parse(m)), { kind: "constant", evaluate: function() {
+ return V;
+ } };
+ }
+ }
+ function B(m) {
+ var y = null;
+ if (m instanceof Oc) y = B(m.result);
+ else if (m instanceof Zu) for (var I = 0, V = m.args; I < V.length; I += 1) {
+ var $ = V[I];
+ if (y = B($), y) break;
+ }
+ else (m instanceof _u || m instanceof Wl) && m.input instanceof Pa && m.input.name === "zoom" && (y = m);
+ return y instanceof Ns || m.eachChild(function(ae) {
+ var he = B(ae);
+ he instanceof Ns ? y = he : !y && he ? y = new Ns("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : y && he && y !== he && (y = new Ns("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));
+ }), y;
+ }
+ function Q(m) {
+ var y = { color: ql, string: Oo, number: aa, enum: Oo, boolean: qo, formatted: pl, resolvedImage: Zc };
+ return m.type === "array" ? Jl(y[m.value] || Do, m.length) : y[m.type];
+ }
+ function ee(m) {
+ return m.type === "color" && ys(m.default) ? new cs(0, 0, 0, 0) : m.type === "color" ? cs.parse(m.default) || null : m.default === void 0 ? null : m.default;
+ }
+ function le(m) {
+ var y = m.key, I = m.value, V = m.valueSpec || {}, $ = m.objectElementValidators || {}, ae = m.style, he = m.styleSpec, ze = [], rt = no(I);
+ if (rt !== "object") return [new _a(y, I, "object expected, " + rt + " found")];
+ for (var gt in I) {
+ var Et = gt.split(".")[0], or = V[Et] || V["*"], _r = void 0;
+ if ($[Et]) _r = $[Et];
+ else if (V[Et]) _r = Qa;
+ else if ($["*"]) _r = $["*"];
+ else if (V["*"]) _r = Qa;
+ else {
+ ze.push(new _a(y, I[gt], 'unknown property "' + gt + '"'));
+ continue;
+ }
+ ze = ze.concat(_r({ key: (y && y + ".") + gt, value: I[gt], valueSpec: or, style: ae, styleSpec: he, object: I, objectKey: gt }, I));
+ }
+ for (var pr in V) $[pr] || V[pr].required && V[pr].default === void 0 && I[pr] === void 0 && ze.push(new _a(y, I, 'missing required property "' + pr + '"'));
+ return ze;
+ }
+ function Oe(m) {
+ var y = m.value, I = m.valueSpec, V = m.style, $ = m.styleSpec, ae = m.key, he = m.arrayElementValidator || Qa;
+ if (no(y) !== "array") return [new _a(ae, y, "array expected, " + no(y) + " found")];
+ if (I.length && y.length !== I.length) return [new _a(ae, y, "array length " + I.length + " expected, length " + y.length + " found")];
+ if (I["min-length"] && y.length < I["min-length"]) return [new _a(ae, y, "array length at least " + I["min-length"] + " expected, length " + y.length + " found")];
+ var ze = { type: I.value, values: I.values };
+ $.$version < 7 && (ze.function = I.function), no(I.value) === "object" && (ze = I.value);
+ for (var rt = [], gt = 0; gt < y.length; gt++) rt = rt.concat(he({ array: y, arrayIndex: gt, value: y[gt], valueSpec: ze, style: V, styleSpec: $, key: ae + "[" + gt + "]" }));
+ return rt;
+ }
+ function Ze(m) {
+ var y = m.key, I = m.value, V = m.valueSpec, $ = no(I);
+ return $ === "number" && I !== I && ($ = "NaN"), $ !== "number" ? [new _a(y, I, "number expected, " + $ + " found")] : "minimum" in V && I < V.minimum ? [new _a(y, I, I + " is less than the minimum value " + V.minimum)] : "maximum" in V && I > V.maximum ? [new _a(y, I, I + " is greater than the maximum value " + V.maximum)] : [];
+ }
+ function st(m) {
+ var y = m.valueSpec, I = xo(m.value.type), V, $ = {}, ae, he, ze = I !== "categorical" && m.value.property === void 0, rt = !ze, gt = no(m.value.stops) === "array" && no(m.value.stops[0]) === "array" && no(m.value.stops[0][0]) === "object", Et = le({ key: m.key, value: m.value, valueSpec: m.styleSpec.function, style: m.style, styleSpec: m.styleSpec, objectElementValidators: { stops: or, default: Fr } });
+ return I === "identity" && ze && Et.push(new _a(m.key, m.value, 'missing required property "property"')), I !== "identity" && !m.value.stops && Et.push(new _a(m.key, m.value, 'missing required property "stops"')), I === "exponential" && m.valueSpec.expression && !va(m.valueSpec) && Et.push(new _a(m.key, m.value, "exponential functions not supported")), m.styleSpec.$version >= 8 && (rt && !Ws(m.valueSpec) ? Et.push(new _a(m.key, m.value, "property functions not supported")) : ze && !Ls(m.valueSpec) && Et.push(new _a(m.key, m.value, "zoom functions not supported"))), (I === "categorical" || gt) && m.value.property === void 0 && Et.push(new _a(m.key, m.value, '"property" property is required')), Et;
+ function or(oi) {
+ if (I === "identity") return [new _a(oi.key, oi.value, 'identity function may not have a "stops" property')];
+ var Hi = [], Ai = oi.value;
+ return Hi = Hi.concat(Oe({ key: oi.key, value: Ai, valueSpec: oi.valueSpec, style: oi.style, styleSpec: oi.styleSpec, arrayElementValidator: _r })), no(Ai) === "array" && Ai.length === 0 && Hi.push(new _a(oi.key, Ai, "array must have at least one stop")), Hi;
+ }
+ function _r(oi) {
+ var Hi = [], Ai = oi.value, bn = oi.key;
+ if (no(Ai) !== "array") return [new _a(bn, Ai, "array expected, " + no(Ai) + " found")];
+ if (Ai.length !== 2) return [new _a(bn, Ai, "array length 2 expected, length " + Ai.length + " found")];
+ if (gt) {
+ if (no(Ai[0]) !== "object") return [new _a(bn, Ai, "object expected, " + no(Ai[0]) + " found")];
+ if (Ai[0].zoom === void 0) return [new _a(bn, Ai, "object stop key must have zoom")];
+ if (Ai[0].value === void 0) return [new _a(bn, Ai, "object stop key must have value")];
+ if (he && he > xo(Ai[0].zoom)) return [new _a(bn, Ai[0].zoom, "stop zoom values must appear in ascending order")];
+ xo(Ai[0].zoom) !== he && (he = xo(Ai[0].zoom), ae = void 0, $ = {}), Hi = Hi.concat(le({ key: bn + "[0]", value: Ai[0], valueSpec: { zoom: {} }, style: oi.style, styleSpec: oi.styleSpec, objectElementValidators: { zoom: Ze, value: pr } }));
+ } else Hi = Hi.concat(pr({ key: bn + "[0]", value: Ai[0], style: oi.style, styleSpec: oi.styleSpec }, Ai));
+ return Ua(Kl(Ai[1])) ? Hi.concat([new _a(bn + "[1]", Ai[1], "expressions are not allowed in function stops.")]) : Hi.concat(Qa({ key: bn + "[1]", value: Ai[1], valueSpec: y, style: oi.style, styleSpec: oi.styleSpec }));
+ }
+ function pr(oi, Hi) {
+ var Ai = no(oi.value), bn = xo(oi.value), nn = oi.value !== null ? oi.value : Hi;
+ if (!V) V = Ai;
+ else if (Ai !== V) return [new _a(oi.key, nn, Ai + " stop domain type must match previous stop domain type " + V)];
+ if (Ai !== "number" && Ai !== "string" && Ai !== "boolean") return [new _a(oi.key, nn, "stop domain value must be a number, string, or boolean")];
+ if (Ai !== "number" && I !== "categorical") {
+ var xn = "number expected, " + Ai + " found";
+ return Ws(y) && I === void 0 && (xn += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new _a(oi.key, nn, xn)];
+ }
+ return I === "categorical" && Ai === "number" && (!isFinite(bn) || Math.floor(bn) !== bn) ? [new _a(oi.key, nn, "integer expected, found " + bn)] : I !== "categorical" && Ai === "number" && ae !== void 0 && bn < ae ? [new _a(oi.key, nn, "stop domain values must appear in ascending order")] : (ae = bn, I === "categorical" && bn in $ ? [new _a(oi.key, nn, "stop domain values must be unique")] : ($[bn] = true, []));
+ }
+ function Fr(oi) {
+ return Qa({ key: oi.key, value: oi.value, valueSpec: y, style: oi.style, styleSpec: oi.styleSpec });
+ }
+ }
+ function Tt(m) {
+ var y = (m.expressionContext === "property" ? Ku : oo)(Kl(m.value), m.valueSpec);
+ if (y.result === "error") return y.value.map(function(V) {
+ return new _a("" + m.key + V.key, m.value, V.message);
+ });
+ var I = y.value.expression || y.value._styleExpression.expression;
+ if (m.expressionContext === "property" && m.propertyKey === "text-font" && !I.outputDefined()) return [new _a(m.key, m.value, 'Invalid data expression for "' + m.propertyKey + '". Output values must be contained as literals within the expression.')];
+ if (m.expressionContext === "property" && m.propertyType === "layout" && !js(I)) return [new _a(m.key, m.value, '"feature-state" data expressions are not supported with layout properties.')];
+ if (m.expressionContext === "filter" && !js(I)) return [new _a(m.key, m.value, '"feature-state" data expressions are not supported with filters.')];
+ if (m.expressionContext && m.expressionContext.indexOf("cluster") === 0) {
+ if (!Eu(I, ["zoom", "feature-state"])) return [new _a(m.key, m.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')];
+ if (m.expressionContext === "cluster-initial" && !ih(I)) return [new _a(m.key, m.value, "Feature data expressions are not supported with initial expression part of cluster properties.")];
+ }
+ return [];
+ }
+ function Yt(m) {
+ var y = m.value, I = m.key, V = no(y);
+ return V !== "boolean" ? [new _a(I, y, "boolean expected, " + V + " found")] : [];
+ }
+ function Kt(m) {
+ var y = m.key, I = m.value, V = no(I);
+ return V !== "string" ? [new _a(y, I, "color expected, " + V + " found")] : Lf(I) === null ? [new _a(y, I, 'color expected, "' + I + '" found')] : [];
+ }
+ function xr(m) {
+ var y = m.key, I = m.value, V = m.valueSpec, $ = [];
+ return Array.isArray(V.values) ? V.values.indexOf(xo(I)) === -1 && $.push(new _a(y, I, "expected one of [" + V.values.join(", ") + "], " + JSON.stringify(I) + " found")) : Object.keys(V.values).indexOf(xo(I)) === -1 && $.push(new _a(y, I, "expected one of [" + Object.keys(V.values).join(", ") + "], " + JSON.stringify(I) + " found")), $;
+ }
+ function Ir(m) {
+ if (m === true || m === false) return true;
+ if (!Array.isArray(m) || m.length === 0) return false;
+ switch (m[0]) {
+ case "has":
+ return m.length >= 2 && m[1] !== "$id" && m[1] !== "$type";
+ case "in":
+ return m.length >= 3 && (typeof m[1] != "string" || Array.isArray(m[2]));
+ case "!in":
+ case "!has":
+ case "none":
+ return false;
+ case "==":
+ case "!=":
+ case ">":
+ case ">=":
+ case "<":
+ case "<=":
+ return m.length !== 3 || Array.isArray(m[1]) || Array.isArray(m[2]);
+ case "any":
+ case "all":
+ for (var y = 0, I = m.slice(1); y < I.length; y += 1) {
+ var V = I[y];
+ if (!Ir(V) && typeof V != "boolean") return false;
+ }
+ return true;
+ default:
+ return true;
+ }
+ }
+ var ve = { type: "boolean", default: false };
+ function be(m) {
+ if (m == null) return { filter: function() {
+ return true;
+ }, needGeometry: false };
+ Ir(m) || (m = et(m));
+ var y = oo(m, ve);
+ if (y.result === "error") throw new Error(y.value.map(function(V) {
+ return V.key + ": " + V.message;
+ }).join(", "));
+ var I = qe(m);
+ return { filter: function(V, $, ae) {
+ return y.value.evaluate(V, $, {}, ae);
+ }, needGeometry: I };
+ }
+ function Re(m, y) {
+ return m < y ? -1 : m > y ? 1 : 0;
+ }
+ function qe(m) {
+ if (!Array.isArray(m)) return false;
+ if (m[0] === "within") return true;
+ for (var y = 1; y < m.length; y++) if (qe(m[y])) return true;
+ return false;
+ }
+ function et(m) {
+ if (!m) return true;
+ var y = m[0];
+ if (m.length <= 1) return y !== "any";
+ var I = y === "==" ? Xe(m[1], m[2], "==") : y === "!=" ? tr(Xe(m[1], m[2], "==")) : y === "<" || y === ">" || y === "<=" || y === ">=" ? Xe(m[1], m[2], y) : y === "any" ? it(m.slice(1)) : y === "all" ? ["all"].concat(m.slice(1).map(et)) : y === "none" ? ["all"].concat(m.slice(1).map(et).map(tr)) : y === "in" ? Ft(m[1], m.slice(2)) : y === "!in" ? tr(Ft(m[1], m.slice(2))) : y === "has" ? Ht(m[1]) : y === "!has" ? tr(Ht(m[1])) : y === "within" ? m : true;
+ return I;
+ }
+ function Xe(m, y, I) {
+ switch (m) {
+ case "$type":
+ return ["filter-type-" + I, y];
+ case "$id":
+ return ["filter-id-" + I, y];
+ default:
+ return ["filter-" + I, m, y];
+ }
+ }
+ function it(m) {
+ return ["any"].concat(m.map(et));
+ }
+ function Ft(m, y) {
+ if (y.length === 0) return false;
+ switch (m) {
+ case "$type":
+ return ["filter-type-in", ["literal", y]];
+ case "$id":
+ return ["filter-id-in", ["literal", y]];
+ default:
+ return y.length > 200 && !y.some(function(I) {
+ return typeof I != typeof y[0];
+ }) ? ["filter-in-large", m, ["literal", y.sort(Re)]] : ["filter-in-small", m, ["literal", y]];
+ }
+ }
+ function Ht(m) {
+ switch (m) {
+ case "$type":
+ return true;
+ case "$id":
+ return ["filter-has-id"];
+ default:
+ return ["filter-has", m];
+ }
+ }
+ function tr(m) {
+ return ["!", m];
+ }
+ function dr(m) {
+ return Ir(Kl(m.value)) ? Tt(Ol({}, m, { expressionContext: "filter", valueSpec: { value: "boolean" } })) : Sr(m);
+ }
+ function Sr(m) {
+ var y = m.value, I = m.key;
+ if (no(y) !== "array") return [new _a(I, y, "array expected, " + no(y) + " found")];
+ var V = m.styleSpec, $, ae = [];
+ if (y.length < 1) return [new _a(I, y, "filter array must have at least 1 element")];
+ switch (ae = ae.concat(xr({ key: I + "[0]", value: y[0], valueSpec: V.filter_operator, style: m.style, styleSpec: m.styleSpec })), xo(y[0])) {
+ case "<":
+ case "<=":
+ case ">":
+ case ">=":
+ y.length >= 2 && xo(y[1]) === "$type" && ae.push(new _a(I, y, '"$type" cannot be use with operator "' + y[0] + '"'));
+ case "==":
+ case "!=":
+ y.length !== 3 && ae.push(new _a(I, y, 'filter array for operator "' + y[0] + '" must have 3 elements'));
+ case "in":
+ case "!in":
+ y.length >= 2 && ($ = no(y[1]), $ !== "string" && ae.push(new _a(I + "[1]", y[1], "string expected, " + $ + " found")));
+ for (var he = 2; he < y.length; he++) $ = no(y[he]), xo(y[1]) === "$type" ? ae = ae.concat(xr({ key: I + "[" + he + "]", value: y[he], valueSpec: V.geometry_type, style: m.style, styleSpec: m.styleSpec })) : $ !== "string" && $ !== "number" && $ !== "boolean" && ae.push(new _a(I + "[" + he + "]", y[he], "string, number, or boolean expected, " + $ + " found"));
+ break;
+ case "any":
+ case "all":
+ case "none":
+ for (var ze = 1; ze < y.length; ze++) ae = ae.concat(Sr({ key: I + "[" + ze + "]", value: y[ze], style: m.style, styleSpec: m.styleSpec }));
+ break;
+ case "has":
+ case "!has":
+ $ = no(y[1]), y.length !== 2 ? ae.push(new _a(I, y, 'filter array for "' + y[0] + '" operator must have 2 elements')) : $ !== "string" && ae.push(new _a(I + "[1]", y[1], "string expected, " + $ + " found"));
+ break;
+ case "within":
+ $ = no(y[1]), y.length !== 2 ? ae.push(new _a(I, y, 'filter array for "' + y[0] + '" operator must have 2 elements')) : $ !== "object" && ae.push(new _a(I + "[1]", y[1], "object expected, " + $ + " found"));
+ break;
+ }
+ return ae;
+ }
+ function Or(m, y) {
+ var I = m.key, V = m.style, $ = m.styleSpec, ae = m.value, he = m.objectKey, ze = $[y + "_" + m.layerType];
+ if (!ze) return [];
+ var rt = he.match(/^(.*)-transition$/);
+ if (y === "paint" && rt && ze[rt[1]] && ze[rt[1]].transition) return Qa({ key: I, value: ae, valueSpec: $.transition, style: V, styleSpec: $ });
+ var gt = m.valueSpec || ze[he];
+ if (!gt) return [new _a(I, ae, 'unknown property "' + he + '"')];
+ var Et;
+ if (no(ae) === "string" && Ws(gt) && !gt.tokens && (Et = /^{([^}]+)}$/.exec(ae))) return [new _a(I, ae, '"' + he + '" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": ' + JSON.stringify(Et[1]) + " }`.")];
+ var or = [];
+ return m.layerType === "symbol" && (he === "text-field" && V && !V.glyphs && or.push(new _a(I, ae, 'use of "text-field" requires a style "glyphs" property')), he === "text-font" && ys(Kl(ae)) && xo(ae.type) === "identity" && or.push(new _a(I, ae, '"text-font" does not support identity functions'))), or.concat(Qa({ key: m.key, value: ae, valueSpec: gt, style: V, styleSpec: $, expressionContext: "property", propertyType: y, propertyKey: he }));
+ }
+ function Wr(m) {
+ return Or(m, "paint");
+ }
+ function ni(m) {
+ return Or(m, "layout");
+ }
+ function Pi(m) {
+ var y = [], I = m.value, V = m.key, $ = m.style, ae = m.styleSpec;
+ !I.type && !I.ref && y.push(new _a(V, I, 'either "type" or "ref" is required'));
+ var he = xo(I.type), ze = xo(I.ref);
+ if (I.id) for (var rt = xo(I.id), gt = 0; gt < m.arrayIndex; gt++) {
+ var Et = $.layers[gt];
+ xo(Et.id) === rt && y.push(new _a(V, I.id, 'duplicate layer id "' + I.id + '", previously used at line ' + Et.id.__line__));
+ }
+ if ("ref" in I) {
+ ["type", "source", "source-layer", "filter", "layout"].forEach(function(Fr) {
+ Fr in I && y.push(new _a(V, I[Fr], '"' + Fr + '" is prohibited for ref layers'));
+ });
+ var or;
+ $.layers.forEach(function(Fr) {
+ xo(Fr.id) === ze && (or = Fr);
+ }), or ? or.ref ? y.push(new _a(V, I.ref, "ref cannot reference another ref layer")) : he = xo(or.type) : y.push(new _a(V, I.ref, 'ref layer "' + ze + '" not found'));
+ } else if (he !== "background") if (!I.source) y.push(new _a(V, I, 'missing required property "source"'));
+ else {
+ var _r = $.sources && $.sources[I.source], pr = _r && xo(_r.type);
+ _r ? pr === "vector" && he === "raster" ? y.push(new _a(V, I.source, 'layer "' + I.id + '" requires a raster source')) : pr === "raster" && he !== "raster" ? y.push(new _a(V, I.source, 'layer "' + I.id + '" requires a vector source')) : pr === "vector" && !I["source-layer"] ? y.push(new _a(V, I, 'layer "' + I.id + '" must specify a "source-layer"')) : pr === "raster-dem" && he !== "hillshade" ? y.push(new _a(V, I.source, "raster-dem source can only be used with layer type 'hillshade'.")) : he === "line" && I.paint && I.paint["line-gradient"] && (pr !== "geojson" || !_r.lineMetrics) && y.push(new _a(V, I, 'layer "' + I.id + '" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')) : y.push(new _a(V, I.source, 'source "' + I.source + '" not found'));
+ }
+ return y = y.concat(le({ key: V, value: I, valueSpec: ae.layer, style: m.style, styleSpec: m.styleSpec, objectElementValidators: { "*": function() {
+ return [];
+ }, type: function() {
+ return Qa({ key: V + ".type", value: I.type, valueSpec: ae.layer.type, style: m.style, styleSpec: m.styleSpec, object: I, objectKey: "type" });
+ }, filter: dr, layout: function(oi) {
+ return le({ layer: I, key: oi.key, value: oi.value, style: oi.style, styleSpec: oi.styleSpec, objectElementValidators: { "*": function(Ai) {
+ return ni(Ol({ layerType: he }, Ai));
+ } } });
+ }, paint: function(oi) {
+ return le({ layer: I, key: oi.key, value: oi.value, style: oi.style, styleSpec: oi.styleSpec, objectElementValidators: { "*": function(Ai) {
+ return Wr(Ol({ layerType: he }, Ai));
+ } } });
+ } } })), y;
+ }
+ function cn(m) {
+ var y = m.value, I = m.key, V = no(y);
+ return V !== "string" ? [new _a(I, y, "string expected, " + V + " found")] : [];
+ }
+ var ln = { promoteId: Kn };
+ function Cn(m) {
+ var y = m.value, I = m.key, V = m.styleSpec, $ = m.style;
+ if (!y.type) return [new _a(I, y, '"type" is required')];
+ var ae = xo(y.type), he;
+ switch (ae) {
+ case "vector":
+ case "raster":
+ case "raster-dem":
+ return he = le({ key: I, value: y, valueSpec: V["source_" + ae.replace("-", "_")], style: m.style, styleSpec: V, objectElementValidators: ln }), he;
+ case "geojson":
+ if (he = le({ key: I, value: y, valueSpec: V.source_geojson, style: $, styleSpec: V, objectElementValidators: ln }), y.cluster) for (var ze in y.clusterProperties) {
+ var rt = y.clusterProperties[ze], gt = rt[0], Et = rt[1], or = typeof gt == "string" ? [gt, ["accumulated"], ["get", ze]] : gt;
+ he.push.apply(he, Tt({ key: I + "." + ze + ".map", value: Et, expressionContext: "cluster-map" })), he.push.apply(he, Tt({ key: I + "." + ze + ".reduce", value: or, expressionContext: "cluster-reduce" }));
+ }
+ return he;
+ case "video":
+ return le({ key: I, value: y, valueSpec: V.source_video, style: $, styleSpec: V });
+ case "image":
+ return le({ key: I, value: y, valueSpec: V.source_image, style: $, styleSpec: V });
+ case "canvas":
+ return [new _a(I, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")];
+ default:
+ return xr({ key: I + ".type", value: y.type, valueSpec: { values: ["vector", "raster", "raster-dem", "geojson", "video", "image"] } });
+ }
+ }
+ function Kn(m) {
+ var y = m.key, I = m.value;
+ if (no(I) === "string") return cn({ key: y, value: I });
+ var V = [];
+ for (var $ in I) V.push.apply(V, cn({ key: y + "." + $, value: I[$] }));
+ return V;
+ }
+ function Aa(m) {
+ var y = m.value, I = m.styleSpec, V = I.light, $ = m.style, ae = [], he = no(y);
+ if (y === void 0) return ae;
+ if (he !== "object") return ae = ae.concat([new _a("light", y, "object expected, " + he + " found")]), ae;
+ for (var ze in y) {
+ var rt = ze.match(/^(.*)-transition$/);
+ rt && V[rt[1]] && V[rt[1]].transition ? ae = ae.concat(Qa({ key: ze, value: y[ze], valueSpec: I.transition, style: $, styleSpec: I })) : V[ze] ? ae = ae.concat(Qa({ key: ze, value: y[ze], valueSpec: V[ze], style: $, styleSpec: I })) : ae = ae.concat([new _a(ze, y[ze], 'unknown property "' + ze + '"')]);
+ }
+ return ae;
+ }
+ function fa(m) {
+ return cn(m).length === 0 ? [] : Tt(m);
+ }
+ function $a(m) {
+ return cn(m).length === 0 ? [] : Tt(m);
+ }
+ var Co = { "*": function() {
+ return [];
+ }, array: Oe, boolean: Yt, number: Ze, color: Kt, constants: Vu, enum: xr, filter: dr, function: st, layer: Pi, object: le, source: Cn, light: Aa, string: cn, formatted: fa, resolvedImage: $a };
+ function Qa(m) {
+ var y = m.value, I = m.valueSpec, V = m.styleSpec;
+ if (I.expression && ys(xo(y))) return st(m);
+ if (I.expression && Ua(Kl(y))) return Tt(m);
+ if (I.type && Co[I.type]) return Co[I.type](m);
+ var $ = le(Ol({}, m, { valueSpec: I.type ? V[I.type] : I }));
+ return $;
+ }
+ function mo(m) {
+ var y = m.value, I = m.key, V = cn(m);
+ return V.length || (y.indexOf("{fontstack}") === -1 && V.push(new _a(I, y, '"glyphs" url must include a "{fontstack}" token')), y.indexOf("{range}") === -1 && V.push(new _a(I, y, '"glyphs" url must include a "{range}" token'))), V;
+ }
+ function Bo(m, y) {
+ y === void 0 && (y = Rn);
+ var I = [];
+ return I = I.concat(Qa({ key: "", value: m, valueSpec: y.$root, styleSpec: y, style: m, objectElementValidators: { glyphs: mo, "*": function() {
+ return [];
+ } } })), m.constants && (I = I.concat(Vu({ key: "constants", value: m.constants }))), Ps(I);
+ }
+ Bo.source = Ts(Cn), Bo.light = Ts(Aa), Bo.layer = Ts(Pi), Bo.filter = Ts(dr), Bo.paintProperty = Ts(Wr), Bo.layoutProperty = Ts(ni);
+ function Ps(m) {
+ return [].concat(m).sort(function(y, I) {
+ return y.line - I.line;
+ });
+ }
+ function Ts(m) {
+ return function() {
+ for (var y = [], I = arguments.length; I--; ) y[I] = arguments[I];
+ return Ps(m.apply(this, y));
+ };
+ }
+ var wo = Bo, To = wo.light, hl = wo.paintProperty, Ul = wo.layoutProperty;
+ function Lu(m, y) {
+ var I = false;
+ if (y && y.length) for (var V = 0, $ = y; V < $.length; V += 1) {
+ var ae = $[V];
+ m.fire(new da(new Error(ae.message))), I = true;
+ }
+ return I;
+ }
+ var au = eu, Js = 3;
+ function eu(m, y, I) {
+ var V = this.cells = [];
+ if (m instanceof ArrayBuffer) {
+ this.arrayBuffer = m;
+ var $ = new Int32Array(this.arrayBuffer);
+ m = $[0], y = $[1], I = $[2], this.d = y + 2 * I;
+ for (var ae = 0; ae < this.d * this.d; ae++) {
+ var he = $[Js + ae], ze = $[Js + ae + 1];
+ V.push(he === ze ? null : $.subarray(he, ze));
+ }
+ var rt = $[Js + V.length], gt = $[Js + V.length + 1];
+ this.keys = $.subarray(rt, gt), this.bboxes = $.subarray(gt), this.insert = this._insertReadonly;
+ } else {
+ this.d = y + 2 * I;
+ for (var Et = 0; Et < this.d * this.d; Et++) V.push([]);
+ this.keys = [], this.bboxes = [];
+ }
+ this.n = y, this.extent = m, this.padding = I, this.scale = y / m, this.uid = 0;
+ var or = I / y * m;
+ this.min = -or, this.max = m + or;
+ }
+ eu.prototype.insert = function(m, y, I, V, $) {
+ this._forEachCell(y, I, V, $, this._insertCell, this.uid++), this.keys.push(m), this.bboxes.push(y), this.bboxes.push(I), this.bboxes.push(V), this.bboxes.push($);
+ }, eu.prototype._insertReadonly = function() {
+ throw "Cannot insert into a GridIndex created from an ArrayBuffer.";
+ }, eu.prototype._insertCell = function(m, y, I, V, $, ae) {
+ this.cells[$].push(ae);
+ }, eu.prototype.query = function(m, y, I, V, $) {
+ var ae = this.min, he = this.max;
+ if (m <= ae && y <= ae && he <= I && he <= V && !$) return Array.prototype.slice.call(this.keys);
+ var ze = [], rt = {};
+ return this._forEachCell(m, y, I, V, this._queryCell, ze, rt, $), ze;
+ }, eu.prototype._queryCell = function(m, y, I, V, $, ae, he, ze) {
+ var rt = this.cells[$];
+ if (rt !== null) for (var gt = this.keys, Et = this.bboxes, or = 0; or < rt.length; or++) {
+ var _r = rt[or];
+ if (he[_r] === void 0) {
+ var pr = _r * 4;
+ (ze ? ze(Et[pr + 0], Et[pr + 1], Et[pr + 2], Et[pr + 3]) : m <= Et[pr + 2] && y <= Et[pr + 3] && I >= Et[pr + 0] && V >= Et[pr + 1]) ? (he[_r] = true, ae.push(gt[_r])) : he[_r] = false;
+ }
+ }
+ }, eu.prototype._forEachCell = function(m, y, I, V, $, ae, he, ze) {
+ for (var rt = this._convertToCellCoord(m), gt = this._convertToCellCoord(y), Et = this._convertToCellCoord(I), or = this._convertToCellCoord(V), _r = rt; _r <= Et; _r++) for (var pr = gt; pr <= or; pr++) {
+ var Fr = this.d * pr + _r;
+ if (!(ze && !ze(this._convertFromCellCoord(_r), this._convertFromCellCoord(pr), this._convertFromCellCoord(_r + 1), this._convertFromCellCoord(pr + 1))) && $.call(this, m, y, I, V, Fr, ae, he, ze)) return;
+ }
+ }, eu.prototype._convertFromCellCoord = function(m) {
+ return (m - this.padding) / this.scale;
+ }, eu.prototype._convertToCellCoord = function(m) {
+ return Math.max(0, Math.min(this.d - 1, Math.floor(m * this.scale) + this.padding));
+ }, eu.prototype.toArrayBuffer = function() {
+ if (this.arrayBuffer) return this.arrayBuffer;
+ for (var m = this.cells, y = Js + this.cells.length + 1 + 1, I = 0, V = 0; V < this.cells.length; V++) I += this.cells[V].length;
+ var $ = new Int32Array(y + I + this.keys.length + this.bboxes.length);
+ $[0] = this.extent, $[1] = this.n, $[2] = this.padding;
+ for (var ae = y, he = 0; he < m.length; he++) {
+ var ze = m[he];
+ $[Js + he] = ae, $.set(ze, ae), ae += ze.length;
+ }
+ return $[Js + m.length] = ae, $.set(this.keys, ae), ae += this.keys.length, $[Js + m.length + 1] = ae, $.set(this.bboxes, ae), ae += this.bboxes.length, $.buffer;
+ };
+ var dc = f.ImageData, Tl = f.ImageBitmap, Al = {};
+ function X(m, y, I) {
+ I === void 0 && (I = {}), Object.defineProperty(y, "_classRegistryKey", { value: m, writeable: false }), Al[m] = { klass: y, omit: I.omit || [], shallow: I.shallow || [] };
+ }
+ X("Object", Object), au.serialize = function(y, I) {
+ var V = y.toArrayBuffer();
+ return I && I.push(V), { buffer: V };
+ }, au.deserialize = function(y) {
+ return new au(y.buffer);
+ }, X("Grid", au), X("Color", cs), X("Error", Error), X("ResolvedImage", fl), X("StylePropertyFunction", ue), X("StyleExpression", Ac, { omit: ["_evaluator"] }), X("ZoomDependentExpression", hc), X("ZoomConstantExpression", Vc), X("CompoundExpression", Pa, { omit: ["_evaluate"] });
+ for (var se in Ka) Ka[se]._classRegistryKey || X("Expression_" + se, Ka[se]);
+ function Te(m) {
+ return m && typeof ArrayBuffer != "undefined" && (m instanceof ArrayBuffer || m.constructor && m.constructor.name === "ArrayBuffer");
+ }
+ function Ne(m) {
+ return Tl && m instanceof Tl;
+ }
+ function He(m, y) {
+ if (m == null || typeof m == "boolean" || typeof m == "number" || typeof m == "string" || m instanceof Boolean || m instanceof Number || m instanceof String || m instanceof Date || m instanceof RegExp) return m;
+ if (Te(m) || Ne(m)) return y && y.push(m), m;
+ if (ArrayBuffer.isView(m)) {
+ var I = m;
+ return y && y.push(I.buffer), I;
+ }
+ if (m instanceof dc) return y && y.push(m.data.buffer), m;
+ if (Array.isArray(m)) {
+ for (var V = [], $ = 0, ae = m; $ < ae.length; $ += 1) {
+ var he = ae[$];
+ V.push(He(he, y));
+ }
+ return V;
+ }
+ if (typeof m == "object") {
+ var ze = m.constructor, rt = ze._classRegistryKey;
+ if (!rt) throw new Error("can't serialize object of unregistered class");
+ var gt = ze.serialize ? ze.serialize(m, y) : {};
+ if (!ze.serialize) {
+ for (var Et in m) if (m.hasOwnProperty(Et) && !(Al[rt].omit.indexOf(Et) >= 0)) {
+ var or = m[Et];
+ gt[Et] = Al[rt].shallow.indexOf(Et) >= 0 ? or : He(or, y);
+ }
+ m instanceof Error && (gt.message = m.message);
+ }
+ if (gt.$name) throw new Error("$name property is reserved for worker serialization logic.");
+ return rt !== "Object" && (gt.$name = rt), gt;
+ }
+ throw new Error("can't serialize object of type " + typeof m);
+ }
+ function Ye(m) {
+ if (m == null || typeof m == "boolean" || typeof m == "number" || typeof m == "string" || m instanceof Boolean || m instanceof Number || m instanceof String || m instanceof Date || m instanceof RegExp || Te(m) || Ne(m) || ArrayBuffer.isView(m) || m instanceof dc) return m;
+ if (Array.isArray(m)) return m.map(Ye);
+ if (typeof m == "object") {
+ var y = m.$name || "Object", I = Al[y], V = I.klass;
+ if (!V) throw new Error("can't deserialize unregistered class " + y);
+ if (V.deserialize) return V.deserialize(m);
+ for (var $ = Object.create(V.prototype), ae = 0, he = Object.keys(m); ae < he.length; ae += 1) {
+ var ze = he[ae];
+ if (ze !== "$name") {
+ var rt = m[ze];
+ $[ze] = Al[y].shallow.indexOf(ze) >= 0 ? rt : Ye(rt);
+ }
+ }
+ return $;
+ }
+ throw new Error("can't deserialize object of type " + typeof m);
+ }
+ var kt = function() {
+ this.first = true;
+ };
+ kt.prototype.update = function(y, I) {
+ var V = Math.floor(y);
+ return this.first ? (this.first = false, this.lastIntegerZoom = V, this.lastIntegerZoomTime = 0, this.lastZoom = y, this.lastFloorZoom = V, true) : (this.lastFloorZoom > V ? (this.lastIntegerZoom = V + 1, this.lastIntegerZoomTime = I) : this.lastFloorZoom < V && (this.lastIntegerZoom = V, this.lastIntegerZoomTime = I), y !== this.lastZoom ? (this.lastZoom = y, this.lastFloorZoom = V, true) : false);
+ };
+ var nt = { "Latin-1 Supplement": function(m) {
+ return m >= 128 && m <= 255;
+ }, Arabic: function(m) {
+ return m >= 1536 && m <= 1791;
+ }, "Arabic Supplement": function(m) {
+ return m >= 1872 && m <= 1919;
+ }, "Arabic Extended-A": function(m) {
+ return m >= 2208 && m <= 2303;
+ }, "Hangul Jamo": function(m) {
+ return m >= 4352 && m <= 4607;
+ }, "Unified Canadian Aboriginal Syllabics": function(m) {
+ return m >= 5120 && m <= 5759;
+ }, Khmer: function(m) {
+ return m >= 6016 && m <= 6143;
+ }, "Unified Canadian Aboriginal Syllabics Extended": function(m) {
+ return m >= 6320 && m <= 6399;
+ }, "General Punctuation": function(m) {
+ return m >= 8192 && m <= 8303;
+ }, "Letterlike Symbols": function(m) {
+ return m >= 8448 && m <= 8527;
+ }, "Number Forms": function(m) {
+ return m >= 8528 && m <= 8591;
+ }, "Miscellaneous Technical": function(m) {
+ return m >= 8960 && m <= 9215;
+ }, "Control Pictures": function(m) {
+ return m >= 9216 && m <= 9279;
+ }, "Optical Character Recognition": function(m) {
+ return m >= 9280 && m <= 9311;
+ }, "Enclosed Alphanumerics": function(m) {
+ return m >= 9312 && m <= 9471;
+ }, "Geometric Shapes": function(m) {
+ return m >= 9632 && m <= 9727;
+ }, "Miscellaneous Symbols": function(m) {
+ return m >= 9728 && m <= 9983;
+ }, "Miscellaneous Symbols and Arrows": function(m) {
+ return m >= 11008 && m <= 11263;
+ }, "CJK Radicals Supplement": function(m) {
+ return m >= 11904 && m <= 12031;
+ }, "Kangxi Radicals": function(m) {
+ return m >= 12032 && m <= 12255;
+ }, "Ideographic Description Characters": function(m) {
+ return m >= 12272 && m <= 12287;
+ }, "CJK Symbols and Punctuation": function(m) {
+ return m >= 12288 && m <= 12351;
+ }, Hiragana: function(m) {
+ return m >= 12352 && m <= 12447;
+ }, Katakana: function(m) {
+ return m >= 12448 && m <= 12543;
+ }, Bopomofo: function(m) {
+ return m >= 12544 && m <= 12591;
+ }, "Hangul Compatibility Jamo": function(m) {
+ return m >= 12592 && m <= 12687;
+ }, Kanbun: function(m) {
+ return m >= 12688 && m <= 12703;
+ }, "Bopomofo Extended": function(m) {
+ return m >= 12704 && m <= 12735;
+ }, "CJK Strokes": function(m) {
+ return m >= 12736 && m <= 12783;
+ }, "Katakana Phonetic Extensions": function(m) {
+ return m >= 12784 && m <= 12799;
+ }, "Enclosed CJK Letters and Months": function(m) {
+ return m >= 12800 && m <= 13055;
+ }, "CJK Compatibility": function(m) {
+ return m >= 13056 && m <= 13311;
+ }, "CJK Unified Ideographs Extension A": function(m) {
+ return m >= 13312 && m <= 19903;
+ }, "Yijing Hexagram Symbols": function(m) {
+ return m >= 19904 && m <= 19967;
+ }, "CJK Unified Ideographs": function(m) {
+ return m >= 19968 && m <= 40959;
+ }, "Yi Syllables": function(m) {
+ return m >= 40960 && m <= 42127;
+ }, "Yi Radicals": function(m) {
+ return m >= 42128 && m <= 42191;
+ }, "Hangul Jamo Extended-A": function(m) {
+ return m >= 43360 && m <= 43391;
+ }, "Hangul Syllables": function(m) {
+ return m >= 44032 && m <= 55215;
+ }, "Hangul Jamo Extended-B": function(m) {
+ return m >= 55216 && m <= 55295;
+ }, "Private Use Area": function(m) {
+ return m >= 57344 && m <= 63743;
+ }, "CJK Compatibility Ideographs": function(m) {
+ return m >= 63744 && m <= 64255;
+ }, "Arabic Presentation Forms-A": function(m) {
+ return m >= 64336 && m <= 65023;
+ }, "Vertical Forms": function(m) {
+ return m >= 65040 && m <= 65055;
+ }, "CJK Compatibility Forms": function(m) {
+ return m >= 65072 && m <= 65103;
+ }, "Small Form Variants": function(m) {
+ return m >= 65104 && m <= 65135;
+ }, "Arabic Presentation Forms-B": function(m) {
+ return m >= 65136 && m <= 65279;
+ }, "Halfwidth and Fullwidth Forms": function(m) {
+ return m >= 65280 && m <= 65519;
+ } };
+ function jt(m) {
+ for (var y = 0, I = m; y < I.length; y += 1) {
+ var V = I[y];
+ if (qr(V.charCodeAt(0))) return true;
+ }
+ return false;
+ }
+ function gr(m) {
+ for (var y = 0, I = m; y < I.length; y += 1) {
+ var V = I[y];
+ if (!yr(V.charCodeAt(0))) return false;
+ }
+ return true;
+ }
+ function yr(m) {
+ return !(nt.Arabic(m) || nt["Arabic Supplement"](m) || nt["Arabic Extended-A"](m) || nt["Arabic Presentation Forms-A"](m) || nt["Arabic Presentation Forms-B"](m));
+ }
+ function Hr(m) {
+ return m < 11904 ? false : !!(nt["Bopomofo Extended"](m) || nt.Bopomofo(m) || nt["CJK Compatibility Forms"](m) || nt["CJK Compatibility Ideographs"](m) || nt["CJK Compatibility"](m) || nt["CJK Radicals Supplement"](m) || nt["CJK Strokes"](m) || nt["CJK Symbols and Punctuation"](m) || nt["CJK Unified Ideographs Extension A"](m) || nt["CJK Unified Ideographs"](m) || nt["Enclosed CJK Letters and Months"](m) || nt["Halfwidth and Fullwidth Forms"](m) || nt.Hiragana(m) || nt["Ideographic Description Characters"](m) || nt["Kangxi Radicals"](m) || nt["Katakana Phonetic Extensions"](m) || nt.Katakana(m) || nt["Vertical Forms"](m) || nt["Yi Radicals"](m) || nt["Yi Syllables"](m));
+ }
+ function qr(m) {
+ return m === 746 || m === 747 ? true : m < 4352 ? false : !!(nt["Bopomofo Extended"](m) || nt.Bopomofo(m) || nt["CJK Compatibility Forms"](m) && !(m >= 65097 && m <= 65103) || nt["CJK Compatibility Ideographs"](m) || nt["CJK Compatibility"](m) || nt["CJK Radicals Supplement"](m) || nt["CJK Strokes"](m) || nt["CJK Symbols and Punctuation"](m) && !(m >= 12296 && m <= 12305) && !(m >= 12308 && m <= 12319) && m !== 12336 || nt["CJK Unified Ideographs Extension A"](m) || nt["CJK Unified Ideographs"](m) || nt["Enclosed CJK Letters and Months"](m) || nt["Hangul Compatibility Jamo"](m) || nt["Hangul Jamo Extended-A"](m) || nt["Hangul Jamo Extended-B"](m) || nt["Hangul Jamo"](m) || nt["Hangul Syllables"](m) || nt.Hiragana(m) || nt["Ideographic Description Characters"](m) || nt.Kanbun(m) || nt["Kangxi Radicals"](m) || nt["Katakana Phonetic Extensions"](m) || nt.Katakana(m) && m !== 12540 || nt["Halfwidth and Fullwidth Forms"](m) && m !== 65288 && m !== 65289 && m !== 65293 && !(m >= 65306 && m <= 65310) && m !== 65339 && m !== 65341 && m !== 65343 && !(m >= 65371 && m <= 65503) && m !== 65507 && !(m >= 65512 && m <= 65519) || nt["Small Form Variants"](m) && !(m >= 65112 && m <= 65118) && !(m >= 65123 && m <= 65126) || nt["Unified Canadian Aboriginal Syllabics"](m) || nt["Unified Canadian Aboriginal Syllabics Extended"](m) || nt["Vertical Forms"](m) || nt["Yijing Hexagram Symbols"](m) || nt["Yi Syllables"](m) || nt["Yi Radicals"](m));
+ }
+ function _i(m) {
+ return !!(nt["Latin-1 Supplement"](m) && (m === 167 || m === 169 || m === 174 || m === 177 || m === 188 || m === 189 || m === 190 || m === 215 || m === 247) || nt["General Punctuation"](m) && (m === 8214 || m === 8224 || m === 8225 || m === 8240 || m === 8241 || m === 8251 || m === 8252 || m === 8258 || m === 8263 || m === 8264 || m === 8265 || m === 8273) || nt["Letterlike Symbols"](m) || nt["Number Forms"](m) || nt["Miscellaneous Technical"](m) && (m >= 8960 && m <= 8967 || m >= 8972 && m <= 8991 || m >= 8996 && m <= 9e3 || m === 9003 || m >= 9085 && m <= 9114 || m >= 9150 && m <= 9165 || m === 9167 || m >= 9169 && m <= 9179 || m >= 9186 && m <= 9215) || nt["Control Pictures"](m) && m !== 9251 || nt["Optical Character Recognition"](m) || nt["Enclosed Alphanumerics"](m) || nt["Geometric Shapes"](m) || nt["Miscellaneous Symbols"](m) && !(m >= 9754 && m <= 9759) || nt["Miscellaneous Symbols and Arrows"](m) && (m >= 11026 && m <= 11055 || m >= 11088 && m <= 11097 || m >= 11192 && m <= 11243) || nt["CJK Symbols and Punctuation"](m) || nt.Katakana(m) || nt["Private Use Area"](m) || nt["CJK Compatibility Forms"](m) || nt["Small Form Variants"](m) || nt["Halfwidth and Fullwidth Forms"](m) || m === 8734 || m === 8756 || m === 8757 || m >= 9984 && m <= 10087 || m >= 10102 && m <= 10131 || m === 65532 || m === 65533);
+ }
+ function bi(m) {
+ return !(qr(m) || _i(m));
+ }
+ function Zr(m) {
+ return nt.Arabic(m) || nt["Arabic Supplement"](m) || nt["Arabic Extended-A"](m) || nt["Arabic Presentation Forms-A"](m) || nt["Arabic Presentation Forms-B"](m);
+ }
+ function ai(m) {
+ return m >= 1424 && m <= 2303 || nt["Arabic Presentation Forms-A"](m) || nt["Arabic Presentation Forms-B"](m);
+ }
+ function gi(m, y) {
+ return !(!y && ai(m) || m >= 2304 && m <= 3583 || m >= 3840 && m <= 4255 || nt.Khmer(m));
+ }
+ function Ii(m) {
+ for (var y = 0, I = m; y < I.length; y += 1) {
+ var V = I[y];
+ if (ai(V.charCodeAt(0))) return true;
+ }
+ return false;
+ }
+ function Si(m, y) {
+ for (var I = 0, V = m; I < V.length; I += 1) {
+ var $ = V[I];
+ if (!gi($.charCodeAt(0), y)) return false;
+ }
+ return true;
+ }
+ var ei = { unavailable: "unavailable", deferred: "deferred", loading: "loading", loaded: "loaded", error: "error" }, Ln = null, En = ei.unavailable, Un = null, ia = function(m) {
+ m && typeof m == "string" && m.indexOf("NetworkError") > -1 && (En = ei.error), Ln && Ln(m);
+ };
+ function Ea() {
+ Ia.fire(new Xo("pluginStateChange", { pluginStatus: En, pluginURL: Un }));
+ }
+ var Ia = new Wn(), yo = function() {
+ return En;
+ }, Da = function(m) {
+ return m({ pluginStatus: En, pluginURL: Un }), Ia.on("pluginStateChange", m), m;
+ }, go = function(m, y, I) {
+ if (I === void 0 && (I = false), En === ei.deferred || En === ei.loading || En === ei.loaded) throw new Error("setRTLTextPlugin cannot be called multiple times.");
+ Un = lt.resolveURL(m), En = ei.deferred, Ln = y, Ea(), I || Is();
+ }, Is = function() {
+ if (En !== ei.deferred || !Un) throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");
+ En = ei.loading, Ea(), Un && ri({ url: Un }, function(m) {
+ m ? ia(m) : (En = ei.loaded, Ea());
+ });
+ }, Ms = { applyArabicShaping: null, processBidirectionalText: null, processStyledBidirectionalText: null, isLoaded: function() {
+ return En === ei.loaded || Ms.applyArabicShaping != null;
+ }, isLoading: function() {
+ return En === ei.loading;
+ }, setState: function(y) {
+ En = y.pluginStatus, Un = y.pluginURL;
+ }, isParsed: function() {
+ return Ms.applyArabicShaping != null && Ms.processBidirectionalText != null && Ms.processStyledBidirectionalText != null;
+ }, getPluginURL: function() {
+ return Un;
+ } }, Xs = function() {
+ !Ms.isLoading() && !Ms.isLoaded() && yo() === "deferred" && Is();
+ }, Gn = function(y, I) {
+ this.zoom = y, I ? (this.now = I.now, this.fadeDuration = I.fadeDuration, this.zoomHistory = I.zoomHistory, this.transition = I.transition) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new kt(), this.transition = {});
+ };
+ Gn.prototype.isSupportedScript = function(y) {
+ return Si(y, Ms.isLoaded());
+ }, Gn.prototype.crossFadingFactor = function() {
+ return this.fadeDuration === 0 ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1);
+ }, Gn.prototype.getCrossfadeParameters = function() {
+ var y = this.zoom, I = y - Math.floor(y), V = this.crossFadingFactor();
+ return y > this.zoomHistory.lastIntegerZoom ? { fromScale: 2, toScale: 1, t: I + (1 - I) * V } : { fromScale: 0.5, toScale: 1, t: 1 - (1 - V) * I };
+ };
+ var ja = function(y, I) {
+ this.property = y, this.value = I, this.expression = w(I === void 0 ? y.specification.default : I, y.specification);
+ };
+ ja.prototype.isDataDriven = function() {
+ return this.expression.kind === "source" || this.expression.kind === "composite";
+ }, ja.prototype.possiblyEvaluate = function(y, I, V) {
+ return this.property.possiblyEvaluate(this, y, I, V);
+ };
+ var Fo = function(y) {
+ this.property = y, this.value = new ja(y, void 0);
+ };
+ Fo.prototype.transitioned = function(y, I) {
+ return new $s(this.property, this.value, I, x({}, y.transition, this.transition), y.now);
+ }, Fo.prototype.untransitioned = function() {
+ return new $s(this.property, this.value, null, {}, 0);
+ };
+ var Uo = function(y) {
+ this._properties = y, this._values = Object.create(y.defaultTransitionablePropertyValues);
+ };
+ Uo.prototype.getValue = function(y) {
+ return j(this._values[y].value.value);
+ }, Uo.prototype.setValue = function(y, I) {
+ this._values.hasOwnProperty(y) || (this._values[y] = new Fo(this._values[y].property)), this._values[y].value = new ja(this._values[y].property, I === null ? void 0 : j(I));
+ }, Uo.prototype.getTransition = function(y) {
+ return j(this._values[y].transition);
+ }, Uo.prototype.setTransition = function(y, I) {
+ this._values.hasOwnProperty(y) || (this._values[y] = new Fo(this._values[y].property)), this._values[y].transition = j(I) || void 0;
+ }, Uo.prototype.serialize = function() {
+ for (var y = {}, I = 0, V = Object.keys(this._values); I < V.length; I += 1) {
+ var $ = V[I], ae = this.getValue($);
+ ae !== void 0 && (y[$] = ae);
+ var he = this.getTransition($);
+ he !== void 0 && (y[$ + "-transition"] = he);
+ }
+ return y;
+ }, Uo.prototype.transitioned = function(y, I) {
+ for (var V = new Sl(this._properties), $ = 0, ae = Object.keys(this._values); $ < ae.length; $ += 1) {
+ var he = ae[$];
+ V._values[he] = this._values[he].transitioned(y, I._values[he]);
+ }
+ return V;
+ }, Uo.prototype.untransitioned = function() {
+ for (var y = new Sl(this._properties), I = 0, V = Object.keys(this._values); I < V.length; I += 1) {
+ var $ = V[I];
+ y._values[$] = this._values[$].untransitioned();
+ }
+ return y;
+ };
+ var $s = function(y, I, V, $, ae) {
+ this.property = y, this.value = I, this.begin = ae + $.delay || 0, this.end = this.begin + $.duration || 0, y.specification.transition && ($.delay || $.duration) && (this.prior = V);
+ };
+ $s.prototype.possiblyEvaluate = function(y, I, V) {
+ var $ = y.now || 0, ae = this.value.possiblyEvaluate(y, I, V), he = this.prior;
+ if (he) {
+ if ($ > this.end) return this.prior = null, ae;
+ if (this.value.isDataDriven()) return this.prior = null, ae;
+ if ($ < this.begin) return he.possiblyEvaluate(y, I, V);
+ var ze = ($ - this.begin) / (this.end - this.begin);
+ return this.property.interpolate(he.possiblyEvaluate(y, I, V), ae, v(ze));
+ } else return ae;
+ };
+ var Sl = function(y) {
+ this._properties = y, this._values = Object.create(y.defaultTransitioningPropertyValues);
+ };
+ Sl.prototype.possiblyEvaluate = function(y, I, V) {
+ for (var $ = new Sc(this._properties), ae = 0, he = Object.keys(this._values); ae < he.length; ae += 1) {
+ var ze = he[ae];
+ $._values[ze] = this._values[ze].possiblyEvaluate(y, I, V);
+ }
+ return $;
+ }, Sl.prototype.hasTransition = function() {
+ for (var y = 0, I = Object.keys(this._values); y < I.length; y += 1) {
+ var V = I[y];
+ if (this._values[V].prior) return true;
+ }
+ return false;
+ };
+ var bu = function(y) {
+ this._properties = y, this._values = Object.create(y.defaultPropertyValues);
+ };
+ bu.prototype.getValue = function(y) {
+ return j(this._values[y].value);
+ }, bu.prototype.setValue = function(y, I) {
+ this._values[y] = new ja(this._values[y].property, I === null ? void 0 : j(I));
+ }, bu.prototype.serialize = function() {
+ for (var y = {}, I = 0, V = Object.keys(this._values); I < V.length; I += 1) {
+ var $ = V[I], ae = this.getValue($);
+ ae !== void 0 && (y[$] = ae);
+ }
+ return y;
+ }, bu.prototype.possiblyEvaluate = function(y, I, V) {
+ for (var $ = new Sc(this._properties), ae = 0, he = Object.keys(this._values); ae < he.length; ae += 1) {
+ var ze = he[ae];
+ $._values[ze] = this._values[ze].possiblyEvaluate(y, I, V);
+ }
+ return $;
+ };
+ var dl = function(y, I, V) {
+ this.property = y, this.value = I, this.parameters = V;
+ };
+ dl.prototype.isConstant = function() {
+ return this.value.kind === "constant";
+ }, dl.prototype.constantOr = function(y) {
+ return this.value.kind === "constant" ? this.value.value : y;
+ }, dl.prototype.evaluate = function(y, I, V, $) {
+ return this.property.evaluate(this.value, this.parameters, y, I, V, $);
+ };
+ var Sc = function(y) {
+ this._properties = y, this._values = Object.create(y.defaultPossiblyEvaluatedValues);
+ };
+ Sc.prototype.get = function(y) {
+ return this._values[y];
+ };
+ var Me = function(y) {
+ this.specification = y;
+ };
+ Me.prototype.possiblyEvaluate = function(y, I) {
+ return y.expression.evaluate(I);
+ }, Me.prototype.interpolate = function(y, I, V) {
+ var $ = zu[this.specification.type];
+ return $ ? $(y, I, V) : y;
+ };
+ var bt = function(y, I) {
+ this.specification = y, this.overrides = I;
+ };
+ bt.prototype.possiblyEvaluate = function(y, I, V, $) {
+ return y.expression.kind === "constant" || y.expression.kind === "camera" ? new dl(this, { kind: "constant", value: y.expression.evaluate(I, null, {}, V, $) }, I) : new dl(this, y.expression, I);
+ }, bt.prototype.interpolate = function(y, I, V) {
+ if (y.value.kind !== "constant" || I.value.kind !== "constant") return y;
+ if (y.value.value === void 0 || I.value.value === void 0) return new dl(this, { kind: "constant", value: void 0 }, y.parameters);
+ var $ = zu[this.specification.type];
+ return $ ? new dl(this, { kind: "constant", value: $(y.value.value, I.value.value, V) }, y.parameters) : y;
+ }, bt.prototype.evaluate = function(y, I, V, $, ae, he) {
+ return y.kind === "constant" ? y.value : y.evaluate(I, V, $, ae, he);
+ };
+ var zt = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.possiblyEvaluate = function(V, $, ae, he) {
+ if (V.value === void 0) return new dl(this, { kind: "constant", value: void 0 }, $);
+ if (V.expression.kind === "constant") {
+ var ze = V.expression.evaluate($, null, {}, ae, he), rt = V.property.specification.type === "resolvedImage", gt = rt && typeof ze != "string" ? ze.name : ze, Et = this._calculate(gt, gt, gt, $);
+ return new dl(this, { kind: "constant", value: Et }, $);
+ } else if (V.expression.kind === "camera") {
+ var or = this._calculate(V.expression.evaluate({ zoom: $.zoom - 1 }), V.expression.evaluate({ zoom: $.zoom }), V.expression.evaluate({ zoom: $.zoom + 1 }), $);
+ return new dl(this, { kind: "constant", value: or }, $);
+ } else return new dl(this, V.expression, $);
+ }, y.prototype.evaluate = function(V, $, ae, he, ze, rt) {
+ if (V.kind === "source") {
+ var gt = V.evaluate($, ae, he, ze, rt);
+ return this._calculate(gt, gt, gt, $);
+ } else return V.kind === "composite" ? this._calculate(V.evaluate({ zoom: Math.floor($.zoom) - 1 }, ae, he), V.evaluate({ zoom: Math.floor($.zoom) }, ae, he), V.evaluate({ zoom: Math.floor($.zoom) + 1 }, ae, he), $) : V.value;
+ }, y.prototype._calculate = function(V, $, ae, he) {
+ var ze = he.zoom;
+ return ze > he.zoomHistory.lastIntegerZoom ? { from: V, to: $ } : { from: ae, to: $ };
+ }, y.prototype.interpolate = function(V) {
+ return V;
+ }, y;
+ }(bt), Rr = function(y) {
+ this.specification = y;
+ };
+ Rr.prototype.possiblyEvaluate = function(y, I, V, $) {
+ if (y.value !== void 0) if (y.expression.kind === "constant") {
+ var ae = y.expression.evaluate(I, null, {}, V, $);
+ return this._calculate(ae, ae, ae, I);
+ } else return this._calculate(y.expression.evaluate(new Gn(Math.floor(I.zoom - 1), I)), y.expression.evaluate(new Gn(Math.floor(I.zoom), I)), y.expression.evaluate(new Gn(Math.floor(I.zoom + 1), I)), I);
+ }, Rr.prototype._calculate = function(y, I, V, $) {
+ var ae = $.zoom;
+ return ae > $.zoomHistory.lastIntegerZoom ? { from: y, to: I } : { from: V, to: I };
+ }, Rr.prototype.interpolate = function(y) {
+ return y;
+ };
+ var jr = function(y) {
+ this.specification = y;
+ };
+ jr.prototype.possiblyEvaluate = function(y, I, V, $) {
+ return !!y.expression.evaluate(I, null, {}, V, $);
+ }, jr.prototype.interpolate = function() {
+ return false;
+ };
+ var Nr = function(y) {
+ this.properties = y, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = [];
+ for (var I in y) {
+ var V = y[I];
+ V.specification.overridable && this.overridableProperties.push(I);
+ var $ = this.defaultPropertyValues[I] = new ja(V, void 0), ae = this.defaultTransitionablePropertyValues[I] = new Fo(V);
+ this.defaultTransitioningPropertyValues[I] = ae.untransitioned(), this.defaultPossiblyEvaluatedValues[I] = $.possiblyEvaluate({});
+ }
+ };
+ X("DataDrivenProperty", bt), X("DataConstantProperty", Me), X("CrossFadedDataDrivenProperty", zt), X("CrossFadedProperty", Rr), X("ColorRampProperty", jr);
+ var Gr = "-transition", mi = function(m) {
+ function y(I, V) {
+ if (m.call(this), this.id = I.id, this.type = I.type, this._featureFilter = { filter: function() {
+ return true;
+ }, needGeometry: false }, I.type !== "custom" && (I = I, this.metadata = I.metadata, this.minzoom = I.minzoom, this.maxzoom = I.maxzoom, I.type !== "background" && (this.source = I.source, this.sourceLayer = I["source-layer"], this.filter = I.filter), V.layout && (this._unevaluatedLayout = new bu(V.layout)), V.paint)) {
+ this._transitionablePaint = new Uo(V.paint);
+ for (var $ in I.paint) this.setPaintProperty($, I.paint[$], { validate: false });
+ for (var ae in I.layout) this.setLayoutProperty(ae, I.layout[ae], { validate: false });
+ this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new Sc(V.paint);
+ }
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.getCrossfadeParameters = function() {
+ return this._crossfadeParameters;
+ }, y.prototype.getLayoutProperty = function(V) {
+ return V === "visibility" ? this.visibility : this._unevaluatedLayout.getValue(V);
+ }, y.prototype.setLayoutProperty = function(V, $, ae) {
+ if (ae === void 0 && (ae = {}), $ != null) {
+ var he = "layers." + this.id + ".layout." + V;
+ if (this._validate(Ul, he, V, $, ae)) return;
+ }
+ if (V === "visibility") {
+ this.visibility = $;
+ return;
+ }
+ this._unevaluatedLayout.setValue(V, $);
+ }, y.prototype.getPaintProperty = function(V) {
+ return U(V, Gr) ? this._transitionablePaint.getTransition(V.slice(0, -Gr.length)) : this._transitionablePaint.getValue(V);
+ }, y.prototype.setPaintProperty = function(V, $, ae) {
+ if (ae === void 0 && (ae = {}), $ != null) {
+ var he = "layers." + this.id + ".paint." + V;
+ if (this._validate(hl, he, V, $, ae)) return false;
+ }
+ if (U(V, Gr)) return this._transitionablePaint.setTransition(V.slice(0, -Gr.length), $ || void 0), false;
+ var ze = this._transitionablePaint._values[V], rt = ze.property.specification["property-type"] === "cross-faded-data-driven", gt = ze.value.isDataDriven(), Et = ze.value;
+ this._transitionablePaint.setValue(V, $), this._handleSpecialPaintPropertyUpdate(V);
+ var or = this._transitionablePaint._values[V].value, _r = or.isDataDriven();
+ return _r || gt || rt || this._handleOverridablePaintPropertyUpdate(V, Et, or);
+ }, y.prototype._handleSpecialPaintPropertyUpdate = function(V) {
+ }, y.prototype._handleOverridablePaintPropertyUpdate = function(V, $, ae) {
+ return false;
+ }, y.prototype.isHidden = function(V) {
+ return this.minzoom && V < this.minzoom || this.maxzoom && V >= this.maxzoom ? true : this.visibility === "none";
+ }, y.prototype.updateTransitions = function(V) {
+ this._transitioningPaint = this._transitionablePaint.transitioned(V, this._transitioningPaint);
+ }, y.prototype.hasTransition = function() {
+ return this._transitioningPaint.hasTransition();
+ }, y.prototype.recalculate = function(V, $) {
+ V.getCrossfadeParameters && (this._crossfadeParameters = V.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(V, void 0, $)), this.paint = this._transitioningPaint.possiblyEvaluate(V, void 0, $);
+ }, y.prototype.serialize = function() {
+ var V = { id: this.id, type: this.type, source: this.source, "source-layer": this.sourceLayer, metadata: this.metadata, minzoom: this.minzoom, maxzoom: this.maxzoom, filter: this.filter, layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), paint: this._transitionablePaint && this._transitionablePaint.serialize() };
+ return this.visibility && (V.layout = V.layout || {}, V.layout.visibility = this.visibility), Z(V, function($, ae) {
+ return $ !== void 0 && !(ae === "layout" && !Object.keys($).length) && !(ae === "paint" && !Object.keys($).length);
+ });
+ }, y.prototype._validate = function(V, $, ae, he, ze) {
+ return ze === void 0 && (ze = {}), ze && ze.validate === false ? false : Lu(this, V.call(wo, { key: $, layerType: this.type, objectKey: ae, value: he, styleSpec: Rn, style: { glyphs: true, sprite: true } }));
+ }, y.prototype.is3D = function() {
+ return false;
+ }, y.prototype.isTileClipped = function() {
+ return false;
+ }, y.prototype.hasOffscreenPass = function() {
+ return false;
+ }, y.prototype.resize = function() {
+ }, y.prototype.isStateDependent = function() {
+ for (var V in this.paint._values) {
+ var $ = this.paint.get(V);
+ if (!(!($ instanceof dl) || !Ws($.property.specification)) && ($.value.kind === "source" || $.value.kind === "composite") && $.value.isStateDependent) return true;
+ }
+ return false;
+ }, y;
+ }(Wn), Ui = { Int8: Int8Array, Uint8: Uint8Array, Int16: Int16Array, Uint16: Uint16Array, Int32: Int32Array, Uint32: Uint32Array, Float32: Float32Array }, qi = function(y, I) {
+ this._structArray = y, this._pos1 = I * this.size, this._pos2 = this._pos1 / 2, this._pos4 = this._pos1 / 4, this._pos8 = this._pos1 / 8;
+ }, Ei = 128, Hn = 5, en = function() {
+ this.isTransferred = false, this.capacity = -1, this.resize(0);
+ };
+ en.serialize = function(y, I) {
+ return y._trim(), I && (y.isTransferred = true, I.push(y.arrayBuffer)), { length: y.length, arrayBuffer: y.arrayBuffer };
+ }, en.deserialize = function(y) {
+ var I = Object.create(this.prototype);
+ return I.arrayBuffer = y.arrayBuffer, I.length = y.length, I.capacity = y.arrayBuffer.byteLength / I.bytesPerElement, I._refreshViews(), I;
+ }, en.prototype._trim = function() {
+ this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews());
+ }, en.prototype.clear = function() {
+ this.length = 0;
+ }, en.prototype.resize = function(y) {
+ this.reserve(y), this.length = y;
+ }, en.prototype.reserve = function(y) {
+ if (y > this.capacity) {
+ this.capacity = Math.max(y, Math.floor(this.capacity * Hn), Ei), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement);
+ var I = this.uint8;
+ this._refreshViews(), I && this.uint8.set(I);
+ }
+ }, en.prototype._refreshViews = function() {
+ throw new Error("_refreshViews() must be implemented by each concrete StructArray layout");
+ };
+ function Wi(m, y) {
+ y === void 0 && (y = 1);
+ var I = 0, V = 0, $ = m.map(function(he) {
+ var ze = si(he.type), rt = I = Mr(I, Math.max(y, ze)), gt = he.components || 1;
+ return V = Math.max(V, ze), I += ze * gt, { name: he.name, type: he.type, components: gt, offset: rt };
+ }), ae = Mr(I, Math.max(V, y));
+ return { members: $, size: ae, alignment: y };
+ }
+ function si(m) {
+ return Ui[m].BYTES_PER_ELEMENT;
+ }
+ function Mr(m, y) {
+ return Math.ceil(m / y) * y;
+ }
+ var Yr = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $) {
+ var ae = this.length;
+ return this.resize(ae + 1), this.emplace(ae, V, $);
+ }, y.prototype.emplace = function(V, $, ae) {
+ var he = V * 2;
+ return this.int16[he + 0] = $, this.int16[he + 1] = ae, V;
+ }, y;
+ }(en);
+ Yr.prototype.bytesPerElement = 4, X("StructArrayLayout2i4", Yr);
+ var xi = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he) {
+ var ze = this.length;
+ return this.resize(ze + 1), this.emplace(ze, V, $, ae, he);
+ }, y.prototype.emplace = function(V, $, ae, he, ze) {
+ var rt = V * 4;
+ return this.int16[rt + 0] = $, this.int16[rt + 1] = ae, this.int16[rt + 2] = he, this.int16[rt + 3] = ze, V;
+ }, y;
+ }(en);
+ xi.prototype.bytesPerElement = 8, X("StructArrayLayout4i8", xi);
+ var Ri = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze, rt) {
+ var gt = this.length;
+ return this.resize(gt + 1), this.emplace(gt, V, $, ae, he, ze, rt);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt, gt) {
+ var Et = V * 6;
+ return this.int16[Et + 0] = $, this.int16[Et + 1] = ae, this.int16[Et + 2] = he, this.int16[Et + 3] = ze, this.int16[Et + 4] = rt, this.int16[Et + 5] = gt, V;
+ }, y;
+ }(en);
+ Ri.prototype.bytesPerElement = 12, X("StructArrayLayout2i4i12", Ri);
+ var ci = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze, rt) {
+ var gt = this.length;
+ return this.resize(gt + 1), this.emplace(gt, V, $, ae, he, ze, rt);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt, gt) {
+ var Et = V * 4, or = V * 8;
+ return this.int16[Et + 0] = $, this.int16[Et + 1] = ae, this.uint8[or + 4] = he, this.uint8[or + 5] = ze, this.uint8[or + 6] = rt, this.uint8[or + 7] = gt, V;
+ }, y;
+ }(en);
+ ci.prototype.bytesPerElement = 8, X("StructArrayLayout2i4ub8", ci);
+ var an = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $) {
+ var ae = this.length;
+ return this.resize(ae + 1), this.emplace(ae, V, $);
+ }, y.prototype.emplace = function(V, $, ae) {
+ var he = V * 2;
+ return this.float32[he + 0] = $, this.float32[he + 1] = ae, V;
+ }, y;
+ }(en);
+ an.prototype.bytesPerElement = 8, X("StructArrayLayout2f8", an);
+ var Zi = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze, rt, gt, Et, or, _r) {
+ var pr = this.length;
+ return this.resize(pr + 1), this.emplace(pr, V, $, ae, he, ze, rt, gt, Et, or, _r);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt, gt, Et, or, _r, pr) {
+ var Fr = V * 10;
+ return this.uint16[Fr + 0] = $, this.uint16[Fr + 1] = ae, this.uint16[Fr + 2] = he, this.uint16[Fr + 3] = ze, this.uint16[Fr + 4] = rt, this.uint16[Fr + 5] = gt, this.uint16[Fr + 6] = Et, this.uint16[Fr + 7] = or, this.uint16[Fr + 8] = _r, this.uint16[Fr + 9] = pr, V;
+ }, y;
+ }(en);
+ Zi.prototype.bytesPerElement = 20, X("StructArrayLayout10ui20", Zi);
+ var Bn = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr) {
+ var oi = this.length;
+ return this.resize(oi + 1), this.emplace(oi, V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi) {
+ var Hi = V * 12;
+ return this.int16[Hi + 0] = $, this.int16[Hi + 1] = ae, this.int16[Hi + 2] = he, this.int16[Hi + 3] = ze, this.uint16[Hi + 4] = rt, this.uint16[Hi + 5] = gt, this.uint16[Hi + 6] = Et, this.uint16[Hi + 7] = or, this.int16[Hi + 8] = _r, this.int16[Hi + 9] = pr, this.int16[Hi + 10] = Fr, this.int16[Hi + 11] = oi, V;
+ }, y;
+ }(en);
+ Bn.prototype.bytesPerElement = 24, X("StructArrayLayout4i4ui4i24", Bn);
+ var hi = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae) {
+ var he = this.length;
+ return this.resize(he + 1), this.emplace(he, V, $, ae);
+ }, y.prototype.emplace = function(V, $, ae, he) {
+ var ze = V * 3;
+ return this.float32[ze + 0] = $, this.float32[ze + 1] = ae, this.float32[ze + 2] = he, V;
+ }, y;
+ }(en);
+ hi.prototype.bytesPerElement = 12, X("StructArrayLayout3f12", hi);
+ var li = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V) {
+ var $ = this.length;
+ return this.resize($ + 1), this.emplace($, V);
+ }, y.prototype.emplace = function(V, $) {
+ var ae = V * 1;
+ return this.uint32[ae + 0] = $, V;
+ }, y;
+ }(en);
+ li.prototype.bytesPerElement = 4, X("StructArrayLayout1ul4", li);
+ var mn = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze, rt, gt, Et, or) {
+ var _r = this.length;
+ return this.resize(_r + 1), this.emplace(_r, V, $, ae, he, ze, rt, gt, Et, or);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt, gt, Et, or, _r) {
+ var pr = V * 10, Fr = V * 5;
+ return this.int16[pr + 0] = $, this.int16[pr + 1] = ae, this.int16[pr + 2] = he, this.int16[pr + 3] = ze, this.int16[pr + 4] = rt, this.int16[pr + 5] = gt, this.uint32[Fr + 3] = Et, this.uint16[pr + 8] = or, this.uint16[pr + 9] = _r, V;
+ }, y;
+ }(en);
+ mn.prototype.bytesPerElement = 20, X("StructArrayLayout6i1ul2ui20", mn);
+ var Ji = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze, rt) {
+ var gt = this.length;
+ return this.resize(gt + 1), this.emplace(gt, V, $, ae, he, ze, rt);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt, gt) {
+ var Et = V * 6;
+ return this.int16[Et + 0] = $, this.int16[Et + 1] = ae, this.int16[Et + 2] = he, this.int16[Et + 3] = ze, this.int16[Et + 4] = rt, this.int16[Et + 5] = gt, V;
+ }, y;
+ }(en);
+ Ji.prototype.bytesPerElement = 12, X("StructArrayLayout2i2i2i12", Ji);
+ var Vi = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze) {
+ var rt = this.length;
+ return this.resize(rt + 1), this.emplace(rt, V, $, ae, he, ze);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt) {
+ var gt = V * 4, Et = V * 8;
+ return this.float32[gt + 0] = $, this.float32[gt + 1] = ae, this.float32[gt + 2] = he, this.int16[Et + 6] = ze, this.int16[Et + 7] = rt, V;
+ }, y;
+ }(en);
+ Vi.prototype.bytesPerElement = 16, X("StructArrayLayout2f1f2i16", Vi);
+ var Ni = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he) {
+ var ze = this.length;
+ return this.resize(ze + 1), this.emplace(ze, V, $, ae, he);
+ }, y.prototype.emplace = function(V, $, ae, he, ze) {
+ var rt = V * 12, gt = V * 3;
+ return this.uint8[rt + 0] = $, this.uint8[rt + 1] = ae, this.float32[gt + 1] = he, this.float32[gt + 2] = ze, V;
+ }, y;
+ }(en);
+ Ni.prototype.bytesPerElement = 12, X("StructArrayLayout2ub2f12", Ni);
+ var pn = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae) {
+ var he = this.length;
+ return this.resize(he + 1), this.emplace(he, V, $, ae);
+ }, y.prototype.emplace = function(V, $, ae, he) {
+ var ze = V * 3;
+ return this.uint16[ze + 0] = $, this.uint16[ze + 1] = ae, this.uint16[ze + 2] = he, V;
+ }, y;
+ }(en);
+ pn.prototype.bytesPerElement = 6, X("StructArrayLayout3ui6", pn);
+ var Vn = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi, Hi, Ai, bn, nn) {
+ var xn = this.length;
+ return this.resize(xn + 1), this.emplace(xn, V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi, Hi, Ai, bn, nn);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi, Hi, Ai, bn, nn, xn) {
+ var Pn = V * 24, Zn = V * 12, ga = V * 48;
+ return this.int16[Pn + 0] = $, this.int16[Pn + 1] = ae, this.uint16[Pn + 2] = he, this.uint16[Pn + 3] = ze, this.uint32[Zn + 2] = rt, this.uint32[Zn + 3] = gt, this.uint32[Zn + 4] = Et, this.uint16[Pn + 10] = or, this.uint16[Pn + 11] = _r, this.uint16[Pn + 12] = pr, this.float32[Zn + 7] = Fr, this.float32[Zn + 8] = oi, this.uint8[ga + 36] = Hi, this.uint8[ga + 37] = Ai, this.uint8[ga + 38] = bn, this.uint32[Zn + 10] = nn, this.int16[Pn + 22] = xn, V;
+ }, y;
+ }(en);
+ Vn.prototype.bytesPerElement = 48, X("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", Vn);
+ var na = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi, Hi, Ai, bn, nn, xn, Pn, Zn, ga, ha, eo, za, Za, Jo, to, ao) {
+ var _s = this.length;
+ return this.resize(_s + 1), this.emplace(_s, V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi, Hi, Ai, bn, nn, xn, Pn, Zn, ga, ha, eo, za, Za, Jo, to, ao);
+ }, y.prototype.emplace = function(V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi, Hi, Ai, bn, nn, xn, Pn, Zn, ga, ha, eo, za, Za, Jo, to, ao, _s) {
+ var jo = V * 34, El = V * 17;
+ return this.int16[jo + 0] = $, this.int16[jo + 1] = ae, this.int16[jo + 2] = he, this.int16[jo + 3] = ze, this.int16[jo + 4] = rt, this.int16[jo + 5] = gt, this.int16[jo + 6] = Et, this.int16[jo + 7] = or, this.uint16[jo + 8] = _r, this.uint16[jo + 9] = pr, this.uint16[jo + 10] = Fr, this.uint16[jo + 11] = oi, this.uint16[jo + 12] = Hi, this.uint16[jo + 13] = Ai, this.uint16[jo + 14] = bn, this.uint16[jo + 15] = nn, this.uint16[jo + 16] = xn, this.uint16[jo + 17] = Pn, this.uint16[jo + 18] = Zn, this.uint16[jo + 19] = ga, this.uint16[jo + 20] = ha, this.uint16[jo + 21] = eo, this.uint16[jo + 22] = za, this.uint32[El + 12] = Za, this.float32[El + 13] = Jo, this.float32[El + 14] = to, this.float32[El + 15] = ao, this.float32[El + 16] = _s, V;
+ }, y;
+ }(en);
+ na.prototype.bytesPerElement = 68, X("StructArrayLayout8i15ui1ul4f68", na);
+ var Ki = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V) {
+ var $ = this.length;
+ return this.resize($ + 1), this.emplace($, V);
+ }, y.prototype.emplace = function(V, $) {
+ var ae = V * 1;
+ return this.float32[ae + 0] = $, V;
+ }, y;
+ }(en);
+ Ki.prototype.bytesPerElement = 4, X("StructArrayLayout1f4", Ki);
+ var kn = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae) {
+ var he = this.length;
+ return this.resize(he + 1), this.emplace(he, V, $, ae);
+ }, y.prototype.emplace = function(V, $, ae, he) {
+ var ze = V * 3;
+ return this.int16[ze + 0] = $, this.int16[ze + 1] = ae, this.int16[ze + 2] = he, V;
+ }, y;
+ }(en);
+ kn.prototype.bytesPerElement = 6, X("StructArrayLayout3i6", kn);
+ var ta = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae) {
+ var he = this.length;
+ return this.resize(he + 1), this.emplace(he, V, $, ae);
+ }, y.prototype.emplace = function(V, $, ae, he) {
+ var ze = V * 2, rt = V * 4;
+ return this.uint32[ze + 0] = $, this.uint16[rt + 2] = ae, this.uint16[rt + 3] = he, V;
+ }, y;
+ }(en);
+ ta.prototype.bytesPerElement = 8, X("StructArrayLayout1ul2ui8", ta);
+ var oa = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $) {
+ var ae = this.length;
+ return this.resize(ae + 1), this.emplace(ae, V, $);
+ }, y.prototype.emplace = function(V, $, ae) {
+ var he = V * 2;
+ return this.uint16[he + 0] = $, this.uint16[he + 1] = ae, V;
+ }, y;
+ }(en);
+ oa.prototype.bytesPerElement = 4, X("StructArrayLayout2ui4", oa);
+ var ba = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V) {
+ var $ = this.length;
+ return this.resize($ + 1), this.emplace($, V);
+ }, y.prototype.emplace = function(V, $) {
+ var ae = V * 1;
+ return this.uint16[ae + 0] = $, V;
+ }, y;
+ }(en);
+ ba.prototype.bytesPerElement = 2, X("StructArrayLayout1ui2", ba);
+ var is = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._refreshViews = function() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }, y.prototype.emplaceBack = function(V, $, ae, he) {
+ var ze = this.length;
+ return this.resize(ze + 1), this.emplace(ze, V, $, ae, he);
+ }, y.prototype.emplace = function(V, $, ae, he, ze) {
+ var rt = V * 4;
+ return this.float32[rt + 0] = $, this.float32[rt + 1] = ae, this.float32[rt + 2] = he, this.float32[rt + 3] = ze, V;
+ }, y;
+ }(en);
+ is.prototype.bytesPerElement = 16, X("StructArrayLayout4f16", is);
+ var Zs = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y;
+ var I = { anchorPointX: { configurable: true }, anchorPointY: { configurable: true }, x1: { configurable: true }, y1: { configurable: true }, x2: { configurable: true }, y2: { configurable: true }, featureIndex: { configurable: true }, sourceLayerIndex: { configurable: true }, bucketIndex: { configurable: true }, anchorPoint: { configurable: true } };
+ return I.anchorPointX.get = function() {
+ return this._structArray.int16[this._pos2 + 0];
+ }, I.anchorPointY.get = function() {
+ return this._structArray.int16[this._pos2 + 1];
+ }, I.x1.get = function() {
+ return this._structArray.int16[this._pos2 + 2];
+ }, I.y1.get = function() {
+ return this._structArray.int16[this._pos2 + 3];
+ }, I.x2.get = function() {
+ return this._structArray.int16[this._pos2 + 4];
+ }, I.y2.get = function() {
+ return this._structArray.int16[this._pos2 + 5];
+ }, I.featureIndex.get = function() {
+ return this._structArray.uint32[this._pos4 + 3];
+ }, I.sourceLayerIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 8];
+ }, I.bucketIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 9];
+ }, I.anchorPoint.get = function() {
+ return new u(this.anchorPointX, this.anchorPointY);
+ }, Object.defineProperties(y.prototype, I), y;
+ }(qi);
+ Zs.prototype.size = 20;
+ var Va = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.get = function(V) {
+ return new Zs(this, V);
+ }, y;
+ }(mn);
+ X("CollisionBoxArray", Va);
+ var Ml = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y;
+ var I = { anchorX: { configurable: true }, anchorY: { configurable: true }, glyphStartIndex: { configurable: true }, numGlyphs: { configurable: true }, vertexStartIndex: { configurable: true }, lineStartIndex: { configurable: true }, lineLength: { configurable: true }, segment: { configurable: true }, lowerSize: { configurable: true }, upperSize: { configurable: true }, lineOffsetX: { configurable: true }, lineOffsetY: { configurable: true }, writingMode: { configurable: true }, placedOrientation: { configurable: true }, hidden: { configurable: true }, crossTileID: { configurable: true }, associatedIconIndex: { configurable: true } };
+ return I.anchorX.get = function() {
+ return this._structArray.int16[this._pos2 + 0];
+ }, I.anchorY.get = function() {
+ return this._structArray.int16[this._pos2 + 1];
+ }, I.glyphStartIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 2];
+ }, I.numGlyphs.get = function() {
+ return this._structArray.uint16[this._pos2 + 3];
+ }, I.vertexStartIndex.get = function() {
+ return this._structArray.uint32[this._pos4 + 2];
+ }, I.lineStartIndex.get = function() {
+ return this._structArray.uint32[this._pos4 + 3];
+ }, I.lineLength.get = function() {
+ return this._structArray.uint32[this._pos4 + 4];
+ }, I.segment.get = function() {
+ return this._structArray.uint16[this._pos2 + 10];
+ }, I.lowerSize.get = function() {
+ return this._structArray.uint16[this._pos2 + 11];
+ }, I.upperSize.get = function() {
+ return this._structArray.uint16[this._pos2 + 12];
+ }, I.lineOffsetX.get = function() {
+ return this._structArray.float32[this._pos4 + 7];
+ }, I.lineOffsetY.get = function() {
+ return this._structArray.float32[this._pos4 + 8];
+ }, I.writingMode.get = function() {
+ return this._structArray.uint8[this._pos1 + 36];
+ }, I.placedOrientation.get = function() {
+ return this._structArray.uint8[this._pos1 + 37];
+ }, I.placedOrientation.set = function(V) {
+ this._structArray.uint8[this._pos1 + 37] = V;
+ }, I.hidden.get = function() {
+ return this._structArray.uint8[this._pos1 + 38];
+ }, I.hidden.set = function(V) {
+ this._structArray.uint8[this._pos1 + 38] = V;
+ }, I.crossTileID.get = function() {
+ return this._structArray.uint32[this._pos4 + 10];
+ }, I.crossTileID.set = function(V) {
+ this._structArray.uint32[this._pos4 + 10] = V;
+ }, I.associatedIconIndex.get = function() {
+ return this._structArray.int16[this._pos2 + 22];
+ }, Object.defineProperties(y.prototype, I), y;
+ }(qi);
+ Ml.prototype.size = 48;
+ var zo = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.get = function(V) {
+ return new Ml(this, V);
+ }, y;
+ }(Vn);
+ X("PlacedSymbolArray", zo);
+ var Qs = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y;
+ var I = { anchorX: { configurable: true }, anchorY: { configurable: true }, rightJustifiedTextSymbolIndex: { configurable: true }, centerJustifiedTextSymbolIndex: { configurable: true }, leftJustifiedTextSymbolIndex: { configurable: true }, verticalPlacedTextSymbolIndex: { configurable: true }, placedIconSymbolIndex: { configurable: true }, verticalPlacedIconSymbolIndex: { configurable: true }, key: { configurable: true }, textBoxStartIndex: { configurable: true }, textBoxEndIndex: { configurable: true }, verticalTextBoxStartIndex: { configurable: true }, verticalTextBoxEndIndex: { configurable: true }, iconBoxStartIndex: { configurable: true }, iconBoxEndIndex: { configurable: true }, verticalIconBoxStartIndex: { configurable: true }, verticalIconBoxEndIndex: { configurable: true }, featureIndex: { configurable: true }, numHorizontalGlyphVertices: { configurable: true }, numVerticalGlyphVertices: { configurable: true }, numIconVertices: { configurable: true }, numVerticalIconVertices: { configurable: true }, useRuntimeCollisionCircles: { configurable: true }, crossTileID: { configurable: true }, textBoxScale: { configurable: true }, textOffset0: { configurable: true }, textOffset1: { configurable: true }, collisionCircleDiameter: { configurable: true } };
+ return I.anchorX.get = function() {
+ return this._structArray.int16[this._pos2 + 0];
+ }, I.anchorY.get = function() {
+ return this._structArray.int16[this._pos2 + 1];
+ }, I.rightJustifiedTextSymbolIndex.get = function() {
+ return this._structArray.int16[this._pos2 + 2];
+ }, I.centerJustifiedTextSymbolIndex.get = function() {
+ return this._structArray.int16[this._pos2 + 3];
+ }, I.leftJustifiedTextSymbolIndex.get = function() {
+ return this._structArray.int16[this._pos2 + 4];
+ }, I.verticalPlacedTextSymbolIndex.get = function() {
+ return this._structArray.int16[this._pos2 + 5];
+ }, I.placedIconSymbolIndex.get = function() {
+ return this._structArray.int16[this._pos2 + 6];
+ }, I.verticalPlacedIconSymbolIndex.get = function() {
+ return this._structArray.int16[this._pos2 + 7];
+ }, I.key.get = function() {
+ return this._structArray.uint16[this._pos2 + 8];
+ }, I.textBoxStartIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 9];
+ }, I.textBoxEndIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 10];
+ }, I.verticalTextBoxStartIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 11];
+ }, I.verticalTextBoxEndIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 12];
+ }, I.iconBoxStartIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 13];
+ }, I.iconBoxEndIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 14];
+ }, I.verticalIconBoxStartIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 15];
+ }, I.verticalIconBoxEndIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 16];
+ }, I.featureIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 17];
+ }, I.numHorizontalGlyphVertices.get = function() {
+ return this._structArray.uint16[this._pos2 + 18];
+ }, I.numVerticalGlyphVertices.get = function() {
+ return this._structArray.uint16[this._pos2 + 19];
+ }, I.numIconVertices.get = function() {
+ return this._structArray.uint16[this._pos2 + 20];
+ }, I.numVerticalIconVertices.get = function() {
+ return this._structArray.uint16[this._pos2 + 21];
+ }, I.useRuntimeCollisionCircles.get = function() {
+ return this._structArray.uint16[this._pos2 + 22];
+ }, I.crossTileID.get = function() {
+ return this._structArray.uint32[this._pos4 + 12];
+ }, I.crossTileID.set = function(V) {
+ this._structArray.uint32[this._pos4 + 12] = V;
+ }, I.textBoxScale.get = function() {
+ return this._structArray.float32[this._pos4 + 13];
+ }, I.textOffset0.get = function() {
+ return this._structArray.float32[this._pos4 + 14];
+ }, I.textOffset1.get = function() {
+ return this._structArray.float32[this._pos4 + 15];
+ }, I.collisionCircleDiameter.get = function() {
+ return this._structArray.float32[this._pos4 + 16];
+ }, Object.defineProperties(y.prototype, I), y;
+ }(qi);
+ Qs.prototype.size = 68;
+ var al = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.get = function(V) {
+ return new Qs(this, V);
+ }, y;
+ }(na);
+ X("SymbolInstanceArray", al);
+ var Vl = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.getoffsetX = function(V) {
+ return this.float32[V * 1 + 0];
+ }, y;
+ }(Ki);
+ X("GlyphOffsetArray", Vl);
+ var ss = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.getx = function(V) {
+ return this.int16[V * 3 + 0];
+ }, y.prototype.gety = function(V) {
+ return this.int16[V * 3 + 1];
+ }, y.prototype.gettileUnitDistanceFromAnchor = function(V) {
+ return this.int16[V * 3 + 2];
+ }, y;
+ }(kn);
+ X("SymbolLineVertexArray", ss);
+ var Vs = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y;
+ var I = { featureIndex: { configurable: true }, sourceLayerIndex: { configurable: true }, bucketIndex: { configurable: true } };
+ return I.featureIndex.get = function() {
+ return this._structArray.uint32[this._pos4 + 0];
+ }, I.sourceLayerIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 2];
+ }, I.bucketIndex.get = function() {
+ return this._structArray.uint16[this._pos2 + 3];
+ }, Object.defineProperties(y.prototype, I), y;
+ }(qi);
+ Vs.prototype.size = 8;
+ var Ys = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.get = function(V) {
+ return new Vs(this, V);
+ }, y;
+ }(ta);
+ X("FeatureIndexArray", Ys);
+ var wa = Wi([{ name: "a_pos", components: 2, type: "Int16" }], 4), ol = wa.members, io = function(y) {
+ y === void 0 && (y = []), this.segments = y;
+ };
+ io.prototype.prepareSegment = function(y, I, V, $) {
+ var ae = this.segments[this.segments.length - 1];
+ return y > io.MAX_VERTEX_ARRAY_LENGTH && re("Max vertices per segment is " + io.MAX_VERTEX_ARRAY_LENGTH + ": bucket requested " + y), (!ae || ae.vertexLength + y > io.MAX_VERTEX_ARRAY_LENGTH || ae.sortKey !== $) && (ae = { vertexOffset: I.length, primitiveOffset: V.length, vertexLength: 0, primitiveLength: 0 }, $ !== void 0 && (ae.sortKey = $), this.segments.push(ae)), ae;
+ }, io.prototype.get = function() {
+ return this.segments;
+ }, io.prototype.destroy = function() {
+ for (var y = 0, I = this.segments; y < I.length; y += 1) {
+ var V = I[y];
+ for (var $ in V.vaos) V.vaos[$].destroy();
+ }
+ }, io.simpleSegment = function(y, I, V, $) {
+ return new io([{ vertexOffset: y, primitiveOffset: I, vertexLength: V, primitiveLength: $, vaos: {}, sortKey: 0 }]);
+ }, io.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, X("SegmentVector", io);
+ function Y(m, y) {
+ return m = p(Math.floor(m), 0, 255), y = p(Math.floor(y), 0, 255), 256 * m + y;
+ }
+ var D = Wi([{ name: "a_pattern_from", components: 4, type: "Uint16" }, { name: "a_pattern_to", components: 4, type: "Uint16" }, { name: "a_pixel_ratio_from", components: 1, type: "Uint16" }, { name: "a_pixel_ratio_to", components: 1, type: "Uint16" }]), J = a(function(m) {
+ function y(I, V) {
+ var $, ae, he, ze, rt, gt, Et, or;
+ for ($ = I.length & 3, ae = I.length - $, he = V, rt = 3432918353, gt = 461845907, or = 0; or < ae; ) Et = I.charCodeAt(or) & 255 | (I.charCodeAt(++or) & 255) << 8 | (I.charCodeAt(++or) & 255) << 16 | (I.charCodeAt(++or) & 255) << 24, ++or, Et = (Et & 65535) * rt + (((Et >>> 16) * rt & 65535) << 16) & 4294967295, Et = Et << 15 | Et >>> 17, Et = (Et & 65535) * gt + (((Et >>> 16) * gt & 65535) << 16) & 4294967295, he ^= Et, he = he << 13 | he >>> 19, ze = (he & 65535) * 5 + (((he >>> 16) * 5 & 65535) << 16) & 4294967295, he = (ze & 65535) + 27492 + (((ze >>> 16) + 58964 & 65535) << 16);
+ switch (Et = 0, $) {
+ case 3:
+ Et ^= (I.charCodeAt(or + 2) & 255) << 16;
+ case 2:
+ Et ^= (I.charCodeAt(or + 1) & 255) << 8;
+ case 1:
+ Et ^= I.charCodeAt(or) & 255, Et = (Et & 65535) * rt + (((Et >>> 16) * rt & 65535) << 16) & 4294967295, Et = Et << 15 | Et >>> 17, Et = (Et & 65535) * gt + (((Et >>> 16) * gt & 65535) << 16) & 4294967295, he ^= Et;
+ }
+ return he ^= I.length, he ^= he >>> 16, he = (he & 65535) * 2246822507 + (((he >>> 16) * 2246822507 & 65535) << 16) & 4294967295, he ^= he >>> 13, he = (he & 65535) * 3266489909 + (((he >>> 16) * 3266489909 & 65535) << 16) & 4294967295, he ^= he >>> 16, he >>> 0;
+ }
+ m.exports = y;
+ }), q = a(function(m) {
+ function y(I, V) {
+ for (var $ = I.length, ae = V ^ $, he = 0, ze; $ >= 4; ) ze = I.charCodeAt(he) & 255 | (I.charCodeAt(++he) & 255) << 8 | (I.charCodeAt(++he) & 255) << 16 | (I.charCodeAt(++he) & 255) << 24, ze = (ze & 65535) * 1540483477 + (((ze >>> 16) * 1540483477 & 65535) << 16), ze ^= ze >>> 24, ze = (ze & 65535) * 1540483477 + (((ze >>> 16) * 1540483477 & 65535) << 16), ae = (ae & 65535) * 1540483477 + (((ae >>> 16) * 1540483477 & 65535) << 16) ^ ze, $ -= 4, ++he;
+ switch ($) {
+ case 3:
+ ae ^= (I.charCodeAt(he + 2) & 255) << 16;
+ case 2:
+ ae ^= (I.charCodeAt(he + 1) & 255) << 8;
+ case 1:
+ ae ^= I.charCodeAt(he) & 255, ae = (ae & 65535) * 1540483477 + (((ae >>> 16) * 1540483477 & 65535) << 16);
+ }
+ return ae ^= ae >>> 13, ae = (ae & 65535) * 1540483477 + (((ae >>> 16) * 1540483477 & 65535) << 16), ae ^= ae >>> 15, ae >>> 0;
+ }
+ m.exports = y;
+ }), K = J, de = J, ne = q;
+ K.murmur3 = de, K.murmur2 = ne;
+ var we = function() {
+ this.ids = [], this.positions = [], this.indexed = false;
+ };
+ we.prototype.add = function(y, I, V, $) {
+ this.ids.push(ft(y)), this.positions.push(I, V, $);
+ }, we.prototype.getPositions = function(y) {
+ for (var I = ft(y), V = 0, $ = this.ids.length - 1; V < $; ) {
+ var ae = V + $ >> 1;
+ this.ids[ae] >= I ? $ = ae : V = ae + 1;
+ }
+ for (var he = []; this.ids[V] === I; ) {
+ var ze = this.positions[3 * V], rt = this.positions[3 * V + 1], gt = this.positions[3 * V + 2];
+ he.push({ index: ze, start: rt, end: gt }), V++;
+ }
+ return he;
+ }, we.serialize = function(y, I) {
+ var V = new Float64Array(y.ids), $ = new Uint32Array(y.positions);
+ return Zt(V, $, 0, V.length - 1), I && I.push(V.buffer, $.buffer), { ids: V, positions: $ };
+ }, we.deserialize = function(y) {
+ var I = new we();
+ return I.ids = y.ids, I.positions = y.positions, I.indexed = true, I;
+ };
+ var Ue = Math.pow(2, 53) - 1;
+ function ft(m) {
+ var y = +m;
+ return !isNaN(y) && y <= Ue ? y : K(String(m));
+ }
+ function Zt(m, y, I, V) {
+ for (; I < V; ) {
+ for (var $ = m[I + V >> 1], ae = I - 1, he = V + 1; ; ) {
+ do
+ ae++;
+ while (m[ae] < $);
+ do
+ he--;
+ while (m[he] > $);
+ if (ae >= he) break;
+ hr(m, ae, he), hr(y, 3 * ae, 3 * he), hr(y, 3 * ae + 1, 3 * he + 1), hr(y, 3 * ae + 2, 3 * he + 2);
+ }
+ he - I < V - he ? (Zt(m, y, I, he), I = he + 1) : (Zt(m, y, he + 1, V), V = he);
+ }
+ }
+ function hr(m, y, I) {
+ var V = m[y];
+ m[y] = m[I], m[I] = V;
+ }
+ X("FeaturePositionMap", we);
+ var qt = function(y, I) {
+ this.gl = y.gl, this.location = I;
+ }, Ve = function(m) {
+ function y(I, V) {
+ m.call(this, I, V), this.current = 0;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.set = function(V) {
+ this.current !== V && (this.current = V, this.gl.uniform1i(this.location, V));
+ }, y;
+ }(qt), Qe = function(m) {
+ function y(I, V) {
+ m.call(this, I, V), this.current = 0;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.set = function(V) {
+ this.current !== V && (this.current = V, this.gl.uniform1f(this.location, V));
+ }, y;
+ }(qt), at = function(m) {
+ function y(I, V) {
+ m.call(this, I, V), this.current = [0, 0];
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.set = function(V) {
+ (V[0] !== this.current[0] || V[1] !== this.current[1]) && (this.current = V, this.gl.uniform2f(this.location, V[0], V[1]));
+ }, y;
+ }(qt), Ct = function(m) {
+ function y(I, V) {
+ m.call(this, I, V), this.current = [0, 0, 0];
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.set = function(V) {
+ (V[0] !== this.current[0] || V[1] !== this.current[1] || V[2] !== this.current[2]) && (this.current = V, this.gl.uniform3f(this.location, V[0], V[1], V[2]));
+ }, y;
+ }(qt), Ot = function(m) {
+ function y(I, V) {
+ m.call(this, I, V), this.current = [0, 0, 0, 0];
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.set = function(V) {
+ (V[0] !== this.current[0] || V[1] !== this.current[1] || V[2] !== this.current[2] || V[3] !== this.current[3]) && (this.current = V, this.gl.uniform4f(this.location, V[0], V[1], V[2], V[3]));
+ }, y;
+ }(qt), Rt = function(m) {
+ function y(I, V) {
+ m.call(this, I, V), this.current = cs.transparent;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.set = function(V) {
+ (V.r !== this.current.r || V.g !== this.current.g || V.b !== this.current.b || V.a !== this.current.a) && (this.current = V, this.gl.uniform4f(this.location, V.r, V.g, V.b, V.a));
+ }, y;
+ }(qt), Bt = new Float32Array(16), Dt = function(m) {
+ function y(I, V) {
+ m.call(this, I, V), this.current = Bt;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.set = function(V) {
+ if (V[12] !== this.current[12] || V[0] !== this.current[0]) {
+ this.current = V, this.gl.uniformMatrix4fv(this.location, false, V);
+ return;
+ }
+ for (var $ = 1; $ < 16; $++) if (V[$] !== this.current[$]) {
+ this.current = V, this.gl.uniformMatrix4fv(this.location, false, V);
+ break;
+ }
+ }, y;
+ }(qt);
+ function yt(m) {
+ return [Y(255 * m.r, 255 * m.g), Y(255 * m.b, 255 * m.a)];
+ }
+ var Pt = function(y, I, V) {
+ this.value = y, this.uniformNames = I.map(function($) {
+ return "u_" + $;
+ }), this.type = V;
+ };
+ Pt.prototype.setUniform = function(y, I, V) {
+ y.set(V.constantOr(this.value));
+ }, Pt.prototype.getBinding = function(y, I, V) {
+ return this.type === "color" ? new Rt(y, I) : new Qe(y, I);
+ };
+ var ht = function(y, I) {
+ this.uniformNames = I.map(function(V) {
+ return "u_" + V;
+ }), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1;
+ };
+ ht.prototype.setConstantPatternPositions = function(y, I) {
+ this.pixelRatioFrom = I.pixelRatio, this.pixelRatioTo = y.pixelRatio, this.patternFrom = I.tlbr, this.patternTo = y.tlbr;
+ }, ht.prototype.setUniform = function(y, I, V, $) {
+ var ae = $ === "u_pattern_to" ? this.patternTo : $ === "u_pattern_from" ? this.patternFrom : $ === "u_pixel_ratio_to" ? this.pixelRatioTo : $ === "u_pixel_ratio_from" ? this.pixelRatioFrom : null;
+ ae && y.set(ae);
+ }, ht.prototype.getBinding = function(y, I, V) {
+ return V.substr(0, 9) === "u_pattern" ? new Ot(y, I) : new Qe(y, I);
+ };
+ var ur = function(y, I, V, $) {
+ this.expression = y, this.type = V, this.maxValue = 0, this.paintVertexAttributes = I.map(function(ae) {
+ return { name: "a_" + ae, type: "Float32", components: V === "color" ? 2 : 1, offset: 0 };
+ }), this.paintVertexArray = new $();
+ };
+ ur.prototype.populatePaintArray = function(y, I, V, $, ae) {
+ var he = this.paintVertexArray.length, ze = this.expression.evaluate(new Gn(0), I, {}, $, [], ae);
+ this.paintVertexArray.resize(y), this._setPaintValue(he, y, ze);
+ }, ur.prototype.updatePaintArray = function(y, I, V, $) {
+ var ae = this.expression.evaluate({ zoom: 0 }, V, $);
+ this._setPaintValue(y, I, ae);
+ }, ur.prototype._setPaintValue = function(y, I, V) {
+ if (this.type === "color") for (var $ = yt(V), ae = y; ae < I; ae++) this.paintVertexArray.emplace(ae, $[0], $[1]);
+ else {
+ for (var he = y; he < I; he++) this.paintVertexArray.emplace(he, V);
+ this.maxValue = Math.max(this.maxValue, Math.abs(V));
+ }
+ }, ur.prototype.upload = function(y) {
+ this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = y.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent));
+ }, ur.prototype.destroy = function() {
+ this.paintVertexBuffer && this.paintVertexBuffer.destroy();
+ };
+ var br = function(y, I, V, $, ae, he) {
+ this.expression = y, this.uniformNames = I.map(function(ze) {
+ return "u_" + ze + "_t";
+ }), this.type = V, this.useIntegerZoom = $, this.zoom = ae, this.maxValue = 0, this.paintVertexAttributes = I.map(function(ze) {
+ return { name: "a_" + ze, type: "Float32", components: V === "color" ? 4 : 2, offset: 0 };
+ }), this.paintVertexArray = new he();
+ };
+ br.prototype.populatePaintArray = function(y, I, V, $, ae) {
+ var he = this.expression.evaluate(new Gn(this.zoom), I, {}, $, [], ae), ze = this.expression.evaluate(new Gn(this.zoom + 1), I, {}, $, [], ae), rt = this.paintVertexArray.length;
+ this.paintVertexArray.resize(y), this._setPaintValue(rt, y, he, ze);
+ }, br.prototype.updatePaintArray = function(y, I, V, $) {
+ var ae = this.expression.evaluate({ zoom: this.zoom }, V, $), he = this.expression.evaluate({ zoom: this.zoom + 1 }, V, $);
+ this._setPaintValue(y, I, ae, he);
+ }, br.prototype._setPaintValue = function(y, I, V, $) {
+ if (this.type === "color") for (var ae = yt(V), he = yt($), ze = y; ze < I; ze++) this.paintVertexArray.emplace(ze, ae[0], ae[1], he[0], he[1]);
+ else {
+ for (var rt = y; rt < I; rt++) this.paintVertexArray.emplace(rt, V, $);
+ this.maxValue = Math.max(this.maxValue, Math.abs(V), Math.abs($));
+ }
+ }, br.prototype.upload = function(y) {
+ this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = y.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent));
+ }, br.prototype.destroy = function() {
+ this.paintVertexBuffer && this.paintVertexBuffer.destroy();
+ }, br.prototype.setUniform = function(y, I) {
+ var V = this.useIntegerZoom ? Math.floor(I.zoom) : I.zoom, $ = p(this.expression.interpolationFactor(V, this.zoom, this.zoom + 1), 0, 1);
+ y.set($);
+ }, br.prototype.getBinding = function(y, I, V) {
+ return new Qe(y, I);
+ };
+ var Ur = function(y, I, V, $, ae, he) {
+ this.expression = y, this.type = I, this.useIntegerZoom = V, this.zoom = $, this.layerId = he, this.zoomInPaintVertexArray = new ae(), this.zoomOutPaintVertexArray = new ae();
+ };
+ Ur.prototype.populatePaintArray = function(y, I, V) {
+ var $ = this.zoomInPaintVertexArray.length;
+ this.zoomInPaintVertexArray.resize(y), this.zoomOutPaintVertexArray.resize(y), this._setPaintValues($, y, I.patterns && I.patterns[this.layerId], V);
+ }, Ur.prototype.updatePaintArray = function(y, I, V, $, ae) {
+ this._setPaintValues(y, I, V.patterns && V.patterns[this.layerId], ae);
+ }, Ur.prototype._setPaintValues = function(y, I, V, $) {
+ if (!(!$ || !V)) {
+ var ae = V.min, he = V.mid, ze = V.max, rt = $[ae], gt = $[he], Et = $[ze];
+ if (!(!rt || !gt || !Et)) for (var or = y; or < I; or++) this.zoomInPaintVertexArray.emplace(or, gt.tl[0], gt.tl[1], gt.br[0], gt.br[1], rt.tl[0], rt.tl[1], rt.br[0], rt.br[1], gt.pixelRatio, rt.pixelRatio), this.zoomOutPaintVertexArray.emplace(or, gt.tl[0], gt.tl[1], gt.br[0], gt.br[1], Et.tl[0], Et.tl[1], Et.br[0], Et.br[1], gt.pixelRatio, Et.pixelRatio);
+ }
+ }, Ur.prototype.upload = function(y) {
+ this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = y.createVertexBuffer(this.zoomInPaintVertexArray, D.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = y.createVertexBuffer(this.zoomOutPaintVertexArray, D.members, this.expression.isStateDependent));
+ }, Ur.prototype.destroy = function() {
+ this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy();
+ };
+ var Di = function(y, I, V) {
+ this.binders = {}, this._buffers = [];
+ var $ = [];
+ for (var ae in y.paint._values) if (V(ae)) {
+ var he = y.paint.get(ae);
+ if (!(!(he instanceof dl) || !Ws(he.property.specification))) {
+ var ze = Ti(ae, y.type), rt = he.value, gt = he.property.specification.type, Et = he.property.useIntegerZoom, or = he.property.specification["property-type"], _r = or === "cross-faded" || or === "cross-faded-data-driven";
+ if (rt.kind === "constant") this.binders[ae] = _r ? new ht(rt.value, ze) : new Pt(rt.value, ze, gt), $.push("/u_" + ae);
+ else if (rt.kind === "source" || _r) {
+ var pr = rn(ae, gt, "source");
+ this.binders[ae] = _r ? new Ur(rt, gt, Et, I, pr, y.id) : new ur(rt, ze, gt, pr), $.push("/a_" + ae);
+ } else {
+ var Fr = rn(ae, gt, "composite");
+ this.binders[ae] = new br(rt, ze, gt, Et, I, Fr), $.push("/z_" + ae);
+ }
+ }
+ }
+ this.cacheKey = $.sort().join("");
+ };
+ Di.prototype.getMaxValue = function(y) {
+ var I = this.binders[y];
+ return I instanceof ur || I instanceof br ? I.maxValue : 0;
+ }, Di.prototype.populatePaintArrays = function(y, I, V, $, ae) {
+ for (var he in this.binders) {
+ var ze = this.binders[he];
+ (ze instanceof ur || ze instanceof br || ze instanceof Ur) && ze.populatePaintArray(y, I, V, $, ae);
+ }
+ }, Di.prototype.setConstantPatternPositions = function(y, I) {
+ for (var V in this.binders) {
+ var $ = this.binders[V];
+ $ instanceof ht && $.setConstantPatternPositions(y, I);
+ }
+ }, Di.prototype.updatePaintArrays = function(y, I, V, $, ae) {
+ var he = false;
+ for (var ze in y) for (var rt = I.getPositions(ze), gt = 0, Et = rt; gt < Et.length; gt += 1) {
+ var or = Et[gt], _r = V.feature(or.index);
+ for (var pr in this.binders) {
+ var Fr = this.binders[pr];
+ if ((Fr instanceof ur || Fr instanceof br || Fr instanceof Ur) && Fr.expression.isStateDependent === true) {
+ var oi = $.paint.get(pr);
+ Fr.expression = oi.value, Fr.updatePaintArray(or.start, or.end, _r, y[ze], ae), he = true;
+ }
+ }
+ }
+ return he;
+ }, Di.prototype.defines = function() {
+ var y = [];
+ for (var I in this.binders) {
+ var V = this.binders[I];
+ (V instanceof Pt || V instanceof ht) && y.push.apply(y, V.uniformNames.map(function($) {
+ return "#define HAS_UNIFORM_" + $;
+ }));
+ }
+ return y;
+ }, Di.prototype.getBinderAttributes = function() {
+ var y = [];
+ for (var I in this.binders) {
+ var V = this.binders[I];
+ if (V instanceof ur || V instanceof br) for (var $ = 0; $ < V.paintVertexAttributes.length; $++) y.push(V.paintVertexAttributes[$].name);
+ else if (V instanceof Ur) for (var ae = 0; ae < D.members.length; ae++) y.push(D.members[ae].name);
+ }
+ return y;
+ }, Di.prototype.getBinderUniforms = function() {
+ var y = [];
+ for (var I in this.binders) {
+ var V = this.binders[I];
+ if (V instanceof Pt || V instanceof ht || V instanceof br) for (var $ = 0, ae = V.uniformNames; $ < ae.length; $ += 1) {
+ var he = ae[$];
+ y.push(he);
+ }
+ }
+ return y;
+ }, Di.prototype.getPaintVertexBuffers = function() {
+ return this._buffers;
+ }, Di.prototype.getUniforms = function(y, I) {
+ var V = [];
+ for (var $ in this.binders) {
+ var ae = this.binders[$];
+ if (ae instanceof Pt || ae instanceof ht || ae instanceof br) for (var he = 0, ze = ae.uniformNames; he < ze.length; he += 1) {
+ var rt = ze[he];
+ if (I[rt]) {
+ var gt = ae.getBinding(y, I[rt], rt);
+ V.push({ name: rt, property: $, binding: gt });
+ }
+ }
+ }
+ return V;
+ }, Di.prototype.setUniforms = function(y, I, V, $) {
+ for (var ae = 0, he = I; ae < he.length; ae += 1) {
+ var ze = he[ae], rt = ze.name, gt = ze.property, Et = ze.binding;
+ this.binders[gt].setUniform(Et, $, V.get(gt), rt);
+ }
+ }, Di.prototype.updatePaintBuffers = function(y) {
+ this._buffers = [];
+ for (var I in this.binders) {
+ var V = this.binders[I];
+ if (y && V instanceof Ur) {
+ var $ = y.fromScale === 2 ? V.zoomInPaintVertexBuffer : V.zoomOutPaintVertexBuffer;
+ $ && this._buffers.push($);
+ } else (V instanceof ur || V instanceof br) && V.paintVertexBuffer && this._buffers.push(V.paintVertexBuffer);
+ }
+ }, Di.prototype.upload = function(y) {
+ for (var I in this.binders) {
+ var V = this.binders[I];
+ (V instanceof ur || V instanceof br || V instanceof Ur) && V.upload(y);
+ }
+ this.updatePaintBuffers();
+ }, Di.prototype.destroy = function() {
+ for (var y in this.binders) {
+ var I = this.binders[y];
+ (I instanceof ur || I instanceof br || I instanceof Ur) && I.destroy();
+ }
+ };
+ var fi = function(y, I, V) {
+ V === void 0 && (V = function() {
+ return true;
+ }), this.programConfigurations = {};
+ for (var $ = 0, ae = y; $ < ae.length; $ += 1) {
+ var he = ae[$];
+ this.programConfigurations[he.id] = new Di(he, I, V);
+ }
+ this.needsUpload = false, this._featureMap = new we(), this._bufferOffset = 0;
+ };
+ fi.prototype.populatePaintArrays = function(y, I, V, $, ae, he) {
+ for (var ze in this.programConfigurations) this.programConfigurations[ze].populatePaintArrays(y, I, $, ae, he);
+ I.id !== void 0 && this._featureMap.add(I.id, V, this._bufferOffset, y), this._bufferOffset = y, this.needsUpload = true;
+ }, fi.prototype.updatePaintArrays = function(y, I, V, $) {
+ for (var ae = 0, he = V; ae < he.length; ae += 1) {
+ var ze = he[ae];
+ this.needsUpload = this.programConfigurations[ze.id].updatePaintArrays(y, this._featureMap, I, ze, $) || this.needsUpload;
+ }
+ }, fi.prototype.get = function(y) {
+ return this.programConfigurations[y];
+ }, fi.prototype.upload = function(y) {
+ if (this.needsUpload) {
+ for (var I in this.programConfigurations) this.programConfigurations[I].upload(y);
+ this.needsUpload = false;
+ }
+ }, fi.prototype.destroy = function() {
+ for (var y in this.programConfigurations) this.programConfigurations[y].destroy();
+ };
+ function Ti(m, y) {
+ var I = { "text-opacity": ["opacity"], "icon-opacity": ["opacity"], "text-color": ["fill_color"], "icon-color": ["fill_color"], "text-halo-color": ["halo_color"], "icon-halo-color": ["halo_color"], "text-halo-blur": ["halo_blur"], "icon-halo-blur": ["halo_blur"], "text-halo-width": ["halo_width"], "icon-halo-width": ["halo_width"], "line-gap-width": ["gapwidth"], "line-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-extrusion-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"] };
+ return I[m] || [m.replace(y + "-", "").replace(/-/g, "_")];
+ }
+ function gn(m) {
+ var y = { "line-pattern": { source: Zi, composite: Zi }, "fill-pattern": { source: Zi, composite: Zi }, "fill-extrusion-pattern": { source: Zi, composite: Zi } };
+ return y[m];
+ }
+ function rn(m, y, I) {
+ var V = { color: { source: an, composite: is }, number: { source: Ki, composite: an } }, $ = gn(m);
+ return $ && $[I] || V[y][I];
+ }
+ X("ConstantBinder", Pt), X("CrossFadedConstantBinder", ht), X("SourceExpressionBinder", ur), X("CrossFadedCompositeBinder", Ur), X("CompositeExpressionBinder", br), X("ProgramConfiguration", Di, { omit: ["_buffers"] }), X("ProgramConfigurationSet", fi);
+ var Ci = 8192, Bi = 15, Gi = Math.pow(2, Bi - 1) - 1, sn = -Gi - 1;
+ function zn(m) {
+ for (var y = Ci / m.extent, I = m.loadGeometry(), V = 0; V < I.length; V++) for (var $ = I[V], ae = 0; ae < $.length; ae++) {
+ var he = $[ae], ze = Math.round(he.x * y), rt = Math.round(he.y * y);
+ he.x = p(ze, sn, Gi), he.y = p(rt, sn, Gi), (ze < he.x || ze > he.x + 1 || rt < he.y || rt > he.y + 1) && re("Geometry exceeds allowed extent, reduce your vector tile buffer size");
+ }
+ return I;
+ }
+ function Ja(m, y) {
+ return { type: m.type, id: m.id, properties: m.properties, geometry: y ? zn(m) : [] };
+ }
+ function co(m, y, I, V, $) {
+ m.emplaceBack(y * 2 + (V + 1) / 2, I * 2 + ($ + 1) / 2);
+ }
+ var ts = function(y) {
+ this.zoom = y.zoom, this.overscaling = y.overscaling, this.layers = y.layers, this.layerIds = this.layers.map(function(I) {
+ return I.id;
+ }), this.index = y.index, this.hasPattern = false, this.layoutVertexArray = new Yr(), this.indexArray = new pn(), this.segments = new io(), this.programConfigurations = new fi(y.layers, y.zoom), this.stateDependentLayerIds = this.layers.filter(function(I) {
+ return I.isStateDependent();
+ }).map(function(I) {
+ return I.id;
+ });
+ };
+ ts.prototype.populate = function(y, I, V) {
+ var $ = this.layers[0], ae = [], he = null;
+ $.type === "circle" && (he = $.layout.get("circle-sort-key"));
+ for (var ze = 0, rt = y; ze < rt.length; ze += 1) {
+ var gt = rt[ze], Et = gt.feature, or = gt.id, _r = gt.index, pr = gt.sourceLayerIndex, Fr = this.layers[0]._featureFilter.needGeometry, oi = Ja(Et, Fr);
+ if (this.layers[0]._featureFilter.filter(new Gn(this.zoom), oi, V)) {
+ var Hi = he ? he.evaluate(oi, {}, V) : void 0, Ai = { id: or, properties: Et.properties, type: Et.type, sourceLayerIndex: pr, index: _r, geometry: Fr ? oi.geometry : zn(Et), patterns: {}, sortKey: Hi };
+ ae.push(Ai);
+ }
+ }
+ he && ae.sort(function(za, Za) {
+ return za.sortKey - Za.sortKey;
+ });
+ for (var bn = 0, nn = ae; bn < nn.length; bn += 1) {
+ var xn = nn[bn], Pn = xn, Zn = Pn.geometry, ga = Pn.index, ha = Pn.sourceLayerIndex, eo = y[ga].feature;
+ this.addFeature(xn, Zn, ga, V), I.featureIndex.insert(eo, Zn, ga, ha, this.index);
+ }
+ }, ts.prototype.update = function(y, I, V) {
+ this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(y, I, this.stateDependentLayers, V);
+ }, ts.prototype.isEmpty = function() {
+ return this.layoutVertexArray.length === 0;
+ }, ts.prototype.uploadPending = function() {
+ return !this.uploaded || this.programConfigurations.needsUpload;
+ }, ts.prototype.upload = function(y) {
+ this.uploaded || (this.layoutVertexBuffer = y.createVertexBuffer(this.layoutVertexArray, ol), this.indexBuffer = y.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(y), this.uploaded = true;
+ }, ts.prototype.destroy = function() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());
+ }, ts.prototype.addFeature = function(y, I, V, $) {
+ for (var ae = 0, he = I; ae < he.length; ae += 1) for (var ze = he[ae], rt = 0, gt = ze; rt < gt.length; rt += 1) {
+ var Et = gt[rt], or = Et.x, _r = Et.y;
+ if (!(or < 0 || or >= Ci || _r < 0 || _r >= Ci)) {
+ var pr = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, y.sortKey), Fr = pr.vertexLength;
+ co(this.layoutVertexArray, or, _r, -1, -1), co(this.layoutVertexArray, or, _r, 1, -1), co(this.layoutVertexArray, or, _r, 1, 1), co(this.layoutVertexArray, or, _r, -1, 1), this.indexArray.emplaceBack(Fr, Fr + 1, Fr + 2), this.indexArray.emplaceBack(Fr, Fr + 3, Fr + 2), pr.vertexLength += 4, pr.primitiveLength += 2;
+ }
+ }
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, y, V, {}, $);
+ }, X("CircleBucket", ts, { omit: ["layers"] });
+ function so(m, y) {
+ for (var I = 0; I < m.length; I++) if (Td(y, m[I])) return true;
+ for (var V = 0; V < y.length; V++) if (Td(m, y[V])) return true;
+ return !!Lv(m, y);
+ }
+ function Yo(m, y, I) {
+ return !!(Td(m, y) || Kv(y, m, I));
+ }
+ function ms(m, y) {
+ if (m.length === 1) return gp(y, m[0]);
+ for (var I = 0; I < y.length; I++) for (var V = y[I], $ = 0; $ < V.length; $++) if (Td(m, V[$])) return true;
+ for (var ae = 0; ae < m.length; ae++) if (gp(y, m[ae])) return true;
+ for (var he = 0; he < y.length; he++) if (Lv(m, y[he])) return true;
+ return false;
+ }
+ function ou(m, y, I) {
+ for (var V = 0; V < y.length; V++) {
+ var $ = y[V];
+ if (m.length >= 3) {
+ for (var ae = 0; ae < $.length; ae++) if (Td(m, $[ae])) return true;
+ }
+ if (Cv(m, $, I)) return true;
+ }
+ return false;
+ }
+ function Cv(m, y, I) {
+ if (m.length > 1) {
+ if (Lv(m, y)) return true;
+ for (var V = 0; V < y.length; V++) if (Kv(y[V], m, I)) return true;
+ }
+ for (var $ = 0; $ < m.length; $++) if (Kv(m[$], y, I)) return true;
+ return false;
+ }
+ function Lv(m, y) {
+ if (m.length === 0 || y.length === 0) return false;
+ for (var I = 0; I < m.length - 1; I++) for (var V = m[I], $ = m[I + 1], ae = 0; ae < y.length - 1; ae++) {
+ var he = y[ae], ze = y[ae + 1];
+ if (wd(V, $, he, ze)) return true;
+ }
+ return false;
+ }
+ function wd(m, y, I, V) {
+ return oe(m, I, V) !== oe(y, I, V) && oe(m, y, I) !== oe(m, y, V);
+ }
+ function Kv(m, y, I) {
+ var V = I * I;
+ if (y.length === 1) return m.distSqr(y[0]) < V;
+ for (var $ = 1; $ < y.length; $++) {
+ var ae = y[$ - 1], he = y[$];
+ if (hg(m, ae, he) < V) return true;
+ }
+ return false;
+ }
+ function hg(m, y, I) {
+ var V = y.distSqr(I);
+ if (V === 0) return m.distSqr(y);
+ var $ = ((m.x - y.x) * (I.x - y.x) + (m.y - y.y) * (I.y - y.y)) / V;
+ return $ < 0 ? m.distSqr(y) : $ > 1 ? m.distSqr(I) : m.distSqr(I.sub(y)._mult($)._add(y));
+ }
+ function gp(m, y) {
+ for (var I = false, V, $, ae, he = 0; he < m.length; he++) {
+ V = m[he];
+ for (var ze = 0, rt = V.length - 1; ze < V.length; rt = ze++) $ = V[ze], ae = V[rt], $.y > y.y != ae.y > y.y && y.x < (ae.x - $.x) * (y.y - $.y) / (ae.y - $.y) + $.x && (I = !I);
+ }
+ return I;
+ }
+ function Td(m, y) {
+ for (var I = false, V = 0, $ = m.length - 1; V < m.length; $ = V++) {
+ var ae = m[V], he = m[$];
+ ae.y > y.y != he.y > y.y && y.x < (he.x - ae.x) * (y.y - ae.y) / (he.y - ae.y) + ae.x && (I = !I);
+ }
+ return I;
+ }
+ function mp(m, y, I, V, $) {
+ for (var ae = 0, he = m; ae < he.length; ae += 1) {
+ var ze = he[ae];
+ if (y <= ze.x && I <= ze.y && V >= ze.x && $ >= ze.y) return true;
+ }
+ var rt = [new u(y, I), new u(y, $), new u(V, $), new u(V, I)];
+ if (m.length > 2) for (var gt = 0, Et = rt; gt < Et.length; gt += 1) {
+ var or = Et[gt];
+ if (Td(m, or)) return true;
+ }
+ for (var _r = 0; _r < m.length - 1; _r++) {
+ var pr = m[_r], Fr = m[_r + 1];
+ if (Ud(pr, Fr, rt)) return true;
+ }
+ return false;
+ }
+ function Ud(m, y, I) {
+ var V = I[0], $ = I[2];
+ if (m.x < V.x && y.x < V.x || m.x > $.x && y.x > $.x || m.y < V.y && y.y < V.y || m.y > $.y && y.y > $.y) return false;
+ var ae = oe(m, y, I[0]);
+ return ae !== oe(m, y, I[1]) || ae !== oe(m, y, I[2]) || ae !== oe(m, y, I[3]);
+ }
+ function Ad(m, y, I) {
+ var V = y.paint.get(m).value;
+ return V.kind === "constant" ? V.value : I.programConfigurations.get(y.id).getMaxValue(m);
+ }
+ function Pv(m) {
+ return Math.sqrt(m[0] * m[0] + m[1] * m[1]);
+ }
+ function Jv(m, y, I, V, $) {
+ if (!y[0] && !y[1]) return m;
+ var ae = u.convert(y)._mult($);
+ I === "viewport" && ae._rotate(-V);
+ for (var he = [], ze = 0; ze < m.length; ze++) {
+ var rt = m[ze];
+ he.push(rt.sub(ae));
+ }
+ return he;
+ }
+ var Iv = new Nr({ "circle-sort-key": new bt(Rn.layout_circle["circle-sort-key"]) }), fy = new Nr({ "circle-radius": new bt(Rn.paint_circle["circle-radius"]), "circle-color": new bt(Rn.paint_circle["circle-color"]), "circle-blur": new bt(Rn.paint_circle["circle-blur"]), "circle-opacity": new bt(Rn.paint_circle["circle-opacity"]), "circle-translate": new Me(Rn.paint_circle["circle-translate"]), "circle-translate-anchor": new Me(Rn.paint_circle["circle-translate-anchor"]), "circle-pitch-scale": new Me(Rn.paint_circle["circle-pitch-scale"]), "circle-pitch-alignment": new Me(Rn.paint_circle["circle-pitch-alignment"]), "circle-stroke-width": new bt(Rn.paint_circle["circle-stroke-width"]), "circle-stroke-color": new bt(Rn.paint_circle["circle-stroke-color"]), "circle-stroke-opacity": new bt(Rn.paint_circle["circle-stroke-opacity"]) }), dg = { paint: fy, layout: Iv }, oh = typeof Float32Array != "undefined" ? Float32Array : Array;
+ Math.hypot || (Math.hypot = function() {
+ for (var m = arguments, y = 0, I = arguments.length; I--; ) y += m[I] * m[I];
+ return Math.sqrt(y);
+ });
+ function vg() {
+ var m = new oh(4);
+ return oh != Float32Array && (m[1] = 0, m[2] = 0), m[0] = 1, m[3] = 1, m;
+ }
+ function hy(m, y, I) {
+ var V = y[0], $ = y[1], ae = y[2], he = y[3], ze = Math.sin(I), rt = Math.cos(I);
+ return m[0] = V * rt + ae * ze, m[1] = $ * rt + he * ze, m[2] = V * -ze + ae * rt, m[3] = $ * -ze + he * rt, m;
+ }
+ function Zh() {
+ var m = new oh(9);
+ return oh != Float32Array && (m[1] = 0, m[2] = 0, m[3] = 0, m[5] = 0, m[6] = 0, m[7] = 0), m[0] = 1, m[4] = 1, m[8] = 1, m;
+ }
+ function am(m, y) {
+ var I = Math.sin(y), V = Math.cos(y);
+ return m[0] = V, m[1] = I, m[2] = 0, m[3] = -I, m[4] = V, m[5] = 0, m[6] = 0, m[7] = 0, m[8] = 1, m;
+ }
+ function k1() {
+ var m = new oh(16);
+ return oh != Float32Array && (m[1] = 0, m[2] = 0, m[3] = 0, m[4] = 0, m[6] = 0, m[7] = 0, m[8] = 0, m[9] = 0, m[11] = 0, m[12] = 0, m[13] = 0, m[14] = 0), m[0] = 1, m[5] = 1, m[10] = 1, m[15] = 1, m;
+ }
+ function C1(m) {
+ var y = new oh(16);
+ return y[0] = m[0], y[1] = m[1], y[2] = m[2], y[3] = m[3], y[4] = m[4], y[5] = m[5], y[6] = m[6], y[7] = m[7], y[8] = m[8], y[9] = m[9], y[10] = m[10], y[11] = m[11], y[12] = m[12], y[13] = m[13], y[14] = m[14], y[15] = m[15], y;
+ }
+ function dy(m) {
+ return m[0] = 1, m[1] = 0, m[2] = 0, m[3] = 0, m[4] = 0, m[5] = 1, m[6] = 0, m[7] = 0, m[8] = 0, m[9] = 0, m[10] = 1, m[11] = 0, m[12] = 0, m[13] = 0, m[14] = 0, m[15] = 1, m;
+ }
+ function om(m, y) {
+ var I = y[0], V = y[1], $ = y[2], ae = y[3], he = y[4], ze = y[5], rt = y[6], gt = y[7], Et = y[8], or = y[9], _r = y[10], pr = y[11], Fr = y[12], oi = y[13], Hi = y[14], Ai = y[15], bn = I * ze - V * he, nn = I * rt - $ * he, xn = I * gt - ae * he, Pn = V * rt - $ * ze, Zn = V * gt - ae * ze, ga = $ * gt - ae * rt, ha = Et * oi - or * Fr, eo = Et * Hi - _r * Fr, za = Et * Ai - pr * Fr, Za = or * Hi - _r * oi, Jo = or * Ai - pr * oi, to = _r * Ai - pr * Hi, ao = bn * to - nn * Jo + xn * Za + Pn * za - Zn * eo + ga * ha;
+ return ao ? (ao = 1 / ao, m[0] = (ze * to - rt * Jo + gt * Za) * ao, m[1] = ($ * Jo - V * to - ae * Za) * ao, m[2] = (oi * ga - Hi * Zn + Ai * Pn) * ao, m[3] = (_r * Zn - or * ga - pr * Pn) * ao, m[4] = (rt * za - he * to - gt * eo) * ao, m[5] = (I * to - $ * za + ae * eo) * ao, m[6] = (Hi * xn - Fr * ga - Ai * nn) * ao, m[7] = (Et * ga - _r * xn + pr * nn) * ao, m[8] = (he * Jo - ze * za + gt * ha) * ao, m[9] = (V * za - I * Jo - ae * ha) * ao, m[10] = (Fr * Zn - oi * xn + Ai * bn) * ao, m[11] = (or * xn - Et * Zn - pr * bn) * ao, m[12] = (ze * eo - he * Za - rt * ha) * ao, m[13] = (I * Za - V * eo + $ * ha) * ao, m[14] = (oi * nn - Fr * Pn - Hi * bn) * ao, m[15] = (Et * Pn - or * nn + _r * bn) * ao, m) : null;
+ }
+ function sm(m, y, I) {
+ var V = y[0], $ = y[1], ae = y[2], he = y[3], ze = y[4], rt = y[5], gt = y[6], Et = y[7], or = y[8], _r = y[9], pr = y[10], Fr = y[11], oi = y[12], Hi = y[13], Ai = y[14], bn = y[15], nn = I[0], xn = I[1], Pn = I[2], Zn = I[3];
+ return m[0] = nn * V + xn * ze + Pn * or + Zn * oi, m[1] = nn * $ + xn * rt + Pn * _r + Zn * Hi, m[2] = nn * ae + xn * gt + Pn * pr + Zn * Ai, m[3] = nn * he + xn * Et + Pn * Fr + Zn * bn, nn = I[4], xn = I[5], Pn = I[6], Zn = I[7], m[4] = nn * V + xn * ze + Pn * or + Zn * oi, m[5] = nn * $ + xn * rt + Pn * _r + Zn * Hi, m[6] = nn * ae + xn * gt + Pn * pr + Zn * Ai, m[7] = nn * he + xn * Et + Pn * Fr + Zn * bn, nn = I[8], xn = I[9], Pn = I[10], Zn = I[11], m[8] = nn * V + xn * ze + Pn * or + Zn * oi, m[9] = nn * $ + xn * rt + Pn * _r + Zn * Hi, m[10] = nn * ae + xn * gt + Pn * pr + Zn * Ai, m[11] = nn * he + xn * Et + Pn * Fr + Zn * bn, nn = I[12], xn = I[13], Pn = I[14], Zn = I[15], m[12] = nn * V + xn * ze + Pn * or + Zn * oi, m[13] = nn * $ + xn * rt + Pn * _r + Zn * Hi, m[14] = nn * ae + xn * gt + Pn * pr + Zn * Ai, m[15] = nn * he + xn * Et + Pn * Fr + Zn * bn, m;
+ }
+ function vc(m, y, I) {
+ var V = I[0], $ = I[1], ae = I[2], he, ze, rt, gt, Et, or, _r, pr, Fr, oi, Hi, Ai;
+ return y === m ? (m[12] = y[0] * V + y[4] * $ + y[8] * ae + y[12], m[13] = y[1] * V + y[5] * $ + y[9] * ae + y[13], m[14] = y[2] * V + y[6] * $ + y[10] * ae + y[14], m[15] = y[3] * V + y[7] * $ + y[11] * ae + y[15]) : (he = y[0], ze = y[1], rt = y[2], gt = y[3], Et = y[4], or = y[5], _r = y[6], pr = y[7], Fr = y[8], oi = y[9], Hi = y[10], Ai = y[11], m[0] = he, m[1] = ze, m[2] = rt, m[3] = gt, m[4] = Et, m[5] = or, m[6] = _r, m[7] = pr, m[8] = Fr, m[9] = oi, m[10] = Hi, m[11] = Ai, m[12] = he * V + Et * $ + Fr * ae + y[12], m[13] = ze * V + or * $ + oi * ae + y[13], m[14] = rt * V + _r * $ + Hi * ae + y[14], m[15] = gt * V + pr * $ + Ai * ae + y[15]), m;
+ }
+ function tu(m, y, I) {
+ var V = I[0], $ = I[1], ae = I[2];
+ return m[0] = y[0] * V, m[1] = y[1] * V, m[2] = y[2] * V, m[3] = y[3] * V, m[4] = y[4] * $, m[5] = y[5] * $, m[6] = y[6] * $, m[7] = y[7] * $, m[8] = y[8] * ae, m[9] = y[9] * ae, m[10] = y[10] * ae, m[11] = y[11] * ae, m[12] = y[12], m[13] = y[13], m[14] = y[14], m[15] = y[15], m;
+ }
+ function Sd(m, y, I) {
+ var V = Math.sin(I), $ = Math.cos(I), ae = y[4], he = y[5], ze = y[6], rt = y[7], gt = y[8], Et = y[9], or = y[10], _r = y[11];
+ return y !== m && (m[0] = y[0], m[1] = y[1], m[2] = y[2], m[3] = y[3], m[12] = y[12], m[13] = y[13], m[14] = y[14], m[15] = y[15]), m[4] = ae * $ + gt * V, m[5] = he * $ + Et * V, m[6] = ze * $ + or * V, m[7] = rt * $ + _r * V, m[8] = gt * $ - ae * V, m[9] = Et * $ - he * V, m[10] = or * $ - ze * V, m[11] = _r * $ - rt * V, m;
+ }
+ function vy(m, y, I) {
+ var V = Math.sin(I), $ = Math.cos(I), ae = y[0], he = y[1], ze = y[2], rt = y[3], gt = y[4], Et = y[5], or = y[6], _r = y[7];
+ return y !== m && (m[8] = y[8], m[9] = y[9], m[10] = y[10], m[11] = y[11], m[12] = y[12], m[13] = y[13], m[14] = y[14], m[15] = y[15]), m[0] = ae * $ + gt * V, m[1] = he * $ + Et * V, m[2] = ze * $ + or * V, m[3] = rt * $ + _r * V, m[4] = gt * $ - ae * V, m[5] = Et * $ - he * V, m[6] = or * $ - ze * V, m[7] = _r * $ - rt * V, m;
+ }
+ function L1(m, y, I, V, $) {
+ var ae = 1 / Math.tan(y / 2), he;
+ return m[0] = ae / I, m[1] = 0, m[2] = 0, m[3] = 0, m[4] = 0, m[5] = ae, m[6] = 0, m[7] = 0, m[8] = 0, m[9] = 0, m[11] = -1, m[12] = 0, m[13] = 0, m[15] = 0, $ != null && $ !== 1 / 0 ? (he = 1 / (V - $), m[10] = ($ + V) * he, m[14] = 2 * $ * V * he) : (m[10] = -1, m[14] = -2 * V), m;
+ }
+ function wu(m, y, I, V, $, ae, he) {
+ var ze = 1 / (y - I), rt = 1 / (V - $), gt = 1 / (ae - he);
+ return m[0] = -2 * ze, m[1] = 0, m[2] = 0, m[3] = 0, m[4] = 0, m[5] = -2 * rt, m[6] = 0, m[7] = 0, m[8] = 0, m[9] = 0, m[10] = 2 * gt, m[11] = 0, m[12] = (y + I) * ze, m[13] = ($ + V) * rt, m[14] = (he + ae) * gt, m[15] = 1, m;
+ }
+ var Yx = sm;
+ function lm() {
+ var m = new oh(3);
+ return oh != Float32Array && (m[0] = 0, m[1] = 0, m[2] = 0), m;
+ }
+ function Ow(m) {
+ var y = new oh(3);
+ return y[0] = m[0], y[1] = m[1], y[2] = m[2], y;
+ }
+ function Rv(m, y, I) {
+ return m[0] = y[0] + I[0], m[1] = y[1] + I[1], m[2] = y[2] + I[2], m;
+ }
+ function um(m, y, I) {
+ return m[0] = y[0] - I[0], m[1] = y[1] - I[1], m[2] = y[2] - I[2], m;
+ }
+ function qw(m, y, I) {
+ return m[0] = y[0] * I, m[1] = y[1] * I, m[2] = y[2] * I, m;
+ }
+ function Kx(m, y) {
+ var I = y[0], V = y[1], $ = y[2], ae = I * I + V * V + $ * $;
+ return ae > 0 && (ae = 1 / Math.sqrt(ae)), m[0] = y[0] * ae, m[1] = y[1] * ae, m[2] = y[2] * ae, m;
+ }
+ function V9(m, y) {
+ return m[0] * y[0] + m[1] * y[1] + m[2] * y[2];
+ }
+ function G9(m, y, I) {
+ var V = y[0], $ = y[1], ae = y[2], he = I[0], ze = I[1], rt = I[2];
+ return m[0] = $ * rt - ae * ze, m[1] = ae * he - V * rt, m[2] = V * ze - $ * he, m;
+ }
+ function H9(m, y, I) {
+ var V = y[0], $ = y[1], ae = y[2];
+ return m[0] = V * I[0] + $ * I[3] + ae * I[6], m[1] = V * I[1] + $ * I[4] + ae * I[7], m[2] = V * I[2] + $ * I[5] + ae * I[8], m;
+ }
+ var j9 = um;
+ (function() {
+ var m = lm();
+ return function(y, I, V, $, ae, he) {
+ var ze, rt;
+ for (I || (I = 3), V || (V = 0), $ ? rt = Math.min($ * I + V, y.length) : rt = y.length, ze = V; ze < rt; ze += I) m[0] = y[ze], m[1] = y[ze + 1], m[2] = y[ze + 2], ae(m, m, he), y[ze] = m[0], y[ze + 1] = m[1], y[ze + 2] = m[2];
+ return y;
+ };
+ })();
+ function W9() {
+ var m = new oh(4);
+ return oh != Float32Array && (m[0] = 0, m[1] = 0, m[2] = 0, m[3] = 0), m;
+ }
+ function X9(m, y, I) {
+ return m[0] = y[0] * I, m[1] = y[1] * I, m[2] = y[2] * I, m[3] = y[3] * I, m;
+ }
+ function Z9(m, y) {
+ return m[0] * y[0] + m[1] * y[1] + m[2] * y[2] + m[3] * y[3];
+ }
+ function py(m, y, I) {
+ var V = y[0], $ = y[1], ae = y[2], he = y[3];
+ return m[0] = I[0] * V + I[4] * $ + I[8] * ae + I[12] * he, m[1] = I[1] * V + I[5] * $ + I[9] * ae + I[13] * he, m[2] = I[2] * V + I[6] * $ + I[10] * ae + I[14] * he, m[3] = I[3] * V + I[7] * $ + I[11] * ae + I[15] * he, m;
+ }
+ (function() {
+ var m = W9();
+ return function(y, I, V, $, ae, he) {
+ var ze, rt;
+ for (I || (I = 4), V || (V = 0), $ ? rt = Math.min($ * I + V, y.length) : rt = y.length, ze = V; ze < rt; ze += I) m[0] = y[ze], m[1] = y[ze + 1], m[2] = y[ze + 2], m[3] = y[ze + 3], ae(m, m, he), y[ze] = m[0], y[ze + 1] = m[1], y[ze + 2] = m[2], y[ze + 3] = m[3];
+ return y;
+ };
+ })();
+ function SC() {
+ var m = new oh(2);
+ return oh != Float32Array && (m[0] = 0, m[1] = 0), m;
+ }
+ function lS(m) {
+ var y = m[0], I = m[1];
+ return y * y + I * I;
+ }
+ var uS = lS;
+ (function() {
+ var m = SC();
+ return function(y, I, V, $, ae, he) {
+ var ze, rt;
+ for (I || (I = 2), V || (V = 0), $ ? rt = Math.min($ * I + V, y.length) : rt = y.length, ze = V; ze < rt; ze += I) m[0] = y[ze], m[1] = y[ze + 1], ae(m, m, he), y[ze] = m[0], y[ze + 1] = m[1];
+ return y;
+ };
+ })();
+ var Y9 = function(m) {
+ function y(I) {
+ m.call(this, I, dg);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.createBucket = function(V) {
+ return new ts(V);
+ }, y.prototype.queryRadius = function(V) {
+ var $ = V;
+ return Ad("circle-radius", this, $) + Ad("circle-stroke-width", this, $) + Pv(this.paint.get("circle-translate"));
+ }, y.prototype.queryIntersectsFeature = function(V, $, ae, he, ze, rt, gt, Et) {
+ for (var or = Jv(V, this.paint.get("circle-translate"), this.paint.get("circle-translate-anchor"), rt.angle, gt), _r = this.paint.get("circle-radius").evaluate($, ae), pr = this.paint.get("circle-stroke-width").evaluate($, ae), Fr = _r + pr, oi = this.paint.get("circle-pitch-alignment") === "map", Hi = oi ? or : EC(or, Et), Ai = oi ? Fr * gt : Fr, bn = 0, nn = he; bn < nn.length; bn += 1) for (var xn = nn[bn], Pn = 0, Zn = xn; Pn < Zn.length; Pn += 1) {
+ var ga = Zn[Pn], ha = oi ? ga : MC(ga, Et), eo = Ai, za = py([], [ga.x, ga.y, 0, 1], Et);
+ if (this.paint.get("circle-pitch-scale") === "viewport" && this.paint.get("circle-pitch-alignment") === "map" ? eo *= za[3] / rt.cameraToCenterDistance : this.paint.get("circle-pitch-scale") === "map" && this.paint.get("circle-pitch-alignment") === "viewport" && (eo *= rt.cameraToCenterDistance / za[3]), Yo(Hi, ha, eo)) return true;
+ }
+ return false;
+ }, y;
+ }(mi);
+ function MC(m, y) {
+ var I = py([], [m.x, m.y, 0, 1], y);
+ return new u(I[0] / I[3], I[1] / I[3]);
+ }
+ function EC(m, y) {
+ return m.map(function(I) {
+ return MC(I, y);
+ });
+ }
+ var cS = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y;
+ }(ts);
+ X("HeatmapBucket", cS, { omit: ["layers"] });
+ function Md(m, y, I, V) {
+ var $ = y.width, ae = y.height;
+ if (!V) V = new Uint8Array($ * ae * I);
+ else if (V instanceof Uint8ClampedArray) V = new Uint8Array(V.buffer);
+ else if (V.length !== $ * ae * I) throw new RangeError("mismatched image size");
+ return m.width = $, m.height = ae, m.data = V, m;
+ }
+ function Bw(m, y, I) {
+ var V = y.width, $ = y.height;
+ if (!(V === m.width && $ === m.height)) {
+ var ae = Md({}, { width: V, height: $ }, I);
+ Nw(m, ae, { x: 0, y: 0 }, { x: 0, y: 0 }, { width: Math.min(m.width, V), height: Math.min(m.height, $) }, I), m.width = V, m.height = $, m.data = ae.data;
+ }
+ }
+ function Nw(m, y, I, V, $, ae) {
+ if ($.width === 0 || $.height === 0) return y;
+ if ($.width > m.width || $.height > m.height || I.x > m.width - $.width || I.y > m.height - $.height) throw new RangeError("out of range source coordinates for image copy");
+ if ($.width > y.width || $.height > y.height || V.x > y.width - $.width || V.y > y.height - $.height) throw new RangeError("out of range destination coordinates for image copy");
+ for (var he = m.data, ze = y.data, rt = 0; rt < $.height; rt++) for (var gt = ((I.y + rt) * m.width + I.x) * ae, Et = ((V.y + rt) * y.width + V.x) * ae, or = 0; or < $.width * ae; or++) ze[Et + or] = he[gt + or];
+ return y;
+ }
+ var Dv = function(y, I) {
+ Md(this, y, 1, I);
+ };
+ Dv.prototype.resize = function(y) {
+ Bw(this, y, 1);
+ }, Dv.prototype.clone = function() {
+ return new Dv({ width: this.width, height: this.height }, new Uint8Array(this.data));
+ }, Dv.copy = function(y, I, V, $, ae) {
+ Nw(y, I, V, $, ae, 1);
+ };
+ var Eh = function(y, I) {
+ Md(this, y, 4, I);
+ };
+ Eh.prototype.resize = function(y) {
+ Bw(this, y, 4);
+ }, Eh.prototype.replace = function(y, I) {
+ I ? this.data.set(y) : y instanceof Uint8ClampedArray ? this.data = new Uint8Array(y.buffer) : this.data = y;
+ }, Eh.prototype.clone = function() {
+ return new Eh({ width: this.width, height: this.height }, new Uint8Array(this.data));
+ }, Eh.copy = function(y, I, V, $, ae) {
+ Nw(y, I, V, $, ae, 4);
+ }, X("AlphaImage", Dv), X("RGBAImage", Eh);
+ var $x = new Nr({ "heatmap-radius": new bt(Rn.paint_heatmap["heatmap-radius"]), "heatmap-weight": new bt(Rn.paint_heatmap["heatmap-weight"]), "heatmap-intensity": new Me(Rn.paint_heatmap["heatmap-intensity"]), "heatmap-color": new jr(Rn.paint_heatmap["heatmap-color"]), "heatmap-opacity": new Me(Rn.paint_heatmap["heatmap-opacity"]) }), P1 = { paint: $x };
+ function Qx(m) {
+ var y = {}, I = m.resolution || 256, V = m.clips ? m.clips.length : 1, $ = m.image || new Eh({ width: I, height: V }), ae = function(bn, nn, xn) {
+ y[m.evaluationKey] = xn;
+ var Pn = m.expression.evaluate(y);
+ $.data[bn + nn + 0] = Math.floor(Pn.r * 255 / Pn.a), $.data[bn + nn + 1] = Math.floor(Pn.g * 255 / Pn.a), $.data[bn + nn + 2] = Math.floor(Pn.b * 255 / Pn.a), $.data[bn + nn + 3] = Math.floor(Pn.a * 255);
+ };
+ if (m.clips) for (var gt = 0, Et = 0; gt < V; ++gt, Et += I * 4) for (var or = 0, _r = 0; or < I; or++, _r += 4) {
+ var pr = or / (I - 1), Fr = m.clips[gt], oi = Fr.start, Hi = Fr.end, Ai = oi * (1 - pr) + Hi * pr;
+ ae(Et, _r, Ai);
+ }
+ else for (var he = 0, ze = 0; he < I; he++, ze += 4) {
+ var rt = he / (I - 1);
+ ae(0, ze, rt);
+ }
+ return $;
+ }
+ var Uw = function(m) {
+ function y(I) {
+ m.call(this, I, P1), this._updateColorRamp();
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.createBucket = function(V) {
+ return new cS(V);
+ }, y.prototype._handleSpecialPaintPropertyUpdate = function(V) {
+ V === "heatmap-color" && this._updateColorRamp();
+ }, y.prototype._updateColorRamp = function() {
+ var V = this._transitionablePaint._values["heatmap-color"].value.expression;
+ this.colorRamp = Qx({ expression: V, evaluationKey: "heatmapDensity", image: this.colorRamp }), this.colorRampTexture = null;
+ }, y.prototype.resize = function() {
+ this.heatmapFbo && (this.heatmapFbo.destroy(), this.heatmapFbo = null);
+ }, y.prototype.queryRadius = function() {
+ return 0;
+ }, y.prototype.queryIntersectsFeature = function() {
+ return false;
+ }, y.prototype.hasOffscreenPass = function() {
+ return this.paint.get("heatmap-opacity") !== 0 && this.visibility !== "none";
+ }, y;
+ }(mi), K9 = new Nr({ "hillshade-illumination-direction": new Me(Rn.paint_hillshade["hillshade-illumination-direction"]), "hillshade-illumination-anchor": new Me(Rn.paint_hillshade["hillshade-illumination-anchor"]), "hillshade-exaggeration": new Me(Rn.paint_hillshade["hillshade-exaggeration"]), "hillshade-shadow-color": new Me(Rn.paint_hillshade["hillshade-shadow-color"]), "hillshade-highlight-color": new Me(Rn.paint_hillshade["hillshade-highlight-color"]), "hillshade-accent-color": new Me(Rn.paint_hillshade["hillshade-accent-color"]) }), J9 = { paint: K9 }, kC = function(m) {
+ function y(I) {
+ m.call(this, I, J9);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.hasOffscreenPass = function() {
+ return this.paint.get("hillshade-exaggeration") !== 0 && this.visibility !== "none";
+ }, y;
+ }(mi), CC = Wi([{ name: "a_pos", components: 2, type: "Int16" }], 4), $9 = CC.members, Vw = I1, LC = I1;
+ function I1(m, y, I) {
+ I = I || 2;
+ var V = y && y.length, $ = V ? y[0] * I : m.length, ae = Gw(m, 0, $, I, true), he = [];
+ if (!ae || ae.next === ae.prev) return he;
+ var ze, rt, gt, Et, or, _r, pr;
+ if (V && (ae = fm(m, y, ae, I)), m.length > 80 * I) {
+ ze = gt = m[0], rt = Et = m[1];
+ for (var Fr = I; Fr < $; Fr += I) or = m[Fr], _r = m[Fr + 1], or < ze && (ze = or), _r < rt && (rt = _r), or > gt && (gt = or), _r > Et && (Et = _r);
+ pr = Math.max(gt - ze, Et - rt), pr = pr !== 0 ? 1 / pr : 0;
+ }
+ return eb(ae, he, I, ze, rt, pr), he;
+ }
+ function Gw(m, y, I, V, $) {
+ var ae, he;
+ if ($ === mS(m, y, I, V) > 0) for (ae = y; ae < I; ae += V) he = FC(ae, m[ae], m[ae + 1], he);
+ else for (ae = I - V; ae >= y; ae -= V) he = FC(ae, m[ae], m[ae + 1], he);
+ return he && rb(he, he.next) && (ab(he), he = he.next), he;
+ }
+ function cm(m, y) {
+ if (!m) return m;
+ y || (y = m);
+ var I = m, V;
+ do
+ if (V = false, !I.steiner && (rb(I, I.next) || Tf(I.prev, I, I.next) === 0)) {
+ if (ab(I), I = y = I.prev, I === I.next) break;
+ V = true;
+ } else I = I.next;
+ while (V || I !== y);
+ return y;
+ }
+ function eb(m, y, I, V, $, ae, he) {
+ if (m) {
+ !he && ae && Hw(m, V, $, ae);
+ for (var ze = m, rt, gt; m.prev !== m.next; ) {
+ if (rt = m.prev, gt = m.next, ae ? IC(m, V, $, ae) : PC(m)) {
+ y.push(rt.i / I), y.push(m.i / I), y.push(gt.i / I), ab(m), m = gt.next, ze = gt.next;
+ continue;
+ }
+ if (m = gt, m === ze) {
+ he ? he === 1 ? (m = tb(cm(m), y, I), eb(m, y, I, V, $, ae, 2)) : he === 2 && v0(m, y, I, V, $, ae) : eb(cm(m), y, I, V, $, ae, 1);
+ break;
+ }
+ }
+ }
+ }
+ function PC(m) {
+ var y = m.prev, I = m, V = m.next;
+ if (Tf(y, I, V) >= 0) return false;
+ for (var $ = m.next.next; $ !== m.prev; ) {
+ if (hm(y.x, y.y, I.x, I.y, V.x, V.y, $.x, $.y) && Tf($.prev, $, $.next) >= 0) return false;
+ $ = $.next;
+ }
+ return true;
+ }
+ function IC(m, y, I, V) {
+ var $ = m.prev, ae = m, he = m.next;
+ if (Tf($, ae, he) >= 0) return false;
+ for (var ze = $.x < ae.x ? $.x < he.x ? $.x : he.x : ae.x < he.x ? ae.x : he.x, rt = $.y < ae.y ? $.y < he.y ? $.y : he.y : ae.y < he.y ? ae.y : he.y, gt = $.x > ae.x ? $.x > he.x ? $.x : he.x : ae.x > he.x ? ae.x : he.x, Et = $.y > ae.y ? $.y > he.y ? $.y : he.y : ae.y > he.y ? ae.y : he.y, or = dS(ze, rt, y, I, V), _r = dS(gt, Et, y, I, V), pr = m.prevZ, Fr = m.nextZ; pr && pr.z >= or && Fr && Fr.z <= _r; ) {
+ if (pr !== m.prev && pr !== m.next && hm($.x, $.y, ae.x, ae.y, he.x, he.y, pr.x, pr.y) && Tf(pr.prev, pr, pr.next) >= 0 || (pr = pr.prevZ, Fr !== m.prev && Fr !== m.next && hm($.x, $.y, ae.x, ae.y, he.x, he.y, Fr.x, Fr.y) && Tf(Fr.prev, Fr, Fr.next) >= 0)) return false;
+ Fr = Fr.nextZ;
+ }
+ for (; pr && pr.z >= or; ) {
+ if (pr !== m.prev && pr !== m.next && hm($.x, $.y, ae.x, ae.y, he.x, he.y, pr.x, pr.y) && Tf(pr.prev, pr, pr.next) >= 0) return false;
+ pr = pr.prevZ;
+ }
+ for (; Fr && Fr.z <= _r; ) {
+ if (Fr !== m.prev && Fr !== m.next && hm($.x, $.y, ae.x, ae.y, he.x, he.y, Fr.x, Fr.y) && Tf(Fr.prev, Fr, Fr.next) >= 0) return false;
+ Fr = Fr.nextZ;
+ }
+ return true;
+ }
+ function tb(m, y, I) {
+ var V = m;
+ do {
+ var $ = V.prev, ae = V.next.next;
+ !rb($, ae) && jw($, V, V.next, ae) && nb($, ae) && nb(ae, $) && (y.push($.i / I), y.push(V.i / I), y.push(ae.i / I), ab(V), ab(V.next), V = m = ae), V = V.next;
+ } while (V !== m);
+ return cm(V);
+ }
+ function v0(m, y, I, V, $, ae) {
+ var he = m;
+ do {
+ for (var ze = he.next.next; ze !== he.prev; ) {
+ if (he.i !== ze.i && R1(he, ze)) {
+ var rt = pS(he, ze);
+ he = cm(he, he.next), rt = cm(rt, rt.next), eb(he, y, I, V, $, ae), eb(rt, y, I, V, $, ae);
+ return;
+ }
+ ze = ze.next;
+ }
+ he = he.next;
+ } while (he !== m);
+ }
+ function fm(m, y, I, V) {
+ var $ = [], ae, he, ze, rt, gt;
+ for (ae = 0, he = y.length; ae < he; ae++) ze = y[ae] * V, rt = ae < he - 1 ? y[ae + 1] * V : m.length, gt = Gw(m, ze, rt, V, false), gt === gt.next && (gt.steiner = true), $.push(vS(gt));
+ for ($.sort(RC), ae = 0; ae < $.length; ae++) fS($[ae], I), I = cm(I, I.next);
+ return I;
+ }
+ function RC(m, y) {
+ return m.x - y.x;
+ }
+ function fS(m, y) {
+ if (y = Q9(m, y), y) {
+ var I = pS(y, m);
+ cm(y, y.next), cm(I, I.next);
+ }
+ }
+ function Q9(m, y) {
+ var I = y, V = m.x, $ = m.y, ae = -1 / 0, he;
+ do {
+ if ($ <= I.y && $ >= I.next.y && I.next.y !== I.y) {
+ var ze = I.x + ($ - I.y) * (I.next.x - I.x) / (I.next.y - I.y);
+ if (ze <= V && ze > ae) {
+ if (ae = ze, ze === V) {
+ if ($ === I.y) return I;
+ if ($ === I.next.y) return I.next;
+ }
+ he = I.x < I.next.x ? I : I.next;
+ }
+ }
+ I = I.next;
+ } while (I !== y);
+ if (!he) return null;
+ if (V === ae) return he;
+ var rt = he, gt = he.x, Et = he.y, or = 1 / 0, _r;
+ I = he;
+ do
+ V >= I.x && I.x >= gt && V !== I.x && hm($ < Et ? V : ae, $, gt, Et, $ < Et ? ae : V, $, I.x, I.y) && (_r = Math.abs($ - I.y) / (V - I.x), nb(I, m) && (_r < or || _r === or && (I.x > he.x || I.x === he.x && eO(he, I))) && (he = I, or = _r)), I = I.next;
+ while (I !== rt);
+ return he;
+ }
+ function eO(m, y) {
+ return Tf(m.prev, m, y.prev) < 0 && Tf(y.next, m, m.next) < 0;
+ }
+ function Hw(m, y, I, V) {
+ var $ = m;
+ do
+ $.z === null && ($.z = dS($.x, $.y, y, I, V)), $.prevZ = $.prev, $.nextZ = $.next, $ = $.next;
+ while ($ !== m);
+ $.prevZ.nextZ = null, $.prevZ = null, hS($);
+ }
+ function hS(m) {
+ var y, I, V, $, ae, he, ze, rt, gt = 1;
+ do {
+ for (I = m, m = null, ae = null, he = 0; I; ) {
+ for (he++, V = I, ze = 0, y = 0; y < gt && (ze++, V = V.nextZ, !!V); y++) ;
+ for (rt = gt; ze > 0 || rt > 0 && V; ) ze !== 0 && (rt === 0 || !V || I.z <= V.z) ? ($ = I, I = I.nextZ, ze--) : ($ = V, V = V.nextZ, rt--), ae ? ae.nextZ = $ : m = $, $.prevZ = ae, ae = $;
+ I = V;
+ }
+ ae.nextZ = null, gt *= 2;
+ } while (he > 1);
+ return m;
+ }
+ function dS(m, y, I, V, $) {
+ return m = 32767 * (m - I) * $, y = 32767 * (y - V) * $, m = (m | m << 8) & 16711935, m = (m | m << 4) & 252645135, m = (m | m << 2) & 858993459, m = (m | m << 1) & 1431655765, y = (y | y << 8) & 16711935, y = (y | y << 4) & 252645135, y = (y | y << 2) & 858993459, y = (y | y << 1) & 1431655765, m | y << 1;
+ }
+ function vS(m) {
+ var y = m, I = m;
+ do
+ (y.x < I.x || y.x === I.x && y.y < I.y) && (I = y), y = y.next;
+ while (y !== m);
+ return I;
+ }
+ function hm(m, y, I, V, $, ae, he, ze) {
+ return ($ - he) * (y - ze) - (m - he) * (ae - ze) >= 0 && (m - he) * (V - ze) - (I - he) * (y - ze) >= 0 && (I - he) * (ae - ze) - ($ - he) * (V - ze) >= 0;
+ }
+ function R1(m, y) {
+ return m.next.i !== y.i && m.prev.i !== y.i && !DC(m, y) && (nb(m, y) && nb(y, m) && tO(m, y) && (Tf(m.prev, m, y.prev) || Tf(m, y.prev, y)) || rb(m, y) && Tf(m.prev, m, m.next) > 0 && Tf(y.prev, y, y.next) > 0);
+ }
+ function Tf(m, y, I) {
+ return (y.y - m.y) * (I.x - y.x) - (y.x - m.x) * (I.y - y.y);
+ }
+ function rb(m, y) {
+ return m.x === y.x && m.y === y.y;
+ }
+ function jw(m, y, I, V) {
+ var $ = gy(Tf(m, y, I)), ae = gy(Tf(m, y, V)), he = gy(Tf(I, V, m)), ze = gy(Tf(I, V, y));
+ return !!($ !== ae && he !== ze || $ === 0 && ib(m, I, y) || ae === 0 && ib(m, V, y) || he === 0 && ib(I, m, V) || ze === 0 && ib(I, y, V));
+ }
+ function ib(m, y, I) {
+ return y.x <= Math.max(m.x, I.x) && y.x >= Math.min(m.x, I.x) && y.y <= Math.max(m.y, I.y) && y.y >= Math.min(m.y, I.y);
+ }
+ function gy(m) {
+ return m > 0 ? 1 : m < 0 ? -1 : 0;
+ }
+ function DC(m, y) {
+ var I = m;
+ do {
+ if (I.i !== m.i && I.next.i !== m.i && I.i !== y.i && I.next.i !== y.i && jw(I, I.next, m, y)) return true;
+ I = I.next;
+ } while (I !== m);
+ return false;
+ }
+ function nb(m, y) {
+ return Tf(m.prev, m, m.next) < 0 ? Tf(m, y, m.next) >= 0 && Tf(m, m.prev, y) >= 0 : Tf(m, y, m.prev) < 0 || Tf(m, m.next, y) < 0;
+ }
+ function tO(m, y) {
+ var I = m, V = false, $ = (m.x + y.x) / 2, ae = (m.y + y.y) / 2;
+ do
+ I.y > ae != I.next.y > ae && I.next.y !== I.y && $ < (I.next.x - I.x) * (ae - I.y) / (I.next.y - I.y) + I.x && (V = !V), I = I.next;
+ while (I !== m);
+ return V;
+ }
+ function pS(m, y) {
+ var I = new gS(m.i, m.x, m.y), V = new gS(y.i, y.x, y.y), $ = m.next, ae = y.prev;
+ return m.next = y, y.prev = m, I.next = $, $.prev = I, V.next = I, I.prev = V, ae.next = V, V.prev = ae, V;
+ }
+ function FC(m, y, I, V) {
+ var $ = new gS(m, y, I);
+ return V ? ($.next = V.next, $.prev = V, V.next.prev = $, V.next = $) : ($.prev = $, $.next = $), $;
+ }
+ function ab(m) {
+ m.next.prev = m.prev, m.prev.next = m.next, m.prevZ && (m.prevZ.nextZ = m.nextZ), m.nextZ && (m.nextZ.prevZ = m.prevZ);
+ }
+ function gS(m, y, I) {
+ this.i = m, this.x = y, this.y = I, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = false;
+ }
+ I1.deviation = function(m, y, I, V) {
+ var $ = y && y.length, ae = $ ? y[0] * I : m.length, he = Math.abs(mS(m, 0, ae, I));
+ if ($) for (var ze = 0, rt = y.length; ze < rt; ze++) {
+ var gt = y[ze] * I, Et = ze < rt - 1 ? y[ze + 1] * I : m.length;
+ he -= Math.abs(mS(m, gt, Et, I));
+ }
+ var or = 0;
+ for (ze = 0; ze < V.length; ze += 3) {
+ var _r = V[ze] * I, pr = V[ze + 1] * I, Fr = V[ze + 2] * I;
+ or += Math.abs((m[_r] - m[Fr]) * (m[pr + 1] - m[_r + 1]) - (m[_r] - m[pr]) * (m[Fr + 1] - m[_r + 1]));
+ }
+ return he === 0 && or === 0 ? 0 : Math.abs((or - he) / he);
+ };
+ function mS(m, y, I, V) {
+ for (var $ = 0, ae = y, he = I - V; ae < I; ae += V) $ += (m[he] - m[ae]) * (m[ae + 1] + m[he + 1]), he = ae;
+ return $;
+ }
+ I1.flatten = function(m) {
+ for (var y = m[0][0].length, I = { vertices: [], holes: [], dimensions: y }, V = 0, $ = 0; $ < m.length; $++) {
+ for (var ae = 0; ae < m[$].length; ae++) for (var he = 0; he < y; he++) I.vertices.push(m[$][ae][he]);
+ $ > 0 && (V += m[$ - 1].length, I.holes.push(V));
+ }
+ return I;
+ }, Vw.default = LC;
+ function yS(m, y, I, V, $) {
+ pg(m, y, I, V || m.length - 1, $ || zC);
+ }
+ function pg(m, y, I, V, $) {
+ for (; V > I; ) {
+ if (V - I > 600) {
+ var ae = V - I + 1, he = y - I + 1, ze = Math.log(ae), rt = 0.5 * Math.exp(2 * ze / 3), gt = 0.5 * Math.sqrt(ze * rt * (ae - rt) / ae) * (he - ae / 2 < 0 ? -1 : 1), Et = Math.max(I, Math.floor(y - he * rt / ae + gt)), or = Math.min(V, Math.floor(y + (ae - he) * rt / ae + gt));
+ pg(m, y, Et, or, $);
+ }
+ var _r = m[y], pr = I, Fr = V;
+ for (D1(m, I, y), $(m[V], _r) > 0 && D1(m, I, V); pr < Fr; ) {
+ for (D1(m, pr, Fr), pr++, Fr--; $(m[pr], _r) < 0; ) pr++;
+ for (; $(m[Fr], _r) > 0; ) Fr--;
+ }
+ $(m[I], _r) === 0 ? D1(m, I, Fr) : (Fr++, D1(m, Fr, V)), Fr <= y && (I = Fr + 1), y <= Fr && (V = Fr - 1);
+ }
+ }
+ function D1(m, y, I) {
+ var V = m[y];
+ m[y] = m[I], m[I] = V;
+ }
+ function zC(m, y) {
+ return m < y ? -1 : m > y ? 1 : 0;
+ }
+ function Ww(m, y) {
+ var I = m.length;
+ if (I <= 1) return [m];
+ for (var V = [], $, ae, he = 0; he < I; he++) {
+ var ze = _e(m[he]);
+ ze !== 0 && (m[he].area = Math.abs(ze), ae === void 0 && (ae = ze < 0), ae === ze < 0 ? ($ && V.push($), $ = [m[he]]) : $.push(m[he]));
+ }
+ if ($ && V.push($), y > 1) for (var rt = 0; rt < V.length; rt++) V[rt].length <= y || (yS(V[rt], y, 1, V[rt].length - 1, OC), V[rt] = V[rt].slice(0, y));
+ return V;
+ }
+ function OC(m, y) {
+ return y.area - m.area;
+ }
+ function Xw(m, y, I) {
+ for (var V = I.patternDependencies, $ = false, ae = 0, he = y; ae < he.length; ae += 1) {
+ var ze = he[ae], rt = ze.paint.get(m + "-pattern");
+ rt.isConstant() || ($ = true);
+ var gt = rt.constantOr(null);
+ gt && ($ = true, V[gt.to] = true, V[gt.from] = true);
+ }
+ return $;
+ }
+ function ob(m, y, I, V, $) {
+ for (var ae = $.patternDependencies, he = 0, ze = y; he < ze.length; he += 1) {
+ var rt = ze[he], gt = rt.paint.get(m + "-pattern"), Et = gt.value;
+ if (Et.kind !== "constant") {
+ var or = Et.evaluate({ zoom: V - 1 }, I, {}, $.availableImages), _r = Et.evaluate({ zoom: V }, I, {}, $.availableImages), pr = Et.evaluate({ zoom: V + 1 }, I, {}, $.availableImages);
+ or = or && or.name ? or.name : or, _r = _r && _r.name ? _r.name : _r, pr = pr && pr.name ? pr.name : pr, ae[or] = true, ae[_r] = true, ae[pr] = true, I.patterns[rt.id] = { min: or, mid: _r, max: pr };
+ }
+ }
+ return I;
+ }
+ var sb = 500, yp = function(y) {
+ this.zoom = y.zoom, this.overscaling = y.overscaling, this.layers = y.layers, this.layerIds = this.layers.map(function(I) {
+ return I.id;
+ }), this.index = y.index, this.hasPattern = false, this.patternFeatures = [], this.layoutVertexArray = new Yr(), this.indexArray = new pn(), this.indexArray2 = new oa(), this.programConfigurations = new fi(y.layers, y.zoom), this.segments = new io(), this.segments2 = new io(), this.stateDependentLayerIds = this.layers.filter(function(I) {
+ return I.isStateDependent();
+ }).map(function(I) {
+ return I.id;
+ });
+ };
+ yp.prototype.populate = function(y, I, V) {
+ this.hasPattern = Xw("fill", this.layers, I);
+ for (var $ = this.layers[0].layout.get("fill-sort-key"), ae = [], he = 0, ze = y; he < ze.length; he += 1) {
+ var rt = ze[he], gt = rt.feature, Et = rt.id, or = rt.index, _r = rt.sourceLayerIndex, pr = this.layers[0]._featureFilter.needGeometry, Fr = Ja(gt, pr);
+ if (this.layers[0]._featureFilter.filter(new Gn(this.zoom), Fr, V)) {
+ var oi = $ ? $.evaluate(Fr, {}, V, I.availableImages) : void 0, Hi = { id: Et, properties: gt.properties, type: gt.type, sourceLayerIndex: _r, index: or, geometry: pr ? Fr.geometry : zn(gt), patterns: {}, sortKey: oi };
+ ae.push(Hi);
+ }
+ }
+ $ && ae.sort(function(za, Za) {
+ return za.sortKey - Za.sortKey;
+ });
+ for (var Ai = 0, bn = ae; Ai < bn.length; Ai += 1) {
+ var nn = bn[Ai], xn = nn, Pn = xn.geometry, Zn = xn.index, ga = xn.sourceLayerIndex;
+ if (this.hasPattern) {
+ var ha = ob("fill", this.layers, nn, this.zoom, I);
+ this.patternFeatures.push(ha);
+ } else this.addFeature(nn, Pn, Zn, V, {});
+ var eo = y[Zn].feature;
+ I.featureIndex.insert(eo, Pn, Zn, ga, this.index);
+ }
+ }, yp.prototype.update = function(y, I, V) {
+ this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(y, I, this.stateDependentLayers, V);
+ }, yp.prototype.addFeatures = function(y, I, V) {
+ for (var $ = 0, ae = this.patternFeatures; $ < ae.length; $ += 1) {
+ var he = ae[$];
+ this.addFeature(he, he.geometry, he.index, I, V);
+ }
+ }, yp.prototype.isEmpty = function() {
+ return this.layoutVertexArray.length === 0;
+ }, yp.prototype.uploadPending = function() {
+ return !this.uploaded || this.programConfigurations.needsUpload;
+ }, yp.prototype.upload = function(y) {
+ this.uploaded || (this.layoutVertexBuffer = y.createVertexBuffer(this.layoutVertexArray, $9), this.indexBuffer = y.createIndexBuffer(this.indexArray), this.indexBuffer2 = y.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(y), this.uploaded = true;
+ }, yp.prototype.destroy = function() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy());
+ }, yp.prototype.addFeature = function(y, I, V, $, ae) {
+ for (var he = 0, ze = Ww(I, sb); he < ze.length; he += 1) {
+ for (var rt = ze[he], gt = 0, Et = 0, or = rt; Et < or.length; Et += 1) {
+ var _r = or[Et];
+ gt += _r.length;
+ }
+ for (var pr = this.segments.prepareSegment(gt, this.layoutVertexArray, this.indexArray), Fr = pr.vertexLength, oi = [], Hi = [], Ai = 0, bn = rt; Ai < bn.length; Ai += 1) {
+ var nn = bn[Ai];
+ if (nn.length !== 0) {
+ nn !== rt[0] && Hi.push(oi.length / 2);
+ var xn = this.segments2.prepareSegment(nn.length, this.layoutVertexArray, this.indexArray2), Pn = xn.vertexLength;
+ this.layoutVertexArray.emplaceBack(nn[0].x, nn[0].y), this.indexArray2.emplaceBack(Pn + nn.length - 1, Pn), oi.push(nn[0].x), oi.push(nn[0].y);
+ for (var Zn = 1; Zn < nn.length; Zn++) this.layoutVertexArray.emplaceBack(nn[Zn].x, nn[Zn].y), this.indexArray2.emplaceBack(Pn + Zn - 1, Pn + Zn), oi.push(nn[Zn].x), oi.push(nn[Zn].y);
+ xn.vertexLength += nn.length, xn.primitiveLength += nn.length;
+ }
+ }
+ for (var ga = Vw(oi, Hi), ha = 0; ha < ga.length; ha += 3) this.indexArray.emplaceBack(Fr + ga[ha], Fr + ga[ha + 1], Fr + ga[ha + 2]);
+ pr.vertexLength += gt, pr.primitiveLength += ga.length / 3;
+ }
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, y, V, ae, $);
+ }, X("FillBucket", yp, { omit: ["layers", "patternFeatures"] });
+ var _S = new Nr({ "fill-sort-key": new bt(Rn.layout_fill["fill-sort-key"]) }), qC = new Nr({ "fill-antialias": new Me(Rn.paint_fill["fill-antialias"]), "fill-opacity": new bt(Rn.paint_fill["fill-opacity"]), "fill-color": new bt(Rn.paint_fill["fill-color"]), "fill-outline-color": new bt(Rn.paint_fill["fill-outline-color"]), "fill-translate": new Me(Rn.paint_fill["fill-translate"]), "fill-translate-anchor": new Me(Rn.paint_fill["fill-translate-anchor"]), "fill-pattern": new zt(Rn.paint_fill["fill-pattern"]) }), $v = { paint: qC, layout: _S }, lb = function(m) {
+ function y(I) {
+ m.call(this, I, $v);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.recalculate = function(V, $) {
+ m.prototype.recalculate.call(this, V, $);
+ var ae = this.paint._values["fill-outline-color"];
+ ae.value.kind === "constant" && ae.value.value === void 0 && (this.paint._values["fill-outline-color"] = this.paint._values["fill-color"]);
+ }, y.prototype.createBucket = function(V) {
+ return new yp(V);
+ }, y.prototype.queryRadius = function() {
+ return Pv(this.paint.get("fill-translate"));
+ }, y.prototype.queryIntersectsFeature = function(V, $, ae, he, ze, rt, gt) {
+ var Et = Jv(V, this.paint.get("fill-translate"), this.paint.get("fill-translate-anchor"), rt.angle, gt);
+ return ms(Et, he);
+ }, y.prototype.isTileClipped = function() {
+ return true;
+ }, y;
+ }(mi), BC = Wi([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_normal_ed", components: 4, type: "Int16" }], 4), NC = BC.members, xS = my;
+ function my(m, y, I, V, $) {
+ this.properties = {}, this.extent = I, this.type = 0, this._pbf = m, this._geometry = -1, this._keys = V, this._values = $, m.readFields(UC, this, y);
+ }
+ function UC(m, y, I) {
+ m == 1 ? y.id = I.readVarint() : m == 2 ? VC(I, y) : m == 3 ? y.type = I.readVarint() : m == 4 && (y._geometry = I.pos);
+ }
+ function VC(m, y) {
+ for (var I = m.readVarint() + m.pos; m.pos < I; ) {
+ var V = y._keys[m.readVarint()], $ = y._values[m.readVarint()];
+ y.properties[V] = $;
+ }
+ }
+ my.types = ["Unknown", "Point", "LineString", "Polygon"], my.prototype.loadGeometry = function() {
+ var m = this._pbf;
+ m.pos = this._geometry;
+ for (var y = m.readVarint() + m.pos, I = 1, V = 0, $ = 0, ae = 0, he = [], ze; m.pos < y; ) {
+ if (V <= 0) {
+ var rt = m.readVarint();
+ I = rt & 7, V = rt >> 3;
+ }
+ if (V--, I === 1 || I === 2) $ += m.readSVarint(), ae += m.readSVarint(), I === 1 && (ze && he.push(ze), ze = []), ze.push(new u($, ae));
+ else if (I === 7) ze && ze.push(ze[0].clone());
+ else throw new Error("unknown command " + I);
+ }
+ return ze && he.push(ze), he;
+ }, my.prototype.bbox = function() {
+ var m = this._pbf;
+ m.pos = this._geometry;
+ for (var y = m.readVarint() + m.pos, I = 1, V = 0, $ = 0, ae = 0, he = 1 / 0, ze = -1 / 0, rt = 1 / 0, gt = -1 / 0; m.pos < y; ) {
+ if (V <= 0) {
+ var Et = m.readVarint();
+ I = Et & 7, V = Et >> 3;
+ }
+ if (V--, I === 1 || I === 2) $ += m.readSVarint(), ae += m.readSVarint(), $ < he && (he = $), $ > ze && (ze = $), ae < rt && (rt = ae), ae > gt && (gt = ae);
+ else if (I !== 7) throw new Error("unknown command " + I);
+ }
+ return [he, rt, ze, gt];
+ }, my.prototype.toGeoJSON = function(m, y, I) {
+ var V = this.extent * Math.pow(2, I), $ = this.extent * m, ae = this.extent * y, he = this.loadGeometry(), ze = my.types[this.type], rt, gt;
+ function Et(pr) {
+ for (var Fr = 0; Fr < pr.length; Fr++) {
+ var oi = pr[Fr], Hi = 180 - (oi.y + ae) * 360 / V;
+ pr[Fr] = [(oi.x + $) * 360 / V - 180, 360 / Math.PI * Math.atan(Math.exp(Hi * Math.PI / 180)) - 90];
+ }
+ }
+ switch (this.type) {
+ case 1:
+ var or = [];
+ for (rt = 0; rt < he.length; rt++) or[rt] = he[rt][0];
+ he = or, Et(he);
+ break;
+ case 2:
+ for (rt = 0; rt < he.length; rt++) Et(he[rt]);
+ break;
+ case 3:
+ for (he = rO(he), rt = 0; rt < he.length; rt++) for (gt = 0; gt < he[rt].length; gt++) Et(he[rt][gt]);
+ break;
+ }
+ he.length === 1 ? he = he[0] : ze = "Multi" + ze;
+ var _r = { type: "Feature", geometry: { type: ze, coordinates: he }, properties: this.properties };
+ return "id" in this && (_r.id = this.id), _r;
+ };
+ function rO(m) {
+ var y = m.length;
+ if (y <= 1) return [m];
+ for (var I = [], V, $, ae = 0; ae < y; ae++) {
+ var he = GC(m[ae]);
+ he !== 0 && ($ === void 0 && ($ = he < 0), $ === he < 0 ? (V && I.push(V), V = [m[ae]]) : V.push(m[ae]));
+ }
+ return V && I.push(V), I;
+ }
+ function GC(m) {
+ for (var y = 0, I = 0, V = m.length, $ = V - 1, ae, he; I < V; $ = I++) ae = m[I], he = m[$], y += (he.x - ae.x) * (ae.y + he.y);
+ return y;
+ }
+ var gg = bS;
+ function bS(m, y) {
+ this.version = 1, this.name = null, this.extent = 4096, this.length = 0, this._pbf = m, this._keys = [], this._values = [], this._features = [], m.readFields(HC, this, y), this.length = this._features.length;
+ }
+ function HC(m, y, I) {
+ m === 15 ? y.version = I.readVarint() : m === 1 ? y.name = I.readString() : m === 5 ? y.extent = I.readVarint() : m === 2 ? y._features.push(I.pos) : m === 3 ? y._keys.push(I.readString()) : m === 4 && y._values.push(jC(I));
+ }
+ function jC(m) {
+ for (var y = null, I = m.readVarint() + m.pos; m.pos < I; ) {
+ var V = m.readVarint() >> 3;
+ y = V === 1 ? m.readString() : V === 2 ? m.readFloat() : V === 3 ? m.readDouble() : V === 4 ? m.readVarint64() : V === 5 ? m.readVarint() : V === 6 ? m.readSVarint() : V === 7 ? m.readBoolean() : null;
+ }
+ return y;
+ }
+ bS.prototype.feature = function(m) {
+ if (m < 0 || m >= this._features.length) throw new Error("feature index out of bounds");
+ this._pbf.pos = this._features[m];
+ var y = this._pbf.readVarint() + this._pbf.pos;
+ return new xS(this._pbf, y, this.extent, this._keys, this._values);
+ };
+ var WC = iO;
+ function iO(m, y) {
+ this.layers = m.readFields(nO, {}, y);
+ }
+ function nO(m, y, I) {
+ if (m === 3) {
+ var V = new gg(I, I.readVarint() + I.pos);
+ V.length && (y[V.name] = V);
+ }
+ }
+ var XC = WC, F1 = xS, ZC = gg, mg = { VectorTile: XC, VectorTileFeature: F1, VectorTileLayer: ZC }, YC = mg.VectorTileFeature.types, Zw = 500, z1 = Math.pow(2, 13);
+ function dm(m, y, I, V, $, ae, he, ze) {
+ m.emplaceBack(y, I, Math.floor(V * z1) * 2 + he, $ * z1 * 2, ae * z1 * 2, Math.round(ze));
+ }
+ var Vp = function(y) {
+ this.zoom = y.zoom, this.overscaling = y.overscaling, this.layers = y.layers, this.layerIds = this.layers.map(function(I) {
+ return I.id;
+ }), this.index = y.index, this.hasPattern = false, this.layoutVertexArray = new Ri(), this.indexArray = new pn(), this.programConfigurations = new fi(y.layers, y.zoom), this.segments = new io(), this.stateDependentLayerIds = this.layers.filter(function(I) {
+ return I.isStateDependent();
+ }).map(function(I) {
+ return I.id;
+ });
+ };
+ Vp.prototype.populate = function(y, I, V) {
+ this.features = [], this.hasPattern = Xw("fill-extrusion", this.layers, I);
+ for (var $ = 0, ae = y; $ < ae.length; $ += 1) {
+ var he = ae[$], ze = he.feature, rt = he.id, gt = he.index, Et = he.sourceLayerIndex, or = this.layers[0]._featureFilter.needGeometry, _r = Ja(ze, or);
+ if (this.layers[0]._featureFilter.filter(new Gn(this.zoom), _r, V)) {
+ var pr = { id: rt, sourceLayerIndex: Et, index: gt, geometry: or ? _r.geometry : zn(ze), properties: ze.properties, type: ze.type, patterns: {} };
+ this.hasPattern ? this.features.push(ob("fill-extrusion", this.layers, pr, this.zoom, I)) : this.addFeature(pr, pr.geometry, gt, V, {}), I.featureIndex.insert(ze, pr.geometry, gt, Et, this.index, true);
+ }
+ }
+ }, Vp.prototype.addFeatures = function(y, I, V) {
+ for (var $ = 0, ae = this.features; $ < ae.length; $ += 1) {
+ var he = ae[$], ze = he.geometry;
+ this.addFeature(he, ze, he.index, I, V);
+ }
+ }, Vp.prototype.update = function(y, I, V) {
+ this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(y, I, this.stateDependentLayers, V);
+ }, Vp.prototype.isEmpty = function() {
+ return this.layoutVertexArray.length === 0;
+ }, Vp.prototype.uploadPending = function() {
+ return !this.uploaded || this.programConfigurations.needsUpload;
+ }, Vp.prototype.upload = function(y) {
+ this.uploaded || (this.layoutVertexBuffer = y.createVertexBuffer(this.layoutVertexArray, NC), this.indexBuffer = y.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(y), this.uploaded = true;
+ }, Vp.prototype.destroy = function() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());
+ }, Vp.prototype.addFeature = function(y, I, V, $, ae) {
+ for (var he = 0, ze = Ww(I, Zw); he < ze.length; he += 1) {
+ for (var rt = ze[he], gt = 0, Et = 0, or = rt; Et < or.length; Et += 1) {
+ var _r = or[Et];
+ gt += _r.length;
+ }
+ for (var pr = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray), Fr = 0, oi = rt; Fr < oi.length; Fr += 1) {
+ var Hi = oi[Fr];
+ if (Hi.length !== 0 && !oO(Hi)) for (var Ai = 0, bn = 0; bn < Hi.length; bn++) {
+ var nn = Hi[bn];
+ if (bn >= 1) {
+ var xn = Hi[bn - 1];
+ if (!aO(nn, xn)) {
+ pr.vertexLength + 4 > io.MAX_VERTEX_ARRAY_LENGTH && (pr = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray));
+ var Pn = nn.sub(xn)._perp()._unit(), Zn = xn.dist(nn);
+ Ai + Zn > 32768 && (Ai = 0), dm(this.layoutVertexArray, nn.x, nn.y, Pn.x, Pn.y, 0, 0, Ai), dm(this.layoutVertexArray, nn.x, nn.y, Pn.x, Pn.y, 0, 1, Ai), Ai += Zn, dm(this.layoutVertexArray, xn.x, xn.y, Pn.x, Pn.y, 0, 0, Ai), dm(this.layoutVertexArray, xn.x, xn.y, Pn.x, Pn.y, 0, 1, Ai);
+ var ga = pr.vertexLength;
+ this.indexArray.emplaceBack(ga, ga + 2, ga + 1), this.indexArray.emplaceBack(ga + 1, ga + 2, ga + 3), pr.vertexLength += 4, pr.primitiveLength += 2;
+ }
+ }
+ }
+ }
+ if (pr.vertexLength + gt > io.MAX_VERTEX_ARRAY_LENGTH && (pr = this.segments.prepareSegment(gt, this.layoutVertexArray, this.indexArray)), YC[y.type] === "Polygon") {
+ for (var ha = [], eo = [], za = pr.vertexLength, Za = 0, Jo = rt; Za < Jo.length; Za += 1) {
+ var to = Jo[Za];
+ if (to.length !== 0) {
+ to !== rt[0] && eo.push(ha.length / 2);
+ for (var ao = 0; ao < to.length; ao++) {
+ var _s = to[ao];
+ dm(this.layoutVertexArray, _s.x, _s.y, 0, 0, 1, 1, 0), ha.push(_s.x), ha.push(_s.y);
+ }
+ }
+ }
+ for (var jo = Vw(ha, eo), El = 0; El < jo.length; El += 3) this.indexArray.emplaceBack(za + jo[El], za + jo[El + 2], za + jo[El + 1]);
+ pr.primitiveLength += jo.length / 3, pr.vertexLength += gt;
+ }
+ }
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, y, V, ae, $);
+ }, X("FillExtrusionBucket", Vp, { omit: ["layers", "features"] });
+ function aO(m, y) {
+ return m.x === y.x && (m.x < 0 || m.x > Ci) || m.y === y.y && (m.y < 0 || m.y > Ci);
+ }
+ function oO(m) {
+ return m.every(function(y) {
+ return y.x < 0;
+ }) || m.every(function(y) {
+ return y.x > Ci;
+ }) || m.every(function(y) {
+ return y.y < 0;
+ }) || m.every(function(y) {
+ return y.y > Ci;
+ });
+ }
+ var O1 = new Nr({ "fill-extrusion-opacity": new Me(Rn["paint_fill-extrusion"]["fill-extrusion-opacity"]), "fill-extrusion-color": new bt(Rn["paint_fill-extrusion"]["fill-extrusion-color"]), "fill-extrusion-translate": new Me(Rn["paint_fill-extrusion"]["fill-extrusion-translate"]), "fill-extrusion-translate-anchor": new Me(Rn["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]), "fill-extrusion-pattern": new zt(Rn["paint_fill-extrusion"]["fill-extrusion-pattern"]), "fill-extrusion-height": new bt(Rn["paint_fill-extrusion"]["fill-extrusion-height"]), "fill-extrusion-base": new bt(Rn["paint_fill-extrusion"]["fill-extrusion-base"]), "fill-extrusion-vertical-gradient": new Me(Rn["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]) }), ld = { paint: O1 }, vm = function(m) {
+ function y(I) {
+ m.call(this, I, ld);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.createBucket = function(V) {
+ return new Vp(V);
+ }, y.prototype.queryRadius = function() {
+ return Pv(this.paint.get("fill-extrusion-translate"));
+ }, y.prototype.is3D = function() {
+ return true;
+ }, y.prototype.queryIntersectsFeature = function(V, $, ae, he, ze, rt, gt, Et) {
+ var or = Jv(V, this.paint.get("fill-extrusion-translate"), this.paint.get("fill-extrusion-translate-anchor"), rt.angle, gt), _r = this.paint.get("fill-extrusion-height").evaluate($, ae), pr = this.paint.get("fill-extrusion-base").evaluate($, ae), Fr = sO(or, Et, rt, 0), oi = TS(he, pr, _r, Et), Hi = oi[0], Ai = oi[1];
+ return KC(Hi, Ai, Fr);
+ }, y;
+ }(mi);
+ function yy(m, y) {
+ return m.x * y.x + m.y * y.y;
+ }
+ function wS(m, y) {
+ if (m.length === 1) {
+ for (var I = 0, V = y[I++], $; !$ || V.equals($); ) if ($ = y[I++], !$) return 1 / 0;
+ for (; I < y.length; I++) {
+ var ae = y[I], he = m[0], ze = $.sub(V), rt = ae.sub(V), gt = he.sub(V), Et = yy(ze, ze), or = yy(ze, rt), _r = yy(rt, rt), pr = yy(gt, ze), Fr = yy(gt, rt), oi = Et * _r - or * or, Hi = (_r * pr - or * Fr) / oi, Ai = (Et * Fr - or * pr) / oi, bn = 1 - Hi - Ai, nn = V.z * bn + $.z * Hi + ae.z * Ai;
+ if (isFinite(nn)) return nn;
+ }
+ return 1 / 0;
+ } else {
+ for (var xn = 1 / 0, Pn = 0, Zn = y; Pn < Zn.length; Pn += 1) {
+ var ga = Zn[Pn];
+ xn = Math.min(xn, ga.z);
+ }
+ return xn;
+ }
+ }
+ function KC(m, y, I) {
+ var V = 1 / 0;
+ ms(I, y) && (V = wS(I, y[0]));
+ for (var $ = 0; $ < y.length; $++) for (var ae = y[$], he = m[$], ze = 0; ze < ae.length - 1; ze++) {
+ var rt = ae[ze], gt = ae[ze + 1], Et = he[ze], or = he[ze + 1], _r = [rt, gt, or, Et, rt];
+ so(I, _r) && (V = Math.min(V, wS(I, _r)));
+ }
+ return V === 1 / 0 ? false : V;
+ }
+ function TS(m, y, I, V) {
+ for (var $ = [], ae = [], he = V[8] * y, ze = V[9] * y, rt = V[10] * y, gt = V[11] * y, Et = V[8] * I, or = V[9] * I, _r = V[10] * I, pr = V[11] * I, Fr = 0, oi = m; Fr < oi.length; Fr += 1) {
+ for (var Hi = oi[Fr], Ai = [], bn = [], nn = 0, xn = Hi; nn < xn.length; nn += 1) {
+ var Pn = xn[nn], Zn = Pn.x, ga = Pn.y, ha = V[0] * Zn + V[4] * ga + V[12], eo = V[1] * Zn + V[5] * ga + V[13], za = V[2] * Zn + V[6] * ga + V[14], Za = V[3] * Zn + V[7] * ga + V[15], Jo = ha + he, to = eo + ze, ao = za + rt, _s = Za + gt, jo = ha + Et, El = eo + or, Iu = za + _r, kl = Za + pr, Cl = new u(Jo / _s, to / _s);
+ Cl.z = ao / _s, Ai.push(Cl);
+ var yl = new u(jo / kl, El / kl);
+ yl.z = Iu / kl, bn.push(yl);
+ }
+ $.push(Ai), ae.push(bn);
+ }
+ return [$, ae];
+ }
+ function sO(m, y, I, V) {
+ for (var $ = [], ae = 0, he = m; ae < he.length; ae += 1) {
+ var ze = he[ae], rt = [ze.x, ze.y, V, 1];
+ py(rt, rt, y), $.push(new u(rt[0] / rt[3], rt[1] / rt[3]));
+ }
+ return $;
+ }
+ var JC = Wi([{ name: "a_pos_normal", components: 2, type: "Int16" }, { name: "a_data", components: 4, type: "Uint8" }], 4), $C = JC.members, lO = Wi([{ name: "a_uv_x", components: 1, type: "Float32" }, { name: "a_split_index", components: 1, type: "Float32" }]), QC = lO.members, AS = mg.VectorTileFeature.types, Yw = 63, e6 = Math.cos(75 / 2 * (Math.PI / 180)), ub = 15, SS = 20, t6 = 15, Kw = 1 / 2, cb = Math.pow(2, t6 - 1) / Kw, sh = function(y) {
+ var I = this;
+ this.zoom = y.zoom, this.overscaling = y.overscaling, this.layers = y.layers, this.layerIds = this.layers.map(function(V) {
+ return V.id;
+ }), this.index = y.index, this.hasPattern = false, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach(function(V) {
+ I.gradients[V.id] = {};
+ }), this.layoutVertexArray = new ci(), this.layoutVertexArray2 = new an(), this.indexArray = new pn(), this.programConfigurations = new fi(y.layers, y.zoom), this.segments = new io(), this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter(function(V) {
+ return V.isStateDependent();
+ }).map(function(V) {
+ return V.id;
+ });
+ };
+ sh.prototype.populate = function(y, I, V) {
+ this.hasPattern = Xw("line", this.layers, I);
+ for (var $ = this.layers[0].layout.get("line-sort-key"), ae = [], he = 0, ze = y; he < ze.length; he += 1) {
+ var rt = ze[he], gt = rt.feature, Et = rt.id, or = rt.index, _r = rt.sourceLayerIndex, pr = this.layers[0]._featureFilter.needGeometry, Fr = Ja(gt, pr);
+ if (this.layers[0]._featureFilter.filter(new Gn(this.zoom), Fr, V)) {
+ var oi = $ ? $.evaluate(Fr, {}, V) : void 0, Hi = { id: Et, properties: gt.properties, type: gt.type, sourceLayerIndex: _r, index: or, geometry: pr ? Fr.geometry : zn(gt), patterns: {}, sortKey: oi };
+ ae.push(Hi);
+ }
+ }
+ $ && ae.sort(function(za, Za) {
+ return za.sortKey - Za.sortKey;
+ });
+ for (var Ai = 0, bn = ae; Ai < bn.length; Ai += 1) {
+ var nn = bn[Ai], xn = nn, Pn = xn.geometry, Zn = xn.index, ga = xn.sourceLayerIndex;
+ if (this.hasPattern) {
+ var ha = ob("line", this.layers, nn, this.zoom, I);
+ this.patternFeatures.push(ha);
+ } else this.addFeature(nn, Pn, Zn, V, {});
+ var eo = y[Zn].feature;
+ I.featureIndex.insert(eo, Pn, Zn, ga, this.index);
+ }
+ }, sh.prototype.update = function(y, I, V) {
+ this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(y, I, this.stateDependentLayers, V);
+ }, sh.prototype.addFeatures = function(y, I, V) {
+ for (var $ = 0, ae = this.patternFeatures; $ < ae.length; $ += 1) {
+ var he = ae[$];
+ this.addFeature(he, he.geometry, he.index, I, V);
+ }
+ }, sh.prototype.isEmpty = function() {
+ return this.layoutVertexArray.length === 0;
+ }, sh.prototype.uploadPending = function() {
+ return !this.uploaded || this.programConfigurations.needsUpload;
+ }, sh.prototype.upload = function(y) {
+ this.uploaded || (this.layoutVertexArray2.length !== 0 && (this.layoutVertexBuffer2 = y.createVertexBuffer(this.layoutVertexArray2, QC)), this.layoutVertexBuffer = y.createVertexBuffer(this.layoutVertexArray, $C), this.indexBuffer = y.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(y), this.uploaded = true;
+ }, sh.prototype.destroy = function() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());
+ }, sh.prototype.lineFeatureClips = function(y) {
+ if (y.properties && y.properties.hasOwnProperty("mapbox_clip_start") && y.properties.hasOwnProperty("mapbox_clip_end")) {
+ var I = +y.properties.mapbox_clip_start, V = +y.properties.mapbox_clip_end;
+ return { start: I, end: V };
+ }
+ }, sh.prototype.addFeature = function(y, I, V, $, ae) {
+ var he = this.layers[0].layout, ze = he.get("line-join").evaluate(y, {}), rt = he.get("line-cap"), gt = he.get("line-miter-limit"), Et = he.get("line-round-limit");
+ this.lineClips = this.lineFeatureClips(y);
+ for (var or = 0, _r = I; or < _r.length; or += 1) {
+ var pr = _r[or];
+ this.addLine(pr, y, ze, rt, gt, Et);
+ }
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, y, V, ae, $);
+ }, sh.prototype.addLine = function(y, I, V, $, ae, he) {
+ if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.lineClips) {
+ this.lineClipsArray.push(this.lineClips);
+ for (var ze = 0; ze < y.length - 1; ze++) this.totalDistance += y[ze].dist(y[ze + 1]);
+ this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance);
+ }
+ for (var rt = AS[I.type] === "Polygon", gt = y.length; gt >= 2 && y[gt - 1].equals(y[gt - 2]); ) gt--;
+ for (var Et = 0; Et < gt - 1 && y[Et].equals(y[Et + 1]); ) Et++;
+ if (!(gt < (rt ? 3 : 2))) {
+ V === "bevel" && (ae = 1.05);
+ var or = this.overscaling <= 16 ? ub * Ci / (512 * this.overscaling) : 0, _r = this.segments.prepareSegment(gt * 10, this.layoutVertexArray, this.indexArray), pr, Fr = void 0, oi = void 0, Hi = void 0, Ai = void 0;
+ this.e1 = this.e2 = -1, rt && (pr = y[gt - 2], Ai = y[Et].sub(pr)._unit()._perp());
+ for (var bn = Et; bn < gt; bn++) if (oi = bn === gt - 1 ? rt ? y[Et + 1] : void 0 : y[bn + 1], !(oi && y[bn].equals(oi))) {
+ Ai && (Hi = Ai), pr && (Fr = pr), pr = y[bn], Ai = oi ? oi.sub(pr)._unit()._perp() : Hi, Hi = Hi || Ai;
+ var nn = Hi.add(Ai);
+ (nn.x !== 0 || nn.y !== 0) && nn._unit();
+ var xn = Hi.x * Ai.x + Hi.y * Ai.y, Pn = nn.x * Ai.x + nn.y * Ai.y, Zn = Pn !== 0 ? 1 / Pn : 1 / 0, ga = 2 * Math.sqrt(2 - 2 * Pn), ha = Pn < e6 && Fr && oi, eo = Hi.x * Ai.y - Hi.y * Ai.x > 0;
+ if (ha && bn > Et) {
+ var za = pr.dist(Fr);
+ if (za > 2 * or) {
+ var Za = pr.sub(pr.sub(Fr)._mult(or / za)._round());
+ this.updateDistance(Fr, Za), this.addCurrentVertex(Za, Hi, 0, 0, _r), Fr = Za;
+ }
+ }
+ var Jo = Fr && oi, to = Jo ? V : rt ? "butt" : $;
+ if (Jo && to === "round" && (Zn < he ? to = "miter" : Zn <= 2 && (to = "fakeround")), to === "miter" && Zn > ae && (to = "bevel"), to === "bevel" && (Zn > 2 && (to = "flipbevel"), Zn < ae && (to = "miter")), Fr && this.updateDistance(Fr, pr), to === "miter") nn._mult(Zn), this.addCurrentVertex(pr, nn, 0, 0, _r);
+ else if (to === "flipbevel") {
+ if (Zn > 100) nn = Ai.mult(-1);
+ else {
+ var ao = Zn * Hi.add(Ai).mag() / Hi.sub(Ai).mag();
+ nn._perp()._mult(ao * (eo ? -1 : 1));
+ }
+ this.addCurrentVertex(pr, nn, 0, 0, _r), this.addCurrentVertex(pr, nn.mult(-1), 0, 0, _r);
+ } else if (to === "bevel" || to === "fakeround") {
+ var _s = -Math.sqrt(Zn * Zn - 1), jo = eo ? _s : 0, El = eo ? 0 : _s;
+ if (Fr && this.addCurrentVertex(pr, Hi, jo, El, _r), to === "fakeround") for (var Iu = Math.round(ga * 180 / Math.PI / SS), kl = 1; kl < Iu; kl++) {
+ var Cl = kl / Iu;
+ if (Cl !== 0.5) {
+ var yl = Cl - 0.5, Qu = 1.0904 + xn * (-3.2452 + xn * (3.55645 - xn * 1.43519)), gc = 0.848013 + xn * (-1.06021 + xn * 0.215638);
+ Cl = Cl + Cl * yl * (Cl - 1) * (Qu * yl * yl + gc);
+ }
+ var Sf = Ai.sub(Hi)._mult(Cl)._add(Hi)._unit()._mult(eo ? -1 : 1);
+ this.addHalfVertex(pr, Sf.x, Sf.y, false, eo, 0, _r);
+ }
+ oi && this.addCurrentVertex(pr, Ai, -jo, -El, _r);
+ } else if (to === "butt") this.addCurrentVertex(pr, nn, 0, 0, _r);
+ else if (to === "square") {
+ var Ff = Fr ? 1 : -1;
+ this.addCurrentVertex(pr, nn, Ff, Ff, _r);
+ } else to === "round" && (Fr && (this.addCurrentVertex(pr, Hi, 0, 0, _r), this.addCurrentVertex(pr, Hi, 1, 1, _r, true)), oi && (this.addCurrentVertex(pr, Ai, -1, -1, _r, true), this.addCurrentVertex(pr, Ai, 0, 0, _r)));
+ if (ha && bn < gt - 1) {
+ var $h = pr.dist(oi);
+ if ($h > 2 * or) {
+ var ch = pr.add(oi.sub(pr)._mult(or / $h)._round());
+ this.updateDistance(pr, ch), this.addCurrentVertex(ch, Ai, 0, 0, _r), pr = ch;
+ }
+ }
+ }
+ }
+ }, sh.prototype.addCurrentVertex = function(y, I, V, $, ae, he) {
+ he === void 0 && (he = false);
+ var ze = I.x + I.y * V, rt = I.y - I.x * V, gt = -I.x + I.y * $, Et = -I.y - I.x * $;
+ this.addHalfVertex(y, ze, rt, he, false, V, ae), this.addHalfVertex(y, gt, Et, he, true, -$, ae), this.distance > cb / 2 && this.totalDistance === 0 && (this.distance = 0, this.addCurrentVertex(y, I, V, $, ae, he));
+ }, sh.prototype.addHalfVertex = function(y, I, V, $, ae, he, ze) {
+ var rt = y.x, gt = y.y, Et = this.lineClips ? this.scaledDistance * (cb - 1) : this.scaledDistance, or = Et * Kw;
+ if (this.layoutVertexArray.emplaceBack((rt << 1) + ($ ? 1 : 0), (gt << 1) + (ae ? 1 : 0), Math.round(Yw * I) + 128, Math.round(Yw * V) + 128, (he === 0 ? 0 : he < 0 ? -1 : 1) + 1 | (or & 63) << 2, or >> 6), this.lineClips) {
+ var _r = this.scaledDistance - this.lineClips.start, pr = this.lineClips.end - this.lineClips.start, Fr = _r / pr;
+ this.layoutVertexArray2.emplaceBack(Fr, this.lineClipsArray.length);
+ }
+ var oi = ze.vertexLength++;
+ this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, this.e2, oi), ze.primitiveLength++), ae ? this.e2 = oi : this.e1 = oi;
+ }, sh.prototype.updateScaledDistance = function() {
+ this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance;
+ }, sh.prototype.updateDistance = function(y, I) {
+ this.distance += y.dist(I), this.updateScaledDistance();
+ }, X("LineBucket", sh, { omit: ["layers", "patternFeatures"] });
+ var MS = new Nr({ "line-cap": new Me(Rn.layout_line["line-cap"]), "line-join": new bt(Rn.layout_line["line-join"]), "line-miter-limit": new Me(Rn.layout_line["line-miter-limit"]), "line-round-limit": new Me(Rn.layout_line["line-round-limit"]), "line-sort-key": new bt(Rn.layout_line["line-sort-key"]) }), ES = new Nr({ "line-opacity": new bt(Rn.paint_line["line-opacity"]), "line-color": new bt(Rn.paint_line["line-color"]), "line-translate": new Me(Rn.paint_line["line-translate"]), "line-translate-anchor": new Me(Rn.paint_line["line-translate-anchor"]), "line-width": new bt(Rn.paint_line["line-width"]), "line-gap-width": new bt(Rn.paint_line["line-gap-width"]), "line-offset": new bt(Rn.paint_line["line-offset"]), "line-blur": new bt(Rn.paint_line["line-blur"]), "line-dasharray": new Rr(Rn.paint_line["line-dasharray"]), "line-pattern": new zt(Rn.paint_line["line-pattern"]), "line-gradient": new jr(Rn.paint_line["line-gradient"]) }), Jw = { paint: ES, layout: MS }, uO = function(m) {
+ function y() {
+ m.apply(this, arguments);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.possiblyEvaluate = function(V, $) {
+ return $ = new Gn(Math.floor($.zoom), { now: $.now, fadeDuration: $.fadeDuration, zoomHistory: $.zoomHistory, transition: $.transition }), m.prototype.possiblyEvaluate.call(this, V, $);
+ }, y.prototype.evaluate = function(V, $, ae, he) {
+ return $ = x({}, $, { zoom: Math.floor($.zoom) }), m.prototype.evaluate.call(this, V, $, ae, he);
+ }, y;
+ }(bt), R = new uO(Jw.paint.properties["line-width"].specification);
+ R.useIntegerZoom = true;
+ var S = function(m) {
+ function y(I) {
+ m.call(this, I, Jw), this.gradientVersion = 0;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype._handleSpecialPaintPropertyUpdate = function(V) {
+ if (V === "line-gradient") {
+ var $ = this._transitionablePaint._values["line-gradient"].value.expression;
+ this.stepInterpolant = $._styleExpression.expression instanceof _u, this.gradientVersion = (this.gradientVersion + 1) % d;
+ }
+ }, y.prototype.gradientExpression = function() {
+ return this._transitionablePaint._values["line-gradient"].value.expression;
+ }, y.prototype.recalculate = function(V, $) {
+ m.prototype.recalculate.call(this, V, $), this.paint._values["line-floorwidth"] = R.possiblyEvaluate(this._transitioningPaint._values["line-width"].value, V);
+ }, y.prototype.createBucket = function(V) {
+ return new sh(V);
+ }, y.prototype.queryRadius = function(V) {
+ var $ = V, ae = F(Ad("line-width", this, $), Ad("line-gap-width", this, $)), he = Ad("line-offset", this, $);
+ return ae / 2 + Math.abs(he) + Pv(this.paint.get("line-translate"));
+ }, y.prototype.queryIntersectsFeature = function(V, $, ae, he, ze, rt, gt) {
+ var Et = Jv(V, this.paint.get("line-translate"), this.paint.get("line-translate-anchor"), rt.angle, gt), or = gt / 2 * F(this.paint.get("line-width").evaluate($, ae), this.paint.get("line-gap-width").evaluate($, ae)), _r = this.paint.get("line-offset").evaluate($, ae);
+ return _r && (he = W(he, _r * gt)), ou(Et, he, or);
+ }, y.prototype.isTileClipped = function() {
+ return true;
+ }, y;
+ }(mi);
+ function F(m, y) {
+ return y > 0 ? y + 2 * m : m;
+ }
+ function W(m, y) {
+ for (var I = [], V = new u(0, 0), $ = 0; $ < m.length; $++) {
+ for (var ae = m[$], he = [], ze = 0; ze < ae.length; ze++) {
+ var rt = ae[ze - 1], gt = ae[ze], Et = ae[ze + 1], or = ze === 0 ? V : gt.sub(rt)._unit()._perp(), _r = ze === ae.length - 1 ? V : Et.sub(gt)._unit()._perp(), pr = or._add(_r)._unit(), Fr = pr.x * _r.x + pr.y * _r.y;
+ pr._mult(1 / Fr), he.push(pr._mult(y)._add(gt));
+ }
+ I.push(he);
+ }
+ return I;
+ }
+ var te = Wi([{ name: "a_pos_offset", components: 4, type: "Int16" }, { name: "a_data", components: 4, type: "Uint16" }, { name: "a_pixeloffset", components: 4, type: "Int16" }], 4), fe = Wi([{ name: "a_projected_pos", components: 3, type: "Float32" }], 4);
+ Wi([{ name: "a_fade_opacity", components: 1, type: "Uint32" }], 4);
+ var Fe = Wi([{ name: "a_placed", components: 2, type: "Uint8" }, { name: "a_shift", components: 2, type: "Float32" }]);
+ Wi([{ type: "Int16", name: "anchorPointX" }, { type: "Int16", name: "anchorPointY" }, { type: "Int16", name: "x1" }, { type: "Int16", name: "y1" }, { type: "Int16", name: "x2" }, { type: "Int16", name: "y2" }, { type: "Uint32", name: "featureIndex" }, { type: "Uint16", name: "sourceLayerIndex" }, { type: "Uint16", name: "bucketIndex" }]);
+ var ct = Wi([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_anchor_pos", components: 2, type: "Int16" }, { name: "a_extrude", components: 2, type: "Int16" }], 4), Lt = Wi([{ name: "a_pos", components: 2, type: "Float32" }, { name: "a_radius", components: 1, type: "Float32" }, { name: "a_flags", components: 2, type: "Int16" }], 4);
+ Wi([{ name: "triangle", components: 3, type: "Uint16" }]);
+ Wi([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Uint16", name: "glyphStartIndex" }, { type: "Uint16", name: "numGlyphs" }, { type: "Uint32", name: "vertexStartIndex" }, { type: "Uint32", name: "lineStartIndex" }, { type: "Uint32", name: "lineLength" }, { type: "Uint16", name: "segment" }, { type: "Uint16", name: "lowerSize" }, { type: "Uint16", name: "upperSize" }, { type: "Float32", name: "lineOffsetX" }, { type: "Float32", name: "lineOffsetY" }, { type: "Uint8", name: "writingMode" }, { type: "Uint8", name: "placedOrientation" }, { type: "Uint8", name: "hidden" }, { type: "Uint32", name: "crossTileID" }, { type: "Int16", name: "associatedIconIndex" }]);
+ Wi([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Int16", name: "rightJustifiedTextSymbolIndex" }, { type: "Int16", name: "centerJustifiedTextSymbolIndex" }, { type: "Int16", name: "leftJustifiedTextSymbolIndex" }, { type: "Int16", name: "verticalPlacedTextSymbolIndex" }, { type: "Int16", name: "placedIconSymbolIndex" }, { type: "Int16", name: "verticalPlacedIconSymbolIndex" }, { type: "Uint16", name: "key" }, { type: "Uint16", name: "textBoxStartIndex" }, { type: "Uint16", name: "textBoxEndIndex" }, { type: "Uint16", name: "verticalTextBoxStartIndex" }, { type: "Uint16", name: "verticalTextBoxEndIndex" }, { type: "Uint16", name: "iconBoxStartIndex" }, { type: "Uint16", name: "iconBoxEndIndex" }, { type: "Uint16", name: "verticalIconBoxStartIndex" }, { type: "Uint16", name: "verticalIconBoxEndIndex" }, { type: "Uint16", name: "featureIndex" }, { type: "Uint16", name: "numHorizontalGlyphVertices" }, { type: "Uint16", name: "numVerticalGlyphVertices" }, { type: "Uint16", name: "numIconVertices" }, { type: "Uint16", name: "numVerticalIconVertices" }, { type: "Uint16", name: "useRuntimeCollisionCircles" }, { type: "Uint32", name: "crossTileID" }, { type: "Float32", name: "textBoxScale" }, { type: "Float32", components: 2, name: "textOffset" }, { type: "Float32", name: "collisionCircleDiameter" }]);
+ Wi([{ type: "Float32", name: "offsetX" }]);
+ Wi([{ type: "Int16", name: "x" }, { type: "Int16", name: "y" }, { type: "Int16", name: "tileUnitDistanceFromAnchor" }]);
+ function ui(m, y, I) {
+ var V = y.layout.get("text-transform").evaluate(I, {});
+ return V === "uppercase" ? m = m.toLocaleUpperCase() : V === "lowercase" && (m = m.toLocaleLowerCase()), Ms.applyArabicShaping && (m = Ms.applyArabicShaping(m)), m;
+ }
+ function yi(m, y, I) {
+ return m.sections.forEach(function(V) {
+ V.text = ui(V.text, y, I);
+ }), m;
+ }
+ function vn(m) {
+ var y = {}, I = {}, V = [], $ = 0;
+ function ae(Ai) {
+ V.push(m[Ai]), $++;
+ }
+ function he(Ai, bn, nn) {
+ var xn = I[Ai];
+ return delete I[Ai], I[bn] = xn, V[xn].geometry[0].pop(), V[xn].geometry[0] = V[xn].geometry[0].concat(nn[0]), xn;
+ }
+ function ze(Ai, bn, nn) {
+ var xn = y[bn];
+ return delete y[bn], y[Ai] = xn, V[xn].geometry[0].shift(), V[xn].geometry[0] = nn[0].concat(V[xn].geometry[0]), xn;
+ }
+ function rt(Ai, bn, nn) {
+ var xn = nn ? bn[0][bn[0].length - 1] : bn[0][0];
+ return Ai + ":" + xn.x + ":" + xn.y;
+ }
+ for (var gt = 0; gt < m.length; gt++) {
+ var Et = m[gt], or = Et.geometry, _r = Et.text ? Et.text.toString() : null;
+ if (!_r) {
+ ae(gt);
+ continue;
+ }
+ var pr = rt(_r, or), Fr = rt(_r, or, true);
+ if (pr in I && Fr in y && I[pr] !== y[Fr]) {
+ var oi = ze(pr, Fr, or), Hi = he(pr, Fr, V[oi].geometry);
+ delete y[pr], delete I[Fr], I[rt(_r, V[Hi].geometry, true)] = Hi, V[oi].geometry = null;
+ } else pr in I ? he(pr, Fr, or) : Fr in y ? ze(pr, Fr, or) : (ae(gt), y[pr] = $ - 1, I[Fr] = $ - 1);
+ }
+ return V.filter(function(Ai) {
+ return Ai.geometry;
+ });
+ }
+ var zi = { "!": "︕", "#": "#", $: "$", "%": "%", "&": "&", "(": "︵", ")": "︶", "*": "*", "+": "+", ",": "︐", "-": "︲", ".": "・", "/": "/", ":": "︓", ";": "︔", "<": "︿", "=": "=", ">": "﹀", "?": "︖", "@": "@", "[": "﹇", "\\": "\", "]": "﹈", "^": "^", _: "︳", "`": "`", "{": "︷", "|": "―", "}": "︸", "~": "~", "¢": "¢", "£": "£", "¥": "¥", "¦": "¦", "¬": "¬", "¯": " ̄", "–": "︲", "—": "︱", "‘": "﹃", "’": "﹄", "“": "﹁", "”": "﹂", "…": "︙", "‧": "・", "₩": "₩", "、": "︑", "。": "︒", "〈": "︿", "〉": "﹀", "《": "︽", "》": "︾", "「": "﹁", "」": "﹂", "『": "﹃", "』": "﹄", "【": "︻", "】": "︼", "〔": "︹", "〕": "︺", "〖": "︗", "〗": "︘", "!": "︕", "(": "︵", ")": "︶", ",": "︐", "-": "︲", ".": "・", ":": "︓", ";": "︔", "<": "︿", ">": "﹀", "?": "︖", "[": "﹇", "]": "﹈", "_": "︳", "{": "︷", "|": "―", "}": "︸", "⦅": "︵", "⦆": "︶", "。": "︒", "「": "﹁", "」": "﹂" };
+ function un(m) {
+ for (var y = "", I = 0; I < m.length; I++) {
+ var V = m.charCodeAt(I + 1) || null, $ = m.charCodeAt(I - 1) || null, ae = (!V || !bi(V) || zi[m[I + 1]]) && (!$ || !bi($) || zi[m[I - 1]]);
+ ae && zi[m[I]] ? y += zi[m[I]] : y += m[I];
+ }
+ return y;
+ }
+ var Tn = 24, pa = function(m, y, I, V, $) {
+ var ae, he, ze = $ * 8 - V - 1, rt = (1 << ze) - 1, gt = rt >> 1, Et = -7, or = I ? $ - 1 : 0, _r = I ? -1 : 1, pr = m[y + or];
+ for (or += _r, ae = pr & (1 << -Et) - 1, pr >>= -Et, Et += ze; Et > 0; ae = ae * 256 + m[y + or], or += _r, Et -= 8) ;
+ for (he = ae & (1 << -Et) - 1, ae >>= -Et, Et += V; Et > 0; he = he * 256 + m[y + or], or += _r, Et -= 8) ;
+ if (ae === 0) ae = 1 - gt;
+ else {
+ if (ae === rt) return he ? NaN : (pr ? -1 : 1) * (1 / 0);
+ he = he + Math.pow(2, V), ae = ae - gt;
+ }
+ return (pr ? -1 : 1) * he * Math.pow(2, ae - V);
+ }, ro = function(m, y, I, V, $, ae) {
+ var he, ze, rt, gt = ae * 8 - $ - 1, Et = (1 << gt) - 1, or = Et >> 1, _r = $ === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, pr = V ? 0 : ae - 1, Fr = V ? 1 : -1, oi = y < 0 || y === 0 && 1 / y < 0 ? 1 : 0;
+ for (y = Math.abs(y), isNaN(y) || y === 1 / 0 ? (ze = isNaN(y) ? 1 : 0, he = Et) : (he = Math.floor(Math.log(y) / Math.LN2), y * (rt = Math.pow(2, -he)) < 1 && (he--, rt *= 2), he + or >= 1 ? y += _r / rt : y += _r * Math.pow(2, 1 - or), y * rt >= 2 && (he++, rt /= 2), he + or >= Et ? (ze = 0, he = Et) : he + or >= 1 ? (ze = (y * rt - 1) * Math.pow(2, $), he = he + or) : (ze = y * Math.pow(2, or - 1) * Math.pow(2, $), he = 0)); $ >= 8; m[I + pr] = ze & 255, pr += Fr, ze /= 256, $ -= 8) ;
+ for (he = he << $ | ze, gt += $; gt > 0; m[I + pr] = he & 255, pr += Fr, he /= 256, gt -= 8) ;
+ m[I + pr - Fr] |= oi * 128;
+ }, Vo = { read: pa, write: ro }, Xa = sa;
+ function sa(m) {
+ this.buf = ArrayBuffer.isView && ArrayBuffer.isView(m) ? m : new Uint8Array(m || 0), this.pos = 0, this.type = 0, this.length = this.buf.length;
+ }
+ sa.Varint = 0, sa.Fixed64 = 1, sa.Bytes = 2, sa.Fixed32 = 5;
+ var Mo = 65536 * 65536, fo = 1 / Mo, lo = 12, Xn = typeof TextDecoder == "undefined" ? null : new TextDecoder("utf8");
+ sa.prototype = { destroy: function() {
+ this.buf = null;
+ }, readFields: function(m, y, I) {
+ for (I = I || this.length; this.pos < I; ) {
+ var V = this.readVarint(), $ = V >> 3, ae = this.pos;
+ this.type = V & 7, m($, y, this), this.pos === ae && this.skip(V);
+ }
+ return y;
+ }, readMessage: function(m, y) {
+ return this.readFields(m, y, this.readVarint() + this.pos);
+ }, readFixed32: function() {
+ var m = Yh(this.buf, this.pos);
+ return this.pos += 4, m;
+ }, readSFixed32: function() {
+ var m = Fv(this.buf, this.pos);
+ return this.pos += 4, m;
+ }, readFixed64: function() {
+ var m = Yh(this.buf, this.pos) + Yh(this.buf, this.pos + 4) * Mo;
+ return this.pos += 8, m;
+ }, readSFixed64: function() {
+ var m = Yh(this.buf, this.pos) + Fv(this.buf, this.pos + 4) * Mo;
+ return this.pos += 8, m;
+ }, readFloat: function() {
+ var m = Vo.read(this.buf, this.pos, true, 23, 4);
+ return this.pos += 4, m;
+ }, readDouble: function() {
+ var m = Vo.read(this.buf, this.pos, true, 52, 8);
+ return this.pos += 8, m;
+ }, readVarint: function(m) {
+ var y = this.buf, I, V;
+ return V = y[this.pos++], I = V & 127, V < 128 || (V = y[this.pos++], I |= (V & 127) << 7, V < 128) || (V = y[this.pos++], I |= (V & 127) << 14, V < 128) || (V = y[this.pos++], I |= (V & 127) << 21, V < 128) ? I : (V = y[this.pos], I |= (V & 15) << 28, Ro(I, m, this));
+ }, readVarint64: function() {
+ return this.readVarint(true);
+ }, readSVarint: function() {
+ var m = this.readVarint();
+ return m % 2 === 1 ? (m + 1) / -2 : m / 2;
+ }, readBoolean: function() {
+ return !!this.readVarint();
+ }, readString: function() {
+ var m = this.readVarint() + this.pos, y = this.pos;
+ return this.pos = m, m - y >= lo && Xn ? ru(this.buf, y, m) : lv(this.buf, y, m);
+ }, readBytes: function() {
+ var m = this.readVarint() + this.pos, y = this.buf.subarray(this.pos, m);
+ return this.pos = m, y;
+ }, readPackedVarint: function(m, y) {
+ if (this.type !== sa.Bytes) return m.push(this.readVarint(y));
+ var I = uo(this);
+ for (m = m || []; this.pos < I; ) m.push(this.readVarint(y));
+ return m;
+ }, readPackedSVarint: function(m) {
+ if (this.type !== sa.Bytes) return m.push(this.readSVarint());
+ var y = uo(this);
+ for (m = m || []; this.pos < y; ) m.push(this.readSVarint());
+ return m;
+ }, readPackedBoolean: function(m) {
+ if (this.type !== sa.Bytes) return m.push(this.readBoolean());
+ var y = uo(this);
+ for (m = m || []; this.pos < y; ) m.push(this.readBoolean());
+ return m;
+ }, readPackedFloat: function(m) {
+ if (this.type !== sa.Bytes) return m.push(this.readFloat());
+ var y = uo(this);
+ for (m = m || []; this.pos < y; ) m.push(this.readFloat());
+ return m;
+ }, readPackedDouble: function(m) {
+ if (this.type !== sa.Bytes) return m.push(this.readDouble());
+ var y = uo(this);
+ for (m = m || []; this.pos < y; ) m.push(this.readDouble());
+ return m;
+ }, readPackedFixed32: function(m) {
+ if (this.type !== sa.Bytes) return m.push(this.readFixed32());
+ var y = uo(this);
+ for (m = m || []; this.pos < y; ) m.push(this.readFixed32());
+ return m;
+ }, readPackedSFixed32: function(m) {
+ if (this.type !== sa.Bytes) return m.push(this.readSFixed32());
+ var y = uo(this);
+ for (m = m || []; this.pos < y; ) m.push(this.readSFixed32());
+ return m;
+ }, readPackedFixed64: function(m) {
+ if (this.type !== sa.Bytes) return m.push(this.readFixed64());
+ var y = uo(this);
+ for (m = m || []; this.pos < y; ) m.push(this.readFixed64());
+ return m;
+ }, readPackedSFixed64: function(m) {
+ if (this.type !== sa.Bytes) return m.push(this.readSFixed64());
+ var y = uo(this);
+ for (m = m || []; this.pos < y; ) m.push(this.readSFixed64());
+ return m;
+ }, skip: function(m) {
+ var y = m & 7;
+ if (y === sa.Varint) for (; this.buf[this.pos++] > 127; ) ;
+ else if (y === sa.Bytes) this.pos = this.readVarint() + this.pos;
+ else if (y === sa.Fixed32) this.pos += 4;
+ else if (y === sa.Fixed64) this.pos += 8;
+ else throw new Error("Unimplemented type: " + y);
+ }, writeTag: function(m, y) {
+ this.writeVarint(m << 3 | y);
+ }, realloc: function(m) {
+ for (var y = this.length || 16; y < this.pos + m; ) y *= 2;
+ if (y !== this.length) {
+ var I = new Uint8Array(y);
+ I.set(this.buf), this.buf = I, this.length = y;
+ }
+ }, finish: function() {
+ return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length);
+ }, writeFixed32: function(m) {
+ this.realloc(4), Df(this.buf, m, this.pos), this.pos += 4;
+ }, writeSFixed32: function(m) {
+ this.realloc(4), Df(this.buf, m, this.pos), this.pos += 4;
+ }, writeFixed64: function(m) {
+ this.realloc(8), Df(this.buf, m & -1, this.pos), Df(this.buf, Math.floor(m * fo), this.pos + 4), this.pos += 8;
+ }, writeSFixed64: function(m) {
+ this.realloc(8), Df(this.buf, m & -1, this.pos), Df(this.buf, Math.floor(m * fo), this.pos + 4), this.pos += 8;
+ }, writeVarint: function(m) {
+ if (m = +m || 0, m > 268435455 || m < 0) {
+ Ju(m, this);
+ return;
+ }
+ this.realloc(4), this.buf[this.pos++] = m & 127 | (m > 127 ? 128 : 0), !(m <= 127) && (this.buf[this.pos++] = (m >>>= 7) & 127 | (m > 127 ? 128 : 0), !(m <= 127) && (this.buf[this.pos++] = (m >>>= 7) & 127 | (m > 127 ? 128 : 0), !(m <= 127) && (this.buf[this.pos++] = m >>> 7 & 127)));
+ }, writeSVarint: function(m) {
+ this.writeVarint(m < 0 ? -m * 2 - 1 : m * 2);
+ }, writeBoolean: function(m) {
+ this.writeVarint(!!m);
+ }, writeString: function(m) {
+ m = String(m), this.realloc(m.length * 4), this.pos++;
+ var y = this.pos;
+ this.pos = pc(this.buf, m, this.pos);
+ var I = this.pos - y;
+ I >= 128 && Qv(y, I, this), this.pos = y - 1, this.writeVarint(I), this.pos += I;
+ }, writeFloat: function(m) {
+ this.realloc(4), Vo.write(this.buf, m, this.pos, true, 23, 4), this.pos += 4;
+ }, writeDouble: function(m) {
+ this.realloc(8), Vo.write(this.buf, m, this.pos, true, 52, 8), this.pos += 8;
+ }, writeBytes: function(m) {
+ var y = m.length;
+ this.writeVarint(y), this.realloc(y);
+ for (var I = 0; I < y; I++) this.buf[this.pos++] = m[I];
+ }, writeRawMessage: function(m, y) {
+ this.pos++;
+ var I = this.pos;
+ m(y, this);
+ var V = this.pos - I;
+ V >= 128 && Qv(I, V, this), this.pos = I - 1, this.writeVarint(V), this.pos += V;
+ }, writeMessage: function(m, y, I) {
+ this.writeTag(m, sa.Bytes), this.writeRawMessage(y, I);
+ }, writePackedVarint: function(m, y) {
+ y.length && this.writeMessage(m, ud, y);
+ }, writePackedSVarint: function(m, y) {
+ y.length && this.writeMessage(m, Ch, y);
+ }, writePackedBoolean: function(m, y) {
+ y.length && this.writeMessage(m, Hd, y);
+ }, writePackedFloat: function(m, y) {
+ y.length && this.writeMessage(m, Vd, y);
+ }, writePackedDouble: function(m, y) {
+ y.length && this.writeMessage(m, Gd, y);
+ }, writePackedFixed32: function(m, y) {
+ y.length && this.writeMessage(m, Af, y);
+ }, writePackedSFixed32: function(m, y) {
+ y.length && this.writeMessage(m, Lh, y);
+ }, writePackedFixed64: function(m, y) {
+ y.length && this.writeMessage(m, Ed, y);
+ }, writePackedSFixed64: function(m, y) {
+ y.length && this.writeMessage(m, cd, y);
+ }, writeBytesField: function(m, y) {
+ this.writeTag(m, sa.Bytes), this.writeBytes(y);
+ }, writeFixed32Field: function(m, y) {
+ this.writeTag(m, sa.Fixed32), this.writeFixed32(y);
+ }, writeSFixed32Field: function(m, y) {
+ this.writeTag(m, sa.Fixed32), this.writeSFixed32(y);
+ }, writeFixed64Field: function(m, y) {
+ this.writeTag(m, sa.Fixed64), this.writeFixed64(y);
+ }, writeSFixed64Field: function(m, y) {
+ this.writeTag(m, sa.Fixed64), this.writeSFixed64(y);
+ }, writeVarintField: function(m, y) {
+ this.writeTag(m, sa.Varint), this.writeVarint(y);
+ }, writeSVarintField: function(m, y) {
+ this.writeTag(m, sa.Varint), this.writeSVarint(y);
+ }, writeStringField: function(m, y) {
+ this.writeTag(m, sa.Bytes), this.writeString(y);
+ }, writeFloatField: function(m, y) {
+ this.writeTag(m, sa.Fixed32), this.writeFloat(y);
+ }, writeDoubleField: function(m, y) {
+ this.writeTag(m, sa.Fixed64), this.writeDouble(y);
+ }, writeBooleanField: function(m, y) {
+ this.writeVarintField(m, !!y);
+ } };
+ function Ro(m, y, I) {
+ var V = I.buf, $, ae;
+ if (ae = V[I.pos++], $ = (ae & 112) >> 4, ae < 128 || (ae = V[I.pos++], $ |= (ae & 127) << 3, ae < 128) || (ae = V[I.pos++], $ |= (ae & 127) << 10, ae < 128) || (ae = V[I.pos++], $ |= (ae & 127) << 17, ae < 128) || (ae = V[I.pos++], $ |= (ae & 127) << 24, ae < 128) || (ae = V[I.pos++], $ |= (ae & 1) << 31, ae < 128)) return $o(m, $, y);
+ throw new Error("Expected varint not more than 10 bytes");
+ }
+ function uo(m) {
+ return m.type === sa.Bytes ? m.readVarint() + m.pos : m.pos + 1;
+ }
+ function $o(m, y, I) {
+ return I ? y * 4294967296 + (m >>> 0) : (y >>> 0) * 4294967296 + (m >>> 0);
+ }
+ function Ju(m, y) {
+ var I, V;
+ if (m >= 0 ? (I = m % 4294967296 | 0, V = m / 4294967296 | 0) : (I = ~(-m % 4294967296), V = ~(-m / 4294967296), I ^ 4294967295 ? I = I + 1 | 0 : (I = 0, V = V + 1 | 0)), m >= 18446744073709552e3 || m < -18446744073709552e3) throw new Error("Given varint doesn't fit into 10 bytes");
+ y.realloc(10), qu(I, V, y), kh(V, y);
+ }
+ function qu(m, y, I) {
+ I.buf[I.pos++] = m & 127 | 128, m >>>= 7, I.buf[I.pos++] = m & 127 | 128, m >>>= 7, I.buf[I.pos++] = m & 127 | 128, m >>>= 7, I.buf[I.pos++] = m & 127 | 128, m >>>= 7, I.buf[I.pos] = m & 127;
+ }
+ function kh(m, y) {
+ var I = (m & 7) << 4;
+ y.buf[y.pos++] |= I | ((m >>>= 3) ? 128 : 0), m && (y.buf[y.pos++] = m & 127 | ((m >>>= 7) ? 128 : 0), m && (y.buf[y.pos++] = m & 127 | ((m >>>= 7) ? 128 : 0), m && (y.buf[y.pos++] = m & 127 | ((m >>>= 7) ? 128 : 0), m && (y.buf[y.pos++] = m & 127 | ((m >>>= 7) ? 128 : 0), m && (y.buf[y.pos++] = m & 127)))));
+ }
+ function Qv(m, y, I) {
+ var V = y <= 16383 ? 1 : y <= 2097151 ? 2 : y <= 268435455 ? 3 : Math.floor(Math.log(y) / (Math.LN2 * 7));
+ I.realloc(V);
+ for (var $ = I.pos - 1; $ >= m; $--) I.buf[$ + V] = I.buf[$];
+ }
+ function ud(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeVarint(m[I]);
+ }
+ function Ch(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeSVarint(m[I]);
+ }
+ function Vd(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeFloat(m[I]);
+ }
+ function Gd(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeDouble(m[I]);
+ }
+ function Hd(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeBoolean(m[I]);
+ }
+ function Af(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeFixed32(m[I]);
+ }
+ function Lh(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeSFixed32(m[I]);
+ }
+ function Ed(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeFixed64(m[I]);
+ }
+ function cd(m, y) {
+ for (var I = 0; I < m.length; I++) y.writeSFixed64(m[I]);
+ }
+ function Yh(m, y) {
+ return (m[y] | m[y + 1] << 8 | m[y + 2] << 16) + m[y + 3] * 16777216;
+ }
+ function Df(m, y, I) {
+ m[I] = y, m[I + 1] = y >>> 8, m[I + 2] = y >>> 16, m[I + 3] = y >>> 24;
+ }
+ function Fv(m, y) {
+ return (m[y] | m[y + 1] << 8 | m[y + 2] << 16) + (m[y + 3] << 24);
+ }
+ function lv(m, y, I) {
+ for (var V = "", $ = y; $ < I; ) {
+ var ae = m[$], he = null, ze = ae > 239 ? 4 : ae > 223 ? 3 : ae > 191 ? 2 : 1;
+ if ($ + ze > I) break;
+ var rt, gt, Et;
+ ze === 1 ? ae < 128 && (he = ae) : ze === 2 ? (rt = m[$ + 1], (rt & 192) === 128 && (he = (ae & 31) << 6 | rt & 63, he <= 127 && (he = null))) : ze === 3 ? (rt = m[$ + 1], gt = m[$ + 2], (rt & 192) === 128 && (gt & 192) === 128 && (he = (ae & 15) << 12 | (rt & 63) << 6 | gt & 63, (he <= 2047 || he >= 55296 && he <= 57343) && (he = null))) : ze === 4 && (rt = m[$ + 1], gt = m[$ + 2], Et = m[$ + 3], (rt & 192) === 128 && (gt & 192) === 128 && (Et & 192) === 128 && (he = (ae & 15) << 18 | (rt & 63) << 12 | (gt & 63) << 6 | Et & 63, (he <= 65535 || he >= 1114112) && (he = null))), he === null ? (he = 65533, ze = 1) : he > 65535 && (he -= 65536, V += String.fromCharCode(he >>> 10 & 1023 | 55296), he = 56320 | he & 1023), V += String.fromCharCode(he), $ += ze;
+ }
+ return V;
+ }
+ function ru(m, y, I) {
+ return Xn.decode(m.subarray(y, I));
+ }
+ function pc(m, y, I) {
+ for (var V = 0, $, ae; V < y.length; V++) {
+ if ($ = y.charCodeAt(V), $ > 55295 && $ < 57344) if (ae) if ($ < 56320) {
+ m[I++] = 239, m[I++] = 191, m[I++] = 189, ae = $;
+ continue;
+ } else $ = ae - 55296 << 10 | $ - 56320 | 65536, ae = null;
+ else {
+ $ > 56319 || V + 1 === y.length ? (m[I++] = 239, m[I++] = 191, m[I++] = 189) : ae = $;
+ continue;
+ }
+ else ae && (m[I++] = 239, m[I++] = 191, m[I++] = 189, ae = null);
+ $ < 128 ? m[I++] = $ : ($ < 2048 ? m[I++] = $ >> 6 | 192 : ($ < 65536 ? m[I++] = $ >> 12 | 224 : (m[I++] = $ >> 18 | 240, m[I++] = $ >> 12 & 63 | 128), m[I++] = $ >> 6 & 63 | 128), m[I++] = $ & 63 | 128);
+ }
+ return I;
+ }
+ var $u = 3;
+ function zv(m, y, I) {
+ m === 1 && I.readMessage(ff, y);
+ }
+ function ff(m, y, I) {
+ if (m === 3) {
+ var V = I.readMessage(q1, {}), $ = V.id, ae = V.bitmap, he = V.width, ze = V.height, rt = V.left, gt = V.top, Et = V.advance;
+ y.push({ id: $, bitmap: new Dv({ width: he + 2 * $u, height: ze + 2 * $u }, ae), metrics: { width: he, height: ze, left: rt, top: gt, advance: Et } });
+ }
+ }
+ function q1(m, y, I) {
+ m === 1 ? y.id = I.readVarint() : m === 2 ? y.bitmap = I.readBytes() : m === 3 ? y.width = I.readVarint() : m === 4 ? y.height = I.readVarint() : m === 5 ? y.left = I.readSVarint() : m === 6 ? y.top = I.readSVarint() : m === 7 && (y.advance = I.readVarint());
+ }
+ function p0(m) {
+ return new Xa(m).readFields(zv, []);
+ }
+ var Gp = $u;
+ function ep(m) {
+ for (var y = 0, I = 0, V = 0, $ = m; V < $.length; V += 1) {
+ var ae = $[V];
+ y += ae.w * ae.h, I = Math.max(I, ae.w);
+ }
+ m.sort(function(Hi, Ai) {
+ return Ai.h - Hi.h;
+ });
+ for (var he = Math.max(Math.ceil(Math.sqrt(y / 0.95)), I), ze = [{ x: 0, y: 0, w: he, h: 1 / 0 }], rt = 0, gt = 0, Et = 0, or = m; Et < or.length; Et += 1) for (var _r = or[Et], pr = ze.length - 1; pr >= 0; pr--) {
+ var Fr = ze[pr];
+ if (!(_r.w > Fr.w || _r.h > Fr.h)) {
+ if (_r.x = Fr.x, _r.y = Fr.y, gt = Math.max(gt, _r.y + _r.h), rt = Math.max(rt, _r.x + _r.w), _r.w === Fr.w && _r.h === Fr.h) {
+ var oi = ze.pop();
+ pr < ze.length && (ze[pr] = oi);
+ } else _r.h === Fr.h ? (Fr.x += _r.w, Fr.w -= _r.w) : _r.w === Fr.w ? (Fr.y += _r.h, Fr.h -= _r.h) : (ze.push({ x: Fr.x + _r.w, y: Fr.y, w: Fr.w - _r.w, h: _r.h }), Fr.y += _r.h, Fr.h -= _r.h);
+ break;
+ }
+ }
+ return { w: rt, h: gt, fill: y / (rt * gt) || 0 };
+ }
+ var Gc = 1, Yf = function(y, I) {
+ var V = I.pixelRatio, $ = I.version, ae = I.stretchX, he = I.stretchY, ze = I.content;
+ this.paddedRect = y, this.pixelRatio = V, this.stretchX = ae, this.stretchY = he, this.content = ze, this.version = $;
+ }, tp = { tl: { configurable: true }, br: { configurable: true }, tlbr: { configurable: true }, displaySize: { configurable: true } };
+ tp.tl.get = function() {
+ return [this.paddedRect.x + Gc, this.paddedRect.y + Gc];
+ }, tp.br.get = function() {
+ return [this.paddedRect.x + this.paddedRect.w - Gc, this.paddedRect.y + this.paddedRect.h - Gc];
+ }, tp.tlbr.get = function() {
+ return this.tl.concat(this.br);
+ }, tp.displaySize.get = function() {
+ return [(this.paddedRect.w - Gc * 2) / this.pixelRatio, (this.paddedRect.h - Gc * 2) / this.pixelRatio];
+ }, Object.defineProperties(Yf.prototype, tp);
+ var yg = function(y, I) {
+ var V = {}, $ = {};
+ this.haveRenderCallbacks = [];
+ var ae = [];
+ this.addImages(y, V, ae), this.addImages(I, $, ae);
+ var he = ep(ae), ze = he.w, rt = he.h, gt = new Eh({ width: ze || 1, height: rt || 1 });
+ for (var Et in y) {
+ var or = y[Et], _r = V[Et].paddedRect;
+ Eh.copy(or.data, gt, { x: 0, y: 0 }, { x: _r.x + Gc, y: _r.y + Gc }, or.data);
+ }
+ for (var pr in I) {
+ var Fr = I[pr], oi = $[pr].paddedRect, Hi = oi.x + Gc, Ai = oi.y + Gc, bn = Fr.data.width, nn = Fr.data.height;
+ Eh.copy(Fr.data, gt, { x: 0, y: 0 }, { x: Hi, y: Ai }, Fr.data), Eh.copy(Fr.data, gt, { x: 0, y: nn - 1 }, { x: Hi, y: Ai - 1 }, { width: bn, height: 1 }), Eh.copy(Fr.data, gt, { x: 0, y: 0 }, { x: Hi, y: Ai + nn }, { width: bn, height: 1 }), Eh.copy(Fr.data, gt, { x: bn - 1, y: 0 }, { x: Hi - 1, y: Ai }, { width: 1, height: nn }), Eh.copy(Fr.data, gt, { x: 0, y: 0 }, { x: Hi + bn, y: Ai }, { width: 1, height: nn });
+ }
+ this.image = gt, this.iconPositions = V, this.patternPositions = $;
+ };
+ yg.prototype.addImages = function(y, I, V) {
+ for (var $ in y) {
+ var ae = y[$], he = { x: 0, y: 0, w: ae.data.width + 2 * Gc, h: ae.data.height + 2 * Gc };
+ V.push(he), I[$] = new Yf(he, ae), ae.hasRenderCallback && this.haveRenderCallbacks.push($);
+ }
+ }, yg.prototype.patchUpdatedImages = function(y, I) {
+ y.dispatchRenderCallbacks(this.haveRenderCallbacks);
+ for (var V in y.updatedImages) this.patchUpdatedImage(this.iconPositions[V], y.getImage(V), I), this.patchUpdatedImage(this.patternPositions[V], y.getImage(V), I);
+ }, yg.prototype.patchUpdatedImage = function(y, I, V) {
+ if (!(!y || !I) && y.version !== I.version) {
+ y.version = I.version;
+ var $ = y.tl, ae = $[0], he = $[1];
+ V.update(I.data, void 0, { x: ae, y: he });
+ }
+ }, X("ImagePosition", Yf), X("ImageAtlas", yg);
+ var uv = { horizontal: 1, vertical: 2, horizontalOnly: 3 }, B1 = -17;
+ function kS(m) {
+ for (var y = 0, I = m; y < I.length; y += 1) {
+ var V = I[y];
+ if (V.positionedGlyphs.length !== 0) return false;
+ }
+ return true;
+ }
+ var $w = 57344, g0 = 63743, _y = function() {
+ this.scale = 1, this.fontStack = "", this.imageName = null;
+ };
+ _y.forText = function(y, I) {
+ var V = new _y();
+ return V.scale = y || 1, V.fontStack = I, V;
+ }, _y.forImage = function(y) {
+ var I = new _y();
+ return I.imageName = y, I;
+ };
+ var Kh = function() {
+ this.text = "", this.sectionIndex = [], this.sections = [], this.imageSectionID = null;
+ };
+ Kh.fromFeature = function(y, I) {
+ for (var V = new Kh(), $ = 0; $ < y.sections.length; $++) {
+ var ae = y.sections[$];
+ ae.image ? V.addImageSection(ae) : V.addTextSection(ae, I);
+ }
+ return V;
+ }, Kh.prototype.length = function() {
+ return this.text.length;
+ }, Kh.prototype.getSection = function(y) {
+ return this.sections[this.sectionIndex[y]];
+ }, Kh.prototype.getSectionIndex = function(y) {
+ return this.sectionIndex[y];
+ }, Kh.prototype.getCharCode = function(y) {
+ return this.text.charCodeAt(y);
+ }, Kh.prototype.verticalizePunctuation = function() {
+ this.text = un(this.text);
+ }, Kh.prototype.trim = function() {
+ for (var y = 0, I = 0; I < this.text.length && m0[this.text.charCodeAt(I)]; I++) y++;
+ for (var V = this.text.length, $ = this.text.length - 1; $ >= 0 && $ >= y && m0[this.text.charCodeAt($)]; $--) V--;
+ this.text = this.text.substring(y, V), this.sectionIndex = this.sectionIndex.slice(y, V);
+ }, Kh.prototype.substring = function(y, I) {
+ var V = new Kh();
+ return V.text = this.text.substring(y, I), V.sectionIndex = this.sectionIndex.slice(y, I), V.sections = this.sections, V;
+ }, Kh.prototype.toString = function() {
+ return this.text;
+ }, Kh.prototype.getMaxScale = function() {
+ var y = this;
+ return this.sectionIndex.reduce(function(I, V) {
+ return Math.max(I, y.sections[V].scale);
+ }, 0);
+ }, Kh.prototype.addTextSection = function(y, I) {
+ this.text += y.text, this.sections.push(_y.forText(y.scale, y.fontStack || I));
+ for (var V = this.sections.length - 1, $ = 0; $ < y.text.length; ++$) this.sectionIndex.push(V);
+ }, Kh.prototype.addImageSection = function(y) {
+ var I = y.image ? y.image.name : "";
+ if (I.length === 0) {
+ re("Can't add FormattedSection with an empty image.");
+ return;
+ }
+ var V = this.getNextImageSectionCharCode();
+ if (!V) {
+ re("Reached maximum number of images " + (g0 - $w + 2));
+ return;
+ }
+ this.text += String.fromCharCode(V), this.sections.push(_y.forImage(I)), this.sectionIndex.push(this.sections.length - 1);
+ }, Kh.prototype.getNextImageSectionCharCode = function() {
+ return this.imageSectionID ? this.imageSectionID >= g0 ? null : ++this.imageSectionID : (this.imageSectionID = $w, this.imageSectionID);
+ };
+ function cO(m, y) {
+ for (var I = [], V = m.text, $ = 0, ae = 0, he = y; ae < he.length; ae += 1) {
+ var ze = he[ae];
+ I.push(m.substring($, ze)), $ = ze;
+ }
+ return $ < V.length && I.push(m.substring($, V.length)), I;
+ }
+ function Qw(m, y, I, V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi) {
+ var Hi = Kh.fromFeature(m, $);
+ or === uv.vertical && Hi.verticalizePunctuation();
+ var Ai, bn = Ms.processBidirectionalText, nn = Ms.processStyledBidirectionalText;
+ if (bn && Hi.sections.length === 1) {
+ Ai = [];
+ for (var xn = bn(Hi.toString(), e3(Hi, gt, ae, y, V, pr, Fr)), Pn = 0, Zn = xn; Pn < Zn.length; Pn += 1) {
+ var ga = Zn[Pn], ha = new Kh();
+ ha.text = ga, ha.sections = Hi.sections;
+ for (var eo = 0; eo < ga.length; eo++) ha.sectionIndex.push(0);
+ Ai.push(ha);
+ }
+ } else if (nn) {
+ Ai = [];
+ for (var za = nn(Hi.text, Hi.sectionIndex, e3(Hi, gt, ae, y, V, pr, Fr)), Za = 0, Jo = za; Za < Jo.length; Za += 1) {
+ var to = Jo[Za], ao = new Kh();
+ ao.text = to[0], ao.sectionIndex = to[1], ao.sections = Hi.sections, Ai.push(ao);
+ }
+ } else Ai = cO(Hi, e3(Hi, gt, ae, y, V, pr, Fr));
+ var _s = [], jo = { positionedLines: _s, text: Hi.toString(), top: Et[1], bottom: Et[1], left: Et[0], right: Et[0], writingMode: or, iconsInText: false, verticalizable: false };
+ return dO(jo, y, I, V, Ai, he, ze, rt, or, gt, _r, oi), kS(_s) ? false : jo;
+ }
+ var m0 = {};
+ m0[9] = true, m0[10] = true, m0[11] = true, m0[12] = true, m0[13] = true, m0[32] = true;
+ var cv = {};
+ cv[10] = true, cv[32] = true, cv[38] = true, cv[40] = true, cv[41] = true, cv[43] = true, cv[45] = true, cv[47] = true, cv[173] = true, cv[183] = true, cv[8203] = true, cv[8208] = true, cv[8211] = true, cv[8231] = true;
+ function r6(m, y, I, V, $, ae) {
+ if (y.imageName) {
+ var rt = V[y.imageName];
+ return rt ? rt.displaySize[0] * y.scale * Tn / ae + $ : 0;
+ } else {
+ var he = I[y.fontStack], ze = he && he[m];
+ return ze ? ze.metrics.advance * y.scale + $ : 0;
+ }
+ }
+ function fO(m, y, I, V, $, ae) {
+ for (var he = 0, ze = 0; ze < m.length(); ze++) {
+ var rt = m.getSection(ze);
+ he += r6(m.getCharCode(ze), rt, V, $, y, ae);
+ }
+ var gt = Math.max(1, Math.ceil(he / I));
+ return he / gt;
+ }
+ function i6(m, y, I, V) {
+ var $ = Math.pow(m - y, 2);
+ return V ? m < y ? $ / 2 : $ * 2 : $ + Math.abs(I) * I;
+ }
+ function hO(m, y, I) {
+ var V = 0;
+ return m === 10 && (V -= 1e4), I && (V += 150), (m === 40 || m === 65288) && (V += 50), (y === 41 || y === 65289) && (V += 50), V;
+ }
+ function _p(m, y, I, V, $, ae) {
+ for (var he = null, ze = i6(y, I, $, ae), rt = 0, gt = V; rt < gt.length; rt += 1) {
+ var Et = gt[rt], or = y - Et.x, _r = i6(or, I, $, ae) + Et.badness;
+ _r <= ze && (he = Et, ze = _r);
+ }
+ return { index: m, x: y, priorBreak: he, badness: ze };
+ }
+ function fb(m) {
+ return m ? fb(m.priorBreak).concat(m.index) : [];
+ }
+ function e3(m, y, I, V, $, ae, he) {
+ if (ae !== "point") return [];
+ if (!m) return [];
+ for (var ze = [], rt = fO(m, y, I, V, $, he), gt = m.text.indexOf("") >= 0, Et = 0, or = 0; or < m.length(); or++) {
+ var _r = m.getSection(or), pr = m.getCharCode(or);
+ if (m0[pr] || (Et += r6(pr, _r, V, $, y, he)), or < m.length() - 1) {
+ var Fr = Hr(pr);
+ (cv[pr] || Fr || _r.imageName) && ze.push(_p(or + 1, Et, rt, ze, hO(pr, m.getCharCode(or + 1), Fr && gt), false));
+ }
+ }
+ return fb(_p(m.length(), Et, rt, ze, 0, true));
+ }
+ function CS(m) {
+ var y = 0.5, I = 0.5;
+ switch (m) {
+ case "right":
+ case "top-right":
+ case "bottom-right":
+ y = 1;
+ break;
+ case "left":
+ case "top-left":
+ case "bottom-left":
+ y = 0;
+ break;
+ }
+ switch (m) {
+ case "bottom":
+ case "bottom-right":
+ case "bottom-left":
+ I = 1;
+ break;
+ case "top":
+ case "top-right":
+ case "top-left":
+ I = 0;
+ break;
+ }
+ return { horizontalAlign: y, verticalAlign: I };
+ }
+ function dO(m, y, I, V, $, ae, he, ze, rt, gt, Et, or) {
+ for (var _r = 0, pr = B1, Fr = 0, oi = 0, Hi = ze === "right" ? 1 : ze === "left" ? 0 : 0.5, Ai = 0, bn = 0, nn = $; bn < nn.length; bn += 1) {
+ var xn = nn[bn];
+ xn.trim();
+ var Pn = xn.getMaxScale(), Zn = (Pn - 1) * Tn, ga = { positionedGlyphs: [], lineOffset: 0 };
+ m.positionedLines[Ai] = ga;
+ var ha = ga.positionedGlyphs, eo = 0;
+ if (!xn.length()) {
+ pr += ae, ++Ai;
+ continue;
+ }
+ for (var za = 0; za < xn.length(); za++) {
+ var Za = xn.getSection(za), Jo = xn.getSectionIndex(za), to = xn.getCharCode(za), ao = 0, _s = null, jo = null, El = null, Iu = Tn, kl = !(rt === uv.horizontal || !Et && !qr(to) || Et && (m0[to] || Zr(to)));
+ if (Za.imageName) {
+ var Sf = V[Za.imageName];
+ if (!Sf) continue;
+ El = Za.imageName, m.iconsInText = m.iconsInText || true, jo = Sf.paddedRect;
+ var Ff = Sf.displaySize;
+ Za.scale = Za.scale * Tn / or, _s = { width: Ff[0], height: Ff[1], left: Gc, top: -3, advance: kl ? Ff[1] : Ff[0] };
+ var $h = Tn - Ff[1] * Za.scale;
+ ao = Zn + $h, Iu = _s.advance;
+ var ch = kl ? Ff[0] * Za.scale - Tn * Pn : Ff[1] * Za.scale - Tn * Pn;
+ ch > 0 && ch > eo && (eo = ch);
+ } else {
+ var Cl = I[Za.fontStack], yl = Cl && Cl[to];
+ if (yl && yl.rect) jo = yl.rect, _s = yl.metrics;
+ else {
+ var Qu = y[Za.fontStack], gc = Qu && Qu[to];
+ if (!gc) continue;
+ _s = gc.metrics;
+ }
+ ao = (Pn - Za.scale) * Tn;
+ }
+ kl ? (m.verticalizable = true, ha.push({ glyph: to, imageName: El, x: _r, y: pr + ao, vertical: kl, scale: Za.scale, fontStack: Za.fontStack, sectionIndex: Jo, metrics: _s, rect: jo }), _r += Iu * Za.scale + gt) : (ha.push({ glyph: to, imageName: El, x: _r, y: pr + ao, vertical: kl, scale: Za.scale, fontStack: Za.fontStack, sectionIndex: Jo, metrics: _s, rect: jo }), _r += _s.advance * Za.scale + gt);
+ }
+ if (ha.length !== 0) {
+ var Wd = _r - gt;
+ Fr = Math.max(Wd, Fr), vO(ha, 0, ha.length - 1, Hi, eo);
+ }
+ _r = 0;
+ var Xd = ae * Pn + eo;
+ ga.lineOffset = Math.max(eo, Zn), pr += Xd, oi = Math.max(Xd, oi), ++Ai;
+ }
+ var Qh = pr - B1, fv = CS(he), hv = fv.horizontalAlign, Ph = fv.verticalAlign;
+ kd(m.positionedLines, Hi, hv, Ph, Fr, oi, ae, Qh, $.length), m.top += -Ph * Qh, m.bottom = m.top + Qh, m.left += -hv * Fr, m.right = m.left + Fr;
+ }
+ function vO(m, y, I, V, $) {
+ if (!(!V && !$)) for (var ae = m[I], he = ae.metrics.advance * ae.scale, ze = (m[I].x + he) * V, rt = y; rt <= I; rt++) m[rt].x -= ze, m[rt].y += $;
+ }
+ function kd(m, y, I, V, $, ae, he, ze, rt) {
+ var gt = (y - I) * $, Et = 0;
+ ae !== he ? Et = -ze * V - B1 : Et = (-V * rt + 0.5) * he;
+ for (var or = 0, _r = m; or < _r.length; or += 1) for (var pr = _r[or], Fr = 0, oi = pr.positionedGlyphs; Fr < oi.length; Fr += 1) {
+ var Hi = oi[Fr];
+ Hi.x += gt, Hi.y += Et;
+ }
+ }
+ function rp(m, y, I) {
+ var V = CS(I), $ = V.horizontalAlign, ae = V.verticalAlign, he = y[0], ze = y[1], rt = he - m.displaySize[0] * $, gt = rt + m.displaySize[0], Et = ze - m.displaySize[1] * ae, or = Et + m.displaySize[1];
+ return { image: m, top: Et, bottom: or, left: rt, right: gt };
+ }
+ function pm(m, y, I, V, $, ae) {
+ var he = m.image, ze;
+ if (he.content) {
+ var rt = he.content, gt = he.pixelRatio || 1;
+ ze = [rt[0] / gt, rt[1] / gt, he.displaySize[0] - rt[2] / gt, he.displaySize[1] - rt[3] / gt];
+ }
+ var Et = y.left * ae, or = y.right * ae, _r, pr, Fr, oi;
+ I === "width" || I === "both" ? (oi = $[0] + Et - V[3], pr = $[0] + or + V[1]) : (oi = $[0] + (Et + or - he.displaySize[0]) / 2, pr = oi + he.displaySize[0]);
+ var Hi = y.top * ae, Ai = y.bottom * ae;
+ return I === "height" || I === "both" ? (_r = $[1] + Hi - V[0], Fr = $[1] + Ai + V[2]) : (_r = $[1] + (Hi + Ai - he.displaySize[1]) / 2, Fr = _r + he.displaySize[1]), { image: he, top: _r, right: pr, bottom: Fr, left: oi, collisionPadding: ze };
+ }
+ var jd = function(m) {
+ function y(I, V, $, ae) {
+ m.call(this, I, V), this.angle = $, ae !== void 0 && (this.segment = ae);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.clone = function() {
+ return new y(this.x, this.y, this.angle, this.segment);
+ }, y;
+ }(u);
+ X("Anchor", jd);
+ var Cd = 128;
+ function xp(m, y) {
+ var I = y.expression;
+ if (I.kind === "constant") {
+ var V = I.evaluate(new Gn(m + 1));
+ return { kind: "constant", layoutSize: V };
+ } else {
+ if (I.kind === "source") return { kind: "source" };
+ for (var $ = I.zoomStops, ae = I.interpolationType, he = 0; he < $.length && $[he] <= m; ) he++;
+ he = Math.max(0, he - 1);
+ for (var ze = he; ze < $.length && $[ze] < m + 1; ) ze++;
+ ze = Math.min($.length - 1, ze);
+ var rt = $[he], gt = $[ze];
+ if (I.kind === "composite") return { kind: "composite", minZoom: rt, maxZoom: gt, interpolationType: ae };
+ var Et = I.evaluate(new Gn(rt)), or = I.evaluate(new Gn(gt));
+ return { kind: "camera", minZoom: rt, maxZoom: gt, minSize: Et, maxSize: or, interpolationType: ae };
+ }
+ }
+ function BQ(m, y, I) {
+ var V = y.uSize, $ = y.uSizeT, ae = I.lowerSize, he = I.upperSize;
+ return m.kind === "source" ? ae / Cd : m.kind === "composite" ? nl(ae / Cd, he / Cd, $) : V;
+ }
+ function NQ(m, y) {
+ var I = 0, V = 0;
+ if (m.kind === "constant") V = m.layoutSize;
+ else if (m.kind !== "source") {
+ var $ = m.interpolationType, ae = m.minZoom, he = m.maxZoom, ze = $ ? p(Wl.interpolationFactor($, y, ae, he), 0, 1) : 0;
+ m.kind === "camera" ? V = nl(m.minSize, m.maxSize, ze) : I = ze;
+ }
+ return { uSizeT: I, uSize: V };
+ }
+ var Ret = Object.freeze({ __proto__: null, getSizeData: xp, evaluateSizeForFeature: BQ, evaluateSizeForZoom: NQ, SIZE_PACK_FACTOR: Cd });
+ function UQ(m, y, I, V, $) {
+ if (y.segment === void 0) return true;
+ for (var ae = y, he = y.segment + 1, ze = 0; ze > -I / 2; ) {
+ if (he--, he < 0) return false;
+ ze -= m[he].dist(ae), ae = m[he];
+ }
+ ze += m[he].dist(m[he + 1]), he++;
+ for (var rt = [], gt = 0; ze < I / 2; ) {
+ var Et = m[he - 1], or = m[he], _r = m[he + 1];
+ if (!_r) return false;
+ var pr = Et.angleTo(or) - or.angleTo(_r);
+ for (pr = Math.abs((pr + 3 * Math.PI) % (Math.PI * 2) - Math.PI), rt.push({ distance: ze, angleDelta: pr }), gt += pr; ze - rt[0].distance > V; ) gt -= rt.shift().angleDelta;
+ if (gt > $) return false;
+ he++, ze += or.dist(_r);
+ }
+ return true;
+ }
+ function VQ(m) {
+ for (var y = 0, I = 0; I < m.length - 1; I++) y += m[I].dist(m[I + 1]);
+ return y;
+ }
+ function GQ(m, y, I) {
+ return m ? 3 / 5 * y * I : 0;
+ }
+ function HQ(m, y) {
+ return Math.max(m ? m.right - m.left : 0, y ? y.right - y.left : 0);
+ }
+ function Det(m, y, I, V, $, ae) {
+ for (var he = GQ(I, $, ae), ze = HQ(I, V) * ae, rt = 0, gt = VQ(m) / 2, Et = 0; Et < m.length - 1; Et++) {
+ var or = m[Et], _r = m[Et + 1], pr = or.dist(_r);
+ if (rt + pr > gt) {
+ var Fr = (gt - rt) / pr, oi = nl(or.x, _r.x, Fr), Hi = nl(or.y, _r.y, Fr), Ai = new jd(oi, Hi, _r.angleTo(or), Et);
+ return Ai._round(), !he || UQ(m, Ai, ze, he, y) ? Ai : void 0;
+ }
+ rt += pr;
+ }
+ }
+ function Fet(m, y, I, V, $, ae, he, ze, rt) {
+ var gt = GQ(V, ae, he), Et = HQ(V, $), or = Et * he, _r = m[0].x === 0 || m[0].x === rt || m[0].y === 0 || m[0].y === rt;
+ y - or < y / 4 && (y = or + y / 4);
+ var pr = ae * 2, Fr = _r ? y / 2 * ze % y : (Et / 2 + pr) * he * ze % y;
+ return jQ(m, Fr, y, gt, I, or, _r, false, rt);
+ }
+ function jQ(m, y, I, V, $, ae, he, ze, rt) {
+ for (var gt = ae / 2, Et = VQ(m), or = 0, _r = y - I, pr = [], Fr = 0; Fr < m.length - 1; Fr++) {
+ for (var oi = m[Fr], Hi = m[Fr + 1], Ai = oi.dist(Hi), bn = Hi.angleTo(oi); _r + I < or + Ai; ) {
+ _r += I;
+ var nn = (_r - or) / Ai, xn = nl(oi.x, Hi.x, nn), Pn = nl(oi.y, Hi.y, nn);
+ if (xn >= 0 && xn < rt && Pn >= 0 && Pn < rt && _r - gt >= 0 && _r + gt <= Et) {
+ var Zn = new jd(xn, Pn, bn, Fr);
+ Zn._round(), (!V || UQ(m, Zn, ae, V, $)) && pr.push(Zn);
+ }
+ }
+ or += Ai;
+ }
+ return !ze && !pr.length && !he && (pr = jQ(m, or / 2, I, V, $, ae, he, true, rt)), pr;
+ }
+ function WQ(m, y, I, V, $) {
+ for (var ae = [], he = 0; he < m.length; he++) for (var ze = m[he], rt = void 0, gt = 0; gt < ze.length - 1; gt++) {
+ var Et = ze[gt], or = ze[gt + 1];
+ Et.x < y && or.x < y || (Et.x < y ? Et = new u(y, Et.y + (or.y - Et.y) * ((y - Et.x) / (or.x - Et.x)))._round() : or.x < y && (or = new u(y, Et.y + (or.y - Et.y) * ((y - Et.x) / (or.x - Et.x)))._round()), !(Et.y < I && or.y < I) && (Et.y < I ? Et = new u(Et.x + (or.x - Et.x) * ((I - Et.y) / (or.y - Et.y)), I)._round() : or.y < I && (or = new u(Et.x + (or.x - Et.x) * ((I - Et.y) / (or.y - Et.y)), I)._round()), !(Et.x >= V && or.x >= V) && (Et.x >= V ? Et = new u(V, Et.y + (or.y - Et.y) * ((V - Et.x) / (or.x - Et.x)))._round() : or.x >= V && (or = new u(V, Et.y + (or.y - Et.y) * ((V - Et.x) / (or.x - Et.x)))._round()), !(Et.y >= $ && or.y >= $) && (Et.y >= $ ? Et = new u(Et.x + (or.x - Et.x) * (($ - Et.y) / (or.y - Et.y)), $)._round() : or.y >= $ && (or = new u(Et.x + (or.x - Et.x) * (($ - Et.y) / (or.y - Et.y)), $)._round()), (!rt || !Et.equals(rt[rt.length - 1])) && (rt = [Et], ae.push(rt)), rt.push(or)))));
+ }
+ return ae;
+ }
+ var t3 = Gc;
+ function XQ(m, y, I, V) {
+ var $ = [], ae = m.image, he = ae.pixelRatio, ze = ae.paddedRect.w - 2 * t3, rt = ae.paddedRect.h - 2 * t3, gt = m.right - m.left, Et = m.bottom - m.top, or = ae.stretchX || [[0, ze]], _r = ae.stretchY || [[0, rt]], pr = function(Cl, yl) {
+ return Cl + yl[1] - yl[0];
+ }, Fr = or.reduce(pr, 0), oi = _r.reduce(pr, 0), Hi = ze - Fr, Ai = rt - oi, bn = 0, nn = Fr, xn = 0, Pn = oi, Zn = 0, ga = Hi, ha = 0, eo = Ai;
+ if (ae.content && V) {
+ var za = ae.content;
+ bn = n6(or, 0, za[0]), xn = n6(_r, 0, za[1]), nn = n6(or, za[0], za[2]), Pn = n6(_r, za[1], za[3]), Zn = za[0] - bn, ha = za[1] - xn, ga = za[2] - za[0] - nn, eo = za[3] - za[1] - Pn;
+ }
+ var Za = function(Cl, yl, Qu, gc) {
+ var Sf = a6(Cl.stretch - bn, nn, gt, m.left), Ff = o6(Cl.fixed - Zn, ga, Cl.stretch, Fr), $h = a6(yl.stretch - xn, Pn, Et, m.top), ch = o6(yl.fixed - ha, eo, yl.stretch, oi), Wd = a6(Qu.stretch - bn, nn, gt, m.left), Xd = o6(Qu.fixed - Zn, ga, Qu.stretch, Fr), Qh = a6(gc.stretch - xn, Pn, Et, m.top), fv = o6(gc.fixed - ha, eo, gc.stretch, oi), hv = new u(Sf, $h), Ph = new u(Wd, $h), dv = new u(Wd, Qh), bp = new u(Sf, Qh), wy = new u(Ff / he, ch / he), V1 = new u(Xd / he, fv / he), G1 = y * Math.PI / 180;
+ if (G1) {
+ var H1 = Math.sin(G1), u3 = Math.cos(G1), y0 = [u3, -H1, H1, u3];
+ hv._matMult(y0), Ph._matMult(y0), bp._matMult(y0), dv._matMult(y0);
+ }
+ var h6 = Cl.stretch + Cl.fixed, wO = Qu.stretch + Qu.fixed, d6 = yl.stretch + yl.fixed, TO = gc.stretch + gc.fixed, Hp = { x: ae.paddedRect.x + t3 + h6, y: ae.paddedRect.y + t3 + d6, w: wO - h6, h: TO - d6 }, c3 = ga / he / gt, v6 = eo / he / Et;
+ return { tl: hv, tr: Ph, bl: bp, br: dv, tex: Hp, writingMode: void 0, glyphOffset: [0, 0], sectionIndex: 0, pixelOffsetTL: wy, pixelOffsetBR: V1, minFontScaleX: c3, minFontScaleY: v6, isSDF: I };
+ };
+ if (!V || !ae.stretchX && !ae.stretchY) $.push(Za({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: ze + 1 }, { fixed: 0, stretch: rt + 1 }));
+ else for (var Jo = ZQ(or, Hi, Fr), to = ZQ(_r, Ai, oi), ao = 0; ao < Jo.length - 1; ao++) for (var _s = Jo[ao], jo = Jo[ao + 1], El = 0; El < to.length - 1; El++) {
+ var Iu = to[El], kl = to[El + 1];
+ $.push(Za(_s, Iu, jo, kl));
+ }
+ return $;
+ }
+ function n6(m, y, I) {
+ for (var V = 0, $ = 0, ae = m; $ < ae.length; $ += 1) {
+ var he = ae[$];
+ V += Math.max(y, Math.min(I, he[1])) - Math.max(y, Math.min(I, he[0]));
+ }
+ return V;
+ }
+ function ZQ(m, y, I) {
+ for (var V = [{ fixed: -1, stretch: 0 }], $ = 0, ae = m; $ < ae.length; $ += 1) {
+ var he = ae[$], ze = he[0], rt = he[1], gt = V[V.length - 1];
+ V.push({ fixed: ze - gt.stretch, stretch: gt.stretch }), V.push({ fixed: ze - gt.stretch, stretch: gt.stretch + (rt - ze) });
+ }
+ return V.push({ fixed: y + t3, stretch: I }), V;
+ }
+ function a6(m, y, I, V) {
+ return m / y * I + V;
+ }
+ function o6(m, y, I, V) {
+ return m - y * I / V;
+ }
+ function zet(m, y, I, V, $, ae, he, ze) {
+ for (var rt = V.layout.get("text-rotate").evaluate(ae, {}) * Math.PI / 180, gt = [], Et = 0, or = y.positionedLines; Et < or.length; Et += 1) for (var _r = or[Et], pr = 0, Fr = _r.positionedGlyphs; pr < Fr.length; pr += 1) {
+ var oi = Fr[pr];
+ if (oi.rect) {
+ var Hi = oi.rect || {}, Ai = 1, bn = Gp + Ai, nn = true, xn = 1, Pn = 0, Zn = ($ || ze) && oi.vertical, ga = oi.metrics.advance * oi.scale / 2;
+ if (ze && y.verticalizable) {
+ var ha = (oi.scale - 1) * Tn, eo = (Tn - oi.metrics.width * oi.scale) / 2;
+ Pn = _r.lineOffset / 2 - (oi.imageName ? -eo : ha);
+ }
+ if (oi.imageName) {
+ var za = he[oi.imageName];
+ nn = za.sdf, xn = za.pixelRatio, bn = Gc / xn;
+ }
+ var Za = $ ? [oi.x + ga, oi.y] : [0, 0], Jo = $ ? [0, 0] : [oi.x + ga + I[0], oi.y + I[1] - Pn], to = [0, 0];
+ Zn && (to = Jo, Jo = [0, 0]);
+ var ao = (oi.metrics.left - bn) * oi.scale - ga + Jo[0], _s = (-oi.metrics.top - bn) * oi.scale + Jo[1], jo = ao + Hi.w * oi.scale / xn, El = _s + Hi.h * oi.scale / xn, Iu = new u(ao, _s), kl = new u(jo, _s), Cl = new u(ao, El), yl = new u(jo, El);
+ if (Zn) {
+ var Qu = new u(-ga, ga - B1), gc = -Math.PI / 2, Sf = Tn / 2 - ga, Ff = oi.imageName ? Sf : 0, $h = new u(5 - B1 - Sf, -Ff), ch = new (Function.prototype.bind.apply(u, [null].concat(to)))();
+ Iu._rotateAround(gc, Qu)._add($h)._add(ch), kl._rotateAround(gc, Qu)._add($h)._add(ch), Cl._rotateAround(gc, Qu)._add($h)._add(ch), yl._rotateAround(gc, Qu)._add($h)._add(ch);
+ }
+ if (rt) {
+ var Wd = Math.sin(rt), Xd = Math.cos(rt), Qh = [Xd, -Wd, Wd, Xd];
+ Iu._matMult(Qh), kl._matMult(Qh), Cl._matMult(Qh), yl._matMult(Qh);
+ }
+ var fv = new u(0, 0), hv = new u(0, 0), Ph = 0, dv = 0;
+ gt.push({ tl: Iu, tr: kl, bl: Cl, br: yl, tex: Hi, writingMode: y.writingMode, glyphOffset: Za, sectionIndex: oi.sectionIndex, isSDF: nn, pixelOffsetTL: fv, pixelOffsetBR: hv, minFontScaleX: Ph, minFontScaleY: dv });
+ }
+ }
+ return gt;
+ }
+ var s6 = function(y, I, V, $, ae, he, ze, rt, gt, Et) {
+ if (this.boxStartIndex = y.length, gt) {
+ var or = he.top, _r = he.bottom, pr = he.collisionPadding;
+ pr && (or -= pr[1], _r += pr[3]);
+ var Fr = _r - or;
+ Fr > 0 && (Fr = Math.max(10, Fr), this.circleDiameter = Fr);
+ } else {
+ var oi = he.top * ze - rt, Hi = he.bottom * ze + rt, Ai = he.left * ze - rt, bn = he.right * ze + rt, nn = he.collisionPadding;
+ if (nn && (Ai -= nn[0] * ze, oi -= nn[1] * ze, bn += nn[2] * ze, Hi += nn[3] * ze), Et) {
+ var xn = new u(Ai, oi), Pn = new u(bn, oi), Zn = new u(Ai, Hi), ga = new u(bn, Hi), ha = Et * Math.PI / 180;
+ xn._rotate(ha), Pn._rotate(ha), Zn._rotate(ha), ga._rotate(ha), Ai = Math.min(xn.x, Pn.x, Zn.x, ga.x), bn = Math.max(xn.x, Pn.x, Zn.x, ga.x), oi = Math.min(xn.y, Pn.y, Zn.y, ga.y), Hi = Math.max(xn.y, Pn.y, Zn.y, ga.y);
+ }
+ y.emplaceBack(I.x, I.y, Ai, oi, bn, Hi, V, $, ae);
+ }
+ this.boxEndIndex = y.length;
+ }, r3 = function(y, I) {
+ if (y === void 0 && (y = []), I === void 0 && (I = Oet), this.data = y, this.length = this.data.length, this.compare = I, this.length > 0) for (var V = (this.length >> 1) - 1; V >= 0; V--) this._down(V);
+ };
+ r3.prototype.push = function(y) {
+ this.data.push(y), this.length++, this._up(this.length - 1);
+ }, r3.prototype.pop = function() {
+ if (this.length !== 0) {
+ var y = this.data[0], I = this.data.pop();
+ return this.length--, this.length > 0 && (this.data[0] = I, this._down(0)), y;
+ }
+ }, r3.prototype.peek = function() {
+ return this.data[0];
+ }, r3.prototype._up = function(y) {
+ for (var I = this, V = I.data, $ = I.compare, ae = V[y]; y > 0; ) {
+ var he = y - 1 >> 1, ze = V[he];
+ if ($(ae, ze) >= 0) break;
+ V[y] = ze, y = he;
+ }
+ V[y] = ae;
+ }, r3.prototype._down = function(y) {
+ for (var I = this, V = I.data, $ = I.compare, ae = this.length >> 1, he = V[y]; y < ae; ) {
+ var ze = (y << 1) + 1, rt = V[ze], gt = ze + 1;
+ if (gt < this.length && $(V[gt], rt) < 0 && (ze = gt, rt = V[gt]), $(rt, he) >= 0) break;
+ V[y] = rt, y = ze;
+ }
+ V[y] = he;
+ };
+ function Oet(m, y) {
+ return m < y ? -1 : m > y ? 1 : 0;
+ }
+ function qet(m, y, I) {
+ I === void 0 && (I = false);
+ for (var V = 1 / 0, $ = 1 / 0, ae = -1 / 0, he = -1 / 0, ze = m[0], rt = 0; rt < ze.length; rt++) {
+ var gt = ze[rt];
+ (!rt || gt.x < V) && (V = gt.x), (!rt || gt.y < $) && ($ = gt.y), (!rt || gt.x > ae) && (ae = gt.x), (!rt || gt.y > he) && (he = gt.y);
+ }
+ var Et = ae - V, or = he - $, _r = Math.min(Et, or), pr = _r / 2, Fr = new r3([], Bet);
+ if (_r === 0) return new u(V, $);
+ for (var oi = V; oi < ae; oi += _r) for (var Hi = $; Hi < he; Hi += _r) Fr.push(new i3(oi + pr, Hi + pr, pr, m));
+ for (var Ai = Uet(m), bn = Fr.length; Fr.length; ) {
+ var nn = Fr.pop();
+ (nn.d > Ai.d || !Ai.d) && (Ai = nn, I && console.log("found best %d after %d probes", Math.round(1e4 * nn.d) / 1e4, bn)), !(nn.max - Ai.d <= y) && (pr = nn.h / 2, Fr.push(new i3(nn.p.x - pr, nn.p.y - pr, pr, m)), Fr.push(new i3(nn.p.x + pr, nn.p.y - pr, pr, m)), Fr.push(new i3(nn.p.x - pr, nn.p.y + pr, pr, m)), Fr.push(new i3(nn.p.x + pr, nn.p.y + pr, pr, m)), bn += 4);
+ }
+ return I && (console.log("num probes: " + bn), console.log("best distance: " + Ai.d)), Ai.p;
+ }
+ function Bet(m, y) {
+ return y.max - m.max;
+ }
+ function i3(m, y, I, V) {
+ this.p = new u(m, y), this.h = I, this.d = Net(this.p, V), this.max = this.d + this.h * Math.SQRT2;
+ }
+ function Net(m, y) {
+ for (var I = false, V = 1 / 0, $ = 0; $ < y.length; $++) for (var ae = y[$], he = 0, ze = ae.length, rt = ze - 1; he < ze; rt = he++) {
+ var gt = ae[he], Et = ae[rt];
+ gt.y > m.y != Et.y > m.y && m.x < (Et.x - gt.x) * (m.y - gt.y) / (Et.y - gt.y) + gt.x && (I = !I), V = Math.min(V, hg(m, gt, Et));
+ }
+ return (I ? 1 : -1) * Math.sqrt(V);
+ }
+ function Uet(m) {
+ for (var y = 0, I = 0, V = 0, $ = m[0], ae = 0, he = $.length, ze = he - 1; ae < he; ze = ae++) {
+ var rt = $[ae], gt = $[ze], Et = rt.x * gt.y - gt.x * rt.y;
+ I += (rt.x + gt.x) * Et, V += (rt.y + gt.y) * Et, y += Et * 3;
+ }
+ return new i3(I / y, V / y, 0, m);
+ }
+ var n3 = 7, pO = Number.POSITIVE_INFINITY;
+ function YQ(m, y) {
+ function I($, ae) {
+ var he = 0, ze = 0;
+ ae < 0 && (ae = 0);
+ var rt = ae / Math.sqrt(2);
+ switch ($) {
+ case "top-right":
+ case "top-left":
+ ze = rt - n3;
+ break;
+ case "bottom-right":
+ case "bottom-left":
+ ze = -rt + n3;
+ break;
+ case "bottom":
+ ze = -ae + n3;
+ break;
+ case "top":
+ ze = ae - n3;
+ break;
+ }
+ switch ($) {
+ case "top-right":
+ case "bottom-right":
+ he = -rt;
+ break;
+ case "top-left":
+ case "bottom-left":
+ he = rt;
+ break;
+ case "left":
+ he = ae;
+ break;
+ case "right":
+ he = -ae;
+ break;
+ }
+ return [he, ze];
+ }
+ function V($, ae, he) {
+ var ze = 0, rt = 0;
+ switch (ae = Math.abs(ae), he = Math.abs(he), $) {
+ case "top-right":
+ case "top-left":
+ case "top":
+ rt = he - n3;
+ break;
+ case "bottom-right":
+ case "bottom-left":
+ case "bottom":
+ rt = -he + n3;
+ break;
+ }
+ switch ($) {
+ case "top-right":
+ case "bottom-right":
+ case "right":
+ ze = -ae;
+ break;
+ case "top-left":
+ case "bottom-left":
+ case "left":
+ ze = ae;
+ break;
+ }
+ return [ze, rt];
+ }
+ return y[1] !== pO ? V(m, y[0], y[1]) : I(m, y[0]);
+ }
+ function Vet(m, y, I, V, $, ae, he) {
+ m.createArrays();
+ var ze = 512 * m.overscaling;
+ m.tilePixelRatio = Ci / ze, m.compareText = {}, m.iconsNeedLinear = false;
+ var rt = m.layers[0].layout, gt = m.layers[0]._unevaluatedLayout._values, Et = {};
+ if (m.textSizeData.kind === "composite") {
+ var or = m.textSizeData, _r = or.minZoom, pr = or.maxZoom;
+ Et.compositeTextSizes = [gt["text-size"].possiblyEvaluate(new Gn(_r), he), gt["text-size"].possiblyEvaluate(new Gn(pr), he)];
+ }
+ if (m.iconSizeData.kind === "composite") {
+ var Fr = m.iconSizeData, oi = Fr.minZoom, Hi = Fr.maxZoom;
+ Et.compositeIconSizes = [gt["icon-size"].possiblyEvaluate(new Gn(oi), he), gt["icon-size"].possiblyEvaluate(new Gn(Hi), he)];
+ }
+ Et.layoutTextSize = gt["text-size"].possiblyEvaluate(new Gn(m.zoom + 1), he), Et.layoutIconSize = gt["icon-size"].possiblyEvaluate(new Gn(m.zoom + 1), he), Et.textMaxSize = gt["text-size"].possiblyEvaluate(new Gn(18));
+ for (var Ai = rt.get("text-line-height") * Tn, bn = rt.get("text-rotation-alignment") === "map" && rt.get("symbol-placement") !== "point", nn = rt.get("text-keep-upright"), xn = rt.get("text-size"), Pn = function() {
+ var ha = ga[Zn], eo = rt.get("text-font").evaluate(ha, {}, he).join(","), za = xn.evaluate(ha, {}, he), Za = Et.layoutTextSize.evaluate(ha, {}, he), Jo = Et.layoutIconSize.evaluate(ha, {}, he), to = { horizontal: {}, vertical: void 0 }, ao = ha.text, _s = [0, 0];
+ if (ao) {
+ var jo = ao.toString(), El = rt.get("text-letter-spacing").evaluate(ha, {}, he) * Tn, Iu = gr(jo) ? El : 0, kl = rt.get("text-anchor").evaluate(ha, {}, he), Cl = rt.get("text-variable-anchor");
+ if (!Cl) {
+ var yl = rt.get("text-radial-offset").evaluate(ha, {}, he);
+ yl ? _s = YQ(kl, [yl * Tn, pO]) : _s = rt.get("text-offset").evaluate(ha, {}, he).map(function(wy) {
+ return wy * Tn;
+ });
+ }
+ var Qu = bn ? "center" : rt.get("text-justify").evaluate(ha, {}, he), gc = rt.get("symbol-placement"), Sf = gc === "point" ? rt.get("text-max-width").evaluate(ha, {}, he) * Tn : 0, Ff = function() {
+ m.allowVerticalPlacement && jt(jo) && (to.vertical = Qw(ao, y, I, $, eo, Sf, Ai, kl, "left", Iu, _s, uv.vertical, true, gc, Za, za));
+ };
+ if (!bn && Cl) {
+ for (var $h = Qu === "auto" ? Cl.map(function(wy) {
+ return gO(wy);
+ }) : [Qu], ch = false, Wd = 0; Wd < $h.length; Wd++) {
+ var Xd = $h[Wd];
+ if (!to.horizontal[Xd]) if (ch) to.horizontal[Xd] = to.horizontal[0];
+ else {
+ var Qh = Qw(ao, y, I, $, eo, Sf, Ai, "center", Xd, Iu, _s, uv.horizontal, false, gc, Za, za);
+ Qh && (to.horizontal[Xd] = Qh, ch = Qh.positionedLines.length === 1);
+ }
+ }
+ Ff();
+ } else {
+ Qu === "auto" && (Qu = gO(kl));
+ var fv = Qw(ao, y, I, $, eo, Sf, Ai, kl, Qu, Iu, _s, uv.horizontal, false, gc, Za, za);
+ fv && (to.horizontal[Qu] = fv), Ff(), jt(jo) && bn && nn && (to.vertical = Qw(ao, y, I, $, eo, Sf, Ai, kl, Qu, Iu, _s, uv.vertical, false, gc, Za, za));
+ }
+ }
+ var hv = void 0, Ph = false;
+ if (ha.icon && ha.icon.name) {
+ var dv = V[ha.icon.name];
+ dv && (hv = rp($[ha.icon.name], rt.get("icon-offset").evaluate(ha, {}, he), rt.get("icon-anchor").evaluate(ha, {}, he)), Ph = dv.sdf, m.sdfIcons === void 0 ? m.sdfIcons = dv.sdf : m.sdfIcons !== dv.sdf && re("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"), (dv.pixelRatio !== m.pixelRatio || rt.get("icon-rotate").constantOr(1) !== 0) && (m.iconsNeedLinear = true));
+ }
+ var bp = JQ(to.horizontal) || to.vertical;
+ m.iconsInText = bp ? bp.iconsInText : false, (bp || hv) && Get(m, ha, to, hv, V, Et, Za, Jo, _s, Ph, he);
+ }, Zn = 0, ga = m.features; Zn < ga.length; Zn += 1) Pn();
+ ae && m.generateCollisionDebugBuffers();
+ }
+ function gO(m) {
+ switch (m) {
+ case "right":
+ case "top-right":
+ case "bottom-right":
+ return "right";
+ case "left":
+ case "top-left":
+ case "bottom-left":
+ return "left";
+ }
+ return "center";
+ }
+ function Get(m, y, I, V, $, ae, he, ze, rt, gt, Et) {
+ var or = ae.textMaxSize.evaluate(y, {});
+ or === void 0 && (or = he);
+ var _r = m.layers[0].layout, pr = _r.get("icon-offset").evaluate(y, {}, Et), Fr = JQ(I.horizontal), oi = 24, Hi = he / oi, Ai = m.tilePixelRatio * Hi, bn = m.tilePixelRatio * or / oi, nn = m.tilePixelRatio * ze, xn = m.tilePixelRatio * _r.get("symbol-spacing"), Pn = _r.get("text-padding") * m.tilePixelRatio, Zn = _r.get("icon-padding") * m.tilePixelRatio, ga = _r.get("text-max-angle") / 180 * Math.PI, ha = _r.get("text-rotation-alignment") === "map" && _r.get("symbol-placement") !== "point", eo = _r.get("icon-rotation-alignment") === "map" && _r.get("symbol-placement") !== "point", za = _r.get("symbol-placement"), Za = xn / 2, Jo = _r.get("icon-text-fit"), to;
+ V && Jo !== "none" && (m.allowVerticalPlacement && I.vertical && (to = pm(V, I.vertical, Jo, _r.get("icon-text-fit-padding"), pr, Hi)), Fr && (V = pm(V, Fr, Jo, _r.get("icon-text-fit-padding"), pr, Hi)));
+ var ao = function(u3, y0) {
+ y0.x < 0 || y0.x >= Ci || y0.y < 0 || y0.y >= Ci || Het(m, y0, u3, I, V, $, to, m.layers[0], m.collisionBoxArray, y.index, y.sourceLayerIndex, m.index, Ai, Pn, ha, rt, nn, Zn, eo, pr, y, ae, gt, Et, he);
+ };
+ if (za === "line") for (var _s = 0, jo = WQ(y.geometry, 0, 0, Ci, Ci); _s < jo.length; _s += 1) for (var El = jo[_s], Iu = Fet(El, xn, ga, I.vertical || Fr, V, oi, bn, m.overscaling, Ci), kl = 0, Cl = Iu; kl < Cl.length; kl += 1) {
+ var yl = Cl[kl], Qu = Fr;
+ (!Qu || !jet(m, Qu.text, Za, yl)) && ao(El, yl);
+ }
+ else if (za === "line-center") for (var gc = 0, Sf = y.geometry; gc < Sf.length; gc += 1) {
+ var Ff = Sf[gc];
+ if (Ff.length > 1) {
+ var $h = Det(Ff, ga, I.vertical || Fr, V, oi, bn);
+ $h && ao(Ff, $h);
+ }
+ }
+ else if (y.type === "Polygon") for (var ch = 0, Wd = Ww(y.geometry, 0); ch < Wd.length; ch += 1) {
+ var Xd = Wd[ch], Qh = qet(Xd, 16);
+ ao(Xd[0], new jd(Qh.x, Qh.y, 0));
+ }
+ else if (y.type === "LineString") for (var fv = 0, hv = y.geometry; fv < hv.length; fv += 1) {
+ var Ph = hv[fv];
+ ao(Ph, new jd(Ph[0].x, Ph[0].y, 0));
+ }
+ else if (y.type === "Point") for (var dv = 0, bp = y.geometry; dv < bp.length; dv += 1) for (var wy = bp[dv], V1 = 0, G1 = wy; V1 < G1.length; V1 += 1) {
+ var H1 = G1[V1];
+ ao([H1], new jd(H1.x, H1.y, 0));
+ }
+ }
+ var LS = 255, N1 = LS * Cd;
+ function KQ(m, y, I, V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr) {
+ var oi = zet(y, I, ze, $, ae, he, V, m.allowVerticalPlacement), Hi = m.textSizeData, Ai = null;
+ Hi.kind === "source" ? (Ai = [Cd * $.layout.get("text-size").evaluate(he, {})], Ai[0] > N1 && re(m.layerIds[0] + ': Value for "text-size" is >= ' + LS + '. Reduce your "text-size".')) : Hi.kind === "composite" && (Ai = [Cd * pr.compositeTextSizes[0].evaluate(he, {}, Fr), Cd * pr.compositeTextSizes[1].evaluate(he, {}, Fr)], (Ai[0] > N1 || Ai[1] > N1) && re(m.layerIds[0] + ': Value for "text-size" is >= ' + LS + '. Reduce your "text-size".')), m.addSymbols(m.text, oi, Ai, ze, ae, he, gt, y, rt.lineStartIndex, rt.lineLength, _r, Fr);
+ for (var bn = 0, nn = Et; bn < nn.length; bn += 1) {
+ var xn = nn[bn];
+ or[xn] = m.text.placedSymbolArray.length - 1;
+ }
+ return oi.length * 4;
+ }
+ function JQ(m) {
+ for (var y in m) return m[y];
+ return null;
+ }
+ function Het(m, y, I, V, $, ae, he, ze, rt, gt, Et, or, _r, pr, Fr, oi, Hi, Ai, bn, nn, xn, Pn, Zn, ga, ha) {
+ var eo, za = m.addToLineVertexArray(y, I), Za, Jo, to, ao, _s = 0, jo = 0, El = 0, Iu = 0, kl = -1, Cl = -1, yl = {}, Qu = K(""), gc = 0, Sf = 0;
+ if (ze._unevaluatedLayout.getValue("text-radial-offset") === void 0 ? (eo = ze.layout.get("text-offset").evaluate(xn, {}, ga).map(function(RS) {
+ return RS * Tn;
+ }), gc = eo[0], Sf = eo[1]) : (gc = ze.layout.get("text-radial-offset").evaluate(xn, {}, ga) * Tn, Sf = pO), m.allowVerticalPlacement && V.vertical) {
+ var Ff = ze.layout.get("text-rotate").evaluate(xn, {}, ga), $h = Ff + 90, ch = V.vertical;
+ to = new s6(rt, y, gt, Et, or, ch, _r, pr, Fr, $h), he && (ao = new s6(rt, y, gt, Et, or, he, Hi, Ai, Fr, $h));
+ }
+ if ($) {
+ var Wd = ze.layout.get("icon-rotate").evaluate(xn, {}), Xd = ze.layout.get("icon-text-fit") !== "none", Qh = XQ($, Wd, Zn, Xd), fv = he ? XQ(he, Wd, Zn, Xd) : void 0;
+ Jo = new s6(rt, y, gt, Et, or, $, Hi, Ai, false, Wd), _s = Qh.length * 4;
+ var hv = m.iconSizeData, Ph = null;
+ hv.kind === "source" ? (Ph = [Cd * ze.layout.get("icon-size").evaluate(xn, {})], Ph[0] > N1 && re(m.layerIds[0] + ': Value for "icon-size" is >= ' + LS + '. Reduce your "icon-size".')) : hv.kind === "composite" && (Ph = [Cd * Pn.compositeIconSizes[0].evaluate(xn, {}, ga), Cd * Pn.compositeIconSizes[1].evaluate(xn, {}, ga)], (Ph[0] > N1 || Ph[1] > N1) && re(m.layerIds[0] + ': Value for "icon-size" is >= ' + LS + '. Reduce your "icon-size".')), m.addSymbols(m.icon, Qh, Ph, nn, bn, xn, false, y, za.lineStartIndex, za.lineLength, -1, ga), kl = m.icon.placedSymbolArray.length - 1, fv && (jo = fv.length * 4, m.addSymbols(m.icon, fv, Ph, nn, bn, xn, uv.vertical, y, za.lineStartIndex, za.lineLength, -1, ga), Cl = m.icon.placedSymbolArray.length - 1);
+ }
+ for (var dv in V.horizontal) {
+ var bp = V.horizontal[dv];
+ if (!Za) {
+ Qu = K(bp.text);
+ var wy = ze.layout.get("text-rotate").evaluate(xn, {}, ga);
+ Za = new s6(rt, y, gt, Et, or, bp, _r, pr, Fr, wy);
+ }
+ var V1 = bp.positionedLines.length === 1;
+ if (El += KQ(m, y, bp, ae, ze, Fr, xn, oi, za, V.vertical ? uv.horizontal : uv.horizontalOnly, V1 ? Object.keys(V.horizontal) : [dv], yl, kl, Pn, ga), V1) break;
+ }
+ V.vertical && (Iu += KQ(m, y, V.vertical, ae, ze, Fr, xn, oi, za, uv.vertical, ["vertical"], yl, Cl, Pn, ga));
+ var G1 = Za ? Za.boxStartIndex : m.collisionBoxArray.length, H1 = Za ? Za.boxEndIndex : m.collisionBoxArray.length, u3 = to ? to.boxStartIndex : m.collisionBoxArray.length, y0 = to ? to.boxEndIndex : m.collisionBoxArray.length, h6 = Jo ? Jo.boxStartIndex : m.collisionBoxArray.length, wO = Jo ? Jo.boxEndIndex : m.collisionBoxArray.length, d6 = ao ? ao.boxStartIndex : m.collisionBoxArray.length, TO = ao ? ao.boxEndIndex : m.collisionBoxArray.length, Hp = -1, c3 = function(RS, dee) {
+ return RS && RS.circleDiameter ? Math.max(RS.circleDiameter, dee) : dee;
+ };
+ Hp = c3(Za, Hp), Hp = c3(to, Hp), Hp = c3(Jo, Hp), Hp = c3(ao, Hp);
+ var v6 = Hp > -1 ? 1 : 0;
+ v6 && (Hp *= ha / Tn), m.glyphOffsetArray.length >= Pu.MAX_GLYPHS && re("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"), xn.sortKey !== void 0 && m.addToSortKeyRanges(m.symbolInstances.length, xn.sortKey), m.symbolInstances.emplaceBack(y.x, y.y, yl.right >= 0 ? yl.right : -1, yl.center >= 0 ? yl.center : -1, yl.left >= 0 ? yl.left : -1, yl.vertical || -1, kl, Cl, Qu, G1, H1, u3, y0, h6, wO, d6, TO, gt, El, Iu, _s, jo, v6, 0, _r, gc, Sf, Hp);
+ }
+ function jet(m, y, I, V) {
+ var $ = m.compareText;
+ if (!(y in $)) $[y] = [];
+ else for (var ae = $[y], he = ae.length - 1; he >= 0; he--) if (V.dist(ae[he]) < I) return true;
+ return $[y].push(V), false;
+ }
+ var Wet = mg.VectorTileFeature.types, Xet = [{ name: "a_fade_opacity", components: 1, type: "Uint8", offset: 0 }];
+ function l6(m, y, I, V, $, ae, he, ze, rt, gt, Et, or, _r) {
+ var pr = ze ? Math.min(N1, Math.round(ze[0])) : 0, Fr = ze ? Math.min(N1, Math.round(ze[1])) : 0;
+ m.emplaceBack(y, I, Math.round(V * 32), Math.round($ * 32), ae, he, (pr << 1) + (rt ? 1 : 0), Fr, gt * 16, Et * 16, or * 256, _r * 256);
+ }
+ function mO(m, y, I) {
+ m.emplaceBack(y.x, y.y, I), m.emplaceBack(y.x, y.y, I), m.emplaceBack(y.x, y.y, I), m.emplaceBack(y.x, y.y, I);
+ }
+ function Zet(m) {
+ for (var y = 0, I = m.sections; y < I.length; y += 1) {
+ var V = I[y];
+ if (Ii(V.text)) return true;
+ }
+ return false;
+ }
+ var a3 = function(y) {
+ this.layoutVertexArray = new Bn(), this.indexArray = new pn(), this.programConfigurations = y, this.segments = new io(), this.dynamicLayoutVertexArray = new hi(), this.opacityVertexArray = new li(), this.placedSymbolArray = new zo();
+ };
+ a3.prototype.isEmpty = function() {
+ return this.layoutVertexArray.length === 0 && this.indexArray.length === 0 && this.dynamicLayoutVertexArray.length === 0 && this.opacityVertexArray.length === 0;
+ }, a3.prototype.upload = function(y, I, V, $) {
+ this.isEmpty() || (V && (this.layoutVertexBuffer = y.createVertexBuffer(this.layoutVertexArray, te.members), this.indexBuffer = y.createIndexBuffer(this.indexArray, I), this.dynamicLayoutVertexBuffer = y.createVertexBuffer(this.dynamicLayoutVertexArray, fe.members, true), this.opacityVertexBuffer = y.createVertexBuffer(this.opacityVertexArray, Xet, true), this.opacityVertexBuffer.itemSize = 1), (V || $) && this.programConfigurations.upload(y));
+ }, a3.prototype.destroy = function() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy());
+ }, X("SymbolBuffers", a3);
+ var PS = function(y, I, V) {
+ this.layoutVertexArray = new y(), this.layoutAttributes = I, this.indexArray = new V(), this.segments = new io(), this.collisionVertexArray = new Ni();
+ };
+ PS.prototype.upload = function(y) {
+ this.layoutVertexBuffer = y.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = y.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = y.createVertexBuffer(this.collisionVertexArray, Fe.members, true);
+ }, PS.prototype.destroy = function() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy());
+ }, X("CollisionBuffers", PS);
+ var Pu = function(y) {
+ this.collisionBoxArray = y.collisionBoxArray, this.zoom = y.zoom, this.overscaling = y.overscaling, this.layers = y.layers, this.layerIds = this.layers.map(function(rt) {
+ return rt.id;
+ }), this.index = y.index, this.pixelRatio = y.pixelRatio, this.sourceLayerIndex = y.sourceLayerIndex, this.hasPattern = false, this.hasRTLText = false, this.sortKeyRanges = [], this.collisionCircleArray = [], this.placementInvProjMatrix = dy([]), this.placementViewportMatrix = dy([]);
+ var I = this.layers[0], V = I._unevaluatedLayout._values;
+ this.textSizeData = xp(this.zoom, V["text-size"]), this.iconSizeData = xp(this.zoom, V["icon-size"]);
+ var $ = this.layers[0].layout, ae = $.get("symbol-sort-key"), he = $.get("symbol-z-order");
+ this.canOverlap = $.get("text-allow-overlap") || $.get("icon-allow-overlap") || $.get("text-ignore-placement") || $.get("icon-ignore-placement"), this.sortFeaturesByKey = he !== "viewport-y" && ae.constantOr(1) !== void 0;
+ var ze = he === "viewport-y" || he === "auto" && !this.sortFeaturesByKey;
+ this.sortFeaturesByY = ze && this.canOverlap, $.get("symbol-placement") === "point" && (this.writingModes = $.get("text-writing-mode").map(function(rt) {
+ return uv[rt];
+ })), this.stateDependentLayerIds = this.layers.filter(function(rt) {
+ return rt.isStateDependent();
+ }).map(function(rt) {
+ return rt.id;
+ }), this.sourceID = y.sourceID;
+ };
+ Pu.prototype.createArrays = function() {
+ this.text = new a3(new fi(this.layers, this.zoom, function(y) {
+ return /^text/.test(y);
+ })), this.icon = new a3(new fi(this.layers, this.zoom, function(y) {
+ return /^icon/.test(y);
+ })), this.glyphOffsetArray = new Vl(), this.lineVertexArray = new ss(), this.symbolInstances = new al();
+ }, Pu.prototype.calculateGlyphDependencies = function(y, I, V, $, ae) {
+ for (var he = 0; he < y.length; he++) if (I[y.charCodeAt(he)] = true, (V || $) && ae) {
+ var ze = zi[y.charAt(he)];
+ ze && (I[ze.charCodeAt(0)] = true);
+ }
+ }, Pu.prototype.populate = function(y, I, V) {
+ var $ = this.layers[0], ae = $.layout, he = ae.get("text-font"), ze = ae.get("text-field"), rt = ae.get("icon-image"), gt = (ze.value.kind !== "constant" || ze.value.value instanceof $l && !ze.value.value.isEmpty() || ze.value.value.toString().length > 0) && (he.value.kind !== "constant" || he.value.value.length > 0), Et = rt.value.kind !== "constant" || !!rt.value.value || Object.keys(rt.parameters).length > 0, or = ae.get("symbol-sort-key");
+ if (this.features = [], !(!gt && !Et)) {
+ for (var _r = I.iconDependencies, pr = I.glyphDependencies, Fr = I.availableImages, oi = new Gn(this.zoom), Hi = 0, Ai = y; Hi < Ai.length; Hi += 1) {
+ var bn = Ai[Hi], nn = bn.feature, xn = bn.id, Pn = bn.index, Zn = bn.sourceLayerIndex, ga = $._featureFilter.needGeometry, ha = Ja(nn, ga);
+ if ($._featureFilter.filter(oi, ha, V)) {
+ ga || (ha.geometry = zn(nn));
+ var eo = void 0;
+ if (gt) {
+ var za = $.getValueAndResolveTokens("text-field", ha, V, Fr), Za = $l.factory(za);
+ Zet(Za) && (this.hasRTLText = true), (!this.hasRTLText || yo() === "unavailable" || this.hasRTLText && Ms.isParsed()) && (eo = yi(Za, $, ha));
+ }
+ var Jo = void 0;
+ if (Et) {
+ var to = $.getValueAndResolveTokens("icon-image", ha, V, Fr);
+ to instanceof fl ? Jo = to : Jo = fl.fromString(to);
+ }
+ if (!(!eo && !Jo)) {
+ var ao = this.sortFeaturesByKey ? or.evaluate(ha, {}, V) : void 0, _s = { id: xn, text: eo, icon: Jo, index: Pn, sourceLayerIndex: Zn, geometry: ha.geometry, properties: nn.properties, type: Wet[nn.type], sortKey: ao };
+ if (this.features.push(_s), Jo && (_r[Jo.name] = true), eo) {
+ var jo = he.evaluate(ha, {}, V).join(","), El = ae.get("text-rotation-alignment") === "map" && ae.get("symbol-placement") !== "point";
+ this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(uv.vertical) >= 0;
+ for (var Iu = 0, kl = eo.sections; Iu < kl.length; Iu += 1) {
+ var Cl = kl[Iu];
+ if (Cl.image) _r[Cl.image.name] = true;
+ else {
+ var yl = jt(eo.toString()), Qu = Cl.fontStack || jo, gc = pr[Qu] = pr[Qu] || {};
+ this.calculateGlyphDependencies(Cl.text, gc, El, this.allowVerticalPlacement, yl);
+ }
+ }
+ }
+ }
+ }
+ }
+ ae.get("symbol-placement") === "line" && (this.features = vn(this.features)), this.sortFeaturesByKey && this.features.sort(function(Sf, Ff) {
+ return Sf.sortKey - Ff.sortKey;
+ });
+ }
+ }, Pu.prototype.update = function(y, I, V) {
+ this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(y, I, this.layers, V), this.icon.programConfigurations.updatePaintArrays(y, I, this.layers, V));
+ }, Pu.prototype.isEmpty = function() {
+ return this.symbolInstances.length === 0 && !this.hasRTLText;
+ }, Pu.prototype.uploadPending = function() {
+ return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload;
+ }, Pu.prototype.upload = function(y) {
+ !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(y), this.iconCollisionBox.upload(y)), this.text.upload(y, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(y, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = true;
+ }, Pu.prototype.destroyDebugData = function() {
+ this.textCollisionBox.destroy(), this.iconCollisionBox.destroy();
+ }, Pu.prototype.destroy = function() {
+ this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData();
+ }, Pu.prototype.addToLineVertexArray = function(y, I) {
+ var V = this.lineVertexArray.length;
+ if (y.segment !== void 0) {
+ for (var $ = y.dist(I[y.segment + 1]), ae = y.dist(I[y.segment]), he = {}, ze = y.segment + 1; ze < I.length; ze++) he[ze] = { x: I[ze].x, y: I[ze].y, tileUnitDistanceFromAnchor: $ }, ze < I.length - 1 && ($ += I[ze + 1].dist(I[ze]));
+ for (var rt = y.segment || 0; rt >= 0; rt--) he[rt] = { x: I[rt].x, y: I[rt].y, tileUnitDistanceFromAnchor: ae }, rt > 0 && (ae += I[rt - 1].dist(I[rt]));
+ for (var gt = 0; gt < I.length; gt++) {
+ var Et = he[gt];
+ this.lineVertexArray.emplaceBack(Et.x, Et.y, Et.tileUnitDistanceFromAnchor);
+ }
+ }
+ return { lineStartIndex: V, lineLength: this.lineVertexArray.length - V };
+ }, Pu.prototype.addSymbols = function(y, I, V, $, ae, he, ze, rt, gt, Et, or, _r) {
+ for (var pr = y.indexArray, Fr = y.layoutVertexArray, oi = y.segments.prepareSegment(4 * I.length, Fr, pr, this.canOverlap ? he.sortKey : void 0), Hi = this.glyphOffsetArray.length, Ai = oi.vertexLength, bn = this.allowVerticalPlacement && ze === uv.vertical ? Math.PI / 2 : 0, nn = he.text && he.text.sections, xn = 0; xn < I.length; xn++) {
+ var Pn = I[xn], Zn = Pn.tl, ga = Pn.tr, ha = Pn.bl, eo = Pn.br, za = Pn.tex, Za = Pn.pixelOffsetTL, Jo = Pn.pixelOffsetBR, to = Pn.minFontScaleX, ao = Pn.minFontScaleY, _s = Pn.glyphOffset, jo = Pn.isSDF, El = Pn.sectionIndex, Iu = oi.vertexLength, kl = _s[1];
+ l6(Fr, rt.x, rt.y, Zn.x, kl + Zn.y, za.x, za.y, V, jo, Za.x, Za.y, to, ao), l6(Fr, rt.x, rt.y, ga.x, kl + ga.y, za.x + za.w, za.y, V, jo, Jo.x, Za.y, to, ao), l6(Fr, rt.x, rt.y, ha.x, kl + ha.y, za.x, za.y + za.h, V, jo, Za.x, Jo.y, to, ao), l6(Fr, rt.x, rt.y, eo.x, kl + eo.y, za.x + za.w, za.y + za.h, V, jo, Jo.x, Jo.y, to, ao), mO(y.dynamicLayoutVertexArray, rt, bn), pr.emplaceBack(Iu, Iu + 1, Iu + 2), pr.emplaceBack(Iu + 1, Iu + 2, Iu + 3), oi.vertexLength += 4, oi.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(_s[0]), (xn === I.length - 1 || El !== I[xn + 1].sectionIndex) && y.programConfigurations.populatePaintArrays(Fr.length, he, he.index, {}, _r, nn && nn[El]);
+ }
+ y.placedSymbolArray.emplaceBack(rt.x, rt.y, Hi, this.glyphOffsetArray.length - Hi, Ai, gt, Et, rt.segment, V ? V[0] : 0, V ? V[1] : 0, $[0], $[1], ze, 0, false, 0, or);
+ }, Pu.prototype._addCollisionDebugVertex = function(y, I, V, $, ae, he) {
+ return I.emplaceBack(0, 0), y.emplaceBack(V.x, V.y, $, ae, Math.round(he.x), Math.round(he.y));
+ }, Pu.prototype.addCollisionDebugVertices = function(y, I, V, $, ae, he, ze) {
+ var rt = ae.segments.prepareSegment(4, ae.layoutVertexArray, ae.indexArray), gt = rt.vertexLength, Et = ae.layoutVertexArray, or = ae.collisionVertexArray, _r = ze.anchorX, pr = ze.anchorY;
+ this._addCollisionDebugVertex(Et, or, he, _r, pr, new u(y, I)), this._addCollisionDebugVertex(Et, or, he, _r, pr, new u(V, I)), this._addCollisionDebugVertex(Et, or, he, _r, pr, new u(V, $)), this._addCollisionDebugVertex(Et, or, he, _r, pr, new u(y, $)), rt.vertexLength += 4;
+ var Fr = ae.indexArray;
+ Fr.emplaceBack(gt, gt + 1), Fr.emplaceBack(gt + 1, gt + 2), Fr.emplaceBack(gt + 2, gt + 3), Fr.emplaceBack(gt + 3, gt), rt.primitiveLength += 4;
+ }, Pu.prototype.addDebugCollisionBoxes = function(y, I, V, $) {
+ for (var ae = y; ae < I; ae++) {
+ var he = this.collisionBoxArray.get(ae), ze = he.x1, rt = he.y1, gt = he.x2, Et = he.y2;
+ this.addCollisionDebugVertices(ze, rt, gt, Et, $ ? this.textCollisionBox : this.iconCollisionBox, he.anchorPoint, V);
+ }
+ }, Pu.prototype.generateCollisionDebugBuffers = function() {
+ this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new PS(Ji, ct.members, oa), this.iconCollisionBox = new PS(Ji, ct.members, oa);
+ for (var y = 0; y < this.symbolInstances.length; y++) {
+ var I = this.symbolInstances.get(y);
+ this.addDebugCollisionBoxes(I.textBoxStartIndex, I.textBoxEndIndex, I, true), this.addDebugCollisionBoxes(I.verticalTextBoxStartIndex, I.verticalTextBoxEndIndex, I, true), this.addDebugCollisionBoxes(I.iconBoxStartIndex, I.iconBoxEndIndex, I, false), this.addDebugCollisionBoxes(I.verticalIconBoxStartIndex, I.verticalIconBoxEndIndex, I, false);
+ }
+ }, Pu.prototype._deserializeCollisionBoxesForSymbol = function(y, I, V, $, ae, he, ze, rt, gt) {
+ for (var Et = {}, or = I; or < V; or++) {
+ var _r = y.get(or);
+ Et.textBox = { x1: _r.x1, y1: _r.y1, x2: _r.x2, y2: _r.y2, anchorPointX: _r.anchorPointX, anchorPointY: _r.anchorPointY }, Et.textFeatureIndex = _r.featureIndex;
+ break;
+ }
+ for (var pr = $; pr < ae; pr++) {
+ var Fr = y.get(pr);
+ Et.verticalTextBox = { x1: Fr.x1, y1: Fr.y1, x2: Fr.x2, y2: Fr.y2, anchorPointX: Fr.anchorPointX, anchorPointY: Fr.anchorPointY }, Et.verticalTextFeatureIndex = Fr.featureIndex;
+ break;
+ }
+ for (var oi = he; oi < ze; oi++) {
+ var Hi = y.get(oi);
+ Et.iconBox = { x1: Hi.x1, y1: Hi.y1, x2: Hi.x2, y2: Hi.y2, anchorPointX: Hi.anchorPointX, anchorPointY: Hi.anchorPointY }, Et.iconFeatureIndex = Hi.featureIndex;
+ break;
+ }
+ for (var Ai = rt; Ai < gt; Ai++) {
+ var bn = y.get(Ai);
+ Et.verticalIconBox = { x1: bn.x1, y1: bn.y1, x2: bn.x2, y2: bn.y2, anchorPointX: bn.anchorPointX, anchorPointY: bn.anchorPointY }, Et.verticalIconFeatureIndex = bn.featureIndex;
+ break;
+ }
+ return Et;
+ }, Pu.prototype.deserializeCollisionBoxes = function(y) {
+ this.collisionArrays = [];
+ for (var I = 0; I < this.symbolInstances.length; I++) {
+ var V = this.symbolInstances.get(I);
+ this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(y, V.textBoxStartIndex, V.textBoxEndIndex, V.verticalTextBoxStartIndex, V.verticalTextBoxEndIndex, V.iconBoxStartIndex, V.iconBoxEndIndex, V.verticalIconBoxStartIndex, V.verticalIconBoxEndIndex));
+ }
+ }, Pu.prototype.hasTextData = function() {
+ return this.text.segments.get().length > 0;
+ }, Pu.prototype.hasIconData = function() {
+ return this.icon.segments.get().length > 0;
+ }, Pu.prototype.hasDebugData = function() {
+ return this.textCollisionBox && this.iconCollisionBox;
+ }, Pu.prototype.hasTextCollisionBoxData = function() {
+ return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0;
+ }, Pu.prototype.hasIconCollisionBoxData = function() {
+ return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0;
+ }, Pu.prototype.addIndicesForPlacedSymbol = function(y, I) {
+ for (var V = y.placedSymbolArray.get(I), $ = V.vertexStartIndex + V.numGlyphs * 4, ae = V.vertexStartIndex; ae < $; ae += 4) y.indexArray.emplaceBack(ae, ae + 1, ae + 2), y.indexArray.emplaceBack(ae + 1, ae + 2, ae + 3);
+ }, Pu.prototype.getSortedSymbolIndexes = function(y) {
+ if (this.sortedAngle === y && this.symbolInstanceIndexes !== void 0) return this.symbolInstanceIndexes;
+ for (var I = Math.sin(y), V = Math.cos(y), $ = [], ae = [], he = [], ze = 0; ze < this.symbolInstances.length; ++ze) {
+ he.push(ze);
+ var rt = this.symbolInstances.get(ze);
+ $.push(Math.round(I * rt.anchorX + V * rt.anchorY) | 0), ae.push(rt.featureIndex);
+ }
+ return he.sort(function(gt, Et) {
+ return $[gt] - $[Et] || ae[Et] - ae[gt];
+ }), he;
+ }, Pu.prototype.addToSortKeyRanges = function(y, I) {
+ var V = this.sortKeyRanges[this.sortKeyRanges.length - 1];
+ V && V.sortKey === I ? V.symbolInstanceEnd = y + 1 : this.sortKeyRanges.push({ sortKey: I, symbolInstanceStart: y, symbolInstanceEnd: y + 1 });
+ }, Pu.prototype.sortFeatures = function(y) {
+ var I = this;
+ if (this.sortFeaturesByY && this.sortedAngle !== y && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) {
+ this.symbolInstanceIndexes = this.getSortedSymbolIndexes(y), this.sortedAngle = y, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = [];
+ for (var V = 0, $ = this.symbolInstanceIndexes; V < $.length; V += 1) {
+ var ae = $[V], he = this.symbolInstances.get(ae);
+ this.featureSortOrder.push(he.featureIndex), [he.rightJustifiedTextSymbolIndex, he.centerJustifiedTextSymbolIndex, he.leftJustifiedTextSymbolIndex].forEach(function(ze, rt, gt) {
+ ze >= 0 && gt.indexOf(ze) === rt && I.addIndicesForPlacedSymbol(I.text, ze);
+ }), he.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, he.verticalPlacedTextSymbolIndex), he.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, he.placedIconSymbolIndex), he.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, he.verticalPlacedIconSymbolIndex);
+ }
+ this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray);
+ }
+ }, X("SymbolBucket", Pu, { omit: ["layers", "collisionBoxArray", "features", "compareText"] }), Pu.MAX_GLYPHS = 65535, Pu.addDynamicAttributes = mO;
+ function Yet(m, y) {
+ return y.replace(/{([^{}]+)}/g, function(I, V) {
+ return V in m ? String(m[V]) : "";
+ });
+ }
+ var Ket = new Nr({ "symbol-placement": new Me(Rn.layout_symbol["symbol-placement"]), "symbol-spacing": new Me(Rn.layout_symbol["symbol-spacing"]), "symbol-avoid-edges": new Me(Rn.layout_symbol["symbol-avoid-edges"]), "symbol-sort-key": new bt(Rn.layout_symbol["symbol-sort-key"]), "symbol-z-order": new Me(Rn.layout_symbol["symbol-z-order"]), "icon-allow-overlap": new Me(Rn.layout_symbol["icon-allow-overlap"]), "icon-ignore-placement": new Me(Rn.layout_symbol["icon-ignore-placement"]), "icon-optional": new Me(Rn.layout_symbol["icon-optional"]), "icon-rotation-alignment": new Me(Rn.layout_symbol["icon-rotation-alignment"]), "icon-size": new bt(Rn.layout_symbol["icon-size"]), "icon-text-fit": new Me(Rn.layout_symbol["icon-text-fit"]), "icon-text-fit-padding": new Me(Rn.layout_symbol["icon-text-fit-padding"]), "icon-image": new bt(Rn.layout_symbol["icon-image"]), "icon-rotate": new bt(Rn.layout_symbol["icon-rotate"]), "icon-padding": new Me(Rn.layout_symbol["icon-padding"]), "icon-keep-upright": new Me(Rn.layout_symbol["icon-keep-upright"]), "icon-offset": new bt(Rn.layout_symbol["icon-offset"]), "icon-anchor": new bt(Rn.layout_symbol["icon-anchor"]), "icon-pitch-alignment": new Me(Rn.layout_symbol["icon-pitch-alignment"]), "text-pitch-alignment": new Me(Rn.layout_symbol["text-pitch-alignment"]), "text-rotation-alignment": new Me(Rn.layout_symbol["text-rotation-alignment"]), "text-field": new bt(Rn.layout_symbol["text-field"]), "text-font": new bt(Rn.layout_symbol["text-font"]), "text-size": new bt(Rn.layout_symbol["text-size"]), "text-max-width": new bt(Rn.layout_symbol["text-max-width"]), "text-line-height": new Me(Rn.layout_symbol["text-line-height"]), "text-letter-spacing": new bt(Rn.layout_symbol["text-letter-spacing"]), "text-justify": new bt(Rn.layout_symbol["text-justify"]), "text-radial-offset": new bt(Rn.layout_symbol["text-radial-offset"]), "text-variable-anchor": new Me(Rn.layout_symbol["text-variable-anchor"]), "text-anchor": new bt(Rn.layout_symbol["text-anchor"]), "text-max-angle": new Me(Rn.layout_symbol["text-max-angle"]), "text-writing-mode": new Me(Rn.layout_symbol["text-writing-mode"]), "text-rotate": new bt(Rn.layout_symbol["text-rotate"]), "text-padding": new Me(Rn.layout_symbol["text-padding"]), "text-keep-upright": new Me(Rn.layout_symbol["text-keep-upright"]), "text-transform": new bt(Rn.layout_symbol["text-transform"]), "text-offset": new bt(Rn.layout_symbol["text-offset"]), "text-allow-overlap": new Me(Rn.layout_symbol["text-allow-overlap"]), "text-ignore-placement": new Me(Rn.layout_symbol["text-ignore-placement"]), "text-optional": new Me(Rn.layout_symbol["text-optional"]) }), Jet = new Nr({ "icon-opacity": new bt(Rn.paint_symbol["icon-opacity"]), "icon-color": new bt(Rn.paint_symbol["icon-color"]), "icon-halo-color": new bt(Rn.paint_symbol["icon-halo-color"]), "icon-halo-width": new bt(Rn.paint_symbol["icon-halo-width"]), "icon-halo-blur": new bt(Rn.paint_symbol["icon-halo-blur"]), "icon-translate": new Me(Rn.paint_symbol["icon-translate"]), "icon-translate-anchor": new Me(Rn.paint_symbol["icon-translate-anchor"]), "text-opacity": new bt(Rn.paint_symbol["text-opacity"]), "text-color": new bt(Rn.paint_symbol["text-color"], { runtimeType: ql, getOverride: function(m) {
+ return m.textColor;
+ }, hasOverride: function(m) {
+ return !!m.textColor;
+ } }), "text-halo-color": new bt(Rn.paint_symbol["text-halo-color"]), "text-halo-width": new bt(Rn.paint_symbol["text-halo-width"]), "text-halo-blur": new bt(Rn.paint_symbol["text-halo-blur"]), "text-translate": new Me(Rn.paint_symbol["text-translate"]), "text-translate-anchor": new Me(Rn.paint_symbol["text-translate-anchor"]) }), yO = { paint: Jet, layout: Ket }, o3 = function(y) {
+ this.type = y.property.overrides ? y.property.overrides.runtimeType : ac, this.defaultValue = y;
+ };
+ o3.prototype.evaluate = function(y) {
+ if (y.formattedSection) {
+ var I = this.defaultValue.property.overrides;
+ if (I && I.hasOverride(y.formattedSection)) return I.getOverride(y.formattedSection);
+ }
+ return y.feature && y.featureState ? this.defaultValue.evaluate(y.feature, y.featureState) : this.defaultValue.property.specification.default;
+ }, o3.prototype.eachChild = function(y) {
+ if (!this.defaultValue.isConstant()) {
+ var I = this.defaultValue.value;
+ y(I._styleExpression.expression);
+ }
+ }, o3.prototype.outputDefined = function() {
+ return false;
+ }, o3.prototype.serialize = function() {
+ return null;
+ }, X("FormatSectionOverride", o3, { omit: ["defaultValue"] });
+ var $et = function(m) {
+ function y(I) {
+ m.call(this, I, yO);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.recalculate = function(V, $) {
+ if (m.prototype.recalculate.call(this, V, $), this.layout.get("icon-rotation-alignment") === "auto" && (this.layout.get("symbol-placement") !== "point" ? this.layout._values["icon-rotation-alignment"] = "map" : this.layout._values["icon-rotation-alignment"] = "viewport"), this.layout.get("text-rotation-alignment") === "auto" && (this.layout.get("symbol-placement") !== "point" ? this.layout._values["text-rotation-alignment"] = "map" : this.layout._values["text-rotation-alignment"] = "viewport"), this.layout.get("text-pitch-alignment") === "auto" && (this.layout._values["text-pitch-alignment"] = this.layout.get("text-rotation-alignment")), this.layout.get("icon-pitch-alignment") === "auto" && (this.layout._values["icon-pitch-alignment"] = this.layout.get("icon-rotation-alignment")), this.layout.get("symbol-placement") === "point") {
+ var ae = this.layout.get("text-writing-mode");
+ if (ae) {
+ for (var he = [], ze = 0, rt = ae; ze < rt.length; ze += 1) {
+ var gt = rt[ze];
+ he.indexOf(gt) < 0 && he.push(gt);
+ }
+ this.layout._values["text-writing-mode"] = he;
+ } else this.layout._values["text-writing-mode"] = ["horizontal"];
+ }
+ this._setPaintOverrides();
+ }, y.prototype.getValueAndResolveTokens = function(V, $, ae, he) {
+ var ze = this.layout.get(V).evaluate($, {}, ae, he), rt = this._unevaluatedLayout._values[V];
+ return !rt.isDataDriven() && !Ua(rt.value) && ze ? Yet($.properties, ze) : ze;
+ }, y.prototype.createBucket = function(V) {
+ return new Pu(V);
+ }, y.prototype.queryRadius = function() {
+ return 0;
+ }, y.prototype.queryIntersectsFeature = function() {
+ return false;
+ }, y.prototype._setPaintOverrides = function() {
+ for (var V = 0, $ = yO.paint.overridableProperties; V < $.length; V += 1) {
+ var ae = $[V];
+ if (y.hasPaintOverride(this.layout, ae)) {
+ var he = this.paint.get(ae), ze = new o3(he), rt = new Ac(ze, he.property.specification), gt = null;
+ he.value.kind === "constant" || he.value.kind === "source" ? gt = new Vc("source", rt) : gt = new hc("composite", rt, he.value.zoomStops, he.value._interpolationType), this.paint._values[ae] = new dl(he.property, gt, he.parameters);
+ }
+ }
+ }, y.prototype._handleOverridablePaintPropertyUpdate = function(V, $, ae) {
+ return !this.layout || $.isDataDriven() || ae.isDataDriven() ? false : y.hasPaintOverride(this.layout, V);
+ }, y.hasPaintOverride = function(V, $) {
+ var ae = V.get("text-field"), he = yO.paint.properties[$], ze = false, rt = function(or) {
+ for (var _r = 0, pr = or; _r < pr.length; _r += 1) {
+ var Fr = pr[_r];
+ if (he.overrides && he.overrides.hasOverride(Fr)) {
+ ze = true;
+ return;
+ }
+ }
+ };
+ if (ae.value.kind === "constant" && ae.value.value instanceof $l) rt(ae.value.value.sections);
+ else if (ae.value.kind === "source") {
+ var gt = function(or) {
+ if (!ze) if (or instanceof Go && Es(or.value) === pl) {
+ var _r = or.value;
+ rt(_r.sections);
+ } else or instanceof Gu ? rt(or.sections) : or.eachChild(gt);
+ }, Et = ae.value;
+ Et._styleExpression && gt(Et._styleExpression.expression);
+ }
+ return ze;
+ }, y;
+ }(mi), Qet = new Nr({ "background-color": new Me(Rn.paint_background["background-color"]), "background-pattern": new Rr(Rn.paint_background["background-pattern"]), "background-opacity": new Me(Rn.paint_background["background-opacity"]) }), ett = { paint: Qet }, ttt = function(m) {
+ function y(I) {
+ m.call(this, I, ett);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y;
+ }(mi), rtt = new Nr({ "raster-opacity": new Me(Rn.paint_raster["raster-opacity"]), "raster-hue-rotate": new Me(Rn.paint_raster["raster-hue-rotate"]), "raster-brightness-min": new Me(Rn.paint_raster["raster-brightness-min"]), "raster-brightness-max": new Me(Rn.paint_raster["raster-brightness-max"]), "raster-saturation": new Me(Rn.paint_raster["raster-saturation"]), "raster-contrast": new Me(Rn.paint_raster["raster-contrast"]), "raster-resampling": new Me(Rn.paint_raster["raster-resampling"]), "raster-fade-duration": new Me(Rn.paint_raster["raster-fade-duration"]) }), itt = { paint: rtt }, ntt = function(m) {
+ function y(I) {
+ m.call(this, I, itt);
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y;
+ }(mi);
+ function att(m) {
+ var y = [], I = m.id;
+ return I === void 0 && y.push({ message: "layers." + I + ': missing required property "id"' }), m.render === void 0 && y.push({ message: "layers." + I + ': missing required method "render"' }), m.renderingMode && m.renderingMode !== "2d" && m.renderingMode !== "3d" && y.push({ message: "layers." + I + ': property "renderingMode" must be either "2d" or "3d"' }), y;
+ }
+ var ott = function(m) {
+ function y(I) {
+ m.call(this, I, {}), this.implementation = I;
+ }
+ return m && (y.__proto__ = m), y.prototype = Object.create(m && m.prototype), y.prototype.constructor = y, y.prototype.is3D = function() {
+ return this.implementation.renderingMode === "3d";
+ }, y.prototype.hasOffscreenPass = function() {
+ return this.implementation.prerender !== void 0;
+ }, y.prototype.recalculate = function() {
+ }, y.prototype.updateTransitions = function() {
+ }, y.prototype.hasTransition = function() {
+ }, y.prototype.serialize = function() {
+ }, y.prototype.onAdd = function(V) {
+ this.implementation.onAdd && this.implementation.onAdd(V, V.painter.context.gl);
+ }, y.prototype.onRemove = function(V) {
+ this.implementation.onRemove && this.implementation.onRemove(V, V.painter.context.gl);
+ }, y;
+ }(mi), stt = { circle: Y9, heatmap: Uw, hillshade: kC, fill: lb, "fill-extrusion": vm, line: S, symbol: $et, background: ttt, raster: ntt };
+ function ltt(m) {
+ return m.type === "custom" ? new ott(m) : new stt[m.type](m);
+ }
+ var $Q = f.HTMLImageElement, QQ = f.HTMLCanvasElement, eee = f.HTMLVideoElement, tee = f.ImageData, u6 = f.ImageBitmap, hb = function(y, I, V, $) {
+ this.context = y, this.format = V, this.texture = y.gl.createTexture(), this.update(I, $);
+ };
+ hb.prototype.update = function(y, I, V) {
+ var $ = y.width, ae = y.height, he = (!this.size || this.size[0] !== $ || this.size[1] !== ae) && !V, ze = this, rt = ze.context, gt = rt.gl;
+ if (this.useMipmap = !!(I && I.useMipmap), gt.bindTexture(gt.TEXTURE_2D, this.texture), rt.pixelStoreUnpackFlipY.set(false), rt.pixelStoreUnpack.set(1), rt.pixelStoreUnpackPremultiplyAlpha.set(this.format === gt.RGBA && (!I || I.premultiply !== false)), he) this.size = [$, ae], y instanceof $Q || y instanceof QQ || y instanceof eee || y instanceof tee || u6 && y instanceof u6 ? gt.texImage2D(gt.TEXTURE_2D, 0, this.format, this.format, gt.UNSIGNED_BYTE, y) : gt.texImage2D(gt.TEXTURE_2D, 0, this.format, $, ae, 0, this.format, gt.UNSIGNED_BYTE, y.data);
+ else {
+ var Et = V || { x: 0, y: 0 }, or = Et.x, _r = Et.y;
+ y instanceof $Q || y instanceof QQ || y instanceof eee || y instanceof tee || u6 && y instanceof u6 ? gt.texSubImage2D(gt.TEXTURE_2D, 0, or, _r, gt.RGBA, gt.UNSIGNED_BYTE, y) : gt.texSubImage2D(gt.TEXTURE_2D, 0, or, _r, $, ae, gt.RGBA, gt.UNSIGNED_BYTE, y.data);
+ }
+ this.useMipmap && this.isSizePowerOfTwo() && gt.generateMipmap(gt.TEXTURE_2D);
+ }, hb.prototype.bind = function(y, I, V) {
+ var $ = this, ae = $.context, he = ae.gl;
+ he.bindTexture(he.TEXTURE_2D, this.texture), V === he.LINEAR_MIPMAP_NEAREST && !this.isSizePowerOfTwo() && (V = he.LINEAR), y !== this.filter && (he.texParameteri(he.TEXTURE_2D, he.TEXTURE_MAG_FILTER, y), he.texParameteri(he.TEXTURE_2D, he.TEXTURE_MIN_FILTER, V || y), this.filter = y), I !== this.wrap && (he.texParameteri(he.TEXTURE_2D, he.TEXTURE_WRAP_S, I), he.texParameteri(he.TEXTURE_2D, he.TEXTURE_WRAP_T, I), this.wrap = I);
+ }, hb.prototype.isSizePowerOfTwo = function() {
+ return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 === 0;
+ }, hb.prototype.destroy = function() {
+ var y = this.context, I = y.gl;
+ I.deleteTexture(this.texture), this.texture = null;
+ };
+ var _O = function(y) {
+ var I = this;
+ this._callback = y, this._triggered = false, typeof MessageChannel != "undefined" && (this._channel = new MessageChannel(), this._channel.port2.onmessage = function() {
+ I._triggered = false, I._callback();
+ });
+ };
+ _O.prototype.trigger = function() {
+ var y = this;
+ this._triggered || (this._triggered = true, this._channel ? this._channel.port1.postMessage(true) : setTimeout(function() {
+ y._triggered = false, y._callback();
+ }, 0));
+ }, _O.prototype.remove = function() {
+ delete this._channel, this._callback = function() {
+ };
+ };
+ var s3 = function(y, I, V) {
+ this.target = y, this.parent = I, this.mapId = V, this.callbacks = {}, this.tasks = {}, this.taskQueue = [], this.cancelCallbacks = {}, O(["receive", "process"], this), this.invoker = new _O(this.process), this.target.addEventListener("message", this.receive, false), this.globalScope = Le() ? y : f;
+ };
+ s3.prototype.send = function(y, I, V, $, ae) {
+ var he = this;
+ ae === void 0 && (ae = false);
+ var ze = Math.round(Math.random() * 1e18).toString(36).substring(0, 10);
+ V && (this.callbacks[ze] = V);
+ var rt = Se(this.globalScope) ? void 0 : [];
+ return this.target.postMessage({ id: ze, type: y, hasCallback: !!V, targetMapId: $, mustQueue: ae, sourceMapId: this.mapId, data: He(I, rt) }, rt), { cancel: function() {
+ V && delete he.callbacks[ze], he.target.postMessage({ id: ze, type: "", targetMapId: $, sourceMapId: he.mapId });
+ } };
+ }, s3.prototype.receive = function(y) {
+ var I = y.data, V = I.id;
+ if (V && !(I.targetMapId && this.mapId !== I.targetMapId)) if (I.type === "") {
+ delete this.tasks[V];
+ var $ = this.cancelCallbacks[V];
+ delete this.cancelCallbacks[V], $ && $();
+ } else Le() || I.mustQueue ? (this.tasks[V] = I, this.taskQueue.push(V), this.invoker.trigger()) : this.processTask(V, I);
+ }, s3.prototype.process = function() {
+ if (this.taskQueue.length) {
+ var y = this.taskQueue.shift(), I = this.tasks[y];
+ delete this.tasks[y], this.taskQueue.length && this.invoker.trigger(), I && this.processTask(y, I);
+ }
+ }, s3.prototype.processTask = function(y, I) {
+ var V = this;
+ if (I.type === "") {
+ var $ = this.callbacks[y];
+ delete this.callbacks[y], $ && (I.error ? $(Ye(I.error)) : $(null, Ye(I.data)));
+ } else {
+ var ae = false, he = Se(this.globalScope) ? void 0 : [], ze = I.hasCallback ? function(_r, pr) {
+ ae = true, delete V.cancelCallbacks[y], V.target.postMessage({ id: y, type: "", sourceMapId: V.mapId, error: _r ? He(_r) : null, data: He(pr, he) }, he);
+ } : function(_r) {
+ ae = true;
+ }, rt = null, gt = Ye(I.data);
+ if (this.parent[I.type]) rt = this.parent[I.type](I.sourceMapId, gt, ze);
+ else if (this.parent.getWorkerSource) {
+ var Et = I.type.split("."), or = this.parent.getWorkerSource(I.sourceMapId, Et[0], gt.source);
+ rt = or[Et[1]](gt, ze);
+ } else ze(new Error("Could not find function " + I.type));
+ !ae && rt && rt.cancel && (this.cancelCallbacks[y] = rt.cancel);
+ }
+ }, s3.prototype.remove = function() {
+ this.invoker.remove(), this.target.removeEventListener("message", this.receive, false);
+ };
+ function utt(m, y, I) {
+ y = Math.pow(2, I) - y - 1;
+ var V = ree(m * 256, y * 256, I), $ = ree((m + 1) * 256, (y + 1) * 256, I);
+ return V[0] + "," + V[1] + "," + $[0] + "," + $[1];
+ }
+ function ree(m, y, I) {
+ var V = 2 * Math.PI * 6378137 / 256 / Math.pow(2, I), $ = m * V - 2 * Math.PI * 6378137 / 2, ae = y * V - 2 * Math.PI * 6378137 / 2;
+ return [$, ae];
+ }
+ var lh = function(y, I) {
+ y && (I ? this.setSouthWest(y).setNorthEast(I) : y.length === 4 ? this.setSouthWest([y[0], y[1]]).setNorthEast([y[2], y[3]]) : this.setSouthWest(y[0]).setNorthEast(y[1]));
+ };
+ lh.prototype.setNorthEast = function(y) {
+ return this._ne = y instanceof Hc ? new Hc(y.lng, y.lat) : Hc.convert(y), this;
+ }, lh.prototype.setSouthWest = function(y) {
+ return this._sw = y instanceof Hc ? new Hc(y.lng, y.lat) : Hc.convert(y), this;
+ }, lh.prototype.extend = function(y) {
+ var I = this._sw, V = this._ne, $, ae;
+ if (y instanceof Hc) $ = y, ae = y;
+ else if (y instanceof lh) {
+ if ($ = y._sw, ae = y._ne, !$ || !ae) return this;
+ } else {
+ if (Array.isArray(y)) if (y.length === 4 || y.every(Array.isArray)) {
+ var he = y;
+ return this.extend(lh.convert(he));
+ } else {
+ var ze = y;
+ return this.extend(Hc.convert(ze));
+ }
+ return this;
+ }
+ return !I && !V ? (this._sw = new Hc($.lng, $.lat), this._ne = new Hc(ae.lng, ae.lat)) : (I.lng = Math.min($.lng, I.lng), I.lat = Math.min($.lat, I.lat), V.lng = Math.max(ae.lng, V.lng), V.lat = Math.max(ae.lat, V.lat)), this;
+ }, lh.prototype.getCenter = function() {
+ return new Hc((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2);
+ }, lh.prototype.getSouthWest = function() {
+ return this._sw;
+ }, lh.prototype.getNorthEast = function() {
+ return this._ne;
+ }, lh.prototype.getNorthWest = function() {
+ return new Hc(this.getWest(), this.getNorth());
+ }, lh.prototype.getSouthEast = function() {
+ return new Hc(this.getEast(), this.getSouth());
+ }, lh.prototype.getWest = function() {
+ return this._sw.lng;
+ }, lh.prototype.getSouth = function() {
+ return this._sw.lat;
+ }, lh.prototype.getEast = function() {
+ return this._ne.lng;
+ }, lh.prototype.getNorth = function() {
+ return this._ne.lat;
+ }, lh.prototype.toArray = function() {
+ return [this._sw.toArray(), this._ne.toArray()];
+ }, lh.prototype.toString = function() {
+ return "LngLatBounds(" + this._sw.toString() + ", " + this._ne.toString() + ")";
+ }, lh.prototype.isEmpty = function() {
+ return !(this._sw && this._ne);
+ }, lh.prototype.contains = function(y) {
+ var I = Hc.convert(y), V = I.lng, $ = I.lat, ae = this._sw.lat <= $ && $ <= this._ne.lat, he = this._sw.lng <= V && V <= this._ne.lng;
+ return this._sw.lng > this._ne.lng && (he = this._sw.lng >= V && V >= this._ne.lng), ae && he;
+ }, lh.convert = function(y) {
+ return !y || y instanceof lh ? y : new lh(y);
+ };
+ var iee = 63710088e-1, Hc = function(y, I) {
+ if (isNaN(y) || isNaN(I)) throw new Error("Invalid LngLat object: (" + y + ", " + I + ")");
+ if (this.lng = +y, this.lat = +I, this.lat > 90 || this.lat < -90) throw new Error("Invalid LngLat latitude value: must be between -90 and 90");
+ };
+ Hc.prototype.wrap = function() {
+ return new Hc(k(this.lng, -180, 180), this.lat);
+ }, Hc.prototype.toArray = function() {
+ return [this.lng, this.lat];
+ }, Hc.prototype.toString = function() {
+ return "LngLat(" + this.lng + ", " + this.lat + ")";
+ }, Hc.prototype.distanceTo = function(y) {
+ var I = Math.PI / 180, V = this.lat * I, $ = y.lat * I, ae = Math.sin(V) * Math.sin($) + Math.cos(V) * Math.cos($) * Math.cos((y.lng - this.lng) * I), he = iee * Math.acos(Math.min(ae, 1));
+ return he;
+ }, Hc.prototype.toBounds = function(y) {
+ y === void 0 && (y = 0);
+ var I = 40075017, V = 360 * y / I, $ = V / Math.cos(Math.PI / 180 * this.lat);
+ return new lh(new Hc(this.lng - $, this.lat - V), new Hc(this.lng + $, this.lat + V));
+ }, Hc.convert = function(y) {
+ if (y instanceof Hc) return y;
+ if (Array.isArray(y) && (y.length === 2 || y.length === 3)) return new Hc(Number(y[0]), Number(y[1]));
+ if (!Array.isArray(y) && typeof y == "object" && y !== null) return new Hc(Number("lng" in y ? y.lng : y.lon), Number(y.lat));
+ throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]");
+ };
+ var nee = 2 * Math.PI * iee;
+ function aee(m) {
+ return nee * Math.cos(m * Math.PI / 180);
+ }
+ function oee(m) {
+ return (180 + m) / 360;
+ }
+ function see(m) {
+ return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + m * Math.PI / 360))) / 360;
+ }
+ function lee(m, y) {
+ return m / aee(y);
+ }
+ function ctt(m) {
+ return m * 360 - 180;
+ }
+ function xO(m) {
+ var y = 180 - m * 360;
+ return 360 / Math.PI * Math.atan(Math.exp(y * Math.PI / 180)) - 90;
+ }
+ function ftt(m, y) {
+ return m * aee(xO(y));
+ }
+ function htt(m) {
+ return 1 / Math.cos(m * Math.PI / 180);
+ }
+ var db = function(y, I, V) {
+ V === void 0 && (V = 0), this.x = +y, this.y = +I, this.z = +V;
+ };
+ db.fromLngLat = function(y, I) {
+ I === void 0 && (I = 0);
+ var V = Hc.convert(y);
+ return new db(oee(V.lng), see(V.lat), lee(I, V.lat));
+ }, db.prototype.toLngLat = function() {
+ return new Hc(ctt(this.x), xO(this.y));
+ }, db.prototype.toAltitude = function() {
+ return ftt(this.z, this.y);
+ }, db.prototype.meterInMercatorCoordinateUnits = function() {
+ return 1 / nee * htt(xO(this.y));
+ };
+ var vb = function(y, I, V) {
+ this.z = y, this.x = I, this.y = V, this.key = IS(0, y, y, I, V);
+ };
+ vb.prototype.equals = function(y) {
+ return this.z === y.z && this.x === y.x && this.y === y.y;
+ }, vb.prototype.url = function(y, I) {
+ var V = utt(this.x, this.y, this.z), $ = dtt(this.z, this.x, this.y);
+ return y[(this.x + this.y) % y.length].replace("{prefix}", (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace("{z}", String(this.z)).replace("{x}", String(this.x)).replace("{y}", String(I === "tms" ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace("{quadkey}", $).replace("{bbox-epsg-3857}", V);
+ }, vb.prototype.getTilePoint = function(y) {
+ var I = Math.pow(2, this.z);
+ return new u((y.x * I - this.x) * Ci, (y.y * I - this.y) * Ci);
+ }, vb.prototype.toString = function() {
+ return this.z + "/" + this.x + "/" + this.y;
+ };
+ var uee = function(y, I) {
+ this.wrap = y, this.canonical = I, this.key = IS(y, I.z, I.z, I.x, I.y);
+ }, uh = function(y, I, V, $, ae) {
+ this.overscaledZ = y, this.wrap = I, this.canonical = new vb(V, +$, +ae), this.key = IS(I, y, V, $, ae);
+ };
+ uh.prototype.equals = function(y) {
+ return this.overscaledZ === y.overscaledZ && this.wrap === y.wrap && this.canonical.equals(y.canonical);
+ }, uh.prototype.scaledTo = function(y) {
+ var I = this.canonical.z - y;
+ return y > this.canonical.z ? new uh(y, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new uh(y, this.wrap, y, this.canonical.x >> I, this.canonical.y >> I);
+ }, uh.prototype.calculateScaledKey = function(y, I) {
+ var V = this.canonical.z - y;
+ return y > this.canonical.z ? IS(this.wrap * +I, y, this.canonical.z, this.canonical.x, this.canonical.y) : IS(this.wrap * +I, y, y, this.canonical.x >> V, this.canonical.y >> V);
+ }, uh.prototype.isChildOf = function(y) {
+ if (y.wrap !== this.wrap) return false;
+ var I = this.canonical.z - y.canonical.z;
+ return y.overscaledZ === 0 || y.overscaledZ < this.overscaledZ && y.canonical.x === this.canonical.x >> I && y.canonical.y === this.canonical.y >> I;
+ }, uh.prototype.children = function(y) {
+ if (this.overscaledZ >= y) return [new uh(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)];
+ var I = this.canonical.z + 1, V = this.canonical.x * 2, $ = this.canonical.y * 2;
+ return [new uh(I, this.wrap, I, V, $), new uh(I, this.wrap, I, V + 1, $), new uh(I, this.wrap, I, V, $ + 1), new uh(I, this.wrap, I, V + 1, $ + 1)];
+ }, uh.prototype.isLessThan = function(y) {
+ return this.wrap < y.wrap ? true : this.wrap > y.wrap ? false : this.overscaledZ < y.overscaledZ ? true : this.overscaledZ > y.overscaledZ ? false : this.canonical.x < y.canonical.x ? true : this.canonical.x > y.canonical.x ? false : this.canonical.y < y.canonical.y;
+ }, uh.prototype.wrapped = function() {
+ return new uh(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y);
+ }, uh.prototype.unwrapTo = function(y) {
+ return new uh(this.overscaledZ, y, this.canonical.z, this.canonical.x, this.canonical.y);
+ }, uh.prototype.overscaleFactor = function() {
+ return Math.pow(2, this.overscaledZ - this.canonical.z);
+ }, uh.prototype.toUnwrapped = function() {
+ return new uee(this.wrap, this.canonical);
+ }, uh.prototype.toString = function() {
+ return this.overscaledZ + "/" + this.canonical.x + "/" + this.canonical.y;
+ }, uh.prototype.getTilePoint = function(y) {
+ return this.canonical.getTilePoint(new db(y.x - this.wrap, y.y));
+ };
+ function IS(m, y, I, V, $) {
+ m *= 2, m < 0 && (m = m * -1 - 1);
+ var ae = 1 << I;
+ return (ae * ae * m + ae * $ + V).toString(36) + I.toString(36) + y.toString(36);
+ }
+ function dtt(m, y, I) {
+ for (var V = "", $, ae = m; ae > 0; ae--) $ = 1 << ae - 1, V += (y & $ ? 1 : 0) + (I & $ ? 2 : 0);
+ return V;
+ }
+ X("CanonicalTileID", vb), X("OverscaledTileID", uh, { omit: ["posMatrix"] });
+ var xy = function(y, I, V) {
+ if (this.uid = y, I.height !== I.width) throw new RangeError("DEM tiles must be square");
+ if (V && V !== "mapbox" && V !== "terrarium") return re('"' + V + '" is not a valid encoding type. Valid types include "mapbox" and "terrarium".');
+ this.stride = I.height;
+ var $ = this.dim = I.height - 2;
+ this.data = new Uint32Array(I.data.buffer), this.encoding = V || "mapbox";
+ for (var ae = 0; ae < $; ae++) this.data[this._idx(-1, ae)] = this.data[this._idx(0, ae)], this.data[this._idx($, ae)] = this.data[this._idx($ - 1, ae)], this.data[this._idx(ae, -1)] = this.data[this._idx(ae, 0)], this.data[this._idx(ae, $)] = this.data[this._idx(ae, $ - 1)];
+ this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx($, -1)] = this.data[this._idx($ - 1, 0)], this.data[this._idx(-1, $)] = this.data[this._idx(0, $ - 1)], this.data[this._idx($, $)] = this.data[this._idx($ - 1, $ - 1)];
+ };
+ xy.prototype.get = function(y, I) {
+ var V = new Uint8Array(this.data.buffer), $ = this._idx(y, I) * 4, ae = this.encoding === "terrarium" ? this._unpackTerrarium : this._unpackMapbox;
+ return ae(V[$], V[$ + 1], V[$ + 2]);
+ }, xy.prototype.getUnpackVector = function() {
+ return this.encoding === "terrarium" ? [256, 1, 1 / 256, 32768] : [6553.6, 25.6, 0.1, 1e4];
+ }, xy.prototype._idx = function(y, I) {
+ if (y < -1 || y >= this.dim + 1 || I < -1 || I >= this.dim + 1) throw new RangeError("out of range source coordinates for DEM data");
+ return (I + 1) * this.stride + (y + 1);
+ }, xy.prototype._unpackMapbox = function(y, I, V) {
+ return (y * 256 * 256 + I * 256 + V) / 10 - 1e4;
+ }, xy.prototype._unpackTerrarium = function(y, I, V) {
+ return y * 256 + I + V / 256 - 32768;
+ }, xy.prototype.getPixels = function() {
+ return new Eh({ width: this.stride, height: this.stride }, new Uint8Array(this.data.buffer));
+ }, xy.prototype.backfillBorder = function(y, I, V) {
+ if (this.dim !== y.dim) throw new Error("dem dimension mismatch");
+ var $ = I * this.dim, ae = I * this.dim + this.dim, he = V * this.dim, ze = V * this.dim + this.dim;
+ switch (I) {
+ case -1:
+ $ = ae - 1;
+ break;
+ case 1:
+ ae = $ + 1;
+ break;
+ }
+ switch (V) {
+ case -1:
+ he = ze - 1;
+ break;
+ case 1:
+ ze = he + 1;
+ break;
+ }
+ for (var rt = -I * this.dim, gt = -V * this.dim, Et = he; Et < ze; Et++) for (var or = $; or < ae; or++) this.data[this._idx(or, Et)] = y.data[this._idx(or + rt, Et + gt)];
+ }, X("DEMData", xy);
+ function vtt(m, y) {
+ var I = {};
+ if (!y) return I;
+ for (var V = function() {
+ var he = ae[$], ze = he.layerIds.map(function(or) {
+ return y.getLayer(or);
+ }).filter(Boolean);
+ if (ze.length !== 0) {
+ he.layers = ze, he.stateDependentLayerIds && (he.stateDependentLayers = he.stateDependentLayerIds.map(function(or) {
+ return ze.filter(function(_r) {
+ return _r.id === or;
+ })[0];
+ }));
+ for (var rt = 0, gt = ze; rt < gt.length; rt += 1) {
+ var Et = gt[rt];
+ I[Et.id] = he;
+ }
+ }
+ }, $ = 0, ae = m; $ < ae.length; $ += 1) V();
+ return I;
+ }
+ var c6 = function(y) {
+ this._stringToNumber = {}, this._numberToString = [];
+ for (var I = 0; I < y.length; I++) {
+ var V = y[I];
+ this._stringToNumber[V] = I, this._numberToString[I] = V;
+ }
+ };
+ c6.prototype.encode = function(y) {
+ return this._stringToNumber[y];
+ }, c6.prototype.decode = function(y) {
+ return this._numberToString[y];
+ };
+ var f6 = function(y, I, V, $, ae) {
+ this.type = "Feature", this._vectorTileFeature = y, y._z = I, y._x = V, y._y = $, this.properties = y.properties, this.id = ae;
+ }, bO = { geometry: { configurable: true } };
+ bO.geometry.get = function() {
+ return this._geometry === void 0 && (this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry), this._geometry;
+ }, bO.geometry.set = function(m) {
+ this._geometry = m;
+ }, f6.prototype.toJSON = function() {
+ var y = { geometry: this.geometry };
+ for (var I in this) I === "_geometry" || I === "_vectorTileFeature" || (y[I] = this[I]);
+ return y;
+ }, Object.defineProperties(f6.prototype, bO);
+ var l3 = function() {
+ this.state = {}, this.stateChanges = {}, this.deletedStates = {};
+ };
+ l3.prototype.updateState = function(y, I, V) {
+ var $ = String(I);
+ if (this.stateChanges[y] = this.stateChanges[y] || {}, this.stateChanges[y][$] = this.stateChanges[y][$] || {}, x(this.stateChanges[y][$], V), this.deletedStates[y] === null) {
+ this.deletedStates[y] = {};
+ for (var ae in this.state[y]) ae !== $ && (this.deletedStates[y][ae] = null);
+ } else {
+ var he = this.deletedStates[y] && this.deletedStates[y][$] === null;
+ if (he) {
+ this.deletedStates[y][$] = {};
+ for (var ze in this.state[y][$]) V[ze] || (this.deletedStates[y][$][ze] = null);
+ } else for (var rt in V) {
+ var gt = this.deletedStates[y] && this.deletedStates[y][$] && this.deletedStates[y][$][rt] === null;
+ gt && delete this.deletedStates[y][$][rt];
+ }
+ }
+ }, l3.prototype.removeFeatureState = function(y, I, V) {
+ var $ = this.deletedStates[y] === null;
+ if (!$) {
+ var ae = String(I);
+ if (this.deletedStates[y] = this.deletedStates[y] || {}, V && I !== void 0) this.deletedStates[y][ae] !== null && (this.deletedStates[y][ae] = this.deletedStates[y][ae] || {}, this.deletedStates[y][ae][V] = null);
+ else if (I !== void 0) {
+ var he = this.stateChanges[y] && this.stateChanges[y][ae];
+ if (he) {
+ this.deletedStates[y][ae] = {};
+ for (V in this.stateChanges[y][ae]) this.deletedStates[y][ae][V] = null;
+ } else this.deletedStates[y][ae] = null;
+ } else this.deletedStates[y] = null;
+ }
+ }, l3.prototype.getState = function(y, I) {
+ var V = String(I), $ = this.state[y] || {}, ae = this.stateChanges[y] || {}, he = x({}, $[V], ae[V]);
+ if (this.deletedStates[y] === null) return {};
+ if (this.deletedStates[y]) {
+ var ze = this.deletedStates[y][I];
+ if (ze === null) return {};
+ for (var rt in ze) delete he[rt];
+ }
+ return he;
+ }, l3.prototype.initializeTileState = function(y, I) {
+ y.setFeatureState(this.state, I);
+ }, l3.prototype.coalesceChanges = function(y, I) {
+ var V = {};
+ for (var $ in this.stateChanges) {
+ this.state[$] = this.state[$] || {};
+ var ae = {};
+ for (var he in this.stateChanges[$]) this.state[$][he] || (this.state[$][he] = {}), x(this.state[$][he], this.stateChanges[$][he]), ae[he] = this.state[$][he];
+ V[$] = ae;
+ }
+ for (var ze in this.deletedStates) {
+ this.state[ze] = this.state[ze] || {};
+ var rt = {};
+ if (this.deletedStates[ze] === null) for (var gt in this.state[ze]) rt[gt] = {}, this.state[ze][gt] = {};
+ else for (var Et in this.deletedStates[ze]) {
+ var or = this.deletedStates[ze][Et] === null;
+ if (or) this.state[ze][Et] = {};
+ else for (var _r = 0, pr = Object.keys(this.deletedStates[ze][Et]); _r < pr.length; _r += 1) {
+ var Fr = pr[_r];
+ delete this.state[ze][Et][Fr];
+ }
+ rt[Et] = this.state[ze][Et];
+ }
+ V[ze] = V[ze] || {}, x(V[ze], rt);
+ }
+ if (this.stateChanges = {}, this.deletedStates = {}, Object.keys(V).length !== 0) for (var oi in y) {
+ var Hi = y[oi];
+ Hi.setFeatureState(V, I);
+ }
+ };
+ var by = function(y, I) {
+ this.tileID = y, this.x = y.canonical.x, this.y = y.canonical.y, this.z = y.canonical.z, this.grid = new au(Ci, 16, 0), this.grid3D = new au(Ci, 16, 0), this.featureIndexArray = new Ys(), this.promoteId = I;
+ };
+ by.prototype.insert = function(y, I, V, $, ae, he) {
+ var ze = this.featureIndexArray.length;
+ this.featureIndexArray.emplaceBack(V, $, ae);
+ for (var rt = he ? this.grid3D : this.grid, gt = 0; gt < I.length; gt++) {
+ for (var Et = I[gt], or = [1 / 0, 1 / 0, -1 / 0, -1 / 0], _r = 0; _r < Et.length; _r++) {
+ var pr = Et[_r];
+ or[0] = Math.min(or[0], pr.x), or[1] = Math.min(or[1], pr.y), or[2] = Math.max(or[2], pr.x), or[3] = Math.max(or[3], pr.y);
+ }
+ or[0] < Ci && or[1] < Ci && or[2] >= 0 && or[3] >= 0 && rt.insert(ze, or[0], or[1], or[2], or[3]);
+ }
+ }, by.prototype.loadVTLayers = function() {
+ return this.vtLayers || (this.vtLayers = new mg.VectorTile(new Xa(this.rawTileData)).layers, this.sourceLayerCoder = new c6(this.vtLayers ? Object.keys(this.vtLayers).sort() : ["_geojsonTileLayer"])), this.vtLayers;
+ }, by.prototype.query = function(y, I, V, $) {
+ var ae = this;
+ this.loadVTLayers();
+ for (var he = y.params || {}, ze = Ci / y.tileSize / y.scale, rt = be(he.filter), gt = y.queryGeometry, Et = y.queryPadding * ze, or = fee(gt), _r = this.grid.query(or.minX - Et, or.minY - Et, or.maxX + Et, or.maxY + Et), pr = fee(y.cameraQueryGeometry), Fr = this.grid3D.query(pr.minX - Et, pr.minY - Et, pr.maxX + Et, pr.maxY + Et, function(Zn, ga, ha, eo) {
+ return mp(y.cameraQueryGeometry, Zn - Et, ga - Et, ha + Et, eo + Et);
+ }), oi = 0, Hi = Fr; oi < Hi.length; oi += 1) {
+ var Ai = Hi[oi];
+ _r.push(Ai);
+ }
+ _r.sort(ptt);
+ for (var bn = {}, nn, xn = function(Zn) {
+ var ga = _r[Zn];
+ if (ga !== nn) {
+ nn = ga;
+ var ha = ae.featureIndexArray.get(ga), eo = null;
+ ae.loadMatchingFeature(bn, ha.bucketIndex, ha.sourceLayerIndex, ha.featureIndex, rt, he.layers, he.availableImages, I, V, $, function(za, Za, Jo) {
+ return eo || (eo = zn(za)), Za.queryIntersectsFeature(gt, za, Jo, eo, ae.z, y.transform, ze, y.pixelPosMatrix);
+ });
+ }
+ }, Pn = 0; Pn < _r.length; Pn++) xn(Pn);
+ return bn;
+ }, by.prototype.loadMatchingFeature = function(y, I, V, $, ae, he, ze, rt, gt, Et, or) {
+ var _r = this.bucketLayerIDs[I];
+ if (!(he && !N(he, _r))) {
+ var pr = this.sourceLayerCoder.decode(V), Fr = this.vtLayers[pr], oi = Fr.feature($);
+ if (ae.needGeometry) {
+ var Hi = Ja(oi, true);
+ if (!ae.filter(new Gn(this.tileID.overscaledZ), Hi, this.tileID.canonical)) return;
+ } else if (!ae.filter(new Gn(this.tileID.overscaledZ), oi)) return;
+ for (var Ai = this.getId(oi, pr), bn = 0; bn < _r.length; bn++) {
+ var nn = _r[bn];
+ if (!(he && he.indexOf(nn) < 0)) {
+ var xn = rt[nn];
+ if (xn) {
+ var Pn = {};
+ Ai !== void 0 && Et && (Pn = Et.getState(xn.sourceLayer || "_geojsonTileLayer", Ai));
+ var Zn = x({}, gt[nn]);
+ Zn.paint = cee(Zn.paint, xn.paint, oi, Pn, ze), Zn.layout = cee(Zn.layout, xn.layout, oi, Pn, ze);
+ var ga = !or || or(oi, xn, Pn);
+ if (ga) {
+ var ha = new f6(oi, this.z, this.x, this.y, Ai);
+ ha.layer = Zn;
+ var eo = y[nn];
+ eo === void 0 && (eo = y[nn] = []), eo.push({ featureIndex: $, feature: ha, intersectionZ: ga });
+ }
+ }
+ }
+ }
+ }
+ }, by.prototype.lookupSymbolFeatures = function(y, I, V, $, ae, he, ze, rt) {
+ var gt = {};
+ this.loadVTLayers();
+ for (var Et = be(ae), or = 0, _r = y; or < _r.length; or += 1) {
+ var pr = _r[or];
+ this.loadMatchingFeature(gt, V, $, pr, Et, he, ze, rt, I);
+ }
+ return gt;
+ }, by.prototype.hasLayer = function(y) {
+ for (var I = 0, V = this.bucketLayerIDs; I < V.length; I += 1) for (var $ = V[I], ae = 0, he = $; ae < he.length; ae += 1) {
+ var ze = he[ae];
+ if (y === ze) return true;
+ }
+ return false;
+ }, by.prototype.getId = function(y, I) {
+ var V = y.id;
+ if (this.promoteId) {
+ var $ = typeof this.promoteId == "string" ? this.promoteId : this.promoteId[I];
+ V = y.properties[$], typeof V == "boolean" && (V = Number(V));
+ }
+ return V;
+ }, X("FeatureIndex", by, { omit: ["rawTileData", "sourceLayerCoder"] });
+ function cee(m, y, I, V, $) {
+ return G(m, function(ae, he) {
+ var ze = y instanceof Sc ? y.get(he) : null;
+ return ze && ze.evaluate ? ze.evaluate(I, V, $) : ze;
+ });
+ }
+ function fee(m) {
+ for (var y = 1 / 0, I = 1 / 0, V = -1 / 0, $ = -1 / 0, ae = 0, he = m; ae < he.length; ae += 1) {
+ var ze = he[ae];
+ y = Math.min(y, ze.x), I = Math.min(I, ze.y), V = Math.max(V, ze.x), $ = Math.max($, ze.y);
+ }
+ return { minX: y, minY: I, maxX: V, maxY: $ };
+ }
+ function ptt(m, y) {
+ return y - m;
+ }
+ var gtt = 3e4, Jh = function(y, I) {
+ this.tileID = y, this.uid = g(), this.uses = 0, this.tileSize = I, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = false, this.hasRTLText = false, this.dependencies = {}, this.expiredRequestCount = 0, this.state = "loading";
+ };
+ Jh.prototype.registerFadeDuration = function(y) {
+ var I = y + this.timeAdded;
+ I < lt.now() || this.fadeEndTime && I < this.fadeEndTime || (this.fadeEndTime = I);
+ }, Jh.prototype.wasRequested = function() {
+ return this.state === "errored" || this.state === "loaded" || this.state === "reloading";
+ }, Jh.prototype.loadVectorData = function(y, I, V) {
+ if (this.hasData() && this.unloadVectorData(), this.state = "loaded", !y) {
+ this.collisionBoxArray = new Va();
+ return;
+ }
+ y.featureIndex && (this.latestFeatureIndex = y.featureIndex, y.rawTileData ? (this.latestRawTileData = y.rawTileData, this.latestFeatureIndex.rawTileData = y.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = y.collisionBoxArray, this.buckets = vtt(y.buckets, I.style), this.hasSymbolBuckets = false;
+ for (var $ in this.buckets) {
+ var ae = this.buckets[$];
+ if (ae instanceof Pu) if (this.hasSymbolBuckets = true, V) ae.justReloaded = true;
+ else break;
+ }
+ if (this.hasRTLText = false, this.hasSymbolBuckets) for (var he in this.buckets) {
+ var ze = this.buckets[he];
+ if (ze instanceof Pu && ze.hasRTLText) {
+ this.hasRTLText = true, Xs();
+ break;
+ }
+ }
+ this.queryPadding = 0;
+ for (var rt in this.buckets) {
+ var gt = this.buckets[rt];
+ this.queryPadding = Math.max(this.queryPadding, I.style.getLayer(rt).queryRadius(gt));
+ }
+ y.imageAtlas && (this.imageAtlas = y.imageAtlas), y.glyphAtlasImage && (this.glyphAtlasImage = y.glyphAtlasImage);
+ }, Jh.prototype.unloadVectorData = function() {
+ for (var y in this.buckets) this.buckets[y].destroy();
+ this.buckets = {}, this.imageAtlasTexture && this.imageAtlasTexture.destroy(), this.imageAtlas && (this.imageAtlas = null), this.glyphAtlasTexture && this.glyphAtlasTexture.destroy(), this.latestFeatureIndex = null, this.state = "unloaded";
+ }, Jh.prototype.getBucket = function(y) {
+ return this.buckets[y.id];
+ }, Jh.prototype.upload = function(y) {
+ for (var I in this.buckets) {
+ var V = this.buckets[I];
+ V.uploadPending() && V.upload(y);
+ }
+ var $ = y.gl;
+ this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new hb(y, this.imageAtlas.image, $.RGBA), this.imageAtlas.uploaded = true), this.glyphAtlasImage && (this.glyphAtlasTexture = new hb(y, this.glyphAtlasImage, $.ALPHA), this.glyphAtlasImage = null);
+ }, Jh.prototype.prepare = function(y) {
+ this.imageAtlas && this.imageAtlas.patchUpdatedImages(y, this.imageAtlasTexture);
+ }, Jh.prototype.queryRenderedFeatures = function(y, I, V, $, ae, he, ze, rt, gt, Et) {
+ return !this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData ? {} : this.latestFeatureIndex.query({ queryGeometry: $, cameraQueryGeometry: ae, scale: he, tileSize: this.tileSize, pixelPosMatrix: Et, transform: rt, params: ze, queryPadding: this.queryPadding * gt }, y, I, V);
+ }, Jh.prototype.querySourceFeatures = function(y, I) {
+ var V = this.latestFeatureIndex;
+ if (!(!V || !V.rawTileData)) {
+ var $ = V.loadVTLayers(), ae = I ? I.sourceLayer : "", he = $._geojsonTileLayer || $[ae];
+ if (he) for (var ze = be(I && I.filter), rt = this.tileID.canonical, gt = rt.z, Et = rt.x, or = rt.y, _r = { z: gt, x: Et, y: or }, pr = 0; pr < he.length; pr++) {
+ var Fr = he.feature(pr);
+ if (ze.needGeometry) {
+ var oi = Ja(Fr, true);
+ if (!ze.filter(new Gn(this.tileID.overscaledZ), oi, this.tileID.canonical)) continue;
+ } else if (!ze.filter(new Gn(this.tileID.overscaledZ), Fr)) continue;
+ var Hi = V.getId(Fr, ae), Ai = new f6(Fr, gt, Et, or, Hi);
+ Ai.tile = _r, y.push(Ai);
+ }
+ }
+ }, Jh.prototype.hasData = function() {
+ return this.state === "loaded" || this.state === "reloading" || this.state === "expired";
+ }, Jh.prototype.patternsLoaded = function() {
+ return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length;
+ }, Jh.prototype.setExpiryData = function(y) {
+ var I = this.expirationTime;
+ if (y.cacheControl) {
+ var V = ge(y.cacheControl);
+ V["max-age"] && (this.expirationTime = Date.now() + V["max-age"] * 1e3);
+ } else y.expires && (this.expirationTime = new Date(y.expires).getTime());
+ if (this.expirationTime) {
+ var $ = Date.now(), ae = false;
+ if (this.expirationTime > $) ae = false;
+ else if (!I) ae = true;
+ else if (this.expirationTime < I) ae = true;
+ else {
+ var he = this.expirationTime - I;
+ he ? this.expirationTime = $ + Math.max(he, gtt) : ae = true;
+ }
+ ae ? (this.expiredRequestCount++, this.state = "expired") : this.expiredRequestCount = 0;
+ }
+ }, Jh.prototype.getExpiryTimeout = function() {
+ if (this.expirationTime) return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - (/* @__PURE__ */ new Date()).getTime(), Math.pow(2, 31) - 1);
+ }, Jh.prototype.setFeatureState = function(y, I) {
+ if (!(!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || Object.keys(y).length === 0)) {
+ var V = this.latestFeatureIndex.loadVTLayers();
+ for (var $ in this.buckets) if (I.style.hasLayer($)) {
+ var ae = this.buckets[$], he = ae.layers[0].sourceLayer || "_geojsonTileLayer", ze = V[he], rt = y[he];
+ if (!(!ze || !rt || Object.keys(rt).length === 0)) {
+ ae.update(rt, ze, this.imageAtlas && this.imageAtlas.patternPositions || {});
+ var gt = I && I.style && I.style.getLayer($);
+ gt && (this.queryPadding = Math.max(this.queryPadding, gt.queryRadius(ae)));
+ }
+ }
+ }
+ }, Jh.prototype.holdingForFade = function() {
+ return this.symbolFadeHoldUntil !== void 0;
+ }, Jh.prototype.symbolFadeFinished = function() {
+ return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < lt.now();
+ }, Jh.prototype.clearFadeHold = function() {
+ this.symbolFadeHoldUntil = void 0;
+ }, Jh.prototype.setHoldDuration = function(y) {
+ this.symbolFadeHoldUntil = lt.now() + y;
+ }, Jh.prototype.setDependencies = function(y, I) {
+ for (var V = {}, $ = 0, ae = I; $ < ae.length; $ += 1) {
+ var he = ae[$];
+ V[he] = true;
+ }
+ this.dependencies[y] = V;
+ }, Jh.prototype.hasDependency = function(y, I) {
+ for (var V = 0, $ = y; V < $.length; V += 1) {
+ var ae = $[V], he = this.dependencies[ae];
+ if (he) for (var ze = 0, rt = I; ze < rt.length; ze += 1) {
+ var gt = rt[ze];
+ if (he[gt]) return true;
+ }
+ }
+ return false;
+ };
+ var mtt = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"], U1 = f.performance, hee = function(y) {
+ this._marks = { start: [y.url, "start"].join("#"), end: [y.url, "end"].join("#"), measure: y.url.toString() }, U1.mark(this._marks.start);
+ };
+ hee.prototype.finish = function() {
+ U1.mark(this._marks.end);
+ var y = U1.getEntriesByName(this._marks.measure);
+ return y.length === 0 && (U1.measure(this._marks.measure, this._marks.start, this._marks.end), y = U1.getEntriesByName(this._marks.measure), U1.clearMarks(this._marks.start), U1.clearMarks(this._marks.end), U1.clearMeasures(this._marks.measure)), y;
+ }, i.Actor = s3, i.AlphaImage = Dv, i.CanonicalTileID = vb, i.CollisionBoxArray = Va, i.Color = cs, i.DEMData = xy, i.DataConstantProperty = Me, i.DictionaryCoder = c6, i.EXTENT = Ci, i.ErrorEvent = da, i.EvaluationParameters = Gn, i.Event = Xo, i.Evented = Wn, i.FeatureIndex = by, i.FillBucket = yp, i.FillExtrusionBucket = Vp, i.ImageAtlas = yg, i.ImagePosition = Yf, i.LineBucket = sh, i.LngLat = Hc, i.LngLatBounds = lh, i.MercatorCoordinate = db, i.ONE_EM = Tn, i.OverscaledTileID = uh, i.Point = u, i.Point$1 = u, i.Properties = Nr, i.Protobuf = Xa, i.RGBAImage = Eh, i.RequestManager = $e, i.RequestPerformance = hee, i.ResourceType = ra, i.SegmentVector = io, i.SourceFeatureState = l3, i.StructArrayLayout1ui2 = ba, i.StructArrayLayout2f1f2i16 = Vi, i.StructArrayLayout2i4 = Yr, i.StructArrayLayout3ui6 = pn, i.StructArrayLayout4i8 = xi, i.SymbolBucket = Pu, i.Texture = hb, i.Tile = Jh, i.Transitionable = Uo, i.Uniform1f = Qe, i.Uniform1i = Ve, i.Uniform2f = at, i.Uniform3f = Ct, i.Uniform4f = Ot, i.UniformColor = Rt, i.UniformMatrix4f = Dt, i.UnwrappedTileID = uee, i.ValidationError = _a, i.WritingMode = uv, i.ZoomHistory = kt, i.add = Rv, i.addDynamicAttributes = mO, i.asyncAll = E, i.bezier = _, i.bindAll = O, i.browser = lt, i.cacheEntryPossiblyAdded = ji, i.clamp = p, i.clearTileCache = wi, i.clipLine = WQ, i.clone = C1, i.clone$1 = j, i.clone$2 = Ow, i.collisionCircleLayout = Lt, i.config = pt, i.create = k1, i.create$1 = Zh, i.create$2 = vg, i.createCommonjsModule = a, i.createExpression = oo, i.createLayout = Wi, i.createStyleLayer = ltt, i.cross = G9, i.deepEqual = h, i.dot = V9, i.dot$1 = Z9, i.ease = b, i.emitValidationErrors = Lu, i.endsWith = U, i.enforceCacheSizeLimit = In, i.evaluateSizeForFeature = BQ, i.evaluateSizeForZoom = NQ, i.evaluateVariableOffset = YQ, i.evented = Ia, i.extend = x, i.featureFilter = be, i.filterObject = Z, i.fromRotation = am, i.getAnchorAlignment = CS, i.getAnchorJustification = gO, i.getArrayBuffer = ri, i.getImage = ua, i.getJSON = Xr, i.getRTLTextPluginStatus = yo, i.getReferrer = Ut, i.getVideo = ma, i.identity = dy, i.invert = om, i.isChar = nt, i.isMapboxURL = St, i.keysDifference = L, i.makeRequest = Er, i.mapObject = G, i.mercatorXfromLng = oee, i.mercatorYfromLat = see, i.mercatorZfromAltitude = lee, i.mul = Yx, i.multiply = sm, i.mvt = mg, i.nextPowerOfTwo = A, i.normalize = Kx, i.number = nl, i.offscreenCanvasSupported = Fn, i.ortho = wu, i.parseGlyphPBF = p0, i.pbf = Xa, i.performSymbolLayout = Vet, i.perspective = L1, i.pick = C, i.plugin = Ms, i.polygonIntersectsPolygon = so, i.postMapLoadEvent = We, i.postTurnstileEvent = Ge, i.potpack = ep, i.refProperties = mtt, i.register = X, i.registerForPluginStateChange = Da, i.renderColorRamp = Qx, i.rotate = hy, i.rotateX = Sd, i.rotateZ = vy, i.scale = tu, i.scale$1 = X9, i.scale$2 = qw, i.setCacheLimits = On, i.setRTLTextPlugin = go, i.sphericalToCartesian = Ce, i.sqrLen = uS, i.styleSpec = Rn, i.sub = j9, i.symbolSize = Ret, i.transformMat3 = H9, i.transformMat4 = py, i.translate = vc, i.triggerPluginCompletionEvent = ia, i.uniqueId = g, i.validateCustomStyleLayer = att, i.validateLight = To, i.validateStyle = wo, i.values = T, i.vectorTile = mg, i.version = o, i.warnOnce = re, i.webpSupported = Vt, i.window = f, i.wrap = k;
+ }), n(["./shared"], function(i) {
+ function a(Ut) {
+ var wt = typeof Ut;
+ if (wt === "number" || wt === "boolean" || wt === "string" || Ut === void 0 || Ut === null) return JSON.stringify(Ut);
+ if (Array.isArray(Ut)) {
+ for (var rr = "[", nr = 0, Er = Ut; nr < Er.length; nr += 1) {
+ var Xr = Er[nr];
+ rr += a(Xr) + ",";
+ }
+ return rr + "]";
+ }
+ for (var ri = Object.keys(Ut).sort(), Qr = "{", Oi = 0; Oi < ri.length; Oi++) Qr += JSON.stringify(ri[Oi]) + ":" + a(Ut[ri[Oi]]) + ",";
+ return Qr + "}";
+ }
+ function o(Ut) {
+ for (var wt = "", rr = 0, nr = i.refProperties; rr < nr.length; rr += 1) {
+ var Er = nr[rr];
+ wt += "/" + a(Ut[Er]);
+ }
+ return wt;
+ }
+ function s(Ut, wt) {
+ for (var rr = {}, nr = 0; nr < Ut.length; nr++) {
+ var Er = wt && wt[Ut[nr].id] || o(Ut[nr]);
+ wt && (wt[Ut[nr].id] = Er);
+ var Xr = rr[Er];
+ Xr || (Xr = rr[Er] = []), Xr.push(Ut[nr]);
+ }
+ var ri = [];
+ for (var Qr in rr) ri.push(rr[Qr]);
+ return ri;
+ }
+ var l = function(wt) {
+ this.keyCache = {}, wt && this.replace(wt);
+ };
+ l.prototype.replace = function(wt) {
+ this._layerConfigs = {}, this._layers = {}, this.update(wt, []);
+ }, l.prototype.update = function(wt, rr) {
+ for (var nr = this, Er = 0, Xr = wt; Er < Xr.length; Er += 1) {
+ var ri = Xr[Er];
+ this._layerConfigs[ri.id] = ri;
+ var Qr = this._layers[ri.id] = i.createStyleLayer(ri);
+ Qr._featureFilter = i.featureFilter(Qr.filter), this.keyCache[ri.id] && delete this.keyCache[ri.id];
+ }
+ for (var Oi = 0, $i = rr; Oi < $i.length; Oi += 1) {
+ var tn = $i[Oi];
+ delete this.keyCache[tn], delete this._layerConfigs[tn], delete this._layers[tn];
+ }
+ this.familiesBySource = {};
+ for (var fn = s(i.values(this._layerConfigs), this.keyCache), yn = 0, Sn = fn; yn < Sn.length; yn += 1) {
+ var Ba = Sn[yn], ua = Ba.map(function(Wn) {
+ return nr._layers[Wn.id];
+ }), ma = ua[0];
+ if (ma.visibility !== "none") {
+ var Wa = ma.source || "", Fa = this.familiesBySource[Wa];
+ Fa || (Fa = this.familiesBySource[Wa] = {});
+ var Xo = ma.sourceLayer || "_geojsonTileLayer", da = Fa[Xo];
+ da || (da = Fa[Xo] = []), da.push(ua);
+ }
+ }
+ };
+ var u = 1, c = function(wt) {
+ var rr = {}, nr = [];
+ for (var Er in wt) {
+ var Xr = wt[Er], ri = rr[Er] = {};
+ for (var Qr in Xr) {
+ var Oi = Xr[+Qr];
+ if (!(!Oi || Oi.bitmap.width === 0 || Oi.bitmap.height === 0)) {
+ var $i = { x: 0, y: 0, w: Oi.bitmap.width + 2 * u, h: Oi.bitmap.height + 2 * u };
+ nr.push($i), ri[Qr] = { rect: $i, metrics: Oi.metrics };
+ }
+ }
+ }
+ var tn = i.potpack(nr), fn = tn.w, yn = tn.h, Sn = new i.AlphaImage({ width: fn || 1, height: yn || 1 });
+ for (var Ba in wt) {
+ var ua = wt[Ba];
+ for (var ma in ua) {
+ var Wa = ua[+ma];
+ if (!(!Wa || Wa.bitmap.width === 0 || Wa.bitmap.height === 0)) {
+ var Fa = rr[Ba][ma].rect;
+ i.AlphaImage.copy(Wa.bitmap, Sn, { x: 0, y: 0 }, { x: Fa.x + u, y: Fa.y + u }, Wa.bitmap);
+ }
+ }
+ }
+ this.image = Sn, this.positions = rr;
+ };
+ i.register("GlyphAtlas", c);
+ var f = function(wt) {
+ this.tileID = new i.OverscaledTileID(wt.tileID.overscaledZ, wt.tileID.wrap, wt.tileID.canonical.z, wt.tileID.canonical.x, wt.tileID.canonical.y), this.uid = wt.uid, this.zoom = wt.zoom, this.pixelRatio = wt.pixelRatio, this.tileSize = wt.tileSize, this.source = wt.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = wt.showCollisionBoxes, this.collectResourceTiming = !!wt.collectResourceTiming, this.returnDependencies = !!wt.returnDependencies, this.promoteId = wt.promoteId;
+ };
+ f.prototype.parse = function(wt, rr, nr, Er, Xr) {
+ var ri = this;
+ this.status = "parsing", this.data = wt, this.collisionBoxArray = new i.CollisionBoxArray();
+ var Qr = new i.DictionaryCoder(Object.keys(wt.layers).sort()), Oi = new i.FeatureIndex(this.tileID, this.promoteId);
+ Oi.bucketLayerIDs = [];
+ var $i = {}, tn = { featureIndex: Oi, iconDependencies: {}, patternDependencies: {}, glyphDependencies: {}, availableImages: nr }, fn = rr.familiesBySource[this.source];
+ for (var yn in fn) {
+ var Sn = wt.layers[yn];
+ if (Sn) {
+ Sn.version === 1 && i.warnOnce('Vector tile source "' + this.source + '" layer "' + yn + '" does not use vector tile spec v2 and therefore may have some rendering errors.');
+ for (var Ba = Qr.encode(yn), ua = [], ma = 0; ma < Sn.length; ma++) {
+ var Wa = Sn.feature(ma), Fa = Oi.getId(Wa, yn);
+ ua.push({ feature: Wa, id: Fa, index: ma, sourceLayerIndex: Ba });
+ }
+ for (var Xo = 0, da = fn[yn]; Xo < da.length; Xo += 1) {
+ var Wn = da[Xo], Ha = Wn[0];
+ if (!(Ha.minzoom && this.zoom < Math.floor(Ha.minzoom)) && !(Ha.maxzoom && this.zoom >= Ha.maxzoom) && Ha.visibility !== "none") {
+ h(Wn, this.zoom, nr);
+ var vo = $i[Ha.id] = Ha.createBucket({ index: Oi.bucketLayerIDs.length, layers: Wn, zoom: this.zoom, pixelRatio: this.pixelRatio, overscaling: this.overscaling, collisionBoxArray: this.collisionBoxArray, sourceLayerIndex: Ba, sourceID: this.source });
+ vo.populate(ua, tn, this.tileID.canonical), Oi.bucketLayerIDs.push(Wn.map(function(Li) {
+ return Li.id;
+ }));
+ }
+ }
+ }
+ }
+ var jn, Mt, kr, Jr, vi = i.mapObject(tn.glyphDependencies, function(Li) {
+ return Object.keys(Li).map(Number);
+ });
+ Object.keys(vi).length ? Er.send("getGlyphs", { uid: this.uid, stacks: vi }, function(Li, _n) {
+ jn || (jn = Li, Mt = _n, Mn.call(ri));
+ }) : Mt = {};
+ var hn = Object.keys(tn.iconDependencies);
+ hn.length ? Er.send("getImages", { icons: hn, source: this.source, tileID: this.tileID, type: "icons" }, function(Li, _n) {
+ jn || (jn = Li, kr = _n, Mn.call(ri));
+ }) : kr = {};
+ var An = Object.keys(tn.patternDependencies);
+ An.length ? Er.send("getImages", { icons: An, source: this.source, tileID: this.tileID, type: "patterns" }, function(Li, _n) {
+ jn || (jn = Li, Jr = _n, Mn.call(ri));
+ }) : Jr = {}, Mn.call(this);
+ function Mn() {
+ if (jn) return Xr(jn);
+ if (Mt && kr && Jr) {
+ var Li = new c(Mt), _n = new i.ImageAtlas(kr, Jr);
+ for (var ya in $i) {
+ var $n = $i[ya];
+ $n instanceof i.SymbolBucket ? (h($n.layers, this.zoom, nr), i.performSymbolLayout($n, Mt, Li.positions, kr, _n.iconPositions, this.showCollisionBoxes, this.tileID.canonical)) : $n.hasPattern && ($n instanceof i.LineBucket || $n instanceof i.FillBucket || $n instanceof i.FillExtrusionBucket) && (h($n.layers, this.zoom, nr), $n.addFeatures(tn, this.tileID.canonical, _n.patternPositions));
+ }
+ this.status = "done", Xr(null, { buckets: i.values($i).filter(function(Ma) {
+ return !Ma.isEmpty();
+ }), featureIndex: Oi, collisionBoxArray: this.collisionBoxArray, glyphAtlasImage: Li.image, imageAtlas: _n, glyphMap: this.returnDependencies ? Mt : null, iconMap: this.returnDependencies ? kr : null, glyphPositions: this.returnDependencies ? Li.positions : null });
+ }
+ }
+ };
+ function h(Ut, wt, rr) {
+ for (var nr = new i.EvaluationParameters(wt), Er = 0, Xr = Ut; Er < Xr.length; Er += 1) {
+ var ri = Xr[Er];
+ ri.recalculate(nr, rr);
+ }
+ }
+ function d(Ut, wt) {
+ var rr = i.getArrayBuffer(Ut.request, function(nr, Er, Xr, ri) {
+ nr ? wt(nr) : Er && wt(null, { vectorTile: new i.vectorTile.VectorTile(new i.pbf(Er)), rawData: Er, cacheControl: Xr, expires: ri });
+ });
+ return function() {
+ rr.cancel(), wt();
+ };
+ }
+ var v = function(wt, rr, nr, Er) {
+ this.actor = wt, this.layerIndex = rr, this.availableImages = nr, this.loadVectorData = Er || d, this.loading = {}, this.loaded = {};
+ };
+ v.prototype.loadTile = function(wt, rr) {
+ var nr = this, Er = wt.uid;
+ this.loading || (this.loading = {});
+ var Xr = wt && wt.request && wt.request.collectResourceTiming ? new i.RequestPerformance(wt.request) : false, ri = this.loading[Er] = new f(wt);
+ ri.abort = this.loadVectorData(wt, function(Qr, Oi) {
+ if (delete nr.loading[Er], Qr || !Oi) return ri.status = "done", nr.loaded[Er] = ri, rr(Qr);
+ var $i = Oi.rawData, tn = {};
+ Oi.expires && (tn.expires = Oi.expires), Oi.cacheControl && (tn.cacheControl = Oi.cacheControl);
+ var fn = {};
+ if (Xr) {
+ var yn = Xr.finish();
+ yn && (fn.resourceTiming = JSON.parse(JSON.stringify(yn)));
+ }
+ ri.vectorTile = Oi.vectorTile, ri.parse(Oi.vectorTile, nr.layerIndex, nr.availableImages, nr.actor, function(Sn, Ba) {
+ if (Sn || !Ba) return rr(Sn);
+ rr(null, i.extend({ rawTileData: $i.slice(0) }, Ba, tn, fn));
+ }), nr.loaded = nr.loaded || {}, nr.loaded[Er] = ri;
+ });
+ }, v.prototype.reloadTile = function(wt, rr) {
+ var nr = this, Er = this.loaded, Xr = wt.uid, ri = this;
+ if (Er && Er[Xr]) {
+ var Qr = Er[Xr];
+ Qr.showCollisionBoxes = wt.showCollisionBoxes;
+ var Oi = function($i, tn) {
+ var fn = Qr.reloadCallback;
+ fn && (delete Qr.reloadCallback, Qr.parse(Qr.vectorTile, ri.layerIndex, nr.availableImages, ri.actor, fn)), rr($i, tn);
+ };
+ Qr.status === "parsing" ? Qr.reloadCallback = Oi : Qr.status === "done" && (Qr.vectorTile ? Qr.parse(Qr.vectorTile, this.layerIndex, this.availableImages, this.actor, Oi) : Oi());
+ }
+ }, v.prototype.abortTile = function(wt, rr) {
+ var nr = this.loading, Er = wt.uid;
+ nr && nr[Er] && nr[Er].abort && (nr[Er].abort(), delete nr[Er]), rr();
+ }, v.prototype.removeTile = function(wt, rr) {
+ var nr = this.loaded, Er = wt.uid;
+ nr && nr[Er] && delete nr[Er], rr();
+ };
+ var _ = i.window.ImageBitmap, b = function() {
+ this.loaded = {};
+ };
+ b.prototype.loadTile = function(wt, rr) {
+ var nr = wt.uid, Er = wt.encoding, Xr = wt.rawImageData, ri = _ && Xr instanceof _ ? this.getImageData(Xr) : Xr, Qr = new i.DEMData(nr, ri, Er);
+ this.loaded = this.loaded || {}, this.loaded[nr] = Qr, rr(null, Qr);
+ }, b.prototype.getImageData = function(wt) {
+ (!this.offscreenCanvas || !this.offscreenCanvasContext) && (this.offscreenCanvas = new OffscreenCanvas(wt.width, wt.height), this.offscreenCanvasContext = this.offscreenCanvas.getContext("2d")), this.offscreenCanvas.width = wt.width, this.offscreenCanvas.height = wt.height, this.offscreenCanvasContext.drawImage(wt, 0, 0, wt.width, wt.height);
+ var rr = this.offscreenCanvasContext.getImageData(-1, -1, wt.width + 2, wt.height + 2);
+ return this.offscreenCanvasContext.clearRect(0, 0, this.offscreenCanvas.width, this.offscreenCanvas.height), new i.RGBAImage({ width: rr.width, height: rr.height }, rr.data);
+ }, b.prototype.removeTile = function(wt) {
+ var rr = this.loaded, nr = wt.uid;
+ rr && rr[nr] && delete rr[nr];
+ };
+ var p = k;
+ function k(Ut, wt) {
+ var rr = Ut && Ut.type, nr;
+ if (rr === "FeatureCollection") for (nr = 0; nr < Ut.features.length; nr++) k(Ut.features[nr], wt);
+ else if (rr === "GeometryCollection") for (nr = 0; nr < Ut.geometries.length; nr++) k(Ut.geometries[nr], wt);
+ else if (rr === "Feature") k(Ut.geometry, wt);
+ else if (rr === "Polygon") E(Ut.coordinates, wt);
+ else if (rr === "MultiPolygon") for (nr = 0; nr < Ut.coordinates.length; nr++) E(Ut.coordinates[nr], wt);
+ return Ut;
+ }
+ function E(Ut, wt) {
+ if (Ut.length !== 0) {
+ T(Ut[0], wt);
+ for (var rr = 1; rr < Ut.length; rr++) T(Ut[rr], !wt);
+ }
+ }
+ function T(Ut, wt) {
+ for (var rr = 0, nr = 0, Er = Ut.length, Xr = Er - 1; nr < Er; Xr = nr++) rr += (Ut[nr][0] - Ut[Xr][0]) * (Ut[Xr][1] + Ut[nr][1]);
+ rr >= 0 != !!wt && Ut.reverse();
+ }
+ var L = i.vectorTile.VectorTileFeature.prototype.toGeoJSON, x = function(wt) {
+ this._feature = wt, this.extent = i.EXTENT, this.type = wt.type, this.properties = wt.tags, "id" in wt && !isNaN(wt.id) && (this.id = parseInt(wt.id, 10));
+ };
+ x.prototype.loadGeometry = function() {
+ if (this._feature.type === 1) {
+ for (var wt = [], rr = 0, nr = this._feature.geometry; rr < nr.length; rr += 1) {
+ var Er = nr[rr];
+ wt.push([new i.Point$1(Er[0], Er[1])]);
+ }
+ return wt;
+ } else {
+ for (var Xr = [], ri = 0, Qr = this._feature.geometry; ri < Qr.length; ri += 1) {
+ for (var Oi = Qr[ri], $i = [], tn = 0, fn = Oi; tn < fn.length; tn += 1) {
+ var yn = fn[tn];
+ $i.push(new i.Point$1(yn[0], yn[1]));
+ }
+ Xr.push($i);
+ }
+ return Xr;
+ }
+ }, x.prototype.toGeoJSON = function(wt, rr, nr) {
+ return L.call(this, wt, rr, nr);
+ };
+ var C = function(wt) {
+ this.layers = { _geojsonTileLayer: this }, this.name = "_geojsonTileLayer", this.extent = i.EXTENT, this.length = wt.length, this._features = wt;
+ };
+ C.prototype.feature = function(wt) {
+ return new x(this._features[wt]);
+ };
+ var M = i.vectorTile.VectorTileFeature, g = P;
+ function P(Ut, wt) {
+ this.options = wt || {}, this.features = Ut, this.length = Ut.length;
+ }
+ P.prototype.feature = function(Ut) {
+ return new A(this.features[Ut], this.options.extent);
+ };
+ function A(Ut, wt) {
+ this.id = typeof Ut.id == "number" ? Ut.id : void 0, this.type = Ut.type, this.rawGeometry = Ut.type === 1 ? [Ut.geometry] : Ut.geometry, this.properties = Ut.tags, this.extent = wt || 4096;
+ }
+ A.prototype.loadGeometry = function() {
+ var Ut = this.rawGeometry;
+ this.geometry = [];
+ for (var wt = 0; wt < Ut.length; wt++) {
+ for (var rr = Ut[wt], nr = [], Er = 0; Er < rr.length; Er++) nr.push(new i.Point$1(rr[Er][0], rr[Er][1]));
+ this.geometry.push(nr);
+ }
+ return this.geometry;
+ }, A.prototype.bbox = function() {
+ this.geometry || this.loadGeometry();
+ for (var Ut = this.geometry, wt = 1 / 0, rr = -1 / 0, nr = 1 / 0, Er = -1 / 0, Xr = 0; Xr < Ut.length; Xr++) for (var ri = Ut[Xr], Qr = 0; Qr < ri.length; Qr++) {
+ var Oi = ri[Qr];
+ wt = Math.min(wt, Oi.x), rr = Math.max(rr, Oi.x), nr = Math.min(nr, Oi.y), Er = Math.max(Er, Oi.y);
+ }
+ return [wt, nr, rr, Er];
+ }, A.prototype.toGeoJSON = M.prototype.toGeoJSON;
+ var z = Z, O = Z, U = j, G = g;
+ function Z(Ut) {
+ var wt = new i.pbf();
+ return N(Ut, wt), wt.finish();
+ }
+ function j(Ut, wt) {
+ wt = wt || {};
+ var rr = {};
+ for (var nr in Ut) rr[nr] = new g(Ut[nr].features, wt), rr[nr].name = nr, rr[nr].version = wt.version, rr[nr].extent = wt.extent;
+ return Z({ layers: rr });
+ }
+ function N(Ut, wt) {
+ for (var rr in Ut.layers) wt.writeMessage(3, H, Ut.layers[rr]);
+ }
+ function H(Ut, wt) {
+ wt.writeVarintField(15, Ut.version || 1), wt.writeStringField(1, Ut.name || ""), wt.writeVarintField(5, Ut.extent || 4096);
+ var rr, nr = { keys: [], values: [], keycache: {}, valuecache: {} };
+ for (rr = 0; rr < Ut.length; rr++) nr.feature = Ut.feature(rr), wt.writeMessage(2, re, nr);
+ var Er = nr.keys;
+ for (rr = 0; rr < Er.length; rr++) wt.writeStringField(3, Er[rr]);
+ var Xr = nr.values;
+ for (rr = 0; rr < Xr.length; rr++) wt.writeMessage(4, ge, Xr[rr]);
+ }
+ function re(Ut, wt) {
+ var rr = Ut.feature;
+ rr.id !== void 0 && wt.writeVarintField(1, rr.id), wt.writeMessage(2, oe, Ut), wt.writeVarintField(3, rr.type), wt.writeMessage(4, Le, rr);
+ }
+ function oe(Ut, wt) {
+ var rr = Ut.feature, nr = Ut.keys, Er = Ut.values, Xr = Ut.keycache, ri = Ut.valuecache;
+ for (var Qr in rr.properties) {
+ var Oi = Xr[Qr];
+ typeof Oi == "undefined" && (nr.push(Qr), Oi = nr.length - 1, Xr[Qr] = Oi), wt.writeVarint(Oi);
+ var $i = rr.properties[Qr], tn = typeof $i;
+ tn !== "string" && tn !== "boolean" && tn !== "number" && ($i = JSON.stringify($i));
+ var fn = tn + ":" + $i, yn = ri[fn];
+ typeof yn == "undefined" && (Er.push($i), yn = Er.length - 1, ri[fn] = yn), wt.writeVarint(yn);
+ }
+ }
+ function _e(Ut, wt) {
+ return (wt << 3) + (Ut & 7);
+ }
+ function Ce(Ut) {
+ return Ut << 1 ^ Ut >> 31;
+ }
+ function Le(Ut, wt) {
+ for (var rr = Ut.loadGeometry(), nr = Ut.type, Er = 0, Xr = 0, ri = rr.length, Qr = 0; Qr < ri; Qr++) {
+ var Oi = rr[Qr], $i = 1;
+ nr === 1 && ($i = Oi.length), wt.writeVarint(_e(1, $i));
+ for (var tn = nr === 3 ? Oi.length - 1 : Oi.length, fn = 0; fn < tn; fn++) {
+ fn === 1 && nr !== 1 && wt.writeVarint(_e(2, tn - 1));
+ var yn = Oi[fn].x - Er, Sn = Oi[fn].y - Xr;
+ wt.writeVarint(Ce(yn)), wt.writeVarint(Ce(Sn)), Er += yn, Xr += Sn;
+ }
+ nr === 3 && wt.writeVarint(_e(7, 1));
+ }
+ }
+ function ge(Ut, wt) {
+ var rr = typeof Ut;
+ rr === "string" ? wt.writeStringField(1, Ut) : rr === "boolean" ? wt.writeBooleanField(7, Ut) : rr === "number" && (Ut % 1 !== 0 ? wt.writeDoubleField(3, Ut) : Ut < 0 ? wt.writeSVarintField(6, Ut) : wt.writeVarintField(5, Ut));
+ }
+ z.fromVectorTileJs = O, z.fromGeojsonVt = U, z.GeoJSONWrapper = G;
+ function ie(Ut, wt, rr, nr, Er, Xr) {
+ if (!(Er - nr <= rr)) {
+ var ri = nr + Er >> 1;
+ Se(Ut, wt, ri, nr, Er, Xr % 2), ie(Ut, wt, rr, nr, ri - 1, Xr + 1), ie(Ut, wt, rr, ri + 1, Er, Xr + 1);
+ }
+ }
+ function Se(Ut, wt, rr, nr, Er, Xr) {
+ for (; Er > nr; ) {
+ if (Er - nr > 600) {
+ var ri = Er - nr + 1, Qr = rr - nr + 1, Oi = Math.log(ri), $i = 0.5 * Math.exp(2 * Oi / 3), tn = 0.5 * Math.sqrt(Oi * $i * (ri - $i) / ri) * (Qr - ri / 2 < 0 ? -1 : 1), fn = Math.max(nr, Math.floor(rr - Qr * $i / ri + tn)), yn = Math.min(Er, Math.floor(rr + (ri - Qr) * $i / ri + tn));
+ Se(Ut, wt, rr, fn, yn, Xr);
+ }
+ var Sn = wt[2 * rr + Xr], Ba = nr, ua = Er;
+ for (Ee(Ut, wt, nr, rr), wt[2 * Er + Xr] > Sn && Ee(Ut, wt, nr, Er); Ba < ua; ) {
+ for (Ee(Ut, wt, Ba, ua), Ba++, ua--; wt[2 * Ba + Xr] < Sn; ) Ba++;
+ for (; wt[2 * ua + Xr] > Sn; ) ua--;
+ }
+ wt[2 * nr + Xr] === Sn ? Ee(Ut, wt, nr, ua) : (ua++, Ee(Ut, wt, ua, Er)), ua <= rr && (nr = ua + 1), rr <= ua && (Er = ua - 1);
+ }
+ }
+ function Ee(Ut, wt, rr, nr) {
+ Ae(Ut, rr, nr), Ae(wt, 2 * rr, 2 * nr), Ae(wt, 2 * rr + 1, 2 * nr + 1);
+ }
+ function Ae(Ut, wt, rr) {
+ var nr = Ut[wt];
+ Ut[wt] = Ut[rr], Ut[rr] = nr;
+ }
+ function Be(Ut, wt, rr, nr, Er, Xr, ri) {
+ for (var Qr = [0, Ut.length - 1, 0], Oi = [], $i, tn; Qr.length; ) {
+ var fn = Qr.pop(), yn = Qr.pop(), Sn = Qr.pop();
+ if (yn - Sn <= ri) {
+ for (var Ba = Sn; Ba <= yn; Ba++) $i = wt[2 * Ba], tn = wt[2 * Ba + 1], $i >= rr && $i <= Er && tn >= nr && tn <= Xr && Oi.push(Ut[Ba]);
+ continue;
+ }
+ var ua = Math.floor((Sn + yn) / 2);
+ $i = wt[2 * ua], tn = wt[2 * ua + 1], $i >= rr && $i <= Er && tn >= nr && tn <= Xr && Oi.push(Ut[ua]);
+ var ma = (fn + 1) % 2;
+ (fn === 0 ? rr <= $i : nr <= tn) && (Qr.push(Sn), Qr.push(ua - 1), Qr.push(ma)), (fn === 0 ? Er >= $i : Xr >= tn) && (Qr.push(ua + 1), Qr.push(yn), Qr.push(ma));
+ }
+ return Oi;
+ }
+ function Pe(Ut, wt, rr, nr, Er, Xr) {
+ for (var ri = [0, Ut.length - 1, 0], Qr = [], Oi = Er * Er; ri.length; ) {
+ var $i = ri.pop(), tn = ri.pop(), fn = ri.pop();
+ if (tn - fn <= Xr) {
+ for (var yn = fn; yn <= tn; yn++) me(wt[2 * yn], wt[2 * yn + 1], rr, nr) <= Oi && Qr.push(Ut[yn]);
+ continue;
+ }
+ var Sn = Math.floor((fn + tn) / 2), Ba = wt[2 * Sn], ua = wt[2 * Sn + 1];
+ me(Ba, ua, rr, nr) <= Oi && Qr.push(Ut[Sn]);
+ var ma = ($i + 1) % 2;
+ ($i === 0 ? rr - Er <= Ba : nr - Er <= ua) && (ri.push(fn), ri.push(Sn - 1), ri.push(ma)), ($i === 0 ? rr + Er >= Ba : nr + Er >= ua) && (ri.push(Sn + 1), ri.push(tn), ri.push(ma));
+ }
+ return Qr;
+ }
+ function me(Ut, wt, rr, nr) {
+ var Er = Ut - rr, Xr = wt - nr;
+ return Er * Er + Xr * Xr;
+ }
+ var De = function(Ut) {
+ return Ut[0];
+ }, ce = function(Ut) {
+ return Ut[1];
+ }, je = function(wt, rr, nr, Er, Xr) {
+ rr === void 0 && (rr = De), nr === void 0 && (nr = ce), Er === void 0 && (Er = 64), Xr === void 0 && (Xr = Float64Array), this.nodeSize = Er, this.points = wt;
+ for (var ri = wt.length < 65536 ? Uint16Array : Uint32Array, Qr = this.ids = new ri(wt.length), Oi = this.coords = new Xr(wt.length * 2), $i = 0; $i < wt.length; $i++) Qr[$i] = $i, Oi[2 * $i] = rr(wt[$i]), Oi[2 * $i + 1] = nr(wt[$i]);
+ ie(Qr, Oi, Er, 0, Qr.length - 1, 0);
+ };
+ je.prototype.range = function(wt, rr, nr, Er) {
+ return Be(this.ids, this.coords, wt, rr, nr, Er, this.nodeSize);
+ }, je.prototype.within = function(wt, rr, nr) {
+ return Pe(this.ids, this.coords, wt, rr, nr, this.nodeSize);
+ };
+ var lt = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: false, generateId: false, reduce: null, map: function(Ut) {
+ return Ut;
+ } }, pt = function(wt) {
+ this.options = fr(Object.create(lt), wt), this.trees = new Array(this.options.maxZoom + 1);
+ };
+ pt.prototype.load = function(wt) {
+ var rr = this.options, nr = rr.log, Er = rr.minZoom, Xr = rr.maxZoom, ri = rr.nodeSize;
+ nr && console.time("total time");
+ var Qr = "prepare " + wt.length + " points";
+ nr && console.time(Qr), this.points = wt;
+ for (var Oi = [], $i = 0; $i < wt.length; $i++) wt[$i].geometry && Oi.push(ot(wt[$i], $i));
+ this.trees[Xr + 1] = new je(Oi, $e, St, ri, Float32Array), nr && console.timeEnd(Qr);
+ for (var tn = Xr; tn >= Er; tn--) {
+ var fn = +Date.now();
+ Oi = this._cluster(Oi, tn), this.trees[tn] = new je(Oi, $e, St, ri, Float32Array), nr && console.log("z%d: %d clusters in %dms", tn, Oi.length, +Date.now() - fn);
+ }
+ return nr && console.timeEnd("total time"), this;
+ }, pt.prototype.getClusters = function(wt, rr) {
+ var nr = ((wt[0] + 180) % 360 + 360) % 360 - 180, Er = Math.max(-90, Math.min(90, wt[1])), Xr = wt[2] === 180 ? 180 : ((wt[2] + 180) % 360 + 360) % 360 - 180, ri = Math.max(-90, Math.min(90, wt[3]));
+ if (wt[2] - wt[0] >= 360) nr = -180, Xr = 180;
+ else if (nr > Xr) {
+ var Qr = this.getClusters([nr, Er, 180, ri], rr), Oi = this.getClusters([-180, Er, Xr, ri], rr);
+ return Qr.concat(Oi);
+ }
+ for (var $i = this.trees[this._limitZoom(rr)], tn = $i.range(Nt(nr), $t(ri), Nt(Xr), $t(Er)), fn = [], yn = 0, Sn = tn; yn < Sn.length; yn += 1) {
+ var Ba = Sn[yn], ua = $i.points[Ba];
+ fn.push(ua.numPoints ? ut(ua) : this.points[ua.index]);
+ }
+ return fn;
+ }, pt.prototype.getChildren = function(wt) {
+ var rr = this._getOriginId(wt), nr = this._getOriginZoom(wt), Er = "No cluster with the specified id.", Xr = this.trees[nr];
+ if (!Xr) throw new Error(Er);
+ var ri = Xr.points[rr];
+ if (!ri) throw new Error(Er);
+ for (var Qr = this.options.radius / (this.options.extent * Math.pow(2, nr - 1)), Oi = Xr.within(ri.x, ri.y, Qr), $i = [], tn = 0, fn = Oi; tn < fn.length; tn += 1) {
+ var yn = fn[tn], Sn = Xr.points[yn];
+ Sn.parentId === wt && $i.push(Sn.numPoints ? ut(Sn) : this.points[Sn.index]);
+ }
+ if ($i.length === 0) throw new Error(Er);
+ return $i;
+ }, pt.prototype.getLeaves = function(wt, rr, nr) {
+ rr = rr || 10, nr = nr || 0;
+ var Er = [];
+ return this._appendLeaves(Er, wt, rr, nr, 0), Er;
+ }, pt.prototype.getTile = function(wt, rr, nr) {
+ var Er = this.trees[this._limitZoom(wt)], Xr = Math.pow(2, wt), ri = this.options, Qr = ri.extent, Oi = ri.radius, $i = Oi / Qr, tn = (nr - $i) / Xr, fn = (nr + 1 + $i) / Xr, yn = { features: [] };
+ return this._addTileFeatures(Er.range((rr - $i) / Xr, tn, (rr + 1 + $i) / Xr, fn), Er.points, rr, nr, Xr, yn), rr === 0 && this._addTileFeatures(Er.range(1 - $i / Xr, tn, 1, fn), Er.points, Xr, nr, Xr, yn), rr === Xr - 1 && this._addTileFeatures(Er.range(0, tn, $i / Xr, fn), Er.points, -1, nr, Xr, yn), yn.features.length ? yn : null;
+ }, pt.prototype.getClusterExpansionZoom = function(wt) {
+ for (var rr = this._getOriginZoom(wt) - 1; rr <= this.options.maxZoom; ) {
+ var nr = this.getChildren(wt);
+ if (rr++, nr.length !== 1) break;
+ wt = nr[0].properties.cluster_id;
+ }
+ return rr;
+ }, pt.prototype._appendLeaves = function(wt, rr, nr, Er, Xr) {
+ for (var ri = this.getChildren(rr), Qr = 0, Oi = ri; Qr < Oi.length; Qr += 1) {
+ var $i = Oi[Qr], tn = $i.properties;
+ if (tn && tn.cluster ? Xr + tn.point_count <= Er ? Xr += tn.point_count : Xr = this._appendLeaves(wt, tn.cluster_id, nr, Er, Xr) : Xr < Er ? Xr++ : wt.push($i), wt.length === nr) break;
+ }
+ return Xr;
+ }, pt.prototype._addTileFeatures = function(wt, rr, nr, Er, Xr, ri) {
+ for (var Qr = 0, Oi = wt; Qr < Oi.length; Qr += 1) {
+ var $i = Oi[Qr], tn = rr[$i], fn = tn.numPoints, yn = { type: 1, geometry: [[Math.round(this.options.extent * (tn.x * Xr - nr)), Math.round(this.options.extent * (tn.y * Xr - Er))]], tags: fn ? Wt(tn) : this.points[tn.index].properties }, Sn = void 0;
+ fn ? Sn = tn.id : this.options.generateId ? Sn = tn.index : this.points[tn.index].id && (Sn = this.points[tn.index].id), Sn !== void 0 && (yn.id = Sn), ri.features.push(yn);
+ }
+ }, pt.prototype._limitZoom = function(wt) {
+ return Math.max(this.options.minZoom, Math.min(+wt, this.options.maxZoom + 1));
+ }, pt.prototype._cluster = function(wt, rr) {
+ for (var nr = [], Er = this.options, Xr = Er.radius, ri = Er.extent, Qr = Er.reduce, Oi = Er.minPoints, $i = Xr / (ri * Math.pow(2, rr)), tn = 0; tn < wt.length; tn++) {
+ var fn = wt[tn];
+ if (!(fn.zoom <= rr)) {
+ fn.zoom = rr;
+ for (var yn = this.trees[rr + 1], Sn = yn.within(fn.x, fn.y, $i), Ba = fn.numPoints || 1, ua = Ba, ma = 0, Wa = Sn; ma < Wa.length; ma += 1) {
+ var Fa = Wa[ma], Xo = yn.points[Fa];
+ Xo.zoom > rr && (ua += Xo.numPoints || 1);
+ }
+ if (ua >= Oi) {
+ for (var da = fn.x * Ba, Wn = fn.y * Ba, Ha = Qr && Ba > 1 ? this._map(fn, true) : null, vo = (tn << 5) + (rr + 1) + this.points.length, jn = 0, Mt = Sn; jn < Mt.length; jn += 1) {
+ var kr = Mt[jn], Jr = yn.points[kr];
+ if (!(Jr.zoom <= rr)) {
+ Jr.zoom = rr;
+ var vi = Jr.numPoints || 1;
+ da += Jr.x * vi, Wn += Jr.y * vi, Jr.parentId = vo, Qr && (Ha || (Ha = this._map(fn, true)), Qr(Ha, this._map(Jr)));
+ }
+ }
+ fn.parentId = vo, nr.push(Vt(da / ua, Wn / ua, vo, ua, Ha));
+ } else if (nr.push(fn), ua > 1) for (var hn = 0, An = Sn; hn < An.length; hn += 1) {
+ var Mn = An[hn], Li = yn.points[Mn];
+ Li.zoom <= rr || (Li.zoom = rr, nr.push(Li));
+ }
+ }
+ }
+ return nr;
+ }, pt.prototype._getOriginId = function(wt) {
+ return wt - this.points.length >> 5;
+ }, pt.prototype._getOriginZoom = function(wt) {
+ return (wt - this.points.length) % 32;
+ }, pt.prototype._map = function(wt, rr) {
+ if (wt.numPoints) return rr ? fr({}, wt.properties) : wt.properties;
+ var nr = this.points[wt.index].properties, Er = this.options.map(nr);
+ return rr && Er === nr ? fr({}, Er) : Er;
+ };
+ function Vt(Ut, wt, rr, nr, Er) {
+ return { x: Ut, y: wt, zoom: 1 / 0, id: rr, parentId: -1, numPoints: nr, properties: Er };
+ }
+ function ot(Ut, wt) {
+ var rr = Ut.geometry.coordinates, nr = rr[0], Er = rr[1];
+ return { x: Nt(nr), y: $t(Er), zoom: 1 / 0, index: wt, parentId: -1 };
+ }
+ function ut(Ut) {
+ return { type: "Feature", id: Ut.id, properties: Wt(Ut), geometry: { type: "Point", coordinates: [sr(Ut.x), Tr(Ut.y)] } };
+ }
+ function Wt(Ut) {
+ var wt = Ut.numPoints, rr = wt >= 1e4 ? Math.round(wt / 1e3) + "k" : wt >= 1e3 ? Math.round(wt / 100) / 10 + "k" : wt;
+ return fr(fr({}, Ut.properties), { cluster: true, cluster_id: Ut.id, point_count: wt, point_count_abbreviated: rr });
+ }
+ function Nt(Ut) {
+ return Ut / 360 + 0.5;
+ }
+ function $t(Ut) {
+ var wt = Math.sin(Ut * Math.PI / 180), rr = 0.5 - 0.25 * Math.log((1 + wt) / (1 - wt)) / Math.PI;
+ return rr < 0 ? 0 : rr > 1 ? 1 : rr;
+ }
+ function sr(Ut) {
+ return (Ut - 0.5) * 360;
+ }
+ function Tr(Ut) {
+ var wt = (180 - Ut * 360) * Math.PI / 180;
+ return 360 * Math.atan(Math.exp(wt)) / Math.PI - 90;
+ }
+ function fr(Ut, wt) {
+ for (var rr in wt) Ut[rr] = wt[rr];
+ return Ut;
+ }
+ function $e(Ut) {
+ return Ut.x;
+ }
+ function St(Ut) {
+ return Ut.y;
+ }
+ function Qt(Ut, wt, rr, nr) {
+ for (var Er = nr, Xr = rr - wt >> 1, ri = rr - wt, Qr, Oi = Ut[wt], $i = Ut[wt + 1], tn = Ut[rr], fn = Ut[rr + 1], yn = wt + 3; yn < rr; yn += 3) {
+ var Sn = Gt(Ut[yn], Ut[yn + 1], Oi, $i, tn, fn);
+ if (Sn > Er) Qr = yn, Er = Sn;
+ else if (Sn === Er) {
+ var Ba = Math.abs(yn - Xr);
+ Ba < ri && (Qr = yn, ri = Ba);
+ }
+ }
+ Er > nr && (Qr - wt > 3 && Qt(Ut, wt, Qr, nr), Ut[Qr + 2] = Er, rr - Qr > 3 && Qt(Ut, Qr, rr, nr));
+ }
+ function Gt(Ut, wt, rr, nr, Er, Xr) {
+ var ri = Er - rr, Qr = Xr - nr;
+ if (ri !== 0 || Qr !== 0) {
+ var Oi = ((Ut - rr) * ri + (wt - nr) * Qr) / (ri * ri + Qr * Qr);
+ Oi > 1 ? (rr = Er, nr = Xr) : Oi > 0 && (rr += ri * Oi, nr += Qr * Oi);
+ }
+ return ri = Ut - rr, Qr = wt - nr, ri * ri + Qr * Qr;
+ }
+ function _t(Ut, wt, rr, nr) {
+ var Er = { id: typeof Ut == "undefined" ? null : Ut, type: wt, geometry: rr, tags: nr, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 };
+ return It(Er), Er;
+ }
+ function It(Ut) {
+ var wt = Ut.geometry, rr = Ut.type;
+ if (rr === "Point" || rr === "MultiPoint" || rr === "LineString") mt(Ut, wt);
+ else if (rr === "Polygon" || rr === "MultiLineString") for (var nr = 0; nr < wt.length; nr++) mt(Ut, wt[nr]);
+ else if (rr === "MultiPolygon") for (nr = 0; nr < wt.length; nr++) for (var Er = 0; Er < wt[nr].length; Er++) mt(Ut, wt[nr][Er]);
+ }
+ function mt(Ut, wt) {
+ for (var rr = 0; rr < wt.length; rr += 3) Ut.minX = Math.min(Ut.minX, wt[rr]), Ut.minY = Math.min(Ut.minY, wt[rr + 1]), Ut.maxX = Math.max(Ut.maxX, wt[rr]), Ut.maxY = Math.max(Ut.maxY, wt[rr + 1]);
+ }
+ function er(Ut, wt) {
+ var rr = [];
+ if (Ut.type === "FeatureCollection") for (var nr = 0; nr < Ut.features.length; nr++) lr(rr, Ut.features[nr], wt, nr);
+ else Ut.type === "Feature" ? lr(rr, Ut, wt) : lr(rr, { geometry: Ut }, wt);
+ return rr;
+ }
+ function lr(Ut, wt, rr, nr) {
+ if (wt.geometry) {
+ var Er = wt.geometry.coordinates, Xr = wt.geometry.type, ri = Math.pow(rr.tolerance / ((1 << rr.maxZoom) * rr.extent), 2), Qr = [], Oi = wt.id;
+ if (rr.promoteId ? Oi = wt.properties[rr.promoteId] : rr.generateId && (Oi = nr || 0), Xr === "Point") wr(Er, Qr);
+ else if (Xr === "MultiPoint") for (var $i = 0; $i < Er.length; $i++) wr(Er[$i], Qr);
+ else if (Xr === "LineString") Lr(Er, Qr, ri, false);
+ else if (Xr === "MultiLineString") if (rr.lineMetrics) {
+ for ($i = 0; $i < Er.length; $i++) Qr = [], Lr(Er[$i], Qr, ri, false), Ut.push(_t(Oi, "LineString", Qr, wt.properties));
+ return;
+ } else ti(Er, Qr, ri, false);
+ else if (Xr === "Polygon") ti(Er, Qr, ri, true);
+ else if (Xr === "MultiPolygon") for ($i = 0; $i < Er.length; $i++) {
+ var tn = [];
+ ti(Er[$i], tn, ri, true), Qr.push(tn);
+ }
+ else if (Xr === "GeometryCollection") {
+ for ($i = 0; $i < wt.geometry.geometries.length; $i++) lr(Ut, { id: Oi, geometry: wt.geometry.geometries[$i], properties: wt.properties }, rr, nr);
+ return;
+ } else throw new Error("Input data is not a valid GeoJSON object.");
+ Ut.push(_t(Oi, Xr, Qr, wt.properties));
+ }
+ }
+ function wr(Ut, wt) {
+ wt.push(Br(Ut[0])), wt.push(Vr(Ut[1])), wt.push(0);
+ }
+ function Lr(Ut, wt, rr, nr) {
+ for (var Er, Xr, ri = 0, Qr = 0; Qr < Ut.length; Qr++) {
+ var Oi = Br(Ut[Qr][0]), $i = Vr(Ut[Qr][1]);
+ wt.push(Oi), wt.push($i), wt.push(0), Qr > 0 && (nr ? ri += (Er * $i - Oi * Xr) / 2 : ri += Math.sqrt(Math.pow(Oi - Er, 2) + Math.pow($i - Xr, 2))), Er = Oi, Xr = $i;
+ }
+ var tn = wt.length - 3;
+ wt[2] = 1, Qt(wt, 0, tn, rr), wt[tn + 2] = 1, wt.size = Math.abs(ri), wt.start = 0, wt.end = wt.size;
+ }
+ function ti(Ut, wt, rr, nr) {
+ for (var Er = 0; Er < Ut.length; Er++) {
+ var Xr = [];
+ Lr(Ut[Er], Xr, rr, nr), wt.push(Xr);
+ }
+ }
+ function Br(Ut) {
+ return Ut / 360 + 0.5;
+ }
+ function Vr(Ut) {
+ var wt = Math.sin(Ut * Math.PI / 180), rr = 0.5 - 0.25 * Math.log((1 + wt) / (1 - wt)) / Math.PI;
+ return rr < 0 ? 0 : rr > 1 ? 1 : rr;
+ }
+ function dt(Ut, wt, rr, nr, Er, Xr, ri, Qr) {
+ if (rr /= wt, nr /= wt, Xr >= rr && ri < nr) return Ut;
+ if (ri < rr || Xr >= nr) return null;
+ for (var Oi = [], $i = 0; $i < Ut.length; $i++) {
+ var tn = Ut[$i], fn = tn.geometry, yn = tn.type, Sn = Er === 0 ? tn.minX : tn.minY, Ba = Er === 0 ? tn.maxX : tn.maxY;
+ if (Sn >= rr && Ba < nr) {
+ Oi.push(tn);
+ continue;
+ } else if (Ba < rr || Sn >= nr) continue;
+ var ua = [];
+ if (yn === "Point" || yn === "MultiPoint") Ge(fn, ua, rr, nr, Er);
+ else if (yn === "LineString") Je(fn, ua, rr, nr, Er, false, Qr.lineMetrics);
+ else if (yn === "MultiLineString") tt(fn, ua, rr, nr, Er, false);
+ else if (yn === "Polygon") tt(fn, ua, rr, nr, Er, true);
+ else if (yn === "MultiPolygon") for (var ma = 0; ma < fn.length; ma++) {
+ var Wa = [];
+ tt(fn[ma], Wa, rr, nr, Er, true), Wa.length && ua.push(Wa);
+ }
+ if (ua.length) {
+ if (Qr.lineMetrics && yn === "LineString") {
+ for (ma = 0; ma < ua.length; ma++) Oi.push(_t(tn.id, yn, ua[ma], tn.tags));
+ continue;
+ }
+ (yn === "LineString" || yn === "MultiLineString") && (ua.length === 1 ? (yn = "LineString", ua = ua[0]) : yn = "MultiLineString"), (yn === "Point" || yn === "MultiPoint") && (yn = ua.length === 3 ? "Point" : "MultiPoint"), Oi.push(_t(tn.id, yn, ua, tn.tags));
+ }
+ }
+ return Oi.length ? Oi : null;
+ }
+ function Ge(Ut, wt, rr, nr, Er) {
+ for (var Xr = 0; Xr < Ut.length; Xr += 3) {
+ var ri = Ut[Xr + Er];
+ ri >= rr && ri <= nr && (wt.push(Ut[Xr]), wt.push(Ut[Xr + 1]), wt.push(Ut[Xr + 2]));
+ }
+ }
+ function Je(Ut, wt, rr, nr, Er, Xr, ri) {
+ for (var Qr = We(Ut), Oi = Er === 0 ? Ie : xe, $i = Ut.start, tn, fn, yn = 0; yn < Ut.length - 3; yn += 3) {
+ var Sn = Ut[yn], Ba = Ut[yn + 1], ua = Ut[yn + 2], ma = Ut[yn + 3], Wa = Ut[yn + 4], Fa = Er === 0 ? Sn : Ba, Xo = Er === 0 ? ma : Wa, da = false;
+ ri && (tn = Math.sqrt(Math.pow(Sn - ma, 2) + Math.pow(Ba - Wa, 2))), Fa < rr ? Xo > rr && (fn = Oi(Qr, Sn, Ba, ma, Wa, rr), ri && (Qr.start = $i + tn * fn)) : Fa > nr ? Xo < nr && (fn = Oi(Qr, Sn, Ba, ma, Wa, nr), ri && (Qr.start = $i + tn * fn)) : xt(Qr, Sn, Ba, ua), Xo < rr && Fa >= rr && (fn = Oi(Qr, Sn, Ba, ma, Wa, rr), da = true), Xo > nr && Fa <= nr && (fn = Oi(Qr, Sn, Ba, ma, Wa, nr), da = true), !Xr && da && (ri && (Qr.end = $i + tn * fn), wt.push(Qr), Qr = We(Ut)), ri && ($i += tn);
+ }
+ var Wn = Ut.length - 3;
+ Sn = Ut[Wn], Ba = Ut[Wn + 1], ua = Ut[Wn + 2], Fa = Er === 0 ? Sn : Ba, Fa >= rr && Fa <= nr && xt(Qr, Sn, Ba, ua), Wn = Qr.length - 3, Xr && Wn >= 3 && (Qr[Wn] !== Qr[0] || Qr[Wn + 1] !== Qr[1]) && xt(Qr, Qr[0], Qr[1], Qr[2]), Qr.length && wt.push(Qr);
+ }
+ function We(Ut) {
+ var wt = [];
+ return wt.size = Ut.size, wt.start = Ut.start, wt.end = Ut.end, wt;
+ }
+ function tt(Ut, wt, rr, nr, Er, Xr) {
+ for (var ri = 0; ri < Ut.length; ri++) Je(Ut[ri], wt, rr, nr, Er, Xr, false);
+ }
+ function xt(Ut, wt, rr, nr) {
+ Ut.push(wt), Ut.push(rr), Ut.push(nr);
+ }
+ function Ie(Ut, wt, rr, nr, Er, Xr) {
+ var ri = (Xr - wt) / (nr - wt);
+ return Ut.push(Xr), Ut.push(rr + (Er - rr) * ri), Ut.push(1), ri;
+ }
+ function xe(Ut, wt, rr, nr, Er, Xr) {
+ var ri = (Xr - rr) / (Er - rr);
+ return Ut.push(wt + (nr - wt) * ri), Ut.push(Xr), Ut.push(1), ri;
+ }
+ function ke(Ut, wt) {
+ var rr = wt.buffer / wt.extent, nr = Ut, Er = dt(Ut, 1, -1 - rr, rr, 0, -1, 2, wt), Xr = dt(Ut, 1, 1 - rr, 2 + rr, 0, -1, 2, wt);
+ return (Er || Xr) && (nr = dt(Ut, 1, -rr, 1 + rr, 0, -1, 2, wt) || [], Er && (nr = vt(Er, 1).concat(nr)), Xr && (nr = nr.concat(vt(Xr, -1)))), nr;
+ }
+ function vt(Ut, wt) {
+ for (var rr = [], nr = 0; nr < Ut.length; nr++) {
+ var Er = Ut[nr], Xr = Er.type, ri;
+ if (Xr === "Point" || Xr === "MultiPoint" || Xr === "LineString") ri = ir(Er.geometry, wt);
+ else if (Xr === "MultiLineString" || Xr === "Polygon") {
+ ri = [];
+ for (var Qr = 0; Qr < Er.geometry.length; Qr++) ri.push(ir(Er.geometry[Qr], wt));
+ } else if (Xr === "MultiPolygon") for (ri = [], Qr = 0; Qr < Er.geometry.length; Qr++) {
+ for (var Oi = [], $i = 0; $i < Er.geometry[Qr].length; $i++) Oi.push(ir(Er.geometry[Qr][$i], wt));
+ ri.push(Oi);
+ }
+ rr.push(_t(Er.id, Xr, ri, Er.tags));
+ }
+ return rr;
+ }
+ function ir(Ut, wt) {
+ var rr = [];
+ rr.size = Ut.size, Ut.start !== void 0 && (rr.start = Ut.start, rr.end = Ut.end);
+ for (var nr = 0; nr < Ut.length; nr += 3) rr.push(Ut[nr] + wt, Ut[nr + 1], Ut[nr + 2]);
+ return rr;
+ }
+ function ar(Ut, wt) {
+ if (Ut.transformed) return Ut;
+ var rr = 1 << Ut.z, nr = Ut.x, Er = Ut.y, Xr, ri, Qr;
+ for (Xr = 0; Xr < Ut.features.length; Xr++) {
+ var Oi = Ut.features[Xr], $i = Oi.geometry, tn = Oi.type;
+ if (Oi.geometry = [], tn === 1) for (ri = 0; ri < $i.length; ri += 2) Oi.geometry.push(vr($i[ri], $i[ri + 1], wt, rr, nr, Er));
+ else for (ri = 0; ri < $i.length; ri++) {
+ var fn = [];
+ for (Qr = 0; Qr < $i[ri].length; Qr += 2) fn.push(vr($i[ri][Qr], $i[ri][Qr + 1], wt, rr, nr, Er));
+ Oi.geometry.push(fn);
+ }
+ }
+ return Ut.transformed = true, Ut;
+ }
+ function vr(Ut, wt, rr, nr, Er, Xr) {
+ return [Math.round(rr * (Ut * nr - Er)), Math.round(rr * (wt * nr - Xr))];
+ }
+ function ii(Ut, wt, rr, nr, Er) {
+ for (var Xr = wt === Er.maxZoom ? 0 : Er.tolerance / ((1 << wt) * Er.extent), ri = { features: [], numPoints: 0, numSimplified: 0, numFeatures: 0, source: null, x: rr, y: nr, z: wt, transformed: false, minX: 2, minY: 1, maxX: -1, maxY: 0 }, Qr = 0; Qr < Ut.length; Qr++) {
+ ri.numFeatures++, pi(ri, Ut[Qr], Xr, Er);
+ var Oi = Ut[Qr].minX, $i = Ut[Qr].minY, tn = Ut[Qr].maxX, fn = Ut[Qr].maxY;
+ Oi < ri.minX && (ri.minX = Oi), $i < ri.minY && (ri.minY = $i), tn > ri.maxX && (ri.maxX = tn), fn > ri.maxY && (ri.maxY = fn);
+ }
+ return ri;
+ }
+ function pi(Ut, wt, rr, nr) {
+ var Er = wt.geometry, Xr = wt.type, ri = [];
+ if (Xr === "Point" || Xr === "MultiPoint") for (var Qr = 0; Qr < Er.length; Qr += 3) ri.push(Er[Qr]), ri.push(Er[Qr + 1]), Ut.numPoints++, Ut.numSimplified++;
+ else if (Xr === "LineString") $r(ri, Er, Ut, rr, false, false);
+ else if (Xr === "MultiLineString" || Xr === "Polygon") for (Qr = 0; Qr < Er.length; Qr++) $r(ri, Er[Qr], Ut, rr, Xr === "Polygon", Qr === 0);
+ else if (Xr === "MultiPolygon") for (var Oi = 0; Oi < Er.length; Oi++) {
+ var $i = Er[Oi];
+ for (Qr = 0; Qr < $i.length; Qr++) $r(ri, $i[Qr], Ut, rr, true, Qr === 0);
+ }
+ if (ri.length) {
+ var tn = wt.tags || null;
+ if (Xr === "LineString" && nr.lineMetrics) {
+ tn = {};
+ for (var fn in wt.tags) tn[fn] = wt.tags[fn];
+ tn.mapbox_clip_start = Er.start / Er.size, tn.mapbox_clip_end = Er.end / Er.size;
+ }
+ var yn = { geometry: ri, type: Xr === "Polygon" || Xr === "MultiPolygon" ? 3 : Xr === "LineString" || Xr === "MultiLineString" ? 2 : 1, tags: tn };
+ wt.id !== null && (yn.id = wt.id), Ut.features.push(yn);
+ }
+ }
+ function $r(Ut, wt, rr, nr, Er, Xr) {
+ var ri = nr * nr;
+ if (nr > 0 && wt.size < (Er ? ri : nr)) {
+ rr.numPoints += wt.length / 3;
+ return;
+ }
+ for (var Qr = [], Oi = 0; Oi < wt.length; Oi += 3) (nr === 0 || wt[Oi + 2] > ri) && (rr.numSimplified++, Qr.push(wt[Oi]), Qr.push(wt[Oi + 1])), rr.numPoints++;
+ Er && di(Qr, Xr), Ut.push(Qr);
+ }
+ function di(Ut, wt) {
+ for (var rr = 0, nr = 0, Er = Ut.length, Xr = Er - 2; nr < Er; Xr = nr, nr += 2) rr += (Ut[nr] - Ut[Xr]) * (Ut[nr + 1] + Ut[Xr + 1]);
+ if (rr > 0 === wt) for (nr = 0, Er = Ut.length; nr < Er / 2; nr += 2) {
+ var ri = Ut[nr], Qr = Ut[nr + 1];
+ Ut[nr] = Ut[Er - 2 - nr], Ut[nr + 1] = Ut[Er - 1 - nr], Ut[Er - 2 - nr] = ri, Ut[Er - 1 - nr] = Qr;
+ }
+ }
+ function ji(Ut, wt) {
+ return new In(Ut, wt);
+ }
+ function In(Ut, wt) {
+ wt = this.options = On(Object.create(this.options), wt);
+ var rr = wt.debug;
+ if (rr && console.time("preprocess data"), wt.maxZoom < 0 || wt.maxZoom > 24) throw new Error("maxZoom should be in the 0-24 range");
+ if (wt.promoteId && wt.generateId) throw new Error("promoteId and generateId cannot be used together.");
+ var nr = er(Ut, wt);
+ this.tiles = {}, this.tileCoords = [], rr && (console.timeEnd("preprocess data"), console.log("index: maxZoom: %d, maxPoints: %d", wt.indexMaxZoom, wt.indexMaxPoints), console.time("generate tiles"), this.stats = {}, this.total = 0), nr = ke(nr, wt), nr.length && this.splitTile(nr, 0, 0, 0), rr && (nr.length && console.log("features: %d, points: %d", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd("generate tiles"), console.log("tiles generated:", this.total, JSON.stringify(this.stats)));
+ }
+ In.prototype.options = { maxZoom: 14, indexMaxZoom: 5, indexMaxPoints: 1e5, tolerance: 3, extent: 4096, buffer: 64, lineMetrics: false, promoteId: null, generateId: false, debug: 0 }, In.prototype.splitTile = function(Ut, wt, rr, nr, Er, Xr, ri) {
+ for (var Qr = [Ut, wt, rr, nr], Oi = this.options, $i = Oi.debug; Qr.length; ) {
+ nr = Qr.pop(), rr = Qr.pop(), wt = Qr.pop(), Ut = Qr.pop();
+ var tn = 1 << wt, fn = wi(wt, rr, nr), yn = this.tiles[fn];
+ if (!yn && ($i > 1 && console.time("creation"), yn = this.tiles[fn] = ii(Ut, wt, rr, nr, Oi), this.tileCoords.push({ z: wt, x: rr, y: nr }), $i)) {
+ $i > 1 && (console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", wt, rr, nr, yn.numFeatures, yn.numPoints, yn.numSimplified), console.timeEnd("creation"));
+ var Sn = "z" + wt;
+ this.stats[Sn] = (this.stats[Sn] || 0) + 1, this.total++;
+ }
+ if (yn.source = Ut, Er) {
+ if (wt === Oi.maxZoom || wt === Er) continue;
+ var Ba = 1 << Er - wt;
+ if (rr !== Math.floor(Xr / Ba) || nr !== Math.floor(ri / Ba)) continue;
+ } else if (wt === Oi.indexMaxZoom || yn.numPoints <= Oi.indexMaxPoints) continue;
+ if (yn.source = null, Ut.length !== 0) {
+ $i > 1 && console.time("clipping");
+ var ua = 0.5 * Oi.buffer / Oi.extent, ma = 0.5 - ua, Wa = 0.5 + ua, Fa = 1 + ua, Xo, da, Wn, Ha, vo, jn;
+ Xo = da = Wn = Ha = null, vo = dt(Ut, tn, rr - ua, rr + Wa, 0, yn.minX, yn.maxX, Oi), jn = dt(Ut, tn, rr + ma, rr + Fa, 0, yn.minX, yn.maxX, Oi), Ut = null, vo && (Xo = dt(vo, tn, nr - ua, nr + Wa, 1, yn.minY, yn.maxY, Oi), da = dt(vo, tn, nr + ma, nr + Fa, 1, yn.minY, yn.maxY, Oi), vo = null), jn && (Wn = dt(jn, tn, nr - ua, nr + Wa, 1, yn.minY, yn.maxY, Oi), Ha = dt(jn, tn, nr + ma, nr + Fa, 1, yn.minY, yn.maxY, Oi), jn = null), $i > 1 && console.timeEnd("clipping"), Qr.push(Xo || [], wt + 1, rr * 2, nr * 2), Qr.push(da || [], wt + 1, rr * 2, nr * 2 + 1), Qr.push(Wn || [], wt + 1, rr * 2 + 1, nr * 2), Qr.push(Ha || [], wt + 1, rr * 2 + 1, nr * 2 + 1);
+ }
+ }
+ }, In.prototype.getTile = function(Ut, wt, rr) {
+ var nr = this.options, Er = nr.extent, Xr = nr.debug;
+ if (Ut < 0 || Ut > 24) return null;
+ var ri = 1 << Ut;
+ wt = (wt % ri + ri) % ri;
+ var Qr = wi(Ut, wt, rr);
+ if (this.tiles[Qr]) return ar(this.tiles[Qr], Er);
+ Xr > 1 && console.log("drilling down to z%d-%d-%d", Ut, wt, rr);
+ for (var Oi = Ut, $i = wt, tn = rr, fn; !fn && Oi > 0; ) Oi--, $i = Math.floor($i / 2), tn = Math.floor(tn / 2), fn = this.tiles[wi(Oi, $i, tn)];
+ return !fn || !fn.source ? null : (Xr > 1 && console.log("found parent tile z%d-%d-%d", Oi, $i, tn), Xr > 1 && console.time("drilling down"), this.splitTile(fn.source, Oi, $i, tn, Ut, wt, rr), Xr > 1 && console.timeEnd("drilling down"), this.tiles[Qr] ? ar(this.tiles[Qr], Er) : null);
+ };
+ function wi(Ut, wt, rr) {
+ return ((1 << Ut) * rr + wt) * 32 + Ut;
+ }
+ function On(Ut, wt) {
+ for (var rr in wt) Ut[rr] = wt[rr];
+ return Ut;
+ }
+ function qn(Ut, wt) {
+ var rr = Ut.tileID.canonical;
+ if (!this._geoJSONIndex) return wt(null, null);
+ var nr = this._geoJSONIndex.getTile(rr.z, rr.x, rr.y);
+ if (!nr) return wt(null, null);
+ var Er = new C(nr.features), Xr = z(Er);
+ (Xr.byteOffset !== 0 || Xr.byteLength !== Xr.buffer.byteLength) && (Xr = new Uint8Array(Xr)), wt(null, { vectorTile: Er, rawData: Xr.buffer });
+ }
+ var Fn = function(Ut) {
+ function wt(rr, nr, Er, Xr) {
+ Ut.call(this, rr, nr, Er, qn), Xr && (this.loadGeoJSON = Xr);
+ }
+ return Ut && (wt.__proto__ = Ut), wt.prototype = Object.create(Ut && Ut.prototype), wt.prototype.constructor = wt, wt.prototype.loadData = function(nr, Er) {
+ this._pendingCallback && this._pendingCallback(null, { abandoned: true }), this._pendingCallback = Er, this._pendingLoadDataParams = nr, this._state && this._state !== "Idle" ? this._state = "NeedsLoadData" : (this._state = "Coalescing", this._loadData());
+ }, wt.prototype._loadData = function() {
+ var nr = this;
+ if (!(!this._pendingCallback || !this._pendingLoadDataParams)) {
+ var Er = this._pendingCallback, Xr = this._pendingLoadDataParams;
+ delete this._pendingCallback, delete this._pendingLoadDataParams;
+ var ri = Xr && Xr.request && Xr.request.collectResourceTiming ? new i.RequestPerformance(Xr.request) : false;
+ this.loadGeoJSON(Xr, function(Qr, Oi) {
+ if (Qr || !Oi) return Er(Qr);
+ if (typeof Oi != "object") return Er(new Error("Input data given to '" + Xr.source + "' is not a valid GeoJSON object."));
+ p(Oi, true);
+ try {
+ if (Xr.filter) {
+ var $i = i.createExpression(Xr.filter, { type: "boolean", "property-type": "data-driven", overridable: false, transition: false });
+ if ($i.result === "error") throw new Error($i.value.map(function(Sn) {
+ return Sn.key + ": " + Sn.message;
+ }).join(", "));
+ var tn = Oi.features.filter(function(Sn) {
+ return $i.value.evaluate({ zoom: 0 }, Sn);
+ });
+ Oi = { type: "FeatureCollection", features: tn };
+ }
+ nr._geoJSONIndex = Xr.cluster ? new pt(ra(Xr)).load(Oi.features) : ji(Oi, Xr.geojsonVtOptions);
+ } catch (Sn) {
+ return Er(Sn);
+ }
+ nr.loaded = {};
+ var fn = {};
+ if (ri) {
+ var yn = ri.finish();
+ yn && (fn.resourceTiming = {}, fn.resourceTiming[Xr.source] = JSON.parse(JSON.stringify(yn)));
+ }
+ Er(null, fn);
+ });
+ }
+ }, wt.prototype.coalesce = function() {
+ this._state === "Coalescing" ? this._state = "Idle" : this._state === "NeedsLoadData" && (this._state = "Coalescing", this._loadData());
+ }, wt.prototype.reloadTile = function(nr, Er) {
+ var Xr = this.loaded, ri = nr.uid;
+ return Xr && Xr[ri] ? Ut.prototype.reloadTile.call(this, nr, Er) : this.loadTile(nr, Er);
+ }, wt.prototype.loadGeoJSON = function(nr, Er) {
+ if (nr.request) i.getJSON(nr.request, Er);
+ else if (typeof nr.data == "string") try {
+ return Er(null, JSON.parse(nr.data));
+ } catch (Xr) {
+ return Er(new Error("Input data given to '" + nr.source + "' is not a valid GeoJSON object."));
+ }
+ else return Er(new Error("Input data given to '" + nr.source + "' is not a valid GeoJSON object."));
+ }, wt.prototype.removeSource = function(nr, Er) {
+ this._pendingCallback && this._pendingCallback(null, { abandoned: true }), Er();
+ }, wt.prototype.getClusterExpansionZoom = function(nr, Er) {
+ try {
+ Er(null, this._geoJSONIndex.getClusterExpansionZoom(nr.clusterId));
+ } catch (Xr) {
+ Er(Xr);
+ }
+ }, wt.prototype.getClusterChildren = function(nr, Er) {
+ try {
+ Er(null, this._geoJSONIndex.getChildren(nr.clusterId));
+ } catch (Xr) {
+ Er(Xr);
+ }
+ }, wt.prototype.getClusterLeaves = function(nr, Er) {
+ try {
+ Er(null, this._geoJSONIndex.getLeaves(nr.clusterId, nr.limit, nr.offset));
+ } catch (Xr) {
+ Er(Xr);
+ }
+ }, wt;
+ }(v);
+ function ra(Ut) {
+ var wt = Ut.superclusterOptions, rr = Ut.clusterProperties;
+ if (!rr || !wt) return wt;
+ for (var nr = {}, Er = {}, Xr = { accumulated: null, zoom: 0 }, ri = { properties: null }, Qr = Object.keys(rr), Oi = 0, $i = Qr; Oi < $i.length; Oi += 1) {
+ var tn = $i[Oi], fn = rr[tn], yn = fn[0], Sn = fn[1], Ba = i.createExpression(Sn), ua = i.createExpression(typeof yn == "string" ? [yn, ["accumulated"], ["get", tn]] : yn);
+ nr[tn] = Ba.value, Er[tn] = ua.value;
+ }
+ return wt.map = function(ma) {
+ ri.properties = ma;
+ for (var Wa = {}, Fa = 0, Xo = Qr; Fa < Xo.length; Fa += 1) {
+ var da = Xo[Fa];
+ Wa[da] = nr[da].evaluate(Xr, ri);
+ }
+ return Wa;
+ }, wt.reduce = function(ma, Wa) {
+ ri.properties = Wa;
+ for (var Fa = 0, Xo = Qr; Fa < Xo.length; Fa += 1) {
+ var da = Xo[Fa];
+ Xr.accumulated = ma[da], ma[da] = Er[da].evaluate(Xr, ri);
+ }
+ }, wt;
+ }
+ var la = function(wt) {
+ var rr = this;
+ this.self = wt, this.actor = new i.Actor(wt, this), this.layerIndexes = {}, this.availableImages = {}, this.workerSourceTypes = { vector: v, geojson: Fn }, this.workerSources = {}, this.demWorkerSources = {}, this.self.registerWorkerSource = function(nr, Er) {
+ if (rr.workerSourceTypes[nr]) throw new Error('Worker source with name "' + nr + '" already registered.');
+ rr.workerSourceTypes[nr] = Er;
+ }, this.self.registerRTLTextPlugin = function(nr) {
+ if (i.plugin.isParsed()) throw new Error("RTL text plugin already registered.");
+ i.plugin.applyArabicShaping = nr.applyArabicShaping, i.plugin.processBidirectionalText = nr.processBidirectionalText, i.plugin.processStyledBidirectionalText = nr.processStyledBidirectionalText;
+ };
+ };
+ return la.prototype.setReferrer = function(wt, rr) {
+ this.referrer = rr;
+ }, la.prototype.setImages = function(wt, rr, nr) {
+ this.availableImages[wt] = rr;
+ for (var Er in this.workerSources[wt]) {
+ var Xr = this.workerSources[wt][Er];
+ for (var ri in Xr) Xr[ri].availableImages = rr;
+ }
+ nr();
+ }, la.prototype.setLayers = function(wt, rr, nr) {
+ this.getLayerIndex(wt).replace(rr), nr();
+ }, la.prototype.updateLayers = function(wt, rr, nr) {
+ this.getLayerIndex(wt).update(rr.layers, rr.removedIds), nr();
+ }, la.prototype.loadTile = function(wt, rr, nr) {
+ this.getWorkerSource(wt, rr.type, rr.source).loadTile(rr, nr);
+ }, la.prototype.loadDEMTile = function(wt, rr, nr) {
+ this.getDEMWorkerSource(wt, rr.source).loadTile(rr, nr);
+ }, la.prototype.reloadTile = function(wt, rr, nr) {
+ this.getWorkerSource(wt, rr.type, rr.source).reloadTile(rr, nr);
+ }, la.prototype.abortTile = function(wt, rr, nr) {
+ this.getWorkerSource(wt, rr.type, rr.source).abortTile(rr, nr);
+ }, la.prototype.removeTile = function(wt, rr, nr) {
+ this.getWorkerSource(wt, rr.type, rr.source).removeTile(rr, nr);
+ }, la.prototype.removeDEMTile = function(wt, rr) {
+ this.getDEMWorkerSource(wt, rr.source).removeTile(rr);
+ }, la.prototype.removeSource = function(wt, rr, nr) {
+ if (!(!this.workerSources[wt] || !this.workerSources[wt][rr.type] || !this.workerSources[wt][rr.type][rr.source])) {
+ var Er = this.workerSources[wt][rr.type][rr.source];
+ delete this.workerSources[wt][rr.type][rr.source], Er.removeSource !== void 0 ? Er.removeSource(rr, nr) : nr();
+ }
+ }, la.prototype.loadWorkerSource = function(wt, rr, nr) {
+ try {
+ this.self.importScripts(rr.url), nr();
+ } catch (Er) {
+ nr(Er.toString());
+ }
+ }, la.prototype.syncRTLPluginState = function(wt, rr, nr) {
+ try {
+ i.plugin.setState(rr);
+ var Er = i.plugin.getPluginURL();
+ if (i.plugin.isLoaded() && !i.plugin.isParsed() && Er != null) {
+ this.self.importScripts(Er);
+ var Xr = i.plugin.isParsed(), ri = Xr ? void 0 : new Error("RTL Text Plugin failed to import scripts from " + Er);
+ nr(ri, Xr);
+ }
+ } catch (Qr) {
+ nr(Qr.toString());
+ }
+ }, la.prototype.getAvailableImages = function(wt) {
+ var rr = this.availableImages[wt];
+ return rr || (rr = []), rr;
+ }, la.prototype.getLayerIndex = function(wt) {
+ var rr = this.layerIndexes[wt];
+ return rr || (rr = this.layerIndexes[wt] = new l()), rr;
+ }, la.prototype.getWorkerSource = function(wt, rr, nr) {
+ var Er = this;
+ if (this.workerSources[wt] || (this.workerSources[wt] = {}), this.workerSources[wt][rr] || (this.workerSources[wt][rr] = {}), !this.workerSources[wt][rr][nr]) {
+ var Xr = { send: function(ri, Qr, Oi) {
+ Er.actor.send(ri, Qr, Oi, wt);
+ } };
+ this.workerSources[wt][rr][nr] = new this.workerSourceTypes[rr](Xr, this.getLayerIndex(wt), this.getAvailableImages(wt));
+ }
+ return this.workerSources[wt][rr][nr];
+ }, la.prototype.getDEMWorkerSource = function(wt, rr) {
+ return this.demWorkerSources[wt] || (this.demWorkerSources[wt] = {}), this.demWorkerSources[wt][rr] || (this.demWorkerSources[wt][rr] = new b()), this.demWorkerSources[wt][rr];
+ }, la.prototype.enforceCacheSizeLimit = function(wt, rr) {
+ i.enforceCacheSizeLimit(rr);
+ }, typeof WorkerGlobalScope != "undefined" && typeof self != "undefined" && self instanceof WorkerGlobalScope && (self.worker = new la(self)), la;
+ }), n(["./shared"], function(i) {
+ var a = i.createCommonjsModule(function(Y) {
+ Y.exports ? Y.exports = D : window && (window.mapboxgl = window.mapboxgl || {}, window.mapboxgl.supported = D, window.mapboxgl.notSupportedReason = J);
+ function D(Ct) {
+ return !J(Ct);
+ }
+ function J(Ct) {
+ if (!q()) return "not a browser";
+ if (!K()) return "insufficent Array support";
+ if (!de()) return "insufficient Function support";
+ if (!ne()) return "insufficient Object support";
+ if (!we()) return "insufficient JSON support";
+ if (!Ue()) return "insufficient worker support";
+ if (!ft()) return "insufficient Uint8ClampedArray support";
+ if (!Zt()) return "insufficient ArrayBuffer support";
+ if (!hr()) return "insufficient Canvas/getImageData support";
+ if (!Ve(Ct && Ct.failIfMajorPerformanceCaveat)) return "insufficient WebGL support";
+ }
+ function q() {
+ return typeof window != "undefined" && typeof document != "undefined";
+ }
+ function K() {
+ return Array.prototype && Array.prototype.every && Array.prototype.filter && Array.prototype.forEach && Array.prototype.indexOf && Array.prototype.lastIndexOf && Array.prototype.map && Array.prototype.some && Array.prototype.reduce && Array.prototype.reduceRight && Array.isArray;
+ }
+ function de() {
+ return Function.prototype && Function.prototype.bind;
+ }
+ function ne() {
+ return Object.keys && Object.create && Object.getPrototypeOf && Object.getOwnPropertyNames && Object.isSealed && Object.isFrozen && Object.isExtensible && Object.getOwnPropertyDescriptor && Object.defineProperty && Object.defineProperties && Object.seal && Object.freeze && Object.preventExtensions;
+ }
+ function we() {
+ return "JSON" in window && "parse" in JSON && "stringify" in JSON;
+ }
+ function Ue() {
+ if (!("Worker" in window && "Blob" in window && "URL" in window)) return false;
+ var Ct = new Blob([""], { type: "text/javascript" }), Ot = URL.createObjectURL(Ct), Rt, Bt;
+ try {
+ Bt = new Worker(Ot), Rt = true;
+ } catch (Dt) {
+ Rt = false;
+ }
+ return Bt && Bt.terminate(), URL.revokeObjectURL(Ot), Rt;
+ }
+ function ft() {
+ return "Uint8ClampedArray" in window;
+ }
+ function Zt() {
+ return ArrayBuffer.isView;
+ }
+ function hr() {
+ var Ct = document.createElement("canvas");
+ Ct.width = Ct.height = 1;
+ var Ot = Ct.getContext("2d");
+ if (!Ot) return false;
+ var Rt = Ot.getImageData(0, 0, 1, 1);
+ return Rt && Rt.width === Ct.width;
+ }
+ var qt = {};
+ function Ve(Ct) {
+ return qt[Ct] === void 0 && (qt[Ct] = at(Ct)), qt[Ct];
+ }
+ D.webGLContextAttributes = { antialias: false, alpha: true, stencil: true, depth: true };
+ function Qe(Ct) {
+ var Ot = document.createElement("canvas"), Rt = Object.create(D.webGLContextAttributes);
+ return Rt.failIfMajorPerformanceCaveat = Ct, Ot.probablySupportsContext ? Ot.probablySupportsContext("webgl", Rt) || Ot.probablySupportsContext("experimental-webgl", Rt) : Ot.supportsContext ? Ot.supportsContext("webgl", Rt) || Ot.supportsContext("experimental-webgl", Rt) : Ot.getContext("webgl", Rt) || Ot.getContext("experimental-webgl", Rt);
+ }
+ function at(Ct) {
+ var Ot = Qe(Ct);
+ if (!Ot) return false;
+ var Rt = Ot.createShader(Ot.VERTEX_SHADER);
+ return !Rt || Ot.isContextLost() ? false : (Ot.shaderSource(Rt, "void main() {}"), Ot.compileShader(Rt), Ot.getShaderParameter(Rt, Ot.COMPILE_STATUS) === true);
+ }
+ }), o = {};
+ o.create = function(Y, D, J) {
+ var q = i.window.document.createElement(Y);
+ return D !== void 0 && (q.className = D), J && J.appendChild(q), q;
+ }, o.createNS = function(Y, D) {
+ var J = i.window.document.createElementNS(Y, D);
+ return J;
+ };
+ var s = i.window.document && i.window.document.documentElement.style;
+ function l(Y) {
+ if (!s) return Y[0];
+ for (var D = 0; D < Y.length; D++) if (Y[D] in s) return Y[D];
+ return Y[0];
+ }
+ var u = l(["userSelect", "MozUserSelect", "WebkitUserSelect", "msUserSelect"]), c;
+ o.disableDrag = function() {
+ s && u && (c = s[u], s[u] = "none");
+ }, o.enableDrag = function() {
+ s && u && (s[u] = c);
+ };
+ var f = l(["transform", "WebkitTransform"]);
+ o.setTransform = function(Y, D) {
+ Y.style[f] = D;
+ };
+ var h = false;
+ try {
+ var d = Object.defineProperty({}, "passive", { get: function() {
+ h = true;
+ } });
+ i.window.addEventListener("test", d, d), i.window.removeEventListener("test", d, d);
+ } catch (Y) {
+ h = false;
+ }
+ o.addEventListener = function(Y, D, J, q) {
+ q === void 0 && (q = {}), "passive" in q && h ? Y.addEventListener(D, J, q) : Y.addEventListener(D, J, q.capture);
+ }, o.removeEventListener = function(Y, D, J, q) {
+ q === void 0 && (q = {}), "passive" in q && h ? Y.removeEventListener(D, J, q) : Y.removeEventListener(D, J, q.capture);
+ };
+ var v = function(Y) {
+ Y.preventDefault(), Y.stopPropagation(), i.window.removeEventListener("click", v, true);
+ };
+ o.suppressClick = function() {
+ i.window.addEventListener("click", v, true), i.window.setTimeout(function() {
+ i.window.removeEventListener("click", v, true);
+ }, 0);
+ }, o.mousePos = function(Y, D) {
+ var J = Y.getBoundingClientRect();
+ return new i.Point(D.clientX - J.left - Y.clientLeft, D.clientY - J.top - Y.clientTop);
+ }, o.touchPos = function(Y, D) {
+ for (var J = Y.getBoundingClientRect(), q = [], K = 0; K < D.length; K++) q.push(new i.Point(D[K].clientX - J.left - Y.clientLeft, D[K].clientY - J.top - Y.clientTop));
+ return q;
+ }, o.mouseButton = function(Y) {
+ return typeof i.window.InstallTrigger != "undefined" && Y.button === 2 && Y.ctrlKey && i.window.navigator.platform.toUpperCase().indexOf("MAC") >= 0 ? 0 : Y.button;
+ }, o.remove = function(Y) {
+ Y.parentNode && Y.parentNode.removeChild(Y);
+ };
+ function _(Y, D, J) {
+ var q, K, de, ne = i.browser.devicePixelRatio > 1 ? "@2x" : "", we = i.getJSON(D.transformRequest(D.normalizeSpriteURL(Y, ne, ".json"), i.ResourceType.SpriteJSON), function(Zt, hr) {
+ we = null, de || (de = Zt, q = hr, ft());
+ }), Ue = i.getImage(D.transformRequest(D.normalizeSpriteURL(Y, ne, ".png"), i.ResourceType.SpriteImage), function(Zt, hr) {
+ Ue = null, de || (de = Zt, K = hr, ft());
+ });
+ function ft() {
+ if (de) J(de);
+ else if (q && K) {
+ var Zt = i.browser.getImageData(K), hr = {};
+ for (var qt in q) {
+ var Ve = q[qt], Qe = Ve.width, at = Ve.height, Ct = Ve.x, Ot = Ve.y, Rt = Ve.sdf, Bt = Ve.pixelRatio, Dt = Ve.stretchX, yt = Ve.stretchY, Pt = Ve.content, ht = new i.RGBAImage({ width: Qe, height: at });
+ i.RGBAImage.copy(Zt, ht, { x: Ct, y: Ot }, { x: 0, y: 0 }, { width: Qe, height: at }), hr[qt] = { data: ht, pixelRatio: Bt, sdf: Rt, stretchX: Dt, stretchY: yt, content: Pt };
+ }
+ J(null, hr);
+ }
+ }
+ return { cancel: function() {
+ we && (we.cancel(), we = null), Ue && (Ue.cancel(), Ue = null);
+ } };
+ }
+ function b(Y) {
+ var D = Y.userImage;
+ if (D && D.render) {
+ var J = D.render();
+ if (J) return Y.data.replace(new Uint8Array(D.data.buffer)), true;
+ }
+ return false;
+ }
+ var p = 1, k = function(Y) {
+ function D() {
+ Y.call(this), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = false, this.requestors = [], this.patterns = {}, this.atlasImage = new i.RGBAImage({ width: 1, height: 1 }), this.dirty = true;
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.isLoaded = function() {
+ return this.loaded;
+ }, D.prototype.setLoaded = function(q) {
+ if (this.loaded !== q && (this.loaded = q, q)) {
+ for (var K = 0, de = this.requestors; K < de.length; K += 1) {
+ var ne = de[K], we = ne.ids, Ue = ne.callback;
+ this._notify(we, Ue);
+ }
+ this.requestors = [];
+ }
+ }, D.prototype.getImage = function(q) {
+ return this.images[q];
+ }, D.prototype.addImage = function(q, K) {
+ this._validate(q, K) && (this.images[q] = K);
+ }, D.prototype._validate = function(q, K) {
+ var de = true;
+ return this._validateStretch(K.stretchX, K.data && K.data.width) || (this.fire(new i.ErrorEvent(new Error('Image "' + q + '" has invalid "stretchX" value'))), de = false), this._validateStretch(K.stretchY, K.data && K.data.height) || (this.fire(new i.ErrorEvent(new Error('Image "' + q + '" has invalid "stretchY" value'))), de = false), this._validateContent(K.content, K) || (this.fire(new i.ErrorEvent(new Error('Image "' + q + '" has invalid "content" value'))), de = false), de;
+ }, D.prototype._validateStretch = function(q, K) {
+ if (!q) return true;
+ for (var de = 0, ne = 0, we = q; ne < we.length; ne += 1) {
+ var Ue = we[ne];
+ if (Ue[0] < de || Ue[1] < Ue[0] || K < Ue[1]) return false;
+ de = Ue[1];
+ }
+ return true;
+ }, D.prototype._validateContent = function(q, K) {
+ return q ? !(q.length !== 4 || q[0] < 0 || K.data.width < q[0] || q[1] < 0 || K.data.height < q[1] || q[2] < 0 || K.data.width < q[2] || q[3] < 0 || K.data.height < q[3] || q[2] < q[0] || q[3] < q[1]) : true;
+ }, D.prototype.updateImage = function(q, K) {
+ var de = this.images[q];
+ K.version = de.version + 1, this.images[q] = K, this.updatedImages[q] = true;
+ }, D.prototype.removeImage = function(q) {
+ var K = this.images[q];
+ delete this.images[q], delete this.patterns[q], K.userImage && K.userImage.onRemove && K.userImage.onRemove();
+ }, D.prototype.listImages = function() {
+ return Object.keys(this.images);
+ }, D.prototype.getImages = function(q, K) {
+ var de = true;
+ if (!this.isLoaded()) for (var ne = 0, we = q; ne < we.length; ne += 1) {
+ var Ue = we[ne];
+ this.images[Ue] || (de = false);
+ }
+ this.isLoaded() || de ? this._notify(q, K) : this.requestors.push({ ids: q, callback: K });
+ }, D.prototype._notify = function(q, K) {
+ for (var de = {}, ne = 0, we = q; ne < we.length; ne += 1) {
+ var Ue = we[ne];
+ this.images[Ue] || this.fire(new i.Event("styleimagemissing", { id: Ue }));
+ var ft = this.images[Ue];
+ ft ? de[Ue] = { data: ft.data.clone(), pixelRatio: ft.pixelRatio, sdf: ft.sdf, version: ft.version, stretchX: ft.stretchX, stretchY: ft.stretchY, content: ft.content, hasRenderCallback: !!(ft.userImage && ft.userImage.render) } : i.warnOnce('Image "' + Ue + '" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.');
+ }
+ K(null, de);
+ }, D.prototype.getPixelSize = function() {
+ var q = this.atlasImage, K = q.width, de = q.height;
+ return { width: K, height: de };
+ }, D.prototype.getPattern = function(q) {
+ var K = this.patterns[q], de = this.getImage(q);
+ if (!de) return null;
+ if (K && K.position.version === de.version) return K.position;
+ if (K) K.position.version = de.version;
+ else {
+ var ne = de.data.width + p * 2, we = de.data.height + p * 2, Ue = { w: ne, h: we, x: 0, y: 0 }, ft = new i.ImagePosition(Ue, de);
+ this.patterns[q] = { bin: Ue, position: ft };
+ }
+ return this._updatePatternAtlas(), this.patterns[q].position;
+ }, D.prototype.bind = function(q) {
+ var K = q.gl;
+ this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = false) : this.atlasTexture = new i.Texture(q, this.atlasImage, K.RGBA), this.atlasTexture.bind(K.LINEAR, K.CLAMP_TO_EDGE);
+ }, D.prototype._updatePatternAtlas = function() {
+ var q = [];
+ for (var K in this.patterns) q.push(this.patterns[K].bin);
+ var de = i.potpack(q), ne = de.w, we = de.h, Ue = this.atlasImage;
+ Ue.resize({ width: ne || 1, height: we || 1 });
+ for (var ft in this.patterns) {
+ var Zt = this.patterns[ft], hr = Zt.bin, qt = hr.x + p, Ve = hr.y + p, Qe = this.images[ft].data, at = Qe.width, Ct = Qe.height;
+ i.RGBAImage.copy(Qe, Ue, { x: 0, y: 0 }, { x: qt, y: Ve }, { width: at, height: Ct }), i.RGBAImage.copy(Qe, Ue, { x: 0, y: Ct - 1 }, { x: qt, y: Ve - 1 }, { width: at, height: 1 }), i.RGBAImage.copy(Qe, Ue, { x: 0, y: 0 }, { x: qt, y: Ve + Ct }, { width: at, height: 1 }), i.RGBAImage.copy(Qe, Ue, { x: at - 1, y: 0 }, { x: qt - 1, y: Ve }, { width: 1, height: Ct }), i.RGBAImage.copy(Qe, Ue, { x: 0, y: 0 }, { x: qt + at, y: Ve }, { width: 1, height: Ct });
+ }
+ this.dirty = true;
+ }, D.prototype.beginFrame = function() {
+ this.callbackDispatchedThisFrame = {};
+ }, D.prototype.dispatchRenderCallbacks = function(q) {
+ for (var K = 0, de = q; K < de.length; K += 1) {
+ var ne = de[K];
+ if (!this.callbackDispatchedThisFrame[ne]) {
+ this.callbackDispatchedThisFrame[ne] = true;
+ var we = this.images[ne], Ue = b(we);
+ Ue && this.updateImage(ne, we);
+ }
+ }
+ }, D;
+ }(i.Evented);
+ function E(Y, D, J, q, K) {
+ var de = D * 256, ne = de + 255, we = q.transformRequest(q.normalizeGlyphsURL(J).replace("{fontstack}", Y).replace("{range}", de + "-" + ne), i.ResourceType.Glyphs);
+ i.getArrayBuffer(we, function(Ue, ft) {
+ if (Ue) K(Ue);
+ else if (ft) {
+ for (var Zt = {}, hr = 0, qt = i.parseGlyphPBF(ft); hr < qt.length; hr += 1) {
+ var Ve = qt[hr];
+ Zt[Ve.id] = Ve;
+ }
+ K(null, Zt);
+ }
+ });
+ }
+ var T = C, L = C, x = 1e20;
+ function C(Y, D, J, q, K, de) {
+ this.fontSize = Y || 24, this.buffer = D === void 0 ? 3 : D, this.cutoff = q || 0.25, this.fontFamily = K || "sans-serif", this.fontWeight = de || "normal", this.radius = J || 8;
+ var ne = this.size = this.fontSize + this.buffer * 2;
+ this.canvas = document.createElement("canvas"), this.canvas.width = this.canvas.height = ne, this.ctx = this.canvas.getContext("2d"), this.ctx.font = this.fontWeight + " " + this.fontSize + "px " + this.fontFamily, this.ctx.textBaseline = "middle", this.ctx.fillStyle = "black", this.gridOuter = new Float64Array(ne * ne), this.gridInner = new Float64Array(ne * ne), this.f = new Float64Array(ne), this.d = new Float64Array(ne), this.z = new Float64Array(ne + 1), this.v = new Int16Array(ne), this.middle = Math.round(ne / 2 * (navigator.userAgent.indexOf("Gecko/") >= 0 ? 1.2 : 1));
+ }
+ C.prototype.draw = function(Y) {
+ this.ctx.clearRect(0, 0, this.size, this.size), this.ctx.fillText(Y, this.buffer, this.middle);
+ for (var D = this.ctx.getImageData(0, 0, this.size, this.size), J = new Uint8ClampedArray(this.size * this.size), q = 0; q < this.size * this.size; q++) {
+ var K = D.data[q * 4 + 3] / 255;
+ this.gridOuter[q] = K === 1 ? 0 : K === 0 ? x : Math.pow(Math.max(0, 0.5 - K), 2), this.gridInner[q] = K === 1 ? x : K === 0 ? 0 : Math.pow(Math.max(0, K - 0.5), 2);
+ }
+ for (M(this.gridOuter, this.size, this.size, this.f, this.d, this.v, this.z), M(this.gridInner, this.size, this.size, this.f, this.d, this.v, this.z), q = 0; q < this.size * this.size; q++) {
+ var de = this.gridOuter[q] - this.gridInner[q];
+ J[q] = Math.max(0, Math.min(255, Math.round(255 - 255 * (de / this.radius + this.cutoff))));
+ }
+ return J;
+ };
+ function M(Y, D, J, q, K, de, ne) {
+ for (var we = 0; we < D; we++) {
+ for (var Ue = 0; Ue < J; Ue++) q[Ue] = Y[Ue * D + we];
+ for (g(q, K, de, ne, J), Ue = 0; Ue < J; Ue++) Y[Ue * D + we] = K[Ue];
+ }
+ for (Ue = 0; Ue < J; Ue++) {
+ for (we = 0; we < D; we++) q[we] = Y[Ue * D + we];
+ for (g(q, K, de, ne, D), we = 0; we < D; we++) Y[Ue * D + we] = Math.sqrt(K[we]);
+ }
+ }
+ function g(Y, D, J, q, K) {
+ J[0] = 0, q[0] = -1e20, q[1] = 1e20;
+ for (var de = 1, ne = 0; de < K; de++) {
+ for (var we = (Y[de] + de * de - (Y[J[ne]] + J[ne] * J[ne])) / (2 * de - 2 * J[ne]); we <= q[ne]; ) ne--, we = (Y[de] + de * de - (Y[J[ne]] + J[ne] * J[ne])) / (2 * de - 2 * J[ne]);
+ ne++, J[ne] = de, q[ne] = we, q[ne + 1] = 1e20;
+ }
+ for (de = 0, ne = 0; de < K; de++) {
+ for (; q[ne + 1] < de; ) ne++;
+ D[de] = (de - J[ne]) * (de - J[ne]) + Y[J[ne]];
+ }
+ }
+ T.default = L;
+ var P = function(D, J) {
+ this.requestManager = D, this.localIdeographFontFamily = J, this.entries = {};
+ };
+ P.prototype.setURL = function(D) {
+ this.url = D;
+ }, P.prototype.getGlyphs = function(D, J) {
+ var q = this, K = [];
+ for (var de in D) for (var ne = 0, we = D[de]; ne < we.length; ne += 1) {
+ var Ue = we[ne];
+ K.push({ stack: de, id: Ue });
+ }
+ i.asyncAll(K, function(ft, Zt) {
+ var hr = ft.stack, qt = ft.id, Ve = q.entries[hr];
+ Ve || (Ve = q.entries[hr] = { glyphs: {}, requests: {}, ranges: {} });
+ var Qe = Ve.glyphs[qt];
+ if (Qe !== void 0) {
+ Zt(null, { stack: hr, id: qt, glyph: Qe });
+ return;
+ }
+ if (Qe = q._tinySDF(Ve, hr, qt), Qe) {
+ Ve.glyphs[qt] = Qe, Zt(null, { stack: hr, id: qt, glyph: Qe });
+ return;
+ }
+ var at = Math.floor(qt / 256);
+ if (at * 256 > 65535) {
+ Zt(new Error("glyphs > 65535 not supported"));
+ return;
+ }
+ if (Ve.ranges[at]) {
+ Zt(null, { stack: hr, id: qt, glyph: Qe });
+ return;
+ }
+ var Ct = Ve.requests[at];
+ Ct || (Ct = Ve.requests[at] = [], P.loadGlyphRange(hr, at, q.url, q.requestManager, function(Ot, Rt) {
+ if (Rt) {
+ for (var Bt in Rt) q._doesCharSupportLocalGlyph(+Bt) || (Ve.glyphs[+Bt] = Rt[+Bt]);
+ Ve.ranges[at] = true;
+ }
+ for (var Dt = 0, yt = Ct; Dt < yt.length; Dt += 1) {
+ var Pt = yt[Dt];
+ Pt(Ot, Rt);
+ }
+ delete Ve.requests[at];
+ })), Ct.push(function(Ot, Rt) {
+ Ot ? Zt(Ot) : Rt && Zt(null, { stack: hr, id: qt, glyph: Rt[qt] || null });
+ });
+ }, function(ft, Zt) {
+ if (ft) J(ft);
+ else if (Zt) {
+ for (var hr = {}, qt = 0, Ve = Zt; qt < Ve.length; qt += 1) {
+ var Qe = Ve[qt], at = Qe.stack, Ct = Qe.id, Ot = Qe.glyph;
+ (hr[at] || (hr[at] = {}))[Ct] = Ot && { id: Ot.id, bitmap: Ot.bitmap.clone(), metrics: Ot.metrics };
+ }
+ J(null, hr);
+ }
+ });
+ }, P.prototype._doesCharSupportLocalGlyph = function(D) {
+ return !!this.localIdeographFontFamily && (i.isChar["CJK Unified Ideographs"](D) || i.isChar["Hangul Syllables"](D) || i.isChar.Hiragana(D) || i.isChar.Katakana(D));
+ }, P.prototype._tinySDF = function(D, J, q) {
+ var K = this.localIdeographFontFamily;
+ if (K && this._doesCharSupportLocalGlyph(q)) {
+ var de = D.tinySDF;
+ if (!de) {
+ var ne = "400";
+ /bold/i.test(J) ? ne = "900" : /medium/i.test(J) ? ne = "500" : /light/i.test(J) && (ne = "200"), de = D.tinySDF = new P.TinySDF(24, 3, 8, 0.25, K, ne);
+ }
+ return { id: q, bitmap: new i.AlphaImage({ width: 30, height: 30 }, de.draw(String.fromCharCode(q))), metrics: { width: 24, height: 24, left: 0, top: -8, advance: 24 } };
+ }
+ }, P.loadGlyphRange = E, P.TinySDF = T;
+ var A = function() {
+ this.specification = i.styleSpec.light.position;
+ };
+ A.prototype.possiblyEvaluate = function(D, J) {
+ return i.sphericalToCartesian(D.expression.evaluate(J));
+ }, A.prototype.interpolate = function(D, J, q) {
+ return { x: i.number(D.x, J.x, q), y: i.number(D.y, J.y, q), z: i.number(D.z, J.z, q) };
+ };
+ var z = new i.Properties({ anchor: new i.DataConstantProperty(i.styleSpec.light.anchor), position: new A(), color: new i.DataConstantProperty(i.styleSpec.light.color), intensity: new i.DataConstantProperty(i.styleSpec.light.intensity) }), O = "-transition", U = function(Y) {
+ function D(J) {
+ Y.call(this), this._transitionable = new i.Transitionable(z), this.setLight(J), this._transitioning = this._transitionable.untransitioned();
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getLight = function() {
+ return this._transitionable.serialize();
+ }, D.prototype.setLight = function(q, K) {
+ if (K === void 0 && (K = {}), !this._validate(i.validateLight, q, K)) for (var de in q) {
+ var ne = q[de];
+ i.endsWith(de, O) ? this._transitionable.setTransition(de.slice(0, -O.length), ne) : this._transitionable.setValue(de, ne);
+ }
+ }, D.prototype.updateTransitions = function(q) {
+ this._transitioning = this._transitionable.transitioned(q, this._transitioning);
+ }, D.prototype.hasTransition = function() {
+ return this._transitioning.hasTransition();
+ }, D.prototype.recalculate = function(q) {
+ this.properties = this._transitioning.possiblyEvaluate(q);
+ }, D.prototype._validate = function(q, K, de) {
+ return de && de.validate === false ? false : i.emitValidationErrors(this, q.call(i.validateStyle, i.extend({ value: K, style: { glyphs: true, sprite: true }, styleSpec: i.styleSpec })));
+ }, D;
+ }(i.Evented), G = function(D, J) {
+ this.width = D, this.height = J, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {};
+ };
+ G.prototype.getDash = function(D, J) {
+ var q = D.join(",") + String(J);
+ return this.dashEntry[q] || (this.dashEntry[q] = this.addDash(D, J)), this.dashEntry[q];
+ }, G.prototype.getDashRanges = function(D, J, q) {
+ var K = D.length % 2 === 1, de = [], ne = K ? -D[D.length - 1] * q : 0, we = D[0] * q, Ue = true;
+ de.push({ left: ne, right: we, isDash: Ue, zeroLength: D[0] === 0 });
+ for (var ft = D[0], Zt = 1; Zt < D.length; Zt++) {
+ Ue = !Ue;
+ var hr = D[Zt];
+ ne = ft * q, ft += hr, we = ft * q, de.push({ left: ne, right: we, isDash: Ue, zeroLength: hr === 0 });
+ }
+ return de;
+ }, G.prototype.addRoundDash = function(D, J, q) {
+ for (var K = J / 2, de = -q; de <= q; de++) for (var ne = this.nextRow + q + de, we = this.width * ne, Ue = 0, ft = D[Ue], Zt = 0; Zt < this.width; Zt++) {
+ Zt / ft.right > 1 && (ft = D[++Ue]);
+ var hr = Math.abs(Zt - ft.left), qt = Math.abs(Zt - ft.right), Ve = Math.min(hr, qt), Qe = void 0, at = de / q * (K + 1);
+ if (ft.isDash) {
+ var Ct = K - Math.abs(at);
+ Qe = Math.sqrt(Ve * Ve + Ct * Ct);
+ } else Qe = K - Math.sqrt(Ve * Ve + at * at);
+ this.data[we + Zt] = Math.max(0, Math.min(255, Qe + 128));
+ }
+ }, G.prototype.addRegularDash = function(D) {
+ for (var J = D.length - 1; J >= 0; --J) {
+ var q = D[J], K = D[J + 1];
+ q.zeroLength ? D.splice(J, 1) : K && K.isDash === q.isDash && (K.left = q.left, D.splice(J, 1));
+ }
+ var de = D[0], ne = D[D.length - 1];
+ de.isDash === ne.isDash && (de.left = ne.left - this.width, ne.right = de.right + this.width);
+ for (var we = this.width * this.nextRow, Ue = 0, ft = D[Ue], Zt = 0; Zt < this.width; Zt++) {
+ Zt / ft.right > 1 && (ft = D[++Ue]);
+ var hr = Math.abs(Zt - ft.left), qt = Math.abs(Zt - ft.right), Ve = Math.min(hr, qt), Qe = ft.isDash ? Ve : -Ve;
+ this.data[we + Zt] = Math.max(0, Math.min(255, Qe + 128));
+ }
+ }, G.prototype.addDash = function(D, J) {
+ var q = J ? 7 : 0, K = 2 * q + 1;
+ if (this.nextRow + K > this.height) return i.warnOnce("LineAtlas out of space"), null;
+ for (var de = 0, ne = 0; ne < D.length; ne++) de += D[ne];
+ if (de !== 0) {
+ var we = this.width / de, Ue = this.getDashRanges(D, this.width, we);
+ J ? this.addRoundDash(Ue, we, q) : this.addRegularDash(Ue);
+ }
+ var ft = { y: (this.nextRow + q + 0.5) / this.height, height: 2 * q / this.height, width: de };
+ return this.nextRow += K, this.dirty = true, ft;
+ }, G.prototype.bind = function(D) {
+ var J = D.gl;
+ this.texture ? (J.bindTexture(J.TEXTURE_2D, this.texture), this.dirty && (this.dirty = false, J.texSubImage2D(J.TEXTURE_2D, 0, 0, 0, this.width, this.height, J.ALPHA, J.UNSIGNED_BYTE, this.data))) : (this.texture = J.createTexture(), J.bindTexture(J.TEXTURE_2D, this.texture), J.texParameteri(J.TEXTURE_2D, J.TEXTURE_WRAP_S, J.REPEAT), J.texParameteri(J.TEXTURE_2D, J.TEXTURE_WRAP_T, J.REPEAT), J.texParameteri(J.TEXTURE_2D, J.TEXTURE_MIN_FILTER, J.LINEAR), J.texParameteri(J.TEXTURE_2D, J.TEXTURE_MAG_FILTER, J.LINEAR), J.texImage2D(J.TEXTURE_2D, 0, J.ALPHA, this.width, this.height, 0, J.ALPHA, J.UNSIGNED_BYTE, this.data));
+ };
+ var Z = function Y(D, J) {
+ this.workerPool = D, this.actors = [], this.currentActor = 0, this.id = i.uniqueId();
+ for (var q = this.workerPool.acquire(this.id), K = 0; K < q.length; K++) {
+ var de = q[K], ne = new Y.Actor(de, J, this.id);
+ ne.name = "Worker " + K, this.actors.push(ne);
+ }
+ };
+ Z.prototype.broadcast = function(D, J, q) {
+ q = q || function() {
+ }, i.asyncAll(this.actors, function(K, de) {
+ K.send(D, J, de);
+ }, q);
+ }, Z.prototype.getActor = function() {
+ return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor];
+ }, Z.prototype.remove = function() {
+ this.actors.forEach(function(D) {
+ D.remove();
+ }), this.actors = [], this.workerPool.release(this.id);
+ }, Z.Actor = i.Actor;
+ function j(Y, D, J) {
+ var q = function(K, de) {
+ if (K) return J(K);
+ if (de) {
+ var ne = i.pick(i.extend(de, Y), ["tiles", "minzoom", "maxzoom", "attribution", "mapbox_logo", "bounds", "scheme", "tileSize", "encoding"]);
+ de.vector_layers && (ne.vectorLayers = de.vector_layers, ne.vectorLayerIds = ne.vectorLayers.map(function(we) {
+ return we.id;
+ })), ne.tiles = D.canonicalizeTileset(ne, Y.url), J(null, ne);
+ }
+ };
+ return Y.url ? i.getJSON(D.transformRequest(D.normalizeSourceURL(Y.url), i.ResourceType.Source), q) : i.browser.frame(function() {
+ return q(null, Y);
+ });
+ }
+ var N = function(D, J, q) {
+ this.bounds = i.LngLatBounds.convert(this.validateBounds(D)), this.minzoom = J || 0, this.maxzoom = q || 24;
+ };
+ N.prototype.validateBounds = function(D) {
+ return !Array.isArray(D) || D.length !== 4 ? [-180, -90, 180, 90] : [Math.max(-180, D[0]), Math.max(-90, D[1]), Math.min(180, D[2]), Math.min(90, D[3])];
+ }, N.prototype.contains = function(D) {
+ var J = Math.pow(2, D.z), q = { minX: Math.floor(i.mercatorXfromLng(this.bounds.getWest()) * J), minY: Math.floor(i.mercatorYfromLat(this.bounds.getNorth()) * J), maxX: Math.ceil(i.mercatorXfromLng(this.bounds.getEast()) * J), maxY: Math.ceil(i.mercatorYfromLat(this.bounds.getSouth()) * J) }, K = D.x >= q.minX && D.x < q.maxX && D.y >= q.minY && D.y < q.maxY;
+ return K;
+ };
+ var H = function(Y) {
+ function D(J, q, K, de) {
+ if (Y.call(this), this.id = J, this.dispatcher = K, this.type = "vector", this.minzoom = 0, this.maxzoom = 22, this.scheme = "xyz", this.tileSize = 512, this.reparseOverscaled = true, this.isTileClipped = true, this._loaded = false, i.extend(this, i.pick(q, ["url", "scheme", "tileSize", "promoteId"])), this._options = i.extend({ type: "vector" }, q), this._collectResourceTiming = q.collectResourceTiming, this.tileSize !== 512) throw new Error("vector tile sources must have a tileSize of 512");
+ this.setEventedParent(de);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.load = function() {
+ var q = this;
+ this._loaded = false, this.fire(new i.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = j(this._options, this.map._requestManager, function(K, de) {
+ q._tileJSONRequest = null, q._loaded = true, K ? q.fire(new i.ErrorEvent(K)) : de && (i.extend(q, de), de.bounds && (q.tileBounds = new N(de.bounds, q.minzoom, q.maxzoom)), i.postTurnstileEvent(de.tiles, q.map._requestManager._customAccessToken), i.postMapLoadEvent(de.tiles, q.map._getMapId(), q.map._requestManager._skuToken, q.map._requestManager._customAccessToken), q.fire(new i.Event("data", { dataType: "source", sourceDataType: "metadata" })), q.fire(new i.Event("data", { dataType: "source", sourceDataType: "content" })));
+ });
+ }, D.prototype.loaded = function() {
+ return this._loaded;
+ }, D.prototype.hasTile = function(q) {
+ return !this.tileBounds || this.tileBounds.contains(q.canonical);
+ }, D.prototype.onAdd = function(q) {
+ this.map = q, this.load();
+ }, D.prototype.setSourceProperty = function(q) {
+ this._tileJSONRequest && this._tileJSONRequest.cancel(), q();
+ var K = this.map.style.sourceCaches[this.id];
+ K.clearTiles(), this.load();
+ }, D.prototype.setTiles = function(q) {
+ var K = this;
+ return this.setSourceProperty(function() {
+ K._options.tiles = q;
+ }), this;
+ }, D.prototype.setUrl = function(q) {
+ var K = this;
+ return this.setSourceProperty(function() {
+ K.url = q, K._options.url = q;
+ }), this;
+ }, D.prototype.onRemove = function() {
+ this._tileJSONRequest && (this._tileJSONRequest.cancel(), this._tileJSONRequest = null);
+ }, D.prototype.serialize = function() {
+ return i.extend({}, this._options);
+ }, D.prototype.loadTile = function(q, K) {
+ var de = this.map._requestManager.normalizeTileURL(q.tileID.canonical.url(this.tiles, this.scheme)), ne = { request: this.map._requestManager.transformRequest(de, i.ResourceType.Tile), uid: q.uid, tileID: q.tileID, zoom: q.tileID.overscaledZ, tileSize: this.tileSize * q.tileID.overscaleFactor(), type: this.type, source: this.id, pixelRatio: i.browser.devicePixelRatio, showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId };
+ ne.request.collectResourceTiming = this._collectResourceTiming, !q.actor || q.state === "expired" ? (q.actor = this.dispatcher.getActor(), q.request = q.actor.send("loadTile", ne, we.bind(this))) : q.state === "loading" ? q.reloadCallback = K : q.request = q.actor.send("reloadTile", ne, we.bind(this));
+ function we(Ue, ft) {
+ if (delete q.request, q.aborted) return K(null);
+ if (Ue && Ue.status !== 404) return K(Ue);
+ ft && ft.resourceTiming && (q.resourceTiming = ft.resourceTiming), this.map._refreshExpiredTiles && ft && q.setExpiryData(ft), q.loadVectorData(ft, this.map.painter), i.cacheEntryPossiblyAdded(this.dispatcher), K(null), q.reloadCallback && (this.loadTile(q, q.reloadCallback), q.reloadCallback = null);
+ }
+ }, D.prototype.abortTile = function(q) {
+ q.request && (q.request.cancel(), delete q.request), q.actor && q.actor.send("abortTile", { uid: q.uid, type: this.type, source: this.id }, void 0);
+ }, D.prototype.unloadTile = function(q) {
+ q.unloadVectorData(), q.actor && q.actor.send("removeTile", { uid: q.uid, type: this.type, source: this.id }, void 0);
+ }, D.prototype.hasTransition = function() {
+ return false;
+ }, D;
+ }(i.Evented), re = function(Y) {
+ function D(J, q, K, de) {
+ Y.call(this), this.id = J, this.dispatcher = K, this.setEventedParent(de), this.type = "raster", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = true, this.scheme = "xyz", this.tileSize = 512, this._loaded = false, this._options = i.extend({ type: "raster" }, q), i.extend(this, i.pick(q, ["url", "scheme", "tileSize"]));
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.load = function() {
+ var q = this;
+ this._loaded = false, this.fire(new i.Event("dataloading", { dataType: "source" })), this._tileJSONRequest = j(this._options, this.map._requestManager, function(K, de) {
+ q._tileJSONRequest = null, q._loaded = true, K ? q.fire(new i.ErrorEvent(K)) : de && (i.extend(q, de), de.bounds && (q.tileBounds = new N(de.bounds, q.minzoom, q.maxzoom)), i.postTurnstileEvent(de.tiles), i.postMapLoadEvent(de.tiles, q.map._getMapId(), q.map._requestManager._skuToken), q.fire(new i.Event("data", { dataType: "source", sourceDataType: "metadata" })), q.fire(new i.Event("data", { dataType: "source", sourceDataType: "content" })));
+ });
+ }, D.prototype.loaded = function() {
+ return this._loaded;
+ }, D.prototype.onAdd = function(q) {
+ this.map = q, this.load();
+ }, D.prototype.onRemove = function() {
+ this._tileJSONRequest && (this._tileJSONRequest.cancel(), this._tileJSONRequest = null);
+ }, D.prototype.serialize = function() {
+ return i.extend({}, this._options);
+ }, D.prototype.hasTile = function(q) {
+ return !this.tileBounds || this.tileBounds.contains(q.canonical);
+ }, D.prototype.loadTile = function(q, K) {
+ var de = this, ne = this.map._requestManager.normalizeTileURL(q.tileID.canonical.url(this.tiles, this.scheme), this.tileSize);
+ q.request = i.getImage(this.map._requestManager.transformRequest(ne, i.ResourceType.Tile), function(we, Ue) {
+ if (delete q.request, q.aborted) q.state = "unloaded", K(null);
+ else if (we) q.state = "errored", K(we);
+ else if (Ue) {
+ de.map._refreshExpiredTiles && q.setExpiryData(Ue), delete Ue.cacheControl, delete Ue.expires;
+ var ft = de.map.painter.context, Zt = ft.gl;
+ q.texture = de.map.painter.getTileTexture(Ue.width), q.texture ? q.texture.update(Ue, { useMipmap: true }) : (q.texture = new i.Texture(ft, Ue, Zt.RGBA, { useMipmap: true }), q.texture.bind(Zt.LINEAR, Zt.CLAMP_TO_EDGE, Zt.LINEAR_MIPMAP_NEAREST), ft.extTextureFilterAnisotropic && Zt.texParameterf(Zt.TEXTURE_2D, ft.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, ft.extTextureFilterAnisotropicMax)), q.state = "loaded", i.cacheEntryPossiblyAdded(de.dispatcher), K(null);
+ }
+ });
+ }, D.prototype.abortTile = function(q, K) {
+ q.request && (q.request.cancel(), delete q.request), K();
+ }, D.prototype.unloadTile = function(q, K) {
+ q.texture && this.map.painter.saveTileTexture(q.texture), K();
+ }, D.prototype.hasTransition = function() {
+ return false;
+ }, D;
+ }(i.Evented), oe = function(Y) {
+ function D(J, q, K, de) {
+ Y.call(this, J, q, K, de), this.type = "raster-dem", this.maxzoom = 22, this._options = i.extend({ type: "raster-dem" }, q), this.encoding = q.encoding || "mapbox";
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.serialize = function() {
+ return { type: "raster-dem", url: this.url, tileSize: this.tileSize, tiles: this.tiles, bounds: this.bounds, encoding: this.encoding };
+ }, D.prototype.loadTile = function(q, K) {
+ var de = this.map._requestManager.normalizeTileURL(q.tileID.canonical.url(this.tiles, this.scheme), this.tileSize);
+ q.request = i.getImage(this.map._requestManager.transformRequest(de, i.ResourceType.Tile), ne.bind(this)), q.neighboringTiles = this._getNeighboringTiles(q.tileID);
+ function ne(Ue, ft) {
+ if (delete q.request, q.aborted) q.state = "unloaded", K(null);
+ else if (Ue) q.state = "errored", K(Ue);
+ else if (ft) {
+ this.map._refreshExpiredTiles && q.setExpiryData(ft), delete ft.cacheControl, delete ft.expires;
+ var Zt = i.window.ImageBitmap && ft instanceof i.window.ImageBitmap && i.offscreenCanvasSupported(), hr = Zt ? ft : i.browser.getImageData(ft, 1), qt = { uid: q.uid, coord: q.tileID, source: this.id, rawImageData: hr, encoding: this.encoding };
+ (!q.actor || q.state === "expired") && (q.actor = this.dispatcher.getActor(), q.actor.send("loadDEMTile", qt, we.bind(this)));
+ }
+ }
+ function we(Ue, ft) {
+ Ue && (q.state = "errored", K(Ue)), ft && (q.dem = ft, q.needsHillshadePrepare = true, q.state = "loaded", K(null));
+ }
+ }, D.prototype._getNeighboringTiles = function(q) {
+ var K = q.canonical, de = Math.pow(2, K.z), ne = (K.x - 1 + de) % de, we = K.x === 0 ? q.wrap - 1 : q.wrap, Ue = (K.x + 1 + de) % de, ft = K.x + 1 === de ? q.wrap + 1 : q.wrap, Zt = {};
+ return Zt[new i.OverscaledTileID(q.overscaledZ, we, K.z, ne, K.y).key] = { backfilled: false }, Zt[new i.OverscaledTileID(q.overscaledZ, ft, K.z, Ue, K.y).key] = { backfilled: false }, K.y > 0 && (Zt[new i.OverscaledTileID(q.overscaledZ, we, K.z, ne, K.y - 1).key] = { backfilled: false }, Zt[new i.OverscaledTileID(q.overscaledZ, q.wrap, K.z, K.x, K.y - 1).key] = { backfilled: false }, Zt[new i.OverscaledTileID(q.overscaledZ, ft, K.z, Ue, K.y - 1).key] = { backfilled: false }), K.y + 1 < de && (Zt[new i.OverscaledTileID(q.overscaledZ, we, K.z, ne, K.y + 1).key] = { backfilled: false }, Zt[new i.OverscaledTileID(q.overscaledZ, q.wrap, K.z, K.x, K.y + 1).key] = { backfilled: false }, Zt[new i.OverscaledTileID(q.overscaledZ, ft, K.z, Ue, K.y + 1).key] = { backfilled: false }), Zt;
+ }, D.prototype.unloadTile = function(q) {
+ q.demTexture && this.map.painter.saveTileTexture(q.demTexture), q.fbo && (q.fbo.destroy(), delete q.fbo), q.dem && delete q.dem, delete q.neighboringTiles, q.state = "unloaded", q.actor && q.actor.send("removeDEMTile", { uid: q.uid, source: this.id });
+ }, D;
+ }(re), _e = function(Y) {
+ function D(J, q, K, de) {
+ Y.call(this), this.id = J, this.type = "geojson", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = true, this.reparseOverscaled = true, this._removed = false, this._loaded = false, this.actor = K.getActor(), this.setEventedParent(de), this._data = q.data, this._options = i.extend({}, q), this._collectResourceTiming = q.collectResourceTiming, this._resourceTiming = [], q.maxzoom !== void 0 && (this.maxzoom = q.maxzoom), q.type && (this.type = q.type), q.attribution && (this.attribution = q.attribution), this.promoteId = q.promoteId;
+ var ne = i.EXTENT / this.tileSize;
+ this.workerOptions = i.extend({ source: this.id, cluster: q.cluster || false, geojsonVtOptions: { buffer: (q.buffer !== void 0 ? q.buffer : 128) * ne, tolerance: (q.tolerance !== void 0 ? q.tolerance : 0.375) * ne, extent: i.EXTENT, maxZoom: this.maxzoom, lineMetrics: q.lineMetrics || false, generateId: q.generateId || false }, superclusterOptions: { maxZoom: q.clusterMaxZoom !== void 0 ? Math.min(q.clusterMaxZoom, this.maxzoom - 1) : this.maxzoom - 1, minPoints: Math.max(2, q.clusterMinPoints || 2), extent: i.EXTENT, radius: (q.clusterRadius || 50) * ne, log: false, generateId: q.generateId || false }, clusterProperties: q.clusterProperties, filter: q.filter }, q.workerOptions);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.load = function() {
+ var q = this;
+ this.fire(new i.Event("dataloading", { dataType: "source" })), this._updateWorkerData(function(K) {
+ if (K) {
+ q.fire(new i.ErrorEvent(K));
+ return;
+ }
+ var de = { dataType: "source", sourceDataType: "metadata" };
+ q._collectResourceTiming && q._resourceTiming && q._resourceTiming.length > 0 && (de.resourceTiming = q._resourceTiming, q._resourceTiming = []), q.fire(new i.Event("data", de));
+ });
+ }, D.prototype.onAdd = function(q) {
+ this.map = q, this.load();
+ }, D.prototype.setData = function(q) {
+ var K = this;
+ return this._data = q, this.fire(new i.Event("dataloading", { dataType: "source" })), this._updateWorkerData(function(de) {
+ if (de) {
+ K.fire(new i.ErrorEvent(de));
+ return;
+ }
+ var ne = { dataType: "source", sourceDataType: "content" };
+ K._collectResourceTiming && K._resourceTiming && K._resourceTiming.length > 0 && (ne.resourceTiming = K._resourceTiming, K._resourceTiming = []), K.fire(new i.Event("data", ne));
+ }), this;
+ }, D.prototype.getClusterExpansionZoom = function(q, K) {
+ return this.actor.send("geojson.getClusterExpansionZoom", { clusterId: q, source: this.id }, K), this;
+ }, D.prototype.getClusterChildren = function(q, K) {
+ return this.actor.send("geojson.getClusterChildren", { clusterId: q, source: this.id }, K), this;
+ }, D.prototype.getClusterLeaves = function(q, K, de, ne) {
+ return this.actor.send("geojson.getClusterLeaves", { source: this.id, clusterId: q, limit: K, offset: de }, ne), this;
+ }, D.prototype._updateWorkerData = function(q) {
+ var K = this;
+ this._loaded = false;
+ var de = i.extend({}, this.workerOptions), ne = this._data;
+ typeof ne == "string" ? (de.request = this.map._requestManager.transformRequest(i.browser.resolveURL(ne), i.ResourceType.Source), de.request.collectResourceTiming = this._collectResourceTiming) : de.data = JSON.stringify(ne), this.actor.send(this.type + ".loadData", de, function(we, Ue) {
+ K._removed || Ue && Ue.abandoned || (K._loaded = true, Ue && Ue.resourceTiming && Ue.resourceTiming[K.id] && (K._resourceTiming = Ue.resourceTiming[K.id].slice(0)), K.actor.send(K.type + ".coalesce", { source: de.source }, null), q(we));
+ });
+ }, D.prototype.loaded = function() {
+ return this._loaded;
+ }, D.prototype.loadTile = function(q, K) {
+ var de = this, ne = q.actor ? "reloadTile" : "loadTile";
+ q.actor = this.actor;
+ var we = { type: this.type, uid: q.uid, tileID: q.tileID, zoom: q.tileID.overscaledZ, maxZoom: this.maxzoom, tileSize: this.tileSize, source: this.id, pixelRatio: i.browser.devicePixelRatio, showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId };
+ q.request = this.actor.send(ne, we, function(Ue, ft) {
+ return delete q.request, q.unloadVectorData(), q.aborted ? K(null) : Ue ? K(Ue) : (q.loadVectorData(ft, de.map.painter, ne === "reloadTile"), K(null));
+ });
+ }, D.prototype.abortTile = function(q) {
+ q.request && (q.request.cancel(), delete q.request), q.aborted = true;
+ }, D.prototype.unloadTile = function(q) {
+ q.unloadVectorData(), this.actor.send("removeTile", { uid: q.uid, type: this.type, source: this.id });
+ }, D.prototype.onRemove = function() {
+ this._removed = true, this.actor.send("removeSource", { type: this.type, source: this.id });
+ }, D.prototype.serialize = function() {
+ return i.extend({}, this._options, { type: this.type, data: this._data });
+ }, D.prototype.hasTransition = function() {
+ return false;
+ }, D;
+ }(i.Evented), Ce = i.createLayout([{ name: "a_pos", type: "Int16", components: 2 }, { name: "a_texture_pos", type: "Int16", components: 2 }]), Le = function(Y) {
+ function D(J, q, K, de) {
+ Y.call(this), this.id = J, this.dispatcher = K, this.coordinates = q.coordinates, this.type = "image", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = false, this.setEventedParent(de), this.options = q;
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.load = function(q, K) {
+ var de = this;
+ this._loaded = false, this.fire(new i.Event("dataloading", { dataType: "source" })), this.url = this.options.url, i.getImage(this.map._requestManager.transformRequest(this.url, i.ResourceType.Image), function(ne, we) {
+ de._loaded = true, ne ? de.fire(new i.ErrorEvent(ne)) : we && (de.image = we, q && (de.coordinates = q), K && K(), de._finishLoading());
+ });
+ }, D.prototype.loaded = function() {
+ return this._loaded;
+ }, D.prototype.updateImage = function(q) {
+ var K = this;
+ return !this.image || !q.url ? this : (this.options.url = q.url, this.load(q.coordinates, function() {
+ K.texture = null;
+ }), this);
+ }, D.prototype._finishLoading = function() {
+ this.map && (this.setCoordinates(this.coordinates), this.fire(new i.Event("data", { dataType: "source", sourceDataType: "metadata" })));
+ }, D.prototype.onAdd = function(q) {
+ this.map = q, this.load();
+ }, D.prototype.setCoordinates = function(q) {
+ var K = this;
+ this.coordinates = q;
+ var de = q.map(i.MercatorCoordinate.fromLngLat);
+ this.tileID = ge(de), this.minzoom = this.maxzoom = this.tileID.z;
+ var ne = de.map(function(we) {
+ return K.tileID.getTilePoint(we)._round();
+ });
+ return this._boundsArray = new i.StructArrayLayout4i8(), this._boundsArray.emplaceBack(ne[0].x, ne[0].y, 0, 0), this._boundsArray.emplaceBack(ne[1].x, ne[1].y, i.EXTENT, 0), this._boundsArray.emplaceBack(ne[3].x, ne[3].y, 0, i.EXTENT), this._boundsArray.emplaceBack(ne[2].x, ne[2].y, i.EXTENT, i.EXTENT), this.boundsBuffer && (this.boundsBuffer.destroy(), delete this.boundsBuffer), this.fire(new i.Event("data", { dataType: "source", sourceDataType: "content" })), this;
+ }, D.prototype.prepare = function() {
+ if (!(Object.keys(this.tiles).length === 0 || !this.image)) {
+ var q = this.map.painter.context, K = q.gl;
+ this.boundsBuffer || (this.boundsBuffer = q.createVertexBuffer(this._boundsArray, Ce.members)), this.boundsSegments || (this.boundsSegments = i.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture || (this.texture = new i.Texture(q, this.image, K.RGBA), this.texture.bind(K.LINEAR, K.CLAMP_TO_EDGE));
+ for (var de in this.tiles) {
+ var ne = this.tiles[de];
+ ne.state !== "loaded" && (ne.state = "loaded", ne.texture = this.texture);
+ }
+ }
+ }, D.prototype.loadTile = function(q, K) {
+ this.tileID && this.tileID.equals(q.tileID.canonical) ? (this.tiles[String(q.tileID.wrap)] = q, q.buckets = {}, K(null)) : (q.state = "errored", K(null));
+ }, D.prototype.serialize = function() {
+ return { type: "image", url: this.options.url, coordinates: this.coordinates };
+ }, D.prototype.hasTransition = function() {
+ return false;
+ }, D;
+ }(i.Evented);
+ function ge(Y) {
+ for (var D = 1 / 0, J = 1 / 0, q = -1 / 0, K = -1 / 0, de = 0, ne = Y; de < ne.length; de += 1) {
+ var we = ne[de];
+ D = Math.min(D, we.x), J = Math.min(J, we.y), q = Math.max(q, we.x), K = Math.max(K, we.y);
+ }
+ var Ue = q - D, ft = K - J, Zt = Math.max(Ue, ft), hr = Math.max(0, Math.floor(-Math.log(Zt) / Math.LN2)), qt = Math.pow(2, hr);
+ return new i.CanonicalTileID(hr, Math.floor((D + q) / 2 * qt), Math.floor((J + K) / 2 * qt));
+ }
+ var ie = function(Y) {
+ function D(J, q, K, de) {
+ Y.call(this, J, q, K, de), this.roundZoom = true, this.type = "video", this.options = q;
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.load = function() {
+ var q = this;
+ this._loaded = false;
+ var K = this.options;
+ this.urls = [];
+ for (var de = 0, ne = K.urls; de < ne.length; de += 1) {
+ var we = ne[de];
+ this.urls.push(this.map._requestManager.transformRequest(we, i.ResourceType.Source).url);
+ }
+ i.getVideo(this.urls, function(Ue, ft) {
+ q._loaded = true, Ue ? q.fire(new i.ErrorEvent(Ue)) : ft && (q.video = ft, q.video.loop = true, q.video.addEventListener("playing", function() {
+ q.map.triggerRepaint();
+ }), q.map && q.video.play(), q._finishLoading());
+ });
+ }, D.prototype.pause = function() {
+ this.video && this.video.pause();
+ }, D.prototype.play = function() {
+ this.video && this.video.play();
+ }, D.prototype.seek = function(q) {
+ if (this.video) {
+ var K = this.video.seekable;
+ q < K.start(0) || q > K.end(0) ? this.fire(new i.ErrorEvent(new i.ValidationError("sources." + this.id, null, "Playback for this video can be set only between the " + K.start(0) + " and " + K.end(0) + "-second mark."))) : this.video.currentTime = q;
+ }
+ }, D.prototype.getVideo = function() {
+ return this.video;
+ }, D.prototype.onAdd = function(q) {
+ this.map || (this.map = q, this.load(), this.video && (this.video.play(), this.setCoordinates(this.coordinates)));
+ }, D.prototype.prepare = function() {
+ if (!(Object.keys(this.tiles).length === 0 || this.video.readyState < 2)) {
+ var q = this.map.painter.context, K = q.gl;
+ this.boundsBuffer || (this.boundsBuffer = q.createVertexBuffer(this._boundsArray, Ce.members)), this.boundsSegments || (this.boundsSegments = i.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? this.video.paused || (this.texture.bind(K.LINEAR, K.CLAMP_TO_EDGE), K.texSubImage2D(K.TEXTURE_2D, 0, 0, 0, K.RGBA, K.UNSIGNED_BYTE, this.video)) : (this.texture = new i.Texture(q, this.video, K.RGBA), this.texture.bind(K.LINEAR, K.CLAMP_TO_EDGE));
+ for (var de in this.tiles) {
+ var ne = this.tiles[de];
+ ne.state !== "loaded" && (ne.state = "loaded", ne.texture = this.texture);
+ }
+ }
+ }, D.prototype.serialize = function() {
+ return { type: "video", urls: this.urls, coordinates: this.coordinates };
+ }, D.prototype.hasTransition = function() {
+ return this.video && !this.video.paused;
+ }, D;
+ }(Le), Se = function(Y) {
+ function D(J, q, K, de) {
+ Y.call(this, J, q, K, de), q.coordinates ? (!Array.isArray(q.coordinates) || q.coordinates.length !== 4 || q.coordinates.some(function(ne) {
+ return !Array.isArray(ne) || ne.length !== 2 || ne.some(function(we) {
+ return typeof we != "number";
+ });
+ })) && this.fire(new i.ErrorEvent(new i.ValidationError("sources." + J, null, '"coordinates" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new i.ErrorEvent(new i.ValidationError("sources." + J, null, 'missing required property "coordinates"'))), q.animate && typeof q.animate != "boolean" && this.fire(new i.ErrorEvent(new i.ValidationError("sources." + J, null, 'optional "animate" property must be a boolean value'))), q.canvas ? typeof q.canvas != "string" && !(q.canvas instanceof i.window.HTMLCanvasElement) && this.fire(new i.ErrorEvent(new i.ValidationError("sources." + J, null, '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new i.ErrorEvent(new i.ValidationError("sources." + J, null, 'missing required property "canvas"'))), this.options = q, this.animate = q.animate !== void 0 ? q.animate : true;
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.load = function() {
+ if (this._loaded = true, this.canvas || (this.canvas = this.options.canvas instanceof i.window.HTMLCanvasElement ? this.options.canvas : i.window.document.getElementById(this.options.canvas)), this.width = this.canvas.width, this.height = this.canvas.height, this._hasInvalidDimensions()) {
+ this.fire(new i.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero.")));
+ return;
+ }
+ this.play = function() {
+ this._playing = true, this.map.triggerRepaint();
+ }, this.pause = function() {
+ this._playing && (this.prepare(), this._playing = false);
+ }, this._finishLoading();
+ }, D.prototype.getCanvas = function() {
+ return this.canvas;
+ }, D.prototype.onAdd = function(q) {
+ this.map = q, this.load(), this.canvas && this.animate && this.play();
+ }, D.prototype.onRemove = function() {
+ this.pause();
+ }, D.prototype.prepare = function() {
+ var q = false;
+ if (this.canvas.width !== this.width && (this.width = this.canvas.width, q = true), this.canvas.height !== this.height && (this.height = this.canvas.height, q = true), !this._hasInvalidDimensions() && Object.keys(this.tiles).length !== 0) {
+ var K = this.map.painter.context, de = K.gl;
+ this.boundsBuffer || (this.boundsBuffer = K.createVertexBuffer(this._boundsArray, Ce.members)), this.boundsSegments || (this.boundsSegments = i.SegmentVector.simpleSegment(0, 0, 4, 2)), this.texture ? (q || this._playing) && this.texture.update(this.canvas, { premultiply: true }) : this.texture = new i.Texture(K, this.canvas, de.RGBA, { premultiply: true });
+ for (var ne in this.tiles) {
+ var we = this.tiles[ne];
+ we.state !== "loaded" && (we.state = "loaded", we.texture = this.texture);
+ }
+ }
+ }, D.prototype.serialize = function() {
+ return { type: "canvas", coordinates: this.coordinates };
+ }, D.prototype.hasTransition = function() {
+ return this._playing;
+ }, D.prototype._hasInvalidDimensions = function() {
+ for (var q = 0, K = [this.canvas.width, this.canvas.height]; q < K.length; q += 1) {
+ var de = K[q];
+ if (isNaN(de) || de <= 0) return true;
+ }
+ return false;
+ }, D;
+ }(Le), Ee = { vector: H, raster: re, "raster-dem": oe, geojson: _e, video: ie, image: Le, canvas: Se }, Ae = function(Y, D, J, q) {
+ var K = new Ee[D.type](Y, D, J, q);
+ if (K.id !== Y) throw new Error("Expected Source id to be " + Y + " instead of " + K.id);
+ return i.bindAll(["load", "abort", "unload", "serialize", "prepare"], K), K;
+ }, Be = function(Y) {
+ return Ee[Y];
+ }, Pe = function(Y, D) {
+ Ee[Y] = D;
+ };
+ function me(Y, D) {
+ var J = i.identity([]);
+ return i.translate(J, J, [1, 1, 0]), i.scale(J, J, [Y.width * 0.5, Y.height * 0.5, 1]), i.multiply(J, J, Y.calculatePosMatrix(D.toUnwrapped()));
+ }
+ function De(Y, D, J) {
+ if (Y) for (var q = 0, K = Y; q < K.length; q += 1) {
+ var de = K[q], ne = D[de];
+ if (ne && ne.source === J && ne.type === "fill-extrusion") return true;
+ }
+ else for (var we in D) {
+ var Ue = D[we];
+ if (Ue.source === J && Ue.type === "fill-extrusion") return true;
+ }
+ return false;
+ }
+ function ce(Y, D, J, q, K, de) {
+ var ne = De(K && K.layers, D, Y.id), we = de.maxPitchScaleFactor(), Ue = Y.tilesIn(q, we, ne);
+ Ue.sort(pt);
+ for (var ft = [], Zt = 0, hr = Ue; Zt < hr.length; Zt += 1) {
+ var qt = hr[Zt];
+ ft.push({ wrappedTileID: qt.tileID.wrapped().key, queryResults: qt.tile.queryRenderedFeatures(D, J, Y._state, qt.queryGeometry, qt.cameraQueryGeometry, qt.scale, K, de, we, me(Y.transform, qt.tileID)) });
+ }
+ var Ve = Vt(ft);
+ for (var Qe in Ve) Ve[Qe].forEach(function(at) {
+ var Ct = at.feature, Ot = Y.getFeatureState(Ct.layer["source-layer"], Ct.id);
+ Ct.source = Ct.layer.source, Ct.layer["source-layer"] && (Ct.sourceLayer = Ct.layer["source-layer"]), Ct.state = Ot;
+ });
+ return Ve;
+ }
+ function je(Y, D, J, q, K, de, ne) {
+ for (var we = {}, Ue = de.queryRenderedSymbols(q), ft = [], Zt = 0, hr = Object.keys(Ue).map(Number); Zt < hr.length; Zt += 1) {
+ var qt = hr[Zt];
+ ft.push(ne[qt]);
+ }
+ ft.sort(pt);
+ for (var Ve = function() {
+ var Rt = at[Qe], Bt = Rt.featureIndex.lookupSymbolFeatures(Ue[Rt.bucketInstanceId], D, Rt.bucketIndex, Rt.sourceLayerIndex, K.filter, K.layers, K.availableImages, Y);
+ for (var Dt in Bt) {
+ var yt = we[Dt] = we[Dt] || [], Pt = Bt[Dt];
+ Pt.sort(function(Ur, Di) {
+ var fi = Rt.featureSortOrder;
+ if (fi) {
+ var Ti = fi.indexOf(Ur.featureIndex), gn = fi.indexOf(Di.featureIndex);
+ return gn - Ti;
+ } else return Di.featureIndex - Ur.featureIndex;
+ });
+ for (var ht = 0, ur = Pt; ht < ur.length; ht += 1) {
+ var br = ur[ht];
+ yt.push(br);
+ }
+ }
+ }, Qe = 0, at = ft; Qe < at.length; Qe += 1) Ve();
+ var Ct = function(Rt) {
+ we[Rt].forEach(function(Bt) {
+ var Dt = Bt.feature, yt = Y[Rt], Pt = J[yt.source], ht = Pt.getFeatureState(Dt.layer["source-layer"], Dt.id);
+ Dt.source = Dt.layer.source, Dt.layer["source-layer"] && (Dt.sourceLayer = Dt.layer["source-layer"]), Dt.state = ht;
+ });
+ };
+ for (var Ot in we) Ct(Ot);
+ return we;
+ }
+ function lt(Y, D) {
+ for (var J = Y.getRenderableIds().map(function(Ue) {
+ return Y.getTileByID(Ue);
+ }), q = [], K = {}, de = 0; de < J.length; de++) {
+ var ne = J[de], we = ne.tileID.canonical.key;
+ K[we] || (K[we] = true, ne.querySourceFeatures(q, D));
+ }
+ return q;
+ }
+ function pt(Y, D) {
+ var J = Y.tileID, q = D.tileID;
+ return J.overscaledZ - q.overscaledZ || J.canonical.y - q.canonical.y || J.wrap - q.wrap || J.canonical.x - q.canonical.x;
+ }
+ function Vt(Y) {
+ for (var D = {}, J = {}, q = 0, K = Y; q < K.length; q += 1) {
+ var de = K[q], ne = de.queryResults, we = de.wrappedTileID, Ue = J[we] = J[we] || {};
+ for (var ft in ne) for (var Zt = ne[ft], hr = Ue[ft] = Ue[ft] || {}, qt = D[ft] = D[ft] || [], Ve = 0, Qe = Zt; Ve < Qe.length; Ve += 1) {
+ var at = Qe[Ve];
+ hr[at.featureIndex] || (hr[at.featureIndex] = true, qt.push(at));
+ }
+ }
+ return D;
+ }
+ var ot = function(D, J) {
+ this.max = D, this.onRemove = J, this.reset();
+ };
+ ot.prototype.reset = function() {
+ for (var D in this.data) for (var J = 0, q = this.data[D]; J < q.length; J += 1) {
+ var K = q[J];
+ K.timeout && clearTimeout(K.timeout), this.onRemove(K.value);
+ }
+ return this.data = {}, this.order = [], this;
+ }, ot.prototype.add = function(D, J, q) {
+ var K = this, de = D.wrapped().key;
+ this.data[de] === void 0 && (this.data[de] = []);
+ var ne = { value: J, timeout: void 0 };
+ if (q !== void 0 && (ne.timeout = setTimeout(function() {
+ K.remove(D, ne);
+ }, q)), this.data[de].push(ne), this.order.push(de), this.order.length > this.max) {
+ var we = this._getAndRemoveByKey(this.order[0]);
+ we && this.onRemove(we);
+ }
+ return this;
+ }, ot.prototype.has = function(D) {
+ return D.wrapped().key in this.data;
+ }, ot.prototype.getAndRemove = function(D) {
+ return this.has(D) ? this._getAndRemoveByKey(D.wrapped().key) : null;
+ }, ot.prototype._getAndRemoveByKey = function(D) {
+ var J = this.data[D].shift();
+ return J.timeout && clearTimeout(J.timeout), this.data[D].length === 0 && delete this.data[D], this.order.splice(this.order.indexOf(D), 1), J.value;
+ }, ot.prototype.getByKey = function(D) {
+ var J = this.data[D];
+ return J ? J[0].value : null;
+ }, ot.prototype.get = function(D) {
+ if (!this.has(D)) return null;
+ var J = this.data[D.wrapped().key][0];
+ return J.value;
+ }, ot.prototype.remove = function(D, J) {
+ if (!this.has(D)) return this;
+ var q = D.wrapped().key, K = J === void 0 ? 0 : this.data[q].indexOf(J), de = this.data[q][K];
+ return this.data[q].splice(K, 1), de.timeout && clearTimeout(de.timeout), this.data[q].length === 0 && delete this.data[q], this.onRemove(de.value), this.order.splice(this.order.indexOf(q), 1), this;
+ }, ot.prototype.setMaxSize = function(D) {
+ for (this.max = D; this.order.length > this.max; ) {
+ var J = this._getAndRemoveByKey(this.order[0]);
+ J && this.onRemove(J);
+ }
+ return this;
+ }, ot.prototype.filter = function(D) {
+ var J = [];
+ for (var q in this.data) for (var K = 0, de = this.data[q]; K < de.length; K += 1) {
+ var ne = de[K];
+ D(ne.value) || J.push(ne);
+ }
+ for (var we = 0, Ue = J; we < Ue.length; we += 1) {
+ var ft = Ue[we];
+ this.remove(ft.value.tileID, ft);
+ }
+ };
+ var ut = function(D, J, q) {
+ this.context = D;
+ var K = D.gl;
+ this.buffer = K.createBuffer(), this.dynamicDraw = !!q, this.context.unbindVAO(), D.bindElementBuffer.set(this.buffer), K.bufferData(K.ELEMENT_ARRAY_BUFFER, J.arrayBuffer, this.dynamicDraw ? K.DYNAMIC_DRAW : K.STATIC_DRAW), this.dynamicDraw || delete J.arrayBuffer;
+ };
+ ut.prototype.bind = function() {
+ this.context.bindElementBuffer.set(this.buffer);
+ }, ut.prototype.updateData = function(D) {
+ var J = this.context.gl;
+ this.context.unbindVAO(), this.bind(), J.bufferSubData(J.ELEMENT_ARRAY_BUFFER, 0, D.arrayBuffer);
+ }, ut.prototype.destroy = function() {
+ var D = this.context.gl;
+ this.buffer && (D.deleteBuffer(this.buffer), delete this.buffer);
+ };
+ var Wt = { Int8: "BYTE", Uint8: "UNSIGNED_BYTE", Int16: "SHORT", Uint16: "UNSIGNED_SHORT", Int32: "INT", Uint32: "UNSIGNED_INT", Float32: "FLOAT" }, Nt = function(D, J, q, K) {
+ this.length = J.length, this.attributes = q, this.itemSize = J.bytesPerElement, this.dynamicDraw = K, this.context = D;
+ var de = D.gl;
+ this.buffer = de.createBuffer(), D.bindVertexBuffer.set(this.buffer), de.bufferData(de.ARRAY_BUFFER, J.arrayBuffer, this.dynamicDraw ? de.DYNAMIC_DRAW : de.STATIC_DRAW), this.dynamicDraw || delete J.arrayBuffer;
+ };
+ Nt.prototype.bind = function() {
+ this.context.bindVertexBuffer.set(this.buffer);
+ }, Nt.prototype.updateData = function(D) {
+ var J = this.context.gl;
+ this.bind(), J.bufferSubData(J.ARRAY_BUFFER, 0, D.arrayBuffer);
+ }, Nt.prototype.enableAttributes = function(D, J) {
+ for (var q = 0; q < this.attributes.length; q++) {
+ var K = this.attributes[q], de = J.attributes[K.name];
+ de !== void 0 && D.enableVertexAttribArray(de);
+ }
+ }, Nt.prototype.setVertexAttribPointers = function(D, J, q) {
+ for (var K = 0; K < this.attributes.length; K++) {
+ var de = this.attributes[K], ne = J.attributes[de.name];
+ ne !== void 0 && D.vertexAttribPointer(ne, de.components, D[Wt[de.type]], false, this.itemSize, de.offset + this.itemSize * (q || 0));
+ }
+ }, Nt.prototype.destroy = function() {
+ var D = this.context.gl;
+ this.buffer && (D.deleteBuffer(this.buffer), delete this.buffer);
+ };
+ var $t = function(D) {
+ this.gl = D.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = false;
+ };
+ $t.prototype.get = function() {
+ return this.current;
+ }, $t.prototype.set = function(D) {
+ }, $t.prototype.getDefault = function() {
+ return this.default;
+ }, $t.prototype.setDefault = function() {
+ this.set(this.default);
+ };
+ var sr = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return i.Color.transparent;
+ }, D.prototype.set = function(q) {
+ var K = this.current;
+ q.r === K.r && q.g === K.g && q.b === K.b && q.a === K.a && !this.dirty || (this.gl.clearColor(q.r, q.g, q.b, q.a), this.current = q, this.dirty = false);
+ }, D;
+ }($t), Tr = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return 1;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.clearDepth(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), fr = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return 0;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.clearStencil(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), $e = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return [true, true, true, true];
+ }, D.prototype.set = function(q) {
+ var K = this.current;
+ q[0] === K[0] && q[1] === K[1] && q[2] === K[2] && q[3] === K[3] && !this.dirty || (this.gl.colorMask(q[0], q[1], q[2], q[3]), this.current = q, this.dirty = false);
+ }, D;
+ }($t), St = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return true;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.depthMask(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), Qt = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return 255;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.stencilMask(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), Gt = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return { func: this.gl.ALWAYS, ref: 0, mask: 255 };
+ }, D.prototype.set = function(q) {
+ var K = this.current;
+ q.func === K.func && q.ref === K.ref && q.mask === K.mask && !this.dirty || (this.gl.stencilFunc(q.func, q.ref, q.mask), this.current = q, this.dirty = false);
+ }, D;
+ }($t), _t = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ var q = this.gl;
+ return [q.KEEP, q.KEEP, q.KEEP];
+ }, D.prototype.set = function(q) {
+ var K = this.current;
+ q[0] === K[0] && q[1] === K[1] && q[2] === K[2] && !this.dirty || (this.gl.stencilOp(q[0], q[1], q[2]), this.current = q, this.dirty = false);
+ }, D;
+ }($t), It = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return false;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ q ? K.enable(K.STENCIL_TEST) : K.disable(K.STENCIL_TEST), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), mt = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return [0, 1];
+ }, D.prototype.set = function(q) {
+ var K = this.current;
+ q[0] === K[0] && q[1] === K[1] && !this.dirty || (this.gl.depthRange(q[0], q[1]), this.current = q, this.dirty = false);
+ }, D;
+ }($t), er = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return false;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ q ? K.enable(K.DEPTH_TEST) : K.disable(K.DEPTH_TEST), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), lr = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return this.gl.LESS;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.depthFunc(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), wr = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return false;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ q ? K.enable(K.BLEND) : K.disable(K.BLEND), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), Lr = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ var q = this.gl;
+ return [q.ONE, q.ZERO];
+ }, D.prototype.set = function(q) {
+ var K = this.current;
+ q[0] === K[0] && q[1] === K[1] && !this.dirty || (this.gl.blendFunc(q[0], q[1]), this.current = q, this.dirty = false);
+ }, D;
+ }($t), ti = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return i.Color.transparent;
+ }, D.prototype.set = function(q) {
+ var K = this.current;
+ q.r === K.r && q.g === K.g && q.b === K.b && q.a === K.a && !this.dirty || (this.gl.blendColor(q.r, q.g, q.b, q.a), this.current = q, this.dirty = false);
+ }, D;
+ }($t), Br = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return this.gl.FUNC_ADD;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.blendEquation(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), Vr = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return false;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ q ? K.enable(K.CULL_FACE) : K.disable(K.CULL_FACE), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), dt = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return this.gl.BACK;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.cullFace(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), Ge = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return this.gl.CCW;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.frontFace(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), Je = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return null;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.useProgram(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), We = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return this.gl.TEXTURE0;
+ }, D.prototype.set = function(q) {
+ q === this.current && !this.dirty || (this.gl.activeTexture(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), tt = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ var q = this.gl;
+ return [0, 0, q.drawingBufferWidth, q.drawingBufferHeight];
+ }, D.prototype.set = function(q) {
+ var K = this.current;
+ q[0] === K[0] && q[1] === K[1] && q[2] === K[2] && q[3] === K[3] && !this.dirty || (this.gl.viewport(q[0], q[1], q[2], q[3]), this.current = q, this.dirty = false);
+ }, D;
+ }($t), xt = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return null;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ K.bindFramebuffer(K.FRAMEBUFFER, q), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), Ie = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return null;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ K.bindRenderbuffer(K.RENDERBUFFER, q), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), xe = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return null;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ K.bindTexture(K.TEXTURE_2D, q), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), ke = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return null;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ K.bindBuffer(K.ARRAY_BUFFER, q), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), vt = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return null;
+ }, D.prototype.set = function(q) {
+ var K = this.gl;
+ K.bindBuffer(K.ELEMENT_ARRAY_BUFFER, q), this.current = q, this.dirty = false;
+ }, D;
+ }($t), ir = function(Y) {
+ function D(J) {
+ Y.call(this, J), this.vao = J.extVertexArrayObject;
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return null;
+ }, D.prototype.set = function(q) {
+ !this.vao || q === this.current && !this.dirty || (this.vao.bindVertexArrayOES(q), this.current = q, this.dirty = false);
+ }, D;
+ }($t), ar = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return 4;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ K.pixelStorei(K.UNPACK_ALIGNMENT, q), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), vr = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return false;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ K.pixelStorei(K.UNPACK_PREMULTIPLY_ALPHA_WEBGL, q), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), ii = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return false;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ var K = this.gl;
+ K.pixelStorei(K.UNPACK_FLIP_Y_WEBGL, q), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }($t), pi = function(Y) {
+ function D(J, q) {
+ Y.call(this, J), this.context = J, this.parent = q;
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getDefault = function() {
+ return null;
+ }, D;
+ }($t), $r = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.setDirty = function() {
+ this.dirty = true;
+ }, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ this.context.bindFramebuffer.set(this.parent);
+ var K = this.gl;
+ K.framebufferTexture2D(K.FRAMEBUFFER, K.COLOR_ATTACHMENT0, K.TEXTURE_2D, q, 0), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }(pi), di = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.set = function(q) {
+ if (!(q === this.current && !this.dirty)) {
+ this.context.bindFramebuffer.set(this.parent);
+ var K = this.gl;
+ K.framebufferRenderbuffer(K.FRAMEBUFFER, K.DEPTH_ATTACHMENT, K.RENDERBUFFER, q), this.current = q, this.dirty = false;
+ }
+ }, D;
+ }(pi), ji = function(D, J, q, K) {
+ this.context = D, this.width = J, this.height = q;
+ var de = D.gl, ne = this.framebuffer = de.createFramebuffer();
+ this.colorAttachment = new $r(D, ne), K && (this.depthAttachment = new di(D, ne));
+ };
+ ji.prototype.destroy = function() {
+ var D = this.context.gl, J = this.colorAttachment.get();
+ if (J && D.deleteTexture(J), this.depthAttachment) {
+ var q = this.depthAttachment.get();
+ q && D.deleteRenderbuffer(q);
+ }
+ D.deleteFramebuffer(this.framebuffer);
+ };
+ var In = 519, wi = function(D, J, q) {
+ this.func = D, this.mask = J, this.range = q;
+ };
+ wi.ReadOnly = false, wi.ReadWrite = true, wi.disabled = new wi(In, wi.ReadOnly, [0, 1]);
+ var On = 519, qn = 7680, Fn = function(D, J, q, K, de, ne) {
+ this.test = D, this.ref = J, this.mask = q, this.fail = K, this.depthFail = de, this.pass = ne;
+ };
+ Fn.disabled = new Fn({ func: On, mask: 0 }, 0, 0, qn, qn, qn);
+ var ra = 0, la = 1, Ut = 771, wt = function(D, J, q) {
+ this.blendFunction = D, this.blendColor = J, this.mask = q;
+ };
+ wt.Replace = [la, ra], wt.disabled = new wt(wt.Replace, i.Color.transparent, [false, false, false, false]), wt.unblended = new wt(wt.Replace, i.Color.transparent, [true, true, true, true]), wt.alphaBlended = new wt([la, Ut], i.Color.transparent, [true, true, true, true]);
+ var rr = 1029, nr = 2305, Er = function(D, J, q) {
+ this.enable = D, this.mode = J, this.frontFace = q;
+ };
+ Er.disabled = new Er(false, rr, nr), Er.backCCW = new Er(true, rr, nr);
+ var Xr = function(D) {
+ this.gl = D, this.extVertexArrayObject = this.gl.getExtension("OES_vertex_array_object"), this.clearColor = new sr(this), this.clearDepth = new Tr(this), this.clearStencil = new fr(this), this.colorMask = new $e(this), this.depthMask = new St(this), this.stencilMask = new Qt(this), this.stencilFunc = new Gt(this), this.stencilOp = new _t(this), this.stencilTest = new It(this), this.depthRange = new mt(this), this.depthTest = new er(this), this.depthFunc = new lr(this), this.blend = new wr(this), this.blendFunc = new Lr(this), this.blendColor = new ti(this), this.blendEquation = new Br(this), this.cullFace = new Vr(this), this.cullFaceSide = new dt(this), this.frontFace = new Ge(this), this.program = new Je(this), this.activeTexture = new We(this), this.viewport = new tt(this), this.bindFramebuffer = new xt(this), this.bindRenderbuffer = new Ie(this), this.bindTexture = new xe(this), this.bindVertexBuffer = new ke(this), this.bindElementBuffer = new vt(this), this.bindVertexArrayOES = this.extVertexArrayObject && new ir(this), this.pixelStoreUnpack = new ar(this), this.pixelStoreUnpackPremultiplyAlpha = new vr(this), this.pixelStoreUnpackFlipY = new ii(this), this.extTextureFilterAnisotropic = D.getExtension("EXT_texture_filter_anisotropic") || D.getExtension("MOZ_EXT_texture_filter_anisotropic") || D.getExtension("WEBKIT_EXT_texture_filter_anisotropic"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = D.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.extTextureHalfFloat = D.getExtension("OES_texture_half_float"), this.extTextureHalfFloat && (D.getExtension("OES_texture_half_float_linear"), this.extRenderToTextureHalfFloat = D.getExtension("EXT_color_buffer_half_float")), this.extTimerQuery = D.getExtension("EXT_disjoint_timer_query"), this.maxTextureSize = D.getParameter(D.MAX_TEXTURE_SIZE);
+ };
+ Xr.prototype.setDefault = function() {
+ this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault();
+ }, Xr.prototype.setDirty = function() {
+ this.clearColor.dirty = true, this.clearDepth.dirty = true, this.clearStencil.dirty = true, this.colorMask.dirty = true, this.depthMask.dirty = true, this.stencilMask.dirty = true, this.stencilFunc.dirty = true, this.stencilOp.dirty = true, this.stencilTest.dirty = true, this.depthRange.dirty = true, this.depthTest.dirty = true, this.depthFunc.dirty = true, this.blend.dirty = true, this.blendFunc.dirty = true, this.blendColor.dirty = true, this.blendEquation.dirty = true, this.cullFace.dirty = true, this.cullFaceSide.dirty = true, this.frontFace.dirty = true, this.program.dirty = true, this.activeTexture.dirty = true, this.viewport.dirty = true, this.bindFramebuffer.dirty = true, this.bindRenderbuffer.dirty = true, this.bindTexture.dirty = true, this.bindVertexBuffer.dirty = true, this.bindElementBuffer.dirty = true, this.extVertexArrayObject && (this.bindVertexArrayOES.dirty = true), this.pixelStoreUnpack.dirty = true, this.pixelStoreUnpackPremultiplyAlpha.dirty = true, this.pixelStoreUnpackFlipY.dirty = true;
+ }, Xr.prototype.createIndexBuffer = function(D, J) {
+ return new ut(this, D, J);
+ }, Xr.prototype.createVertexBuffer = function(D, J, q) {
+ return new Nt(this, D, J, q);
+ }, Xr.prototype.createRenderbuffer = function(D, J, q) {
+ var K = this.gl, de = K.createRenderbuffer();
+ return this.bindRenderbuffer.set(de), K.renderbufferStorage(K.RENDERBUFFER, D, J, q), this.bindRenderbuffer.set(null), de;
+ }, Xr.prototype.createFramebuffer = function(D, J, q) {
+ return new ji(this, D, J, q);
+ }, Xr.prototype.clear = function(D) {
+ var J = D.color, q = D.depth, K = this.gl, de = 0;
+ J && (de |= K.COLOR_BUFFER_BIT, this.clearColor.set(J), this.colorMask.set([true, true, true, true])), typeof q != "undefined" && (de |= K.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(q), this.depthMask.set(true)), K.clear(de);
+ }, Xr.prototype.setCullFace = function(D) {
+ D.enable === false ? this.cullFace.set(false) : (this.cullFace.set(true), this.cullFaceSide.set(D.mode), this.frontFace.set(D.frontFace));
+ }, Xr.prototype.setDepthMode = function(D) {
+ D.func === this.gl.ALWAYS && !D.mask ? this.depthTest.set(false) : (this.depthTest.set(true), this.depthFunc.set(D.func), this.depthMask.set(D.mask), this.depthRange.set(D.range));
+ }, Xr.prototype.setStencilMode = function(D) {
+ D.test.func === this.gl.ALWAYS && !D.mask ? this.stencilTest.set(false) : (this.stencilTest.set(true), this.stencilMask.set(D.mask), this.stencilOp.set([D.fail, D.depthFail, D.pass]), this.stencilFunc.set({ func: D.test.func, ref: D.ref, mask: D.test.mask }));
+ }, Xr.prototype.setColorMode = function(D) {
+ i.deepEqual(D.blendFunction, wt.Replace) ? this.blend.set(false) : (this.blend.set(true), this.blendFunc.set(D.blendFunction), this.blendColor.set(D.blendColor)), this.colorMask.set(D.mask);
+ }, Xr.prototype.unbindVAO = function() {
+ this.extVertexArrayObject && this.bindVertexArrayOES.set(null);
+ };
+ var ri = function(Y) {
+ function D(J, q, K) {
+ var de = this;
+ Y.call(this), this.id = J, this.dispatcher = K, this.on("data", function(ne) {
+ ne.dataType === "source" && ne.sourceDataType === "metadata" && (de._sourceLoaded = true), de._sourceLoaded && !de._paused && ne.dataType === "source" && ne.sourceDataType === "content" && (de.reload(), de.transform && de.update(de.transform));
+ }), this.on("error", function() {
+ de._sourceErrored = true;
+ }), this._source = Ae(J, q, K, this), this._tiles = {}, this._cache = new ot(0, this._unloadTile.bind(this)), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new i.SourceFeatureState();
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.onAdd = function(q) {
+ this.map = q, this._maxTileCacheSize = q ? q._maxTileCacheSize : null, this._source && this._source.onAdd && this._source.onAdd(q);
+ }, D.prototype.onRemove = function(q) {
+ this._source && this._source.onRemove && this._source.onRemove(q);
+ }, D.prototype.loaded = function() {
+ if (this._sourceErrored) return true;
+ if (!this._sourceLoaded || !this._source.loaded()) return false;
+ for (var q in this._tiles) {
+ var K = this._tiles[q];
+ if (K.state !== "loaded" && K.state !== "errored") return false;
+ }
+ return true;
+ }, D.prototype.getSource = function() {
+ return this._source;
+ }, D.prototype.pause = function() {
+ this._paused = true;
+ }, D.prototype.resume = function() {
+ if (this._paused) {
+ var q = this._shouldReloadOnResume;
+ this._paused = false, this._shouldReloadOnResume = false, q && this.reload(), this.transform && this.update(this.transform);
+ }
+ }, D.prototype._loadTile = function(q, K) {
+ return this._source.loadTile(q, K);
+ }, D.prototype._unloadTile = function(q) {
+ if (this._source.unloadTile) return this._source.unloadTile(q, function() {
+ });
+ }, D.prototype._abortTile = function(q) {
+ if (this._source.abortTile) return this._source.abortTile(q, function() {
+ });
+ }, D.prototype.serialize = function() {
+ return this._source.serialize();
+ }, D.prototype.prepare = function(q) {
+ this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null);
+ for (var K in this._tiles) {
+ var de = this._tiles[K];
+ de.upload(q), de.prepare(this.map.style.imageManager);
+ }
+ }, D.prototype.getIds = function() {
+ return i.values(this._tiles).map(function(q) {
+ return q.tileID;
+ }).sort(Qr).map(function(q) {
+ return q.key;
+ });
+ }, D.prototype.getRenderableIds = function(q) {
+ var K = this, de = [];
+ for (var ne in this._tiles) this._isIdRenderable(ne, q) && de.push(this._tiles[ne]);
+ return q ? de.sort(function(we, Ue) {
+ var ft = we.tileID, Zt = Ue.tileID, hr = new i.Point(ft.canonical.x, ft.canonical.y)._rotate(K.transform.angle), qt = new i.Point(Zt.canonical.x, Zt.canonical.y)._rotate(K.transform.angle);
+ return ft.overscaledZ - Zt.overscaledZ || qt.y - hr.y || qt.x - hr.x;
+ }).map(function(we) {
+ return we.tileID.key;
+ }) : de.map(function(we) {
+ return we.tileID;
+ }).sort(Qr).map(function(we) {
+ return we.key;
+ });
+ }, D.prototype.hasRenderableParent = function(q) {
+ var K = this.findLoadedParent(q, 0);
+ return K ? this._isIdRenderable(K.tileID.key) : false;
+ }, D.prototype._isIdRenderable = function(q, K) {
+ return this._tiles[q] && this._tiles[q].hasData() && !this._coveredTiles[q] && (K || !this._tiles[q].holdingForFade());
+ }, D.prototype.reload = function() {
+ if (this._paused) {
+ this._shouldReloadOnResume = true;
+ return;
+ }
+ this._cache.reset();
+ for (var q in this._tiles) this._tiles[q].state !== "errored" && this._reloadTile(q, "reloading");
+ }, D.prototype._reloadTile = function(q, K) {
+ var de = this._tiles[q];
+ de && (de.state !== "loading" && (de.state = K), this._loadTile(de, this._tileLoaded.bind(this, de, q, K)));
+ }, D.prototype._tileLoaded = function(q, K, de, ne) {
+ if (ne) {
+ q.state = "errored", ne.status !== 404 ? this._source.fire(new i.ErrorEvent(ne, { tile: q })) : this.update(this.transform);
+ return;
+ }
+ q.timeAdded = i.browser.now(), de === "expired" && (q.refreshedUponExpiration = true), this._setTileReloadTimer(K, q), this.getSource().type === "raster-dem" && q.dem && this._backfillDEM(q), this._state.initializeTileState(q, this.map ? this.map.painter : null), this._source.fire(new i.Event("data", { dataType: "source", tile: q, coord: q.tileID }));
+ }, D.prototype._backfillDEM = function(q) {
+ for (var K = this.getRenderableIds(), de = 0; de < K.length; de++) {
+ var ne = K[de];
+ if (q.neighboringTiles && q.neighboringTiles[ne]) {
+ var we = this.getTileByID(ne);
+ Ue(q, we), Ue(we, q);
+ }
+ }
+ function Ue(ft, Zt) {
+ ft.needsHillshadePrepare = true;
+ var hr = Zt.tileID.canonical.x - ft.tileID.canonical.x, qt = Zt.tileID.canonical.y - ft.tileID.canonical.y, Ve = Math.pow(2, ft.tileID.canonical.z), Qe = Zt.tileID.key;
+ hr === 0 && qt === 0 || Math.abs(qt) > 1 || (Math.abs(hr) > 1 && (Math.abs(hr + Ve) === 1 ? hr += Ve : Math.abs(hr - Ve) === 1 && (hr -= Ve)), !(!Zt.dem || !ft.dem) && (ft.dem.backfillBorder(Zt.dem, hr, qt), ft.neighboringTiles && ft.neighboringTiles[Qe] && (ft.neighboringTiles[Qe].backfilled = true)));
+ }
+ }, D.prototype.getTile = function(q) {
+ return this.getTileByID(q.key);
+ }, D.prototype.getTileByID = function(q) {
+ return this._tiles[q];
+ }, D.prototype._retainLoadedChildren = function(q, K, de, ne) {
+ for (var we in this._tiles) {
+ var Ue = this._tiles[we];
+ if (!(ne[we] || !Ue.hasData() || Ue.tileID.overscaledZ <= K || Ue.tileID.overscaledZ > de)) {
+ for (var ft = Ue.tileID; Ue && Ue.tileID.overscaledZ > K + 1; ) {
+ var Zt = Ue.tileID.scaledTo(Ue.tileID.overscaledZ - 1);
+ Ue = this._tiles[Zt.key], Ue && Ue.hasData() && (ft = Zt);
+ }
+ for (var hr = ft; hr.overscaledZ > K; ) if (hr = hr.scaledTo(hr.overscaledZ - 1), q[hr.key]) {
+ ne[ft.key] = ft;
+ break;
+ }
+ }
+ }
+ }, D.prototype.findLoadedParent = function(q, K) {
+ if (q.key in this._loadedParentTiles) {
+ var de = this._loadedParentTiles[q.key];
+ return de && de.tileID.overscaledZ >= K ? de : null;
+ }
+ for (var ne = q.overscaledZ - 1; ne >= K; ne--) {
+ var we = q.scaledTo(ne), Ue = this._getLoadedTile(we);
+ if (Ue) return Ue;
+ }
+ }, D.prototype._getLoadedTile = function(q) {
+ var K = this._tiles[q.key];
+ if (K && K.hasData()) return K;
+ var de = this._cache.getByKey(q.wrapped().key);
+ return de;
+ }, D.prototype.updateCacheSize = function(q) {
+ var K = Math.ceil(q.width / this._source.tileSize) + 1, de = Math.ceil(q.height / this._source.tileSize) + 1, ne = K * de, we = 5, Ue = Math.floor(ne * we), ft = typeof this._maxTileCacheSize == "number" ? Math.min(this._maxTileCacheSize, Ue) : Ue;
+ this._cache.setMaxSize(ft);
+ }, D.prototype.handleWrapJump = function(q) {
+ var K = this._prevLng === void 0 ? q : this._prevLng, de = q - K, ne = de / 360, we = Math.round(ne);
+ if (this._prevLng = q, we) {
+ var Ue = {};
+ for (var ft in this._tiles) {
+ var Zt = this._tiles[ft];
+ Zt.tileID = Zt.tileID.unwrapTo(Zt.tileID.wrap + we), Ue[Zt.tileID.key] = Zt;
+ }
+ this._tiles = Ue;
+ for (var hr in this._timers) clearTimeout(this._timers[hr]), delete this._timers[hr];
+ for (var qt in this._tiles) {
+ var Ve = this._tiles[qt];
+ this._setTileReloadTimer(qt, Ve);
+ }
+ }
+ }, D.prototype.update = function(q) {
+ var K = this;
+ if (this.transform = q, !(!this._sourceLoaded || this._paused)) {
+ this.updateCacheSize(q), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {};
+ var de;
+ this.used ? this._source.tileID ? de = q.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(Ur) {
+ return new i.OverscaledTileID(Ur.canonical.z, Ur.wrap, Ur.canonical.z, Ur.canonical.x, Ur.canonical.y);
+ }) : (de = q.coveringTiles({ tileSize: this._source.tileSize, minzoom: this._source.minzoom, maxzoom: this._source.maxzoom, roundZoom: this._source.roundZoom, reparseOverscaled: this._source.reparseOverscaled }), this._source.hasTile && (de = de.filter(function(Ur) {
+ return K._source.hasTile(Ur);
+ }))) : de = [];
+ var ne = q.coveringZoomLevel(this._source), we = Math.max(ne - D.maxOverzooming, this._source.minzoom), Ue = Math.max(ne + D.maxUnderzooming, this._source.minzoom), ft = this._updateRetainedTiles(de, ne);
+ if (Oi(this._source.type)) {
+ for (var Zt = {}, hr = {}, qt = Object.keys(ft), Ve = 0, Qe = qt; Ve < Qe.length; Ve += 1) {
+ var at = Qe[Ve], Ct = ft[at], Ot = this._tiles[at];
+ if (!(!Ot || Ot.fadeEndTime && Ot.fadeEndTime <= i.browser.now())) {
+ var Rt = this.findLoadedParent(Ct, we);
+ Rt && (this._addTile(Rt.tileID), Zt[Rt.tileID.key] = Rt.tileID), hr[at] = Ct;
+ }
+ }
+ this._retainLoadedChildren(hr, ne, Ue, ft);
+ for (var Bt in Zt) ft[Bt] || (this._coveredTiles[Bt] = true, ft[Bt] = Zt[Bt]);
+ }
+ for (var Dt in ft) this._tiles[Dt].clearFadeHold();
+ for (var yt = i.keysDifference(this._tiles, ft), Pt = 0, ht = yt; Pt < ht.length; Pt += 1) {
+ var ur = ht[Pt], br = this._tiles[ur];
+ br.hasSymbolBuckets && !br.holdingForFade() ? br.setHoldDuration(this.map._fadeDuration) : (!br.hasSymbolBuckets || br.symbolFadeFinished()) && this._removeTile(ur);
+ }
+ this._updateLoadedParentTileCache();
+ }
+ }, D.prototype.releaseSymbolFadeTiles = function() {
+ for (var q in this._tiles) this._tiles[q].holdingForFade() && this._removeTile(q);
+ }, D.prototype._updateRetainedTiles = function(q, K) {
+ for (var de = {}, ne = {}, we = Math.max(K - D.maxOverzooming, this._source.minzoom), Ue = Math.max(K + D.maxUnderzooming, this._source.minzoom), ft = {}, Zt = 0, hr = q; Zt < hr.length; Zt += 1) {
+ var qt = hr[Zt], Ve = this._addTile(qt);
+ de[qt.key] = qt, !Ve.hasData() && K < this._source.maxzoom && (ft[qt.key] = qt);
+ }
+ this._retainLoadedChildren(ft, K, Ue, de);
+ for (var Qe = 0, at = q; Qe < at.length; Qe += 1) {
+ var Ct = at[Qe], Ot = this._tiles[Ct.key];
+ if (!Ot.hasData()) {
+ if (K + 1 > this._source.maxzoom) {
+ var Rt = Ct.children(this._source.maxzoom)[0], Bt = this.getTile(Rt);
+ if (Bt && Bt.hasData()) {
+ de[Rt.key] = Rt;
+ continue;
+ }
+ } else {
+ var Dt = Ct.children(this._source.maxzoom);
+ if (de[Dt[0].key] && de[Dt[1].key] && de[Dt[2].key] && de[Dt[3].key]) continue;
+ }
+ for (var yt = Ot.wasRequested(), Pt = Ct.overscaledZ - 1; Pt >= we; --Pt) {
+ var ht = Ct.scaledTo(Pt);
+ if (ne[ht.key] || (ne[ht.key] = true, Ot = this.getTile(ht), !Ot && yt && (Ot = this._addTile(ht)), Ot && (de[ht.key] = ht, yt = Ot.wasRequested(), Ot.hasData()))) break;
+ }
+ }
+ }
+ return de;
+ }, D.prototype._updateLoadedParentTileCache = function() {
+ this._loadedParentTiles = {};
+ for (var q in this._tiles) {
+ for (var K = [], de = void 0, ne = this._tiles[q].tileID; ne.overscaledZ > 0; ) {
+ if (ne.key in this._loadedParentTiles) {
+ de = this._loadedParentTiles[ne.key];
+ break;
+ }
+ K.push(ne.key);
+ var we = ne.scaledTo(ne.overscaledZ - 1);
+ if (de = this._getLoadedTile(we), de) break;
+ ne = we;
+ }
+ for (var Ue = 0, ft = K; Ue < ft.length; Ue += 1) {
+ var Zt = ft[Ue];
+ this._loadedParentTiles[Zt] = de;
+ }
+ }
+ }, D.prototype._addTile = function(q) {
+ var K = this._tiles[q.key];
+ if (K) return K;
+ K = this._cache.getAndRemove(q), K && (this._setTileReloadTimer(q.key, K), K.tileID = q, this._state.initializeTileState(K, this.map ? this.map.painter : null), this._cacheTimers[q.key] && (clearTimeout(this._cacheTimers[q.key]), delete this._cacheTimers[q.key], this._setTileReloadTimer(q.key, K)));
+ var de = !!K;
+ return de || (K = new i.Tile(q, this._source.tileSize * q.overscaleFactor()), this._loadTile(K, this._tileLoaded.bind(this, K, q.key, K.state))), K ? (K.uses++, this._tiles[q.key] = K, de || this._source.fire(new i.Event("dataloading", { tile: K, coord: K.tileID, dataType: "source" })), K) : null;
+ }, D.prototype._setTileReloadTimer = function(q, K) {
+ var de = this;
+ q in this._timers && (clearTimeout(this._timers[q]), delete this._timers[q]);
+ var ne = K.getExpiryTimeout();
+ ne && (this._timers[q] = setTimeout(function() {
+ de._reloadTile(q, "expired"), delete de._timers[q];
+ }, ne));
+ }, D.prototype._removeTile = function(q) {
+ var K = this._tiles[q];
+ K && (K.uses--, delete this._tiles[q], this._timers[q] && (clearTimeout(this._timers[q]), delete this._timers[q]), !(K.uses > 0) && (K.hasData() && K.state !== "reloading" ? this._cache.add(K.tileID, K, K.getExpiryTimeout()) : (K.aborted = true, this._abortTile(K), this._unloadTile(K))));
+ }, D.prototype.clearTiles = function() {
+ this._shouldReloadOnResume = false, this._paused = false;
+ for (var q in this._tiles) this._removeTile(q);
+ this._cache.reset();
+ }, D.prototype.tilesIn = function(q, K, de) {
+ var ne = this, we = [], Ue = this.transform;
+ if (!Ue) return we;
+ for (var ft = de ? Ue.getCameraQueryGeometry(q) : q, Zt = q.map(function(Pt) {
+ return Ue.pointCoordinate(Pt);
+ }), hr = ft.map(function(Pt) {
+ return Ue.pointCoordinate(Pt);
+ }), qt = this.getIds(), Ve = 1 / 0, Qe = 1 / 0, at = -1 / 0, Ct = -1 / 0, Ot = 0, Rt = hr; Ot < Rt.length; Ot += 1) {
+ var Bt = Rt[Ot];
+ Ve = Math.min(Ve, Bt.x), Qe = Math.min(Qe, Bt.y), at = Math.max(at, Bt.x), Ct = Math.max(Ct, Bt.y);
+ }
+ for (var Dt = function(Pt) {
+ var ht = ne._tiles[qt[Pt]];
+ if (!ht.holdingForFade()) {
+ var ur = ht.tileID, br = Math.pow(2, Ue.zoom - ht.tileID.overscaledZ), Ur = K * ht.queryPadding * i.EXTENT / ht.tileSize / br, Di = [ur.getTilePoint(new i.MercatorCoordinate(Ve, Qe)), ur.getTilePoint(new i.MercatorCoordinate(at, Ct))];
+ if (Di[0].x - Ur < i.EXTENT && Di[0].y - Ur < i.EXTENT && Di[1].x + Ur >= 0 && Di[1].y + Ur >= 0) {
+ var fi = Zt.map(function(gn) {
+ return ur.getTilePoint(gn);
+ }), Ti = hr.map(function(gn) {
+ return ur.getTilePoint(gn);
+ });
+ we.push({ tile: ht, tileID: ur, queryGeometry: fi, cameraQueryGeometry: Ti, scale: br });
+ }
+ }
+ }, yt = 0; yt < qt.length; yt++) Dt(yt);
+ return we;
+ }, D.prototype.getVisibleCoordinates = function(q) {
+ for (var K = this, de = this.getRenderableIds(q).map(function(ft) {
+ return K._tiles[ft].tileID;
+ }), ne = 0, we = de; ne < we.length; ne += 1) {
+ var Ue = we[ne];
+ Ue.posMatrix = this.transform.calculatePosMatrix(Ue.toUnwrapped());
+ }
+ return de;
+ }, D.prototype.hasTransition = function() {
+ if (this._source.hasTransition()) return true;
+ if (Oi(this._source.type)) for (var q in this._tiles) {
+ var K = this._tiles[q];
+ if (K.fadeEndTime !== void 0 && K.fadeEndTime >= i.browser.now()) return true;
+ }
+ return false;
+ }, D.prototype.setFeatureState = function(q, K, de) {
+ q = q || "_geojsonTileLayer", this._state.updateState(q, K, de);
+ }, D.prototype.removeFeatureState = function(q, K, de) {
+ q = q || "_geojsonTileLayer", this._state.removeFeatureState(q, K, de);
+ }, D.prototype.getFeatureState = function(q, K) {
+ return q = q || "_geojsonTileLayer", this._state.getState(q, K);
+ }, D.prototype.setDependencies = function(q, K, de) {
+ var ne = this._tiles[q];
+ ne && ne.setDependencies(K, de);
+ }, D.prototype.reloadTilesForDependencies = function(q, K) {
+ for (var de in this._tiles) {
+ var ne = this._tiles[de];
+ ne.hasDependency(q, K) && this._reloadTile(de, "reloading");
+ }
+ this._cache.filter(function(we) {
+ return !we.hasDependency(q, K);
+ });
+ }, D;
+ }(i.Evented);
+ ri.maxOverzooming = 10, ri.maxUnderzooming = 3;
+ function Qr(Y, D) {
+ var J = Math.abs(Y.wrap * 2) - +(Y.wrap < 0), q = Math.abs(D.wrap * 2) - +(D.wrap < 0);
+ return Y.overscaledZ - D.overscaledZ || q - J || D.canonical.y - Y.canonical.y || D.canonical.x - Y.canonical.x;
+ }
+ function Oi(Y) {
+ return Y === "raster" || Y === "image" || Y === "video";
+ }
+ function $i() {
+ return new i.window.Worker(io.workerUrl);
+ }
+ var tn = "mapboxgl_preloaded_worker_pool", fn = function() {
+ this.active = {};
+ };
+ fn.prototype.acquire = function(D) {
+ if (!this.workers) for (this.workers = []; this.workers.length < fn.workerCount; ) this.workers.push(new $i());
+ return this.active[D] = true, this.workers.slice();
+ }, fn.prototype.release = function(D) {
+ delete this.active[D], this.numActive() === 0 && (this.workers.forEach(function(J) {
+ J.terminate();
+ }), this.workers = null);
+ }, fn.prototype.isPreloaded = function() {
+ return !!this.active[tn];
+ }, fn.prototype.numActive = function() {
+ return Object.keys(this.active).length;
+ };
+ var yn = Math.floor(i.browser.hardwareConcurrency / 2);
+ fn.workerCount = Math.max(Math.min(yn, 6), 1);
+ var Sn;
+ function Ba() {
+ return Sn || (Sn = new fn()), Sn;
+ }
+ function ua() {
+ var Y = Ba();
+ Y.acquire(tn);
+ }
+ function ma() {
+ var Y = Sn;
+ Y && (Y.isPreloaded() && Y.numActive() === 1 ? (Y.release(tn), Sn = null) : console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"));
+ }
+ function Wa(Y, D) {
+ var J = {};
+ for (var q in Y) q !== "ref" && (J[q] = Y[q]);
+ return i.refProperties.forEach(function(K) {
+ K in D && (J[K] = D[K]);
+ }), J;
+ }
+ function Fa(Y) {
+ Y = Y.slice();
+ for (var D = /* @__PURE__ */ Object.create(null), J = 0; J < Y.length; J++) D[Y[J].id] = Y[J];
+ for (var q = 0; q < Y.length; q++) "ref" in Y[q] && (Y[q] = Wa(Y[q], D[Y[q].ref]));
+ return Y;
+ }
+ function Xo() {
+ var Y = {}, D = i.styleSpec.$version;
+ for (var J in i.styleSpec.$root) {
+ var q = i.styleSpec.$root[J];
+ if (q.required) {
+ var K = null;
+ J === "version" ? K = D : q.type === "array" ? K = [] : K = {}, K != null && (Y[J] = K);
+ }
+ }
+ return Y;
+ }
+ var da = { setStyle: "setStyle", addLayer: "addLayer", removeLayer: "removeLayer", setPaintProperty: "setPaintProperty", setLayoutProperty: "setLayoutProperty", setFilter: "setFilter", addSource: "addSource", removeSource: "removeSource", setGeoJSONSourceData: "setGeoJSONSourceData", setLayerZoomRange: "setLayerZoomRange", setLayerProperty: "setLayerProperty", setCenter: "setCenter", setZoom: "setZoom", setBearing: "setBearing", setPitch: "setPitch", setSprite: "setSprite", setGlyphs: "setGlyphs", setTransition: "setTransition", setLight: "setLight" };
+ function Wn(Y, D, J) {
+ J.push({ command: da.addSource, args: [Y, D[Y]] });
+ }
+ function Ha(Y, D, J) {
+ D.push({ command: da.removeSource, args: [Y] }), J[Y] = true;
+ }
+ function vo(Y, D, J, q) {
+ Ha(Y, J, q), Wn(Y, D, J);
+ }
+ function jn(Y, D, J) {
+ var q;
+ for (q in Y[J]) if (Y[J].hasOwnProperty(q) && q !== "data" && !i.deepEqual(Y[J][q], D[J][q])) return false;
+ for (q in D[J]) if (D[J].hasOwnProperty(q) && q !== "data" && !i.deepEqual(Y[J][q], D[J][q])) return false;
+ return true;
+ }
+ function Mt(Y, D, J, q) {
+ Y = Y || {}, D = D || {};
+ var K;
+ for (K in Y) Y.hasOwnProperty(K) && (D.hasOwnProperty(K) || Ha(K, J, q));
+ for (K in D) D.hasOwnProperty(K) && (Y.hasOwnProperty(K) ? i.deepEqual(Y[K], D[K]) || (Y[K].type === "geojson" && D[K].type === "geojson" && jn(Y, D, K) ? J.push({ command: da.setGeoJSONSourceData, args: [K, D[K].data] }) : vo(K, D, J, q)) : Wn(K, D, J));
+ }
+ function kr(Y, D, J, q, K, de) {
+ Y = Y || {}, D = D || {};
+ var ne;
+ for (ne in Y) Y.hasOwnProperty(ne) && (i.deepEqual(Y[ne], D[ne]) || J.push({ command: de, args: [q, ne, D[ne], K] }));
+ for (ne in D) !D.hasOwnProperty(ne) || Y.hasOwnProperty(ne) || i.deepEqual(Y[ne], D[ne]) || J.push({ command: de, args: [q, ne, D[ne], K] });
+ }
+ function Jr(Y) {
+ return Y.id;
+ }
+ function vi(Y, D) {
+ return Y[D.id] = D, Y;
+ }
+ function hn(Y, D, J) {
+ Y = Y || [], D = D || [];
+ var q = Y.map(Jr), K = D.map(Jr), de = Y.reduce(vi, {}), ne = D.reduce(vi, {}), we = q.slice(), Ue = /* @__PURE__ */ Object.create(null), ft, Zt, hr, qt, Ve, Qe, at;
+ for (ft = 0, Zt = 0; ft < q.length; ft++) hr = q[ft], ne.hasOwnProperty(hr) ? Zt++ : (J.push({ command: da.removeLayer, args: [hr] }), we.splice(we.indexOf(hr, Zt), 1));
+ for (ft = 0, Zt = 0; ft < K.length; ft++) hr = K[K.length - 1 - ft], we[we.length - 1 - ft] !== hr && (de.hasOwnProperty(hr) ? (J.push({ command: da.removeLayer, args: [hr] }), we.splice(we.lastIndexOf(hr, we.length - Zt), 1)) : Zt++, Qe = we[we.length - ft], J.push({ command: da.addLayer, args: [ne[hr], Qe] }), we.splice(we.length - ft, 0, hr), Ue[hr] = true);
+ for (ft = 0; ft < K.length; ft++) if (hr = K[ft], qt = de[hr], Ve = ne[hr], !(Ue[hr] || i.deepEqual(qt, Ve))) {
+ if (!i.deepEqual(qt.source, Ve.source) || !i.deepEqual(qt["source-layer"], Ve["source-layer"]) || !i.deepEqual(qt.type, Ve.type)) {
+ J.push({ command: da.removeLayer, args: [hr] }), Qe = we[we.lastIndexOf(hr) + 1], J.push({ command: da.addLayer, args: [Ve, Qe] });
+ continue;
+ }
+ kr(qt.layout, Ve.layout, J, hr, null, da.setLayoutProperty), kr(qt.paint, Ve.paint, J, hr, null, da.setPaintProperty), i.deepEqual(qt.filter, Ve.filter) || J.push({ command: da.setFilter, args: [hr, Ve.filter] }), (!i.deepEqual(qt.minzoom, Ve.minzoom) || !i.deepEqual(qt.maxzoom, Ve.maxzoom)) && J.push({ command: da.setLayerZoomRange, args: [hr, Ve.minzoom, Ve.maxzoom] });
+ for (at in qt) qt.hasOwnProperty(at) && (at === "layout" || at === "paint" || at === "filter" || at === "metadata" || at === "minzoom" || at === "maxzoom" || (at.indexOf("paint.") === 0 ? kr(qt[at], Ve[at], J, hr, at.slice(6), da.setPaintProperty) : i.deepEqual(qt[at], Ve[at]) || J.push({ command: da.setLayerProperty, args: [hr, at, Ve[at]] })));
+ for (at in Ve) !Ve.hasOwnProperty(at) || qt.hasOwnProperty(at) || at === "layout" || at === "paint" || at === "filter" || at === "metadata" || at === "minzoom" || at === "maxzoom" || (at.indexOf("paint.") === 0 ? kr(qt[at], Ve[at], J, hr, at.slice(6), da.setPaintProperty) : i.deepEqual(qt[at], Ve[at]) || J.push({ command: da.setLayerProperty, args: [hr, at, Ve[at]] }));
+ }
+ }
+ function An(Y, D) {
+ if (!Y) return [{ command: da.setStyle, args: [D] }];
+ var J = [];
+ try {
+ if (!i.deepEqual(Y.version, D.version)) return [{ command: da.setStyle, args: [D] }];
+ i.deepEqual(Y.center, D.center) || J.push({ command: da.setCenter, args: [D.center] }), i.deepEqual(Y.zoom, D.zoom) || J.push({ command: da.setZoom, args: [D.zoom] }), i.deepEqual(Y.bearing, D.bearing) || J.push({ command: da.setBearing, args: [D.bearing] }), i.deepEqual(Y.pitch, D.pitch) || J.push({ command: da.setPitch, args: [D.pitch] }), i.deepEqual(Y.sprite, D.sprite) || J.push({ command: da.setSprite, args: [D.sprite] }), i.deepEqual(Y.glyphs, D.glyphs) || J.push({ command: da.setGlyphs, args: [D.glyphs] }), i.deepEqual(Y.transition, D.transition) || J.push({ command: da.setTransition, args: [D.transition] }), i.deepEqual(Y.light, D.light) || J.push({ command: da.setLight, args: [D.light] });
+ var q = {}, K = [];
+ Mt(Y.sources, D.sources, K, q);
+ var de = [];
+ Y.layers && Y.layers.forEach(function(ne) {
+ q[ne.source] ? J.push({ command: da.removeLayer, args: [ne.id] }) : de.push(ne);
+ }), J = J.concat(K), hn(de, D.layers, J);
+ } catch (ne) {
+ console.warn("Unable to compute style diff:", ne), J = [{ command: da.setStyle, args: [D] }];
+ }
+ return J;
+ }
+ var Mn = function(D, J) {
+ this.reset(D, J);
+ };
+ Mn.prototype.reset = function(D, J) {
+ this.points = D || [], this._distances = [0];
+ for (var q = 1; q < this.points.length; q++) this._distances[q] = this._distances[q - 1] + this.points[q].dist(this.points[q - 1]);
+ this.length = this._distances[this._distances.length - 1], this.padding = Math.min(J || 0, this.length * 0.5), this.paddedLength = this.length - this.padding * 2;
+ }, Mn.prototype.lerp = function(D) {
+ if (this.points.length === 1) return this.points[0];
+ D = i.clamp(D, 0, 1);
+ for (var J = 1, q = this._distances[J], K = D * this.paddedLength + this.padding; q < K && J < this._distances.length; ) q = this._distances[++J];
+ var de = J - 1, ne = this._distances[de], we = q - ne, Ue = we > 0 ? (K - ne) / we : 0;
+ return this.points[de].mult(1 - Ue).add(this.points[J].mult(Ue));
+ };
+ var Li = function(D, J, q) {
+ var K = this.boxCells = [], de = this.circleCells = [];
+ this.xCellCount = Math.ceil(D / q), this.yCellCount = Math.ceil(J / q);
+ for (var ne = 0; ne < this.xCellCount * this.yCellCount; ne++) K.push([]), de.push([]);
+ this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = D, this.height = J, this.xScale = this.xCellCount / D, this.yScale = this.yCellCount / J, this.boxUid = 0, this.circleUid = 0;
+ };
+ Li.prototype.keysLength = function() {
+ return this.boxKeys.length + this.circleKeys.length;
+ }, Li.prototype.insert = function(D, J, q, K, de) {
+ this._forEachCell(J, q, K, de, this._insertBoxCell, this.boxUid++), this.boxKeys.push(D), this.bboxes.push(J), this.bboxes.push(q), this.bboxes.push(K), this.bboxes.push(de);
+ }, Li.prototype.insertCircle = function(D, J, q, K) {
+ this._forEachCell(J - K, q - K, J + K, q + K, this._insertCircleCell, this.circleUid++), this.circleKeys.push(D), this.circles.push(J), this.circles.push(q), this.circles.push(K);
+ }, Li.prototype._insertBoxCell = function(D, J, q, K, de, ne) {
+ this.boxCells[de].push(ne);
+ }, Li.prototype._insertCircleCell = function(D, J, q, K, de, ne) {
+ this.circleCells[de].push(ne);
+ }, Li.prototype._query = function(D, J, q, K, de, ne) {
+ if (q < 0 || D > this.width || K < 0 || J > this.height) return de ? false : [];
+ var we = [];
+ if (D <= 0 && J <= 0 && this.width <= q && this.height <= K) {
+ if (de) return true;
+ for (var Ue = 0; Ue < this.boxKeys.length; Ue++) we.push({ key: this.boxKeys[Ue], x1: this.bboxes[Ue * 4], y1: this.bboxes[Ue * 4 + 1], x2: this.bboxes[Ue * 4 + 2], y2: this.bboxes[Ue * 4 + 3] });
+ for (var ft = 0; ft < this.circleKeys.length; ft++) {
+ var Zt = this.circles[ft * 3], hr = this.circles[ft * 3 + 1], qt = this.circles[ft * 3 + 2];
+ we.push({ key: this.circleKeys[ft], x1: Zt - qt, y1: hr - qt, x2: Zt + qt, y2: hr + qt });
+ }
+ return ne ? we.filter(ne) : we;
+ } else {
+ var Ve = { hitTest: de, seenUids: { box: {}, circle: {} } };
+ return this._forEachCell(D, J, q, K, this._queryCell, we, Ve, ne), de ? we.length > 0 : we;
+ }
+ }, Li.prototype._queryCircle = function(D, J, q, K, de) {
+ var ne = D - q, we = D + q, Ue = J - q, ft = J + q;
+ if (we < 0 || ne > this.width || ft < 0 || Ue > this.height) return K ? false : [];
+ var Zt = [], hr = { hitTest: K, circle: { x: D, y: J, radius: q }, seenUids: { box: {}, circle: {} } };
+ return this._forEachCell(ne, Ue, we, ft, this._queryCellCircle, Zt, hr, de), K ? Zt.length > 0 : Zt;
+ }, Li.prototype.query = function(D, J, q, K, de) {
+ return this._query(D, J, q, K, false, de);
+ }, Li.prototype.hitTest = function(D, J, q, K, de) {
+ return this._query(D, J, q, K, true, de);
+ }, Li.prototype.hitTestCircle = function(D, J, q, K) {
+ return this._queryCircle(D, J, q, true, K);
+ }, Li.prototype._queryCell = function(D, J, q, K, de, ne, we, Ue) {
+ var ft = we.seenUids, Zt = this.boxCells[de];
+ if (Zt !== null) for (var hr = this.bboxes, qt = 0, Ve = Zt; qt < Ve.length; qt += 1) {
+ var Qe = Ve[qt];
+ if (!ft.box[Qe]) {
+ ft.box[Qe] = true;
+ var at = Qe * 4;
+ if (D <= hr[at + 2] && J <= hr[at + 3] && q >= hr[at + 0] && K >= hr[at + 1] && (!Ue || Ue(this.boxKeys[Qe]))) {
+ if (we.hitTest) return ne.push(true), true;
+ ne.push({ key: this.boxKeys[Qe], x1: hr[at], y1: hr[at + 1], x2: hr[at + 2], y2: hr[at + 3] });
+ }
+ }
+ }
+ var Ct = this.circleCells[de];
+ if (Ct !== null) for (var Ot = this.circles, Rt = 0, Bt = Ct; Rt < Bt.length; Rt += 1) {
+ var Dt = Bt[Rt];
+ if (!ft.circle[Dt]) {
+ ft.circle[Dt] = true;
+ var yt = Dt * 3;
+ if (this._circleAndRectCollide(Ot[yt], Ot[yt + 1], Ot[yt + 2], D, J, q, K) && (!Ue || Ue(this.circleKeys[Dt]))) {
+ if (we.hitTest) return ne.push(true), true;
+ var Pt = Ot[yt], ht = Ot[yt + 1], ur = Ot[yt + 2];
+ ne.push({ key: this.circleKeys[Dt], x1: Pt - ur, y1: ht - ur, x2: Pt + ur, y2: ht + ur });
+ }
+ }
+ }
+ }, Li.prototype._queryCellCircle = function(D, J, q, K, de, ne, we, Ue) {
+ var ft = we.circle, Zt = we.seenUids, hr = this.boxCells[de];
+ if (hr !== null) for (var qt = this.bboxes, Ve = 0, Qe = hr; Ve < Qe.length; Ve += 1) {
+ var at = Qe[Ve];
+ if (!Zt.box[at]) {
+ Zt.box[at] = true;
+ var Ct = at * 4;
+ if (this._circleAndRectCollide(ft.x, ft.y, ft.radius, qt[Ct + 0], qt[Ct + 1], qt[Ct + 2], qt[Ct + 3]) && (!Ue || Ue(this.boxKeys[at]))) return ne.push(true), true;
+ }
+ }
+ var Ot = this.circleCells[de];
+ if (Ot !== null) for (var Rt = this.circles, Bt = 0, Dt = Ot; Bt < Dt.length; Bt += 1) {
+ var yt = Dt[Bt];
+ if (!Zt.circle[yt]) {
+ Zt.circle[yt] = true;
+ var Pt = yt * 3;
+ if (this._circlesCollide(Rt[Pt], Rt[Pt + 1], Rt[Pt + 2], ft.x, ft.y, ft.radius) && (!Ue || Ue(this.circleKeys[yt]))) return ne.push(true), true;
+ }
+ }
+ }, Li.prototype._forEachCell = function(D, J, q, K, de, ne, we, Ue) {
+ for (var ft = this._convertToXCellCoord(D), Zt = this._convertToYCellCoord(J), hr = this._convertToXCellCoord(q), qt = this._convertToYCellCoord(K), Ve = ft; Ve <= hr; Ve++) for (var Qe = Zt; Qe <= qt; Qe++) {
+ var at = this.xCellCount * Qe + Ve;
+ if (de.call(this, D, J, q, K, at, ne, we, Ue)) return;
+ }
+ }, Li.prototype._convertToXCellCoord = function(D) {
+ return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(D * this.xScale)));
+ }, Li.prototype._convertToYCellCoord = function(D) {
+ return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(D * this.yScale)));
+ }, Li.prototype._circlesCollide = function(D, J, q, K, de, ne) {
+ var we = K - D, Ue = de - J, ft = q + ne;
+ return ft * ft > we * we + Ue * Ue;
+ }, Li.prototype._circleAndRectCollide = function(D, J, q, K, de, ne, we) {
+ var Ue = (ne - K) / 2, ft = Math.abs(D - (K + Ue));
+ if (ft > Ue + q) return false;
+ var Zt = (we - de) / 2, hr = Math.abs(J - (de + Zt));
+ if (hr > Zt + q) return false;
+ if (ft <= Ue || hr <= Zt) return true;
+ var qt = ft - Ue, Ve = hr - Zt;
+ return qt * qt + Ve * Ve <= q * q;
+ };
+ function _n(Y, D, J, q, K) {
+ var de = i.create();
+ return D ? (i.scale(de, de, [1 / K, 1 / K, 1]), J || i.rotateZ(de, de, q.angle)) : i.multiply(de, q.labelPlaneMatrix, Y), de;
+ }
+ function ya(Y, D, J, q, K) {
+ if (D) {
+ var de = i.clone(Y);
+ return i.scale(de, de, [K, K, 1]), J || i.rotateZ(de, de, -q.angle), de;
+ } else return q.glCoordMatrix;
+ }
+ function $n(Y, D) {
+ var J = [Y.x, Y.y, 0, 1];
+ zl(J, J, D);
+ var q = J[3];
+ return { point: new i.Point(J[0] / q, J[1] / q), signedDistanceFromCamera: q };
+ }
+ function Ma(Y, D) {
+ return 0.5 + 0.5 * (Y / D);
+ }
+ function _o(Y, D) {
+ var J = Y[0] / Y[3], q = Y[1] / Y[3], K = J >= -D[0] && J <= D[0] && q >= -D[1] && q <= D[1];
+ return K;
+ }
+ function No(Y, D, J, q, K, de, ne, we) {
+ var Ue = q ? Y.textSizeData : Y.iconSizeData, ft = i.evaluateSizeForZoom(Ue, J.transform.zoom), Zt = [256 / J.width * 2 + 1, 256 / J.height * 2 + 1], hr = q ? Y.text.dynamicLayoutVertexArray : Y.icon.dynamicLayoutVertexArray;
+ hr.clear();
+ for (var qt = Y.lineVertexArray, Ve = q ? Y.text.placedSymbolArray : Y.icon.placedSymbolArray, Qe = J.transform.width / J.transform.height, at = false, Ct = 0; Ct < Ve.length; Ct++) {
+ var Ot = Ve.get(Ct);
+ if (Ot.hidden || Ot.writingMode === i.WritingMode.vertical && !at) {
+ ul(Ot.numGlyphs, hr);
+ continue;
+ }
+ at = false;
+ var Rt = [Ot.anchorX, Ot.anchorY, 0, 1];
+ if (i.transformMat4(Rt, Rt, D), !_o(Rt, Zt)) {
+ ul(Ot.numGlyphs, hr);
+ continue;
+ }
+ var Bt = Rt[3], Dt = Ma(J.transform.cameraToCenterDistance, Bt), yt = i.evaluateSizeForFeature(Ue, ft, Ot), Pt = ne ? yt / Dt : yt * Dt, ht = new i.Point(Ot.anchorX, Ot.anchorY), ur = $n(ht, K).point, br = {}, Ur = ko(Ot, Pt, false, we, D, K, de, Y.glyphOffsetArray, qt, hr, ur, ht, br, Qe);
+ at = Ur.useVertical, (Ur.notEnoughRoom || at || Ur.needsFlipping && ko(Ot, Pt, true, we, D, K, de, Y.glyphOffsetArray, qt, hr, ur, ht, br, Qe).notEnoughRoom) && ul(Ot.numGlyphs, hr);
+ }
+ q ? Y.text.dynamicLayoutVertexBuffer.updateData(hr) : Y.icon.dynamicLayoutVertexBuffer.updateData(hr);
+ }
+ function po(Y, D, J, q, K, de, ne, we, Ue, ft, Zt) {
+ var hr = we.glyphStartIndex + we.numGlyphs, qt = we.lineStartIndex, Ve = we.lineStartIndex + we.lineLength, Qe = D.getoffsetX(we.glyphStartIndex), at = D.getoffsetX(hr - 1), Ct = Fs(Y * Qe, J, q, K, de, ne, we.segment, qt, Ve, Ue, ft, Zt);
+ if (!Ct) return null;
+ var Ot = Fs(Y * at, J, q, K, de, ne, we.segment, qt, Ve, Ue, ft, Zt);
+ return Ot ? { first: Ct, last: Ot } : null;
+ }
+ function Lo(Y, D, J, q) {
+ if (Y === i.WritingMode.horizontal) {
+ var K = Math.abs(J.y - D.y), de = Math.abs(J.x - D.x) * q;
+ if (K > de) return { useVertical: true };
+ }
+ return (Y === i.WritingMode.vertical ? D.y < J.y : D.x > J.x) ? { needsFlipping: true } : null;
+ }
+ function ko(Y, D, J, q, K, de, ne, we, Ue, ft, Zt, hr, qt, Ve) {
+ var Qe = D / 24, at = Y.lineOffsetX * Qe, Ct = Y.lineOffsetY * Qe, Ot;
+ if (Y.numGlyphs > 1) {
+ var Rt = Y.glyphStartIndex + Y.numGlyphs, Bt = Y.lineStartIndex, Dt = Y.lineStartIndex + Y.lineLength, yt = po(Qe, we, at, Ct, J, Zt, hr, Y, Ue, de, qt);
+ if (!yt) return { notEnoughRoom: true };
+ var Pt = $n(yt.first.point, ne).point, ht = $n(yt.last.point, ne).point;
+ if (q && !J) {
+ var ur = Lo(Y.writingMode, Pt, ht, Ve);
+ if (ur) return ur;
+ }
+ Ot = [yt.first];
+ for (var br = Y.glyphStartIndex + 1; br < Rt - 1; br++) Ot.push(Fs(Qe * we.getoffsetX(br), at, Ct, J, Zt, hr, Y.segment, Bt, Dt, Ue, de, qt));
+ Ot.push(yt.last);
+ } else {
+ if (q && !J) {
+ var Ur = $n(hr, K).point, Di = Y.lineStartIndex + Y.segment + 1, fi = new i.Point(Ue.getx(Di), Ue.gety(Di)), Ti = $n(fi, K), gn = Ti.signedDistanceFromCamera > 0 ? Ti.point : Ds(hr, fi, Ur, 1, K), rn = Lo(Y.writingMode, Ur, gn, Ve);
+ if (rn) return rn;
+ }
+ var Ci = Fs(Qe * we.getoffsetX(Y.glyphStartIndex), at, Ct, J, Zt, hr, Y.segment, Y.lineStartIndex, Y.lineStartIndex + Y.lineLength, Ue, de, qt);
+ if (!Ci) return { notEnoughRoom: true };
+ Ot = [Ci];
+ }
+ for (var Bi = 0, Gi = Ot; Bi < Gi.length; Bi += 1) {
+ var sn = Gi[Bi];
+ i.addDynamicAttributes(ft, sn.point, sn.angle);
+ }
+ return {};
+ }
+ function Ds(Y, D, J, q, K) {
+ var de = $n(Y.add(Y.sub(D)._unit()), K).point, ne = J.sub(de);
+ return J.add(ne._mult(q / ne.mag()));
+ }
+ function Fs(Y, D, J, q, K, de, ne, we, Ue, ft, Zt, hr) {
+ var qt = q ? Y - D : Y + D, Ve = qt > 0 ? 1 : -1, Qe = 0;
+ q && (Ve *= -1, Qe = Math.PI), Ve < 0 && (Qe += Math.PI);
+ for (var at = Ve > 0 ? we + ne : we + ne + 1, Ct = K, Ot = K, Rt = 0, Bt = 0, Dt = Math.abs(qt), yt = []; Rt + Bt <= Dt; ) {
+ if (at += Ve, at < we || at >= Ue) return null;
+ if (Ot = Ct, yt.push(Ct), Ct = hr[at], Ct === void 0) {
+ var Pt = new i.Point(ft.getx(at), ft.gety(at)), ht = $n(Pt, Zt);
+ if (ht.signedDistanceFromCamera > 0) Ct = hr[at] = ht.point;
+ else {
+ var ur = at - Ve, br = Rt === 0 ? de : new i.Point(ft.getx(ur), ft.gety(ur));
+ Ct = Ds(br, Pt, Ot, Dt - Rt + 1, Zt);
+ }
+ }
+ Rt += Bt, Bt = Ot.dist(Ct);
+ }
+ var Ur = (Dt - Rt) / Bt, Di = Ct.sub(Ot), fi = Di.mult(Ur)._add(Ot);
+ fi._add(Di._unit()._perp()._mult(J * Ve));
+ var Ti = Qe + Math.atan2(Ct.y - Ot.y, Ct.x - Ot.x);
+ return yt.push(fi), { point: fi, angle: Ti, path: yt };
+ }
+ var ll = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]);
+ function ul(Y, D) {
+ for (var J = 0; J < Y; J++) {
+ var q = D.length;
+ D.resize(q + 4), D.float32.set(ll, q * 3);
+ }
+ }
+ function zl(Y, D, J) {
+ var q = D[0], K = D[1];
+ return Y[0] = J[0] * q + J[4] * K + J[12], Y[1] = J[1] * q + J[5] * K + J[13], Y[3] = J[3] * q + J[7] * K + J[15], Y;
+ }
+ var us = 100, il = function(D, J, q) {
+ J === void 0 && (J = new Li(D.width + 2 * us, D.height + 2 * us, 25)), q === void 0 && (q = new Li(D.width + 2 * us, D.height + 2 * us, 25)), this.transform = D, this.grid = J, this.ignoredGrid = q, this.pitchfactor = Math.cos(D._pitch) * D.cameraToCenterDistance, this.screenRightBoundary = D.width + us, this.screenBottomBoundary = D.height + us, this.gridRightBoundary = D.width + 2 * us, this.gridBottomBoundary = D.height + 2 * us;
+ };
+ il.prototype.placeCollisionBox = function(D, J, q, K, de) {
+ var ne = this.projectAndGetPerspectiveRatio(K, D.anchorPointX, D.anchorPointY), we = q * ne.perspectiveRatio, Ue = D.x1 * we + ne.point.x, ft = D.y1 * we + ne.point.y, Zt = D.x2 * we + ne.point.x, hr = D.y2 * we + ne.point.y;
+ return !this.isInsideGrid(Ue, ft, Zt, hr) || !J && this.grid.hitTest(Ue, ft, Zt, hr, de) ? { box: [], offscreen: false } : { box: [Ue, ft, Zt, hr], offscreen: this.isOffscreen(Ue, ft, Zt, hr) };
+ }, il.prototype.placeCollisionCircles = function(D, J, q, K, de, ne, we, Ue, ft, Zt, hr, qt, Ve) {
+ var Qe = [], at = new i.Point(J.anchorX, J.anchorY), Ct = $n(at, ne), Ot = Ma(this.transform.cameraToCenterDistance, Ct.signedDistanceFromCamera), Rt = Zt ? de / Ot : de * Ot, Bt = Rt / i.ONE_EM, Dt = $n(at, we).point, yt = {}, Pt = J.lineOffsetX * Bt, ht = J.lineOffsetY * Bt, ur = po(Bt, K, Pt, ht, false, Dt, at, J, q, we, yt), br = false, Ur = false, Di = true;
+ if (ur) {
+ for (var fi = qt * 0.5 * Ot + Ve, Ti = new i.Point(-100, -100), gn = new i.Point(this.screenRightBoundary, this.screenBottomBoundary), rn = new Mn(), Ci = ur.first, Bi = ur.last, Gi = [], sn = Ci.path.length - 1; sn >= 1; sn--) Gi.push(Ci.path[sn]);
+ for (var zn = 1; zn < Bi.path.length; zn++) Gi.push(Bi.path[zn]);
+ var Ja = fi * 2.5;
+ if (Ue) {
+ var co = Gi.map(function(Iv) {
+ return $n(Iv, Ue);
+ });
+ co.some(function(Iv) {
+ return Iv.signedDistanceFromCamera <= 0;
+ }) ? Gi = [] : Gi = co.map(function(Iv) {
+ return Iv.point;
+ });
+ }
+ var ts = [];
+ if (Gi.length > 0) {
+ for (var so = Gi[0].clone(), Yo = Gi[0].clone(), ms = 1; ms < Gi.length; ms++) so.x = Math.min(so.x, Gi[ms].x), so.y = Math.min(so.y, Gi[ms].y), Yo.x = Math.max(Yo.x, Gi[ms].x), Yo.y = Math.max(Yo.y, Gi[ms].y);
+ so.x >= Ti.x && Yo.x <= gn.x && so.y >= Ti.y && Yo.y <= gn.y ? ts = [Gi] : Yo.x < Ti.x || so.x > gn.x || Yo.y < Ti.y || so.y > gn.y ? ts = [] : ts = i.clipLine([Gi], Ti.x, Ti.y, gn.x, gn.y);
+ }
+ for (var ou = 0, Cv = ts; ou < Cv.length; ou += 1) {
+ var Lv = Cv[ou];
+ rn.reset(Lv, fi * 0.25);
+ var wd = 0;
+ rn.length <= 0.5 * fi ? wd = 1 : wd = Math.ceil(rn.paddedLength / Ja) + 1;
+ for (var Kv = 0; Kv < wd; Kv++) {
+ var hg = Kv / Math.max(wd - 1, 1), gp = rn.lerp(hg), Td = gp.x + us, mp = gp.y + us;
+ Qe.push(Td, mp, fi, 0);
+ var Ud = Td - fi, Ad = mp - fi, Pv = Td + fi, Jv = mp + fi;
+ if (Di = Di && this.isOffscreen(Ud, Ad, Pv, Jv), Ur = Ur || this.isInsideGrid(Ud, Ad, Pv, Jv), !D && this.grid.hitTestCircle(Td, mp, fi, hr) && (br = true, !ft)) return { circles: [], offscreen: false, collisionDetected: br };
+ }
+ }
+ }
+ return { circles: !ft && br || !Ur ? [] : Qe, offscreen: Di, collisionDetected: br };
+ }, il.prototype.queryRenderedSymbols = function(D) {
+ if (D.length === 0 || this.grid.keysLength() === 0 && this.ignoredGrid.keysLength() === 0) return {};
+ for (var J = [], q = 1 / 0, K = 1 / 0, de = -1 / 0, ne = -1 / 0, we = 0, Ue = D; we < Ue.length; we += 1) {
+ var ft = Ue[we], Zt = new i.Point(ft.x + us, ft.y + us);
+ q = Math.min(q, Zt.x), K = Math.min(K, Zt.y), de = Math.max(de, Zt.x), ne = Math.max(ne, Zt.y), J.push(Zt);
+ }
+ for (var hr = this.grid.query(q, K, de, ne).concat(this.ignoredGrid.query(q, K, de, ne)), qt = {}, Ve = {}, Qe = 0, at = hr; Qe < at.length; Qe += 1) {
+ var Ct = at[Qe], Ot = Ct.key;
+ if (qt[Ot.bucketInstanceId] === void 0 && (qt[Ot.bucketInstanceId] = {}), !qt[Ot.bucketInstanceId][Ot.featureIndex]) {
+ var Rt = [new i.Point(Ct.x1, Ct.y1), new i.Point(Ct.x2, Ct.y1), new i.Point(Ct.x2, Ct.y2), new i.Point(Ct.x1, Ct.y2)];
+ i.polygonIntersectsPolygon(J, Rt) && (qt[Ot.bucketInstanceId][Ot.featureIndex] = true, Ve[Ot.bucketInstanceId] === void 0 && (Ve[Ot.bucketInstanceId] = []), Ve[Ot.bucketInstanceId].push(Ot.featureIndex));
+ }
+ }
+ return Ve;
+ }, il.prototype.insertCollisionBox = function(D, J, q, K, de) {
+ var ne = J ? this.ignoredGrid : this.grid, we = { bucketInstanceId: q, featureIndex: K, collisionGroupID: de };
+ ne.insert(we, D[0], D[1], D[2], D[3]);
+ }, il.prototype.insertCollisionCircles = function(D, J, q, K, de) {
+ for (var ne = J ? this.ignoredGrid : this.grid, we = { bucketInstanceId: q, featureIndex: K, collisionGroupID: de }, Ue = 0; Ue < D.length; Ue += 4) ne.insertCircle(we, D[Ue], D[Ue + 1], D[Ue + 2]);
+ }, il.prototype.projectAndGetPerspectiveRatio = function(D, J, q) {
+ var K = [J, q, 0, 1];
+ zl(K, K, D);
+ var de = new i.Point((K[0] / K[3] + 1) / 2 * this.transform.width + us, (-K[1] / K[3] + 1) / 2 * this.transform.height + us);
+ return { point: de, perspectiveRatio: 0.5 + 0.5 * (this.transform.cameraToCenterDistance / K[3]) };
+ }, il.prototype.isOffscreen = function(D, J, q, K) {
+ return q < us || D >= this.screenRightBoundary || K < us || J > this.screenBottomBoundary;
+ }, il.prototype.isInsideGrid = function(D, J, q, K) {
+ return q >= 0 && D < this.gridRightBoundary && K >= 0 && J < this.gridBottomBoundary;
+ }, il.prototype.getViewportMatrix = function() {
+ var D = i.identity([]);
+ return i.translate(D, D, [-100, -100, 0]), D;
+ };
+ function As(Y, D, J) {
+ return D * (i.EXTENT / (Y.tileSize * Math.pow(2, J - Y.tileID.overscaledZ)));
+ }
+ var cl = function(D, J, q, K) {
+ D ? this.opacity = Math.max(0, Math.min(1, D.opacity + (D.placed ? J : -J))) : this.opacity = K && q ? 1 : 0, this.placed = q;
+ };
+ cl.prototype.isHidden = function() {
+ return this.opacity === 0 && !this.placed;
+ };
+ var Ks = function(D, J, q, K, de) {
+ this.text = new cl(D ? D.text : null, J, q, de), this.icon = new cl(D ? D.icon : null, J, K, de);
+ };
+ Ks.prototype.isHidden = function() {
+ return this.text.isHidden() && this.icon.isHidden();
+ };
+ var zs = function(D, J, q) {
+ this.text = D, this.icon = J, this.skipFade = q;
+ }, Io = function() {
+ this.invProjMatrix = i.create(), this.viewportMatrix = i.create(), this.circles = [];
+ }, ls = function(D, J, q, K, de) {
+ this.bucketInstanceId = D, this.featureIndex = J, this.sourceLayerIndex = q, this.bucketIndex = K, this.tileID = de;
+ }, Yl = function(D) {
+ this.crossSourceCollisions = D, this.maxGroupID = 0, this.collisionGroups = {};
+ };
+ Yl.prototype.get = function(D) {
+ if (this.crossSourceCollisions) return { ID: 0, predicate: null };
+ if (!this.collisionGroups[D]) {
+ var J = ++this.maxGroupID;
+ this.collisionGroups[D] = { ID: J, predicate: function(q) {
+ return q.collisionGroupID === J;
+ } };
+ }
+ return this.collisionGroups[D];
+ };
+ function Su(Y, D, J, q, K) {
+ var de = i.getAnchorAlignment(Y), ne = de.horizontalAlign, we = de.verticalAlign, Ue = -(ne - 0.5) * D, ft = -(we - 0.5) * J, Zt = i.evaluateVariableOffset(Y, q);
+ return new i.Point(Ue + Zt[0] * K, ft + Zt[1] * K);
+ }
+ function nc(Y, D, J, q, K, de) {
+ var ne = Y.x1, we = Y.x2, Ue = Y.y1, ft = Y.y2, Zt = Y.anchorPointX, hr = Y.anchorPointY, qt = new i.Point(D, J);
+ return q && qt._rotate(K ? de : -de), { x1: ne + qt.x, y1: Ue + qt.y, x2: we + qt.x, y2: ft + qt.y, anchorPointX: Zt, anchorPointY: hr };
+ }
+ var bs = function(D, J, q, K) {
+ this.transform = D.clone(), this.collisionIndex = new il(this.transform), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = false, this.commitTime = 0, this.fadeDuration = J, this.retainedQueryData = {}, this.collisionGroups = new Yl(q), this.collisionCircleArrays = {}, this.prevPlacement = K, K && (K.prevPlacement = void 0), this.placedOrientations = {};
+ };
+ bs.prototype.getBucketParts = function(D, J, q, K) {
+ var de = q.getBucket(J), ne = q.latestFeatureIndex;
+ if (!(!de || !ne || J.id !== de.layerIds[0])) {
+ var we = q.collisionBoxArray, Ue = de.layers[0].layout, ft = Math.pow(2, this.transform.zoom - q.tileID.overscaledZ), Zt = q.tileSize / i.EXTENT, hr = this.transform.calculatePosMatrix(q.tileID.toUnwrapped()), qt = Ue.get("text-pitch-alignment") === "map", Ve = Ue.get("text-rotation-alignment") === "map", Qe = As(q, 1, this.transform.zoom), at = _n(hr, qt, Ve, this.transform, Qe), Ct = null;
+ if (qt) {
+ var Ot = ya(hr, qt, Ve, this.transform, Qe);
+ Ct = i.multiply([], this.transform.labelPlaneMatrix, Ot);
+ }
+ this.retainedQueryData[de.bucketInstanceId] = new ls(de.bucketInstanceId, ne, de.sourceLayerIndex, de.index, q.tileID);
+ var Rt = { bucket: de, layout: Ue, posMatrix: hr, textLabelPlaneMatrix: at, labelToScreenMatrix: Ct, scale: ft, textPixelRatio: Zt, holdingForFade: q.holdingForFade(), collisionBoxArray: we, partiallyEvaluatedTextSize: i.evaluateSizeForZoom(de.textSizeData, this.transform.zoom), collisionGroup: this.collisionGroups.get(de.sourceID) };
+ if (K) for (var Bt = 0, Dt = de.sortKeyRanges; Bt < Dt.length; Bt += 1) {
+ var yt = Dt[Bt], Pt = yt.sortKey, ht = yt.symbolInstanceStart, ur = yt.symbolInstanceEnd;
+ D.push({ sortKey: Pt, symbolInstanceStart: ht, symbolInstanceEnd: ur, parameters: Rt });
+ }
+ else D.push({ symbolInstanceStart: 0, symbolInstanceEnd: de.symbolInstances.length, parameters: Rt });
+ }
+ }, bs.prototype.attemptAnchorPlacement = function(D, J, q, K, de, ne, we, Ue, ft, Zt, hr, qt, Ve, Qe, at) {
+ var Ct = [qt.textOffset0, qt.textOffset1], Ot = Su(D, q, K, Ct, de), Rt = this.collisionIndex.placeCollisionBox(nc(J, Ot.x, Ot.y, ne, we, this.transform.angle), hr, Ue, ft, Zt.predicate);
+ if (at) {
+ var Bt = this.collisionIndex.placeCollisionBox(nc(at, Ot.x, Ot.y, ne, we, this.transform.angle), hr, Ue, ft, Zt.predicate);
+ if (Bt.box.length === 0) return;
+ }
+ if (Rt.box.length > 0) {
+ var Dt;
+ return this.prevPlacement && this.prevPlacement.variableOffsets[qt.crossTileID] && this.prevPlacement.placements[qt.crossTileID] && this.prevPlacement.placements[qt.crossTileID].text && (Dt = this.prevPlacement.variableOffsets[qt.crossTileID].anchor), this.variableOffsets[qt.crossTileID] = { textOffset: Ct, width: q, height: K, anchor: D, textBoxScale: de, prevAnchor: Dt }, this.markUsedJustification(Ve, D, qt, Qe), Ve.allowVerticalPlacement && (this.markUsedOrientation(Ve, Qe, qt), this.placedOrientations[qt.crossTileID] = Qe), { shift: Ot, placedGlyphBoxes: Rt };
+ }
+ }, bs.prototype.placeLayerBucketPart = function(D, J, q) {
+ var K = this, de = D.parameters, ne = de.bucket, we = de.layout, Ue = de.posMatrix, ft = de.textLabelPlaneMatrix, Zt = de.labelToScreenMatrix, hr = de.textPixelRatio, qt = de.holdingForFade, Ve = de.collisionBoxArray, Qe = de.partiallyEvaluatedTextSize, at = de.collisionGroup, Ct = we.get("text-optional"), Ot = we.get("icon-optional"), Rt = we.get("text-allow-overlap"), Bt = we.get("icon-allow-overlap"), Dt = we.get("text-rotation-alignment") === "map", yt = we.get("text-pitch-alignment") === "map", Pt = we.get("icon-text-fit") !== "none", ht = we.get("symbol-z-order") === "viewport-y", ur = Rt && (Bt || !ne.hasIconData() || Ot), br = Bt && (Rt || !ne.hasTextData() || Ct);
+ !ne.collisionArrays && Ve && ne.deserializeCollisionBoxes(Ve);
+ var Ur = function(Ci, Bi) {
+ if (!J[Ci.crossTileID]) {
+ if (qt) {
+ K.placements[Ci.crossTileID] = new zs(false, false, false);
+ return;
+ }
+ var Gi = false, sn = false, zn = true, Ja = null, co = { box: null, offscreen: null }, ts = { box: null, offscreen: null }, so = null, Yo = null, ms = null, ou = 0, Cv = 0, Lv = 0;
+ Bi.textFeatureIndex ? ou = Bi.textFeatureIndex : Ci.useRuntimeCollisionCircles && (ou = Ci.featureIndex), Bi.verticalTextFeatureIndex && (Cv = Bi.verticalTextFeatureIndex);
+ var wd = Bi.textBox;
+ if (wd) {
+ var Kv = function(vc) {
+ var tu = i.WritingMode.horizontal;
+ if (ne.allowVerticalPlacement && !vc && K.prevPlacement) {
+ var Sd = K.prevPlacement.placedOrientations[Ci.crossTileID];
+ Sd && (K.placedOrientations[Ci.crossTileID] = Sd, tu = Sd, K.markUsedOrientation(ne, tu, Ci));
+ }
+ return tu;
+ }, hg = function(vc, tu) {
+ if (ne.allowVerticalPlacement && Ci.numVerticalGlyphVertices > 0 && Bi.verticalTextBox) for (var Sd = 0, vy = ne.writingModes; Sd < vy.length; Sd += 1) {
+ var L1 = vy[Sd];
+ if (L1 === i.WritingMode.vertical ? (co = tu(), ts = co) : co = vc(), co && co.box && co.box.length) break;
+ }
+ else co = vc();
+ };
+ if (we.get("text-variable-anchor")) {
+ var Ud = we.get("text-variable-anchor");
+ if (K.prevPlacement && K.prevPlacement.variableOffsets[Ci.crossTileID]) {
+ var Ad = K.prevPlacement.variableOffsets[Ci.crossTileID];
+ Ud.indexOf(Ad.anchor) > 0 && (Ud = Ud.filter(function(vc) {
+ return vc !== Ad.anchor;
+ }), Ud.unshift(Ad.anchor));
+ }
+ var Pv = function(vc, tu, Sd) {
+ for (var vy = vc.x2 - vc.x1, L1 = vc.y2 - vc.y1, wu = Ci.textBoxScale, Yx = Pt && !Bt ? tu : null, lm = { box: [], offscreen: false }, Ow = Rt ? Ud.length * 2 : Ud.length, Rv = 0; Rv < Ow; ++Rv) {
+ var um = Ud[Rv % Ud.length], qw = Rv >= Ud.length, Kx = K.attemptAnchorPlacement(um, vc, vy, L1, wu, Dt, yt, hr, Ue, at, qw, Ci, ne, Sd, Yx);
+ if (Kx && (lm = Kx.placedGlyphBoxes, lm && lm.box && lm.box.length)) {
+ Gi = true, Ja = Kx.shift;
+ break;
+ }
+ }
+ return lm;
+ }, Jv = function() {
+ return Pv(wd, Bi.iconBox, i.WritingMode.horizontal);
+ }, Iv = function() {
+ var vc = Bi.verticalTextBox, tu = co && co.box && co.box.length;
+ return ne.allowVerticalPlacement && !tu && Ci.numVerticalGlyphVertices > 0 && vc ? Pv(vc, Bi.verticalIconBox, i.WritingMode.vertical) : { box: null, offscreen: null };
+ };
+ hg(Jv, Iv), co && (Gi = co.box, zn = co.offscreen);
+ var fy = Kv(co && co.box);
+ if (!Gi && K.prevPlacement) {
+ var dg = K.prevPlacement.variableOffsets[Ci.crossTileID];
+ dg && (K.variableOffsets[Ci.crossTileID] = dg, K.markUsedJustification(ne, dg.anchor, Ci, fy));
+ }
+ } else {
+ var gp = function(vc, tu) {
+ var Sd = K.collisionIndex.placeCollisionBox(vc, Rt, hr, Ue, at.predicate);
+ return Sd && Sd.box && Sd.box.length && (K.markUsedOrientation(ne, tu, Ci), K.placedOrientations[Ci.crossTileID] = tu), Sd;
+ }, Td = function() {
+ return gp(wd, i.WritingMode.horizontal);
+ }, mp = function() {
+ var vc = Bi.verticalTextBox;
+ return ne.allowVerticalPlacement && Ci.numVerticalGlyphVertices > 0 && vc ? gp(vc, i.WritingMode.vertical) : { box: null, offscreen: null };
+ };
+ hg(Td, mp), Kv(co && co.box && co.box.length);
+ }
+ }
+ if (so = co, Gi = so && so.box && so.box.length > 0, zn = so && so.offscreen, Ci.useRuntimeCollisionCircles) {
+ var oh = ne.text.placedSymbolArray.get(Ci.centerJustifiedTextSymbolIndex), vg = i.evaluateSizeForFeature(ne.textSizeData, Qe, oh), hy = we.get("text-padding"), Zh = Ci.collisionCircleDiameter;
+ Yo = K.collisionIndex.placeCollisionCircles(Rt, oh, ne.lineVertexArray, ne.glyphOffsetArray, vg, Ue, ft, Zt, q, yt, at.predicate, Zh, hy), Gi = Rt || Yo.circles.length > 0 && !Yo.collisionDetected, zn = zn && Yo.offscreen;
+ }
+ if (Bi.iconFeatureIndex && (Lv = Bi.iconFeatureIndex), Bi.iconBox) {
+ var am = function(vc) {
+ var tu = Pt && Ja ? nc(vc, Ja.x, Ja.y, Dt, yt, K.transform.angle) : vc;
+ return K.collisionIndex.placeCollisionBox(tu, Bt, hr, Ue, at.predicate);
+ };
+ ts && ts.box && ts.box.length && Bi.verticalIconBox ? (ms = am(Bi.verticalIconBox), sn = ms.box.length > 0) : (ms = am(Bi.iconBox), sn = ms.box.length > 0), zn = zn && ms.offscreen;
+ }
+ var k1 = Ct || Ci.numHorizontalGlyphVertices === 0 && Ci.numVerticalGlyphVertices === 0, C1 = Ot || Ci.numIconVertices === 0;
+ if (!k1 && !C1 ? sn = Gi = sn && Gi : C1 ? k1 || (sn = sn && Gi) : Gi = sn && Gi, Gi && so && so.box && (ts && ts.box && Cv ? K.collisionIndex.insertCollisionBox(so.box, we.get("text-ignore-placement"), ne.bucketInstanceId, Cv, at.ID) : K.collisionIndex.insertCollisionBox(so.box, we.get("text-ignore-placement"), ne.bucketInstanceId, ou, at.ID)), sn && ms && K.collisionIndex.insertCollisionBox(ms.box, we.get("icon-ignore-placement"), ne.bucketInstanceId, Lv, at.ID), Yo && (Gi && K.collisionIndex.insertCollisionCircles(Yo.circles, we.get("text-ignore-placement"), ne.bucketInstanceId, ou, at.ID), q)) {
+ var dy = ne.bucketInstanceId, om = K.collisionCircleArrays[dy];
+ om === void 0 && (om = K.collisionCircleArrays[dy] = new Io());
+ for (var sm = 0; sm < Yo.circles.length; sm += 4) om.circles.push(Yo.circles[sm + 0]), om.circles.push(Yo.circles[sm + 1]), om.circles.push(Yo.circles[sm + 2]), om.circles.push(Yo.collisionDetected ? 1 : 0);
+ }
+ K.placements[Ci.crossTileID] = new zs(Gi || ur, sn || br, zn || ne.justReloaded), J[Ci.crossTileID] = true;
+ }
+ };
+ if (ht) for (var Di = ne.getSortedSymbolIndexes(this.transform.angle), fi = Di.length - 1; fi >= 0; --fi) {
+ var Ti = Di[fi];
+ Ur(ne.symbolInstances.get(Ti), ne.collisionArrays[Ti]);
+ }
+ else for (var gn = D.symbolInstanceStart; gn < D.symbolInstanceEnd; gn++) Ur(ne.symbolInstances.get(gn), ne.collisionArrays[gn]);
+ if (q && ne.bucketInstanceId in this.collisionCircleArrays) {
+ var rn = this.collisionCircleArrays[ne.bucketInstanceId];
+ i.invert(rn.invProjMatrix, Ue), rn.viewportMatrix = this.collisionIndex.getViewportMatrix();
+ }
+ ne.justReloaded = false;
+ }, bs.prototype.markUsedJustification = function(D, J, q, K) {
+ var de = { left: q.leftJustifiedTextSymbolIndex, center: q.centerJustifiedTextSymbolIndex, right: q.rightJustifiedTextSymbolIndex }, ne;
+ K === i.WritingMode.vertical ? ne = q.verticalPlacedTextSymbolIndex : ne = de[i.getAnchorJustification(J)];
+ for (var we = [q.leftJustifiedTextSymbolIndex, q.centerJustifiedTextSymbolIndex, q.rightJustifiedTextSymbolIndex, q.verticalPlacedTextSymbolIndex], Ue = 0, ft = we; Ue < ft.length; Ue += 1) {
+ var Zt = ft[Ue];
+ Zt >= 0 && (ne >= 0 && Zt !== ne ? D.text.placedSymbolArray.get(Zt).crossTileID = 0 : D.text.placedSymbolArray.get(Zt).crossTileID = q.crossTileID);
+ }
+ }, bs.prototype.markUsedOrientation = function(D, J, q) {
+ for (var K = J === i.WritingMode.horizontal || J === i.WritingMode.horizontalOnly ? J : 0, de = J === i.WritingMode.vertical ? J : 0, ne = [q.leftJustifiedTextSymbolIndex, q.centerJustifiedTextSymbolIndex, q.rightJustifiedTextSymbolIndex], we = 0, Ue = ne; we < Ue.length; we += 1) {
+ var ft = Ue[we];
+ D.text.placedSymbolArray.get(ft).placedOrientation = K;
+ }
+ q.verticalPlacedTextSymbolIndex && (D.text.placedSymbolArray.get(q.verticalPlacedTextSymbolIndex).placedOrientation = de);
+ }, bs.prototype.commit = function(D) {
+ this.commitTime = D, this.zoomAtLastRecencyCheck = this.transform.zoom;
+ var J = this.prevPlacement, q = false;
+ this.prevZoomAdjustment = J ? J.zoomAdjustment(this.transform.zoom) : 0;
+ var K = J ? J.symbolFadeChange(D) : 1, de = J ? J.opacities : {}, ne = J ? J.variableOffsets : {}, we = J ? J.placedOrientations : {};
+ for (var Ue in this.placements) {
+ var ft = this.placements[Ue], Zt = de[Ue];
+ Zt ? (this.opacities[Ue] = new Ks(Zt, K, ft.text, ft.icon), q = q || ft.text !== Zt.text.placed || ft.icon !== Zt.icon.placed) : (this.opacities[Ue] = new Ks(null, K, ft.text, ft.icon, ft.skipFade), q = q || ft.text || ft.icon);
+ }
+ for (var hr in de) {
+ var qt = de[hr];
+ if (!this.opacities[hr]) {
+ var Ve = new Ks(qt, K, false, false);
+ Ve.isHidden() || (this.opacities[hr] = Ve, q = q || qt.text.placed || qt.icon.placed);
+ }
+ }
+ for (var Qe in ne) !this.variableOffsets[Qe] && this.opacities[Qe] && !this.opacities[Qe].isHidden() && (this.variableOffsets[Qe] = ne[Qe]);
+ for (var at in we) !this.placedOrientations[at] && this.opacities[at] && !this.opacities[at].isHidden() && (this.placedOrientations[at] = we[at]);
+ q ? this.lastPlacementChangeTime = D : typeof this.lastPlacementChangeTime != "number" && (this.lastPlacementChangeTime = J ? J.lastPlacementChangeTime : D);
+ }, bs.prototype.updateLayerOpacities = function(D, J) {
+ for (var q = {}, K = 0, de = J; K < de.length; K += 1) {
+ var ne = de[K], we = ne.getBucket(D);
+ we && ne.latestFeatureIndex && D.id === we.layerIds[0] && this.updateBucketOpacities(we, q, ne.collisionBoxArray);
+ }
+ }, bs.prototype.updateBucketOpacities = function(D, J, q) {
+ var K = this;
+ D.hasTextData() && D.text.opacityVertexArray.clear(), D.hasIconData() && D.icon.opacityVertexArray.clear(), D.hasIconCollisionBoxData() && D.iconCollisionBox.collisionVertexArray.clear(), D.hasTextCollisionBoxData() && D.textCollisionBox.collisionVertexArray.clear();
+ var de = D.layers[0].layout, ne = new Ks(null, 0, false, false, true), we = de.get("text-allow-overlap"), Ue = de.get("icon-allow-overlap"), ft = de.get("text-variable-anchor"), Zt = de.get("text-rotation-alignment") === "map", hr = de.get("text-pitch-alignment") === "map", qt = de.get("icon-text-fit") !== "none", Ve = new Ks(null, 0, we && (Ue || !D.hasIconData() || de.get("icon-optional")), Ue && (we || !D.hasTextData() || de.get("text-optional")), true);
+ !D.collisionArrays && q && (D.hasIconCollisionBoxData() || D.hasTextCollisionBoxData()) && D.deserializeCollisionBoxes(q);
+ for (var Qe = function(Rt, Bt, Dt) {
+ for (var yt = 0; yt < Bt / 4; yt++) Rt.opacityVertexArray.emplaceBack(Dt);
+ }, at = function(Rt) {
+ var Bt = D.symbolInstances.get(Rt), Dt = Bt.numHorizontalGlyphVertices, yt = Bt.numVerticalGlyphVertices, Pt = Bt.crossTileID, ht = J[Pt], ur = K.opacities[Pt];
+ ht ? ur = ne : ur || (ur = Ve, K.opacities[Pt] = ur), J[Pt] = true;
+ var br = Dt > 0 || yt > 0, Ur = Bt.numIconVertices > 0, Di = K.placedOrientations[Bt.crossTileID], fi = Di === i.WritingMode.vertical, Ti = Di === i.WritingMode.horizontal || Di === i.WritingMode.horizontalOnly;
+ if (br) {
+ var gn = ac(ur.text), rn = fi ? aa : gn;
+ Qe(D.text, Dt, rn);
+ var Ci = Ti ? aa : gn;
+ Qe(D.text, yt, Ci);
+ var Bi = ur.text.isHidden();
+ [Bt.rightJustifiedTextSymbolIndex, Bt.centerJustifiedTextSymbolIndex, Bt.leftJustifiedTextSymbolIndex].forEach(function(Lv) {
+ Lv >= 0 && (D.text.placedSymbolArray.get(Lv).hidden = Bi || fi ? 1 : 0);
+ }), Bt.verticalPlacedTextSymbolIndex >= 0 && (D.text.placedSymbolArray.get(Bt.verticalPlacedTextSymbolIndex).hidden = Bi || Ti ? 1 : 0);
+ var Gi = K.variableOffsets[Bt.crossTileID];
+ Gi && K.markUsedJustification(D, Gi.anchor, Bt, Di);
+ var sn = K.placedOrientations[Bt.crossTileID];
+ sn && (K.markUsedJustification(D, "left", Bt, sn), K.markUsedOrientation(D, sn, Bt));
+ }
+ if (Ur) {
+ var zn = ac(ur.icon), Ja = !(qt && Bt.verticalPlacedIconSymbolIndex && fi);
+ if (Bt.placedIconSymbolIndex >= 0) {
+ var co = Ja ? zn : aa;
+ Qe(D.icon, Bt.numIconVertices, co), D.icon.placedSymbolArray.get(Bt.placedIconSymbolIndex).hidden = ur.icon.isHidden();
+ }
+ if (Bt.verticalPlacedIconSymbolIndex >= 0) {
+ var ts = Ja ? aa : zn;
+ Qe(D.icon, Bt.numVerticalIconVertices, ts), D.icon.placedSymbolArray.get(Bt.verticalPlacedIconSymbolIndex).hidden = ur.icon.isHidden();
+ }
+ }
+ if (D.hasIconCollisionBoxData() || D.hasTextCollisionBoxData()) {
+ var so = D.collisionArrays[Rt];
+ if (so) {
+ var Yo = new i.Point(0, 0);
+ if (so.textBox || so.verticalTextBox) {
+ var ms = true;
+ if (ft) {
+ var ou = K.variableOffsets[Pt];
+ ou ? (Yo = Su(ou.anchor, ou.width, ou.height, ou.textOffset, ou.textBoxScale), Zt && Yo._rotate(hr ? K.transform.angle : -K.transform.angle)) : ms = false;
+ }
+ so.textBox && Rn(D.textCollisionBox.collisionVertexArray, ur.text.placed, !ms || fi, Yo.x, Yo.y), so.verticalTextBox && Rn(D.textCollisionBox.collisionVertexArray, ur.text.placed, !ms || Ti, Yo.x, Yo.y);
+ }
+ var Cv = !!(!Ti && so.verticalIconBox);
+ so.iconBox && Rn(D.iconCollisionBox.collisionVertexArray, ur.icon.placed, Cv, qt ? Yo.x : 0, qt ? Yo.y : 0), so.verticalIconBox && Rn(D.iconCollisionBox.collisionVertexArray, ur.icon.placed, !Cv, qt ? Yo.x : 0, qt ? Yo.y : 0);
+ }
+ }
+ }, Ct = 0; Ct < D.symbolInstances.length; Ct++) at(Ct);
+ if (D.sortFeatures(this.transform.angle), this.retainedQueryData[D.bucketInstanceId] && (this.retainedQueryData[D.bucketInstanceId].featureSortOrder = D.featureSortOrder), D.hasTextData() && D.text.opacityVertexBuffer && D.text.opacityVertexBuffer.updateData(D.text.opacityVertexArray), D.hasIconData() && D.icon.opacityVertexBuffer && D.icon.opacityVertexBuffer.updateData(D.icon.opacityVertexArray), D.hasIconCollisionBoxData() && D.iconCollisionBox.collisionVertexBuffer && D.iconCollisionBox.collisionVertexBuffer.updateData(D.iconCollisionBox.collisionVertexArray), D.hasTextCollisionBoxData() && D.textCollisionBox.collisionVertexBuffer && D.textCollisionBox.collisionVertexBuffer.updateData(D.textCollisionBox.collisionVertexArray), D.bucketInstanceId in this.collisionCircleArrays) {
+ var Ot = this.collisionCircleArrays[D.bucketInstanceId];
+ D.placementInvProjMatrix = Ot.invProjMatrix, D.placementViewportMatrix = Ot.viewportMatrix, D.collisionCircleArray = Ot.circles, delete this.collisionCircleArrays[D.bucketInstanceId];
+ }
+ }, bs.prototype.symbolFadeChange = function(D) {
+ return this.fadeDuration === 0 ? 1 : (D - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment;
+ }, bs.prototype.zoomAdjustment = function(D) {
+ return Math.max(0, (this.transform.zoom - D) / 1.5);
+ }, bs.prototype.hasTransitions = function(D) {
+ return this.stale || D - this.lastPlacementChangeTime < this.fadeDuration;
+ }, bs.prototype.stillRecent = function(D, J) {
+ var q = this.zoomAtLastRecencyCheck === J ? 1 - this.zoomAdjustment(J) : 1;
+ return this.zoomAtLastRecencyCheck = J, this.commitTime + this.fadeDuration * q > D;
+ }, bs.prototype.setStale = function() {
+ this.stale = true;
+ };
+ function Rn(Y, D, J, q, K) {
+ Y.emplaceBack(D ? 1 : 0, J ? 1 : 0, q || 0, K || 0), Y.emplaceBack(D ? 1 : 0, J ? 1 : 0, q || 0, K || 0), Y.emplaceBack(D ? 1 : 0, J ? 1 : 0, q || 0, K || 0), Y.emplaceBack(D ? 1 : 0, J ? 1 : 0, q || 0, K || 0);
+ }
+ var _a = Math.pow(2, 25), Vu = Math.pow(2, 24), Ol = Math.pow(2, 17), xo = Math.pow(2, 16), Kl = Math.pow(2, 9), Ns = Math.pow(2, 8), Hl = Math.pow(2, 1);
+ function ac(Y) {
+ if (Y.opacity === 0 && !Y.placed) return 0;
+ if (Y.opacity === 1 && Y.placed) return 4294967295;
+ var D = Y.placed ? 1 : 0, J = Math.floor(Y.opacity * 127);
+ return J * _a + D * Vu + J * Ol + D * xo + J * Kl + D * Ns + J * Hl + D;
+ }
+ var aa = 0, Oo = function(D) {
+ this._sortAcrossTiles = D.layout.get("symbol-z-order") !== "viewport-y" && D.layout.get("symbol-sort-key").constantOr(1) !== void 0, this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = [];
+ };
+ Oo.prototype.continuePlacement = function(D, J, q, K, de) {
+ for (var ne = this._bucketParts; this._currentTileIndex < D.length; ) {
+ var we = D[this._currentTileIndex];
+ if (J.getBucketParts(ne, K, we, this._sortAcrossTiles), this._currentTileIndex++, de()) return true;
+ }
+ for (this._sortAcrossTiles && (this._sortAcrossTiles = false, ne.sort(function(ft, Zt) {
+ return ft.sortKey - Zt.sortKey;
+ })); this._currentPartIndex < ne.length; ) {
+ var Ue = ne[this._currentPartIndex];
+ if (J.placeLayerBucketPart(Ue, this._seenCrossTileIDs, q), this._currentPartIndex++, de()) return true;
+ }
+ return false;
+ };
+ var qo = function(D, J, q, K, de, ne, we) {
+ this.placement = new bs(D, de, ne, we), this._currentPlacementIndex = J.length - 1, this._forceFullPlacement = q, this._showCollisionBoxes = K, this._done = false;
+ };
+ qo.prototype.isDone = function() {
+ return this._done;
+ }, qo.prototype.continuePlacement = function(D, J, q) {
+ for (var K = this, de = i.browser.now(), ne = function() {
+ var hr = i.browser.now() - de;
+ return K._forceFullPlacement ? false : hr > 2;
+ }; this._currentPlacementIndex >= 0; ) {
+ var we = D[this._currentPlacementIndex], Ue = J[we], ft = this.placement.collisionIndex.transform.zoom;
+ if (Ue.type === "symbol" && (!Ue.minzoom || Ue.minzoom <= ft) && (!Ue.maxzoom || Ue.maxzoom > ft)) {
+ this._inProgressLayer || (this._inProgressLayer = new Oo(Ue));
+ var Zt = this._inProgressLayer.continuePlacement(q[Ue.source], this.placement, this._showCollisionBoxes, Ue, ne);
+ if (Zt) return;
+ delete this._inProgressLayer;
+ }
+ this._currentPlacementIndex--;
+ }
+ this._done = true;
+ }, qo.prototype.commit = function(D) {
+ return this.placement.commit(D), this.placement;
+ };
+ var ql = 512 / i.EXTENT / 2, Pc = function(D, J, q) {
+ this.tileID = D, this.indexedSymbolInstances = {}, this.bucketInstanceId = q;
+ for (var K = 0; K < J.length; K++) {
+ var de = J.get(K), ne = de.key;
+ this.indexedSymbolInstances[ne] || (this.indexedSymbolInstances[ne] = []), this.indexedSymbolInstances[ne].push({ crossTileID: de.crossTileID, coord: this.getScaledCoordinates(de, D) });
+ }
+ };
+ Pc.prototype.getScaledCoordinates = function(D, J) {
+ var q = J.canonical.z - this.tileID.canonical.z, K = ql / Math.pow(2, q);
+ return { x: Math.floor((J.canonical.x * i.EXTENT + D.anchorX) * K), y: Math.floor((J.canonical.y * i.EXTENT + D.anchorY) * K) };
+ }, Pc.prototype.findMatches = function(D, J, q) {
+ for (var K = this.tileID.canonical.z < J.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - J.canonical.z), de = 0; de < D.length; de++) {
+ var ne = D.get(de);
+ if (!ne.crossTileID) {
+ var we = this.indexedSymbolInstances[ne.key];
+ if (we) for (var Ue = this.getScaledCoordinates(ne, J), ft = 0, Zt = we; ft < Zt.length; ft += 1) {
+ var hr = Zt[ft];
+ if (Math.abs(hr.coord.x - Ue.x) <= K && Math.abs(hr.coord.y - Ue.y) <= K && !q[hr.crossTileID]) {
+ q[hr.crossTileID] = true, ne.crossTileID = hr.crossTileID;
+ break;
+ }
+ }
+ }
+ }
+ };
+ var Do = function() {
+ this.maxCrossTileID = 0;
+ };
+ Do.prototype.generate = function() {
+ return ++this.maxCrossTileID;
+ };
+ var rf = function() {
+ this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0;
+ };
+ rf.prototype.handleWrapJump = function(D) {
+ var J = Math.round((D - this.lng) / 360);
+ if (J !== 0) for (var q in this.indexes) {
+ var K = this.indexes[q], de = {};
+ for (var ne in K) {
+ var we = K[ne];
+ we.tileID = we.tileID.unwrapTo(we.tileID.wrap + J), de[we.tileID.key] = we;
+ }
+ this.indexes[q] = de;
+ }
+ this.lng = D;
+ }, rf.prototype.addBucket = function(D, J, q) {
+ if (this.indexes[D.overscaledZ] && this.indexes[D.overscaledZ][D.key]) {
+ if (this.indexes[D.overscaledZ][D.key].bucketInstanceId === J.bucketInstanceId) return false;
+ this.removeBucketCrossTileIDs(D.overscaledZ, this.indexes[D.overscaledZ][D.key]);
+ }
+ for (var K = 0; K < J.symbolInstances.length; K++) {
+ var de = J.symbolInstances.get(K);
+ de.crossTileID = 0;
+ }
+ this.usedCrossTileIDs[D.overscaledZ] || (this.usedCrossTileIDs[D.overscaledZ] = {});
+ var ne = this.usedCrossTileIDs[D.overscaledZ];
+ for (var we in this.indexes) {
+ var Ue = this.indexes[we];
+ if (Number(we) > D.overscaledZ) for (var ft in Ue) {
+ var Zt = Ue[ft];
+ Zt.tileID.isChildOf(D) && Zt.findMatches(J.symbolInstances, D, ne);
+ }
+ else {
+ var hr = D.scaledTo(Number(we)), qt = Ue[hr.key];
+ qt && qt.findMatches(J.symbolInstances, D, ne);
+ }
+ }
+ for (var Ve = 0; Ve < J.symbolInstances.length; Ve++) {
+ var Qe = J.symbolInstances.get(Ve);
+ Qe.crossTileID || (Qe.crossTileID = q.generate(), ne[Qe.crossTileID] = true);
+ }
+ return this.indexes[D.overscaledZ] === void 0 && (this.indexes[D.overscaledZ] = {}), this.indexes[D.overscaledZ][D.key] = new Pc(D, J.symbolInstances, J.bucketInstanceId), true;
+ }, rf.prototype.removeBucketCrossTileIDs = function(D, J) {
+ for (var q in J.indexedSymbolInstances) for (var K = 0, de = J.indexedSymbolInstances[q]; K < de.length; K += 1) {
+ var ne = de[K];
+ delete this.usedCrossTileIDs[D][ne.crossTileID];
+ }
+ }, rf.prototype.removeStaleBuckets = function(D) {
+ var J = false;
+ for (var q in this.indexes) {
+ var K = this.indexes[q];
+ for (var de in K) D[K[de].bucketInstanceId] || (this.removeBucketCrossTileIDs(q, K[de]), delete K[de], J = true);
+ }
+ return J;
+ };
+ var Vf = function() {
+ this.layerIndexes = {}, this.crossTileIDs = new Do(), this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {};
+ };
+ Vf.prototype.addLayer = function(D, J, q) {
+ var K = this.layerIndexes[D.id];
+ K === void 0 && (K = this.layerIndexes[D.id] = new rf());
+ var de = false, ne = {};
+ K.handleWrapJump(q);
+ for (var we = 0, Ue = J; we < Ue.length; we += 1) {
+ var ft = Ue[we], Zt = ft.getBucket(D);
+ !Zt || D.id !== Zt.layerIds[0] || (Zt.bucketInstanceId || (Zt.bucketInstanceId = ++this.maxBucketInstanceId), K.addBucket(ft.tileID, Zt, this.crossTileIDs) && (de = true), ne[Zt.bucketInstanceId] = true);
+ }
+ return K.removeStaleBuckets(ne) && (de = true), de;
+ }, Vf.prototype.pruneUnusedLayers = function(D) {
+ var J = {};
+ D.forEach(function(K) {
+ J[K] = true;
+ });
+ for (var q in this.layerIndexes) J[q] || delete this.layerIndexes[q];
+ };
+ var pl = function(Y, D) {
+ return i.emitValidationErrors(Y, D && D.filter(function(J) {
+ return J.identifier !== "source.canvas";
+ }));
+ }, Zc = i.pick(da, ["addLayer", "removeLayer", "setPaintProperty", "setLayoutProperty", "setFilter", "addSource", "removeSource", "setLayerZoomRange", "setLight", "setTransition", "setGeoJSONSourceData"]), Jl = i.pick(da, ["setCenter", "setZoom", "setBearing", "setPitch"]), Os = Xo(), yu = function(Y) {
+ function D(J, q) {
+ var K = this;
+ q === void 0 && (q = {}), Y.call(this), this.map = J, this.dispatcher = new Z(Ba(), this), this.imageManager = new k(), this.imageManager.setEventedParent(this), this.glyphManager = new P(J._requestManager, q.localIdeographFontFamily), this.lineAtlas = new G(256, 512), this.crossTileSymbolIndex = new Vf(), this._layers = {}, this._serializedLayers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new i.ZoomHistory(), this._loaded = false, this._availableImages = [], this._resetUpdates(), this.dispatcher.broadcast("setReferrer", i.getReferrer());
+ var de = this;
+ this._rtlTextPluginCallback = D.registerForPluginStateChange(function(ne) {
+ var we = { pluginStatus: ne.pluginStatus, pluginURL: ne.pluginURL };
+ de.dispatcher.broadcast("syncRTLPluginState", we, function(Ue, ft) {
+ if (i.triggerPluginCompletionEvent(Ue), ft) {
+ var Zt = ft.every(function(qt) {
+ return qt;
+ });
+ if (Zt) for (var hr in de.sourceCaches) de.sourceCaches[hr].reload();
+ }
+ });
+ }), this.on("data", function(ne) {
+ if (!(ne.dataType !== "source" || ne.sourceDataType !== "metadata")) {
+ var we = K.sourceCaches[ne.sourceId];
+ if (we) {
+ var Ue = we.getSource();
+ if (!(!Ue || !Ue.vectorLayerIds)) for (var ft in K._layers) {
+ var Zt = K._layers[ft];
+ Zt.source === Ue.id && K._validateLayer(Zt);
+ }
+ }
+ }
+ });
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.loadURL = function(q, K) {
+ var de = this;
+ K === void 0 && (K = {}), this.fire(new i.Event("dataloading", { dataType: "style" }));
+ var ne = typeof K.validate == "boolean" ? K.validate : !i.isMapboxURL(q);
+ q = this.map._requestManager.normalizeStyleURL(q, K.accessToken);
+ var we = this.map._requestManager.transformRequest(q, i.ResourceType.Style);
+ this._request = i.getJSON(we, function(Ue, ft) {
+ de._request = null, Ue ? de.fire(new i.ErrorEvent(Ue)) : ft && de._load(ft, ne);
+ });
+ }, D.prototype.loadJSON = function(q, K) {
+ var de = this;
+ K === void 0 && (K = {}), this.fire(new i.Event("dataloading", { dataType: "style" })), this._request = i.browser.frame(function() {
+ de._request = null, de._load(q, K.validate !== false);
+ });
+ }, D.prototype.loadEmpty = function() {
+ this.fire(new i.Event("dataloading", { dataType: "style" })), this._load(Os, false);
+ }, D.prototype._load = function(q, K) {
+ if (!(K && pl(this, i.validateStyle(q)))) {
+ this._loaded = true, this.stylesheet = q;
+ for (var de in q.sources) this.addSource(de, q.sources[de], { validate: false });
+ q.sprite ? this._loadSprite(q.sprite) : this.imageManager.setLoaded(true), this.glyphManager.setURL(q.glyphs);
+ var ne = Fa(this.stylesheet.layers);
+ this._order = ne.map(function(Zt) {
+ return Zt.id;
+ }), this._layers = {}, this._serializedLayers = {};
+ for (var we = 0, Ue = ne; we < Ue.length; we += 1) {
+ var ft = Ue[we];
+ ft = i.createStyleLayer(ft), ft.setEventedParent(this, { layer: { id: ft.id } }), this._layers[ft.id] = ft, this._serializedLayers[ft.id] = ft.serialize();
+ }
+ this.dispatcher.broadcast("setLayers", this._serializeLayers(this._order)), this.light = new U(this.stylesheet.light), this.fire(new i.Event("data", { dataType: "style" })), this.fire(new i.Event("style.load"));
+ }
+ }, D.prototype._loadSprite = function(q) {
+ var K = this;
+ this._spriteRequest = _(q, this.map._requestManager, function(de, ne) {
+ if (K._spriteRequest = null, de) K.fire(new i.ErrorEvent(de));
+ else if (ne) for (var we in ne) K.imageManager.addImage(we, ne[we]);
+ K.imageManager.setLoaded(true), K._availableImages = K.imageManager.listImages(), K.dispatcher.broadcast("setImages", K._availableImages), K.fire(new i.Event("data", { dataType: "style" }));
+ });
+ }, D.prototype._validateLayer = function(q) {
+ var K = this.sourceCaches[q.source];
+ if (K) {
+ var de = q.sourceLayer;
+ if (de) {
+ var ne = K.getSource();
+ (ne.type === "geojson" || ne.vectorLayerIds && ne.vectorLayerIds.indexOf(de) === -1) && this.fire(new i.ErrorEvent(new Error('Source layer "' + de + '" does not exist on source "' + ne.id + '" as specified by style layer "' + q.id + '"')));
+ }
+ }
+ }, D.prototype.loaded = function() {
+ if (!this._loaded || Object.keys(this._updatedSources).length) return false;
+ for (var q in this.sourceCaches) if (!this.sourceCaches[q].loaded()) return false;
+ return !!this.imageManager.isLoaded();
+ }, D.prototype._serializeLayers = function(q) {
+ for (var K = [], de = 0, ne = q; de < ne.length; de += 1) {
+ var we = ne[de], Ue = this._layers[we];
+ Ue.type !== "custom" && K.push(Ue.serialize());
+ }
+ return K;
+ }, D.prototype.hasTransitions = function() {
+ if (this.light && this.light.hasTransition()) return true;
+ for (var q in this.sourceCaches) if (this.sourceCaches[q].hasTransition()) return true;
+ for (var K in this._layers) if (this._layers[K].hasTransition()) return true;
+ return false;
+ }, D.prototype._checkLoaded = function() {
+ if (!this._loaded) throw new Error("Style is not done loading");
+ }, D.prototype.update = function(q) {
+ if (this._loaded) {
+ var K = this._changed;
+ if (this._changed) {
+ var de = Object.keys(this._updatedLayers), ne = Object.keys(this._removedLayers);
+ (de.length || ne.length) && this._updateWorkerLayers(de, ne);
+ for (var we in this._updatedSources) {
+ var Ue = this._updatedSources[we];
+ Ue === "reload" ? this._reloadSource(we) : Ue === "clear" && this._clearSource(we);
+ }
+ this._updateTilesForChangedImages();
+ for (var ft in this._updatedPaintProps) this._layers[ft].updateTransitions(q);
+ this.light.updateTransitions(q), this._resetUpdates();
+ }
+ var Zt = {};
+ for (var hr in this.sourceCaches) {
+ var qt = this.sourceCaches[hr];
+ Zt[hr] = qt.used, qt.used = false;
+ }
+ for (var Ve = 0, Qe = this._order; Ve < Qe.length; Ve += 1) {
+ var at = Qe[Ve], Ct = this._layers[at];
+ Ct.recalculate(q, this._availableImages), !Ct.isHidden(q.zoom) && Ct.source && (this.sourceCaches[Ct.source].used = true);
+ }
+ for (var Ot in Zt) {
+ var Rt = this.sourceCaches[Ot];
+ Zt[Ot] !== Rt.used && Rt.fire(new i.Event("data", { sourceDataType: "visibility", dataType: "source", sourceId: Ot }));
+ }
+ this.light.recalculate(q), this.z = q.zoom, K && this.fire(new i.Event("data", { dataType: "style" }));
+ }
+ }, D.prototype._updateTilesForChangedImages = function() {
+ var q = Object.keys(this._changedImages);
+ if (q.length) {
+ for (var K in this.sourceCaches) this.sourceCaches[K].reloadTilesForDependencies(["icons", "patterns"], q);
+ this._changedImages = {};
+ }
+ }, D.prototype._updateWorkerLayers = function(q, K) {
+ this.dispatcher.broadcast("updateLayers", { layers: this._serializeLayers(q), removedIds: K });
+ }, D.prototype._resetUpdates = function() {
+ this._changed = false, this._updatedLayers = {}, this._removedLayers = {}, this._updatedSources = {}, this._updatedPaintProps = {}, this._changedImages = {};
+ }, D.prototype.setState = function(q) {
+ var K = this;
+ if (this._checkLoaded(), pl(this, i.validateStyle(q))) return false;
+ q = i.clone$1(q), q.layers = Fa(q.layers);
+ var de = An(this.serialize(), q).filter(function(we) {
+ return !(we.command in Jl);
+ });
+ if (de.length === 0) return false;
+ var ne = de.filter(function(we) {
+ return !(we.command in Zc);
+ });
+ if (ne.length > 0) throw new Error("Unimplemented: " + ne.map(function(we) {
+ return we.command;
+ }).join(", ") + ".");
+ return de.forEach(function(we) {
+ we.command !== "setTransition" && K[we.command].apply(K, we.args);
+ }), this.stylesheet = q, true;
+ }, D.prototype.addImage = function(q, K) {
+ if (this.getImage(q)) return this.fire(new i.ErrorEvent(new Error("An image with this name already exists.")));
+ this.imageManager.addImage(q, K), this._afterImageUpdated(q);
+ }, D.prototype.updateImage = function(q, K) {
+ this.imageManager.updateImage(q, K);
+ }, D.prototype.getImage = function(q) {
+ return this.imageManager.getImage(q);
+ }, D.prototype.removeImage = function(q) {
+ if (!this.getImage(q)) return this.fire(new i.ErrorEvent(new Error("No image with this name exists.")));
+ this.imageManager.removeImage(q), this._afterImageUpdated(q);
+ }, D.prototype._afterImageUpdated = function(q) {
+ this._availableImages = this.imageManager.listImages(), this._changedImages[q] = true, this._changed = true, this.dispatcher.broadcast("setImages", this._availableImages), this.fire(new i.Event("data", { dataType: "style" }));
+ }, D.prototype.listImages = function() {
+ return this._checkLoaded(), this.imageManager.listImages();
+ }, D.prototype.addSource = function(q, K, de) {
+ var ne = this;
+ if (de === void 0 && (de = {}), this._checkLoaded(), this.sourceCaches[q] !== void 0) throw new Error("There is already a source with this ID");
+ if (!K.type) throw new Error("The type property must be defined, but only the following properties were given: " + Object.keys(K).join(", ") + ".");
+ var we = ["vector", "raster", "geojson", "video", "image"], Ue = we.indexOf(K.type) >= 0;
+ if (!(Ue && this._validate(i.validateStyle.source, "sources." + q, K, null, de))) {
+ this.map && this.map._collectResourceTiming && (K.collectResourceTiming = true);
+ var ft = this.sourceCaches[q] = new ri(q, K, this.dispatcher);
+ ft.style = this, ft.setEventedParent(this, function() {
+ return { isSourceLoaded: ne.loaded(), source: ft.serialize(), sourceId: q };
+ }), ft.onAdd(this.map), this._changed = true;
+ }
+ }, D.prototype.removeSource = function(q) {
+ if (this._checkLoaded(), this.sourceCaches[q] === void 0) throw new Error("There is no source with this ID");
+ for (var K in this._layers) if (this._layers[K].source === q) return this.fire(new i.ErrorEvent(new Error('Source "' + q + '" cannot be removed while layer "' + K + '" is using it.')));
+ var de = this.sourceCaches[q];
+ delete this.sourceCaches[q], delete this._updatedSources[q], de.fire(new i.Event("data", { sourceDataType: "metadata", dataType: "source", sourceId: q })), de.setEventedParent(null), de.clearTiles(), de.onRemove && de.onRemove(this.map), this._changed = true;
+ }, D.prototype.setGeoJSONSourceData = function(q, K) {
+ this._checkLoaded();
+ var de = this.sourceCaches[q].getSource();
+ de.setData(K), this._changed = true;
+ }, D.prototype.getSource = function(q) {
+ return this.sourceCaches[q] && this.sourceCaches[q].getSource();
+ }, D.prototype.addLayer = function(q, K, de) {
+ de === void 0 && (de = {}), this._checkLoaded();
+ var ne = q.id;
+ if (this.getLayer(ne)) {
+ this.fire(new i.ErrorEvent(new Error('Layer with id "' + ne + '" already exists on this map')));
+ return;
+ }
+ var we;
+ if (q.type === "custom") {
+ if (pl(this, i.validateCustomStyleLayer(q))) return;
+ we = i.createStyleLayer(q);
+ } else {
+ if (typeof q.source == "object" && (this.addSource(ne, q.source), q = i.clone$1(q), q = i.extend(q, { source: ne })), this._validate(i.validateStyle.layer, "layers." + ne, q, { arrayIndex: -1 }, de)) return;
+ we = i.createStyleLayer(q), this._validateLayer(we), we.setEventedParent(this, { layer: { id: ne } }), this._serializedLayers[we.id] = we.serialize();
+ }
+ var Ue = K ? this._order.indexOf(K) : this._order.length;
+ if (K && Ue === -1) {
+ this.fire(new i.ErrorEvent(new Error('Layer with id "' + K + '" does not exist on this map.')));
+ return;
+ }
+ if (this._order.splice(Ue, 0, ne), this._layerOrderChanged = true, this._layers[ne] = we, this._removedLayers[ne] && we.source && we.type !== "custom") {
+ var ft = this._removedLayers[ne];
+ delete this._removedLayers[ne], ft.type !== we.type ? this._updatedSources[we.source] = "clear" : (this._updatedSources[we.source] = "reload", this.sourceCaches[we.source].pause());
+ }
+ this._updateLayer(we), we.onAdd && we.onAdd(this.map);
+ }, D.prototype.moveLayer = function(q, K) {
+ this._checkLoaded(), this._changed = true;
+ var de = this._layers[q];
+ if (!de) {
+ this.fire(new i.ErrorEvent(new Error("The layer '" + q + "' does not exist in the map's style and cannot be moved.")));
+ return;
+ }
+ if (q !== K) {
+ var ne = this._order.indexOf(q);
+ this._order.splice(ne, 1);
+ var we = K ? this._order.indexOf(K) : this._order.length;
+ if (K && we === -1) {
+ this.fire(new i.ErrorEvent(new Error('Layer with id "' + K + '" does not exist on this map.')));
+ return;
+ }
+ this._order.splice(we, 0, q), this._layerOrderChanged = true;
+ }
+ }, D.prototype.removeLayer = function(q) {
+ this._checkLoaded();
+ var K = this._layers[q];
+ if (!K) {
+ this.fire(new i.ErrorEvent(new Error("The layer '" + q + "' does not exist in the map's style and cannot be removed.")));
+ return;
+ }
+ K.setEventedParent(null);
+ var de = this._order.indexOf(q);
+ this._order.splice(de, 1), this._layerOrderChanged = true, this._changed = true, this._removedLayers[q] = K, delete this._layers[q], delete this._serializedLayers[q], delete this._updatedLayers[q], delete this._updatedPaintProps[q], K.onRemove && K.onRemove(this.map);
+ }, D.prototype.getLayer = function(q) {
+ return this._layers[q];
+ }, D.prototype.hasLayer = function(q) {
+ return q in this._layers;
+ }, D.prototype.setLayerZoomRange = function(q, K, de) {
+ this._checkLoaded();
+ var ne = this.getLayer(q);
+ if (!ne) {
+ this.fire(new i.ErrorEvent(new Error("The layer '" + q + "' does not exist in the map's style and cannot have zoom extent.")));
+ return;
+ }
+ ne.minzoom === K && ne.maxzoom === de || (K != null && (ne.minzoom = K), de != null && (ne.maxzoom = de), this._updateLayer(ne));
+ }, D.prototype.setFilter = function(q, K, de) {
+ de === void 0 && (de = {}), this._checkLoaded();
+ var ne = this.getLayer(q);
+ if (!ne) {
+ this.fire(new i.ErrorEvent(new Error("The layer '" + q + "' does not exist in the map's style and cannot be filtered.")));
+ return;
+ }
+ if (!i.deepEqual(ne.filter, K)) {
+ if (K == null) {
+ ne.filter = void 0, this._updateLayer(ne);
+ return;
+ }
+ this._validate(i.validateStyle.filter, "layers." + ne.id + ".filter", K, null, de) || (ne.filter = i.clone$1(K), this._updateLayer(ne));
+ }
+ }, D.prototype.getFilter = function(q) {
+ return i.clone$1(this.getLayer(q).filter);
+ }, D.prototype.setLayoutProperty = function(q, K, de, ne) {
+ ne === void 0 && (ne = {}), this._checkLoaded();
+ var we = this.getLayer(q);
+ if (!we) {
+ this.fire(new i.ErrorEvent(new Error("The layer '" + q + "' does not exist in the map's style and cannot be styled.")));
+ return;
+ }
+ i.deepEqual(we.getLayoutProperty(K), de) || (we.setLayoutProperty(K, de, ne), this._updateLayer(we));
+ }, D.prototype.getLayoutProperty = function(q, K) {
+ var de = this.getLayer(q);
+ if (!de) {
+ this.fire(new i.ErrorEvent(new Error("The layer '" + q + "' does not exist in the map's style.")));
+ return;
+ }
+ return de.getLayoutProperty(K);
+ }, D.prototype.setPaintProperty = function(q, K, de, ne) {
+ ne === void 0 && (ne = {}), this._checkLoaded();
+ var we = this.getLayer(q);
+ if (!we) {
+ this.fire(new i.ErrorEvent(new Error("The layer '" + q + "' does not exist in the map's style and cannot be styled.")));
+ return;
+ }
+ if (!i.deepEqual(we.getPaintProperty(K), de)) {
+ var Ue = we.setPaintProperty(K, de, ne);
+ Ue && this._updateLayer(we), this._changed = true, this._updatedPaintProps[q] = true;
+ }
+ }, D.prototype.getPaintProperty = function(q, K) {
+ return this.getLayer(q).getPaintProperty(K);
+ }, D.prototype.setFeatureState = function(q, K) {
+ this._checkLoaded();
+ var de = q.source, ne = q.sourceLayer, we = this.sourceCaches[de];
+ if (we === void 0) {
+ this.fire(new i.ErrorEvent(new Error("The source '" + de + "' does not exist in the map's style.")));
+ return;
+ }
+ var Ue = we.getSource().type;
+ if (Ue === "geojson" && ne) {
+ this.fire(new i.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));
+ return;
+ }
+ if (Ue === "vector" && !ne) {
+ this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));
+ return;
+ }
+ q.id === void 0 && this.fire(new i.ErrorEvent(new Error("The feature id parameter must be provided."))), we.setFeatureState(ne, q.id, K);
+ }, D.prototype.removeFeatureState = function(q, K) {
+ this._checkLoaded();
+ var de = q.source, ne = this.sourceCaches[de];
+ if (ne === void 0) {
+ this.fire(new i.ErrorEvent(new Error("The source '" + de + "' does not exist in the map's style.")));
+ return;
+ }
+ var we = ne.getSource().type, Ue = we === "vector" ? q.sourceLayer : void 0;
+ if (we === "vector" && !Ue) {
+ this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));
+ return;
+ }
+ if (K && typeof q.id != "string" && typeof q.id != "number") {
+ this.fire(new i.ErrorEvent(new Error("A feature id is required to remove its specific state property.")));
+ return;
+ }
+ ne.removeFeatureState(Ue, q.id, K);
+ }, D.prototype.getFeatureState = function(q) {
+ this._checkLoaded();
+ var K = q.source, de = q.sourceLayer, ne = this.sourceCaches[K];
+ if (ne === void 0) {
+ this.fire(new i.ErrorEvent(new Error("The source '" + K + "' does not exist in the map's style.")));
+ return;
+ }
+ var we = ne.getSource().type;
+ if (we === "vector" && !de) {
+ this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));
+ return;
+ }
+ return q.id === void 0 && this.fire(new i.ErrorEvent(new Error("The feature id parameter must be provided."))), ne.getFeatureState(de, q.id);
+ }, D.prototype.getTransition = function() {
+ return i.extend({ duration: 300, delay: 0 }, this.stylesheet && this.stylesheet.transition);
+ }, D.prototype.serialize = function() {
+ return i.filterObject({ version: this.stylesheet.version, name: this.stylesheet.name, metadata: this.stylesheet.metadata, light: this.stylesheet.light, center: this.stylesheet.center, zoom: this.stylesheet.zoom, bearing: this.stylesheet.bearing, pitch: this.stylesheet.pitch, sprite: this.stylesheet.sprite, glyphs: this.stylesheet.glyphs, transition: this.stylesheet.transition, sources: i.mapObject(this.sourceCaches, function(q) {
+ return q.serialize();
+ }), layers: this._serializeLayers(this._order) }, function(q) {
+ return q !== void 0;
+ });
+ }, D.prototype._updateLayer = function(q) {
+ this._updatedLayers[q.id] = true, q.source && !this._updatedSources[q.source] && this.sourceCaches[q.source].getSource().type !== "raster" && (this._updatedSources[q.source] = "reload", this.sourceCaches[q.source].pause()), this._changed = true;
+ }, D.prototype._flattenAndSortRenderedFeatures = function(q) {
+ for (var K = this, de = function(Ti) {
+ return K._layers[Ti].type === "fill-extrusion";
+ }, ne = {}, we = [], Ue = this._order.length - 1; Ue >= 0; Ue--) {
+ var ft = this._order[Ue];
+ if (de(ft)) {
+ ne[ft] = Ue;
+ for (var Zt = 0, hr = q; Zt < hr.length; Zt += 1) {
+ var qt = hr[Zt], Ve = qt[ft];
+ if (Ve) for (var Qe = 0, at = Ve; Qe < at.length; Qe += 1) {
+ var Ct = at[Qe];
+ we.push(Ct);
+ }
+ }
+ }
+ }
+ we.sort(function(Ti, gn) {
+ return gn.intersectionZ - Ti.intersectionZ;
+ });
+ for (var Ot = [], Rt = this._order.length - 1; Rt >= 0; Rt--) {
+ var Bt = this._order[Rt];
+ if (de(Bt)) for (var Dt = we.length - 1; Dt >= 0; Dt--) {
+ var yt = we[Dt].feature;
+ if (ne[yt.layer.id] < Rt) break;
+ Ot.push(yt), we.pop();
+ }
+ else for (var Pt = 0, ht = q; Pt < ht.length; Pt += 1) {
+ var ur = ht[Pt], br = ur[Bt];
+ if (br) for (var Ur = 0, Di = br; Ur < Di.length; Ur += 1) {
+ var fi = Di[Ur];
+ Ot.push(fi.feature);
+ }
+ }
+ }
+ return Ot;
+ }, D.prototype.queryRenderedFeatures = function(q, K, de) {
+ K && K.filter && this._validate(i.validateStyle.filter, "queryRenderedFeatures.filter", K.filter, null, K);
+ var ne = {};
+ if (K && K.layers) {
+ if (!Array.isArray(K.layers)) return this.fire(new i.ErrorEvent(new Error("parameters.layers must be an Array."))), [];
+ for (var we = 0, Ue = K.layers; we < Ue.length; we += 1) {
+ var ft = Ue[we], Zt = this._layers[ft];
+ if (!Zt) return this.fire(new i.ErrorEvent(new Error("The layer '" + ft + "' does not exist in the map's style and cannot be queried for features."))), [];
+ ne[Zt.source] = true;
+ }
+ }
+ var hr = [];
+ K.availableImages = this._availableImages;
+ for (var qt in this.sourceCaches) K.layers && !ne[qt] || hr.push(ce(this.sourceCaches[qt], this._layers, this._serializedLayers, q, K, de));
+ return this.placement && hr.push(je(this._layers, this._serializedLayers, this.sourceCaches, q, K, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(hr);
+ }, D.prototype.querySourceFeatures = function(q, K) {
+ K && K.filter && this._validate(i.validateStyle.filter, "querySourceFeatures.filter", K.filter, null, K);
+ var de = this.sourceCaches[q];
+ return de ? lt(de, K) : [];
+ }, D.prototype.addSourceType = function(q, K, de) {
+ if (D.getSourceType(q)) return de(new Error('A source type called "' + q + '" already exists.'));
+ if (D.setSourceType(q, K), !K.workerSourceURL) return de(null, null);
+ this.dispatcher.broadcast("loadWorkerSource", { name: q, url: K.workerSourceURL }, de);
+ }, D.prototype.getLight = function() {
+ return this.light.getLight();
+ }, D.prototype.setLight = function(q, K) {
+ K === void 0 && (K = {}), this._checkLoaded();
+ var de = this.light.getLight(), ne = false;
+ for (var we in q) if (!i.deepEqual(q[we], de[we])) {
+ ne = true;
+ break;
+ }
+ if (ne) {
+ var Ue = { now: i.browser.now(), transition: i.extend({ duration: 300, delay: 0 }, this.stylesheet.transition) };
+ this.light.setLight(q, K), this.light.updateTransitions(Ue);
+ }
+ }, D.prototype._validate = function(q, K, de, ne, we) {
+ return we === void 0 && (we = {}), we && we.validate === false ? false : pl(this, q.call(i.validateStyle, i.extend({ key: K, style: this.serialize(), value: de, styleSpec: i.styleSpec }, ne)));
+ }, D.prototype._remove = function() {
+ this._request && (this._request.cancel(), this._request = null), this._spriteRequest && (this._spriteRequest.cancel(), this._spriteRequest = null), i.evented.off("pluginStateChange", this._rtlTextPluginCallback);
+ for (var q in this._layers) {
+ var K = this._layers[q];
+ K.setEventedParent(null);
+ }
+ for (var de in this.sourceCaches) this.sourceCaches[de].clearTiles(), this.sourceCaches[de].setEventedParent(null);
+ this.imageManager.setEventedParent(null), this.setEventedParent(null), this.dispatcher.remove();
+ }, D.prototype._clearSource = function(q) {
+ this.sourceCaches[q].clearTiles();
+ }, D.prototype._reloadSource = function(q) {
+ this.sourceCaches[q].resume(), this.sourceCaches[q].reload();
+ }, D.prototype._updateSources = function(q) {
+ for (var K in this.sourceCaches) this.sourceCaches[K].update(q);
+ }, D.prototype._generateCollisionBoxes = function() {
+ for (var q in this.sourceCaches) this._reloadSource(q);
+ }, D.prototype._updatePlacement = function(q, K, de, ne, we) {
+ we === void 0 && (we = false);
+ for (var Ue = false, ft = false, Zt = {}, hr = 0, qt = this._order; hr < qt.length; hr += 1) {
+ var Ve = qt[hr], Qe = this._layers[Ve];
+ if (Qe.type === "symbol") {
+ if (!Zt[Qe.source]) {
+ var at = this.sourceCaches[Qe.source];
+ Zt[Qe.source] = at.getRenderableIds(true).map(function(Pt) {
+ return at.getTileByID(Pt);
+ }).sort(function(Pt, ht) {
+ return ht.tileID.overscaledZ - Pt.tileID.overscaledZ || (Pt.tileID.isLessThan(ht.tileID) ? -1 : 1);
+ });
+ }
+ var Ct = this.crossTileSymbolIndex.addLayer(Qe, Zt[Qe.source], q.center.lng);
+ Ue = Ue || Ct;
+ }
+ }
+ if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), we = we || this._layerOrderChanged || de === 0, (we || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(i.browser.now(), q.zoom)) && (this.pauseablePlacement = new qo(q, this._order, we, K, de, ne, this.placement), this._layerOrderChanged = false), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, Zt), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(i.browser.now()), ft = true), Ue && this.pauseablePlacement.placement.setStale()), ft || Ue) for (var Ot = 0, Rt = this._order; Ot < Rt.length; Ot += 1) {
+ var Bt = Rt[Ot], Dt = this._layers[Bt];
+ Dt.type === "symbol" && this.placement.updateLayerOpacities(Dt, Zt[Dt.source]);
+ }
+ var yt = !this.pauseablePlacement.isDone() || this.placement.hasTransitions(i.browser.now());
+ return yt;
+ }, D.prototype._releaseSymbolFadeTiles = function() {
+ for (var q in this.sourceCaches) this.sourceCaches[q].releaseSymbolFadeTiles();
+ }, D.prototype.getImages = function(q, K, de) {
+ this.imageManager.getImages(K.icons, de), this._updateTilesForChangedImages();
+ var ne = this.sourceCaches[K.source];
+ ne && ne.setDependencies(K.tileID.key, K.type, K.icons);
+ }, D.prototype.getGlyphs = function(q, K, de) {
+ this.glyphManager.getGlyphs(K.stacks, de);
+ }, D.prototype.getResource = function(q, K, de) {
+ return i.makeRequest(K, de);
+ }, D;
+ }(i.Evented);
+ yu.getSourceType = Be, yu.setSourceType = Pe, yu.registerForPluginStateChange = i.registerForPluginStateChange;
+ var oc = i.createLayout([{ name: "a_pos", type: "Int16", components: 2 }]), Cf = `#ifdef GL_ES
+precision mediump float;
+#else
+#if !defined(lowp)
+#define lowp
+#endif
+#if !defined(mediump)
+#define mediump
+#endif
+#if !defined(highp)
+#define highp
+#endif
+#endif`, sc = `#ifdef GL_ES
+precision highp float;
+#else
+#if !defined(lowp)
+#define lowp
+#endif
+#if !defined(mediump)
+#define mediump
+#endif
+#if !defined(highp)
+#define highp
+#endif
+#endif
+vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
+);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}`, jh = `uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Lf = "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}", cs = `uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, nf = "uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}", Gf = `varying vec3 v_data;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define mediump float radius
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define highp vec4 stroke_color
+#pragma mapbox: define mediump float stroke_width
+#pragma mapbox: define lowp float stroke_opacity
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize mediump float radius
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize highp vec4 stroke_color
+#pragma mapbox: initialize mediump float stroke_width
+#pragma mapbox: initialize lowp float stroke_opacity
+vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, $l = `uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define mediump float radius
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define highp vec4 stroke_color
+#pragma mapbox: define mediump float stroke_width
+#pragma mapbox: define lowp float stroke_opacity
+void main(void) {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize mediump float radius
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize highp vec4 stroke_color
+#pragma mapbox: initialize mediump float stroke_width
+#pragma mapbox: initialize lowp float stroke_opacity
+vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`, fl = "void main() {gl_FragColor=vec4(1.0);}", lc = "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}", Fu = `uniform highp float u_intensity;varying vec2 v_extrude;
+#pragma mapbox: define highp float weight
+#define GAUSS_COEF 0.3989422804014327
+void main() {
+#pragma mapbox: initialize highp float weight
+float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Es = `uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;
+#pragma mapbox: define highp float weight
+#pragma mapbox: define mediump float radius
+const highp float ZERO=1.0/255.0/16.0;
+#define GAUSS_COEF 0.3989422804014327
+void main(void) {
+#pragma mapbox: initialize highp float weight
+#pragma mapbox: initialize mediump float radius
+vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`, Hs = `uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(0.0);
+#endif
+}`, Go = "uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}", ps = "varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}", uc = "attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}", xl = "varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}", Gu = "attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}", qs = "uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}", od = "attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}", Po = `#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float opacity
+gl_FragColor=color*opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, sd = `attribute vec2 a_pos;uniform mat4 u_matrix;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float opacity
+gl_Position=u_matrix*vec4(a_pos,0,1);}`, Ko = `varying vec2 v_pos;
+#pragma mapbox: define highp vec4 outline_color
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 outline_color
+#pragma mapbox: initialize lowp float opacity
+float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Pa = `attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;
+#pragma mapbox: define highp vec4 outline_color
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 outline_color
+#pragma mapbox: initialize lowp float opacity
+gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`, af = `uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+void main() {
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Hu = `uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`, bl = `uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+void main() {
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Hf = `uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`, Ic = `varying vec4 v_color;void main() {gl_FragColor=v_color;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, yf = `uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;
+#pragma mapbox: define highp float base
+#pragma mapbox: define highp float height
+#pragma mapbox: define highp vec4 color
+void main() {
+#pragma mapbox: initialize highp float base
+#pragma mapbox: initialize highp float height
+#pragma mapbox: initialize highp vec4 color
+vec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`, Bl = `uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;
+#pragma mapbox: define lowp float base
+#pragma mapbox: define lowp float height
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float base
+#pragma mapbox: initialize lowp float height
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Ah = `uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;
+#pragma mapbox: define lowp float base
+#pragma mapbox: define lowp float height
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float base
+#pragma mapbox: initialize lowp float height
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0
+? a_pos
+: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`, Qf = `#ifdef GL_ES
+precision highp float;
+#endif
+uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, _f = "uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}", Yc = `uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;
+#define PI 3.141592653589793
+void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, eh = "uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}", th = `uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, ju = `
+#define scale 0.015873016
+attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define mediump float gapwidth
+#pragma mapbox: define lowp float offset
+#pragma mapbox: define mediump float width
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump float gapwidth
+#pragma mapbox: initialize lowp float offset
+#pragma mapbox: initialize mediump float width
+float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`, jf = `uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, cc = `
+#define scale 0.015873016
+attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define mediump float gapwidth
+#pragma mapbox: define lowp float offset
+#pragma mapbox: define mediump float width
+void main() {
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump float gapwidth
+#pragma mapbox: initialize lowp float offset
+#pragma mapbox: initialize mediump float width
+float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`, of = `uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Nl = `
+#define scale 0.015873016
+#define LINE_DISTANCE_SCALE 2.0
+attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float offset
+#pragma mapbox: define mediump float gapwidth
+#pragma mapbox: define mediump float width
+#pragma mapbox: define lowp float floorwidth
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float offset
+#pragma mapbox: initialize mediump float gapwidth
+#pragma mapbox: initialize mediump float width
+#pragma mapbox: initialize lowp float floorwidth
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`, Kc = `uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define mediump float width
+#pragma mapbox: define lowp float floorwidth
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump float width
+#pragma mapbox: initialize lowp float floorwidth
+float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Rc = `
+#define scale 0.015873016
+#define LINE_DISTANCE_SCALE 2.0
+attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define mediump float gapwidth
+#pragma mapbox: define lowp float offset
+#pragma mapbox: define mediump float width
+#pragma mapbox: define lowp float floorwidth
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump float gapwidth
+#pragma mapbox: initialize lowp float offset
+#pragma mapbox: initialize mediump float width
+#pragma mapbox: initialize lowp float floorwidth
+float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`, gs = `uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Wf = "uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}", Wh = `uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize lowp float opacity
+lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, rh = `const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize lowp float opacity
+vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
+camera_to_anchor_distance/u_camera_to_center_distance :
+u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}`, sf = `#define SDF_PX 8.0
+uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;
+#pragma mapbox: define highp vec4 fill_color
+#pragma mapbox: define highp vec4 halo_color
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float halo_width
+#pragma mapbox: define lowp float halo_blur
+void main() {
+#pragma mapbox: initialize highp vec4 fill_color
+#pragma mapbox: initialize highp vec4 halo_color
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float halo_width
+#pragma mapbox: initialize lowp float halo_blur
+float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, Sh = `const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;
+#pragma mapbox: define highp vec4 fill_color
+#pragma mapbox: define highp vec4 halo_color
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float halo_width
+#pragma mapbox: define lowp float halo_blur
+void main() {
+#pragma mapbox: initialize highp vec4 fill_color
+#pragma mapbox: initialize highp vec4 halo_color
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float halo_width
+#pragma mapbox: initialize lowp float halo_blur
+vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
+camera_to_anchor_distance/u_camera_to_center_distance :
+u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`, Mu = `#define SDF_PX 8.0
+#define SDF 1.0
+#define ICON 0.0
+uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;
+#pragma mapbox: define highp vec4 fill_color
+#pragma mapbox: define highp vec4 halo_color
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float halo_width
+#pragma mapbox: define lowp float halo_blur
+void main() {
+#pragma mapbox: initialize highp vec4 fill_color
+#pragma mapbox: initialize highp vec4 halo_color
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float halo_width
+#pragma mapbox: initialize lowp float halo_blur
+float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, ih = `const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;
+#pragma mapbox: define highp vec4 fill_color
+#pragma mapbox: define highp vec4 halo_color
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float halo_width
+#pragma mapbox: define lowp float halo_blur
+void main() {
+#pragma mapbox: initialize highp vec4 fill_color
+#pragma mapbox: initialize highp vec4 halo_color
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float halo_width
+#pragma mapbox: initialize lowp float halo_blur
+vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
+camera_to_anchor_distance/u_camera_to_center_distance :
+u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`, js = Us(Cf, sc), Eu = Us(jh, Lf), Dc = Us(cs, nf), ks = Us(Gf, $l), bc = Us(fl, lc), hu = Us(Fu, Es), _u = Us(Hs, Go), nl = Us(ps, uc), nh = Us(xl, Gu), Mh = Us(qs, od), zu = Us(Po, sd), Fc = Us(Ko, Pa), wc = Us(af, Hu), bd = Us(bl, Hf), xf = Us(Ic, yf), Pf = Us(Bl, Ah), Ou = Us(Qf, _f), bf = Us(Yc, eh), jl = Us(th, ju), lf = Us(jf, cc), Xh = Us(of, Nl), If = Us(Kc, Rc), Cs = Us(gs, Wf), du = Us(Wh, rh), ku = Us(sf, Sh), Xf = Us(Mu, ih);
+ function Us(Y, D) {
+ var J = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, q = D.match(/attribute ([\w]+) ([\w]+)/g), K = Y.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), de = D.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), ne = de ? de.concat(K) : K, we = {};
+ return Y = Y.replace(J, function(Ue, ft, Zt, hr, qt) {
+ return we[qt] = true, ft === "define" ? `
+#ifndef HAS_UNIFORM_u_` + qt + `
+varying ` + Zt + " " + hr + " " + qt + `;
+#else
+uniform ` + Zt + " " + hr + " u_" + qt + `;
+#endif
+` : `
+#ifdef HAS_UNIFORM_u_` + qt + `
+ ` + Zt + " " + hr + " " + qt + " = u_" + qt + `;
+#endif
+`;
+ }), D = D.replace(J, function(Ue, ft, Zt, hr, qt) {
+ var Ve = hr === "float" ? "vec2" : "vec4", Qe = qt.match(/color/) ? "color" : Ve;
+ return we[qt] ? ft === "define" ? `
+#ifndef HAS_UNIFORM_u_` + qt + `
+uniform lowp float u_` + qt + `_t;
+attribute ` + Zt + " " + Ve + " a_" + qt + `;
+varying ` + Zt + " " + hr + " " + qt + `;
+#else
+uniform ` + Zt + " " + hr + " u_" + qt + `;
+#endif
+` : Qe === "vec4" ? `
+#ifndef HAS_UNIFORM_u_` + qt + `
+ ` + qt + " = a_" + qt + `;
+#else
+ ` + Zt + " " + hr + " " + qt + " = u_" + qt + `;
+#endif
+` : `
+#ifndef HAS_UNIFORM_u_` + qt + `
+ ` + qt + " = unpack_mix_" + Qe + "(a_" + qt + ", u_" + qt + `_t);
+#else
+ ` + Zt + " " + hr + " " + qt + " = u_" + qt + `;
+#endif
+` : ft === "define" ? `
+#ifndef HAS_UNIFORM_u_` + qt + `
+uniform lowp float u_` + qt + `_t;
+attribute ` + Zt + " " + Ve + " a_" + qt + `;
+#else
+uniform ` + Zt + " " + hr + " u_" + qt + `;
+#endif
+` : Qe === "vec4" ? `
+#ifndef HAS_UNIFORM_u_` + qt + `
+ ` + Zt + " " + hr + " " + qt + " = a_" + qt + `;
+#else
+ ` + Zt + " " + hr + " " + qt + " = u_" + qt + `;
+#endif
+` : `
+#ifndef HAS_UNIFORM_u_` + qt + `
+ ` + Zt + " " + hr + " " + qt + " = unpack_mix_" + Qe + "(a_" + qt + ", u_" + qt + `_t);
+#else
+ ` + Zt + " " + hr + " " + qt + " = u_" + qt + `;
+#endif
+`;
+ }), { fragmentSource: Y, vertexSource: D, staticAttributes: q, staticUniforms: ne };
+ }
+ var wf = Object.freeze({ __proto__: null, prelude: js, background: Eu, backgroundPattern: Dc, circle: ks, clippingMask: bc, heatmap: hu, heatmapTexture: _u, collisionBox: nl, collisionCircle: nh, debug: Mh, fill: zu, fillOutline: Fc, fillOutlinePattern: wc, fillPattern: bd, fillExtrusion: xf, fillExtrusionPattern: Pf, hillshadePrepare: Ou, hillshade: bf, line: jl, lineGradient: lf, linePattern: Xh, lineSDF: If, raster: Cs, symbolIcon: du, symbolSDF: ku, symbolTextAndIcon: Xf }), zc = function() {
+ this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null;
+ };
+ zc.prototype.bind = function(D, J, q, K, de, ne, we, Ue) {
+ this.context = D;
+ for (var ft = this.boundPaintVertexBuffers.length !== K.length, Zt = 0; !ft && Zt < K.length; Zt++) this.boundPaintVertexBuffers[Zt] !== K[Zt] && (ft = true);
+ var hr = !this.vao || this.boundProgram !== J || this.boundLayoutVertexBuffer !== q || ft || this.boundIndexBuffer !== de || this.boundVertexOffset !== ne || this.boundDynamicVertexBuffer !== we || this.boundDynamicVertexBuffer2 !== Ue;
+ !D.extVertexArrayObject || hr ? this.freshBind(J, q, K, de, ne, we, Ue) : (D.bindVertexArrayOES.set(this.vao), we && we.bind(), de && de.dynamicDraw && de.bind(), Ue && Ue.bind());
+ }, zc.prototype.freshBind = function(D, J, q, K, de, ne, we) {
+ var Ue, ft = D.numAttributes, Zt = this.context, hr = Zt.gl;
+ if (Zt.extVertexArrayObject) this.vao && this.destroy(), this.vao = Zt.extVertexArrayObject.createVertexArrayOES(), Zt.bindVertexArrayOES.set(this.vao), Ue = 0, this.boundProgram = D, this.boundLayoutVertexBuffer = J, this.boundPaintVertexBuffers = q, this.boundIndexBuffer = K, this.boundVertexOffset = de, this.boundDynamicVertexBuffer = ne, this.boundDynamicVertexBuffer2 = we;
+ else {
+ Ue = Zt.currentNumAttributes || 0;
+ for (var qt = ft; qt < Ue; qt++) hr.disableVertexAttribArray(qt);
+ }
+ J.enableAttributes(hr, D);
+ for (var Ve = 0, Qe = q; Ve < Qe.length; Ve += 1) {
+ var at = Qe[Ve];
+ at.enableAttributes(hr, D);
+ }
+ ne && ne.enableAttributes(hr, D), we && we.enableAttributes(hr, D), J.bind(), J.setVertexAttribPointers(hr, D, de);
+ for (var Ct = 0, Ot = q; Ct < Ot.length; Ct += 1) {
+ var Rt = Ot[Ct];
+ Rt.bind(), Rt.setVertexAttribPointers(hr, D, de);
+ }
+ ne && (ne.bind(), ne.setVertexAttribPointers(hr, D, de)), K && K.bind(), we && (we.bind(), we.setVertexAttribPointers(hr, D, de)), Zt.currentNumAttributes = ft;
+ }, zc.prototype.destroy = function() {
+ this.vao && (this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao), this.vao = null);
+ };
+ function Wu(Y) {
+ for (var D = [], J = 0; J < Y.length; J++) if (Y[J] !== null) {
+ var q = Y[J].split(" ");
+ D.push(q.pop());
+ }
+ return D;
+ }
+ var Rf = function(D, J, q, K, de, ne) {
+ var we = D.gl;
+ this.program = we.createProgram();
+ for (var Ue = Wu(q.staticAttributes), ft = K ? K.getBinderAttributes() : [], Zt = Ue.concat(ft), hr = q.staticUniforms ? Wu(q.staticUniforms) : [], qt = K ? K.getBinderUniforms() : [], Ve = hr.concat(qt), Qe = [], at = 0, Ct = Ve; at < Ct.length; at += 1) {
+ var Ot = Ct[at];
+ Qe.indexOf(Ot) < 0 && Qe.push(Ot);
+ }
+ var Rt = K ? K.defines() : [];
+ ne && Rt.push("#define OVERDRAW_INSPECTOR;");
+ var Bt = Rt.concat(js.fragmentSource, q.fragmentSource).join(`
+`), Dt = Rt.concat(js.vertexSource, q.vertexSource).join(`
+`), yt = we.createShader(we.FRAGMENT_SHADER);
+ if (we.isContextLost()) {
+ this.failedToCreate = true;
+ return;
+ }
+ we.shaderSource(yt, Bt), we.compileShader(yt), we.attachShader(this.program, yt);
+ var Pt = we.createShader(we.VERTEX_SHADER);
+ if (we.isContextLost()) {
+ this.failedToCreate = true;
+ return;
+ }
+ we.shaderSource(Pt, Dt), we.compileShader(Pt), we.attachShader(this.program, Pt), this.attributes = {};
+ var ht = {};
+ this.numAttributes = Zt.length;
+ for (var ur = 0; ur < this.numAttributes; ur++) Zt[ur] && (we.bindAttribLocation(this.program, ur, Zt[ur]), this.attributes[Zt[ur]] = ur);
+ we.linkProgram(this.program), we.deleteShader(Pt), we.deleteShader(yt);
+ for (var br = 0; br < Qe.length; br++) {
+ var Ur = Qe[br];
+ if (Ur && !ht[Ur]) {
+ var Di = we.getUniformLocation(this.program, Ur);
+ Di && (ht[Ur] = Di);
+ }
+ }
+ this.fixedUniforms = de(D, ht), this.binderUniforms = K ? K.getUniforms(D, ht) : [];
+ };
+ Rf.prototype.draw = function(D, J, q, K, de, ne, we, Ue, ft, Zt, hr, qt, Ve, Qe, at, Ct) {
+ var Ot, Rt = D.gl;
+ if (!this.failedToCreate) {
+ D.program.set(this.program), D.setDepthMode(q), D.setStencilMode(K), D.setColorMode(de), D.setCullFace(ne);
+ for (var Bt in this.fixedUniforms) this.fixedUniforms[Bt].set(we[Bt]);
+ Qe && Qe.setUniforms(D, this.binderUniforms, qt, { zoom: Ve });
+ for (var Dt = (Ot = {}, Ot[Rt.LINES] = 2, Ot[Rt.TRIANGLES] = 3, Ot[Rt.LINE_STRIP] = 1, Ot)[J], yt = 0, Pt = hr.get(); yt < Pt.length; yt += 1) {
+ var ht = Pt[yt], ur = ht.vaos || (ht.vaos = {}), br = ur[Ue] || (ur[Ue] = new zc());
+ br.bind(D, this, ft, Qe ? Qe.getPaintVertexBuffers() : [], Zt, ht.vertexOffset, at, Ct), Rt.drawElements(J, ht.primitiveLength * Dt, Rt.UNSIGNED_SHORT, ht.primitiveOffset * Dt * 2);
+ }
+ }
+ };
+ function Xu(Y, D, J) {
+ var q = 1 / As(J, 1, D.transform.tileZoom), K = Math.pow(2, J.tileID.overscaledZ), de = J.tileSize * Math.pow(2, D.transform.tileZoom) / K, ne = de * (J.tileID.canonical.x + J.tileID.wrap * K), we = de * J.tileID.canonical.y;
+ return { u_image: 0, u_texsize: J.imageAtlasTexture.size, u_scale: [q, Y.fromScale, Y.toScale], u_fade: Y.t, u_pixel_coord_upper: [ne >> 16, we >> 16], u_pixel_coord_lower: [ne & 65535, we & 65535] };
+ }
+ function uf(Y, D, J, q) {
+ var K = J.imageManager.getPattern(Y.from.toString()), de = J.imageManager.getPattern(Y.to.toString()), ne = J.imageManager.getPixelSize(), we = ne.width, Ue = ne.height, ft = Math.pow(2, q.tileID.overscaledZ), Zt = q.tileSize * Math.pow(2, J.transform.tileZoom) / ft, hr = Zt * (q.tileID.canonical.x + q.tileID.wrap * ft), qt = Zt * q.tileID.canonical.y;
+ return { u_image: 0, u_pattern_tl_a: K.tl, u_pattern_br_a: K.br, u_pattern_tl_b: de.tl, u_pattern_br_b: de.br, u_texsize: [we, Ue], u_mix: D.t, u_pattern_size_a: K.displaySize, u_pattern_size_b: de.displaySize, u_scale_a: D.fromScale, u_scale_b: D.toScale, u_tile_units_to_pixels: 1 / As(q, 1, J.transform.tileZoom), u_pixel_coord_upper: [hr >> 16, qt >> 16], u_pixel_coord_lower: [hr & 65535, qt & 65535] };
+ }
+ var Zf = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_lightpos: new i.Uniform3f(Y, D.u_lightpos), u_lightintensity: new i.Uniform1f(Y, D.u_lightintensity), u_lightcolor: new i.Uniform3f(Y, D.u_lightcolor), u_vertical_gradient: new i.Uniform1f(Y, D.u_vertical_gradient), u_opacity: new i.Uniform1f(Y, D.u_opacity) };
+ }, Wl = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_lightpos: new i.Uniform3f(Y, D.u_lightpos), u_lightintensity: new i.Uniform1f(Y, D.u_lightintensity), u_lightcolor: new i.Uniform3f(Y, D.u_lightcolor), u_vertical_gradient: new i.Uniform1f(Y, D.u_vertical_gradient), u_height_factor: new i.Uniform1f(Y, D.u_height_factor), u_image: new i.Uniform1i(Y, D.u_image), u_texsize: new i.Uniform2f(Y, D.u_texsize), u_pixel_coord_upper: new i.Uniform2f(Y, D.u_pixel_coord_upper), u_pixel_coord_lower: new i.Uniform2f(Y, D.u_pixel_coord_lower), u_scale: new i.Uniform3f(Y, D.u_scale), u_fade: new i.Uniform1f(Y, D.u_fade), u_opacity: new i.Uniform1f(Y, D.u_opacity) };
+ }, ah = function(Y, D, J, q) {
+ var K = D.style.light, de = K.properties.get("position"), ne = [de.x, de.y, de.z], we = i.create$1();
+ K.properties.get("anchor") === "viewport" && i.fromRotation(we, -D.transform.angle), i.transformMat3(ne, ne, we);
+ var Ue = K.properties.get("color");
+ return { u_matrix: Y, u_lightpos: ne, u_lightintensity: K.properties.get("intensity"), u_lightcolor: [Ue.r, Ue.g, Ue.b], u_vertical_gradient: +J, u_opacity: q };
+ }, Zu = function(Y, D, J, q, K, de, ne) {
+ return i.extend(ah(Y, D, J, q), Xu(de, D, ne), { u_height_factor: -Math.pow(2, K.overscaledZ) / ne.tileSize / 8 });
+ }, Oc = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix) };
+ }, Tc = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_image: new i.Uniform1i(Y, D.u_image), u_texsize: new i.Uniform2f(Y, D.u_texsize), u_pixel_coord_upper: new i.Uniform2f(Y, D.u_pixel_coord_upper), u_pixel_coord_lower: new i.Uniform2f(Y, D.u_pixel_coord_lower), u_scale: new i.Uniform3f(Y, D.u_scale), u_fade: new i.Uniform1f(Y, D.u_fade) };
+ }, wl = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_world: new i.Uniform2f(Y, D.u_world) };
+ }, vu = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_world: new i.Uniform2f(Y, D.u_world), u_image: new i.Uniform1i(Y, D.u_image), u_texsize: new i.Uniform2f(Y, D.u_texsize), u_pixel_coord_upper: new i.Uniform2f(Y, D.u_pixel_coord_upper), u_pixel_coord_lower: new i.Uniform2f(Y, D.u_pixel_coord_lower), u_scale: new i.Uniform3f(Y, D.u_scale), u_fade: new i.Uniform1f(Y, D.u_fade) };
+ }, qc = function(Y) {
+ return { u_matrix: Y };
+ }, cf = function(Y, D, J, q) {
+ return i.extend(qc(Y), Xu(J, D, q));
+ }, fc = function(Y, D) {
+ return { u_matrix: Y, u_world: D };
+ }, Bc = function(Y, D, J, q, K) {
+ return i.extend(cf(Y, D, J, q), { u_world: K });
+ }, At = function(Y, D) {
+ return { u_camera_to_center_distance: new i.Uniform1f(Y, D.u_camera_to_center_distance), u_scale_with_map: new i.Uniform1i(Y, D.u_scale_with_map), u_pitch_with_map: new i.Uniform1i(Y, D.u_pitch_with_map), u_extrude_scale: new i.Uniform2f(Y, D.u_extrude_scale), u_device_pixel_ratio: new i.Uniform1f(Y, D.u_device_pixel_ratio), u_matrix: new i.UniformMatrix4f(Y, D.u_matrix) };
+ }, Xt = function(Y, D, J, q) {
+ var K = Y.transform, de, ne;
+ if (q.paint.get("circle-pitch-alignment") === "map") {
+ var we = As(J, 1, K.zoom);
+ de = true, ne = [we, we];
+ } else de = false, ne = K.pixelsToGLUnits;
+ return { u_camera_to_center_distance: K.cameraToCenterDistance, u_scale_with_map: +(q.paint.get("circle-pitch-scale") === "map"), u_matrix: Y.translatePosMatrix(D.posMatrix, J, q.paint.get("circle-translate"), q.paint.get("circle-translate-anchor")), u_pitch_with_map: +de, u_device_pixel_ratio: i.browser.devicePixelRatio, u_extrude_scale: ne };
+ }, Cr = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_camera_to_center_distance: new i.Uniform1f(Y, D.u_camera_to_center_distance), u_pixels_to_tile_units: new i.Uniform1f(Y, D.u_pixels_to_tile_units), u_extrude_scale: new i.Uniform2f(Y, D.u_extrude_scale), u_overscale_factor: new i.Uniform1f(Y, D.u_overscale_factor) };
+ }, Ar = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_inv_matrix: new i.UniformMatrix4f(Y, D.u_inv_matrix), u_camera_to_center_distance: new i.Uniform1f(Y, D.u_camera_to_center_distance), u_viewport_size: new i.Uniform2f(Y, D.u_viewport_size) };
+ }, Kr = function(Y, D, J) {
+ var q = As(J, 1, D.zoom), K = Math.pow(2, D.zoom - J.tileID.overscaledZ), de = J.tileID.overscaleFactor();
+ return { u_matrix: Y, u_camera_to_center_distance: D.cameraToCenterDistance, u_pixels_to_tile_units: q, u_extrude_scale: [D.pixelsToGLUnits[0] / (q * K), D.pixelsToGLUnits[1] / (q * K)], u_overscale_factor: de };
+ }, ki = function(Y, D, J) {
+ return { u_matrix: Y, u_inv_matrix: D, u_camera_to_center_distance: J.cameraToCenterDistance, u_viewport_size: [J.width, J.height] };
+ }, Xi = function(Y, D) {
+ return { u_color: new i.UniformColor(Y, D.u_color), u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_overlay: new i.Uniform1i(Y, D.u_overlay), u_overlay_scale: new i.Uniform1f(Y, D.u_overlay_scale) };
+ }, dn = function(Y, D, J) {
+ return J === void 0 && (J = 1), { u_matrix: Y, u_color: D, u_overlay: 0, u_overlay_scale: J };
+ }, wn = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix) };
+ }, Nn = function(Y) {
+ return { u_matrix: Y };
+ }, Yi = function(Y, D) {
+ return { u_extrude_scale: new i.Uniform1f(Y, D.u_extrude_scale), u_intensity: new i.Uniform1f(Y, D.u_intensity), u_matrix: new i.UniformMatrix4f(Y, D.u_matrix) };
+ }, Qi = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_world: new i.Uniform2f(Y, D.u_world), u_image: new i.Uniform1i(Y, D.u_image), u_color_ramp: new i.Uniform1i(Y, D.u_color_ramp), u_opacity: new i.Uniform1f(Y, D.u_opacity) };
+ }, on = function(Y, D, J, q) {
+ return { u_matrix: Y, u_extrude_scale: As(D, 1, J), u_intensity: q };
+ }, Fi = function(Y, D, J, q) {
+ var K = i.create();
+ i.ortho(K, 0, Y.width, Y.height, 0, 0, 1);
+ var de = Y.context.gl;
+ return { u_matrix: K, u_world: [de.drawingBufferWidth, de.drawingBufferHeight], u_image: J, u_color_ramp: q, u_opacity: D.paint.get("heatmap-opacity") };
+ }, Qn = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_image: new i.Uniform1i(Y, D.u_image), u_latrange: new i.Uniform2f(Y, D.u_latrange), u_light: new i.Uniform2f(Y, D.u_light), u_shadow: new i.UniformColor(Y, D.u_shadow), u_highlight: new i.UniformColor(Y, D.u_highlight), u_accent: new i.UniformColor(Y, D.u_accent) };
+ }, Ca = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_image: new i.Uniform1i(Y, D.u_image), u_dimension: new i.Uniform2f(Y, D.u_dimension), u_zoom: new i.Uniform1f(Y, D.u_zoom), u_unpack: new i.Uniform4f(Y, D.u_unpack) };
+ }, Ra = function(Y, D, J) {
+ var q = J.paint.get("hillshade-shadow-color"), K = J.paint.get("hillshade-highlight-color"), de = J.paint.get("hillshade-accent-color"), ne = J.paint.get("hillshade-illumination-direction") * (Math.PI / 180);
+ J.paint.get("hillshade-illumination-anchor") === "viewport" && (ne -= Y.transform.angle);
+ var we = !Y.options.moving;
+ return { u_matrix: Y.transform.calculatePosMatrix(D.tileID.toUnwrapped(), we), u_image: 0, u_latrange: Na(Y, D.tileID), u_light: [J.paint.get("hillshade-exaggeration"), ne], u_shadow: q, u_highlight: K, u_accent: de };
+ }, La = function(Y, D) {
+ var J = D.stride, q = i.create();
+ return i.ortho(q, 0, i.EXTENT, -i.EXTENT, 0, 0, 1), i.translate(q, q, [0, -i.EXTENT, 0]), { u_matrix: q, u_image: 1, u_dimension: [J, J], u_zoom: Y.overscaledZ, u_unpack: D.getUnpackVector() };
+ };
+ function Na(Y, D) {
+ var J = Math.pow(2, D.canonical.z), q = D.canonical.y;
+ return [new i.MercatorCoordinate(0, q / J).toLngLat().lat, new i.MercatorCoordinate(0, (q + 1) / J).toLngLat().lat];
+ }
+ var Yn = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_ratio: new i.Uniform1f(Y, D.u_ratio), u_device_pixel_ratio: new i.Uniform1f(Y, D.u_device_pixel_ratio), u_units_to_pixels: new i.Uniform2f(Y, D.u_units_to_pixels) };
+ }, Dn = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_ratio: new i.Uniform1f(Y, D.u_ratio), u_device_pixel_ratio: new i.Uniform1f(Y, D.u_device_pixel_ratio), u_units_to_pixels: new i.Uniform2f(Y, D.u_units_to_pixels), u_image: new i.Uniform1i(Y, D.u_image), u_image_height: new i.Uniform1f(Y, D.u_image_height) };
+ }, Ka = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_texsize: new i.Uniform2f(Y, D.u_texsize), u_ratio: new i.Uniform1f(Y, D.u_ratio), u_device_pixel_ratio: new i.Uniform1f(Y, D.u_device_pixel_ratio), u_image: new i.Uniform1i(Y, D.u_image), u_units_to_pixels: new i.Uniform2f(Y, D.u_units_to_pixels), u_scale: new i.Uniform3f(Y, D.u_scale), u_fade: new i.Uniform1f(Y, D.u_fade) };
+ }, bo = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_ratio: new i.Uniform1f(Y, D.u_ratio), u_device_pixel_ratio: new i.Uniform1f(Y, D.u_device_pixel_ratio), u_units_to_pixels: new i.Uniform2f(Y, D.u_units_to_pixels), u_patternscale_a: new i.Uniform2f(Y, D.u_patternscale_a), u_patternscale_b: new i.Uniform2f(Y, D.u_patternscale_b), u_sdfgamma: new i.Uniform1f(Y, D.u_sdfgamma), u_image: new i.Uniform1i(Y, D.u_image), u_tex_y_a: new i.Uniform1f(Y, D.u_tex_y_a), u_tex_y_b: new i.Uniform1f(Y, D.u_tex_y_b), u_mix: new i.Uniform1f(Y, D.u_mix) };
+ }, Zo = function(Y, D, J) {
+ var q = Y.transform;
+ return { u_matrix: ml(Y, D, J), u_ratio: 1 / As(D, 1, q.zoom), u_device_pixel_ratio: i.browser.devicePixelRatio, u_units_to_pixels: [1 / q.pixelsToGLUnits[0], 1 / q.pixelsToGLUnits[1]] };
+ }, Ss = function(Y, D, J, q) {
+ return i.extend(Zo(Y, D, J), { u_image: 0, u_image_height: q });
+ }, as = function(Y, D, J, q) {
+ var K = Y.transform, de = Ho(D, K);
+ return { u_matrix: ml(Y, D, J), u_texsize: D.imageAtlasTexture.size, u_ratio: 1 / As(D, 1, K.zoom), u_device_pixel_ratio: i.browser.devicePixelRatio, u_image: 0, u_scale: [de, q.fromScale, q.toScale], u_fade: q.t, u_units_to_pixels: [1 / K.pixelsToGLUnits[0], 1 / K.pixelsToGLUnits[1]] };
+ }, ws = function(Y, D, J, q, K) {
+ var de = Y.transform, ne = Y.lineAtlas, we = Ho(D, de), Ue = J.layout.get("line-cap") === "round", ft = ne.getDash(q.from, Ue), Zt = ne.getDash(q.to, Ue), hr = ft.width * K.fromScale, qt = Zt.width * K.toScale;
+ return i.extend(Zo(Y, D, J), { u_patternscale_a: [we / hr, -ft.height / 2], u_patternscale_b: [we / qt, -Zt.height / 2], u_sdfgamma: ne.width / (Math.min(hr, qt) * 256 * i.browser.devicePixelRatio) / 2, u_image: 0, u_tex_y_a: ft.y, u_tex_y_b: Zt.y, u_mix: K.t });
+ };
+ function Ho(Y, D) {
+ return 1 / As(Y, 1, D.tileZoom);
+ }
+ function ml(Y, D, J) {
+ return Y.translatePosMatrix(D.tileID.posMatrix, D, J.paint.get("line-translate"), J.paint.get("line-translate-anchor"));
+ }
+ var Ws = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_tl_parent: new i.Uniform2f(Y, D.u_tl_parent), u_scale_parent: new i.Uniform1f(Y, D.u_scale_parent), u_buffer_scale: new i.Uniform1f(Y, D.u_buffer_scale), u_fade_t: new i.Uniform1f(Y, D.u_fade_t), u_opacity: new i.Uniform1f(Y, D.u_opacity), u_image0: new i.Uniform1i(Y, D.u_image0), u_image1: new i.Uniform1i(Y, D.u_image1), u_brightness_low: new i.Uniform1f(Y, D.u_brightness_low), u_brightness_high: new i.Uniform1f(Y, D.u_brightness_high), u_saturation_factor: new i.Uniform1f(Y, D.u_saturation_factor), u_contrast_factor: new i.Uniform1f(Y, D.u_contrast_factor), u_spin_weights: new i.Uniform3f(Y, D.u_spin_weights) };
+ }, Ls = function(Y, D, J, q, K) {
+ return { u_matrix: Y, u_tl_parent: D, u_scale_parent: J, u_buffer_scale: 1, u_fade_t: q.mix, u_opacity: q.opacity * K.paint.get("raster-opacity"), u_image0: 0, u_image1: 1, u_brightness_low: K.paint.get("raster-brightness-min"), u_brightness_high: K.paint.get("raster-brightness-max"), u_saturation_factor: ys(K.paint.get("raster-saturation")), u_contrast_factor: no(K.paint.get("raster-contrast")), u_spin_weights: va(K.paint.get("raster-hue-rotate")) };
+ };
+ function va(Y) {
+ Y *= Math.PI / 180;
+ var D = Math.sin(Y), J = Math.cos(Y);
+ return [(2 * J + 1) / 3, (-Math.sqrt(3) * D - J + 1) / 3, (Math.sqrt(3) * D - J + 1) / 3];
+ }
+ function no(Y) {
+ return Y > 0 ? 1 / (1 - Y) : 1 + Y;
+ }
+ function ys(Y) {
+ return Y > 0 ? 1 - 1 / (1.001 - Y) : -Y;
+ }
+ var rs = function(Y, D) {
+ return { u_is_size_zoom_constant: new i.Uniform1i(Y, D.u_is_size_zoom_constant), u_is_size_feature_constant: new i.Uniform1i(Y, D.u_is_size_feature_constant), u_size_t: new i.Uniform1f(Y, D.u_size_t), u_size: new i.Uniform1f(Y, D.u_size), u_camera_to_center_distance: new i.Uniform1f(Y, D.u_camera_to_center_distance), u_pitch: new i.Uniform1f(Y, D.u_pitch), u_rotate_symbol: new i.Uniform1i(Y, D.u_rotate_symbol), u_aspect_ratio: new i.Uniform1f(Y, D.u_aspect_ratio), u_fade_change: new i.Uniform1f(Y, D.u_fade_change), u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_label_plane_matrix: new i.UniformMatrix4f(Y, D.u_label_plane_matrix), u_coord_matrix: new i.UniformMatrix4f(Y, D.u_coord_matrix), u_is_text: new i.Uniform1i(Y, D.u_is_text), u_pitch_with_map: new i.Uniform1i(Y, D.u_pitch_with_map), u_texsize: new i.Uniform2f(Y, D.u_texsize), u_texture: new i.Uniform1i(Y, D.u_texture) };
+ }, Ql = function(Y, D) {
+ return { u_is_size_zoom_constant: new i.Uniform1i(Y, D.u_is_size_zoom_constant), u_is_size_feature_constant: new i.Uniform1i(Y, D.u_is_size_feature_constant), u_size_t: new i.Uniform1f(Y, D.u_size_t), u_size: new i.Uniform1f(Y, D.u_size), u_camera_to_center_distance: new i.Uniform1f(Y, D.u_camera_to_center_distance), u_pitch: new i.Uniform1f(Y, D.u_pitch), u_rotate_symbol: new i.Uniform1i(Y, D.u_rotate_symbol), u_aspect_ratio: new i.Uniform1f(Y, D.u_aspect_ratio), u_fade_change: new i.Uniform1f(Y, D.u_fade_change), u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_label_plane_matrix: new i.UniformMatrix4f(Y, D.u_label_plane_matrix), u_coord_matrix: new i.UniformMatrix4f(Y, D.u_coord_matrix), u_is_text: new i.Uniform1i(Y, D.u_is_text), u_pitch_with_map: new i.Uniform1i(Y, D.u_pitch_with_map), u_texsize: new i.Uniform2f(Y, D.u_texsize), u_texture: new i.Uniform1i(Y, D.u_texture), u_gamma_scale: new i.Uniform1f(Y, D.u_gamma_scale), u_device_pixel_ratio: new i.Uniform1f(Y, D.u_device_pixel_ratio), u_is_halo: new i.Uniform1i(Y, D.u_is_halo) };
+ }, Cu = function(Y, D) {
+ return { u_is_size_zoom_constant: new i.Uniform1i(Y, D.u_is_size_zoom_constant), u_is_size_feature_constant: new i.Uniform1i(Y, D.u_is_size_feature_constant), u_size_t: new i.Uniform1f(Y, D.u_size_t), u_size: new i.Uniform1f(Y, D.u_size), u_camera_to_center_distance: new i.Uniform1f(Y, D.u_camera_to_center_distance), u_pitch: new i.Uniform1f(Y, D.u_pitch), u_rotate_symbol: new i.Uniform1i(Y, D.u_rotate_symbol), u_aspect_ratio: new i.Uniform1f(Y, D.u_aspect_ratio), u_fade_change: new i.Uniform1f(Y, D.u_fade_change), u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_label_plane_matrix: new i.UniformMatrix4f(Y, D.u_label_plane_matrix), u_coord_matrix: new i.UniformMatrix4f(Y, D.u_coord_matrix), u_is_text: new i.Uniform1i(Y, D.u_is_text), u_pitch_with_map: new i.Uniform1i(Y, D.u_pitch_with_map), u_texsize: new i.Uniform2f(Y, D.u_texsize), u_texsize_icon: new i.Uniform2f(Y, D.u_texsize_icon), u_texture: new i.Uniform1i(Y, D.u_texture), u_texture_icon: new i.Uniform1i(Y, D.u_texture_icon), u_gamma_scale: new i.Uniform1f(Y, D.u_gamma_scale), u_device_pixel_ratio: new i.Uniform1f(Y, D.u_device_pixel_ratio), u_is_halo: new i.Uniform1i(Y, D.u_is_halo) };
+ }, Yu = function(Y, D, J, q, K, de, ne, we, Ue, ft) {
+ var Zt = K.transform;
+ return { u_is_size_zoom_constant: +(Y === "constant" || Y === "source"), u_is_size_feature_constant: +(Y === "constant" || Y === "camera"), u_size_t: D ? D.uSizeT : 0, u_size: D ? D.uSize : 0, u_camera_to_center_distance: Zt.cameraToCenterDistance, u_pitch: Zt.pitch / 360 * 2 * Math.PI, u_rotate_symbol: +J, u_aspect_ratio: Zt.width / Zt.height, u_fade_change: K.options.fadeDuration ? K.symbolFadeChange : 1, u_matrix: de, u_label_plane_matrix: ne, u_coord_matrix: we, u_is_text: +Ue, u_pitch_with_map: +q, u_texsize: ft, u_texture: 0 };
+ }, Nc = function(Y, D, J, q, K, de, ne, we, Ue, ft, Zt) {
+ var hr = K.transform;
+ return i.extend(Yu(Y, D, J, q, K, de, ne, we, Ue, ft), { u_gamma_scale: q ? Math.cos(hr._pitch) * hr.cameraToCenterDistance : 1, u_device_pixel_ratio: i.browser.devicePixelRatio, u_is_halo: 1 });
+ }, pu = function(Y, D, J, q, K, de, ne, we, Ue, ft) {
+ return i.extend(Nc(Y, D, J, q, K, de, ne, we, true, Ue), { u_texsize_icon: ft, u_texture_icon: 1 });
+ }, Uc = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_opacity: new i.Uniform1f(Y, D.u_opacity), u_color: new i.UniformColor(Y, D.u_color) };
+ }, xu = function(Y, D) {
+ return { u_matrix: new i.UniformMatrix4f(Y, D.u_matrix), u_opacity: new i.Uniform1f(Y, D.u_opacity), u_image: new i.Uniform1i(Y, D.u_image), u_pattern_tl_a: new i.Uniform2f(Y, D.u_pattern_tl_a), u_pattern_br_a: new i.Uniform2f(Y, D.u_pattern_br_a), u_pattern_tl_b: new i.Uniform2f(Y, D.u_pattern_tl_b), u_pattern_br_b: new i.Uniform2f(Y, D.u_pattern_br_b), u_texsize: new i.Uniform2f(Y, D.u_texsize), u_mix: new i.Uniform1f(Y, D.u_mix), u_pattern_size_a: new i.Uniform2f(Y, D.u_pattern_size_a), u_pattern_size_b: new i.Uniform2f(Y, D.u_pattern_size_b), u_scale_a: new i.Uniform1f(Y, D.u_scale_a), u_scale_b: new i.Uniform1f(Y, D.u_scale_b), u_pixel_coord_upper: new i.Uniform2f(Y, D.u_pixel_coord_upper), u_pixel_coord_lower: new i.Uniform2f(Y, D.u_pixel_coord_lower), u_tile_units_to_pixels: new i.Uniform1f(Y, D.u_tile_units_to_pixels) };
+ }, Ac = function(Y, D, J) {
+ return { u_matrix: Y, u_opacity: D, u_color: J };
+ }, Ua = function(Y, D, J, q, K, de) {
+ return i.extend(uf(q, de, J, K), { u_matrix: Y, u_opacity: D });
+ }, oo = { fillExtrusion: Zf, fillExtrusionPattern: Wl, fill: Oc, fillPattern: Tc, fillOutline: wl, fillOutlinePattern: vu, circle: At, collisionBox: Cr, collisionCircle: Ar, debug: Xi, clippingMask: wn, heatmap: Yi, heatmapTexture: Qi, hillshade: Qn, hillshadePrepare: Ca, line: Yn, lineGradient: Dn, linePattern: Ka, lineSDF: bo, raster: Ws, symbolIcon: rs, symbolSDF: Ql, symbolTextAndIcon: Cu, background: Uc, backgroundPattern: xu }, Vc;
+ function hc(Y, D, J, q, K, de, ne) {
+ for (var we = Y.context, Ue = we.gl, ft = Y.useProgram("collisionBox"), Zt = [], hr = 0, qt = 0, Ve = 0; Ve < q.length; Ve++) {
+ var Qe = q[Ve], at = D.getTile(Qe), Ct = at.getBucket(J);
+ if (Ct) {
+ var Ot = Qe.posMatrix;
+ (K[0] !== 0 || K[1] !== 0) && (Ot = Y.translatePosMatrix(Qe.posMatrix, at, K, de));
+ var Rt = ne ? Ct.textCollisionBox : Ct.iconCollisionBox, Bt = Ct.collisionCircleArray;
+ if (Bt.length > 0) {
+ var Dt = i.create(), yt = Ot;
+ i.mul(Dt, Ct.placementInvProjMatrix, Y.transform.glCoordMatrix), i.mul(Dt, Dt, Ct.placementViewportMatrix), Zt.push({ circleArray: Bt, circleOffset: qt, transform: yt, invTransform: Dt }), hr += Bt.length / 4, qt = hr;
+ }
+ Rt && ft.draw(we, Ue.LINES, wi.disabled, Fn.disabled, Y.colorModeForRenderPass(), Er.disabled, Kr(Ot, Y.transform, at), J.id, Rt.layoutVertexBuffer, Rt.indexBuffer, Rt.segments, null, Y.transform.zoom, null, null, Rt.collisionVertexBuffer);
+ }
+ }
+ if (!(!ne || !Zt.length)) {
+ var Pt = Y.useProgram("collisionCircle"), ht = new i.StructArrayLayout2f1f2i16();
+ ht.resize(hr * 4), ht._trim();
+ for (var ur = 0, br = 0, Ur = Zt; br < Ur.length; br += 1) for (var Di = Ur[br], fi = 0; fi < Di.circleArray.length / 4; fi++) {
+ var Ti = fi * 4, gn = Di.circleArray[Ti + 0], rn = Di.circleArray[Ti + 1], Ci = Di.circleArray[Ti + 2], Bi = Di.circleArray[Ti + 3];
+ ht.emplace(ur++, gn, rn, Ci, Bi, 0), ht.emplace(ur++, gn, rn, Ci, Bi, 1), ht.emplace(ur++, gn, rn, Ci, Bi, 2), ht.emplace(ur++, gn, rn, Ci, Bi, 3);
+ }
+ (!Vc || Vc.length < hr * 2) && (Vc = Ku(hr));
+ for (var Gi = we.createIndexBuffer(Vc, true), sn = we.createVertexBuffer(ht, i.collisionCircleLayout.members, true), zn = 0, Ja = Zt; zn < Ja.length; zn += 1) {
+ var co = Ja[zn], ts = ki(co.transform, co.invTransform, Y.transform);
+ Pt.draw(we, Ue.TRIANGLES, wi.disabled, Fn.disabled, Y.colorModeForRenderPass(), Er.disabled, ts, J.id, sn, Gi, i.SegmentVector.simpleSegment(0, co.circleOffset * 2, co.circleArray.length, co.circleArray.length / 2), null, Y.transform.zoom, null, null, null);
+ }
+ sn.destroy(), Gi.destroy();
+ }
+ }
+ function Ku(Y) {
+ var D = Y * 2, J = new i.StructArrayLayout3ui6();
+ J.resize(D), J._trim();
+ for (var q = 0; q < D; q++) {
+ var K = q * 6;
+ J.uint16[K + 0] = q * 4 + 0, J.uint16[K + 1] = q * 4 + 1, J.uint16[K + 2] = q * 4 + 2, J.uint16[K + 3] = q * 4 + 2, J.uint16[K + 4] = q * 4 + 3, J.uint16[K + 5] = q * 4 + 0;
+ }
+ return J;
+ }
+ var ue = i.identity(new Float32Array(16));
+ function w(Y, D, J, q, K) {
+ if (Y.renderPass === "translucent") {
+ var de = Fn.disabled, ne = Y.colorModeForRenderPass(), we = J.layout.get("text-variable-anchor");
+ we && Q(q, Y, J, D, J.layout.get("text-rotation-alignment"), J.layout.get("text-pitch-alignment"), K), J.paint.get("icon-opacity").constantOr(1) !== 0 && Oe(Y, D, J, q, false, J.paint.get("icon-translate"), J.paint.get("icon-translate-anchor"), J.layout.get("icon-rotation-alignment"), J.layout.get("icon-pitch-alignment"), J.layout.get("icon-keep-upright"), de, ne), J.paint.get("text-opacity").constantOr(1) !== 0 && Oe(Y, D, J, q, true, J.paint.get("text-translate"), J.paint.get("text-translate-anchor"), J.layout.get("text-rotation-alignment"), J.layout.get("text-pitch-alignment"), J.layout.get("text-keep-upright"), de, ne), D.map.showCollisionBoxes && (hc(Y, D, J, q, J.paint.get("text-translate"), J.paint.get("text-translate-anchor"), true), hc(Y, D, J, q, J.paint.get("icon-translate"), J.paint.get("icon-translate-anchor"), false));
+ }
+ }
+ function B(Y, D, J, q, K, de) {
+ var ne = i.getAnchorAlignment(Y), we = ne.horizontalAlign, Ue = ne.verticalAlign, ft = -(we - 0.5) * D, Zt = -(Ue - 0.5) * J, hr = i.evaluateVariableOffset(Y, q);
+ return new i.Point((ft / K + hr[0]) * de, (Zt / K + hr[1]) * de);
+ }
+ function Q(Y, D, J, q, K, de, ne) {
+ for (var we = D.transform, Ue = K === "map", ft = de === "map", Zt = 0, hr = Y; Zt < hr.length; Zt += 1) {
+ var qt = hr[Zt], Ve = q.getTile(qt), Qe = Ve.getBucket(J);
+ if (!(!Qe || !Qe.text || !Qe.text.segments.get().length)) {
+ var at = Qe.textSizeData, Ct = i.evaluateSizeForZoom(at, we.zoom), Ot = As(Ve, 1, D.transform.zoom), Rt = _n(qt.posMatrix, ft, Ue, D.transform, Ot), Bt = J.layout.get("icon-text-fit") !== "none" && Qe.hasIconData();
+ if (Ct) {
+ var Dt = Math.pow(2, we.zoom - Ve.tileID.overscaledZ);
+ ee(Qe, Ue, ft, ne, i.symbolSize, we, Rt, qt.posMatrix, Dt, Ct, Bt);
+ }
+ }
+ }
+ }
+ function ee(Y, D, J, q, K, de, ne, we, Ue, ft, Zt) {
+ var hr = Y.text.placedSymbolArray, qt = Y.text.dynamicLayoutVertexArray, Ve = Y.icon.dynamicLayoutVertexArray, Qe = {};
+ qt.clear();
+ for (var at = 0; at < hr.length; at++) {
+ var Ct = hr.get(at), Ot = Y.allowVerticalPlacement && !Ct.placedOrientation, Rt = !Ct.hidden && Ct.crossTileID && !Ot ? q[Ct.crossTileID] : null;
+ if (!Rt) ul(Ct.numGlyphs, qt);
+ else {
+ var Bt = new i.Point(Ct.anchorX, Ct.anchorY), Dt = $n(Bt, J ? we : ne), yt = Ma(de.cameraToCenterDistance, Dt.signedDistanceFromCamera), Pt = K.evaluateSizeForFeature(Y.textSizeData, ft, Ct) * yt / i.ONE_EM;
+ J && (Pt *= Y.tilePixelRatio / Ue);
+ for (var ht = Rt.width, ur = Rt.height, br = Rt.anchor, Ur = Rt.textOffset, Di = Rt.textBoxScale, fi = B(br, ht, ur, Ur, Di, Pt), Ti = J ? $n(Bt.add(fi), ne).point : Dt.point.add(D ? fi.rotate(-de.angle) : fi), gn = Y.allowVerticalPlacement && Ct.placedOrientation === i.WritingMode.vertical ? Math.PI / 2 : 0, rn = 0; rn < Ct.numGlyphs; rn++) i.addDynamicAttributes(qt, Ti, gn);
+ Zt && Ct.associatedIconIndex >= 0 && (Qe[Ct.associatedIconIndex] = { shiftedAnchor: Ti, angle: gn });
+ }
+ }
+ if (Zt) {
+ Ve.clear();
+ for (var Ci = Y.icon.placedSymbolArray, Bi = 0; Bi < Ci.length; Bi++) {
+ var Gi = Ci.get(Bi);
+ if (Gi.hidden) ul(Gi.numGlyphs, Ve);
+ else {
+ var sn = Qe[Bi];
+ if (!sn) ul(Gi.numGlyphs, Ve);
+ else for (var zn = 0; zn < Gi.numGlyphs; zn++) i.addDynamicAttributes(Ve, sn.shiftedAnchor, sn.angle);
+ }
+ }
+ Y.icon.dynamicLayoutVertexBuffer.updateData(Ve);
+ }
+ Y.text.dynamicLayoutVertexBuffer.updateData(qt);
+ }
+ function le(Y, D, J) {
+ return J.iconsInText && D ? "symbolTextAndIcon" : Y ? "symbolSDF" : "symbolIcon";
+ }
+ function Oe(Y, D, J, q, K, de, ne, we, Ue, ft, Zt, hr) {
+ for (var qt = Y.context, Ve = qt.gl, Qe = Y.transform, at = we === "map", Ct = Ue === "map", Ot = at && J.layout.get("symbol-placement") !== "point", Rt = at && !Ct && !Ot, Bt = J.layout.get("symbol-sort-key").constantOr(1) !== void 0, Dt = false, yt = Y.depthModeForSublayer(0, wi.ReadOnly), Pt = J.layout.get("text-variable-anchor"), ht = [], ur = 0, br = q; ur < br.length; ur += 1) {
+ var Ur = br[ur], Di = D.getTile(Ur), fi = Di.getBucket(J);
+ if (fi) {
+ var Ti = K ? fi.text : fi.icon;
+ if (!(!Ti || !Ti.segments.get().length)) {
+ var gn = Ti.programConfigurations.get(J.id), rn = K || fi.sdfIcons, Ci = K ? fi.textSizeData : fi.iconSizeData, Bi = Ct || Qe.pitch !== 0, Gi = Y.useProgram(le(rn, K, fi), gn), sn = i.evaluateSizeForZoom(Ci, Qe.zoom), zn = void 0, Ja = [0, 0], co = void 0, ts = void 0, so = null, Yo = void 0;
+ if (K) {
+ if (co = Di.glyphAtlasTexture, ts = Ve.LINEAR, zn = Di.glyphAtlasTexture.size, fi.iconsInText) {
+ Ja = Di.imageAtlasTexture.size, so = Di.imageAtlasTexture;
+ var ms = Ci.kind === "composite" || Ci.kind === "camera";
+ Yo = Bi || Y.options.rotating || Y.options.zooming || ms ? Ve.LINEAR : Ve.NEAREST;
+ }
+ } else {
+ var ou = J.layout.get("icon-size").constantOr(0) !== 1 || fi.iconsNeedLinear;
+ co = Di.imageAtlasTexture, ts = rn || Y.options.rotating || Y.options.zooming || ou || Bi ? Ve.LINEAR : Ve.NEAREST, zn = Di.imageAtlasTexture.size;
+ }
+ var Cv = As(Di, 1, Y.transform.zoom), Lv = _n(Ur.posMatrix, Ct, at, Y.transform, Cv), wd = ya(Ur.posMatrix, Ct, at, Y.transform, Cv), Kv = Pt && fi.hasTextData(), hg = J.layout.get("icon-text-fit") !== "none" && Kv && fi.hasIconData();
+ Ot && No(fi, Ur.posMatrix, Y, K, Lv, wd, Ct, ft);
+ var gp = Y.translatePosMatrix(Ur.posMatrix, Di, de, ne), Td = Ot || K && Pt || hg ? ue : Lv, mp = Y.translatePosMatrix(wd, Di, de, ne, true), Ud = rn && J.paint.get(K ? "text-halo-width" : "icon-halo-width").constantOr(1) !== 0, Ad = void 0;
+ rn ? fi.iconsInText ? Ad = pu(Ci.kind, sn, Rt, Ct, Y, gp, Td, mp, zn, Ja) : Ad = Nc(Ci.kind, sn, Rt, Ct, Y, gp, Td, mp, K, zn) : Ad = Yu(Ci.kind, sn, Rt, Ct, Y, gp, Td, mp, K, zn);
+ var Pv = { program: Gi, buffers: Ti, uniformValues: Ad, atlasTexture: co, atlasTextureIcon: so, atlasInterpolation: ts, atlasInterpolationIcon: Yo, isSDF: rn, hasHalo: Ud };
+ if (Bt && fi.canOverlap) {
+ Dt = true;
+ for (var Jv = Ti.segments.get(), Iv = 0, fy = Jv; Iv < fy.length; Iv += 1) {
+ var dg = fy[Iv];
+ ht.push({ segments: new i.SegmentVector([dg]), sortKey: dg.sortKey, state: Pv });
+ }
+ } else ht.push({ segments: Ti.segments, sortKey: 0, state: Pv });
+ }
+ }
+ }
+ Dt && ht.sort(function(k1, C1) {
+ return k1.sortKey - C1.sortKey;
+ });
+ for (var oh = 0, vg = ht; oh < vg.length; oh += 1) {
+ var hy = vg[oh], Zh = hy.state;
+ if (qt.activeTexture.set(Ve.TEXTURE0), Zh.atlasTexture.bind(Zh.atlasInterpolation, Ve.CLAMP_TO_EDGE), Zh.atlasTextureIcon && (qt.activeTexture.set(Ve.TEXTURE1), Zh.atlasTextureIcon && Zh.atlasTextureIcon.bind(Zh.atlasInterpolationIcon, Ve.CLAMP_TO_EDGE)), Zh.isSDF) {
+ var am = Zh.uniformValues;
+ Zh.hasHalo && (am.u_is_halo = 1, Ze(Zh.buffers, hy.segments, J, Y, Zh.program, yt, Zt, hr, am)), am.u_is_halo = 0;
+ }
+ Ze(Zh.buffers, hy.segments, J, Y, Zh.program, yt, Zt, hr, Zh.uniformValues);
+ }
+ }
+ function Ze(Y, D, J, q, K, de, ne, we, Ue) {
+ var ft = q.context, Zt = ft.gl;
+ K.draw(ft, Zt.TRIANGLES, de, ne, we, Er.disabled, Ue, J.id, Y.layoutVertexBuffer, Y.indexBuffer, D, J.paint, q.transform.zoom, Y.programConfigurations.get(J.id), Y.dynamicLayoutVertexBuffer, Y.opacityVertexBuffer);
+ }
+ function st(Y, D, J, q) {
+ if (Y.renderPass === "translucent") {
+ var K = J.paint.get("circle-opacity"), de = J.paint.get("circle-stroke-width"), ne = J.paint.get("circle-stroke-opacity"), we = J.layout.get("circle-sort-key").constantOr(1) !== void 0;
+ if (!(K.constantOr(1) === 0 && (de.constantOr(1) === 0 || ne.constantOr(1) === 0))) {
+ for (var Ue = Y.context, ft = Ue.gl, Zt = Y.depthModeForSublayer(0, wi.ReadOnly), hr = Fn.disabled, qt = Y.colorModeForRenderPass(), Ve = [], Qe = 0; Qe < q.length; Qe++) {
+ var at = q[Qe], Ct = D.getTile(at), Ot = Ct.getBucket(J);
+ if (Ot) {
+ var Rt = Ot.programConfigurations.get(J.id), Bt = Y.useProgram("circle", Rt), Dt = Ot.layoutVertexBuffer, yt = Ot.indexBuffer, Pt = Xt(Y, at, Ct, J), ht = { programConfiguration: Rt, program: Bt, layoutVertexBuffer: Dt, indexBuffer: yt, uniformValues: Pt };
+ if (we) for (var ur = Ot.segments.get(), br = 0, Ur = ur; br < Ur.length; br += 1) {
+ var Di = Ur[br];
+ Ve.push({ segments: new i.SegmentVector([Di]), sortKey: Di.sortKey, state: ht });
+ }
+ else Ve.push({ segments: Ot.segments, sortKey: 0, state: ht });
+ }
+ }
+ we && Ve.sort(function(co, ts) {
+ return co.sortKey - ts.sortKey;
+ });
+ for (var fi = 0, Ti = Ve; fi < Ti.length; fi += 1) {
+ var gn = Ti[fi], rn = gn.state, Ci = rn.programConfiguration, Bi = rn.program, Gi = rn.layoutVertexBuffer, sn = rn.indexBuffer, zn = rn.uniformValues, Ja = gn.segments;
+ Bi.draw(Ue, ft.TRIANGLES, Zt, hr, qt, Er.disabled, zn, J.id, Gi, sn, Ja, J.paint, Y.transform.zoom, Ci);
+ }
+ }
+ }
+ }
+ function Tt(Y, D, J, q) {
+ if (J.paint.get("heatmap-opacity") !== 0) if (Y.renderPass === "offscreen") {
+ var K = Y.context, de = K.gl, ne = Fn.disabled, we = new wt([de.ONE, de.ONE], i.Color.transparent, [true, true, true, true]);
+ Yt(K, Y, J), K.clear({ color: i.Color.transparent });
+ for (var Ue = 0; Ue < q.length; Ue++) {
+ var ft = q[Ue];
+ if (!D.hasRenderableParent(ft)) {
+ var Zt = D.getTile(ft), hr = Zt.getBucket(J);
+ if (hr) {
+ var qt = hr.programConfigurations.get(J.id), Ve = Y.useProgram("heatmap", qt), Qe = Y.transform, at = Qe.zoom;
+ Ve.draw(K, de.TRIANGLES, wi.disabled, ne, we, Er.disabled, on(ft.posMatrix, Zt, at, J.paint.get("heatmap-intensity")), J.id, hr.layoutVertexBuffer, hr.indexBuffer, hr.segments, J.paint, Y.transform.zoom, qt);
+ }
+ }
+ }
+ K.viewport.set([0, 0, Y.width, Y.height]);
+ } else Y.renderPass === "translucent" && (Y.context.setColorMode(Y.colorModeForRenderPass()), xr(Y, J));
+ }
+ function Yt(Y, D, J) {
+ var q = Y.gl;
+ Y.activeTexture.set(q.TEXTURE1), Y.viewport.set([0, 0, D.width / 4, D.height / 4]);
+ var K = J.heatmapFbo;
+ if (K) q.bindTexture(q.TEXTURE_2D, K.colorAttachment.get()), Y.bindFramebuffer.set(K.framebuffer);
+ else {
+ var de = q.createTexture();
+ q.bindTexture(q.TEXTURE_2D, de), q.texParameteri(q.TEXTURE_2D, q.TEXTURE_WRAP_S, q.CLAMP_TO_EDGE), q.texParameteri(q.TEXTURE_2D, q.TEXTURE_WRAP_T, q.CLAMP_TO_EDGE), q.texParameteri(q.TEXTURE_2D, q.TEXTURE_MIN_FILTER, q.LINEAR), q.texParameteri(q.TEXTURE_2D, q.TEXTURE_MAG_FILTER, q.LINEAR), K = J.heatmapFbo = Y.createFramebuffer(D.width / 4, D.height / 4, false), Kt(Y, D, de, K);
+ }
+ }
+ function Kt(Y, D, J, q) {
+ var K = Y.gl, de = Y.extRenderToTextureHalfFloat ? Y.extTextureHalfFloat.HALF_FLOAT_OES : K.UNSIGNED_BYTE;
+ K.texImage2D(K.TEXTURE_2D, 0, K.RGBA, D.width / 4, D.height / 4, 0, K.RGBA, de, null), q.colorAttachment.set(J);
+ }
+ function xr(Y, D) {
+ var J = Y.context, q = J.gl, K = D.heatmapFbo;
+ if (K) {
+ J.activeTexture.set(q.TEXTURE0), q.bindTexture(q.TEXTURE_2D, K.colorAttachment.get()), J.activeTexture.set(q.TEXTURE1);
+ var de = D.colorRampTexture;
+ de || (de = D.colorRampTexture = new i.Texture(J, D.colorRamp, q.RGBA)), de.bind(q.LINEAR, q.CLAMP_TO_EDGE), Y.useProgram("heatmapTexture").draw(J, q.TRIANGLES, wi.disabled, Fn.disabled, Y.colorModeForRenderPass(), Er.disabled, Fi(Y, D, 0, 1), D.id, Y.viewportBuffer, Y.quadTriangleIndexBuffer, Y.viewportSegments, D.paint, Y.transform.zoom);
+ }
+ }
+ function Ir(Y, D, J, q) {
+ if (Y.renderPass === "translucent") {
+ var K = J.paint.get("line-opacity"), de = J.paint.get("line-width");
+ if (!(K.constantOr(1) === 0 || de.constantOr(1) === 0)) for (var ne = Y.depthModeForSublayer(0, wi.ReadOnly), we = Y.colorModeForRenderPass(), Ue = J.paint.get("line-dasharray"), ft = J.paint.get("line-pattern"), Zt = ft.constantOr(1), hr = J.paint.get("line-gradient"), qt = J.getCrossfadeParameters(), Ve = Zt ? "linePattern" : Ue ? "lineSDF" : hr ? "lineGradient" : "line", Qe = Y.context, at = Qe.gl, Ct = true, Ot = 0, Rt = q; Ot < Rt.length; Ot += 1) {
+ var Bt = Rt[Ot], Dt = D.getTile(Bt);
+ if (!(Zt && !Dt.patternsLoaded())) {
+ var yt = Dt.getBucket(J);
+ if (yt) {
+ var Pt = yt.programConfigurations.get(J.id), ht = Y.context.program.get(), ur = Y.useProgram(Ve, Pt), br = Ct || ur.program !== ht, Ur = ft.constantOr(null);
+ if (Ur && Dt.imageAtlas) {
+ var Di = Dt.imageAtlas, fi = Di.patternPositions[Ur.to.toString()], Ti = Di.patternPositions[Ur.from.toString()];
+ fi && Ti && Pt.setConstantPatternPositions(fi, Ti);
+ }
+ var gn = Zt ? as(Y, Dt, J, qt) : Ue ? ws(Y, Dt, J, Ue, qt) : hr ? Ss(Y, Dt, J, yt.lineClipsArray.length) : Zo(Y, Dt, J);
+ if (Zt) Qe.activeTexture.set(at.TEXTURE0), Dt.imageAtlasTexture.bind(at.LINEAR, at.CLAMP_TO_EDGE), Pt.updatePaintBuffers(qt);
+ else if (Ue && (br || Y.lineAtlas.dirty)) Qe.activeTexture.set(at.TEXTURE0), Y.lineAtlas.bind(Qe);
+ else if (hr) {
+ var rn = yt.gradients[J.id], Ci = rn.texture;
+ if (J.gradientVersion !== rn.version) {
+ var Bi = 256;
+ if (J.stepInterpolant) {
+ var Gi = D.getSource().maxzoom, sn = Bt.canonical.z === Gi ? Math.ceil(1 << Y.transform.maxZoom - Bt.canonical.z) : 1, zn = yt.maxLineLength / i.EXTENT, Ja = 1024, co = zn * Ja * sn;
+ Bi = i.clamp(i.nextPowerOfTwo(co), 256, Qe.maxTextureSize);
+ }
+ rn.gradient = i.renderColorRamp({ expression: J.gradientExpression(), evaluationKey: "lineProgress", resolution: Bi, image: rn.gradient || void 0, clips: yt.lineClipsArray }), rn.texture ? rn.texture.update(rn.gradient) : rn.texture = new i.Texture(Qe, rn.gradient, at.RGBA), rn.version = J.gradientVersion, Ci = rn.texture;
+ }
+ Qe.activeTexture.set(at.TEXTURE0), Ci.bind(J.stepInterpolant ? at.NEAREST : at.LINEAR, at.CLAMP_TO_EDGE);
+ }
+ ur.draw(Qe, at.TRIANGLES, ne, Y.stencilModeForClipping(Bt), we, Er.disabled, gn, J.id, yt.layoutVertexBuffer, yt.indexBuffer, yt.segments, J.paint, Y.transform.zoom, Pt, yt.layoutVertexBuffer2), Ct = false;
+ }
+ }
+ }
+ }
+ }
+ function ve(Y, D, J, q) {
+ var K = J.paint.get("fill-color"), de = J.paint.get("fill-opacity");
+ if (de.constantOr(1) !== 0) {
+ var ne = Y.colorModeForRenderPass(), we = J.paint.get("fill-pattern"), Ue = Y.opaquePassEnabledForLayer() && !we.constantOr(1) && K.constantOr(i.Color.transparent).a === 1 && de.constantOr(0) === 1 ? "opaque" : "translucent";
+ if (Y.renderPass === Ue) {
+ var ft = Y.depthModeForSublayer(1, Y.renderPass === "opaque" ? wi.ReadWrite : wi.ReadOnly);
+ be(Y, D, J, q, ft, ne, false);
+ }
+ if (Y.renderPass === "translucent" && J.paint.get("fill-antialias")) {
+ var Zt = Y.depthModeForSublayer(J.getPaintProperty("fill-outline-color") ? 2 : 0, wi.ReadOnly);
+ be(Y, D, J, q, Zt, ne, true);
+ }
+ }
+ }
+ function be(Y, D, J, q, K, de, ne) {
+ var we = Y.context.gl, Ue = J.paint.get("fill-pattern"), ft = Ue && Ue.constantOr(1), Zt = J.getCrossfadeParameters(), hr, qt, Ve, Qe, at;
+ ne ? (qt = ft && !J.getPaintProperty("fill-outline-color") ? "fillOutlinePattern" : "fillOutline", hr = we.LINES) : (qt = ft ? "fillPattern" : "fill", hr = we.TRIANGLES);
+ for (var Ct = 0, Ot = q; Ct < Ot.length; Ct += 1) {
+ var Rt = Ot[Ct], Bt = D.getTile(Rt);
+ if (!(ft && !Bt.patternsLoaded())) {
+ var Dt = Bt.getBucket(J);
+ if (Dt) {
+ var yt = Dt.programConfigurations.get(J.id), Pt = Y.useProgram(qt, yt);
+ ft && (Y.context.activeTexture.set(we.TEXTURE0), Bt.imageAtlasTexture.bind(we.LINEAR, we.CLAMP_TO_EDGE), yt.updatePaintBuffers(Zt));
+ var ht = Ue.constantOr(null);
+ if (ht && Bt.imageAtlas) {
+ var ur = Bt.imageAtlas, br = ur.patternPositions[ht.to.toString()], Ur = ur.patternPositions[ht.from.toString()];
+ br && Ur && yt.setConstantPatternPositions(br, Ur);
+ }
+ var Di = Y.translatePosMatrix(Rt.posMatrix, Bt, J.paint.get("fill-translate"), J.paint.get("fill-translate-anchor"));
+ if (!ne) Qe = Dt.indexBuffer, at = Dt.segments, Ve = ft ? cf(Di, Y, Zt, Bt) : qc(Di);
+ else {
+ Qe = Dt.indexBuffer2, at = Dt.segments2;
+ var fi = [we.drawingBufferWidth, we.drawingBufferHeight];
+ Ve = qt === "fillOutlinePattern" && ft ? Bc(Di, Y, Zt, Bt, fi) : fc(Di, fi);
+ }
+ Pt.draw(Y.context, hr, K, Y.stencilModeForClipping(Rt), de, Er.disabled, Ve, J.id, Dt.layoutVertexBuffer, Qe, at, J.paint, Y.transform.zoom, yt);
+ }
+ }
+ }
+ }
+ function Re(Y, D, J, q) {
+ var K = J.paint.get("fill-extrusion-opacity");
+ if (K !== 0 && Y.renderPass === "translucent") {
+ var de = new wi(Y.context.gl.LEQUAL, wi.ReadWrite, Y.depthRangeFor3D);
+ if (K === 1 && !J.paint.get("fill-extrusion-pattern").constantOr(1)) {
+ var ne = Y.colorModeForRenderPass();
+ qe(Y, D, J, q, de, Fn.disabled, ne);
+ } else qe(Y, D, J, q, de, Fn.disabled, wt.disabled), qe(Y, D, J, q, de, Y.stencilModeFor3D(), Y.colorModeForRenderPass());
+ }
+ }
+ function qe(Y, D, J, q, K, de, ne) {
+ for (var we = Y.context, Ue = we.gl, ft = J.paint.get("fill-extrusion-pattern"), Zt = ft.constantOr(1), hr = J.getCrossfadeParameters(), qt = J.paint.get("fill-extrusion-opacity"), Ve = 0, Qe = q; Ve < Qe.length; Ve += 1) {
+ var at = Qe[Ve], Ct = D.getTile(at), Ot = Ct.getBucket(J);
+ if (Ot) {
+ var Rt = Ot.programConfigurations.get(J.id), Bt = Y.useProgram(Zt ? "fillExtrusionPattern" : "fillExtrusion", Rt);
+ Zt && (Y.context.activeTexture.set(Ue.TEXTURE0), Ct.imageAtlasTexture.bind(Ue.LINEAR, Ue.CLAMP_TO_EDGE), Rt.updatePaintBuffers(hr));
+ var Dt = ft.constantOr(null);
+ if (Dt && Ct.imageAtlas) {
+ var yt = Ct.imageAtlas, Pt = yt.patternPositions[Dt.to.toString()], ht = yt.patternPositions[Dt.from.toString()];
+ Pt && ht && Rt.setConstantPatternPositions(Pt, ht);
+ }
+ var ur = Y.translatePosMatrix(at.posMatrix, Ct, J.paint.get("fill-extrusion-translate"), J.paint.get("fill-extrusion-translate-anchor")), br = J.paint.get("fill-extrusion-vertical-gradient"), Ur = Zt ? Zu(ur, Y, br, qt, at, hr, Ct) : ah(ur, Y, br, qt);
+ Bt.draw(we, we.gl.TRIANGLES, K, de, ne, Er.backCCW, Ur, J.id, Ot.layoutVertexBuffer, Ot.indexBuffer, Ot.segments, J.paint, Y.transform.zoom, Rt);
+ }
+ }
+ }
+ function et(Y, D, J, q) {
+ if (!(Y.renderPass !== "offscreen" && Y.renderPass !== "translucent")) {
+ for (var K = Y.context, de = Y.depthModeForSublayer(0, wi.ReadOnly), ne = Y.colorModeForRenderPass(), we = Y.renderPass === "translucent" ? Y.stencilConfigForOverlap(q) : [{}, q], Ue = we[0], ft = we[1], Zt = 0, hr = ft; Zt < hr.length; Zt += 1) {
+ var qt = hr[Zt], Ve = D.getTile(qt);
+ Ve.needsHillshadePrepare && Y.renderPass === "offscreen" ? it(Y, Ve, J, de, Fn.disabled, ne) : Y.renderPass === "translucent" && Xe(Y, Ve, J, de, Ue[qt.overscaledZ], ne);
+ }
+ K.viewport.set([0, 0, Y.width, Y.height]);
+ }
+ }
+ function Xe(Y, D, J, q, K, de) {
+ var ne = Y.context, we = ne.gl, Ue = D.fbo;
+ if (Ue) {
+ var ft = Y.useProgram("hillshade");
+ ne.activeTexture.set(we.TEXTURE0), we.bindTexture(we.TEXTURE_2D, Ue.colorAttachment.get());
+ var Zt = Ra(Y, D, J);
+ ft.draw(ne, we.TRIANGLES, q, K, de, Er.disabled, Zt, J.id, Y.rasterBoundsBuffer, Y.quadTriangleIndexBuffer, Y.rasterBoundsSegments);
+ }
+ }
+ function it(Y, D, J, q, K, de) {
+ var ne = Y.context, we = ne.gl, Ue = D.dem;
+ if (Ue && Ue.data) {
+ var ft = Ue.dim, Zt = Ue.stride, hr = Ue.getPixels();
+ if (ne.activeTexture.set(we.TEXTURE1), ne.pixelStoreUnpackPremultiplyAlpha.set(false), D.demTexture = D.demTexture || Y.getTileTexture(Zt), D.demTexture) {
+ var qt = D.demTexture;
+ qt.update(hr, { premultiply: false }), qt.bind(we.NEAREST, we.CLAMP_TO_EDGE);
+ } else D.demTexture = new i.Texture(ne, hr, we.RGBA, { premultiply: false }), D.demTexture.bind(we.NEAREST, we.CLAMP_TO_EDGE);
+ ne.activeTexture.set(we.TEXTURE0);
+ var Ve = D.fbo;
+ if (!Ve) {
+ var Qe = new i.Texture(ne, { width: ft, height: ft, data: null }, we.RGBA);
+ Qe.bind(we.LINEAR, we.CLAMP_TO_EDGE), Ve = D.fbo = ne.createFramebuffer(ft, ft, true), Ve.colorAttachment.set(Qe.texture);
+ }
+ ne.bindFramebuffer.set(Ve.framebuffer), ne.viewport.set([0, 0, ft, ft]), Y.useProgram("hillshadePrepare").draw(ne, we.TRIANGLES, q, K, de, Er.disabled, La(D.tileID, Ue), J.id, Y.rasterBoundsBuffer, Y.quadTriangleIndexBuffer, Y.rasterBoundsSegments), D.needsHillshadePrepare = false;
+ }
+ }
+ function Ft(Y, D, J, q) {
+ if (Y.renderPass === "translucent" && J.paint.get("raster-opacity") !== 0 && q.length) for (var K = Y.context, de = K.gl, ne = D.getSource(), we = Y.useProgram("raster"), Ue = Y.colorModeForRenderPass(), ft = ne instanceof Le ? [{}, q] : Y.stencilConfigForOverlap(q), Zt = ft[0], hr = ft[1], qt = hr[hr.length - 1].overscaledZ, Ve = !Y.options.moving, Qe = 0, at = hr; Qe < at.length; Qe += 1) {
+ var Ct = at[Qe], Ot = Y.depthModeForSublayer(Ct.overscaledZ - qt, J.paint.get("raster-opacity") === 1 ? wi.ReadWrite : wi.ReadOnly, de.LESS), Rt = D.getTile(Ct), Bt = Y.transform.calculatePosMatrix(Ct.toUnwrapped(), Ve);
+ Rt.registerFadeDuration(J.paint.get("raster-fade-duration"));
+ var Dt = D.findLoadedParent(Ct, 0), yt = Ht(Rt, Dt, D, J, Y.transform), Pt = void 0, ht = void 0, ur = J.paint.get("raster-resampling") === "nearest" ? de.NEAREST : de.LINEAR;
+ K.activeTexture.set(de.TEXTURE0), Rt.texture.bind(ur, de.CLAMP_TO_EDGE, de.LINEAR_MIPMAP_NEAREST), K.activeTexture.set(de.TEXTURE1), Dt ? (Dt.texture.bind(ur, de.CLAMP_TO_EDGE, de.LINEAR_MIPMAP_NEAREST), Pt = Math.pow(2, Dt.tileID.overscaledZ - Rt.tileID.overscaledZ), ht = [Rt.tileID.canonical.x * Pt % 1, Rt.tileID.canonical.y * Pt % 1]) : Rt.texture.bind(ur, de.CLAMP_TO_EDGE, de.LINEAR_MIPMAP_NEAREST);
+ var br = Ls(Bt, ht || [0, 0], Pt || 1, yt, J);
+ ne instanceof Le ? we.draw(K, de.TRIANGLES, Ot, Fn.disabled, Ue, Er.disabled, br, J.id, ne.boundsBuffer, Y.quadTriangleIndexBuffer, ne.boundsSegments) : we.draw(K, de.TRIANGLES, Ot, Zt[Ct.overscaledZ], Ue, Er.disabled, br, J.id, Y.rasterBoundsBuffer, Y.quadTriangleIndexBuffer, Y.rasterBoundsSegments);
+ }
+ }
+ function Ht(Y, D, J, q, K) {
+ var de = q.paint.get("raster-fade-duration");
+ if (de > 0) {
+ var ne = i.browser.now(), we = (ne - Y.timeAdded) / de, Ue = D ? (ne - D.timeAdded) / de : -1, ft = J.getSource(), Zt = K.coveringZoomLevel({ tileSize: ft.tileSize, roundZoom: ft.roundZoom }), hr = !D || Math.abs(D.tileID.overscaledZ - Zt) > Math.abs(Y.tileID.overscaledZ - Zt), qt = hr && Y.refreshedUponExpiration ? 1 : i.clamp(hr ? we : 1 - Ue, 0, 1);
+ return Y.refreshedUponExpiration && we >= 1 && (Y.refreshedUponExpiration = false), D ? { opacity: 1, mix: 1 - qt } : { opacity: qt, mix: 0 };
+ } else return { opacity: 1, mix: 0 };
+ }
+ function tr(Y, D, J) {
+ var q = J.paint.get("background-color"), K = J.paint.get("background-opacity");
+ if (K !== 0) {
+ var de = Y.context, ne = de.gl, we = Y.transform, Ue = we.tileSize, ft = J.paint.get("background-pattern");
+ if (!Y.isPatternMissing(ft)) {
+ var Zt = !ft && q.a === 1 && K === 1 && Y.opaquePassEnabledForLayer() ? "opaque" : "translucent";
+ if (Y.renderPass === Zt) {
+ var hr = Fn.disabled, qt = Y.depthModeForSublayer(0, Zt === "opaque" ? wi.ReadWrite : wi.ReadOnly), Ve = Y.colorModeForRenderPass(), Qe = Y.useProgram(ft ? "backgroundPattern" : "background"), at = we.coveringTiles({ tileSize: Ue });
+ ft && (de.activeTexture.set(ne.TEXTURE0), Y.imageManager.bind(Y.context));
+ for (var Ct = J.getCrossfadeParameters(), Ot = 0, Rt = at; Ot < Rt.length; Ot += 1) {
+ var Bt = Rt[Ot], Dt = Y.transform.calculatePosMatrix(Bt.toUnwrapped()), yt = ft ? Ua(Dt, K, Y, ft, { tileID: Bt, tileSize: Ue }, Ct) : Ac(Dt, K, q);
+ Qe.draw(de, ne.TRIANGLES, qt, hr, Ve, Er.disabled, yt, J.id, Y.tileExtentBuffer, Y.quadTriangleIndexBuffer, Y.tileExtentSegments);
+ }
+ }
+ }
+ }
+ }
+ var dr = new i.Color(1, 0, 0, 1), Sr = new i.Color(0, 1, 0, 1), Or = new i.Color(0, 0, 1, 1), Wr = new i.Color(1, 0, 1, 1), ni = new i.Color(0, 1, 1, 1);
+ function Pi(Y) {
+ var D = Y.transform.padding, J = 3;
+ ln(Y, Y.transform.height - (D.top || 0), J, dr), ln(Y, D.bottom || 0, J, Sr), Cn(Y, D.left || 0, J, Or), Cn(Y, Y.transform.width - (D.right || 0), J, Wr);
+ var q = Y.transform.centerPoint;
+ cn(Y, q.x, Y.transform.height - q.y, ni);
+ }
+ function cn(Y, D, J, q) {
+ var K = 20, de = 2;
+ Kn(Y, D - de / 2, J - K / 2, de, K, q), Kn(Y, D - K / 2, J - de / 2, K, de, q);
+ }
+ function ln(Y, D, J, q) {
+ Kn(Y, 0, D + J / 2, Y.transform.width, J, q);
+ }
+ function Cn(Y, D, J, q) {
+ Kn(Y, D - J / 2, 0, J, Y.transform.height, q);
+ }
+ function Kn(Y, D, J, q, K, de) {
+ var ne = Y.context, we = ne.gl;
+ we.enable(we.SCISSOR_TEST), we.scissor(D * i.browser.devicePixelRatio, J * i.browser.devicePixelRatio, q * i.browser.devicePixelRatio, K * i.browser.devicePixelRatio), ne.clear({ color: de }), we.disable(we.SCISSOR_TEST);
+ }
+ function Aa(Y, D, J) {
+ for (var q = 0; q < J.length; q++) fa(Y, D, J[q]);
+ }
+ function fa(Y, D, J) {
+ var q = Y.context, K = q.gl, de = J.posMatrix, ne = Y.useProgram("debug"), we = wi.disabled, Ue = Fn.disabled, ft = Y.colorModeForRenderPass(), Zt = "$debug";
+ q.activeTexture.set(K.TEXTURE0), Y.emptyTexture.bind(K.LINEAR, K.CLAMP_TO_EDGE), ne.draw(q, K.LINE_STRIP, we, Ue, ft, Er.disabled, dn(de, i.Color.red), Zt, Y.debugBuffer, Y.tileBorderIndexBuffer, Y.debugSegments);
+ var hr = D.getTileByID(J.key).latestRawTileData, qt = hr && hr.byteLength || 0, Ve = Math.floor(qt / 1024), Qe = D.getTile(J).tileSize, at = 512 / Math.min(Qe, 512) * (J.overscaledZ / Y.transform.zoom) * 0.5, Ct = J.canonical.toString();
+ J.overscaledZ !== J.canonical.z && (Ct += " => " + J.overscaledZ);
+ var Ot = Ct + " " + Ve + "kb";
+ $a(Y, Ot), ne.draw(q, K.TRIANGLES, we, Ue, wt.alphaBlended, Er.disabled, dn(de, i.Color.transparent, at), Zt, Y.debugBuffer, Y.quadTriangleIndexBuffer, Y.debugSegments);
+ }
+ function $a(Y, D) {
+ Y.initDebugOverlayCanvas();
+ var J = Y.debugOverlayCanvas, q = Y.context.gl, K = Y.debugOverlayCanvas.getContext("2d");
+ K.clearRect(0, 0, J.width, J.height), K.shadowColor = "white", K.shadowBlur = 2, K.lineWidth = 1.5, K.strokeStyle = "white", K.textBaseline = "top", K.font = "bold 36px Open Sans, sans-serif", K.fillText(D, 5, 5), K.strokeText(D, 5, 5), Y.debugOverlayTexture.update(J), Y.debugOverlayTexture.bind(q.LINEAR, q.CLAMP_TO_EDGE);
+ }
+ function Co(Y, D, J) {
+ var q = Y.context, K = J.implementation;
+ if (Y.renderPass === "offscreen") {
+ var de = K.prerender;
+ de && (Y.setCustomLayerDefaults(), q.setColorMode(Y.colorModeForRenderPass()), de.call(K, q.gl, Y.transform.customLayerMatrix()), q.setDirty(), Y.setBaseState());
+ } else if (Y.renderPass === "translucent") {
+ Y.setCustomLayerDefaults(), q.setColorMode(Y.colorModeForRenderPass()), q.setStencilMode(Fn.disabled);
+ var ne = K.renderingMode === "3d" ? new wi(Y.context.gl.LEQUAL, wi.ReadWrite, Y.depthRangeFor3D) : Y.depthModeForSublayer(0, wi.ReadOnly);
+ q.setDepthMode(ne), K.render(q.gl, Y.transform.customLayerMatrix()), q.setDirty(), Y.setBaseState(), q.bindFramebuffer.set(null);
+ }
+ }
+ var Qa = { symbol: w, circle: st, heatmap: Tt, line: Ir, fill: ve, "fill-extrusion": Re, hillshade: et, raster: Ft, background: tr, debug: Aa, custom: Co }, mo = function(D, J) {
+ this.context = new Xr(D), this.transform = J, this._tileTextures = {}, this.setup(), this.numSublayers = ri.maxUnderzooming + ri.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new Vf(), this.gpuTimers = {};
+ };
+ mo.prototype.resize = function(D, J) {
+ if (this.width = D * i.browser.devicePixelRatio, this.height = J * i.browser.devicePixelRatio, this.context.viewport.set([0, 0, this.width, this.height]), this.style) for (var q = 0, K = this.style._order; q < K.length; q += 1) {
+ var de = K[q];
+ this.style._layers[de].resize();
+ }
+ }, mo.prototype.setup = function() {
+ var D = this.context, J = new i.StructArrayLayout2i4();
+ J.emplaceBack(0, 0), J.emplaceBack(i.EXTENT, 0), J.emplaceBack(0, i.EXTENT), J.emplaceBack(i.EXTENT, i.EXTENT), this.tileExtentBuffer = D.createVertexBuffer(J, oc.members), this.tileExtentSegments = i.SegmentVector.simpleSegment(0, 0, 4, 2);
+ var q = new i.StructArrayLayout2i4();
+ q.emplaceBack(0, 0), q.emplaceBack(i.EXTENT, 0), q.emplaceBack(0, i.EXTENT), q.emplaceBack(i.EXTENT, i.EXTENT), this.debugBuffer = D.createVertexBuffer(q, oc.members), this.debugSegments = i.SegmentVector.simpleSegment(0, 0, 4, 5);
+ var K = new i.StructArrayLayout4i8();
+ K.emplaceBack(0, 0, 0, 0), K.emplaceBack(i.EXTENT, 0, i.EXTENT, 0), K.emplaceBack(0, i.EXTENT, 0, i.EXTENT), K.emplaceBack(i.EXTENT, i.EXTENT, i.EXTENT, i.EXTENT), this.rasterBoundsBuffer = D.createVertexBuffer(K, Ce.members), this.rasterBoundsSegments = i.SegmentVector.simpleSegment(0, 0, 4, 2);
+ var de = new i.StructArrayLayout2i4();
+ de.emplaceBack(0, 0), de.emplaceBack(1, 0), de.emplaceBack(0, 1), de.emplaceBack(1, 1), this.viewportBuffer = D.createVertexBuffer(de, oc.members), this.viewportSegments = i.SegmentVector.simpleSegment(0, 0, 4, 2);
+ var ne = new i.StructArrayLayout1ui2();
+ ne.emplaceBack(0), ne.emplaceBack(1), ne.emplaceBack(3), ne.emplaceBack(2), ne.emplaceBack(0), this.tileBorderIndexBuffer = D.createIndexBuffer(ne);
+ var we = new i.StructArrayLayout3ui6();
+ we.emplaceBack(0, 1, 2), we.emplaceBack(2, 1, 3), this.quadTriangleIndexBuffer = D.createIndexBuffer(we), this.emptyTexture = new i.Texture(D, { width: 1, height: 1, data: new Uint8Array([0, 0, 0, 0]) }, D.gl.RGBA);
+ var Ue = this.context.gl;
+ this.stencilClearMode = new Fn({ func: Ue.ALWAYS, mask: 0 }, 0, 255, Ue.ZERO, Ue.ZERO, Ue.ZERO);
+ }, mo.prototype.clearStencil = function() {
+ var D = this.context, J = D.gl;
+ this.nextStencilID = 1, this.currentStencilSource = void 0;
+ var q = i.create();
+ i.ortho(q, 0, this.width, this.height, 0, 0, 1), i.scale(q, q, [J.drawingBufferWidth, J.drawingBufferHeight, 0]), this.useProgram("clippingMask").draw(D, J.TRIANGLES, wi.disabled, this.stencilClearMode, wt.disabled, Er.disabled, Nn(q), "$clipping", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments);
+ }, mo.prototype._renderTileClippingMasks = function(D, J) {
+ if (!(this.currentStencilSource === D.source || !D.isTileClipped() || !J || !J.length)) {
+ this.currentStencilSource = D.source;
+ var q = this.context, K = q.gl;
+ this.nextStencilID + J.length > 256 && this.clearStencil(), q.setColorMode(wt.disabled), q.setDepthMode(wi.disabled);
+ var de = this.useProgram("clippingMask");
+ this._tileClippingMaskIDs = {};
+ for (var ne = 0, we = J; ne < we.length; ne += 1) {
+ var Ue = we[ne], ft = this._tileClippingMaskIDs[Ue.key] = this.nextStencilID++;
+ de.draw(q, K.TRIANGLES, wi.disabled, new Fn({ func: K.ALWAYS, mask: 0 }, ft, 255, K.KEEP, K.KEEP, K.REPLACE), wt.disabled, Er.disabled, Nn(Ue.posMatrix), "$clipping", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments);
+ }
+ }
+ }, mo.prototype.stencilModeFor3D = function() {
+ this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil();
+ var D = this.nextStencilID++, J = this.context.gl;
+ return new Fn({ func: J.NOTEQUAL, mask: 255 }, D, 255, J.KEEP, J.KEEP, J.REPLACE);
+ }, mo.prototype.stencilModeForClipping = function(D) {
+ var J = this.context.gl;
+ return new Fn({ func: J.EQUAL, mask: 255 }, this._tileClippingMaskIDs[D.key], 0, J.KEEP, J.KEEP, J.REPLACE);
+ }, mo.prototype.stencilConfigForOverlap = function(D) {
+ var J, q = this.context.gl, K = D.sort(function(ft, Zt) {
+ return Zt.overscaledZ - ft.overscaledZ;
+ }), de = K[K.length - 1].overscaledZ, ne = K[0].overscaledZ - de + 1;
+ if (ne > 1) {
+ this.currentStencilSource = void 0, this.nextStencilID + ne > 256 && this.clearStencil();
+ for (var we = {}, Ue = 0; Ue < ne; Ue++) we[Ue + de] = new Fn({ func: q.GEQUAL, mask: 255 }, Ue + this.nextStencilID, 255, q.KEEP, q.KEEP, q.REPLACE);
+ return this.nextStencilID += ne, [we, K];
+ }
+ return [(J = {}, J[de] = Fn.disabled, J), K];
+ }, mo.prototype.colorModeForRenderPass = function() {
+ var D = this.context.gl;
+ if (this._showOverdrawInspector) {
+ var J = 8, q = 1 / J;
+ return new wt([D.CONSTANT_COLOR, D.ONE], new i.Color(q, q, q, 0), [true, true, true, true]);
+ } else return this.renderPass === "opaque" ? wt.unblended : wt.alphaBlended;
+ }, mo.prototype.depthModeForSublayer = function(D, J, q) {
+ if (!this.opaquePassEnabledForLayer()) return wi.disabled;
+ var K = 1 - ((1 + this.currentLayer) * this.numSublayers + D) * this.depthEpsilon;
+ return new wi(q || this.context.gl.LEQUAL, J, [K, K]);
+ }, mo.prototype.opaquePassEnabledForLayer = function() {
+ return this.currentLayer < this.opaquePassCutoff;
+ }, mo.prototype.render = function(D, J) {
+ var q = this;
+ this.style = D, this.options = J, this.lineAtlas = D.lineAtlas, this.imageManager = D.imageManager, this.glyphManager = D.glyphManager, this.symbolFadeChange = D.placement.symbolFadeChange(i.browser.now()), this.imageManager.beginFrame();
+ var K = this.style._order, de = this.style.sourceCaches;
+ for (var ne in de) {
+ var we = de[ne];
+ we.used && we.prepare(this.context);
+ }
+ var Ue = {}, ft = {}, Zt = {};
+ for (var hr in de) {
+ var qt = de[hr];
+ Ue[hr] = qt.getVisibleCoordinates(), ft[hr] = Ue[hr].slice().reverse(), Zt[hr] = qt.getVisibleCoordinates(true).reverse();
+ }
+ this.opaquePassCutoff = 1 / 0;
+ for (var Ve = 0; Ve < K.length; Ve++) {
+ var Qe = K[Ve];
+ if (this.style._layers[Qe].is3D()) {
+ this.opaquePassCutoff = Ve;
+ break;
+ }
+ }
+ this.renderPass = "offscreen";
+ for (var at = 0, Ct = K; at < Ct.length; at += 1) {
+ var Ot = Ct[at], Rt = this.style._layers[Ot];
+ if (!(!Rt.hasOffscreenPass() || Rt.isHidden(this.transform.zoom))) {
+ var Bt = ft[Rt.source];
+ Rt.type !== "custom" && !Bt.length || this.renderLayer(this, de[Rt.source], Rt, Bt);
+ }
+ }
+ for (this.context.bindFramebuffer.set(null), this.context.clear({ color: J.showOverdrawInspector ? i.Color.black : i.Color.transparent, depth: 1 }), this.clearStencil(), this._showOverdrawInspector = J.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (D._order.length + 2) * this.numSublayers * this.depthEpsilon], this.renderPass = "opaque", this.currentLayer = K.length - 1; this.currentLayer >= 0; this.currentLayer--) {
+ var Dt = this.style._layers[K[this.currentLayer]], yt = de[Dt.source], Pt = Ue[Dt.source];
+ this._renderTileClippingMasks(Dt, Pt), this.renderLayer(this, yt, Dt, Pt);
+ }
+ for (this.renderPass = "translucent", this.currentLayer = 0; this.currentLayer < K.length; this.currentLayer++) {
+ var ht = this.style._layers[K[this.currentLayer]], ur = de[ht.source], br = (ht.type === "symbol" ? Zt : ft)[ht.source];
+ this._renderTileClippingMasks(ht, Ue[ht.source]), this.renderLayer(this, ur, ht, br);
+ }
+ if (this.options.showTileBoundaries) {
+ var Ur, Di, fi = i.values(this.style._layers);
+ fi.forEach(function(Ti) {
+ Ti.source && !Ti.isHidden(q.transform.zoom) && (Ti.source !== (Di && Di.id) && (Di = q.style.sourceCaches[Ti.source]), (!Ur || Ur.getSource().maxzoom < Di.getSource().maxzoom) && (Ur = Di));
+ }), Ur && Qa.debug(this, Ur, Ur.getVisibleCoordinates());
+ }
+ this.options.showPadding && Pi(this), this.context.setDefault();
+ }, mo.prototype.renderLayer = function(D, J, q, K) {
+ q.isHidden(this.transform.zoom) || q.type !== "background" && q.type !== "custom" && !K.length || (this.id = q.id, this.gpuTimingStart(q), Qa[q.type](D, J, q, K, this.style.placement.variableOffsets), this.gpuTimingEnd());
+ }, mo.prototype.gpuTimingStart = function(D) {
+ if (this.options.gpuTiming) {
+ var J = this.context.extTimerQuery, q = this.gpuTimers[D.id];
+ q || (q = this.gpuTimers[D.id] = { calls: 0, cpuTime: 0, query: J.createQueryEXT() }), q.calls++, J.beginQueryEXT(J.TIME_ELAPSED_EXT, q.query);
+ }
+ }, mo.prototype.gpuTimingEnd = function() {
+ if (this.options.gpuTiming) {
+ var D = this.context.extTimerQuery;
+ D.endQueryEXT(D.TIME_ELAPSED_EXT);
+ }
+ }, mo.prototype.collectGpuTimers = function() {
+ var D = this.gpuTimers;
+ return this.gpuTimers = {}, D;
+ }, mo.prototype.queryGpuTimers = function(D) {
+ var J = {};
+ for (var q in D) {
+ var K = D[q], de = this.context.extTimerQuery, ne = de.getQueryObjectEXT(K.query, de.QUERY_RESULT_EXT) / (1e3 * 1e3);
+ de.deleteQueryEXT(K.query), J[q] = ne;
+ }
+ return J;
+ }, mo.prototype.translatePosMatrix = function(D, J, q, K, de) {
+ if (!q[0] && !q[1]) return D;
+ var ne = de ? K === "map" ? this.transform.angle : 0 : K === "viewport" ? -this.transform.angle : 0;
+ if (ne) {
+ var we = Math.sin(ne), Ue = Math.cos(ne);
+ q = [q[0] * Ue - q[1] * we, q[0] * we + q[1] * Ue];
+ }
+ var ft = [de ? q[0] : As(J, q[0], this.transform.zoom), de ? q[1] : As(J, q[1], this.transform.zoom), 0], Zt = new Float32Array(16);
+ return i.translate(Zt, D, ft), Zt;
+ }, mo.prototype.saveTileTexture = function(D) {
+ var J = this._tileTextures[D.size[0]];
+ J ? J.push(D) : this._tileTextures[D.size[0]] = [D];
+ }, mo.prototype.getTileTexture = function(D) {
+ var J = this._tileTextures[D];
+ return J && J.length > 0 ? J.pop() : null;
+ }, mo.prototype.isPatternMissing = function(D) {
+ if (!D) return false;
+ if (!D.from || !D.to) return true;
+ var J = this.imageManager.getPattern(D.from.toString()), q = this.imageManager.getPattern(D.to.toString());
+ return !J || !q;
+ }, mo.prototype.useProgram = function(D, J) {
+ this.cache = this.cache || {};
+ var q = "" + D + (J ? J.cacheKey : "") + (this._showOverdrawInspector ? "/overdraw" : "");
+ return this.cache[q] || (this.cache[q] = new Rf(this.context, D, wf[D], J, oo[D], this._showOverdrawInspector)), this.cache[q];
+ }, mo.prototype.setCustomLayerDefaults = function() {
+ this.context.unbindVAO(), this.context.cullFace.setDefault(), this.context.activeTexture.setDefault(), this.context.pixelStoreUnpack.setDefault(), this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.context.pixelStoreUnpackFlipY.setDefault();
+ }, mo.prototype.setBaseState = function() {
+ var D = this.context.gl;
+ this.context.cullFace.set(false), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(D.FUNC_ADD);
+ }, mo.prototype.initDebugOverlayCanvas = function() {
+ if (this.debugOverlayCanvas == null) {
+ this.debugOverlayCanvas = i.window.document.createElement("canvas"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512;
+ var D = this.context.gl;
+ this.debugOverlayTexture = new i.Texture(this.context, this.debugOverlayCanvas, D.RGBA);
+ }
+ }, mo.prototype.destroy = function() {
+ this.emptyTexture.destroy(), this.debugOverlayTexture && this.debugOverlayTexture.destroy();
+ };
+ var Bo = function(D, J) {
+ this.points = D, this.planes = J;
+ };
+ Bo.fromInvProjectionMatrix = function(D, J, q) {
+ var K = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]], de = Math.pow(2, q), ne = K.map(function(ft) {
+ return i.transformMat4([], ft, D);
+ }).map(function(ft) {
+ return i.scale$1([], ft, 1 / ft[3] / J * de);
+ }), we = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]], Ue = we.map(function(ft) {
+ var Zt = i.sub([], ne[ft[0]], ne[ft[1]]), hr = i.sub([], ne[ft[2]], ne[ft[1]]), qt = i.normalize([], i.cross([], Zt, hr)), Ve = -i.dot(qt, ne[ft[1]]);
+ return qt.concat(Ve);
+ });
+ return new Bo(ne, Ue);
+ };
+ var Ps = function(D, J) {
+ this.min = D, this.max = J, this.center = i.scale$2([], i.add([], this.min, this.max), 0.5);
+ };
+ Ps.prototype.quadrant = function(D) {
+ for (var J = [D % 2 === 0, D < 2], q = i.clone$2(this.min), K = i.clone$2(this.max), de = 0; de < J.length; de++) q[de] = J[de] ? this.min[de] : this.center[de], K[de] = J[de] ? this.center[de] : this.max[de];
+ return K[2] = this.max[2], new Ps(q, K);
+ }, Ps.prototype.distanceX = function(D) {
+ var J = Math.max(Math.min(this.max[0], D[0]), this.min[0]);
+ return J - D[0];
+ }, Ps.prototype.distanceY = function(D) {
+ var J = Math.max(Math.min(this.max[1], D[1]), this.min[1]);
+ return J - D[1];
+ }, Ps.prototype.intersects = function(D) {
+ for (var J = [[this.min[0], this.min[1], 0, 1], [this.max[0], this.min[1], 0, 1], [this.max[0], this.max[1], 0, 1], [this.min[0], this.max[1], 0, 1]], q = true, K = 0; K < D.planes.length; K++) {
+ for (var de = D.planes[K], ne = 0, we = 0; we < J.length; we++) ne += i.dot$1(de, J[we]) >= 0;
+ if (ne === 0) return 0;
+ ne !== J.length && (q = false);
+ }
+ if (q) return 2;
+ for (var Ue = 0; Ue < 3; Ue++) {
+ for (var ft = Number.MAX_VALUE, Zt = -Number.MAX_VALUE, hr = 0; hr < D.points.length; hr++) {
+ var qt = D.points[hr][Ue] - this.min[Ue];
+ ft = Math.min(ft, qt), Zt = Math.max(Zt, qt);
+ }
+ if (Zt < 0 || ft > this.max[Ue] - this.min[Ue]) return 0;
+ }
+ return 1;
+ };
+ var Ts = function(D, J, q, K) {
+ if (D === void 0 && (D = 0), J === void 0 && (J = 0), q === void 0 && (q = 0), K === void 0 && (K = 0), isNaN(D) || D < 0 || isNaN(J) || J < 0 || isNaN(q) || q < 0 || isNaN(K) || K < 0) throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");
+ this.top = D, this.bottom = J, this.left = q, this.right = K;
+ };
+ Ts.prototype.interpolate = function(D, J, q) {
+ return J.top != null && D.top != null && (this.top = i.number(D.top, J.top, q)), J.bottom != null && D.bottom != null && (this.bottom = i.number(D.bottom, J.bottom, q)), J.left != null && D.left != null && (this.left = i.number(D.left, J.left, q)), J.right != null && D.right != null && (this.right = i.number(D.right, J.right, q)), this;
+ }, Ts.prototype.getCenter = function(D, J) {
+ var q = i.clamp((this.left + D - this.right) / 2, 0, D), K = i.clamp((this.top + J - this.bottom) / 2, 0, J);
+ return new i.Point(q, K);
+ }, Ts.prototype.equals = function(D) {
+ return this.top === D.top && this.bottom === D.bottom && this.left === D.left && this.right === D.right;
+ }, Ts.prototype.clone = function() {
+ return new Ts(this.top, this.bottom, this.left, this.right);
+ }, Ts.prototype.toJSON = function() {
+ return { top: this.top, bottom: this.bottom, left: this.left, right: this.right };
+ };
+ var wo = function(D, J, q, K, de) {
+ this.tileSize = 512, this.maxValidLatitude = 85.051129, this._renderWorldCopies = de === void 0 ? true : de, this._minZoom = D || 0, this._maxZoom = J || 22, this._minPitch = q == null ? 0 : q, this._maxPitch = K == null ? 60 : K, this.setMaxBounds(), this.width = 0, this.height = 0, this._center = new i.LngLat(0, 0), this.zoom = 0, this.angle = 0, this._fov = 0.6435011087932844, this._pitch = 0, this._unmodified = true, this._edgeInsets = new Ts(), this._posMatrixCache = {}, this._alignedPosMatrixCache = {};
+ }, To = { minZoom: { configurable: true }, maxZoom: { configurable: true }, minPitch: { configurable: true }, maxPitch: { configurable: true }, renderWorldCopies: { configurable: true }, worldSize: { configurable: true }, centerOffset: { configurable: true }, size: { configurable: true }, bearing: { configurable: true }, pitch: { configurable: true }, fov: { configurable: true }, zoom: { configurable: true }, center: { configurable: true }, padding: { configurable: true }, centerPoint: { configurable: true }, unmodified: { configurable: true }, point: { configurable: true } };
+ wo.prototype.clone = function() {
+ var D = new wo(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies);
+ return D.tileSize = this.tileSize, D.latRange = this.latRange, D.width = this.width, D.height = this.height, D._center = this._center, D.zoom = this.zoom, D.angle = this.angle, D._fov = this._fov, D._pitch = this._pitch, D._unmodified = this._unmodified, D._edgeInsets = this._edgeInsets.clone(), D._calcMatrices(), D;
+ }, To.minZoom.get = function() {
+ return this._minZoom;
+ }, To.minZoom.set = function(Y) {
+ this._minZoom !== Y && (this._minZoom = Y, this.zoom = Math.max(this.zoom, Y));
+ }, To.maxZoom.get = function() {
+ return this._maxZoom;
+ }, To.maxZoom.set = function(Y) {
+ this._maxZoom !== Y && (this._maxZoom = Y, this.zoom = Math.min(this.zoom, Y));
+ }, To.minPitch.get = function() {
+ return this._minPitch;
+ }, To.minPitch.set = function(Y) {
+ this._minPitch !== Y && (this._minPitch = Y, this.pitch = Math.max(this.pitch, Y));
+ }, To.maxPitch.get = function() {
+ return this._maxPitch;
+ }, To.maxPitch.set = function(Y) {
+ this._maxPitch !== Y && (this._maxPitch = Y, this.pitch = Math.min(this.pitch, Y));
+ }, To.renderWorldCopies.get = function() {
+ return this._renderWorldCopies;
+ }, To.renderWorldCopies.set = function(Y) {
+ Y === void 0 ? Y = true : Y === null && (Y = false), this._renderWorldCopies = Y;
+ }, To.worldSize.get = function() {
+ return this.tileSize * this.scale;
+ }, To.centerOffset.get = function() {
+ return this.centerPoint._sub(this.size._div(2));
+ }, To.size.get = function() {
+ return new i.Point(this.width, this.height);
+ }, To.bearing.get = function() {
+ return -this.angle / Math.PI * 180;
+ }, To.bearing.set = function(Y) {
+ var D = -i.wrap(Y, -180, 180) * Math.PI / 180;
+ this.angle !== D && (this._unmodified = false, this.angle = D, this._calcMatrices(), this.rotationMatrix = i.create$2(), i.rotate(this.rotationMatrix, this.rotationMatrix, this.angle));
+ }, To.pitch.get = function() {
+ return this._pitch / Math.PI * 180;
+ }, To.pitch.set = function(Y) {
+ var D = i.clamp(Y, this.minPitch, this.maxPitch) / 180 * Math.PI;
+ this._pitch !== D && (this._unmodified = false, this._pitch = D, this._calcMatrices());
+ }, To.fov.get = function() {
+ return this._fov / Math.PI * 180;
+ }, To.fov.set = function(Y) {
+ Y = Math.max(0.01, Math.min(60, Y)), this._fov !== Y && (this._unmodified = false, this._fov = Y / 180 * Math.PI, this._calcMatrices());
+ }, To.zoom.get = function() {
+ return this._zoom;
+ }, To.zoom.set = function(Y) {
+ var D = Math.min(Math.max(Y, this.minZoom), this.maxZoom);
+ this._zoom !== D && (this._unmodified = false, this._zoom = D, this.scale = this.zoomScale(D), this.tileZoom = Math.floor(D), this.zoomFraction = D - this.tileZoom, this._constrain(), this._calcMatrices());
+ }, To.center.get = function() {
+ return this._center;
+ }, To.center.set = function(Y) {
+ Y.lat === this._center.lat && Y.lng === this._center.lng || (this._unmodified = false, this._center = Y, this._constrain(), this._calcMatrices());
+ }, To.padding.get = function() {
+ return this._edgeInsets.toJSON();
+ }, To.padding.set = function(Y) {
+ this._edgeInsets.equals(Y) || (this._unmodified = false, this._edgeInsets.interpolate(this._edgeInsets, Y, 1), this._calcMatrices());
+ }, To.centerPoint.get = function() {
+ return this._edgeInsets.getCenter(this.width, this.height);
+ }, wo.prototype.isPaddingEqual = function(D) {
+ return this._edgeInsets.equals(D);
+ }, wo.prototype.interpolatePadding = function(D, J, q) {
+ this._unmodified = false, this._edgeInsets.interpolate(D, J, q), this._constrain(), this._calcMatrices();
+ }, wo.prototype.coveringZoomLevel = function(D) {
+ var J = (D.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / D.tileSize));
+ return Math.max(0, J);
+ }, wo.prototype.getVisibleUnwrappedCoordinates = function(D) {
+ var J = [new i.UnwrappedTileID(0, D)];
+ if (this._renderWorldCopies) for (var q = this.pointCoordinate(new i.Point(0, 0)), K = this.pointCoordinate(new i.Point(this.width, 0)), de = this.pointCoordinate(new i.Point(this.width, this.height)), ne = this.pointCoordinate(new i.Point(0, this.height)), we = Math.floor(Math.min(q.x, K.x, de.x, ne.x)), Ue = Math.floor(Math.max(q.x, K.x, de.x, ne.x)), ft = 1, Zt = we - ft; Zt <= Ue + ft; Zt++) Zt !== 0 && J.push(new i.UnwrappedTileID(Zt, D));
+ return J;
+ }, wo.prototype.coveringTiles = function(D) {
+ var J = this.coveringZoomLevel(D), q = J;
+ if (D.minzoom !== void 0 && J < D.minzoom) return [];
+ D.maxzoom !== void 0 && J > D.maxzoom && (J = D.maxzoom);
+ var K = i.MercatorCoordinate.fromLngLat(this.center), de = Math.pow(2, J), ne = [de * K.x, de * K.y, 0], we = Bo.fromInvProjectionMatrix(this.invProjMatrix, this.worldSize, J), Ue = D.minzoom || 0;
+ this.pitch <= 60 && this._edgeInsets.top < 0.1 && (Ue = J);
+ var ft = 3, Zt = function(fi) {
+ return { aabb: new Ps([fi * de, 0, 0], [(fi + 1) * de, de, 0]), zoom: 0, x: 0, y: 0, wrap: fi, fullyVisible: false };
+ }, hr = [], qt = [], Ve = J, Qe = D.reparseOverscaled ? q : J;
+ if (this._renderWorldCopies) for (var at = 1; at <= 3; at++) hr.push(Zt(-at)), hr.push(Zt(at));
+ for (hr.push(Zt(0)); hr.length > 0; ) {
+ var Ct = hr.pop(), Ot = Ct.x, Rt = Ct.y, Bt = Ct.fullyVisible;
+ if (!Bt) {
+ var Dt = Ct.aabb.intersects(we);
+ if (Dt === 0) continue;
+ Bt = Dt === 2;
+ }
+ var yt = Ct.aabb.distanceX(ne), Pt = Ct.aabb.distanceY(ne), ht = Math.max(Math.abs(yt), Math.abs(Pt)), ur = ft + (1 << Ve - Ct.zoom) - 2;
+ if (Ct.zoom === Ve || ht > ur && Ct.zoom >= Ue) {
+ qt.push({ tileID: new i.OverscaledTileID(Ct.zoom === Ve ? Qe : Ct.zoom, Ct.wrap, Ct.zoom, Ot, Rt), distanceSq: i.sqrLen([ne[0] - 0.5 - Ot, ne[1] - 0.5 - Rt]) });
+ continue;
+ }
+ for (var br = 0; br < 4; br++) {
+ var Ur = (Ot << 1) + br % 2, Di = (Rt << 1) + (br >> 1);
+ hr.push({ aabb: Ct.aabb.quadrant(br), zoom: Ct.zoom + 1, x: Ur, y: Di, wrap: Ct.wrap, fullyVisible: Bt });
+ }
+ }
+ return qt.sort(function(fi, Ti) {
+ return fi.distanceSq - Ti.distanceSq;
+ }).map(function(fi) {
+ return fi.tileID;
+ });
+ }, wo.prototype.resize = function(D, J) {
+ this.width = D, this.height = J, this.pixelsToGLUnits = [2 / D, -2 / J], this._constrain(), this._calcMatrices();
+ }, To.unmodified.get = function() {
+ return this._unmodified;
+ }, wo.prototype.zoomScale = function(D) {
+ return Math.pow(2, D);
+ }, wo.prototype.scaleZoom = function(D) {
+ return Math.log(D) / Math.LN2;
+ }, wo.prototype.project = function(D) {
+ var J = i.clamp(D.lat, -this.maxValidLatitude, this.maxValidLatitude);
+ return new i.Point(i.mercatorXfromLng(D.lng) * this.worldSize, i.mercatorYfromLat(J) * this.worldSize);
+ }, wo.prototype.unproject = function(D) {
+ return new i.MercatorCoordinate(D.x / this.worldSize, D.y / this.worldSize).toLngLat();
+ }, To.point.get = function() {
+ return this.project(this.center);
+ }, wo.prototype.setLocationAtPoint = function(D, J) {
+ var q = this.pointCoordinate(J), K = this.pointCoordinate(this.centerPoint), de = this.locationCoordinate(D), ne = new i.MercatorCoordinate(de.x - (q.x - K.x), de.y - (q.y - K.y));
+ this.center = this.coordinateLocation(ne), this._renderWorldCopies && (this.center = this.center.wrap());
+ }, wo.prototype.locationPoint = function(D) {
+ return this.coordinatePoint(this.locationCoordinate(D));
+ }, wo.prototype.pointLocation = function(D) {
+ return this.coordinateLocation(this.pointCoordinate(D));
+ }, wo.prototype.locationCoordinate = function(D) {
+ return i.MercatorCoordinate.fromLngLat(D);
+ }, wo.prototype.coordinateLocation = function(D) {
+ return D.toLngLat();
+ }, wo.prototype.pointCoordinate = function(D) {
+ var J = 0, q = [D.x, D.y, 0, 1], K = [D.x, D.y, 1, 1];
+ i.transformMat4(q, q, this.pixelMatrixInverse), i.transformMat4(K, K, this.pixelMatrixInverse);
+ var de = q[3], ne = K[3], we = q[0] / de, Ue = K[0] / ne, ft = q[1] / de, Zt = K[1] / ne, hr = q[2] / de, qt = K[2] / ne, Ve = hr === qt ? 0 : (J - hr) / (qt - hr);
+ return new i.MercatorCoordinate(i.number(we, Ue, Ve) / this.worldSize, i.number(ft, Zt, Ve) / this.worldSize);
+ }, wo.prototype.coordinatePoint = function(D) {
+ var J = [D.x * this.worldSize, D.y * this.worldSize, 0, 1];
+ return i.transformMat4(J, J, this.pixelMatrix), new i.Point(J[0] / J[3], J[1] / J[3]);
+ }, wo.prototype.getBounds = function() {
+ return new i.LngLatBounds().extend(this.pointLocation(new i.Point(0, 0))).extend(this.pointLocation(new i.Point(this.width, 0))).extend(this.pointLocation(new i.Point(this.width, this.height))).extend(this.pointLocation(new i.Point(0, this.height)));
+ }, wo.prototype.getMaxBounds = function() {
+ return !this.latRange || this.latRange.length !== 2 || !this.lngRange || this.lngRange.length !== 2 ? null : new i.LngLatBounds([this.lngRange[0], this.latRange[0]], [this.lngRange[1], this.latRange[1]]);
+ }, wo.prototype.setMaxBounds = function(D) {
+ D ? (this.lngRange = [D.getWest(), D.getEast()], this.latRange = [D.getSouth(), D.getNorth()], this._constrain()) : (this.lngRange = null, this.latRange = [-this.maxValidLatitude, this.maxValidLatitude]);
+ }, wo.prototype.calculatePosMatrix = function(D, J) {
+ J === void 0 && (J = false);
+ var q = D.key, K = J ? this._alignedPosMatrixCache : this._posMatrixCache;
+ if (K[q]) return K[q];
+ var de = D.canonical, ne = this.worldSize / this.zoomScale(de.z), we = de.x + Math.pow(2, de.z) * D.wrap, Ue = i.identity(new Float64Array(16));
+ return i.translate(Ue, Ue, [we * ne, de.y * ne, 0]), i.scale(Ue, Ue, [ne / i.EXTENT, ne / i.EXTENT, 1]), i.multiply(Ue, J ? this.alignedProjMatrix : this.projMatrix, Ue), K[q] = new Float32Array(Ue), K[q];
+ }, wo.prototype.customLayerMatrix = function() {
+ return this.mercatorMatrix.slice();
+ }, wo.prototype._constrain = function() {
+ if (!(!this.center || !this.width || !this.height || this._constraining)) {
+ this._constraining = true;
+ var D = -90, J = 90, q = -180, K = 180, de, ne, we, Ue, ft = this.size, Zt = this._unmodified;
+ if (this.latRange) {
+ var hr = this.latRange;
+ D = i.mercatorYfromLat(hr[1]) * this.worldSize, J = i.mercatorYfromLat(hr[0]) * this.worldSize, de = J - D < ft.y ? ft.y / (J - D) : 0;
+ }
+ if (this.lngRange) {
+ var qt = this.lngRange;
+ q = i.mercatorXfromLng(qt[0]) * this.worldSize, K = i.mercatorXfromLng(qt[1]) * this.worldSize, ne = K - q < ft.x ? ft.x / (K - q) : 0;
+ }
+ var Ve = this.point, Qe = Math.max(ne || 0, de || 0);
+ if (Qe) {
+ this.center = this.unproject(new i.Point(ne ? (K + q) / 2 : Ve.x, de ? (J + D) / 2 : Ve.y)), this.zoom += this.scaleZoom(Qe), this._unmodified = Zt, this._constraining = false;
+ return;
+ }
+ if (this.latRange) {
+ var at = Ve.y, Ct = ft.y / 2;
+ at - Ct < D && (Ue = D + Ct), at + Ct > J && (Ue = J - Ct);
+ }
+ if (this.lngRange) {
+ var Ot = Ve.x, Rt = ft.x / 2;
+ Ot - Rt < q && (we = q + Rt), Ot + Rt > K && (we = K - Rt);
+ }
+ (we !== void 0 || Ue !== void 0) && (this.center = this.unproject(new i.Point(we !== void 0 ? we : Ve.x, Ue !== void 0 ? Ue : Ve.y))), this._unmodified = Zt, this._constraining = false;
+ }
+ }, wo.prototype._calcMatrices = function() {
+ if (this.height) {
+ var D = this._fov / 2, J = this.centerOffset;
+ this.cameraToCenterDistance = 0.5 / Math.tan(D) * this.height;
+ var q = Math.PI / 2 + this._pitch, K = this._fov * (0.5 + J.y / this.height), de = Math.sin(K) * this.cameraToCenterDistance / Math.sin(i.clamp(Math.PI - q - K, 0.01, Math.PI - 0.01)), ne = this.point, we = ne.x, Ue = ne.y, ft = Math.cos(Math.PI / 2 - this._pitch) * de + this.cameraToCenterDistance, Zt = ft * 1.01, hr = this.height / 50, qt = new Float64Array(16);
+ i.perspective(qt, this._fov, this.width / this.height, hr, Zt), qt[8] = -J.x * 2 / this.width, qt[9] = J.y * 2 / this.height, i.scale(qt, qt, [1, -1, 1]), i.translate(qt, qt, [0, 0, -this.cameraToCenterDistance]), i.rotateX(qt, qt, this._pitch), i.rotateZ(qt, qt, this.angle), i.translate(qt, qt, [-we, -Ue, 0]), this.mercatorMatrix = i.scale([], qt, [this.worldSize, this.worldSize, this.worldSize]), i.scale(qt, qt, [1, 1, i.mercatorZfromAltitude(1, this.center.lat) * this.worldSize, 1]), this.projMatrix = qt, this.invProjMatrix = i.invert([], this.projMatrix);
+ var Ve = this.width % 2 / 2, Qe = this.height % 2 / 2, at = Math.cos(this.angle), Ct = Math.sin(this.angle), Ot = we - Math.round(we) + at * Ve + Ct * Qe, Rt = Ue - Math.round(Ue) + at * Qe + Ct * Ve, Bt = new Float64Array(qt);
+ if (i.translate(Bt, Bt, [Ot > 0.5 ? Ot - 1 : Ot, Rt > 0.5 ? Rt - 1 : Rt, 0]), this.alignedProjMatrix = Bt, qt = i.create(), i.scale(qt, qt, [this.width / 2, -this.height / 2, 1]), i.translate(qt, qt, [1, -1, 0]), this.labelPlaneMatrix = qt, qt = i.create(), i.scale(qt, qt, [1, -1, 1]), i.translate(qt, qt, [-1, -1, 0]), i.scale(qt, qt, [2 / this.width, 2 / this.height, 1]), this.glCoordMatrix = qt, this.pixelMatrix = i.multiply(new Float64Array(16), this.labelPlaneMatrix, this.projMatrix), qt = i.invert(new Float64Array(16), this.pixelMatrix), !qt) throw new Error("failed to invert matrix");
+ this.pixelMatrixInverse = qt, this._posMatrixCache = {}, this._alignedPosMatrixCache = {};
+ }
+ }, wo.prototype.maxPitchScaleFactor = function() {
+ if (!this.pixelMatrixInverse) return 1;
+ var D = this.pointCoordinate(new i.Point(0, 0)), J = [D.x * this.worldSize, D.y * this.worldSize, 0, 1], q = i.transformMat4(J, J, this.pixelMatrix);
+ return q[3] / this.cameraToCenterDistance;
+ }, wo.prototype.getCameraPoint = function() {
+ var D = this._pitch, J = Math.tan(D) * (this.cameraToCenterDistance || 1);
+ return this.centerPoint.add(new i.Point(0, J));
+ }, wo.prototype.getCameraQueryGeometry = function(D) {
+ var J = this.getCameraPoint();
+ if (D.length === 1) return [D[0], J];
+ for (var q = J.x, K = J.y, de = J.x, ne = J.y, we = 0, Ue = D; we < Ue.length; we += 1) {
+ var ft = Ue[we];
+ q = Math.min(q, ft.x), K = Math.min(K, ft.y), de = Math.max(de, ft.x), ne = Math.max(ne, ft.y);
+ }
+ return [new i.Point(q, K), new i.Point(de, K), new i.Point(de, ne), new i.Point(q, ne), new i.Point(q, K)];
+ }, Object.defineProperties(wo.prototype, To);
+ function hl(Y, D) {
+ var J = false, q = null, K = function() {
+ q = null, J && (Y(), q = setTimeout(K, D), J = false);
+ };
+ return function() {
+ return J = true, q || K(), q;
+ };
+ }
+ var Ul = function(D) {
+ this._hashName = D && encodeURIComponent(D), i.bindAll(["_getCurrentHash", "_onHashChange", "_updateHash"], this), this._updateHash = hl(this._updateHashUnthrottled.bind(this), 30 * 1e3 / 100);
+ };
+ Ul.prototype.addTo = function(D) {
+ return this._map = D, i.window.addEventListener("hashchange", this._onHashChange, false), this._map.on("moveend", this._updateHash), this;
+ }, Ul.prototype.remove = function() {
+ return i.window.removeEventListener("hashchange", this._onHashChange, false), this._map.off("moveend", this._updateHash), clearTimeout(this._updateHash()), delete this._map, this;
+ }, Ul.prototype.getHashString = function(D) {
+ var J = this._map.getCenter(), q = Math.round(this._map.getZoom() * 100) / 100, K = Math.ceil((q * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), de = Math.pow(10, K), ne = Math.round(J.lng * de) / de, we = Math.round(J.lat * de) / de, Ue = this._map.getBearing(), ft = this._map.getPitch(), Zt = "";
+ if (D ? Zt += "/" + ne + "/" + we + "/" + q : Zt += q + "/" + we + "/" + ne, (Ue || ft) && (Zt += "/" + Math.round(Ue * 10) / 10), ft && (Zt += "/" + Math.round(ft)), this._hashName) {
+ var hr = this._hashName, qt = false, Ve = i.window.location.hash.slice(1).split("&").map(function(Qe) {
+ var at = Qe.split("=")[0];
+ return at === hr ? (qt = true, at + "=" + Zt) : Qe;
+ }).filter(function(Qe) {
+ return Qe;
+ });
+ return qt || Ve.push(hr + "=" + Zt), "#" + Ve.join("&");
+ }
+ return "#" + Zt;
+ }, Ul.prototype._getCurrentHash = function() {
+ var D = this, J = i.window.location.hash.replace("#", "");
+ if (this._hashName) {
+ var q;
+ return J.split("&").map(function(K) {
+ return K.split("=");
+ }).forEach(function(K) {
+ K[0] === D._hashName && (q = K);
+ }), (q && q[1] || "").split("/");
+ }
+ return J.split("/");
+ }, Ul.prototype._onHashChange = function() {
+ var D = this._getCurrentHash();
+ if (D.length >= 3 && !D.some(function(q) {
+ return isNaN(q);
+ })) {
+ var J = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(D[3] || 0) : this._map.getBearing();
+ return this._map.jumpTo({ center: [+D[2], +D[1]], zoom: +D[0], bearing: J, pitch: +(D[4] || 0) }), true;
+ }
+ return false;
+ }, Ul.prototype._updateHashUnthrottled = function() {
+ var D = i.window.location.href.replace(/(#.+)?$/, this.getHashString());
+ try {
+ i.window.history.replaceState(i.window.history.state, null, D);
+ } catch (J) {
+ }
+ };
+ var Lu = { linearity: 0.3, easing: i.bezier(0, 0, 0.3, 1) }, au = i.extend({ deceleration: 2500, maxSpeed: 1400 }, Lu), Js = i.extend({ deceleration: 20, maxSpeed: 1400 }, Lu), eu = i.extend({ deceleration: 1e3, maxSpeed: 360 }, Lu), dc = i.extend({ deceleration: 1e3, maxSpeed: 90 }, Lu), Tl = function(D) {
+ this._map = D, this.clear();
+ };
+ Tl.prototype.clear = function() {
+ this._inertiaBuffer = [];
+ }, Tl.prototype.record = function(D) {
+ this._drainInertiaBuffer(), this._inertiaBuffer.push({ time: i.browser.now(), settings: D });
+ }, Tl.prototype._drainInertiaBuffer = function() {
+ for (var D = this._inertiaBuffer, J = i.browser.now(), q = 160; D.length > 0 && J - D[0].time > q; ) D.shift();
+ }, Tl.prototype._onMoveEnd = function(D) {
+ if (this._drainInertiaBuffer(), !(this._inertiaBuffer.length < 2)) {
+ for (var J = { zoom: 0, bearing: 0, pitch: 0, pan: new i.Point(0, 0), pinchAround: void 0, around: void 0 }, q = 0, K = this._inertiaBuffer; q < K.length; q += 1) {
+ var de = K[q], ne = de.settings;
+ J.zoom += ne.zoomDelta || 0, J.bearing += ne.bearingDelta || 0, J.pitch += ne.pitchDelta || 0, ne.panDelta && J.pan._add(ne.panDelta), ne.around && (J.around = ne.around), ne.pinchAround && (J.pinchAround = ne.pinchAround);
+ }
+ var we = this._inertiaBuffer[this._inertiaBuffer.length - 1], Ue = we.time - this._inertiaBuffer[0].time, ft = {};
+ if (J.pan.mag()) {
+ var Zt = X(J.pan.mag(), Ue, i.extend({}, au, D || {}));
+ ft.offset = J.pan.mult(Zt.amount / J.pan.mag()), ft.center = this._map.transform.center, Al(ft, Zt);
+ }
+ if (J.zoom) {
+ var hr = X(J.zoom, Ue, Js);
+ ft.zoom = this._map.transform.zoom + hr.amount, Al(ft, hr);
+ }
+ if (J.bearing) {
+ var qt = X(J.bearing, Ue, eu);
+ ft.bearing = this._map.transform.bearing + i.clamp(qt.amount, -179, 179), Al(ft, qt);
+ }
+ if (J.pitch) {
+ var Ve = X(J.pitch, Ue, dc);
+ ft.pitch = this._map.transform.pitch + Ve.amount, Al(ft, Ve);
+ }
+ if (ft.zoom || ft.bearing) {
+ var Qe = J.pinchAround === void 0 ? J.around : J.pinchAround;
+ ft.around = Qe ? this._map.unproject(Qe) : this._map.getCenter();
+ }
+ return this.clear(), i.extend(ft, { noMoveStart: true });
+ }
+ };
+ function Al(Y, D) {
+ (!Y.duration || Y.duration < D.duration) && (Y.duration = D.duration, Y.easing = D.easing);
+ }
+ function X(Y, D, J) {
+ var q = J.maxSpeed, K = J.linearity, de = J.deceleration, ne = i.clamp(Y * K / (D / 1e3), -q, q), we = Math.abs(ne) / (de * K);
+ return { easing: J.easing, duration: we * 1e3, amount: ne * (we / 2) };
+ }
+ var se = function(Y) {
+ function D(q, K, de, ne) {
+ ne === void 0 && (ne = {});
+ var we = o.mousePos(K.getCanvasContainer(), de), Ue = K.unproject(we);
+ Y.call(this, q, i.extend({ point: we, lngLat: Ue, originalEvent: de }, ne)), this._defaultPrevented = false, this.target = K;
+ }
+ Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D;
+ var J = { defaultPrevented: { configurable: true } };
+ return D.prototype.preventDefault = function() {
+ this._defaultPrevented = true;
+ }, J.defaultPrevented.get = function() {
+ return this._defaultPrevented;
+ }, Object.defineProperties(D.prototype, J), D;
+ }(i.Event), Te = function(Y) {
+ function D(q, K, de) {
+ var ne = q === "touchend" ? de.changedTouches : de.touches, we = o.touchPos(K.getCanvasContainer(), ne), Ue = we.map(function(hr) {
+ return K.unproject(hr);
+ }), ft = we.reduce(function(hr, qt, Ve, Qe) {
+ return hr.add(qt.div(Qe.length));
+ }, new i.Point(0, 0)), Zt = K.unproject(ft);
+ Y.call(this, q, { points: we, point: ft, lngLats: Ue, lngLat: Zt, originalEvent: de }), this._defaultPrevented = false;
+ }
+ Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D;
+ var J = { defaultPrevented: { configurable: true } };
+ return D.prototype.preventDefault = function() {
+ this._defaultPrevented = true;
+ }, J.defaultPrevented.get = function() {
+ return this._defaultPrevented;
+ }, Object.defineProperties(D.prototype, J), D;
+ }(i.Event), Ne = function(Y) {
+ function D(q, K, de) {
+ Y.call(this, q, { originalEvent: de }), this._defaultPrevented = false;
+ }
+ Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D;
+ var J = { defaultPrevented: { configurable: true } };
+ return D.prototype.preventDefault = function() {
+ this._defaultPrevented = true;
+ }, J.defaultPrevented.get = function() {
+ return this._defaultPrevented;
+ }, Object.defineProperties(D.prototype, J), D;
+ }(i.Event), He = function(D, J) {
+ this._map = D, this._clickTolerance = J.clickTolerance;
+ };
+ He.prototype.reset = function() {
+ delete this._mousedownPos;
+ }, He.prototype.wheel = function(D) {
+ return this._firePreventable(new Ne(D.type, this._map, D));
+ }, He.prototype.mousedown = function(D, J) {
+ return this._mousedownPos = J, this._firePreventable(new se(D.type, this._map, D));
+ }, He.prototype.mouseup = function(D) {
+ this._map.fire(new se(D.type, this._map, D));
+ }, He.prototype.click = function(D, J) {
+ this._mousedownPos && this._mousedownPos.dist(J) >= this._clickTolerance || this._map.fire(new se(D.type, this._map, D));
+ }, He.prototype.dblclick = function(D) {
+ return this._firePreventable(new se(D.type, this._map, D));
+ }, He.prototype.mouseover = function(D) {
+ this._map.fire(new se(D.type, this._map, D));
+ }, He.prototype.mouseout = function(D) {
+ this._map.fire(new se(D.type, this._map, D));
+ }, He.prototype.touchstart = function(D) {
+ return this._firePreventable(new Te(D.type, this._map, D));
+ }, He.prototype.touchmove = function(D) {
+ this._map.fire(new Te(D.type, this._map, D));
+ }, He.prototype.touchend = function(D) {
+ this._map.fire(new Te(D.type, this._map, D));
+ }, He.prototype.touchcancel = function(D) {
+ this._map.fire(new Te(D.type, this._map, D));
+ }, He.prototype._firePreventable = function(D) {
+ if (this._map.fire(D), D.defaultPrevented) return {};
+ }, He.prototype.isEnabled = function() {
+ return true;
+ }, He.prototype.isActive = function() {
+ return false;
+ }, He.prototype.enable = function() {
+ }, He.prototype.disable = function() {
+ };
+ var Ye = function(D) {
+ this._map = D;
+ };
+ Ye.prototype.reset = function() {
+ this._delayContextMenu = false, delete this._contextMenuEvent;
+ }, Ye.prototype.mousemove = function(D) {
+ this._map.fire(new se(D.type, this._map, D));
+ }, Ye.prototype.mousedown = function() {
+ this._delayContextMenu = true;
+ }, Ye.prototype.mouseup = function() {
+ this._delayContextMenu = false, this._contextMenuEvent && (this._map.fire(new se("contextmenu", this._map, this._contextMenuEvent)), delete this._contextMenuEvent);
+ }, Ye.prototype.contextmenu = function(D) {
+ this._delayContextMenu ? this._contextMenuEvent = D : this._map.fire(new se(D.type, this._map, D)), this._map.listens("contextmenu") && D.preventDefault();
+ }, Ye.prototype.isEnabled = function() {
+ return true;
+ }, Ye.prototype.isActive = function() {
+ return false;
+ }, Ye.prototype.enable = function() {
+ }, Ye.prototype.disable = function() {
+ };
+ var kt = function(D, J) {
+ this._map = D, this._el = D.getCanvasContainer(), this._container = D.getContainer(), this._clickTolerance = J.clickTolerance || 1;
+ };
+ kt.prototype.isEnabled = function() {
+ return !!this._enabled;
+ }, kt.prototype.isActive = function() {
+ return !!this._active;
+ }, kt.prototype.enable = function() {
+ this.isEnabled() || (this._enabled = true);
+ }, kt.prototype.disable = function() {
+ this.isEnabled() && (this._enabled = false);
+ }, kt.prototype.mousedown = function(D, J) {
+ this.isEnabled() && D.shiftKey && D.button === 0 && (o.disableDrag(), this._startPos = this._lastPos = J, this._active = true);
+ }, kt.prototype.mousemoveWindow = function(D, J) {
+ if (this._active) {
+ var q = J;
+ if (!(this._lastPos.equals(q) || !this._box && q.dist(this._startPos) < this._clickTolerance)) {
+ var K = this._startPos;
+ this._lastPos = q, this._box || (this._box = o.create("div", "mapboxgl-boxzoom", this._container), this._container.classList.add("mapboxgl-crosshair"), this._fireEvent("boxzoomstart", D));
+ var de = Math.min(K.x, q.x), ne = Math.max(K.x, q.x), we = Math.min(K.y, q.y), Ue = Math.max(K.y, q.y);
+ o.setTransform(this._box, "translate(" + de + "px," + we + "px)"), this._box.style.width = ne - de + "px", this._box.style.height = Ue - we + "px";
+ }
+ }
+ }, kt.prototype.mouseupWindow = function(D, J) {
+ var q = this;
+ if (this._active && D.button === 0) {
+ var K = this._startPos, de = J;
+ if (this.reset(), o.suppressClick(), K.x === de.x && K.y === de.y) this._fireEvent("boxzoomcancel", D);
+ else return this._map.fire(new i.Event("boxzoomend", { originalEvent: D })), { cameraAnimation: function(ne) {
+ return ne.fitScreenCoordinates(K, de, q._map.getBearing(), { linear: true });
+ } };
+ }
+ }, kt.prototype.keydown = function(D) {
+ this._active && D.keyCode === 27 && (this.reset(), this._fireEvent("boxzoomcancel", D));
+ }, kt.prototype.reset = function() {
+ this._active = false, this._container.classList.remove("mapboxgl-crosshair"), this._box && (o.remove(this._box), this._box = null), o.enableDrag(), delete this._startPos, delete this._lastPos;
+ }, kt.prototype._fireEvent = function(D, J) {
+ return this._map.fire(new i.Event(D, { originalEvent: J }));
+ };
+ function nt(Y, D) {
+ for (var J = {}, q = 0; q < Y.length; q++) J[Y[q].identifier] = D[q];
+ return J;
+ }
+ function jt(Y) {
+ for (var D = new i.Point(0, 0), J = 0, q = Y; J < q.length; J += 1) {
+ var K = q[J];
+ D._add(K);
+ }
+ return D.div(Y.length);
+ }
+ var gr = 500, yr = 500, Hr = 30, qr = function(D) {
+ this.reset(), this.numTouches = D.numTouches;
+ };
+ qr.prototype.reset = function() {
+ delete this.centroid, delete this.startTime, delete this.touches, this.aborted = false;
+ }, qr.prototype.touchstart = function(D, J, q) {
+ (this.centroid || q.length > this.numTouches) && (this.aborted = true), !this.aborted && (this.startTime === void 0 && (this.startTime = D.timeStamp), q.length === this.numTouches && (this.centroid = jt(J), this.touches = nt(q, J)));
+ }, qr.prototype.touchmove = function(D, J, q) {
+ if (!(this.aborted || !this.centroid)) {
+ var K = nt(q, J);
+ for (var de in this.touches) {
+ var ne = this.touches[de], we = K[de];
+ (!we || we.dist(ne) > Hr) && (this.aborted = true);
+ }
+ }
+ }, qr.prototype.touchend = function(D, J, q) {
+ if ((!this.centroid || D.timeStamp - this.startTime > yr) && (this.aborted = true), q.length === 0) {
+ var K = !this.aborted && this.centroid;
+ if (this.reset(), K) return K;
+ }
+ };
+ var _i = function(D) {
+ this.singleTap = new qr(D), this.numTaps = D.numTaps, this.reset();
+ };
+ _i.prototype.reset = function() {
+ this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset();
+ }, _i.prototype.touchstart = function(D, J, q) {
+ this.singleTap.touchstart(D, J, q);
+ }, _i.prototype.touchmove = function(D, J, q) {
+ this.singleTap.touchmove(D, J, q);
+ }, _i.prototype.touchend = function(D, J, q) {
+ var K = this.singleTap.touchend(D, J, q);
+ if (K) {
+ var de = D.timeStamp - this.lastTime < gr, ne = !this.lastTap || this.lastTap.dist(K) < Hr;
+ if ((!de || !ne) && this.reset(), this.count++, this.lastTime = D.timeStamp, this.lastTap = K, this.count === this.numTaps) return this.reset(), K;
+ }
+ };
+ var bi = function() {
+ this._zoomIn = new _i({ numTouches: 1, numTaps: 2 }), this._zoomOut = new _i({ numTouches: 2, numTaps: 1 }), this.reset();
+ };
+ bi.prototype.reset = function() {
+ this._active = false, this._zoomIn.reset(), this._zoomOut.reset();
+ }, bi.prototype.touchstart = function(D, J, q) {
+ this._zoomIn.touchstart(D, J, q), this._zoomOut.touchstart(D, J, q);
+ }, bi.prototype.touchmove = function(D, J, q) {
+ this._zoomIn.touchmove(D, J, q), this._zoomOut.touchmove(D, J, q);
+ }, bi.prototype.touchend = function(D, J, q) {
+ var K = this, de = this._zoomIn.touchend(D, J, q), ne = this._zoomOut.touchend(D, J, q);
+ if (de) return this._active = true, D.preventDefault(), setTimeout(function() {
+ return K.reset();
+ }, 0), { cameraAnimation: function(we) {
+ return we.easeTo({ duration: 300, zoom: we.getZoom() + 1, around: we.unproject(de) }, { originalEvent: D });
+ } };
+ if (ne) return this._active = true, D.preventDefault(), setTimeout(function() {
+ return K.reset();
+ }, 0), { cameraAnimation: function(we) {
+ return we.easeTo({ duration: 300, zoom: we.getZoom() - 1, around: we.unproject(ne) }, { originalEvent: D });
+ } };
+ }, bi.prototype.touchcancel = function() {
+ this.reset();
+ }, bi.prototype.enable = function() {
+ this._enabled = true;
+ }, bi.prototype.disable = function() {
+ this._enabled = false, this.reset();
+ }, bi.prototype.isEnabled = function() {
+ return this._enabled;
+ }, bi.prototype.isActive = function() {
+ return this._active;
+ };
+ var Zr = 0, ai = 2, gi = {};
+ gi[Zr] = 1, gi[ai] = 2;
+ function Ii(Y, D) {
+ var J = gi[D];
+ return Y.buttons === void 0 || (Y.buttons & J) !== J;
+ }
+ var Si = function(D) {
+ this.reset(), this._clickTolerance = D.clickTolerance || 1;
+ };
+ Si.prototype.reset = function() {
+ this._active = false, this._moved = false, delete this._lastPoint, delete this._eventButton;
+ }, Si.prototype._correctButton = function(D, J) {
+ return false;
+ }, Si.prototype._move = function(D, J) {
+ return {};
+ }, Si.prototype.mousedown = function(D, J) {
+ if (!this._lastPoint) {
+ var q = o.mouseButton(D);
+ this._correctButton(D, q) && (this._lastPoint = J, this._eventButton = q);
+ }
+ }, Si.prototype.mousemoveWindow = function(D, J) {
+ var q = this._lastPoint;
+ if (q) {
+ if (D.preventDefault(), Ii(D, this._eventButton)) {
+ this.reset();
+ return;
+ }
+ if (!(!this._moved && J.dist(q) < this._clickTolerance)) return this._moved = true, this._lastPoint = J, this._move(q, J);
+ }
+ }, Si.prototype.mouseupWindow = function(D) {
+ if (this._lastPoint) {
+ var J = o.mouseButton(D);
+ J === this._eventButton && (this._moved && o.suppressClick(), this.reset());
+ }
+ }, Si.prototype.enable = function() {
+ this._enabled = true;
+ }, Si.prototype.disable = function() {
+ this._enabled = false, this.reset();
+ }, Si.prototype.isEnabled = function() {
+ return this._enabled;
+ }, Si.prototype.isActive = function() {
+ return this._active;
+ };
+ var ei = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.mousedown = function(q, K) {
+ Y.prototype.mousedown.call(this, q, K), this._lastPoint && (this._active = true);
+ }, D.prototype._correctButton = function(q, K) {
+ return K === Zr && !q.ctrlKey;
+ }, D.prototype._move = function(q, K) {
+ return { around: K, panDelta: K.sub(q) };
+ }, D;
+ }(Si), Ln = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype._correctButton = function(q, K) {
+ return K === Zr && q.ctrlKey || K === ai;
+ }, D.prototype._move = function(q, K) {
+ var de = 0.8, ne = (K.x - q.x) * de;
+ if (ne) return this._active = true, { bearingDelta: ne };
+ }, D.prototype.contextmenu = function(q) {
+ q.preventDefault();
+ }, D;
+ }(Si), En = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype._correctButton = function(q, K) {
+ return K === Zr && q.ctrlKey || K === ai;
+ }, D.prototype._move = function(q, K) {
+ var de = -0.5, ne = (K.y - q.y) * de;
+ if (ne) return this._active = true, { pitchDelta: ne };
+ }, D.prototype.contextmenu = function(q) {
+ q.preventDefault();
+ }, D;
+ }(Si), Un = function(D) {
+ this._minTouches = 1, this._clickTolerance = D.clickTolerance || 1, this.reset();
+ };
+ Un.prototype.reset = function() {
+ this._active = false, this._touches = {}, this._sum = new i.Point(0, 0);
+ }, Un.prototype.touchstart = function(D, J, q) {
+ return this._calculateTransform(D, J, q);
+ }, Un.prototype.touchmove = function(D, J, q) {
+ if (!(!this._active || q.length < this._minTouches)) return D.preventDefault(), this._calculateTransform(D, J, q);
+ }, Un.prototype.touchend = function(D, J, q) {
+ this._calculateTransform(D, J, q), this._active && q.length < this._minTouches && this.reset();
+ }, Un.prototype.touchcancel = function() {
+ this.reset();
+ }, Un.prototype._calculateTransform = function(D, J, q) {
+ q.length > 0 && (this._active = true);
+ var K = nt(q, J), de = new i.Point(0, 0), ne = new i.Point(0, 0), we = 0;
+ for (var Ue in K) {
+ var ft = K[Ue], Zt = this._touches[Ue];
+ Zt && (de._add(ft), ne._add(ft.sub(Zt)), we++, K[Ue] = ft);
+ }
+ if (this._touches = K, !(we < this._minTouches || !ne.mag())) {
+ var hr = ne.div(we);
+ if (this._sum._add(hr), !(this._sum.mag() < this._clickTolerance)) {
+ var qt = de.div(we);
+ return { around: qt, panDelta: hr };
+ }
+ }
+ }, Un.prototype.enable = function() {
+ this._enabled = true;
+ }, Un.prototype.disable = function() {
+ this._enabled = false, this.reset();
+ }, Un.prototype.isEnabled = function() {
+ return this._enabled;
+ }, Un.prototype.isActive = function() {
+ return this._active;
+ };
+ var ia = function() {
+ this.reset();
+ };
+ ia.prototype.reset = function() {
+ this._active = false, delete this._firstTwoTouches;
+ }, ia.prototype._start = function(D) {
+ }, ia.prototype._move = function(D, J, q) {
+ return {};
+ }, ia.prototype.touchstart = function(D, J, q) {
+ this._firstTwoTouches || q.length < 2 || (this._firstTwoTouches = [q[0].identifier, q[1].identifier], this._start([J[0], J[1]]));
+ }, ia.prototype.touchmove = function(D, J, q) {
+ if (this._firstTwoTouches) {
+ D.preventDefault();
+ var K = this._firstTwoTouches, de = K[0], ne = K[1], we = Ea(q, J, de), Ue = Ea(q, J, ne);
+ if (!(!we || !Ue)) {
+ var ft = this._aroundCenter ? null : we.add(Ue).div(2);
+ return this._move([we, Ue], ft, D);
+ }
+ }
+ }, ia.prototype.touchend = function(D, J, q) {
+ if (this._firstTwoTouches) {
+ var K = this._firstTwoTouches, de = K[0], ne = K[1], we = Ea(q, J, de), Ue = Ea(q, J, ne);
+ we && Ue || (this._active && o.suppressClick(), this.reset());
+ }
+ }, ia.prototype.touchcancel = function() {
+ this.reset();
+ }, ia.prototype.enable = function(D) {
+ this._enabled = true, this._aroundCenter = !!D && D.around === "center";
+ }, ia.prototype.disable = function() {
+ this._enabled = false, this.reset();
+ }, ia.prototype.isEnabled = function() {
+ return this._enabled;
+ }, ia.prototype.isActive = function() {
+ return this._active;
+ };
+ function Ea(Y, D, J) {
+ for (var q = 0; q < Y.length; q++) if (Y[q].identifier === J) return D[q];
+ }
+ var Ia = 0.1;
+ function yo(Y, D) {
+ return Math.log(Y / D) / Math.LN2;
+ }
+ var Da = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.reset = function() {
+ Y.prototype.reset.call(this), delete this._distance, delete this._startDistance;
+ }, D.prototype._start = function(q) {
+ this._startDistance = this._distance = q[0].dist(q[1]);
+ }, D.prototype._move = function(q, K) {
+ var de = this._distance;
+ if (this._distance = q[0].dist(q[1]), !(!this._active && Math.abs(yo(this._distance, this._startDistance)) < Ia)) return this._active = true, { zoomDelta: yo(this._distance, de), pinchAround: K };
+ }, D;
+ }(ia), go = 25;
+ function Is(Y, D) {
+ return Y.angleWith(D) * 180 / Math.PI;
+ }
+ var Ms = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.reset = function() {
+ Y.prototype.reset.call(this), delete this._minDiameter, delete this._startVector, delete this._vector;
+ }, D.prototype._start = function(q) {
+ this._startVector = this._vector = q[0].sub(q[1]), this._minDiameter = q[0].dist(q[1]);
+ }, D.prototype._move = function(q, K) {
+ var de = this._vector;
+ if (this._vector = q[0].sub(q[1]), !(!this._active && this._isBelowThreshold(this._vector))) return this._active = true, { bearingDelta: Is(this._vector, de), pinchAround: K };
+ }, D.prototype._isBelowThreshold = function(q) {
+ this._minDiameter = Math.min(this._minDiameter, q.mag());
+ var K = Math.PI * this._minDiameter, de = go / K * 360, ne = Is(q, this._startVector);
+ return Math.abs(ne) < de;
+ }, D;
+ }(ia);
+ function Xs(Y) {
+ return Math.abs(Y.y) > Math.abs(Y.x);
+ }
+ var Gn = 100, ja = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.reset = function() {
+ Y.prototype.reset.call(this), this._valid = void 0, delete this._firstMove, delete this._lastPoints;
+ }, D.prototype._start = function(q) {
+ this._lastPoints = q, Xs(q[0].sub(q[1])) && (this._valid = false);
+ }, D.prototype._move = function(q, K, de) {
+ var ne = q[0].sub(this._lastPoints[0]), we = q[1].sub(this._lastPoints[1]);
+ if (this._valid = this.gestureBeginsVertically(ne, we, de.timeStamp), !!this._valid) {
+ this._lastPoints = q, this._active = true;
+ var Ue = (ne.y + we.y) / 2, ft = -0.5;
+ return { pitchDelta: Ue * ft };
+ }
+ }, D.prototype.gestureBeginsVertically = function(q, K, de) {
+ if (this._valid !== void 0) return this._valid;
+ var ne = 2, we = q.mag() >= ne, Ue = K.mag() >= ne;
+ if (!(!we && !Ue)) {
+ if (!we || !Ue) return this._firstMove === void 0 && (this._firstMove = de), de - this._firstMove < Gn ? void 0 : false;
+ var ft = q.y > 0 == K.y > 0;
+ return Xs(q) && Xs(K) && ft;
+ }
+ }, D;
+ }(ia), Fo = { panStep: 100, bearingStep: 15, pitchStep: 10 }, Uo = function() {
+ var D = Fo;
+ this._panStep = D.panStep, this._bearingStep = D.bearingStep, this._pitchStep = D.pitchStep, this._rotationDisabled = false;
+ };
+ Uo.prototype.reset = function() {
+ this._active = false;
+ }, Uo.prototype.keydown = function(D) {
+ var J = this;
+ if (!(D.altKey || D.ctrlKey || D.metaKey)) {
+ var q = 0, K = 0, de = 0, ne = 0, we = 0;
+ switch (D.keyCode) {
+ case 61:
+ case 107:
+ case 171:
+ case 187:
+ q = 1;
+ break;
+ case 189:
+ case 109:
+ case 173:
+ q = -1;
+ break;
+ case 37:
+ D.shiftKey ? K = -1 : (D.preventDefault(), ne = -1);
+ break;
+ case 39:
+ D.shiftKey ? K = 1 : (D.preventDefault(), ne = 1);
+ break;
+ case 38:
+ D.shiftKey ? de = 1 : (D.preventDefault(), we = -1);
+ break;
+ case 40:
+ D.shiftKey ? de = -1 : (D.preventDefault(), we = 1);
+ break;
+ default:
+ return;
+ }
+ return this._rotationDisabled && (K = 0, de = 0), { cameraAnimation: function(Ue) {
+ var ft = Ue.getZoom();
+ Ue.easeTo({ duration: 300, easeId: "keyboardHandler", easing: $s, zoom: q ? Math.round(ft) + q * (D.shiftKey ? 2 : 1) : ft, bearing: Ue.getBearing() + K * J._bearingStep, pitch: Ue.getPitch() + de * J._pitchStep, offset: [-ne * J._panStep, -we * J._panStep], center: Ue.getCenter() }, { originalEvent: D });
+ } };
+ }
+ }, Uo.prototype.enable = function() {
+ this._enabled = true;
+ }, Uo.prototype.disable = function() {
+ this._enabled = false, this.reset();
+ }, Uo.prototype.isEnabled = function() {
+ return this._enabled;
+ }, Uo.prototype.isActive = function() {
+ return this._active;
+ }, Uo.prototype.disableRotation = function() {
+ this._rotationDisabled = true;
+ }, Uo.prototype.enableRotation = function() {
+ this._rotationDisabled = false;
+ };
+ function $s(Y) {
+ return Y * (2 - Y);
+ }
+ var Sl = 4.000244140625, bu = 1 / 100, dl = 1 / 450, Sc = 2, Me = function(D, J) {
+ this._map = D, this._el = D.getCanvasContainer(), this._handler = J, this._delta = 0, this._defaultZoomRate = bu, this._wheelZoomRate = dl, i.bindAll(["_onTimeout"], this);
+ };
+ Me.prototype.setZoomRate = function(D) {
+ this._defaultZoomRate = D;
+ }, Me.prototype.setWheelZoomRate = function(D) {
+ this._wheelZoomRate = D;
+ }, Me.prototype.isEnabled = function() {
+ return !!this._enabled;
+ }, Me.prototype.isActive = function() {
+ return !!this._active || this._finishTimeout !== void 0;
+ }, Me.prototype.isZooming = function() {
+ return !!this._zooming;
+ }, Me.prototype.enable = function(D) {
+ this.isEnabled() || (this._enabled = true, this._aroundCenter = D && D.around === "center");
+ }, Me.prototype.disable = function() {
+ this.isEnabled() && (this._enabled = false);
+ }, Me.prototype.wheel = function(D) {
+ if (this.isEnabled()) {
+ var J = D.deltaMode === i.window.WheelEvent.DOM_DELTA_LINE ? D.deltaY * 40 : D.deltaY, q = i.browser.now(), K = q - (this._lastWheelEventTime || 0);
+ this._lastWheelEventTime = q, J !== 0 && J % Sl === 0 ? this._type = "wheel" : J !== 0 && Math.abs(J) < 4 ? this._type = "trackpad" : K > 400 ? (this._type = null, this._lastValue = J, this._timeout = setTimeout(this._onTimeout, 40, D)) : this._type || (this._type = Math.abs(K * J) < 200 ? "trackpad" : "wheel", this._timeout && (clearTimeout(this._timeout), this._timeout = null, J += this._lastValue)), D.shiftKey && J && (J = J / 4), this._type && (this._lastWheelEvent = D, this._delta -= J, this._active || this._start(D)), D.preventDefault();
+ }
+ }, Me.prototype._onTimeout = function(D) {
+ this._type = "wheel", this._delta -= this._lastValue, this._active || this._start(D);
+ }, Me.prototype._start = function(D) {
+ if (this._delta) {
+ this._frameId && (this._frameId = null), this._active = true, this.isZooming() || (this._zooming = true), this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout);
+ var J = o.mousePos(this._el, D);
+ this._around = i.LngLat.convert(this._aroundCenter ? this._map.getCenter() : this._map.unproject(J)), this._aroundPoint = this._map.transform.locationPoint(this._around), this._frameId || (this._frameId = true, this._handler._triggerRenderFrame());
+ }
+ }, Me.prototype.renderFrame = function() {
+ var D = this;
+ if (this._frameId && (this._frameId = null, !!this.isActive())) {
+ var J = this._map.transform;
+ if (this._delta !== 0) {
+ var q = this._type === "wheel" && Math.abs(this._delta) > Sl ? this._wheelZoomRate : this._defaultZoomRate, K = Sc / (1 + Math.exp(-Math.abs(this._delta * q)));
+ this._delta < 0 && K !== 0 && (K = 1 / K);
+ var de = typeof this._targetZoom == "number" ? J.zoomScale(this._targetZoom) : J.scale;
+ this._targetZoom = Math.min(J.maxZoom, Math.max(J.minZoom, J.scaleZoom(de * K))), this._type === "wheel" && (this._startZoom = J.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0;
+ }
+ var ne = typeof this._targetZoom == "number" ? this._targetZoom : J.zoom, we = this._startZoom, Ue = this._easing, ft = false, Zt;
+ if (this._type === "wheel" && we && Ue) {
+ var hr = Math.min((i.browser.now() - this._lastWheelEventTime) / 200, 1), qt = Ue(hr);
+ Zt = i.number(we, ne, qt), hr < 1 ? this._frameId || (this._frameId = true) : ft = true;
+ } else Zt = ne, ft = true;
+ return this._active = true, ft && (this._active = false, this._finishTimeout = setTimeout(function() {
+ D._zooming = false, D._handler._triggerRenderFrame(), delete D._targetZoom, delete D._finishTimeout;
+ }, 200)), { noInertia: true, needsRenderFrame: !ft, zoomDelta: Zt - J.zoom, around: this._aroundPoint, originalEvent: this._lastWheelEvent };
+ }
+ }, Me.prototype._smoothOutEasing = function(D) {
+ var J = i.ease;
+ if (this._prevEase) {
+ var q = this._prevEase, K = (i.browser.now() - q.start) / q.duration, de = q.easing(K + 0.01) - q.easing(K), ne = 0.27 / Math.sqrt(de * de + 1e-4) * 0.01, we = Math.sqrt(0.27 * 0.27 - ne * ne);
+ J = i.bezier(ne, we, 0.25, 1);
+ }
+ return this._prevEase = { start: i.browser.now(), duration: D, easing: J }, J;
+ }, Me.prototype.reset = function() {
+ this._active = false;
+ };
+ var bt = function(D, J) {
+ this._clickZoom = D, this._tapZoom = J;
+ };
+ bt.prototype.enable = function() {
+ this._clickZoom.enable(), this._tapZoom.enable();
+ }, bt.prototype.disable = function() {
+ this._clickZoom.disable(), this._tapZoom.disable();
+ }, bt.prototype.isEnabled = function() {
+ return this._clickZoom.isEnabled() && this._tapZoom.isEnabled();
+ }, bt.prototype.isActive = function() {
+ return this._clickZoom.isActive() || this._tapZoom.isActive();
+ };
+ var zt = function() {
+ this.reset();
+ };
+ zt.prototype.reset = function() {
+ this._active = false;
+ }, zt.prototype.dblclick = function(D, J) {
+ return D.preventDefault(), { cameraAnimation: function(q) {
+ q.easeTo({ duration: 300, zoom: q.getZoom() + (D.shiftKey ? -1 : 1), around: q.unproject(J) }, { originalEvent: D });
+ } };
+ }, zt.prototype.enable = function() {
+ this._enabled = true;
+ }, zt.prototype.disable = function() {
+ this._enabled = false, this.reset();
+ }, zt.prototype.isEnabled = function() {
+ return this._enabled;
+ }, zt.prototype.isActive = function() {
+ return this._active;
+ };
+ var Rr = function() {
+ this._tap = new _i({ numTouches: 1, numTaps: 1 }), this.reset();
+ };
+ Rr.prototype.reset = function() {
+ this._active = false, delete this._swipePoint, delete this._swipeTouch, delete this._tapTime, this._tap.reset();
+ }, Rr.prototype.touchstart = function(D, J, q) {
+ this._swipePoint || (this._tapTime && D.timeStamp - this._tapTime > gr && this.reset(), this._tapTime ? q.length > 0 && (this._swipePoint = J[0], this._swipeTouch = q[0].identifier) : this._tap.touchstart(D, J, q));
+ }, Rr.prototype.touchmove = function(D, J, q) {
+ if (!this._tapTime) this._tap.touchmove(D, J, q);
+ else if (this._swipePoint) {
+ if (q[0].identifier !== this._swipeTouch) return;
+ var K = J[0], de = K.y - this._swipePoint.y;
+ return this._swipePoint = K, D.preventDefault(), this._active = true, { zoomDelta: de / 128 };
+ }
+ }, Rr.prototype.touchend = function(D, J, q) {
+ if (this._tapTime) this._swipePoint && q.length === 0 && this.reset();
+ else {
+ var K = this._tap.touchend(D, J, q);
+ K && (this._tapTime = D.timeStamp);
+ }
+ }, Rr.prototype.touchcancel = function() {
+ this.reset();
+ }, Rr.prototype.enable = function() {
+ this._enabled = true;
+ }, Rr.prototype.disable = function() {
+ this._enabled = false, this.reset();
+ }, Rr.prototype.isEnabled = function() {
+ return this._enabled;
+ }, Rr.prototype.isActive = function() {
+ return this._active;
+ };
+ var jr = function(D, J, q) {
+ this._el = D, this._mousePan = J, this._touchPan = q;
+ };
+ jr.prototype.enable = function(D) {
+ this._inertiaOptions = D || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add("mapboxgl-touch-drag-pan");
+ }, jr.prototype.disable = function() {
+ this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove("mapboxgl-touch-drag-pan");
+ }, jr.prototype.isEnabled = function() {
+ return this._mousePan.isEnabled() && this._touchPan.isEnabled();
+ }, jr.prototype.isActive = function() {
+ return this._mousePan.isActive() || this._touchPan.isActive();
+ };
+ var Nr = function(D, J, q) {
+ this._pitchWithRotate = D.pitchWithRotate, this._mouseRotate = J, this._mousePitch = q;
+ };
+ Nr.prototype.enable = function() {
+ this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable();
+ }, Nr.prototype.disable = function() {
+ this._mouseRotate.disable(), this._mousePitch.disable();
+ }, Nr.prototype.isEnabled = function() {
+ return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled());
+ }, Nr.prototype.isActive = function() {
+ return this._mouseRotate.isActive() || this._mousePitch.isActive();
+ };
+ var Gr = function(D, J, q, K) {
+ this._el = D, this._touchZoom = J, this._touchRotate = q, this._tapDragZoom = K, this._rotationDisabled = false, this._enabled = true;
+ };
+ Gr.prototype.enable = function(D) {
+ this._touchZoom.enable(D), this._rotationDisabled || this._touchRotate.enable(D), this._tapDragZoom.enable(), this._el.classList.add("mapboxgl-touch-zoom-rotate");
+ }, Gr.prototype.disable = function() {
+ this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove("mapboxgl-touch-zoom-rotate");
+ }, Gr.prototype.isEnabled = function() {
+ return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled();
+ }, Gr.prototype.isActive = function() {
+ return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive();
+ }, Gr.prototype.disableRotation = function() {
+ this._rotationDisabled = true, this._touchRotate.disable();
+ }, Gr.prototype.enableRotation = function() {
+ this._rotationDisabled = false, this._touchZoom.isEnabled() && this._touchRotate.enable();
+ };
+ var mi = function(Y) {
+ return Y.zoom || Y.drag || Y.pitch || Y.rotate;
+ }, Ui = function(Y) {
+ function D() {
+ Y.apply(this, arguments);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D;
+ }(i.Event);
+ function qi(Y) {
+ return Y.panDelta && Y.panDelta.mag() || Y.zoomDelta || Y.bearingDelta || Y.pitchDelta;
+ }
+ var Ei = function(D, J) {
+ this._map = D, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new Tl(D), this._bearingSnap = J.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(J), i.bindAll(["handleEvent", "handleWindowEvent"], this);
+ var q = this._el;
+ this._listeners = [[q, "touchstart", { passive: true }], [q, "touchmove", { passive: false }], [q, "touchend", void 0], [q, "touchcancel", void 0], [q, "mousedown", void 0], [q, "mousemove", void 0], [q, "mouseup", void 0], [i.window.document, "mousemove", { capture: true }], [i.window.document, "mouseup", void 0], [q, "mouseover", void 0], [q, "mouseout", void 0], [q, "dblclick", void 0], [q, "click", void 0], [q, "keydown", { capture: false }], [q, "keyup", void 0], [q, "wheel", { passive: false }], [q, "contextmenu", void 0], [i.window, "blur", void 0]];
+ for (var K = 0, de = this._listeners; K < de.length; K += 1) {
+ var ne = de[K], we = ne[0], Ue = ne[1], ft = ne[2];
+ o.addEventListener(we, Ue, we === i.window.document ? this.handleWindowEvent : this.handleEvent, ft);
+ }
+ };
+ Ei.prototype.destroy = function() {
+ for (var D = 0, J = this._listeners; D < J.length; D += 1) {
+ var q = J[D], K = q[0], de = q[1], ne = q[2];
+ o.removeEventListener(K, de, K === i.window.document ? this.handleWindowEvent : this.handleEvent, ne);
+ }
+ }, Ei.prototype._addDefaultHandlers = function(D) {
+ var J = this._map, q = J.getCanvasContainer();
+ this._add("mapEvent", new He(J, D));
+ var K = J.boxZoom = new kt(J, D);
+ this._add("boxZoom", K);
+ var de = new bi(), ne = new zt();
+ J.doubleClickZoom = new bt(ne, de), this._add("tapZoom", de), this._add("clickZoom", ne);
+ var we = new Rr();
+ this._add("tapDragZoom", we);
+ var Ue = J.touchPitch = new ja();
+ this._add("touchPitch", Ue);
+ var ft = new Ln(D), Zt = new En(D);
+ J.dragRotate = new Nr(D, ft, Zt), this._add("mouseRotate", ft, ["mousePitch"]), this._add("mousePitch", Zt, ["mouseRotate"]);
+ var hr = new ei(D), qt = new Un(D);
+ J.dragPan = new jr(q, hr, qt), this._add("mousePan", hr), this._add("touchPan", qt, ["touchZoom", "touchRotate"]);
+ var Ve = new Ms(), Qe = new Da();
+ J.touchZoomRotate = new Gr(q, Qe, Ve, we), this._add("touchRotate", Ve, ["touchPan", "touchZoom"]), this._add("touchZoom", Qe, ["touchPan", "touchRotate"]);
+ var at = J.scrollZoom = new Me(J, this);
+ this._add("scrollZoom", at, ["mousePan"]);
+ var Ct = J.keyboard = new Uo();
+ this._add("keyboard", Ct), this._add("blockableMapEvent", new Ye(J));
+ for (var Ot = 0, Rt = ["boxZoom", "doubleClickZoom", "tapDragZoom", "touchPitch", "dragRotate", "dragPan", "touchZoomRotate", "scrollZoom", "keyboard"]; Ot < Rt.length; Ot += 1) {
+ var Bt = Rt[Ot];
+ D.interactive && D[Bt] && J[Bt].enable(D[Bt]);
+ }
+ }, Ei.prototype._add = function(D, J, q) {
+ this._handlers.push({ handlerName: D, handler: J, allowed: q }), this._handlersById[D] = J;
+ }, Ei.prototype.stop = function(D) {
+ if (!this._updatingCamera) {
+ for (var J = 0, q = this._handlers; J < q.length; J += 1) {
+ var K = q[J], de = K.handler;
+ de.reset();
+ }
+ this._inertia.clear(), this._fireEvents({}, {}, D), this._changes = [];
+ }
+ }, Ei.prototype.isActive = function() {
+ for (var D = 0, J = this._handlers; D < J.length; D += 1) {
+ var q = J[D], K = q.handler;
+ if (K.isActive()) return true;
+ }
+ return false;
+ }, Ei.prototype.isZooming = function() {
+ return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming();
+ }, Ei.prototype.isRotating = function() {
+ return !!this._eventsInProgress.rotate;
+ }, Ei.prototype.isMoving = function() {
+ return !!mi(this._eventsInProgress) || this.isZooming();
+ }, Ei.prototype._blockedByActive = function(D, J, q) {
+ for (var K in D) if (K !== q && (!J || J.indexOf(K) < 0)) return true;
+ return false;
+ }, Ei.prototype.handleWindowEvent = function(D) {
+ this.handleEvent(D, D.type + "Window");
+ }, Ei.prototype._getMapTouches = function(D) {
+ for (var J = [], q = 0, K = D; q < K.length; q += 1) {
+ var de = K[q], ne = de.target;
+ this._el.contains(ne) && J.push(de);
+ }
+ return J;
+ }, Ei.prototype.handleEvent = function(D, J) {
+ if (D.type === "blur") {
+ this.stop(true);
+ return;
+ }
+ this._updatingCamera = true;
+ for (var q = D.type === "renderFrame" ? void 0 : D, K = { needsRenderFrame: false }, de = {}, ne = {}, we = D.touches ? this._getMapTouches(D.touches) : void 0, Ue = we ? o.touchPos(this._el, we) : o.mousePos(this._el, D), ft = 0, Zt = this._handlers; ft < Zt.length; ft += 1) {
+ var hr = Zt[ft], qt = hr.handlerName, Ve = hr.handler, Qe = hr.allowed;
+ if (Ve.isEnabled()) {
+ var at = void 0;
+ this._blockedByActive(ne, Qe, qt) ? Ve.reset() : Ve[J || D.type] && (at = Ve[J || D.type](D, Ue, we), this.mergeHandlerResult(K, de, at, qt, q), at && at.needsRenderFrame && this._triggerRenderFrame()), (at || Ve.isActive()) && (ne[qt] = Ve);
+ }
+ }
+ var Ct = {};
+ for (var Ot in this._previousActiveHandlers) ne[Ot] || (Ct[Ot] = q);
+ this._previousActiveHandlers = ne, (Object.keys(Ct).length || qi(K)) && (this._changes.push([K, de, Ct]), this._triggerRenderFrame()), (Object.keys(ne).length || qi(K)) && this._map._stop(true), this._updatingCamera = false;
+ var Rt = K.cameraAnimation;
+ Rt && (this._inertia.clear(), this._fireEvents({}, {}, true), this._changes = [], Rt(this._map));
+ }, Ei.prototype.mergeHandlerResult = function(D, J, q, K, de) {
+ if (q) {
+ i.extend(D, q);
+ var ne = { handlerName: K, originalEvent: q.originalEvent || de };
+ q.zoomDelta !== void 0 && (J.zoom = ne), q.panDelta !== void 0 && (J.drag = ne), q.pitchDelta !== void 0 && (J.pitch = ne), q.bearingDelta !== void 0 && (J.rotate = ne);
+ }
+ }, Ei.prototype._applyChanges = function() {
+ for (var D = {}, J = {}, q = {}, K = 0, de = this._changes; K < de.length; K += 1) {
+ var ne = de[K], we = ne[0], Ue = ne[1], ft = ne[2];
+ we.panDelta && (D.panDelta = (D.panDelta || new i.Point(0, 0))._add(we.panDelta)), we.zoomDelta && (D.zoomDelta = (D.zoomDelta || 0) + we.zoomDelta), we.bearingDelta && (D.bearingDelta = (D.bearingDelta || 0) + we.bearingDelta), we.pitchDelta && (D.pitchDelta = (D.pitchDelta || 0) + we.pitchDelta), we.around !== void 0 && (D.around = we.around), we.pinchAround !== void 0 && (D.pinchAround = we.pinchAround), we.noInertia && (D.noInertia = we.noInertia), i.extend(J, Ue), i.extend(q, ft);
+ }
+ this._updateMapTransform(D, J, q), this._changes = [];
+ }, Ei.prototype._updateMapTransform = function(D, J, q) {
+ var K = this._map, de = K.transform;
+ if (!qi(D)) return this._fireEvents(J, q, true);
+ var ne = D.panDelta, we = D.zoomDelta, Ue = D.bearingDelta, ft = D.pitchDelta, Zt = D.around, hr = D.pinchAround;
+ hr !== void 0 && (Zt = hr), K._stop(true), Zt = Zt || K.transform.centerPoint;
+ var qt = de.pointLocation(ne ? Zt.sub(ne) : Zt);
+ Ue && (de.bearing += Ue), ft && (de.pitch += ft), we && (de.zoom += we), de.setLocationAtPoint(qt, Zt), this._map._update(), D.noInertia || this._inertia.record(D), this._fireEvents(J, q, true);
+ }, Ei.prototype._fireEvents = function(D, J, q) {
+ var K = this, de = mi(this._eventsInProgress), ne = mi(D), we = {};
+ for (var Ue in D) {
+ var ft = D[Ue], Zt = ft.originalEvent;
+ this._eventsInProgress[Ue] || (we[Ue + "start"] = Zt), this._eventsInProgress[Ue] = D[Ue];
+ }
+ !de && ne && this._fireEvent("movestart", ne.originalEvent);
+ for (var hr in we) this._fireEvent(hr, we[hr]);
+ ne && this._fireEvent("move", ne.originalEvent);
+ for (var qt in D) {
+ var Ve = D[qt], Qe = Ve.originalEvent;
+ this._fireEvent(qt, Qe);
+ }
+ var at = {}, Ct;
+ for (var Ot in this._eventsInProgress) {
+ var Rt = this._eventsInProgress[Ot], Bt = Rt.handlerName, Dt = Rt.originalEvent;
+ this._handlersById[Bt].isActive() || (delete this._eventsInProgress[Ot], Ct = J[Bt] || Dt, at[Ot + "end"] = Ct);
+ }
+ for (var yt in at) this._fireEvent(yt, at[yt]);
+ var Pt = mi(this._eventsInProgress);
+ if (q && (de || ne) && !Pt) {
+ this._updatingCamera = true;
+ var ht = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), ur = function(br) {
+ return br !== 0 && -K._bearingSnap < br && br < K._bearingSnap;
+ };
+ ht ? (ur(ht.bearing || this._map.getBearing()) && (ht.bearing = 0), this._map.easeTo(ht, { originalEvent: Ct })) : (this._map.fire(new i.Event("moveend", { originalEvent: Ct })), ur(this._map.getBearing()) && this._map.resetNorth()), this._updatingCamera = false;
+ }
+ }, Ei.prototype._fireEvent = function(D, J) {
+ this._map.fire(new i.Event(D, J ? { originalEvent: J } : {}));
+ }, Ei.prototype._requestFrame = function() {
+ var D = this;
+ return this._map.triggerRepaint(), this._map._renderTaskQueue.add(function(J) {
+ delete D._frameId, D.handleEvent(new Ui("renderFrame", { timeStamp: J })), D._applyChanges();
+ });
+ }, Ei.prototype._triggerRenderFrame = function() {
+ this._frameId === void 0 && (this._frameId = this._requestFrame());
+ };
+ var Hn = function(Y) {
+ function D(J, q) {
+ Y.call(this), this._moving = false, this._zooming = false, this.transform = J, this._bearingSnap = q.bearingSnap, i.bindAll(["_renderFrameCallback"], this);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.getCenter = function() {
+ return new i.LngLat(this.transform.center.lng, this.transform.center.lat);
+ }, D.prototype.setCenter = function(q, K) {
+ return this.jumpTo({ center: q }, K);
+ }, D.prototype.panBy = function(q, K, de) {
+ return q = i.Point.convert(q).mult(-1), this.panTo(this.transform.center, i.extend({ offset: q }, K), de);
+ }, D.prototype.panTo = function(q, K, de) {
+ return this.easeTo(i.extend({ center: q }, K), de);
+ }, D.prototype.getZoom = function() {
+ return this.transform.zoom;
+ }, D.prototype.setZoom = function(q, K) {
+ return this.jumpTo({ zoom: q }, K), this;
+ }, D.prototype.zoomTo = function(q, K, de) {
+ return this.easeTo(i.extend({ zoom: q }, K), de);
+ }, D.prototype.zoomIn = function(q, K) {
+ return this.zoomTo(this.getZoom() + 1, q, K), this;
+ }, D.prototype.zoomOut = function(q, K) {
+ return this.zoomTo(this.getZoom() - 1, q, K), this;
+ }, D.prototype.getBearing = function() {
+ return this.transform.bearing;
+ }, D.prototype.setBearing = function(q, K) {
+ return this.jumpTo({ bearing: q }, K), this;
+ }, D.prototype.getPadding = function() {
+ return this.transform.padding;
+ }, D.prototype.setPadding = function(q, K) {
+ return this.jumpTo({ padding: q }, K), this;
+ }, D.prototype.rotateTo = function(q, K, de) {
+ return this.easeTo(i.extend({ bearing: q }, K), de);
+ }, D.prototype.resetNorth = function(q, K) {
+ return this.rotateTo(0, i.extend({ duration: 1e3 }, q), K), this;
+ }, D.prototype.resetNorthPitch = function(q, K) {
+ return this.easeTo(i.extend({ bearing: 0, pitch: 0, duration: 1e3 }, q), K), this;
+ }, D.prototype.snapToNorth = function(q, K) {
+ return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(q, K) : this;
+ }, D.prototype.getPitch = function() {
+ return this.transform.pitch;
+ }, D.prototype.setPitch = function(q, K) {
+ return this.jumpTo({ pitch: q }, K), this;
+ }, D.prototype.cameraForBounds = function(q, K) {
+ q = i.LngLatBounds.convert(q);
+ var de = K && K.bearing || 0;
+ return this._cameraForBoxAndBearing(q.getNorthWest(), q.getSouthEast(), de, K);
+ }, D.prototype._cameraForBoxAndBearing = function(q, K, de, ne) {
+ var we = { top: 0, bottom: 0, right: 0, left: 0 };
+ if (ne = i.extend({ padding: we, offset: [0, 0], maxZoom: this.transform.maxZoom }, ne), typeof ne.padding == "number") {
+ var Ue = ne.padding;
+ ne.padding = { top: Ue, bottom: Ue, right: Ue, left: Ue };
+ }
+ ne.padding = i.extend(we, ne.padding);
+ var ft = this.transform, Zt = ft.padding, hr = ft.project(i.LngLat.convert(q)), qt = ft.project(i.LngLat.convert(K)), Ve = hr.rotate(-de * Math.PI / 180), Qe = qt.rotate(-de * Math.PI / 180), at = new i.Point(Math.max(Ve.x, Qe.x), Math.max(Ve.y, Qe.y)), Ct = new i.Point(Math.min(Ve.x, Qe.x), Math.min(Ve.y, Qe.y)), Ot = at.sub(Ct), Rt = (ft.width - (Zt.left + Zt.right + ne.padding.left + ne.padding.right)) / Ot.x, Bt = (ft.height - (Zt.top + Zt.bottom + ne.padding.top + ne.padding.bottom)) / Ot.y;
+ if (Bt < 0 || Rt < 0) {
+ i.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset.");
+ return;
+ }
+ var Dt = Math.min(ft.scaleZoom(ft.scale * Math.min(Rt, Bt)), ne.maxZoom), yt = typeof ne.offset.x == "number" ? new i.Point(ne.offset.x, ne.offset.y) : i.Point.convert(ne.offset), Pt = (ne.padding.left - ne.padding.right) / 2, ht = (ne.padding.top - ne.padding.bottom) / 2, ur = new i.Point(Pt, ht), br = ur.rotate(de * Math.PI / 180), Ur = yt.add(br), Di = Ur.mult(ft.scale / ft.zoomScale(Dt)), fi = ft.unproject(hr.add(qt).div(2).sub(Di));
+ return { center: fi, zoom: Dt, bearing: de };
+ }, D.prototype.fitBounds = function(q, K, de) {
+ return this._fitInternal(this.cameraForBounds(q, K), K, de);
+ }, D.prototype.fitScreenCoordinates = function(q, K, de, ne, we) {
+ return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(i.Point.convert(q)), this.transform.pointLocation(i.Point.convert(K)), de, ne), ne, we);
+ }, D.prototype._fitInternal = function(q, K, de) {
+ return q ? (K = i.extend(q, K), delete K.padding, K.linear ? this.easeTo(K, de) : this.flyTo(K, de)) : this;
+ }, D.prototype.jumpTo = function(q, K) {
+ this.stop();
+ var de = this.transform, ne = false, we = false, Ue = false;
+ return "zoom" in q && de.zoom !== +q.zoom && (ne = true, de.zoom = +q.zoom), q.center !== void 0 && (de.center = i.LngLat.convert(q.center)), "bearing" in q && de.bearing !== +q.bearing && (we = true, de.bearing = +q.bearing), "pitch" in q && de.pitch !== +q.pitch && (Ue = true, de.pitch = +q.pitch), q.padding != null && !de.isPaddingEqual(q.padding) && (de.padding = q.padding), this.fire(new i.Event("movestart", K)).fire(new i.Event("move", K)), ne && this.fire(new i.Event("zoomstart", K)).fire(new i.Event("zoom", K)).fire(new i.Event("zoomend", K)), we && this.fire(new i.Event("rotatestart", K)).fire(new i.Event("rotate", K)).fire(new i.Event("rotateend", K)), Ue && this.fire(new i.Event("pitchstart", K)).fire(new i.Event("pitch", K)).fire(new i.Event("pitchend", K)), this.fire(new i.Event("moveend", K));
+ }, D.prototype.easeTo = function(q, K) {
+ var de = this;
+ this._stop(false, q.easeId), q = i.extend({ offset: [0, 0], duration: 500, easing: i.ease }, q), (q.animate === false || !q.essential && i.browser.prefersReducedMotion) && (q.duration = 0);
+ var ne = this.transform, we = this.getZoom(), Ue = this.getBearing(), ft = this.getPitch(), Zt = this.getPadding(), hr = "zoom" in q ? +q.zoom : we, qt = "bearing" in q ? this._normalizeBearing(q.bearing, Ue) : Ue, Ve = "pitch" in q ? +q.pitch : ft, Qe = "padding" in q ? q.padding : ne.padding, at = i.Point.convert(q.offset), Ct = ne.centerPoint.add(at), Ot = ne.pointLocation(Ct), Rt = i.LngLat.convert(q.center || Ot);
+ this._normalizeCenter(Rt);
+ var Bt = ne.project(Ot), Dt = ne.project(Rt).sub(Bt), yt = ne.zoomScale(hr - we), Pt, ht;
+ q.around && (Pt = i.LngLat.convert(q.around), ht = ne.locationPoint(Pt));
+ var ur = { moving: this._moving, zooming: this._zooming, rotating: this._rotating, pitching: this._pitching };
+ return this._zooming = this._zooming || hr !== we, this._rotating = this._rotating || Ue !== qt, this._pitching = this._pitching || Ve !== ft, this._padding = !ne.isPaddingEqual(Qe), this._easeId = q.easeId, this._prepareEase(K, q.noMoveStart, ur), this._ease(function(br) {
+ if (de._zooming && (ne.zoom = i.number(we, hr, br)), de._rotating && (ne.bearing = i.number(Ue, qt, br)), de._pitching && (ne.pitch = i.number(ft, Ve, br)), de._padding && (ne.interpolatePadding(Zt, Qe, br), Ct = ne.centerPoint.add(at)), Pt) ne.setLocationAtPoint(Pt, ht);
+ else {
+ var Ur = ne.zoomScale(ne.zoom - we), Di = hr > we ? Math.min(2, yt) : Math.max(0.5, yt), fi = Math.pow(Di, 1 - br), Ti = ne.unproject(Bt.add(Dt.mult(br * fi)).mult(Ur));
+ ne.setLocationAtPoint(ne.renderWorldCopies ? Ti.wrap() : Ti, Ct);
+ }
+ de._fireMoveEvents(K);
+ }, function(br) {
+ de._afterEase(K, br);
+ }, q), this;
+ }, D.prototype._prepareEase = function(q, K, de) {
+ de === void 0 && (de = {}), this._moving = true, !K && !de.moving && this.fire(new i.Event("movestart", q)), this._zooming && !de.zooming && this.fire(new i.Event("zoomstart", q)), this._rotating && !de.rotating && this.fire(new i.Event("rotatestart", q)), this._pitching && !de.pitching && this.fire(new i.Event("pitchstart", q));
+ }, D.prototype._fireMoveEvents = function(q) {
+ this.fire(new i.Event("move", q)), this._zooming && this.fire(new i.Event("zoom", q)), this._rotating && this.fire(new i.Event("rotate", q)), this._pitching && this.fire(new i.Event("pitch", q));
+ }, D.prototype._afterEase = function(q, K) {
+ if (!(this._easeId && K && this._easeId === K)) {
+ delete this._easeId;
+ var de = this._zooming, ne = this._rotating, we = this._pitching;
+ this._moving = false, this._zooming = false, this._rotating = false, this._pitching = false, this._padding = false, de && this.fire(new i.Event("zoomend", q)), ne && this.fire(new i.Event("rotateend", q)), we && this.fire(new i.Event("pitchend", q)), this.fire(new i.Event("moveend", q));
+ }
+ }, D.prototype.flyTo = function(q, K) {
+ var de = this;
+ if (!q.essential && i.browser.prefersReducedMotion) {
+ var ne = i.pick(q, ["center", "zoom", "bearing", "pitch", "around"]);
+ return this.jumpTo(ne, K);
+ }
+ this.stop(), q = i.extend({ offset: [0, 0], speed: 1.2, curve: 1.42, easing: i.ease }, q);
+ var we = this.transform, Ue = this.getZoom(), ft = this.getBearing(), Zt = this.getPitch(), hr = this.getPadding(), qt = "zoom" in q ? i.clamp(+q.zoom, we.minZoom, we.maxZoom) : Ue, Ve = "bearing" in q ? this._normalizeBearing(q.bearing, ft) : ft, Qe = "pitch" in q ? +q.pitch : Zt, at = "padding" in q ? q.padding : we.padding, Ct = we.zoomScale(qt - Ue), Ot = i.Point.convert(q.offset), Rt = we.centerPoint.add(Ot), Bt = we.pointLocation(Rt), Dt = i.LngLat.convert(q.center || Bt);
+ this._normalizeCenter(Dt);
+ var yt = we.project(Bt), Pt = we.project(Dt).sub(yt), ht = q.curve, ur = Math.max(we.width, we.height), br = ur / Ct, Ur = Pt.mag();
+ if ("minZoom" in q) {
+ var Di = i.clamp(Math.min(q.minZoom, Ue, qt), we.minZoom, we.maxZoom), fi = ur / we.zoomScale(Di - Ue);
+ ht = Math.sqrt(fi / Ur * 2);
+ }
+ var Ti = ht * ht;
+ function gn(so) {
+ var Yo = (br * br - ur * ur + (so ? -1 : 1) * Ti * Ti * Ur * Ur) / (2 * (so ? br : ur) * Ti * Ur);
+ return Math.log(Math.sqrt(Yo * Yo + 1) - Yo);
+ }
+ function rn(so) {
+ return (Math.exp(so) - Math.exp(-so)) / 2;
+ }
+ function Ci(so) {
+ return (Math.exp(so) + Math.exp(-so)) / 2;
+ }
+ function Bi(so) {
+ return rn(so) / Ci(so);
+ }
+ var Gi = gn(0), sn = function(so) {
+ return Ci(Gi) / Ci(Gi + ht * so);
+ }, zn = function(so) {
+ return ur * ((Ci(Gi) * Bi(Gi + ht * so) - rn(Gi)) / Ti) / Ur;
+ }, Ja = (gn(1) - Gi) / ht;
+ if (Math.abs(Ur) < 1e-6 || !isFinite(Ja)) {
+ if (Math.abs(ur - br) < 1e-6) return this.easeTo(q, K);
+ var co = br < ur ? -1 : 1;
+ Ja = Math.abs(Math.log(br / ur)) / ht, zn = function() {
+ return 0;
+ }, sn = function(so) {
+ return Math.exp(co * ht * so);
+ };
+ }
+ if ("duration" in q) q.duration = +q.duration;
+ else {
+ var ts = "screenSpeed" in q ? +q.screenSpeed / ht : +q.speed;
+ q.duration = 1e3 * Ja / ts;
+ }
+ return q.maxDuration && q.duration > q.maxDuration && (q.duration = 0), this._zooming = true, this._rotating = ft !== Ve, this._pitching = Qe !== Zt, this._padding = !we.isPaddingEqual(at), this._prepareEase(K, false), this._ease(function(so) {
+ var Yo = so * Ja, ms = 1 / sn(Yo);
+ we.zoom = so === 1 ? qt : Ue + we.scaleZoom(ms), de._rotating && (we.bearing = i.number(ft, Ve, so)), de._pitching && (we.pitch = i.number(Zt, Qe, so)), de._padding && (we.interpolatePadding(hr, at, so), Rt = we.centerPoint.add(Ot));
+ var ou = so === 1 ? Dt : we.unproject(yt.add(Pt.mult(zn(Yo))).mult(ms));
+ we.setLocationAtPoint(we.renderWorldCopies ? ou.wrap() : ou, Rt), de._fireMoveEvents(K);
+ }, function() {
+ return de._afterEase(K);
+ }, q), this;
+ }, D.prototype.isEasing = function() {
+ return !!this._easeFrameId;
+ }, D.prototype.stop = function() {
+ return this._stop();
+ }, D.prototype._stop = function(q, K) {
+ if (this._easeFrameId && (this._cancelRenderFrame(this._easeFrameId), delete this._easeFrameId, delete this._onEaseFrame), this._onEaseEnd) {
+ var de = this._onEaseEnd;
+ delete this._onEaseEnd, de.call(this, K);
+ }
+ if (!q) {
+ var ne = this.handlers;
+ ne && ne.stop(false);
+ }
+ return this;
+ }, D.prototype._ease = function(q, K, de) {
+ de.animate === false || de.duration === 0 ? (q(1), K()) : (this._easeStart = i.browser.now(), this._easeOptions = de, this._onEaseFrame = q, this._onEaseEnd = K, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback));
+ }, D.prototype._renderFrameCallback = function() {
+ var q = Math.min((i.browser.now() - this._easeStart) / this._easeOptions.duration, 1);
+ this._onEaseFrame(this._easeOptions.easing(q)), q < 1 ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop();
+ }, D.prototype._normalizeBearing = function(q, K) {
+ q = i.wrap(q, -180, 180);
+ var de = Math.abs(q - K);
+ return Math.abs(q - 360 - K) < de && (q -= 360), Math.abs(q + 360 - K) < de && (q += 360), q;
+ }, D.prototype._normalizeCenter = function(q) {
+ var K = this.transform;
+ if (!(!K.renderWorldCopies || K.lngRange)) {
+ var de = q.lng - K.center.lng;
+ q.lng += de > 180 ? -360 : de < -180 ? 360 : 0;
+ }
+ }, D;
+ }(i.Evented), en = function(D) {
+ D === void 0 && (D = {}), this.options = D, i.bindAll(["_toggleAttribution", "_updateEditLink", "_updateData", "_updateCompact"], this);
+ };
+ en.prototype.getDefaultPosition = function() {
+ return "bottom-right";
+ }, en.prototype.onAdd = function(D) {
+ var J = this.options && this.options.compact;
+ return this._map = D, this._container = o.create("div", "mapboxgl-ctrl mapboxgl-ctrl-attrib"), this._compactButton = o.create("button", "mapboxgl-ctrl-attrib-button", this._container), this._compactButton.addEventListener("click", this._toggleAttribution), this._setElementTitle(this._compactButton, "ToggleAttribution"), this._innerContainer = o.create("div", "mapboxgl-ctrl-attrib-inner", this._container), this._innerContainer.setAttribute("role", "list"), J && this._container.classList.add("mapboxgl-compact"), this._updateAttributions(), this._updateEditLink(), this._map.on("styledata", this._updateData), this._map.on("sourcedata", this._updateData), this._map.on("moveend", this._updateEditLink), J === void 0 && (this._map.on("resize", this._updateCompact), this._updateCompact()), this._container;
+ }, en.prototype.onRemove = function() {
+ o.remove(this._container), this._map.off("styledata", this._updateData), this._map.off("sourcedata", this._updateData), this._map.off("moveend", this._updateEditLink), this._map.off("resize", this._updateCompact), this._map = void 0, this._attribHTML = void 0;
+ }, en.prototype._setElementTitle = function(D, J) {
+ var q = this._map._getUIString("AttributionControl." + J);
+ D.title = q, D.setAttribute("aria-label", q);
+ }, en.prototype._toggleAttribution = function() {
+ this._container.classList.contains("mapboxgl-compact-show") ? (this._container.classList.remove("mapboxgl-compact-show"), this._compactButton.setAttribute("aria-pressed", "false")) : (this._container.classList.add("mapboxgl-compact-show"), this._compactButton.setAttribute("aria-pressed", "true"));
+ }, en.prototype._updateEditLink = function() {
+ var D = this._editLink;
+ D || (D = this._editLink = this._container.querySelector(".mapbox-improve-map"));
+ var J = [{ key: "owner", value: this.styleOwner }, { key: "id", value: this.styleId }, { key: "access_token", value: this._map._requestManager._customAccessToken || i.config.ACCESS_TOKEN }];
+ if (D) {
+ var q = J.reduce(function(K, de, ne) {
+ return de.value && (K += de.key + "=" + de.value + (ne < J.length - 1 ? "&" : "")), K;
+ }, "?");
+ D.href = i.config.FEEDBACK_URL + "/" + q + (this._map._hash ? this._map._hash.getHashString(true) : ""), D.rel = "noopener nofollow", this._setElementTitle(D, "MapFeedback");
+ }
+ }, en.prototype._updateData = function(D) {
+ D && (D.sourceDataType === "metadata" || D.sourceDataType === "visibility" || D.dataType === "style") && (this._updateAttributions(), this._updateEditLink());
+ }, en.prototype._updateAttributions = function() {
+ if (this._map.style) {
+ var D = [];
+ if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? D = D.concat(this.options.customAttribution.map(function(Ue) {
+ return typeof Ue != "string" ? "" : Ue;
+ })) : typeof this.options.customAttribution == "string" && D.push(this.options.customAttribution)), this._map.style.stylesheet) {
+ var J = this._map.style.stylesheet;
+ this.styleOwner = J.owner, this.styleId = J.id;
+ }
+ var q = this._map.style.sourceCaches;
+ for (var K in q) {
+ var de = q[K];
+ if (de.used) {
+ var ne = de.getSource();
+ ne.attribution && D.indexOf(ne.attribution) < 0 && D.push(ne.attribution);
+ }
+ }
+ D.sort(function(Ue, ft) {
+ return Ue.length - ft.length;
+ }), D = D.filter(function(Ue, ft) {
+ for (var Zt = ft + 1; Zt < D.length; Zt++) if (D[Zt].indexOf(Ue) >= 0) return false;
+ return true;
+ });
+ var we = D.join(" | ");
+ we !== this._attribHTML && (this._attribHTML = we, D.length ? (this._innerContainer.innerHTML = we, this._container.classList.remove("mapboxgl-attrib-empty")) : this._container.classList.add("mapboxgl-attrib-empty"), this._editLink = null);
+ }
+ }, en.prototype._updateCompact = function() {
+ this._map.getCanvasContainer().offsetWidth <= 640 ? this._container.classList.add("mapboxgl-compact") : this._container.classList.remove("mapboxgl-compact", "mapboxgl-compact-show");
+ };
+ var Wi = function() {
+ i.bindAll(["_updateLogo"], this), i.bindAll(["_updateCompact"], this);
+ };
+ Wi.prototype.onAdd = function(D) {
+ this._map = D, this._container = o.create("div", "mapboxgl-ctrl");
+ var J = o.create("a", "mapboxgl-ctrl-logo");
+ return J.target = "_blank", J.rel = "noopener nofollow", J.href = "https://www.mapbox.com/", J.setAttribute("aria-label", this._map._getUIString("LogoControl.Title")), J.setAttribute("rel", "noopener nofollow"), this._container.appendChild(J), this._container.style.display = "none", this._map.on("sourcedata", this._updateLogo), this._updateLogo(), this._map.on("resize", this._updateCompact), this._updateCompact(), this._container;
+ }, Wi.prototype.onRemove = function() {
+ o.remove(this._container), this._map.off("sourcedata", this._updateLogo), this._map.off("resize", this._updateCompact);
+ }, Wi.prototype.getDefaultPosition = function() {
+ return "bottom-left";
+ }, Wi.prototype._updateLogo = function(D) {
+ (!D || D.sourceDataType === "metadata") && (this._container.style.display = this._logoRequired() ? "block" : "none");
+ }, Wi.prototype._logoRequired = function() {
+ if (this._map.style) {
+ var D = this._map.style.sourceCaches;
+ for (var J in D) {
+ var q = D[J].getSource();
+ if (q.mapbox_logo) return true;
+ }
+ return false;
+ }
+ }, Wi.prototype._updateCompact = function() {
+ var D = this._container.children;
+ if (D.length) {
+ var J = D[0];
+ this._map.getCanvasContainer().offsetWidth < 250 ? J.classList.add("mapboxgl-compact") : J.classList.remove("mapboxgl-compact");
+ }
+ };
+ var si = function() {
+ this._queue = [], this._id = 0, this._cleared = false, this._currentlyRunning = false;
+ };
+ si.prototype.add = function(D) {
+ var J = ++this._id, q = this._queue;
+ return q.push({ callback: D, id: J, cancelled: false }), J;
+ }, si.prototype.remove = function(D) {
+ for (var J = this._currentlyRunning, q = J ? this._queue.concat(J) : this._queue, K = 0, de = q; K < de.length; K += 1) {
+ var ne = de[K];
+ if (ne.id === D) {
+ ne.cancelled = true;
+ return;
+ }
+ }
+ }, si.prototype.run = function(D) {
+ D === void 0 && (D = 0);
+ var J = this._currentlyRunning = this._queue;
+ this._queue = [];
+ for (var q = 0, K = J; q < K.length; q += 1) {
+ var de = K[q];
+ if (!de.cancelled && (de.callback(D), this._cleared)) break;
+ }
+ this._cleared = false, this._currentlyRunning = false;
+ }, si.prototype.clear = function() {
+ this._currentlyRunning && (this._cleared = true), this._queue = [];
+ };
+ var Mr = { "AttributionControl.ToggleAttribution": "Toggle attribution", "AttributionControl.MapFeedback": "Map feedback", "FullscreenControl.Enter": "Enter fullscreen", "FullscreenControl.Exit": "Exit fullscreen", "GeolocateControl.FindMyLocation": "Find my location", "GeolocateControl.LocationNotAvailable": "Location not available", "LogoControl.Title": "Mapbox logo", "NavigationControl.ResetBearing": "Reset bearing to north", "NavigationControl.ZoomIn": "Zoom in", "NavigationControl.ZoomOut": "Zoom out", "ScaleControl.Feet": "ft", "ScaleControl.Meters": "m", "ScaleControl.Kilometers": "km", "ScaleControl.Miles": "mi", "ScaleControl.NauticalMiles": "nm" }, Yr = i.window.HTMLImageElement, xi = i.window.HTMLElement, Ri = i.window.ImageBitmap, ci = -2, an = 22, Zi = 0, Bn = 60, hi = { center: [0, 0], zoom: 0, bearing: 0, pitch: 0, minZoom: ci, maxZoom: an, minPitch: Zi, maxPitch: Bn, interactive: true, scrollZoom: true, boxZoom: true, dragRotate: true, dragPan: true, keyboard: true, doubleClickZoom: true, touchZoomRotate: true, touchPitch: true, bearingSnap: 7, clickTolerance: 3, pitchWithRotate: true, hash: false, attributionControl: true, failIfMajorPerformanceCaveat: false, preserveDrawingBuffer: false, trackResize: true, renderWorldCopies: true, refreshExpiredTiles: true, maxTileCacheSize: null, localIdeographFontFamily: "sans-serif", transformRequest: null, accessToken: null, fadeDuration: 300, crossSourceCollisions: true }, li = function(Y) {
+ function D(q) {
+ var K = this;
+ if (q = i.extend({}, hi, q), q.minZoom != null && q.maxZoom != null && q.minZoom > q.maxZoom) throw new Error("maxZoom must be greater than or equal to minZoom");
+ if (q.minPitch != null && q.maxPitch != null && q.minPitch > q.maxPitch) throw new Error("maxPitch must be greater than or equal to minPitch");
+ if (q.minPitch != null && q.minPitch < Zi) throw new Error("minPitch must be greater than or equal to " + Zi);
+ if (q.maxPitch != null && q.maxPitch > Bn) throw new Error("maxPitch must be less than or equal to " + Bn);
+ var de = new wo(q.minZoom, q.maxZoom, q.minPitch, q.maxPitch, q.renderWorldCopies);
+ if (Y.call(this, de, q), this._interactive = q.interactive, this._maxTileCacheSize = q.maxTileCacheSize, this._failIfMajorPerformanceCaveat = q.failIfMajorPerformanceCaveat, this._preserveDrawingBuffer = q.preserveDrawingBuffer, this._antialias = q.antialias, this._trackResize = q.trackResize, this._bearingSnap = q.bearingSnap, this._refreshExpiredTiles = q.refreshExpiredTiles, this._fadeDuration = q.fadeDuration, this._crossSourceCollisions = q.crossSourceCollisions, this._crossFadingFactor = 1, this._collectResourceTiming = q.collectResourceTiming, this._renderTaskQueue = new si(), this._controls = [], this._mapId = i.uniqueId(), this._locale = i.extend({}, Mr, q.locale), this._clickTolerance = q.clickTolerance, this._requestManager = new i.RequestManager(q.transformRequest, q.accessToken), typeof q.container == "string") {
+ if (this._container = i.window.document.getElementById(q.container), !this._container) throw new Error("Container '" + q.container + "' not found.");
+ } else if (q.container instanceof xi) this._container = q.container;
+ else throw new Error("Invalid type: 'container' must be a String or HTMLElement.");
+ if (q.maxBounds && this.setMaxBounds(q.maxBounds), i.bindAll(["_onWindowOnline", "_onWindowResize", "_onMapScroll", "_contextLost", "_contextRestored"], this), this._setupContainer(), this._setupPainter(), this.painter === void 0) throw new Error("Failed to initialize WebGL.");
+ this.on("move", function() {
+ return K._update(false);
+ }), this.on("moveend", function() {
+ return K._update(false);
+ }), this.on("zoom", function() {
+ return K._update(true);
+ }), typeof i.window != "undefined" && (i.window.addEventListener("online", this._onWindowOnline, false), i.window.addEventListener("resize", this._onWindowResize, false), i.window.addEventListener("orientationchange", this._onWindowResize, false)), this.handlers = new Ei(this, q);
+ var ne = typeof q.hash == "string" && q.hash || void 0;
+ this._hash = q.hash && new Ul(ne).addTo(this), (!this._hash || !this._hash._onHashChange()) && (this.jumpTo({ center: q.center, zoom: q.zoom, bearing: q.bearing, pitch: q.pitch }), q.bounds && (this.resize(), this.fitBounds(q.bounds, i.extend({}, q.fitBoundsOptions, { duration: 0 })))), this.resize(), this._localIdeographFontFamily = q.localIdeographFontFamily, q.style && this.setStyle(q.style, { localIdeographFontFamily: q.localIdeographFontFamily }), q.attributionControl && this.addControl(new en({ customAttribution: q.customAttribution })), this.addControl(new Wi(), q.logoPosition), this.on("style.load", function() {
+ K.transform.unmodified && K.jumpTo(K.style.stylesheet);
+ }), this.on("data", function(we) {
+ K._update(we.dataType === "style"), K.fire(new i.Event(we.dataType + "data", we));
+ }), this.on("dataloading", function(we) {
+ K.fire(new i.Event(we.dataType + "dataloading", we));
+ });
+ }
+ Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D;
+ var J = { showTileBoundaries: { configurable: true }, showPadding: { configurable: true }, showCollisionBoxes: { configurable: true }, showOverdrawInspector: { configurable: true }, repaint: { configurable: true }, vertices: { configurable: true }, version: { configurable: true } };
+ return D.prototype._getMapId = function() {
+ return this._mapId;
+ }, D.prototype.addControl = function(K, de) {
+ if (de === void 0 && (K.getDefaultPosition ? de = K.getDefaultPosition() : de = "top-right"), !K || !K.onAdd) return this.fire(new i.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));
+ var ne = K.onAdd(this);
+ this._controls.push(K);
+ var we = this._controlPositions[de];
+ return de.indexOf("bottom") !== -1 ? we.insertBefore(ne, we.firstChild) : we.appendChild(ne), this;
+ }, D.prototype.removeControl = function(K) {
+ if (!K || !K.onRemove) return this.fire(new i.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));
+ var de = this._controls.indexOf(K);
+ return de > -1 && this._controls.splice(de, 1), K.onRemove(this), this;
+ }, D.prototype.hasControl = function(K) {
+ return this._controls.indexOf(K) > -1;
+ }, D.prototype.resize = function(K) {
+ var de = this._containerDimensions(), ne = de[0], we = de[1];
+ this._resizeCanvas(ne, we), this.transform.resize(ne, we), this.painter.resize(ne, we);
+ var Ue = !this._moving;
+ return Ue && (this.stop(), this.fire(new i.Event("movestart", K)).fire(new i.Event("move", K))), this.fire(new i.Event("resize", K)), Ue && this.fire(new i.Event("moveend", K)), this;
+ }, D.prototype.getBounds = function() {
+ return this.transform.getBounds();
+ }, D.prototype.getMaxBounds = function() {
+ return this.transform.getMaxBounds();
+ }, D.prototype.setMaxBounds = function(K) {
+ return this.transform.setMaxBounds(i.LngLatBounds.convert(K)), this._update();
+ }, D.prototype.setMinZoom = function(K) {
+ if (K = K == null ? ci : K, K >= ci && K <= this.transform.maxZoom) return this.transform.minZoom = K, this._update(), this.getZoom() < K && this.setZoom(K), this;
+ throw new Error("minZoom must be between " + ci + " and the current maxZoom, inclusive");
+ }, D.prototype.getMinZoom = function() {
+ return this.transform.minZoom;
+ }, D.prototype.setMaxZoom = function(K) {
+ if (K = K == null ? an : K, K >= this.transform.minZoom) return this.transform.maxZoom = K, this._update(), this.getZoom() > K && this.setZoom(K), this;
+ throw new Error("maxZoom must be greater than the current minZoom");
+ }, D.prototype.getMaxZoom = function() {
+ return this.transform.maxZoom;
+ }, D.prototype.setMinPitch = function(K) {
+ if (K = K == null ? Zi : K, K < Zi) throw new Error("minPitch must be greater than or equal to " + Zi);
+ if (K >= Zi && K <= this.transform.maxPitch) return this.transform.minPitch = K, this._update(), this.getPitch() < K && this.setPitch(K), this;
+ throw new Error("minPitch must be between " + Zi + " and the current maxPitch, inclusive");
+ }, D.prototype.getMinPitch = function() {
+ return this.transform.minPitch;
+ }, D.prototype.setMaxPitch = function(K) {
+ if (K = K == null ? Bn : K, K > Bn) throw new Error("maxPitch must be less than or equal to " + Bn);
+ if (K >= this.transform.minPitch) return this.transform.maxPitch = K, this._update(), this.getPitch() > K && this.setPitch(K), this;
+ throw new Error("maxPitch must be greater than the current minPitch");
+ }, D.prototype.getMaxPitch = function() {
+ return this.transform.maxPitch;
+ }, D.prototype.getRenderWorldCopies = function() {
+ return this.transform.renderWorldCopies;
+ }, D.prototype.setRenderWorldCopies = function(K) {
+ return this.transform.renderWorldCopies = K, this._update();
+ }, D.prototype.project = function(K) {
+ return this.transform.locationPoint(i.LngLat.convert(K));
+ }, D.prototype.unproject = function(K) {
+ return this.transform.pointLocation(i.Point.convert(K));
+ }, D.prototype.isMoving = function() {
+ return this._moving || this.handlers.isMoving();
+ }, D.prototype.isZooming = function() {
+ return this._zooming || this.handlers.isZooming();
+ }, D.prototype.isRotating = function() {
+ return this._rotating || this.handlers.isRotating();
+ }, D.prototype._createDelegatedListener = function(K, de, ne) {
+ var we = this, Ue;
+ if (K === "mouseenter" || K === "mouseover") {
+ var ft = false, Zt = function(Ct) {
+ var Ot = we.getLayer(de) ? we.queryRenderedFeatures(Ct.point, { layers: [de] }) : [];
+ Ot.length ? ft || (ft = true, ne.call(we, new se(K, we, Ct.originalEvent, { features: Ot }))) : ft = false;
+ }, hr = function() {
+ ft = false;
+ };
+ return { layer: de, listener: ne, delegates: { mousemove: Zt, mouseout: hr } };
+ } else if (K === "mouseleave" || K === "mouseout") {
+ var qt = false, Ve = function(Ct) {
+ var Ot = we.getLayer(de) ? we.queryRenderedFeatures(Ct.point, { layers: [de] }) : [];
+ Ot.length ? qt = true : qt && (qt = false, ne.call(we, new se(K, we, Ct.originalEvent)));
+ }, Qe = function(Ct) {
+ qt && (qt = false, ne.call(we, new se(K, we, Ct.originalEvent)));
+ };
+ return { layer: de, listener: ne, delegates: { mousemove: Ve, mouseout: Qe } };
+ } else {
+ var at = function(Ct) {
+ var Ot = we.getLayer(de) ? we.queryRenderedFeatures(Ct.point, { layers: [de] }) : [];
+ Ot.length && (Ct.features = Ot, ne.call(we, Ct), delete Ct.features);
+ };
+ return { layer: de, listener: ne, delegates: (Ue = {}, Ue[K] = at, Ue) };
+ }
+ }, D.prototype.on = function(K, de, ne) {
+ if (ne === void 0) return Y.prototype.on.call(this, K, de);
+ var we = this._createDelegatedListener(K, de, ne);
+ this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[K] = this._delegatedListeners[K] || [], this._delegatedListeners[K].push(we);
+ for (var Ue in we.delegates) this.on(Ue, we.delegates[Ue]);
+ return this;
+ }, D.prototype.once = function(K, de, ne) {
+ if (ne === void 0) return Y.prototype.once.call(this, K, de);
+ var we = this._createDelegatedListener(K, de, ne);
+ for (var Ue in we.delegates) this.once(Ue, we.delegates[Ue]);
+ return this;
+ }, D.prototype.off = function(K, de, ne) {
+ var we = this;
+ if (ne === void 0) return Y.prototype.off.call(this, K, de);
+ var Ue = function(ft) {
+ for (var Zt = ft[K], hr = 0; hr < Zt.length; hr++) {
+ var qt = Zt[hr];
+ if (qt.layer === de && qt.listener === ne) {
+ for (var Ve in qt.delegates) we.off(Ve, qt.delegates[Ve]);
+ return Zt.splice(hr, 1), we;
+ }
+ }
+ };
+ return this._delegatedListeners && this._delegatedListeners[K] && Ue(this._delegatedListeners), this;
+ }, D.prototype.queryRenderedFeatures = function(K, de) {
+ if (!this.style) return [];
+ de === void 0 && K !== void 0 && !(K instanceof i.Point) && !Array.isArray(K) && (de = K, K = void 0), de = de || {}, K = K || [[0, 0], [this.transform.width, this.transform.height]];
+ var ne;
+ if (K instanceof i.Point || typeof K[0] == "number") ne = [i.Point.convert(K)];
+ else {
+ var we = i.Point.convert(K[0]), Ue = i.Point.convert(K[1]);
+ ne = [we, new i.Point(Ue.x, we.y), Ue, new i.Point(we.x, Ue.y), we];
+ }
+ return this.style.queryRenderedFeatures(ne, de, this.transform);
+ }, D.prototype.querySourceFeatures = function(K, de) {
+ return this.style.querySourceFeatures(K, de);
+ }, D.prototype.setStyle = function(K, de) {
+ return de = i.extend({}, { localIdeographFontFamily: this._localIdeographFontFamily }, de), de.diff !== false && de.localIdeographFontFamily === this._localIdeographFontFamily && this.style && K ? (this._diffStyle(K, de), this) : (this._localIdeographFontFamily = de.localIdeographFontFamily, this._updateStyle(K, de));
+ }, D.prototype._getUIString = function(K) {
+ var de = this._locale[K];
+ if (de == null) throw new Error("Missing UI string '" + K + "'");
+ return de;
+ }, D.prototype._updateStyle = function(K, de) {
+ if (this.style && (this.style.setEventedParent(null), this.style._remove()), K) this.style = new yu(this, de || {});
+ else return delete this.style, this;
+ return this.style.setEventedParent(this, { style: this.style }), typeof K == "string" ? this.style.loadURL(K) : this.style.loadJSON(K), this;
+ }, D.prototype._lazyInitEmptyStyle = function() {
+ this.style || (this.style = new yu(this, {}), this.style.setEventedParent(this, { style: this.style }), this.style.loadEmpty());
+ }, D.prototype._diffStyle = function(K, de) {
+ var ne = this;
+ if (typeof K == "string") {
+ var we = this._requestManager.normalizeStyleURL(K), Ue = this._requestManager.transformRequest(we, i.ResourceType.Style);
+ i.getJSON(Ue, function(ft, Zt) {
+ ft ? ne.fire(new i.ErrorEvent(ft)) : Zt && ne._updateDiff(Zt, de);
+ });
+ } else typeof K == "object" && this._updateDiff(K, de);
+ }, D.prototype._updateDiff = function(K, de) {
+ try {
+ this.style.setState(K) && this._update(true);
+ } catch (ne) {
+ i.warnOnce("Unable to perform style diff: " + (ne.message || ne.error || ne) + ". Rebuilding the style from scratch."), this._updateStyle(K, de);
+ }
+ }, D.prototype.getStyle = function() {
+ if (this.style) return this.style.serialize();
+ }, D.prototype.isStyleLoaded = function() {
+ return this.style ? this.style.loaded() : i.warnOnce("There is no style added to the map.");
+ }, D.prototype.addSource = function(K, de) {
+ return this._lazyInitEmptyStyle(), this.style.addSource(K, de), this._update(true);
+ }, D.prototype.isSourceLoaded = function(K) {
+ var de = this.style && this.style.sourceCaches[K];
+ if (de === void 0) {
+ this.fire(new i.ErrorEvent(new Error("There is no source with ID '" + K + "'")));
+ return;
+ }
+ return de.loaded();
+ }, D.prototype.areTilesLoaded = function() {
+ var K = this.style && this.style.sourceCaches;
+ for (var de in K) {
+ var ne = K[de], we = ne._tiles;
+ for (var Ue in we) {
+ var ft = we[Ue];
+ if (!(ft.state === "loaded" || ft.state === "errored")) return false;
+ }
+ }
+ return true;
+ }, D.prototype.addSourceType = function(K, de, ne) {
+ return this._lazyInitEmptyStyle(), this.style.addSourceType(K, de, ne);
+ }, D.prototype.removeSource = function(K) {
+ return this.style.removeSource(K), this._update(true);
+ }, D.prototype.getSource = function(K) {
+ return this.style.getSource(K);
+ }, D.prototype.addImage = function(K, de, ne) {
+ ne === void 0 && (ne = {});
+ var we = ne.pixelRatio;
+ we === void 0 && (we = 1);
+ var Ue = ne.sdf;
+ Ue === void 0 && (Ue = false);
+ var ft = ne.stretchX, Zt = ne.stretchY, hr = ne.content;
+ this._lazyInitEmptyStyle();
+ var qt = 0;
+ if (de instanceof Yr || Ri && de instanceof Ri) {
+ var Ve = i.browser.getImageData(de), Qe = Ve.width, at = Ve.height, Ct = Ve.data;
+ this.style.addImage(K, { data: new i.RGBAImage({ width: Qe, height: at }, Ct), pixelRatio: we, stretchX: ft, stretchY: Zt, content: hr, sdf: Ue, version: qt });
+ } else {
+ if (de.width === void 0 || de.height === void 0) return this.fire(new i.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));
+ var Ot = de.width, Rt = de.height, Bt = de.data, Dt = de;
+ this.style.addImage(K, { data: new i.RGBAImage({ width: Ot, height: Rt }, new Uint8Array(Bt)), pixelRatio: we, stretchX: ft, stretchY: Zt, content: hr, sdf: Ue, version: qt, userImage: Dt }), Dt.onAdd && Dt.onAdd(this, K);
+ }
+ }, D.prototype.updateImage = function(K, de) {
+ var ne = this.style.getImage(K);
+ if (!ne) return this.fire(new i.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));
+ var we = de instanceof Yr || Ri && de instanceof Ri ? i.browser.getImageData(de) : de, Ue = we.width, ft = we.height, Zt = we.data;
+ if (Ue === void 0 || ft === void 0) return this.fire(new i.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));
+ if (Ue !== ne.data.width || ft !== ne.data.height) return this.fire(new i.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image")));
+ var hr = !(de instanceof Yr || Ri && de instanceof Ri);
+ ne.data.replace(Zt, hr), this.style.updateImage(K, ne);
+ }, D.prototype.hasImage = function(K) {
+ return K ? !!this.style.getImage(K) : (this.fire(new i.ErrorEvent(new Error("Missing required image id"))), false);
+ }, D.prototype.removeImage = function(K) {
+ this.style.removeImage(K);
+ }, D.prototype.loadImage = function(K, de) {
+ i.getImage(this._requestManager.transformRequest(K, i.ResourceType.Image), de);
+ }, D.prototype.listImages = function() {
+ return this.style.listImages();
+ }, D.prototype.addLayer = function(K, de) {
+ return this._lazyInitEmptyStyle(), this.style.addLayer(K, de), this._update(true);
+ }, D.prototype.moveLayer = function(K, de) {
+ return this.style.moveLayer(K, de), this._update(true);
+ }, D.prototype.removeLayer = function(K) {
+ return this.style.removeLayer(K), this._update(true);
+ }, D.prototype.getLayer = function(K) {
+ return this.style.getLayer(K);
+ }, D.prototype.setLayerZoomRange = function(K, de, ne) {
+ return this.style.setLayerZoomRange(K, de, ne), this._update(true);
+ }, D.prototype.setFilter = function(K, de, ne) {
+ return ne === void 0 && (ne = {}), this.style.setFilter(K, de, ne), this._update(true);
+ }, D.prototype.getFilter = function(K) {
+ return this.style.getFilter(K);
+ }, D.prototype.setPaintProperty = function(K, de, ne, we) {
+ return we === void 0 && (we = {}), this.style.setPaintProperty(K, de, ne, we), this._update(true);
+ }, D.prototype.getPaintProperty = function(K, de) {
+ return this.style.getPaintProperty(K, de);
+ }, D.prototype.setLayoutProperty = function(K, de, ne, we) {
+ return we === void 0 && (we = {}), this.style.setLayoutProperty(K, de, ne, we), this._update(true);
+ }, D.prototype.getLayoutProperty = function(K, de) {
+ return this.style.getLayoutProperty(K, de);
+ }, D.prototype.setLight = function(K, de) {
+ return de === void 0 && (de = {}), this._lazyInitEmptyStyle(), this.style.setLight(K, de), this._update(true);
+ }, D.prototype.getLight = function() {
+ return this.style.getLight();
+ }, D.prototype.setFeatureState = function(K, de) {
+ return this.style.setFeatureState(K, de), this._update();
+ }, D.prototype.removeFeatureState = function(K, de) {
+ return this.style.removeFeatureState(K, de), this._update();
+ }, D.prototype.getFeatureState = function(K) {
+ return this.style.getFeatureState(K);
+ }, D.prototype.getContainer = function() {
+ return this._container;
+ }, D.prototype.getCanvasContainer = function() {
+ return this._canvasContainer;
+ }, D.prototype.getCanvas = function() {
+ return this._canvas;
+ }, D.prototype._containerDimensions = function() {
+ var K = 0, de = 0;
+ return this._container && (K = this._container.clientWidth || 400, de = this._container.clientHeight || 300), [K, de];
+ }, D.prototype._detectMissingCSS = function() {
+ var K = i.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color");
+ K !== "rgb(250, 128, 114)" && i.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.");
+ }, D.prototype._setupContainer = function() {
+ var K = this._container;
+ K.classList.add("mapboxgl-map");
+ var de = this._missingCSSCanary = o.create("div", "mapboxgl-canary", K);
+ de.style.visibility = "hidden", this._detectMissingCSS();
+ var ne = this._canvasContainer = o.create("div", "mapboxgl-canvas-container", K);
+ this._interactive && ne.classList.add("mapboxgl-interactive"), this._canvas = o.create("canvas", "mapboxgl-canvas", ne), this._canvas.addEventListener("webglcontextlost", this._contextLost, false), this._canvas.addEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.setAttribute("tabindex", "0"), this._canvas.setAttribute("aria-label", "Map"), this._canvas.setAttribute("role", "region");
+ var we = this._containerDimensions();
+ this._resizeCanvas(we[0], we[1]);
+ var Ue = this._controlContainer = o.create("div", "mapboxgl-control-container", K), ft = this._controlPositions = {};
+ ["top-left", "top-right", "bottom-left", "bottom-right"].forEach(function(Zt) {
+ ft[Zt] = o.create("div", "mapboxgl-ctrl-" + Zt, Ue);
+ }), this._container.addEventListener("scroll", this._onMapScroll, false);
+ }, D.prototype._resizeCanvas = function(K, de) {
+ var ne = i.browser.devicePixelRatio || 1;
+ this._canvas.width = ne * K, this._canvas.height = ne * de, this._canvas.style.width = K + "px", this._canvas.style.height = de + "px";
+ }, D.prototype._setupPainter = function() {
+ var K = i.extend({}, a.webGLContextAttributes, { failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat, preserveDrawingBuffer: this._preserveDrawingBuffer, antialias: this._antialias || false }), de = this._canvas.getContext("webgl", K) || this._canvas.getContext("experimental-webgl", K);
+ if (!de) {
+ this.fire(new i.ErrorEvent(new Error("Failed to initialize WebGL")));
+ return;
+ }
+ this.painter = new mo(de, this.transform), i.webpSupported.testSupport(de);
+ }, D.prototype._contextLost = function(K) {
+ K.preventDefault(), this._frame && (this._frame.cancel(), this._frame = null), this.fire(new i.Event("webglcontextlost", { originalEvent: K }));
+ }, D.prototype._contextRestored = function(K) {
+ this._setupPainter(), this.resize(), this._update(), this.fire(new i.Event("webglcontextrestored", { originalEvent: K }));
+ }, D.prototype._onMapScroll = function(K) {
+ if (K.target === this._container) return this._container.scrollTop = 0, this._container.scrollLeft = 0, false;
+ }, D.prototype.loaded = function() {
+ return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded();
+ }, D.prototype._update = function(K) {
+ return this.style ? (this._styleDirty = this._styleDirty || K, this._sourcesDirty = true, this.triggerRepaint(), this) : this;
+ }, D.prototype._requestRenderFrame = function(K) {
+ return this._update(), this._renderTaskQueue.add(K);
+ }, D.prototype._cancelRenderFrame = function(K) {
+ this._renderTaskQueue.remove(K);
+ }, D.prototype._render = function(K) {
+ var de = this, ne, we = 0, Ue = this.painter.context.extTimerQuery;
+ if (this.listens("gpu-timing-frame") && (ne = Ue.createQueryEXT(), Ue.beginQueryEXT(Ue.TIME_ELAPSED_EXT, ne), we = i.browser.now()), this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(K), !this._removed) {
+ var ft = false;
+ if (this.style && this._styleDirty) {
+ this._styleDirty = false;
+ var Zt = this.transform.zoom, hr = i.browser.now();
+ this.style.zoomHistory.update(Zt, hr);
+ var qt = new i.EvaluationParameters(Zt, { now: hr, fadeDuration: this._fadeDuration, zoomHistory: this.style.zoomHistory, transition: this.style.getTransition() }), Ve = qt.crossFadingFactor();
+ (Ve !== 1 || Ve !== this._crossFadingFactor) && (ft = true, this._crossFadingFactor = Ve), this.style.update(qt);
+ }
+ if (this.style && this._sourcesDirty && (this._sourcesDirty = false, this.style._updateSources(this.transform)), this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, this._fadeDuration, this._crossSourceCollisions), this.painter.render(this.style, { showTileBoundaries: this.showTileBoundaries, showOverdrawInspector: this._showOverdrawInspector, rotating: this.isRotating(), zooming: this.isZooming(), moving: this.isMoving(), fadeDuration: this._fadeDuration, showPadding: this.showPadding, gpuTiming: !!this.listens("gpu-timing-layer") }), this.fire(new i.Event("render")), this.loaded() && !this._loaded && (this._loaded = true, this.fire(new i.Event("load"))), this.style && (this.style.hasTransitions() || ft) && (this._styleDirty = true), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles(), this.listens("gpu-timing-frame")) {
+ var Qe = i.browser.now() - we;
+ Ue.endQueryEXT(Ue.TIME_ELAPSED_EXT, ne), setTimeout(function() {
+ var Ot = Ue.getQueryObjectEXT(ne, Ue.QUERY_RESULT_EXT) / 1e6;
+ Ue.deleteQueryEXT(ne), de.fire(new i.Event("gpu-timing-frame", { cpuTime: Qe, gpuTime: Ot }));
+ }, 50);
+ }
+ if (this.listens("gpu-timing-layer")) {
+ var at = this.painter.collectGpuTimers();
+ setTimeout(function() {
+ var Ot = de.painter.queryGpuTimers(at);
+ de.fire(new i.Event("gpu-timing-layer", { layerTimes: Ot }));
+ }, 50);
+ }
+ var Ct = this._sourcesDirty || this._styleDirty || this._placementDirty;
+ return Ct || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new i.Event("idle")), this._loaded && !this._fullyLoaded && !Ct && (this._fullyLoaded = true), this;
+ }
+ }, D.prototype.remove = function() {
+ this._hash && this._hash.remove();
+ for (var K = 0, de = this._controls; K < de.length; K += 1) {
+ var ne = de[K];
+ ne.onRemove(this);
+ }
+ this._controls = [], this._frame && (this._frame.cancel(), this._frame = null), this._renderTaskQueue.clear(), this.painter.destroy(), this.handlers.destroy(), delete this.handlers, this.setStyle(null), typeof i.window != "undefined" && (i.window.removeEventListener("resize", this._onWindowResize, false), i.window.removeEventListener("orientationchange", this._onWindowResize, false), i.window.removeEventListener("online", this._onWindowOnline, false));
+ var we = this.painter.context.gl.getExtension("WEBGL_lose_context");
+ we && we.loseContext && we.loseContext(), mn(this._canvasContainer), mn(this._controlContainer), mn(this._missingCSSCanary), this._container.classList.remove("mapboxgl-map"), this._removed = true, this.fire(new i.Event("remove"));
+ }, D.prototype.triggerRepaint = function() {
+ var K = this;
+ this.style && !this._frame && (this._frame = i.browser.frame(function(de) {
+ K._frame = null, K._render(de);
+ }));
+ }, D.prototype._onWindowOnline = function() {
+ this._update();
+ }, D.prototype._onWindowResize = function(K) {
+ this._trackResize && this.resize({ originalEvent: K })._update();
+ }, J.showTileBoundaries.get = function() {
+ return !!this._showTileBoundaries;
+ }, J.showTileBoundaries.set = function(q) {
+ this._showTileBoundaries !== q && (this._showTileBoundaries = q, this._update());
+ }, J.showPadding.get = function() {
+ return !!this._showPadding;
+ }, J.showPadding.set = function(q) {
+ this._showPadding !== q && (this._showPadding = q, this._update());
+ }, J.showCollisionBoxes.get = function() {
+ return !!this._showCollisionBoxes;
+ }, J.showCollisionBoxes.set = function(q) {
+ this._showCollisionBoxes !== q && (this._showCollisionBoxes = q, q ? this.style._generateCollisionBoxes() : this._update());
+ }, J.showOverdrawInspector.get = function() {
+ return !!this._showOverdrawInspector;
+ }, J.showOverdrawInspector.set = function(q) {
+ this._showOverdrawInspector !== q && (this._showOverdrawInspector = q, this._update());
+ }, J.repaint.get = function() {
+ return !!this._repaint;
+ }, J.repaint.set = function(q) {
+ this._repaint !== q && (this._repaint = q, this.triggerRepaint());
+ }, J.vertices.get = function() {
+ return !!this._vertices;
+ }, J.vertices.set = function(q) {
+ this._vertices = q, this._update();
+ }, D.prototype._setCacheLimits = function(K, de) {
+ i.setCacheLimits(K, de);
+ }, J.version.get = function() {
+ return i.version;
+ }, Object.defineProperties(D.prototype, J), D;
+ }(Hn);
+ function mn(Y) {
+ Y.parentNode && Y.parentNode.removeChild(Y);
+ }
+ var Ji = { showCompass: true, showZoom: true, visualizePitch: false }, Vi = function(D) {
+ var J = this;
+ this.options = i.extend({}, Ji, D), this._container = o.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), this._container.addEventListener("contextmenu", function(q) {
+ return q.preventDefault();
+ }), this.options.showZoom && (i.bindAll(["_setButtonTitle", "_updateZoomButtons"], this), this._zoomInButton = this._createButton("mapboxgl-ctrl-zoom-in", function(q) {
+ return J._map.zoomIn({}, { originalEvent: q });
+ }), o.create("span", "mapboxgl-ctrl-icon", this._zoomInButton).setAttribute("aria-hidden", true), this._zoomOutButton = this._createButton("mapboxgl-ctrl-zoom-out", function(q) {
+ return J._map.zoomOut({}, { originalEvent: q });
+ }), o.create("span", "mapboxgl-ctrl-icon", this._zoomOutButton).setAttribute("aria-hidden", true)), this.options.showCompass && (i.bindAll(["_rotateCompassArrow"], this), this._compass = this._createButton("mapboxgl-ctrl-compass", function(q) {
+ J.options.visualizePitch ? J._map.resetNorthPitch({}, { originalEvent: q }) : J._map.resetNorth({}, { originalEvent: q });
+ }), this._compassIcon = o.create("span", "mapboxgl-ctrl-icon", this._compass), this._compassIcon.setAttribute("aria-hidden", true));
+ };
+ Vi.prototype._updateZoomButtons = function() {
+ var D = this._map.getZoom(), J = D === this._map.getMaxZoom(), q = D === this._map.getMinZoom();
+ this._zoomInButton.disabled = J, this._zoomOutButton.disabled = q, this._zoomInButton.setAttribute("aria-disabled", J.toString()), this._zoomOutButton.setAttribute("aria-disabled", q.toString());
+ }, Vi.prototype._rotateCompassArrow = function() {
+ var D = this.options.visualizePitch ? "scale(" + 1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5) + ") rotateX(" + this._map.transform.pitch + "deg) rotateZ(" + this._map.transform.angle * (180 / Math.PI) + "deg)" : "rotate(" + this._map.transform.angle * (180 / Math.PI) + "deg)";
+ this._compassIcon.style.transform = D;
+ }, Vi.prototype.onAdd = function(D) {
+ return this._map = D, this.options.showZoom && (this._setButtonTitle(this._zoomInButton, "ZoomIn"), this._setButtonTitle(this._zoomOutButton, "ZoomOut"), this._map.on("zoom", this._updateZoomButtons), this._updateZoomButtons()), this.options.showCompass && (this._setButtonTitle(this._compass, "ResetBearing"), this.options.visualizePitch && this._map.on("pitch", this._rotateCompassArrow), this._map.on("rotate", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new Ni(this._map, this._compass, this.options.visualizePitch)), this._container;
+ }, Vi.prototype.onRemove = function() {
+ o.remove(this._container), this.options.showZoom && this._map.off("zoom", this._updateZoomButtons), this.options.showCompass && (this.options.visualizePitch && this._map.off("pitch", this._rotateCompassArrow), this._map.off("rotate", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map;
+ }, Vi.prototype._createButton = function(D, J) {
+ var q = o.create("button", D, this._container);
+ return q.type = "button", q.addEventListener("click", J), q;
+ }, Vi.prototype._setButtonTitle = function(D, J) {
+ var q = this._map._getUIString("NavigationControl." + J);
+ D.title = q, D.setAttribute("aria-label", q);
+ };
+ var Ni = function(D, J, q) {
+ q === void 0 && (q = false), this._clickTolerance = 10, this.element = J, this.mouseRotate = new Ln({ clickTolerance: D.dragRotate._mouseRotate._clickTolerance }), this.map = D, q && (this.mousePitch = new En({ clickTolerance: D.dragRotate._mousePitch._clickTolerance })), i.bindAll(["mousedown", "mousemove", "mouseup", "touchstart", "touchmove", "touchend", "reset"], this), o.addEventListener(J, "mousedown", this.mousedown), o.addEventListener(J, "touchstart", this.touchstart, { passive: false }), o.addEventListener(J, "touchmove", this.touchmove), o.addEventListener(J, "touchend", this.touchend), o.addEventListener(J, "touchcancel", this.reset);
+ };
+ Ni.prototype.down = function(D, J) {
+ this.mouseRotate.mousedown(D, J), this.mousePitch && this.mousePitch.mousedown(D, J), o.disableDrag();
+ }, Ni.prototype.move = function(D, J) {
+ var q = this.map, K = this.mouseRotate.mousemoveWindow(D, J);
+ if (K && K.bearingDelta && q.setBearing(q.getBearing() + K.bearingDelta), this.mousePitch) {
+ var de = this.mousePitch.mousemoveWindow(D, J);
+ de && de.pitchDelta && q.setPitch(q.getPitch() + de.pitchDelta);
+ }
+ }, Ni.prototype.off = function() {
+ var D = this.element;
+ o.removeEventListener(D, "mousedown", this.mousedown), o.removeEventListener(D, "touchstart", this.touchstart, { passive: false }), o.removeEventListener(D, "touchmove", this.touchmove), o.removeEventListener(D, "touchend", this.touchend), o.removeEventListener(D, "touchcancel", this.reset), this.offTemp();
+ }, Ni.prototype.offTemp = function() {
+ o.enableDrag(), o.removeEventListener(i.window, "mousemove", this.mousemove), o.removeEventListener(i.window, "mouseup", this.mouseup);
+ }, Ni.prototype.mousedown = function(D) {
+ this.down(i.extend({}, D, { ctrlKey: true, preventDefault: function() {
+ return D.preventDefault();
+ } }), o.mousePos(this.element, D)), o.addEventListener(i.window, "mousemove", this.mousemove), o.addEventListener(i.window, "mouseup", this.mouseup);
+ }, Ni.prototype.mousemove = function(D) {
+ this.move(D, o.mousePos(this.element, D));
+ }, Ni.prototype.mouseup = function(D) {
+ this.mouseRotate.mouseupWindow(D), this.mousePitch && this.mousePitch.mouseupWindow(D), this.offTemp();
+ }, Ni.prototype.touchstart = function(D) {
+ D.targetTouches.length !== 1 ? this.reset() : (this._startPos = this._lastPos = o.touchPos(this.element, D.targetTouches)[0], this.down({ type: "mousedown", button: 0, ctrlKey: true, preventDefault: function() {
+ return D.preventDefault();
+ } }, this._startPos));
+ }, Ni.prototype.touchmove = function(D) {
+ D.targetTouches.length !== 1 ? this.reset() : (this._lastPos = o.touchPos(this.element, D.targetTouches)[0], this.move({ preventDefault: function() {
+ return D.preventDefault();
+ } }, this._lastPos));
+ }, Ni.prototype.touchend = function(D) {
+ D.targetTouches.length === 0 && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), this.reset();
+ }, Ni.prototype.reset = function() {
+ this.mouseRotate.reset(), this.mousePitch && this.mousePitch.reset(), delete this._startPos, delete this._lastPos, this.offTemp();
+ };
+ function pn(Y, D, J) {
+ if (Y = new i.LngLat(Y.lng, Y.lat), D) {
+ var q = new i.LngLat(Y.lng - 360, Y.lat), K = new i.LngLat(Y.lng + 360, Y.lat), de = J.locationPoint(Y).distSqr(D);
+ J.locationPoint(q).distSqr(D) < de ? Y = q : J.locationPoint(K).distSqr(D) < de && (Y = K);
+ }
+ for (; Math.abs(Y.lng - J.center.lng) > 180; ) {
+ var ne = J.locationPoint(Y);
+ if (ne.x >= 0 && ne.y >= 0 && ne.x <= J.width && ne.y <= J.height) break;
+ Y.lng > J.center.lng ? Y.lng -= 360 : Y.lng += 360;
+ }
+ return Y;
+ }
+ var Vn = { center: "translate(-50%,-50%)", top: "translate(-50%,0)", "top-left": "translate(0,0)", "top-right": "translate(-100%,0)", bottom: "translate(-50%,-100%)", "bottom-left": "translate(0,-100%)", "bottom-right": "translate(-100%,-100%)", left: "translate(0,-50%)", right: "translate(-100%,-50%)" };
+ function na(Y, D, J) {
+ var q = Y.classList;
+ for (var K in Vn) q.remove("mapboxgl-" + J + "-anchor-" + K);
+ q.add("mapboxgl-" + J + "-anchor-" + D);
+ }
+ var Ki = function(Y) {
+ function D(J, q) {
+ if (Y.call(this), (J instanceof i.window.HTMLElement || q) && (J = i.extend({ element: J }, q)), i.bindAll(["_update", "_onMove", "_onUp", "_addDragHandler", "_onMapClick", "_onKeyPress"], this), this._anchor = J && J.anchor || "center", this._color = J && J.color || "#3FB1CE", this._scale = J && J.scale || 1, this._draggable = J && J.draggable || false, this._clickTolerance = J && J.clickTolerance || 0, this._isDragging = false, this._state = "inactive", this._rotation = J && J.rotation || 0, this._rotationAlignment = J && J.rotationAlignment || "auto", this._pitchAlignment = J && J.pitchAlignment && J.pitchAlignment !== "auto" ? J.pitchAlignment : this._rotationAlignment, !J || !J.element) {
+ this._defaultMarker = true, this._element = o.create("div"), this._element.setAttribute("aria-label", "Map marker");
+ var K = o.createNS("http://www.w3.org/2000/svg", "svg"), de = 41, ne = 27;
+ K.setAttributeNS(null, "display", "block"), K.setAttributeNS(null, "height", de + "px"), K.setAttributeNS(null, "width", ne + "px"), K.setAttributeNS(null, "viewBox", "0 0 " + ne + " " + de);
+ var we = o.createNS("http://www.w3.org/2000/svg", "g");
+ we.setAttributeNS(null, "stroke", "none"), we.setAttributeNS(null, "stroke-width", "1"), we.setAttributeNS(null, "fill", "none"), we.setAttributeNS(null, "fill-rule", "evenodd");
+ var Ue = o.createNS("http://www.w3.org/2000/svg", "g");
+ Ue.setAttributeNS(null, "fill-rule", "nonzero");
+ var ft = o.createNS("http://www.w3.org/2000/svg", "g");
+ ft.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), ft.setAttributeNS(null, "fill", "#000000");
+ for (var Zt = [{ rx: "10.5", ry: "5.25002273" }, { rx: "10.5", ry: "5.25002273" }, { rx: "9.5", ry: "4.77275007" }, { rx: "8.5", ry: "4.29549936" }, { rx: "7.5", ry: "3.81822308" }, { rx: "6.5", ry: "3.34094679" }, { rx: "5.5", ry: "2.86367051" }, { rx: "4.5", ry: "2.38636864" }], hr = 0, qt = Zt; hr < qt.length; hr += 1) {
+ var Ve = qt[hr], Qe = o.createNS("http://www.w3.org/2000/svg", "ellipse");
+ Qe.setAttributeNS(null, "opacity", "0.04"), Qe.setAttributeNS(null, "cx", "10.5"), Qe.setAttributeNS(null, "cy", "5.80029008"), Qe.setAttributeNS(null, "rx", Ve.rx), Qe.setAttributeNS(null, "ry", Ve.ry), ft.appendChild(Qe);
+ }
+ var at = o.createNS("http://www.w3.org/2000/svg", "g");
+ at.setAttributeNS(null, "fill", this._color);
+ var Ct = o.createNS("http://www.w3.org/2000/svg", "path");
+ Ct.setAttributeNS(null, "d", "M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"), at.appendChild(Ct);
+ var Ot = o.createNS("http://www.w3.org/2000/svg", "g");
+ Ot.setAttributeNS(null, "opacity", "0.25"), Ot.setAttributeNS(null, "fill", "#000000");
+ var Rt = o.createNS("http://www.w3.org/2000/svg", "path");
+ Rt.setAttributeNS(null, "d", "M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"), Ot.appendChild(Rt);
+ var Bt = o.createNS("http://www.w3.org/2000/svg", "g");
+ Bt.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), Bt.setAttributeNS(null, "fill", "#FFFFFF");
+ var Dt = o.createNS("http://www.w3.org/2000/svg", "g");
+ Dt.setAttributeNS(null, "transform", "translate(8.0, 8.0)");
+ var yt = o.createNS("http://www.w3.org/2000/svg", "circle");
+ yt.setAttributeNS(null, "fill", "#000000"), yt.setAttributeNS(null, "opacity", "0.25"), yt.setAttributeNS(null, "cx", "5.5"), yt.setAttributeNS(null, "cy", "5.5"), yt.setAttributeNS(null, "r", "5.4999962");
+ var Pt = o.createNS("http://www.w3.org/2000/svg", "circle");
+ Pt.setAttributeNS(null, "fill", "#FFFFFF"), Pt.setAttributeNS(null, "cx", "5.5"), Pt.setAttributeNS(null, "cy", "5.5"), Pt.setAttributeNS(null, "r", "5.4999962"), Dt.appendChild(yt), Dt.appendChild(Pt), Ue.appendChild(ft), Ue.appendChild(at), Ue.appendChild(Ot), Ue.appendChild(Bt), Ue.appendChild(Dt), K.appendChild(Ue), K.setAttributeNS(null, "height", de * this._scale + "px"), K.setAttributeNS(null, "width", ne * this._scale + "px"), this._element.appendChild(K), this._offset = i.Point.convert(J && J.offset || [0, -14]);
+ } else this._element = J.element, this._offset = i.Point.convert(J && J.offset || [0, 0]);
+ this._element.classList.add("mapboxgl-marker"), this._element.addEventListener("dragstart", function(ht) {
+ ht.preventDefault();
+ }), this._element.addEventListener("mousedown", function(ht) {
+ ht.preventDefault();
+ }), na(this._element, this._anchor, "marker"), this._popup = null;
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.addTo = function(q) {
+ return this.remove(), this._map = q, q.getCanvasContainer().appendChild(this._element), q.on("move", this._update), q.on("moveend", this._update), this.setDraggable(this._draggable), this._update(), this._map.on("click", this._onMapClick), this;
+ }, D.prototype.remove = function() {
+ return this._map && (this._map.off("click", this._onMapClick), this._map.off("move", this._update), this._map.off("moveend", this._update), this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler), this._map.off("mouseup", this._onUp), this._map.off("touchend", this._onUp), this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), delete this._map), o.remove(this._element), this._popup && this._popup.remove(), this;
+ }, D.prototype.getLngLat = function() {
+ return this._lngLat;
+ }, D.prototype.setLngLat = function(q) {
+ return this._lngLat = i.LngLat.convert(q), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this;
+ }, D.prototype.getElement = function() {
+ return this._element;
+ }, D.prototype.setPopup = function(q) {
+ if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener("keypress", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute("tabindex")), q) {
+ if (!("offset" in q.options)) {
+ var K = 38.1, de = 13.5, ne = Math.sqrt(Math.pow(de, 2) / 2);
+ q.options.offset = this._defaultMarker ? { top: [0, 0], "top-left": [0, 0], "top-right": [0, 0], bottom: [0, -K], "bottom-left": [ne, (K - de + ne) * -1], "bottom-right": [-ne, (K - de + ne) * -1], left: [de, (K - de) * -1], right: [-de, (K - de) * -1] } : this._offset;
+ }
+ this._popup = q, this._lngLat && this._popup.setLngLat(this._lngLat), this._originalTabIndex = this._element.getAttribute("tabindex"), this._originalTabIndex || this._element.setAttribute("tabindex", "0"), this._element.addEventListener("keypress", this._onKeyPress);
+ }
+ return this;
+ }, D.prototype._onKeyPress = function(q) {
+ var K = q.code, de = q.charCode || q.keyCode;
+ (K === "Space" || K === "Enter" || de === 32 || de === 13) && this.togglePopup();
+ }, D.prototype._onMapClick = function(q) {
+ var K = q.originalEvent.target, de = this._element;
+ this._popup && (K === de || de.contains(K)) && this.togglePopup();
+ }, D.prototype.getPopup = function() {
+ return this._popup;
+ }, D.prototype.togglePopup = function() {
+ var q = this._popup;
+ if (q) q.isOpen() ? q.remove() : q.addTo(this._map);
+ else return this;
+ return this;
+ }, D.prototype._update = function(q) {
+ if (this._map) {
+ this._map.transform.renderWorldCopies && (this._lngLat = pn(this._lngLat, this._pos, this._map.transform)), this._pos = this._map.project(this._lngLat)._add(this._offset);
+ var K = "";
+ this._rotationAlignment === "viewport" || this._rotationAlignment === "auto" ? K = "rotateZ(" + this._rotation + "deg)" : this._rotationAlignment === "map" && (K = "rotateZ(" + (this._rotation - this._map.getBearing()) + "deg)");
+ var de = "";
+ this._pitchAlignment === "viewport" || this._pitchAlignment === "auto" ? de = "rotateX(0deg)" : this._pitchAlignment === "map" && (de = "rotateX(" + this._map.getPitch() + "deg)"), (!q || q.type === "moveend") && (this._pos = this._pos.round()), o.setTransform(this._element, Vn[this._anchor] + " translate(" + this._pos.x + "px, " + this._pos.y + "px) " + de + " " + K);
+ }
+ }, D.prototype.getOffset = function() {
+ return this._offset;
+ }, D.prototype.setOffset = function(q) {
+ return this._offset = i.Point.convert(q), this._update(), this;
+ }, D.prototype._onMove = function(q) {
+ if (!this._isDragging) {
+ var K = this._clickTolerance || this._map._clickTolerance;
+ this._isDragging = q.point.dist(this._pointerdownPos) >= K;
+ }
+ this._isDragging && (this._pos = q.point.sub(this._positionDelta), this._lngLat = this._map.unproject(this._pos), this.setLngLat(this._lngLat), this._element.style.pointerEvents = "none", this._state === "pending" && (this._state = "active", this.fire(new i.Event("dragstart"))), this.fire(new i.Event("drag")));
+ }, D.prototype._onUp = function() {
+ this._element.style.pointerEvents = "auto", this._positionDelta = null, this._pointerdownPos = null, this._isDragging = false, this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), this._state === "active" && this.fire(new i.Event("dragend")), this._state = "inactive";
+ }, D.prototype._addDragHandler = function(q) {
+ this._element.contains(q.originalEvent.target) && (q.preventDefault(), this._positionDelta = q.point.sub(this._pos).add(this._offset), this._pointerdownPos = q.point, this._state = "pending", this._map.on("mousemove", this._onMove), this._map.on("touchmove", this._onMove), this._map.once("mouseup", this._onUp), this._map.once("touchend", this._onUp));
+ }, D.prototype.setDraggable = function(q) {
+ return this._draggable = !!q, this._map && (q ? (this._map.on("mousedown", this._addDragHandler), this._map.on("touchstart", this._addDragHandler)) : (this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler))), this;
+ }, D.prototype.isDraggable = function() {
+ return this._draggable;
+ }, D.prototype.setRotation = function(q) {
+ return this._rotation = q || 0, this._update(), this;
+ }, D.prototype.getRotation = function() {
+ return this._rotation;
+ }, D.prototype.setRotationAlignment = function(q) {
+ return this._rotationAlignment = q || "auto", this._update(), this;
+ }, D.prototype.getRotationAlignment = function() {
+ return this._rotationAlignment;
+ }, D.prototype.setPitchAlignment = function(q) {
+ return this._pitchAlignment = q && q !== "auto" ? q : this._rotationAlignment, this._update(), this;
+ }, D.prototype.getPitchAlignment = function() {
+ return this._pitchAlignment;
+ }, D;
+ }(i.Evented), kn = { positionOptions: { enableHighAccuracy: false, maximumAge: 0, timeout: 6e3 }, fitBoundsOptions: { maxZoom: 15 }, trackUserLocation: false, showAccuracyCircle: true, showUserLocation: true }, ta;
+ function oa(Y) {
+ ta !== void 0 ? Y(ta) : i.window.navigator.permissions !== void 0 ? i.window.navigator.permissions.query({ name: "geolocation" }).then(function(D) {
+ ta = D.state !== "denied", Y(ta);
+ }) : (ta = !!i.window.navigator.geolocation, Y(ta));
+ }
+ var ba = 0, is = false, Zs = function(Y) {
+ function D(J) {
+ Y.call(this), this.options = i.extend({}, kn, J), i.bindAll(["_onSuccess", "_onError", "_onZoom", "_finish", "_setupUI", "_updateCamera", "_updateMarker"], this);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.onAdd = function(q) {
+ return this._map = q, this._container = o.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), oa(this._setupUI), this._container;
+ }, D.prototype.onRemove = function() {
+ this._geolocationWatchID !== void 0 && (i.window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), o.remove(this._container), this._map.off("zoom", this._onZoom), this._map = void 0, ba = 0, is = false;
+ }, D.prototype._isOutOfMapMaxBounds = function(q) {
+ var K = this._map.getMaxBounds(), de = q.coords;
+ return K && (de.longitude < K.getWest() || de.longitude > K.getEast() || de.latitude < K.getSouth() || de.latitude > K.getNorth());
+ }, D.prototype._setErrorState = function() {
+ switch (this._watchState) {
+ case "WAITING_ACTIVE":
+ this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");
+ break;
+ case "ACTIVE_LOCK":
+ this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");
+ break;
+ case "BACKGROUND":
+ this._watchState = "BACKGROUND_ERROR", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");
+ break;
+ }
+ }, D.prototype._onSuccess = function(q) {
+ if (this._map) {
+ if (this._isOutOfMapMaxBounds(q)) {
+ this._setErrorState(), this.fire(new i.Event("outofmaxbounds", q)), this._updateMarker(), this._finish();
+ return;
+ }
+ if (this.options.trackUserLocation) switch (this._lastKnownPosition = q, this._watchState) {
+ case "WAITING_ACTIVE":
+ case "ACTIVE_LOCK":
+ case "ACTIVE_ERROR":
+ this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");
+ break;
+ case "BACKGROUND":
+ case "BACKGROUND_ERROR":
+ this._watchState = "BACKGROUND", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");
+ break;
+ }
+ this.options.showUserLocation && this._watchState !== "OFF" && this._updateMarker(q), (!this.options.trackUserLocation || this._watchState === "ACTIVE_LOCK") && this._updateCamera(q), this.options.showUserLocation && this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"), this.fire(new i.Event("geolocate", q)), this._finish();
+ }
+ }, D.prototype._updateCamera = function(q) {
+ var K = new i.LngLat(q.coords.longitude, q.coords.latitude), de = q.coords.accuracy, ne = this._map.getBearing(), we = i.extend({ bearing: ne }, this.options.fitBoundsOptions);
+ this._map.fitBounds(K.toBounds(de), we, { geolocateSource: true });
+ }, D.prototype._updateMarker = function(q) {
+ if (q) {
+ var K = new i.LngLat(q.coords.longitude, q.coords.latitude);
+ this._accuracyCircleMarker.setLngLat(K).addTo(this._map), this._userLocationDotMarker.setLngLat(K).addTo(this._map), this._accuracy = q.coords.accuracy, this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius();
+ } else this._userLocationDotMarker.remove(), this._accuracyCircleMarker.remove();
+ }, D.prototype._updateCircleRadius = function() {
+ var q = this._map._container.clientHeight / 2, K = this._map.unproject([0, q]), de = this._map.unproject([1, q]), ne = K.distanceTo(de), we = Math.ceil(2 * this._accuracy / ne);
+ this._circleElement.style.width = we + "px", this._circleElement.style.height = we + "px";
+ }, D.prototype._onZoom = function() {
+ this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius();
+ }, D.prototype._onError = function(q) {
+ if (this._map) {
+ if (this.options.trackUserLocation) if (q.code === 1) {
+ this._watchState = "OFF", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this._geolocateButton.disabled = true;
+ var K = this._map._getUIString("GeolocateControl.LocationNotAvailable");
+ this._geolocateButton.title = K, this._geolocateButton.setAttribute("aria-label", K), this._geolocationWatchID !== void 0 && this._clearWatch();
+ } else {
+ if (q.code === 3 && is) return;
+ this._setErrorState();
+ }
+ this._watchState !== "OFF" && this.options.showUserLocation && this._dotElement.classList.add("mapboxgl-user-location-dot-stale"), this.fire(new i.Event("error", q)), this._finish();
+ }
+ }, D.prototype._finish = function() {
+ this._timeoutId && clearTimeout(this._timeoutId), this._timeoutId = void 0;
+ }, D.prototype._setupUI = function(q) {
+ var K = this;
+ if (this._container.addEventListener("contextmenu", function(we) {
+ return we.preventDefault();
+ }), this._geolocateButton = o.create("button", "mapboxgl-ctrl-geolocate", this._container), o.create("span", "mapboxgl-ctrl-icon", this._geolocateButton).setAttribute("aria-hidden", true), this._geolocateButton.type = "button", q === false) {
+ i.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");
+ var de = this._map._getUIString("GeolocateControl.LocationNotAvailable");
+ this._geolocateButton.disabled = true, this._geolocateButton.title = de, this._geolocateButton.setAttribute("aria-label", de);
+ } else {
+ var ne = this._map._getUIString("GeolocateControl.FindMyLocation");
+ this._geolocateButton.title = ne, this._geolocateButton.setAttribute("aria-label", ne);
+ }
+ this.options.trackUserLocation && (this._geolocateButton.setAttribute("aria-pressed", "false"), this._watchState = "OFF"), this.options.showUserLocation && (this._dotElement = o.create("div", "mapboxgl-user-location-dot"), this._userLocationDotMarker = new Ki(this._dotElement), this._circleElement = o.create("div", "mapboxgl-user-location-accuracy-circle"), this._accuracyCircleMarker = new Ki({ element: this._circleElement, pitchAlignment: "map" }), this.options.trackUserLocation && (this._watchState = "OFF"), this._map.on("zoom", this._onZoom)), this._geolocateButton.addEventListener("click", this.trigger.bind(this)), this._setup = true, this.options.trackUserLocation && this._map.on("movestart", function(we) {
+ var Ue = we.originalEvent && we.originalEvent.type === "resize";
+ !we.geolocateSource && K._watchState === "ACTIVE_LOCK" && !Ue && (K._watchState = "BACKGROUND", K._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"), K._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), K.fire(new i.Event("trackuserlocationend")));
+ });
+ }, D.prototype.trigger = function() {
+ if (!this._setup) return i.warnOnce("Geolocate control triggered before added to a map"), false;
+ if (this.options.trackUserLocation) {
+ switch (this._watchState) {
+ case "OFF":
+ this._watchState = "WAITING_ACTIVE", this.fire(new i.Event("trackuserlocationstart"));
+ break;
+ case "WAITING_ACTIVE":
+ case "ACTIVE_LOCK":
+ case "ACTIVE_ERROR":
+ case "BACKGROUND_ERROR":
+ ba--, is = false, this._watchState = "OFF", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"), this.fire(new i.Event("trackuserlocationend"));
+ break;
+ case "BACKGROUND":
+ this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"), this._lastKnownPosition && this._updateCamera(this._lastKnownPosition), this.fire(new i.Event("trackuserlocationstart"));
+ break;
+ }
+ switch (this._watchState) {
+ case "WAITING_ACTIVE":
+ this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");
+ break;
+ case "ACTIVE_LOCK":
+ this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");
+ break;
+ case "ACTIVE_ERROR":
+ this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");
+ break;
+ case "BACKGROUND":
+ this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");
+ break;
+ case "BACKGROUND_ERROR":
+ this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error");
+ break;
+ }
+ if (this._watchState === "OFF" && this._geolocationWatchID !== void 0) this._clearWatch();
+ else if (this._geolocationWatchID === void 0) {
+ this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "true"), ba++;
+ var q;
+ ba > 1 ? (q = { maximumAge: 6e5, timeout: 0 }, is = true) : (q = this.options.positionOptions, is = false), this._geolocationWatchID = i.window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, q);
+ }
+ } else i.window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions), this._timeoutId = setTimeout(this._finish, 1e4);
+ return true;
+ }, D.prototype._clearWatch = function() {
+ i.window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0, this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "false"), this.options.showUserLocation && this._updateMarker(null);
+ }, D;
+ }(i.Evented), Va = { maxWidth: 100, unit: "metric" }, Ml = function(D) {
+ this.options = i.extend({}, Va, D), i.bindAll(["_onMove", "setUnit"], this);
+ };
+ Ml.prototype.getDefaultPosition = function() {
+ return "bottom-left";
+ }, Ml.prototype._onMove = function() {
+ zo(this._map, this._container, this.options);
+ }, Ml.prototype.onAdd = function(D) {
+ return this._map = D, this._container = o.create("div", "mapboxgl-ctrl mapboxgl-ctrl-scale", D.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container;
+ }, Ml.prototype.onRemove = function() {
+ o.remove(this._container), this._map.off("move", this._onMove), this._map = void 0;
+ }, Ml.prototype.setUnit = function(D) {
+ this.options.unit = D, zo(this._map, this._container, this.options);
+ };
+ function zo(Y, D, J) {
+ var q = J && J.maxWidth || 100, K = Y._container.clientHeight / 2, de = Y.unproject([0, K]), ne = Y.unproject([q, K]), we = de.distanceTo(ne);
+ if (J && J.unit === "imperial") {
+ var Ue = 3.2808 * we;
+ if (Ue > 5280) {
+ var ft = Ue / 5280;
+ Qs(D, q, ft, Y._getUIString("ScaleControl.Miles"));
+ } else Qs(D, q, Ue, Y._getUIString("ScaleControl.Feet"));
+ } else if (J && J.unit === "nautical") {
+ var Zt = we / 1852;
+ Qs(D, q, Zt, Y._getUIString("ScaleControl.NauticalMiles"));
+ } else we >= 1e3 ? Qs(D, q, we / 1e3, Y._getUIString("ScaleControl.Kilometers")) : Qs(D, q, we, Y._getUIString("ScaleControl.Meters"));
+ }
+ function Qs(Y, D, J, q) {
+ var K = Vl(J), de = K / J;
+ Y.style.width = D * de + "px", Y.innerHTML = K + " " + q;
+ }
+ function al(Y) {
+ var D = Math.pow(10, Math.ceil(-Math.log(Y) / Math.LN10));
+ return Math.round(Y * D) / D;
+ }
+ function Vl(Y) {
+ var D = Math.pow(10, ("" + Math.floor(Y)).length - 1), J = Y / D;
+ return J = J >= 10 ? 10 : J >= 5 ? 5 : J >= 3 ? 3 : J >= 2 ? 2 : J >= 1 ? 1 : al(J), D * J;
+ }
+ var ss = function(D) {
+ this._fullscreen = false, D && D.container && (D.container instanceof i.window.HTMLElement ? this._container = D.container : i.warnOnce("Full screen control 'container' must be a DOM element.")), i.bindAll(["_onClickFullscreen", "_changeIcon"], this), "onfullscreenchange" in i.window.document ? this._fullscreenchange = "fullscreenchange" : "onmozfullscreenchange" in i.window.document ? this._fullscreenchange = "mozfullscreenchange" : "onwebkitfullscreenchange" in i.window.document ? this._fullscreenchange = "webkitfullscreenchange" : "onmsfullscreenchange" in i.window.document && (this._fullscreenchange = "MSFullscreenChange");
+ };
+ ss.prototype.onAdd = function(D) {
+ return this._map = D, this._container || (this._container = this._map.getContainer()), this._controlContainer = o.create("div", "mapboxgl-ctrl mapboxgl-ctrl-group"), this._checkFullscreenSupport() ? this._setupUI() : (this._controlContainer.style.display = "none", i.warnOnce("This device does not support fullscreen mode.")), this._controlContainer;
+ }, ss.prototype.onRemove = function() {
+ o.remove(this._controlContainer), this._map = null, i.window.document.removeEventListener(this._fullscreenchange, this._changeIcon);
+ }, ss.prototype._checkFullscreenSupport = function() {
+ return !!(i.window.document.fullscreenEnabled || i.window.document.mozFullScreenEnabled || i.window.document.msFullscreenEnabled || i.window.document.webkitFullscreenEnabled);
+ }, ss.prototype._setupUI = function() {
+ var D = this._fullscreenButton = o.create("button", "mapboxgl-ctrl-fullscreen", this._controlContainer);
+ o.create("span", "mapboxgl-ctrl-icon", D).setAttribute("aria-hidden", true), D.type = "button", this._updateTitle(), this._fullscreenButton.addEventListener("click", this._onClickFullscreen), i.window.document.addEventListener(this._fullscreenchange, this._changeIcon);
+ }, ss.prototype._updateTitle = function() {
+ var D = this._getTitle();
+ this._fullscreenButton.setAttribute("aria-label", D), this._fullscreenButton.title = D;
+ }, ss.prototype._getTitle = function() {
+ return this._map._getUIString(this._isFullscreen() ? "FullscreenControl.Exit" : "FullscreenControl.Enter");
+ }, ss.prototype._isFullscreen = function() {
+ return this._fullscreen;
+ }, ss.prototype._changeIcon = function() {
+ var D = i.window.document.fullscreenElement || i.window.document.mozFullScreenElement || i.window.document.webkitFullscreenElement || i.window.document.msFullscreenElement;
+ D === this._container !== this._fullscreen && (this._fullscreen = !this._fullscreen, this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"), this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"), this._updateTitle());
+ }, ss.prototype._onClickFullscreen = function() {
+ this._isFullscreen() ? i.window.document.exitFullscreen ? i.window.document.exitFullscreen() : i.window.document.mozCancelFullScreen ? i.window.document.mozCancelFullScreen() : i.window.document.msExitFullscreen ? i.window.document.msExitFullscreen() : i.window.document.webkitCancelFullScreen && i.window.document.webkitCancelFullScreen() : this._container.requestFullscreen ? this._container.requestFullscreen() : this._container.mozRequestFullScreen ? this._container.mozRequestFullScreen() : this._container.msRequestFullscreen ? this._container.msRequestFullscreen() : this._container.webkitRequestFullscreen && this._container.webkitRequestFullscreen();
+ };
+ var Vs = { closeButton: true, closeOnClick: true, focusAfterOpen: true, className: "", maxWidth: "240px" }, Ys = ["a[href]", "[tabindex]:not([tabindex='-1'])", "[contenteditable]:not([contenteditable='false'])", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].join(", "), wa = function(Y) {
+ function D(J) {
+ Y.call(this), this.options = i.extend(Object.create(Vs), J), i.bindAll(["_update", "_onClose", "remove", "_onMouseMove", "_onMouseUp", "_onDrag"], this);
+ }
+ return Y && (D.__proto__ = Y), D.prototype = Object.create(Y && Y.prototype), D.prototype.constructor = D, D.prototype.addTo = function(q) {
+ return this._map && this.remove(), this._map = q, this.options.closeOnClick && this._map.on("click", this._onClose), this.options.closeOnMove && this._map.on("move", this._onClose), this._map.on("remove", this.remove), this._update(), this._focusFirstElement(), this._trackPointer ? (this._map.on("mousemove", this._onMouseMove), this._map.on("mouseup", this._onMouseUp), this._container && this._container.classList.add("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("mapboxgl-track-pointer")) : this._map.on("move", this._update), this.fire(new i.Event("open")), this;
+ }, D.prototype.isOpen = function() {
+ return !!this._map;
+ }, D.prototype.remove = function() {
+ return this._content && o.remove(this._content), this._container && (o.remove(this._container), delete this._container), this._map && (this._map.off("move", this._update), this._map.off("move", this._onClose), this._map.off("click", this._onClose), this._map.off("remove", this.remove), this._map.off("mousemove", this._onMouseMove), this._map.off("mouseup", this._onMouseUp), this._map.off("drag", this._onDrag), delete this._map), this.fire(new i.Event("close")), this;
+ }, D.prototype.getLngLat = function() {
+ return this._lngLat;
+ }, D.prototype.setLngLat = function(q) {
+ return this._lngLat = i.LngLat.convert(q), this._pos = null, this._trackPointer = false, this._update(), this._map && (this._map.on("move", this._update), this._map.off("mousemove", this._onMouseMove), this._container && this._container.classList.remove("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")), this;
+ }, D.prototype.trackPointer = function() {
+ return this._trackPointer = true, this._pos = null, this._update(), this._map && (this._map.off("move", this._update), this._map.on("mousemove", this._onMouseMove), this._map.on("drag", this._onDrag), this._container && this._container.classList.add("mapboxgl-popup-track-pointer"), this._map._canvasContainer.classList.add("mapboxgl-track-pointer")), this;
+ }, D.prototype.getElement = function() {
+ return this._container;
+ }, D.prototype.setText = function(q) {
+ return this.setDOMContent(i.window.document.createTextNode(q));
+ }, D.prototype.setHTML = function(q) {
+ var K = i.window.document.createDocumentFragment(), de = i.window.document.createElement("body"), ne;
+ for (de.innerHTML = q; ne = de.firstChild, !!ne; ) K.appendChild(ne);
+ return this.setDOMContent(K);
+ }, D.prototype.getMaxWidth = function() {
+ return this._container && this._container.style.maxWidth;
+ }, D.prototype.setMaxWidth = function(q) {
+ return this.options.maxWidth = q, this._update(), this;
+ }, D.prototype.setDOMContent = function(q) {
+ if (this._content) for (; this._content.hasChildNodes(); ) this._content.firstChild && this._content.removeChild(this._content.firstChild);
+ else this._content = o.create("div", "mapboxgl-popup-content", this._container);
+ return this._content.appendChild(q), this._createCloseButton(), this._update(), this._focusFirstElement(), this;
+ }, D.prototype.addClassName = function(q) {
+ this._container && this._container.classList.add(q);
+ }, D.prototype.removeClassName = function(q) {
+ this._container && this._container.classList.remove(q);
+ }, D.prototype.setOffset = function(q) {
+ return this.options.offset = q, this._update(), this;
+ }, D.prototype.toggleClassName = function(q) {
+ if (this._container) return this._container.classList.toggle(q);
+ }, D.prototype._createCloseButton = function() {
+ this.options.closeButton && (this._closeButton = o.create("button", "mapboxgl-popup-close-button", this._content), this._closeButton.type = "button", this._closeButton.setAttribute("aria-label", "Close popup"), this._closeButton.innerHTML = "×", this._closeButton.addEventListener("click", this._onClose));
+ }, D.prototype._onMouseUp = function(q) {
+ this._update(q.point);
+ }, D.prototype._onMouseMove = function(q) {
+ this._update(q.point);
+ }, D.prototype._onDrag = function(q) {
+ this._update(q.point);
+ }, D.prototype._update = function(q) {
+ var K = this, de = this._lngLat || this._trackPointer;
+ if (!(!this._map || !de || !this._content) && (this._container || (this._container = o.create("div", "mapboxgl-popup", this._map.getContainer()), this._tip = o.create("div", "mapboxgl-popup-tip", this._container), this._container.appendChild(this._content), this.options.className && this.options.className.split(" ").forEach(function(Ve) {
+ return K._container.classList.add(Ve);
+ }), this._trackPointer && this._container.classList.add("mapboxgl-popup-track-pointer")), this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth && (this._container.style.maxWidth = this.options.maxWidth), this._map.transform.renderWorldCopies && !this._trackPointer && (this._lngLat = pn(this._lngLat, this._pos, this._map.transform)), !(this._trackPointer && !q))) {
+ var ne = this._pos = this._trackPointer && q ? q : this._map.project(this._lngLat), we = this.options.anchor, Ue = ol(this.options.offset);
+ if (!we) {
+ var ft = this._container.offsetWidth, Zt = this._container.offsetHeight, hr;
+ ne.y + Ue.bottom.y < Zt ? hr = ["top"] : ne.y > this._map.transform.height - Zt ? hr = ["bottom"] : hr = [], ne.x < ft / 2 ? hr.push("left") : ne.x > this._map.transform.width - ft / 2 && hr.push("right"), hr.length === 0 ? we = "bottom" : we = hr.join("-");
+ }
+ var qt = ne.add(Ue[we]).round();
+ o.setTransform(this._container, Vn[we] + " translate(" + qt.x + "px," + qt.y + "px)"), na(this._container, we, "popup");
+ }
+ }, D.prototype._focusFirstElement = function() {
+ if (!(!this.options.focusAfterOpen || !this._container)) {
+ var q = this._container.querySelector(Ys);
+ q && q.focus();
+ }
+ }, D.prototype._onClose = function() {
+ this.remove();
+ }, D;
+ }(i.Evented);
+ function ol(Y) {
+ if (Y) if (typeof Y == "number") {
+ var D = Math.round(Math.sqrt(0.5 * Math.pow(Y, 2)));
+ return { center: new i.Point(0, 0), top: new i.Point(0, Y), "top-left": new i.Point(D, D), "top-right": new i.Point(-D, D), bottom: new i.Point(0, -Y), "bottom-left": new i.Point(D, -D), "bottom-right": new i.Point(-D, -D), left: new i.Point(Y, 0), right: new i.Point(-Y, 0) };
+ } else if (Y instanceof i.Point || Array.isArray(Y)) {
+ var J = i.Point.convert(Y);
+ return { center: J, top: J, "top-left": J, "top-right": J, bottom: J, "bottom-left": J, "bottom-right": J, left: J, right: J };
+ } else return { center: i.Point.convert(Y.center || [0, 0]), top: i.Point.convert(Y.top || [0, 0]), "top-left": i.Point.convert(Y["top-left"] || [0, 0]), "top-right": i.Point.convert(Y["top-right"] || [0, 0]), bottom: i.Point.convert(Y.bottom || [0, 0]), "bottom-left": i.Point.convert(Y["bottom-left"] || [0, 0]), "bottom-right": i.Point.convert(Y["bottom-right"] || [0, 0]), left: i.Point.convert(Y.left || [0, 0]), right: i.Point.convert(Y.right || [0, 0]) };
+ else return ol(new i.Point(0, 0));
+ }
+ var io = { version: i.version, supported: a, setRTLTextPlugin: i.setRTLTextPlugin, getRTLTextPluginStatus: i.getRTLTextPluginStatus, Map: li, NavigationControl: Vi, GeolocateControl: Zs, AttributionControl: en, ScaleControl: Ml, FullscreenControl: ss, Popup: wa, Marker: Ki, Style: yu, LngLat: i.LngLat, LngLatBounds: i.LngLatBounds, Point: i.Point, MercatorCoordinate: i.MercatorCoordinate, Evented: i.Evented, config: i.config, prewarm: ua, clearPrewarmedResources: ma, get accessToken() {
+ return i.config.ACCESS_TOKEN;
+ }, set accessToken(Y) {
+ i.config.ACCESS_TOKEN = Y;
+ }, get baseApiUrl() {
+ return i.config.API_URL;
+ }, set baseApiUrl(Y) {
+ i.config.API_URL = Y;
+ }, get workerCount() {
+ return fn.workerCount;
+ }, set workerCount(Y) {
+ fn.workerCount = Y;
+ }, get maxParallelImageRequests() {
+ return i.config.MAX_PARALLEL_IMAGE_REQUESTS;
+ }, set maxParallelImageRequests(Y) {
+ i.config.MAX_PARALLEL_IMAGE_REQUESTS = Y;
+ }, clearStorage: function(D) {
+ i.clearTileCache(D);
+ }, workerUrl: "" };
+ return io;
+ }), r;
+ });
+ });
+ var yGe = ye((Pxr, mGe) => {
+ var hw = Dr(), Wjt = Zl().sanitizeHTML, Xjt = cJ(), vGe = m1();
+ function pGe(e, t) {
+ this.subplot = e, this.uid = e.uid + "-" + t, this.index = t, this.idSource = "source-" + this.uid, this.idLayer = vGe.layoutLayerPrefix + this.uid, this.sourceType = null, this.source = null, this.layerType = null, this.below = null, this.visible = false;
+ }
+ var ag = pGe.prototype;
+ ag.update = function(t) {
+ this.visible ? this.needsNewImage(t) ? this.updateImage(t) : this.needsNewSource(t) ? (this.removeLayer(), this.updateSource(t), this.updateLayer(t)) : this.needsNewLayer(t) ? this.updateLayer(t) : this.updateStyle(t) : (this.updateSource(t), this.updateLayer(t)), this.visible = r7(t);
+ };
+ ag.needsNewImage = function(e) {
+ var t = this.subplot.map;
+ return t.getSource(this.idSource) && this.sourceType === "image" && e.sourcetype === "image" && (this.source !== e.source || JSON.stringify(this.coordinates) !== JSON.stringify(e.coordinates));
+ };
+ ag.needsNewSource = function(e) {
+ return this.sourceType !== e.sourcetype || JSON.stringify(this.source) !== JSON.stringify(e.source) || this.layerType !== e.type;
+ };
+ ag.needsNewLayer = function(e) {
+ return this.layerType !== e.type || this.below !== this.subplot.belowLookup["layout-" + this.index];
+ };
+ ag.lookupBelow = function() {
+ return this.subplot.belowLookup["layout-" + this.index];
+ };
+ ag.updateImage = function(e) {
+ var t = this.subplot.map;
+ t.getSource(this.idSource).updateImage({ url: e.source, coordinates: e.coordinates });
+ var r = this.findFollowingMapboxLayerId(this.lookupBelow());
+ r !== null && this.subplot.map.moveLayer(this.idLayer, r);
+ };
+ ag.updateSource = function(e) {
+ var t = this.subplot.map;
+ if (t.getSource(this.idSource) && t.removeSource(this.idSource), this.sourceType = e.sourcetype, this.source = e.source, !!r7(e)) {
+ var r = Zjt(e);
+ t.addSource(this.idSource, r);
+ }
+ };
+ ag.findFollowingMapboxLayerId = function(e) {
+ if (e === "traces") for (var t = this.subplot.getMapLayers(), r = 0; r < t.length; r++) {
+ var n = t[r].id;
+ if (typeof n == "string" && n.indexOf(vGe.traceLayerPrefix) === 0) {
+ e = n;
+ break;
+ }
+ }
+ return e;
+ };
+ ag.updateLayer = function(e) {
+ var t = this.subplot, r = gGe(e), n = this.lookupBelow(), i = this.findFollowingMapboxLayerId(n);
+ this.removeLayer(), r7(e) && t.addLayer({ id: this.idLayer, source: this.idSource, "source-layer": e.sourcelayer || "", type: e.type, minzoom: e.minzoom, maxzoom: e.maxzoom, layout: r.layout, paint: r.paint }, i), this.layerType = e.type, this.below = n;
+ };
+ ag.updateStyle = function(e) {
+ if (r7(e)) {
+ var t = gGe(e);
+ this.subplot.setOptions(this.idLayer, "setLayoutProperty", t.layout), this.subplot.setOptions(this.idLayer, "setPaintProperty", t.paint);
+ }
+ };
+ ag.removeLayer = function() {
+ var e = this.subplot.map;
+ e.getLayer(this.idLayer) && e.removeLayer(this.idLayer);
+ };
+ ag.dispose = function() {
+ var e = this.subplot.map;
+ e.getLayer(this.idLayer) && e.removeLayer(this.idLayer), e.getSource(this.idSource) && e.removeSource(this.idSource);
+ };
+ function r7(e) {
+ if (!e.visible) return false;
+ var t = e.source;
+ if (Array.isArray(t) && t.length > 0) {
+ for (var r = 0; r < t.length; r++) if (typeof t[r] != "string" || t[r].length === 0) return false;
+ return true;
+ }
+ return hw.isPlainObject(t) || typeof t == "string" && t.length > 0;
+ }
+ function gGe(e) {
+ var t = {}, r = {};
+ switch (e.type) {
+ case "circle":
+ hw.extendFlat(r, { "circle-radius": e.circle.radius, "circle-color": e.color, "circle-opacity": e.opacity });
+ break;
+ case "line":
+ hw.extendFlat(r, { "line-width": e.line.width, "line-color": e.color, "line-opacity": e.opacity, "line-dasharray": e.line.dash });
+ break;
+ case "fill":
+ hw.extendFlat(r, { "fill-color": e.color, "fill-outline-color": e.fill.outlinecolor, "fill-opacity": e.opacity });
+ break;
+ case "symbol":
+ var n = e.symbol, i = Xjt(n.textposition, n.iconsize);
+ hw.extendFlat(t, { "icon-image": n.icon + "-15", "icon-size": n.iconsize / 10, "text-field": n.text, "text-size": n.textfont.size, "text-anchor": i.anchor, "text-offset": i.offset, "symbol-placement": n.placement }), hw.extendFlat(r, { "icon-color": e.color, "text-color": n.textfont.color, "text-opacity": e.opacity });
+ break;
+ case "raster":
+ hw.extendFlat(r, { "raster-fade-duration": 0, "raster-opacity": e.opacity });
+ break;
+ }
+ return { layout: t, paint: r };
+ }
+ function Zjt(e) {
+ var t = e.sourcetype, r = e.source, n = { type: t }, i;
+ return t === "geojson" ? i = "data" : t === "vector" ? i = typeof r == "string" ? "url" : "tiles" : t === "raster" ? (i = "tiles", n.tileSize = 256) : t === "image" && (i = "url", n.coordinates = e.coordinates), n[i] = r, e.sourceattribution && (n.attribution = Wjt(e.sourceattribution)), n;
+ }
+ mGe.exports = function(t, r, n) {
+ var i = new pGe(t, r);
+ return i.update(n), i;
+ };
+ });
+ var EGe = ye((Ixr, MGe) => {
+ var mJ = gJ(), yJ = Dr(), wGe = hx(), _Ge = qa(), Yjt = ho(), Kjt = yv(), i7 = vf(), TGe = Cg(), Jjt = TGe.drawMode, $jt = TGe.selectMode, Qjt = Of().prepSelect, eWt = Of().clearOutline, tWt = Of().clearSelectionsCache, rWt = Of().selectOnClick, kx = m1(), iWt = yGe();
+ function AGe(e, t) {
+ this.id = t, this.gd = e;
+ var r = e._fullLayout, n = e._context;
+ this.container = r._glcontainer.node(), this.isStatic = n.staticPlot, this.uid = r._uid + "-" + this.id, this.div = null, this.xaxis = null, this.yaxis = null, this.createFramework(r), this.map = null, this.accessToken = null, this.styleObj = null, this.traceHash = {}, this.layerList = [], this.belowLookup = {}, this.dragging = false, this.wheeling = false;
+ }
+ var Gh = AGe.prototype;
+ Gh.plot = function(e, t, r) {
+ var n = this, i = t[n.id];
+ n.map && i.accesstoken !== n.accessToken && (n.map.remove(), n.map = null, n.styleObj = null, n.traceHash = {}, n.layerList = []);
+ var a;
+ n.map ? a = new Promise(function(o, s) {
+ n.updateMap(e, t, o, s);
+ }) : a = new Promise(function(o, s) {
+ n.createMap(e, t, o, s);
+ }), r.push(a);
+ };
+ Gh.createMap = function(e, t, r, n) {
+ var i = this, a = t[i.id], o = i.styleObj = SGe(a.style, t);
+ i.accessToken = a.accesstoken;
+ var s = a.bounds, l = s ? [[s.west, s.south], [s.east, s.north]] : null, u = i.map = new mJ.Map({ container: i.div, style: o.style, center: _J(a.center), zoom: a.zoom, bearing: a.bearing, pitch: a.pitch, maxBounds: l, interactive: !i.isStatic, preserveDrawingBuffer: i.isStatic, doubleClickZoom: false, boxZoom: false, attributionControl: false }).addControl(new mJ.AttributionControl({ compact: true }));
+ u._canvas.style.left = "0px", u._canvas.style.top = "0px", i.rejectOnError(n), i.isStatic || i.initFx(e, t);
+ var c = [];
+ c.push(new Promise(function(f) {
+ u.once("load", f);
+ })), c = c.concat(wGe.fetchTraceGeoData(e)), Promise.all(c).then(function() {
+ i.fillBelowLookup(e, t), i.updateData(e), i.updateLayout(t), i.resolveOnRender(r);
+ }).catch(n);
+ };
+ Gh.updateMap = function(e, t, r, n) {
+ var i = this, a = i.map, o = t[this.id];
+ i.rejectOnError(n);
+ var s = [], l = SGe(o.style, t);
+ JSON.stringify(i.styleObj) !== JSON.stringify(l) && (i.styleObj = l, a.setStyle(l.style), i.traceHash = {}, s.push(new Promise(function(u) {
+ a.once("styledata", u);
+ }))), s = s.concat(wGe.fetchTraceGeoData(e)), Promise.all(s).then(function() {
+ i.fillBelowLookup(e, t), i.updateData(e), i.updateLayout(t), i.resolveOnRender(r);
+ }).catch(n);
+ };
+ Gh.fillBelowLookup = function(e, t) {
+ var r = t[this.id], n = r.layers, i, a, o = this.belowLookup = {}, s = false;
+ for (i = 0; i < e.length; i++) {
+ var l = e[i][0].trace, u = l._module;
+ typeof l.below == "string" ? a = l.below : u.getBelow && (a = u.getBelow(l, this)), a === "" && (s = true), o["trace-" + l.uid] = a || "";
+ }
+ for (i = 0; i < n.length; i++) {
+ var c = n[i];
+ typeof c.below == "string" ? a = c.below : s ? a = "traces" : a = "", o["layout-" + i] = a;
+ }
+ var f = {}, h, d;
+ for (h in o) a = o[h], f[a] ? f[a].push(h) : f[a] = [h];
+ for (a in f) {
+ var v = f[a];
+ if (v.length > 1) for (i = 0; i < v.length; i++) h = v[i], h.indexOf("trace-") === 0 ? (d = h.split("trace-")[1], this.traceHash[d] && (this.traceHash[d].below = null)) : h.indexOf("layout-") === 0 && (d = h.split("layout-")[1], this.layerList[d] && (this.layerList[d].below = null));
+ }
+ };
+ var xGe = { choroplethmapbox: 0, densitymapbox: 1, scattermapbox: 2 };
+ Gh.updateData = function(e) {
+ var t = this.traceHash, r, n, i, a, o = e.slice().sort(function(f, h) {
+ return xGe[f[0].trace.type] - xGe[h[0].trace.type];
+ });
+ for (i = 0; i < o.length; i++) {
+ var s = o[i];
+ n = s[0].trace, r = t[n.uid];
+ var l = false;
+ r && (r.type === n.type ? (r.update(s), l = true) : r.dispose()), !l && n._module && (t[n.uid] = n._module.plot(this, s));
+ }
+ var u = Object.keys(t);
+ e: for (i = 0; i < u.length; i++) {
+ var c = u[i];
+ for (a = 0; a < e.length; a++) if (n = e[a][0].trace, c === n.uid) continue e;
+ r = t[c], r.dispose(), delete t[c];
+ }
+ };
+ Gh.updateLayout = function(e) {
+ var t = this.map, r = e[this.id];
+ !this.dragging && !this.wheeling && (t.setCenter(_J(r.center)), t.setZoom(r.zoom), t.setBearing(r.bearing), t.setPitch(r.pitch)), this.updateLayers(e), this.updateFramework(e), this.updateFx(e), this.map.resize(), this.gd._context._scrollZoom.mapbox ? t.scrollZoom.enable() : t.scrollZoom.disable();
+ };
+ Gh.resolveOnRender = function(e) {
+ var t = this.map;
+ t.on("render", function r() {
+ t.loaded() && (t.off("render", r), setTimeout(e, 10));
+ });
+ };
+ Gh.rejectOnError = function(e) {
+ var t = this.map;
+ function r() {
+ e(new Error(kx.mapOnErrorMsg));
+ }
+ t.once("error", r), t.once("style.error", r), t.once("source.error", r), t.once("tile.error", r), t.once("layer.error", r);
+ };
+ Gh.createFramework = function(e) {
+ var t = this, r = t.div = document.createElement("div");
+ r.id = t.uid, r.style.position = "absolute", t.container.appendChild(r), t.xaxis = { _id: "x", c2p: function(n) {
+ return t.project(n).x;
+ } }, t.yaxis = { _id: "y", c2p: function(n) {
+ return t.project(n).y;
+ } }, t.updateFramework(e), t.mockAxis = { type: "linear", showexponent: "all", exponentformat: "B" }, Yjt.setConvert(t.mockAxis, e);
+ };
+ Gh.initFx = function(e, t) {
+ var r = this, n = r.gd, i = r.map;
+ i.on("moveend", function(s) {
+ if (r.map) {
+ var l = n._fullLayout;
+ if (s.originalEvent || r.wheeling) {
+ var u = l[r.id];
+ _Ge.call("_storeDirectGUIEdit", n.layout, l._preGUI, r.getViewEdits(u));
+ var c = r.getView();
+ u._input.center = u.center = c.center, u._input.zoom = u.zoom = c.zoom, u._input.bearing = u.bearing = c.bearing, u._input.pitch = u.pitch = c.pitch, n.emit("plotly_relayout", r.getViewEditsWithDerived(c));
+ }
+ s.originalEvent && s.originalEvent.type === "mouseup" ? r.dragging = false : r.wheeling && (r.wheeling = false), l._rehover && l._rehover();
+ }
+ }), i.on("wheel", function() {
+ r.wheeling = true;
+ }), i.on("mousemove", function(s) {
+ var l = r.div.getBoundingClientRect(), u = [s.originalEvent.offsetX, s.originalEvent.offsetY];
+ s.target.getBoundingClientRect = function() {
+ return l;
+ }, r.xaxis.p2c = function() {
+ return i.unproject(u).lng;
+ }, r.yaxis.p2c = function() {
+ return i.unproject(u).lat;
+ }, n._fullLayout._rehover = function() {
+ n._fullLayout._hoversubplot === r.id && n._fullLayout[r.id] && i7.hover(n, s, r.id);
+ }, i7.hover(n, s, r.id), n._fullLayout._hoversubplot = r.id;
+ });
+ function a() {
+ i7.loneUnhover(t._hoverlayer);
+ }
+ i.on("dragstart", function() {
+ r.dragging = true, a();
+ }), i.on("zoomstart", a), i.on("mouseout", function() {
+ n._fullLayout._hoversubplot = null;
+ });
+ function o() {
+ var s = r.getView();
+ n.emit("plotly_relayouting", r.getViewEditsWithDerived(s));
+ }
+ i.on("drag", o), i.on("zoom", o), i.on("dblclick", function() {
+ var s = n._fullLayout[r.id];
+ _Ge.call("_storeDirectGUIEdit", n.layout, n._fullLayout._preGUI, r.getViewEdits(s));
+ var l = r.viewInitial;
+ i.setCenter(_J(l.center)), i.setZoom(l.zoom), i.setBearing(l.bearing), i.setPitch(l.pitch);
+ var u = r.getView();
+ s._input.center = s.center = u.center, s._input.zoom = s.zoom = u.zoom, s._input.bearing = s.bearing = u.bearing, s._input.pitch = s.pitch = u.pitch, n.emit("plotly_doubleclick", null), n.emit("plotly_relayout", r.getViewEditsWithDerived(u));
+ }), r.clearOutline = function() {
+ tWt(r.dragOptions), eWt(r.dragOptions.gd);
+ }, r.onClickInPanFn = function(s) {
+ return function(l) {
+ var u = n._fullLayout.clickmode;
+ u.indexOf("select") > -1 && rWt(l.originalEvent, n, [r.xaxis], [r.yaxis], r.id, s), u.indexOf("event") > -1 && i7.click(n, l.originalEvent);
+ };
+ };
+ };
+ Gh.updateFx = function(e) {
+ var t = this, r = t.map, n = t.gd;
+ if (t.isStatic) return;
+ function i(l) {
+ var u = t.map.unproject(l);
+ return [u.lng, u.lat];
+ }
+ var a = e.dragmode, o;
+ o = function(l, u) {
+ if (u.isRect) {
+ var c = l.range = {};
+ c[t.id] = [i([u.xmin, u.ymin]), i([u.xmax, u.ymax])];
+ } else {
+ var f = l.lassoPoints = {};
+ f[t.id] = u.map(i);
+ }
+ };
+ var s = t.dragOptions;
+ t.dragOptions = yJ.extendDeep(s || {}, { dragmode: e.dragmode, element: t.div, gd: n, plotinfo: { id: t.id, domain: e[t.id].domain, xaxis: t.xaxis, yaxis: t.yaxis, fillRangeItems: o }, xaxes: [t.xaxis], yaxes: [t.yaxis], subplot: t.id }), r.off("click", t.onClickInPanHandler), $jt(a) || Jjt(a) ? (r.dragPan.disable(), r.on("zoomstart", t.clearOutline), t.dragOptions.prepFn = function(l, u, c) {
+ Qjt(l, u, c, t.dragOptions, a);
+ }, Kjt.init(t.dragOptions)) : (r.dragPan.enable(), r.off("zoomstart", t.clearOutline), t.div.onmousedown = null, t.div.ontouchstart = null, t.div.removeEventListener("touchstart", t.div._ontouchstart), t.onClickInPanHandler = t.onClickInPanFn(t.dragOptions), r.on("click", t.onClickInPanHandler));
+ };
+ Gh.updateFramework = function(e) {
+ var t = e[this.id].domain, r = e._size, n = this.div.style;
+ n.width = r.w * (t.x[1] - t.x[0]) + "px", n.height = r.h * (t.y[1] - t.y[0]) + "px", n.left = r.l + t.x[0] * r.w + "px", n.top = r.t + (1 - t.y[1]) * r.h + "px", this.xaxis._offset = r.l + t.x[0] * r.w, this.xaxis._length = r.w * (t.x[1] - t.x[0]), this.yaxis._offset = r.t + (1 - t.y[1]) * r.h, this.yaxis._length = r.h * (t.y[1] - t.y[0]);
+ };
+ Gh.updateLayers = function(e) {
+ var t = e[this.id], r = t.layers, n = this.layerList, i;
+ if (r.length !== n.length) {
+ for (i = 0; i < n.length; i++) n[i].dispose();
+ for (n = this.layerList = [], i = 0; i < r.length; i++) n.push(iWt(this, i, r[i]));
+ } else for (i = 0; i < r.length; i++) n[i].update(r[i]);
+ };
+ Gh.destroy = function() {
+ this.map && (this.map.remove(), this.map = null, this.container.removeChild(this.div));
+ };
+ Gh.toImage = function() {
+ return this.map.stop(), this.map.getCanvas().toDataURL();
+ };
+ Gh.setOptions = function(e, t, r) {
+ for (var n in r) this.map[t](e, n, r[n]);
+ };
+ Gh.getMapLayers = function() {
+ return this.map.getStyle().layers;
+ };
+ Gh.addLayer = function(e, t) {
+ var r = this.map;
+ if (typeof t == "string") {
+ if (t === "") {
+ r.addLayer(e, t);
+ return;
+ }
+ for (var n = this.getMapLayers(), i = 0; i < n.length; i++) if (t === n[i].id) {
+ r.addLayer(e, t);
+ return;
+ }
+ yJ.warn(["Trying to add layer with *below* value", t, "referencing a layer that does not exist", "or that does not yet exist."].join(" "));
+ }
+ r.addLayer(e);
+ };
+ Gh.project = function(e) {
+ return this.map.project(new mJ.LngLat(e[0], e[1]));
+ };
+ Gh.getView = function() {
+ var e = this.map, t = e.getCenter(), r = t.lng, n = t.lat, i = { lon: r, lat: n }, a = e.getCanvas(), o = parseInt(a.style.width), s = parseInt(a.style.height);
+ return { center: i, zoom: e.getZoom(), bearing: e.getBearing(), pitch: e.getPitch(), _derived: { coordinates: [e.unproject([0, 0]).toArray(), e.unproject([o, 0]).toArray(), e.unproject([o, s]).toArray(), e.unproject([0, s]).toArray()] } };
+ };
+ Gh.getViewEdits = function(e) {
+ for (var t = this.id, r = ["center", "zoom", "bearing", "pitch"], n = {}, i = 0; i < r.length; i++) {
+ var a = r[i];
+ n[t + "." + a] = e[a];
+ }
+ return n;
+ };
+ Gh.getViewEditsWithDerived = function(e) {
+ var t = this.id, r = this.getViewEdits(e);
+ return r[t + "._derived"] = e._derived, r;
+ };
+ function SGe(e, t) {
+ var r = {};
+ if (yJ.isPlainObject(e)) r.id = e.id, r.style = e;
+ else if (typeof e == "string") if (r.id = e, kx.styleValuesMapbox.indexOf(e) !== -1) r.style = bGe(e);
+ else if (kx.stylesNonMapbox[e]) {
+ r.style = kx.stylesNonMapbox[e];
+ var n = r.style.sources["plotly-" + e], i = n ? n.tiles : void 0;
+ i && i[0] && i[0].slice(-9) === "?api_key=" && (i[0] += t._mapboxAccessToken);
+ } else r.style = e;
+ else r.id = kx.styleValueDflt, r.style = bGe(kx.styleValueDflt);
+ return r.transition = { duration: 0, delay: 0 }, r;
+ }
+ function bGe(e) {
+ return kx.styleUrlPrefix + e + "-" + kx.styleUrlSuffix;
+ }
+ function _J(e) {
+ return [e.lon, e.lat];
+ }
+ MGe.exports = AGe;
+ });
+ var LGe = ye((Rxr, CGe) => {
+ var xJ = Dr(), nWt = O_(), aWt = Zd(), kGe = Zk();
+ CGe.exports = function(t, r, n) {
+ nWt(t, r, n, { type: "mapbox", attributes: kGe, handleDefaults: oWt, partition: "y", accessToken: r._mapboxAccessToken });
+ };
+ function oWt(e, t, r, n) {
+ r("accesstoken", n.accessToken), r("style"), r("center.lon"), r("center.lat"), r("zoom"), r("bearing"), r("pitch");
+ var i = r("bounds.west"), a = r("bounds.east"), o = r("bounds.south"), s = r("bounds.north");
+ (i === void 0 || a === void 0 || o === void 0 || s === void 0) && delete t.bounds, aWt(e, t, { name: "layers", handleItemDefaults: sWt }), t._input = e;
+ }
+ function sWt(e, t) {
+ function r(l, u) {
+ return xJ.coerce(e, t, kGe.layers, l, u);
+ }
+ var n = r("visible");
+ if (n) {
+ var i = r("sourcetype"), a = i === "raster" || i === "image";
+ r("source"), r("sourceattribution"), i === "vector" && r("sourcelayer"), i === "image" && r("coordinates");
+ var o;
+ a && (o = "raster");
+ var s = r("type", o);
+ a && s !== "raster" && (s = t.type = "raster", xJ.log("Source types *raster* and *image* must drawn *raster* layer type.")), r("below"), r("color"), r("opacity"), r("minzoom"), r("maxzoom"), s === "circle" && r("circle.radius"), s === "line" && (r("line.width"), r("line.dash")), s === "fill" && r("fill.outlinecolor"), s === "symbol" && (r("symbol.icon"), r("symbol.iconsize"), r("symbol.text"), xJ.coerceFont(r, "symbol.textfont", void 0, { noFontVariant: true, noFontShadow: true, noFontLineposition: true, noFontTextcase: true }), r("symbol.textposition"), r("symbol.placement"));
+ }
+ }
+ });
+ var n7 = ye((Np) => {
+ var PGe = gJ(), nm = Dr(), bJ = nm.strTranslate, lWt = nm.strScale, uWt = Id().getSubplotCalcData, cWt = Wp(), fWt = Oa(), IGe = So(), hWt = Zl(), dWt = EGe(), Cx = "mapbox", oy = Np.constants = m1();
+ Np.name = Cx;
+ Np.attr = "subplot";
+ Np.idRoot = Cx;
+ Np.idRegex = Np.attrRegex = nm.counterRegex(Cx);
+ var vWt = ["mapbox subplots and traces are deprecated!", "Please consider switching to `map` subplots and traces.", "Learn more at: https://plotly.com/python/maplibre-migration/", "as well as https://plotly.com/javascript/maplibre-migration/"].join(" ");
+ Np.attributes = { subplot: { valType: "subplotid", dflt: "mapbox", editType: "calc" } };
+ Np.layoutAttributes = Zk();
+ Np.supplyLayoutDefaults = LGe();
+ var RGe = true;
+ Np.plot = function(t) {
+ RGe && (RGe = false, nm.warn(vWt));
+ var r = t._fullLayout, n = t.calcdata, i = r._subplots[Cx];
+ if (PGe.version !== oy.requiredVersion) throw new Error(oy.wrongVersionErrorMsg);
+ var a = pWt(t, i);
+ PGe.accessToken = a;
+ for (var o = 0; o < i.length; o++) {
+ var s = i[o], l = uWt(n, Cx, s), u = r[s], c = u._subplot;
+ c || (c = new dWt(t, s), r[s]._subplot = c), c.viewInitial || (c.viewInitial = { center: nm.extendFlat({}, u.center), zoom: u.zoom, bearing: u.bearing, pitch: u.pitch }), c.plot(l, r, t._promises);
+ }
+ };
+ Np.clean = function(e, t, r, n) {
+ for (var i = n._subplots[Cx] || [], a = 0; a < i.length; a++) {
+ var o = i[a];
+ !t[o] && n[o]._subplot && n[o]._subplot.destroy();
+ }
+ };
+ Np.toSVG = function(e) {
+ for (var t = e._fullLayout, r = t._subplots[Cx], n = t._size, i = 0; i < r.length; i++) {
+ var a = t[r[i]], o = a.domain, s = a._subplot, l = s.toImage("png"), u = t._glimages.append("svg:image");
+ u.attr({ xmlns: cWt.svg, "xlink:href": l, x: n.l + n.w * o.x[0], y: n.t + n.h * (1 - o.y[1]), width: n.w * (o.x[1] - o.x[0]), height: n.h * (o.y[1] - o.y[0]), preserveAspectRatio: "none" });
+ var c = fWt.select(a._subplot.div), f = c.select(".mapboxgl-ctrl-logo").node().offsetParent === null;
+ if (!f) {
+ var h = t._glimages.append("g");
+ h.attr("transform", bJ(n.l + n.w * o.x[0] + 10, n.t + n.h * (1 - o.y[0]) - 31)), h.append("path").attr("d", oy.mapboxLogo.path0).style({ opacity: 0.9, fill: "#ffffff", "enable-background": "new" }), h.append("path").attr("d", oy.mapboxLogo.path1).style("opacity", 0.35).style("enable-background", "new"), h.append("path").attr("d", oy.mapboxLogo.path2).style("opacity", 0.35).style("enable-background", "new"), h.append("polygon").attr("points", oy.mapboxLogo.polygon).style({ opacity: 0.9, fill: "#ffffff", "enable-background": "new" });
+ }
+ var d = c.select(".mapboxgl-ctrl-attrib").text().replace("Improve this map", ""), v = t._glimages.append("g"), _ = v.append("text");
+ _.text(d).classed("static-attribution", true).attr({ "font-size": 12, "font-family": "Arial", color: "rgba(0, 0, 0, 0.75)", "text-anchor": "end", "data-unformatted": d });
+ var b = IGe.bBox(_.node()), p = n.w * (o.x[1] - o.x[0]);
+ if (b.width > p / 2) {
+ var k = d.split("|").join(" ");
+ _.text(k).attr("data-unformatted", k).call(hWt.convertToTspans, e), b = IGe.bBox(_.node());
+ }
+ _.attr("transform", bJ(-3, -b.height + 8)), v.insert("rect", ".static-attribution").attr({ x: -b.width - 6, y: -b.height - 3, width: b.width + 6, height: b.height + 3, fill: "rgba(255, 255, 255, 0.75)" });
+ var E = 1;
+ b.width + 6 > p && (E = p / (b.width + 6));
+ var T = [n.l + n.w * o.x[1], n.t + n.h * (1 - o.y[0])];
+ v.attr("transform", bJ(T[0], T[1]) + lWt(E));
+ }
+ };
+ function pWt(e, t) {
+ var r = e._fullLayout, n = e._context;
+ if (n.mapboxAccessToken === "") return "";
+ for (var i = [], a = [], o = false, s = false, l = 0; l < t.length; l++) {
+ var u = r[t[l]], c = u.accesstoken;
+ DGe(u.style) && (c ? nm.pushUnique(i, c) : (DGe(u._input.style) && (nm.error("Uses Mapbox map style, but did not set an access token."), o = true), s = true)), c && nm.pushUnique(a, c);
+ }
+ if (s) {
+ var f = o ? oy.noAccessTokenErrorMsg : oy.missingStyleErrorMsg;
+ throw nm.error(f), new Error(f);
+ }
+ return i.length ? (i.length > 1 && nm.warn(oy.multipleTokensErrorMsg), i[0]) : (a.length && nm.log(["Listed mapbox access token(s)", a.join(","), "but did not use a Mapbox map style, ignoring token(s)."].join(" ")), "");
+ }
+ function DGe(e) {
+ return typeof e == "string" && (oy.styleValuesMapbox.indexOf(e) !== -1 || e.indexOf("mapbox://") === 0 || e.indexOf("stamen") === 0);
+ }
+ Np.updateFx = function(e) {
+ for (var t = e._fullLayout, r = t._subplots[Cx], n = 0; n < r.length; n++) {
+ var i = t[r[n]]._subplot;
+ i.updateFx(t);
+ }
+ };
+ });
+ var zGe = ye((zxr, FGe) => {
+ FGe.exports = { attributes: Kz(), supplyDefaults: XVe(), colorbar: $d(), formatLabels: uJ(), calc: _F(), plot: sGe(), hoverPoints: t7().hoverPoints, eventData: fGe(), selectPoints: dGe(), styleOnSelect: function(e, t) {
+ if (t) {
+ var r = t[0].trace;
+ r._glTrace.update(t);
+ }
+ }, moduleType: "trace", name: "scattermapbox", basePlotModule: n7(), categories: ["mapbox", "gl", "symbols", "showLegend", "scatter-like"], meta: {} };
+ });
+ var qGe = ye((Oxr, OGe) => {
+ OGe.exports = zGe();
+ });
+ var wJ = ye((qxr, BGe) => {
+ var y1 = a5(), gWt = Tu(), { hovertemplateAttrs: mWt, templatefallbackAttrs: yWt } = Ll(), _Wt = Gl(), Lx = Ao().extendFlat;
+ BGe.exports = Lx({ locations: { valType: "data_array", editType: "calc" }, z: { valType: "data_array", editType: "calc" }, geojson: { valType: "any", editType: "calc" }, featureidkey: Lx({}, y1.featureidkey, {}), below: { valType: "string", editType: "plot" }, text: y1.text, hovertext: y1.hovertext, marker: { line: { color: Lx({}, y1.marker.line.color, { editType: "plot" }), width: Lx({}, y1.marker.line.width, { editType: "plot" }), editType: "calc" }, opacity: Lx({}, y1.marker.opacity, { editType: "plot" }), editType: "calc" }, selected: { marker: { opacity: Lx({}, y1.selected.marker.opacity, { editType: "plot" }), editType: "plot" }, editType: "plot" }, unselected: { marker: { opacity: Lx({}, y1.unselected.marker.opacity, { editType: "plot" }), editType: "plot" }, editType: "plot" }, hoverinfo: y1.hoverinfo, hovertemplate: mWt({}, { keys: ["properties"] }), hovertemplatefallback: yWt(), showlegend: Lx({}, _Wt.showlegend, { dflt: false }) }, gWt("", { cLetter: "z", editTypeOverride: "calc" }));
+ });
+ var UGe = ye((Bxr, NGe) => {
+ var $k = Dr(), xWt = td(), bWt = wJ();
+ NGe.exports = function(t, r, n, i) {
+ function a(c, f) {
+ return $k.coerce(t, r, bWt, c, f);
+ }
+ var o = a("locations"), s = a("z"), l = a("geojson");
+ if (!$k.isArrayOrTypedArray(o) || !o.length || !$k.isArrayOrTypedArray(s) || !s.length || !(typeof l == "string" && l !== "" || $k.isPlainObject(l))) {
+ r.visible = false;
+ return;
+ }
+ a("featureidkey"), r._length = Math.min(o.length, s.length), a("below"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback");
+ var u = a("marker.line.width");
+ u && a("marker.line.color"), a("marker.opacity"), xWt(t, r, i, a, { prefix: "", cLetter: "z" }), $k.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var TJ = ye((Nxr, HGe) => {
+ var wWt = Eo(), _1 = Dr(), TWt = tc(), AWt = So(), SWt = cx().makeBlank, VGe = hx();
+ function MWt(e) {
+ var t = e[0].trace, r = t.visible === true && t._length !== 0, n = { layout: { visibility: "none" }, paint: {} }, i = { layout: { visibility: "none" }, paint: {} }, a = t._opts = { fill: n, line: i, geojson: SWt() };
+ if (!r) return a;
+ var o = VGe.extractTraceFeature(e);
+ if (!o) return a;
+ var s = TWt.makeColorScaleFuncFromTrace(t), l = t.marker, u = l.line || {}, c;
+ _1.isArrayOrTypedArray(l.opacity) && (c = function(k) {
+ var E = k.mo;
+ return wWt(E) ? +_1.constrain(E, 0, 1) : 0;
+ });
+ var f;
+ _1.isArrayOrTypedArray(u.color) && (f = function(k) {
+ return k.mlc;
+ });
+ var h;
+ _1.isArrayOrTypedArray(u.width) && (h = function(k) {
+ return k.mlw;
+ });
+ for (var d = 0; d < e.length; d++) {
+ var v = e[d], _ = v.fOut;
+ if (_) {
+ var b = _.properties;
+ b.fc = s(v.z), c && (b.mo = c(v)), f && (b.mlc = f(v)), h && (b.mlw = h(v)), v.ct = b.ct, v._polygons = VGe.feature2polygons(_);
+ }
+ }
+ var p = c ? { type: "identity", property: "mo" } : l.opacity;
+ return _1.extendFlat(n.paint, { "fill-color": { type: "identity", property: "fc" }, "fill-opacity": p }), _1.extendFlat(i.paint, { "line-color": f ? { type: "identity", property: "mlc" } : u.color, "line-width": h ? { type: "identity", property: "mlw" } : u.width, "line-opacity": p }), n.layout.visibility = "visible", i.layout.visibility = "visible", a.geojson = { type: "FeatureCollection", features: o }, GGe(e), a;
+ }
+ function GGe(e) {
+ var t = e[0].trace, r = t._opts, n;
+ if (t.selectedpoints) {
+ for (var i = AWt.makeSelectedPointStyleFns(t), a = 0; a < e.length; a++) {
+ var o = e[a];
+ o.fOut && (o.fOut.properties.mo2 = i.selectedOpacityFn(o));
+ }
+ n = { type: "identity", property: "mo2" };
+ } else n = _1.isArrayOrTypedArray(t.marker.opacity) ? { type: "identity", property: "mo" } : t.marker.opacity;
+ return _1.extendFlat(r.fill.paint, { "fill-opacity": n }), _1.extendFlat(r.line.paint, { "line-opacity": n }), r;
+ }
+ HGe.exports = { convert: MWt, convertOnSelect: GGe };
+ });
+ var YGe = ye((Uxr, ZGe) => {
+ var WGe = TJ().convert, EWt = TJ().convertOnSelect, jGe = m1().traceLayerPrefix;
+ function XGe(e, t) {
+ this.type = "choroplethmapbox", this.subplot = e, this.uid = t, this.sourceId = "source-" + t, this.layerList = [["fill", jGe + t + "-fill"], ["line", jGe + t + "-line"]], this.below = null;
+ }
+ var L5 = XGe.prototype;
+ L5.update = function(e) {
+ this._update(WGe(e)), e[0].trace._glTrace = this;
+ };
+ L5.updateOnSelect = function(e) {
+ this._update(EWt(e));
+ };
+ L5._update = function(e) {
+ var t = this.subplot, r = this.layerList, n = t.belowLookup["trace-" + this.uid];
+ t.map.getSource(this.sourceId).setData(e.geojson), n !== this.below && (this._removeLayers(), this._addLayers(e, n), this.below = n);
+ for (var i = 0; i < r.length; i++) {
+ var a = r[i], o = a[0], s = a[1], l = e[o];
+ t.setOptions(s, "setLayoutProperty", l.layout), l.layout.visibility === "visible" && t.setOptions(s, "setPaintProperty", l.paint);
+ }
+ };
+ L5._addLayers = function(e, t) {
+ for (var r = this.subplot, n = this.layerList, i = this.sourceId, a = 0; a < n.length; a++) {
+ var o = n[a], s = o[0], l = e[s];
+ r.addLayer({ type: s, id: o[1], source: i, layout: l.layout, paint: l.paint }, t);
+ }
+ };
+ L5._removeLayers = function() {
+ for (var e = this.subplot.map, t = this.layerList, r = t.length - 1; r >= 0; r--) e.removeLayer(t[r][1]);
+ };
+ L5.dispose = function() {
+ var e = this.subplot.map;
+ this._removeLayers(), e.removeSource(this.sourceId);
+ };
+ ZGe.exports = function(t, r) {
+ var n = r[0].trace, i = new XGe(t, n.uid), a = i.sourceId, o = WGe(r), s = i.below = t.belowLookup["trace-" + n.uid];
+ return t.map.addSource(a, { type: "geojson", data: o.geojson }), i._addLayers(o, s), r[0].trace._glTrace = i, i;
+ };
+ });
+ var JGe = ye((Gxr, KGe) => {
+ KGe.exports = { attributes: wJ(), supplyDefaults: UGe(), colorbar: D_(), calc: NF(), plot: YGe(), hoverPoints: VF(), eventData: GF(), selectPoints: HF(), styleOnSelect: function(e, t) {
+ if (t) {
+ var r = t[0].trace;
+ r._glTrace.updateOnSelect(t);
+ }
+ }, getBelow: function(e, t) {
+ for (var r = t.getMapLayers(), n = r.length - 2; n >= 0; n--) {
+ var i = r[n].id;
+ if (typeof i == "string" && i.indexOf("water") === 0) {
+ for (var a = n + 1; a < r.length; a++) if (i = r[a].id, typeof i == "string" && i.indexOf("plotly-") === -1) return i;
+ }
+ }
+ }, moduleType: "trace", name: "choroplethmapbox", basePlotModule: n7(), categories: ["mapbox", "gl", "noOpacity", "showLegend"], meta: { hr_name: "choropleth_mapbox" } };
+ });
+ var QGe = ye((Hxr, $Ge) => {
+ $Ge.exports = JGe();
+ });
+ var SJ = ye((jxr, tHe) => {
+ var kWt = Tu(), { hovertemplateAttrs: CWt, templatefallbackAttrs: LWt } = Ll(), eHe = Gl(), a7 = Kz(), AJ = Ao().extendFlat;
+ tHe.exports = AJ({ lon: a7.lon, lat: a7.lat, z: { valType: "data_array", editType: "calc" }, radius: { valType: "number", editType: "plot", arrayOk: true, min: 1, dflt: 30 }, below: { valType: "string", editType: "plot" }, text: a7.text, hovertext: a7.hovertext, hoverinfo: AJ({}, eHe.hoverinfo, { flags: ["lon", "lat", "z", "text", "name"] }), hovertemplate: CWt(), hovertemplatefallback: LWt(), showlegend: AJ({}, eHe.showlegend, { dflt: false }) }, kWt("", { cLetter: "z", editTypeOverride: "calc" }));
+ });
+ var iHe = ye((Wxr, rHe) => {
+ var PWt = Dr(), IWt = td(), RWt = SJ();
+ rHe.exports = function(t, r, n, i) {
+ function a(u, c) {
+ return PWt.coerce(t, r, RWt, u, c);
+ }
+ var o = a("lon") || [], s = a("lat") || [], l = Math.min(o.length, s.length);
+ if (!l) {
+ r.visible = false;
+ return;
+ }
+ r._length = l, a("z"), a("radius"), a("below"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), IWt(t, r, i, a, { prefix: "", cLetter: "z" });
+ };
+ });
+ var oHe = ye((Xxr, aHe) => {
+ var MJ = Eo(), DWt = Dr().isArrayOrTypedArray, EJ = fs().BADNUM, FWt = gv(), nHe = Dr()._;
+ aHe.exports = function(t, r) {
+ for (var n = r._length, i = new Array(n), a = r.z, o = DWt(a) && a.length, s = 0; s < n; s++) {
+ var l = i[s] = {}, u = r.lon[s], c = r.lat[s];
+ if (l.lonlat = MJ(u) && MJ(c) ? [+u, +c] : [EJ, EJ], o) {
+ var f = a[s];
+ l.z = MJ(f) ? f : EJ;
+ }
+ }
+ return FWt(t, r, { vals: o ? a : [0, 1], containerStr: "", cLetter: "z" }), n && (i[0].t = { labels: { lat: nHe(t, "lat:") + " ", lon: nHe(t, "lon:") + " " } }), i;
+ };
+ });
+ var fHe = ye((Zxr, cHe) => {
+ var zWt = Eo(), kJ = Dr(), sHe = ka(), lHe = tc(), uHe = fs().BADNUM, OWt = cx().makeBlank;
+ cHe.exports = function(t) {
+ var r = t[0].trace, n = r.visible === true && r._length !== 0, i = { layout: { visibility: "none" }, paint: {} }, a = r._opts = { heatmap: i, geojson: OWt() };
+ if (!n) return a;
+ var o = [], s, l = r.z, u = r.radius, c = kJ.isArrayOrTypedArray(l) && l.length, f = kJ.isArrayOrTypedArray(u);
+ for (s = 0; s < t.length; s++) {
+ var h = t[s], d = h.lonlat;
+ if (d[0] !== uHe) {
+ var v = {};
+ if (c) {
+ var _ = h.z;
+ v.z = _ !== uHe ? _ : 0;
+ }
+ f && (v.r = zWt(u[s]) && u[s] > 0 ? +u[s] : 0), o.push({ type: "Feature", geometry: { type: "Point", coordinates: d }, properties: v });
+ }
+ }
+ var b = lHe.extractOpts(r), p = b.reversescale ? lHe.flipScale(b.colorscale) : b.colorscale, k = p[0][1], E = sHe.opacity(k) < 1 ? k : sHe.addOpacity(k, 0), T = ["interpolate", ["linear"], ["heatmap-density"], 0, E];
+ for (s = 1; s < p.length; s++) T.push(p[s][0], p[s][1]);
+ var L = ["interpolate", ["linear"], ["get", "z"], b.min, 0, b.max, 1];
+ return kJ.extendFlat(a.heatmap.paint, { "heatmap-weight": c ? L : 1 / (b.max - b.min), "heatmap-color": T, "heatmap-radius": f ? { type: "identity", property: "r" } : r.radius, "heatmap-opacity": r.opacity }), a.geojson = { type: "FeatureCollection", features: o }, a.heatmap.layout.visibility = "visible", a;
+ };
+ });
+ var pHe = ye((Yxr, vHe) => {
+ var hHe = fHe(), qWt = m1().traceLayerPrefix;
+ function dHe(e, t) {
+ this.type = "densitymapbox", this.subplot = e, this.uid = t, this.sourceId = "source-" + t, this.layerList = [["heatmap", qWt + t + "-heatmap"]], this.below = null;
+ }
+ var o7 = dHe.prototype;
+ o7.update = function(e) {
+ var t = this.subplot, r = this.layerList, n = hHe(e), i = t.belowLookup["trace-" + this.uid];
+ t.map.getSource(this.sourceId).setData(n.geojson), i !== this.below && (this._removeLayers(), this._addLayers(n, i), this.below = i);
+ for (var a = 0; a < r.length; a++) {
+ var o = r[a], s = o[0], l = o[1], u = n[s];
+ t.setOptions(l, "setLayoutProperty", u.layout), u.layout.visibility === "visible" && t.setOptions(l, "setPaintProperty", u.paint);
+ }
+ };
+ o7._addLayers = function(e, t) {
+ for (var r = this.subplot, n = this.layerList, i = this.sourceId, a = 0; a < n.length; a++) {
+ var o = n[a], s = o[0], l = e[s];
+ r.addLayer({ type: s, id: o[1], source: i, layout: l.layout, paint: l.paint }, t);
+ }
+ };
+ o7._removeLayers = function() {
+ for (var e = this.subplot.map, t = this.layerList, r = t.length - 1; r >= 0; r--) e.removeLayer(t[r][1]);
+ };
+ o7.dispose = function() {
+ var e = this.subplot.map;
+ this._removeLayers(), e.removeSource(this.sourceId);
+ };
+ vHe.exports = function(t, r) {
+ var n = r[0].trace, i = new dHe(t, n.uid), a = i.sourceId, o = hHe(r), s = i.below = t.belowLookup["trace-" + n.uid];
+ return t.map.addSource(a, { type: "geojson", data: o.geojson }), i._addLayers(o, s), i;
+ };
+ });
+ var mHe = ye((Kxr, gHe) => {
+ var BWt = ho(), NWt = t7().hoverPoints, UWt = t7().getExtraText;
+ gHe.exports = function(t, r, n) {
+ var i = NWt(t, r, n);
+ if (i) {
+ var a = i[0], o = a.cd, s = o[0].trace, l = o[a.index];
+ if (delete a.color, "z" in l) {
+ var u = a.subplot.mockAxis;
+ a.z = l.z, a.zLabel = BWt.tickText(u, u.c2l(l.z), "hover").text;
+ }
+ return a.extraText = UWt(s, l, o[0].t.labels), [a];
+ }
+ };
+ });
+ var _He = ye((Jxr, yHe) => {
+ yHe.exports = function(t, r) {
+ return t.lon = r.lon, t.lat = r.lat, t.z = r.z, t;
+ };
+ });
+ var bHe = ye((Qxr, xHe) => {
+ xHe.exports = { attributes: SJ(), supplyDefaults: iHe(), colorbar: D_(), formatLabels: uJ(), calc: oHe(), plot: pHe(), hoverPoints: mHe(), eventData: _He(), getBelow: function(e, t) {
+ for (var r = t.getMapLayers(), n = 0; n < r.length; n++) {
+ var i = r[n], a = i.id;
+ if (i.type === "symbol" && typeof a == "string" && a.indexOf("plotly-") === -1) return a;
+ }
+ }, moduleType: "trace", name: "densitymapbox", basePlotModule: n7(), categories: ["mapbox", "gl", "showLegend"], meta: { hr_name: "density_mapbox" } };
+ });
+ var THe = ye((ebr, wHe) => {
+ wHe.exports = bHe();
+ });
+ var SHe = ye((tbr, AHe) => {
+ AHe.exports = { version: 8, name: "orto", metadata: { "maputnik:renderer": "mlgljs" }, center: [1.537786, 41.837539], zoom: 12, bearing: 0, pitch: 0, light: { anchor: "viewport", color: "white", intensity: 0.4, position: [1.15, 45, 30] }, sources: { ortoEsri: { type: "raster", tiles: ["https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"], tileSize: 256, maxzoom: 18, attribution: "ESRI © ESRI " }, ortoInstaMaps: { type: "raster", tiles: ["https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png"], tileSize: 256, maxzoom: 13 }, ortoICGC: { type: "raster", tiles: ["https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg"], tileSize: 256, minzoom: 13.1, maxzoom: 20 }, openmaptiles: { type: "vector", url: "https://geoserveis.icgc.cat/contextmaps/basemap.json" } }, sprite: "https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1", glyphs: "https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf", layers: [{ id: "background", type: "background", paint: { "background-color": "#F4F9F4" } }, { id: "ortoEsri", type: "raster", source: "ortoEsri", maxzoom: 16, layout: { visibility: "visible" } }, { id: "ortoICGC", type: "raster", source: "ortoICGC", minzoom: 13.1, maxzoom: 19, layout: { visibility: "visible" } }, { id: "ortoInstaMaps", type: "raster", source: "ortoInstaMaps", maxzoom: 13, layout: { visibility: "visible" } }, { id: "waterway_tunnel", type: "line", source: "openmaptiles", "source-layer": "waterway", minzoom: 14, filter: ["all", ["in", "class", "river", "stream", "canal"], ["==", "brunnel", "tunnel"]], layout: { "line-cap": "round" }, paint: { "line-color": "#a0c8f0", "line-width": { base: 1.3, stops: [[13, 0.5], [20, 6]] }, "line-dasharray": [2, 4] } }, { id: "waterway-other", type: "line", metadata: { "mapbox:group": "1444849382550.77" }, source: "openmaptiles", "source-layer": "waterway", filter: ["!in", "class", "canal", "river", "stream"], layout: { "line-cap": "round" }, paint: { "line-color": "#a0c8f0", "line-width": { base: 1.3, stops: [[13, 0.5], [20, 2]] } } }, { id: "waterway-stream-canal", type: "line", metadata: { "mapbox:group": "1444849382550.77" }, source: "openmaptiles", "source-layer": "waterway", filter: ["all", ["in", "class", "canal", "stream"], ["!=", "brunnel", "tunnel"]], layout: { "line-cap": "round" }, paint: { "line-color": "#a0c8f0", "line-width": { base: 1.3, stops: [[13, 0.5], [20, 6]] } } }, { id: "waterway-river", type: "line", metadata: { "mapbox:group": "1444849382550.77" }, source: "openmaptiles", "source-layer": "waterway", filter: ["all", ["==", "class", "river"], ["!=", "brunnel", "tunnel"]], layout: { "line-cap": "round" }, paint: { "line-color": "#a0c8f0", "line-width": { base: 1.2, stops: [[10, 0.8], [20, 4]] }, "line-opacity": 0.5 } }, { id: "water-offset", type: "fill", metadata: { "mapbox:group": "1444849382550.77" }, source: "openmaptiles", "source-layer": "water", maxzoom: 8, filter: ["==", "$type", "Polygon"], layout: { visibility: "visible" }, paint: { "fill-opacity": 0, "fill-color": "#a0c8f0", "fill-translate": { base: 1, stops: [[6, [2, 0]], [8, [0, 0]]] } } }, { id: "water", type: "fill", metadata: { "mapbox:group": "1444849382550.77" }, source: "openmaptiles", "source-layer": "water", layout: { visibility: "visible" }, paint: { "fill-color": "hsl(210, 67%, 85%)", "fill-opacity": 0 } }, { id: "water-pattern", type: "fill", metadata: { "mapbox:group": "1444849382550.77" }, source: "openmaptiles", "source-layer": "water", layout: { visibility: "visible" }, paint: { "fill-translate": [0, 2.5], "fill-pattern": "wave", "fill-opacity": 1 } }, { id: "landcover-ice-shelf", type: "fill", metadata: { "mapbox:group": "1444849382550.77" }, source: "openmaptiles", "source-layer": "landcover", filter: ["==", "subclass", "ice_shelf"], layout: { visibility: "visible" }, paint: { "fill-color": "#fff", "fill-opacity": { base: 1, stops: [[0, 0.9], [10, 0.3]] } } }, { id: "tunnel-service-track-casing", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["in", "class", "service", "track"]], layout: { "line-join": "round" }, paint: { "line-color": "#cfcdca", "line-dasharray": [0.5, 0.25], "line-width": { base: 1.2, stops: [[15, 1], [16, 4], [20, 11]] } } }, { id: "tunnel-minor-casing", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["==", "class", "minor"]], layout: { "line-join": "round" }, paint: { "line-color": "#cfcdca", "line-opacity": { stops: [[12, 0], [12.5, 1]] }, "line-width": { base: 1.2, stops: [[12, 0.5], [13, 1], [14, 4], [20, 15]] } } }, { id: "tunnel-secondary-tertiary-casing", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["in", "class", "secondary", "tertiary"]], layout: { "line-join": "round" }, paint: { "line-color": "#e9ac77", "line-opacity": 1, "line-width": { base: 1.2, stops: [[8, 1.5], [20, 17]] } } }, { id: "tunnel-trunk-primary-casing", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["in", "class", "primary", "trunk"]], layout: { "line-join": "round" }, paint: { "line-color": "#e9ac77", "line-width": { base: 1.2, stops: [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]] }, "line-opacity": 0.7 } }, { id: "tunnel-motorway-casing", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["==", "class", "motorway"]], layout: { "line-join": "round", visibility: "visible" }, paint: { "line-color": "#e9ac77", "line-dasharray": [0.5, 0.25], "line-width": { base: 1.2, stops: [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]] }, "line-opacity": 0.5 } }, { id: "tunnel-path", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["==", "brunnel", "tunnel"], ["==", "class", "path"]]], paint: { "line-color": "#cba", "line-dasharray": [1.5, 0.75], "line-width": { base: 1.2, stops: [[15, 1.2], [20, 4]] } } }, { id: "tunnel-service-track", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["in", "class", "service", "track"]], layout: { "line-join": "round" }, paint: { "line-color": "#fff", "line-width": { base: 1.2, stops: [[15.5, 0], [16, 2], [20, 7.5]] } } }, { id: "tunnel-minor", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["==", "class", "minor_road"]], layout: { "line-join": "round" }, paint: { "line-color": "#fff", "line-opacity": 1, "line-width": { base: 1.2, stops: [[13.5, 0], [14, 2.5], [20, 11.5]] } } }, { id: "tunnel-secondary-tertiary", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["in", "class", "secondary", "tertiary"]], layout: { "line-join": "round" }, paint: { "line-color": "#fff4c6", "line-width": { base: 1.2, stops: [[6.5, 0], [7, 0.5], [20, 10]] } } }, { id: "tunnel-trunk-primary", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["in", "class", "primary", "trunk"]], layout: { "line-join": "round" }, paint: { "line-color": "#fff4c6", "line-width": { base: 1.2, stops: [[6.5, 0], [7, 0.5], [20, 18]] }, "line-opacity": 0.5 } }, { id: "tunnel-motorway", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["==", "class", "motorway"]], layout: { "line-join": "round", visibility: "visible" }, paint: { "line-color": "#ffdaa6", "line-width": { base: 1.2, stops: [[6.5, 0], [7, 0.5], [20, 18]] }, "line-opacity": 0.5 } }, { id: "tunnel-railway", type: "line", metadata: { "mapbox:group": "1444849354174.1904" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "tunnel"], ["==", "class", "rail"]], paint: { "line-color": "#bbb", "line-width": { base: 1.4, stops: [[14, 0.4], [15, 0.75], [20, 2]] }, "line-dasharray": [2, 2] } }, { id: "ferry", type: "line", source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["in", "class", "ferry"]], layout: { "line-join": "round", visibility: "visible" }, paint: { "line-color": "rgba(108, 159, 182, 1)", "line-width": 1.1, "line-dasharray": [2, 2] } }, { id: "aeroway-taxiway-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "aeroway", minzoom: 12, filter: ["all", ["in", "class", "taxiway"]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "rgba(153, 153, 153, 1)", "line-width": { base: 1.5, stops: [[11, 2], [17, 12]] }, "line-opacity": 1 } }, { id: "aeroway-runway-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "aeroway", minzoom: 12, filter: ["all", ["in", "class", "runway"]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "rgba(153, 153, 153, 1)", "line-width": { base: 1.5, stops: [[11, 5], [17, 55]] }, "line-opacity": 1 } }, { id: "aeroway-taxiway", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "aeroway", minzoom: 4, filter: ["all", ["in", "class", "taxiway"], ["==", "$type", "LineString"]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "rgba(255, 255, 255, 1)", "line-width": { base: 1.5, stops: [[11, 1], [17, 10]] }, "line-opacity": { base: 1, stops: [[11, 0], [12, 1]] } } }, { id: "aeroway-runway", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "aeroway", minzoom: 4, filter: ["all", ["in", "class", "runway"], ["==", "$type", "LineString"]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "rgba(255, 255, 255, 1)", "line-width": { base: 1.5, stops: [[11, 4], [17, 50]] }, "line-opacity": { base: 1, stops: [[11, 0], [12, 1]] } } }, { id: "highway-motorway-link-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", minzoom: 12, filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "motorway_link"]], layout: { "line-cap": "round", "line-join": "round" }, paint: { "line-color": "#e9ac77", "line-opacity": 1, "line-width": { base: 1.2, stops: [[12, 1], [13, 3], [14, 4], [20, 15]] } } }, { id: "highway-link-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", minzoom: 13, filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "primary_link", "secondary_link", "tertiary_link", "trunk_link"]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#e9ac77", "line-opacity": 1, "line-width": { base: 1.2, stops: [[12, 1], [13, 3], [14, 4], [20, 15]] } } }, { id: "highway-minor-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["!=", "brunnel", "tunnel"], ["in", "class", "minor", "service", "track"]]], layout: { "line-cap": "round", "line-join": "round" }, paint: { "line-color": "#cfcdca", "line-opacity": { stops: [[12, 0], [12.5, 0]] }, "line-width": { base: 1.2, stops: [[12, 0.5], [13, 1], [14, 4], [20, 15]] } } }, { id: "highway-secondary-tertiary-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "secondary", "tertiary"]], layout: { "line-cap": "butt", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#e9ac77", "line-opacity": 0.5, "line-width": { base: 1.2, stops: [[8, 1.5], [20, 17]] } } }, { id: "highway-primary-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", minzoom: 5, filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "primary"]], layout: { "line-cap": "butt", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#e9ac77", "line-opacity": { stops: [[7, 0], [8, 0.6]] }, "line-width": { base: 1.2, stops: [[7, 0], [8, 0.6], [9, 1.5], [20, 22]] } } }, { id: "highway-trunk-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", minzoom: 5, filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "trunk"]], layout: { "line-cap": "butt", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#e9ac77", "line-opacity": { stops: [[5, 0], [6, 0.5]] }, "line-width": { base: 1.2, stops: [[5, 0], [6, 0.6], [7, 1.5], [20, 22]] } } }, { id: "highway-motorway-casing", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", minzoom: 4, filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "motorway"]], layout: { "line-cap": "butt", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#e9ac77", "line-width": { base: 1.2, stops: [[4, 0], [5, 0.4], [6, 0.6], [7, 1.5], [20, 22]] }, "line-opacity": { stops: [[4, 0], [5, 0.5]] } } }, { id: "highway-path", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "path"]]], paint: { "line-color": "#cba", "line-dasharray": [1.5, 0.75], "line-width": { base: 1.2, stops: [[15, 1.2], [20, 4]] } } }, { id: "highway-motorway-link", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", minzoom: 12, filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "motorway_link"]], layout: { "line-cap": "round", "line-join": "round" }, paint: { "line-color": "#fc8", "line-width": { base: 1.2, stops: [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]] } } }, { id: "highway-link", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", minzoom: 13, filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "primary_link", "secondary_link", "tertiary_link", "trunk_link"]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#fea", "line-width": { base: 1.2, stops: [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]] } } }, { id: "highway-minor", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["!=", "brunnel", "tunnel"], ["in", "class", "minor", "service", "track"]]], layout: { "line-cap": "round", "line-join": "round" }, paint: { "line-color": "#fff", "line-opacity": 0.5, "line-width": { base: 1.2, stops: [[13.5, 0], [14, 2.5], [20, 11.5]] } } }, { id: "highway-secondary-tertiary", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "secondary", "tertiary"]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#fea", "line-width": { base: 1.2, stops: [[6.5, 0], [8, 0.5], [20, 13]] }, "line-opacity": 0.5 } }, { id: "highway-primary", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "primary"]]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#fea", "line-width": { base: 1.2, stops: [[8.5, 0], [9, 0.5], [20, 18]] }, "line-opacity": 0 } }, { id: "highway-trunk", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "trunk"]]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#fea", "line-width": { base: 1.2, stops: [[6.5, 0], [7, 0.5], [20, 18]] }, "line-opacity": 0.5 } }, { id: "highway-motorway", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", minzoom: 5, filter: ["all", ["==", "$type", "LineString"], ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "motorway"]]], layout: { "line-cap": "round", "line-join": "round", visibility: "visible" }, paint: { "line-color": "#fc8", "line-width": { base: 1.2, stops: [[6.5, 0], [7, 0.5], [20, 18]] }, "line-opacity": 0.5 } }, { id: "railway-transit", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["==", "class", "transit"], ["!in", "brunnel", "tunnel"]]], layout: { visibility: "visible" }, paint: { "line-color": "hsla(0, 0%, 73%, 0.77)", "line-width": { base: 1.4, stops: [[14, 0.4], [20, 1]] } } }, { id: "railway-transit-hatching", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["==", "class", "transit"], ["!in", "brunnel", "tunnel"]]], layout: { visibility: "visible" }, paint: { "line-color": "hsla(0, 0%, 73%, 0.68)", "line-dasharray": [0.2, 8], "line-width": { base: 1.4, stops: [[14.5, 0], [15, 2], [20, 6]] } } }, { id: "railway-service", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["==", "class", "rail"], ["has", "service"]]], paint: { "line-color": "hsla(0, 0%, 73%, 0.77)", "line-width": { base: 1.4, stops: [[14, 0.4], [20, 1]] } } }, { id: "railway-service-hatching", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["==", "class", "rail"], ["has", "service"]]], layout: { visibility: "visible" }, paint: { "line-color": "hsla(0, 0%, 73%, 0.68)", "line-dasharray": [0.2, 8], "line-width": { base: 1.4, stops: [[14.5, 0], [15, 2], [20, 6]] } } }, { id: "railway", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["!has", "service"], ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "rail"]]], paint: { "line-color": "#bbb", "line-width": { base: 1.4, stops: [[14, 0.4], [15, 0.75], [20, 2]] } } }, { id: "railway-hatching", type: "line", metadata: { "mapbox:group": "1444849345966.4436" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["!has", "service"], ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "rail"]]], paint: { "line-color": "#bbb", "line-dasharray": [0.2, 8], "line-width": { base: 1.4, stops: [[14.5, 0], [15, 3], [20, 8]] } } }, { id: "bridge-motorway-link-casing", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway_link"]], layout: { "line-join": "round" }, paint: { "line-color": "#e9ac77", "line-opacity": 1, "line-width": { base: 1.2, stops: [[12, 1], [13, 3], [14, 4], [20, 15]] } } }, { id: "bridge-link-casing", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["in", "class", "primary_link", "secondary_link", "tertiary_link", "trunk_link"]], layout: { "line-join": "round" }, paint: { "line-color": "#e9ac77", "line-opacity": 1, "line-width": { base: 1.2, stops: [[12, 1], [13, 3], [14, 4], [20, 15]] } } }, { id: "bridge-secondary-tertiary-casing", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["in", "class", "secondary", "tertiary"]], layout: { "line-join": "round" }, paint: { "line-color": "#e9ac77", "line-opacity": 1, "line-width": { base: 1.2, stops: [[8, 1.5], [20, 28]] } } }, { id: "bridge-trunk-primary-casing", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["in", "class", "primary", "trunk"]], layout: { "line-join": "round" }, paint: { "line-color": "hsl(28, 76%, 67%)", "line-width": { base: 1.2, stops: [[5, 0.4], [6, 0.6], [7, 1.5], [20, 26]] } } }, { id: "bridge-motorway-casing", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway"]], layout: { "line-join": "round" }, paint: { "line-color": "#e9ac77", "line-width": { base: 1.2, stops: [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]] }, "line-opacity": 0.5 } }, { id: "bridge-path-casing", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["==", "brunnel", "bridge"], ["==", "class", "path"]]], paint: { "line-color": "#f8f4f0", "line-width": { base: 1.2, stops: [[15, 1.2], [20, 18]] } } }, { id: "bridge-path", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "$type", "LineString"], ["all", ["==", "brunnel", "bridge"], ["==", "class", "path"]]], paint: { "line-color": "#cba", "line-width": { base: 1.2, stops: [[15, 1.2], [20, 4]] }, "line-dasharray": [1.5, 0.75] } }, { id: "bridge-motorway-link", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway_link"]], layout: { "line-join": "round" }, paint: { "line-color": "#fc8", "line-width": { base: 1.2, stops: [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]] } } }, { id: "bridge-link", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["in", "class", "primary_link", "secondary_link", "tertiary_link", "trunk_link"]], layout: { "line-join": "round" }, paint: { "line-color": "#fea", "line-width": { base: 1.2, stops: [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]] } } }, { id: "bridge-secondary-tertiary", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["in", "class", "secondary", "tertiary"]], layout: { "line-join": "round" }, paint: { "line-color": "#fea", "line-width": { base: 1.2, stops: [[6.5, 0], [7, 0.5], [20, 20]] } } }, { id: "bridge-trunk-primary", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["in", "class", "primary", "trunk"]], layout: { "line-join": "round" }, paint: { "line-color": "#fea", "line-width": { base: 1.2, stops: [[6.5, 0], [7, 0.5], [20, 18]] } } }, { id: "bridge-motorway", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway"]], layout: { "line-join": "round" }, paint: { "line-color": "#fc8", "line-width": { base: 1.2, stops: [[6.5, 0], [7, 0.5], [20, 18]] }, "line-opacity": 0.5 } }, { id: "bridge-railway", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["==", "class", "rail"]], paint: { "line-color": "#bbb", "line-width": { base: 1.4, stops: [[14, 0.4], [15, 0.75], [20, 2]] } } }, { id: "bridge-railway-hatching", type: "line", metadata: { "mapbox:group": "1444849334699.1902" }, source: "openmaptiles", "source-layer": "transportation", filter: ["all", ["==", "brunnel", "bridge"], ["==", "class", "rail"]], paint: { "line-color": "#bbb", "line-dasharray": [0.2, 8], "line-width": { base: 1.4, stops: [[14.5, 0], [15, 3], [20, 8]] } } }, { id: "cablecar", type: "line", source: "openmaptiles", "source-layer": "transportation", minzoom: 13, filter: ["==", "class", "cable_car"], layout: { visibility: "visible", "line-cap": "round" }, paint: { "line-color": "hsl(0, 0%, 70%)", "line-width": { base: 1, stops: [[11, 1], [19, 2.5]] } } }, { id: "cablecar-dash", type: "line", source: "openmaptiles", "source-layer": "transportation", minzoom: 13, filter: ["==", "class", "cable_car"], layout: { visibility: "visible", "line-cap": "round" }, paint: { "line-color": "hsl(0, 0%, 70%)", "line-width": { base: 1, stops: [[11, 3], [19, 5.5]] }, "line-dasharray": [2, 3] } }, { id: "boundary-land-level-4", type: "line", source: "openmaptiles", "source-layer": "boundary", filter: ["all", [">=", "admin_level", 4], ["<=", "admin_level", 8], ["!=", "maritime", 1]], layout: { "line-join": "round" }, paint: { "line-color": "#9e9cab", "line-dasharray": [3, 1, 1, 1], "line-width": { base: 1.4, stops: [[4, 0.4], [5, 1], [12, 3]] }, "line-opacity": 0.6 } }, { id: "boundary-land-level-2", type: "line", source: "openmaptiles", "source-layer": "boundary", filter: ["all", ["==", "admin_level", 2], ["!=", "maritime", 1], ["!=", "disputed", 1]], layout: { "line-cap": "round", "line-join": "round" }, paint: { "line-color": "hsl(248, 7%, 66%)", "line-width": { base: 1, stops: [[0, 0.6], [4, 1.4], [5, 2], [12, 2]] } } }, { id: "boundary-land-disputed", type: "line", source: "openmaptiles", "source-layer": "boundary", filter: ["all", ["!=", "maritime", 1], ["==", "disputed", 1]], layout: { "line-cap": "round", "line-join": "round" }, paint: { "line-color": "hsl(248, 7%, 70%)", "line-dasharray": [1, 3], "line-width": { base: 1, stops: [[0, 0.6], [4, 1.4], [5, 2], [12, 8]] } } }, { id: "boundary-water", type: "line", source: "openmaptiles", "source-layer": "boundary", filter: ["all", ["in", "admin_level", 2, 4], ["==", "maritime", 1]], layout: { "line-cap": "round", "line-join": "round" }, paint: { "line-color": "rgba(154, 189, 214, 1)", "line-width": { base: 1, stops: [[0, 0.6], [4, 1], [5, 1], [12, 1]] }, "line-opacity": { stops: [[6, 0], [10, 0]] } } }, { id: "waterway-name", type: "symbol", source: "openmaptiles", "source-layer": "waterway", minzoom: 13, filter: ["all", ["==", "$type", "LineString"], ["has", "name"]], layout: { "text-font": ["Noto Sans Italic"], "text-size": 14, "text-field": "{name:latin} {name:nonlatin}", "text-max-width": 5, "text-rotation-alignment": "map", "symbol-placement": "line", "text-letter-spacing": 0.2, "symbol-spacing": 350 }, paint: { "text-color": "#74aee9", "text-halo-width": 1.5, "text-halo-color": "rgba(255,255,255,0.7)" } }, { id: "water-name-lakeline", type: "symbol", source: "openmaptiles", "source-layer": "water_name", filter: ["==", "$type", "LineString"], layout: { "text-font": ["Noto Sans Italic"], "text-size": 14, "text-field": `{name:latin}
+{name:nonlatin}`, "text-max-width": 5, "text-rotation-alignment": "map", "symbol-placement": "line", "symbol-spacing": 350, "text-letter-spacing": 0.2 }, paint: { "text-color": "#74aee9", "text-halo-width": 1.5, "text-halo-color": "rgba(255,255,255,0.7)" } }, { id: "water-name-ocean", type: "symbol", source: "openmaptiles", "source-layer": "water_name", filter: ["all", ["==", "$type", "Point"], ["==", "class", "ocean"]], layout: { "text-font": ["Noto Sans Italic"], "text-size": 14, "text-field": "{name:latin}", "text-max-width": 5, "text-rotation-alignment": "map", "symbol-placement": "point", "symbol-spacing": 350, "text-letter-spacing": 0.2 }, paint: { "text-color": "#74aee9", "text-halo-width": 1.5, "text-halo-color": "rgba(255,255,255,0.7)" } }, { id: "water-name-other", type: "symbol", source: "openmaptiles", "source-layer": "water_name", filter: ["all", ["==", "$type", "Point"], ["!in", "class", "ocean"]], layout: { "text-font": ["Noto Sans Italic"], "text-size": { stops: [[0, 10], [6, 14]] }, "text-field": `{name:latin}
+{name:nonlatin}`, "text-max-width": 5, "text-rotation-alignment": "map", "symbol-placement": "point", "symbol-spacing": 350, "text-letter-spacing": 0.2, visibility: "visible" }, paint: { "text-color": "#74aee9", "text-halo-width": 1.5, "text-halo-color": "rgba(255,255,255,0.7)" } }, { id: "poi-level-3", type: "symbol", source: "openmaptiles", "source-layer": "poi", minzoom: 16, filter: ["all", ["==", "$type", "Point"], [">=", "rank", 25]], layout: { "text-padding": 2, "text-font": ["Noto Sans Regular"], "text-anchor": "top", "icon-image": "{class}_11", "text-field": `{name:latin}
+{name:nonlatin}`, "text-offset": [0, 0.6], "text-size": 12, "text-max-width": 9 }, paint: { "text-halo-blur": 0.5, "text-color": "#666", "text-halo-width": 1, "text-halo-color": "#ffffff" } }, { id: "poi-level-2", type: "symbol", source: "openmaptiles", "source-layer": "poi", minzoom: 15, filter: ["all", ["==", "$type", "Point"], ["<=", "rank", 24], [">=", "rank", 15]], layout: { "text-padding": 2, "text-font": ["Noto Sans Regular"], "text-anchor": "top", "icon-image": "{class}_11", "text-field": `{name:latin}
+{name:nonlatin}`, "text-offset": [0, 0.6], "text-size": 12, "text-max-width": 9 }, paint: { "text-halo-blur": 0.5, "text-color": "#666", "text-halo-width": 1, "text-halo-color": "#ffffff" } }, { id: "poi-level-1", type: "symbol", source: "openmaptiles", "source-layer": "poi", minzoom: 14, filter: ["all", ["==", "$type", "Point"], ["<=", "rank", 14], ["has", "name"]], layout: { "text-padding": 2, "text-font": ["Noto Sans Regular"], "text-anchor": "top", "icon-image": "{class}_11", "text-field": `{name:latin}
+{name:nonlatin}`, "text-offset": [0, 0.6], "text-size": 11, "text-max-width": 9 }, paint: { "text-halo-blur": 0.5, "text-color": "rgba(191, 228, 172, 1)", "text-halo-width": 1, "text-halo-color": "rgba(30, 29, 29, 1)" } }, { id: "poi-railway", type: "symbol", source: "openmaptiles", "source-layer": "poi", minzoom: 13, filter: ["all", ["==", "$type", "Point"], ["has", "name"], ["==", "class", "railway"], ["==", "subclass", "station"]], layout: { "text-padding": 2, "text-font": ["Noto Sans Regular"], "text-anchor": "top", "icon-image": "{class}_11", "text-field": `{name:latin}
+{name:nonlatin}`, "text-offset": [0, 0.6], "text-size": 12, "text-max-width": 9, "icon-optional": false, "icon-ignore-placement": false, "icon-allow-overlap": false, "text-ignore-placement": false, "text-allow-overlap": false, "text-optional": true }, paint: { "text-halo-blur": 0.5, "text-color": "#666", "text-halo-width": 1, "text-halo-color": "#ffffff" } }, { id: "road_oneway", type: "symbol", source: "openmaptiles", "source-layer": "transportation", minzoom: 15, filter: ["all", ["==", "oneway", 1], ["in", "class", "motorway", "trunk", "primary", "secondary", "tertiary", "minor", "service"]], layout: { "symbol-placement": "line", "icon-image": "oneway", "symbol-spacing": 75, "icon-padding": 2, "icon-rotation-alignment": "map", "icon-rotate": 90, "icon-size": { stops: [[15, 0.5], [19, 1]] } }, paint: { "icon-opacity": 0.5 } }, { id: "road_oneway_opposite", type: "symbol", source: "openmaptiles", "source-layer": "transportation", minzoom: 15, filter: ["all", ["==", "oneway", -1], ["in", "class", "motorway", "trunk", "primary", "secondary", "tertiary", "minor", "service"]], layout: { "symbol-placement": "line", "icon-image": "oneway", "symbol-spacing": 75, "icon-padding": 2, "icon-rotation-alignment": "map", "icon-rotate": -90, "icon-size": { stops: [[15, 0.5], [19, 1]] } }, paint: { "icon-opacity": 0.5 } }, { id: "highway-name-path", type: "symbol", source: "openmaptiles", "source-layer": "transportation_name", minzoom: 15.5, filter: ["==", "class", "path"], layout: { "text-size": { base: 1, stops: [[13, 12], [14, 13]] }, "text-font": ["Noto Sans Regular"], "text-field": "{name:latin} {name:nonlatin}", "symbol-placement": "line", "text-rotation-alignment": "map" }, paint: { "text-halo-color": "#f8f4f0", "text-color": "hsl(30, 23%, 62%)", "text-halo-width": 0.5 } }, { id: "highway-name-minor", type: "symbol", source: "openmaptiles", "source-layer": "transportation_name", minzoom: 15, filter: ["all", ["==", "$type", "LineString"], ["in", "class", "minor", "service", "track"]], layout: { "text-size": { base: 1, stops: [[13, 12], [14, 13]] }, "text-font": ["Noto Sans Regular"], "text-field": "{name:latin} {name:nonlatin}", "symbol-placement": "line", "text-rotation-alignment": "map" }, paint: { "text-halo-blur": 0.5, "text-color": "#765", "text-halo-width": 1 } }, { id: "highway-name-major", type: "symbol", source: "openmaptiles", "source-layer": "transportation_name", minzoom: 12.2, filter: ["in", "class", "primary", "secondary", "tertiary", "trunk"], layout: { "text-size": { base: 1, stops: [[13, 12], [14, 13]] }, "text-font": ["Noto Sans Regular"], "text-field": "{name:latin} {name:nonlatin}", "symbol-placement": "line", "text-rotation-alignment": "map" }, paint: { "text-halo-blur": 0.5, "text-color": "#765", "text-halo-width": 1 } }, { id: "highway-shield", type: "symbol", source: "openmaptiles", "source-layer": "transportation_name", minzoom: 8, filter: ["all", ["<=", "ref_length", 6], ["==", "$type", "LineString"], ["!in", "network", "us-interstate", "us-highway", "us-state"]], layout: { "text-size": 10, "icon-image": "road_{ref_length}", "icon-rotation-alignment": "viewport", "symbol-spacing": 200, "text-font": ["Noto Sans Regular"], "symbol-placement": { base: 1, stops: [[10, "point"], [11, "line"]] }, "text-rotation-alignment": "viewport", "icon-size": 1, "text-field": "{ref}" }, paint: { "text-opacity": 1, "text-color": "rgba(20, 19, 19, 1)", "text-halo-color": "rgba(230, 221, 221, 0)", "text-halo-width": 2, "icon-color": "rgba(183, 18, 18, 1)", "icon-opacity": 0.3, "icon-halo-color": "rgba(183, 55, 55, 0)" } }, { id: "highway-shield-us-interstate", type: "symbol", source: "openmaptiles", "source-layer": "transportation_name", minzoom: 7, filter: ["all", ["<=", "ref_length", 6], ["==", "$type", "LineString"], ["in", "network", "us-interstate"]], layout: { "text-size": 10, "icon-image": "{network}_{ref_length}", "icon-rotation-alignment": "viewport", "symbol-spacing": 200, "text-font": ["Noto Sans Regular"], "symbol-placement": { base: 1, stops: [[7, "point"], [7, "line"], [8, "line"]] }, "text-rotation-alignment": "viewport", "icon-size": 1, "text-field": "{ref}" }, paint: { "text-color": "rgba(0, 0, 0, 1)" } }, { id: "highway-shield-us-other", type: "symbol", source: "openmaptiles", "source-layer": "transportation_name", minzoom: 9, filter: ["all", ["<=", "ref_length", 6], ["==", "$type", "LineString"], ["in", "network", "us-highway", "us-state"]], layout: { "text-size": 10, "icon-image": "{network}_{ref_length}", "icon-rotation-alignment": "viewport", "symbol-spacing": 200, "text-font": ["Noto Sans Regular"], "symbol-placement": { base: 1, stops: [[10, "point"], [11, "line"]] }, "text-rotation-alignment": "viewport", "icon-size": 1, "text-field": "{ref}" }, paint: { "text-color": "rgba(0, 0, 0, 1)" } }, { id: "place-other", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", minzoom: 12, filter: ["!in", "class", "city", "town", "village", "country", "continent"], layout: { "text-letter-spacing": 0.1, "text-size": { base: 1.2, stops: [[12, 10], [15, 14]] }, "text-font": ["Noto Sans Bold"], "text-field": `{name:latin}
+{name:nonlatin}`, "text-transform": "uppercase", "text-max-width": 9, visibility: "visible" }, paint: { "text-color": "rgba(255,255,255,1)", "text-halo-width": 1.2, "text-halo-color": "rgba(57, 28, 28, 1)" } }, { id: "place-village", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", minzoom: 10, filter: ["==", "class", "village"], layout: { "text-font": ["Noto Sans Regular"], "text-size": { base: 1.2, stops: [[10, 12], [15, 16]] }, "text-field": `{name:latin}
+{name:nonlatin}`, "text-max-width": 8, visibility: "visible" }, paint: { "text-color": "rgba(255, 255, 255, 1)", "text-halo-width": 1.2, "text-halo-color": "rgba(10, 9, 9, 0.8)" } }, { id: "place-town", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", filter: ["==", "class", "town"], layout: { "text-font": ["Noto Sans Regular"], "text-size": { base: 1.2, stops: [[10, 14], [15, 24]] }, "text-field": `{name:latin}
+{name:nonlatin}`, "text-max-width": 8, visibility: "visible" }, paint: { "text-color": "rgba(255, 255, 255, 1)", "text-halo-width": 1.2, "text-halo-color": "rgba(22, 22, 22, 0.8)" } }, { id: "place-city", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", filter: ["all", ["!=", "capital", 2], ["==", "class", "city"]], layout: { "text-font": ["Noto Sans Regular"], "text-size": { base: 1.2, stops: [[7, 14], [11, 24]] }, "text-field": `{name:latin}
+{name:nonlatin}`, "text-max-width": 8, visibility: "visible" }, paint: { "text-color": "rgba(0, 0, 0, 1)", "text-halo-width": 1.2, "text-halo-color": "rgba(255,255,255,0.8)" } }, { id: "place-city-capital", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", filter: ["all", ["==", "capital", 2], ["==", "class", "city"]], layout: { "text-font": ["Noto Sans Regular"], "text-size": { base: 1.2, stops: [[7, 14], [11, 24]] }, "text-field": `{name:latin}
+{name:nonlatin}`, "text-max-width": 8, "icon-image": "star_11", "text-offset": [0.4, 0], "icon-size": 0.8, "text-anchor": "left", visibility: "visible" }, paint: { "text-color": "#333", "text-halo-width": 1.2, "text-halo-color": "rgba(255,255,255,0.8)" } }, { id: "place-country-other", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", filter: ["all", ["==", "class", "country"], [">=", "rank", 3], ["!has", "iso_a2"]], layout: { "text-font": ["Noto Sans Italic"], "text-field": "{name:latin}", "text-size": { stops: [[3, 11], [7, 17]] }, "text-transform": "uppercase", "text-max-width": 6.25, visibility: "visible" }, paint: { "text-halo-blur": 1, "text-color": "#334", "text-halo-width": 2, "text-halo-color": "rgba(255,255,255,0.8)" } }, { id: "place-country-3", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", filter: ["all", ["==", "class", "country"], [">=", "rank", 3], ["has", "iso_a2"]], layout: { "text-font": ["Noto Sans Bold"], "text-field": "{name:latin}", "text-size": { stops: [[3, 11], [7, 17]] }, "text-transform": "uppercase", "text-max-width": 6.25, visibility: "visible" }, paint: { "text-halo-blur": 1, "text-color": "#334", "text-halo-width": 2, "text-halo-color": "rgba(255,255,255,0.8)" } }, { id: "place-country-2", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", filter: ["all", ["==", "class", "country"], ["==", "rank", 2], ["has", "iso_a2"]], layout: { "text-font": ["Noto Sans Bold"], "text-field": "{name:latin}", "text-size": { stops: [[2, 11], [5, 17]] }, "text-transform": "uppercase", "text-max-width": 6.25, visibility: "visible" }, paint: { "text-halo-blur": 1, "text-color": "#334", "text-halo-width": 2, "text-halo-color": "rgba(255,255,255,0.8)" } }, { id: "place-country-1", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", filter: ["all", ["==", "class", "country"], ["==", "rank", 1], ["has", "iso_a2"]], layout: { "text-font": ["Noto Sans Bold"], "text-field": "{name:latin}", "text-size": { stops: [[1, 11], [4, 17]] }, "text-transform": "uppercase", "text-max-width": 6.25, visibility: "visible" }, paint: { "text-halo-blur": 1, "text-color": "#334", "text-halo-width": 2, "text-halo-color": "rgba(255,255,255,0.8)" } }, { id: "place-continent", type: "symbol", metadata: { "mapbox:group": "1444849242106.713" }, source: "openmaptiles", "source-layer": "place", maxzoom: 1, filter: ["==", "class", "continent"], layout: { "text-font": ["Noto Sans Bold"], "text-field": "{name:latin}", "text-size": 14, "text-max-width": 6.25, "text-transform": "uppercase", visibility: "visible" }, paint: { "text-halo-blur": 1, "text-color": "#334", "text-halo-width": 2, "text-halo-color": "rgba(255,255,255,0.8)" } }], id: "qebnlkra6" };
+ });
+ var EHe = ye((rbr, MHe) => {
+ MHe.exports = { version: 8, name: "orto", metadata: {}, center: [1.537786, 41.837539], zoom: 12, bearing: 0, pitch: 0, light: { anchor: "viewport", color: "white", intensity: 0.4, position: [1.15, 45, 30] }, sources: { ortoEsri: { type: "raster", tiles: ["https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"], tileSize: 256, maxzoom: 18, attribution: "ESRI © ESRI " }, ortoInstaMaps: { type: "raster", tiles: ["https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png"], tileSize: 256, maxzoom: 13 }, ortoICGC: { type: "raster", tiles: ["https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg"], tileSize: 256, minzoom: 13.1, maxzoom: 20 }, openmaptiles: { type: "vector", url: "https://geoserveis.icgc.cat/contextmaps/basemap.json" } }, sprite: "https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1", glyphs: "https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf", layers: [{ id: "background", type: "background", paint: { "background-color": "#F4F9F4" } }, { id: "ortoEsri", type: "raster", source: "ortoEsri", maxzoom: 16, layout: { visibility: "visible" } }, { id: "ortoICGC", type: "raster", source: "ortoICGC", minzoom: 13.1, maxzoom: 19, layout: { visibility: "visible" } }, { id: "ortoInstaMaps", type: "raster", source: "ortoInstaMaps", maxzoom: 13, layout: { visibility: "visible" } }] };
+ });
+ var Px = ye((ibr, IHe) => {
+ var VWt = t_(), GWt = SHe(), HWt = EHe(), jWt = '© OpenStreetMap contributors', kHe = "https://basemaps.cartocdn.com/gl/positron-gl-style/style.json", CHe = "https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json", s7 = "https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json", WWt = "https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json", XWt = "https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json", ZWt = "https://basemaps.cartocdn.com/gl/voyager-nolabels-gl-style/style.json", PHe = { basic: s7, streets: s7, outdoors: s7, light: kHe, dark: CHe, satellite: HWt, "satellite-streets": GWt, "open-street-map": { id: "osm", version: 8, sources: { "plotly-osm-tiles": { type: "raster", attribution: jWt, tiles: ["https://tile.openstreetmap.org/{z}/{x}/{y}.png"], tileSize: 256 } }, layers: [{ id: "plotly-osm-tiles", type: "raster", source: "plotly-osm-tiles", minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" }, "white-bg": { id: "white-bg", version: 8, sources: {}, layers: [{ id: "white-bg", type: "background", paint: { "background-color": "#FFFFFF" }, minzoom: 0, maxzoom: 22 }], glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf" }, "carto-positron": kHe, "carto-darkmatter": CHe, "carto-voyager": s7, "carto-positron-nolabels": WWt, "carto-darkmatter-nolabels": XWt, "carto-voyager-nolabels": ZWt }, LHe = VWt(PHe);
+ IHe.exports = { styleValueDflt: "basic", stylesMap: PHe, styleValuesMap: LHe, traceLayerPrefix: "plotly-trace-layer-", layoutLayerPrefix: "plotly-layout-layer-", missingStyleErrorMsg: ["No valid maplibre style found, please set `map.style` to one of:", LHe.join(", "), "or use a tile service."].join(`
+`), mapOnErrorMsg: "Map error." };
+ });
+ var Qk = ye((nbr, OHe) => {
+ var RHe = Dr(), DHe = ka().defaultLine, YWt = Cc().attributes, KWt = ec(), JWt = pf().textposition, $Wt = mc().overrideAll, QWt = vl().templatedArray, FHe = Px(), zHe = KWt({ noFontVariant: true, noFontShadow: true, noFontLineposition: true, noFontTextcase: true });
+ zHe.family.dflt = "Open Sans Regular, Arial Unicode MS Regular";
+ var eXt = OHe.exports = $Wt({ _arrayAttrRegexps: [RHe.counterRegex("map", ".layers", true)], domain: YWt({ name: "map" }), style: { valType: "any", values: FHe.styleValuesMap, dflt: FHe.styleValueDflt }, center: { lon: { valType: "number", dflt: 0 }, lat: { valType: "number", dflt: 0 } }, zoom: { valType: "number", dflt: 1 }, bearing: { valType: "number", dflt: 0 }, pitch: { valType: "number", dflt: 0 }, bounds: { west: { valType: "number" }, east: { valType: "number" }, south: { valType: "number" }, north: { valType: "number" } }, layers: QWt("layer", { visible: { valType: "boolean", dflt: true }, sourcetype: { valType: "enumerated", values: ["geojson", "vector", "raster", "image"], dflt: "geojson" }, source: { valType: "any" }, sourcelayer: { valType: "string", dflt: "" }, sourceattribution: { valType: "string" }, type: { valType: "enumerated", values: ["circle", "line", "fill", "symbol", "raster"], dflt: "circle" }, coordinates: { valType: "any" }, below: { valType: "string" }, color: { valType: "color", dflt: DHe }, opacity: { valType: "number", min: 0, max: 1, dflt: 1 }, minzoom: { valType: "number", min: 0, max: 24, dflt: 0 }, maxzoom: { valType: "number", min: 0, max: 24, dflt: 24 }, circle: { radius: { valType: "number", dflt: 15 } }, line: { width: { valType: "number", dflt: 2 }, dash: { valType: "data_array" } }, fill: { outlinecolor: { valType: "color", dflt: DHe } }, symbol: { icon: { valType: "string", dflt: "marker" }, iconsize: { valType: "number", dflt: 10 }, text: { valType: "string", dflt: "" }, placement: { valType: "enumerated", values: ["point", "line", "line-center"], dflt: "point" }, textfont: zHe, textposition: RHe.extendFlat({}, JWt, { arrayOk: false }) } }) }, "plot", "from-root");
+ eXt.uirevision = { valType: "any", editType: "none" };
+ });
+ var l7 = ye((abr, UHe) => {
+ var { hovertemplateAttrs: tXt, texttemplateAttrs: rXt, templatefallbackAttrs: qHe } = Ll(), iXt = Pg(), eC = ew(), P5 = pf(), BHe = Qk(), nXt = Gl(), aXt = Tu(), dw = Ao().extendFlat, oXt = mc().overrideAll, sXt = Qk(), NHe = eC.line, I5 = eC.marker;
+ UHe.exports = oXt({ lon: eC.lon, lat: eC.lat, cluster: { enabled: { valType: "boolean" }, maxzoom: dw({}, sXt.layers.maxzoom, {}), step: { valType: "number", arrayOk: true, dflt: -1, min: -1 }, size: { valType: "number", arrayOk: true, dflt: 20, min: 0 }, color: { valType: "color", arrayOk: true }, opacity: dw({}, I5.opacity, { dflt: 1 }) }, mode: dw({}, P5.mode, { dflt: "markers" }), text: dw({}, P5.text, {}), texttemplate: rXt({ editType: "plot" }, { keys: ["lat", "lon", "text"] }), texttemplatefallback: qHe({ editType: "plot" }), hovertext: dw({}, P5.hovertext, {}), line: { color: NHe.color, width: NHe.width }, connectgaps: P5.connectgaps, marker: dw({ symbol: { valType: "string", dflt: "circle", arrayOk: true }, angle: { valType: "number", dflt: "auto", arrayOk: true }, allowoverlap: { valType: "boolean", dflt: false }, opacity: I5.opacity, size: I5.size, sizeref: I5.sizeref, sizemin: I5.sizemin, sizemode: I5.sizemode }, aXt("marker")), fill: eC.fill, fillcolor: iXt(), textfont: BHe.layers.symbol.textfont, textposition: BHe.layers.symbol.textposition, below: { valType: "string" }, selected: { marker: P5.selected.marker }, unselected: { marker: P5.unselected.marker }, hoverinfo: dw({}, nXt.hoverinfo, { flags: ["lon", "lat", "text", "name"] }), hovertemplate: tXt(), hovertemplatefallback: qHe() }, "calc", "nested");
+ });
+ var CJ = ye((obr, VHe) => {
+ var lXt = ["Metropolis Black Italic", "Metropolis Black", "Metropolis Bold Italic", "Metropolis Bold", "Metropolis Extra Bold Italic", "Metropolis Extra Bold", "Metropolis Extra Light Italic", "Metropolis Extra Light", "Metropolis Light Italic", "Metropolis Light", "Metropolis Medium Italic", "Metropolis Medium", "Metropolis Regular Italic", "Metropolis Regular", "Metropolis Semi Bold Italic", "Metropolis Semi Bold", "Metropolis Thin Italic", "Metropolis Thin", "Open Sans Bold Italic", "Open Sans Bold", "Open Sans Extrabold Italic", "Open Sans Extrabold", "Open Sans Italic", "Open Sans Light Italic", "Open Sans Light", "Open Sans Regular", "Open Sans Semibold Italic", "Open Sans Semibold", "Klokantech Noto Sans Bold", "Klokantech Noto Sans CJK Bold", "Klokantech Noto Sans CJK Regular", "Klokantech Noto Sans Italic", "Klokantech Noto Sans Regular"];
+ VHe.exports = { isSupportedFont: function(e) {
+ return lXt.indexOf(e) !== -1;
+ } };
+ });
+ var jHe = ye((sbr, HHe) => {
+ var tC = Dr(), LJ = Ru(), uXt = $p(), cXt = D0(), fXt = F0(), hXt = Fg(), GHe = l7(), dXt = CJ().isSupportedFont;
+ HHe.exports = function(t, r, n, i) {
+ function a(p, k) {
+ return tC.coerce(t, r, GHe, p, k);
+ }
+ function o(p, k) {
+ return tC.coerce2(t, r, GHe, p, k);
+ }
+ var s = vXt(t, r, a);
+ if (!s) {
+ r.visible = false;
+ return;
+ }
+ if (a("text"), a("texttemplate"), a("texttemplatefallback"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("mode"), a("below"), LJ.hasMarkers(r)) {
+ uXt(t, r, n, i, a, { noLine: true, noAngle: true }), a("marker.allowoverlap"), a("marker.angle");
+ var l = r.marker;
+ l.symbol !== "circle" && (tC.isArrayOrTypedArray(l.size) && (l.size = l.size[0]), tC.isArrayOrTypedArray(l.color) && (l.color = l.color[0]));
+ }
+ LJ.hasLines(r) && (cXt(t, r, n, i, a, { noDash: true }), a("connectgaps"));
+ var u = o("cluster.maxzoom"), c = o("cluster.step"), f = o("cluster.color", r.marker && r.marker.color || n), h = o("cluster.size"), d = o("cluster.opacity"), v = u !== false || c !== false || f !== false || h !== false || d !== false, _ = a("cluster.enabled", v);
+ if (_ || LJ.hasText(r)) {
+ var b = i.font.family;
+ fXt(t, r, i, a, { noSelect: true, noFontVariant: true, noFontShadow: true, noFontLineposition: true, noFontTextcase: true, font: { family: dXt(b) ? b : "Open Sans Regular", weight: i.font.weight, style: i.font.style, size: i.font.size, color: i.font.color } });
+ }
+ a("fill"), r.fill !== "none" && hXt(t, r, n, a), tC.coerceSelectionMarkerOpacity(r, a);
+ };
+ function vXt(e, t, r) {
+ var n = r("lon") || [], i = r("lat") || [], a = Math.min(n.length, i.length);
+ return t._length = a, a;
+ }
+ });
+ var PJ = ye((lbr, XHe) => {
+ var WHe = ho();
+ XHe.exports = function(t, r, n) {
+ var i = {}, a = n[r.subplot]._subplot, o = a.mockAxis, s = t.lonlat;
+ return i.lonLabel = WHe.tickText(o, o.c2l(s[0]), true).text, i.latLabel = WHe.tickText(o, o.c2l(s[1]), true).text, i;
+ };
+ });
+ var IJ = ye((ubr, YHe) => {
+ var ZHe = Dr();
+ YHe.exports = function(t, r) {
+ var n = t.split(" "), i = n[0], a = n[1], o = ZHe.isArrayOrTypedArray(r) ? ZHe.mean(r) : r, s = 0.5 + o / 100, l = 1.5 + o / 100, u = ["", ""], c = [0, 0];
+ switch (i) {
+ case "top":
+ u[0] = "top", c[1] = -l;
+ break;
+ case "bottom":
+ u[0] = "bottom", c[1] = l;
+ break;
+ }
+ switch (a) {
+ case "left":
+ u[1] = "right", c[0] = -s;
+ break;
+ case "right":
+ u[1] = "left", c[0] = s;
+ break;
+ }
+ var f;
+ return u[0] && u[1] ? f = u.join("-") : u[0] ? f = u[0] : u[1] ? f = u[1] : f = "center", { anchor: f, offset: c };
+ };
+ });
+ var tje = ye((cbr, eje) => {
+ var $He = Eo(), ov = Dr(), pXt = fs().BADNUM, c7 = cx(), KHe = tc(), gXt = So(), mXt = O3(), f7 = Ru(), yXt = CJ().isSupportedFont, _Xt = IJ(), xXt = ip().appendArrayPointValue, bXt = Zl().NEWLINES, wXt = Zl().BR_TAG_ALL;
+ eje.exports = function(t, r) {
+ var n = r[0].trace, i = n.visible === true && n._length !== 0, a = n.fill !== "none", o = f7.hasLines(n), s = f7.hasMarkers(n), l = f7.hasText(n), u = s && n.marker.symbol === "circle", c = s && n.marker.symbol !== "circle", f = n.cluster && n.cluster.enabled, h = u7("fill"), d = u7("line"), v = u7("circle"), _ = u7("symbol"), b = { fill: h, line: d, circle: v, symbol: _ };
+ if (!i) return b;
+ var p;
+ if ((a || o) && (p = c7.calcTraceToLineCoords(r)), a && (h.geojson = c7.makePolygon(p), h.layout.visibility = "visible", ov.extendFlat(h.paint, { "fill-color": n.fillcolor })), o && (d.geojson = c7.makeLine(p), d.layout.visibility = "visible", ov.extendFlat(d.paint, { "line-width": n.line.width, "line-color": n.line.color, "line-opacity": n.opacity })), u) {
+ var k = TXt(r);
+ v.geojson = k.geojson, v.layout.visibility = "visible", f && (v.filter = ["!", ["has", "point_count"]], b.cluster = { type: "circle", filter: ["has", "point_count"], layout: { visibility: "visible" }, paint: { "circle-color": DJ(n.cluster.color, n.cluster.step), "circle-radius": DJ(n.cluster.size, n.cluster.step), "circle-opacity": DJ(n.cluster.opacity, n.cluster.step) } }, b.clusterCount = { type: "symbol", filter: ["has", "point_count"], paint: {}, layout: { "text-field": "{point_count_abbreviated}", "text-font": JHe(n), "text-size": 12 } }), ov.extendFlat(v.paint, { "circle-color": k.mcc, "circle-radius": k.mrc, "circle-opacity": k.mo });
+ }
+ if (u && f && (v.filter = ["!", ["has", "point_count"]]), (c || l) && (_.geojson = AXt(r, t), ov.extendFlat(_.layout, { visibility: "visible", "icon-image": "{symbol}-15", "text-field": "{text}" }), c && (ov.extendFlat(_.layout, { "icon-size": n.marker.size / 10 }), "angle" in n.marker && n.marker.angle !== "auto" && ov.extendFlat(_.layout, { "icon-rotate": { type: "identity", property: "angle" }, "icon-rotation-alignment": "map" }), _.layout["icon-allow-overlap"] = n.marker.allowoverlap, ov.extendFlat(_.paint, { "icon-opacity": n.opacity * n.marker.opacity, "icon-color": n.marker.color })), l)) {
+ var E = (n.marker || {}).size, T = _Xt(n.textposition, E);
+ ov.extendFlat(_.layout, { "text-size": n.textfont.size, "text-anchor": T.anchor, "text-offset": T.offset, "text-font": JHe(n) }), ov.extendFlat(_.paint, { "text-color": n.textfont.color, "text-opacity": n.opacity });
+ }
+ return b;
+ };
+ function u7(e) {
+ return { type: e, geojson: c7.makeBlank(), layout: { visibility: "none" }, filter: null, paint: {} };
+ }
+ function TXt(e) {
+ var t = e[0].trace, r = t.marker, n = t.selectedpoints, i = ov.isArrayOrTypedArray(r.color), a = ov.isArrayOrTypedArray(r.size), o = ov.isArrayOrTypedArray(r.opacity), s;
+ function l(E) {
+ return t.opacity * E;
+ }
+ function u(E) {
+ return E / 2;
+ }
+ var c;
+ i && (KHe.hasColorscale(t, "marker") ? c = KHe.makeColorScaleFuncFromTrace(r) : c = ov.identity);
+ var f;
+ a && (f = mXt(t));
+ var h;
+ o && (h = function(E) {
+ var T = $He(E) ? +ov.constrain(E, 0, 1) : 0;
+ return l(T);
+ });
+ var d = [];
+ for (s = 0; s < e.length; s++) {
+ var v = e[s], _ = v.lonlat;
+ if (!QHe(_)) {
+ var b = {};
+ c && (b.mcc = v.mcc = c(v.mc)), f && (b.mrc = v.mrc = f(v.ms)), h && (b.mo = h(v.mo)), n && (b.selected = v.selected || 0), d.push({ type: "Feature", id: s + 1, geometry: { type: "Point", coordinates: _ }, properties: b });
+ }
+ }
+ var p;
+ if (n) for (p = gXt.makeSelectedPointStyleFns(t), s = 0; s < d.length; s++) {
+ var k = d[s].properties;
+ p.selectedOpacityFn && (k.mo = l(p.selectedOpacityFn(k))), p.selectedColorFn && (k.mcc = p.selectedColorFn(k)), p.selectedSizeFn && (k.mrc = p.selectedSizeFn(k));
+ }
+ return { geojson: { type: "FeatureCollection", features: d }, mcc: i || p && p.selectedColorFn ? { type: "identity", property: "mcc" } : r.color, mrc: a || p && p.selectedSizeFn ? { type: "identity", property: "mrc" } : u(r.size), mo: o || p && p.selectedOpacityFn ? { type: "identity", property: "mo" } : l(r.opacity) };
+ }
+ function AXt(e, t) {
+ for (var r = t._fullLayout, n = e[0].trace, i = n.marker || {}, a = i.symbol, o = i.angle, s = a !== "circle" ? RJ(a) : h7, l = o !== "auto" ? RJ(o, true) : h7, u = f7.hasText(n) ? RJ(n.text) : h7, c = [], f = 0; f < e.length; f++) {
+ var h = e[f];
+ if (!QHe(h.lonlat)) {
+ var d = n.texttemplate, v;
+ if (d) {
+ var _ = Array.isArray(d) ? d[f] || "" : d, b = n._module.formatLabels(h, n, r), p = {};
+ xXt(p, n, h.i), v = ov.texttemplateString({ data: [p, h, n._meta], fallback: n.texttemplatefallback, labels: b, locale: r._d3locale, template: _ });
+ } else v = u(f);
+ v && (v = v.replace(bXt, "").replace(wXt, `
+`)), c.push({ type: "Feature", geometry: { type: "Point", coordinates: h.lonlat }, properties: { symbol: s(f), angle: l(f), text: v } });
+ }
+ }
+ return { type: "FeatureCollection", features: c };
+ }
+ function RJ(e, t) {
+ return ov.isArrayOrTypedArray(e) ? t ? function(r) {
+ return $He(e[r]) ? +e[r] : 0;
+ } : function(r) {
+ return e[r];
+ } : e ? function() {
+ return e;
+ } : h7;
+ }
+ function h7() {
+ return "";
+ }
+ function QHe(e) {
+ return e[0] === pXt;
+ }
+ function DJ(e, t) {
+ var r;
+ if (ov.isArrayOrTypedArray(e) && ov.isArrayOrTypedArray(t)) {
+ r = ["step", ["get", "point_count"], e[0]];
+ for (var n = 1; n < e.length; n++) r.push(t[n - 1], e[n]);
+ } else r = e;
+ return r;
+ }
+ function JHe(e) {
+ var t = e.textfont, r = t.family, n = t.style, i = t.weight, a = r.split(" "), o = a[a.length - 1] === "Italic";
+ o && a.pop(), o = o || n === "italic";
+ var s = a.join(" ");
+ i === "bold" && a.indexOf("Bold") === -1 ? s += " Bold" : i <= 1e3 && (a[0] === "Metropolis" ? (s = "Metropolis", i > 850 ? s += " Black" : i > 750 ? s += " Extra Bold" : i > 650 ? s += " Bold" : i > 550 ? s += " Semi Bold" : i > 450 ? s += " Medium" : i > 350 ? s += " Regular" : i > 250 ? s += " Light" : i > 150 ? s += " Extra Light" : s += " Thin") : a.slice(0, 2).join(" ") === "Open Sans" ? (s = "Open Sans", i > 750 ? s += " Extrabold" : i > 650 ? s += " Bold" : i > 550 ? s += " Semibold" : i > 350 ? s += " Regular" : s += " Light") : a.slice(0, 3).join(" ") === "Klokantech Noto Sans" && (s = "Klokantech Noto Sans", a[3] === "CJK" && (s += " CJK"), s += i > 500 ? " Bold" : " Regular")), o && (s += " Italic"), s === "Open Sans Regular Italic" ? s = "Open Sans Italic" : s === "Open Sans Regular Bold" ? s = "Open Sans Bold" : s === "Open Sans Regular Bold Italic" ? s = "Open Sans Bold Italic" : s === "Klokantech Noto Sans Regular Italic" && (s = "Klokantech Noto Sans Italic"), yXt(s) || (s = r);
+ var l = s.split(", ");
+ return l;
+ }
+ });
+ var aje = ye((fbr, nje) => {
+ var SXt = Dr(), rje = tje(), R5 = Px().traceLayerPrefix, og = { cluster: ["cluster", "clusterCount", "circle"], nonCluster: ["fill", "line", "circle", "symbol"] };
+ function ije(e, t, r, n) {
+ this.type = "scattermap", this.subplot = e, this.uid = t, this.clusterEnabled = r, this.isHidden = n, this.sourceIds = { fill: "source-" + t + "-fill", line: "source-" + t + "-line", circle: "source-" + t + "-circle", symbol: "source-" + t + "-symbol", cluster: "source-" + t + "-circle", clusterCount: "source-" + t + "-circle" }, this.layerIds = { fill: R5 + t + "-fill", line: R5 + t + "-line", circle: R5 + t + "-circle", symbol: R5 + t + "-symbol", cluster: R5 + t + "-cluster", clusterCount: R5 + t + "-cluster-count" }, this.below = null;
+ }
+ var rC = ije.prototype;
+ rC.addSource = function(e, t, r) {
+ var n = { type: "geojson", data: t.geojson };
+ r && r.enabled && SXt.extendFlat(n, { cluster: true, clusterMaxZoom: r.maxzoom });
+ var i = this.subplot.map.getSource(this.sourceIds[e]);
+ i ? i.setData(t.geojson) : this.subplot.map.addSource(this.sourceIds[e], n);
+ };
+ rC.setSourceData = function(e, t) {
+ this.subplot.map.getSource(this.sourceIds[e]).setData(t.geojson);
+ };
+ rC.addLayer = function(e, t, r) {
+ var n = { type: t.type, id: this.layerIds[e], source: this.sourceIds[e], layout: t.layout, paint: t.paint };
+ t.filter && (n.filter = t.filter);
+ for (var i = this.layerIds[e], a, o = this.subplot.getMapLayers(), s = 0; s < o.length; s++) if (o[s].id === i) {
+ a = true;
+ break;
+ }
+ a ? (this.subplot.setOptions(i, "setLayoutProperty", n.layout), n.layout.visibility === "visible" && this.subplot.setOptions(i, "setPaintProperty", n.paint)) : this.subplot.addLayer(n, r);
+ };
+ rC.update = function(t) {
+ var r = t[0].trace, n = this.subplot, i = n.map, a = rje(n.gd, t), o = n.belowLookup["trace-" + this.uid], s = !!(r.cluster && r.cluster.enabled), l = !!this.clusterEnabled, u = this;
+ function c(E) {
+ E || u.addSource("circle", a.circle, r.cluster);
+ for (var T = og.cluster, L = 0; L < T.length; L++) {
+ var x = T[L], C = a[x];
+ u.addLayer(x, C, o);
+ }
+ }
+ function f(E) {
+ for (var T = og.cluster, L = T.length - 1; L >= 0; L--) {
+ var x = T[L];
+ i.removeLayer(u.layerIds[x]);
+ }
+ E || i.removeSource(u.sourceIds.circle);
+ }
+ function h(E) {
+ for (var T = og.nonCluster, L = 0; L < T.length; L++) {
+ var x = T[L], C = a[x];
+ E || u.addSource(x, C), u.addLayer(x, C, o);
+ }
+ }
+ function d(E) {
+ for (var T = og.nonCluster, L = T.length - 1; L >= 0; L--) {
+ var x = T[L];
+ i.removeLayer(u.layerIds[x]), E || i.removeSource(u.sourceIds[x]);
+ }
+ }
+ function v(E) {
+ l ? f(E) : d(E);
+ }
+ function _(E) {
+ s ? c(E) : h(E);
+ }
+ function b() {
+ for (var E = s ? og.cluster : og.nonCluster, T = 0; T < E.length; T++) {
+ var L = E[T], x = a[L];
+ x && (n.setOptions(u.layerIds[L], "setLayoutProperty", x.layout), x.layout.visibility === "visible" && (L !== "cluster" && u.setSourceData(L, x), n.setOptions(u.layerIds[L], "setPaintProperty", x.paint)));
+ }
+ }
+ var p = this.isHidden, k = r.visible !== true;
+ k ? p || v() : p ? k || _() : l !== s ? (v(), _()) : (this.below !== o && (v(true), _(true)), b()), this.clusterEnabled = s, this.isHidden = k, this.below = o, t[0].trace._glTrace = this;
+ };
+ rC.dispose = function() {
+ for (var t = this.subplot.map, r = this.clusterEnabled ? og.cluster : og.nonCluster, n = r.length - 1; n >= 0; n--) {
+ var i = r[n];
+ t.removeLayer(this.layerIds[i]), t.removeSource(this.sourceIds[i]);
+ }
+ };
+ nje.exports = function(t, r) {
+ var n = r[0].trace, i = n.cluster && n.cluster.enabled, a = n.visible !== true, o = new ije(t, n.uid, i, a), s = rje(t.gd, r), l = o.below = t.belowLookup["trace-" + n.uid], u, c, f;
+ if (i) for (o.addSource("circle", s.circle, n.cluster), u = 0; u < og.cluster.length; u++) c = og.cluster[u], f = s[c], o.addLayer(c, f, l);
+ else for (u = 0; u < og.nonCluster.length; u++) c = og.nonCluster[u], f = s[c], o.addSource(c, f, n.cluster), o.addLayer(c, f, l);
+ return r[0].trace._glTrace = o, o;
+ };
+ });
+ var d7 = ye((hbr, sje) => {
+ var MXt = vf(), FJ = Dr(), EXt = gT(), kXt = FJ.fillText, CXt = fs().BADNUM, LXt = Px().traceLayerPrefix;
+ function PXt(e, t, r) {
+ var n = e.cd, i = n[0].trace, a = e.xa, o = e.ya, s = e.subplot, l = [], u = LXt + i.uid + "-circle", c = i.cluster && i.cluster.enabled;
+ if (c) {
+ var f = s.map.queryRenderedFeatures(null, { layers: [u] });
+ l = f.map(function(M) {
+ return M.id;
+ });
+ }
+ var h = t >= 0 ? Math.floor((t + 180) / 360) : Math.ceil((t - 180) / 360), d = h * 360, v = t - d;
+ function _(M) {
+ var g = M.lonlat;
+ if (g[0] === CXt || c && l.indexOf(M.i + 1) === -1) return 1 / 0;
+ var P = FJ.modHalf(g[0], 360), A = g[1], z = s.project([P, A]), O = z.x - a.c2p([v, A]), U = z.y - o.c2p([P, r]), G = Math.max(3, M.mrc || 0);
+ return Math.max(Math.sqrt(O * O + U * U) - G, 1 - 3 / G);
+ }
+ if (MXt.getClosest(n, _, e), e.index !== false) {
+ var b = n[e.index], p = b.lonlat, k = [FJ.modHalf(p[0], 360) + d, p[1]], E = a.c2p(k), T = o.c2p(k), L = b.mrc || 1;
+ e.x0 = E - L, e.x1 = E + L, e.y0 = T - L, e.y1 = T + L;
+ var x = {};
+ x[i.subplot] = { _subplot: s };
+ var C = i._module.formatLabels(b, i, x);
+ return e.lonLabel = C.lonLabel, e.latLabel = C.latLabel, e.color = EXt(i, b), e.extraText = oje(i, b, n[0].t.labels), e.hovertemplate = i.hovertemplate, [e];
+ }
+ }
+ function oje(e, t, r) {
+ if (e.hovertemplate) return;
+ var n = t.hi || e.hoverinfo, i = n.split("+"), a = i.indexOf("all") !== -1, o = i.indexOf("lon") !== -1, s = i.indexOf("lat") !== -1, l = t.lonlat, u = [];
+ function c(f) {
+ return f + "°";
+ }
+ return a || o && s ? u.push("(" + c(l[1]) + ", " + c(l[0]) + ")") : o ? u.push(r.lon + c(l[0])) : s && u.push(r.lat + c(l[1])), (a || i.indexOf("text") !== -1) && kXt(t, e, u), u.join(" ");
+ }
+ sje.exports = { hoverPoints: PXt, getExtraText: oje };
+ });
+ var uje = ye((dbr, lje) => {
+ lje.exports = function(t, r) {
+ return t.lon = r.lon, t.lat = r.lat, t;
+ };
+ });
+ var fje = ye((vbr, cje) => {
+ var IXt = Dr(), RXt = Ru(), DXt = fs().BADNUM;
+ cje.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = [], s = n[0].trace, l;
+ if (!RXt.hasMarkers(s)) return [];
+ if (r === false) for (l = 0; l < n.length; l++) n[l].selected = 0;
+ else for (l = 0; l < n.length; l++) {
+ var u = n[l], c = u.lonlat;
+ if (c[0] !== DXt) {
+ var f = [IXt.modHalf(c[0], 360), c[1]], h = [i.c2p(f), a.c2p(f)];
+ r.contains(h, null, l, t) ? (o.push({ pointNumber: l, lon: c[0], lat: c[1] }), u.selected = 1) : u.selected = 0;
+ }
+ }
+ return o;
+ };
+ });
+ var dje = ye((zJ, OJ) => {
+ (function(e, t) {
+ typeof zJ == "object" && typeof OJ != "undefined" ? OJ.exports = t() : (e = typeof globalThis != "undefined" ? globalThis : e || self, e.maplibregl = t());
+ })(zJ, function() {
+ var e = {}, t = {};
+ function r(i, a, o) {
+ if (t[i] = o, i === "index") {
+ var s = "var sharedModule = {}; (" + t.shared + ")(sharedModule); (" + t.worker + ")(sharedModule);", l = {};
+ return t.shared(l), t.index(e, l), typeof window != "undefined" && e.setWorkerUrl(window.URL.createObjectURL(new Blob([s], { type: "text/javascript" }))), e;
+ }
+ }
+ r("shared", ["exports"], function(i) {
+ function a(R, S, F, W) {
+ return new (F || (F = Promise))(function(te, fe) {
+ function pe(ct) {
+ try {
+ Ke(W.next(ct));
+ } catch (Lt) {
+ fe(Lt);
+ }
+ }
+ function Fe(ct) {
+ try {
+ Ke(W.throw(ct));
+ } catch (Lt) {
+ fe(Lt);
+ }
+ }
+ function Ke(ct) {
+ var Lt;
+ ct.done ? te(ct.value) : (Lt = ct.value, Lt instanceof F ? Lt : new F(function(Jt) {
+ Jt(Lt);
+ })).then(pe, Fe);
+ }
+ Ke((W = W.apply(R, S || [])).next());
+ });
+ }
+ function o(R) {
+ return R && R.__esModule && Object.prototype.hasOwnProperty.call(R, "default") ? R.default : R;
+ }
+ typeof SuppressedError == "function" && SuppressedError;
+ var s = l;
+ function l(R, S) {
+ this.x = R, this.y = S;
+ }
+ l.prototype = { clone: function() {
+ return new l(this.x, this.y);
+ }, add: function(R) {
+ return this.clone()._add(R);
+ }, sub: function(R) {
+ return this.clone()._sub(R);
+ }, multByPoint: function(R) {
+ return this.clone()._multByPoint(R);
+ }, divByPoint: function(R) {
+ return this.clone()._divByPoint(R);
+ }, mult: function(R) {
+ return this.clone()._mult(R);
+ }, div: function(R) {
+ return this.clone()._div(R);
+ }, rotate: function(R) {
+ return this.clone()._rotate(R);
+ }, rotateAround: function(R, S) {
+ return this.clone()._rotateAround(R, S);
+ }, matMult: function(R) {
+ return this.clone()._matMult(R);
+ }, unit: function() {
+ return this.clone()._unit();
+ }, perp: function() {
+ return this.clone()._perp();
+ }, round: function() {
+ return this.clone()._round();
+ }, mag: function() {
+ return Math.sqrt(this.x * this.x + this.y * this.y);
+ }, equals: function(R) {
+ return this.x === R.x && this.y === R.y;
+ }, dist: function(R) {
+ return Math.sqrt(this.distSqr(R));
+ }, distSqr: function(R) {
+ var S = R.x - this.x, F = R.y - this.y;
+ return S * S + F * F;
+ }, angle: function() {
+ return Math.atan2(this.y, this.x);
+ }, angleTo: function(R) {
+ return Math.atan2(this.y - R.y, this.x - R.x);
+ }, angleWith: function(R) {
+ return this.angleWithSep(R.x, R.y);
+ }, angleWithSep: function(R, S) {
+ return Math.atan2(this.x * S - this.y * R, this.x * R + this.y * S);
+ }, _matMult: function(R) {
+ var S = R[2] * this.x + R[3] * this.y;
+ return this.x = R[0] * this.x + R[1] * this.y, this.y = S, this;
+ }, _add: function(R) {
+ return this.x += R.x, this.y += R.y, this;
+ }, _sub: function(R) {
+ return this.x -= R.x, this.y -= R.y, this;
+ }, _mult: function(R) {
+ return this.x *= R, this.y *= R, this;
+ }, _div: function(R) {
+ return this.x /= R, this.y /= R, this;
+ }, _multByPoint: function(R) {
+ return this.x *= R.x, this.y *= R.y, this;
+ }, _divByPoint: function(R) {
+ return this.x /= R.x, this.y /= R.y, this;
+ }, _unit: function() {
+ return this._div(this.mag()), this;
+ }, _perp: function() {
+ var R = this.y;
+ return this.y = this.x, this.x = -R, this;
+ }, _rotate: function(R) {
+ var S = Math.cos(R), F = Math.sin(R), W = F * this.x + S * this.y;
+ return this.x = S * this.x - F * this.y, this.y = W, this;
+ }, _rotateAround: function(R, S) {
+ var F = Math.cos(R), W = Math.sin(R), te = S.y + W * (this.x - S.x) + F * (this.y - S.y);
+ return this.x = S.x + F * (this.x - S.x) - W * (this.y - S.y), this.y = te, this;
+ }, _round: function() {
+ return this.x = Math.round(this.x), this.y = Math.round(this.y), this;
+ } }, l.convert = function(R) {
+ return R instanceof l ? R : Array.isArray(R) ? new l(R[0], R[1]) : R;
+ };
+ var u = o(s), c = f;
+ function f(R, S, F, W) {
+ this.cx = 3 * R, this.bx = 3 * (F - R) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * S, this.by = 3 * (W - S) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = R, this.p1y = S, this.p2x = F, this.p2y = W;
+ }
+ f.prototype = { sampleCurveX: function(R) {
+ return ((this.ax * R + this.bx) * R + this.cx) * R;
+ }, sampleCurveY: function(R) {
+ return ((this.ay * R + this.by) * R + this.cy) * R;
+ }, sampleCurveDerivativeX: function(R) {
+ return (3 * this.ax * R + 2 * this.bx) * R + this.cx;
+ }, solveCurveX: function(R, S) {
+ if (S === void 0 && (S = 1e-6), R < 0) return 0;
+ if (R > 1) return 1;
+ for (var F = R, W = 0; W < 8; W++) {
+ var te = this.sampleCurveX(F) - R;
+ if (Math.abs(te) < S) return F;
+ var fe = this.sampleCurveDerivativeX(F);
+ if (Math.abs(fe) < 1e-6) break;
+ F -= te / fe;
+ }
+ var pe = 0, Fe = 1;
+ for (F = R, W = 0; W < 20 && (te = this.sampleCurveX(F), !(Math.abs(te - R) < S)); W++) R > te ? pe = F : Fe = F, F = 0.5 * (Fe - pe) + pe;
+ return F;
+ }, solve: function(R, S) {
+ return this.sampleCurveY(this.solveCurveX(R, S));
+ } };
+ var h = o(c);
+ let d, v;
+ function _() {
+ return d == null && (d = typeof OffscreenCanvas != "undefined" && new OffscreenCanvas(1, 1).getContext("2d") && typeof createImageBitmap == "function"), d;
+ }
+ function b() {
+ if (v == null && (v = false, _())) {
+ let S = new OffscreenCanvas(5, 5).getContext("2d", { willReadFrequently: true });
+ if (S) {
+ for (let W = 0; W < 5 * 5; W++) {
+ let te = 4 * W;
+ S.fillStyle = `rgb(${te},${te + 1},${te + 2})`, S.fillRect(W % 5, Math.floor(W / 5), 1, 1);
+ }
+ let F = S.getImageData(0, 0, 5, 5).data;
+ for (let W = 0; W < 5 * 5 * 4; W++) if (W % 4 != 3 && F[W] !== W) {
+ v = true;
+ break;
+ }
+ }
+ }
+ return v || false;
+ }
+ function p(R, S, F, W) {
+ let te = new h(R, S, F, W);
+ return (fe) => te.solve(fe);
+ }
+ let k = p(0.25, 0.1, 0.25, 1);
+ function E(R, S, F) {
+ return Math.min(F, Math.max(S, R));
+ }
+ function T(R, S, F) {
+ let W = F - S, te = ((R - S) % W + W) % W + S;
+ return te === S ? F : te;
+ }
+ function L(R, ...S) {
+ for (let F of S) for (let W in F) R[W] = F[W];
+ return R;
+ }
+ let x = 1;
+ function C(R, S, F) {
+ let W = {};
+ for (let te in R) W[te] = S.call(this, R[te], te, R);
+ return W;
+ }
+ function M(R, S, F) {
+ let W = {};
+ for (let te in R) S.call(this, R[te], te, R) && (W[te] = R[te]);
+ return W;
+ }
+ function g(R) {
+ return Array.isArray(R) ? R.map(g) : typeof R == "object" && R ? C(R, g) : R;
+ }
+ let P = {};
+ function A(R) {
+ P[R] || (typeof console != "undefined" && console.warn(R), P[R] = true);
+ }
+ function z(R, S, F) {
+ return (F.y - R.y) * (S.x - R.x) > (S.y - R.y) * (F.x - R.x);
+ }
+ function O(R) {
+ return typeof WorkerGlobalScope != "undefined" && R !== void 0 && R instanceof WorkerGlobalScope;
+ }
+ let U = null;
+ function G(R) {
+ return typeof ImageBitmap != "undefined" && R instanceof ImageBitmap;
+ }
+ let Z = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";
+ function j(R, S, F, W, te) {
+ return a(this, void 0, void 0, function* () {
+ if (typeof VideoFrame == "undefined") throw new Error("VideoFrame not supported");
+ let fe = new VideoFrame(R, { timestamp: 0 });
+ try {
+ let pe = fe == null ? void 0 : fe.format;
+ if (!pe || !pe.startsWith("BGR") && !pe.startsWith("RGB")) throw new Error(`Unrecognized format ${pe}`);
+ let Fe = pe.startsWith("BGR"), Ke = new Uint8ClampedArray(W * te * 4);
+ if (yield fe.copyTo(Ke, function(ct, Lt, Jt, cr, mr) {
+ let Pr = 4 * Math.max(-Lt, 0), zr = (Math.max(0, Jt) - Jt) * cr * 4 + Pr, ui = 4 * cr, yi = Math.max(0, Lt), vn = Math.max(0, Jt);
+ return { rect: { x: yi, y: vn, width: Math.min(ct.width, Lt + cr) - yi, height: Math.min(ct.height, Jt + mr) - vn }, layout: [{ offset: zr, stride: ui }] };
+ }(R, S, F, W, te)), Fe) for (let ct = 0; ct < Ke.length; ct += 4) {
+ let Lt = Ke[ct];
+ Ke[ct] = Ke[ct + 2], Ke[ct + 2] = Lt;
+ }
+ return Ke;
+ } finally {
+ fe.close();
+ }
+ });
+ }
+ let N, H, re = "AbortError";
+ function oe() {
+ return new Error(re);
+ }
+ let _e = { MAX_PARALLEL_IMAGE_REQUESTS: 16, MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME: 8, MAX_TILE_CACHE_ZOOM_LEVELS: 5, REGISTERED_PROTOCOLS: {}, WORKER_URL: "" };
+ function Ce(R) {
+ return _e.REGISTERED_PROTOCOLS[R.substring(0, R.indexOf("://"))];
+ }
+ let Le = "global-dispatcher";
+ class ge extends Error {
+ constructor(S, F, W, te) {
+ super(`AJAXError: ${F} (${S}): ${W}`), this.status = S, this.statusText = F, this.url = W, this.body = te;
+ }
+ }
+ let ie = () => O(self) ? self.worker && self.worker.referrer : (window.location.protocol === "blob:" ? window.parent : window).location.href, Se = function(R, S) {
+ if (/:\/\//.test(R.url) && !/^https?:|^file:/.test(R.url)) {
+ let W = Ce(R.url);
+ if (W) return W(R, S);
+ if (O(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ type: "GR", data: R, targetMapId: Le }, S);
+ }
+ if (!(/^file:/.test(F = R.url) || /^file:/.test(ie()) && !/^\w+:/.test(F))) {
+ if (fetch && Request && AbortController && Object.prototype.hasOwnProperty.call(Request.prototype, "signal")) return function(W, te) {
+ return a(this, void 0, void 0, function* () {
+ let fe = new Request(W.url, { method: W.method || "GET", body: W.body, credentials: W.credentials, headers: W.headers, cache: W.cache, referrer: ie(), signal: te.signal });
+ W.type !== "json" || fe.headers.has("Accept") || fe.headers.set("Accept", "application/json");
+ let pe = yield fetch(fe);
+ if (!pe.ok) {
+ let ct = yield pe.blob();
+ throw new ge(pe.status, pe.statusText, W.url, ct);
+ }
+ let Fe;
+ Fe = W.type === "arrayBuffer" || W.type === "image" ? pe.arrayBuffer() : W.type === "json" ? pe.json() : pe.text();
+ let Ke = yield Fe;
+ if (te.signal.aborted) throw oe();
+ return { data: Ke, cacheControl: pe.headers.get("Cache-Control"), expires: pe.headers.get("Expires") };
+ });
+ }(R, S);
+ if (O(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ type: "GR", data: R, mustQueue: true, targetMapId: Le }, S);
+ }
+ var F;
+ return function(W, te) {
+ return new Promise((fe, pe) => {
+ var Fe;
+ let Ke = new XMLHttpRequest();
+ Ke.open(W.method || "GET", W.url, true), W.type !== "arrayBuffer" && W.type !== "image" || (Ke.responseType = "arraybuffer");
+ for (let ct in W.headers) Ke.setRequestHeader(ct, W.headers[ct]);
+ W.type === "json" && (Ke.responseType = "text", !((Fe = W.headers) === null || Fe === void 0) && Fe.Accept || Ke.setRequestHeader("Accept", "application/json")), Ke.withCredentials = W.credentials === "include", Ke.onerror = () => {
+ pe(new Error(Ke.statusText));
+ }, Ke.onload = () => {
+ if (!te.signal.aborted) if ((Ke.status >= 200 && Ke.status < 300 || Ke.status === 0) && Ke.response !== null) {
+ let ct = Ke.response;
+ if (W.type === "json") try {
+ ct = JSON.parse(Ke.response);
+ } catch (Lt) {
+ return void pe(Lt);
+ }
+ fe({ data: ct, cacheControl: Ke.getResponseHeader("Cache-Control"), expires: Ke.getResponseHeader("Expires") });
+ } else {
+ let ct = new Blob([Ke.response], { type: Ke.getResponseHeader("Content-Type") });
+ pe(new ge(Ke.status, Ke.statusText, W.url, ct));
+ }
+ }, te.signal.addEventListener("abort", () => {
+ Ke.abort(), pe(oe());
+ }), Ke.send(W.body);
+ });
+ }(R, S);
+ };
+ function Ee(R) {
+ if (!R || R.indexOf("://") <= 0 || R.indexOf("data:image/") === 0 || R.indexOf("blob:") === 0) return true;
+ let S = new URL(R), F = window.location;
+ return S.protocol === F.protocol && S.host === F.host;
+ }
+ function Ae(R, S, F) {
+ F[R] && F[R].indexOf(S) !== -1 || (F[R] = F[R] || [], F[R].push(S));
+ }
+ function Be(R, S, F) {
+ if (F && F[R]) {
+ let W = F[R].indexOf(S);
+ W !== -1 && F[R].splice(W, 1);
+ }
+ }
+ class Pe {
+ constructor(S, F = {}) {
+ L(this, F), this.type = S;
+ }
+ }
+ class me extends Pe {
+ constructor(S, F = {}) {
+ super("error", L({ error: S }, F));
+ }
+ }
+ class De {
+ on(S, F) {
+ return this._listeners = this._listeners || {}, Ae(S, F, this._listeners), this;
+ }
+ off(S, F) {
+ return Be(S, F, this._listeners), Be(S, F, this._oneTimeListeners), this;
+ }
+ once(S, F) {
+ return F ? (this._oneTimeListeners = this._oneTimeListeners || {}, Ae(S, F, this._oneTimeListeners), this) : new Promise((W) => this.once(S, W));
+ }
+ fire(S, F) {
+ typeof S == "string" && (S = new Pe(S, F || {}));
+ let W = S.type;
+ if (this.listens(W)) {
+ S.target = this;
+ let te = this._listeners && this._listeners[W] ? this._listeners[W].slice() : [];
+ for (let Fe of te) Fe.call(this, S);
+ let fe = this._oneTimeListeners && this._oneTimeListeners[W] ? this._oneTimeListeners[W].slice() : [];
+ for (let Fe of fe) Be(W, Fe, this._oneTimeListeners), Fe.call(this, S);
+ let pe = this._eventedParent;
+ pe && (L(S, typeof this._eventedParentData == "function" ? this._eventedParentData() : this._eventedParentData), pe.fire(S));
+ } else S instanceof me && console.error(S.error);
+ return this;
+ }
+ listens(S) {
+ return this._listeners && this._listeners[S] && this._listeners[S].length > 0 || this._oneTimeListeners && this._oneTimeListeners[S] && this._oneTimeListeners[S].length > 0 || this._eventedParent && this._eventedParent.listens(S);
+ }
+ setEventedParent(S, F) {
+ return this._eventedParent = S, this._eventedParentData = F, this;
+ }
+ }
+ var ce = { $version: 8, $root: { version: { required: true, type: "enum", values: [8] }, name: { type: "string" }, metadata: { type: "*" }, center: { type: "array", value: "number" }, zoom: { type: "number" }, bearing: { type: "number", default: 0, period: 360, units: "degrees" }, pitch: { type: "number", default: 0, units: "degrees" }, light: { type: "light" }, sky: { type: "sky" }, projection: { type: "projection" }, terrain: { type: "terrain" }, sources: { required: true, type: "sources" }, sprite: { type: "sprite" }, glyphs: { type: "string" }, transition: { type: "transition" }, layers: { required: true, type: "array", value: "layer" } }, sources: { "*": { type: "source" } }, source: ["source_vector", "source_raster", "source_raster_dem", "source_geojson", "source_video", "source_image"], source_vector: { type: { required: true, type: "enum", values: { vector: {} } }, url: { type: "string" }, tiles: { type: "array", value: "string" }, bounds: { type: "array", value: "number", length: 4, default: [-180, -85.051129, 180, 85.051129] }, scheme: { type: "enum", values: { xyz: {}, tms: {} }, default: "xyz" }, minzoom: { type: "number", default: 0 }, maxzoom: { type: "number", default: 22 }, attribution: { type: "string" }, promoteId: { type: "promoteId" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, source_raster: { type: { required: true, type: "enum", values: { raster: {} } }, url: { type: "string" }, tiles: { type: "array", value: "string" }, bounds: { type: "array", value: "number", length: 4, default: [-180, -85.051129, 180, 85.051129] }, minzoom: { type: "number", default: 0 }, maxzoom: { type: "number", default: 22 }, tileSize: { type: "number", default: 512, units: "pixels" }, scheme: { type: "enum", values: { xyz: {}, tms: {} }, default: "xyz" }, attribution: { type: "string" }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, source_raster_dem: { type: { required: true, type: "enum", values: { "raster-dem": {} } }, url: { type: "string" }, tiles: { type: "array", value: "string" }, bounds: { type: "array", value: "number", length: 4, default: [-180, -85.051129, 180, 85.051129] }, minzoom: { type: "number", default: 0 }, maxzoom: { type: "number", default: 22 }, tileSize: { type: "number", default: 512, units: "pixels" }, attribution: { type: "string" }, encoding: { type: "enum", values: { terrarium: {}, mapbox: {}, custom: {} }, default: "mapbox" }, redFactor: { type: "number", default: 1 }, blueFactor: { type: "number", default: 1 }, greenFactor: { type: "number", default: 1 }, baseShift: { type: "number", default: 0 }, volatile: { type: "boolean", default: false }, "*": { type: "*" } }, source_geojson: { type: { required: true, type: "enum", values: { geojson: {} } }, data: { required: true, type: "*" }, maxzoom: { type: "number", default: 18 }, attribution: { type: "string" }, buffer: { type: "number", default: 128, maximum: 512, minimum: 0 }, filter: { type: "*" }, tolerance: { type: "number", default: 0.375 }, cluster: { type: "boolean", default: false }, clusterRadius: { type: "number", default: 50, minimum: 0 }, clusterMaxZoom: { type: "number" }, clusterMinPoints: { type: "number" }, clusterProperties: { type: "*" }, lineMetrics: { type: "boolean", default: false }, generateId: { type: "boolean", default: false }, promoteId: { type: "promoteId" } }, source_video: { type: { required: true, type: "enum", values: { video: {} } }, urls: { required: true, type: "array", value: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, source_image: { type: { required: true, type: "enum", values: { image: {} } }, url: { required: true, type: "string" }, coordinates: { required: true, type: "array", length: 4, value: { type: "array", length: 2, value: "number" } } }, layer: { id: { type: "string", required: true }, type: { type: "enum", values: { fill: {}, line: {}, symbol: {}, circle: {}, heatmap: {}, "fill-extrusion": {}, raster: {}, hillshade: {}, background: {} }, required: true }, metadata: { type: "*" }, source: { type: "string" }, "source-layer": { type: "string" }, minzoom: { type: "number", minimum: 0, maximum: 24 }, maxzoom: { type: "number", minimum: 0, maximum: 24 }, filter: { type: "filter" }, layout: { type: "layout" }, paint: { type: "paint" } }, layout: ["layout_fill", "layout_line", "layout_circle", "layout_heatmap", "layout_fill-extrusion", "layout_symbol", "layout_raster", "layout_hillshade", "layout_background"], layout_background: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_fill: { "fill-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_circle: { "circle-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_heatmap: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, "layout_fill-extrusion": { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_line: { "line-cap": { type: "enum", values: { butt: {}, round: {}, square: {} }, default: "butt", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-join": { type: "enum", values: { bevel: {}, round: {}, miter: {} }, default: "miter", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "line-miter-limit": { type: "number", default: 2, requires: [{ "line-join": "miter" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-round-limit": { type: "number", default: 1.05, requires: [{ "line-join": "round" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_symbol: { "symbol-placement": { type: "enum", values: { point: {}, line: {}, "line-center": {} }, default: "point", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-spacing": { type: "number", default: 250, minimum: 1, units: "pixels", requires: [{ "symbol-placement": "line" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-avoid-edges": { type: "boolean", default: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "symbol-sort-key": { type: "number", expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "symbol-z-order": { type: "enum", values: { auto: {}, "viewport-y": {}, source: {} }, default: "auto", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-allow-overlap": { type: "boolean", default: false, requires: ["icon-image", { "!": "icon-overlap" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-overlap": { type: "enum", values: { never: {}, always: {}, cooperative: {} }, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-ignore-placement": { type: "boolean", default: false, requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-optional": { type: "boolean", default: false, requires: ["icon-image", "text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-size": { type: "number", default: 1, minimum: 0, units: "factor of the original icon size", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-text-fit": { type: "enum", values: { none: {}, width: {}, height: {}, both: {} }, default: "none", requires: ["icon-image", "text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-text-fit-padding": { type: "array", value: "number", length: 4, default: [0, 0, 0, 0], units: "pixels", requires: ["icon-image", "text-field", { "icon-text-fit": ["both", "width", "height"] }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-image": { type: "resolvedImage", tokens: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-padding": { type: "padding", default: [2], units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-keep-upright": { type: "boolean", default: false, requires: ["icon-image", { "icon-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-offset": { type: "array", value: "number", length: 2, default: [0, 0], requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-anchor": { type: "enum", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, "top-left": {}, "top-right": {}, "bottom-left": {}, "bottom-right": {} }, default: "center", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "icon-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-pitch-alignment": { type: "enum", values: { map: {}, viewport: {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotation-alignment": { type: "enum", values: { map: {}, viewport: {}, "viewport-glyph": {}, auto: {} }, default: "auto", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-field": { type: "formatted", default: "", tokens: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-font": { type: "array", value: "string", default: ["Open Sans Regular", "Arial Unicode MS Regular"], requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-size": { type: "number", default: 16, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-max-width": { type: "number", default: 10, minimum: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-line-height": { type: "number", default: 1.2, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-letter-spacing": { type: "number", default: 0, units: "ems", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-justify": { type: "enum", values: { auto: {}, left: {}, center: {}, right: {} }, default: "center", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-radial-offset": { type: "number", units: "ems", default: 0, requires: ["text-field"], "property-type": "data-driven", expression: { interpolated: true, parameters: ["zoom", "feature"] } }, "text-variable-anchor": { type: "array", value: "enum", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, "top-left": {}, "top-right": {}, "bottom-left": {}, "bottom-right": {} }, requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-variable-anchor-offset": { type: "variableAnchorOffsetCollection", requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-anchor": { type: "enum", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, "top-left": {}, "top-right": {}, "bottom-left": {}, "bottom-right": {} }, default: "center", requires: ["text-field", { "!": "text-variable-anchor" }], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-max-angle": { type: "number", default: 45, units: "degrees", requires: ["text-field", { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-writing-mode": { type: "array", value: "enum", values: { horizontal: {}, vertical: {} }, requires: ["text-field", { "symbol-placement": ["point"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-rotate": { type: "number", default: 0, period: 360, units: "degrees", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-padding": { type: "number", default: 2, minimum: 0, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-keep-upright": { type: "boolean", default: true, requires: ["text-field", { "text-rotation-alignment": "map" }, { "symbol-placement": ["line", "line-center"] }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-transform": { type: "enum", values: { none: {}, uppercase: {}, lowercase: {} }, default: "none", requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-offset": { type: "array", value: "number", units: "ems", length: 2, default: [0, 0], requires: ["text-field", { "!": "text-radial-offset" }], expression: { interpolated: true, parameters: ["zoom", "feature"] }, "property-type": "data-driven" }, "text-allow-overlap": { type: "boolean", default: false, requires: ["text-field", { "!": "text-overlap" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-overlap": { type: "enum", values: { never: {}, always: {}, cooperative: {} }, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-ignore-placement": { type: "boolean", default: false, requires: ["text-field"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-optional": { type: "boolean", default: false, requires: ["text-field", "icon-image"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_raster: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, layout_hillshade: { visibility: { type: "enum", values: { visible: {}, none: {} }, default: "visible", "property-type": "constant" } }, filter: { type: "array", value: "*" }, filter_operator: { type: "enum", values: { "==": {}, "!=": {}, ">": {}, ">=": {}, "<": {}, "<=": {}, in: {}, "!in": {}, all: {}, any: {}, none: {}, has: {}, "!has": {} } }, geometry_type: { type: "enum", values: { Point: {}, LineString: {}, Polygon: {} } }, function: { expression: { type: "expression" }, stops: { type: "array", value: "function_stop" }, base: { type: "number", default: 1, minimum: 0 }, property: { type: "string", default: "$zoom" }, type: { type: "enum", values: { identity: {}, exponential: {}, interval: {}, categorical: {} }, default: "exponential" }, colorSpace: { type: "enum", values: { rgb: {}, lab: {}, hcl: {} }, default: "rgb" }, default: { type: "*", required: false } }, function_stop: { type: "array", minimum: 0, maximum: 24, value: ["number", "color"], length: 2 }, expression: { type: "array", value: "*", minimum: 1 }, light: { anchor: { type: "enum", default: "viewport", values: { map: {}, viewport: {} }, "property-type": "data-constant", transition: false, expression: { interpolated: false, parameters: ["zoom"] } }, position: { type: "array", default: [1.15, 210, 30], length: 3, value: "number", "property-type": "data-constant", transition: true, expression: { interpolated: true, parameters: ["zoom"] } }, color: { type: "color", "property-type": "data-constant", default: "#ffffff", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, intensity: { type: "number", "property-type": "data-constant", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true } }, sky: { "sky-color": { type: "color", "property-type": "data-constant", default: "#88C6FC", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, "horizon-color": { type: "color", "property-type": "data-constant", default: "#ffffff", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, "fog-color": { type: "color", "property-type": "data-constant", default: "#ffffff", expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, "fog-ground-blend": { type: "number", "property-type": "data-constant", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, "horizon-fog-blend": { type: "number", "property-type": "data-constant", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, "sky-horizon-blend": { type: "number", "property-type": "data-constant", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true }, "atmosphere-blend": { type: "number", "property-type": "data-constant", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: ["zoom"] }, transition: true } }, terrain: { source: { type: "string", required: true }, exaggeration: { type: "number", minimum: 0, default: 1 } }, projection: { type: { type: "enum", default: "mercator", values: { mercator: {}, globe: {} } } }, paint: ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_background"], paint_fill: { "fill-antialias": { type: "boolean", default: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-outline-color": { type: "color", transition: true, requires: [{ "!": "fill-pattern" }, { "fill-antialias": true }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" } }, "paint_fill-extrusion": { "fill-extrusion-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "fill-extrusion-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["fill-extrusion-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "fill-extrusion-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "fill-extrusion-height": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-base": { type: "number", default: 0, minimum: 0, units: "meters", transition: true, requires: ["fill-extrusion-height"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "fill-extrusion-vertical-gradient": { type: "boolean", default: true, transition: false, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_line: { "line-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "line-pattern" }], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["line-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "line-width": { type: "number", default: 1, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-gap-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-offset": { type: "number", default: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "line-dasharray": { type: "array", value: "number", minimum: 0, transition: true, units: "line widths", requires: [{ "!": "line-pattern" }], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "line-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom", "feature"] }, "property-type": "cross-faded-data-driven" }, "line-gradient": { type: "color", transition: false, requires: [{ "!": "line-dasharray" }, { "!": "line-pattern" }, { source: "geojson", has: { lineMetrics: true } }], expression: { interpolated: true, parameters: ["line-progress"] }, "property-type": "color-ramp" } }, paint_circle: { "circle-radius": { type: "number", default: 5, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-blur": { type: "number", default: 0, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["circle-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-scale": { type: "enum", values: { map: {}, viewport: {} }, default: "map", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-pitch-alignment": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "circle-stroke-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "circle-stroke-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" } }, paint_heatmap: { "heatmap-radius": { type: "number", default: 30, minimum: 1, transition: true, units: "pixels", expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-weight": { type: "number", default: 1, minimum: 0, transition: false, expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "heatmap-intensity": { type: "number", default: 1, minimum: 0, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "heatmap-color": { type: "color", default: ["interpolate", ["linear"], ["heatmap-density"], 0, "rgba(0, 0, 255, 0)", 0.1, "royalblue", 0.3, "cyan", 0.5, "lime", 0.7, "yellow", 1, "red"], transition: false, expression: { interpolated: true, parameters: ["heatmap-density"] }, "property-type": "color-ramp" }, "heatmap-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_symbol: { "icon-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-color": { type: "color", default: "#000000", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "icon-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["icon-image"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "icon-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["icon-image", "icon-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-color": { type: "color", default: "#000000", transition: true, overridable: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-color": { type: "color", default: "rgba(0, 0, 0, 0)", transition: true, requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-width": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-halo-blur": { type: "number", default: 0, minimum: 0, transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom", "feature", "feature-state"] }, "property-type": "data-driven" }, "text-translate": { type: "array", value: "number", length: 2, default: [0, 0], transition: true, units: "pixels", requires: ["text-field"], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "text-translate-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "map", requires: ["text-field", "text-translate"], expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_raster: { "raster-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-hue-rotate": { type: "number", default: 0, period: 360, transition: true, units: "degrees", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-min": { type: "number", default: 0, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-brightness-max": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-saturation": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-contrast": { type: "number", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-resampling": { type: "enum", values: { linear: {}, nearest: {} }, default: "linear", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "raster-fade-duration": { type: "number", default: 300, minimum: 0, transition: false, units: "milliseconds", expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_hillshade: { "hillshade-illumination-direction": { type: "number", default: 335, minimum: 0, maximum: 359, transition: false, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-illumination-anchor": { type: "enum", values: { map: {}, viewport: {} }, default: "viewport", expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-exaggeration": { type: "number", default: 0.5, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-shadow-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-highlight-color": { type: "color", default: "#FFFFFF", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "hillshade-accent-color": { type: "color", default: "#000000", transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, paint_background: { "background-color": { type: "color", default: "#000000", transition: true, requires: [{ "!": "background-pattern" }], expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" }, "background-pattern": { type: "resolvedImage", transition: true, expression: { interpolated: false, parameters: ["zoom"] }, "property-type": "cross-faded" }, "background-opacity": { type: "number", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: ["zoom"] }, "property-type": "data-constant" } }, transition: { duration: { type: "number", default: 300, minimum: 0, units: "milliseconds" }, delay: { type: "number", default: 0, minimum: 0, units: "milliseconds" } }, "property-type": { "data-driven": { type: "property-type" }, "cross-faded": { type: "property-type" }, "cross-faded-data-driven": { type: "property-type" }, "color-ramp": { type: "property-type" }, "data-constant": { type: "property-type" }, constant: { type: "property-type" } }, promoteId: { "*": { type: "string" } } };
+ let je = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"];
+ function lt(R, S) {
+ let F = {};
+ for (let W in R) W !== "ref" && (F[W] = R[W]);
+ return je.forEach((W) => {
+ W in S && (F[W] = S[W]);
+ }), F;
+ }
+ function pt(R, S) {
+ if (Array.isArray(R)) {
+ if (!Array.isArray(S) || R.length !== S.length) return false;
+ for (let F = 0; F < R.length; F++) if (!pt(R[F], S[F])) return false;
+ return true;
+ }
+ if (typeof R == "object" && R !== null && S !== null) {
+ if (typeof S != "object" || Object.keys(R).length !== Object.keys(S).length) return false;
+ for (let F in R) if (!pt(R[F], S[F])) return false;
+ return true;
+ }
+ return R === S;
+ }
+ function Vt(R, S) {
+ R.push(S);
+ }
+ function ot(R, S, F) {
+ Vt(F, { command: "addSource", args: [R, S[R]] });
+ }
+ function ut(R, S, F) {
+ Vt(S, { command: "removeSource", args: [R] }), F[R] = true;
+ }
+ function Wt(R, S, F, W) {
+ ut(R, F, W), ot(R, S, F);
+ }
+ function Nt(R, S, F) {
+ let W;
+ for (W in R[F]) if (Object.prototype.hasOwnProperty.call(R[F], W) && W !== "data" && !pt(R[F][W], S[F][W])) return false;
+ for (W in S[F]) if (Object.prototype.hasOwnProperty.call(S[F], W) && W !== "data" && !pt(R[F][W], S[F][W])) return false;
+ return true;
+ }
+ function $t(R, S, F, W, te, fe) {
+ R = R || {}, S = S || {};
+ for (let pe in R) Object.prototype.hasOwnProperty.call(R, pe) && (pt(R[pe], S[pe]) || F.push({ command: fe, args: [W, pe, S[pe], te] }));
+ for (let pe in S) Object.prototype.hasOwnProperty.call(S, pe) && !Object.prototype.hasOwnProperty.call(R, pe) && (pt(R[pe], S[pe]) || F.push({ command: fe, args: [W, pe, S[pe], te] }));
+ }
+ function sr(R) {
+ return R.id;
+ }
+ function Tr(R, S) {
+ return R[S.id] = S, R;
+ }
+ class fr {
+ constructor(S, F, W, te) {
+ this.message = (S ? `${S}: ` : "") + W, te && (this.identifier = te), F != null && F.__line__ && (this.line = F.__line__);
+ }
+ }
+ function $e(R, ...S) {
+ for (let F of S) for (let W in F) R[W] = F[W];
+ return R;
+ }
+ class St extends Error {
+ constructor(S, F) {
+ super(F), this.message = F, this.key = S;
+ }
+ }
+ class Qt {
+ constructor(S, F = []) {
+ this.parent = S, this.bindings = {};
+ for (let [W, te] of F) this.bindings[W] = te;
+ }
+ concat(S) {
+ return new Qt(this, S);
+ }
+ get(S) {
+ if (this.bindings[S]) return this.bindings[S];
+ if (this.parent) return this.parent.get(S);
+ throw new Error(`${S} not found in scope.`);
+ }
+ has(S) {
+ return !!this.bindings[S] || !!this.parent && this.parent.has(S);
+ }
+ }
+ let Gt = { kind: "null" }, _t = { kind: "number" }, It = { kind: "string" }, mt = { kind: "boolean" }, er = { kind: "color" }, lr = { kind: "object" }, wr = { kind: "value" }, Lr = { kind: "collator" }, ti = { kind: "formatted" }, Br = { kind: "padding" }, Vr = { kind: "resolvedImage" }, dt = { kind: "variableAnchorOffsetCollection" };
+ function Ge(R, S) {
+ return { kind: "array", itemType: R, N: S };
+ }
+ function Je(R) {
+ if (R.kind === "array") {
+ let S = Je(R.itemType);
+ return typeof R.N == "number" ? `array<${S}, ${R.N}>` : R.itemType.kind === "value" ? "array" : `array<${S}>`;
+ }
+ return R.kind;
+ }
+ let We = [Gt, _t, It, mt, er, ti, lr, Ge(wr), Br, Vr, dt];
+ function tt(R, S) {
+ if (S.kind === "error") return null;
+ if (R.kind === "array") {
+ if (S.kind === "array" && (S.N === 0 && S.itemType.kind === "value" || !tt(R.itemType, S.itemType)) && (typeof R.N != "number" || R.N === S.N)) return null;
+ } else {
+ if (R.kind === S.kind) return null;
+ if (R.kind === "value") {
+ for (let F of We) if (!tt(F, S)) return null;
+ }
+ }
+ return `Expected ${Je(R)} but found ${Je(S)} instead.`;
+ }
+ function xt(R, S) {
+ return S.some((F) => F.kind === R.kind);
+ }
+ function Ie(R, S) {
+ return S.some((F) => F === "null" ? R === null : F === "array" ? Array.isArray(R) : F === "object" ? R && !Array.isArray(R) && typeof R == "object" : F === typeof R);
+ }
+ function xe(R, S) {
+ return R.kind === "array" && S.kind === "array" ? R.itemType.kind === S.itemType.kind && typeof R.N == "number" : R.kind === S.kind;
+ }
+ let ke = 0.96422, vt = 0.82521, ir = 4 / 29, ar = 6 / 29, vr = 3 * ar * ar, ii = ar * ar * ar, pi = Math.PI / 180, $r = 180 / Math.PI;
+ function di(R) {
+ return (R %= 360) < 0 && (R += 360), R;
+ }
+ function ji([R, S, F, W]) {
+ let te, fe, pe = wi((0.2225045 * (R = In(R)) + 0.7168786 * (S = In(S)) + 0.0606169 * (F = In(F))) / 1);
+ R === S && S === F ? te = fe = pe : (te = wi((0.4360747 * R + 0.3850649 * S + 0.1430804 * F) / ke), fe = wi((0.0139322 * R + 0.0971045 * S + 0.7141733 * F) / vt));
+ let Fe = 116 * pe - 16;
+ return [Fe < 0 ? 0 : Fe, 500 * (te - pe), 200 * (pe - fe), W];
+ }
+ function In(R) {
+ return R <= 0.04045 ? R / 12.92 : Math.pow((R + 0.055) / 1.055, 2.4);
+ }
+ function wi(R) {
+ return R > ii ? Math.pow(R, 1 / 3) : R / vr + ir;
+ }
+ function On([R, S, F, W]) {
+ let te = (R + 16) / 116, fe = isNaN(S) ? te : te + S / 500, pe = isNaN(F) ? te : te - F / 200;
+ return te = 1 * Fn(te), fe = ke * Fn(fe), pe = vt * Fn(pe), [qn(3.1338561 * fe - 1.6168667 * te - 0.4906146 * pe), qn(-0.9787684 * fe + 1.9161415 * te + 0.033454 * pe), qn(0.0719453 * fe - 0.2289914 * te + 1.4052427 * pe), W];
+ }
+ function qn(R) {
+ return (R = R <= 304e-5 ? 12.92 * R : 1.055 * Math.pow(R, 1 / 2.4) - 0.055) < 0 ? 0 : R > 1 ? 1 : R;
+ }
+ function Fn(R) {
+ return R > ar ? R * R * R : vr * (R - ir);
+ }
+ function ra(R) {
+ return parseInt(R.padEnd(2, R), 16) / 255;
+ }
+ function la(R, S) {
+ return Ut(S ? R / 100 : R, 0, 1);
+ }
+ function Ut(R, S, F) {
+ return Math.min(Math.max(S, R), F);
+ }
+ function wt(R) {
+ return !R.some(Number.isNaN);
+ }
+ let rr = { aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50] };
+ class nr {
+ constructor(S, F, W, te = 1, fe = true) {
+ this.r = S, this.g = F, this.b = W, this.a = te, fe || (this.r *= te, this.g *= te, this.b *= te, te || this.overwriteGetter("rgb", [S, F, W, te]));
+ }
+ static parse(S) {
+ if (S instanceof nr) return S;
+ if (typeof S != "string") return;
+ let F = function(W) {
+ if ((W = W.toLowerCase().trim()) === "transparent") return [0, 0, 0, 0];
+ let te = rr[W];
+ if (te) {
+ let [pe, Fe, Ke] = te;
+ return [pe / 255, Fe / 255, Ke / 255, 1];
+ }
+ if (W.startsWith("#") && /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(W)) {
+ let pe = W.length < 6 ? 1 : 2, Fe = 1;
+ return [ra(W.slice(Fe, Fe += pe)), ra(W.slice(Fe, Fe += pe)), ra(W.slice(Fe, Fe += pe)), ra(W.slice(Fe, Fe + pe) || "ff")];
+ }
+ if (W.startsWith("rgb")) {
+ let pe = W.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);
+ if (pe) {
+ let [Fe, Ke, ct, Lt, Jt, cr, mr, Pr, zr, ui, yi, vn] = pe, zi = [Lt || " ", mr || " ", ui].join("");
+ if (zi === " " || zi === " /" || zi === ",," || zi === ",,,") {
+ let un = [ct, cr, zr].join(""), Tn = un === "%%%" ? 100 : un === "" ? 255 : 0;
+ if (Tn) {
+ let pa = [Ut(+Ke / Tn, 0, 1), Ut(+Jt / Tn, 0, 1), Ut(+Pr / Tn, 0, 1), yi ? la(+yi, vn) : 1];
+ if (wt(pa)) return pa;
+ }
+ }
+ return;
+ }
+ }
+ let fe = W.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);
+ if (fe) {
+ let [pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr] = fe, zr = [Ke || " ", Lt || " ", cr].join("");
+ if (zr === " " || zr === " /" || zr === ",," || zr === ",,,") {
+ let ui = [+Fe, Ut(+ct, 0, 100), Ut(+Jt, 0, 100), mr ? la(+mr, Pr) : 1];
+ if (wt(ui)) return function([yi, vn, zi, un]) {
+ function Tn(pa) {
+ let ro = (pa + yi / 30) % 12, Vo = vn * Math.min(zi, 1 - zi);
+ return zi - Vo * Math.max(-1, Math.min(ro - 3, 9 - ro, 1));
+ }
+ return yi = di(yi), vn /= 100, zi /= 100, [Tn(0), Tn(8), Tn(4), un];
+ }(ui);
+ }
+ }
+ }(S);
+ return F ? new nr(...F, false) : void 0;
+ }
+ get rgb() {
+ let { r: S, g: F, b: W, a: te } = this, fe = te || 1 / 0;
+ return this.overwriteGetter("rgb", [S / fe, F / fe, W / fe, te]);
+ }
+ get hcl() {
+ return this.overwriteGetter("hcl", function(S) {
+ let [F, W, te, fe] = ji(S), pe = Math.sqrt(W * W + te * te);
+ return [Math.round(1e4 * pe) ? di(Math.atan2(te, W) * $r) : NaN, pe, F, fe];
+ }(this.rgb));
+ }
+ get lab() {
+ return this.overwriteGetter("lab", ji(this.rgb));
+ }
+ overwriteGetter(S, F) {
+ return Object.defineProperty(this, S, { value: F }), F;
+ }
+ toString() {
+ let [S, F, W, te] = this.rgb;
+ return `rgba(${[S, F, W].map((fe) => Math.round(255 * fe)).join(",")},${te})`;
+ }
+ }
+ nr.black = new nr(0, 0, 0, 1), nr.white = new nr(1, 1, 1, 1), nr.transparent = new nr(0, 0, 0, 0), nr.red = new nr(1, 0, 0, 1);
+ class Er {
+ constructor(S, F, W) {
+ this.sensitivity = S ? F ? "variant" : "case" : F ? "accent" : "base", this.locale = W, this.collator = new Intl.Collator(this.locale ? this.locale : [], { sensitivity: this.sensitivity, usage: "search" });
+ }
+ compare(S, F) {
+ return this.collator.compare(S, F);
+ }
+ resolvedLocale() {
+ return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale;
+ }
+ }
+ class Xr {
+ constructor(S, F, W, te, fe) {
+ this.text = S, this.image = F, this.scale = W, this.fontStack = te, this.textColor = fe;
+ }
+ }
+ class ri {
+ constructor(S) {
+ this.sections = S;
+ }
+ static fromString(S) {
+ return new ri([new Xr(S, null, null, null, null)]);
+ }
+ isEmpty() {
+ return this.sections.length === 0 || !this.sections.some((S) => S.text.length !== 0 || S.image && S.image.name.length !== 0);
+ }
+ static factory(S) {
+ return S instanceof ri ? S : ri.fromString(S);
+ }
+ toString() {
+ return this.sections.length === 0 ? "" : this.sections.map((S) => S.text).join("");
+ }
+ }
+ class Qr {
+ constructor(S) {
+ this.values = S.slice();
+ }
+ static parse(S) {
+ if (S instanceof Qr) return S;
+ if (typeof S == "number") return new Qr([S, S, S, S]);
+ if (Array.isArray(S) && !(S.length < 1 || S.length > 4)) {
+ for (let F of S) if (typeof F != "number") return;
+ switch (S.length) {
+ case 1:
+ S = [S[0], S[0], S[0], S[0]];
+ break;
+ case 2:
+ S = [S[0], S[1], S[0], S[1]];
+ break;
+ case 3:
+ S = [S[0], S[1], S[2], S[1]];
+ }
+ return new Qr(S);
+ }
+ }
+ toString() {
+ return JSON.stringify(this.values);
+ }
+ }
+ let Oi = /* @__PURE__ */ new Set(["center", "left", "right", "top", "bottom", "top-left", "top-right", "bottom-left", "bottom-right"]);
+ class $i {
+ constructor(S) {
+ this.values = S.slice();
+ }
+ static parse(S) {
+ if (S instanceof $i) return S;
+ if (Array.isArray(S) && !(S.length < 1) && S.length % 2 == 0) {
+ for (let F = 0; F < S.length; F += 2) {
+ let W = S[F], te = S[F + 1];
+ if (typeof W != "string" || !Oi.has(W) || !Array.isArray(te) || te.length !== 2 || typeof te[0] != "number" || typeof te[1] != "number") return;
+ }
+ return new $i(S);
+ }
+ }
+ toString() {
+ return JSON.stringify(this.values);
+ }
+ }
+ class tn {
+ constructor(S) {
+ this.name = S.name, this.available = S.available;
+ }
+ toString() {
+ return this.name;
+ }
+ static fromString(S) {
+ return S ? new tn({ name: S, available: false }) : null;
+ }
+ }
+ function fn(R, S, F, W) {
+ return typeof R == "number" && R >= 0 && R <= 255 && typeof S == "number" && S >= 0 && S <= 255 && typeof F == "number" && F >= 0 && F <= 255 ? W === void 0 || typeof W == "number" && W >= 0 && W <= 1 ? null : `Invalid rgba value [${[R, S, F, W].join(", ")}]: 'a' must be between 0 and 1.` : `Invalid rgba value [${(typeof W == "number" ? [R, S, F, W] : [R, S, F]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`;
+ }
+ function yn(R) {
+ if (R === null || typeof R == "string" || typeof R == "boolean" || typeof R == "number" || R instanceof nr || R instanceof Er || R instanceof ri || R instanceof Qr || R instanceof $i || R instanceof tn) return true;
+ if (Array.isArray(R)) {
+ for (let S of R) if (!yn(S)) return false;
+ return true;
+ }
+ if (typeof R == "object") {
+ for (let S in R) if (!yn(R[S])) return false;
+ return true;
+ }
+ return false;
+ }
+ function Sn(R) {
+ if (R === null) return Gt;
+ if (typeof R == "string") return It;
+ if (typeof R == "boolean") return mt;
+ if (typeof R == "number") return _t;
+ if (R instanceof nr) return er;
+ if (R instanceof Er) return Lr;
+ if (R instanceof ri) return ti;
+ if (R instanceof Qr) return Br;
+ if (R instanceof $i) return dt;
+ if (R instanceof tn) return Vr;
+ if (Array.isArray(R)) {
+ let S = R.length, F;
+ for (let W of R) {
+ let te = Sn(W);
+ if (F) {
+ if (F === te) continue;
+ F = wr;
+ break;
+ }
+ F = te;
+ }
+ return Ge(F || wr, S);
+ }
+ return lr;
+ }
+ function Ba(R) {
+ let S = typeof R;
+ return R === null ? "" : S === "string" || S === "number" || S === "boolean" ? String(R) : R instanceof nr || R instanceof ri || R instanceof Qr || R instanceof $i || R instanceof tn ? R.toString() : JSON.stringify(R);
+ }
+ class ua {
+ constructor(S, F) {
+ this.type = S, this.value = F;
+ }
+ static parse(S, F) {
+ if (S.length !== 2) return F.error(`'literal' expression requires exactly one argument, but found ${S.length - 1} instead.`);
+ if (!yn(S[1])) return F.error("invalid value");
+ let W = S[1], te = Sn(W), fe = F.expectedType;
+ return te.kind !== "array" || te.N !== 0 || !fe || fe.kind !== "array" || typeof fe.N == "number" && fe.N !== 0 || (te = fe), new ua(te, W);
+ }
+ evaluate() {
+ return this.value;
+ }
+ eachChild() {
+ }
+ outputDefined() {
+ return true;
+ }
+ }
+ class ma {
+ constructor(S) {
+ this.name = "ExpressionEvaluationError", this.message = S;
+ }
+ toJSON() {
+ return this.message;
+ }
+ }
+ let Wa = { string: It, number: _t, boolean: mt, object: lr };
+ class Fa {
+ constructor(S, F) {
+ this.type = S, this.args = F;
+ }
+ static parse(S, F) {
+ if (S.length < 2) return F.error("Expected at least one argument.");
+ let W, te = 1, fe = S[0];
+ if (fe === "array") {
+ let Fe, Ke;
+ if (S.length > 2) {
+ let ct = S[1];
+ if (typeof ct != "string" || !(ct in Wa) || ct === "object") return F.error('The item type argument of "array" must be one of string, number, boolean', 1);
+ Fe = Wa[ct], te++;
+ } else Fe = wr;
+ if (S.length > 3) {
+ if (S[2] !== null && (typeof S[2] != "number" || S[2] < 0 || S[2] !== Math.floor(S[2]))) return F.error('The length argument to "array" must be a positive integer literal', 2);
+ Ke = S[2], te++;
+ }
+ W = Ge(Fe, Ke);
+ } else {
+ if (!Wa[fe]) throw new Error(`Types doesn't contain name = ${fe}`);
+ W = Wa[fe];
+ }
+ let pe = [];
+ for (; te < S.length; te++) {
+ let Fe = F.parse(S[te], te, wr);
+ if (!Fe) return null;
+ pe.push(Fe);
+ }
+ return new Fa(W, pe);
+ }
+ evaluate(S) {
+ for (let F = 0; F < this.args.length; F++) {
+ let W = this.args[F].evaluate(S);
+ if (!tt(this.type, Sn(W))) return W;
+ if (F === this.args.length - 1) throw new ma(`Expected value to be of type ${Je(this.type)}, but found ${Je(Sn(W))} instead.`);
+ }
+ throw new Error();
+ }
+ eachChild(S) {
+ this.args.forEach(S);
+ }
+ outputDefined() {
+ return this.args.every((S) => S.outputDefined());
+ }
+ }
+ let Xo = { "to-boolean": mt, "to-color": er, "to-number": _t, "to-string": It };
+ class da {
+ constructor(S, F) {
+ this.type = S, this.args = F;
+ }
+ static parse(S, F) {
+ if (S.length < 2) return F.error("Expected at least one argument.");
+ let W = S[0];
+ if (!Xo[W]) throw new Error(`Can't parse ${W} as it is not part of the known types`);
+ if ((W === "to-boolean" || W === "to-string") && S.length !== 2) return F.error("Expected one argument.");
+ let te = Xo[W], fe = [];
+ for (let pe = 1; pe < S.length; pe++) {
+ let Fe = F.parse(S[pe], pe, wr);
+ if (!Fe) return null;
+ fe.push(Fe);
+ }
+ return new da(te, fe);
+ }
+ evaluate(S) {
+ switch (this.type.kind) {
+ case "boolean":
+ return !!this.args[0].evaluate(S);
+ case "color": {
+ let F, W;
+ for (let te of this.args) {
+ if (F = te.evaluate(S), W = null, F instanceof nr) return F;
+ if (typeof F == "string") {
+ let fe = S.parseColor(F);
+ if (fe) return fe;
+ } else if (Array.isArray(F) && (W = F.length < 3 || F.length > 4 ? `Invalid rbga value ${JSON.stringify(F)}: expected an array containing either three or four numeric values.` : fn(F[0], F[1], F[2], F[3]), !W)) return new nr(F[0] / 255, F[1] / 255, F[2] / 255, F[3]);
+ }
+ throw new ma(W || `Could not parse color from value '${typeof F == "string" ? F : JSON.stringify(F)}'`);
+ }
+ case "padding": {
+ let F;
+ for (let W of this.args) {
+ F = W.evaluate(S);
+ let te = Qr.parse(F);
+ if (te) return te;
+ }
+ throw new ma(`Could not parse padding from value '${typeof F == "string" ? F : JSON.stringify(F)}'`);
+ }
+ case "variableAnchorOffsetCollection": {
+ let F;
+ for (let W of this.args) {
+ F = W.evaluate(S);
+ let te = $i.parse(F);
+ if (te) return te;
+ }
+ throw new ma(`Could not parse variableAnchorOffsetCollection from value '${typeof F == "string" ? F : JSON.stringify(F)}'`);
+ }
+ case "number": {
+ let F = null;
+ for (let W of this.args) {
+ if (F = W.evaluate(S), F === null) return 0;
+ let te = Number(F);
+ if (!isNaN(te)) return te;
+ }
+ throw new ma(`Could not convert ${JSON.stringify(F)} to number.`);
+ }
+ case "formatted":
+ return ri.fromString(Ba(this.args[0].evaluate(S)));
+ case "resolvedImage":
+ return tn.fromString(Ba(this.args[0].evaluate(S)));
+ default:
+ return Ba(this.args[0].evaluate(S));
+ }
+ }
+ eachChild(S) {
+ this.args.forEach(S);
+ }
+ outputDefined() {
+ return this.args.every((S) => S.outputDefined());
+ }
+ }
+ let Wn = ["Unknown", "Point", "LineString", "Polygon"];
+ class Ha {
+ constructor() {
+ this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null;
+ }
+ id() {
+ return this.feature && "id" in this.feature ? this.feature.id : null;
+ }
+ geometryType() {
+ return this.feature ? typeof this.feature.type == "number" ? Wn[this.feature.type] : this.feature.type : null;
+ }
+ geometry() {
+ return this.feature && "geometry" in this.feature ? this.feature.geometry : null;
+ }
+ canonicalID() {
+ return this.canonical;
+ }
+ properties() {
+ return this.feature && this.feature.properties || {};
+ }
+ parseColor(S) {
+ let F = this._parseColorCache[S];
+ return F || (F = this._parseColorCache[S] = nr.parse(S)), F;
+ }
+ }
+ class vo {
+ constructor(S, F, W = [], te, fe = new Qt(), pe = []) {
+ this.registry = S, this.path = W, this.key = W.map((Fe) => `[${Fe}]`).join(""), this.scope = fe, this.errors = pe, this.expectedType = te, this._isConstant = F;
+ }
+ parse(S, F, W, te, fe = {}) {
+ return F ? this.concat(F, W, te)._parse(S, fe) : this._parse(S, fe);
+ }
+ _parse(S, F) {
+ function W(te, fe, pe) {
+ return pe === "assert" ? new Fa(fe, [te]) : pe === "coerce" ? new da(fe, [te]) : te;
+ }
+ if (S !== null && typeof S != "string" && typeof S != "boolean" && typeof S != "number" || (S = ["literal", S]), Array.isArray(S)) {
+ if (S.length === 0) return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');
+ let te = S[0];
+ if (typeof te != "string") return this.error(`Expression name must be a string, but found ${typeof te} instead. If you wanted a literal array, use ["literal", [...]].`, 0), null;
+ let fe = this.registry[te];
+ if (fe) {
+ let pe = fe.parse(S, this);
+ if (!pe) return null;
+ if (this.expectedType) {
+ let Fe = this.expectedType, Ke = pe.type;
+ if (Fe.kind !== "string" && Fe.kind !== "number" && Fe.kind !== "boolean" && Fe.kind !== "object" && Fe.kind !== "array" || Ke.kind !== "value") if (Fe.kind !== "color" && Fe.kind !== "formatted" && Fe.kind !== "resolvedImage" || Ke.kind !== "value" && Ke.kind !== "string") if (Fe.kind !== "padding" || Ke.kind !== "value" && Ke.kind !== "number" && Ke.kind !== "array") if (Fe.kind !== "variableAnchorOffsetCollection" || Ke.kind !== "value" && Ke.kind !== "array") {
+ if (this.checkSubtype(Fe, Ke)) return null;
+ } else pe = W(pe, Fe, F.typeAnnotation || "coerce");
+ else pe = W(pe, Fe, F.typeAnnotation || "coerce");
+ else pe = W(pe, Fe, F.typeAnnotation || "coerce");
+ else pe = W(pe, Fe, F.typeAnnotation || "assert");
+ }
+ if (!(pe instanceof ua) && pe.type.kind !== "resolvedImage" && this._isConstant(pe)) {
+ let Fe = new Ha();
+ try {
+ pe = new ua(pe.type, pe.evaluate(Fe));
+ } catch (Ke) {
+ return this.error(Ke.message), null;
+ }
+ }
+ return pe;
+ }
+ return this.error(`Unknown expression "${te}". If you wanted a literal array, use ["literal", [...]].`, 0);
+ }
+ return this.error(S === void 0 ? "'undefined' value invalid. Use null instead." : typeof S == "object" ? 'Bare objects invalid. Use ["literal", {...}] instead.' : `Expected an array, but found ${typeof S} instead.`);
+ }
+ concat(S, F, W) {
+ let te = typeof S == "number" ? this.path.concat(S) : this.path, fe = W ? this.scope.concat(W) : this.scope;
+ return new vo(this.registry, this._isConstant, te, F || null, fe, this.errors);
+ }
+ error(S, ...F) {
+ let W = `${this.key}${F.map((te) => `[${te}]`).join("")}`;
+ this.errors.push(new St(W, S));
+ }
+ checkSubtype(S, F) {
+ let W = tt(S, F);
+ return W && this.error(W), W;
+ }
+ }
+ class jn {
+ constructor(S, F) {
+ this.type = F.type, this.bindings = [].concat(S), this.result = F;
+ }
+ evaluate(S) {
+ return this.result.evaluate(S);
+ }
+ eachChild(S) {
+ for (let F of this.bindings) S(F[1]);
+ S(this.result);
+ }
+ static parse(S, F) {
+ if (S.length < 4) return F.error(`Expected at least 3 arguments, but found ${S.length - 1} instead.`);
+ let W = [];
+ for (let fe = 1; fe < S.length - 1; fe += 2) {
+ let pe = S[fe];
+ if (typeof pe != "string") return F.error(`Expected string, but found ${typeof pe} instead.`, fe);
+ if (/[^a-zA-Z0-9_]/.test(pe)) return F.error("Variable names must contain only alphanumeric characters or '_'.", fe);
+ let Fe = F.parse(S[fe + 1], fe + 1);
+ if (!Fe) return null;
+ W.push([pe, Fe]);
+ }
+ let te = F.parse(S[S.length - 1], S.length - 1, F.expectedType, W);
+ return te ? new jn(W, te) : null;
+ }
+ outputDefined() {
+ return this.result.outputDefined();
+ }
+ }
+ class Mt {
+ constructor(S, F) {
+ this.type = F.type, this.name = S, this.boundExpression = F;
+ }
+ static parse(S, F) {
+ if (S.length !== 2 || typeof S[1] != "string") return F.error("'var' expression requires exactly one string literal argument.");
+ let W = S[1];
+ return F.scope.has(W) ? new Mt(W, F.scope.get(W)) : F.error(`Unknown variable "${W}". Make sure "${W}" has been bound in an enclosing "let" expression before using it.`, 1);
+ }
+ evaluate(S) {
+ return this.boundExpression.evaluate(S);
+ }
+ eachChild() {
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ class kr {
+ constructor(S, F, W) {
+ this.type = S, this.index = F, this.input = W;
+ }
+ static parse(S, F) {
+ if (S.length !== 3) return F.error(`Expected 2 arguments, but found ${S.length - 1} instead.`);
+ let W = F.parse(S[1], 1, _t), te = F.parse(S[2], 2, Ge(F.expectedType || wr));
+ return W && te ? new kr(te.type.itemType, W, te) : null;
+ }
+ evaluate(S) {
+ let F = this.index.evaluate(S), W = this.input.evaluate(S);
+ if (F < 0) throw new ma(`Array index out of bounds: ${F} < 0.`);
+ if (F >= W.length) throw new ma(`Array index out of bounds: ${F} > ${W.length - 1}.`);
+ if (F !== Math.floor(F)) throw new ma(`Array index must be an integer, but found ${F} instead.`);
+ return W[F];
+ }
+ eachChild(S) {
+ S(this.index), S(this.input);
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ class Jr {
+ constructor(S, F) {
+ this.type = mt, this.needle = S, this.haystack = F;
+ }
+ static parse(S, F) {
+ if (S.length !== 3) return F.error(`Expected 2 arguments, but found ${S.length - 1} instead.`);
+ let W = F.parse(S[1], 1, wr), te = F.parse(S[2], 2, wr);
+ return W && te ? xt(W.type, [mt, It, _t, Gt, wr]) ? new Jr(W, te) : F.error(`Expected first argument to be of type boolean, string, number or null, but found ${Je(W.type)} instead`) : null;
+ }
+ evaluate(S) {
+ let F = this.needle.evaluate(S), W = this.haystack.evaluate(S);
+ if (!W) return false;
+ if (!Ie(F, ["boolean", "string", "number", "null"])) throw new ma(`Expected first argument to be of type boolean, string, number or null, but found ${Je(Sn(F))} instead.`);
+ if (!Ie(W, ["string", "array"])) throw new ma(`Expected second argument to be of type array or string, but found ${Je(Sn(W))} instead.`);
+ return W.indexOf(F) >= 0;
+ }
+ eachChild(S) {
+ S(this.needle), S(this.haystack);
+ }
+ outputDefined() {
+ return true;
+ }
+ }
+ class vi {
+ constructor(S, F, W) {
+ this.type = _t, this.needle = S, this.haystack = F, this.fromIndex = W;
+ }
+ static parse(S, F) {
+ if (S.length <= 2 || S.length >= 5) return F.error(`Expected 3 or 4 arguments, but found ${S.length - 1} instead.`);
+ let W = F.parse(S[1], 1, wr), te = F.parse(S[2], 2, wr);
+ if (!W || !te) return null;
+ if (!xt(W.type, [mt, It, _t, Gt, wr])) return F.error(`Expected first argument to be of type boolean, string, number or null, but found ${Je(W.type)} instead`);
+ if (S.length === 4) {
+ let fe = F.parse(S[3], 3, _t);
+ return fe ? new vi(W, te, fe) : null;
+ }
+ return new vi(W, te);
+ }
+ evaluate(S) {
+ let F = this.needle.evaluate(S), W = this.haystack.evaluate(S);
+ if (!Ie(F, ["boolean", "string", "number", "null"])) throw new ma(`Expected first argument to be of type boolean, string, number or null, but found ${Je(Sn(F))} instead.`);
+ let te;
+ if (this.fromIndex && (te = this.fromIndex.evaluate(S)), Ie(W, ["string"])) {
+ let fe = W.indexOf(F, te);
+ return fe === -1 ? -1 : [...W.slice(0, fe)].length;
+ }
+ if (Ie(W, ["array"])) return W.indexOf(F, te);
+ throw new ma(`Expected second argument to be of type array or string, but found ${Je(Sn(W))} instead.`);
+ }
+ eachChild(S) {
+ S(this.needle), S(this.haystack), this.fromIndex && S(this.fromIndex);
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ class hn {
+ constructor(S, F, W, te, fe, pe) {
+ this.inputType = S, this.type = F, this.input = W, this.cases = te, this.outputs = fe, this.otherwise = pe;
+ }
+ static parse(S, F) {
+ if (S.length < 5) return F.error(`Expected at least 4 arguments, but found only ${S.length - 1}.`);
+ if (S.length % 2 != 1) return F.error("Expected an even number of arguments.");
+ let W, te;
+ F.expectedType && F.expectedType.kind !== "value" && (te = F.expectedType);
+ let fe = {}, pe = [];
+ for (let ct = 2; ct < S.length - 1; ct += 2) {
+ let Lt = S[ct], Jt = S[ct + 1];
+ Array.isArray(Lt) || (Lt = [Lt]);
+ let cr = F.concat(ct);
+ if (Lt.length === 0) return cr.error("Expected at least one branch label.");
+ for (let Pr of Lt) {
+ if (typeof Pr != "number" && typeof Pr != "string") return cr.error("Branch labels must be numbers or strings.");
+ if (typeof Pr == "number" && Math.abs(Pr) > Number.MAX_SAFE_INTEGER) return cr.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);
+ if (typeof Pr == "number" && Math.floor(Pr) !== Pr) return cr.error("Numeric branch labels must be integer values.");
+ if (W) {
+ if (cr.checkSubtype(W, Sn(Pr))) return null;
+ } else W = Sn(Pr);
+ if (fe[String(Pr)] !== void 0) return cr.error("Branch labels must be unique.");
+ fe[String(Pr)] = pe.length;
+ }
+ let mr = F.parse(Jt, ct, te);
+ if (!mr) return null;
+ te = te || mr.type, pe.push(mr);
+ }
+ let Fe = F.parse(S[1], 1, wr);
+ if (!Fe) return null;
+ let Ke = F.parse(S[S.length - 1], S.length - 1, te);
+ return Ke ? Fe.type.kind !== "value" && F.concat(1).checkSubtype(W, Fe.type) ? null : new hn(W, te, Fe, fe, pe, Ke) : null;
+ }
+ evaluate(S) {
+ let F = this.input.evaluate(S);
+ return (Sn(F) === this.inputType && this.outputs[this.cases[F]] || this.otherwise).evaluate(S);
+ }
+ eachChild(S) {
+ S(this.input), this.outputs.forEach(S), S(this.otherwise);
+ }
+ outputDefined() {
+ return this.outputs.every((S) => S.outputDefined()) && this.otherwise.outputDefined();
+ }
+ }
+ class An {
+ constructor(S, F, W) {
+ this.type = S, this.branches = F, this.otherwise = W;
+ }
+ static parse(S, F) {
+ if (S.length < 4) return F.error(`Expected at least 3 arguments, but found only ${S.length - 1}.`);
+ if (S.length % 2 != 0) return F.error("Expected an odd number of arguments.");
+ let W;
+ F.expectedType && F.expectedType.kind !== "value" && (W = F.expectedType);
+ let te = [];
+ for (let pe = 1; pe < S.length - 1; pe += 2) {
+ let Fe = F.parse(S[pe], pe, mt);
+ if (!Fe) return null;
+ let Ke = F.parse(S[pe + 1], pe + 1, W);
+ if (!Ke) return null;
+ te.push([Fe, Ke]), W = W || Ke.type;
+ }
+ let fe = F.parse(S[S.length - 1], S.length - 1, W);
+ if (!fe) return null;
+ if (!W) throw new Error("Can't infer output type");
+ return new An(W, te, fe);
+ }
+ evaluate(S) {
+ for (let [F, W] of this.branches) if (F.evaluate(S)) return W.evaluate(S);
+ return this.otherwise.evaluate(S);
+ }
+ eachChild(S) {
+ for (let [F, W] of this.branches) S(F), S(W);
+ S(this.otherwise);
+ }
+ outputDefined() {
+ return this.branches.every(([S, F]) => F.outputDefined()) && this.otherwise.outputDefined();
+ }
+ }
+ class Mn {
+ constructor(S, F, W, te) {
+ this.type = S, this.input = F, this.beginIndex = W, this.endIndex = te;
+ }
+ static parse(S, F) {
+ if (S.length <= 2 || S.length >= 5) return F.error(`Expected 3 or 4 arguments, but found ${S.length - 1} instead.`);
+ let W = F.parse(S[1], 1, wr), te = F.parse(S[2], 2, _t);
+ if (!W || !te) return null;
+ if (!xt(W.type, [Ge(wr), It, wr])) return F.error(`Expected first argument to be of type array or string, but found ${Je(W.type)} instead`);
+ if (S.length === 4) {
+ let fe = F.parse(S[3], 3, _t);
+ return fe ? new Mn(W.type, W, te, fe) : null;
+ }
+ return new Mn(W.type, W, te);
+ }
+ evaluate(S) {
+ let F = this.input.evaluate(S), W = this.beginIndex.evaluate(S), te;
+ if (this.endIndex && (te = this.endIndex.evaluate(S)), Ie(F, ["string"])) return [...F].slice(W, te).join("");
+ if (Ie(F, ["array"])) return F.slice(W, te);
+ throw new ma(`Expected first argument to be of type array or string, but found ${Je(Sn(F))} instead.`);
+ }
+ eachChild(S) {
+ S(this.input), S(this.beginIndex), this.endIndex && S(this.endIndex);
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ function Li(R, S) {
+ let F = R.length - 1, W, te, fe = 0, pe = F, Fe = 0;
+ for (; fe <= pe; ) if (Fe = Math.floor((fe + pe) / 2), W = R[Fe], te = R[Fe + 1], W <= S) {
+ if (Fe === F || S < te) return Fe;
+ fe = Fe + 1;
+ } else {
+ if (!(W > S)) throw new ma("Input is not a number.");
+ pe = Fe - 1;
+ }
+ return 0;
+ }
+ class _n {
+ constructor(S, F, W) {
+ this.type = S, this.input = F, this.labels = [], this.outputs = [];
+ for (let [te, fe] of W) this.labels.push(te), this.outputs.push(fe);
+ }
+ static parse(S, F) {
+ if (S.length - 1 < 4) return F.error(`Expected at least 4 arguments, but found only ${S.length - 1}.`);
+ if ((S.length - 1) % 2 != 0) return F.error("Expected an even number of arguments.");
+ let W = F.parse(S[1], 1, _t);
+ if (!W) return null;
+ let te = [], fe = null;
+ F.expectedType && F.expectedType.kind !== "value" && (fe = F.expectedType);
+ for (let pe = 1; pe < S.length; pe += 2) {
+ let Fe = pe === 1 ? -1 / 0 : S[pe], Ke = S[pe + 1], ct = pe, Lt = pe + 1;
+ if (typeof Fe != "number") return F.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', ct);
+ if (te.length && te[te.length - 1][0] >= Fe) return F.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', ct);
+ let Jt = F.parse(Ke, Lt, fe);
+ if (!Jt) return null;
+ fe = fe || Jt.type, te.push([Fe, Jt]);
+ }
+ return new _n(fe, W, te);
+ }
+ evaluate(S) {
+ let F = this.labels, W = this.outputs;
+ if (F.length === 1) return W[0].evaluate(S);
+ let te = this.input.evaluate(S);
+ if (te <= F[0]) return W[0].evaluate(S);
+ let fe = F.length;
+ return te >= F[fe - 1] ? W[fe - 1].evaluate(S) : W[Li(F, te)].evaluate(S);
+ }
+ eachChild(S) {
+ S(this.input);
+ for (let F of this.outputs) S(F);
+ }
+ outputDefined() {
+ return this.outputs.every((S) => S.outputDefined());
+ }
+ }
+ function ya(R) {
+ return R && R.__esModule && Object.prototype.hasOwnProperty.call(R, "default") ? R.default : R;
+ }
+ var $n = Ma;
+ function Ma(R, S, F, W) {
+ this.cx = 3 * R, this.bx = 3 * (F - R) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * S, this.by = 3 * (W - S) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = R, this.p1y = S, this.p2x = F, this.p2y = W;
+ }
+ Ma.prototype = { sampleCurveX: function(R) {
+ return ((this.ax * R + this.bx) * R + this.cx) * R;
+ }, sampleCurveY: function(R) {
+ return ((this.ay * R + this.by) * R + this.cy) * R;
+ }, sampleCurveDerivativeX: function(R) {
+ return (3 * this.ax * R + 2 * this.bx) * R + this.cx;
+ }, solveCurveX: function(R, S) {
+ if (S === void 0 && (S = 1e-6), R < 0) return 0;
+ if (R > 1) return 1;
+ for (var F = R, W = 0; W < 8; W++) {
+ var te = this.sampleCurveX(F) - R;
+ if (Math.abs(te) < S) return F;
+ var fe = this.sampleCurveDerivativeX(F);
+ if (Math.abs(fe) < 1e-6) break;
+ F -= te / fe;
+ }
+ var pe = 0, Fe = 1;
+ for (F = R, W = 0; W < 20 && (te = this.sampleCurveX(F), !(Math.abs(te - R) < S)); W++) R > te ? pe = F : Fe = F, F = 0.5 * (Fe - pe) + pe;
+ return F;
+ }, solve: function(R, S) {
+ return this.sampleCurveY(this.solveCurveX(R, S));
+ } };
+ var _o = ya($n);
+ function No(R, S, F) {
+ return R + F * (S - R);
+ }
+ function po(R, S, F) {
+ return R.map((W, te) => No(W, S[te], F));
+ }
+ let Lo = { number: No, color: function(R, S, F, W = "rgb") {
+ switch (W) {
+ case "rgb": {
+ let [te, fe, pe, Fe] = po(R.rgb, S.rgb, F);
+ return new nr(te, fe, pe, Fe, false);
+ }
+ case "hcl": {
+ let [te, fe, pe, Fe] = R.hcl, [Ke, ct, Lt, Jt] = S.hcl, cr, mr;
+ if (isNaN(te) || isNaN(Ke)) isNaN(te) ? isNaN(Ke) ? cr = NaN : (cr = Ke, pe !== 1 && pe !== 0 || (mr = ct)) : (cr = te, Lt !== 1 && Lt !== 0 || (mr = fe));
+ else {
+ let vn = Ke - te;
+ Ke > te && vn > 180 ? vn -= 360 : Ke < te && te - Ke > 180 && (vn += 360), cr = te + F * vn;
+ }
+ let [Pr, zr, ui, yi] = function([vn, zi, un, Tn]) {
+ return vn = isNaN(vn) ? 0 : vn * pi, On([un, Math.cos(vn) * zi, Math.sin(vn) * zi, Tn]);
+ }([cr, mr != null ? mr : No(fe, ct, F), No(pe, Lt, F), No(Fe, Jt, F)]);
+ return new nr(Pr, zr, ui, yi, false);
+ }
+ case "lab": {
+ let [te, fe, pe, Fe] = On(po(R.lab, S.lab, F));
+ return new nr(te, fe, pe, Fe, false);
+ }
+ }
+ }, array: po, padding: function(R, S, F) {
+ return new Qr(po(R.values, S.values, F));
+ }, variableAnchorOffsetCollection: function(R, S, F) {
+ let W = R.values, te = S.values;
+ if (W.length !== te.length) throw new ma(`Cannot interpolate values of different length. from: ${R.toString()}, to: ${S.toString()}`);
+ let fe = [];
+ for (let pe = 0; pe < W.length; pe += 2) {
+ if (W[pe] !== te[pe]) throw new ma(`Cannot interpolate values containing mismatched anchors. from[${pe}]: ${W[pe]}, to[${pe}]: ${te[pe]}`);
+ fe.push(W[pe]);
+ let [Fe, Ke] = W[pe + 1], [ct, Lt] = te[pe + 1];
+ fe.push([No(Fe, ct, F), No(Ke, Lt, F)]);
+ }
+ return new $i(fe);
+ } };
+ class ko {
+ constructor(S, F, W, te, fe) {
+ this.type = S, this.operator = F, this.interpolation = W, this.input = te, this.labels = [], this.outputs = [];
+ for (let [pe, Fe] of fe) this.labels.push(pe), this.outputs.push(Fe);
+ }
+ static interpolationFactor(S, F, W, te) {
+ let fe = 0;
+ if (S.name === "exponential") fe = Ds(F, S.base, W, te);
+ else if (S.name === "linear") fe = Ds(F, 1, W, te);
+ else if (S.name === "cubic-bezier") {
+ let pe = S.controlPoints;
+ fe = new _o(pe[0], pe[1], pe[2], pe[3]).solve(Ds(F, 1, W, te));
+ }
+ return fe;
+ }
+ static parse(S, F) {
+ let [W, te, fe, ...pe] = S;
+ if (!Array.isArray(te) || te.length === 0) return F.error("Expected an interpolation type expression.", 1);
+ if (te[0] === "linear") te = { name: "linear" };
+ else if (te[0] === "exponential") {
+ let ct = te[1];
+ if (typeof ct != "number") return F.error("Exponential interpolation requires a numeric base.", 1, 1);
+ te = { name: "exponential", base: ct };
+ } else {
+ if (te[0] !== "cubic-bezier") return F.error(`Unknown interpolation type ${String(te[0])}`, 1, 0);
+ {
+ let ct = te.slice(1);
+ if (ct.length !== 4 || ct.some((Lt) => typeof Lt != "number" || Lt < 0 || Lt > 1)) return F.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1);
+ te = { name: "cubic-bezier", controlPoints: ct };
+ }
+ }
+ if (S.length - 1 < 4) return F.error(`Expected at least 4 arguments, but found only ${S.length - 1}.`);
+ if ((S.length - 1) % 2 != 0) return F.error("Expected an even number of arguments.");
+ if (fe = F.parse(fe, 2, _t), !fe) return null;
+ let Fe = [], Ke = null;
+ W === "interpolate-hcl" || W === "interpolate-lab" ? Ke = er : F.expectedType && F.expectedType.kind !== "value" && (Ke = F.expectedType);
+ for (let ct = 0; ct < pe.length; ct += 2) {
+ let Lt = pe[ct], Jt = pe[ct + 1], cr = ct + 3, mr = ct + 4;
+ if (typeof Lt != "number") return F.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', cr);
+ if (Fe.length && Fe[Fe.length - 1][0] >= Lt) return F.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', cr);
+ let Pr = F.parse(Jt, mr, Ke);
+ if (!Pr) return null;
+ Ke = Ke || Pr.type, Fe.push([Lt, Pr]);
+ }
+ return xe(Ke, _t) || xe(Ke, er) || xe(Ke, Br) || xe(Ke, dt) || xe(Ke, Ge(_t)) ? new ko(Ke, W, te, fe, Fe) : F.error(`Type ${Je(Ke)} is not interpolatable.`);
+ }
+ evaluate(S) {
+ let F = this.labels, W = this.outputs;
+ if (F.length === 1) return W[0].evaluate(S);
+ let te = this.input.evaluate(S);
+ if (te <= F[0]) return W[0].evaluate(S);
+ let fe = F.length;
+ if (te >= F[fe - 1]) return W[fe - 1].evaluate(S);
+ let pe = Li(F, te), Fe = ko.interpolationFactor(this.interpolation, te, F[pe], F[pe + 1]), Ke = W[pe].evaluate(S), ct = W[pe + 1].evaluate(S);
+ switch (this.operator) {
+ case "interpolate":
+ return Lo[this.type.kind](Ke, ct, Fe);
+ case "interpolate-hcl":
+ return Lo.color(Ke, ct, Fe, "hcl");
+ case "interpolate-lab":
+ return Lo.color(Ke, ct, Fe, "lab");
+ }
+ }
+ eachChild(S) {
+ S(this.input);
+ for (let F of this.outputs) S(F);
+ }
+ outputDefined() {
+ return this.outputs.every((S) => S.outputDefined());
+ }
+ }
+ function Ds(R, S, F, W) {
+ let te = W - F, fe = R - F;
+ return te === 0 ? 0 : S === 1 ? fe / te : (Math.pow(S, fe) - 1) / (Math.pow(S, te) - 1);
+ }
+ class Fs {
+ constructor(S, F) {
+ this.type = S, this.args = F;
+ }
+ static parse(S, F) {
+ if (S.length < 2) return F.error("Expectected at least one argument.");
+ let W = null, te = F.expectedType;
+ te && te.kind !== "value" && (W = te);
+ let fe = [];
+ for (let Fe of S.slice(1)) {
+ let Ke = F.parse(Fe, 1 + fe.length, W, void 0, { typeAnnotation: "omit" });
+ if (!Ke) return null;
+ W = W || Ke.type, fe.push(Ke);
+ }
+ if (!W) throw new Error("No output type");
+ let pe = te && fe.some((Fe) => tt(te, Fe.type));
+ return new Fs(pe ? wr : W, fe);
+ }
+ evaluate(S) {
+ let F, W = null, te = 0;
+ for (let fe of this.args) if (te++, W = fe.evaluate(S), W && W instanceof tn && !W.available && (F || (F = W.name), W = null, te === this.args.length && (W = F)), W !== null) break;
+ return W;
+ }
+ eachChild(S) {
+ this.args.forEach(S);
+ }
+ outputDefined() {
+ return this.args.every((S) => S.outputDefined());
+ }
+ }
+ function ll(R, S) {
+ return R === "==" || R === "!=" ? S.kind === "boolean" || S.kind === "string" || S.kind === "number" || S.kind === "null" || S.kind === "value" : S.kind === "string" || S.kind === "number" || S.kind === "value";
+ }
+ function ul(R, S, F, W) {
+ return W.compare(S, F) === 0;
+ }
+ function zl(R, S, F) {
+ let W = R !== "==" && R !== "!=";
+ return class hje {
+ constructor(fe, pe, Fe) {
+ this.type = mt, this.lhs = fe, this.rhs = pe, this.collator = Fe, this.hasUntypedArgument = fe.type.kind === "value" || pe.type.kind === "value";
+ }
+ static parse(fe, pe) {
+ if (fe.length !== 3 && fe.length !== 4) return pe.error("Expected two or three arguments.");
+ let Fe = fe[0], Ke = pe.parse(fe[1], 1, wr);
+ if (!Ke) return null;
+ if (!ll(Fe, Ke.type)) return pe.concat(1).error(`"${Fe}" comparisons are not supported for type '${Je(Ke.type)}'.`);
+ let ct = pe.parse(fe[2], 2, wr);
+ if (!ct) return null;
+ if (!ll(Fe, ct.type)) return pe.concat(2).error(`"${Fe}" comparisons are not supported for type '${Je(ct.type)}'.`);
+ if (Ke.type.kind !== ct.type.kind && Ke.type.kind !== "value" && ct.type.kind !== "value") return pe.error(`Cannot compare types '${Je(Ke.type)}' and '${Je(ct.type)}'.`);
+ W && (Ke.type.kind === "value" && ct.type.kind !== "value" ? Ke = new Fa(ct.type, [Ke]) : Ke.type.kind !== "value" && ct.type.kind === "value" && (ct = new Fa(Ke.type, [ct])));
+ let Lt = null;
+ if (fe.length === 4) {
+ if (Ke.type.kind !== "string" && ct.type.kind !== "string" && Ke.type.kind !== "value" && ct.type.kind !== "value") return pe.error("Cannot use collator to compare non-string types.");
+ if (Lt = pe.parse(fe[3], 3, Lr), !Lt) return null;
+ }
+ return new hje(Ke, ct, Lt);
+ }
+ evaluate(fe) {
+ let pe = this.lhs.evaluate(fe), Fe = this.rhs.evaluate(fe);
+ if (W && this.hasUntypedArgument) {
+ let Ke = Sn(pe), ct = Sn(Fe);
+ if (Ke.kind !== ct.kind || Ke.kind !== "string" && Ke.kind !== "number") throw new ma(`Expected arguments for "${R}" to be (string, string) or (number, number), but found (${Ke.kind}, ${ct.kind}) instead.`);
+ }
+ if (this.collator && !W && this.hasUntypedArgument) {
+ let Ke = Sn(pe), ct = Sn(Fe);
+ if (Ke.kind !== "string" || ct.kind !== "string") return S(fe, pe, Fe);
+ }
+ return this.collator ? F(fe, pe, Fe, this.collator.evaluate(fe)) : S(fe, pe, Fe);
+ }
+ eachChild(fe) {
+ fe(this.lhs), fe(this.rhs), this.collator && fe(this.collator);
+ }
+ outputDefined() {
+ return true;
+ }
+ };
+ }
+ let us = zl("==", function(R, S, F) {
+ return S === F;
+ }, ul), il = zl("!=", function(R, S, F) {
+ return S !== F;
+ }, function(R, S, F, W) {
+ return !ul(0, S, F, W);
+ }), As = zl("<", function(R, S, F) {
+ return S < F;
+ }, function(R, S, F, W) {
+ return W.compare(S, F) < 0;
+ }), cl = zl(">", function(R, S, F) {
+ return S > F;
+ }, function(R, S, F, W) {
+ return W.compare(S, F) > 0;
+ }), Ks = zl("<=", function(R, S, F) {
+ return S <= F;
+ }, function(R, S, F, W) {
+ return W.compare(S, F) <= 0;
+ }), zs = zl(">=", function(R, S, F) {
+ return S >= F;
+ }, function(R, S, F, W) {
+ return W.compare(S, F) >= 0;
+ });
+ class Io {
+ constructor(S, F, W) {
+ this.type = Lr, this.locale = W, this.caseSensitive = S, this.diacriticSensitive = F;
+ }
+ static parse(S, F) {
+ if (S.length !== 2) return F.error("Expected one argument.");
+ let W = S[1];
+ if (typeof W != "object" || Array.isArray(W)) return F.error("Collator options argument must be an object.");
+ let te = F.parse(W["case-sensitive"] !== void 0 && W["case-sensitive"], 1, mt);
+ if (!te) return null;
+ let fe = F.parse(W["diacritic-sensitive"] !== void 0 && W["diacritic-sensitive"], 1, mt);
+ if (!fe) return null;
+ let pe = null;
+ return W.locale && (pe = F.parse(W.locale, 1, It), !pe) ? null : new Io(te, fe, pe);
+ }
+ evaluate(S) {
+ return new Er(this.caseSensitive.evaluate(S), this.diacriticSensitive.evaluate(S), this.locale ? this.locale.evaluate(S) : null);
+ }
+ eachChild(S) {
+ S(this.caseSensitive), S(this.diacriticSensitive), this.locale && S(this.locale);
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ class ls {
+ constructor(S, F, W, te, fe) {
+ this.type = It, this.number = S, this.locale = F, this.currency = W, this.minFractionDigits = te, this.maxFractionDigits = fe;
+ }
+ static parse(S, F) {
+ if (S.length !== 3) return F.error("Expected two arguments.");
+ let W = F.parse(S[1], 1, _t);
+ if (!W) return null;
+ let te = S[2];
+ if (typeof te != "object" || Array.isArray(te)) return F.error("NumberFormat options argument must be an object.");
+ let fe = null;
+ if (te.locale && (fe = F.parse(te.locale, 1, It), !fe)) return null;
+ let pe = null;
+ if (te.currency && (pe = F.parse(te.currency, 1, It), !pe)) return null;
+ let Fe = null;
+ if (te["min-fraction-digits"] && (Fe = F.parse(te["min-fraction-digits"], 1, _t), !Fe)) return null;
+ let Ke = null;
+ return te["max-fraction-digits"] && (Ke = F.parse(te["max-fraction-digits"], 1, _t), !Ke) ? null : new ls(W, fe, pe, Fe, Ke);
+ }
+ evaluate(S) {
+ return new Intl.NumberFormat(this.locale ? this.locale.evaluate(S) : [], { style: this.currency ? "currency" : "decimal", currency: this.currency ? this.currency.evaluate(S) : void 0, minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(S) : void 0, maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(S) : void 0 }).format(this.number.evaluate(S));
+ }
+ eachChild(S) {
+ S(this.number), this.locale && S(this.locale), this.currency && S(this.currency), this.minFractionDigits && S(this.minFractionDigits), this.maxFractionDigits && S(this.maxFractionDigits);
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ class Yl {
+ constructor(S) {
+ this.type = ti, this.sections = S;
+ }
+ static parse(S, F) {
+ if (S.length < 2) return F.error("Expected at least one argument.");
+ let W = S[1];
+ if (!Array.isArray(W) && typeof W == "object") return F.error("First argument must be an image or text section.");
+ let te = [], fe = false;
+ for (let pe = 1; pe <= S.length - 1; ++pe) {
+ let Fe = S[pe];
+ if (fe && typeof Fe == "object" && !Array.isArray(Fe)) {
+ fe = false;
+ let Ke = null;
+ if (Fe["font-scale"] && (Ke = F.parse(Fe["font-scale"], 1, _t), !Ke)) return null;
+ let ct = null;
+ if (Fe["text-font"] && (ct = F.parse(Fe["text-font"], 1, Ge(It)), !ct)) return null;
+ let Lt = null;
+ if (Fe["text-color"] && (Lt = F.parse(Fe["text-color"], 1, er), !Lt)) return null;
+ let Jt = te[te.length - 1];
+ Jt.scale = Ke, Jt.font = ct, Jt.textColor = Lt;
+ } else {
+ let Ke = F.parse(S[pe], 1, wr);
+ if (!Ke) return null;
+ let ct = Ke.type.kind;
+ if (ct !== "string" && ct !== "value" && ct !== "null" && ct !== "resolvedImage") return F.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");
+ fe = true, te.push({ content: Ke, scale: null, font: null, textColor: null });
+ }
+ }
+ return new Yl(te);
+ }
+ evaluate(S) {
+ return new ri(this.sections.map((F) => {
+ let W = F.content.evaluate(S);
+ return Sn(W) === Vr ? new Xr("", W, null, null, null) : new Xr(Ba(W), null, F.scale ? F.scale.evaluate(S) : null, F.font ? F.font.evaluate(S).join(",") : null, F.textColor ? F.textColor.evaluate(S) : null);
+ }));
+ }
+ eachChild(S) {
+ for (let F of this.sections) S(F.content), F.scale && S(F.scale), F.font && S(F.font), F.textColor && S(F.textColor);
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ class Su {
+ constructor(S) {
+ this.type = Vr, this.input = S;
+ }
+ static parse(S, F) {
+ if (S.length !== 2) return F.error("Expected two arguments.");
+ let W = F.parse(S[1], 1, It);
+ return W ? new Su(W) : F.error("No image name provided.");
+ }
+ evaluate(S) {
+ let F = this.input.evaluate(S), W = tn.fromString(F);
+ return W && S.availableImages && (W.available = S.availableImages.indexOf(F) > -1), W;
+ }
+ eachChild(S) {
+ S(this.input);
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ class nc {
+ constructor(S) {
+ this.type = _t, this.input = S;
+ }
+ static parse(S, F) {
+ if (S.length !== 2) return F.error(`Expected 1 argument, but found ${S.length - 1} instead.`);
+ let W = F.parse(S[1], 1);
+ return W ? W.type.kind !== "array" && W.type.kind !== "string" && W.type.kind !== "value" ? F.error(`Expected argument of type string or array, but found ${Je(W.type)} instead.`) : new nc(W) : null;
+ }
+ evaluate(S) {
+ let F = this.input.evaluate(S);
+ if (typeof F == "string") return [...F].length;
+ if (Array.isArray(F)) return F.length;
+ throw new ma(`Expected value to be of type string or array, but found ${Je(Sn(F))} instead.`);
+ }
+ eachChild(S) {
+ S(this.input);
+ }
+ outputDefined() {
+ return false;
+ }
+ }
+ let bs = 8192;
+ function Rn(R, S) {
+ let F = (180 + R[0]) / 360, W = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + R[1] * Math.PI / 360))) / 360, te = Math.pow(2, S.z);
+ return [Math.round(F * te * bs), Math.round(W * te * bs)];
+ }
+ function _a(R, S) {
+ let F = Math.pow(2, S.z);
+ return [(te = (R[0] / bs + S.x) / F, 360 * te - 180), (W = (R[1] / bs + S.y) / F, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * W) * Math.PI / 180)) - 90)];
+ var W, te;
+ }
+ function Vu(R, S) {
+ R[0] = Math.min(R[0], S[0]), R[1] = Math.min(R[1], S[1]), R[2] = Math.max(R[2], S[0]), R[3] = Math.max(R[3], S[1]);
+ }
+ function Ol(R, S) {
+ return !(R[0] <= S[0] || R[2] >= S[2] || R[1] <= S[1] || R[3] >= S[3]);
+ }
+ function xo(R, S, F) {
+ let W = R[0] - S[0], te = R[1] - S[1], fe = R[0] - F[0], pe = R[1] - F[1];
+ return W * pe - fe * te == 0 && W * fe <= 0 && te * pe <= 0;
+ }
+ function Kl(R, S, F, W) {
+ return (te = [W[0] - F[0], W[1] - F[1]])[0] * (fe = [S[0] - R[0], S[1] - R[1]])[1] - te[1] * fe[0] != 0 && !(!qo(R, S, F, W) || !qo(F, W, R, S));
+ var te, fe;
+ }
+ function Ns(R, S, F) {
+ for (let W of F) for (let te = 0; te < W.length - 1; ++te) if (Kl(R, S, W[te], W[te + 1])) return true;
+ return false;
+ }
+ function Hl(R, S, F = false) {
+ let W = false;
+ for (let Fe of S) for (let Ke = 0; Ke < Fe.length - 1; Ke++) {
+ if (xo(R, Fe[Ke], Fe[Ke + 1])) return F;
+ (fe = Fe[Ke])[1] > (te = R)[1] != (pe = Fe[Ke + 1])[1] > te[1] && te[0] < (pe[0] - fe[0]) * (te[1] - fe[1]) / (pe[1] - fe[1]) + fe[0] && (W = !W);
+ }
+ var te, fe, pe;
+ return W;
+ }
+ function ac(R, S) {
+ for (let F of S) if (Hl(R, F)) return true;
+ return false;
+ }
+ function aa(R, S) {
+ for (let F of R) if (!Hl(F, S)) return false;
+ for (let F = 0; F < R.length - 1; ++F) if (Ns(R[F], R[F + 1], S)) return false;
+ return true;
+ }
+ function Oo(R, S) {
+ for (let F of S) if (aa(R, F)) return true;
+ return false;
+ }
+ function qo(R, S, F, W) {
+ let te = W[0] - F[0], fe = W[1] - F[1], pe = (R[0] - F[0]) * fe - te * (R[1] - F[1]), Fe = (S[0] - F[0]) * fe - te * (S[1] - F[1]);
+ return pe > 0 && Fe < 0 || pe < 0 && Fe > 0;
+ }
+ function ql(R, S, F) {
+ let W = [];
+ for (let te = 0; te < R.length; te++) {
+ let fe = [];
+ for (let pe = 0; pe < R[te].length; pe++) {
+ let Fe = Rn(R[te][pe], F);
+ Vu(S, Fe), fe.push(Fe);
+ }
+ W.push(fe);
+ }
+ return W;
+ }
+ function Pc(R, S, F) {
+ let W = [];
+ for (let te = 0; te < R.length; te++) {
+ let fe = ql(R[te], S, F);
+ W.push(fe);
+ }
+ return W;
+ }
+ function Do(R, S, F, W) {
+ if (R[0] < F[0] || R[0] > F[2]) {
+ let te = 0.5 * W, fe = R[0] - F[0] > te ? -W : F[0] - R[0] > te ? W : 0;
+ fe === 0 && (fe = R[0] - F[2] > te ? -W : F[2] - R[0] > te ? W : 0), R[0] += fe;
+ }
+ Vu(S, R);
+ }
+ function rf(R, S, F, W) {
+ let te = Math.pow(2, W.z) * bs, fe = [W.x * bs, W.y * bs], pe = [];
+ for (let Fe of R) for (let Ke of Fe) {
+ let ct = [Ke.x + fe[0], Ke.y + fe[1]];
+ Do(ct, S, F, te), pe.push(ct);
+ }
+ return pe;
+ }
+ function Vf(R, S, F, W) {
+ let te = Math.pow(2, W.z) * bs, fe = [W.x * bs, W.y * bs], pe = [];
+ for (let Ke of R) {
+ let ct = [];
+ for (let Lt of Ke) {
+ let Jt = [Lt.x + fe[0], Lt.y + fe[1]];
+ Vu(S, Jt), ct.push(Jt);
+ }
+ pe.push(ct);
+ }
+ if (S[2] - S[0] <= te / 2) {
+ (Fe = S)[0] = Fe[1] = 1 / 0, Fe[2] = Fe[3] = -1 / 0;
+ for (let Ke of pe) for (let ct of Ke) Do(ct, S, F, te);
+ }
+ var Fe;
+ return pe;
+ }
+ class pl {
+ constructor(S, F) {
+ this.type = mt, this.geojson = S, this.geometries = F;
+ }
+ static parse(S, F) {
+ if (S.length !== 2) return F.error(`'within' expression requires exactly one argument, but found ${S.length - 1} instead.`);
+ if (yn(S[1])) {
+ let W = S[1];
+ if (W.type === "FeatureCollection") {
+ let te = [];
+ for (let fe of W.features) {
+ let { type: pe, coordinates: Fe } = fe.geometry;
+ pe === "Polygon" && te.push(Fe), pe === "MultiPolygon" && te.push(...Fe);
+ }
+ if (te.length) return new pl(W, { type: "MultiPolygon", coordinates: te });
+ } else if (W.type === "Feature") {
+ let te = W.geometry.type;
+ if (te === "Polygon" || te === "MultiPolygon") return new pl(W, W.geometry);
+ } else if (W.type === "Polygon" || W.type === "MultiPolygon") return new pl(W, W);
+ }
+ return F.error("'within' expression requires valid geojson object that contains polygon geometry type.");
+ }
+ evaluate(S) {
+ if (S.geometry() != null && S.canonicalID() != null) {
+ if (S.geometryType() === "Point") return function(F, W) {
+ let te = [1 / 0, 1 / 0, -1 / 0, -1 / 0], fe = [1 / 0, 1 / 0, -1 / 0, -1 / 0], pe = F.canonicalID();
+ if (W.type === "Polygon") {
+ let Fe = ql(W.coordinates, fe, pe), Ke = rf(F.geometry(), te, fe, pe);
+ if (!Ol(te, fe)) return false;
+ for (let ct of Ke) if (!Hl(ct, Fe)) return false;
+ }
+ if (W.type === "MultiPolygon") {
+ let Fe = Pc(W.coordinates, fe, pe), Ke = rf(F.geometry(), te, fe, pe);
+ if (!Ol(te, fe)) return false;
+ for (let ct of Ke) if (!ac(ct, Fe)) return false;
+ }
+ return true;
+ }(S, this.geometries);
+ if (S.geometryType() === "LineString") return function(F, W) {
+ let te = [1 / 0, 1 / 0, -1 / 0, -1 / 0], fe = [1 / 0, 1 / 0, -1 / 0, -1 / 0], pe = F.canonicalID();
+ if (W.type === "Polygon") {
+ let Fe = ql(W.coordinates, fe, pe), Ke = Vf(F.geometry(), te, fe, pe);
+ if (!Ol(te, fe)) return false;
+ for (let ct of Ke) if (!aa(ct, Fe)) return false;
+ }
+ if (W.type === "MultiPolygon") {
+ let Fe = Pc(W.coordinates, fe, pe), Ke = Vf(F.geometry(), te, fe, pe);
+ if (!Ol(te, fe)) return false;
+ for (let ct of Ke) if (!Oo(ct, Fe)) return false;
+ }
+ return true;
+ }(S, this.geometries);
+ }
+ return false;
+ }
+ eachChild() {
+ }
+ outputDefined() {
+ return true;
+ }
+ }
+ let Zc = class {
+ constructor(R = [], S = (F, W) => F < W ? -1 : F > W ? 1 : 0) {
+ if (this.data = R, this.length = this.data.length, this.compare = S, this.length > 0) for (let F = (this.length >> 1) - 1; F >= 0; F--) this._down(F);
+ }
+ push(R) {
+ this.data.push(R), this._up(this.length++);
+ }
+ pop() {
+ if (this.length === 0) return;
+ let R = this.data[0], S = this.data.pop();
+ return --this.length > 0 && (this.data[0] = S, this._down(0)), R;
+ }
+ peek() {
+ return this.data[0];
+ }
+ _up(R) {
+ let { data: S, compare: F } = this, W = S[R];
+ for (; R > 0; ) {
+ let te = R - 1 >> 1, fe = S[te];
+ if (F(W, fe) >= 0) break;
+ S[R] = fe, R = te;
+ }
+ S[R] = W;
+ }
+ _down(R) {
+ let { data: S, compare: F } = this, W = this.length >> 1, te = S[R];
+ for (; R < W; ) {
+ let fe = 1 + (R << 1), pe = fe + 1;
+ if (pe < this.length && F(S[pe], S[fe]) < 0 && (fe = pe), F(S[fe], te) >= 0) break;
+ S[R] = S[fe], R = fe;
+ }
+ S[R] = te;
+ }
+ };
+ function Jl(R, S, F, W, te) {
+ Os(R, S, F, W || R.length - 1, te || oc);
+ }
+ function Os(R, S, F, W, te) {
+ for (; W > F; ) {
+ if (W - F > 600) {
+ var fe = W - F + 1, pe = S - F + 1, Fe = Math.log(fe), Ke = 0.5 * Math.exp(2 * Fe / 3), ct = 0.5 * Math.sqrt(Fe * Ke * (fe - Ke) / fe) * (pe - fe / 2 < 0 ? -1 : 1);
+ Os(R, S, Math.max(F, Math.floor(S - pe * Ke / fe + ct)), Math.min(W, Math.floor(S + (fe - pe) * Ke / fe + ct)), te);
+ }
+ var Lt = R[S], Jt = F, cr = W;
+ for (yu(R, F, S), te(R[W], Lt) > 0 && yu(R, F, W); Jt < cr; ) {
+ for (yu(R, Jt, cr), Jt++, cr--; te(R[Jt], Lt) < 0; ) Jt++;
+ for (; te(R[cr], Lt) > 0; ) cr--;
+ }
+ te(R[F], Lt) === 0 ? yu(R, F, cr) : yu(R, ++cr, W), cr <= S && (F = cr + 1), S <= cr && (W = cr - 1);
+ }
+ }
+ function yu(R, S, F) {
+ var W = R[S];
+ R[S] = R[F], R[F] = W;
+ }
+ function oc(R, S) {
+ return R < S ? -1 : R > S ? 1 : 0;
+ }
+ function Cf(R, S) {
+ if (R.length <= 1) return [R];
+ let F = [], W, te;
+ for (let fe of R) {
+ let pe = jh(fe);
+ pe !== 0 && (fe.area = Math.abs(pe), te === void 0 && (te = pe < 0), te === pe < 0 ? (W && F.push(W), W = [fe]) : W.push(fe));
+ }
+ if (W && F.push(W), S > 1) for (let fe = 0; fe < F.length; fe++) F[fe].length <= S || (Jl(F[fe], S, 1, F[fe].length - 1, sc), F[fe] = F[fe].slice(0, S));
+ return F;
+ }
+ function sc(R, S) {
+ return S.area - R.area;
+ }
+ function jh(R) {
+ let S = 0;
+ for (let F, W, te = 0, fe = R.length, pe = fe - 1; te < fe; pe = te++) F = R[te], W = R[pe], S += (W.x - F.x) * (F.y + W.y);
+ return S;
+ }
+ let Lf = 1 / 298.257223563, cs = Lf * (2 - Lf), nf = Math.PI / 180;
+ class Gf {
+ constructor(S) {
+ let F = 6378.137 * nf * 1e3, W = Math.cos(S * nf), te = 1 / (1 - cs * (1 - W * W)), fe = Math.sqrt(te);
+ this.kx = F * fe * W, this.ky = F * fe * te * (1 - cs);
+ }
+ distance(S, F) {
+ let W = this.wrap(S[0] - F[0]) * this.kx, te = (S[1] - F[1]) * this.ky;
+ return Math.sqrt(W * W + te * te);
+ }
+ pointOnLine(S, F) {
+ let W, te, fe, pe, Fe = 1 / 0;
+ for (let Ke = 0; Ke < S.length - 1; Ke++) {
+ let ct = S[Ke][0], Lt = S[Ke][1], Jt = this.wrap(S[Ke + 1][0] - ct) * this.kx, cr = (S[Ke + 1][1] - Lt) * this.ky, mr = 0;
+ Jt === 0 && cr === 0 || (mr = (this.wrap(F[0] - ct) * this.kx * Jt + (F[1] - Lt) * this.ky * cr) / (Jt * Jt + cr * cr), mr > 1 ? (ct = S[Ke + 1][0], Lt = S[Ke + 1][1]) : mr > 0 && (ct += Jt / this.kx * mr, Lt += cr / this.ky * mr)), Jt = this.wrap(F[0] - ct) * this.kx, cr = (F[1] - Lt) * this.ky;
+ let Pr = Jt * Jt + cr * cr;
+ Pr < Fe && (Fe = Pr, W = ct, te = Lt, fe = Ke, pe = mr);
+ }
+ return { point: [W, te], index: fe, t: Math.max(0, Math.min(1, pe)) };
+ }
+ wrap(S) {
+ for (; S < -180; ) S += 360;
+ for (; S > 180; ) S -= 360;
+ return S;
+ }
+ }
+ function $l(R, S) {
+ return S[0] - R[0];
+ }
+ function fl(R) {
+ return R[1] - R[0] + 1;
+ }
+ function lc(R, S) {
+ return R[1] >= R[0] && R[1] < S;
+ }
+ function Fu(R, S) {
+ if (R[0] > R[1]) return [null, null];
+ let F = fl(R);
+ if (S) {
+ if (F === 2) return [R, null];
+ let te = Math.floor(F / 2);
+ return [[R[0], R[0] + te], [R[0] + te, R[1]]];
+ }
+ if (F === 1) return [R, null];
+ let W = Math.floor(F / 2) - 1;
+ return [[R[0], R[0] + W], [R[0] + W + 1, R[1]]];
+ }
+ function Es(R, S) {
+ if (!lc(S, R.length)) return [1 / 0, 1 / 0, -1 / 0, -1 / 0];
+ let F = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
+ for (let W = S[0]; W <= S[1]; ++W) Vu(F, R[W]);
+ return F;
+ }
+ function Hs(R) {
+ let S = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
+ for (let F of R) for (let W of F) Vu(S, W);
+ return S;
+ }
+ function Go(R) {
+ return R[0] !== -1 / 0 && R[1] !== -1 / 0 && R[2] !== 1 / 0 && R[3] !== 1 / 0;
+ }
+ function ps(R, S, F) {
+ if (!Go(R) || !Go(S)) return NaN;
+ let W = 0, te = 0;
+ return R[2] < S[0] && (W = S[0] - R[2]), R[0] > S[2] && (W = R[0] - S[2]), R[1] > S[3] && (te = R[1] - S[3]), R[3] < S[1] && (te = S[1] - R[3]), F.distance([0, 0], [W, te]);
+ }
+ function uc(R, S, F) {
+ let W = F.pointOnLine(S, R);
+ return F.distance(R, W.point);
+ }
+ function xl(R, S, F, W, te) {
+ let fe = Math.min(uc(R, [F, W], te), uc(S, [F, W], te)), pe = Math.min(uc(F, [R, S], te), uc(W, [R, S], te));
+ return Math.min(fe, pe);
+ }
+ function Gu(R, S, F, W, te) {
+ if (!lc(S, R.length) || !lc(W, F.length)) return 1 / 0;
+ let fe = 1 / 0;
+ for (let pe = S[0]; pe < S[1]; ++pe) {
+ let Fe = R[pe], Ke = R[pe + 1];
+ for (let ct = W[0]; ct < W[1]; ++ct) {
+ let Lt = F[ct], Jt = F[ct + 1];
+ if (Kl(Fe, Ke, Lt, Jt)) return 0;
+ fe = Math.min(fe, xl(Fe, Ke, Lt, Jt, te));
+ }
+ }
+ return fe;
+ }
+ function qs(R, S, F, W, te) {
+ if (!lc(S, R.length) || !lc(W, F.length)) return NaN;
+ let fe = 1 / 0;
+ for (let pe = S[0]; pe <= S[1]; ++pe) for (let Fe = W[0]; Fe <= W[1]; ++Fe) if (fe = Math.min(fe, te.distance(R[pe], F[Fe])), fe === 0) return fe;
+ return fe;
+ }
+ function od(R, S, F) {
+ if (Hl(R, S, true)) return 0;
+ let W = 1 / 0;
+ for (let te of S) {
+ let fe = te[0], pe = te[te.length - 1];
+ if (fe !== pe && (W = Math.min(W, uc(R, [pe, fe], F)), W === 0)) return W;
+ let Fe = F.pointOnLine(te, R);
+ if (W = Math.min(W, F.distance(R, Fe.point)), W === 0) return W;
+ }
+ return W;
+ }
+ function Po(R, S, F, W) {
+ if (!lc(S, R.length)) return NaN;
+ for (let fe = S[0]; fe <= S[1]; ++fe) if (Hl(R[fe], F, true)) return 0;
+ let te = 1 / 0;
+ for (let fe = S[0]; fe < S[1]; ++fe) {
+ let pe = R[fe], Fe = R[fe + 1];
+ for (let Ke of F) for (let ct = 0, Lt = Ke.length, Jt = Lt - 1; ct < Lt; Jt = ct++) {
+ let cr = Ke[Jt], mr = Ke[ct];
+ if (Kl(pe, Fe, cr, mr)) return 0;
+ te = Math.min(te, xl(pe, Fe, cr, mr, W));
+ }
+ }
+ return te;
+ }
+ function sd(R, S) {
+ for (let F of R) for (let W of F) if (Hl(W, S, true)) return true;
+ return false;
+ }
+ function Ko(R, S, F, W = 1 / 0) {
+ let te = Hs(R), fe = Hs(S);
+ if (W !== 1 / 0 && ps(te, fe, F) >= W) return W;
+ if (Ol(te, fe)) {
+ if (sd(R, S)) return 0;
+ } else if (sd(S, R)) return 0;
+ let pe = 1 / 0;
+ for (let Fe of R) for (let Ke = 0, ct = Fe.length, Lt = ct - 1; Ke < ct; Lt = Ke++) {
+ let Jt = Fe[Lt], cr = Fe[Ke];
+ for (let mr of S) for (let Pr = 0, zr = mr.length, ui = zr - 1; Pr < zr; ui = Pr++) {
+ let yi = mr[ui], vn = mr[Pr];
+ if (Kl(Jt, cr, yi, vn)) return 0;
+ pe = Math.min(pe, xl(Jt, cr, yi, vn, F));
+ }
+ }
+ return pe;
+ }
+ function Pa(R, S, F, W, te, fe) {
+ if (!fe) return;
+ let pe = ps(Es(W, fe), te, F);
+ pe < S && R.push([pe, fe, [0, 0]]);
+ }
+ function af(R, S, F, W, te, fe, pe) {
+ if (!fe || !pe) return;
+ let Fe = ps(Es(W, fe), Es(te, pe), F);
+ Fe < S && R.push([Fe, fe, pe]);
+ }
+ function Hu(R, S, F, W, te = 1 / 0) {
+ let fe = Math.min(W.distance(R[0], F[0][0]), te);
+ if (fe === 0) return fe;
+ let pe = new Zc([[0, [0, R.length - 1], [0, 0]]], $l), Fe = Hs(F);
+ for (; pe.length > 0; ) {
+ let Ke = pe.pop();
+ if (Ke[0] >= fe) continue;
+ let ct = Ke[1], Lt = S ? 50 : 100;
+ if (fl(ct) <= Lt) {
+ if (!lc(ct, R.length)) return NaN;
+ if (S) {
+ let Jt = Po(R, ct, F, W);
+ if (isNaN(Jt) || Jt === 0) return Jt;
+ fe = Math.min(fe, Jt);
+ } else for (let Jt = ct[0]; Jt <= ct[1]; ++Jt) {
+ let cr = od(R[Jt], F, W);
+ if (fe = Math.min(fe, cr), fe === 0) return 0;
+ }
+ } else {
+ let Jt = Fu(ct, S);
+ Pa(pe, fe, W, R, Fe, Jt[0]), Pa(pe, fe, W, R, Fe, Jt[1]);
+ }
+ }
+ return fe;
+ }
+ function bl(R, S, F, W, te, fe = 1 / 0) {
+ let pe = Math.min(fe, te.distance(R[0], F[0]));
+ if (pe === 0) return pe;
+ let Fe = new Zc([[0, [0, R.length - 1], [0, F.length - 1]]], $l);
+ for (; Fe.length > 0; ) {
+ let Ke = Fe.pop();
+ if (Ke[0] >= pe) continue;
+ let ct = Ke[1], Lt = Ke[2], Jt = S ? 50 : 100, cr = W ? 50 : 100;
+ if (fl(ct) <= Jt && fl(Lt) <= cr) {
+ if (!lc(ct, R.length) && lc(Lt, F.length)) return NaN;
+ let mr;
+ if (S && W) mr = Gu(R, ct, F, Lt, te), pe = Math.min(pe, mr);
+ else if (S && !W) {
+ let Pr = R.slice(ct[0], ct[1] + 1);
+ for (let zr = Lt[0]; zr <= Lt[1]; ++zr) if (mr = uc(F[zr], Pr, te), pe = Math.min(pe, mr), pe === 0) return pe;
+ } else if (!S && W) {
+ let Pr = F.slice(Lt[0], Lt[1] + 1);
+ for (let zr = ct[0]; zr <= ct[1]; ++zr) if (mr = uc(R[zr], Pr, te), pe = Math.min(pe, mr), pe === 0) return pe;
+ } else mr = qs(R, ct, F, Lt, te), pe = Math.min(pe, mr);
+ } else {
+ let mr = Fu(ct, S), Pr = Fu(Lt, W);
+ af(Fe, pe, te, R, F, mr[0], Pr[0]), af(Fe, pe, te, R, F, mr[0], Pr[1]), af(Fe, pe, te, R, F, mr[1], Pr[0]), af(Fe, pe, te, R, F, mr[1], Pr[1]);
+ }
+ }
+ return pe;
+ }
+ function Hf(R) {
+ return R.type === "MultiPolygon" ? R.coordinates.map((S) => ({ type: "Polygon", coordinates: S })) : R.type === "MultiLineString" ? R.coordinates.map((S) => ({ type: "LineString", coordinates: S })) : R.type === "MultiPoint" ? R.coordinates.map((S) => ({ type: "Point", coordinates: S })) : [R];
+ }
+ class Ic {
+ constructor(S, F) {
+ this.type = _t, this.geojson = S, this.geometries = F;
+ }
+ static parse(S, F) {
+ if (S.length !== 2) return F.error(`'distance' expression requires exactly one argument, but found ${S.length - 1} instead.`);
+ if (yn(S[1])) {
+ let W = S[1];
+ if (W.type === "FeatureCollection") return new Ic(W, W.features.map((te) => Hf(te.geometry)).flat());
+ if (W.type === "Feature") return new Ic(W, Hf(W.geometry));
+ if ("type" in W && "coordinates" in W) return new Ic(W, Hf(W));
+ }
+ return F.error("'distance' expression requires valid geojson object that contains polygon geometry type.");
+ }
+ evaluate(S) {
+ if (S.geometry() != null && S.canonicalID() != null) {
+ if (S.geometryType() === "Point") return function(F, W) {
+ let te = F.geometry(), fe = te.flat().map((Ke) => _a([Ke.x, Ke.y], F.canonical));
+ if (te.length === 0) return NaN;
+ let pe = new Gf(fe[0][1]), Fe = 1 / 0;
+ for (let Ke of W) {
+ switch (Ke.type) {
+ case "Point":
+ Fe = Math.min(Fe, bl(fe, false, [Ke.coordinates], false, pe, Fe));
+ break;
+ case "LineString":
+ Fe = Math.min(Fe, bl(fe, false, Ke.coordinates, true, pe, Fe));
+ break;
+ case "Polygon":
+ Fe = Math.min(Fe, Hu(fe, false, Ke.coordinates, pe, Fe));
+ }
+ if (Fe === 0) return Fe;
+ }
+ return Fe;
+ }(S, this.geometries);
+ if (S.geometryType() === "LineString") return function(F, W) {
+ let te = F.geometry(), fe = te.flat().map((Ke) => _a([Ke.x, Ke.y], F.canonical));
+ if (te.length === 0) return NaN;
+ let pe = new Gf(fe[0][1]), Fe = 1 / 0;
+ for (let Ke of W) {
+ switch (Ke.type) {
+ case "Point":
+ Fe = Math.min(Fe, bl(fe, true, [Ke.coordinates], false, pe, Fe));
+ break;
+ case "LineString":
+ Fe = Math.min(Fe, bl(fe, true, Ke.coordinates, true, pe, Fe));
+ break;
+ case "Polygon":
+ Fe = Math.min(Fe, Hu(fe, true, Ke.coordinates, pe, Fe));
+ }
+ if (Fe === 0) return Fe;
+ }
+ return Fe;
+ }(S, this.geometries);
+ if (S.geometryType() === "Polygon") return function(F, W) {
+ let te = F.geometry();
+ if (te.length === 0 || te[0].length === 0) return NaN;
+ let fe = Cf(te, 0).map((Ke) => Ke.map((ct) => ct.map((Lt) => _a([Lt.x, Lt.y], F.canonical)))), pe = new Gf(fe[0][0][0][1]), Fe = 1 / 0;
+ for (let Ke of W) for (let ct of fe) {
+ switch (Ke.type) {
+ case "Point":
+ Fe = Math.min(Fe, Hu([Ke.coordinates], false, ct, pe, Fe));
+ break;
+ case "LineString":
+ Fe = Math.min(Fe, Hu(Ke.coordinates, true, ct, pe, Fe));
+ break;
+ case "Polygon":
+ Fe = Math.min(Fe, Ko(ct, Ke.coordinates, pe, Fe));
+ }
+ if (Fe === 0) return Fe;
+ }
+ return Fe;
+ }(S, this.geometries);
+ }
+ return NaN;
+ }
+ eachChild() {
+ }
+ outputDefined() {
+ return true;
+ }
+ }
+ let yf = { "==": us, "!=": il, ">": cl, "<": As, ">=": zs, "<=": Ks, array: Fa, at: kr, boolean: Fa, case: An, coalesce: Fs, collator: Io, format: Yl, image: Su, in: Jr, "index-of": vi, interpolate: ko, "interpolate-hcl": ko, "interpolate-lab": ko, length: nc, let: jn, literal: ua, match: hn, number: Fa, "number-format": ls, object: Fa, slice: Mn, step: _n, string: Fa, "to-boolean": da, "to-color": da, "to-number": da, "to-string": da, var: Mt, within: pl, distance: Ic };
+ class Bl {
+ constructor(S, F, W, te) {
+ this.name = S, this.type = F, this._evaluate = W, this.args = te;
+ }
+ evaluate(S) {
+ return this._evaluate(S, this.args);
+ }
+ eachChild(S) {
+ this.args.forEach(S);
+ }
+ outputDefined() {
+ return false;
+ }
+ static parse(S, F) {
+ let W = S[0], te = Bl.definitions[W];
+ if (!te) return F.error(`Unknown expression "${W}". If you wanted a literal array, use ["literal", [...]].`, 0);
+ let fe = Array.isArray(te) ? te[0] : te.type, pe = Array.isArray(te) ? [[te[1], te[2]]] : te.overloads, Fe = pe.filter(([ct]) => !Array.isArray(ct) || ct.length === S.length - 1), Ke = null;
+ for (let [ct, Lt] of Fe) {
+ Ke = new vo(F.registry, eh, F.path, null, F.scope);
+ let Jt = [], cr = false;
+ for (let mr = 1; mr < S.length; mr++) {
+ let Pr = S[mr], zr = Array.isArray(ct) ? ct[mr - 1] : ct.type, ui = Ke.parse(Pr, 1 + Jt.length, zr);
+ if (!ui) {
+ cr = true;
+ break;
+ }
+ Jt.push(ui);
+ }
+ if (!cr) if (Array.isArray(ct) && ct.length !== Jt.length) Ke.error(`Expected ${ct.length} arguments, but found ${Jt.length} instead.`);
+ else {
+ for (let mr = 0; mr < Jt.length; mr++) {
+ let Pr = Array.isArray(ct) ? ct[mr] : ct.type, zr = Jt[mr];
+ Ke.concat(mr + 1).checkSubtype(Pr, zr.type);
+ }
+ if (Ke.errors.length === 0) return new Bl(W, fe, Lt, Jt);
+ }
+ }
+ if (Fe.length === 1) F.errors.push(...Ke.errors);
+ else {
+ let ct = (Fe.length ? Fe : pe).map(([Jt]) => {
+ return cr = Jt, Array.isArray(cr) ? `(${cr.map(Je).join(", ")})` : `(${Je(cr.type)}...)`;
+ var cr;
+ }).join(" | "), Lt = [];
+ for (let Jt = 1; Jt < S.length; Jt++) {
+ let cr = F.parse(S[Jt], 1 + Lt.length);
+ if (!cr) return null;
+ Lt.push(Je(cr.type));
+ }
+ F.error(`Expected arguments of type ${ct}, but found (${Lt.join(", ")}) instead.`);
+ }
+ return null;
+ }
+ static register(S, F) {
+ Bl.definitions = F;
+ for (let W in F) S[W] = Bl;
+ }
+ }
+ function Ah(R, [S, F, W, te]) {
+ S = S.evaluate(R), F = F.evaluate(R), W = W.evaluate(R);
+ let fe = te ? te.evaluate(R) : 1, pe = fn(S, F, W, fe);
+ if (pe) throw new ma(pe);
+ return new nr(S / 255, F / 255, W / 255, fe, false);
+ }
+ function Qf(R, S) {
+ return R in S;
+ }
+ function _f(R, S) {
+ let F = S[R];
+ return F === void 0 ? null : F;
+ }
+ function Yc(R) {
+ return { type: R };
+ }
+ function eh(R) {
+ if (R instanceof Mt) return eh(R.boundExpression);
+ if (R instanceof Bl && R.name === "error" || R instanceof Io || R instanceof pl || R instanceof Ic) return false;
+ let S = R instanceof da || R instanceof Fa, F = true;
+ return R.eachChild((W) => {
+ F = S ? F && eh(W) : F && W instanceof ua;
+ }), !!F && th(R) && jf(R, ["zoom", "heatmap-density", "line-progress", "accumulated", "is-supported-script"]);
+ }
+ function th(R) {
+ if (R instanceof Bl && (R.name === "get" && R.args.length === 1 || R.name === "feature-state" || R.name === "has" && R.args.length === 1 || R.name === "properties" || R.name === "geometry-type" || R.name === "id" || /^filter-/.test(R.name)) || R instanceof pl || R instanceof Ic) return false;
+ let S = true;
+ return R.eachChild((F) => {
+ S && !th(F) && (S = false);
+ }), S;
+ }
+ function ju(R) {
+ if (R instanceof Bl && R.name === "feature-state") return false;
+ let S = true;
+ return R.eachChild((F) => {
+ S && !ju(F) && (S = false);
+ }), S;
+ }
+ function jf(R, S) {
+ if (R instanceof Bl && S.indexOf(R.name) >= 0) return false;
+ let F = true;
+ return R.eachChild((W) => {
+ F && !jf(W, S) && (F = false);
+ }), F;
+ }
+ function cc(R) {
+ return { result: "success", value: R };
+ }
+ function of(R) {
+ return { result: "error", value: R };
+ }
+ function Nl(R) {
+ return R["property-type"] === "data-driven" || R["property-type"] === "cross-faded-data-driven";
+ }
+ function Kc(R) {
+ return !!R.expression && R.expression.parameters.indexOf("zoom") > -1;
+ }
+ function Rc(R) {
+ return !!R.expression && R.expression.interpolated;
+ }
+ function gs(R) {
+ return R instanceof Number ? "number" : R instanceof String ? "string" : R instanceof Boolean ? "boolean" : Array.isArray(R) ? "array" : R === null ? "null" : typeof R;
+ }
+ function Wf(R) {
+ return typeof R == "object" && R !== null && !Array.isArray(R);
+ }
+ function Wh(R) {
+ return R;
+ }
+ function rh(R, S) {
+ let F = S.type === "color", W = R.stops && typeof R.stops[0][0] == "object", te = W || !(W || R.property !== void 0), fe = R.type || (Rc(S) ? "exponential" : "interval");
+ if (F || S.type === "padding") {
+ let Lt = F ? nr.parse : Qr.parse;
+ (R = $e({}, R)).stops && (R.stops = R.stops.map((Jt) => [Jt[0], Lt(Jt[1])])), R.default = Lt(R.default ? R.default : S.default);
+ }
+ if (R.colorSpace && (pe = R.colorSpace) !== "rgb" && pe !== "hcl" && pe !== "lab") throw new Error(`Unknown color space: "${R.colorSpace}"`);
+ var pe;
+ let Fe, Ke, ct;
+ if (fe === "exponential") Fe = ih;
+ else if (fe === "interval") Fe = Mu;
+ else if (fe === "categorical") {
+ Fe = Sh, Ke = /* @__PURE__ */ Object.create(null);
+ for (let Lt of R.stops) Ke[Lt[0]] = Lt[1];
+ ct = typeof R.stops[0][0];
+ } else {
+ if (fe !== "identity") throw new Error(`Unknown function type "${fe}"`);
+ Fe = js;
+ }
+ if (W) {
+ let Lt = {}, Jt = [];
+ for (let Pr = 0; Pr < R.stops.length; Pr++) {
+ let zr = R.stops[Pr], ui = zr[0].zoom;
+ Lt[ui] === void 0 && (Lt[ui] = { zoom: ui, type: R.type, property: R.property, default: R.default, stops: [] }, Jt.push(ui)), Lt[ui].stops.push([zr[0].value, zr[1]]);
+ }
+ let cr = [];
+ for (let Pr of Jt) cr.push([Lt[Pr].zoom, rh(Lt[Pr], S)]);
+ let mr = { name: "linear" };
+ return { kind: "composite", interpolationType: mr, interpolationFactor: ko.interpolationFactor.bind(void 0, mr), zoomStops: cr.map((Pr) => Pr[0]), evaluate: ({ zoom: Pr }, zr) => ih({ stops: cr, base: R.base }, S, Pr).evaluate(Pr, zr) };
+ }
+ if (te) {
+ let Lt = fe === "exponential" ? { name: "exponential", base: R.base !== void 0 ? R.base : 1 } : null;
+ return { kind: "camera", interpolationType: Lt, interpolationFactor: ko.interpolationFactor.bind(void 0, Lt), zoomStops: R.stops.map((Jt) => Jt[0]), evaluate: ({ zoom: Jt }) => Fe(R, S, Jt, Ke, ct) };
+ }
+ return { kind: "source", evaluate(Lt, Jt) {
+ let cr = Jt && Jt.properties ? Jt.properties[R.property] : void 0;
+ return cr === void 0 ? sf(R.default, S.default) : Fe(R, S, cr, Ke, ct);
+ } };
+ }
+ function sf(R, S, F) {
+ return R !== void 0 ? R : S !== void 0 ? S : F !== void 0 ? F : void 0;
+ }
+ function Sh(R, S, F, W, te) {
+ return sf(typeof F === te ? W[F] : void 0, R.default, S.default);
+ }
+ function Mu(R, S, F) {
+ if (gs(F) !== "number") return sf(R.default, S.default);
+ let W = R.stops.length;
+ if (W === 1 || F <= R.stops[0][0]) return R.stops[0][1];
+ if (F >= R.stops[W - 1][0]) return R.stops[W - 1][1];
+ let te = Li(R.stops.map((fe) => fe[0]), F);
+ return R.stops[te][1];
+ }
+ function ih(R, S, F) {
+ let W = R.base !== void 0 ? R.base : 1;
+ if (gs(F) !== "number") return sf(R.default, S.default);
+ let te = R.stops.length;
+ if (te === 1 || F <= R.stops[0][0]) return R.stops[0][1];
+ if (F >= R.stops[te - 1][0]) return R.stops[te - 1][1];
+ let fe = Li(R.stops.map((Lt) => Lt[0]), F), pe = function(Lt, Jt, cr, mr) {
+ let Pr = mr - cr, zr = Lt - cr;
+ return Pr === 0 ? 0 : Jt === 1 ? zr / Pr : (Math.pow(Jt, zr) - 1) / (Math.pow(Jt, Pr) - 1);
+ }(F, W, R.stops[fe][0], R.stops[fe + 1][0]), Fe = R.stops[fe][1], Ke = R.stops[fe + 1][1], ct = Lo[S.type] || Wh;
+ return typeof Fe.evaluate == "function" ? { evaluate(...Lt) {
+ let Jt = Fe.evaluate.apply(void 0, Lt), cr = Ke.evaluate.apply(void 0, Lt);
+ if (Jt !== void 0 && cr !== void 0) return ct(Jt, cr, pe, R.colorSpace);
+ } } : ct(Fe, Ke, pe, R.colorSpace);
+ }
+ function js(R, S, F) {
+ switch (S.type) {
+ case "color":
+ F = nr.parse(F);
+ break;
+ case "formatted":
+ F = ri.fromString(F.toString());
+ break;
+ case "resolvedImage":
+ F = tn.fromString(F.toString());
+ break;
+ case "padding":
+ F = Qr.parse(F);
+ break;
+ default:
+ gs(F) === S.type || S.type === "enum" && S.values[F] || (F = void 0);
+ }
+ return sf(F, R.default, S.default);
+ }
+ Bl.register(yf, { error: [{ kind: "error" }, [It], (R, [S]) => {
+ throw new ma(S.evaluate(R));
+ }], typeof: [It, [wr], (R, [S]) => Je(Sn(S.evaluate(R)))], "to-rgba": [Ge(_t, 4), [er], (R, [S]) => {
+ let [F, W, te, fe] = S.evaluate(R).rgb;
+ return [255 * F, 255 * W, 255 * te, fe];
+ }], rgb: [er, [_t, _t, _t], Ah], rgba: [er, [_t, _t, _t, _t], Ah], has: { type: mt, overloads: [[[It], (R, [S]) => Qf(S.evaluate(R), R.properties())], [[It, lr], (R, [S, F]) => Qf(S.evaluate(R), F.evaluate(R))]] }, get: { type: wr, overloads: [[[It], (R, [S]) => _f(S.evaluate(R), R.properties())], [[It, lr], (R, [S, F]) => _f(S.evaluate(R), F.evaluate(R))]] }, "feature-state": [wr, [It], (R, [S]) => _f(S.evaluate(R), R.featureState || {})], properties: [lr, [], (R) => R.properties()], "geometry-type": [It, [], (R) => R.geometryType()], id: [wr, [], (R) => R.id()], zoom: [_t, [], (R) => R.globals.zoom], "heatmap-density": [_t, [], (R) => R.globals.heatmapDensity || 0], "line-progress": [_t, [], (R) => R.globals.lineProgress || 0], accumulated: [wr, [], (R) => R.globals.accumulated === void 0 ? null : R.globals.accumulated], "+": [_t, Yc(_t), (R, S) => {
+ let F = 0;
+ for (let W of S) F += W.evaluate(R);
+ return F;
+ }], "*": [_t, Yc(_t), (R, S) => {
+ let F = 1;
+ for (let W of S) F *= W.evaluate(R);
+ return F;
+ }], "-": { type: _t, overloads: [[[_t, _t], (R, [S, F]) => S.evaluate(R) - F.evaluate(R)], [[_t], (R, [S]) => -S.evaluate(R)]] }, "/": [_t, [_t, _t], (R, [S, F]) => S.evaluate(R) / F.evaluate(R)], "%": [_t, [_t, _t], (R, [S, F]) => S.evaluate(R) % F.evaluate(R)], ln2: [_t, [], () => Math.LN2], pi: [_t, [], () => Math.PI], e: [_t, [], () => Math.E], "^": [_t, [_t, _t], (R, [S, F]) => Math.pow(S.evaluate(R), F.evaluate(R))], sqrt: [_t, [_t], (R, [S]) => Math.sqrt(S.evaluate(R))], log10: [_t, [_t], (R, [S]) => Math.log(S.evaluate(R)) / Math.LN10], ln: [_t, [_t], (R, [S]) => Math.log(S.evaluate(R))], log2: [_t, [_t], (R, [S]) => Math.log(S.evaluate(R)) / Math.LN2], sin: [_t, [_t], (R, [S]) => Math.sin(S.evaluate(R))], cos: [_t, [_t], (R, [S]) => Math.cos(S.evaluate(R))], tan: [_t, [_t], (R, [S]) => Math.tan(S.evaluate(R))], asin: [_t, [_t], (R, [S]) => Math.asin(S.evaluate(R))], acos: [_t, [_t], (R, [S]) => Math.acos(S.evaluate(R))], atan: [_t, [_t], (R, [S]) => Math.atan(S.evaluate(R))], min: [_t, Yc(_t), (R, S) => Math.min(...S.map((F) => F.evaluate(R)))], max: [_t, Yc(_t), (R, S) => Math.max(...S.map((F) => F.evaluate(R)))], abs: [_t, [_t], (R, [S]) => Math.abs(S.evaluate(R))], round: [_t, [_t], (R, [S]) => {
+ let F = S.evaluate(R);
+ return F < 0 ? -Math.round(-F) : Math.round(F);
+ }], floor: [_t, [_t], (R, [S]) => Math.floor(S.evaluate(R))], ceil: [_t, [_t], (R, [S]) => Math.ceil(S.evaluate(R))], "filter-==": [mt, [It, wr], (R, [S, F]) => R.properties()[S.value] === F.value], "filter-id-==": [mt, [wr], (R, [S]) => R.id() === S.value], "filter-type-==": [mt, [It], (R, [S]) => R.geometryType() === S.value], "filter-<": [mt, [It, wr], (R, [S, F]) => {
+ let W = R.properties()[S.value], te = F.value;
+ return typeof W == typeof te && W < te;
+ }], "filter-id-<": [mt, [wr], (R, [S]) => {
+ let F = R.id(), W = S.value;
+ return typeof F == typeof W && F < W;
+ }], "filter->": [mt, [It, wr], (R, [S, F]) => {
+ let W = R.properties()[S.value], te = F.value;
+ return typeof W == typeof te && W > te;
+ }], "filter-id->": [mt, [wr], (R, [S]) => {
+ let F = R.id(), W = S.value;
+ return typeof F == typeof W && F > W;
+ }], "filter-<=": [mt, [It, wr], (R, [S, F]) => {
+ let W = R.properties()[S.value], te = F.value;
+ return typeof W == typeof te && W <= te;
+ }], "filter-id-<=": [mt, [wr], (R, [S]) => {
+ let F = R.id(), W = S.value;
+ return typeof F == typeof W && F <= W;
+ }], "filter->=": [mt, [It, wr], (R, [S, F]) => {
+ let W = R.properties()[S.value], te = F.value;
+ return typeof W == typeof te && W >= te;
+ }], "filter-id->=": [mt, [wr], (R, [S]) => {
+ let F = R.id(), W = S.value;
+ return typeof F == typeof W && F >= W;
+ }], "filter-has": [mt, [wr], (R, [S]) => S.value in R.properties()], "filter-has-id": [mt, [], (R) => R.id() !== null && R.id() !== void 0], "filter-type-in": [mt, [Ge(It)], (R, [S]) => S.value.indexOf(R.geometryType()) >= 0], "filter-id-in": [mt, [Ge(wr)], (R, [S]) => S.value.indexOf(R.id()) >= 0], "filter-in-small": [mt, [It, Ge(wr)], (R, [S, F]) => F.value.indexOf(R.properties()[S.value]) >= 0], "filter-in-large": [mt, [It, Ge(wr)], (R, [S, F]) => function(W, te, fe, pe) {
+ for (; fe <= pe; ) {
+ let Fe = fe + pe >> 1;
+ if (te[Fe] === W) return true;
+ te[Fe] > W ? pe = Fe - 1 : fe = Fe + 1;
+ }
+ return false;
+ }(R.properties()[S.value], F.value, 0, F.value.length - 1)], all: { type: mt, overloads: [[[mt, mt], (R, [S, F]) => S.evaluate(R) && F.evaluate(R)], [Yc(mt), (R, S) => {
+ for (let F of S) if (!F.evaluate(R)) return false;
+ return true;
+ }]] }, any: { type: mt, overloads: [[[mt, mt], (R, [S, F]) => S.evaluate(R) || F.evaluate(R)], [Yc(mt), (R, S) => {
+ for (let F of S) if (F.evaluate(R)) return true;
+ return false;
+ }]] }, "!": [mt, [mt], (R, [S]) => !S.evaluate(R)], "is-supported-script": [mt, [It], (R, [S]) => {
+ let F = R.globals && R.globals.isSupportedScript;
+ return !F || F(S.evaluate(R));
+ }], upcase: [It, [It], (R, [S]) => S.evaluate(R).toUpperCase()], downcase: [It, [It], (R, [S]) => S.evaluate(R).toLowerCase()], concat: [It, Yc(wr), (R, S) => S.map((F) => Ba(F.evaluate(R))).join("")], "resolved-locale": [It, [Lr], (R, [S]) => S.evaluate(R).resolvedLocale()] });
+ class Eu {
+ constructor(S, F) {
+ var W;
+ this.expression = S, this._warningHistory = {}, this._evaluator = new Ha(), this._defaultValue = F ? (W = F).type === "color" && Wf(W.default) ? new nr(0, 0, 0, 0) : W.type === "color" ? nr.parse(W.default) || null : W.type === "padding" ? Qr.parse(W.default) || null : W.type === "variableAnchorOffsetCollection" ? $i.parse(W.default) || null : W.default === void 0 ? null : W.default : null, this._enumValues = F && F.type === "enum" ? F.values : null;
+ }
+ evaluateWithoutErrorHandling(S, F, W, te, fe, pe) {
+ return this._evaluator.globals = S, this._evaluator.feature = F, this._evaluator.featureState = W, this._evaluator.canonical = te, this._evaluator.availableImages = fe || null, this._evaluator.formattedSection = pe, this.expression.evaluate(this._evaluator);
+ }
+ evaluate(S, F, W, te, fe, pe) {
+ this._evaluator.globals = S, this._evaluator.feature = F || null, this._evaluator.featureState = W || null, this._evaluator.canonical = te, this._evaluator.availableImages = fe || null, this._evaluator.formattedSection = pe || null;
+ try {
+ let Fe = this.expression.evaluate(this._evaluator);
+ if (Fe == null || typeof Fe == "number" && Fe != Fe) return this._defaultValue;
+ if (this._enumValues && !(Fe in this._enumValues)) throw new ma(`Expected value to be one of ${Object.keys(this._enumValues).map((Ke) => JSON.stringify(Ke)).join(", ")}, but found ${JSON.stringify(Fe)} instead.`);
+ return Fe;
+ } catch (Fe) {
+ return this._warningHistory[Fe.message] || (this._warningHistory[Fe.message] = true, typeof console != "undefined" && console.warn(Fe.message)), this._defaultValue;
+ }
+ }
+ }
+ function Dc(R) {
+ return Array.isArray(R) && R.length > 0 && typeof R[0] == "string" && R[0] in yf;
+ }
+ function ks(R, S) {
+ let F = new vo(yf, eh, [], S ? function(te) {
+ let fe = { color: er, string: It, number: _t, enum: It, boolean: mt, formatted: ti, padding: Br, resolvedImage: Vr, variableAnchorOffsetCollection: dt };
+ return te.type === "array" ? Ge(fe[te.value] || wr, te.length) : fe[te.type];
+ }(S) : void 0), W = F.parse(R, void 0, void 0, void 0, S && S.type === "string" ? { typeAnnotation: "coerce" } : void 0);
+ return W ? cc(new Eu(W, S)) : of(F.errors);
+ }
+ class bc {
+ constructor(S, F) {
+ this.kind = S, this._styleExpression = F, this.isStateDependent = S !== "constant" && !ju(F.expression);
+ }
+ evaluateWithoutErrorHandling(S, F, W, te, fe, pe) {
+ return this._styleExpression.evaluateWithoutErrorHandling(S, F, W, te, fe, pe);
+ }
+ evaluate(S, F, W, te, fe, pe) {
+ return this._styleExpression.evaluate(S, F, W, te, fe, pe);
+ }
+ }
+ class hu {
+ constructor(S, F, W, te) {
+ this.kind = S, this.zoomStops = W, this._styleExpression = F, this.isStateDependent = S !== "camera" && !ju(F.expression), this.interpolationType = te;
+ }
+ evaluateWithoutErrorHandling(S, F, W, te, fe, pe) {
+ return this._styleExpression.evaluateWithoutErrorHandling(S, F, W, te, fe, pe);
+ }
+ evaluate(S, F, W, te, fe, pe) {
+ return this._styleExpression.evaluate(S, F, W, te, fe, pe);
+ }
+ interpolationFactor(S, F, W) {
+ return this.interpolationType ? ko.interpolationFactor(this.interpolationType, S, F, W) : 0;
+ }
+ }
+ function _u(R, S) {
+ let F = ks(R, S);
+ if (F.result === "error") return F;
+ let W = F.value.expression, te = th(W);
+ if (!te && !Nl(S)) return of([new St("", "data expressions not supported")]);
+ let fe = jf(W, ["zoom"]);
+ if (!fe && !Kc(S)) return of([new St("", "zoom expressions not supported")]);
+ let pe = nh(W);
+ return pe || fe ? pe instanceof St ? of([pe]) : pe instanceof ko && !Rc(S) ? of([new St("", '"interpolate" expressions cannot be used with this property')]) : cc(pe ? new hu(te ? "camera" : "composite", F.value, pe.labels, pe instanceof ko ? pe.interpolation : void 0) : new bc(te ? "constant" : "source", F.value)) : of([new St("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);
+ }
+ class nl {
+ constructor(S, F) {
+ this._parameters = S, this._specification = F, $e(this, rh(this._parameters, this._specification));
+ }
+ static deserialize(S) {
+ return new nl(S._parameters, S._specification);
+ }
+ static serialize(S) {
+ return { _parameters: S._parameters, _specification: S._specification };
+ }
+ }
+ function nh(R) {
+ let S = null;
+ if (R instanceof jn) S = nh(R.result);
+ else if (R instanceof Fs) {
+ for (let F of R.args) if (S = nh(F), S) break;
+ } else (R instanceof _n || R instanceof ko) && R.input instanceof Bl && R.input.name === "zoom" && (S = R);
+ return S instanceof St || R.eachChild((F) => {
+ let W = nh(F);
+ W instanceof St ? S = W : !S && W ? S = new St("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : S && W && S !== W && (S = new St("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));
+ }), S;
+ }
+ function Mh(R) {
+ if (R === true || R === false) return true;
+ if (!Array.isArray(R) || R.length === 0) return false;
+ switch (R[0]) {
+ case "has":
+ return R.length >= 2 && R[1] !== "$id" && R[1] !== "$type";
+ case "in":
+ return R.length >= 3 && (typeof R[1] != "string" || Array.isArray(R[2]));
+ case "!in":
+ case "!has":
+ case "none":
+ return false;
+ case "==":
+ case "!=":
+ case ">":
+ case ">=":
+ case "<":
+ case "<=":
+ return R.length !== 3 || Array.isArray(R[1]) || Array.isArray(R[2]);
+ case "any":
+ case "all":
+ for (let S of R.slice(1)) if (!Mh(S) && typeof S != "boolean") return false;
+ return true;
+ default:
+ return true;
+ }
+ }
+ let zu = { type: "boolean", default: false, transition: false, "property-type": "data-driven", expression: { interpolated: false, parameters: ["zoom", "feature"] } };
+ function Fc(R) {
+ if (R == null) return { filter: () => true, needGeometry: false };
+ Mh(R) || (R = xf(R));
+ let S = ks(R, zu);
+ if (S.result === "error") throw new Error(S.value.map((F) => `${F.key}: ${F.message}`).join(", "));
+ return { filter: (F, W, te) => S.value.evaluate(F, W, {}, te), needGeometry: bd(R) };
+ }
+ function wc(R, S) {
+ return R < S ? -1 : R > S ? 1 : 0;
+ }
+ function bd(R) {
+ if (!Array.isArray(R)) return false;
+ if (R[0] === "within" || R[0] === "distance") return true;
+ for (let S = 1; S < R.length; S++) if (bd(R[S])) return true;
+ return false;
+ }
+ function xf(R) {
+ if (!R) return true;
+ let S = R[0];
+ return R.length <= 1 ? S !== "any" : S === "==" ? Pf(R[1], R[2], "==") : S === "!=" ? jl(Pf(R[1], R[2], "==")) : S === "<" || S === ">" || S === "<=" || S === ">=" ? Pf(R[1], R[2], S) : S === "any" ? (F = R.slice(1), ["any"].concat(F.map(xf))) : S === "all" ? ["all"].concat(R.slice(1).map(xf)) : S === "none" ? ["all"].concat(R.slice(1).map(xf).map(jl)) : S === "in" ? Ou(R[1], R.slice(2)) : S === "!in" ? jl(Ou(R[1], R.slice(2))) : S === "has" ? bf(R[1]) : S !== "!has" || jl(bf(R[1]));
+ var F;
+ }
+ function Pf(R, S, F) {
+ switch (R) {
+ case "$type":
+ return [`filter-type-${F}`, S];
+ case "$id":
+ return [`filter-id-${F}`, S];
+ default:
+ return [`filter-${F}`, R, S];
+ }
+ }
+ function Ou(R, S) {
+ if (S.length === 0) return false;
+ switch (R) {
+ case "$type":
+ return ["filter-type-in", ["literal", S]];
+ case "$id":
+ return ["filter-id-in", ["literal", S]];
+ default:
+ return S.length > 200 && !S.some((F) => typeof F != typeof S[0]) ? ["filter-in-large", R, ["literal", S.sort(wc)]] : ["filter-in-small", R, ["literal", S]];
+ }
+ }
+ function bf(R) {
+ switch (R) {
+ case "$type":
+ return true;
+ case "$id":
+ return ["filter-has-id"];
+ default:
+ return ["filter-has", R];
+ }
+ }
+ function jl(R) {
+ return ["!", R];
+ }
+ function lf(R) {
+ let S = typeof R;
+ if (S === "number" || S === "boolean" || S === "string" || R == null) return JSON.stringify(R);
+ if (Array.isArray(R)) {
+ let te = "[";
+ for (let fe of R) te += `${lf(fe)},`;
+ return `${te}]`;
+ }
+ let F = Object.keys(R).sort(), W = "{";
+ for (let te = 0; te < F.length; te++) W += `${JSON.stringify(F[te])}:${lf(R[F[te]])},`;
+ return `${W}}`;
+ }
+ function Xh(R) {
+ let S = "";
+ for (let F of je) S += `/${lf(R[F])}`;
+ return S;
+ }
+ function If(R) {
+ let S = R.value;
+ return S ? [new fr(R.key, S, "constants have been deprecated as of v8")] : [];
+ }
+ function Cs(R) {
+ return R instanceof Number || R instanceof String || R instanceof Boolean ? R.valueOf() : R;
+ }
+ function du(R) {
+ if (Array.isArray(R)) return R.map(du);
+ if (R instanceof Object && !(R instanceof Number || R instanceof String || R instanceof Boolean)) {
+ let S = {};
+ for (let F in R) S[F] = du(R[F]);
+ return S;
+ }
+ return Cs(R);
+ }
+ function ku(R) {
+ let S = R.key, F = R.value, W = R.valueSpec || {}, te = R.objectElementValidators || {}, fe = R.style, pe = R.styleSpec, Fe = R.validateSpec, Ke = [], ct = gs(F);
+ if (ct !== "object") return [new fr(S, F, `object expected, ${ct} found`)];
+ for (let Lt in F) {
+ let Jt = Lt.split(".")[0], cr = W[Jt] || W["*"], mr;
+ if (te[Jt]) mr = te[Jt];
+ else if (W[Jt]) mr = Fe;
+ else if (te["*"]) mr = te["*"];
+ else {
+ if (!W["*"]) {
+ Ke.push(new fr(S, F[Lt], `unknown property "${Lt}"`));
+ continue;
+ }
+ mr = Fe;
+ }
+ Ke = Ke.concat(mr({ key: (S && `${S}.`) + Lt, value: F[Lt], valueSpec: cr, style: fe, styleSpec: pe, object: F, objectKey: Lt, validateSpec: Fe }, F));
+ }
+ for (let Lt in W) te[Lt] || W[Lt].required && W[Lt].default === void 0 && F[Lt] === void 0 && Ke.push(new fr(S, F, `missing required property "${Lt}"`));
+ return Ke;
+ }
+ function Xf(R) {
+ let S = R.value, F = R.valueSpec, W = R.style, te = R.styleSpec, fe = R.key, pe = R.arrayElementValidator || R.validateSpec;
+ if (gs(S) !== "array") return [new fr(fe, S, `array expected, ${gs(S)} found`)];
+ if (F.length && S.length !== F.length) return [new fr(fe, S, `array length ${F.length} expected, length ${S.length} found`)];
+ if (F["min-length"] && S.length < F["min-length"]) return [new fr(fe, S, `array length at least ${F["min-length"]} expected, length ${S.length} found`)];
+ let Fe = { type: F.value, values: F.values };
+ te.$version < 7 && (Fe.function = F.function), gs(F.value) === "object" && (Fe = F.value);
+ let Ke = [];
+ for (let ct = 0; ct < S.length; ct++) Ke = Ke.concat(pe({ array: S, arrayIndex: ct, value: S[ct], valueSpec: Fe, validateSpec: R.validateSpec, style: W, styleSpec: te, key: `${fe}[${ct}]` }));
+ return Ke;
+ }
+ function Us(R) {
+ let S = R.key, F = R.value, W = R.valueSpec, te = gs(F);
+ return te === "number" && F != F && (te = "NaN"), te !== "number" ? [new fr(S, F, `number expected, ${te} found`)] : "minimum" in W && F < W.minimum ? [new fr(S, F, `${F} is less than the minimum value ${W.minimum}`)] : "maximum" in W && F > W.maximum ? [new fr(S, F, `${F} is greater than the maximum value ${W.maximum}`)] : [];
+ }
+ function wf(R) {
+ let S = R.valueSpec, F = Cs(R.value.type), W, te, fe, pe = {}, Fe = F !== "categorical" && R.value.property === void 0, Ke = !Fe, ct = gs(R.value.stops) === "array" && gs(R.value.stops[0]) === "array" && gs(R.value.stops[0][0]) === "object", Lt = ku({ key: R.key, value: R.value, valueSpec: R.styleSpec.function, validateSpec: R.validateSpec, style: R.style, styleSpec: R.styleSpec, objectElementValidators: { stops: function(mr) {
+ if (F === "identity") return [new fr(mr.key, mr.value, 'identity function may not have a "stops" property')];
+ let Pr = [], zr = mr.value;
+ return Pr = Pr.concat(Xf({ key: mr.key, value: zr, valueSpec: mr.valueSpec, validateSpec: mr.validateSpec, style: mr.style, styleSpec: mr.styleSpec, arrayElementValidator: Jt })), gs(zr) === "array" && zr.length === 0 && Pr.push(new fr(mr.key, zr, "array must have at least one stop")), Pr;
+ }, default: function(mr) {
+ return mr.validateSpec({ key: mr.key, value: mr.value, valueSpec: S, validateSpec: mr.validateSpec, style: mr.style, styleSpec: mr.styleSpec });
+ } } });
+ return F === "identity" && Fe && Lt.push(new fr(R.key, R.value, 'missing required property "property"')), F === "identity" || R.value.stops || Lt.push(new fr(R.key, R.value, 'missing required property "stops"')), F === "exponential" && R.valueSpec.expression && !Rc(R.valueSpec) && Lt.push(new fr(R.key, R.value, "exponential functions not supported")), R.styleSpec.$version >= 8 && (Ke && !Nl(R.valueSpec) ? Lt.push(new fr(R.key, R.value, "property functions not supported")) : Fe && !Kc(R.valueSpec) && Lt.push(new fr(R.key, R.value, "zoom functions not supported"))), F !== "categorical" && !ct || R.value.property !== void 0 || Lt.push(new fr(R.key, R.value, '"property" property is required')), Lt;
+ function Jt(mr) {
+ let Pr = [], zr = mr.value, ui = mr.key;
+ if (gs(zr) !== "array") return [new fr(ui, zr, `array expected, ${gs(zr)} found`)];
+ if (zr.length !== 2) return [new fr(ui, zr, `array length 2 expected, length ${zr.length} found`)];
+ if (ct) {
+ if (gs(zr[0]) !== "object") return [new fr(ui, zr, `object expected, ${gs(zr[0])} found`)];
+ if (zr[0].zoom === void 0) return [new fr(ui, zr, "object stop key must have zoom")];
+ if (zr[0].value === void 0) return [new fr(ui, zr, "object stop key must have value")];
+ if (fe && fe > Cs(zr[0].zoom)) return [new fr(ui, zr[0].zoom, "stop zoom values must appear in ascending order")];
+ Cs(zr[0].zoom) !== fe && (fe = Cs(zr[0].zoom), te = void 0, pe = {}), Pr = Pr.concat(ku({ key: `${ui}[0]`, value: zr[0], valueSpec: { zoom: {} }, validateSpec: mr.validateSpec, style: mr.style, styleSpec: mr.styleSpec, objectElementValidators: { zoom: Us, value: cr } }));
+ } else Pr = Pr.concat(cr({ key: `${ui}[0]`, value: zr[0], validateSpec: mr.validateSpec, style: mr.style, styleSpec: mr.styleSpec }, zr));
+ return Dc(du(zr[1])) ? Pr.concat([new fr(`${ui}[1]`, zr[1], "expressions are not allowed in function stops.")]) : Pr.concat(mr.validateSpec({ key: `${ui}[1]`, value: zr[1], valueSpec: S, validateSpec: mr.validateSpec, style: mr.style, styleSpec: mr.styleSpec }));
+ }
+ function cr(mr, Pr) {
+ let zr = gs(mr.value), ui = Cs(mr.value), yi = mr.value !== null ? mr.value : Pr;
+ if (W) {
+ if (zr !== W) return [new fr(mr.key, yi, `${zr} stop domain type must match previous stop domain type ${W}`)];
+ } else W = zr;
+ if (zr !== "number" && zr !== "string" && zr !== "boolean") return [new fr(mr.key, yi, "stop domain value must be a number, string, or boolean")];
+ if (zr !== "number" && F !== "categorical") {
+ let vn = `number expected, ${zr} found`;
+ return Nl(S) && F === void 0 && (vn += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new fr(mr.key, yi, vn)];
+ }
+ return F !== "categorical" || zr !== "number" || isFinite(ui) && Math.floor(ui) === ui ? F !== "categorical" && zr === "number" && te !== void 0 && ui < te ? [new fr(mr.key, yi, "stop domain values must appear in ascending order")] : (te = ui, F === "categorical" && ui in pe ? [new fr(mr.key, yi, "stop domain values must be unique")] : (pe[ui] = true, [])) : [new fr(mr.key, yi, `integer expected, found ${ui}`)];
+ }
+ }
+ function zc(R) {
+ let S = (R.expressionContext === "property" ? _u : ks)(du(R.value), R.valueSpec);
+ if (S.result === "error") return S.value.map((W) => new fr(`${R.key}${W.key}`, R.value, W.message));
+ let F = S.value.expression || S.value._styleExpression.expression;
+ if (R.expressionContext === "property" && R.propertyKey === "text-font" && !F.outputDefined()) return [new fr(R.key, R.value, `Invalid data expression for "${R.propertyKey}". Output values must be contained as literals within the expression.`)];
+ if (R.expressionContext === "property" && R.propertyType === "layout" && !ju(F)) return [new fr(R.key, R.value, '"feature-state" data expressions are not supported with layout properties.')];
+ if (R.expressionContext === "filter" && !ju(F)) return [new fr(R.key, R.value, '"feature-state" data expressions are not supported with filters.')];
+ if (R.expressionContext && R.expressionContext.indexOf("cluster") === 0) {
+ if (!jf(F, ["zoom", "feature-state"])) return [new fr(R.key, R.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')];
+ if (R.expressionContext === "cluster-initial" && !th(F)) return [new fr(R.key, R.value, "Feature data expressions are not supported with initial expression part of cluster properties.")];
+ }
+ return [];
+ }
+ function Wu(R) {
+ let S = R.key, F = R.value, W = R.valueSpec, te = [];
+ return Array.isArray(W.values) ? W.values.indexOf(Cs(F)) === -1 && te.push(new fr(S, F, `expected one of [${W.values.join(", ")}], ${JSON.stringify(F)} found`)) : Object.keys(W.values).indexOf(Cs(F)) === -1 && te.push(new fr(S, F, `expected one of [${Object.keys(W.values).join(", ")}], ${JSON.stringify(F)} found`)), te;
+ }
+ function Rf(R) {
+ return Mh(du(R.value)) ? zc($e({}, R, { expressionContext: "filter", valueSpec: { value: "boolean" } })) : Xu(R);
+ }
+ function Xu(R) {
+ let S = R.value, F = R.key;
+ if (gs(S) !== "array") return [new fr(F, S, `array expected, ${gs(S)} found`)];
+ let W = R.styleSpec, te, fe = [];
+ if (S.length < 1) return [new fr(F, S, "filter array must have at least 1 element")];
+ switch (fe = fe.concat(Wu({ key: `${F}[0]`, value: S[0], valueSpec: W.filter_operator, style: R.style, styleSpec: R.styleSpec })), Cs(S[0])) {
+ case "<":
+ case "<=":
+ case ">":
+ case ">=":
+ S.length >= 2 && Cs(S[1]) === "$type" && fe.push(new fr(F, S, `"$type" cannot be use with operator "${S[0]}"`));
+ case "==":
+ case "!=":
+ S.length !== 3 && fe.push(new fr(F, S, `filter array for operator "${S[0]}" must have 3 elements`));
+ case "in":
+ case "!in":
+ S.length >= 2 && (te = gs(S[1]), te !== "string" && fe.push(new fr(`${F}[1]`, S[1], `string expected, ${te} found`)));
+ for (let pe = 2; pe < S.length; pe++) te = gs(S[pe]), Cs(S[1]) === "$type" ? fe = fe.concat(Wu({ key: `${F}[${pe}]`, value: S[pe], valueSpec: W.geometry_type, style: R.style, styleSpec: R.styleSpec })) : te !== "string" && te !== "number" && te !== "boolean" && fe.push(new fr(`${F}[${pe}]`, S[pe], `string, number, or boolean expected, ${te} found`));
+ break;
+ case "any":
+ case "all":
+ case "none":
+ for (let pe = 1; pe < S.length; pe++) fe = fe.concat(Xu({ key: `${F}[${pe}]`, value: S[pe], style: R.style, styleSpec: R.styleSpec }));
+ break;
+ case "has":
+ case "!has":
+ te = gs(S[1]), S.length !== 2 ? fe.push(new fr(F, S, `filter array for "${S[0]}" operator must have 2 elements`)) : te !== "string" && fe.push(new fr(`${F}[1]`, S[1], `string expected, ${te} found`));
+ }
+ return fe;
+ }
+ function uf(R, S) {
+ let F = R.key, W = R.validateSpec, te = R.style, fe = R.styleSpec, pe = R.value, Fe = R.objectKey, Ke = fe[`${S}_${R.layerType}`];
+ if (!Ke) return [];
+ let ct = Fe.match(/^(.*)-transition$/);
+ if (S === "paint" && ct && Ke[ct[1]] && Ke[ct[1]].transition) return W({ key: F, value: pe, valueSpec: fe.transition, style: te, styleSpec: fe });
+ let Lt = R.valueSpec || Ke[Fe];
+ if (!Lt) return [new fr(F, pe, `unknown property "${Fe}"`)];
+ let Jt;
+ if (gs(pe) === "string" && Nl(Lt) && !Lt.tokens && (Jt = /^{([^}]+)}$/.exec(pe))) return [new fr(F, pe, `"${Fe}" does not support interpolation syntax
+Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(Jt[1])} }\`.`)];
+ let cr = [];
+ return R.layerType === "symbol" && (Fe === "text-field" && te && !te.glyphs && cr.push(new fr(F, pe, 'use of "text-field" requires a style "glyphs" property')), Fe === "text-font" && Wf(du(pe)) && Cs(pe.type) === "identity" && cr.push(new fr(F, pe, '"text-font" does not support identity functions'))), cr.concat(W({ key: R.key, value: pe, valueSpec: Lt, style: te, styleSpec: fe, expressionContext: "property", propertyType: S, propertyKey: Fe }));
+ }
+ function Zf(R) {
+ return uf(R, "paint");
+ }
+ function Wl(R) {
+ return uf(R, "layout");
+ }
+ function ah(R) {
+ let S = [], F = R.value, W = R.key, te = R.style, fe = R.styleSpec;
+ F.type || F.ref || S.push(new fr(W, F, 'either "type" or "ref" is required'));
+ let pe = Cs(F.type), Fe = Cs(F.ref);
+ if (F.id) {
+ let Ke = Cs(F.id);
+ for (let ct = 0; ct < R.arrayIndex; ct++) {
+ let Lt = te.layers[ct];
+ Cs(Lt.id) === Ke && S.push(new fr(W, F.id, `duplicate layer id "${F.id}", previously used at line ${Lt.id.__line__}`));
+ }
+ }
+ if ("ref" in F) {
+ let Ke;
+ ["type", "source", "source-layer", "filter", "layout"].forEach((ct) => {
+ ct in F && S.push(new fr(W, F[ct], `"${ct}" is prohibited for ref layers`));
+ }), te.layers.forEach((ct) => {
+ Cs(ct.id) === Fe && (Ke = ct);
+ }), Ke ? Ke.ref ? S.push(new fr(W, F.ref, "ref cannot reference another ref layer")) : pe = Cs(Ke.type) : S.push(new fr(W, F.ref, `ref layer "${Fe}" not found`));
+ } else if (pe !== "background") if (F.source) {
+ let Ke = te.sources && te.sources[F.source], ct = Ke && Cs(Ke.type);
+ Ke ? ct === "vector" && pe === "raster" ? S.push(new fr(W, F.source, `layer "${F.id}" requires a raster source`)) : ct !== "raster-dem" && pe === "hillshade" ? S.push(new fr(W, F.source, `layer "${F.id}" requires a raster-dem source`)) : ct === "raster" && pe !== "raster" ? S.push(new fr(W, F.source, `layer "${F.id}" requires a vector source`)) : ct !== "vector" || F["source-layer"] ? ct === "raster-dem" && pe !== "hillshade" ? S.push(new fr(W, F.source, "raster-dem source can only be used with layer type 'hillshade'.")) : pe !== "line" || !F.paint || !F.paint["line-gradient"] || ct === "geojson" && Ke.lineMetrics || S.push(new fr(W, F, `layer "${F.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)) : S.push(new fr(W, F, `layer "${F.id}" must specify a "source-layer"`)) : S.push(new fr(W, F.source, `source "${F.source}" not found`));
+ } else S.push(new fr(W, F, 'missing required property "source"'));
+ return S = S.concat(ku({ key: W, value: F, valueSpec: fe.layer, style: R.style, styleSpec: R.styleSpec, validateSpec: R.validateSpec, objectElementValidators: { "*": () => [], type: () => R.validateSpec({ key: `${W}.type`, value: F.type, valueSpec: fe.layer.type, style: R.style, styleSpec: R.styleSpec, validateSpec: R.validateSpec, object: F, objectKey: "type" }), filter: Rf, layout: (Ke) => ku({ layer: F, key: Ke.key, value: Ke.value, style: Ke.style, styleSpec: Ke.styleSpec, validateSpec: Ke.validateSpec, objectElementValidators: { "*": (ct) => Wl($e({ layerType: pe }, ct)) } }), paint: (Ke) => ku({ layer: F, key: Ke.key, value: Ke.value, style: Ke.style, styleSpec: Ke.styleSpec, validateSpec: Ke.validateSpec, objectElementValidators: { "*": (ct) => Zf($e({ layerType: pe }, ct)) } }) } })), S;
+ }
+ function Zu(R) {
+ let S = R.value, F = R.key, W = gs(S);
+ return W !== "string" ? [new fr(F, S, `string expected, ${W} found`)] : [];
+ }
+ let Oc = { promoteId: function({ key: R, value: S }) {
+ if (gs(S) === "string") return Zu({ key: R, value: S });
+ {
+ let F = [];
+ for (let W in S) F.push(...Zu({ key: `${R}.${W}`, value: S[W] }));
+ return F;
+ }
+ } };
+ function Tc(R) {
+ let S = R.value, F = R.key, W = R.styleSpec, te = R.style, fe = R.validateSpec;
+ if (!S.type) return [new fr(F, S, '"type" is required')];
+ let pe = Cs(S.type), Fe;
+ switch (pe) {
+ case "vector":
+ case "raster":
+ return Fe = ku({ key: F, value: S, valueSpec: W[`source_${pe.replace("-", "_")}`], style: R.style, styleSpec: W, objectElementValidators: Oc, validateSpec: fe }), Fe;
+ case "raster-dem":
+ return Fe = function(Ke) {
+ var ct;
+ let Lt = (ct = Ke.sourceName) !== null && ct !== void 0 ? ct : "", Jt = Ke.value, cr = Ke.styleSpec, mr = cr.source_raster_dem, Pr = Ke.style, zr = [], ui = gs(Jt);
+ if (Jt === void 0) return zr;
+ if (ui !== "object") return zr.push(new fr("source_raster_dem", Jt, `object expected, ${ui} found`)), zr;
+ let yi = Cs(Jt.encoding) === "custom", vn = ["redFactor", "greenFactor", "blueFactor", "baseShift"], zi = Ke.value.encoding ? `"${Ke.value.encoding}"` : "Default";
+ for (let un in Jt) !yi && vn.includes(un) ? zr.push(new fr(un, Jt[un], `In "${Lt}": "${un}" is only valid when "encoding" is set to "custom". ${zi} encoding found`)) : mr[un] ? zr = zr.concat(Ke.validateSpec({ key: un, value: Jt[un], valueSpec: mr[un], validateSpec: Ke.validateSpec, style: Pr, styleSpec: cr })) : zr.push(new fr(un, Jt[un], `unknown property "${un}"`));
+ return zr;
+ }({ sourceName: F, value: S, style: R.style, styleSpec: W, validateSpec: fe }), Fe;
+ case "geojson":
+ if (Fe = ku({ key: F, value: S, valueSpec: W.source_geojson, style: te, styleSpec: W, validateSpec: fe, objectElementValidators: Oc }), S.cluster) for (let Ke in S.clusterProperties) {
+ let [ct, Lt] = S.clusterProperties[Ke], Jt = typeof ct == "string" ? [ct, ["accumulated"], ["get", Ke]] : ct;
+ Fe.push(...zc({ key: `${F}.${Ke}.map`, value: Lt, expressionContext: "cluster-map" })), Fe.push(...zc({ key: `${F}.${Ke}.reduce`, value: Jt, expressionContext: "cluster-reduce" }));
+ }
+ return Fe;
+ case "video":
+ return ku({ key: F, value: S, valueSpec: W.source_video, style: te, validateSpec: fe, styleSpec: W });
+ case "image":
+ return ku({ key: F, value: S, valueSpec: W.source_image, style: te, validateSpec: fe, styleSpec: W });
+ case "canvas":
+ return [new fr(F, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")];
+ default:
+ return Wu({ key: `${F}.type`, value: S.type, valueSpec: { values: ["vector", "raster", "raster-dem", "geojson", "video", "image"] } });
+ }
+ }
+ function wl(R) {
+ let S = R.value, F = R.styleSpec, W = F.light, te = R.style, fe = [], pe = gs(S);
+ if (S === void 0) return fe;
+ if (pe !== "object") return fe = fe.concat([new fr("light", S, `object expected, ${pe} found`)]), fe;
+ for (let Fe in S) {
+ let Ke = Fe.match(/^(.*)-transition$/);
+ fe = fe.concat(Ke && W[Ke[1]] && W[Ke[1]].transition ? R.validateSpec({ key: Fe, value: S[Fe], valueSpec: F.transition, validateSpec: R.validateSpec, style: te, styleSpec: F }) : W[Fe] ? R.validateSpec({ key: Fe, value: S[Fe], valueSpec: W[Fe], validateSpec: R.validateSpec, style: te, styleSpec: F }) : [new fr(Fe, S[Fe], `unknown property "${Fe}"`)]);
+ }
+ return fe;
+ }
+ function vu(R) {
+ let S = R.value, F = R.styleSpec, W = F.sky, te = R.style, fe = gs(S);
+ if (S === void 0) return [];
+ if (fe !== "object") return [new fr("sky", S, `object expected, ${fe} found`)];
+ let pe = [];
+ for (let Fe in S) pe = pe.concat(W[Fe] ? R.validateSpec({ key: Fe, value: S[Fe], valueSpec: W[Fe], style: te, styleSpec: F }) : [new fr(Fe, S[Fe], `unknown property "${Fe}"`)]);
+ return pe;
+ }
+ function qc(R) {
+ let S = R.value, F = R.styleSpec, W = F.terrain, te = R.style, fe = [], pe = gs(S);
+ if (S === void 0) return fe;
+ if (pe !== "object") return fe = fe.concat([new fr("terrain", S, `object expected, ${pe} found`)]), fe;
+ for (let Fe in S) fe = fe.concat(W[Fe] ? R.validateSpec({ key: Fe, value: S[Fe], valueSpec: W[Fe], validateSpec: R.validateSpec, style: te, styleSpec: F }) : [new fr(Fe, S[Fe], `unknown property "${Fe}"`)]);
+ return fe;
+ }
+ function cf(R) {
+ let S = [], F = R.value, W = R.key;
+ if (Array.isArray(F)) {
+ let te = [], fe = [];
+ for (let pe in F) F[pe].id && te.includes(F[pe].id) && S.push(new fr(W, F, `all the sprites' ids must be unique, but ${F[pe].id} is duplicated`)), te.push(F[pe].id), F[pe].url && fe.includes(F[pe].url) && S.push(new fr(W, F, `all the sprites' URLs must be unique, but ${F[pe].url} is duplicated`)), fe.push(F[pe].url), S = S.concat(ku({ key: `${W}[${pe}]`, value: F[pe], valueSpec: { id: { type: "string", required: true }, url: { type: "string", required: true } }, validateSpec: R.validateSpec }));
+ return S;
+ }
+ return Zu({ key: W, value: F });
+ }
+ let fc = { "*": () => [], array: Xf, boolean: function(R) {
+ let S = R.value, F = R.key, W = gs(S);
+ return W !== "boolean" ? [new fr(F, S, `boolean expected, ${W} found`)] : [];
+ }, number: Us, color: function(R) {
+ let S = R.key, F = R.value, W = gs(F);
+ return W !== "string" ? [new fr(S, F, `color expected, ${W} found`)] : nr.parse(String(F)) ? [] : [new fr(S, F, `color expected, "${F}" found`)];
+ }, constants: If, enum: Wu, filter: Rf, function: wf, layer: ah, object: ku, source: Tc, light: wl, sky: vu, terrain: qc, projection: function(R) {
+ let S = R.value, F = R.styleSpec, W = F.projection, te = R.style, fe = gs(S);
+ if (S === void 0) return [];
+ if (fe !== "object") return [new fr("projection", S, `object expected, ${fe} found`)];
+ let pe = [];
+ for (let Fe in S) pe = pe.concat(W[Fe] ? R.validateSpec({ key: Fe, value: S[Fe], valueSpec: W[Fe], style: te, styleSpec: F }) : [new fr(Fe, S[Fe], `unknown property "${Fe}"`)]);
+ return pe;
+ }, string: Zu, formatted: function(R) {
+ return Zu(R).length === 0 ? [] : zc(R);
+ }, resolvedImage: function(R) {
+ return Zu(R).length === 0 ? [] : zc(R);
+ }, padding: function(R) {
+ let S = R.key, F = R.value;
+ if (gs(F) === "array") {
+ if (F.length < 1 || F.length > 4) return [new fr(S, F, `padding requires 1 to 4 values; ${F.length} values found`)];
+ let W = { type: "number" }, te = [];
+ for (let fe = 0; fe < F.length; fe++) te = te.concat(R.validateSpec({ key: `${S}[${fe}]`, value: F[fe], validateSpec: R.validateSpec, valueSpec: W }));
+ return te;
+ }
+ return Us({ key: S, value: F, valueSpec: {} });
+ }, variableAnchorOffsetCollection: function(R) {
+ let S = R.key, F = R.value, W = gs(F), te = R.styleSpec;
+ if (W !== "array" || F.length < 1 || F.length % 2 != 0) return [new fr(S, F, "variableAnchorOffsetCollection requires a non-empty array of even length")];
+ let fe = [];
+ for (let pe = 0; pe < F.length; pe += 2) fe = fe.concat(Wu({ key: `${S}[${pe}]`, value: F[pe], valueSpec: te.layout_symbol["text-anchor"] })), fe = fe.concat(Xf({ key: `${S}[${pe + 1}]`, value: F[pe + 1], valueSpec: { length: 2, value: "number" }, validateSpec: R.validateSpec, style: R.style, styleSpec: te }));
+ return fe;
+ }, sprite: cf };
+ function Bc(R) {
+ let S = R.value, F = R.valueSpec, W = R.styleSpec;
+ return R.validateSpec = Bc, F.expression && Wf(Cs(S)) ? wf(R) : F.expression && Dc(du(S)) ? zc(R) : F.type && fc[F.type] ? fc[F.type](R) : ku($e({}, R, { valueSpec: F.type ? W[F.type] : F }));
+ }
+ function At(R) {
+ let S = R.value, F = R.key, W = Zu(R);
+ return W.length || (S.indexOf("{fontstack}") === -1 && W.push(new fr(F, S, '"glyphs" url must include a "{fontstack}" token')), S.indexOf("{range}") === -1 && W.push(new fr(F, S, '"glyphs" url must include a "{range}" token'))), W;
+ }
+ function Xt(R, S = ce) {
+ let F = [];
+ return F = F.concat(Bc({ key: "", value: R, valueSpec: S.$root, styleSpec: S, style: R, validateSpec: Bc, objectElementValidators: { glyphs: At, "*": () => [] } })), R.constants && (F = F.concat(If({ key: "constants", value: R.constants }))), Ar(F);
+ }
+ function Cr(R) {
+ return function(S) {
+ return R(j1(_g({}, S), { validateSpec: Bc }));
+ };
+ }
+ function Ar(R) {
+ return [].concat(R).sort((S, F) => S.line - F.line);
+ }
+ function Kr(R) {
+ return function(...S) {
+ return Ar(R.apply(this, S));
+ };
+ }
+ Xt.source = Kr(Cr(Tc)), Xt.sprite = Kr(Cr(cf)), Xt.glyphs = Kr(Cr(At)), Xt.light = Kr(Cr(wl)), Xt.sky = Kr(Cr(vu)), Xt.terrain = Kr(Cr(qc)), Xt.layer = Kr(Cr(ah)), Xt.filter = Kr(Cr(Rf)), Xt.paintProperty = Kr(Cr(Zf)), Xt.layoutProperty = Kr(Cr(Wl));
+ let ki = Xt, Xi = ki.light, dn = ki.sky, wn = ki.paintProperty, Nn = ki.layoutProperty;
+ function Yi(R, S) {
+ let F = false;
+ if (S && S.length) for (let W of S) R.fire(new me(new Error(W.message))), F = true;
+ return F;
+ }
+ class Qi {
+ constructor(S, F, W) {
+ let te = this.cells = [];
+ if (S instanceof ArrayBuffer) {
+ this.arrayBuffer = S;
+ let pe = new Int32Array(this.arrayBuffer);
+ S = pe[0], this.d = (F = pe[1]) + 2 * (W = pe[2]);
+ for (let Ke = 0; Ke < this.d * this.d; Ke++) {
+ let ct = pe[3 + Ke], Lt = pe[3 + Ke + 1];
+ te.push(ct === Lt ? null : pe.subarray(ct, Lt));
+ }
+ let Fe = pe[3 + te.length + 1];
+ this.keys = pe.subarray(pe[3 + te.length], Fe), this.bboxes = pe.subarray(Fe), this.insert = this._insertReadonly;
+ } else {
+ this.d = F + 2 * W;
+ for (let pe = 0; pe < this.d * this.d; pe++) te.push([]);
+ this.keys = [], this.bboxes = [];
+ }
+ this.n = F, this.extent = S, this.padding = W, this.scale = F / S, this.uid = 0;
+ let fe = W / F * S;
+ this.min = -fe, this.max = S + fe;
+ }
+ insert(S, F, W, te, fe) {
+ this._forEachCell(F, W, te, fe, this._insertCell, this.uid++, void 0, void 0), this.keys.push(S), this.bboxes.push(F), this.bboxes.push(W), this.bboxes.push(te), this.bboxes.push(fe);
+ }
+ _insertReadonly() {
+ throw new Error("Cannot insert into a GridIndex created from an ArrayBuffer.");
+ }
+ _insertCell(S, F, W, te, fe, pe) {
+ this.cells[fe].push(pe);
+ }
+ query(S, F, W, te, fe) {
+ let pe = this.min, Fe = this.max;
+ if (S <= pe && F <= pe && Fe <= W && Fe <= te && !fe) return Array.prototype.slice.call(this.keys);
+ {
+ let Ke = [];
+ return this._forEachCell(S, F, W, te, this._queryCell, Ke, {}, fe), Ke;
+ }
+ }
+ _queryCell(S, F, W, te, fe, pe, Fe, Ke) {
+ let ct = this.cells[fe];
+ if (ct !== null) {
+ let Lt = this.keys, Jt = this.bboxes;
+ for (let cr = 0; cr < ct.length; cr++) {
+ let mr = ct[cr];
+ if (Fe[mr] === void 0) {
+ let Pr = 4 * mr;
+ (Ke ? Ke(Jt[Pr + 0], Jt[Pr + 1], Jt[Pr + 2], Jt[Pr + 3]) : S <= Jt[Pr + 2] && F <= Jt[Pr + 3] && W >= Jt[Pr + 0] && te >= Jt[Pr + 1]) ? (Fe[mr] = true, pe.push(Lt[mr])) : Fe[mr] = false;
+ }
+ }
+ }
+ }
+ _forEachCell(S, F, W, te, fe, pe, Fe, Ke) {
+ let ct = this._convertToCellCoord(S), Lt = this._convertToCellCoord(F), Jt = this._convertToCellCoord(W), cr = this._convertToCellCoord(te);
+ for (let mr = ct; mr <= Jt; mr++) for (let Pr = Lt; Pr <= cr; Pr++) {
+ let zr = this.d * Pr + mr;
+ if ((!Ke || Ke(this._convertFromCellCoord(mr), this._convertFromCellCoord(Pr), this._convertFromCellCoord(mr + 1), this._convertFromCellCoord(Pr + 1))) && fe.call(this, S, F, W, te, zr, pe, Fe, Ke)) return;
+ }
+ }
+ _convertFromCellCoord(S) {
+ return (S - this.padding) / this.scale;
+ }
+ _convertToCellCoord(S) {
+ return Math.max(0, Math.min(this.d - 1, Math.floor(S * this.scale) + this.padding));
+ }
+ toArrayBuffer() {
+ if (this.arrayBuffer) return this.arrayBuffer;
+ let S = this.cells, F = 3 + this.cells.length + 1 + 1, W = 0;
+ for (let pe = 0; pe < this.cells.length; pe++) W += this.cells[pe].length;
+ let te = new Int32Array(F + W + this.keys.length + this.bboxes.length);
+ te[0] = this.extent, te[1] = this.n, te[2] = this.padding;
+ let fe = F;
+ for (let pe = 0; pe < S.length; pe++) {
+ let Fe = S[pe];
+ te[3 + pe] = fe, te.set(Fe, fe), fe += Fe.length;
+ }
+ return te[3 + S.length] = fe, te.set(this.keys, fe), fe += this.keys.length, te[3 + S.length + 1] = fe, te.set(this.bboxes, fe), fe += this.bboxes.length, te.buffer;
+ }
+ static serialize(S, F) {
+ let W = S.toArrayBuffer();
+ return F && F.push(W), { buffer: W };
+ }
+ static deserialize(S) {
+ return new Qi(S.buffer);
+ }
+ }
+ let on = {};
+ function Fi(R, S, F = {}) {
+ if (on[R]) throw new Error(`${R} is already registered.`);
+ Object.defineProperty(S, "_classRegistryKey", { value: R, writeable: false }), on[R] = { klass: S, omit: F.omit || [], shallow: F.shallow || [] };
+ }
+ Fi("Object", Object), Fi("TransferableGridIndex", Qi), Fi("Color", nr), Fi("Error", Error), Fi("AJAXError", ge), Fi("ResolvedImage", tn), Fi("StylePropertyFunction", nl), Fi("StyleExpression", Eu, { omit: ["_evaluator"] }), Fi("ZoomDependentExpression", hu), Fi("ZoomConstantExpression", bc), Fi("CompoundExpression", Bl, { omit: ["_evaluate"] });
+ for (let R in yf) yf[R]._classRegistryKey || Fi(`Expression_${R}`, yf[R]);
+ function Qn(R) {
+ return R && typeof ArrayBuffer != "undefined" && (R instanceof ArrayBuffer || R.constructor && R.constructor.name === "ArrayBuffer");
+ }
+ function Ca(R) {
+ return R.$name || R.constructor._classRegistryKey;
+ }
+ function Ra(R) {
+ return !function(S) {
+ if (S === null || typeof S != "object") return false;
+ let F = Ca(S);
+ return !(!F || F === "Object");
+ }(R) && (R == null || typeof R == "boolean" || typeof R == "number" || typeof R == "string" || R instanceof Boolean || R instanceof Number || R instanceof String || R instanceof Date || R instanceof RegExp || R instanceof Blob || R instanceof Error || Qn(R) || G(R) || ArrayBuffer.isView(R) || R instanceof ImageData);
+ }
+ function La(R, S) {
+ if (Ra(R)) return (Qn(R) || G(R)) && S && S.push(R), ArrayBuffer.isView(R) && S && S.push(R.buffer), R instanceof ImageData && S && S.push(R.data.buffer), R;
+ if (Array.isArray(R)) {
+ let fe = [];
+ for (let pe of R) fe.push(La(pe, S));
+ return fe;
+ }
+ if (typeof R != "object") throw new Error("can't serialize object of type " + typeof R);
+ let F = Ca(R);
+ if (!F) throw new Error(`can't serialize object of unregistered class ${R.constructor.name}`);
+ if (!on[F]) throw new Error(`${F} is not registered.`);
+ let { klass: W } = on[F], te = W.serialize ? W.serialize(R, S) : {};
+ if (W.serialize) {
+ if (S && te === S[S.length - 1]) throw new Error("statically serialized object won't survive transfer of $name property");
+ } else {
+ for (let fe in R) {
+ if (!R.hasOwnProperty(fe) || on[F].omit.indexOf(fe) >= 0) continue;
+ let pe = R[fe];
+ te[fe] = on[F].shallow.indexOf(fe) >= 0 ? pe : La(pe, S);
+ }
+ R instanceof Error && (te.message = R.message);
+ }
+ if (te.$name) throw new Error("$name property is reserved for worker serialization logic.");
+ return F !== "Object" && (te.$name = F), te;
+ }
+ function Na(R) {
+ if (Ra(R)) return R;
+ if (Array.isArray(R)) return R.map(Na);
+ if (typeof R != "object") throw new Error("can't deserialize object of type " + typeof R);
+ let S = Ca(R) || "Object";
+ if (!on[S]) throw new Error(`can't deserialize unregistered class ${S}`);
+ let { klass: F } = on[S];
+ if (!F) throw new Error(`can't deserialize unregistered class ${S}`);
+ if (F.deserialize) return F.deserialize(R);
+ let W = Object.create(F.prototype);
+ for (let te of Object.keys(R)) {
+ if (te === "$name") continue;
+ let fe = R[te];
+ W[te] = on[S].shallow.indexOf(te) >= 0 ? fe : Na(fe);
+ }
+ return W;
+ }
+ class Yn {
+ constructor() {
+ this.first = true;
+ }
+ update(S, F) {
+ let W = Math.floor(S);
+ return this.first ? (this.first = false, this.lastIntegerZoom = W, this.lastIntegerZoomTime = 0, this.lastZoom = S, this.lastFloorZoom = W, true) : (this.lastFloorZoom > W ? (this.lastIntegerZoom = W + 1, this.lastIntegerZoomTime = F) : this.lastFloorZoom < W && (this.lastIntegerZoom = W, this.lastIntegerZoomTime = F), S !== this.lastZoom && (this.lastZoom = S, this.lastFloorZoom = W, true));
+ }
+ }
+ let Dn = { "Latin-1 Supplement": (R) => R >= 128 && R <= 255, "Hangul Jamo": (R) => R >= 4352 && R <= 4607, Khmer: (R) => R >= 6016 && R <= 6143, "General Punctuation": (R) => R >= 8192 && R <= 8303, "Letterlike Symbols": (R) => R >= 8448 && R <= 8527, "Number Forms": (R) => R >= 8528 && R <= 8591, "Miscellaneous Technical": (R) => R >= 8960 && R <= 9215, "Control Pictures": (R) => R >= 9216 && R <= 9279, "Optical Character Recognition": (R) => R >= 9280 && R <= 9311, "Enclosed Alphanumerics": (R) => R >= 9312 && R <= 9471, "Geometric Shapes": (R) => R >= 9632 && R <= 9727, "Miscellaneous Symbols": (R) => R >= 9728 && R <= 9983, "Miscellaneous Symbols and Arrows": (R) => R >= 11008 && R <= 11263, "Ideographic Description Characters": (R) => R >= 12272 && R <= 12287, "CJK Symbols and Punctuation": (R) => R >= 12288 && R <= 12351, Katakana: (R) => R >= 12448 && R <= 12543, Kanbun: (R) => R >= 12688 && R <= 12703, "CJK Strokes": (R) => R >= 12736 && R <= 12783, "Enclosed CJK Letters and Months": (R) => R >= 12800 && R <= 13055, "CJK Compatibility": (R) => R >= 13056 && R <= 13311, "Yijing Hexagram Symbols": (R) => R >= 19904 && R <= 19967, "Private Use Area": (R) => R >= 57344 && R <= 63743, "Vertical Forms": (R) => R >= 65040 && R <= 65055, "CJK Compatibility Forms": (R) => R >= 65072 && R <= 65103, "Small Form Variants": (R) => R >= 65104 && R <= 65135, "Halfwidth and Fullwidth Forms": (R) => R >= 65280 && R <= 65519 };
+ function Ka(R) {
+ for (let S of R) if (Ho(S.charCodeAt(0))) return true;
+ return false;
+ }
+ function bo(R) {
+ for (let S of R) if (!as(S.charCodeAt(0))) return false;
+ return true;
+ }
+ function Zo(R) {
+ let S = R.map((F) => {
+ try {
+ return new RegExp(`\\p{sc=${F}}`, "u").source;
+ } catch (W) {
+ return null;
+ }
+ }).filter((F) => F);
+ return new RegExp(S.join("|"), "u");
+ }
+ let Ss = Zo(["Arab", "Dupl", "Mong", "Ougr", "Syrc"]);
+ function as(R) {
+ return !Ss.test(String.fromCodePoint(R));
+ }
+ let ws = Zo(["Bopo", "Hani", "Hira", "Kana", "Kits", "Nshu", "Tang", "Yiii"]);
+ function Ho(R) {
+ return !(R !== 746 && R !== 747 && (R < 4352 || !(Dn["CJK Compatibility Forms"](R) && !(R >= 65097 && R <= 65103) || Dn["CJK Compatibility"](R) || Dn["CJK Strokes"](R) || !(!Dn["CJK Symbols and Punctuation"](R) || R >= 12296 && R <= 12305 || R >= 12308 && R <= 12319 || R === 12336) || Dn["Enclosed CJK Letters and Months"](R) || Dn["Ideographic Description Characters"](R) || Dn.Kanbun(R) || Dn.Katakana(R) && R !== 12540 || !(!Dn["Halfwidth and Fullwidth Forms"](R) || R === 65288 || R === 65289 || R === 65293 || R >= 65306 && R <= 65310 || R === 65339 || R === 65341 || R === 65343 || R >= 65371 && R <= 65503 || R === 65507 || R >= 65512 && R <= 65519) || !(!Dn["Small Form Variants"](R) || R >= 65112 && R <= 65118 || R >= 65123 && R <= 65126) || Dn["Vertical Forms"](R) || Dn["Yijing Hexagram Symbols"](R) || new RegExp("\\p{sc=Cans}", "u").test(String.fromCodePoint(R)) || new RegExp("\\p{sc=Hang}", "u").test(String.fromCodePoint(R)) || ws.test(String.fromCodePoint(R)))));
+ }
+ function ml(R) {
+ return !(Ho(R) || function(S) {
+ return !!(Dn["Latin-1 Supplement"](S) && (S === 167 || S === 169 || S === 174 || S === 177 || S === 188 || S === 189 || S === 190 || S === 215 || S === 247) || Dn["General Punctuation"](S) && (S === 8214 || S === 8224 || S === 8225 || S === 8240 || S === 8241 || S === 8251 || S === 8252 || S === 8258 || S === 8263 || S === 8264 || S === 8265 || S === 8273) || Dn["Letterlike Symbols"](S) || Dn["Number Forms"](S) || Dn["Miscellaneous Technical"](S) && (S >= 8960 && S <= 8967 || S >= 8972 && S <= 8991 || S >= 8996 && S <= 9e3 || S === 9003 || S >= 9085 && S <= 9114 || S >= 9150 && S <= 9165 || S === 9167 || S >= 9169 && S <= 9179 || S >= 9186 && S <= 9215) || Dn["Control Pictures"](S) && S !== 9251 || Dn["Optical Character Recognition"](S) || Dn["Enclosed Alphanumerics"](S) || Dn["Geometric Shapes"](S) || Dn["Miscellaneous Symbols"](S) && !(S >= 9754 && S <= 9759) || Dn["Miscellaneous Symbols and Arrows"](S) && (S >= 11026 && S <= 11055 || S >= 11088 && S <= 11097 || S >= 11192 && S <= 11243) || Dn["CJK Symbols and Punctuation"](S) || Dn.Katakana(S) || Dn["Private Use Area"](S) || Dn["CJK Compatibility Forms"](S) || Dn["Small Form Variants"](S) || Dn["Halfwidth and Fullwidth Forms"](S) || S === 8734 || S === 8756 || S === 8757 || S >= 9984 && S <= 10087 || S >= 10102 && S <= 10131 || S === 65532 || S === 65533);
+ }(R));
+ }
+ let Ws = Zo(["Adlm", "Arab", "Armi", "Avst", "Chrs", "Cprt", "Egyp", "Elym", "Gara", "Hatr", "Hebr", "Hung", "Khar", "Lydi", "Mand", "Mani", "Mend", "Merc", "Mero", "Narb", "Nbat", "Nkoo", "Orkh", "Palm", "Phli", "Phlp", "Phnx", "Prti", "Rohg", "Samr", "Sarb", "Sogo", "Syrc", "Thaa", "Todr", "Yezi"]);
+ function Ls(R) {
+ return Ws.test(String.fromCodePoint(R));
+ }
+ function va(R, S) {
+ return !(!S && Ls(R) || R >= 2304 && R <= 3583 || R >= 3840 && R <= 4255 || Dn.Khmer(R));
+ }
+ function no(R) {
+ for (let S of R) if (Ls(S.charCodeAt(0))) return true;
+ return false;
+ }
+ let ys = new class {
+ constructor() {
+ this.applyArabicShaping = null, this.processBidirectionalText = null, this.processStyledBidirectionalText = null, this.pluginStatus = "unavailable", this.pluginURL = null;
+ }
+ setState(R) {
+ this.pluginStatus = R.pluginStatus, this.pluginURL = R.pluginURL;
+ }
+ getState() {
+ return { pluginStatus: this.pluginStatus, pluginURL: this.pluginURL };
+ }
+ setMethods(R) {
+ this.applyArabicShaping = R.applyArabicShaping, this.processBidirectionalText = R.processBidirectionalText, this.processStyledBidirectionalText = R.processStyledBidirectionalText;
+ }
+ isParsed() {
+ return this.applyArabicShaping != null && this.processBidirectionalText != null && this.processStyledBidirectionalText != null;
+ }
+ getPluginURL() {
+ return this.pluginURL;
+ }
+ getRTLTextPluginStatus() {
+ return this.pluginStatus;
+ }
+ }();
+ class rs {
+ constructor(S, F) {
+ this.zoom = S, F ? (this.now = F.now, this.fadeDuration = F.fadeDuration, this.zoomHistory = F.zoomHistory, this.transition = F.transition) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new Yn(), this.transition = {});
+ }
+ isSupportedScript(S) {
+ return function(F, W) {
+ for (let te of F) if (!va(te.charCodeAt(0), W)) return false;
+ return true;
+ }(S, ys.getRTLTextPluginStatus() === "loaded");
+ }
+ crossFadingFactor() {
+ return this.fadeDuration === 0 ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1);
+ }
+ getCrossfadeParameters() {
+ let S = this.zoom, F = S - Math.floor(S), W = this.crossFadingFactor();
+ return S > this.zoomHistory.lastIntegerZoom ? { fromScale: 2, toScale: 1, t: F + (1 - F) * W } : { fromScale: 0.5, toScale: 1, t: 1 - (1 - W) * F };
+ }
+ }
+ class Ql {
+ constructor(S, F) {
+ this.property = S, this.value = F, this.expression = function(W, te) {
+ if (Wf(W)) return new nl(W, te);
+ if (Dc(W)) {
+ let fe = _u(W, te);
+ if (fe.result === "error") throw new Error(fe.value.map((pe) => `${pe.key}: ${pe.message}`).join(", "));
+ return fe.value;
+ }
+ {
+ let fe = W;
+ return te.type === "color" && typeof W == "string" ? fe = nr.parse(W) : te.type !== "padding" || typeof W != "number" && !Array.isArray(W) ? te.type === "variableAnchorOffsetCollection" && Array.isArray(W) && (fe = $i.parse(W)) : fe = Qr.parse(W), { kind: "constant", evaluate: () => fe };
+ }
+ }(F === void 0 ? S.specification.default : F, S.specification);
+ }
+ isDataDriven() {
+ return this.expression.kind === "source" || this.expression.kind === "composite";
+ }
+ possiblyEvaluate(S, F, W) {
+ return this.property.possiblyEvaluate(this, S, F, W);
+ }
+ }
+ class Cu {
+ constructor(S) {
+ this.property = S, this.value = new Ql(S, void 0);
+ }
+ transitioned(S, F) {
+ return new Nc(this.property, this.value, F, L({}, S.transition, this.transition), S.now);
+ }
+ untransitioned() {
+ return new Nc(this.property, this.value, null, {}, 0);
+ }
+ }
+ class Yu {
+ constructor(S) {
+ this._properties = S, this._values = Object.create(S.defaultTransitionablePropertyValues);
+ }
+ getValue(S) {
+ return g(this._values[S].value.value);
+ }
+ setValue(S, F) {
+ Object.prototype.hasOwnProperty.call(this._values, S) || (this._values[S] = new Cu(this._values[S].property)), this._values[S].value = new Ql(this._values[S].property, F === null ? void 0 : g(F));
+ }
+ getTransition(S) {
+ return g(this._values[S].transition);
+ }
+ setTransition(S, F) {
+ Object.prototype.hasOwnProperty.call(this._values, S) || (this._values[S] = new Cu(this._values[S].property)), this._values[S].transition = g(F) || void 0;
+ }
+ serialize() {
+ let S = {};
+ for (let F of Object.keys(this._values)) {
+ let W = this.getValue(F);
+ W !== void 0 && (S[F] = W);
+ let te = this.getTransition(F);
+ te !== void 0 && (S[`${F}-transition`] = te);
+ }
+ return S;
+ }
+ transitioned(S, F) {
+ let W = new pu(this._properties);
+ for (let te of Object.keys(this._values)) W._values[te] = this._values[te].transitioned(S, F._values[te]);
+ return W;
+ }
+ untransitioned() {
+ let S = new pu(this._properties);
+ for (let F of Object.keys(this._values)) S._values[F] = this._values[F].untransitioned();
+ return S;
+ }
+ }
+ class Nc {
+ constructor(S, F, W, te, fe) {
+ this.property = S, this.value = F, this.begin = fe + te.delay || 0, this.end = this.begin + te.duration || 0, S.specification.transition && (te.delay || te.duration) && (this.prior = W);
+ }
+ possiblyEvaluate(S, F, W) {
+ let te = S.now || 0, fe = this.value.possiblyEvaluate(S, F, W), pe = this.prior;
+ if (pe) {
+ if (te > this.end) return this.prior = null, fe;
+ if (this.value.isDataDriven()) return this.prior = null, fe;
+ if (te < this.begin) return pe.possiblyEvaluate(S, F, W);
+ {
+ let Fe = (te - this.begin) / (this.end - this.begin);
+ return this.property.interpolate(pe.possiblyEvaluate(S, F, W), fe, function(Ke) {
+ if (Ke <= 0) return 0;
+ if (Ke >= 1) return 1;
+ let ct = Ke * Ke, Lt = ct * Ke;
+ return 4 * (Ke < 0.5 ? Lt : 3 * (Ke - ct) + Lt - 0.75);
+ }(Fe));
+ }
+ }
+ return fe;
+ }
+ }
+ class pu {
+ constructor(S) {
+ this._properties = S, this._values = Object.create(S.defaultTransitioningPropertyValues);
+ }
+ possiblyEvaluate(S, F, W) {
+ let te = new Ac(this._properties);
+ for (let fe of Object.keys(this._values)) te._values[fe] = this._values[fe].possiblyEvaluate(S, F, W);
+ return te;
+ }
+ hasTransition() {
+ for (let S of Object.keys(this._values)) if (this._values[S].prior) return true;
+ return false;
+ }
+ }
+ class Uc {
+ constructor(S) {
+ this._properties = S, this._values = Object.create(S.defaultPropertyValues);
+ }
+ hasValue(S) {
+ return this._values[S].value !== void 0;
+ }
+ getValue(S) {
+ return g(this._values[S].value);
+ }
+ setValue(S, F) {
+ this._values[S] = new Ql(this._values[S].property, F === null ? void 0 : g(F));
+ }
+ serialize() {
+ let S = {};
+ for (let F of Object.keys(this._values)) {
+ let W = this.getValue(F);
+ W !== void 0 && (S[F] = W);
+ }
+ return S;
+ }
+ possiblyEvaluate(S, F, W) {
+ let te = new Ac(this._properties);
+ for (let fe of Object.keys(this._values)) te._values[fe] = this._values[fe].possiblyEvaluate(S, F, W);
+ return te;
+ }
+ }
+ class xu {
+ constructor(S, F, W) {
+ this.property = S, this.value = F, this.parameters = W;
+ }
+ isConstant() {
+ return this.value.kind === "constant";
+ }
+ constantOr(S) {
+ return this.value.kind === "constant" ? this.value.value : S;
+ }
+ evaluate(S, F, W, te) {
+ return this.property.evaluate(this.value, this.parameters, S, F, W, te);
+ }
+ }
+ class Ac {
+ constructor(S) {
+ this._properties = S, this._values = Object.create(S.defaultPossiblyEvaluatedValues);
+ }
+ get(S) {
+ return this._values[S];
+ }
+ }
+ class Ua {
+ constructor(S) {
+ this.specification = S;
+ }
+ possiblyEvaluate(S, F) {
+ if (S.isDataDriven()) throw new Error("Value should not be data driven");
+ return S.expression.evaluate(F);
+ }
+ interpolate(S, F, W) {
+ let te = Lo[this.specification.type];
+ return te ? te(S, F, W) : S;
+ }
+ }
+ class oo {
+ constructor(S, F) {
+ this.specification = S, this.overrides = F;
+ }
+ possiblyEvaluate(S, F, W, te) {
+ return new xu(this, S.expression.kind === "constant" || S.expression.kind === "camera" ? { kind: "constant", value: S.expression.evaluate(F, null, {}, W, te) } : S.expression, F);
+ }
+ interpolate(S, F, W) {
+ if (S.value.kind !== "constant" || F.value.kind !== "constant") return S;
+ if (S.value.value === void 0 || F.value.value === void 0) return new xu(this, { kind: "constant", value: void 0 }, S.parameters);
+ let te = Lo[this.specification.type];
+ if (te) {
+ let fe = te(S.value.value, F.value.value, W);
+ return new xu(this, { kind: "constant", value: fe }, S.parameters);
+ }
+ return S;
+ }
+ evaluate(S, F, W, te, fe, pe) {
+ return S.kind === "constant" ? S.value : S.evaluate(F, W, te, fe, pe);
+ }
+ }
+ class Vc extends oo {
+ possiblyEvaluate(S, F, W, te) {
+ if (S.value === void 0) return new xu(this, { kind: "constant", value: void 0 }, F);
+ if (S.expression.kind === "constant") {
+ let fe = S.expression.evaluate(F, null, {}, W, te), pe = S.property.specification.type === "resolvedImage" && typeof fe != "string" ? fe.name : fe, Fe = this._calculate(pe, pe, pe, F);
+ return new xu(this, { kind: "constant", value: Fe }, F);
+ }
+ if (S.expression.kind === "camera") {
+ let fe = this._calculate(S.expression.evaluate({ zoom: F.zoom - 1 }), S.expression.evaluate({ zoom: F.zoom }), S.expression.evaluate({ zoom: F.zoom + 1 }), F);
+ return new xu(this, { kind: "constant", value: fe }, F);
+ }
+ return new xu(this, S.expression, F);
+ }
+ evaluate(S, F, W, te, fe, pe) {
+ if (S.kind === "source") {
+ let Fe = S.evaluate(F, W, te, fe, pe);
+ return this._calculate(Fe, Fe, Fe, F);
+ }
+ return S.kind === "composite" ? this._calculate(S.evaluate({ zoom: Math.floor(F.zoom) - 1 }, W, te), S.evaluate({ zoom: Math.floor(F.zoom) }, W, te), S.evaluate({ zoom: Math.floor(F.zoom) + 1 }, W, te), F) : S.value;
+ }
+ _calculate(S, F, W, te) {
+ return te.zoom > te.zoomHistory.lastIntegerZoom ? { from: S, to: F } : { from: W, to: F };
+ }
+ interpolate(S) {
+ return S;
+ }
+ }
+ class hc {
+ constructor(S) {
+ this.specification = S;
+ }
+ possiblyEvaluate(S, F, W, te) {
+ if (S.value !== void 0) {
+ if (S.expression.kind === "constant") {
+ let fe = S.expression.evaluate(F, null, {}, W, te);
+ return this._calculate(fe, fe, fe, F);
+ }
+ return this._calculate(S.expression.evaluate(new rs(Math.floor(F.zoom - 1), F)), S.expression.evaluate(new rs(Math.floor(F.zoom), F)), S.expression.evaluate(new rs(Math.floor(F.zoom + 1), F)), F);
+ }
+ }
+ _calculate(S, F, W, te) {
+ return te.zoom > te.zoomHistory.lastIntegerZoom ? { from: S, to: F } : { from: W, to: F };
+ }
+ interpolate(S) {
+ return S;
+ }
+ }
+ class Ku {
+ constructor(S) {
+ this.specification = S;
+ }
+ possiblyEvaluate(S, F, W, te) {
+ return !!S.expression.evaluate(F, null, {}, W, te);
+ }
+ interpolate() {
+ return false;
+ }
+ }
+ class ue {
+ constructor(S) {
+ this.properties = S, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = [];
+ for (let F in S) {
+ let W = S[F];
+ W.specification.overridable && this.overridableProperties.push(F);
+ let te = this.defaultPropertyValues[F] = new Ql(W, void 0), fe = this.defaultTransitionablePropertyValues[F] = new Cu(W);
+ this.defaultTransitioningPropertyValues[F] = fe.untransitioned(), this.defaultPossiblyEvaluatedValues[F] = te.possiblyEvaluate({});
+ }
+ }
+ }
+ Fi("DataDrivenProperty", oo), Fi("DataConstantProperty", Ua), Fi("CrossFadedDataDrivenProperty", Vc), Fi("CrossFadedProperty", hc), Fi("ColorRampProperty", Ku);
+ let w = "-transition";
+ class B extends De {
+ constructor(S, F) {
+ if (super(), this.id = S.id, this.type = S.type, this._featureFilter = { filter: () => true, needGeometry: false }, S.type !== "custom" && (this.metadata = S.metadata, this.minzoom = S.minzoom, this.maxzoom = S.maxzoom, S.type !== "background" && (this.source = S.source, this.sourceLayer = S["source-layer"], this.filter = S.filter), F.layout && (this._unevaluatedLayout = new Uc(F.layout)), F.paint)) {
+ this._transitionablePaint = new Yu(F.paint);
+ for (let W in S.paint) this.setPaintProperty(W, S.paint[W], { validate: false });
+ for (let W in S.layout) this.setLayoutProperty(W, S.layout[W], { validate: false });
+ this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new Ac(F.paint);
+ }
+ }
+ getCrossfadeParameters() {
+ return this._crossfadeParameters;
+ }
+ getLayoutProperty(S) {
+ return S === "visibility" ? this.visibility : this._unevaluatedLayout.getValue(S);
+ }
+ setLayoutProperty(S, F, W = {}) {
+ F != null && this._validate(Nn, `layers.${this.id}.layout.${S}`, S, F, W) || (S !== "visibility" ? this._unevaluatedLayout.setValue(S, F) : this.visibility = F);
+ }
+ getPaintProperty(S) {
+ return S.endsWith(w) ? this._transitionablePaint.getTransition(S.slice(0, -11)) : this._transitionablePaint.getValue(S);
+ }
+ setPaintProperty(S, F, W = {}) {
+ if (F != null && this._validate(wn, `layers.${this.id}.paint.${S}`, S, F, W)) return false;
+ if (S.endsWith(w)) return this._transitionablePaint.setTransition(S.slice(0, -11), F || void 0), false;
+ {
+ let te = this._transitionablePaint._values[S], fe = te.property.specification["property-type"] === "cross-faded-data-driven", pe = te.value.isDataDriven(), Fe = te.value;
+ this._transitionablePaint.setValue(S, F), this._handleSpecialPaintPropertyUpdate(S);
+ let Ke = this._transitionablePaint._values[S].value;
+ return Ke.isDataDriven() || pe || fe || this._handleOverridablePaintPropertyUpdate(S, Fe, Ke);
+ }
+ }
+ _handleSpecialPaintPropertyUpdate(S) {
+ }
+ _handleOverridablePaintPropertyUpdate(S, F, W) {
+ return false;
+ }
+ isHidden(S) {
+ return !!(this.minzoom && S < this.minzoom) || !!(this.maxzoom && S >= this.maxzoom) || this.visibility === "none";
+ }
+ updateTransitions(S) {
+ this._transitioningPaint = this._transitionablePaint.transitioned(S, this._transitioningPaint);
+ }
+ hasTransition() {
+ return this._transitioningPaint.hasTransition();
+ }
+ recalculate(S, F) {
+ S.getCrossfadeParameters && (this._crossfadeParameters = S.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(S, void 0, F)), this.paint = this._transitioningPaint.possiblyEvaluate(S, void 0, F);
+ }
+ serialize() {
+ let S = { id: this.id, type: this.type, source: this.source, "source-layer": this.sourceLayer, metadata: this.metadata, minzoom: this.minzoom, maxzoom: this.maxzoom, filter: this.filter, layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), paint: this._transitionablePaint && this._transitionablePaint.serialize() };
+ return this.visibility && (S.layout = S.layout || {}, S.layout.visibility = this.visibility), M(S, (F, W) => !(F === void 0 || W === "layout" && !Object.keys(F).length || W === "paint" && !Object.keys(F).length));
+ }
+ _validate(S, F, W, te, fe = {}) {
+ return (!fe || fe.validate !== false) && Yi(this, S.call(ki, { key: F, layerType: this.type, objectKey: W, value: te, styleSpec: ce, style: { glyphs: true, sprite: true } }));
+ }
+ is3D() {
+ return false;
+ }
+ isTileClipped() {
+ return false;
+ }
+ hasOffscreenPass() {
+ return false;
+ }
+ resize() {
+ }
+ isStateDependent() {
+ for (let S in this.paint._values) {
+ let F = this.paint.get(S);
+ if (F instanceof xu && Nl(F.property.specification) && (F.value.kind === "source" || F.value.kind === "composite") && F.value.isStateDependent) return true;
+ }
+ return false;
+ }
+ }
+ let Q = { Int8: Int8Array, Uint8: Uint8Array, Int16: Int16Array, Uint16: Uint16Array, Int32: Int32Array, Uint32: Uint32Array, Float32: Float32Array };
+ class ee {
+ constructor(S, F) {
+ this._structArray = S, this._pos1 = F * this.size, this._pos2 = this._pos1 / 2, this._pos4 = this._pos1 / 4, this._pos8 = this._pos1 / 8;
+ }
+ }
+ class le {
+ constructor() {
+ this.isTransferred = false, this.capacity = -1, this.resize(0);
+ }
+ static serialize(S, F) {
+ return S._trim(), F && (S.isTransferred = true, F.push(S.arrayBuffer)), { length: S.length, arrayBuffer: S.arrayBuffer };
+ }
+ static deserialize(S) {
+ let F = Object.create(this.prototype);
+ return F.arrayBuffer = S.arrayBuffer, F.length = S.length, F.capacity = S.arrayBuffer.byteLength / F.bytesPerElement, F._refreshViews(), F;
+ }
+ _trim() {
+ this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews());
+ }
+ clear() {
+ this.length = 0;
+ }
+ resize(S) {
+ this.reserve(S), this.length = S;
+ }
+ reserve(S) {
+ if (S > this.capacity) {
+ this.capacity = Math.max(S, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement);
+ let F = this.uint8;
+ this._refreshViews(), F && this.uint8.set(F);
+ }
+ }
+ _refreshViews() {
+ throw new Error("_refreshViews() must be implemented by each concrete StructArray layout");
+ }
+ }
+ function Oe(R, S = 1) {
+ let F = 0, W = 0;
+ return { members: R.map((te) => {
+ let fe = Q[te.type].BYTES_PER_ELEMENT, pe = F = Ze(F, Math.max(S, fe)), Fe = te.components || 1;
+ return W = Math.max(W, fe), F += fe * Fe, { name: te.name, type: te.type, components: Fe, offset: pe };
+ }), size: Ze(F, Math.max(W, S)), alignment: S };
+ }
+ function Ze(R, S) {
+ return Math.ceil(R / S) * S;
+ }
+ class st extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F) {
+ let W = this.length;
+ return this.resize(W + 1), this.emplace(W, S, F);
+ }
+ emplace(S, F, W) {
+ let te = 2 * S;
+ return this.int16[te + 0] = F, this.int16[te + 1] = W, S;
+ }
+ }
+ st.prototype.bytesPerElement = 4, Fi("StructArrayLayout2i4", st);
+ class Tt extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W) {
+ let te = this.length;
+ return this.resize(te + 1), this.emplace(te, S, F, W);
+ }
+ emplace(S, F, W, te) {
+ let fe = 3 * S;
+ return this.int16[fe + 0] = F, this.int16[fe + 1] = W, this.int16[fe + 2] = te, S;
+ }
+ }
+ Tt.prototype.bytesPerElement = 6, Fi("StructArrayLayout3i6", Tt);
+ class Yt extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te) {
+ let fe = this.length;
+ return this.resize(fe + 1), this.emplace(fe, S, F, W, te);
+ }
+ emplace(S, F, W, te, fe) {
+ let pe = 4 * S;
+ return this.int16[pe + 0] = F, this.int16[pe + 1] = W, this.int16[pe + 2] = te, this.int16[pe + 3] = fe, S;
+ }
+ }
+ Yt.prototype.bytesPerElement = 8, Fi("StructArrayLayout4i8", Yt);
+ class Kt extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe) {
+ let Fe = this.length;
+ return this.resize(Fe + 1), this.emplace(Fe, S, F, W, te, fe, pe);
+ }
+ emplace(S, F, W, te, fe, pe, Fe) {
+ let Ke = 6 * S;
+ return this.int16[Ke + 0] = F, this.int16[Ke + 1] = W, this.int16[Ke + 2] = te, this.int16[Ke + 3] = fe, this.int16[Ke + 4] = pe, this.int16[Ke + 5] = Fe, S;
+ }
+ }
+ Kt.prototype.bytesPerElement = 12, Fi("StructArrayLayout2i4i12", Kt);
+ class xr extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe) {
+ let Fe = this.length;
+ return this.resize(Fe + 1), this.emplace(Fe, S, F, W, te, fe, pe);
+ }
+ emplace(S, F, W, te, fe, pe, Fe) {
+ let Ke = 4 * S, ct = 8 * S;
+ return this.int16[Ke + 0] = F, this.int16[Ke + 1] = W, this.uint8[ct + 4] = te, this.uint8[ct + 5] = fe, this.uint8[ct + 6] = pe, this.uint8[ct + 7] = Fe, S;
+ }
+ }
+ xr.prototype.bytesPerElement = 8, Fi("StructArrayLayout2i4ub8", xr);
+ class Ir extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F) {
+ let W = this.length;
+ return this.resize(W + 1), this.emplace(W, S, F);
+ }
+ emplace(S, F, W) {
+ let te = 2 * S;
+ return this.float32[te + 0] = F, this.float32[te + 1] = W, S;
+ }
+ }
+ Ir.prototype.bytesPerElement = 8, Fi("StructArrayLayout2f8", Ir);
+ class ve extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe, Fe, Ke, ct, Lt) {
+ let Jt = this.length;
+ return this.resize(Jt + 1), this.emplace(Jt, S, F, W, te, fe, pe, Fe, Ke, ct, Lt);
+ }
+ emplace(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt) {
+ let cr = 10 * S;
+ return this.uint16[cr + 0] = F, this.uint16[cr + 1] = W, this.uint16[cr + 2] = te, this.uint16[cr + 3] = fe, this.uint16[cr + 4] = pe, this.uint16[cr + 5] = Fe, this.uint16[cr + 6] = Ke, this.uint16[cr + 7] = ct, this.uint16[cr + 8] = Lt, this.uint16[cr + 9] = Jt, S;
+ }
+ }
+ ve.prototype.bytesPerElement = 20, Fi("StructArrayLayout10ui20", ve);
+ class be extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr) {
+ let mr = this.length;
+ return this.resize(mr + 1), this.emplace(mr, S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr);
+ }
+ emplace(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr) {
+ let Pr = 12 * S;
+ return this.int16[Pr + 0] = F, this.int16[Pr + 1] = W, this.int16[Pr + 2] = te, this.int16[Pr + 3] = fe, this.uint16[Pr + 4] = pe, this.uint16[Pr + 5] = Fe, this.uint16[Pr + 6] = Ke, this.uint16[Pr + 7] = ct, this.int16[Pr + 8] = Lt, this.int16[Pr + 9] = Jt, this.int16[Pr + 10] = cr, this.int16[Pr + 11] = mr, S;
+ }
+ }
+ be.prototype.bytesPerElement = 24, Fi("StructArrayLayout4i4ui4i24", be);
+ class Re extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W) {
+ let te = this.length;
+ return this.resize(te + 1), this.emplace(te, S, F, W);
+ }
+ emplace(S, F, W, te) {
+ let fe = 3 * S;
+ return this.float32[fe + 0] = F, this.float32[fe + 1] = W, this.float32[fe + 2] = te, S;
+ }
+ }
+ Re.prototype.bytesPerElement = 12, Fi("StructArrayLayout3f12", Re);
+ class qe extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer);
+ }
+ emplaceBack(S) {
+ let F = this.length;
+ return this.resize(F + 1), this.emplace(F, S);
+ }
+ emplace(S, F) {
+ return this.uint32[1 * S + 0] = F, S;
+ }
+ }
+ qe.prototype.bytesPerElement = 4, Fi("StructArrayLayout1ul4", qe);
+ class et extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe, Fe, Ke, ct) {
+ let Lt = this.length;
+ return this.resize(Lt + 1), this.emplace(Lt, S, F, W, te, fe, pe, Fe, Ke, ct);
+ }
+ emplace(S, F, W, te, fe, pe, Fe, Ke, ct, Lt) {
+ let Jt = 10 * S, cr = 5 * S;
+ return this.int16[Jt + 0] = F, this.int16[Jt + 1] = W, this.int16[Jt + 2] = te, this.int16[Jt + 3] = fe, this.int16[Jt + 4] = pe, this.int16[Jt + 5] = Fe, this.uint32[cr + 3] = Ke, this.uint16[Jt + 8] = ct, this.uint16[Jt + 9] = Lt, S;
+ }
+ }
+ et.prototype.bytesPerElement = 20, Fi("StructArrayLayout6i1ul2ui20", et);
+ class Xe extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe) {
+ let Fe = this.length;
+ return this.resize(Fe + 1), this.emplace(Fe, S, F, W, te, fe, pe);
+ }
+ emplace(S, F, W, te, fe, pe, Fe) {
+ let Ke = 6 * S;
+ return this.int16[Ke + 0] = F, this.int16[Ke + 1] = W, this.int16[Ke + 2] = te, this.int16[Ke + 3] = fe, this.int16[Ke + 4] = pe, this.int16[Ke + 5] = Fe, S;
+ }
+ }
+ Xe.prototype.bytesPerElement = 12, Fi("StructArrayLayout2i2i2i12", Xe);
+ class it extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe) {
+ let pe = this.length;
+ return this.resize(pe + 1), this.emplace(pe, S, F, W, te, fe);
+ }
+ emplace(S, F, W, te, fe, pe) {
+ let Fe = 4 * S, Ke = 8 * S;
+ return this.float32[Fe + 0] = F, this.float32[Fe + 1] = W, this.float32[Fe + 2] = te, this.int16[Ke + 6] = fe, this.int16[Ke + 7] = pe, S;
+ }
+ }
+ it.prototype.bytesPerElement = 16, Fi("StructArrayLayout2f1f2i16", it);
+ class Ft extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe) {
+ let Fe = this.length;
+ return this.resize(Fe + 1), this.emplace(Fe, S, F, W, te, fe, pe);
+ }
+ emplace(S, F, W, te, fe, pe, Fe) {
+ let Ke = 16 * S, ct = 4 * S, Lt = 8 * S;
+ return this.uint8[Ke + 0] = F, this.uint8[Ke + 1] = W, this.float32[ct + 1] = te, this.float32[ct + 2] = fe, this.int16[Lt + 6] = pe, this.int16[Lt + 7] = Fe, S;
+ }
+ }
+ Ft.prototype.bytesPerElement = 16, Fi("StructArrayLayout2ub2f2i16", Ft);
+ class Ht extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W) {
+ let te = this.length;
+ return this.resize(te + 1), this.emplace(te, S, F, W);
+ }
+ emplace(S, F, W, te) {
+ let fe = 3 * S;
+ return this.uint16[fe + 0] = F, this.uint16[fe + 1] = W, this.uint16[fe + 2] = te, S;
+ }
+ }
+ Ht.prototype.bytesPerElement = 6, Fi("StructArrayLayout3ui6", Ht);
+ class tr extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr, zr, ui, yi) {
+ let vn = this.length;
+ return this.resize(vn + 1), this.emplace(vn, S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr, zr, ui, yi);
+ }
+ emplace(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr, zr, ui, yi, vn) {
+ let zi = 24 * S, un = 12 * S, Tn = 48 * S;
+ return this.int16[zi + 0] = F, this.int16[zi + 1] = W, this.uint16[zi + 2] = te, this.uint16[zi + 3] = fe, this.uint32[un + 2] = pe, this.uint32[un + 3] = Fe, this.uint32[un + 4] = Ke, this.uint16[zi + 10] = ct, this.uint16[zi + 11] = Lt, this.uint16[zi + 12] = Jt, this.float32[un + 7] = cr, this.float32[un + 8] = mr, this.uint8[Tn + 36] = Pr, this.uint8[Tn + 37] = zr, this.uint8[Tn + 38] = ui, this.uint32[un + 10] = yi, this.int16[zi + 22] = vn, S;
+ }
+ }
+ tr.prototype.bytesPerElement = 48, Fi("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", tr);
+ class dr extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr, zr, ui, yi, vn, zi, un, Tn, pa, ro, Vo, Xa, sa, Mo, fo) {
+ let lo = this.length;
+ return this.resize(lo + 1), this.emplace(lo, S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr, zr, ui, yi, vn, zi, un, Tn, pa, ro, Vo, Xa, sa, Mo, fo);
+ }
+ emplace(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr, zr, ui, yi, vn, zi, un, Tn, pa, ro, Vo, Xa, sa, Mo, fo, lo) {
+ let Xn = 32 * S, Ro = 16 * S;
+ return this.int16[Xn + 0] = F, this.int16[Xn + 1] = W, this.int16[Xn + 2] = te, this.int16[Xn + 3] = fe, this.int16[Xn + 4] = pe, this.int16[Xn + 5] = Fe, this.int16[Xn + 6] = Ke, this.int16[Xn + 7] = ct, this.uint16[Xn + 8] = Lt, this.uint16[Xn + 9] = Jt, this.uint16[Xn + 10] = cr, this.uint16[Xn + 11] = mr, this.uint16[Xn + 12] = Pr, this.uint16[Xn + 13] = zr, this.uint16[Xn + 14] = ui, this.uint16[Xn + 15] = yi, this.uint16[Xn + 16] = vn, this.uint16[Xn + 17] = zi, this.uint16[Xn + 18] = un, this.uint16[Xn + 19] = Tn, this.uint16[Xn + 20] = pa, this.uint16[Xn + 21] = ro, this.uint16[Xn + 22] = Vo, this.uint32[Ro + 12] = Xa, this.float32[Ro + 13] = sa, this.float32[Ro + 14] = Mo, this.uint16[Xn + 30] = fo, this.uint16[Xn + 31] = lo, S;
+ }
+ }
+ dr.prototype.bytesPerElement = 64, Fi("StructArrayLayout8i15ui1ul2f2ui64", dr);
+ class Sr extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }
+ emplaceBack(S) {
+ let F = this.length;
+ return this.resize(F + 1), this.emplace(F, S);
+ }
+ emplace(S, F) {
+ return this.float32[1 * S + 0] = F, S;
+ }
+ }
+ Sr.prototype.bytesPerElement = 4, Fi("StructArrayLayout1f4", Sr);
+ class Or extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W) {
+ let te = this.length;
+ return this.resize(te + 1), this.emplace(te, S, F, W);
+ }
+ emplace(S, F, W, te) {
+ let fe = 3 * S;
+ return this.uint16[6 * S + 0] = F, this.float32[fe + 1] = W, this.float32[fe + 2] = te, S;
+ }
+ }
+ Or.prototype.bytesPerElement = 12, Fi("StructArrayLayout1ui2f12", Or);
+ class Wr extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W) {
+ let te = this.length;
+ return this.resize(te + 1), this.emplace(te, S, F, W);
+ }
+ emplace(S, F, W, te) {
+ let fe = 4 * S;
+ return this.uint32[2 * S + 0] = F, this.uint16[fe + 2] = W, this.uint16[fe + 3] = te, S;
+ }
+ }
+ Wr.prototype.bytesPerElement = 8, Fi("StructArrayLayout1ul2ui8", Wr);
+ class ni extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F) {
+ let W = this.length;
+ return this.resize(W + 1), this.emplace(W, S, F);
+ }
+ emplace(S, F, W) {
+ let te = 2 * S;
+ return this.uint16[te + 0] = F, this.uint16[te + 1] = W, S;
+ }
+ }
+ ni.prototype.bytesPerElement = 4, Fi("StructArrayLayout2ui4", ni);
+ class Pi extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);
+ }
+ emplaceBack(S) {
+ let F = this.length;
+ return this.resize(F + 1), this.emplace(F, S);
+ }
+ emplace(S, F) {
+ return this.uint16[1 * S + 0] = F, S;
+ }
+ }
+ Pi.prototype.bytesPerElement = 2, Fi("StructArrayLayout1ui2", Pi);
+ class cn extends le {
+ _refreshViews() {
+ this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);
+ }
+ emplaceBack(S, F, W, te) {
+ let fe = this.length;
+ return this.resize(fe + 1), this.emplace(fe, S, F, W, te);
+ }
+ emplace(S, F, W, te, fe) {
+ let pe = 4 * S;
+ return this.float32[pe + 0] = F, this.float32[pe + 1] = W, this.float32[pe + 2] = te, this.float32[pe + 3] = fe, S;
+ }
+ }
+ cn.prototype.bytesPerElement = 16, Fi("StructArrayLayout4f16", cn);
+ class ln extends ee {
+ get anchorPointX() {
+ return this._structArray.int16[this._pos2 + 0];
+ }
+ get anchorPointY() {
+ return this._structArray.int16[this._pos2 + 1];
+ }
+ get x1() {
+ return this._structArray.int16[this._pos2 + 2];
+ }
+ get y1() {
+ return this._structArray.int16[this._pos2 + 3];
+ }
+ get x2() {
+ return this._structArray.int16[this._pos2 + 4];
+ }
+ get y2() {
+ return this._structArray.int16[this._pos2 + 5];
+ }
+ get featureIndex() {
+ return this._structArray.uint32[this._pos4 + 3];
+ }
+ get sourceLayerIndex() {
+ return this._structArray.uint16[this._pos2 + 8];
+ }
+ get bucketIndex() {
+ return this._structArray.uint16[this._pos2 + 9];
+ }
+ get anchorPoint() {
+ return new u(this.anchorPointX, this.anchorPointY);
+ }
+ }
+ ln.prototype.size = 20;
+ class Cn extends et {
+ get(S) {
+ return new ln(this, S);
+ }
+ }
+ Fi("CollisionBoxArray", Cn);
+ class Kn extends ee {
+ get anchorX() {
+ return this._structArray.int16[this._pos2 + 0];
+ }
+ get anchorY() {
+ return this._structArray.int16[this._pos2 + 1];
+ }
+ get glyphStartIndex() {
+ return this._structArray.uint16[this._pos2 + 2];
+ }
+ get numGlyphs() {
+ return this._structArray.uint16[this._pos2 + 3];
+ }
+ get vertexStartIndex() {
+ return this._structArray.uint32[this._pos4 + 2];
+ }
+ get lineStartIndex() {
+ return this._structArray.uint32[this._pos4 + 3];
+ }
+ get lineLength() {
+ return this._structArray.uint32[this._pos4 + 4];
+ }
+ get segment() {
+ return this._structArray.uint16[this._pos2 + 10];
+ }
+ get lowerSize() {
+ return this._structArray.uint16[this._pos2 + 11];
+ }
+ get upperSize() {
+ return this._structArray.uint16[this._pos2 + 12];
+ }
+ get lineOffsetX() {
+ return this._structArray.float32[this._pos4 + 7];
+ }
+ get lineOffsetY() {
+ return this._structArray.float32[this._pos4 + 8];
+ }
+ get writingMode() {
+ return this._structArray.uint8[this._pos1 + 36];
+ }
+ get placedOrientation() {
+ return this._structArray.uint8[this._pos1 + 37];
+ }
+ set placedOrientation(S) {
+ this._structArray.uint8[this._pos1 + 37] = S;
+ }
+ get hidden() {
+ return this._structArray.uint8[this._pos1 + 38];
+ }
+ set hidden(S) {
+ this._structArray.uint8[this._pos1 + 38] = S;
+ }
+ get crossTileID() {
+ return this._structArray.uint32[this._pos4 + 10];
+ }
+ set crossTileID(S) {
+ this._structArray.uint32[this._pos4 + 10] = S;
+ }
+ get associatedIconIndex() {
+ return this._structArray.int16[this._pos2 + 22];
+ }
+ }
+ Kn.prototype.size = 48;
+ class Aa extends tr {
+ get(S) {
+ return new Kn(this, S);
+ }
+ }
+ Fi("PlacedSymbolArray", Aa);
+ class fa extends ee {
+ get anchorX() {
+ return this._structArray.int16[this._pos2 + 0];
+ }
+ get anchorY() {
+ return this._structArray.int16[this._pos2 + 1];
+ }
+ get rightJustifiedTextSymbolIndex() {
+ return this._structArray.int16[this._pos2 + 2];
+ }
+ get centerJustifiedTextSymbolIndex() {
+ return this._structArray.int16[this._pos2 + 3];
+ }
+ get leftJustifiedTextSymbolIndex() {
+ return this._structArray.int16[this._pos2 + 4];
+ }
+ get verticalPlacedTextSymbolIndex() {
+ return this._structArray.int16[this._pos2 + 5];
+ }
+ get placedIconSymbolIndex() {
+ return this._structArray.int16[this._pos2 + 6];
+ }
+ get verticalPlacedIconSymbolIndex() {
+ return this._structArray.int16[this._pos2 + 7];
+ }
+ get key() {
+ return this._structArray.uint16[this._pos2 + 8];
+ }
+ get textBoxStartIndex() {
+ return this._structArray.uint16[this._pos2 + 9];
+ }
+ get textBoxEndIndex() {
+ return this._structArray.uint16[this._pos2 + 10];
+ }
+ get verticalTextBoxStartIndex() {
+ return this._structArray.uint16[this._pos2 + 11];
+ }
+ get verticalTextBoxEndIndex() {
+ return this._structArray.uint16[this._pos2 + 12];
+ }
+ get iconBoxStartIndex() {
+ return this._structArray.uint16[this._pos2 + 13];
+ }
+ get iconBoxEndIndex() {
+ return this._structArray.uint16[this._pos2 + 14];
+ }
+ get verticalIconBoxStartIndex() {
+ return this._structArray.uint16[this._pos2 + 15];
+ }
+ get verticalIconBoxEndIndex() {
+ return this._structArray.uint16[this._pos2 + 16];
+ }
+ get featureIndex() {
+ return this._structArray.uint16[this._pos2 + 17];
+ }
+ get numHorizontalGlyphVertices() {
+ return this._structArray.uint16[this._pos2 + 18];
+ }
+ get numVerticalGlyphVertices() {
+ return this._structArray.uint16[this._pos2 + 19];
+ }
+ get numIconVertices() {
+ return this._structArray.uint16[this._pos2 + 20];
+ }
+ get numVerticalIconVertices() {
+ return this._structArray.uint16[this._pos2 + 21];
+ }
+ get useRuntimeCollisionCircles() {
+ return this._structArray.uint16[this._pos2 + 22];
+ }
+ get crossTileID() {
+ return this._structArray.uint32[this._pos4 + 12];
+ }
+ set crossTileID(S) {
+ this._structArray.uint32[this._pos4 + 12] = S;
+ }
+ get textBoxScale() {
+ return this._structArray.float32[this._pos4 + 13];
+ }
+ get collisionCircleDiameter() {
+ return this._structArray.float32[this._pos4 + 14];
+ }
+ get textAnchorOffsetStartIndex() {
+ return this._structArray.uint16[this._pos2 + 30];
+ }
+ get textAnchorOffsetEndIndex() {
+ return this._structArray.uint16[this._pos2 + 31];
+ }
+ }
+ fa.prototype.size = 64;
+ class $a extends dr {
+ get(S) {
+ return new fa(this, S);
+ }
+ }
+ Fi("SymbolInstanceArray", $a);
+ class Co extends Sr {
+ getoffsetX(S) {
+ return this.float32[1 * S + 0];
+ }
+ }
+ Fi("GlyphOffsetArray", Co);
+ class Qa extends Tt {
+ getx(S) {
+ return this.int16[3 * S + 0];
+ }
+ gety(S) {
+ return this.int16[3 * S + 1];
+ }
+ gettileUnitDistanceFromAnchor(S) {
+ return this.int16[3 * S + 2];
+ }
+ }
+ Fi("SymbolLineVertexArray", Qa);
+ class mo extends ee {
+ get textAnchor() {
+ return this._structArray.uint16[this._pos2 + 0];
+ }
+ get textOffset0() {
+ return this._structArray.float32[this._pos4 + 1];
+ }
+ get textOffset1() {
+ return this._structArray.float32[this._pos4 + 2];
+ }
+ }
+ mo.prototype.size = 12;
+ class Bo extends Or {
+ get(S) {
+ return new mo(this, S);
+ }
+ }
+ Fi("TextAnchorOffsetArray", Bo);
+ class Ps extends ee {
+ get featureIndex() {
+ return this._structArray.uint32[this._pos4 + 0];
+ }
+ get sourceLayerIndex() {
+ return this._structArray.uint16[this._pos2 + 2];
+ }
+ get bucketIndex() {
+ return this._structArray.uint16[this._pos2 + 3];
+ }
+ }
+ Ps.prototype.size = 8;
+ class Ts extends Wr {
+ get(S) {
+ return new Ps(this, S);
+ }
+ }
+ Fi("FeatureIndexArray", Ts);
+ class wo extends st {
+ }
+ class To extends st {
+ }
+ class hl extends st {
+ }
+ class Ul extends Kt {
+ }
+ class Lu extends xr {
+ }
+ class au extends Ir {
+ }
+ class Js extends ve {
+ }
+ class eu extends be {
+ }
+ class dc extends Re {
+ }
+ class Tl extends qe {
+ }
+ class Al extends Xe {
+ }
+ class X extends Ft {
+ }
+ class se extends Ht {
+ }
+ class Te extends ni {
+ }
+ let Ne = Oe([{ name: "a_pos", components: 2, type: "Int16" }], 4), { members: He } = Ne;
+ class Ye {
+ constructor(S = []) {
+ this.segments = S;
+ }
+ prepareSegment(S, F, W, te) {
+ let fe = this.segments[this.segments.length - 1];
+ return S > Ye.MAX_VERTEX_ARRAY_LENGTH && A(`Max vertices per segment is ${Ye.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${S}`), (!fe || fe.vertexLength + S > Ye.MAX_VERTEX_ARRAY_LENGTH || fe.sortKey !== te) && (fe = { vertexOffset: F.length, primitiveOffset: W.length, vertexLength: 0, primitiveLength: 0 }, te !== void 0 && (fe.sortKey = te), this.segments.push(fe)), fe;
+ }
+ get() {
+ return this.segments;
+ }
+ destroy() {
+ for (let S of this.segments) for (let F in S.vaos) S.vaos[F].destroy();
+ }
+ static simpleSegment(S, F, W, te) {
+ return new Ye([{ vertexOffset: S, primitiveOffset: F, vertexLength: W, primitiveLength: te, vaos: {}, sortKey: 0 }]);
+ }
+ }
+ function kt(R, S) {
+ return 256 * (R = E(Math.floor(R), 0, 255)) + E(Math.floor(S), 0, 255);
+ }
+ Ye.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, Fi("SegmentVector", Ye);
+ let nt = Oe([{ name: "a_pattern_from", components: 4, type: "Uint16" }, { name: "a_pattern_to", components: 4, type: "Uint16" }, { name: "a_pixel_ratio_from", components: 1, type: "Uint16" }, { name: "a_pixel_ratio_to", components: 1, type: "Uint16" }]);
+ var jt = { exports: {} }, gr = { exports: {} };
+ gr.exports = function(R, S) {
+ var F, W, te, fe, pe, Fe, Ke, ct;
+ for (W = R.length - (F = 3 & R.length), te = S, pe = 3432918353, Fe = 461845907, ct = 0; ct < W; ) Ke = 255 & R.charCodeAt(ct) | (255 & R.charCodeAt(++ct)) << 8 | (255 & R.charCodeAt(++ct)) << 16 | (255 & R.charCodeAt(++ct)) << 24, ++ct, te = 27492 + (65535 & (fe = 5 * (65535 & (te = (te ^= Ke = (65535 & (Ke = (Ke = (65535 & Ke) * pe + (((Ke >>> 16) * pe & 65535) << 16) & 4294967295) << 15 | Ke >>> 17)) * Fe + (((Ke >>> 16) * Fe & 65535) << 16) & 4294967295) << 13 | te >>> 19)) + ((5 * (te >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (fe >>> 16) & 65535) << 16);
+ switch (Ke = 0, F) {
+ case 3:
+ Ke ^= (255 & R.charCodeAt(ct + 2)) << 16;
+ case 2:
+ Ke ^= (255 & R.charCodeAt(ct + 1)) << 8;
+ case 1:
+ te ^= Ke = (65535 & (Ke = (Ke = (65535 & (Ke ^= 255 & R.charCodeAt(ct))) * pe + (((Ke >>> 16) * pe & 65535) << 16) & 4294967295) << 15 | Ke >>> 17)) * Fe + (((Ke >>> 16) * Fe & 65535) << 16) & 4294967295;
+ }
+ return te ^= R.length, te = 2246822507 * (65535 & (te ^= te >>> 16)) + ((2246822507 * (te >>> 16) & 65535) << 16) & 4294967295, te = 3266489909 * (65535 & (te ^= te >>> 13)) + ((3266489909 * (te >>> 16) & 65535) << 16) & 4294967295, (te ^= te >>> 16) >>> 0;
+ };
+ var yr = gr.exports, Hr = { exports: {} };
+ Hr.exports = function(R, S) {
+ for (var F, W = R.length, te = S ^ W, fe = 0; W >= 4; ) F = 1540483477 * (65535 & (F = 255 & R.charCodeAt(fe) | (255 & R.charCodeAt(++fe)) << 8 | (255 & R.charCodeAt(++fe)) << 16 | (255 & R.charCodeAt(++fe)) << 24)) + ((1540483477 * (F >>> 16) & 65535) << 16), te = 1540483477 * (65535 & te) + ((1540483477 * (te >>> 16) & 65535) << 16) ^ (F = 1540483477 * (65535 & (F ^= F >>> 24)) + ((1540483477 * (F >>> 16) & 65535) << 16)), W -= 4, ++fe;
+ switch (W) {
+ case 3:
+ te ^= (255 & R.charCodeAt(fe + 2)) << 16;
+ case 2:
+ te ^= (255 & R.charCodeAt(fe + 1)) << 8;
+ case 1:
+ te = 1540483477 * (65535 & (te ^= 255 & R.charCodeAt(fe))) + ((1540483477 * (te >>> 16) & 65535) << 16);
+ }
+ return te = 1540483477 * (65535 & (te ^= te >>> 13)) + ((1540483477 * (te >>> 16) & 65535) << 16), (te ^= te >>> 15) >>> 0;
+ };
+ var qr = yr, _i = Hr.exports;
+ jt.exports = qr, jt.exports.murmur3 = qr, jt.exports.murmur2 = _i;
+ var bi = o(jt.exports);
+ class Zr {
+ constructor() {
+ this.ids = [], this.positions = [], this.indexed = false;
+ }
+ add(S, F, W, te) {
+ this.ids.push(ai(S)), this.positions.push(F, W, te);
+ }
+ getPositions(S) {
+ if (!this.indexed) throw new Error("Trying to get index, but feature positions are not indexed");
+ let F = ai(S), W = 0, te = this.ids.length - 1;
+ for (; W < te; ) {
+ let pe = W + te >> 1;
+ this.ids[pe] >= F ? te = pe : W = pe + 1;
+ }
+ let fe = [];
+ for (; this.ids[W] === F; ) fe.push({ index: this.positions[3 * W], start: this.positions[3 * W + 1], end: this.positions[3 * W + 2] }), W++;
+ return fe;
+ }
+ static serialize(S, F) {
+ let W = new Float64Array(S.ids), te = new Uint32Array(S.positions);
+ return gi(W, te, 0, W.length - 1), F && F.push(W.buffer, te.buffer), { ids: W, positions: te };
+ }
+ static deserialize(S) {
+ let F = new Zr();
+ return F.ids = S.ids, F.positions = S.positions, F.indexed = true, F;
+ }
+ }
+ function ai(R) {
+ let S = +R;
+ return !isNaN(S) && S <= Number.MAX_SAFE_INTEGER ? S : bi(String(R));
+ }
+ function gi(R, S, F, W) {
+ for (; F < W; ) {
+ let te = R[F + W >> 1], fe = F - 1, pe = W + 1;
+ for (; ; ) {
+ do
+ fe++;
+ while (R[fe] < te);
+ do
+ pe--;
+ while (R[pe] > te);
+ if (fe >= pe) break;
+ Ii(R, fe, pe), Ii(S, 3 * fe, 3 * pe), Ii(S, 3 * fe + 1, 3 * pe + 1), Ii(S, 3 * fe + 2, 3 * pe + 2);
+ }
+ pe - F < W - pe ? (gi(R, S, F, pe), F = pe + 1) : (gi(R, S, pe + 1, W), W = pe);
+ }
+ }
+ function Ii(R, S, F) {
+ let W = R[S];
+ R[S] = R[F], R[F] = W;
+ }
+ Fi("FeaturePositionMap", Zr);
+ class Si {
+ constructor(S, F) {
+ this.gl = S.gl, this.location = F;
+ }
+ }
+ class ei extends Si {
+ constructor(S, F) {
+ super(S, F), this.current = 0;
+ }
+ set(S) {
+ this.current !== S && (this.current = S, this.gl.uniform1f(this.location, S));
+ }
+ }
+ class Ln extends Si {
+ constructor(S, F) {
+ super(S, F), this.current = [0, 0, 0, 0];
+ }
+ set(S) {
+ S[0] === this.current[0] && S[1] === this.current[1] && S[2] === this.current[2] && S[3] === this.current[3] || (this.current = S, this.gl.uniform4f(this.location, S[0], S[1], S[2], S[3]));
+ }
+ }
+ class En extends Si {
+ constructor(S, F) {
+ super(S, F), this.current = nr.transparent;
+ }
+ set(S) {
+ S.r === this.current.r && S.g === this.current.g && S.b === this.current.b && S.a === this.current.a || (this.current = S, this.gl.uniform4f(this.location, S.r, S.g, S.b, S.a));
+ }
+ }
+ let Un = new Float32Array(16);
+ function ia(R) {
+ return [kt(255 * R.r, 255 * R.g), kt(255 * R.b, 255 * R.a)];
+ }
+ class Ea {
+ constructor(S, F, W) {
+ this.value = S, this.uniformNames = F.map((te) => `u_${te}`), this.type = W;
+ }
+ setUniform(S, F, W) {
+ S.set(W.constantOr(this.value));
+ }
+ getBinding(S, F, W) {
+ return this.type === "color" ? new En(S, F) : new ei(S, F);
+ }
+ }
+ class Ia {
+ constructor(S, F) {
+ this.uniformNames = F.map((W) => `u_${W}`), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1;
+ }
+ setConstantPatternPositions(S, F) {
+ this.pixelRatioFrom = F.pixelRatio, this.pixelRatioTo = S.pixelRatio, this.patternFrom = F.tlbr, this.patternTo = S.tlbr;
+ }
+ setUniform(S, F, W, te) {
+ let fe = te === "u_pattern_to" ? this.patternTo : te === "u_pattern_from" ? this.patternFrom : te === "u_pixel_ratio_to" ? this.pixelRatioTo : te === "u_pixel_ratio_from" ? this.pixelRatioFrom : null;
+ fe && S.set(fe);
+ }
+ getBinding(S, F, W) {
+ return W.substr(0, 9) === "u_pattern" ? new Ln(S, F) : new ei(S, F);
+ }
+ }
+ class yo {
+ constructor(S, F, W, te) {
+ this.expression = S, this.type = W, this.maxValue = 0, this.paintVertexAttributes = F.map((fe) => ({ name: `a_${fe}`, type: "Float32", components: W === "color" ? 2 : 1, offset: 0 })), this.paintVertexArray = new te();
+ }
+ populatePaintArray(S, F, W, te, fe) {
+ let pe = this.paintVertexArray.length, Fe = this.expression.evaluate(new rs(0), F, {}, te, [], fe);
+ this.paintVertexArray.resize(S), this._setPaintValue(pe, S, Fe);
+ }
+ updatePaintArray(S, F, W, te) {
+ let fe = this.expression.evaluate({ zoom: 0 }, W, te);
+ this._setPaintValue(S, F, fe);
+ }
+ _setPaintValue(S, F, W) {
+ if (this.type === "color") {
+ let te = ia(W);
+ for (let fe = S; fe < F; fe++) this.paintVertexArray.emplace(fe, te[0], te[1]);
+ } else {
+ for (let te = S; te < F; te++) this.paintVertexArray.emplace(te, W);
+ this.maxValue = Math.max(this.maxValue, Math.abs(W));
+ }
+ }
+ upload(S) {
+ this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = S.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent));
+ }
+ destroy() {
+ this.paintVertexBuffer && this.paintVertexBuffer.destroy();
+ }
+ }
+ class Da {
+ constructor(S, F, W, te, fe, pe) {
+ this.expression = S, this.uniformNames = F.map((Fe) => `u_${Fe}_t`), this.type = W, this.useIntegerZoom = te, this.zoom = fe, this.maxValue = 0, this.paintVertexAttributes = F.map((Fe) => ({ name: `a_${Fe}`, type: "Float32", components: W === "color" ? 4 : 2, offset: 0 })), this.paintVertexArray = new pe();
+ }
+ populatePaintArray(S, F, W, te, fe) {
+ let pe = this.expression.evaluate(new rs(this.zoom), F, {}, te, [], fe), Fe = this.expression.evaluate(new rs(this.zoom + 1), F, {}, te, [], fe), Ke = this.paintVertexArray.length;
+ this.paintVertexArray.resize(S), this._setPaintValue(Ke, S, pe, Fe);
+ }
+ updatePaintArray(S, F, W, te) {
+ let fe = this.expression.evaluate({ zoom: this.zoom }, W, te), pe = this.expression.evaluate({ zoom: this.zoom + 1 }, W, te);
+ this._setPaintValue(S, F, fe, pe);
+ }
+ _setPaintValue(S, F, W, te) {
+ if (this.type === "color") {
+ let fe = ia(W), pe = ia(te);
+ for (let Fe = S; Fe < F; Fe++) this.paintVertexArray.emplace(Fe, fe[0], fe[1], pe[0], pe[1]);
+ } else {
+ for (let fe = S; fe < F; fe++) this.paintVertexArray.emplace(fe, W, te);
+ this.maxValue = Math.max(this.maxValue, Math.abs(W), Math.abs(te));
+ }
+ }
+ upload(S) {
+ this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = S.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent));
+ }
+ destroy() {
+ this.paintVertexBuffer && this.paintVertexBuffer.destroy();
+ }
+ setUniform(S, F) {
+ let W = this.useIntegerZoom ? Math.floor(F.zoom) : F.zoom, te = E(this.expression.interpolationFactor(W, this.zoom, this.zoom + 1), 0, 1);
+ S.set(te);
+ }
+ getBinding(S, F, W) {
+ return new ei(S, F);
+ }
+ }
+ class go {
+ constructor(S, F, W, te, fe, pe) {
+ this.expression = S, this.type = F, this.useIntegerZoom = W, this.zoom = te, this.layerId = pe, this.zoomInPaintVertexArray = new fe(), this.zoomOutPaintVertexArray = new fe();
+ }
+ populatePaintArray(S, F, W) {
+ let te = this.zoomInPaintVertexArray.length;
+ this.zoomInPaintVertexArray.resize(S), this.zoomOutPaintVertexArray.resize(S), this._setPaintValues(te, S, F.patterns && F.patterns[this.layerId], W);
+ }
+ updatePaintArray(S, F, W, te, fe) {
+ this._setPaintValues(S, F, W.patterns && W.patterns[this.layerId], fe);
+ }
+ _setPaintValues(S, F, W, te) {
+ if (!te || !W) return;
+ let { min: fe, mid: pe, max: Fe } = W, Ke = te[fe], ct = te[pe], Lt = te[Fe];
+ if (Ke && ct && Lt) for (let Jt = S; Jt < F; Jt++) this.zoomInPaintVertexArray.emplace(Jt, ct.tl[0], ct.tl[1], ct.br[0], ct.br[1], Ke.tl[0], Ke.tl[1], Ke.br[0], Ke.br[1], ct.pixelRatio, Ke.pixelRatio), this.zoomOutPaintVertexArray.emplace(Jt, ct.tl[0], ct.tl[1], ct.br[0], ct.br[1], Lt.tl[0], Lt.tl[1], Lt.br[0], Lt.br[1], ct.pixelRatio, Lt.pixelRatio);
+ }
+ upload(S) {
+ this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = S.createVertexBuffer(this.zoomInPaintVertexArray, nt.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = S.createVertexBuffer(this.zoomOutPaintVertexArray, nt.members, this.expression.isStateDependent));
+ }
+ destroy() {
+ this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy();
+ }
+ }
+ class Is {
+ constructor(S, F, W) {
+ this.binders = {}, this._buffers = [];
+ let te = [];
+ for (let fe in S.paint._values) {
+ if (!W(fe)) continue;
+ let pe = S.paint.get(fe);
+ if (!(pe instanceof xu && Nl(pe.property.specification))) continue;
+ let Fe = Xs(fe, S.type), Ke = pe.value, ct = pe.property.specification.type, Lt = pe.property.useIntegerZoom, Jt = pe.property.specification["property-type"], cr = Jt === "cross-faded" || Jt === "cross-faded-data-driven";
+ if (Ke.kind === "constant") this.binders[fe] = cr ? new Ia(Ke.value, Fe) : new Ea(Ke.value, Fe, ct), te.push(`/u_${fe}`);
+ else if (Ke.kind === "source" || cr) {
+ let mr = Gn(fe, ct, "source");
+ this.binders[fe] = cr ? new go(Ke, ct, Lt, F, mr, S.id) : new yo(Ke, Fe, ct, mr), te.push(`/a_${fe}`);
+ } else {
+ let mr = Gn(fe, ct, "composite");
+ this.binders[fe] = new Da(Ke, Fe, ct, Lt, F, mr), te.push(`/z_${fe}`);
+ }
+ }
+ this.cacheKey = te.sort().join("");
+ }
+ getMaxValue(S) {
+ let F = this.binders[S];
+ return F instanceof yo || F instanceof Da ? F.maxValue : 0;
+ }
+ populatePaintArrays(S, F, W, te, fe) {
+ for (let pe in this.binders) {
+ let Fe = this.binders[pe];
+ (Fe instanceof yo || Fe instanceof Da || Fe instanceof go) && Fe.populatePaintArray(S, F, W, te, fe);
+ }
+ }
+ setConstantPatternPositions(S, F) {
+ for (let W in this.binders) {
+ let te = this.binders[W];
+ te instanceof Ia && te.setConstantPatternPositions(S, F);
+ }
+ }
+ updatePaintArrays(S, F, W, te, fe) {
+ let pe = false;
+ for (let Fe in S) {
+ let Ke = F.getPositions(Fe);
+ for (let ct of Ke) {
+ let Lt = W.feature(ct.index);
+ for (let Jt in this.binders) {
+ let cr = this.binders[Jt];
+ if ((cr instanceof yo || cr instanceof Da || cr instanceof go) && cr.expression.isStateDependent === true) {
+ let mr = te.paint.get(Jt);
+ cr.expression = mr.value, cr.updatePaintArray(ct.start, ct.end, Lt, S[Fe], fe), pe = true;
+ }
+ }
+ }
+ }
+ return pe;
+ }
+ defines() {
+ let S = [];
+ for (let F in this.binders) {
+ let W = this.binders[F];
+ (W instanceof Ea || W instanceof Ia) && S.push(...W.uniformNames.map((te) => `#define HAS_UNIFORM_${te}`));
+ }
+ return S;
+ }
+ getBinderAttributes() {
+ let S = [];
+ for (let F in this.binders) {
+ let W = this.binders[F];
+ if (W instanceof yo || W instanceof Da) for (let te = 0; te < W.paintVertexAttributes.length; te++) S.push(W.paintVertexAttributes[te].name);
+ else if (W instanceof go) for (let te = 0; te < nt.members.length; te++) S.push(nt.members[te].name);
+ }
+ return S;
+ }
+ getBinderUniforms() {
+ let S = [];
+ for (let F in this.binders) {
+ let W = this.binders[F];
+ if (W instanceof Ea || W instanceof Ia || W instanceof Da) for (let te of W.uniformNames) S.push(te);
+ }
+ return S;
+ }
+ getPaintVertexBuffers() {
+ return this._buffers;
+ }
+ getUniforms(S, F) {
+ let W = [];
+ for (let te in this.binders) {
+ let fe = this.binders[te];
+ if (fe instanceof Ea || fe instanceof Ia || fe instanceof Da) {
+ for (let pe of fe.uniformNames) if (F[pe]) {
+ let Fe = fe.getBinding(S, F[pe], pe);
+ W.push({ name: pe, property: te, binding: Fe });
+ }
+ }
+ }
+ return W;
+ }
+ setUniforms(S, F, W, te) {
+ for (let { name: fe, property: pe, binding: Fe } of F) this.binders[pe].setUniform(Fe, te, W.get(pe), fe);
+ }
+ updatePaintBuffers(S) {
+ this._buffers = [];
+ for (let F in this.binders) {
+ let W = this.binders[F];
+ if (S && W instanceof go) {
+ let te = S.fromScale === 2 ? W.zoomInPaintVertexBuffer : W.zoomOutPaintVertexBuffer;
+ te && this._buffers.push(te);
+ } else (W instanceof yo || W instanceof Da) && W.paintVertexBuffer && this._buffers.push(W.paintVertexBuffer);
+ }
+ }
+ upload(S) {
+ for (let F in this.binders) {
+ let W = this.binders[F];
+ (W instanceof yo || W instanceof Da || W instanceof go) && W.upload(S);
+ }
+ this.updatePaintBuffers();
+ }
+ destroy() {
+ for (let S in this.binders) {
+ let F = this.binders[S];
+ (F instanceof yo || F instanceof Da || F instanceof go) && F.destroy();
+ }
+ }
+ }
+ class Ms {
+ constructor(S, F, W = () => true) {
+ this.programConfigurations = {};
+ for (let te of S) this.programConfigurations[te.id] = new Is(te, F, W);
+ this.needsUpload = false, this._featureMap = new Zr(), this._bufferOffset = 0;
+ }
+ populatePaintArrays(S, F, W, te, fe, pe) {
+ for (let Fe in this.programConfigurations) this.programConfigurations[Fe].populatePaintArrays(S, F, te, fe, pe);
+ F.id !== void 0 && this._featureMap.add(F.id, W, this._bufferOffset, S), this._bufferOffset = S, this.needsUpload = true;
+ }
+ updatePaintArrays(S, F, W, te) {
+ for (let fe of W) this.needsUpload = this.programConfigurations[fe.id].updatePaintArrays(S, this._featureMap, F, fe, te) || this.needsUpload;
+ }
+ get(S) {
+ return this.programConfigurations[S];
+ }
+ upload(S) {
+ if (this.needsUpload) {
+ for (let F in this.programConfigurations) this.programConfigurations[F].upload(S);
+ this.needsUpload = false;
+ }
+ }
+ destroy() {
+ for (let S in this.programConfigurations) this.programConfigurations[S].destroy();
+ }
+ }
+ function Xs(R, S) {
+ return { "text-opacity": ["opacity"], "icon-opacity": ["opacity"], "text-color": ["fill_color"], "icon-color": ["fill_color"], "text-halo-color": ["halo_color"], "icon-halo-color": ["halo_color"], "text-halo-blur": ["halo_blur"], "icon-halo-blur": ["halo_blur"], "text-halo-width": ["halo_width"], "icon-halo-width": ["halo_width"], "line-gap-width": ["gapwidth"], "line-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], "fill-extrusion-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"] }[R] || [R.replace(`${S}-`, "").replace(/-/g, "_")];
+ }
+ function Gn(R, S, F) {
+ let W = { color: { source: Ir, composite: cn }, number: { source: Sr, composite: Ir } }, te = function(fe) {
+ return { "line-pattern": { source: Js, composite: Js }, "fill-pattern": { source: Js, composite: Js }, "fill-extrusion-pattern": { source: Js, composite: Js } }[fe];
+ }(R);
+ return te && te[F] || W[S][F];
+ }
+ Fi("ConstantBinder", Ea), Fi("CrossFadedConstantBinder", Ia), Fi("SourceExpressionBinder", yo), Fi("CrossFadedCompositeBinder", go), Fi("CompositeExpressionBinder", Da), Fi("ProgramConfiguration", Is, { omit: ["_buffers"] }), Fi("ProgramConfigurationSet", Ms);
+ let ja = 8192, Fo = Math.pow(2, 14) - 1, Uo = -Fo - 1;
+ function $s(R) {
+ let S = ja / R.extent, F = R.loadGeometry();
+ for (let W = 0; W < F.length; W++) {
+ let te = F[W];
+ for (let fe = 0; fe < te.length; fe++) {
+ let pe = te[fe], Fe = Math.round(pe.x * S), Ke = Math.round(pe.y * S);
+ pe.x = E(Fe, Uo, Fo), pe.y = E(Ke, Uo, Fo), (Fe < pe.x || Fe > pe.x + 1 || Ke < pe.y || Ke > pe.y + 1) && A("Geometry exceeds allowed extent, reduce your vector tile buffer size");
+ }
+ }
+ return F;
+ }
+ function Sl(R, S) {
+ return { type: R.type, id: R.id, properties: R.properties, geometry: S ? $s(R) : [] };
+ }
+ function bu(R, S, F, W, te) {
+ R.emplaceBack(2 * S + (W + 1) / 2, 2 * F + (te + 1) / 2);
+ }
+ class dl {
+ constructor(S) {
+ this.zoom = S.zoom, this.overscaling = S.overscaling, this.layers = S.layers, this.layerIds = this.layers.map((F) => F.id), this.index = S.index, this.hasPattern = false, this.layoutVertexArray = new To(), this.indexArray = new se(), this.segments = new Ye(), this.programConfigurations = new Ms(S.layers, S.zoom), this.stateDependentLayerIds = this.layers.filter((F) => F.isStateDependent()).map((F) => F.id);
+ }
+ populate(S, F, W) {
+ let te = this.layers[0], fe = [], pe = null, Fe = false;
+ te.type === "circle" && (pe = te.layout.get("circle-sort-key"), Fe = !pe.isConstant());
+ for (let { feature: Ke, id: ct, index: Lt, sourceLayerIndex: Jt } of S) {
+ let cr = this.layers[0]._featureFilter.needGeometry, mr = Sl(Ke, cr);
+ if (!this.layers[0]._featureFilter.filter(new rs(this.zoom), mr, W)) continue;
+ let Pr = Fe ? pe.evaluate(mr, {}, W) : void 0, zr = { id: ct, properties: Ke.properties, type: Ke.type, sourceLayerIndex: Jt, index: Lt, geometry: cr ? mr.geometry : $s(Ke), patterns: {}, sortKey: Pr };
+ fe.push(zr);
+ }
+ Fe && fe.sort((Ke, ct) => Ke.sortKey - ct.sortKey);
+ for (let Ke of fe) {
+ let { geometry: ct, index: Lt, sourceLayerIndex: Jt } = Ke, cr = S[Lt].feature;
+ this.addFeature(Ke, ct, Lt, W), F.featureIndex.insert(cr, ct, Lt, Jt, this.index);
+ }
+ }
+ update(S, F, W) {
+ this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(S, F, this.stateDependentLayers, W);
+ }
+ isEmpty() {
+ return this.layoutVertexArray.length === 0;
+ }
+ uploadPending() {
+ return !this.uploaded || this.programConfigurations.needsUpload;
+ }
+ upload(S) {
+ this.uploaded || (this.layoutVertexBuffer = S.createVertexBuffer(this.layoutVertexArray, He), this.indexBuffer = S.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(S), this.uploaded = true;
+ }
+ destroy() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());
+ }
+ addFeature(S, F, W, te) {
+ for (let fe of F) for (let pe of fe) {
+ let Fe = pe.x, Ke = pe.y;
+ if (Fe < 0 || Fe >= ja || Ke < 0 || Ke >= ja) continue;
+ let ct = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, S.sortKey), Lt = ct.vertexLength;
+ bu(this.layoutVertexArray, Fe, Ke, -1, -1), bu(this.layoutVertexArray, Fe, Ke, 1, -1), bu(this.layoutVertexArray, Fe, Ke, 1, 1), bu(this.layoutVertexArray, Fe, Ke, -1, 1), this.indexArray.emplaceBack(Lt, Lt + 1, Lt + 2), this.indexArray.emplaceBack(Lt, Lt + 3, Lt + 2), ct.vertexLength += 4, ct.primitiveLength += 2;
+ }
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, S, W, {}, te);
+ }
+ }
+ function Sc(R, S) {
+ for (let F = 0; F < R.length; F++) if (Ui(S, R[F])) return true;
+ for (let F = 0; F < S.length; F++) if (Ui(R, S[F])) return true;
+ return !!Rr(R, S);
+ }
+ function Me(R, S, F) {
+ return !!Ui(R, S) || !!Nr(S, R, F);
+ }
+ function bt(R, S) {
+ if (R.length === 1) return mi(S, R[0]);
+ for (let F = 0; F < S.length; F++) {
+ let W = S[F];
+ for (let te = 0; te < W.length; te++) if (Ui(R, W[te])) return true;
+ }
+ for (let F = 0; F < R.length; F++) if (mi(S, R[F])) return true;
+ for (let F = 0; F < S.length; F++) if (Rr(R, S[F])) return true;
+ return false;
+ }
+ function zt(R, S, F) {
+ if (R.length > 1) {
+ if (Rr(R, S)) return true;
+ for (let W = 0; W < S.length; W++) if (Nr(S[W], R, F)) return true;
+ }
+ for (let W = 0; W < R.length; W++) if (Nr(R[W], S, F)) return true;
+ return false;
+ }
+ function Rr(R, S) {
+ if (R.length === 0 || S.length === 0) return false;
+ for (let F = 0; F < R.length - 1; F++) {
+ let W = R[F], te = R[F + 1];
+ for (let fe = 0; fe < S.length - 1; fe++) if (jr(W, te, S[fe], S[fe + 1])) return true;
+ }
+ return false;
+ }
+ function jr(R, S, F, W) {
+ return z(R, F, W) !== z(S, F, W) && z(R, S, F) !== z(R, S, W);
+ }
+ function Nr(R, S, F) {
+ let W = F * F;
+ if (S.length === 1) return R.distSqr(S[0]) < W;
+ for (let te = 1; te < S.length; te++) if (Gr(R, S[te - 1], S[te]) < W) return true;
+ return false;
+ }
+ function Gr(R, S, F) {
+ let W = S.distSqr(F);
+ if (W === 0) return R.distSqr(S);
+ let te = ((R.x - S.x) * (F.x - S.x) + (R.y - S.y) * (F.y - S.y)) / W;
+ return R.distSqr(te < 0 ? S : te > 1 ? F : F.sub(S)._mult(te)._add(S));
+ }
+ function mi(R, S) {
+ let F, W, te, fe = false;
+ for (let pe = 0; pe < R.length; pe++) {
+ F = R[pe];
+ for (let Fe = 0, Ke = F.length - 1; Fe < F.length; Ke = Fe++) W = F[Fe], te = F[Ke], W.y > S.y != te.y > S.y && S.x < (te.x - W.x) * (S.y - W.y) / (te.y - W.y) + W.x && (fe = !fe);
+ }
+ return fe;
+ }
+ function Ui(R, S) {
+ let F = false;
+ for (let W = 0, te = R.length - 1; W < R.length; te = W++) {
+ let fe = R[W], pe = R[te];
+ fe.y > S.y != pe.y > S.y && S.x < (pe.x - fe.x) * (S.y - fe.y) / (pe.y - fe.y) + fe.x && (F = !F);
+ }
+ return F;
+ }
+ function qi(R, S, F) {
+ let W = F[0], te = F[2];
+ if (R.x < W.x && S.x < W.x || R.x > te.x && S.x > te.x || R.y < W.y && S.y < W.y || R.y > te.y && S.y > te.y) return false;
+ let fe = z(R, S, F[0]);
+ return fe !== z(R, S, F[1]) || fe !== z(R, S, F[2]) || fe !== z(R, S, F[3]);
+ }
+ function Ei(R, S, F) {
+ let W = S.paint.get(R).value;
+ return W.kind === "constant" ? W.value : F.programConfigurations.get(S.id).getMaxValue(R);
+ }
+ function Hn(R) {
+ return Math.sqrt(R[0] * R[0] + R[1] * R[1]);
+ }
+ function en(R, S, F, W, te) {
+ if (!S[0] && !S[1]) return R;
+ let fe = u.convert(S)._mult(te);
+ F === "viewport" && fe._rotate(-W);
+ let pe = [];
+ for (let Fe = 0; Fe < R.length; Fe++) pe.push(R[Fe].sub(fe));
+ return pe;
+ }
+ let Wi, si;
+ Fi("CircleBucket", dl, { omit: ["layers"] });
+ var Mr = { get paint() {
+ return si = si || new ue({ "circle-radius": new oo(ce.paint_circle["circle-radius"]), "circle-color": new oo(ce.paint_circle["circle-color"]), "circle-blur": new oo(ce.paint_circle["circle-blur"]), "circle-opacity": new oo(ce.paint_circle["circle-opacity"]), "circle-translate": new Ua(ce.paint_circle["circle-translate"]), "circle-translate-anchor": new Ua(ce.paint_circle["circle-translate-anchor"]), "circle-pitch-scale": new Ua(ce.paint_circle["circle-pitch-scale"]), "circle-pitch-alignment": new Ua(ce.paint_circle["circle-pitch-alignment"]), "circle-stroke-width": new oo(ce.paint_circle["circle-stroke-width"]), "circle-stroke-color": new oo(ce.paint_circle["circle-stroke-color"]), "circle-stroke-opacity": new oo(ce.paint_circle["circle-stroke-opacity"]) });
+ }, get layout() {
+ return Wi = Wi || new ue({ "circle-sort-key": new oo(ce.layout_circle["circle-sort-key"]) });
+ } }, Yr = 1e-6, xi = typeof Float32Array != "undefined" ? Float32Array : Array;
+ function Ri(R) {
+ return R[0] = 1, R[1] = 0, R[2] = 0, R[3] = 0, R[4] = 0, R[5] = 1, R[6] = 0, R[7] = 0, R[8] = 0, R[9] = 0, R[10] = 1, R[11] = 0, R[12] = 0, R[13] = 0, R[14] = 0, R[15] = 1, R;
+ }
+ function ci(R, S, F) {
+ var W = S[0], te = S[1], fe = S[2], pe = S[3], Fe = S[4], Ke = S[5], ct = S[6], Lt = S[7], Jt = S[8], cr = S[9], mr = S[10], Pr = S[11], zr = S[12], ui = S[13], yi = S[14], vn = S[15], zi = F[0], un = F[1], Tn = F[2], pa = F[3];
+ return R[0] = zi * W + un * Fe + Tn * Jt + pa * zr, R[1] = zi * te + un * Ke + Tn * cr + pa * ui, R[2] = zi * fe + un * ct + Tn * mr + pa * yi, R[3] = zi * pe + un * Lt + Tn * Pr + pa * vn, R[4] = (zi = F[4]) * W + (un = F[5]) * Fe + (Tn = F[6]) * Jt + (pa = F[7]) * zr, R[5] = zi * te + un * Ke + Tn * cr + pa * ui, R[6] = zi * fe + un * ct + Tn * mr + pa * yi, R[7] = zi * pe + un * Lt + Tn * Pr + pa * vn, R[8] = (zi = F[8]) * W + (un = F[9]) * Fe + (Tn = F[10]) * Jt + (pa = F[11]) * zr, R[9] = zi * te + un * Ke + Tn * cr + pa * ui, R[10] = zi * fe + un * ct + Tn * mr + pa * yi, R[11] = zi * pe + un * Lt + Tn * Pr + pa * vn, R[12] = (zi = F[12]) * W + (un = F[13]) * Fe + (Tn = F[14]) * Jt + (pa = F[15]) * zr, R[13] = zi * te + un * Ke + Tn * cr + pa * ui, R[14] = zi * fe + un * ct + Tn * mr + pa * yi, R[15] = zi * pe + un * Lt + Tn * Pr + pa * vn, R;
+ }
+ Math.hypot || (Math.hypot = function() {
+ for (var R = 0, S = arguments.length; S--; ) R += arguments[S] * arguments[S];
+ return Math.sqrt(R);
+ });
+ var an, Zi = ci;
+ function Bn(R, S, F) {
+ var W = S[0], te = S[1], fe = S[2], pe = S[3];
+ return R[0] = F[0] * W + F[4] * te + F[8] * fe + F[12] * pe, R[1] = F[1] * W + F[5] * te + F[9] * fe + F[13] * pe, R[2] = F[2] * W + F[6] * te + F[10] * fe + F[14] * pe, R[3] = F[3] * W + F[7] * te + F[11] * fe + F[15] * pe, R;
+ }
+ an = new xi(4), xi != Float32Array && (an[0] = 0, an[1] = 0, an[2] = 0, an[3] = 0);
+ class hi extends B {
+ constructor(S) {
+ super(S, Mr);
+ }
+ createBucket(S) {
+ return new dl(S);
+ }
+ queryRadius(S) {
+ let F = S;
+ return Ei("circle-radius", this, F) + Ei("circle-stroke-width", this, F) + Hn(this.paint.get("circle-translate"));
+ }
+ queryIntersectsFeature(S, F, W, te, fe, pe, Fe, Ke) {
+ let ct = en(S, this.paint.get("circle-translate"), this.paint.get("circle-translate-anchor"), pe.angle, Fe), Lt = this.paint.get("circle-radius").evaluate(F, W) + this.paint.get("circle-stroke-width").evaluate(F, W), Jt = this.paint.get("circle-pitch-alignment") === "map", cr = Jt ? ct : function(Pr, zr) {
+ return Pr.map((ui) => li(ui, zr));
+ }(ct, Ke), mr = Jt ? Lt * Fe : Lt;
+ for (let Pr of te) for (let zr of Pr) {
+ let ui = Jt ? zr : li(zr, Ke), yi = mr, vn = Bn([], [zr.x, zr.y, 0, 1], Ke);
+ if (this.paint.get("circle-pitch-scale") === "viewport" && this.paint.get("circle-pitch-alignment") === "map" ? yi *= vn[3] / pe.cameraToCenterDistance : this.paint.get("circle-pitch-scale") === "map" && this.paint.get("circle-pitch-alignment") === "viewport" && (yi *= pe.cameraToCenterDistance / vn[3]), Me(cr, ui, yi)) return true;
+ }
+ return false;
+ }
+ }
+ function li(R, S) {
+ let F = Bn([], [R.x, R.y, 0, 1], S);
+ return new u(F[0] / F[3], F[1] / F[3]);
+ }
+ class mn extends dl {
+ }
+ let Ji;
+ Fi("HeatmapBucket", mn, { omit: ["layers"] });
+ var Vi = { get paint() {
+ return Ji = Ji || new ue({ "heatmap-radius": new oo(ce.paint_heatmap["heatmap-radius"]), "heatmap-weight": new oo(ce.paint_heatmap["heatmap-weight"]), "heatmap-intensity": new Ua(ce.paint_heatmap["heatmap-intensity"]), "heatmap-color": new Ku(ce.paint_heatmap["heatmap-color"]), "heatmap-opacity": new Ua(ce.paint_heatmap["heatmap-opacity"]) });
+ } };
+ function Ni(R, { width: S, height: F }, W, te) {
+ if (te) {
+ if (te instanceof Uint8ClampedArray) te = new Uint8Array(te.buffer);
+ else if (te.length !== S * F * W) throw new RangeError(`mismatched image size. expected: ${te.length} but got: ${S * F * W}`);
+ } else te = new Uint8Array(S * F * W);
+ return R.width = S, R.height = F, R.data = te, R;
+ }
+ function pn(R, { width: S, height: F }, W) {
+ if (S === R.width && F === R.height) return;
+ let te = Ni({}, { width: S, height: F }, W);
+ Vn(R, te, { x: 0, y: 0 }, { x: 0, y: 0 }, { width: Math.min(R.width, S), height: Math.min(R.height, F) }, W), R.width = S, R.height = F, R.data = te.data;
+ }
+ function Vn(R, S, F, W, te, fe) {
+ if (te.width === 0 || te.height === 0) return S;
+ if (te.width > R.width || te.height > R.height || F.x > R.width - te.width || F.y > R.height - te.height) throw new RangeError("out of range source coordinates for image copy");
+ if (te.width > S.width || te.height > S.height || W.x > S.width - te.width || W.y > S.height - te.height) throw new RangeError("out of range destination coordinates for image copy");
+ let pe = R.data, Fe = S.data;
+ if (pe === Fe) throw new Error("srcData equals dstData, so image is already copied");
+ for (let Ke = 0; Ke < te.height; Ke++) {
+ let ct = ((F.y + Ke) * R.width + F.x) * fe, Lt = ((W.y + Ke) * S.width + W.x) * fe;
+ for (let Jt = 0; Jt < te.width * fe; Jt++) Fe[Lt + Jt] = pe[ct + Jt];
+ }
+ return S;
+ }
+ class na {
+ constructor(S, F) {
+ Ni(this, S, 1, F);
+ }
+ resize(S) {
+ pn(this, S, 1);
+ }
+ clone() {
+ return new na({ width: this.width, height: this.height }, new Uint8Array(this.data));
+ }
+ static copy(S, F, W, te, fe) {
+ Vn(S, F, W, te, fe, 1);
+ }
+ }
+ class Ki {
+ constructor(S, F) {
+ Ni(this, S, 4, F);
+ }
+ resize(S) {
+ pn(this, S, 4);
+ }
+ replace(S, F) {
+ F ? this.data.set(S) : this.data = S instanceof Uint8ClampedArray ? new Uint8Array(S.buffer) : S;
+ }
+ clone() {
+ return new Ki({ width: this.width, height: this.height }, new Uint8Array(this.data));
+ }
+ static copy(S, F, W, te, fe) {
+ Vn(S, F, W, te, fe, 4);
+ }
+ }
+ function kn(R) {
+ let S = {}, F = R.resolution || 256, W = R.clips ? R.clips.length : 1, te = R.image || new Ki({ width: F, height: W });
+ if (Math.log(F) / Math.LN2 % 1 != 0) throw new Error(`width is not a power of 2 - ${F}`);
+ let fe = (pe, Fe, Ke) => {
+ S[R.evaluationKey] = Ke;
+ let ct = R.expression.evaluate(S);
+ te.data[pe + Fe + 0] = Math.floor(255 * ct.r / ct.a), te.data[pe + Fe + 1] = Math.floor(255 * ct.g / ct.a), te.data[pe + Fe + 2] = Math.floor(255 * ct.b / ct.a), te.data[pe + Fe + 3] = Math.floor(255 * ct.a);
+ };
+ if (R.clips) for (let pe = 0, Fe = 0; pe < W; ++pe, Fe += 4 * F) for (let Ke = 0, ct = 0; Ke < F; Ke++, ct += 4) {
+ let Lt = Ke / (F - 1), { start: Jt, end: cr } = R.clips[pe];
+ fe(Fe, ct, Jt * (1 - Lt) + cr * Lt);
+ }
+ else for (let pe = 0, Fe = 0; pe < F; pe++, Fe += 4) fe(0, Fe, pe / (F - 1));
+ return te;
+ }
+ Fi("AlphaImage", na), Fi("RGBAImage", Ki);
+ let ta = "big-fb";
+ class oa extends B {
+ createBucket(S) {
+ return new mn(S);
+ }
+ constructor(S) {
+ super(S, Vi), this.heatmapFbos = /* @__PURE__ */ new Map(), this._updateColorRamp();
+ }
+ _handleSpecialPaintPropertyUpdate(S) {
+ S === "heatmap-color" && this._updateColorRamp();
+ }
+ _updateColorRamp() {
+ this.colorRamp = kn({ expression: this._transitionablePaint._values["heatmap-color"].value.expression, evaluationKey: "heatmapDensity", image: this.colorRamp }), this.colorRampTexture = null;
+ }
+ resize() {
+ this.heatmapFbos.has(ta) && this.heatmapFbos.delete(ta);
+ }
+ queryRadius() {
+ return 0;
+ }
+ queryIntersectsFeature() {
+ return false;
+ }
+ hasOffscreenPass() {
+ return this.paint.get("heatmap-opacity") !== 0 && this.visibility !== "none";
+ }
+ }
+ let ba;
+ var is = { get paint() {
+ return ba = ba || new ue({ "hillshade-illumination-direction": new Ua(ce.paint_hillshade["hillshade-illumination-direction"]), "hillshade-illumination-anchor": new Ua(ce.paint_hillshade["hillshade-illumination-anchor"]), "hillshade-exaggeration": new Ua(ce.paint_hillshade["hillshade-exaggeration"]), "hillshade-shadow-color": new Ua(ce.paint_hillshade["hillshade-shadow-color"]), "hillshade-highlight-color": new Ua(ce.paint_hillshade["hillshade-highlight-color"]), "hillshade-accent-color": new Ua(ce.paint_hillshade["hillshade-accent-color"]) });
+ } };
+ class Zs extends B {
+ constructor(S) {
+ super(S, is);
+ }
+ hasOffscreenPass() {
+ return this.paint.get("hillshade-exaggeration") !== 0 && this.visibility !== "none";
+ }
+ }
+ let Va = Oe([{ name: "a_pos", components: 2, type: "Int16" }], 4), { members: Ml } = Va;
+ function zo(R, S, F = 2) {
+ let W = S && S.length, te = W ? S[0] * F : R.length, fe = Qs(R, 0, te, F, true), pe = [];
+ if (!fe || fe.next === fe.prev) return pe;
+ let Fe, Ke, ct;
+ if (W && (fe = function(Lt, Jt, cr, mr) {
+ let Pr = [];
+ for (let zr = 0, ui = Jt.length; zr < ui; zr++) {
+ let yi = Qs(Lt, Jt[zr] * mr, zr < ui - 1 ? Jt[zr + 1] * mr : Lt.length, mr, false);
+ yi === yi.next && (yi.steiner = true), Pr.push(J(yi));
+ }
+ Pr.sort(ol);
+ for (let zr = 0; zr < Pr.length; zr++) cr = io(Pr[zr], cr);
+ return cr;
+ }(R, S, fe, F)), R.length > 80 * F) {
+ Fe = 1 / 0, Ke = 1 / 0;
+ let Lt = -1 / 0, Jt = -1 / 0;
+ for (let cr = F; cr < te; cr += F) {
+ let mr = R[cr], Pr = R[cr + 1];
+ mr < Fe && (Fe = mr), Pr < Ke && (Ke = Pr), mr > Lt && (Lt = mr), Pr > Jt && (Jt = Pr);
+ }
+ ct = Math.max(Lt - Fe, Jt - Ke), ct = ct !== 0 ? 32767 / ct : 0;
+ }
+ return Vl(fe, pe, F, Fe, Ke, ct, 0), pe;
+ }
+ function Qs(R, S, F, W, te) {
+ let fe;
+ if (te === function(pe, Fe, Ke, ct) {
+ let Lt = 0;
+ for (let Jt = Fe, cr = Ke - ct; Jt < Ke; Jt += ct) Lt += (pe[cr] - pe[Jt]) * (pe[Jt + 1] + pe[cr + 1]), cr = Jt;
+ return Lt;
+ }(R, S, F, W) > 0) for (let pe = S; pe < F; pe += W) fe = qt(pe / W | 0, R[pe], R[pe + 1], fe);
+ else for (let pe = F - W; pe >= S; pe -= W) fe = qt(pe / W | 0, R[pe], R[pe + 1], fe);
+ return fe && ne(fe, fe.next) && (Ve(fe), fe = fe.next), fe;
+ }
+ function al(R, S) {
+ if (!R) return R;
+ S || (S = R);
+ let F, W = R;
+ do
+ if (F = false, W.steiner || !ne(W, W.next) && de(W.prev, W, W.next) !== 0) W = W.next;
+ else {
+ if (Ve(W), W = S = W.prev, W === W.next) break;
+ F = true;
+ }
+ while (F || W !== S);
+ return S;
+ }
+ function Vl(R, S, F, W, te, fe, pe) {
+ if (!R) return;
+ !pe && fe && function(Ke, ct, Lt, Jt) {
+ let cr = Ke;
+ do
+ cr.z === 0 && (cr.z = D(cr.x, cr.y, ct, Lt, Jt)), cr.prevZ = cr.prev, cr.nextZ = cr.next, cr = cr.next;
+ while (cr !== Ke);
+ cr.prevZ.nextZ = null, cr.prevZ = null, function(mr) {
+ let Pr, zr = 1;
+ do {
+ let ui, yi = mr;
+ mr = null;
+ let vn = null;
+ for (Pr = 0; yi; ) {
+ Pr++;
+ let zi = yi, un = 0;
+ for (let pa = 0; pa < zr && (un++, zi = zi.nextZ, zi); pa++) ;
+ let Tn = zr;
+ for (; un > 0 || Tn > 0 && zi; ) un !== 0 && (Tn === 0 || !zi || yi.z <= zi.z) ? (ui = yi, yi = yi.nextZ, un--) : (ui = zi, zi = zi.nextZ, Tn--), vn ? vn.nextZ = ui : mr = ui, ui.prevZ = vn, vn = ui;
+ yi = zi;
+ }
+ vn.nextZ = null, zr *= 2;
+ } while (Pr > 1);
+ }(cr);
+ }(R, W, te, fe);
+ let Fe = R;
+ for (; R.prev !== R.next; ) {
+ let Ke = R.prev, ct = R.next;
+ if (fe ? Vs(R, W, te, fe) : ss(R)) S.push(Ke.i, R.i, ct.i), Ve(R), R = ct.next, Fe = ct.next;
+ else if ((R = ct) === Fe) {
+ pe ? pe === 1 ? Vl(R = Ys(al(R), S), S, F, W, te, fe, 2) : pe === 2 && wa(R, S, F, W, te, fe) : Vl(al(R), S, F, W, te, fe, 1);
+ break;
+ }
+ }
+ }
+ function ss(R) {
+ let S = R.prev, F = R, W = R.next;
+ if (de(S, F, W) >= 0) return false;
+ let te = S.x, fe = F.x, pe = W.x, Fe = S.y, Ke = F.y, ct = W.y, Lt = te < fe ? te < pe ? te : pe : fe < pe ? fe : pe, Jt = Fe < Ke ? Fe < ct ? Fe : ct : Ke < ct ? Ke : ct, cr = te > fe ? te > pe ? te : pe : fe > pe ? fe : pe, mr = Fe > Ke ? Fe > ct ? Fe : ct : Ke > ct ? Ke : ct, Pr = W.next;
+ for (; Pr !== S; ) {
+ if (Pr.x >= Lt && Pr.x <= cr && Pr.y >= Jt && Pr.y <= mr && q(te, Fe, fe, Ke, pe, ct, Pr.x, Pr.y) && de(Pr.prev, Pr, Pr.next) >= 0) return false;
+ Pr = Pr.next;
+ }
+ return true;
+ }
+ function Vs(R, S, F, W) {
+ let te = R.prev, fe = R, pe = R.next;
+ if (de(te, fe, pe) >= 0) return false;
+ let Fe = te.x, Ke = fe.x, ct = pe.x, Lt = te.y, Jt = fe.y, cr = pe.y, mr = Fe < Ke ? Fe < ct ? Fe : ct : Ke < ct ? Ke : ct, Pr = Lt < Jt ? Lt < cr ? Lt : cr : Jt < cr ? Jt : cr, zr = Fe > Ke ? Fe > ct ? Fe : ct : Ke > ct ? Ke : ct, ui = Lt > Jt ? Lt > cr ? Lt : cr : Jt > cr ? Jt : cr, yi = D(mr, Pr, S, F, W), vn = D(zr, ui, S, F, W), zi = R.prevZ, un = R.nextZ;
+ for (; zi && zi.z >= yi && un && un.z <= vn; ) {
+ if (zi.x >= mr && zi.x <= zr && zi.y >= Pr && zi.y <= ui && zi !== te && zi !== pe && q(Fe, Lt, Ke, Jt, ct, cr, zi.x, zi.y) && de(zi.prev, zi, zi.next) >= 0 || (zi = zi.prevZ, un.x >= mr && un.x <= zr && un.y >= Pr && un.y <= ui && un !== te && un !== pe && q(Fe, Lt, Ke, Jt, ct, cr, un.x, un.y) && de(un.prev, un, un.next) >= 0)) return false;
+ un = un.nextZ;
+ }
+ for (; zi && zi.z >= yi; ) {
+ if (zi.x >= mr && zi.x <= zr && zi.y >= Pr && zi.y <= ui && zi !== te && zi !== pe && q(Fe, Lt, Ke, Jt, ct, cr, zi.x, zi.y) && de(zi.prev, zi, zi.next) >= 0) return false;
+ zi = zi.prevZ;
+ }
+ for (; un && un.z <= vn; ) {
+ if (un.x >= mr && un.x <= zr && un.y >= Pr && un.y <= ui && un !== te && un !== pe && q(Fe, Lt, Ke, Jt, ct, cr, un.x, un.y) && de(un.prev, un, un.next) >= 0) return false;
+ un = un.nextZ;
+ }
+ return true;
+ }
+ function Ys(R, S) {
+ let F = R;
+ do {
+ let W = F.prev, te = F.next.next;
+ !ne(W, te) && we(W, F, F.next, te) && Zt(W, te) && Zt(te, W) && (S.push(W.i, F.i, te.i), Ve(F), Ve(F.next), F = R = te), F = F.next;
+ } while (F !== R);
+ return al(F);
+ }
+ function wa(R, S, F, W, te, fe) {
+ let pe = R;
+ do {
+ let Fe = pe.next.next;
+ for (; Fe !== pe.prev; ) {
+ if (pe.i !== Fe.i && K(pe, Fe)) {
+ let Ke = hr(pe, Fe);
+ return pe = al(pe, pe.next), Ke = al(Ke, Ke.next), Vl(pe, S, F, W, te, fe, 0), void Vl(Ke, S, F, W, te, fe, 0);
+ }
+ Fe = Fe.next;
+ }
+ pe = pe.next;
+ } while (pe !== R);
+ }
+ function ol(R, S) {
+ return R.x - S.x;
+ }
+ function io(R, S) {
+ let F = function(te, fe) {
+ let pe = fe, Fe = te.x, Ke = te.y, ct, Lt = -1 / 0;
+ do {
+ if (Ke <= pe.y && Ke >= pe.next.y && pe.next.y !== pe.y) {
+ let zr = pe.x + (Ke - pe.y) * (pe.next.x - pe.x) / (pe.next.y - pe.y);
+ if (zr <= Fe && zr > Lt && (Lt = zr, ct = pe.x < pe.next.x ? pe : pe.next, zr === Fe)) return ct;
+ }
+ pe = pe.next;
+ } while (pe !== fe);
+ if (!ct) return null;
+ let Jt = ct, cr = ct.x, mr = ct.y, Pr = 1 / 0;
+ pe = ct;
+ do {
+ if (Fe >= pe.x && pe.x >= cr && Fe !== pe.x && q(Ke < mr ? Fe : Lt, Ke, cr, mr, Ke < mr ? Lt : Fe, Ke, pe.x, pe.y)) {
+ let zr = Math.abs(Ke - pe.y) / (Fe - pe.x);
+ Zt(pe, te) && (zr < Pr || zr === Pr && (pe.x > ct.x || pe.x === ct.x && Y(ct, pe))) && (ct = pe, Pr = zr);
+ }
+ pe = pe.next;
+ } while (pe !== Jt);
+ return ct;
+ }(R, S);
+ if (!F) return S;
+ let W = hr(F, R);
+ return al(W, W.next), al(F, F.next);
+ }
+ function Y(R, S) {
+ return de(R.prev, R, S.prev) < 0 && de(S.next, R, R.next) < 0;
+ }
+ function D(R, S, F, W, te) {
+ return (R = 1431655765 & ((R = 858993459 & ((R = 252645135 & ((R = 16711935 & ((R = (R - F) * te | 0) | R << 8)) | R << 4)) | R << 2)) | R << 1)) | (S = 1431655765 & ((S = 858993459 & ((S = 252645135 & ((S = 16711935 & ((S = (S - W) * te | 0) | S << 8)) | S << 4)) | S << 2)) | S << 1)) << 1;
+ }
+ function J(R) {
+ let S = R, F = R;
+ do
+ (S.x < F.x || S.x === F.x && S.y < F.y) && (F = S), S = S.next;
+ while (S !== R);
+ return F;
+ }
+ function q(R, S, F, W, te, fe, pe, Fe) {
+ return (te - pe) * (S - Fe) >= (R - pe) * (fe - Fe) && (R - pe) * (W - Fe) >= (F - pe) * (S - Fe) && (F - pe) * (fe - Fe) >= (te - pe) * (W - Fe);
+ }
+ function K(R, S) {
+ return R.next.i !== S.i && R.prev.i !== S.i && !function(F, W) {
+ let te = F;
+ do {
+ if (te.i !== F.i && te.next.i !== F.i && te.i !== W.i && te.next.i !== W.i && we(te, te.next, F, W)) return true;
+ te = te.next;
+ } while (te !== F);
+ return false;
+ }(R, S) && (Zt(R, S) && Zt(S, R) && function(F, W) {
+ let te = F, fe = false, pe = (F.x + W.x) / 2, Fe = (F.y + W.y) / 2;
+ do
+ te.y > Fe != te.next.y > Fe && te.next.y !== te.y && pe < (te.next.x - te.x) * (Fe - te.y) / (te.next.y - te.y) + te.x && (fe = !fe), te = te.next;
+ while (te !== F);
+ return fe;
+ }(R, S) && (de(R.prev, R, S.prev) || de(R, S.prev, S)) || ne(R, S) && de(R.prev, R, R.next) > 0 && de(S.prev, S, S.next) > 0);
+ }
+ function de(R, S, F) {
+ return (S.y - R.y) * (F.x - S.x) - (S.x - R.x) * (F.y - S.y);
+ }
+ function ne(R, S) {
+ return R.x === S.x && R.y === S.y;
+ }
+ function we(R, S, F, W) {
+ let te = ft(de(R, S, F)), fe = ft(de(R, S, W)), pe = ft(de(F, W, R)), Fe = ft(de(F, W, S));
+ return te !== fe && pe !== Fe || !(te !== 0 || !Ue(R, F, S)) || !(fe !== 0 || !Ue(R, W, S)) || !(pe !== 0 || !Ue(F, R, W)) || !(Fe !== 0 || !Ue(F, S, W));
+ }
+ function Ue(R, S, F) {
+ return S.x <= Math.max(R.x, F.x) && S.x >= Math.min(R.x, F.x) && S.y <= Math.max(R.y, F.y) && S.y >= Math.min(R.y, F.y);
+ }
+ function ft(R) {
+ return R > 0 ? 1 : R < 0 ? -1 : 0;
+ }
+ function Zt(R, S) {
+ return de(R.prev, R, R.next) < 0 ? de(R, S, R.next) >= 0 && de(R, R.prev, S) >= 0 : de(R, S, R.prev) < 0 || de(R, R.next, S) < 0;
+ }
+ function hr(R, S) {
+ let F = Qe(R.i, R.x, R.y), W = Qe(S.i, S.x, S.y), te = R.next, fe = S.prev;
+ return R.next = S, S.prev = R, F.next = te, te.prev = F, W.next = F, F.prev = W, fe.next = W, W.prev = fe, W;
+ }
+ function qt(R, S, F, W) {
+ let te = Qe(R, S, F);
+ return W ? (te.next = W.next, te.prev = W, W.next.prev = te, W.next = te) : (te.prev = te, te.next = te), te;
+ }
+ function Ve(R) {
+ R.next.prev = R.prev, R.prev.next = R.next, R.prevZ && (R.prevZ.nextZ = R.nextZ), R.nextZ && (R.nextZ.prevZ = R.prevZ);
+ }
+ function Qe(R, S, F) {
+ return { i: R, x: S, y: F, prev: null, next: null, z: 0, prevZ: null, nextZ: null, steiner: false };
+ }
+ function at(R, S, F) {
+ let W = F.patternDependencies, te = false;
+ for (let fe of S) {
+ let pe = fe.paint.get(`${R}-pattern`);
+ pe.isConstant() || (te = true);
+ let Fe = pe.constantOr(null);
+ Fe && (te = true, W[Fe.to] = true, W[Fe.from] = true);
+ }
+ return te;
+ }
+ function Ct(R, S, F, W, te) {
+ let fe = te.patternDependencies;
+ for (let pe of S) {
+ let Fe = pe.paint.get(`${R}-pattern`).value;
+ if (Fe.kind !== "constant") {
+ let Ke = Fe.evaluate({ zoom: W - 1 }, F, {}, te.availableImages), ct = Fe.evaluate({ zoom: W }, F, {}, te.availableImages), Lt = Fe.evaluate({ zoom: W + 1 }, F, {}, te.availableImages);
+ Ke = Ke && Ke.name ? Ke.name : Ke, ct = ct && ct.name ? ct.name : ct, Lt = Lt && Lt.name ? Lt.name : Lt, fe[Ke] = true, fe[ct] = true, fe[Lt] = true, F.patterns[pe.id] = { min: Ke, mid: ct, max: Lt };
+ }
+ }
+ return F;
+ }
+ class Ot {
+ constructor(S) {
+ this.zoom = S.zoom, this.overscaling = S.overscaling, this.layers = S.layers, this.layerIds = this.layers.map((F) => F.id), this.index = S.index, this.hasPattern = false, this.patternFeatures = [], this.layoutVertexArray = new hl(), this.indexArray = new se(), this.indexArray2 = new Te(), this.programConfigurations = new Ms(S.layers, S.zoom), this.segments = new Ye(), this.segments2 = new Ye(), this.stateDependentLayerIds = this.layers.filter((F) => F.isStateDependent()).map((F) => F.id);
+ }
+ populate(S, F, W) {
+ this.hasPattern = at("fill", this.layers, F);
+ let te = this.layers[0].layout.get("fill-sort-key"), fe = !te.isConstant(), pe = [];
+ for (let { feature: Fe, id: Ke, index: ct, sourceLayerIndex: Lt } of S) {
+ let Jt = this.layers[0]._featureFilter.needGeometry, cr = Sl(Fe, Jt);
+ if (!this.layers[0]._featureFilter.filter(new rs(this.zoom), cr, W)) continue;
+ let mr = fe ? te.evaluate(cr, {}, W, F.availableImages) : void 0, Pr = { id: Ke, properties: Fe.properties, type: Fe.type, sourceLayerIndex: Lt, index: ct, geometry: Jt ? cr.geometry : $s(Fe), patterns: {}, sortKey: mr };
+ pe.push(Pr);
+ }
+ fe && pe.sort((Fe, Ke) => Fe.sortKey - Ke.sortKey);
+ for (let Fe of pe) {
+ let { geometry: Ke, index: ct, sourceLayerIndex: Lt } = Fe;
+ if (this.hasPattern) {
+ let Jt = Ct("fill", this.layers, Fe, this.zoom, F);
+ this.patternFeatures.push(Jt);
+ } else this.addFeature(Fe, Ke, ct, W, {});
+ F.featureIndex.insert(S[ct].feature, Ke, ct, Lt, this.index);
+ }
+ }
+ update(S, F, W) {
+ this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(S, F, this.stateDependentLayers, W);
+ }
+ addFeatures(S, F, W) {
+ for (let te of this.patternFeatures) this.addFeature(te, te.geometry, te.index, F, W);
+ }
+ isEmpty() {
+ return this.layoutVertexArray.length === 0;
+ }
+ uploadPending() {
+ return !this.uploaded || this.programConfigurations.needsUpload;
+ }
+ upload(S) {
+ this.uploaded || (this.layoutVertexBuffer = S.createVertexBuffer(this.layoutVertexArray, Ml), this.indexBuffer = S.createIndexBuffer(this.indexArray), this.indexBuffer2 = S.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(S), this.uploaded = true;
+ }
+ destroy() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy());
+ }
+ addFeature(S, F, W, te, fe) {
+ for (let pe of Cf(F, 500)) {
+ let Fe = 0;
+ for (let mr of pe) Fe += mr.length;
+ let Ke = this.segments.prepareSegment(Fe, this.layoutVertexArray, this.indexArray), ct = Ke.vertexLength, Lt = [], Jt = [];
+ for (let mr of pe) {
+ if (mr.length === 0) continue;
+ mr !== pe[0] && Jt.push(Lt.length / 2);
+ let Pr = this.segments2.prepareSegment(mr.length, this.layoutVertexArray, this.indexArray2), zr = Pr.vertexLength;
+ this.layoutVertexArray.emplaceBack(mr[0].x, mr[0].y), this.indexArray2.emplaceBack(zr + mr.length - 1, zr), Lt.push(mr[0].x), Lt.push(mr[0].y);
+ for (let ui = 1; ui < mr.length; ui++) this.layoutVertexArray.emplaceBack(mr[ui].x, mr[ui].y), this.indexArray2.emplaceBack(zr + ui - 1, zr + ui), Lt.push(mr[ui].x), Lt.push(mr[ui].y);
+ Pr.vertexLength += mr.length, Pr.primitiveLength += mr.length;
+ }
+ let cr = zo(Lt, Jt);
+ for (let mr = 0; mr < cr.length; mr += 3) this.indexArray.emplaceBack(ct + cr[mr], ct + cr[mr + 1], ct + cr[mr + 2]);
+ Ke.vertexLength += Fe, Ke.primitiveLength += cr.length / 3;
+ }
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, S, W, fe, te);
+ }
+ }
+ let Rt, Bt;
+ Fi("FillBucket", Ot, { omit: ["layers", "patternFeatures"] });
+ var Dt = { get paint() {
+ return Bt = Bt || new ue({ "fill-antialias": new Ua(ce.paint_fill["fill-antialias"]), "fill-opacity": new oo(ce.paint_fill["fill-opacity"]), "fill-color": new oo(ce.paint_fill["fill-color"]), "fill-outline-color": new oo(ce.paint_fill["fill-outline-color"]), "fill-translate": new Ua(ce.paint_fill["fill-translate"]), "fill-translate-anchor": new Ua(ce.paint_fill["fill-translate-anchor"]), "fill-pattern": new Vc(ce.paint_fill["fill-pattern"]) });
+ }, get layout() {
+ return Rt = Rt || new ue({ "fill-sort-key": new oo(ce.layout_fill["fill-sort-key"]) });
+ } };
+ class yt extends B {
+ constructor(S) {
+ super(S, Dt);
+ }
+ recalculate(S, F) {
+ super.recalculate(S, F);
+ let W = this.paint._values["fill-outline-color"];
+ W.value.kind === "constant" && W.value.value === void 0 && (this.paint._values["fill-outline-color"] = this.paint._values["fill-color"]);
+ }
+ createBucket(S) {
+ return new Ot(S);
+ }
+ queryRadius() {
+ return Hn(this.paint.get("fill-translate"));
+ }
+ queryIntersectsFeature(S, F, W, te, fe, pe, Fe) {
+ return bt(en(S, this.paint.get("fill-translate"), this.paint.get("fill-translate-anchor"), pe.angle, Fe), te);
+ }
+ isTileClipped() {
+ return true;
+ }
+ }
+ let Pt = Oe([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_normal_ed", components: 4, type: "Int16" }], 4), ht = Oe([{ name: "a_centroid", components: 2, type: "Int16" }], 4), { members: ur } = Pt;
+ var br = {}, Ur = s, Di = fi;
+ function fi(R, S, F, W, te) {
+ this.properties = {}, this.extent = F, this.type = 0, this._pbf = R, this._geometry = -1, this._keys = W, this._values = te, R.readFields(Ti, this, S);
+ }
+ function Ti(R, S, F) {
+ R == 1 ? S.id = F.readVarint() : R == 2 ? function(W, te) {
+ for (var fe = W.readVarint() + W.pos; W.pos < fe; ) {
+ var pe = te._keys[W.readVarint()], Fe = te._values[W.readVarint()];
+ te.properties[pe] = Fe;
+ }
+ }(F, S) : R == 3 ? S.type = F.readVarint() : R == 4 && (S._geometry = F.pos);
+ }
+ function gn(R) {
+ for (var S, F, W = 0, te = 0, fe = R.length, pe = fe - 1; te < fe; pe = te++) W += ((F = R[pe]).x - (S = R[te]).x) * (S.y + F.y);
+ return W;
+ }
+ fi.types = ["Unknown", "Point", "LineString", "Polygon"], fi.prototype.loadGeometry = function() {
+ var R = this._pbf;
+ R.pos = this._geometry;
+ for (var S, F = R.readVarint() + R.pos, W = 1, te = 0, fe = 0, pe = 0, Fe = []; R.pos < F; ) {
+ if (te <= 0) {
+ var Ke = R.readVarint();
+ W = 7 & Ke, te = Ke >> 3;
+ }
+ if (te--, W === 1 || W === 2) fe += R.readSVarint(), pe += R.readSVarint(), W === 1 && (S && Fe.push(S), S = []), S.push(new Ur(fe, pe));
+ else {
+ if (W !== 7) throw new Error("unknown command " + W);
+ S && S.push(S[0].clone());
+ }
+ }
+ return S && Fe.push(S), Fe;
+ }, fi.prototype.bbox = function() {
+ var R = this._pbf;
+ R.pos = this._geometry;
+ for (var S = R.readVarint() + R.pos, F = 1, W = 0, te = 0, fe = 0, pe = 1 / 0, Fe = -1 / 0, Ke = 1 / 0, ct = -1 / 0; R.pos < S; ) {
+ if (W <= 0) {
+ var Lt = R.readVarint();
+ F = 7 & Lt, W = Lt >> 3;
+ }
+ if (W--, F === 1 || F === 2) (te += R.readSVarint()) < pe && (pe = te), te > Fe && (Fe = te), (fe += R.readSVarint()) < Ke && (Ke = fe), fe > ct && (ct = fe);
+ else if (F !== 7) throw new Error("unknown command " + F);
+ }
+ return [pe, Ke, Fe, ct];
+ }, fi.prototype.toGeoJSON = function(R, S, F) {
+ var W, te, fe = this.extent * Math.pow(2, F), pe = this.extent * R, Fe = this.extent * S, Ke = this.loadGeometry(), ct = fi.types[this.type];
+ function Lt(mr) {
+ for (var Pr = 0; Pr < mr.length; Pr++) {
+ var zr = mr[Pr];
+ mr[Pr] = [360 * (zr.x + pe) / fe - 180, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * (zr.y + Fe) / fe) * Math.PI / 180)) - 90];
+ }
+ }
+ switch (this.type) {
+ case 1:
+ var Jt = [];
+ for (W = 0; W < Ke.length; W++) Jt[W] = Ke[W][0];
+ Lt(Ke = Jt);
+ break;
+ case 2:
+ for (W = 0; W < Ke.length; W++) Lt(Ke[W]);
+ break;
+ case 3:
+ for (Ke = function(mr) {
+ var Pr = mr.length;
+ if (Pr <= 1) return [mr];
+ for (var zr, ui, yi = [], vn = 0; vn < Pr; vn++) {
+ var zi = gn(mr[vn]);
+ zi !== 0 && (ui === void 0 && (ui = zi < 0), ui === zi < 0 ? (zr && yi.push(zr), zr = [mr[vn]]) : zr.push(mr[vn]));
+ }
+ return zr && yi.push(zr), yi;
+ }(Ke), W = 0; W < Ke.length; W++) for (te = 0; te < Ke[W].length; te++) Lt(Ke[W][te]);
+ }
+ Ke.length === 1 ? Ke = Ke[0] : ct = "Multi" + ct;
+ var cr = { type: "Feature", geometry: { type: ct, coordinates: Ke }, properties: this.properties };
+ return "id" in this && (cr.id = this.id), cr;
+ };
+ var rn = Di, Ci = Bi;
+ function Bi(R, S) {
+ this.version = 1, this.name = null, this.extent = 4096, this.length = 0, this._pbf = R, this._keys = [], this._values = [], this._features = [], R.readFields(Gi, this, S), this.length = this._features.length;
+ }
+ function Gi(R, S, F) {
+ R === 15 ? S.version = F.readVarint() : R === 1 ? S.name = F.readString() : R === 5 ? S.extent = F.readVarint() : R === 2 ? S._features.push(F.pos) : R === 3 ? S._keys.push(F.readString()) : R === 4 && S._values.push(function(W) {
+ for (var te = null, fe = W.readVarint() + W.pos; W.pos < fe; ) {
+ var pe = W.readVarint() >> 3;
+ te = pe === 1 ? W.readString() : pe === 2 ? W.readFloat() : pe === 3 ? W.readDouble() : pe === 4 ? W.readVarint64() : pe === 5 ? W.readVarint() : pe === 6 ? W.readSVarint() : pe === 7 ? W.readBoolean() : null;
+ }
+ return te;
+ }(F));
+ }
+ Bi.prototype.feature = function(R) {
+ if (R < 0 || R >= this._features.length) throw new Error("feature index out of bounds");
+ this._pbf.pos = this._features[R];
+ var S = this._pbf.readVarint() + this._pbf.pos;
+ return new rn(this._pbf, S, this.extent, this._keys, this._values);
+ };
+ var sn = Ci;
+ function zn(R, S, F) {
+ if (R === 3) {
+ var W = new sn(F, F.readVarint() + F.pos);
+ W.length && (S[W.name] = W);
+ }
+ }
+ br.VectorTile = function(R, S) {
+ this.layers = R.readFields(zn, {}, S);
+ }, br.VectorTileFeature = Di, br.VectorTileLayer = Ci;
+ let Ja = br.VectorTileFeature.types, co = Math.pow(2, 13);
+ function ts(R, S, F, W, te, fe, pe, Fe) {
+ R.emplaceBack(S, F, 2 * Math.floor(W * co) + pe, te * co * 2, fe * co * 2, Math.round(Fe));
+ }
+ class so {
+ constructor(S) {
+ this.zoom = S.zoom, this.overscaling = S.overscaling, this.layers = S.layers, this.layerIds = this.layers.map((F) => F.id), this.index = S.index, this.hasPattern = false, this.layoutVertexArray = new Ul(), this.centroidVertexArray = new wo(), this.indexArray = new se(), this.programConfigurations = new Ms(S.layers, S.zoom), this.segments = new Ye(), this.stateDependentLayerIds = this.layers.filter((F) => F.isStateDependent()).map((F) => F.id);
+ }
+ populate(S, F, W) {
+ this.features = [], this.hasPattern = at("fill-extrusion", this.layers, F);
+ for (let { feature: te, id: fe, index: pe, sourceLayerIndex: Fe } of S) {
+ let Ke = this.layers[0]._featureFilter.needGeometry, ct = Sl(te, Ke);
+ if (!this.layers[0]._featureFilter.filter(new rs(this.zoom), ct, W)) continue;
+ let Lt = { id: fe, sourceLayerIndex: Fe, index: pe, geometry: Ke ? ct.geometry : $s(te), properties: te.properties, type: te.type, patterns: {} };
+ this.hasPattern ? this.features.push(Ct("fill-extrusion", this.layers, Lt, this.zoom, F)) : this.addFeature(Lt, Lt.geometry, pe, W, {}), F.featureIndex.insert(te, Lt.geometry, pe, Fe, this.index, true);
+ }
+ }
+ addFeatures(S, F, W) {
+ for (let te of this.features) {
+ let { geometry: fe } = te;
+ this.addFeature(te, fe, te.index, F, W);
+ }
+ }
+ update(S, F, W) {
+ this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(S, F, this.stateDependentLayers, W);
+ }
+ isEmpty() {
+ return this.layoutVertexArray.length === 0 && this.centroidVertexArray.length === 0;
+ }
+ uploadPending() {
+ return !this.uploaded || this.programConfigurations.needsUpload;
+ }
+ upload(S) {
+ this.uploaded || (this.layoutVertexBuffer = S.createVertexBuffer(this.layoutVertexArray, ur), this.centroidVertexBuffer = S.createVertexBuffer(this.centroidVertexArray, ht.members, true), this.indexBuffer = S.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(S), this.uploaded = true;
+ }
+ destroy() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.centroidVertexBuffer.destroy());
+ }
+ addFeature(S, F, W, te, fe) {
+ for (let pe of Cf(F, 500)) {
+ let Fe = { x: 0, y: 0, vertexCount: 0 }, Ke = 0;
+ for (let Pr of pe) Ke += Pr.length;
+ let ct = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray);
+ for (let Pr of pe) {
+ if (Pr.length === 0 || ms(Pr)) continue;
+ let zr = 0;
+ for (let ui = 0; ui < Pr.length; ui++) {
+ let yi = Pr[ui];
+ if (ui >= 1) {
+ let vn = Pr[ui - 1];
+ if (!Yo(yi, vn)) {
+ ct.vertexLength + 4 > Ye.MAX_VERTEX_ARRAY_LENGTH && (ct = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray));
+ let zi = yi.sub(vn)._perp()._unit(), un = vn.dist(yi);
+ zr + un > 32768 && (zr = 0), ts(this.layoutVertexArray, yi.x, yi.y, zi.x, zi.y, 0, 0, zr), ts(this.layoutVertexArray, yi.x, yi.y, zi.x, zi.y, 0, 1, zr), Fe.x += 2 * yi.x, Fe.y += 2 * yi.y, Fe.vertexCount += 2, zr += un, ts(this.layoutVertexArray, vn.x, vn.y, zi.x, zi.y, 0, 0, zr), ts(this.layoutVertexArray, vn.x, vn.y, zi.x, zi.y, 0, 1, zr), Fe.x += 2 * vn.x, Fe.y += 2 * vn.y, Fe.vertexCount += 2;
+ let Tn = ct.vertexLength;
+ this.indexArray.emplaceBack(Tn, Tn + 2, Tn + 1), this.indexArray.emplaceBack(Tn + 1, Tn + 2, Tn + 3), ct.vertexLength += 4, ct.primitiveLength += 2;
+ }
+ }
+ }
+ }
+ if (ct.vertexLength + Ke > Ye.MAX_VERTEX_ARRAY_LENGTH && (ct = this.segments.prepareSegment(Ke, this.layoutVertexArray, this.indexArray)), Ja[S.type] !== "Polygon") continue;
+ let Lt = [], Jt = [], cr = ct.vertexLength;
+ for (let Pr of pe) if (Pr.length !== 0) {
+ Pr !== pe[0] && Jt.push(Lt.length / 2);
+ for (let zr = 0; zr < Pr.length; zr++) {
+ let ui = Pr[zr];
+ ts(this.layoutVertexArray, ui.x, ui.y, 0, 0, 1, 1, 0), Fe.x += ui.x, Fe.y += ui.y, Fe.vertexCount += 1, Lt.push(ui.x), Lt.push(ui.y);
+ }
+ }
+ let mr = zo(Lt, Jt);
+ for (let Pr = 0; Pr < mr.length; Pr += 3) this.indexArray.emplaceBack(cr + mr[Pr], cr + mr[Pr + 2], cr + mr[Pr + 1]);
+ ct.primitiveLength += mr.length / 3, ct.vertexLength += Ke;
+ for (let Pr = 0; Pr < Fe.vertexCount; Pr++) {
+ let zr = Math.floor(Fe.x / Fe.vertexCount), ui = Math.floor(Fe.y / Fe.vertexCount);
+ this.centroidVertexArray.emplaceBack(zr, ui);
+ }
+ }
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, S, W, fe, te);
+ }
+ }
+ function Yo(R, S) {
+ return R.x === S.x && (R.x < 0 || R.x > ja) || R.y === S.y && (R.y < 0 || R.y > ja);
+ }
+ function ms(R) {
+ return R.every((S) => S.x < 0) || R.every((S) => S.x > ja) || R.every((S) => S.y < 0) || R.every((S) => S.y > ja);
+ }
+ let ou;
+ Fi("FillExtrusionBucket", so, { omit: ["layers", "features"] });
+ var Cv = { get paint() {
+ return ou = ou || new ue({ "fill-extrusion-opacity": new Ua(ce["paint_fill-extrusion"]["fill-extrusion-opacity"]), "fill-extrusion-color": new oo(ce["paint_fill-extrusion"]["fill-extrusion-color"]), "fill-extrusion-translate": new Ua(ce["paint_fill-extrusion"]["fill-extrusion-translate"]), "fill-extrusion-translate-anchor": new Ua(ce["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]), "fill-extrusion-pattern": new Vc(ce["paint_fill-extrusion"]["fill-extrusion-pattern"]), "fill-extrusion-height": new oo(ce["paint_fill-extrusion"]["fill-extrusion-height"]), "fill-extrusion-base": new oo(ce["paint_fill-extrusion"]["fill-extrusion-base"]), "fill-extrusion-vertical-gradient": new Ua(ce["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]) });
+ } };
+ class Lv extends B {
+ constructor(S) {
+ super(S, Cv);
+ }
+ createBucket(S) {
+ return new so(S);
+ }
+ queryRadius() {
+ return Hn(this.paint.get("fill-extrusion-translate"));
+ }
+ is3D() {
+ return true;
+ }
+ queryIntersectsFeature(S, F, W, te, fe, pe, Fe, Ke) {
+ let ct = en(S, this.paint.get("fill-extrusion-translate"), this.paint.get("fill-extrusion-translate-anchor"), pe.angle, Fe), Lt = this.paint.get("fill-extrusion-height").evaluate(F, W), Jt = this.paint.get("fill-extrusion-base").evaluate(F, W), cr = function(Pr, zr, ui, yi) {
+ let vn = [];
+ for (let zi of Pr) {
+ let un = [zi.x, zi.y, 0, 1];
+ Bn(un, un, zr), vn.push(new u(un[0] / un[3], un[1] / un[3]));
+ }
+ return vn;
+ }(ct, Ke), mr = function(Pr, zr, ui, yi) {
+ let vn = [], zi = [], un = yi[8] * zr, Tn = yi[9] * zr, pa = yi[10] * zr, ro = yi[11] * zr, Vo = yi[8] * ui, Xa = yi[9] * ui, sa = yi[10] * ui, Mo = yi[11] * ui;
+ for (let fo of Pr) {
+ let lo = [], Xn = [];
+ for (let Ro of fo) {
+ let uo = Ro.x, $o = Ro.y, Ju = yi[0] * uo + yi[4] * $o + yi[12], qu = yi[1] * uo + yi[5] * $o + yi[13], kh = yi[2] * uo + yi[6] * $o + yi[14], Qv = yi[3] * uo + yi[7] * $o + yi[15], ud = kh + pa, Ch = Qv + ro, Vd = Ju + Vo, Gd = qu + Xa, Hd = kh + sa, Af = Qv + Mo, Lh = new u((Ju + un) / Ch, (qu + Tn) / Ch);
+ Lh.z = ud / Ch, lo.push(Lh);
+ let Ed = new u(Vd / Af, Gd / Af);
+ Ed.z = Hd / Af, Xn.push(Ed);
+ }
+ vn.push(lo), zi.push(Xn);
+ }
+ return [vn, zi];
+ }(te, Jt, Lt, Ke);
+ return function(Pr, zr, ui) {
+ let yi = 1 / 0;
+ bt(ui, zr) && (yi = Kv(ui, zr[0]));
+ for (let vn = 0; vn < zr.length; vn++) {
+ let zi = zr[vn], un = Pr[vn];
+ for (let Tn = 0; Tn < zi.length - 1; Tn++) {
+ let pa = zi[Tn], ro = [pa, zi[Tn + 1], un[Tn + 1], un[Tn], pa];
+ Sc(ui, ro) && (yi = Math.min(yi, Kv(ui, ro)));
+ }
+ }
+ return yi !== 1 / 0 && yi;
+ }(mr[0], mr[1], cr);
+ }
+ }
+ function wd(R, S) {
+ return R.x * S.x + R.y * S.y;
+ }
+ function Kv(R, S) {
+ if (R.length === 1) {
+ let F = 0, W = S[F++], te;
+ for (; !te || W.equals(te); ) if (te = S[F++], !te) return 1 / 0;
+ for (; F < S.length; F++) {
+ let fe = S[F], pe = R[0], Fe = te.sub(W), Ke = fe.sub(W), ct = pe.sub(W), Lt = wd(Fe, Fe), Jt = wd(Fe, Ke), cr = wd(Ke, Ke), mr = wd(ct, Fe), Pr = wd(ct, Ke), zr = Lt * cr - Jt * Jt, ui = (cr * mr - Jt * Pr) / zr, yi = (Lt * Pr - Jt * mr) / zr, vn = W.z * (1 - ui - yi) + te.z * ui + fe.z * yi;
+ if (isFinite(vn)) return vn;
+ }
+ return 1 / 0;
+ }
+ {
+ let F = 1 / 0;
+ for (let W of S) F = Math.min(F, W.z);
+ return F;
+ }
+ }
+ let hg = Oe([{ name: "a_pos_normal", components: 2, type: "Int16" }, { name: "a_data", components: 4, type: "Uint8" }], 4), { members: gp } = hg, Td = Oe([{ name: "a_uv_x", components: 1, type: "Float32" }, { name: "a_split_index", components: 1, type: "Float32" }]), { members: mp } = Td, Ud = br.VectorTileFeature.types, Ad = Math.cos(Math.PI / 180 * 37.5), Pv = Math.pow(2, 14) / 0.5;
+ class Jv {
+ constructor(S) {
+ this.zoom = S.zoom, this.overscaling = S.overscaling, this.layers = S.layers, this.layerIds = this.layers.map((F) => F.id), this.index = S.index, this.hasPattern = false, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach((F) => {
+ this.gradients[F.id] = {};
+ }), this.layoutVertexArray = new Lu(), this.layoutVertexArray2 = new au(), this.indexArray = new se(), this.programConfigurations = new Ms(S.layers, S.zoom), this.segments = new Ye(), this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter((F) => F.isStateDependent()).map((F) => F.id);
+ }
+ populate(S, F, W) {
+ this.hasPattern = at("line", this.layers, F);
+ let te = this.layers[0].layout.get("line-sort-key"), fe = !te.isConstant(), pe = [];
+ for (let { feature: Fe, id: Ke, index: ct, sourceLayerIndex: Lt } of S) {
+ let Jt = this.layers[0]._featureFilter.needGeometry, cr = Sl(Fe, Jt);
+ if (!this.layers[0]._featureFilter.filter(new rs(this.zoom), cr, W)) continue;
+ let mr = fe ? te.evaluate(cr, {}, W) : void 0, Pr = { id: Ke, properties: Fe.properties, type: Fe.type, sourceLayerIndex: Lt, index: ct, geometry: Jt ? cr.geometry : $s(Fe), patterns: {}, sortKey: mr };
+ pe.push(Pr);
+ }
+ fe && pe.sort((Fe, Ke) => Fe.sortKey - Ke.sortKey);
+ for (let Fe of pe) {
+ let { geometry: Ke, index: ct, sourceLayerIndex: Lt } = Fe;
+ if (this.hasPattern) {
+ let Jt = Ct("line", this.layers, Fe, this.zoom, F);
+ this.patternFeatures.push(Jt);
+ } else this.addFeature(Fe, Ke, ct, W, {});
+ F.featureIndex.insert(S[ct].feature, Ke, ct, Lt, this.index);
+ }
+ }
+ update(S, F, W) {
+ this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(S, F, this.stateDependentLayers, W);
+ }
+ addFeatures(S, F, W) {
+ for (let te of this.patternFeatures) this.addFeature(te, te.geometry, te.index, F, W);
+ }
+ isEmpty() {
+ return this.layoutVertexArray.length === 0;
+ }
+ uploadPending() {
+ return !this.uploaded || this.programConfigurations.needsUpload;
+ }
+ upload(S) {
+ this.uploaded || (this.layoutVertexArray2.length !== 0 && (this.layoutVertexBuffer2 = S.createVertexBuffer(this.layoutVertexArray2, mp)), this.layoutVertexBuffer = S.createVertexBuffer(this.layoutVertexArray, gp), this.indexBuffer = S.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(S), this.uploaded = true;
+ }
+ destroy() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());
+ }
+ lineFeatureClips(S) {
+ if (S.properties && Object.prototype.hasOwnProperty.call(S.properties, "mapbox_clip_start") && Object.prototype.hasOwnProperty.call(S.properties, "mapbox_clip_end")) return { start: +S.properties.mapbox_clip_start, end: +S.properties.mapbox_clip_end };
+ }
+ addFeature(S, F, W, te, fe) {
+ let pe = this.layers[0].layout, Fe = pe.get("line-join").evaluate(S, {}), Ke = pe.get("line-cap"), ct = pe.get("line-miter-limit"), Lt = pe.get("line-round-limit");
+ this.lineClips = this.lineFeatureClips(S);
+ for (let Jt of F) this.addLine(Jt, S, Fe, Ke, ct, Lt);
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, S, W, fe, te);
+ }
+ addLine(S, F, W, te, fe, pe) {
+ if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.lineClips) {
+ this.lineClipsArray.push(this.lineClips);
+ for (let yi = 0; yi < S.length - 1; yi++) this.totalDistance += S[yi].dist(S[yi + 1]);
+ this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance);
+ }
+ let Fe = Ud[F.type] === "Polygon", Ke = S.length;
+ for (; Ke >= 2 && S[Ke - 1].equals(S[Ke - 2]); ) Ke--;
+ let ct = 0;
+ for (; ct < Ke - 1 && S[ct].equals(S[ct + 1]); ) ct++;
+ if (Ke < (Fe ? 3 : 2)) return;
+ W === "bevel" && (fe = 1.05);
+ let Lt = this.overscaling <= 16 ? 15 * ja / (512 * this.overscaling) : 0, Jt = this.segments.prepareSegment(10 * Ke, this.layoutVertexArray, this.indexArray), cr, mr, Pr, zr, ui;
+ this.e1 = this.e2 = -1, Fe && (cr = S[Ke - 2], ui = S[ct].sub(cr)._unit()._perp());
+ for (let yi = ct; yi < Ke; yi++) {
+ if (Pr = yi === Ke - 1 ? Fe ? S[ct + 1] : void 0 : S[yi + 1], Pr && S[yi].equals(Pr)) continue;
+ ui && (zr = ui), cr && (mr = cr), cr = S[yi], ui = Pr ? Pr.sub(cr)._unit()._perp() : zr, zr = zr || ui;
+ let vn = zr.add(ui);
+ vn.x === 0 && vn.y === 0 || vn._unit();
+ let zi = zr.x * ui.x + zr.y * ui.y, un = vn.x * ui.x + vn.y * ui.y, Tn = un !== 0 ? 1 / un : 1 / 0, pa = 2 * Math.sqrt(2 - 2 * un), ro = un < Ad && mr && Pr, Vo = zr.x * ui.y - zr.y * ui.x > 0;
+ if (ro && yi > ct) {
+ let Mo = cr.dist(mr);
+ if (Mo > 2 * Lt) {
+ let fo = cr.sub(cr.sub(mr)._mult(Lt / Mo)._round());
+ this.updateDistance(mr, fo), this.addCurrentVertex(fo, zr, 0, 0, Jt), mr = fo;
+ }
+ }
+ let Xa = mr && Pr, sa = Xa ? W : Fe ? "butt" : te;
+ if (Xa && sa === "round" && (Tn < pe ? sa = "miter" : Tn <= 2 && (sa = "fakeround")), sa === "miter" && Tn > fe && (sa = "bevel"), sa === "bevel" && (Tn > 2 && (sa = "flipbevel"), Tn < fe && (sa = "miter")), mr && this.updateDistance(mr, cr), sa === "miter") vn._mult(Tn), this.addCurrentVertex(cr, vn, 0, 0, Jt);
+ else if (sa === "flipbevel") {
+ if (Tn > 100) vn = ui.mult(-1);
+ else {
+ let Mo = Tn * zr.add(ui).mag() / zr.sub(ui).mag();
+ vn._perp()._mult(Mo * (Vo ? -1 : 1));
+ }
+ this.addCurrentVertex(cr, vn, 0, 0, Jt), this.addCurrentVertex(cr, vn.mult(-1), 0, 0, Jt);
+ } else if (sa === "bevel" || sa === "fakeround") {
+ let Mo = -Math.sqrt(Tn * Tn - 1), fo = Vo ? Mo : 0, lo = Vo ? 0 : Mo;
+ if (mr && this.addCurrentVertex(cr, zr, fo, lo, Jt), sa === "fakeround") {
+ let Xn = Math.round(180 * pa / Math.PI / 20);
+ for (let Ro = 1; Ro < Xn; Ro++) {
+ let uo = Ro / Xn;
+ if (uo !== 0.5) {
+ let Ju = uo - 0.5;
+ uo += uo * Ju * (uo - 1) * ((1.0904 + zi * (zi * (3.55645 - 1.43519 * zi) - 3.2452)) * Ju * Ju + (0.848013 + zi * (0.215638 * zi - 1.06021)));
+ }
+ let $o = ui.sub(zr)._mult(uo)._add(zr)._unit()._mult(Vo ? -1 : 1);
+ this.addHalfVertex(cr, $o.x, $o.y, false, Vo, 0, Jt);
+ }
+ }
+ Pr && this.addCurrentVertex(cr, ui, -fo, -lo, Jt);
+ } else if (sa === "butt") this.addCurrentVertex(cr, vn, 0, 0, Jt);
+ else if (sa === "square") {
+ let Mo = mr ? 1 : -1;
+ this.addCurrentVertex(cr, vn, Mo, Mo, Jt);
+ } else sa === "round" && (mr && (this.addCurrentVertex(cr, zr, 0, 0, Jt), this.addCurrentVertex(cr, zr, 1, 1, Jt, true)), Pr && (this.addCurrentVertex(cr, ui, -1, -1, Jt, true), this.addCurrentVertex(cr, ui, 0, 0, Jt)));
+ if (ro && yi < Ke - 1) {
+ let Mo = cr.dist(Pr);
+ if (Mo > 2 * Lt) {
+ let fo = cr.add(Pr.sub(cr)._mult(Lt / Mo)._round());
+ this.updateDistance(cr, fo), this.addCurrentVertex(fo, ui, 0, 0, Jt), cr = fo;
+ }
+ }
+ }
+ }
+ addCurrentVertex(S, F, W, te, fe, pe = false) {
+ let Fe = F.y * te - F.x, Ke = -F.y - F.x * te;
+ this.addHalfVertex(S, F.x + F.y * W, F.y - F.x * W, pe, false, W, fe), this.addHalfVertex(S, Fe, Ke, pe, true, -te, fe), this.distance > Pv / 2 && this.totalDistance === 0 && (this.distance = 0, this.updateScaledDistance(), this.addCurrentVertex(S, F, W, te, fe, pe));
+ }
+ addHalfVertex({ x: S, y: F }, W, te, fe, pe, Fe, Ke) {
+ let ct = 0.5 * (this.lineClips ? this.scaledDistance * (Pv - 1) : this.scaledDistance);
+ this.layoutVertexArray.emplaceBack((S << 1) + (fe ? 1 : 0), (F << 1) + (pe ? 1 : 0), Math.round(63 * W) + 128, Math.round(63 * te) + 128, 1 + (Fe === 0 ? 0 : Fe < 0 ? -1 : 1) | (63 & ct) << 2, ct >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length);
+ let Lt = Ke.vertexLength++;
+ this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, this.e2, Lt), Ke.primitiveLength++), pe ? this.e2 = Lt : this.e1 = Lt;
+ }
+ updateScaledDistance() {
+ this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance;
+ }
+ updateDistance(S, F) {
+ this.distance += S.dist(F), this.updateScaledDistance();
+ }
+ }
+ let Iv, fy;
+ Fi("LineBucket", Jv, { omit: ["layers", "patternFeatures"] });
+ var dg = { get paint() {
+ return fy = fy || new ue({ "line-opacity": new oo(ce.paint_line["line-opacity"]), "line-color": new oo(ce.paint_line["line-color"]), "line-translate": new Ua(ce.paint_line["line-translate"]), "line-translate-anchor": new Ua(ce.paint_line["line-translate-anchor"]), "line-width": new oo(ce.paint_line["line-width"]), "line-gap-width": new oo(ce.paint_line["line-gap-width"]), "line-offset": new oo(ce.paint_line["line-offset"]), "line-blur": new oo(ce.paint_line["line-blur"]), "line-dasharray": new hc(ce.paint_line["line-dasharray"]), "line-pattern": new Vc(ce.paint_line["line-pattern"]), "line-gradient": new Ku(ce.paint_line["line-gradient"]) });
+ }, get layout() {
+ return Iv = Iv || new ue({ "line-cap": new Ua(ce.layout_line["line-cap"]), "line-join": new oo(ce.layout_line["line-join"]), "line-miter-limit": new Ua(ce.layout_line["line-miter-limit"]), "line-round-limit": new Ua(ce.layout_line["line-round-limit"]), "line-sort-key": new oo(ce.layout_line["line-sort-key"]) });
+ } };
+ class oh extends oo {
+ possiblyEvaluate(S, F) {
+ return F = new rs(Math.floor(F.zoom), { now: F.now, fadeDuration: F.fadeDuration, zoomHistory: F.zoomHistory, transition: F.transition }), super.possiblyEvaluate(S, F);
+ }
+ evaluate(S, F, W, te) {
+ return F = L({}, F, { zoom: Math.floor(F.zoom) }), super.evaluate(S, F, W, te);
+ }
+ }
+ let vg;
+ class hy extends B {
+ constructor(S) {
+ super(S, dg), this.gradientVersion = 0, vg || (vg = new oh(dg.paint.properties["line-width"].specification), vg.useIntegerZoom = true);
+ }
+ _handleSpecialPaintPropertyUpdate(S) {
+ if (S === "line-gradient") {
+ let F = this.gradientExpression();
+ this.stepInterpolant = !!function(W) {
+ return W._styleExpression !== void 0;
+ }(F) && F._styleExpression.expression instanceof _n, this.gradientVersion = (this.gradientVersion + 1) % Number.MAX_SAFE_INTEGER;
+ }
+ }
+ gradientExpression() {
+ return this._transitionablePaint._values["line-gradient"].value.expression;
+ }
+ recalculate(S, F) {
+ super.recalculate(S, F), this.paint._values["line-floorwidth"] = vg.possiblyEvaluate(this._transitioningPaint._values["line-width"].value, S);
+ }
+ createBucket(S) {
+ return new Jv(S);
+ }
+ queryRadius(S) {
+ let F = S, W = Zh(Ei("line-width", this, F), Ei("line-gap-width", this, F)), te = Ei("line-offset", this, F);
+ return W / 2 + Math.abs(te) + Hn(this.paint.get("line-translate"));
+ }
+ queryIntersectsFeature(S, F, W, te, fe, pe, Fe) {
+ let Ke = en(S, this.paint.get("line-translate"), this.paint.get("line-translate-anchor"), pe.angle, Fe), ct = Fe / 2 * Zh(this.paint.get("line-width").evaluate(F, W), this.paint.get("line-gap-width").evaluate(F, W)), Lt = this.paint.get("line-offset").evaluate(F, W);
+ return Lt && (te = function(Jt, cr) {
+ let mr = [];
+ for (let Pr = 0; Pr < Jt.length; Pr++) {
+ let zr = Jt[Pr], ui = [];
+ for (let yi = 0; yi < zr.length; yi++) {
+ let vn = zr[yi - 1], zi = zr[yi], un = zr[yi + 1], Tn = yi === 0 ? new u(0, 0) : zi.sub(vn)._unit()._perp(), pa = yi === zr.length - 1 ? new u(0, 0) : un.sub(zi)._unit()._perp(), ro = Tn._add(pa)._unit(), Vo = ro.x * pa.x + ro.y * pa.y;
+ Vo !== 0 && ro._mult(1 / Vo), ui.push(ro._mult(cr)._add(zi));
+ }
+ mr.push(ui);
+ }
+ return mr;
+ }(te, Lt * Fe)), function(Jt, cr, mr) {
+ for (let Pr = 0; Pr < cr.length; Pr++) {
+ let zr = cr[Pr];
+ if (Jt.length >= 3) {
+ for (let ui = 0; ui < zr.length; ui++) if (Ui(Jt, zr[ui])) return true;
+ }
+ if (zt(Jt, zr, mr)) return true;
+ }
+ return false;
+ }(Ke, te, ct);
+ }
+ isTileClipped() {
+ return true;
+ }
+ }
+ function Zh(R, S) {
+ return S > 0 ? S + 2 * R : R;
+ }
+ let am = Oe([{ name: "a_pos_offset", components: 4, type: "Int16" }, { name: "a_data", components: 4, type: "Uint16" }, { name: "a_pixeloffset", components: 4, type: "Int16" }], 4), k1 = Oe([{ name: "a_projected_pos", components: 3, type: "Float32" }], 4);
+ Oe([{ name: "a_fade_opacity", components: 1, type: "Uint32" }], 4);
+ let C1 = Oe([{ name: "a_placed", components: 2, type: "Uint8" }, { name: "a_shift", components: 2, type: "Float32" }, { name: "a_box_real", components: 2, type: "Int16" }]);
+ Oe([{ type: "Int16", name: "anchorPointX" }, { type: "Int16", name: "anchorPointY" }, { type: "Int16", name: "x1" }, { type: "Int16", name: "y1" }, { type: "Int16", name: "x2" }, { type: "Int16", name: "y2" }, { type: "Uint32", name: "featureIndex" }, { type: "Uint16", name: "sourceLayerIndex" }, { type: "Uint16", name: "bucketIndex" }]);
+ let dy = Oe([{ name: "a_pos", components: 2, type: "Int16" }, { name: "a_anchor_pos", components: 2, type: "Int16" }, { name: "a_extrude", components: 2, type: "Int16" }], 4), om = Oe([{ name: "a_pos", components: 2, type: "Float32" }, { name: "a_radius", components: 1, type: "Float32" }, { name: "a_flags", components: 2, type: "Int16" }], 4);
+ function sm(R, S, F) {
+ return R.sections.forEach((W) => {
+ W.text = function(te, fe, pe) {
+ let Fe = fe.layout.get("text-transform").evaluate(pe, {});
+ return Fe === "uppercase" ? te = te.toLocaleUpperCase() : Fe === "lowercase" && (te = te.toLocaleLowerCase()), ys.applyArabicShaping && (te = ys.applyArabicShaping(te)), te;
+ }(W.text, S, F);
+ }), R;
+ }
+ Oe([{ name: "triangle", components: 3, type: "Uint16" }]), Oe([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Uint16", name: "glyphStartIndex" }, { type: "Uint16", name: "numGlyphs" }, { type: "Uint32", name: "vertexStartIndex" }, { type: "Uint32", name: "lineStartIndex" }, { type: "Uint32", name: "lineLength" }, { type: "Uint16", name: "segment" }, { type: "Uint16", name: "lowerSize" }, { type: "Uint16", name: "upperSize" }, { type: "Float32", name: "lineOffsetX" }, { type: "Float32", name: "lineOffsetY" }, { type: "Uint8", name: "writingMode" }, { type: "Uint8", name: "placedOrientation" }, { type: "Uint8", name: "hidden" }, { type: "Uint32", name: "crossTileID" }, { type: "Int16", name: "associatedIconIndex" }]), Oe([{ type: "Int16", name: "anchorX" }, { type: "Int16", name: "anchorY" }, { type: "Int16", name: "rightJustifiedTextSymbolIndex" }, { type: "Int16", name: "centerJustifiedTextSymbolIndex" }, { type: "Int16", name: "leftJustifiedTextSymbolIndex" }, { type: "Int16", name: "verticalPlacedTextSymbolIndex" }, { type: "Int16", name: "placedIconSymbolIndex" }, { type: "Int16", name: "verticalPlacedIconSymbolIndex" }, { type: "Uint16", name: "key" }, { type: "Uint16", name: "textBoxStartIndex" }, { type: "Uint16", name: "textBoxEndIndex" }, { type: "Uint16", name: "verticalTextBoxStartIndex" }, { type: "Uint16", name: "verticalTextBoxEndIndex" }, { type: "Uint16", name: "iconBoxStartIndex" }, { type: "Uint16", name: "iconBoxEndIndex" }, { type: "Uint16", name: "verticalIconBoxStartIndex" }, { type: "Uint16", name: "verticalIconBoxEndIndex" }, { type: "Uint16", name: "featureIndex" }, { type: "Uint16", name: "numHorizontalGlyphVertices" }, { type: "Uint16", name: "numVerticalGlyphVertices" }, { type: "Uint16", name: "numIconVertices" }, { type: "Uint16", name: "numVerticalIconVertices" }, { type: "Uint16", name: "useRuntimeCollisionCircles" }, { type: "Uint32", name: "crossTileID" }, { type: "Float32", name: "textBoxScale" }, { type: "Float32", name: "collisionCircleDiameter" }, { type: "Uint16", name: "textAnchorOffsetStartIndex" }, { type: "Uint16", name: "textAnchorOffsetEndIndex" }]), Oe([{ type: "Float32", name: "offsetX" }]), Oe([{ type: "Int16", name: "x" }, { type: "Int16", name: "y" }, { type: "Int16", name: "tileUnitDistanceFromAnchor" }]), Oe([{ type: "Uint16", name: "textAnchor" }, { type: "Float32", components: 2, name: "textOffset" }]);
+ let vc = { "!": "︕", "#": "#", $: "$", "%": "%", "&": "&", "(": "︵", ")": "︶", "*": "*", "+": "+", ",": "︐", "-": "︲", ".": "・", "/": "/", ":": "︓", ";": "︔", "<": "︿", "=": "=", ">": "﹀", "?": "︖", "@": "@", "[": "﹇", "\\": "\", "]": "﹈", "^": "^", _: "︳", "`": "`", "{": "︷", "|": "―", "}": "︸", "~": "~", "¢": "¢", "£": "£", "¥": "¥", "¦": "¦", "¬": "¬", "¯": " ̄", "–": "︲", "—": "︱", "‘": "﹃", "’": "﹄", "“": "﹁", "”": "﹂", "…": "︙", "‧": "・", "₩": "₩", "、": "︑", "。": "︒", "〈": "︿", "〉": "﹀", "《": "︽", "》": "︾", "「": "﹁", "」": "﹂", "『": "﹃", "』": "﹄", "【": "︻", "】": "︼", "〔": "︹", "〕": "︺", "〖": "︗", "〗": "︘", "!": "︕", "(": "︵", ")": "︶", ",": "︐", "-": "︲", ".": "・", ":": "︓", ";": "︔", "<": "︿", ">": "﹀", "?": "︖", "[": "﹇", "]": "﹈", "_": "︳", "{": "︷", "|": "―", "}": "︸", "⦅": "︵", "⦆": "︶", "。": "︒", "「": "﹁", "」": "﹂" };
+ var tu = 24, Sd = wu, vy = function(R, S, F, W, te) {
+ var fe, pe, Fe = 8 * te - W - 1, Ke = (1 << Fe) - 1, ct = Ke >> 1, Lt = -7, Jt = te - 1, cr = -1, mr = R[S + Jt];
+ for (Jt += cr, fe = mr & (1 << -Lt) - 1, mr >>= -Lt, Lt += Fe; Lt > 0; fe = 256 * fe + R[S + Jt], Jt += cr, Lt -= 8) ;
+ for (pe = fe & (1 << -Lt) - 1, fe >>= -Lt, Lt += W; Lt > 0; pe = 256 * pe + R[S + Jt], Jt += cr, Lt -= 8) ;
+ if (fe === 0) fe = 1 - ct;
+ else {
+ if (fe === Ke) return pe ? NaN : 1 / 0 * (mr ? -1 : 1);
+ pe += Math.pow(2, W), fe -= ct;
+ }
+ return (mr ? -1 : 1) * pe * Math.pow(2, fe - W);
+ }, L1 = function(R, S, F, W, te, fe) {
+ var pe, Fe, Ke, ct = 8 * fe - te - 1, Lt = (1 << ct) - 1, Jt = Lt >> 1, cr = te === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, mr = 0, Pr = 1, zr = S < 0 || S === 0 && 1 / S < 0 ? 1 : 0;
+ for (S = Math.abs(S), isNaN(S) || S === 1 / 0 ? (Fe = isNaN(S) ? 1 : 0, pe = Lt) : (pe = Math.floor(Math.log(S) / Math.LN2), S * (Ke = Math.pow(2, -pe)) < 1 && (pe--, Ke *= 2), (S += pe + Jt >= 1 ? cr / Ke : cr * Math.pow(2, 1 - Jt)) * Ke >= 2 && (pe++, Ke /= 2), pe + Jt >= Lt ? (Fe = 0, pe = Lt) : pe + Jt >= 1 ? (Fe = (S * Ke - 1) * Math.pow(2, te), pe += Jt) : (Fe = S * Math.pow(2, Jt - 1) * Math.pow(2, te), pe = 0)); te >= 8; R[F + mr] = 255 & Fe, mr += Pr, Fe /= 256, te -= 8) ;
+ for (pe = pe << te | Fe, ct += te; ct > 0; R[F + mr] = 255 & pe, mr += Pr, pe /= 256, ct -= 8) ;
+ R[F + mr - Pr] |= 128 * zr;
+ };
+ function wu(R) {
+ this.buf = ArrayBuffer.isView && ArrayBuffer.isView(R) ? R : new Uint8Array(R || 0), this.pos = 0, this.type = 0, this.length = this.buf.length;
+ }
+ wu.Varint = 0, wu.Fixed64 = 1, wu.Bytes = 2, wu.Fixed32 = 5;
+ var Yx = 4294967296, lm = 1 / Yx, Ow = typeof TextDecoder == "undefined" ? null : new TextDecoder("utf-8");
+ function Rv(R) {
+ return R.type === wu.Bytes ? R.readVarint() + R.pos : R.pos + 1;
+ }
+ function um(R, S, F) {
+ return F ? 4294967296 * S + (R >>> 0) : 4294967296 * (S >>> 0) + (R >>> 0);
+ }
+ function qw(R, S, F) {
+ var W = S <= 16383 ? 1 : S <= 2097151 ? 2 : S <= 268435455 ? 3 : Math.floor(Math.log(S) / (7 * Math.LN2));
+ F.realloc(W);
+ for (var te = F.pos - 1; te >= R; te--) F.buf[te + W] = F.buf[te];
+ }
+ function Kx(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeVarint(R[F]);
+ }
+ function V9(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeSVarint(R[F]);
+ }
+ function G9(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeFloat(R[F]);
+ }
+ function H9(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeDouble(R[F]);
+ }
+ function j9(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeBoolean(R[F]);
+ }
+ function OQ(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeFixed32(R[F]);
+ }
+ function W9(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeSFixed32(R[F]);
+ }
+ function X9(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeFixed64(R[F]);
+ }
+ function Z9(R, S) {
+ for (var F = 0; F < R.length; F++) S.writeSFixed64(R[F]);
+ }
+ function py(R, S) {
+ return (R[S] | R[S + 1] << 8 | R[S + 2] << 16) + 16777216 * R[S + 3];
+ }
+ function Jx(R, S, F) {
+ R[F] = S, R[F + 1] = S >>> 8, R[F + 2] = S >>> 16, R[F + 3] = S >>> 24;
+ }
+ function SC(R, S) {
+ return (R[S] | R[S + 1] << 8 | R[S + 2] << 16) + (R[S + 3] << 24);
+ }
+ wu.prototype = { destroy: function() {
+ this.buf = null;
+ }, readFields: function(R, S, F) {
+ for (F = F || this.length; this.pos < F; ) {
+ var W = this.readVarint(), te = W >> 3, fe = this.pos;
+ this.type = 7 & W, R(te, S, this), this.pos === fe && this.skip(W);
+ }
+ return S;
+ }, readMessage: function(R, S) {
+ return this.readFields(R, S, this.readVarint() + this.pos);
+ }, readFixed32: function() {
+ var R = py(this.buf, this.pos);
+ return this.pos += 4, R;
+ }, readSFixed32: function() {
+ var R = SC(this.buf, this.pos);
+ return this.pos += 4, R;
+ }, readFixed64: function() {
+ var R = py(this.buf, this.pos) + py(this.buf, this.pos + 4) * Yx;
+ return this.pos += 8, R;
+ }, readSFixed64: function() {
+ var R = py(this.buf, this.pos) + SC(this.buf, this.pos + 4) * Yx;
+ return this.pos += 8, R;
+ }, readFloat: function() {
+ var R = vy(this.buf, this.pos, true, 23, 4);
+ return this.pos += 4, R;
+ }, readDouble: function() {
+ var R = vy(this.buf, this.pos, true, 52, 8);
+ return this.pos += 8, R;
+ }, readVarint: function(R) {
+ var S, F, W = this.buf;
+ return S = 127 & (F = W[this.pos++]), F < 128 ? S : (S |= (127 & (F = W[this.pos++])) << 7, F < 128 ? S : (S |= (127 & (F = W[this.pos++])) << 14, F < 128 ? S : (S |= (127 & (F = W[this.pos++])) << 21, F < 128 ? S : function(te, fe, pe) {
+ var Fe, Ke, ct = pe.buf;
+ if (Fe = (112 & (Ke = ct[pe.pos++])) >> 4, Ke < 128 || (Fe |= (127 & (Ke = ct[pe.pos++])) << 3, Ke < 128) || (Fe |= (127 & (Ke = ct[pe.pos++])) << 10, Ke < 128) || (Fe |= (127 & (Ke = ct[pe.pos++])) << 17, Ke < 128) || (Fe |= (127 & (Ke = ct[pe.pos++])) << 24, Ke < 128) || (Fe |= (1 & (Ke = ct[pe.pos++])) << 31, Ke < 128)) return um(te, Fe, fe);
+ throw new Error("Expected varint not more than 10 bytes");
+ }(S |= (15 & (F = W[this.pos])) << 28, R, this))));
+ }, readVarint64: function() {
+ return this.readVarint(true);
+ }, readSVarint: function() {
+ var R = this.readVarint();
+ return R % 2 == 1 ? (R + 1) / -2 : R / 2;
+ }, readBoolean: function() {
+ return !!this.readVarint();
+ }, readString: function() {
+ var R = this.readVarint() + this.pos, S = this.pos;
+ return this.pos = R, R - S >= 12 && Ow ? function(F, W, te) {
+ return Ow.decode(F.subarray(W, te));
+ }(this.buf, S, R) : function(F, W, te) {
+ for (var fe = "", pe = W; pe < te; ) {
+ var Fe, Ke, ct, Lt = F[pe], Jt = null, cr = Lt > 239 ? 4 : Lt > 223 ? 3 : Lt > 191 ? 2 : 1;
+ if (pe + cr > te) break;
+ cr === 1 ? Lt < 128 && (Jt = Lt) : cr === 2 ? (192 & (Fe = F[pe + 1])) == 128 && (Jt = (31 & Lt) << 6 | 63 & Fe) <= 127 && (Jt = null) : cr === 3 ? (Ke = F[pe + 2], (192 & (Fe = F[pe + 1])) == 128 && (192 & Ke) == 128 && ((Jt = (15 & Lt) << 12 | (63 & Fe) << 6 | 63 & Ke) <= 2047 || Jt >= 55296 && Jt <= 57343) && (Jt = null)) : cr === 4 && (Ke = F[pe + 2], ct = F[pe + 3], (192 & (Fe = F[pe + 1])) == 128 && (192 & Ke) == 128 && (192 & ct) == 128 && ((Jt = (15 & Lt) << 18 | (63 & Fe) << 12 | (63 & Ke) << 6 | 63 & ct) <= 65535 || Jt >= 1114112) && (Jt = null)), Jt === null ? (Jt = 65533, cr = 1) : Jt > 65535 && (Jt -= 65536, fe += String.fromCharCode(Jt >>> 10 & 1023 | 55296), Jt = 56320 | 1023 & Jt), fe += String.fromCharCode(Jt), pe += cr;
+ }
+ return fe;
+ }(this.buf, S, R);
+ }, readBytes: function() {
+ var R = this.readVarint() + this.pos, S = this.buf.subarray(this.pos, R);
+ return this.pos = R, S;
+ }, readPackedVarint: function(R, S) {
+ if (this.type !== wu.Bytes) return R.push(this.readVarint(S));
+ var F = Rv(this);
+ for (R = R || []; this.pos < F; ) R.push(this.readVarint(S));
+ return R;
+ }, readPackedSVarint: function(R) {
+ if (this.type !== wu.Bytes) return R.push(this.readSVarint());
+ var S = Rv(this);
+ for (R = R || []; this.pos < S; ) R.push(this.readSVarint());
+ return R;
+ }, readPackedBoolean: function(R) {
+ if (this.type !== wu.Bytes) return R.push(this.readBoolean());
+ var S = Rv(this);
+ for (R = R || []; this.pos < S; ) R.push(this.readBoolean());
+ return R;
+ }, readPackedFloat: function(R) {
+ if (this.type !== wu.Bytes) return R.push(this.readFloat());
+ var S = Rv(this);
+ for (R = R || []; this.pos < S; ) R.push(this.readFloat());
+ return R;
+ }, readPackedDouble: function(R) {
+ if (this.type !== wu.Bytes) return R.push(this.readDouble());
+ var S = Rv(this);
+ for (R = R || []; this.pos < S; ) R.push(this.readDouble());
+ return R;
+ }, readPackedFixed32: function(R) {
+ if (this.type !== wu.Bytes) return R.push(this.readFixed32());
+ var S = Rv(this);
+ for (R = R || []; this.pos < S; ) R.push(this.readFixed32());
+ return R;
+ }, readPackedSFixed32: function(R) {
+ if (this.type !== wu.Bytes) return R.push(this.readSFixed32());
+ var S = Rv(this);
+ for (R = R || []; this.pos < S; ) R.push(this.readSFixed32());
+ return R;
+ }, readPackedFixed64: function(R) {
+ if (this.type !== wu.Bytes) return R.push(this.readFixed64());
+ var S = Rv(this);
+ for (R = R || []; this.pos < S; ) R.push(this.readFixed64());
+ return R;
+ }, readPackedSFixed64: function(R) {
+ if (this.type !== wu.Bytes) return R.push(this.readSFixed64());
+ var S = Rv(this);
+ for (R = R || []; this.pos < S; ) R.push(this.readSFixed64());
+ return R;
+ }, skip: function(R) {
+ var S = 7 & R;
+ if (S === wu.Varint) for (; this.buf[this.pos++] > 127; ) ;
+ else if (S === wu.Bytes) this.pos = this.readVarint() + this.pos;
+ else if (S === wu.Fixed32) this.pos += 4;
+ else {
+ if (S !== wu.Fixed64) throw new Error("Unimplemented type: " + S);
+ this.pos += 8;
+ }
+ }, writeTag: function(R, S) {
+ this.writeVarint(R << 3 | S);
+ }, realloc: function(R) {
+ for (var S = this.length || 16; S < this.pos + R; ) S *= 2;
+ if (S !== this.length) {
+ var F = new Uint8Array(S);
+ F.set(this.buf), this.buf = F, this.length = S;
+ }
+ }, finish: function() {
+ return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length);
+ }, writeFixed32: function(R) {
+ this.realloc(4), Jx(this.buf, R, this.pos), this.pos += 4;
+ }, writeSFixed32: function(R) {
+ this.realloc(4), Jx(this.buf, R, this.pos), this.pos += 4;
+ }, writeFixed64: function(R) {
+ this.realloc(8), Jx(this.buf, -1 & R, this.pos), Jx(this.buf, Math.floor(R * lm), this.pos + 4), this.pos += 8;
+ }, writeSFixed64: function(R) {
+ this.realloc(8), Jx(this.buf, -1 & R, this.pos), Jx(this.buf, Math.floor(R * lm), this.pos + 4), this.pos += 8;
+ }, writeVarint: function(R) {
+ (R = +R || 0) > 268435455 || R < 0 ? function(S, F) {
+ var W, te;
+ if (S >= 0 ? (W = S % 4294967296 | 0, te = S / 4294967296 | 0) : (te = ~(-S / 4294967296), 4294967295 ^ (W = ~(-S % 4294967296)) ? W = W + 1 | 0 : (W = 0, te = te + 1 | 0)), S >= 18446744073709552e3 || S < -18446744073709552e3) throw new Error("Given varint doesn't fit into 10 bytes");
+ F.realloc(10), function(fe, pe, Fe) {
+ Fe.buf[Fe.pos++] = 127 & fe | 128, fe >>>= 7, Fe.buf[Fe.pos++] = 127 & fe | 128, fe >>>= 7, Fe.buf[Fe.pos++] = 127 & fe | 128, fe >>>= 7, Fe.buf[Fe.pos++] = 127 & fe | 128, Fe.buf[Fe.pos] = 127 & (fe >>>= 7);
+ }(W, 0, F), function(fe, pe) {
+ var Fe = (7 & fe) << 4;
+ pe.buf[pe.pos++] |= Fe | ((fe >>>= 3) ? 128 : 0), fe && (pe.buf[pe.pos++] = 127 & fe | ((fe >>>= 7) ? 128 : 0), fe && (pe.buf[pe.pos++] = 127 & fe | ((fe >>>= 7) ? 128 : 0), fe && (pe.buf[pe.pos++] = 127 & fe | ((fe >>>= 7) ? 128 : 0), fe && (pe.buf[pe.pos++] = 127 & fe | ((fe >>>= 7) ? 128 : 0), fe && (pe.buf[pe.pos++] = 127 & fe)))));
+ }(te, F);
+ }(R, this) : (this.realloc(4), this.buf[this.pos++] = 127 & R | (R > 127 ? 128 : 0), R <= 127 || (this.buf[this.pos++] = 127 & (R >>>= 7) | (R > 127 ? 128 : 0), R <= 127 || (this.buf[this.pos++] = 127 & (R >>>= 7) | (R > 127 ? 128 : 0), R <= 127 || (this.buf[this.pos++] = R >>> 7 & 127))));
+ }, writeSVarint: function(R) {
+ this.writeVarint(R < 0 ? 2 * -R - 1 : 2 * R);
+ }, writeBoolean: function(R) {
+ this.writeVarint(!!R);
+ }, writeString: function(R) {
+ R = String(R), this.realloc(4 * R.length), this.pos++;
+ var S = this.pos;
+ this.pos = function(W, te, fe) {
+ for (var pe, Fe, Ke = 0; Ke < te.length; Ke++) {
+ if ((pe = te.charCodeAt(Ke)) > 55295 && pe < 57344) {
+ if (!Fe) {
+ pe > 56319 || Ke + 1 === te.length ? (W[fe++] = 239, W[fe++] = 191, W[fe++] = 189) : Fe = pe;
+ continue;
+ }
+ if (pe < 56320) {
+ W[fe++] = 239, W[fe++] = 191, W[fe++] = 189, Fe = pe;
+ continue;
+ }
+ pe = Fe - 55296 << 10 | pe - 56320 | 65536, Fe = null;
+ } else Fe && (W[fe++] = 239, W[fe++] = 191, W[fe++] = 189, Fe = null);
+ pe < 128 ? W[fe++] = pe : (pe < 2048 ? W[fe++] = pe >> 6 | 192 : (pe < 65536 ? W[fe++] = pe >> 12 | 224 : (W[fe++] = pe >> 18 | 240, W[fe++] = pe >> 12 & 63 | 128), W[fe++] = pe >> 6 & 63 | 128), W[fe++] = 63 & pe | 128);
+ }
+ return fe;
+ }(this.buf, R, this.pos);
+ var F = this.pos - S;
+ F >= 128 && qw(S, F, this), this.pos = S - 1, this.writeVarint(F), this.pos += F;
+ }, writeFloat: function(R) {
+ this.realloc(4), L1(this.buf, R, this.pos, true, 23, 4), this.pos += 4;
+ }, writeDouble: function(R) {
+ this.realloc(8), L1(this.buf, R, this.pos, true, 52, 8), this.pos += 8;
+ }, writeBytes: function(R) {
+ var S = R.length;
+ this.writeVarint(S), this.realloc(S);
+ for (var F = 0; F < S; F++) this.buf[this.pos++] = R[F];
+ }, writeRawMessage: function(R, S) {
+ this.pos++;
+ var F = this.pos;
+ R(S, this);
+ var W = this.pos - F;
+ W >= 128 && qw(F, W, this), this.pos = F - 1, this.writeVarint(W), this.pos += W;
+ }, writeMessage: function(R, S, F) {
+ this.writeTag(R, wu.Bytes), this.writeRawMessage(S, F);
+ }, writePackedVarint: function(R, S) {
+ S.length && this.writeMessage(R, Kx, S);
+ }, writePackedSVarint: function(R, S) {
+ S.length && this.writeMessage(R, V9, S);
+ }, writePackedBoolean: function(R, S) {
+ S.length && this.writeMessage(R, j9, S);
+ }, writePackedFloat: function(R, S) {
+ S.length && this.writeMessage(R, G9, S);
+ }, writePackedDouble: function(R, S) {
+ S.length && this.writeMessage(R, H9, S);
+ }, writePackedFixed32: function(R, S) {
+ S.length && this.writeMessage(R, OQ, S);
+ }, writePackedSFixed32: function(R, S) {
+ S.length && this.writeMessage(R, W9, S);
+ }, writePackedFixed64: function(R, S) {
+ S.length && this.writeMessage(R, X9, S);
+ }, writePackedSFixed64: function(R, S) {
+ S.length && this.writeMessage(R, Z9, S);
+ }, writeBytesField: function(R, S) {
+ this.writeTag(R, wu.Bytes), this.writeBytes(S);
+ }, writeFixed32Field: function(R, S) {
+ this.writeTag(R, wu.Fixed32), this.writeFixed32(S);
+ }, writeSFixed32Field: function(R, S) {
+ this.writeTag(R, wu.Fixed32), this.writeSFixed32(S);
+ }, writeFixed64Field: function(R, S) {
+ this.writeTag(R, wu.Fixed64), this.writeFixed64(S);
+ }, writeSFixed64Field: function(R, S) {
+ this.writeTag(R, wu.Fixed64), this.writeSFixed64(S);
+ }, writeVarintField: function(R, S) {
+ this.writeTag(R, wu.Varint), this.writeVarint(S);
+ }, writeSVarintField: function(R, S) {
+ this.writeTag(R, wu.Varint), this.writeSVarint(S);
+ }, writeStringField: function(R, S) {
+ this.writeTag(R, wu.Bytes), this.writeString(S);
+ }, writeFloatField: function(R, S) {
+ this.writeTag(R, wu.Fixed32), this.writeFloat(S);
+ }, writeDoubleField: function(R, S) {
+ this.writeTag(R, wu.Fixed64), this.writeDouble(S);
+ }, writeBooleanField: function(R, S) {
+ this.writeVarintField(R, !!S);
+ } };
+ var lS = o(Sd);
+ let uS = 3;
+ function qQ(R, S, F) {
+ R === 1 && F.readMessage(Y9, S);
+ }
+ function Y9(R, S, F) {
+ if (R === 3) {
+ let { id: W, bitmap: te, width: fe, height: pe, left: Fe, top: Ke, advance: ct } = F.readMessage(MC, {});
+ S.push({ id: W, bitmap: new na({ width: fe + 2 * uS, height: pe + 2 * uS }, te), metrics: { width: fe, height: pe, left: Fe, top: Ke, advance: ct } });
+ }
+ }
+ function MC(R, S, F) {
+ R === 1 ? S.id = F.readVarint() : R === 2 ? S.bitmap = F.readBytes() : R === 3 ? S.width = F.readVarint() : R === 4 ? S.height = F.readVarint() : R === 5 ? S.left = F.readSVarint() : R === 6 ? S.top = F.readSVarint() : R === 7 && (S.advance = F.readVarint());
+ }
+ let EC = uS;
+ function cS(R) {
+ let S = 0, F = 0;
+ for (let pe of R) S += pe.w * pe.h, F = Math.max(F, pe.w);
+ R.sort((pe, Fe) => Fe.h - pe.h);
+ let W = [{ x: 0, y: 0, w: Math.max(Math.ceil(Math.sqrt(S / 0.95)), F), h: 1 / 0 }], te = 0, fe = 0;
+ for (let pe of R) for (let Fe = W.length - 1; Fe >= 0; Fe--) {
+ let Ke = W[Fe];
+ if (!(pe.w > Ke.w || pe.h > Ke.h)) {
+ if (pe.x = Ke.x, pe.y = Ke.y, fe = Math.max(fe, pe.y + pe.h), te = Math.max(te, pe.x + pe.w), pe.w === Ke.w && pe.h === Ke.h) {
+ let ct = W.pop();
+ Fe < W.length && (W[Fe] = ct);
+ } else pe.h === Ke.h ? (Ke.x += pe.w, Ke.w -= pe.w) : pe.w === Ke.w ? (Ke.y += pe.h, Ke.h -= pe.h) : (W.push({ x: Ke.x + pe.w, y: Ke.y, w: Ke.w - pe.w, h: pe.h }), Ke.y += pe.h, Ke.h -= pe.h);
+ break;
+ }
+ }
+ return { w: te, h: fe, fill: S / (te * fe) || 0 };
+ }
+ let Md = 1;
+ class Bw {
+ constructor(S, { pixelRatio: F, version: W, stretchX: te, stretchY: fe, content: pe, textFitWidth: Fe, textFitHeight: Ke }) {
+ this.paddedRect = S, this.pixelRatio = F, this.stretchX = te, this.stretchY = fe, this.content = pe, this.version = W, this.textFitWidth = Fe, this.textFitHeight = Ke;
+ }
+ get tl() {
+ return [this.paddedRect.x + Md, this.paddedRect.y + Md];
+ }
+ get br() {
+ return [this.paddedRect.x + this.paddedRect.w - Md, this.paddedRect.y + this.paddedRect.h - Md];
+ }
+ get tlbr() {
+ return this.tl.concat(this.br);
+ }
+ get displaySize() {
+ return [(this.paddedRect.w - 2 * Md) / this.pixelRatio, (this.paddedRect.h - 2 * Md) / this.pixelRatio];
+ }
+ }
+ class Nw {
+ constructor(S, F) {
+ let W = {}, te = {};
+ this.haveRenderCallbacks = [];
+ let fe = [];
+ this.addImages(S, W, fe), this.addImages(F, te, fe);
+ let { w: pe, h: Fe } = cS(fe), Ke = new Ki({ width: pe || 1, height: Fe || 1 });
+ for (let ct in S) {
+ let Lt = S[ct], Jt = W[ct].paddedRect;
+ Ki.copy(Lt.data, Ke, { x: 0, y: 0 }, { x: Jt.x + Md, y: Jt.y + Md }, Lt.data);
+ }
+ for (let ct in F) {
+ let Lt = F[ct], Jt = te[ct].paddedRect, cr = Jt.x + Md, mr = Jt.y + Md, Pr = Lt.data.width, zr = Lt.data.height;
+ Ki.copy(Lt.data, Ke, { x: 0, y: 0 }, { x: cr, y: mr }, Lt.data), Ki.copy(Lt.data, Ke, { x: 0, y: zr - 1 }, { x: cr, y: mr - 1 }, { width: Pr, height: 1 }), Ki.copy(Lt.data, Ke, { x: 0, y: 0 }, { x: cr, y: mr + zr }, { width: Pr, height: 1 }), Ki.copy(Lt.data, Ke, { x: Pr - 1, y: 0 }, { x: cr - 1, y: mr }, { width: 1, height: zr }), Ki.copy(Lt.data, Ke, { x: 0, y: 0 }, { x: cr + Pr, y: mr }, { width: 1, height: zr });
+ }
+ this.image = Ke, this.iconPositions = W, this.patternPositions = te;
+ }
+ addImages(S, F, W) {
+ for (let te in S) {
+ let fe = S[te], pe = { x: 0, y: 0, w: fe.data.width + 2 * Md, h: fe.data.height + 2 * Md };
+ W.push(pe), F[te] = new Bw(pe, fe), fe.hasRenderCallback && this.haveRenderCallbacks.push(te);
+ }
+ }
+ patchUpdatedImages(S, F) {
+ S.dispatchRenderCallbacks(this.haveRenderCallbacks);
+ for (let W in S.updatedImages) this.patchUpdatedImage(this.iconPositions[W], S.getImage(W), F), this.patchUpdatedImage(this.patternPositions[W], S.getImage(W), F);
+ }
+ patchUpdatedImage(S, F, W) {
+ if (!S || !F || S.version === F.version) return;
+ S.version = F.version;
+ let [te, fe] = S.tl;
+ W.update(F.data, void 0, { x: te, y: fe });
+ }
+ }
+ var Dv;
+ Fi("ImagePosition", Bw), Fi("ImageAtlas", Nw), i.ah = void 0, (Dv = i.ah || (i.ah = {}))[Dv.none = 0] = "none", Dv[Dv.horizontal = 1] = "horizontal", Dv[Dv.vertical = 2] = "vertical", Dv[Dv.horizontalOnly = 3] = "horizontalOnly";
+ let Eh = -17;
+ class $x {
+ constructor() {
+ this.scale = 1, this.fontStack = "", this.imageName = null;
+ }
+ static forText(S, F) {
+ let W = new $x();
+ return W.scale = S || 1, W.fontStack = F, W;
+ }
+ static forImage(S) {
+ let F = new $x();
+ return F.imageName = S, F;
+ }
+ }
+ class P1 {
+ constructor() {
+ this.text = "", this.sectionIndex = [], this.sections = [], this.imageSectionID = null;
+ }
+ static fromFeature(S, F) {
+ let W = new P1();
+ for (let te = 0; te < S.sections.length; te++) {
+ let fe = S.sections[te];
+ fe.image ? W.addImageSection(fe) : W.addTextSection(fe, F);
+ }
+ return W;
+ }
+ length() {
+ return this.text.length;
+ }
+ getSection(S) {
+ return this.sections[this.sectionIndex[S]];
+ }
+ getSectionIndex(S) {
+ return this.sectionIndex[S];
+ }
+ getCharCode(S) {
+ return this.text.charCodeAt(S);
+ }
+ verticalizePunctuation() {
+ this.text = function(S) {
+ let F = "";
+ for (let W = 0; W < S.length; W++) {
+ let te = S.charCodeAt(W + 1) || null, fe = S.charCodeAt(W - 1) || null;
+ F += te && ml(te) && !vc[S[W + 1]] || fe && ml(fe) && !vc[S[W - 1]] || !vc[S[W]] ? S[W] : vc[S[W]];
+ }
+ return F;
+ }(this.text);
+ }
+ trim() {
+ let S = 0;
+ for (let W = 0; W < this.text.length && Uw[this.text.charCodeAt(W)]; W++) S++;
+ let F = this.text.length;
+ for (let W = this.text.length - 1; W >= 0 && W >= S && Uw[this.text.charCodeAt(W)]; W--) F--;
+ this.text = this.text.substring(S, F), this.sectionIndex = this.sectionIndex.slice(S, F);
+ }
+ substring(S, F) {
+ let W = new P1();
+ return W.text = this.text.substring(S, F), W.sectionIndex = this.sectionIndex.slice(S, F), W.sections = this.sections, W;
+ }
+ toString() {
+ return this.text;
+ }
+ getMaxScale() {
+ return this.sectionIndex.reduce((S, F) => Math.max(S, this.sections[F].scale), 0);
+ }
+ addTextSection(S, F) {
+ this.text += S.text, this.sections.push($x.forText(S.scale, S.fontStack || F));
+ let W = this.sections.length - 1;
+ for (let te = 0; te < S.text.length; ++te) this.sectionIndex.push(W);
+ }
+ addImageSection(S) {
+ let F = S.image ? S.image.name : "";
+ if (F.length === 0) return void A("Can't add FormattedSection with an empty image.");
+ let W = this.getNextImageSectionCharCode();
+ W ? (this.text += String.fromCharCode(W), this.sections.push($x.forImage(F)), this.sectionIndex.push(this.sections.length - 1)) : A("Reached maximum number of images 6401");
+ }
+ getNextImageSectionCharCode() {
+ return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID);
+ }
+ }
+ function Qx(R, S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr) {
+ let zr = P1.fromFeature(R, te), ui;
+ Jt === i.ah.vertical && zr.verticalizePunctuation();
+ let { processBidirectionalText: yi, processStyledBidirectionalText: vn } = ys;
+ if (yi && zr.sections.length === 1) {
+ ui = [];
+ let Tn = yi(zr.toString(), I1(zr, ct, fe, S, W, mr));
+ for (let pa of Tn) {
+ let ro = new P1();
+ ro.text = pa, ro.sections = zr.sections;
+ for (let Vo = 0; Vo < pa.length; Vo++) ro.sectionIndex.push(0);
+ ui.push(ro);
+ }
+ } else if (vn) {
+ ui = [];
+ let Tn = vn(zr.text, zr.sectionIndex, I1(zr, ct, fe, S, W, mr));
+ for (let pa of Tn) {
+ let ro = new P1();
+ ro.text = pa[0], ro.sectionIndex = pa[1], ro.sections = zr.sections, ui.push(ro);
+ }
+ } else ui = function(Tn, pa) {
+ let ro = [], Vo = Tn.text, Xa = 0;
+ for (let sa of pa) ro.push(Tn.substring(Xa, sa)), Xa = sa;
+ return Xa < Vo.length && ro.push(Tn.substring(Xa, Vo.length)), ro;
+ }(zr, I1(zr, ct, fe, S, W, mr));
+ let zi = [], un = { positionedLines: zi, text: zr.toString(), top: Lt[1], bottom: Lt[1], left: Lt[0], right: Lt[0], writingMode: Jt, iconsInText: false, verticalizable: false };
+ return function(Tn, pa, ro, Vo, Xa, sa, Mo, fo, lo, Xn, Ro, uo) {
+ let $o = 0, Ju = Eh, qu = 0, kh = 0, Qv = fo === "right" ? 1 : fo === "left" ? 0 : 0.5, ud = 0;
+ for (let Af of Xa) {
+ Af.trim();
+ let Lh = Af.getMaxScale(), Ed = (Lh - 1) * tu, cd = { positionedGlyphs: [], lineOffset: 0 };
+ Tn.positionedLines[ud] = cd;
+ let Yh = cd.positionedGlyphs, Df = 0;
+ if (!Af.length()) {
+ Ju += sa, ++ud;
+ continue;
+ }
+ for (let lv = 0; lv < Af.length(); lv++) {
+ let ru = Af.getSection(lv), pc = Af.getSectionIndex(lv), $u = Af.getCharCode(lv), zv = 0, ff = null, q1 = null, p0 = null, Gp = tu, ep = !(lo === i.ah.horizontal || !Ro && !Ho($u) || Ro && (Uw[$u] || (Ch = $u, new RegExp("\\p{sc=Arab}", "u").test(String.fromCodePoint(Ch)))));
+ if (ru.imageName) {
+ let Gc = Vo[ru.imageName];
+ if (!Gc) continue;
+ p0 = ru.imageName, Tn.iconsInText = Tn.iconsInText || true, q1 = Gc.paddedRect;
+ let Yf = Gc.displaySize;
+ ru.scale = ru.scale * tu / uo, ff = { width: Yf[0], height: Yf[1], left: Md, top: -3, advance: ep ? Yf[1] : Yf[0] }, zv = Ed + (tu - Yf[1] * ru.scale), Gp = ff.advance;
+ let tp = ep ? Yf[0] * ru.scale - tu * Lh : Yf[1] * ru.scale - tu * Lh;
+ tp > 0 && tp > Df && (Df = tp);
+ } else {
+ let Gc = ro[ru.fontStack], Yf = Gc && Gc[$u];
+ if (Yf && Yf.rect) q1 = Yf.rect, ff = Yf.metrics;
+ else {
+ let tp = pa[ru.fontStack], yg = tp && tp[$u];
+ if (!yg) continue;
+ ff = yg.metrics;
+ }
+ zv = (Lh - ru.scale) * tu;
+ }
+ ep ? (Tn.verticalizable = true, Yh.push({ glyph: $u, imageName: p0, x: $o, y: Ju + zv, vertical: ep, scale: ru.scale, fontStack: ru.fontStack, sectionIndex: pc, metrics: ff, rect: q1 }), $o += Gp * ru.scale + Xn) : (Yh.push({ glyph: $u, imageName: p0, x: $o, y: Ju + zv, vertical: ep, scale: ru.scale, fontStack: ru.fontStack, sectionIndex: pc, metrics: ff, rect: q1 }), $o += ff.advance * ru.scale + Xn);
+ }
+ Yh.length !== 0 && (qu = Math.max($o - Xn, qu), cm(Yh, 0, Yh.length - 1, Qv, Df)), $o = 0;
+ let Fv = sa * Lh + Df;
+ cd.lineOffset = Math.max(Df, Ed), Ju += Fv, kh = Math.max(Fv, kh), ++ud;
+ }
+ var Ch;
+ let Vd = Ju - Eh, { horizontalAlign: Gd, verticalAlign: Hd } = Gw(Mo);
+ (function(Af, Lh, Ed, cd, Yh, Df, Fv, lv, ru) {
+ let pc = (Lh - Ed) * Yh, $u = 0;
+ $u = Df !== Fv ? -lv * cd - Eh : (-cd * ru + 0.5) * Fv;
+ for (let zv of Af) for (let ff of zv.positionedGlyphs) ff.x += pc, ff.y += $u;
+ })(Tn.positionedLines, Qv, Gd, Hd, qu, kh, sa, Vd, Xa.length), Tn.top += -Hd * Vd, Tn.bottom = Tn.top + Vd, Tn.left += -Gd * qu, Tn.right = Tn.left + qu;
+ }(un, S, F, W, ui, pe, Fe, Ke, Jt, ct, cr, Pr), !function(Tn) {
+ for (let pa of Tn) if (pa.positionedGlyphs.length !== 0) return false;
+ return true;
+ }(zi) && un;
+ }
+ let Uw = { 9: true, 10: true, 11: true, 12: true, 13: true, 32: true }, K9 = { 10: true, 32: true, 38: true, 41: true, 43: true, 45: true, 47: true, 173: true, 183: true, 8203: true, 8208: true, 8211: true, 8231: true }, J9 = { 40: true };
+ function kC(R, S, F, W, te, fe) {
+ if (S.imageName) {
+ let pe = W[S.imageName];
+ return pe ? pe.displaySize[0] * S.scale * tu / fe + te : 0;
+ }
+ {
+ let pe = F[S.fontStack], Fe = pe && pe[R];
+ return Fe ? Fe.metrics.advance * S.scale + te : 0;
+ }
+ }
+ function CC(R, S, F, W) {
+ let te = Math.pow(R - S, 2);
+ return W ? R < S ? te / 2 : 2 * te : te + Math.abs(F) * F;
+ }
+ function $9(R, S, F) {
+ let W = 0;
+ return R === 10 && (W -= 1e4), F && (W += 150), R !== 40 && R !== 65288 || (W += 50), S !== 41 && S !== 65289 || (W += 50), W;
+ }
+ function Vw(R, S, F, W, te, fe) {
+ let pe = null, Fe = CC(S, F, te, fe);
+ for (let Ke of W) {
+ let ct = CC(S - Ke.x, F, te, fe) + Ke.badness;
+ ct <= Fe && (pe = Ke, Fe = ct);
+ }
+ return { index: R, x: S, priorBreak: pe, badness: Fe };
+ }
+ function LC(R) {
+ return R ? LC(R.priorBreak).concat(R.index) : [];
+ }
+ function I1(R, S, F, W, te, fe) {
+ if (!R) return [];
+ let pe = [], Fe = function(Jt, cr, mr, Pr, zr, ui) {
+ let yi = 0;
+ for (let vn = 0; vn < Jt.length(); vn++) {
+ let zi = Jt.getSection(vn);
+ yi += kC(Jt.getCharCode(vn), zi, Pr, zr, cr, ui);
+ }
+ return yi / Math.max(1, Math.ceil(yi / mr));
+ }(R, S, F, W, te, fe), Ke = R.text.indexOf("") >= 0, ct = 0;
+ for (let Jt = 0; Jt < R.length(); Jt++) {
+ let cr = R.getSection(Jt), mr = R.getCharCode(Jt);
+ if (Uw[mr] || (ct += kC(mr, cr, W, te, S, fe)), Jt < R.length() - 1) {
+ let Pr = !((Lt = mr) < 11904) && (!!Dn["CJK Compatibility Forms"](Lt) || !!Dn["CJK Compatibility"](Lt) || !!Dn["CJK Strokes"](Lt) || !!Dn["CJK Symbols and Punctuation"](Lt) || !!Dn["Enclosed CJK Letters and Months"](Lt) || !!Dn["Halfwidth and Fullwidth Forms"](Lt) || !!Dn["Ideographic Description Characters"](Lt) || !!Dn["Vertical Forms"](Lt) || ws.test(String.fromCodePoint(Lt)));
+ (K9[mr] || Pr || cr.imageName || Jt !== R.length() - 2 && J9[R.getCharCode(Jt + 1)]) && pe.push(Vw(Jt + 1, ct, Fe, pe, $9(mr, R.getCharCode(Jt + 1), Pr && Ke), false));
+ }
+ }
+ var Lt;
+ return LC(Vw(R.length(), ct, Fe, pe, 0, true));
+ }
+ function Gw(R) {
+ let S = 0.5, F = 0.5;
+ switch (R) {
+ case "right":
+ case "top-right":
+ case "bottom-right":
+ S = 1;
+ break;
+ case "left":
+ case "top-left":
+ case "bottom-left":
+ S = 0;
+ }
+ switch (R) {
+ case "bottom":
+ case "bottom-right":
+ case "bottom-left":
+ F = 1;
+ break;
+ case "top":
+ case "top-right":
+ case "top-left":
+ F = 0;
+ }
+ return { horizontalAlign: S, verticalAlign: F };
+ }
+ function cm(R, S, F, W, te) {
+ if (!W && !te) return;
+ let fe = R[F], pe = (R[F].x + fe.metrics.advance * fe.scale) * W;
+ for (let Fe = S; Fe <= F; Fe++) R[Fe].x -= pe, R[Fe].y += te;
+ }
+ function eb(R, S, F) {
+ let { horizontalAlign: W, verticalAlign: te } = Gw(F), fe = S[0] - R.displaySize[0] * W, pe = S[1] - R.displaySize[1] * te;
+ return { image: R, top: pe, bottom: pe + R.displaySize[1], left: fe, right: fe + R.displaySize[0] };
+ }
+ function PC(R) {
+ var S, F;
+ let W = R.left, te = R.top, fe = R.right - W, pe = R.bottom - te, Fe = (S = R.image.textFitWidth) !== null && S !== void 0 ? S : "stretchOrShrink", Ke = (F = R.image.textFitHeight) !== null && F !== void 0 ? F : "stretchOrShrink", ct = (R.image.content[2] - R.image.content[0]) / (R.image.content[3] - R.image.content[1]);
+ if (Ke === "proportional") {
+ if (Fe === "stretchOnly" && fe / pe < ct || Fe === "proportional") {
+ let Lt = Math.ceil(pe * ct);
+ W *= Lt / fe, fe = Lt;
+ }
+ } else if (Fe === "proportional" && Ke === "stretchOnly" && ct !== 0 && fe / pe > ct) {
+ let Lt = Math.ceil(fe / ct);
+ te *= Lt / pe, pe = Lt;
+ }
+ return { x1: W, y1: te, x2: W + fe, y2: te + pe };
+ }
+ function IC(R, S, F, W, te, fe) {
+ let pe = R.image, Fe;
+ if (pe.content) {
+ let ui = pe.content, yi = pe.pixelRatio || 1;
+ Fe = [ui[0] / yi, ui[1] / yi, pe.displaySize[0] - ui[2] / yi, pe.displaySize[1] - ui[3] / yi];
+ }
+ let Ke = S.left * fe, ct = S.right * fe, Lt, Jt, cr, mr;
+ F === "width" || F === "both" ? (mr = te[0] + Ke - W[3], Jt = te[0] + ct + W[1]) : (mr = te[0] + (Ke + ct - pe.displaySize[0]) / 2, Jt = mr + pe.displaySize[0]);
+ let Pr = S.top * fe, zr = S.bottom * fe;
+ return F === "height" || F === "both" ? (Lt = te[1] + Pr - W[0], cr = te[1] + zr + W[2]) : (Lt = te[1] + (Pr + zr - pe.displaySize[1]) / 2, cr = Lt + pe.displaySize[1]), { image: pe, top: Lt, right: Jt, bottom: cr, left: mr, collisionPadding: Fe };
+ }
+ let tb = 255, v0 = 128, fm = tb * v0;
+ function RC(R, S) {
+ let { expression: F } = S;
+ if (F.kind === "constant") return { kind: "constant", layoutSize: F.evaluate(new rs(R + 1)) };
+ if (F.kind === "source") return { kind: "source" };
+ {
+ let { zoomStops: W, interpolationType: te } = F, fe = 0;
+ for (; fe < W.length && W[fe] <= R; ) fe++;
+ fe = Math.max(0, fe - 1);
+ let pe = fe;
+ for (; pe < W.length && W[pe] < R + 1; ) pe++;
+ pe = Math.min(W.length - 1, pe);
+ let Fe = W[fe], Ke = W[pe];
+ return F.kind === "composite" ? { kind: "composite", minZoom: Fe, maxZoom: Ke, interpolationType: te } : { kind: "camera", minZoom: Fe, maxZoom: Ke, minSize: F.evaluate(new rs(Fe)), maxSize: F.evaluate(new rs(Ke)), interpolationType: te };
+ }
+ }
+ function fS(R, S, F) {
+ let W = "never", te = R.get(S);
+ return te ? W = te : R.get(F) && (W = "always"), W;
+ }
+ let Q9 = br.VectorTileFeature.types, eO = [{ name: "a_fade_opacity", components: 1, type: "Uint8", offset: 0 }];
+ function Hw(R, S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr) {
+ let mr = Fe ? Math.min(fm, Math.round(Fe[0])) : 0, Pr = Fe ? Math.min(fm, Math.round(Fe[1])) : 0;
+ R.emplaceBack(S, F, Math.round(32 * W), Math.round(32 * te), fe, pe, (mr << 1) + (Ke ? 1 : 0), Pr, 16 * ct, 16 * Lt, 256 * Jt, 256 * cr);
+ }
+ function hS(R, S, F) {
+ R.emplaceBack(S.x, S.y, F), R.emplaceBack(S.x, S.y, F), R.emplaceBack(S.x, S.y, F), R.emplaceBack(S.x, S.y, F);
+ }
+ function dS(R) {
+ for (let S of R.sections) if (no(S.text)) return true;
+ return false;
+ }
+ class vS {
+ constructor(S) {
+ this.layoutVertexArray = new eu(), this.indexArray = new se(), this.programConfigurations = S, this.segments = new Ye(), this.dynamicLayoutVertexArray = new dc(), this.opacityVertexArray = new Tl(), this.hasVisibleVertices = false, this.placedSymbolArray = new Aa();
+ }
+ isEmpty() {
+ return this.layoutVertexArray.length === 0 && this.indexArray.length === 0 && this.dynamicLayoutVertexArray.length === 0 && this.opacityVertexArray.length === 0;
+ }
+ upload(S, F, W, te) {
+ this.isEmpty() || (W && (this.layoutVertexBuffer = S.createVertexBuffer(this.layoutVertexArray, am.members), this.indexBuffer = S.createIndexBuffer(this.indexArray, F), this.dynamicLayoutVertexBuffer = S.createVertexBuffer(this.dynamicLayoutVertexArray, k1.members, true), this.opacityVertexBuffer = S.createVertexBuffer(this.opacityVertexArray, eO, true), this.opacityVertexBuffer.itemSize = 1), (W || te) && this.programConfigurations.upload(S));
+ }
+ destroy() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy());
+ }
+ }
+ Fi("SymbolBuffers", vS);
+ class hm {
+ constructor(S, F, W) {
+ this.layoutVertexArray = new S(), this.layoutAttributes = F, this.indexArray = new W(), this.segments = new Ye(), this.collisionVertexArray = new X();
+ }
+ upload(S) {
+ this.layoutVertexBuffer = S.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = S.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = S.createVertexBuffer(this.collisionVertexArray, C1.members, true);
+ }
+ destroy() {
+ this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy());
+ }
+ }
+ Fi("CollisionBuffers", hm);
+ class R1 {
+ constructor(S) {
+ this.collisionBoxArray = S.collisionBoxArray, this.zoom = S.zoom, this.overscaling = S.overscaling, this.layers = S.layers, this.layerIds = this.layers.map((pe) => pe.id), this.index = S.index, this.pixelRatio = S.pixelRatio, this.sourceLayerIndex = S.sourceLayerIndex, this.hasPattern = false, this.hasRTLText = false, this.sortKeyRanges = [], this.collisionCircleArray = [], this.placementInvProjMatrix = Ri([]), this.placementViewportMatrix = Ri([]);
+ let F = this.layers[0]._unevaluatedLayout._values;
+ this.textSizeData = RC(this.zoom, F["text-size"]), this.iconSizeData = RC(this.zoom, F["icon-size"]);
+ let W = this.layers[0].layout, te = W.get("symbol-sort-key"), fe = W.get("symbol-z-order");
+ this.canOverlap = fS(W, "text-overlap", "text-allow-overlap") !== "never" || fS(W, "icon-overlap", "icon-allow-overlap") !== "never" || W.get("text-ignore-placement") || W.get("icon-ignore-placement"), this.sortFeaturesByKey = fe !== "viewport-y" && !te.isConstant(), this.sortFeaturesByY = (fe === "viewport-y" || fe === "auto" && !this.sortFeaturesByKey) && this.canOverlap, W.get("symbol-placement") === "point" && (this.writingModes = W.get("text-writing-mode").map((pe) => i.ah[pe])), this.stateDependentLayerIds = this.layers.filter((pe) => pe.isStateDependent()).map((pe) => pe.id), this.sourceID = S.sourceID;
+ }
+ createArrays() {
+ this.text = new vS(new Ms(this.layers, this.zoom, (S) => /^text/.test(S))), this.icon = new vS(new Ms(this.layers, this.zoom, (S) => /^icon/.test(S))), this.glyphOffsetArray = new Co(), this.lineVertexArray = new Qa(), this.symbolInstances = new $a(), this.textAnchorOffsets = new Bo();
+ }
+ calculateGlyphDependencies(S, F, W, te, fe) {
+ for (let pe = 0; pe < S.length; pe++) if (F[S.charCodeAt(pe)] = true, (W || te) && fe) {
+ let Fe = vc[S.charAt(pe)];
+ Fe && (F[Fe.charCodeAt(0)] = true);
+ }
+ }
+ populate(S, F, W) {
+ let te = this.layers[0], fe = te.layout, pe = fe.get("text-font"), Fe = fe.get("text-field"), Ke = fe.get("icon-image"), ct = (Fe.value.kind !== "constant" || Fe.value.value instanceof ri && !Fe.value.value.isEmpty() || Fe.value.value.toString().length > 0) && (pe.value.kind !== "constant" || pe.value.value.length > 0), Lt = Ke.value.kind !== "constant" || !!Ke.value.value || Object.keys(Ke.parameters).length > 0, Jt = fe.get("symbol-sort-key");
+ if (this.features = [], !ct && !Lt) return;
+ let cr = F.iconDependencies, mr = F.glyphDependencies, Pr = F.availableImages, zr = new rs(this.zoom);
+ for (let { feature: ui, id: yi, index: vn, sourceLayerIndex: zi } of S) {
+ let un = te._featureFilter.needGeometry, Tn = Sl(ui, un);
+ if (!te._featureFilter.filter(zr, Tn, W)) continue;
+ let pa, ro;
+ if (un || (Tn.geometry = $s(ui)), ct) {
+ let Xa = te.getValueAndResolveTokens("text-field", Tn, W, Pr), sa = ri.factory(Xa), Mo = this.hasRTLText = this.hasRTLText || dS(sa);
+ (!Mo || ys.getRTLTextPluginStatus() === "unavailable" || Mo && ys.isParsed()) && (pa = sm(sa, te, Tn));
+ }
+ if (Lt) {
+ let Xa = te.getValueAndResolveTokens("icon-image", Tn, W, Pr);
+ ro = Xa instanceof tn ? Xa : tn.fromString(Xa);
+ }
+ if (!pa && !ro) continue;
+ let Vo = this.sortFeaturesByKey ? Jt.evaluate(Tn, {}, W) : void 0;
+ if (this.features.push({ id: yi, text: pa, icon: ro, index: vn, sourceLayerIndex: zi, geometry: Tn.geometry, properties: ui.properties, type: Q9[ui.type], sortKey: Vo }), ro && (cr[ro.name] = true), pa) {
+ let Xa = pe.evaluate(Tn, {}, W).join(","), sa = fe.get("text-rotation-alignment") !== "viewport" && fe.get("symbol-placement") !== "point";
+ this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(i.ah.vertical) >= 0;
+ for (let Mo of pa.sections) if (Mo.image) cr[Mo.image.name] = true;
+ else {
+ let fo = Ka(pa.toString()), lo = Mo.fontStack || Xa, Xn = mr[lo] = mr[lo] || {};
+ this.calculateGlyphDependencies(Mo.text, Xn, sa, this.allowVerticalPlacement, fo);
+ }
+ }
+ }
+ fe.get("symbol-placement") === "line" && (this.features = function(ui) {
+ let yi = {}, vn = {}, zi = [], un = 0;
+ function Tn(Xa) {
+ zi.push(ui[Xa]), un++;
+ }
+ function pa(Xa, sa, Mo) {
+ let fo = vn[Xa];
+ return delete vn[Xa], vn[sa] = fo, zi[fo].geometry[0].pop(), zi[fo].geometry[0] = zi[fo].geometry[0].concat(Mo[0]), fo;
+ }
+ function ro(Xa, sa, Mo) {
+ let fo = yi[sa];
+ return delete yi[sa], yi[Xa] = fo, zi[fo].geometry[0].shift(), zi[fo].geometry[0] = Mo[0].concat(zi[fo].geometry[0]), fo;
+ }
+ function Vo(Xa, sa, Mo) {
+ let fo = Mo ? sa[0][sa[0].length - 1] : sa[0][0];
+ return `${Xa}:${fo.x}:${fo.y}`;
+ }
+ for (let Xa = 0; Xa < ui.length; Xa++) {
+ let sa = ui[Xa], Mo = sa.geometry, fo = sa.text ? sa.text.toString() : null;
+ if (!fo) {
+ Tn(Xa);
+ continue;
+ }
+ let lo = Vo(fo, Mo), Xn = Vo(fo, Mo, true);
+ if (lo in vn && Xn in yi && vn[lo] !== yi[Xn]) {
+ let Ro = ro(lo, Xn, Mo), uo = pa(lo, Xn, zi[Ro].geometry);
+ delete yi[lo], delete vn[Xn], vn[Vo(fo, zi[uo].geometry, true)] = uo, zi[Ro].geometry = null;
+ } else lo in vn ? pa(lo, Xn, Mo) : Xn in yi ? ro(lo, Xn, Mo) : (Tn(Xa), yi[lo] = un - 1, vn[Xn] = un - 1);
+ }
+ return zi.filter((Xa) => Xa.geometry);
+ }(this.features)), this.sortFeaturesByKey && this.features.sort((ui, yi) => ui.sortKey - yi.sortKey);
+ }
+ update(S, F, W) {
+ this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(S, F, this.layers, W), this.icon.programConfigurations.updatePaintArrays(S, F, this.layers, W));
+ }
+ isEmpty() {
+ return this.symbolInstances.length === 0 && !this.hasRTLText;
+ }
+ uploadPending() {
+ return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload;
+ }
+ upload(S) {
+ !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(S), this.iconCollisionBox.upload(S)), this.text.upload(S, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(S, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = true;
+ }
+ destroyDebugData() {
+ this.textCollisionBox.destroy(), this.iconCollisionBox.destroy();
+ }
+ destroy() {
+ this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData();
+ }
+ addToLineVertexArray(S, F) {
+ let W = this.lineVertexArray.length;
+ if (S.segment !== void 0) {
+ let te = S.dist(F[S.segment + 1]), fe = S.dist(F[S.segment]), pe = {};
+ for (let Fe = S.segment + 1; Fe < F.length; Fe++) pe[Fe] = { x: F[Fe].x, y: F[Fe].y, tileUnitDistanceFromAnchor: te }, Fe < F.length - 1 && (te += F[Fe + 1].dist(F[Fe]));
+ for (let Fe = S.segment || 0; Fe >= 0; Fe--) pe[Fe] = { x: F[Fe].x, y: F[Fe].y, tileUnitDistanceFromAnchor: fe }, Fe > 0 && (fe += F[Fe - 1].dist(F[Fe]));
+ for (let Fe = 0; Fe < F.length; Fe++) {
+ let Ke = pe[Fe];
+ this.lineVertexArray.emplaceBack(Ke.x, Ke.y, Ke.tileUnitDistanceFromAnchor);
+ }
+ }
+ return { lineStartIndex: W, lineLength: this.lineVertexArray.length - W };
+ }
+ addSymbols(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr) {
+ let mr = S.indexArray, Pr = S.layoutVertexArray, zr = S.segments.prepareSegment(4 * F.length, Pr, mr, this.canOverlap ? pe.sortKey : void 0), ui = this.glyphOffsetArray.length, yi = zr.vertexLength, vn = this.allowVerticalPlacement && Fe === i.ah.vertical ? Math.PI / 2 : 0, zi = pe.text && pe.text.sections;
+ for (let un = 0; un < F.length; un++) {
+ let { tl: Tn, tr: pa, bl: ro, br: Vo, tex: Xa, pixelOffsetTL: sa, pixelOffsetBR: Mo, minFontScaleX: fo, minFontScaleY: lo, glyphOffset: Xn, isSDF: Ro, sectionIndex: uo } = F[un], $o = zr.vertexLength, Ju = Xn[1];
+ Hw(Pr, Ke.x, Ke.y, Tn.x, Ju + Tn.y, Xa.x, Xa.y, W, Ro, sa.x, sa.y, fo, lo), Hw(Pr, Ke.x, Ke.y, pa.x, Ju + pa.y, Xa.x + Xa.w, Xa.y, W, Ro, Mo.x, sa.y, fo, lo), Hw(Pr, Ke.x, Ke.y, ro.x, Ju + ro.y, Xa.x, Xa.y + Xa.h, W, Ro, sa.x, Mo.y, fo, lo), Hw(Pr, Ke.x, Ke.y, Vo.x, Ju + Vo.y, Xa.x + Xa.w, Xa.y + Xa.h, W, Ro, Mo.x, Mo.y, fo, lo), hS(S.dynamicLayoutVertexArray, Ke, vn), mr.emplaceBack($o, $o + 1, $o + 2), mr.emplaceBack($o + 1, $o + 2, $o + 3), zr.vertexLength += 4, zr.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(Xn[0]), un !== F.length - 1 && uo === F[un + 1].sectionIndex || S.programConfigurations.populatePaintArrays(Pr.length, pe, pe.index, {}, cr, zi && zi[uo]);
+ }
+ S.placedSymbolArray.emplaceBack(Ke.x, Ke.y, ui, this.glyphOffsetArray.length - ui, yi, ct, Lt, Ke.segment, W ? W[0] : 0, W ? W[1] : 0, te[0], te[1], Fe, 0, false, 0, Jt);
+ }
+ _addCollisionDebugVertex(S, F, W, te, fe, pe) {
+ return F.emplaceBack(0, 0), S.emplaceBack(W.x, W.y, te, fe, Math.round(pe.x), Math.round(pe.y));
+ }
+ addCollisionDebugVertices(S, F, W, te, fe, pe, Fe) {
+ let Ke = fe.segments.prepareSegment(4, fe.layoutVertexArray, fe.indexArray), ct = Ke.vertexLength, Lt = fe.layoutVertexArray, Jt = fe.collisionVertexArray, cr = Fe.anchorX, mr = Fe.anchorY;
+ this._addCollisionDebugVertex(Lt, Jt, pe, cr, mr, new u(S, F)), this._addCollisionDebugVertex(Lt, Jt, pe, cr, mr, new u(W, F)), this._addCollisionDebugVertex(Lt, Jt, pe, cr, mr, new u(W, te)), this._addCollisionDebugVertex(Lt, Jt, pe, cr, mr, new u(S, te)), Ke.vertexLength += 4;
+ let Pr = fe.indexArray;
+ Pr.emplaceBack(ct, ct + 1), Pr.emplaceBack(ct + 1, ct + 2), Pr.emplaceBack(ct + 2, ct + 3), Pr.emplaceBack(ct + 3, ct), Ke.primitiveLength += 4;
+ }
+ addDebugCollisionBoxes(S, F, W, te) {
+ for (let fe = S; fe < F; fe++) {
+ let pe = this.collisionBoxArray.get(fe);
+ this.addCollisionDebugVertices(pe.x1, pe.y1, pe.x2, pe.y2, te ? this.textCollisionBox : this.iconCollisionBox, pe.anchorPoint, W);
+ }
+ }
+ generateCollisionDebugBuffers() {
+ this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new hm(Al, dy.members, Te), this.iconCollisionBox = new hm(Al, dy.members, Te);
+ for (let S = 0; S < this.symbolInstances.length; S++) {
+ let F = this.symbolInstances.get(S);
+ this.addDebugCollisionBoxes(F.textBoxStartIndex, F.textBoxEndIndex, F, true), this.addDebugCollisionBoxes(F.verticalTextBoxStartIndex, F.verticalTextBoxEndIndex, F, true), this.addDebugCollisionBoxes(F.iconBoxStartIndex, F.iconBoxEndIndex, F, false), this.addDebugCollisionBoxes(F.verticalIconBoxStartIndex, F.verticalIconBoxEndIndex, F, false);
+ }
+ }
+ _deserializeCollisionBoxesForSymbol(S, F, W, te, fe, pe, Fe, Ke, ct) {
+ let Lt = {};
+ for (let Jt = F; Jt < W; Jt++) {
+ let cr = S.get(Jt);
+ Lt.textBox = { x1: cr.x1, y1: cr.y1, x2: cr.x2, y2: cr.y2, anchorPointX: cr.anchorPointX, anchorPointY: cr.anchorPointY }, Lt.textFeatureIndex = cr.featureIndex;
+ break;
+ }
+ for (let Jt = te; Jt < fe; Jt++) {
+ let cr = S.get(Jt);
+ Lt.verticalTextBox = { x1: cr.x1, y1: cr.y1, x2: cr.x2, y2: cr.y2, anchorPointX: cr.anchorPointX, anchorPointY: cr.anchorPointY }, Lt.verticalTextFeatureIndex = cr.featureIndex;
+ break;
+ }
+ for (let Jt = pe; Jt < Fe; Jt++) {
+ let cr = S.get(Jt);
+ Lt.iconBox = { x1: cr.x1, y1: cr.y1, x2: cr.x2, y2: cr.y2, anchorPointX: cr.anchorPointX, anchorPointY: cr.anchorPointY }, Lt.iconFeatureIndex = cr.featureIndex;
+ break;
+ }
+ for (let Jt = Ke; Jt < ct; Jt++) {
+ let cr = S.get(Jt);
+ Lt.verticalIconBox = { x1: cr.x1, y1: cr.y1, x2: cr.x2, y2: cr.y2, anchorPointX: cr.anchorPointX, anchorPointY: cr.anchorPointY }, Lt.verticalIconFeatureIndex = cr.featureIndex;
+ break;
+ }
+ return Lt;
+ }
+ deserializeCollisionBoxes(S) {
+ this.collisionArrays = [];
+ for (let F = 0; F < this.symbolInstances.length; F++) {
+ let W = this.symbolInstances.get(F);
+ this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(S, W.textBoxStartIndex, W.textBoxEndIndex, W.verticalTextBoxStartIndex, W.verticalTextBoxEndIndex, W.iconBoxStartIndex, W.iconBoxEndIndex, W.verticalIconBoxStartIndex, W.verticalIconBoxEndIndex));
+ }
+ }
+ hasTextData() {
+ return this.text.segments.get().length > 0;
+ }
+ hasIconData() {
+ return this.icon.segments.get().length > 0;
+ }
+ hasDebugData() {
+ return this.textCollisionBox && this.iconCollisionBox;
+ }
+ hasTextCollisionBoxData() {
+ return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0;
+ }
+ hasIconCollisionBoxData() {
+ return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0;
+ }
+ addIndicesForPlacedSymbol(S, F) {
+ let W = S.placedSymbolArray.get(F), te = W.vertexStartIndex + 4 * W.numGlyphs;
+ for (let fe = W.vertexStartIndex; fe < te; fe += 4) S.indexArray.emplaceBack(fe, fe + 1, fe + 2), S.indexArray.emplaceBack(fe + 1, fe + 2, fe + 3);
+ }
+ getSortedSymbolIndexes(S) {
+ if (this.sortedAngle === S && this.symbolInstanceIndexes !== void 0) return this.symbolInstanceIndexes;
+ let F = Math.sin(S), W = Math.cos(S), te = [], fe = [], pe = [];
+ for (let Fe = 0; Fe < this.symbolInstances.length; ++Fe) {
+ pe.push(Fe);
+ let Ke = this.symbolInstances.get(Fe);
+ te.push(0 | Math.round(F * Ke.anchorX + W * Ke.anchorY)), fe.push(Ke.featureIndex);
+ }
+ return pe.sort((Fe, Ke) => te[Fe] - te[Ke] || fe[Ke] - fe[Fe]), pe;
+ }
+ addToSortKeyRanges(S, F) {
+ let W = this.sortKeyRanges[this.sortKeyRanges.length - 1];
+ W && W.sortKey === F ? W.symbolInstanceEnd = S + 1 : this.sortKeyRanges.push({ sortKey: F, symbolInstanceStart: S, symbolInstanceEnd: S + 1 });
+ }
+ sortFeatures(S) {
+ if (this.sortFeaturesByY && this.sortedAngle !== S && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) {
+ this.symbolInstanceIndexes = this.getSortedSymbolIndexes(S), this.sortedAngle = S, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = [];
+ for (let F of this.symbolInstanceIndexes) {
+ let W = this.symbolInstances.get(F);
+ this.featureSortOrder.push(W.featureIndex), [W.rightJustifiedTextSymbolIndex, W.centerJustifiedTextSymbolIndex, W.leftJustifiedTextSymbolIndex].forEach((te, fe, pe) => {
+ te >= 0 && pe.indexOf(te) === fe && this.addIndicesForPlacedSymbol(this.text, te);
+ }), W.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, W.verticalPlacedTextSymbolIndex), W.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, W.placedIconSymbolIndex), W.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, W.verticalPlacedIconSymbolIndex);
+ }
+ this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray);
+ }
+ }
+ }
+ let Tf, rb;
+ Fi("SymbolBucket", R1, { omit: ["layers", "collisionBoxArray", "features", "compareText"] }), R1.MAX_GLYPHS = 65535, R1.addDynamicAttributes = hS;
+ var jw = { get paint() {
+ return rb = rb || new ue({ "icon-opacity": new oo(ce.paint_symbol["icon-opacity"]), "icon-color": new oo(ce.paint_symbol["icon-color"]), "icon-halo-color": new oo(ce.paint_symbol["icon-halo-color"]), "icon-halo-width": new oo(ce.paint_symbol["icon-halo-width"]), "icon-halo-blur": new oo(ce.paint_symbol["icon-halo-blur"]), "icon-translate": new Ua(ce.paint_symbol["icon-translate"]), "icon-translate-anchor": new Ua(ce.paint_symbol["icon-translate-anchor"]), "text-opacity": new oo(ce.paint_symbol["text-opacity"]), "text-color": new oo(ce.paint_symbol["text-color"], { runtimeType: er, getOverride: (R) => R.textColor, hasOverride: (R) => !!R.textColor }), "text-halo-color": new oo(ce.paint_symbol["text-halo-color"]), "text-halo-width": new oo(ce.paint_symbol["text-halo-width"]), "text-halo-blur": new oo(ce.paint_symbol["text-halo-blur"]), "text-translate": new Ua(ce.paint_symbol["text-translate"]), "text-translate-anchor": new Ua(ce.paint_symbol["text-translate-anchor"]) });
+ }, get layout() {
+ return Tf = Tf || new ue({ "symbol-placement": new Ua(ce.layout_symbol["symbol-placement"]), "symbol-spacing": new Ua(ce.layout_symbol["symbol-spacing"]), "symbol-avoid-edges": new Ua(ce.layout_symbol["symbol-avoid-edges"]), "symbol-sort-key": new oo(ce.layout_symbol["symbol-sort-key"]), "symbol-z-order": new Ua(ce.layout_symbol["symbol-z-order"]), "icon-allow-overlap": new Ua(ce.layout_symbol["icon-allow-overlap"]), "icon-overlap": new Ua(ce.layout_symbol["icon-overlap"]), "icon-ignore-placement": new Ua(ce.layout_symbol["icon-ignore-placement"]), "icon-optional": new Ua(ce.layout_symbol["icon-optional"]), "icon-rotation-alignment": new Ua(ce.layout_symbol["icon-rotation-alignment"]), "icon-size": new oo(ce.layout_symbol["icon-size"]), "icon-text-fit": new Ua(ce.layout_symbol["icon-text-fit"]), "icon-text-fit-padding": new Ua(ce.layout_symbol["icon-text-fit-padding"]), "icon-image": new oo(ce.layout_symbol["icon-image"]), "icon-rotate": new oo(ce.layout_symbol["icon-rotate"]), "icon-padding": new oo(ce.layout_symbol["icon-padding"]), "icon-keep-upright": new Ua(ce.layout_symbol["icon-keep-upright"]), "icon-offset": new oo(ce.layout_symbol["icon-offset"]), "icon-anchor": new oo(ce.layout_symbol["icon-anchor"]), "icon-pitch-alignment": new Ua(ce.layout_symbol["icon-pitch-alignment"]), "text-pitch-alignment": new Ua(ce.layout_symbol["text-pitch-alignment"]), "text-rotation-alignment": new Ua(ce.layout_symbol["text-rotation-alignment"]), "text-field": new oo(ce.layout_symbol["text-field"]), "text-font": new oo(ce.layout_symbol["text-font"]), "text-size": new oo(ce.layout_symbol["text-size"]), "text-max-width": new oo(ce.layout_symbol["text-max-width"]), "text-line-height": new Ua(ce.layout_symbol["text-line-height"]), "text-letter-spacing": new oo(ce.layout_symbol["text-letter-spacing"]), "text-justify": new oo(ce.layout_symbol["text-justify"]), "text-radial-offset": new oo(ce.layout_symbol["text-radial-offset"]), "text-variable-anchor": new Ua(ce.layout_symbol["text-variable-anchor"]), "text-variable-anchor-offset": new oo(ce.layout_symbol["text-variable-anchor-offset"]), "text-anchor": new oo(ce.layout_symbol["text-anchor"]), "text-max-angle": new Ua(ce.layout_symbol["text-max-angle"]), "text-writing-mode": new Ua(ce.layout_symbol["text-writing-mode"]), "text-rotate": new oo(ce.layout_symbol["text-rotate"]), "text-padding": new Ua(ce.layout_symbol["text-padding"]), "text-keep-upright": new Ua(ce.layout_symbol["text-keep-upright"]), "text-transform": new oo(ce.layout_symbol["text-transform"]), "text-offset": new oo(ce.layout_symbol["text-offset"]), "text-allow-overlap": new Ua(ce.layout_symbol["text-allow-overlap"]), "text-overlap": new Ua(ce.layout_symbol["text-overlap"]), "text-ignore-placement": new Ua(ce.layout_symbol["text-ignore-placement"]), "text-optional": new Ua(ce.layout_symbol["text-optional"]) });
+ } };
+ class ib {
+ constructor(S) {
+ if (S.property.overrides === void 0) throw new Error("overrides must be provided to instantiate FormatSectionOverride class");
+ this.type = S.property.overrides ? S.property.overrides.runtimeType : Gt, this.defaultValue = S;
+ }
+ evaluate(S) {
+ if (S.formattedSection) {
+ let F = this.defaultValue.property.overrides;
+ if (F && F.hasOverride(S.formattedSection)) return F.getOverride(S.formattedSection);
+ }
+ return S.feature && S.featureState ? this.defaultValue.evaluate(S.feature, S.featureState) : this.defaultValue.property.specification.default;
+ }
+ eachChild(S) {
+ this.defaultValue.isConstant() || S(this.defaultValue.value._styleExpression.expression);
+ }
+ outputDefined() {
+ return false;
+ }
+ serialize() {
+ return null;
+ }
+ }
+ Fi("FormatSectionOverride", ib, { omit: ["defaultValue"] });
+ class gy extends B {
+ constructor(S) {
+ super(S, jw);
+ }
+ recalculate(S, F) {
+ if (super.recalculate(S, F), this.layout.get("icon-rotation-alignment") === "auto" && (this.layout._values["icon-rotation-alignment"] = this.layout.get("symbol-placement") !== "point" ? "map" : "viewport"), this.layout.get("text-rotation-alignment") === "auto" && (this.layout._values["text-rotation-alignment"] = this.layout.get("symbol-placement") !== "point" ? "map" : "viewport"), this.layout.get("text-pitch-alignment") === "auto" && (this.layout._values["text-pitch-alignment"] = this.layout.get("text-rotation-alignment") === "map" ? "map" : "viewport"), this.layout.get("icon-pitch-alignment") === "auto" && (this.layout._values["icon-pitch-alignment"] = this.layout.get("icon-rotation-alignment")), this.layout.get("symbol-placement") === "point") {
+ let W = this.layout.get("text-writing-mode");
+ if (W) {
+ let te = [];
+ for (let fe of W) te.indexOf(fe) < 0 && te.push(fe);
+ this.layout._values["text-writing-mode"] = te;
+ } else this.layout._values["text-writing-mode"] = ["horizontal"];
+ }
+ this._setPaintOverrides();
+ }
+ getValueAndResolveTokens(S, F, W, te) {
+ let fe = this.layout.get(S).evaluate(F, {}, W, te), pe = this._unevaluatedLayout._values[S];
+ return pe.isDataDriven() || Dc(pe.value) || !fe ? fe : function(Fe, Ke) {
+ return Ke.replace(/{([^{}]+)}/g, (ct, Lt) => Fe && Lt in Fe ? String(Fe[Lt]) : "");
+ }(F.properties, fe);
+ }
+ createBucket(S) {
+ return new R1(S);
+ }
+ queryRadius() {
+ return 0;
+ }
+ queryIntersectsFeature() {
+ throw new Error("Should take a different path in FeatureIndex");
+ }
+ _setPaintOverrides() {
+ for (let S of jw.paint.overridableProperties) {
+ if (!gy.hasPaintOverride(this.layout, S)) continue;
+ let F = this.paint.get(S), W = new ib(F), te = new Eu(W, F.property.specification), fe = null;
+ fe = F.value.kind === "constant" || F.value.kind === "source" ? new bc("source", te) : new hu("composite", te, F.value.zoomStops), this.paint._values[S] = new xu(F.property, fe, F.parameters);
+ }
+ }
+ _handleOverridablePaintPropertyUpdate(S, F, W) {
+ return !(!this.layout || F.isDataDriven() || W.isDataDriven()) && gy.hasPaintOverride(this.layout, S);
+ }
+ static hasPaintOverride(S, F) {
+ let W = S.get("text-field"), te = jw.paint.properties[F], fe = false, pe = (Fe) => {
+ for (let Ke of Fe) if (te.overrides && te.overrides.hasOverride(Ke)) return void (fe = true);
+ };
+ if (W.value.kind === "constant" && W.value.value instanceof ri) pe(W.value.value.sections);
+ else if (W.value.kind === "source") {
+ let Fe = (ct) => {
+ fe || (ct instanceof ua && Sn(ct.value) === ti ? pe(ct.value.sections) : ct instanceof Yl ? pe(ct.sections) : ct.eachChild(Fe));
+ }, Ke = W.value;
+ Ke._styleExpression && Fe(Ke._styleExpression.expression);
+ }
+ return fe;
+ }
+ }
+ let DC;
+ var nb = { get paint() {
+ return DC = DC || new ue({ "background-color": new Ua(ce.paint_background["background-color"]), "background-pattern": new hc(ce.paint_background["background-pattern"]), "background-opacity": new Ua(ce.paint_background["background-opacity"]) });
+ } };
+ class tO extends B {
+ constructor(S) {
+ super(S, nb);
+ }
+ }
+ let pS;
+ var FC = { get paint() {
+ return pS = pS || new ue({ "raster-opacity": new Ua(ce.paint_raster["raster-opacity"]), "raster-hue-rotate": new Ua(ce.paint_raster["raster-hue-rotate"]), "raster-brightness-min": new Ua(ce.paint_raster["raster-brightness-min"]), "raster-brightness-max": new Ua(ce.paint_raster["raster-brightness-max"]), "raster-saturation": new Ua(ce.paint_raster["raster-saturation"]), "raster-contrast": new Ua(ce.paint_raster["raster-contrast"]), "raster-resampling": new Ua(ce.paint_raster["raster-resampling"]), "raster-fade-duration": new Ua(ce.paint_raster["raster-fade-duration"]) });
+ } };
+ class ab extends B {
+ constructor(S) {
+ super(S, FC);
+ }
+ }
+ class gS extends B {
+ constructor(S) {
+ super(S, {}), this.onAdd = (F) => {
+ this.implementation.onAdd && this.implementation.onAdd(F, F.painter.context.gl);
+ }, this.onRemove = (F) => {
+ this.implementation.onRemove && this.implementation.onRemove(F, F.painter.context.gl);
+ }, this.implementation = S;
+ }
+ is3D() {
+ return this.implementation.renderingMode === "3d";
+ }
+ hasOffscreenPass() {
+ return this.implementation.prerender !== void 0;
+ }
+ recalculate() {
+ }
+ updateTransitions() {
+ }
+ hasTransition() {
+ return false;
+ }
+ serialize() {
+ throw new Error("Custom layers cannot be serialized");
+ }
+ }
+ class mS {
+ constructor(S) {
+ this._methodToThrottle = S, this._triggered = false, typeof MessageChannel != "undefined" && (this._channel = new MessageChannel(), this._channel.port2.onmessage = () => {
+ this._triggered = false, this._methodToThrottle();
+ });
+ }
+ trigger() {
+ this._triggered || (this._triggered = true, this._channel ? this._channel.port1.postMessage(true) : setTimeout(() => {
+ this._triggered = false, this._methodToThrottle();
+ }, 0));
+ }
+ remove() {
+ delete this._channel, this._methodToThrottle = () => {
+ };
+ }
+ }
+ let yS = 63710088e-1;
+ class pg {
+ constructor(S, F) {
+ if (isNaN(S) || isNaN(F)) throw new Error(`Invalid LngLat object: (${S}, ${F})`);
+ if (this.lng = +S, this.lat = +F, this.lat > 90 || this.lat < -90) throw new Error("Invalid LngLat latitude value: must be between -90 and 90");
+ }
+ wrap() {
+ return new pg(T(this.lng, -180, 180), this.lat);
+ }
+ toArray() {
+ return [this.lng, this.lat];
+ }
+ toString() {
+ return `LngLat(${this.lng}, ${this.lat})`;
+ }
+ distanceTo(S) {
+ let F = Math.PI / 180, W = this.lat * F, te = S.lat * F, fe = Math.sin(W) * Math.sin(te) + Math.cos(W) * Math.cos(te) * Math.cos((S.lng - this.lng) * F);
+ return yS * Math.acos(Math.min(fe, 1));
+ }
+ static convert(S) {
+ if (S instanceof pg) return S;
+ if (Array.isArray(S) && (S.length === 2 || S.length === 3)) return new pg(Number(S[0]), Number(S[1]));
+ if (!Array.isArray(S) && typeof S == "object" && S !== null) return new pg(Number("lng" in S ? S.lng : S.lon), Number(S.lat));
+ throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]");
+ }
+ }
+ let D1 = 2 * Math.PI * yS;
+ function zC(R) {
+ return D1 * Math.cos(R * Math.PI / 180);
+ }
+ function Ww(R) {
+ return (180 + R) / 360;
+ }
+ function OC(R) {
+ return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + R * Math.PI / 360))) / 360;
+ }
+ function Xw(R, S) {
+ return R / zC(S);
+ }
+ function ob(R) {
+ return 360 / Math.PI * Math.atan(Math.exp((180 - 360 * R) * Math.PI / 180)) - 90;
+ }
+ class sb {
+ constructor(S, F, W = 0) {
+ this.x = +S, this.y = +F, this.z = +W;
+ }
+ static fromLngLat(S, F = 0) {
+ let W = pg.convert(S);
+ return new sb(Ww(W.lng), OC(W.lat), Xw(F, W.lat));
+ }
+ toLngLat() {
+ return new pg(360 * this.x - 180, ob(this.y));
+ }
+ toAltitude() {
+ return this.z * zC(ob(this.y));
+ }
+ meterInMercatorCoordinateUnits() {
+ return 1 / D1 * (S = ob(this.y), 1 / Math.cos(S * Math.PI / 180));
+ var S;
+ }
+ }
+ function yp(R, S, F) {
+ var W = 2 * Math.PI * 6378137 / 256 / Math.pow(2, F);
+ return [R * W - 2 * Math.PI * 6378137 / 2, S * W - 2 * Math.PI * 6378137 / 2];
+ }
+ class _S {
+ constructor(S, F, W) {
+ if (!function(te, fe, pe) {
+ return !(te < 0 || te > 25 || pe < 0 || pe >= Math.pow(2, te) || fe < 0 || fe >= Math.pow(2, te));
+ }(S, F, W)) throw new Error(`x=${F}, y=${W}, z=${S} outside of bounds. 0<=x<${Math.pow(2, S)}, 0<=y<${Math.pow(2, S)} 0<=z<=25 `);
+ this.z = S, this.x = F, this.y = W, this.key = lb(0, S, S, F, W);
+ }
+ equals(S) {
+ return this.z === S.z && this.x === S.x && this.y === S.y;
+ }
+ url(S, F, W) {
+ let te = (pe = this.y, Fe = this.z, Ke = yp(256 * (fe = this.x), 256 * (pe = Math.pow(2, Fe) - pe - 1), Fe), ct = yp(256 * (fe + 1), 256 * (pe + 1), Fe), Ke[0] + "," + Ke[1] + "," + ct[0] + "," + ct[1]);
+ var fe, pe, Fe, Ke, ct;
+ let Lt = function(Jt, cr, mr) {
+ let Pr, zr = "";
+ for (let ui = Jt; ui > 0; ui--) Pr = 1 << ui - 1, zr += (cr & Pr ? 1 : 0) + (mr & Pr ? 2 : 0);
+ return zr;
+ }(this.z, this.x, this.y);
+ return S[(this.x + this.y) % S.length].replace(/{prefix}/g, (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(/{z}/g, String(this.z)).replace(/{x}/g, String(this.x)).replace(/{y}/g, String(W === "tms" ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(/{ratio}/g, F > 1 ? "@2x" : "").replace(/{quadkey}/g, Lt).replace(/{bbox-epsg-3857}/g, te);
+ }
+ isChildOf(S) {
+ let F = this.z - S.z;
+ return F > 0 && S.x === this.x >> F && S.y === this.y >> F;
+ }
+ getTilePoint(S) {
+ let F = Math.pow(2, this.z);
+ return new u((S.x * F - this.x) * ja, (S.y * F - this.y) * ja);
+ }
+ toString() {
+ return `${this.z}/${this.x}/${this.y}`;
+ }
+ }
+ class qC {
+ constructor(S, F) {
+ this.wrap = S, this.canonical = F, this.key = lb(S, F.z, F.z, F.x, F.y);
+ }
+ }
+ class $v {
+ constructor(S, F, W, te, fe) {
+ if (S < W) throw new Error(`overscaledZ should be >= z; overscaledZ = ${S}; z = ${W}`);
+ this.overscaledZ = S, this.wrap = F, this.canonical = new _S(W, +te, +fe), this.key = lb(F, S, W, te, fe);
+ }
+ clone() {
+ return new $v(this.overscaledZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y);
+ }
+ equals(S) {
+ return this.overscaledZ === S.overscaledZ && this.wrap === S.wrap && this.canonical.equals(S.canonical);
+ }
+ scaledTo(S) {
+ if (S > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${S}; overscaledZ = ${this.overscaledZ}`);
+ let F = this.canonical.z - S;
+ return S > this.canonical.z ? new $v(S, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new $v(S, this.wrap, S, this.canonical.x >> F, this.canonical.y >> F);
+ }
+ calculateScaledKey(S, F) {
+ if (S > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${S}; overscaledZ = ${this.overscaledZ}`);
+ let W = this.canonical.z - S;
+ return S > this.canonical.z ? lb(this.wrap * +F, S, this.canonical.z, this.canonical.x, this.canonical.y) : lb(this.wrap * +F, S, S, this.canonical.x >> W, this.canonical.y >> W);
+ }
+ isChildOf(S) {
+ if (S.wrap !== this.wrap) return false;
+ let F = this.canonical.z - S.canonical.z;
+ return S.overscaledZ === 0 || S.overscaledZ < this.overscaledZ && S.canonical.x === this.canonical.x >> F && S.canonical.y === this.canonical.y >> F;
+ }
+ children(S) {
+ if (this.overscaledZ >= S) return [new $v(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)];
+ let F = this.canonical.z + 1, W = 2 * this.canonical.x, te = 2 * this.canonical.y;
+ return [new $v(F, this.wrap, F, W, te), new $v(F, this.wrap, F, W + 1, te), new $v(F, this.wrap, F, W, te + 1), new $v(F, this.wrap, F, W + 1, te + 1)];
+ }
+ isLessThan(S) {
+ return this.wrap < S.wrap || !(this.wrap > S.wrap) && (this.overscaledZ < S.overscaledZ || !(this.overscaledZ > S.overscaledZ) && (this.canonical.x < S.canonical.x || !(this.canonical.x > S.canonical.x) && this.canonical.y < S.canonical.y));
+ }
+ wrapped() {
+ return new $v(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y);
+ }
+ unwrapTo(S) {
+ return new $v(this.overscaledZ, S, this.canonical.z, this.canonical.x, this.canonical.y);
+ }
+ overscaleFactor() {
+ return Math.pow(2, this.overscaledZ - this.canonical.z);
+ }
+ toUnwrapped() {
+ return new qC(this.wrap, this.canonical);
+ }
+ toString() {
+ return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`;
+ }
+ getTilePoint(S) {
+ return this.canonical.getTilePoint(new sb(S.x - this.wrap, S.y));
+ }
+ }
+ function lb(R, S, F, W, te) {
+ (R *= 2) < 0 && (R = -1 * R - 1);
+ let fe = 1 << F;
+ return (fe * fe * R + fe * te + W).toString(36) + F.toString(36) + S.toString(36);
+ }
+ Fi("CanonicalTileID", _S), Fi("OverscaledTileID", $v, { omit: ["posMatrix"] });
+ class BC {
+ constructor(S, F, W, te = 1, fe = 1, pe = 1, Fe = 0) {
+ if (this.uid = S, F.height !== F.width) throw new RangeError("DEM tiles must be square");
+ if (W && !["mapbox", "terrarium", "custom"].includes(W)) return void A(`"${W}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);
+ this.stride = F.height;
+ let Ke = this.dim = F.height - 2;
+ switch (this.data = new Uint32Array(F.data.buffer), W) {
+ case "terrarium":
+ this.redFactor = 256, this.greenFactor = 1, this.blueFactor = 1 / 256, this.baseShift = 32768;
+ break;
+ case "custom":
+ this.redFactor = te, this.greenFactor = fe, this.blueFactor = pe, this.baseShift = Fe;
+ break;
+ default:
+ this.redFactor = 6553.6, this.greenFactor = 25.6, this.blueFactor = 0.1, this.baseShift = 1e4;
+ }
+ for (let ct = 0; ct < Ke; ct++) this.data[this._idx(-1, ct)] = this.data[this._idx(0, ct)], this.data[this._idx(Ke, ct)] = this.data[this._idx(Ke - 1, ct)], this.data[this._idx(ct, -1)] = this.data[this._idx(ct, 0)], this.data[this._idx(ct, Ke)] = this.data[this._idx(ct, Ke - 1)];
+ this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(Ke, -1)] = this.data[this._idx(Ke - 1, 0)], this.data[this._idx(-1, Ke)] = this.data[this._idx(0, Ke - 1)], this.data[this._idx(Ke, Ke)] = this.data[this._idx(Ke - 1, Ke - 1)], this.min = Number.MAX_SAFE_INTEGER, this.max = Number.MIN_SAFE_INTEGER;
+ for (let ct = 0; ct < Ke; ct++) for (let Lt = 0; Lt < Ke; Lt++) {
+ let Jt = this.get(ct, Lt);
+ Jt > this.max && (this.max = Jt), Jt < this.min && (this.min = Jt);
+ }
+ }
+ get(S, F) {
+ let W = new Uint8Array(this.data.buffer), te = 4 * this._idx(S, F);
+ return this.unpack(W[te], W[te + 1], W[te + 2]);
+ }
+ getUnpackVector() {
+ return [this.redFactor, this.greenFactor, this.blueFactor, this.baseShift];
+ }
+ _idx(S, F) {
+ if (S < -1 || S >= this.dim + 1 || F < -1 || F >= this.dim + 1) throw new RangeError("out of range source coordinates for DEM data");
+ return (F + 1) * this.stride + (S + 1);
+ }
+ unpack(S, F, W) {
+ return S * this.redFactor + F * this.greenFactor + W * this.blueFactor - this.baseShift;
+ }
+ getPixels() {
+ return new Ki({ width: this.stride, height: this.stride }, new Uint8Array(this.data.buffer));
+ }
+ backfillBorder(S, F, W) {
+ if (this.dim !== S.dim) throw new Error("dem dimension mismatch");
+ let te = F * this.dim, fe = F * this.dim + this.dim, pe = W * this.dim, Fe = W * this.dim + this.dim;
+ switch (F) {
+ case -1:
+ te = fe - 1;
+ break;
+ case 1:
+ fe = te + 1;
+ }
+ switch (W) {
+ case -1:
+ pe = Fe - 1;
+ break;
+ case 1:
+ Fe = pe + 1;
+ }
+ let Ke = -F * this.dim, ct = -W * this.dim;
+ for (let Lt = pe; Lt < Fe; Lt++) for (let Jt = te; Jt < fe; Jt++) this.data[this._idx(Jt, Lt)] = S.data[this._idx(Jt + Ke, Lt + ct)];
+ }
+ }
+ Fi("DEMData", BC);
+ class NC {
+ constructor(S) {
+ this._stringToNumber = {}, this._numberToString = [];
+ for (let F = 0; F < S.length; F++) {
+ let W = S[F];
+ this._stringToNumber[W] = F, this._numberToString[F] = W;
+ }
+ }
+ encode(S) {
+ return this._stringToNumber[S];
+ }
+ decode(S) {
+ if (S >= this._numberToString.length) throw new Error(`Out of bounds. Index requested n=${S} can't be >= this._numberToString.length ${this._numberToString.length}`);
+ return this._numberToString[S];
+ }
+ }
+ class xS {
+ constructor(S, F, W, te, fe) {
+ this.type = "Feature", this._vectorTileFeature = S, S._z = F, S._x = W, S._y = te, this.properties = S.properties, this.id = fe;
+ }
+ get geometry() {
+ return this._geometry === void 0 && (this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry), this._geometry;
+ }
+ set geometry(S) {
+ this._geometry = S;
+ }
+ toJSON() {
+ let S = { geometry: this.geometry };
+ for (let F in this) F !== "_geometry" && F !== "_vectorTileFeature" && (S[F] = this[F]);
+ return S;
+ }
+ }
+ class my {
+ constructor(S, F) {
+ this.tileID = S, this.x = S.canonical.x, this.y = S.canonical.y, this.z = S.canonical.z, this.grid = new Qi(ja, 16, 0), this.grid3D = new Qi(ja, 16, 0), this.featureIndexArray = new Ts(), this.promoteId = F;
+ }
+ insert(S, F, W, te, fe, pe) {
+ let Fe = this.featureIndexArray.length;
+ this.featureIndexArray.emplaceBack(W, te, fe);
+ let Ke = pe ? this.grid3D : this.grid;
+ for (let ct = 0; ct < F.length; ct++) {
+ let Lt = F[ct], Jt = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
+ for (let cr = 0; cr < Lt.length; cr++) {
+ let mr = Lt[cr];
+ Jt[0] = Math.min(Jt[0], mr.x), Jt[1] = Math.min(Jt[1], mr.y), Jt[2] = Math.max(Jt[2], mr.x), Jt[3] = Math.max(Jt[3], mr.y);
+ }
+ Jt[0] < ja && Jt[1] < ja && Jt[2] >= 0 && Jt[3] >= 0 && Ke.insert(Fe, Jt[0], Jt[1], Jt[2], Jt[3]);
+ }
+ }
+ loadVTLayers() {
+ return this.vtLayers || (this.vtLayers = new br.VectorTile(new lS(this.rawTileData)).layers, this.sourceLayerCoder = new NC(this.vtLayers ? Object.keys(this.vtLayers).sort() : ["_geojsonTileLayer"])), this.vtLayers;
+ }
+ query(S, F, W, te) {
+ this.loadVTLayers();
+ let fe = S.params || {}, pe = ja / S.tileSize / S.scale, Fe = Fc(fe.filter), Ke = S.queryGeometry, ct = S.queryPadding * pe, Lt = VC(Ke), Jt = this.grid.query(Lt.minX - ct, Lt.minY - ct, Lt.maxX + ct, Lt.maxY + ct), cr = VC(S.cameraQueryGeometry), mr = this.grid3D.query(cr.minX - ct, cr.minY - ct, cr.maxX + ct, cr.maxY + ct, (ui, yi, vn, zi) => function(un, Tn, pa, ro, Vo) {
+ for (let sa of un) if (Tn <= sa.x && pa <= sa.y && ro >= sa.x && Vo >= sa.y) return true;
+ let Xa = [new u(Tn, pa), new u(Tn, Vo), new u(ro, Vo), new u(ro, pa)];
+ if (un.length > 2) {
+ for (let sa of Xa) if (Ui(un, sa)) return true;
+ }
+ for (let sa = 0; sa < un.length - 1; sa++) if (qi(un[sa], un[sa + 1], Xa)) return true;
+ return false;
+ }(S.cameraQueryGeometry, ui - ct, yi - ct, vn + ct, zi + ct));
+ for (let ui of mr) Jt.push(ui);
+ Jt.sort(rO);
+ let Pr = {}, zr;
+ for (let ui = 0; ui < Jt.length; ui++) {
+ let yi = Jt[ui];
+ if (yi === zr) continue;
+ zr = yi;
+ let vn = this.featureIndexArray.get(yi), zi = null;
+ this.loadMatchingFeature(Pr, vn.bucketIndex, vn.sourceLayerIndex, vn.featureIndex, Fe, fe.layers, fe.availableImages, F, W, te, (un, Tn, pa) => (zi || (zi = $s(un)), Tn.queryIntersectsFeature(Ke, un, pa, zi, this.z, S.transform, pe, S.pixelPosMatrix)));
+ }
+ return Pr;
+ }
+ loadMatchingFeature(S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt) {
+ let cr = this.bucketLayerIDs[F];
+ if (pe && !function(ui, yi) {
+ for (let vn = 0; vn < ui.length; vn++) if (yi.indexOf(ui[vn]) >= 0) return true;
+ return false;
+ }(pe, cr)) return;
+ let mr = this.sourceLayerCoder.decode(W), Pr = this.vtLayers[mr].feature(te);
+ if (fe.needGeometry) {
+ let ui = Sl(Pr, true);
+ if (!fe.filter(new rs(this.tileID.overscaledZ), ui, this.tileID.canonical)) return;
+ } else if (!fe.filter(new rs(this.tileID.overscaledZ), Pr)) return;
+ let zr = this.getId(Pr, mr);
+ for (let ui = 0; ui < cr.length; ui++) {
+ let yi = cr[ui];
+ if (pe && pe.indexOf(yi) < 0) continue;
+ let vn = Ke[yi];
+ if (!vn) continue;
+ let zi = {};
+ zr && Lt && (zi = Lt.getState(vn.sourceLayer || "_geojsonTileLayer", zr));
+ let un = L({}, ct[yi]);
+ un.paint = UC(un.paint, vn.paint, Pr, zi, Fe), un.layout = UC(un.layout, vn.layout, Pr, zi, Fe);
+ let Tn = !Jt || Jt(Pr, vn, zi);
+ if (!Tn) continue;
+ let pa = new xS(Pr, this.z, this.x, this.y, zr);
+ pa.layer = un;
+ let ro = S[yi];
+ ro === void 0 && (ro = S[yi] = []), ro.push({ featureIndex: te, feature: pa, intersectionZ: Tn });
+ }
+ }
+ lookupSymbolFeatures(S, F, W, te, fe, pe, Fe, Ke) {
+ let ct = {};
+ this.loadVTLayers();
+ let Lt = Fc(fe);
+ for (let Jt of S) this.loadMatchingFeature(ct, W, te, Jt, Lt, pe, Fe, Ke, F);
+ return ct;
+ }
+ hasLayer(S) {
+ for (let F of this.bucketLayerIDs) for (let W of F) if (S === W) return true;
+ return false;
+ }
+ getId(S, F) {
+ let W = S.id;
+ return this.promoteId && (W = S.properties[typeof this.promoteId == "string" ? this.promoteId : this.promoteId[F]], typeof W == "boolean" && (W = Number(W))), W;
+ }
+ }
+ function UC(R, S, F, W, te) {
+ return C(R, (fe, pe) => {
+ let Fe = S instanceof Ac ? S.get(pe) : null;
+ return Fe && Fe.evaluate ? Fe.evaluate(F, W, te) : Fe;
+ });
+ }
+ function VC(R) {
+ let S = 1 / 0, F = 1 / 0, W = -1 / 0, te = -1 / 0;
+ for (let fe of R) S = Math.min(S, fe.x), F = Math.min(F, fe.y), W = Math.max(W, fe.x), te = Math.max(te, fe.y);
+ return { minX: S, minY: F, maxX: W, maxY: te };
+ }
+ function rO(R, S) {
+ return S - R;
+ }
+ function GC(R, S, F, W, te) {
+ let fe = [];
+ for (let pe = 0; pe < R.length; pe++) {
+ let Fe = R[pe], Ke;
+ for (let ct = 0; ct < Fe.length - 1; ct++) {
+ let Lt = Fe[ct], Jt = Fe[ct + 1];
+ Lt.x < S && Jt.x < S || (Lt.x < S ? Lt = new u(S, Lt.y + (S - Lt.x) / (Jt.x - Lt.x) * (Jt.y - Lt.y))._round() : Jt.x < S && (Jt = new u(S, Lt.y + (S - Lt.x) / (Jt.x - Lt.x) * (Jt.y - Lt.y))._round()), Lt.y < F && Jt.y < F || (Lt.y < F ? Lt = new u(Lt.x + (F - Lt.y) / (Jt.y - Lt.y) * (Jt.x - Lt.x), F)._round() : Jt.y < F && (Jt = new u(Lt.x + (F - Lt.y) / (Jt.y - Lt.y) * (Jt.x - Lt.x), F)._round()), Lt.x >= W && Jt.x >= W || (Lt.x >= W ? Lt = new u(W, Lt.y + (W - Lt.x) / (Jt.x - Lt.x) * (Jt.y - Lt.y))._round() : Jt.x >= W && (Jt = new u(W, Lt.y + (W - Lt.x) / (Jt.x - Lt.x) * (Jt.y - Lt.y))._round()), Lt.y >= te && Jt.y >= te || (Lt.y >= te ? Lt = new u(Lt.x + (te - Lt.y) / (Jt.y - Lt.y) * (Jt.x - Lt.x), te)._round() : Jt.y >= te && (Jt = new u(Lt.x + (te - Lt.y) / (Jt.y - Lt.y) * (Jt.x - Lt.x), te)._round()), Ke && Lt.equals(Ke[Ke.length - 1]) || (Ke = [Lt], fe.push(Ke)), Ke.push(Jt)))));
+ }
+ }
+ return fe;
+ }
+ Fi("FeatureIndex", my, { omit: ["rawTileData", "sourceLayerCoder"] });
+ class gg extends u {
+ constructor(S, F, W, te) {
+ super(S, F), this.angle = W, te !== void 0 && (this.segment = te);
+ }
+ clone() {
+ return new gg(this.x, this.y, this.angle, this.segment);
+ }
+ }
+ function bS(R, S, F, W, te) {
+ if (S.segment === void 0 || F === 0) return true;
+ let fe = S, pe = S.segment + 1, Fe = 0;
+ for (; Fe > -F / 2; ) {
+ if (pe--, pe < 0) return false;
+ Fe -= R[pe].dist(fe), fe = R[pe];
+ }
+ Fe += R[pe].dist(R[pe + 1]), pe++;
+ let Ke = [], ct = 0;
+ for (; Fe < F / 2; ) {
+ let Lt = R[pe], Jt = R[pe + 1];
+ if (!Jt) return false;
+ let cr = R[pe - 1].angleTo(Lt) - Lt.angleTo(Jt);
+ for (cr = Math.abs((cr + 3 * Math.PI) % (2 * Math.PI) - Math.PI), Ke.push({ distance: Fe, angleDelta: cr }), ct += cr; Fe - Ke[0].distance > W; ) ct -= Ke.shift().angleDelta;
+ if (ct > te) return false;
+ pe++, Fe += Lt.dist(Jt);
+ }
+ return true;
+ }
+ function HC(R) {
+ let S = 0;
+ for (let F = 0; F < R.length - 1; F++) S += R[F].dist(R[F + 1]);
+ return S;
+ }
+ function jC(R, S, F) {
+ return R ? 0.6 * S * F : 0;
+ }
+ function WC(R, S) {
+ return Math.max(R ? R.right - R.left : 0, S ? S.right - S.left : 0);
+ }
+ function iO(R, S, F, W, te, fe) {
+ let pe = jC(F, te, fe), Fe = WC(F, W) * fe, Ke = 0, ct = HC(R) / 2;
+ for (let Lt = 0; Lt < R.length - 1; Lt++) {
+ let Jt = R[Lt], cr = R[Lt + 1], mr = Jt.dist(cr);
+ if (Ke + mr > ct) {
+ let Pr = (ct - Ke) / mr, zr = Lo.number(Jt.x, cr.x, Pr), ui = Lo.number(Jt.y, cr.y, Pr), yi = new gg(zr, ui, cr.angleTo(Jt), Lt);
+ return yi._round(), !pe || bS(R, yi, Fe, pe, S) ? yi : void 0;
+ }
+ Ke += mr;
+ }
+ }
+ function nO(R, S, F, W, te, fe, pe, Fe, Ke) {
+ let ct = jC(W, fe, pe), Lt = WC(W, te), Jt = Lt * pe, cr = R[0].x === 0 || R[0].x === Ke || R[0].y === 0 || R[0].y === Ke;
+ return S - Jt < S / 4 && (S = Jt + S / 4), XC(R, cr ? S / 2 * Fe % S : (Lt / 2 + 2 * fe) * pe * Fe % S, S, ct, F, Jt, cr, false, Ke);
+ }
+ function XC(R, S, F, W, te, fe, pe, Fe, Ke) {
+ let ct = fe / 2, Lt = HC(R), Jt = 0, cr = S - F, mr = [];
+ for (let Pr = 0; Pr < R.length - 1; Pr++) {
+ let zr = R[Pr], ui = R[Pr + 1], yi = zr.dist(ui), vn = ui.angleTo(zr);
+ for (; cr + F < Jt + yi; ) {
+ cr += F;
+ let zi = (cr - Jt) / yi, un = Lo.number(zr.x, ui.x, zi), Tn = Lo.number(zr.y, ui.y, zi);
+ if (un >= 0 && un < Ke && Tn >= 0 && Tn < Ke && cr - ct >= 0 && cr + ct <= Lt) {
+ let pa = new gg(un, Tn, vn, Pr);
+ pa._round(), W && !bS(R, pa, fe, W, te) || mr.push(pa);
+ }
+ }
+ Jt += yi;
+ }
+ return Fe || mr.length || pe || (mr = XC(R, Jt / 2, F, W, te, fe, pe, true, Ke)), mr;
+ }
+ Fi("Anchor", gg);
+ let F1 = Md;
+ function ZC(R, S, F, W) {
+ let te = [], fe = R.image, pe = fe.pixelRatio, Fe = fe.paddedRect.w - 2 * F1, Ke = fe.paddedRect.h - 2 * F1, ct = { x1: R.left, y1: R.top, x2: R.right, y2: R.bottom }, Lt = fe.stretchX || [[0, Fe]], Jt = fe.stretchY || [[0, Ke]], cr = (Xn, Ro) => Xn + Ro[1] - Ro[0], mr = Lt.reduce(cr, 0), Pr = Jt.reduce(cr, 0), zr = Fe - mr, ui = Ke - Pr, yi = 0, vn = mr, zi = 0, un = Pr, Tn = 0, pa = zr, ro = 0, Vo = ui;
+ if (fe.content && W) {
+ let Xn = fe.content, Ro = Xn[2] - Xn[0], uo = Xn[3] - Xn[1];
+ (fe.textFitWidth || fe.textFitHeight) && (ct = PC(R)), yi = mg(Lt, 0, Xn[0]), zi = mg(Jt, 0, Xn[1]), vn = mg(Lt, Xn[0], Xn[2]), un = mg(Jt, Xn[1], Xn[3]), Tn = Xn[0] - yi, ro = Xn[1] - zi, pa = Ro - vn, Vo = uo - un;
+ }
+ let Xa = ct.x1, sa = ct.y1, Mo = ct.x2 - Xa, fo = ct.y2 - sa, lo = (Xn, Ro, uo, $o) => {
+ let Ju = Zw(Xn.stretch - yi, vn, Mo, Xa), qu = z1(Xn.fixed - Tn, pa, Xn.stretch, mr), kh = Zw(Ro.stretch - zi, un, fo, sa), Qv = z1(Ro.fixed - ro, Vo, Ro.stretch, Pr), ud = Zw(uo.stretch - yi, vn, Mo, Xa), Ch = z1(uo.fixed - Tn, pa, uo.stretch, mr), Vd = Zw($o.stretch - zi, un, fo, sa), Gd = z1($o.fixed - ro, Vo, $o.stretch, Pr), Hd = new u(Ju, kh), Af = new u(ud, kh), Lh = new u(ud, Vd), Ed = new u(Ju, Vd), cd = new u(qu / pe, Qv / pe), Yh = new u(Ch / pe, Gd / pe), Df = S * Math.PI / 180;
+ if (Df) {
+ let ru = Math.sin(Df), pc = Math.cos(Df), $u = [pc, -ru, ru, pc];
+ Hd._matMult($u), Af._matMult($u), Ed._matMult($u), Lh._matMult($u);
+ }
+ let Fv = Xn.stretch + Xn.fixed, lv = Ro.stretch + Ro.fixed;
+ return { tl: Hd, tr: Af, bl: Ed, br: Lh, tex: { x: fe.paddedRect.x + F1 + Fv, y: fe.paddedRect.y + F1 + lv, w: uo.stretch + uo.fixed - Fv, h: $o.stretch + $o.fixed - lv }, writingMode: void 0, glyphOffset: [0, 0], sectionIndex: 0, pixelOffsetTL: cd, pixelOffsetBR: Yh, minFontScaleX: pa / pe / Mo, minFontScaleY: Vo / pe / fo, isSDF: F };
+ };
+ if (W && (fe.stretchX || fe.stretchY)) {
+ let Xn = YC(Lt, zr, mr), Ro = YC(Jt, ui, Pr);
+ for (let uo = 0; uo < Xn.length - 1; uo++) {
+ let $o = Xn[uo], Ju = Xn[uo + 1];
+ for (let qu = 0; qu < Ro.length - 1; qu++) te.push(lo($o, Ro[qu], Ju, Ro[qu + 1]));
+ }
+ } else te.push(lo({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: Fe + 1 }, { fixed: 0, stretch: Ke + 1 }));
+ return te;
+ }
+ function mg(R, S, F) {
+ let W = 0;
+ for (let te of R) W += Math.max(S, Math.min(F, te[1])) - Math.max(S, Math.min(F, te[0]));
+ return W;
+ }
+ function YC(R, S, F) {
+ let W = [{ fixed: -1, stretch: 0 }];
+ for (let [te, fe] of R) {
+ let pe = W[W.length - 1];
+ W.push({ fixed: te - pe.stretch, stretch: pe.stretch }), W.push({ fixed: te - pe.stretch, stretch: pe.stretch + (fe - te) });
+ }
+ return W.push({ fixed: S + F1, stretch: F }), W;
+ }
+ function Zw(R, S, F, W) {
+ return R / S * F + W;
+ }
+ function z1(R, S, F, W) {
+ return R - S * F / W;
+ }
+ class dm {
+ constructor(S, F, W, te, fe, pe, Fe, Ke, ct, Lt) {
+ var Jt;
+ if (this.boxStartIndex = S.length, ct) {
+ let cr = pe.top, mr = pe.bottom, Pr = pe.collisionPadding;
+ Pr && (cr -= Pr[1], mr += Pr[3]);
+ let zr = mr - cr;
+ zr > 0 && (zr = Math.max(10, zr), this.circleDiameter = zr);
+ } else {
+ let cr = !((Jt = pe.image) === null || Jt === void 0) && Jt.content && (pe.image.textFitWidth || pe.image.textFitHeight) ? PC(pe) : { x1: pe.left, y1: pe.top, x2: pe.right, y2: pe.bottom };
+ cr.y1 = cr.y1 * Fe - Ke[0], cr.y2 = cr.y2 * Fe + Ke[2], cr.x1 = cr.x1 * Fe - Ke[3], cr.x2 = cr.x2 * Fe + Ke[1];
+ let mr = pe.collisionPadding;
+ if (mr && (cr.x1 -= mr[0] * Fe, cr.y1 -= mr[1] * Fe, cr.x2 += mr[2] * Fe, cr.y2 += mr[3] * Fe), Lt) {
+ let Pr = new u(cr.x1, cr.y1), zr = new u(cr.x2, cr.y1), ui = new u(cr.x1, cr.y2), yi = new u(cr.x2, cr.y2), vn = Lt * Math.PI / 180;
+ Pr._rotate(vn), zr._rotate(vn), ui._rotate(vn), yi._rotate(vn), cr.x1 = Math.min(Pr.x, zr.x, ui.x, yi.x), cr.x2 = Math.max(Pr.x, zr.x, ui.x, yi.x), cr.y1 = Math.min(Pr.y, zr.y, ui.y, yi.y), cr.y2 = Math.max(Pr.y, zr.y, ui.y, yi.y);
+ }
+ S.emplaceBack(F.x, F.y, cr.x1, cr.y1, cr.x2, cr.y2, W, te, fe);
+ }
+ this.boxEndIndex = S.length;
+ }
+ }
+ class Vp {
+ constructor(S = [], F = (W, te) => W < te ? -1 : W > te ? 1 : 0) {
+ if (this.data = S, this.length = this.data.length, this.compare = F, this.length > 0) for (let W = (this.length >> 1) - 1; W >= 0; W--) this._down(W);
+ }
+ push(S) {
+ this.data.push(S), this._up(this.length++);
+ }
+ pop() {
+ if (this.length === 0) return;
+ let S = this.data[0], F = this.data.pop();
+ return --this.length > 0 && (this.data[0] = F, this._down(0)), S;
+ }
+ peek() {
+ return this.data[0];
+ }
+ _up(S) {
+ let { data: F, compare: W } = this, te = F[S];
+ for (; S > 0; ) {
+ let fe = S - 1 >> 1, pe = F[fe];
+ if (W(te, pe) >= 0) break;
+ F[S] = pe, S = fe;
+ }
+ F[S] = te;
+ }
+ _down(S) {
+ let { data: F, compare: W } = this, te = this.length >> 1, fe = F[S];
+ for (; S < te; ) {
+ let pe = 1 + (S << 1), Fe = pe + 1;
+ if (Fe < this.length && W(F[Fe], F[pe]) < 0 && (pe = Fe), W(F[pe], fe) >= 0) break;
+ F[S] = F[pe], S = pe;
+ }
+ F[S] = fe;
+ }
+ }
+ function aO(R, S = 1, F = false) {
+ let W = 1 / 0, te = 1 / 0, fe = -1 / 0, pe = -1 / 0, Fe = R[0];
+ for (let mr = 0; mr < Fe.length; mr++) {
+ let Pr = Fe[mr];
+ (!mr || Pr.x < W) && (W = Pr.x), (!mr || Pr.y < te) && (te = Pr.y), (!mr || Pr.x > fe) && (fe = Pr.x), (!mr || Pr.y > pe) && (pe = Pr.y);
+ }
+ let Ke = Math.min(fe - W, pe - te), ct = Ke / 2, Lt = new Vp([], oO);
+ if (Ke === 0) return new u(W, te);
+ for (let mr = W; mr < fe; mr += Ke) for (let Pr = te; Pr < pe; Pr += Ke) Lt.push(new O1(mr + ct, Pr + ct, ct, R));
+ let Jt = function(mr) {
+ let Pr = 0, zr = 0, ui = 0, yi = mr[0];
+ for (let vn = 0, zi = yi.length, un = zi - 1; vn < zi; un = vn++) {
+ let Tn = yi[vn], pa = yi[un], ro = Tn.x * pa.y - pa.x * Tn.y;
+ zr += (Tn.x + pa.x) * ro, ui += (Tn.y + pa.y) * ro, Pr += 3 * ro;
+ }
+ return new O1(zr / Pr, ui / Pr, 0, mr);
+ }(R), cr = Lt.length;
+ for (; Lt.length; ) {
+ let mr = Lt.pop();
+ (mr.d > Jt.d || !Jt.d) && (Jt = mr, F && console.log("found best %d after %d probes", Math.round(1e4 * mr.d) / 1e4, cr)), mr.max - Jt.d <= S || (ct = mr.h / 2, Lt.push(new O1(mr.p.x - ct, mr.p.y - ct, ct, R)), Lt.push(new O1(mr.p.x + ct, mr.p.y - ct, ct, R)), Lt.push(new O1(mr.p.x - ct, mr.p.y + ct, ct, R)), Lt.push(new O1(mr.p.x + ct, mr.p.y + ct, ct, R)), cr += 4);
+ }
+ return F && (console.log(`num probes: ${cr}`), console.log(`best distance: ${Jt.d}`)), Jt.p;
+ }
+ function oO(R, S) {
+ return S.max - R.max;
+ }
+ function O1(R, S, F, W) {
+ this.p = new u(R, S), this.h = F, this.d = function(te, fe) {
+ let pe = false, Fe = 1 / 0;
+ for (let Ke = 0; Ke < fe.length; Ke++) {
+ let ct = fe[Ke];
+ for (let Lt = 0, Jt = ct.length, cr = Jt - 1; Lt < Jt; cr = Lt++) {
+ let mr = ct[Lt], Pr = ct[cr];
+ mr.y > te.y != Pr.y > te.y && te.x < (Pr.x - mr.x) * (te.y - mr.y) / (Pr.y - mr.y) + mr.x && (pe = !pe), Fe = Math.min(Fe, Gr(te, mr, Pr));
+ }
+ }
+ return (pe ? 1 : -1) * Math.sqrt(Fe);
+ }(this.p, W), this.max = this.d + this.h * Math.SQRT2;
+ }
+ var ld;
+ i.aq = void 0, (ld = i.aq || (i.aq = {}))[ld.center = 1] = "center", ld[ld.left = 2] = "left", ld[ld.right = 3] = "right", ld[ld.top = 4] = "top", ld[ld.bottom = 5] = "bottom", ld[ld["top-left"] = 6] = "top-left", ld[ld["top-right"] = 7] = "top-right", ld[ld["bottom-left"] = 8] = "bottom-left", ld[ld["bottom-right"] = 9] = "bottom-right";
+ let vm = 7, yy = Number.POSITIVE_INFINITY;
+ function wS(R, S) {
+ return S[1] !== yy ? function(F, W, te) {
+ let fe = 0, pe = 0;
+ switch (W = Math.abs(W), te = Math.abs(te), F) {
+ case "top-right":
+ case "top-left":
+ case "top":
+ pe = te - vm;
+ break;
+ case "bottom-right":
+ case "bottom-left":
+ case "bottom":
+ pe = -te + vm;
+ }
+ switch (F) {
+ case "top-right":
+ case "bottom-right":
+ case "right":
+ fe = -W;
+ break;
+ case "top-left":
+ case "bottom-left":
+ case "left":
+ fe = W;
+ }
+ return [fe, pe];
+ }(R, S[0], S[1]) : function(F, W) {
+ let te = 0, fe = 0;
+ W < 0 && (W = 0);
+ let pe = W / Math.SQRT2;
+ switch (F) {
+ case "top-right":
+ case "top-left":
+ fe = pe - vm;
+ break;
+ case "bottom-right":
+ case "bottom-left":
+ fe = -pe + vm;
+ break;
+ case "bottom":
+ fe = -W + vm;
+ break;
+ case "top":
+ fe = W - vm;
+ }
+ switch (F) {
+ case "top-right":
+ case "bottom-right":
+ te = -pe;
+ break;
+ case "top-left":
+ case "bottom-left":
+ te = pe;
+ break;
+ case "left":
+ te = W;
+ break;
+ case "right":
+ te = -W;
+ }
+ return [te, fe];
+ }(R, S[0]);
+ }
+ function KC(R, S, F) {
+ var W;
+ let te = R.layout, fe = (W = te.get("text-variable-anchor-offset")) === null || W === void 0 ? void 0 : W.evaluate(S, {}, F);
+ if (fe) {
+ let Fe = fe.values, Ke = [];
+ for (let ct = 0; ct < Fe.length; ct += 2) {
+ let Lt = Ke[ct] = Fe[ct], Jt = Fe[ct + 1].map((cr) => cr * tu);
+ Lt.startsWith("top") ? Jt[1] -= vm : Lt.startsWith("bottom") && (Jt[1] += vm), Ke[ct + 1] = Jt;
+ }
+ return new $i(Ke);
+ }
+ let pe = te.get("text-variable-anchor");
+ if (pe) {
+ let Fe;
+ Fe = R._unevaluatedLayout.getValue("text-radial-offset") !== void 0 ? [te.get("text-radial-offset").evaluate(S, {}, F) * tu, yy] : te.get("text-offset").evaluate(S, {}, F).map((ct) => ct * tu);
+ let Ke = [];
+ for (let ct of pe) Ke.push(ct, wS(ct, Fe));
+ return new $i(Ke);
+ }
+ return null;
+ }
+ function TS(R) {
+ switch (R) {
+ case "right":
+ case "top-right":
+ case "bottom-right":
+ return "right";
+ case "left":
+ case "top-left":
+ case "bottom-left":
+ return "left";
+ }
+ return "center";
+ }
+ function sO(R, S, F, W, te, fe, pe, Fe, Ke, ct, Lt) {
+ let Jt = fe.textMaxSize.evaluate(S, {});
+ Jt === void 0 && (Jt = pe);
+ let cr = R.layers[0].layout, mr = cr.get("icon-offset").evaluate(S, {}, Lt), Pr = $C(F.horizontal), zr = pe / 24, ui = R.tilePixelRatio * zr, yi = R.tilePixelRatio * Jt / 24, vn = R.tilePixelRatio * Fe, zi = R.tilePixelRatio * cr.get("symbol-spacing"), un = cr.get("text-padding") * R.tilePixelRatio, Tn = function(Xn, Ro, uo, $o = 1) {
+ let Ju = Xn.get("icon-padding").evaluate(Ro, {}, uo), qu = Ju && Ju.values;
+ return [qu[0] * $o, qu[1] * $o, qu[2] * $o, qu[3] * $o];
+ }(cr, S, Lt, R.tilePixelRatio), pa = cr.get("text-max-angle") / 180 * Math.PI, ro = cr.get("text-rotation-alignment") !== "viewport" && cr.get("symbol-placement") !== "point", Vo = cr.get("icon-rotation-alignment") === "map" && cr.get("symbol-placement") !== "point", Xa = cr.get("symbol-placement"), sa = zi / 2, Mo = cr.get("icon-text-fit"), fo;
+ W && Mo !== "none" && (R.allowVerticalPlacement && F.vertical && (fo = IC(W, F.vertical, Mo, cr.get("icon-text-fit-padding"), mr, zr)), Pr && (W = IC(W, Pr, Mo, cr.get("icon-text-fit-padding"), mr, zr)));
+ let lo = (Xn, Ro) => {
+ Ro.x < 0 || Ro.x >= ja || Ro.y < 0 || Ro.y >= ja || function(uo, $o, Ju, qu, kh, Qv, ud, Ch, Vd, Gd, Hd, Af, Lh, Ed, cd, Yh, Df, Fv, lv, ru, pc, $u, zv, ff, q1) {
+ let p0 = uo.addToLineVertexArray($o, Ju), Gp, ep, Gc, Yf, tp = 0, yg = 0, uv = 0, B1 = 0, kS = -1, $w = -1, g0 = {}, _y = bi("");
+ if (uo.allowVerticalPlacement && qu.vertical) {
+ let kd = Ch.layout.get("text-rotate").evaluate(pc, {}, ff) + 90;
+ Gc = new dm(Vd, $o, Gd, Hd, Af, qu.vertical, Lh, Ed, cd, kd), ud && (Yf = new dm(Vd, $o, Gd, Hd, Af, ud, Df, Fv, cd, kd));
+ }
+ if (kh) {
+ let kd = Ch.layout.get("icon-rotate").evaluate(pc, {}), rp = Ch.layout.get("icon-text-fit") !== "none", pm = ZC(kh, kd, zv, rp), jd = ud ? ZC(ud, kd, zv, rp) : void 0;
+ ep = new dm(Vd, $o, Gd, Hd, Af, kh, Df, Fv, false, kd), tp = 4 * pm.length;
+ let Cd = uo.iconSizeData, xp = null;
+ Cd.kind === "source" ? (xp = [v0 * Ch.layout.get("icon-size").evaluate(pc, {})], xp[0] > fm && A(`${uo.layerIds[0]}: Value for "icon-size" is >= ${tb}. Reduce your "icon-size".`)) : Cd.kind === "composite" && (xp = [v0 * $u.compositeIconSizes[0].evaluate(pc, {}, ff), v0 * $u.compositeIconSizes[1].evaluate(pc, {}, ff)], (xp[0] > fm || xp[1] > fm) && A(`${uo.layerIds[0]}: Value for "icon-size" is >= ${tb}. Reduce your "icon-size".`)), uo.addSymbols(uo.icon, pm, xp, ru, lv, pc, i.ah.none, $o, p0.lineStartIndex, p0.lineLength, -1, ff), kS = uo.icon.placedSymbolArray.length - 1, jd && (yg = 4 * jd.length, uo.addSymbols(uo.icon, jd, xp, ru, lv, pc, i.ah.vertical, $o, p0.lineStartIndex, p0.lineLength, -1, ff), $w = uo.icon.placedSymbolArray.length - 1);
+ }
+ let Kh = Object.keys(qu.horizontal);
+ for (let kd of Kh) {
+ let rp = qu.horizontal[kd];
+ if (!Gp) {
+ _y = bi(rp.text);
+ let jd = Ch.layout.get("text-rotate").evaluate(pc, {}, ff);
+ Gp = new dm(Vd, $o, Gd, Hd, Af, rp, Lh, Ed, cd, jd);
+ }
+ let pm = rp.positionedLines.length === 1;
+ if (uv += JC(uo, $o, rp, Qv, Ch, cd, pc, Yh, p0, qu.vertical ? i.ah.horizontal : i.ah.horizontalOnly, pm ? Kh : [kd], g0, kS, $u, ff), pm) break;
+ }
+ qu.vertical && (B1 += JC(uo, $o, qu.vertical, Qv, Ch, cd, pc, Yh, p0, i.ah.vertical, ["vertical"], g0, $w, $u, ff));
+ let cO = Gp ? Gp.boxStartIndex : uo.collisionBoxArray.length, Qw = Gp ? Gp.boxEndIndex : uo.collisionBoxArray.length, m0 = Gc ? Gc.boxStartIndex : uo.collisionBoxArray.length, cv = Gc ? Gc.boxEndIndex : uo.collisionBoxArray.length, r6 = ep ? ep.boxStartIndex : uo.collisionBoxArray.length, fO = ep ? ep.boxEndIndex : uo.collisionBoxArray.length, i6 = Yf ? Yf.boxStartIndex : uo.collisionBoxArray.length, hO = Yf ? Yf.boxEndIndex : uo.collisionBoxArray.length, _p = -1, fb = (kd, rp) => kd && kd.circleDiameter ? Math.max(kd.circleDiameter, rp) : rp;
+ _p = fb(Gp, _p), _p = fb(Gc, _p), _p = fb(ep, _p), _p = fb(Yf, _p);
+ let e3 = _p > -1 ? 1 : 0;
+ e3 && (_p *= q1 / tu), uo.glyphOffsetArray.length >= R1.MAX_GLYPHS && A("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"), pc.sortKey !== void 0 && uo.addToSortKeyRanges(uo.symbolInstances.length, pc.sortKey);
+ let CS = KC(Ch, pc, ff), [dO, vO] = function(kd, rp) {
+ let pm = kd.length, jd = rp == null ? void 0 : rp.values;
+ if ((jd == null ? void 0 : jd.length) > 0) for (let Cd = 0; Cd < jd.length; Cd += 2) {
+ let xp = jd[Cd + 1];
+ kd.emplaceBack(i.aq[jd[Cd]], xp[0], xp[1]);
+ }
+ return [pm, kd.length];
+ }(uo.textAnchorOffsets, CS);
+ uo.symbolInstances.emplaceBack($o.x, $o.y, g0.right >= 0 ? g0.right : -1, g0.center >= 0 ? g0.center : -1, g0.left >= 0 ? g0.left : -1, g0.vertical || -1, kS, $w, _y, cO, Qw, m0, cv, r6, fO, i6, hO, Gd, uv, B1, tp, yg, e3, 0, Lh, _p, dO, vO);
+ }(R, Ro, Xn, F, W, te, fo, R.layers[0], R.collisionBoxArray, S.index, S.sourceLayerIndex, R.index, ui, [un, un, un, un], ro, Ke, vn, Tn, Vo, mr, S, fe, ct, Lt, pe);
+ };
+ if (Xa === "line") for (let Xn of GC(S.geometry, 0, 0, ja, ja)) {
+ let Ro = nO(Xn, zi, pa, F.vertical || Pr, W, 24, yi, R.overscaling, ja);
+ for (let uo of Ro) Pr && lO(R, Pr.text, sa, uo) || lo(Xn, uo);
+ }
+ else if (Xa === "line-center") {
+ for (let Xn of S.geometry) if (Xn.length > 1) {
+ let Ro = iO(Xn, pa, F.vertical || Pr, W, 24, yi);
+ Ro && lo(Xn, Ro);
+ }
+ } else if (S.type === "Polygon") for (let Xn of Cf(S.geometry, 0)) {
+ let Ro = aO(Xn, 16);
+ lo(Xn[0], new gg(Ro.x, Ro.y, 0));
+ }
+ else if (S.type === "LineString") for (let Xn of S.geometry) lo(Xn, new gg(Xn[0].x, Xn[0].y, 0));
+ else if (S.type === "Point") for (let Xn of S.geometry) for (let Ro of Xn) lo([Ro], new gg(Ro.x, Ro.y, 0));
+ }
+ function JC(R, S, F, W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr) {
+ let zr = function(vn, zi, un, Tn, pa, ro, Vo, Xa) {
+ let sa = Tn.layout.get("text-rotate").evaluate(ro, {}) * Math.PI / 180, Mo = [];
+ for (let fo of zi.positionedLines) for (let lo of fo.positionedGlyphs) {
+ if (!lo.rect) continue;
+ let Xn = lo.rect || {}, Ro = EC + 1, uo = true, $o = 1, Ju = 0, qu = (pa || Xa) && lo.vertical, kh = lo.metrics.advance * lo.scale / 2;
+ if (Xa && zi.verticalizable && (Ju = fo.lineOffset / 2 - (lo.imageName ? -(tu - lo.metrics.width * lo.scale) / 2 : (lo.scale - 1) * tu)), lo.imageName) {
+ let ru = Vo[lo.imageName];
+ uo = ru.sdf, $o = ru.pixelRatio, Ro = Md / $o;
+ }
+ let Qv = pa ? [lo.x + kh, lo.y] : [0, 0], ud = pa ? [0, 0] : [lo.x + kh + un[0], lo.y + un[1] - Ju], Ch = [0, 0];
+ qu && (Ch = ud, ud = [0, 0]);
+ let Vd = lo.metrics.isDoubleResolution ? 2 : 1, Gd = (lo.metrics.left - Ro) * lo.scale - kh + ud[0], Hd = (-lo.metrics.top - Ro) * lo.scale + ud[1], Af = Gd + Xn.w / Vd * lo.scale / $o, Lh = Hd + Xn.h / Vd * lo.scale / $o, Ed = new u(Gd, Hd), cd = new u(Af, Hd), Yh = new u(Gd, Lh), Df = new u(Af, Lh);
+ if (qu) {
+ let ru = new u(-kh, kh - Eh), pc = -Math.PI / 2, $u = tu / 2 - kh, zv = new u(5 - Eh - $u, -(lo.imageName ? $u : 0)), ff = new u(...Ch);
+ Ed._rotateAround(pc, ru)._add(zv)._add(ff), cd._rotateAround(pc, ru)._add(zv)._add(ff), Yh._rotateAround(pc, ru)._add(zv)._add(ff), Df._rotateAround(pc, ru)._add(zv)._add(ff);
+ }
+ if (sa) {
+ let ru = Math.sin(sa), pc = Math.cos(sa), $u = [pc, -ru, ru, pc];
+ Ed._matMult($u), cd._matMult($u), Yh._matMult($u), Df._matMult($u);
+ }
+ let Fv = new u(0, 0), lv = new u(0, 0);
+ Mo.push({ tl: Ed, tr: cd, bl: Yh, br: Df, tex: Xn, writingMode: zi.writingMode, glyphOffset: Qv, sectionIndex: lo.sectionIndex, isSDF: uo, pixelOffsetTL: Fv, pixelOffsetBR: lv, minFontScaleX: 0, minFontScaleY: 0 });
+ }
+ return Mo;
+ }(0, F, Fe, te, fe, pe, W, R.allowVerticalPlacement), ui = R.textSizeData, yi = null;
+ ui.kind === "source" ? (yi = [v0 * te.layout.get("text-size").evaluate(pe, {})], yi[0] > fm && A(`${R.layerIds[0]}: Value for "text-size" is >= ${tb}. Reduce your "text-size".`)) : ui.kind === "composite" && (yi = [v0 * mr.compositeTextSizes[0].evaluate(pe, {}, Pr), v0 * mr.compositeTextSizes[1].evaluate(pe, {}, Pr)], (yi[0] > fm || yi[1] > fm) && A(`${R.layerIds[0]}: Value for "text-size" is >= ${tb}. Reduce your "text-size".`)), R.addSymbols(R.text, zr, yi, Fe, fe, pe, ct, S, Ke.lineStartIndex, Ke.lineLength, cr, Pr);
+ for (let vn of Lt) Jt[vn] = R.text.placedSymbolArray.length - 1;
+ return 4 * zr.length;
+ }
+ function $C(R) {
+ for (let S in R) return R[S];
+ return null;
+ }
+ function lO(R, S, F, W) {
+ let te = R.compareText;
+ if (S in te) {
+ let fe = te[S];
+ for (let pe = fe.length - 1; pe >= 0; pe--) if (W.dist(fe[pe]) < F) return true;
+ } else te[S] = [];
+ return te[S].push(W), false;
+ }
+ let QC = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];
+ class AS {
+ static from(S) {
+ if (!(S instanceof ArrayBuffer)) throw new Error("Data must be an instance of ArrayBuffer.");
+ let [F, W] = new Uint8Array(S, 0, 2);
+ if (F !== 219) throw new Error("Data does not appear to be in a KDBush format.");
+ let te = W >> 4;
+ if (te !== 1) throw new Error(`Got v${te} data when expected v1.`);
+ let fe = QC[15 & W];
+ if (!fe) throw new Error("Unrecognized array type.");
+ let [pe] = new Uint16Array(S, 2, 1), [Fe] = new Uint32Array(S, 4, 1);
+ return new AS(Fe, pe, fe, S);
+ }
+ constructor(S, F = 64, W = Float64Array, te) {
+ if (isNaN(S) || S < 0) throw new Error(`Unpexpected numItems value: ${S}.`);
+ this.numItems = +S, this.nodeSize = Math.min(Math.max(+F, 2), 65535), this.ArrayType = W, this.IndexArrayType = S < 65536 ? Uint16Array : Uint32Array;
+ let fe = QC.indexOf(this.ArrayType), pe = 2 * S * this.ArrayType.BYTES_PER_ELEMENT, Fe = S * this.IndexArrayType.BYTES_PER_ELEMENT, Ke = (8 - Fe % 8) % 8;
+ if (fe < 0) throw new Error(`Unexpected typed array class: ${W}.`);
+ te && te instanceof ArrayBuffer ? (this.data = te, this.ids = new this.IndexArrayType(this.data, 8, S), this.coords = new this.ArrayType(this.data, 8 + Fe + Ke, 2 * S), this._pos = 2 * S, this._finished = true) : (this.data = new ArrayBuffer(8 + pe + Fe + Ke), this.ids = new this.IndexArrayType(this.data, 8, S), this.coords = new this.ArrayType(this.data, 8 + Fe + Ke, 2 * S), this._pos = 0, this._finished = false, new Uint8Array(this.data, 0, 2).set([219, 16 + fe]), new Uint16Array(this.data, 2, 1)[0] = F, new Uint32Array(this.data, 4, 1)[0] = S);
+ }
+ add(S, F) {
+ let W = this._pos >> 1;
+ return this.ids[W] = W, this.coords[this._pos++] = S, this.coords[this._pos++] = F, W;
+ }
+ finish() {
+ let S = this._pos >> 1;
+ if (S !== this.numItems) throw new Error(`Added ${S} items when expected ${this.numItems}.`);
+ return Yw(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = true, this;
+ }
+ range(S, F, W, te) {
+ if (!this._finished) throw new Error("Data not yet indexed - call index.finish().");
+ let { ids: fe, coords: pe, nodeSize: Fe } = this, Ke = [0, fe.length - 1, 0], ct = [];
+ for (; Ke.length; ) {
+ let Lt = Ke.pop() || 0, Jt = Ke.pop() || 0, cr = Ke.pop() || 0;
+ if (Jt - cr <= Fe) {
+ for (let ui = cr; ui <= Jt; ui++) {
+ let yi = pe[2 * ui], vn = pe[2 * ui + 1];
+ yi >= S && yi <= W && vn >= F && vn <= te && ct.push(fe[ui]);
+ }
+ continue;
+ }
+ let mr = cr + Jt >> 1, Pr = pe[2 * mr], zr = pe[2 * mr + 1];
+ Pr >= S && Pr <= W && zr >= F && zr <= te && ct.push(fe[mr]), (Lt === 0 ? S <= Pr : F <= zr) && (Ke.push(cr), Ke.push(mr - 1), Ke.push(1 - Lt)), (Lt === 0 ? W >= Pr : te >= zr) && (Ke.push(mr + 1), Ke.push(Jt), Ke.push(1 - Lt));
+ }
+ return ct;
+ }
+ within(S, F, W) {
+ if (!this._finished) throw new Error("Data not yet indexed - call index.finish().");
+ let { ids: te, coords: fe, nodeSize: pe } = this, Fe = [0, te.length - 1, 0], Ke = [], ct = W * W;
+ for (; Fe.length; ) {
+ let Lt = Fe.pop() || 0, Jt = Fe.pop() || 0, cr = Fe.pop() || 0;
+ if (Jt - cr <= pe) {
+ for (let ui = cr; ui <= Jt; ui++) t6(fe[2 * ui], fe[2 * ui + 1], S, F) <= ct && Ke.push(te[ui]);
+ continue;
+ }
+ let mr = cr + Jt >> 1, Pr = fe[2 * mr], zr = fe[2 * mr + 1];
+ t6(Pr, zr, S, F) <= ct && Ke.push(te[mr]), (Lt === 0 ? S - W <= Pr : F - W <= zr) && (Fe.push(cr), Fe.push(mr - 1), Fe.push(1 - Lt)), (Lt === 0 ? S + W >= Pr : F + W >= zr) && (Fe.push(mr + 1), Fe.push(Jt), Fe.push(1 - Lt));
+ }
+ return Ke;
+ }
+ }
+ function Yw(R, S, F, W, te, fe) {
+ if (te - W <= F) return;
+ let pe = W + te >> 1;
+ e6(R, S, pe, W, te, fe), Yw(R, S, F, W, pe - 1, 1 - fe), Yw(R, S, F, pe + 1, te, 1 - fe);
+ }
+ function e6(R, S, F, W, te, fe) {
+ for (; te > W; ) {
+ if (te - W > 600) {
+ let ct = te - W + 1, Lt = F - W + 1, Jt = Math.log(ct), cr = 0.5 * Math.exp(2 * Jt / 3), mr = 0.5 * Math.sqrt(Jt * cr * (ct - cr) / ct) * (Lt - ct / 2 < 0 ? -1 : 1);
+ e6(R, S, F, Math.max(W, Math.floor(F - Lt * cr / ct + mr)), Math.min(te, Math.floor(F + (ct - Lt) * cr / ct + mr)), fe);
+ }
+ let pe = S[2 * F + fe], Fe = W, Ke = te;
+ for (ub(R, S, W, F), S[2 * te + fe] > pe && ub(R, S, W, te); Fe < Ke; ) {
+ for (ub(R, S, Fe, Ke), Fe++, Ke--; S[2 * Fe + fe] < pe; ) Fe++;
+ for (; S[2 * Ke + fe] > pe; ) Ke--;
+ }
+ S[2 * W + fe] === pe ? ub(R, S, W, Ke) : (Ke++, ub(R, S, Ke, te)), Ke <= F && (W = Ke + 1), F <= Ke && (te = Ke - 1);
+ }
+ }
+ function ub(R, S, F, W) {
+ SS(R, F, W), SS(S, 2 * F, 2 * W), SS(S, 2 * F + 1, 2 * W + 1);
+ }
+ function SS(R, S, F) {
+ let W = R[S];
+ R[S] = R[F], R[F] = W;
+ }
+ function t6(R, S, F, W) {
+ let te = R - F, fe = S - W;
+ return te * te + fe * fe;
+ }
+ var Kw;
+ i.bg = void 0, (Kw = i.bg || (i.bg = {})).create = "create", Kw.load = "load", Kw.fullLoad = "fullLoad";
+ let cb = null, sh = [], MS = 1e3 / 60, ES = "loadTime", Jw = "fullLoadTime", uO = { mark(R) {
+ performance.mark(R);
+ }, frame(R) {
+ let S = R;
+ cb != null && sh.push(S - cb), cb = S;
+ }, clearMetrics() {
+ cb = null, sh = [], performance.clearMeasures(ES), performance.clearMeasures(Jw);
+ for (let R in i.bg) performance.clearMarks(i.bg[R]);
+ }, getPerformanceMetrics() {
+ performance.measure(ES, i.bg.create, i.bg.load), performance.measure(Jw, i.bg.create, i.bg.fullLoad);
+ let R = performance.getEntriesByName(ES)[0].duration, S = performance.getEntriesByName(Jw)[0].duration, F = sh.length, W = 1 / (sh.reduce((fe, pe) => fe + pe, 0) / F / 1e3), te = sh.filter((fe) => fe > MS).reduce((fe, pe) => fe + (pe - MS) / MS, 0);
+ return { loadTime: R, fullLoadTime: S, fps: W, percentDroppedFrames: te / (F + te) * 100, totalFrames: F };
+ } };
+ i.$ = class extends Yt {
+ }, i.A = xi, i.B = dn, i.C = function(R) {
+ if (U == null) {
+ let S = R.navigator ? R.navigator.userAgent : null;
+ U = !!R.safari || !(!S || !(/\b(iPad|iPhone|iPod)\b/.test(S) || S.match("Safari") && !S.match("Chrome")));
+ }
+ return U;
+ }, i.D = Ua, i.E = De, i.F = class {
+ constructor(R, S) {
+ this.target = R, this.mapId = S, this.resolveRejects = {}, this.tasks = {}, this.taskQueue = [], this.abortControllers = {}, this.messageHandlers = {}, this.invoker = new mS(() => this.process()), this.subscription = function(F, W, te, fe) {
+ return F.addEventListener(W, te, false), { unsubscribe: () => {
+ F.removeEventListener(W, te, false);
+ } };
+ }(this.target, "message", (F) => this.receive(F)), this.globalScope = O(self) ? R : window;
+ }
+ registerMessageHandler(R, S) {
+ this.messageHandlers[R] = S;
+ }
+ sendAsync(R, S) {
+ return new Promise((F, W) => {
+ let te = Math.round(1e18 * Math.random()).toString(36).substring(0, 10);
+ this.resolveRejects[te] = { resolve: F, reject: W }, S && S.signal.addEventListener("abort", () => {
+ delete this.resolveRejects[te];
+ let Fe = { id: te, type: "", origin: location.origin, targetMapId: R.targetMapId, sourceMapId: this.mapId };
+ this.target.postMessage(Fe);
+ }, { once: true });
+ let fe = [], pe = Object.assign(Object.assign({}, R), { id: te, sourceMapId: this.mapId, origin: location.origin, data: La(R.data, fe) });
+ this.target.postMessage(pe, { transfer: fe });
+ });
+ }
+ receive(R) {
+ let S = R.data, F = S.id;
+ if (!(S.origin !== "file://" && location.origin !== "file://" && S.origin !== "resource://android" && location.origin !== "resource://android" && S.origin !== location.origin || S.targetMapId && this.mapId !== S.targetMapId)) {
+ if (S.type === "") {
+ delete this.tasks[F];
+ let W = this.abortControllers[F];
+ return delete this.abortControllers[F], void (W && W.abort());
+ }
+ if (O(self) || S.mustQueue) return this.tasks[F] = S, this.taskQueue.push(F), void this.invoker.trigger();
+ this.processTask(F, S);
+ }
+ }
+ process() {
+ if (this.taskQueue.length === 0) return;
+ let R = this.taskQueue.shift(), S = this.tasks[R];
+ delete this.tasks[R], this.taskQueue.length > 0 && this.invoker.trigger(), S && this.processTask(R, S);
+ }
+ processTask(R, S) {
+ return a(this, void 0, void 0, function* () {
+ if (S.type === "") {
+ let te = this.resolveRejects[R];
+ return delete this.resolveRejects[R], te ? void (S.error ? te.reject(Na(S.error)) : te.resolve(Na(S.data))) : void 0;
+ }
+ if (!this.messageHandlers[S.type]) return void this.completeTask(R, new Error(`Could not find a registered handler for ${S.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));
+ let F = Na(S.data), W = new AbortController();
+ this.abortControllers[R] = W;
+ try {
+ let te = yield this.messageHandlers[S.type](S.sourceMapId, F, W);
+ this.completeTask(R, null, te);
+ } catch (te) {
+ this.completeTask(R, te);
+ }
+ });
+ }
+ completeTask(R, S, F) {
+ let W = [];
+ delete this.abortControllers[R];
+ let te = { id: R, type: "", sourceMapId: this.mapId, origin: location.origin, error: S ? La(S) : null, data: La(F, W) };
+ this.target.postMessage(te, { transfer: W });
+ }
+ remove() {
+ this.invoker.remove(), this.subscription.unsubscribe();
+ }
+ }, i.G = Le, i.H = function() {
+ var R = new xi(16);
+ return xi != Float32Array && (R[1] = 0, R[2] = 0, R[3] = 0, R[4] = 0, R[6] = 0, R[7] = 0, R[8] = 0, R[9] = 0, R[11] = 0, R[12] = 0, R[13] = 0, R[14] = 0), R[0] = 1, R[5] = 1, R[10] = 1, R[15] = 1, R;
+ }, i.I = Bw, i.J = function(R, S, F) {
+ var W, te, fe, pe, Fe, Ke, ct, Lt, Jt, cr, mr, Pr, zr = F[0], ui = F[1], yi = F[2];
+ return S === R ? (R[12] = S[0] * zr + S[4] * ui + S[8] * yi + S[12], R[13] = S[1] * zr + S[5] * ui + S[9] * yi + S[13], R[14] = S[2] * zr + S[6] * ui + S[10] * yi + S[14], R[15] = S[3] * zr + S[7] * ui + S[11] * yi + S[15]) : (te = S[1], fe = S[2], pe = S[3], Fe = S[4], Ke = S[5], ct = S[6], Lt = S[7], Jt = S[8], cr = S[9], mr = S[10], Pr = S[11], R[0] = W = S[0], R[1] = te, R[2] = fe, R[3] = pe, R[4] = Fe, R[5] = Ke, R[6] = ct, R[7] = Lt, R[8] = Jt, R[9] = cr, R[10] = mr, R[11] = Pr, R[12] = W * zr + Fe * ui + Jt * yi + S[12], R[13] = te * zr + Ke * ui + cr * yi + S[13], R[14] = fe * zr + ct * ui + mr * yi + S[14], R[15] = pe * zr + Lt * ui + Pr * yi + S[15]), R;
+ }, i.K = function(R, S, F) {
+ var W = F[0], te = F[1], fe = F[2];
+ return R[0] = S[0] * W, R[1] = S[1] * W, R[2] = S[2] * W, R[3] = S[3] * W, R[4] = S[4] * te, R[5] = S[5] * te, R[6] = S[6] * te, R[7] = S[7] * te, R[8] = S[8] * fe, R[9] = S[9] * fe, R[10] = S[10] * fe, R[11] = S[11] * fe, R[12] = S[12], R[13] = S[13], R[14] = S[14], R[15] = S[15], R;
+ }, i.L = ci, i.M = function(R, S) {
+ let F = {};
+ for (let W = 0; W < S.length; W++) {
+ let te = S[W];
+ te in R && (F[te] = R[te]);
+ }
+ return F;
+ }, i.N = pg, i.O = Ww, i.P = u, i.Q = OC, i.R = Ki, i.S = $v, i.T = Yu, i.U = _, i.V = b, i.W = j, i.X = ja, i.Y = Oe, i.Z = sb, i._ = a, i.a = _e, i.a$ = function(R, S) {
+ var F = R[0], W = R[1], te = R[2], fe = R[3], pe = R[4], Fe = R[5], Ke = R[6], ct = R[7], Lt = R[8], Jt = R[9], cr = R[10], mr = R[11], Pr = R[12], zr = R[13], ui = R[14], yi = R[15], vn = S[0], zi = S[1], un = S[2], Tn = S[3], pa = S[4], ro = S[5], Vo = S[6], Xa = S[7], sa = S[8], Mo = S[9], fo = S[10], lo = S[11], Xn = S[12], Ro = S[13], uo = S[14], $o = S[15];
+ return Math.abs(F - vn) <= Yr * Math.max(1, Math.abs(F), Math.abs(vn)) && Math.abs(W - zi) <= Yr * Math.max(1, Math.abs(W), Math.abs(zi)) && Math.abs(te - un) <= Yr * Math.max(1, Math.abs(te), Math.abs(un)) && Math.abs(fe - Tn) <= Yr * Math.max(1, Math.abs(fe), Math.abs(Tn)) && Math.abs(pe - pa) <= Yr * Math.max(1, Math.abs(pe), Math.abs(pa)) && Math.abs(Fe - ro) <= Yr * Math.max(1, Math.abs(Fe), Math.abs(ro)) && Math.abs(Ke - Vo) <= Yr * Math.max(1, Math.abs(Ke), Math.abs(Vo)) && Math.abs(ct - Xa) <= Yr * Math.max(1, Math.abs(ct), Math.abs(Xa)) && Math.abs(Lt - sa) <= Yr * Math.max(1, Math.abs(Lt), Math.abs(sa)) && Math.abs(Jt - Mo) <= Yr * Math.max(1, Math.abs(Jt), Math.abs(Mo)) && Math.abs(cr - fo) <= Yr * Math.max(1, Math.abs(cr), Math.abs(fo)) && Math.abs(mr - lo) <= Yr * Math.max(1, Math.abs(mr), Math.abs(lo)) && Math.abs(Pr - Xn) <= Yr * Math.max(1, Math.abs(Pr), Math.abs(Xn)) && Math.abs(zr - Ro) <= Yr * Math.max(1, Math.abs(zr), Math.abs(Ro)) && Math.abs(ui - uo) <= Yr * Math.max(1, Math.abs(ui), Math.abs(uo)) && Math.abs(yi - $o) <= Yr * Math.max(1, Math.abs(yi), Math.abs($o));
+ }, i.a0 = Ye, i.a1 = _S, i.a2 = fr, i.a3 = (R) => {
+ let S = window.document.createElement("video");
+ return S.muted = true, new Promise((F) => {
+ S.onloadstart = () => {
+ F(S);
+ };
+ for (let W of R) {
+ let te = window.document.createElement("source");
+ Ee(W) || (S.crossOrigin = "Anonymous"), te.src = W, S.appendChild(te);
+ }
+ });
+ }, i.a4 = function() {
+ return x++;
+ }, i.a5 = Cn, i.a6 = R1, i.a7 = Fc, i.a8 = Sl, i.a9 = xS, i.aA = function(R) {
+ if (R.type === "custom") return new gS(R);
+ switch (R.type) {
+ case "background":
+ return new tO(R);
+ case "circle":
+ return new hi(R);
+ case "fill":
+ return new yt(R);
+ case "fill-extrusion":
+ return new Lv(R);
+ case "heatmap":
+ return new oa(R);
+ case "hillshade":
+ return new Zs(R);
+ case "line":
+ return new hy(R);
+ case "raster":
+ return new ab(R);
+ case "symbol":
+ return new gy(R);
+ }
+ }, i.aB = g, i.aC = function(R, S) {
+ if (!R) return [{ command: "setStyle", args: [S] }];
+ let F = [];
+ try {
+ if (!pt(R.version, S.version)) return [{ command: "setStyle", args: [S] }];
+ pt(R.center, S.center) || F.push({ command: "setCenter", args: [S.center] }), pt(R.zoom, S.zoom) || F.push({ command: "setZoom", args: [S.zoom] }), pt(R.bearing, S.bearing) || F.push({ command: "setBearing", args: [S.bearing] }), pt(R.pitch, S.pitch) || F.push({ command: "setPitch", args: [S.pitch] }), pt(R.sprite, S.sprite) || F.push({ command: "setSprite", args: [S.sprite] }), pt(R.glyphs, S.glyphs) || F.push({ command: "setGlyphs", args: [S.glyphs] }), pt(R.transition, S.transition) || F.push({ command: "setTransition", args: [S.transition] }), pt(R.light, S.light) || F.push({ command: "setLight", args: [S.light] }), pt(R.terrain, S.terrain) || F.push({ command: "setTerrain", args: [S.terrain] }), pt(R.sky, S.sky) || F.push({ command: "setSky", args: [S.sky] }), pt(R.projection, S.projection) || F.push({ command: "setProjection", args: [S.projection] });
+ let W = {}, te = [];
+ (function(pe, Fe, Ke, ct) {
+ let Lt;
+ for (Lt in Fe = Fe || {}, pe = pe || {}) Object.prototype.hasOwnProperty.call(pe, Lt) && (Object.prototype.hasOwnProperty.call(Fe, Lt) || ut(Lt, Ke, ct));
+ for (Lt in Fe) Object.prototype.hasOwnProperty.call(Fe, Lt) && (Object.prototype.hasOwnProperty.call(pe, Lt) ? pt(pe[Lt], Fe[Lt]) || (pe[Lt].type === "geojson" && Fe[Lt].type === "geojson" && Nt(pe, Fe, Lt) ? Vt(Ke, { command: "setGeoJSONSourceData", args: [Lt, Fe[Lt].data] }) : Wt(Lt, Fe, Ke, ct)) : ot(Lt, Fe, Ke));
+ })(R.sources, S.sources, te, W);
+ let fe = [];
+ R.layers && R.layers.forEach((pe) => {
+ "source" in pe && W[pe.source] ? F.push({ command: "removeLayer", args: [pe.id] }) : fe.push(pe);
+ }), F = F.concat(te), function(pe, Fe, Ke) {
+ Fe = Fe || [];
+ let ct = (pe = pe || []).map(sr), Lt = Fe.map(sr), Jt = pe.reduce(Tr, {}), cr = Fe.reduce(Tr, {}), mr = ct.slice(), Pr = /* @__PURE__ */ Object.create(null), zr, ui, yi, vn, zi;
+ for (let un = 0, Tn = 0; un < ct.length; un++) zr = ct[un], Object.prototype.hasOwnProperty.call(cr, zr) ? Tn++ : (Vt(Ke, { command: "removeLayer", args: [zr] }), mr.splice(mr.indexOf(zr, Tn), 1));
+ for (let un = 0, Tn = 0; un < Lt.length; un++) zr = Lt[Lt.length - 1 - un], mr[mr.length - 1 - un] !== zr && (Object.prototype.hasOwnProperty.call(Jt, zr) ? (Vt(Ke, { command: "removeLayer", args: [zr] }), mr.splice(mr.lastIndexOf(zr, mr.length - Tn), 1)) : Tn++, vn = mr[mr.length - un], Vt(Ke, { command: "addLayer", args: [cr[zr], vn] }), mr.splice(mr.length - un, 0, zr), Pr[zr] = true);
+ for (let un = 0; un < Lt.length; un++) if (zr = Lt[un], ui = Jt[zr], yi = cr[zr], !Pr[zr] && !pt(ui, yi)) if (pt(ui.source, yi.source) && pt(ui["source-layer"], yi["source-layer"]) && pt(ui.type, yi.type)) {
+ for (zi in $t(ui.layout, yi.layout, Ke, zr, null, "setLayoutProperty"), $t(ui.paint, yi.paint, Ke, zr, null, "setPaintProperty"), pt(ui.filter, yi.filter) || Vt(Ke, { command: "setFilter", args: [zr, yi.filter] }), pt(ui.minzoom, yi.minzoom) && pt(ui.maxzoom, yi.maxzoom) || Vt(Ke, { command: "setLayerZoomRange", args: [zr, yi.minzoom, yi.maxzoom] }), ui) Object.prototype.hasOwnProperty.call(ui, zi) && zi !== "layout" && zi !== "paint" && zi !== "filter" && zi !== "metadata" && zi !== "minzoom" && zi !== "maxzoom" && (zi.indexOf("paint.") === 0 ? $t(ui[zi], yi[zi], Ke, zr, zi.slice(6), "setPaintProperty") : pt(ui[zi], yi[zi]) || Vt(Ke, { command: "setLayerProperty", args: [zr, zi, yi[zi]] }));
+ for (zi in yi) Object.prototype.hasOwnProperty.call(yi, zi) && !Object.prototype.hasOwnProperty.call(ui, zi) && zi !== "layout" && zi !== "paint" && zi !== "filter" && zi !== "metadata" && zi !== "minzoom" && zi !== "maxzoom" && (zi.indexOf("paint.") === 0 ? $t(ui[zi], yi[zi], Ke, zr, zi.slice(6), "setPaintProperty") : pt(ui[zi], yi[zi]) || Vt(Ke, { command: "setLayerProperty", args: [zr, zi, yi[zi]] }));
+ } else Vt(Ke, { command: "removeLayer", args: [zr] }), vn = mr[mr.lastIndexOf(zr) + 1], Vt(Ke, { command: "addLayer", args: [yi, vn] });
+ }(fe, S.layers, F);
+ } catch (W) {
+ console.warn("Unable to compute style diff:", W), F = [{ command: "setStyle", args: [S] }];
+ }
+ return F;
+ }, i.aD = function(R) {
+ let S = [], F = R.id;
+ return F === void 0 && S.push({ message: `layers.${F}: missing required property "id"` }), R.render === void 0 && S.push({ message: `layers.${F}: missing required method "render"` }), R.renderingMode && R.renderingMode !== "2d" && R.renderingMode !== "3d" && S.push({ message: `layers.${F}: property "renderingMode" must be either "2d" or "3d"` }), S;
+ }, i.aE = function R(S, F) {
+ if (Array.isArray(S)) {
+ if (!Array.isArray(F) || S.length !== F.length) return false;
+ for (let W = 0; W < S.length; W++) if (!R(S[W], F[W])) return false;
+ return true;
+ }
+ if (typeof S == "object" && S !== null && F !== null) {
+ if (typeof F != "object" || Object.keys(S).length !== Object.keys(F).length) return false;
+ for (let W in S) if (!R(S[W], F[W])) return false;
+ return true;
+ }
+ return S === F;
+ }, i.aF = C, i.aG = M, i.aH = class extends Si {
+ constructor(R, S) {
+ super(R, S), this.current = 0;
+ }
+ set(R) {
+ this.current !== R && (this.current = R, this.gl.uniform1i(this.location, R));
+ }
+ }, i.aI = ei, i.aJ = class extends Si {
+ constructor(R, S) {
+ super(R, S), this.current = Un;
+ }
+ set(R) {
+ if (R[12] !== this.current[12] || R[0] !== this.current[0]) return this.current = R, void this.gl.uniformMatrix4fv(this.location, false, R);
+ for (let S = 1; S < 16; S++) if (R[S] !== this.current[S]) {
+ this.current = R, this.gl.uniformMatrix4fv(this.location, false, R);
+ break;
+ }
+ }
+ }, i.aK = Ln, i.aL = En, i.aM = nr, i.aN = class extends Si {
+ constructor(R, S) {
+ super(R, S), this.current = [0, 0, 0];
+ }
+ set(R) {
+ R[0] === this.current[0] && R[1] === this.current[1] && R[2] === this.current[2] || (this.current = R, this.gl.uniform3f(this.location, R[0], R[1], R[2]));
+ }
+ }, i.aO = class extends Si {
+ constructor(R, S) {
+ super(R, S), this.current = [0, 0];
+ }
+ set(R) {
+ R[0] === this.current[0] && R[1] === this.current[1] || (this.current = R, this.gl.uniform2f(this.location, R[0], R[1]));
+ }
+ }, i.aP = function(R, S, F, W, te, fe, pe) {
+ var Fe = 1 / (S - F), Ke = 1 / (W - te), ct = 1 / (fe - pe);
+ return R[0] = -2 * Fe, R[1] = 0, R[2] = 0, R[3] = 0, R[4] = 0, R[5] = -2 * Ke, R[6] = 0, R[7] = 0, R[8] = 0, R[9] = 0, R[10] = 2 * ct, R[11] = 0, R[12] = (S + F) * Fe, R[13] = (te + W) * Ke, R[14] = (pe + fe) * ct, R[15] = 1, R;
+ }, i.aQ = Zi, i.aR = class extends it {
+ }, i.aS = om, i.aT = class extends Ht {
+ }, i.aU = ta, i.aV = function(R) {
+ return R <= 1 ? 1 : Math.pow(2, Math.ceil(Math.log(R) / Math.LN2));
+ }, i.aW = kn, i.aX = wo, i.aY = se, i.aZ = class extends Pi {
+ }, i.a_ = function(R, S) {
+ return R[0] === S[0] && R[1] === S[1] && R[2] === S[2] && R[3] === S[3] && R[4] === S[4] && R[5] === S[5] && R[6] === S[6] && R[7] === S[7] && R[8] === S[8] && R[9] === S[9] && R[10] === S[10] && R[11] === S[11] && R[12] === S[12] && R[13] === S[13] && R[14] === S[14] && R[15] === S[15];
+ }, i.aa = function(R) {
+ let S = {};
+ if (R.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, (F, W, te, fe) => {
+ let pe = te || fe;
+ return S[W] = !pe || pe.toLowerCase(), "";
+ }), S["max-age"]) {
+ let F = parseInt(S["max-age"], 10);
+ isNaN(F) ? delete S["max-age"] : S["max-age"] = F;
+ }
+ return S;
+ }, i.ab = function(R, S) {
+ let F = [];
+ for (let W in R) W in S || F.push(W);
+ return F;
+ }, i.ac = E, i.ad = function(R, S, F) {
+ var W = Math.sin(F), te = Math.cos(F), fe = S[0], pe = S[1], Fe = S[2], Ke = S[3], ct = S[4], Lt = S[5], Jt = S[6], cr = S[7];
+ return S !== R && (R[8] = S[8], R[9] = S[9], R[10] = S[10], R[11] = S[11], R[12] = S[12], R[13] = S[13], R[14] = S[14], R[15] = S[15]), R[0] = fe * te + ct * W, R[1] = pe * te + Lt * W, R[2] = Fe * te + Jt * W, R[3] = Ke * te + cr * W, R[4] = ct * te - fe * W, R[5] = Lt * te - pe * W, R[6] = Jt * te - Fe * W, R[7] = cr * te - Ke * W, R;
+ }, i.ae = function(R) {
+ var S = new xi(16);
+ return S[0] = R[0], S[1] = R[1], S[2] = R[2], S[3] = R[3], S[4] = R[4], S[5] = R[5], S[6] = R[6], S[7] = R[7], S[8] = R[8], S[9] = R[9], S[10] = R[10], S[11] = R[11], S[12] = R[12], S[13] = R[13], S[14] = R[14], S[15] = R[15], S;
+ }, i.af = Bn, i.ag = function(R, S) {
+ let F = 0, W = 0;
+ if (R.kind === "constant") W = R.layoutSize;
+ else if (R.kind !== "source") {
+ let { interpolationType: te, minZoom: fe, maxZoom: pe } = R, Fe = te ? E(ko.interpolationFactor(te, S, fe, pe), 0, 1) : 0;
+ R.kind === "camera" ? W = Lo.number(R.minSize, R.maxSize, Fe) : F = Fe;
+ }
+ return { uSizeT: F, uSize: W };
+ }, i.ai = function(R, { uSize: S, uSizeT: F }, { lowerSize: W, upperSize: te }) {
+ return R.kind === "source" ? W / v0 : R.kind === "composite" ? Lo.number(W / v0, te / v0, F) : S;
+ }, i.aj = hS, i.ak = function(R, S, F, W) {
+ let te = S.y - R.y, fe = S.x - R.x, pe = W.y - F.y, Fe = W.x - F.x, Ke = pe * fe - Fe * te;
+ if (Ke === 0) return null;
+ let ct = (Fe * (R.y - F.y) - pe * (R.x - F.x)) / Ke;
+ return new u(R.x + ct * fe, R.y + ct * te);
+ }, i.al = GC, i.am = Sc, i.an = Ri, i.ao = function(R) {
+ let S = 1 / 0, F = 1 / 0, W = -1 / 0, te = -1 / 0;
+ for (let fe of R) S = Math.min(S, fe.x), F = Math.min(F, fe.y), W = Math.max(W, fe.x), te = Math.max(te, fe.y);
+ return [S, F, W, te];
+ }, i.ap = tu, i.ar = fS, i.as = function(R, S) {
+ var F = S[0], W = S[1], te = S[2], fe = S[3], pe = S[4], Fe = S[5], Ke = S[6], ct = S[7], Lt = S[8], Jt = S[9], cr = S[10], mr = S[11], Pr = S[12], zr = S[13], ui = S[14], yi = S[15], vn = F * Fe - W * pe, zi = F * Ke - te * pe, un = F * ct - fe * pe, Tn = W * Ke - te * Fe, pa = W * ct - fe * Fe, ro = te * ct - fe * Ke, Vo = Lt * zr - Jt * Pr, Xa = Lt * ui - cr * Pr, sa = Lt * yi - mr * Pr, Mo = Jt * ui - cr * zr, fo = Jt * yi - mr * zr, lo = cr * yi - mr * ui, Xn = vn * lo - zi * fo + un * Mo + Tn * sa - pa * Xa + ro * Vo;
+ return Xn ? (R[0] = (Fe * lo - Ke * fo + ct * Mo) * (Xn = 1 / Xn), R[1] = (te * fo - W * lo - fe * Mo) * Xn, R[2] = (zr * ro - ui * pa + yi * Tn) * Xn, R[3] = (cr * pa - Jt * ro - mr * Tn) * Xn, R[4] = (Ke * sa - pe * lo - ct * Xa) * Xn, R[5] = (F * lo - te * sa + fe * Xa) * Xn, R[6] = (ui * un - Pr * ro - yi * zi) * Xn, R[7] = (Lt * ro - cr * un + mr * zi) * Xn, R[8] = (pe * fo - Fe * sa + ct * Vo) * Xn, R[9] = (W * sa - F * fo - fe * Vo) * Xn, R[10] = (Pr * pa - zr * un + yi * vn) * Xn, R[11] = (Jt * un - Lt * pa - mr * vn) * Xn, R[12] = (Fe * Xa - pe * Mo - Ke * Vo) * Xn, R[13] = (F * Mo - W * Xa + te * Vo) * Xn, R[14] = (zr * zi - Pr * Tn - ui * vn) * Xn, R[15] = (Lt * Tn - Jt * zi + cr * vn) * Xn, R) : null;
+ }, i.at = TS, i.au = Gw, i.av = AS, i.aw = function() {
+ let R = {}, S = ce.$version;
+ for (let F in ce.$root) {
+ let W = ce.$root[F];
+ if (W.required) {
+ let te = null;
+ te = F === "version" ? S : W.type === "array" ? [] : {}, te != null && (R[F] = te);
+ }
+ }
+ return R;
+ }, i.ax = Yn, i.ay = ie, i.az = function(R) {
+ R = R.slice();
+ let S = /* @__PURE__ */ Object.create(null);
+ for (let F = 0; F < R.length; F++) S[R[F].id] = R[F];
+ for (let F = 0; F < R.length; F++) "ref" in R[F] && (R[F] = lt(R[F], S[R[F].ref]));
+ return R;
+ }, i.b = G, i.b0 = function(R, S) {
+ return R[0] = S[0], R[1] = S[1], R[2] = S[2], R[3] = S[3], R[4] = S[4], R[5] = S[5], R[6] = S[6], R[7] = S[7], R[8] = S[8], R[9] = S[9], R[10] = S[10], R[11] = S[11], R[12] = S[12], R[13] = S[13], R[14] = S[14], R[15] = S[15], R;
+ }, i.b1 = function(R, S, F) {
+ return R[0] = S[0] * F[0], R[1] = S[1] * F[1], R[2] = S[2] * F[2], R[3] = S[3] * F[3], R;
+ }, i.b2 = function(R, S) {
+ return R[0] * S[0] + R[1] * S[1] + R[2] * S[2] + R[3] * S[3];
+ }, i.b3 = T, i.b4 = qC, i.b5 = Xw, i.b6 = function(R, S, F, W, te) {
+ var fe, pe = 1 / Math.tan(S / 2);
+ return R[0] = pe / F, R[1] = 0, R[2] = 0, R[3] = 0, R[4] = 0, R[5] = pe, R[6] = 0, R[7] = 0, R[8] = 0, R[9] = 0, R[11] = -1, R[12] = 0, R[13] = 0, R[15] = 0, te != null && te !== 1 / 0 ? (R[10] = (te + W) * (fe = 1 / (W - te)), R[14] = 2 * te * W * fe) : (R[10] = -1, R[14] = -2 * W), R;
+ }, i.b7 = function(R, S, F) {
+ var W = Math.sin(F), te = Math.cos(F), fe = S[4], pe = S[5], Fe = S[6], Ke = S[7], ct = S[8], Lt = S[9], Jt = S[10], cr = S[11];
+ return S !== R && (R[0] = S[0], R[1] = S[1], R[2] = S[2], R[3] = S[3], R[12] = S[12], R[13] = S[13], R[14] = S[14], R[15] = S[15]), R[4] = fe * te + ct * W, R[5] = pe * te + Lt * W, R[6] = Fe * te + Jt * W, R[7] = Ke * te + cr * W, R[8] = ct * te - fe * W, R[9] = Lt * te - pe * W, R[10] = Jt * te - Fe * W, R[11] = cr * te - Ke * W, R;
+ }, i.b8 = p, i.b9 = k, i.bA = Sd, i.bB = function(R) {
+ return R.message === re;
+ }, i.bC = ks, i.bD = ys, i.ba = function(R) {
+ return R * Math.PI / 180;
+ }, i.bb = function(R, S) {
+ let { x: F, y: W } = sb.fromLngLat(S);
+ return !(R < 0 || R > 25 || W < 0 || W >= 1 || F < 0 || F >= 1);
+ }, i.bc = function(R, S) {
+ return R[0] = S[0], R[1] = 0, R[2] = 0, R[3] = 0, R[4] = 0, R[5] = S[1], R[6] = 0, R[7] = 0, R[8] = 0, R[9] = 0, R[10] = S[2], R[11] = 0, R[12] = 0, R[13] = 0, R[14] = 0, R[15] = 1, R;
+ }, i.bd = class extends Tt {
+ }, i.be = yS, i.bf = uO, i.bh = ge, i.bi = function(R, S) {
+ _e.REGISTERED_PROTOCOLS[R] = S;
+ }, i.bj = function(R) {
+ delete _e.REGISTERED_PROTOCOLS[R];
+ }, i.bk = function(R, S) {
+ let F = {};
+ for (let te = 0; te < R.length; te++) {
+ let fe = S && S[R[te].id] || Xh(R[te]);
+ S && (S[R[te].id] = fe);
+ let pe = F[fe];
+ pe || (pe = F[fe] = []), pe.push(R[te]);
+ }
+ let W = [];
+ for (let te in F) W.push(F[te]);
+ return W;
+ }, i.bl = Fi, i.bm = NC, i.bn = my, i.bo = Nw, i.bp = function(R) {
+ R.bucket.createArrays(), R.bucket.tilePixelRatio = ja / (512 * R.bucket.overscaling), R.bucket.compareText = {}, R.bucket.iconsNeedLinear = false;
+ let S = R.bucket.layers[0], F = S.layout, W = S._unevaluatedLayout._values, te = { layoutIconSize: W["icon-size"].possiblyEvaluate(new rs(R.bucket.zoom + 1), R.canonical), layoutTextSize: W["text-size"].possiblyEvaluate(new rs(R.bucket.zoom + 1), R.canonical), textMaxSize: W["text-size"].possiblyEvaluate(new rs(18)) };
+ if (R.bucket.textSizeData.kind === "composite") {
+ let { minZoom: ct, maxZoom: Lt } = R.bucket.textSizeData;
+ te.compositeTextSizes = [W["text-size"].possiblyEvaluate(new rs(ct), R.canonical), W["text-size"].possiblyEvaluate(new rs(Lt), R.canonical)];
+ }
+ if (R.bucket.iconSizeData.kind === "composite") {
+ let { minZoom: ct, maxZoom: Lt } = R.bucket.iconSizeData;
+ te.compositeIconSizes = [W["icon-size"].possiblyEvaluate(new rs(ct), R.canonical), W["icon-size"].possiblyEvaluate(new rs(Lt), R.canonical)];
+ }
+ let fe = F.get("text-line-height") * tu, pe = F.get("text-rotation-alignment") !== "viewport" && F.get("symbol-placement") !== "point", Fe = F.get("text-keep-upright"), Ke = F.get("text-size");
+ for (let ct of R.bucket.features) {
+ let Lt = F.get("text-font").evaluate(ct, {}, R.canonical).join(","), Jt = Ke.evaluate(ct, {}, R.canonical), cr = te.layoutTextSize.evaluate(ct, {}, R.canonical), mr = te.layoutIconSize.evaluate(ct, {}, R.canonical), Pr = { horizontal: {}, vertical: void 0 }, zr = ct.text, ui, yi = [0, 0];
+ if (zr) {
+ let un = zr.toString(), Tn = F.get("text-letter-spacing").evaluate(ct, {}, R.canonical) * tu, pa = bo(un) ? Tn : 0, ro = F.get("text-anchor").evaluate(ct, {}, R.canonical), Vo = KC(S, ct, R.canonical);
+ if (!Vo) {
+ let fo = F.get("text-radial-offset").evaluate(ct, {}, R.canonical);
+ yi = fo ? wS(ro, [fo * tu, yy]) : F.get("text-offset").evaluate(ct, {}, R.canonical).map((lo) => lo * tu);
+ }
+ let Xa = pe ? "center" : F.get("text-justify").evaluate(ct, {}, R.canonical), sa = F.get("symbol-placement") === "point" ? F.get("text-max-width").evaluate(ct, {}, R.canonical) * tu : 1 / 0, Mo = () => {
+ R.bucket.allowVerticalPlacement && Ka(un) && (Pr.vertical = Qx(zr, R.glyphMap, R.glyphPositions, R.imagePositions, Lt, sa, fe, ro, "left", pa, yi, i.ah.vertical, true, cr, Jt));
+ };
+ if (!pe && Vo) {
+ let fo = /* @__PURE__ */ new Set();
+ if (Xa === "auto") for (let Xn = 0; Xn < Vo.values.length; Xn += 2) fo.add(TS(Vo.values[Xn]));
+ else fo.add(Xa);
+ let lo = false;
+ for (let Xn of fo) if (!Pr.horizontal[Xn]) if (lo) Pr.horizontal[Xn] = Pr.horizontal[0];
+ else {
+ let Ro = Qx(zr, R.glyphMap, R.glyphPositions, R.imagePositions, Lt, sa, fe, "center", Xn, pa, yi, i.ah.horizontal, false, cr, Jt);
+ Ro && (Pr.horizontal[Xn] = Ro, lo = Ro.positionedLines.length === 1);
+ }
+ Mo();
+ } else {
+ Xa === "auto" && (Xa = TS(ro));
+ let fo = Qx(zr, R.glyphMap, R.glyphPositions, R.imagePositions, Lt, sa, fe, ro, Xa, pa, yi, i.ah.horizontal, false, cr, Jt);
+ fo && (Pr.horizontal[Xa] = fo), Mo(), Ka(un) && pe && Fe && (Pr.vertical = Qx(zr, R.glyphMap, R.glyphPositions, R.imagePositions, Lt, sa, fe, ro, Xa, pa, yi, i.ah.vertical, false, cr, Jt));
+ }
+ }
+ let vn = false;
+ if (ct.icon && ct.icon.name) {
+ let un = R.imageMap[ct.icon.name];
+ un && (ui = eb(R.imagePositions[ct.icon.name], F.get("icon-offset").evaluate(ct, {}, R.canonical), F.get("icon-anchor").evaluate(ct, {}, R.canonical)), vn = !!un.sdf, R.bucket.sdfIcons === void 0 ? R.bucket.sdfIcons = vn : R.bucket.sdfIcons !== vn && A("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"), (un.pixelRatio !== R.bucket.pixelRatio || F.get("icon-rotate").constantOr(1) !== 0) && (R.bucket.iconsNeedLinear = true));
+ }
+ let zi = $C(Pr.horizontal) || Pr.vertical;
+ R.bucket.iconsInText = !!zi && zi.iconsInText, (zi || ui) && sO(R.bucket, ct, Pr, ui, R.imageMap, te, cr, mr, yi, vn, R.canonical);
+ }
+ R.showCollisionBoxes && R.bucket.generateCollisionDebugBuffers();
+ }, i.bq = Jv, i.br = Ot, i.bs = so, i.bt = br, i.bu = lS, i.bv = class {
+ constructor(R) {
+ this._marks = { start: [R.url, "start"].join("#"), end: [R.url, "end"].join("#"), measure: R.url.toString() }, performance.mark(this._marks.start);
+ }
+ finish() {
+ performance.mark(this._marks.end);
+ let R = performance.getEntriesByName(this._marks.measure);
+ return R.length === 0 && (performance.measure(this._marks.measure, this._marks.start, this._marks.end), R = performance.getEntriesByName(this._marks.measure), performance.clearMarks(this._marks.start), performance.clearMarks(this._marks.end), performance.clearMeasures(this._marks.measure)), R;
+ }
+ }, i.bw = function(R, S, F, W, te) {
+ return a(this, void 0, void 0, function* () {
+ if (b()) try {
+ return yield j(R, S, F, W, te);
+ } catch (fe) {
+ }
+ return function(fe, pe, Fe, Ke, ct) {
+ let Lt = fe.width, Jt = fe.height;
+ N && H || (N = new OffscreenCanvas(Lt, Jt), H = N.getContext("2d", { willReadFrequently: true })), N.width = Lt, N.height = Jt, H.drawImage(fe, 0, 0, Lt, Jt);
+ let cr = H.getImageData(pe, Fe, Ke, ct);
+ return H.clearRect(0, 0, Lt, Jt), cr.data;
+ }(R, S, F, W, te);
+ });
+ }, i.bx = BC, i.by = o, i.bz = s, i.c = oe, i.d = (R) => a(void 0, void 0, void 0, function* () {
+ if (R.byteLength === 0) return createImageBitmap(new ImageData(1, 1));
+ let S = new Blob([new Uint8Array(R)], { type: "image/png" });
+ try {
+ return createImageBitmap(S);
+ } catch (F) {
+ throw new Error(`Could not load image because of ${F.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`);
+ }
+ }), i.e = L, i.f = (R) => new Promise((S, F) => {
+ let W = new Image();
+ W.onload = () => {
+ S(W), URL.revokeObjectURL(W.src), W.onload = null, window.requestAnimationFrame(() => {
+ W.src = Z;
+ });
+ }, W.onerror = () => F(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));
+ let te = new Blob([new Uint8Array(R)], { type: "image/png" });
+ W.src = R.byteLength ? URL.createObjectURL(te) : Z;
+ }), i.g = Ce, i.h = (R, S) => Se(L(R, { type: "json" }), S), i.i = O, i.j = me, i.k = Pe, i.l = (R, S) => Se(L(R, { type: "arrayBuffer" }), S), i.m = Se, i.n = function(R) {
+ return new lS(R).readFields(qQ, []);
+ }, i.o = na, i.p = cS, i.q = ue, i.r = Xi, i.s = Ee, i.t = Yi, i.u = ki, i.v = ce, i.w = A, i.x = function([R, S, F]) {
+ return S += 90, S *= Math.PI / 180, F *= Math.PI / 180, { x: R * Math.cos(S) * Math.sin(F), y: R * Math.sin(S) * Math.sin(F), z: R * Math.cos(F) };
+ }, i.y = Lo, i.z = rs;
+ }), r("worker", ["./shared"], function(i) {
+ class a {
+ constructor(Ge) {
+ this.keyCache = {}, Ge && this.replace(Ge);
+ }
+ replace(Ge) {
+ this._layerConfigs = {}, this._layers = {}, this.update(Ge, []);
+ }
+ update(Ge, Je) {
+ for (let tt of Ge) {
+ this._layerConfigs[tt.id] = tt;
+ let xt = this._layers[tt.id] = i.aA(tt);
+ xt._featureFilter = i.a7(xt.filter), this.keyCache[tt.id] && delete this.keyCache[tt.id];
+ }
+ for (let tt of Je) delete this.keyCache[tt], delete this._layerConfigs[tt], delete this._layers[tt];
+ this.familiesBySource = {};
+ let We = i.bk(Object.values(this._layerConfigs), this.keyCache);
+ for (let tt of We) {
+ let xt = tt.map((ar) => this._layers[ar.id]), Ie = xt[0];
+ if (Ie.visibility === "none") continue;
+ let xe = Ie.source || "", ke = this.familiesBySource[xe];
+ ke || (ke = this.familiesBySource[xe] = {});
+ let vt = Ie.sourceLayer || "_geojsonTileLayer", ir = ke[vt];
+ ir || (ir = ke[vt] = []), ir.push(xt);
+ }
+ }
+ }
+ class o {
+ constructor(Ge) {
+ let Je = {}, We = [];
+ for (let xe in Ge) {
+ let ke = Ge[xe], vt = Je[xe] = {};
+ for (let ir in ke) {
+ let ar = ke[+ir];
+ if (!ar || ar.bitmap.width === 0 || ar.bitmap.height === 0) continue;
+ let vr = { x: 0, y: 0, w: ar.bitmap.width + 2, h: ar.bitmap.height + 2 };
+ We.push(vr), vt[ir] = { rect: vr, metrics: ar.metrics };
+ }
+ }
+ let { w: tt, h: xt } = i.p(We), Ie = new i.o({ width: tt || 1, height: xt || 1 });
+ for (let xe in Ge) {
+ let ke = Ge[xe];
+ for (let vt in ke) {
+ let ir = ke[+vt];
+ if (!ir || ir.bitmap.width === 0 || ir.bitmap.height === 0) continue;
+ let ar = Je[xe][vt].rect;
+ i.o.copy(ir.bitmap, Ie, { x: 0, y: 0 }, { x: ar.x + 1, y: ar.y + 1 }, ir.bitmap);
+ }
+ }
+ this.image = Ie, this.positions = Je;
+ }
+ }
+ i.bl("GlyphAtlas", o);
+ class s {
+ constructor(Ge) {
+ this.tileID = new i.S(Ge.tileID.overscaledZ, Ge.tileID.wrap, Ge.tileID.canonical.z, Ge.tileID.canonical.x, Ge.tileID.canonical.y), this.uid = Ge.uid, this.zoom = Ge.zoom, this.pixelRatio = Ge.pixelRatio, this.tileSize = Ge.tileSize, this.source = Ge.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = Ge.showCollisionBoxes, this.collectResourceTiming = !!Ge.collectResourceTiming, this.returnDependencies = !!Ge.returnDependencies, this.promoteId = Ge.promoteId, this.inFlightDependencies = [];
+ }
+ parse(Ge, Je, We, tt) {
+ return i._(this, void 0, void 0, function* () {
+ this.status = "parsing", this.data = Ge, this.collisionBoxArray = new i.a5();
+ let xt = new i.bm(Object.keys(Ge.layers).sort()), Ie = new i.bn(this.tileID, this.promoteId);
+ Ie.bucketLayerIDs = [];
+ let xe = {}, ke = { featureIndex: Ie, iconDependencies: {}, patternDependencies: {}, glyphDependencies: {}, availableImages: We }, vt = Je.familiesBySource[this.source];
+ for (let qn in vt) {
+ let Fn = Ge.layers[qn];
+ if (!Fn) continue;
+ Fn.version === 1 && i.w(`Vector tile source "${this.source}" layer "${qn}" does not use vector tile spec v2 and therefore may have some rendering errors.`);
+ let ra = xt.encode(qn), la = [];
+ for (let Ut = 0; Ut < Fn.length; Ut++) {
+ let wt = Fn.feature(Ut), rr = Ie.getId(wt, qn);
+ la.push({ feature: wt, id: rr, index: Ut, sourceLayerIndex: ra });
+ }
+ for (let Ut of vt[qn]) {
+ let wt = Ut[0];
+ wt.source !== this.source && i.w(`layer.source = ${wt.source} does not equal this.source = ${this.source}`), wt.minzoom && this.zoom < Math.floor(wt.minzoom) || wt.maxzoom && this.zoom >= wt.maxzoom || wt.visibility !== "none" && (l(Ut, this.zoom, We), (xe[wt.id] = wt.createBucket({ index: Ie.bucketLayerIDs.length, layers: Ut, zoom: this.zoom, pixelRatio: this.pixelRatio, overscaling: this.overscaling, collisionBoxArray: this.collisionBoxArray, sourceLayerIndex: ra, sourceID: this.source })).populate(la, ke, this.tileID.canonical), Ie.bucketLayerIDs.push(Ut.map((rr) => rr.id)));
+ }
+ }
+ let ir = i.aF(ke.glyphDependencies, (qn) => Object.keys(qn).map(Number));
+ this.inFlightDependencies.forEach((qn) => qn == null ? void 0 : qn.abort()), this.inFlightDependencies = [];
+ let ar = Promise.resolve({});
+ if (Object.keys(ir).length) {
+ let qn = new AbortController();
+ this.inFlightDependencies.push(qn), ar = tt.sendAsync({ type: "GG", data: { stacks: ir, source: this.source, tileID: this.tileID, type: "glyphs" } }, qn);
+ }
+ let vr = Object.keys(ke.iconDependencies), ii = Promise.resolve({});
+ if (vr.length) {
+ let qn = new AbortController();
+ this.inFlightDependencies.push(qn), ii = tt.sendAsync({ type: "GI", data: { icons: vr, source: this.source, tileID: this.tileID, type: "icons" } }, qn);
+ }
+ let pi = Object.keys(ke.patternDependencies), $r = Promise.resolve({});
+ if (pi.length) {
+ let qn = new AbortController();
+ this.inFlightDependencies.push(qn), $r = tt.sendAsync({ type: "GI", data: { icons: pi, source: this.source, tileID: this.tileID, type: "patterns" } }, qn);
+ }
+ let [di, ji, In] = yield Promise.all([ar, ii, $r]), wi = new o(di), On = new i.bo(ji, In);
+ for (let qn in xe) {
+ let Fn = xe[qn];
+ Fn instanceof i.a6 ? (l(Fn.layers, this.zoom, We), i.bp({ bucket: Fn, glyphMap: di, glyphPositions: wi.positions, imageMap: ji, imagePositions: On.iconPositions, showCollisionBoxes: this.showCollisionBoxes, canonical: this.tileID.canonical })) : Fn.hasPattern && (Fn instanceof i.bq || Fn instanceof i.br || Fn instanceof i.bs) && (l(Fn.layers, this.zoom, We), Fn.addFeatures(ke, this.tileID.canonical, On.patternPositions));
+ }
+ return this.status = "done", { buckets: Object.values(xe).filter((qn) => !qn.isEmpty()), featureIndex: Ie, collisionBoxArray: this.collisionBoxArray, glyphAtlasImage: wi.image, imageAtlas: On, glyphMap: this.returnDependencies ? di : null, iconMap: this.returnDependencies ? ji : null, glyphPositions: this.returnDependencies ? wi.positions : null };
+ });
+ }
+ }
+ function l(dt, Ge, Je) {
+ let We = new i.z(Ge);
+ for (let tt of dt) tt.recalculate(We, Je);
+ }
+ class u {
+ constructor(Ge, Je, We) {
+ this.actor = Ge, this.layerIndex = Je, this.availableImages = We, this.fetching = {}, this.loading = {}, this.loaded = {};
+ }
+ loadVectorTile(Ge, Je) {
+ return i._(this, void 0, void 0, function* () {
+ let We = yield i.l(Ge.request, Je);
+ try {
+ return { vectorTile: new i.bt.VectorTile(new i.bu(We.data)), rawData: We.data, cacheControl: We.cacheControl, expires: We.expires };
+ } catch (tt) {
+ let xt = new Uint8Array(We.data), Ie = `Unable to parse the tile at ${Ge.request.url}, `;
+ throw Ie += xt[0] === 31 && xt[1] === 139 ? "please make sure the data is not gzipped and that you have configured the relevant header in the server" : `got error: ${tt.message}`, new Error(Ie);
+ }
+ });
+ }
+ loadTile(Ge) {
+ return i._(this, void 0, void 0, function* () {
+ let Je = Ge.uid, We = !!(Ge && Ge.request && Ge.request.collectResourceTiming) && new i.bv(Ge.request), tt = new s(Ge);
+ this.loading[Je] = tt;
+ let xt = new AbortController();
+ tt.abort = xt;
+ try {
+ let Ie = yield this.loadVectorTile(Ge, xt);
+ if (delete this.loading[Je], !Ie) return null;
+ let xe = Ie.rawData, ke = {};
+ Ie.expires && (ke.expires = Ie.expires), Ie.cacheControl && (ke.cacheControl = Ie.cacheControl);
+ let vt = {};
+ if (We) {
+ let ar = We.finish();
+ ar && (vt.resourceTiming = JSON.parse(JSON.stringify(ar)));
+ }
+ tt.vectorTile = Ie.vectorTile;
+ let ir = tt.parse(Ie.vectorTile, this.layerIndex, this.availableImages, this.actor);
+ this.loaded[Je] = tt, this.fetching[Je] = { rawTileData: xe, cacheControl: ke, resourceTiming: vt };
+ try {
+ let ar = yield ir;
+ return i.e({ rawTileData: xe.slice(0) }, ar, ke, vt);
+ } finally {
+ delete this.fetching[Je];
+ }
+ } catch (Ie) {
+ throw delete this.loading[Je], tt.status = "done", this.loaded[Je] = tt, Ie;
+ }
+ });
+ }
+ reloadTile(Ge) {
+ return i._(this, void 0, void 0, function* () {
+ let Je = Ge.uid;
+ if (!this.loaded || !this.loaded[Je]) throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");
+ let We = this.loaded[Je];
+ if (We.showCollisionBoxes = Ge.showCollisionBoxes, We.status === "parsing") {
+ let tt = yield We.parse(We.vectorTile, this.layerIndex, this.availableImages, this.actor), xt;
+ if (this.fetching[Je]) {
+ let { rawTileData: Ie, cacheControl: xe, resourceTiming: ke } = this.fetching[Je];
+ delete this.fetching[Je], xt = i.e({ rawTileData: Ie.slice(0) }, tt, xe, ke);
+ } else xt = tt;
+ return xt;
+ }
+ if (We.status === "done" && We.vectorTile) return We.parse(We.vectorTile, this.layerIndex, this.availableImages, this.actor);
+ });
+ }
+ abortTile(Ge) {
+ return i._(this, void 0, void 0, function* () {
+ let Je = this.loading, We = Ge.uid;
+ Je && Je[We] && Je[We].abort && (Je[We].abort.abort(), delete Je[We]);
+ });
+ }
+ removeTile(Ge) {
+ return i._(this, void 0, void 0, function* () {
+ this.loaded && this.loaded[Ge.uid] && delete this.loaded[Ge.uid];
+ });
+ }
+ }
+ class c {
+ constructor() {
+ this.loaded = {};
+ }
+ loadTile(Ge) {
+ return i._(this, void 0, void 0, function* () {
+ let { uid: Je, encoding: We, rawImageData: tt, redFactor: xt, greenFactor: Ie, blueFactor: xe, baseShift: ke } = Ge, vt = tt.width + 2, ir = tt.height + 2, ar = i.b(tt) ? new i.R({ width: vt, height: ir }, yield i.bw(tt, -1, -1, vt, ir)) : tt, vr = new i.bx(Je, ar, We, xt, Ie, xe, ke);
+ return this.loaded = this.loaded || {}, this.loaded[Je] = vr, vr;
+ });
+ }
+ removeTile(Ge) {
+ let Je = this.loaded, We = Ge.uid;
+ Je && Je[We] && delete Je[We];
+ }
+ }
+ function f(dt, Ge) {
+ if (dt.length !== 0) {
+ h(dt[0], Ge);
+ for (var Je = 1; Je < dt.length; Je++) h(dt[Je], !Ge);
+ }
+ }
+ function h(dt, Ge) {
+ for (var Je = 0, We = 0, tt = 0, xt = dt.length, Ie = xt - 1; tt < xt; Ie = tt++) {
+ var xe = (dt[tt][0] - dt[Ie][0]) * (dt[Ie][1] + dt[tt][1]), ke = Je + xe;
+ We += Math.abs(Je) >= Math.abs(xe) ? Je - ke + xe : xe - ke + Je, Je = ke;
+ }
+ Je + We >= 0 != !!Ge && dt.reverse();
+ }
+ var d = i.by(function dt(Ge, Je) {
+ var We, tt = Ge && Ge.type;
+ if (tt === "FeatureCollection") for (We = 0; We < Ge.features.length; We++) dt(Ge.features[We], Je);
+ else if (tt === "GeometryCollection") for (We = 0; We < Ge.geometries.length; We++) dt(Ge.geometries[We], Je);
+ else if (tt === "Feature") dt(Ge.geometry, Je);
+ else if (tt === "Polygon") f(Ge.coordinates, Je);
+ else if (tt === "MultiPolygon") for (We = 0; We < Ge.coordinates.length; We++) f(Ge.coordinates[We], Je);
+ return Ge;
+ });
+ let v = i.bt.VectorTileFeature.prototype.toGeoJSON;
+ var _ = { exports: {} }, b = i.bz, p = i.bt.VectorTileFeature, k = E;
+ function E(dt, Ge) {
+ this.options = Ge || {}, this.features = dt, this.length = dt.length;
+ }
+ function T(dt, Ge) {
+ this.id = typeof dt.id == "number" ? dt.id : void 0, this.type = dt.type, this.rawGeometry = dt.type === 1 ? [dt.geometry] : dt.geometry, this.properties = dt.tags, this.extent = Ge || 4096;
+ }
+ E.prototype.feature = function(dt) {
+ return new T(this.features[dt], this.options.extent);
+ }, T.prototype.loadGeometry = function() {
+ var dt = this.rawGeometry;
+ this.geometry = [];
+ for (var Ge = 0; Ge < dt.length; Ge++) {
+ for (var Je = dt[Ge], We = [], tt = 0; tt < Je.length; tt++) We.push(new b(Je[tt][0], Je[tt][1]));
+ this.geometry.push(We);
+ }
+ return this.geometry;
+ }, T.prototype.bbox = function() {
+ this.geometry || this.loadGeometry();
+ for (var dt = this.geometry, Ge = 1 / 0, Je = -1 / 0, We = 1 / 0, tt = -1 / 0, xt = 0; xt < dt.length; xt++) for (var Ie = dt[xt], xe = 0; xe < Ie.length; xe++) {
+ var ke = Ie[xe];
+ Ge = Math.min(Ge, ke.x), Je = Math.max(Je, ke.x), We = Math.min(We, ke.y), tt = Math.max(tt, ke.y);
+ }
+ return [Ge, We, Je, tt];
+ }, T.prototype.toGeoJSON = p.prototype.toGeoJSON;
+ var L = i.bA, x = k;
+ function C(dt) {
+ var Ge = new L();
+ return function(Je, We) {
+ for (var tt in Je.layers) We.writeMessage(3, M, Je.layers[tt]);
+ }(dt, Ge), Ge.finish();
+ }
+ function M(dt, Ge) {
+ var Je;
+ Ge.writeVarintField(15, dt.version || 1), Ge.writeStringField(1, dt.name || ""), Ge.writeVarintField(5, dt.extent || 4096);
+ var We = { keys: [], values: [], keycache: {}, valuecache: {} };
+ for (Je = 0; Je < dt.length; Je++) We.feature = dt.feature(Je), Ge.writeMessage(2, g, We);
+ var tt = We.keys;
+ for (Je = 0; Je < tt.length; Je++) Ge.writeStringField(3, tt[Je]);
+ var xt = We.values;
+ for (Je = 0; Je < xt.length; Je++) Ge.writeMessage(4, U, xt[Je]);
+ }
+ function g(dt, Ge) {
+ var Je = dt.feature;
+ Je.id !== void 0 && Ge.writeVarintField(1, Je.id), Ge.writeMessage(2, P, dt), Ge.writeVarintField(3, Je.type), Ge.writeMessage(4, O, Je);
+ }
+ function P(dt, Ge) {
+ var Je = dt.feature, We = dt.keys, tt = dt.values, xt = dt.keycache, Ie = dt.valuecache;
+ for (var xe in Je.properties) {
+ var ke = Je.properties[xe], vt = xt[xe];
+ if (ke !== null) {
+ vt === void 0 && (We.push(xe), xt[xe] = vt = We.length - 1), Ge.writeVarint(vt);
+ var ir = typeof ke;
+ ir !== "string" && ir !== "boolean" && ir !== "number" && (ke = JSON.stringify(ke));
+ var ar = ir + ":" + ke, vr = Ie[ar];
+ vr === void 0 && (tt.push(ke), Ie[ar] = vr = tt.length - 1), Ge.writeVarint(vr);
+ }
+ }
+ }
+ function A(dt, Ge) {
+ return (Ge << 3) + (7 & dt);
+ }
+ function z(dt) {
+ return dt << 1 ^ dt >> 31;
+ }
+ function O(dt, Ge) {
+ for (var Je = dt.loadGeometry(), We = dt.type, tt = 0, xt = 0, Ie = Je.length, xe = 0; xe < Ie; xe++) {
+ var ke = Je[xe], vt = 1;
+ We === 1 && (vt = ke.length), Ge.writeVarint(A(1, vt));
+ for (var ir = We === 3 ? ke.length - 1 : ke.length, ar = 0; ar < ir; ar++) {
+ ar === 1 && We !== 1 && Ge.writeVarint(A(2, ir - 1));
+ var vr = ke[ar].x - tt, ii = ke[ar].y - xt;
+ Ge.writeVarint(z(vr)), Ge.writeVarint(z(ii)), tt += vr, xt += ii;
+ }
+ We === 3 && Ge.writeVarint(A(7, 1));
+ }
+ }
+ function U(dt, Ge) {
+ var Je = typeof dt;
+ Je === "string" ? Ge.writeStringField(1, dt) : Je === "boolean" ? Ge.writeBooleanField(7, dt) : Je === "number" && (dt % 1 != 0 ? Ge.writeDoubleField(3, dt) : dt < 0 ? Ge.writeSVarintField(6, dt) : Ge.writeVarintField(5, dt));
+ }
+ _.exports = C, _.exports.fromVectorTileJs = C, _.exports.fromGeojsonVt = function(dt, Ge) {
+ Ge = Ge || {};
+ var Je = {};
+ for (var We in dt) Je[We] = new x(dt[We].features, Ge), Je[We].name = We, Je[We].version = Ge.version, Je[We].extent = Ge.extent;
+ return C({ layers: Je });
+ }, _.exports.GeoJSONWrapper = x;
+ var G = i.by(_.exports);
+ let Z = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: false, generateId: false, reduce: null, map: (dt) => dt }, j = Math.fround || (N = new Float32Array(1), (dt) => (N[0] = +dt, N[0]));
+ var N;
+ let H = 3, re = 5, oe = 6;
+ class _e {
+ constructor(Ge) {
+ this.options = Object.assign(Object.create(Z), Ge), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [];
+ }
+ load(Ge) {
+ let { log: Je, minZoom: We, maxZoom: tt } = this.options;
+ Je && console.time("total time");
+ let xt = `prepare ${Ge.length} points`;
+ Je && console.time(xt), this.points = Ge;
+ let Ie = [];
+ for (let ke = 0; ke < Ge.length; ke++) {
+ let vt = Ge[ke];
+ if (!vt.geometry) continue;
+ let [ir, ar] = vt.geometry.coordinates, vr = j(ge(ir)), ii = j(ie(ar));
+ Ie.push(vr, ii, 1 / 0, ke, -1, 1), this.options.reduce && Ie.push(0);
+ }
+ let xe = this.trees[tt + 1] = this._createTree(Ie);
+ Je && console.timeEnd(xt);
+ for (let ke = tt; ke >= We; ke--) {
+ let vt = +Date.now();
+ xe = this.trees[ke] = this._createTree(this._cluster(xe, ke)), Je && console.log("z%d: %d clusters in %dms", ke, xe.numItems, +Date.now() - vt);
+ }
+ return Je && console.timeEnd("total time"), this;
+ }
+ getClusters(Ge, Je) {
+ let We = ((Ge[0] + 180) % 360 + 360) % 360 - 180, tt = Math.max(-90, Math.min(90, Ge[1])), xt = Ge[2] === 180 ? 180 : ((Ge[2] + 180) % 360 + 360) % 360 - 180, Ie = Math.max(-90, Math.min(90, Ge[3]));
+ if (Ge[2] - Ge[0] >= 360) We = -180, xt = 180;
+ else if (We > xt) {
+ let ar = this.getClusters([We, tt, 180, Ie], Je), vr = this.getClusters([-180, tt, xt, Ie], Je);
+ return ar.concat(vr);
+ }
+ let xe = this.trees[this._limitZoom(Je)], ke = xe.range(ge(We), ie(Ie), ge(xt), ie(tt)), vt = xe.data, ir = [];
+ for (let ar of ke) {
+ let vr = this.stride * ar;
+ ir.push(vt[vr + re] > 1 ? Ce(vt, vr, this.clusterProps) : this.points[vt[vr + H]]);
+ }
+ return ir;
+ }
+ getChildren(Ge) {
+ let Je = this._getOriginId(Ge), We = this._getOriginZoom(Ge), tt = "No cluster with the specified id.", xt = this.trees[We];
+ if (!xt) throw new Error(tt);
+ let Ie = xt.data;
+ if (Je * this.stride >= Ie.length) throw new Error(tt);
+ let xe = this.options.radius / (this.options.extent * Math.pow(2, We - 1)), ke = xt.within(Ie[Je * this.stride], Ie[Je * this.stride + 1], xe), vt = [];
+ for (let ir of ke) {
+ let ar = ir * this.stride;
+ Ie[ar + 4] === Ge && vt.push(Ie[ar + re] > 1 ? Ce(Ie, ar, this.clusterProps) : this.points[Ie[ar + H]]);
+ }
+ if (vt.length === 0) throw new Error(tt);
+ return vt;
+ }
+ getLeaves(Ge, Je, We) {
+ let tt = [];
+ return this._appendLeaves(tt, Ge, Je = Je || 10, We = We || 0, 0), tt;
+ }
+ getTile(Ge, Je, We) {
+ let tt = this.trees[this._limitZoom(Ge)], xt = Math.pow(2, Ge), { extent: Ie, radius: xe } = this.options, ke = xe / Ie, vt = (We - ke) / xt, ir = (We + 1 + ke) / xt, ar = { features: [] };
+ return this._addTileFeatures(tt.range((Je - ke) / xt, vt, (Je + 1 + ke) / xt, ir), tt.data, Je, We, xt, ar), Je === 0 && this._addTileFeatures(tt.range(1 - ke / xt, vt, 1, ir), tt.data, xt, We, xt, ar), Je === xt - 1 && this._addTileFeatures(tt.range(0, vt, ke / xt, ir), tt.data, -1, We, xt, ar), ar.features.length ? ar : null;
+ }
+ getClusterExpansionZoom(Ge) {
+ let Je = this._getOriginZoom(Ge) - 1;
+ for (; Je <= this.options.maxZoom; ) {
+ let We = this.getChildren(Ge);
+ if (Je++, We.length !== 1) break;
+ Ge = We[0].properties.cluster_id;
+ }
+ return Je;
+ }
+ _appendLeaves(Ge, Je, We, tt, xt) {
+ let Ie = this.getChildren(Je);
+ for (let xe of Ie) {
+ let ke = xe.properties;
+ if (ke && ke.cluster ? xt + ke.point_count <= tt ? xt += ke.point_count : xt = this._appendLeaves(Ge, ke.cluster_id, We, tt, xt) : xt < tt ? xt++ : Ge.push(xe), Ge.length === We) break;
+ }
+ return xt;
+ }
+ _createTree(Ge) {
+ let Je = new i.av(Ge.length / this.stride | 0, this.options.nodeSize, Float32Array);
+ for (let We = 0; We < Ge.length; We += this.stride) Je.add(Ge[We], Ge[We + 1]);
+ return Je.finish(), Je.data = Ge, Je;
+ }
+ _addTileFeatures(Ge, Je, We, tt, xt, Ie) {
+ for (let xe of Ge) {
+ let ke = xe * this.stride, vt = Je[ke + re] > 1, ir, ar, vr;
+ if (vt) ir = Le(Je, ke, this.clusterProps), ar = Je[ke], vr = Je[ke + 1];
+ else {
+ let $r = this.points[Je[ke + H]];
+ ir = $r.properties;
+ let [di, ji] = $r.geometry.coordinates;
+ ar = ge(di), vr = ie(ji);
+ }
+ let ii = { type: 1, geometry: [[Math.round(this.options.extent * (ar * xt - We)), Math.round(this.options.extent * (vr * xt - tt))]], tags: ir }, pi;
+ pi = vt || this.options.generateId ? Je[ke + H] : this.points[Je[ke + H]].id, pi !== void 0 && (ii.id = pi), Ie.features.push(ii);
+ }
+ }
+ _limitZoom(Ge) {
+ return Math.max(this.options.minZoom, Math.min(Math.floor(+Ge), this.options.maxZoom + 1));
+ }
+ _cluster(Ge, Je) {
+ let { radius: We, extent: tt, reduce: xt, minPoints: Ie } = this.options, xe = We / (tt * Math.pow(2, Je)), ke = Ge.data, vt = [], ir = this.stride;
+ for (let ar = 0; ar < ke.length; ar += ir) {
+ if (ke[ar + 2] <= Je) continue;
+ ke[ar + 2] = Je;
+ let vr = ke[ar], ii = ke[ar + 1], pi = Ge.within(ke[ar], ke[ar + 1], xe), $r = ke[ar + re], di = $r;
+ for (let ji of pi) {
+ let In = ji * ir;
+ ke[In + 2] > Je && (di += ke[In + re]);
+ }
+ if (di > $r && di >= Ie) {
+ let ji, In = vr * $r, wi = ii * $r, On = -1, qn = ((ar / ir | 0) << 5) + (Je + 1) + this.points.length;
+ for (let Fn of pi) {
+ let ra = Fn * ir;
+ if (ke[ra + 2] <= Je) continue;
+ ke[ra + 2] = Je;
+ let la = ke[ra + re];
+ In += ke[ra] * la, wi += ke[ra + 1] * la, ke[ra + 4] = qn, xt && (ji || (ji = this._map(ke, ar, true), On = this.clusterProps.length, this.clusterProps.push(ji)), xt(ji, this._map(ke, ra)));
+ }
+ ke[ar + 4] = qn, vt.push(In / di, wi / di, 1 / 0, qn, -1, di), xt && vt.push(On);
+ } else {
+ for (let ji = 0; ji < ir; ji++) vt.push(ke[ar + ji]);
+ if (di > 1) for (let ji of pi) {
+ let In = ji * ir;
+ if (!(ke[In + 2] <= Je)) {
+ ke[In + 2] = Je;
+ for (let wi = 0; wi < ir; wi++) vt.push(ke[In + wi]);
+ }
+ }
+ }
+ }
+ return vt;
+ }
+ _getOriginId(Ge) {
+ return Ge - this.points.length >> 5;
+ }
+ _getOriginZoom(Ge) {
+ return (Ge - this.points.length) % 32;
+ }
+ _map(Ge, Je, We) {
+ if (Ge[Je + re] > 1) {
+ let Ie = this.clusterProps[Ge[Je + oe]];
+ return We ? Object.assign({}, Ie) : Ie;
+ }
+ let tt = this.points[Ge[Je + H]].properties, xt = this.options.map(tt);
+ return We && xt === tt ? Object.assign({}, xt) : xt;
+ }
+ }
+ function Ce(dt, Ge, Je) {
+ return { type: "Feature", id: dt[Ge + H], properties: Le(dt, Ge, Je), geometry: { type: "Point", coordinates: [(We = dt[Ge], 360 * (We - 0.5)), Se(dt[Ge + 1])] } };
+ var We;
+ }
+ function Le(dt, Ge, Je) {
+ let We = dt[Ge + re], tt = We >= 1e4 ? `${Math.round(We / 1e3)}k` : We >= 1e3 ? Math.round(We / 100) / 10 + "k" : We, xt = dt[Ge + oe], Ie = xt === -1 ? {} : Object.assign({}, Je[xt]);
+ return Object.assign(Ie, { cluster: true, cluster_id: dt[Ge + H], point_count: We, point_count_abbreviated: tt });
+ }
+ function ge(dt) {
+ return dt / 360 + 0.5;
+ }
+ function ie(dt) {
+ let Ge = Math.sin(dt * Math.PI / 180), Je = 0.5 - 0.25 * Math.log((1 + Ge) / (1 - Ge)) / Math.PI;
+ return Je < 0 ? 0 : Je > 1 ? 1 : Je;
+ }
+ function Se(dt) {
+ let Ge = (180 - 360 * dt) * Math.PI / 180;
+ return 360 * Math.atan(Math.exp(Ge)) / Math.PI - 90;
+ }
+ function Ee(dt, Ge, Je, We) {
+ let tt = We, xt = Ge + (Je - Ge >> 1), Ie, xe = Je - Ge, ke = dt[Ge], vt = dt[Ge + 1], ir = dt[Je], ar = dt[Je + 1];
+ for (let vr = Ge + 3; vr < Je; vr += 3) {
+ let ii = Ae(dt[vr], dt[vr + 1], ke, vt, ir, ar);
+ if (ii > tt) Ie = vr, tt = ii;
+ else if (ii === tt) {
+ let pi = Math.abs(vr - xt);
+ pi < xe && (Ie = vr, xe = pi);
+ }
+ }
+ tt > We && (Ie - Ge > 3 && Ee(dt, Ge, Ie, We), dt[Ie + 2] = tt, Je - Ie > 3 && Ee(dt, Ie, Je, We));
+ }
+ function Ae(dt, Ge, Je, We, tt, xt) {
+ let Ie = tt - Je, xe = xt - We;
+ if (Ie !== 0 || xe !== 0) {
+ let ke = ((dt - Je) * Ie + (Ge - We) * xe) / (Ie * Ie + xe * xe);
+ ke > 1 ? (Je = tt, We = xt) : ke > 0 && (Je += Ie * ke, We += xe * ke);
+ }
+ return Ie = dt - Je, xe = Ge - We, Ie * Ie + xe * xe;
+ }
+ function Be(dt, Ge, Je, We) {
+ let tt = { id: dt == null ? null : dt, type: Ge, geometry: Je, tags: We, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 };
+ if (Ge === "Point" || Ge === "MultiPoint" || Ge === "LineString") Pe(tt, Je);
+ else if (Ge === "Polygon") Pe(tt, Je[0]);
+ else if (Ge === "MultiLineString") for (let xt of Je) Pe(tt, xt);
+ else if (Ge === "MultiPolygon") for (let xt of Je) Pe(tt, xt[0]);
+ return tt;
+ }
+ function Pe(dt, Ge) {
+ for (let Je = 0; Je < Ge.length; Je += 3) dt.minX = Math.min(dt.minX, Ge[Je]), dt.minY = Math.min(dt.minY, Ge[Je + 1]), dt.maxX = Math.max(dt.maxX, Ge[Je]), dt.maxY = Math.max(dt.maxY, Ge[Je + 1]);
+ }
+ function me(dt, Ge, Je, We) {
+ if (!Ge.geometry) return;
+ let tt = Ge.geometry.coordinates;
+ if (tt && tt.length === 0) return;
+ let xt = Ge.geometry.type, Ie = Math.pow(Je.tolerance / ((1 << Je.maxZoom) * Je.extent), 2), xe = [], ke = Ge.id;
+ if (Je.promoteId ? ke = Ge.properties[Je.promoteId] : Je.generateId && (ke = We || 0), xt === "Point") De(tt, xe);
+ else if (xt === "MultiPoint") for (let vt of tt) De(vt, xe);
+ else if (xt === "LineString") ce(tt, xe, Ie, false);
+ else if (xt === "MultiLineString") {
+ if (Je.lineMetrics) {
+ for (let vt of tt) xe = [], ce(vt, xe, Ie, false), dt.push(Be(ke, "LineString", xe, Ge.properties));
+ return;
+ }
+ je(tt, xe, Ie, false);
+ } else if (xt === "Polygon") je(tt, xe, Ie, true);
+ else {
+ if (xt !== "MultiPolygon") {
+ if (xt === "GeometryCollection") {
+ for (let vt of Ge.geometry.geometries) me(dt, { id: ke, geometry: vt, properties: Ge.properties }, Je, We);
+ return;
+ }
+ throw new Error("Input data is not a valid GeoJSON object.");
+ }
+ for (let vt of tt) {
+ let ir = [];
+ je(vt, ir, Ie, true), xe.push(ir);
+ }
+ }
+ dt.push(Be(ke, xt, xe, Ge.properties));
+ }
+ function De(dt, Ge) {
+ Ge.push(lt(dt[0]), pt(dt[1]), 0);
+ }
+ function ce(dt, Ge, Je, We) {
+ let tt, xt, Ie = 0;
+ for (let ke = 0; ke < dt.length; ke++) {
+ let vt = lt(dt[ke][0]), ir = pt(dt[ke][1]);
+ Ge.push(vt, ir, 0), ke > 0 && (Ie += We ? (tt * ir - vt * xt) / 2 : Math.sqrt(Math.pow(vt - tt, 2) + Math.pow(ir - xt, 2))), tt = vt, xt = ir;
+ }
+ let xe = Ge.length - 3;
+ Ge[2] = 1, Ee(Ge, 0, xe, Je), Ge[xe + 2] = 1, Ge.size = Math.abs(Ie), Ge.start = 0, Ge.end = Ge.size;
+ }
+ function je(dt, Ge, Je, We) {
+ for (let tt = 0; tt < dt.length; tt++) {
+ let xt = [];
+ ce(dt[tt], xt, Je, We), Ge.push(xt);
+ }
+ }
+ function lt(dt) {
+ return dt / 360 + 0.5;
+ }
+ function pt(dt) {
+ let Ge = Math.sin(dt * Math.PI / 180), Je = 0.5 - 0.25 * Math.log((1 + Ge) / (1 - Ge)) / Math.PI;
+ return Je < 0 ? 0 : Je > 1 ? 1 : Je;
+ }
+ function Vt(dt, Ge, Je, We, tt, xt, Ie, xe) {
+ if (We /= Ge, xt >= (Je /= Ge) && Ie < We) return dt;
+ if (Ie < Je || xt >= We) return null;
+ let ke = [];
+ for (let vt of dt) {
+ let ir = vt.geometry, ar = vt.type, vr = tt === 0 ? vt.minX : vt.minY, ii = tt === 0 ? vt.maxX : vt.maxY;
+ if (vr >= Je && ii < We) {
+ ke.push(vt);
+ continue;
+ }
+ if (ii < Je || vr >= We) continue;
+ let pi = [];
+ if (ar === "Point" || ar === "MultiPoint") ot(ir, pi, Je, We, tt);
+ else if (ar === "LineString") ut(ir, pi, Je, We, tt, false, xe.lineMetrics);
+ else if (ar === "MultiLineString") Nt(ir, pi, Je, We, tt, false);
+ else if (ar === "Polygon") Nt(ir, pi, Je, We, tt, true);
+ else if (ar === "MultiPolygon") for (let $r of ir) {
+ let di = [];
+ Nt($r, di, Je, We, tt, true), di.length && pi.push(di);
+ }
+ if (pi.length) {
+ if (xe.lineMetrics && ar === "LineString") {
+ for (let $r of pi) ke.push(Be(vt.id, ar, $r, vt.tags));
+ continue;
+ }
+ ar !== "LineString" && ar !== "MultiLineString" || (pi.length === 1 ? (ar = "LineString", pi = pi[0]) : ar = "MultiLineString"), ar !== "Point" && ar !== "MultiPoint" || (ar = pi.length === 3 ? "Point" : "MultiPoint"), ke.push(Be(vt.id, ar, pi, vt.tags));
+ }
+ }
+ return ke.length ? ke : null;
+ }
+ function ot(dt, Ge, Je, We, tt) {
+ for (let xt = 0; xt < dt.length; xt += 3) {
+ let Ie = dt[xt + tt];
+ Ie >= Je && Ie <= We && $t(Ge, dt[xt], dt[xt + 1], dt[xt + 2]);
+ }
+ }
+ function ut(dt, Ge, Je, We, tt, xt, Ie) {
+ let xe = Wt(dt), ke = tt === 0 ? sr : Tr, vt, ir, ar = dt.start;
+ for (let di = 0; di < dt.length - 3; di += 3) {
+ let ji = dt[di], In = dt[di + 1], wi = dt[di + 2], On = dt[di + 3], qn = dt[di + 4], Fn = tt === 0 ? ji : In, ra = tt === 0 ? On : qn, la = false;
+ Ie && (vt = Math.sqrt(Math.pow(ji - On, 2) + Math.pow(In - qn, 2))), Fn < Je ? ra > Je && (ir = ke(xe, ji, In, On, qn, Je), Ie && (xe.start = ar + vt * ir)) : Fn > We ? ra < We && (ir = ke(xe, ji, In, On, qn, We), Ie && (xe.start = ar + vt * ir)) : $t(xe, ji, In, wi), ra < Je && Fn >= Je && (ir = ke(xe, ji, In, On, qn, Je), la = true), ra > We && Fn <= We && (ir = ke(xe, ji, In, On, qn, We), la = true), !xt && la && (Ie && (xe.end = ar + vt * ir), Ge.push(xe), xe = Wt(dt)), Ie && (ar += vt);
+ }
+ let vr = dt.length - 3, ii = dt[vr], pi = dt[vr + 1], $r = tt === 0 ? ii : pi;
+ $r >= Je && $r <= We && $t(xe, ii, pi, dt[vr + 2]), vr = xe.length - 3, xt && vr >= 3 && (xe[vr] !== xe[0] || xe[vr + 1] !== xe[1]) && $t(xe, xe[0], xe[1], xe[2]), xe.length && Ge.push(xe);
+ }
+ function Wt(dt) {
+ let Ge = [];
+ return Ge.size = dt.size, Ge.start = dt.start, Ge.end = dt.end, Ge;
+ }
+ function Nt(dt, Ge, Je, We, tt, xt) {
+ for (let Ie of dt) ut(Ie, Ge, Je, We, tt, xt, false);
+ }
+ function $t(dt, Ge, Je, We) {
+ dt.push(Ge, Je, We);
+ }
+ function sr(dt, Ge, Je, We, tt, xt) {
+ let Ie = (xt - Ge) / (We - Ge);
+ return $t(dt, xt, Je + (tt - Je) * Ie, 1), Ie;
+ }
+ function Tr(dt, Ge, Je, We, tt, xt) {
+ let Ie = (xt - Je) / (tt - Je);
+ return $t(dt, Ge + (We - Ge) * Ie, xt, 1), Ie;
+ }
+ function fr(dt, Ge) {
+ let Je = [];
+ for (let We = 0; We < dt.length; We++) {
+ let tt = dt[We], xt = tt.type, Ie;
+ if (xt === "Point" || xt === "MultiPoint" || xt === "LineString") Ie = $e(tt.geometry, Ge);
+ else if (xt === "MultiLineString" || xt === "Polygon") {
+ Ie = [];
+ for (let xe of tt.geometry) Ie.push($e(xe, Ge));
+ } else if (xt === "MultiPolygon") {
+ Ie = [];
+ for (let xe of tt.geometry) {
+ let ke = [];
+ for (let vt of xe) ke.push($e(vt, Ge));
+ Ie.push(ke);
+ }
+ }
+ Je.push(Be(tt.id, xt, Ie, tt.tags));
+ }
+ return Je;
+ }
+ function $e(dt, Ge) {
+ let Je = [];
+ Je.size = dt.size, dt.start !== void 0 && (Je.start = dt.start, Je.end = dt.end);
+ for (let We = 0; We < dt.length; We += 3) Je.push(dt[We] + Ge, dt[We + 1], dt[We + 2]);
+ return Je;
+ }
+ function St(dt, Ge) {
+ if (dt.transformed) return dt;
+ let Je = 1 << dt.z, We = dt.x, tt = dt.y;
+ for (let xt of dt.features) {
+ let Ie = xt.geometry, xe = xt.type;
+ if (xt.geometry = [], xe === 1) for (let ke = 0; ke < Ie.length; ke += 2) xt.geometry.push(Qt(Ie[ke], Ie[ke + 1], Ge, Je, We, tt));
+ else for (let ke = 0; ke < Ie.length; ke++) {
+ let vt = [];
+ for (let ir = 0; ir < Ie[ke].length; ir += 2) vt.push(Qt(Ie[ke][ir], Ie[ke][ir + 1], Ge, Je, We, tt));
+ xt.geometry.push(vt);
+ }
+ }
+ return dt.transformed = true, dt;
+ }
+ function Qt(dt, Ge, Je, We, tt, xt) {
+ return [Math.round(Je * (dt * We - tt)), Math.round(Je * (Ge * We - xt))];
+ }
+ function Gt(dt, Ge, Je, We, tt) {
+ let xt = Ge === tt.maxZoom ? 0 : tt.tolerance / ((1 << Ge) * tt.extent), Ie = { features: [], numPoints: 0, numSimplified: 0, numFeatures: dt.length, source: null, x: Je, y: We, z: Ge, transformed: false, minX: 2, minY: 1, maxX: -1, maxY: 0 };
+ for (let xe of dt) _t(Ie, xe, xt, tt);
+ return Ie;
+ }
+ function _t(dt, Ge, Je, We) {
+ let tt = Ge.geometry, xt = Ge.type, Ie = [];
+ if (dt.minX = Math.min(dt.minX, Ge.minX), dt.minY = Math.min(dt.minY, Ge.minY), dt.maxX = Math.max(dt.maxX, Ge.maxX), dt.maxY = Math.max(dt.maxY, Ge.maxY), xt === "Point" || xt === "MultiPoint") for (let xe = 0; xe < tt.length; xe += 3) Ie.push(tt[xe], tt[xe + 1]), dt.numPoints++, dt.numSimplified++;
+ else if (xt === "LineString") It(Ie, tt, dt, Je, false, false);
+ else if (xt === "MultiLineString" || xt === "Polygon") for (let xe = 0; xe < tt.length; xe++) It(Ie, tt[xe], dt, Je, xt === "Polygon", xe === 0);
+ else if (xt === "MultiPolygon") for (let xe = 0; xe < tt.length; xe++) {
+ let ke = tt[xe];
+ for (let vt = 0; vt < ke.length; vt++) It(Ie, ke[vt], dt, Je, true, vt === 0);
+ }
+ if (Ie.length) {
+ let xe = Ge.tags || null;
+ if (xt === "LineString" && We.lineMetrics) {
+ xe = {};
+ for (let vt in Ge.tags) xe[vt] = Ge.tags[vt];
+ xe.mapbox_clip_start = tt.start / tt.size, xe.mapbox_clip_end = tt.end / tt.size;
+ }
+ let ke = { geometry: Ie, type: xt === "Polygon" || xt === "MultiPolygon" ? 3 : xt === "LineString" || xt === "MultiLineString" ? 2 : 1, tags: xe };
+ Ge.id !== null && (ke.id = Ge.id), dt.features.push(ke);
+ }
+ }
+ function It(dt, Ge, Je, We, tt, xt) {
+ let Ie = We * We;
+ if (We > 0 && Ge.size < (tt ? Ie : We)) return void (Je.numPoints += Ge.length / 3);
+ let xe = [];
+ for (let ke = 0; ke < Ge.length; ke += 3) (We === 0 || Ge[ke + 2] > Ie) && (Je.numSimplified++, xe.push(Ge[ke], Ge[ke + 1])), Je.numPoints++;
+ tt && function(ke, vt) {
+ let ir = 0;
+ for (let ar = 0, vr = ke.length, ii = vr - 2; ar < vr; ii = ar, ar += 2) ir += (ke[ar] - ke[ii]) * (ke[ar + 1] + ke[ii + 1]);
+ if (ir > 0 === vt) for (let ar = 0, vr = ke.length; ar < vr / 2; ar += 2) {
+ let ii = ke[ar], pi = ke[ar + 1];
+ ke[ar] = ke[vr - 2 - ar], ke[ar + 1] = ke[vr - 1 - ar], ke[vr - 2 - ar] = ii, ke[vr - 1 - ar] = pi;
+ }
+ }(xe, xt), dt.push(xe);
+ }
+ let mt = { maxZoom: 14, indexMaxZoom: 5, indexMaxPoints: 1e5, tolerance: 3, extent: 4096, buffer: 64, lineMetrics: false, promoteId: null, generateId: false, debug: 0 };
+ class er {
+ constructor(Ge, Je) {
+ let We = (Je = this.options = function(xt, Ie) {
+ for (let xe in Ie) xt[xe] = Ie[xe];
+ return xt;
+ }(Object.create(mt), Je)).debug;
+ if (We && console.time("preprocess data"), Je.maxZoom < 0 || Je.maxZoom > 24) throw new Error("maxZoom should be in the 0-24 range");
+ if (Je.promoteId && Je.generateId) throw new Error("promoteId and generateId cannot be used together.");
+ let tt = function(xt, Ie) {
+ let xe = [];
+ if (xt.type === "FeatureCollection") for (let ke = 0; ke < xt.features.length; ke++) me(xe, xt.features[ke], Ie, ke);
+ else me(xe, xt.type === "Feature" ? xt : { geometry: xt }, Ie);
+ return xe;
+ }(Ge, Je);
+ this.tiles = {}, this.tileCoords = [], We && (console.timeEnd("preprocess data"), console.log("index: maxZoom: %d, maxPoints: %d", Je.indexMaxZoom, Je.indexMaxPoints), console.time("generate tiles"), this.stats = {}, this.total = 0), tt = function(xt, Ie) {
+ let xe = Ie.buffer / Ie.extent, ke = xt, vt = Vt(xt, 1, -1 - xe, xe, 0, -1, 2, Ie), ir = Vt(xt, 1, 1 - xe, 2 + xe, 0, -1, 2, Ie);
+ return (vt || ir) && (ke = Vt(xt, 1, -xe, 1 + xe, 0, -1, 2, Ie) || [], vt && (ke = fr(vt, 1).concat(ke)), ir && (ke = ke.concat(fr(ir, -1)))), ke;
+ }(tt, Je), tt.length && this.splitTile(tt, 0, 0, 0), We && (tt.length && console.log("features: %d, points: %d", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd("generate tiles"), console.log("tiles generated:", this.total, JSON.stringify(this.stats)));
+ }
+ splitTile(Ge, Je, We, tt, xt, Ie, xe) {
+ let ke = [Ge, Je, We, tt], vt = this.options, ir = vt.debug;
+ for (; ke.length; ) {
+ tt = ke.pop(), We = ke.pop(), Je = ke.pop(), Ge = ke.pop();
+ let ar = 1 << Je, vr = lr(Je, We, tt), ii = this.tiles[vr];
+ if (!ii && (ir > 1 && console.time("creation"), ii = this.tiles[vr] = Gt(Ge, Je, We, tt, vt), this.tileCoords.push({ z: Je, x: We, y: tt }), ir)) {
+ ir > 1 && (console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", Je, We, tt, ii.numFeatures, ii.numPoints, ii.numSimplified), console.timeEnd("creation"));
+ let la = `z${Je}`;
+ this.stats[la] = (this.stats[la] || 0) + 1, this.total++;
+ }
+ if (ii.source = Ge, xt == null) {
+ if (Je === vt.indexMaxZoom || ii.numPoints <= vt.indexMaxPoints) continue;
+ } else {
+ if (Je === vt.maxZoom || Je === xt) continue;
+ if (xt != null) {
+ let la = xt - Je;
+ if (We !== Ie >> la || tt !== xe >> la) continue;
+ }
+ }
+ if (ii.source = null, Ge.length === 0) continue;
+ ir > 1 && console.time("clipping");
+ let pi = 0.5 * vt.buffer / vt.extent, $r = 0.5 - pi, di = 0.5 + pi, ji = 1 + pi, In = null, wi = null, On = null, qn = null, Fn = Vt(Ge, ar, We - pi, We + di, 0, ii.minX, ii.maxX, vt), ra = Vt(Ge, ar, We + $r, We + ji, 0, ii.minX, ii.maxX, vt);
+ Ge = null, Fn && (In = Vt(Fn, ar, tt - pi, tt + di, 1, ii.minY, ii.maxY, vt), wi = Vt(Fn, ar, tt + $r, tt + ji, 1, ii.minY, ii.maxY, vt), Fn = null), ra && (On = Vt(ra, ar, tt - pi, tt + di, 1, ii.minY, ii.maxY, vt), qn = Vt(ra, ar, tt + $r, tt + ji, 1, ii.minY, ii.maxY, vt), ra = null), ir > 1 && console.timeEnd("clipping"), ke.push(In || [], Je + 1, 2 * We, 2 * tt), ke.push(wi || [], Je + 1, 2 * We, 2 * tt + 1), ke.push(On || [], Je + 1, 2 * We + 1, 2 * tt), ke.push(qn || [], Je + 1, 2 * We + 1, 2 * tt + 1);
+ }
+ }
+ getTile(Ge, Je, We) {
+ Ge = +Ge, Je = +Je, We = +We;
+ let tt = this.options, { extent: xt, debug: Ie } = tt;
+ if (Ge < 0 || Ge > 24) return null;
+ let xe = 1 << Ge, ke = lr(Ge, Je = Je + xe & xe - 1, We);
+ if (this.tiles[ke]) return St(this.tiles[ke], xt);
+ Ie > 1 && console.log("drilling down to z%d-%d-%d", Ge, Je, We);
+ let vt, ir = Ge, ar = Je, vr = We;
+ for (; !vt && ir > 0; ) ir--, ar >>= 1, vr >>= 1, vt = this.tiles[lr(ir, ar, vr)];
+ return vt && vt.source ? (Ie > 1 && (console.log("found parent tile z%d-%d-%d", ir, ar, vr), console.time("drilling down")), this.splitTile(vt.source, ir, ar, vr, Ge, Je, We), Ie > 1 && console.timeEnd("drilling down"), this.tiles[ke] ? St(this.tiles[ke], xt) : null) : null;
+ }
+ }
+ function lr(dt, Ge, Je) {
+ return 32 * ((1 << dt) * Je + Ge) + dt;
+ }
+ function wr(dt, Ge) {
+ return Ge ? dt.properties[Ge] : dt.id;
+ }
+ function Lr(dt, Ge) {
+ if (dt == null) return true;
+ if (dt.type === "Feature") return wr(dt, Ge) != null;
+ if (dt.type === "FeatureCollection") {
+ let Je = /* @__PURE__ */ new Set();
+ for (let We of dt.features) {
+ let tt = wr(We, Ge);
+ if (tt == null || Je.has(tt)) return false;
+ Je.add(tt);
+ }
+ return true;
+ }
+ return false;
+ }
+ function ti(dt, Ge) {
+ let Je = /* @__PURE__ */ new Map();
+ if (dt != null) if (dt.type === "Feature") Je.set(wr(dt, Ge), dt);
+ else for (let We of dt.features) Je.set(wr(We, Ge), We);
+ return Je;
+ }
+ class Br extends u {
+ constructor() {
+ super(...arguments), this._dataUpdateable = /* @__PURE__ */ new Map();
+ }
+ loadVectorTile(Ge, Je) {
+ return i._(this, void 0, void 0, function* () {
+ let We = Ge.tileID.canonical;
+ if (!this._geoJSONIndex) throw new Error("Unable to parse the data into a cluster or geojson");
+ let tt = this._geoJSONIndex.getTile(We.z, We.x, We.y);
+ if (!tt) return null;
+ let xt = new class {
+ constructor(xe) {
+ this.layers = { _geojsonTileLayer: this }, this.name = "_geojsonTileLayer", this.extent = i.X, this.length = xe.length, this._features = xe;
+ }
+ feature(xe) {
+ return new class {
+ constructor(ke) {
+ this._feature = ke, this.extent = i.X, this.type = ke.type, this.properties = ke.tags, "id" in ke && !isNaN(ke.id) && (this.id = parseInt(ke.id, 10));
+ }
+ loadGeometry() {
+ if (this._feature.type === 1) {
+ let ke = [];
+ for (let vt of this._feature.geometry) ke.push([new i.P(vt[0], vt[1])]);
+ return ke;
+ }
+ {
+ let ke = [];
+ for (let vt of this._feature.geometry) {
+ let ir = [];
+ for (let ar of vt) ir.push(new i.P(ar[0], ar[1]));
+ ke.push(ir);
+ }
+ return ke;
+ }
+ }
+ toGeoJSON(ke, vt, ir) {
+ return v.call(this, ke, vt, ir);
+ }
+ }(this._features[xe]);
+ }
+ }(tt.features), Ie = G(xt);
+ return Ie.byteOffset === 0 && Ie.byteLength === Ie.buffer.byteLength || (Ie = new Uint8Array(Ie)), { vectorTile: xt, rawData: Ie.buffer };
+ });
+ }
+ loadData(Ge) {
+ return i._(this, void 0, void 0, function* () {
+ var Je;
+ (Je = this._pendingRequest) === null || Je === void 0 || Je.abort();
+ let We = !!(Ge && Ge.request && Ge.request.collectResourceTiming) && new i.bv(Ge.request);
+ this._pendingRequest = new AbortController();
+ try {
+ this._pendingData = this.loadAndProcessGeoJSON(Ge, this._pendingRequest), this._geoJSONIndex = Ge.cluster ? new _e(function({ superclusterOptions: Ie, clusterProperties: xe }) {
+ if (!xe || !Ie) return Ie;
+ let ke = {}, vt = {}, ir = { accumulated: null, zoom: 0 }, ar = { properties: null }, vr = Object.keys(xe);
+ for (let ii of vr) {
+ let [pi, $r] = xe[ii], di = i.bC($r), ji = i.bC(typeof pi == "string" ? [pi, ["accumulated"], ["get", ii]] : pi);
+ ke[ii] = di.value, vt[ii] = ji.value;
+ }
+ return Ie.map = (ii) => {
+ ar.properties = ii;
+ let pi = {};
+ for (let $r of vr) pi[$r] = ke[$r].evaluate(ir, ar);
+ return pi;
+ }, Ie.reduce = (ii, pi) => {
+ ar.properties = pi;
+ for (let $r of vr) ir.accumulated = ii[$r], ii[$r] = vt[$r].evaluate(ir, ar);
+ }, Ie;
+ }(Ge)).load((yield this._pendingData).features) : (tt = yield this._pendingData, new er(tt, Ge.geojsonVtOptions)), this.loaded = {};
+ let xt = {};
+ if (We) {
+ let Ie = We.finish();
+ Ie && (xt.resourceTiming = {}, xt.resourceTiming[Ge.source] = JSON.parse(JSON.stringify(Ie)));
+ }
+ return xt;
+ } catch (xt) {
+ if (delete this._pendingRequest, i.bB(xt)) return { abandoned: true };
+ throw xt;
+ }
+ var tt;
+ });
+ }
+ getData() {
+ return i._(this, void 0, void 0, function* () {
+ return this._pendingData;
+ });
+ }
+ reloadTile(Ge) {
+ let Je = this.loaded;
+ return Je && Je[Ge.uid] ? super.reloadTile(Ge) : this.loadTile(Ge);
+ }
+ loadAndProcessGeoJSON(Ge, Je) {
+ return i._(this, void 0, void 0, function* () {
+ let We = yield this.loadGeoJSON(Ge, Je);
+ if (delete this._pendingRequest, typeof We != "object") throw new Error(`Input data given to '${Ge.source}' is not a valid GeoJSON object.`);
+ if (d(We, true), Ge.filter) {
+ let tt = i.bC(Ge.filter, { type: "boolean", "property-type": "data-driven", overridable: false, transition: false });
+ if (tt.result === "error") throw new Error(tt.value.map((Ie) => `${Ie.key}: ${Ie.message}`).join(", "));
+ We = { type: "FeatureCollection", features: We.features.filter((Ie) => tt.value.evaluate({ zoom: 0 }, Ie)) };
+ }
+ return We;
+ });
+ }
+ loadGeoJSON(Ge, Je) {
+ return i._(this, void 0, void 0, function* () {
+ let { promoteId: We } = Ge;
+ if (Ge.request) {
+ let tt = yield i.h(Ge.request, Je);
+ return this._dataUpdateable = Lr(tt.data, We) ? ti(tt.data, We) : void 0, tt.data;
+ }
+ if (typeof Ge.data == "string") try {
+ let tt = JSON.parse(Ge.data);
+ return this._dataUpdateable = Lr(tt, We) ? ti(tt, We) : void 0, tt;
+ } catch (tt) {
+ throw new Error(`Input data given to '${Ge.source}' is not a valid GeoJSON object.`);
+ }
+ if (!Ge.dataDiff) throw new Error(`Input data given to '${Ge.source}' is not a valid GeoJSON object.`);
+ if (!this._dataUpdateable) throw new Error(`Cannot update existing geojson data in ${Ge.source}`);
+ return function(tt, xt, Ie) {
+ var xe, ke, vt, ir;
+ if (xt.removeAll && tt.clear(), xt.remove) for (let ar of xt.remove) tt.delete(ar);
+ if (xt.add) for (let ar of xt.add) {
+ let vr = wr(ar, Ie);
+ vr != null && tt.set(vr, ar);
+ }
+ if (xt.update) for (let ar of xt.update) {
+ let vr = tt.get(ar.id);
+ if (vr == null) continue;
+ let ii = !ar.removeAllProperties && (((xe = ar.removeProperties) === null || xe === void 0 ? void 0 : xe.length) > 0 || ((ke = ar.addOrUpdateProperties) === null || ke === void 0 ? void 0 : ke.length) > 0);
+ if ((ar.newGeometry || ar.removeAllProperties || ii) && (vr = Object.assign({}, vr), tt.set(ar.id, vr), ii && (vr.properties = Object.assign({}, vr.properties))), ar.newGeometry && (vr.geometry = ar.newGeometry), ar.removeAllProperties) vr.properties = {};
+ else if (((vt = ar.removeProperties) === null || vt === void 0 ? void 0 : vt.length) > 0) for (let pi of ar.removeProperties) Object.prototype.hasOwnProperty.call(vr.properties, pi) && delete vr.properties[pi];
+ if (((ir = ar.addOrUpdateProperties) === null || ir === void 0 ? void 0 : ir.length) > 0) for (let { key: pi, value: $r } of ar.addOrUpdateProperties) vr.properties[pi] = $r;
+ }
+ }(this._dataUpdateable, Ge.dataDiff, We), { type: "FeatureCollection", features: Array.from(this._dataUpdateable.values()) };
+ });
+ }
+ removeSource(Ge) {
+ return i._(this, void 0, void 0, function* () {
+ this._pendingRequest && this._pendingRequest.abort();
+ });
+ }
+ getClusterExpansionZoom(Ge) {
+ return this._geoJSONIndex.getClusterExpansionZoom(Ge.clusterId);
+ }
+ getClusterChildren(Ge) {
+ return this._geoJSONIndex.getChildren(Ge.clusterId);
+ }
+ getClusterLeaves(Ge) {
+ return this._geoJSONIndex.getLeaves(Ge.clusterId, Ge.limit, Ge.offset);
+ }
+ }
+ class Vr {
+ constructor(Ge) {
+ this.self = Ge, this.actor = new i.F(Ge), this.layerIndexes = {}, this.availableImages = {}, this.workerSources = {}, this.demWorkerSources = {}, this.externalWorkerSourceTypes = {}, this.self.registerWorkerSource = (Je, We) => {
+ if (this.externalWorkerSourceTypes[Je]) throw new Error(`Worker source with name "${Je}" already registered.`);
+ this.externalWorkerSourceTypes[Je] = We;
+ }, this.self.addProtocol = i.bi, this.self.removeProtocol = i.bj, this.self.registerRTLTextPlugin = (Je) => {
+ if (i.bD.isParsed()) throw new Error("RTL text plugin already registered.");
+ i.bD.setMethods(Je);
+ }, this.actor.registerMessageHandler("LDT", (Je, We) => this._getDEMWorkerSource(Je, We.source).loadTile(We)), this.actor.registerMessageHandler("RDT", (Je, We) => i._(this, void 0, void 0, function* () {
+ this._getDEMWorkerSource(Je, We.source).removeTile(We);
+ })), this.actor.registerMessageHandler("GCEZ", (Je, We) => i._(this, void 0, void 0, function* () {
+ return this._getWorkerSource(Je, We.type, We.source).getClusterExpansionZoom(We);
+ })), this.actor.registerMessageHandler("GCC", (Je, We) => i._(this, void 0, void 0, function* () {
+ return this._getWorkerSource(Je, We.type, We.source).getClusterChildren(We);
+ })), this.actor.registerMessageHandler("GCL", (Je, We) => i._(this, void 0, void 0, function* () {
+ return this._getWorkerSource(Je, We.type, We.source).getClusterLeaves(We);
+ })), this.actor.registerMessageHandler("LD", (Je, We) => this._getWorkerSource(Je, We.type, We.source).loadData(We)), this.actor.registerMessageHandler("GD", (Je, We) => this._getWorkerSource(Je, We.type, We.source).getData()), this.actor.registerMessageHandler("LT", (Je, We) => this._getWorkerSource(Je, We.type, We.source).loadTile(We)), this.actor.registerMessageHandler("RT", (Je, We) => this._getWorkerSource(Je, We.type, We.source).reloadTile(We)), this.actor.registerMessageHandler("AT", (Je, We) => this._getWorkerSource(Je, We.type, We.source).abortTile(We)), this.actor.registerMessageHandler("RMT", (Je, We) => this._getWorkerSource(Je, We.type, We.source).removeTile(We)), this.actor.registerMessageHandler("RS", (Je, We) => i._(this, void 0, void 0, function* () {
+ if (!this.workerSources[Je] || !this.workerSources[Je][We.type] || !this.workerSources[Je][We.type][We.source]) return;
+ let tt = this.workerSources[Je][We.type][We.source];
+ delete this.workerSources[Je][We.type][We.source], tt.removeSource !== void 0 && tt.removeSource(We);
+ })), this.actor.registerMessageHandler("RM", (Je) => i._(this, void 0, void 0, function* () {
+ delete this.layerIndexes[Je], delete this.availableImages[Je], delete this.workerSources[Je], delete this.demWorkerSources[Je];
+ })), this.actor.registerMessageHandler("SR", (Je, We) => i._(this, void 0, void 0, function* () {
+ this.referrer = We;
+ })), this.actor.registerMessageHandler("SRPS", (Je, We) => this._syncRTLPluginState(Je, We)), this.actor.registerMessageHandler("IS", (Je, We) => i._(this, void 0, void 0, function* () {
+ this.self.importScripts(We);
+ })), this.actor.registerMessageHandler("SI", (Je, We) => this._setImages(Je, We)), this.actor.registerMessageHandler("UL", (Je, We) => i._(this, void 0, void 0, function* () {
+ this._getLayerIndex(Je).update(We.layers, We.removedIds);
+ })), this.actor.registerMessageHandler("SL", (Je, We) => i._(this, void 0, void 0, function* () {
+ this._getLayerIndex(Je).replace(We);
+ }));
+ }
+ _setImages(Ge, Je) {
+ return i._(this, void 0, void 0, function* () {
+ this.availableImages[Ge] = Je;
+ for (let We in this.workerSources[Ge]) {
+ let tt = this.workerSources[Ge][We];
+ for (let xt in tt) tt[xt].availableImages = Je;
+ }
+ });
+ }
+ _syncRTLPluginState(Ge, Je) {
+ return i._(this, void 0, void 0, function* () {
+ if (i.bD.isParsed()) return i.bD.getState();
+ if (Je.pluginStatus !== "loading") return i.bD.setState(Je), Je;
+ let We = Je.pluginURL;
+ if (this.self.importScripts(We), i.bD.isParsed()) {
+ let tt = { pluginStatus: "loaded", pluginURL: We };
+ return i.bD.setState(tt), tt;
+ }
+ throw i.bD.setState({ pluginStatus: "error", pluginURL: "" }), new Error(`RTL Text Plugin failed to import scripts from ${We}`);
+ });
+ }
+ _getAvailableImages(Ge) {
+ let Je = this.availableImages[Ge];
+ return Je || (Je = []), Je;
+ }
+ _getLayerIndex(Ge) {
+ let Je = this.layerIndexes[Ge];
+ return Je || (Je = this.layerIndexes[Ge] = new a()), Je;
+ }
+ _getWorkerSource(Ge, Je, We) {
+ if (this.workerSources[Ge] || (this.workerSources[Ge] = {}), this.workerSources[Ge][Je] || (this.workerSources[Ge][Je] = {}), !this.workerSources[Ge][Je][We]) {
+ let tt = { sendAsync: (xt, Ie) => (xt.targetMapId = Ge, this.actor.sendAsync(xt, Ie)) };
+ switch (Je) {
+ case "vector":
+ this.workerSources[Ge][Je][We] = new u(tt, this._getLayerIndex(Ge), this._getAvailableImages(Ge));
+ break;
+ case "geojson":
+ this.workerSources[Ge][Je][We] = new Br(tt, this._getLayerIndex(Ge), this._getAvailableImages(Ge));
+ break;
+ default:
+ this.workerSources[Ge][Je][We] = new this.externalWorkerSourceTypes[Je](tt, this._getLayerIndex(Ge), this._getAvailableImages(Ge));
+ }
+ }
+ return this.workerSources[Ge][Je][We];
+ }
+ _getDEMWorkerSource(Ge, Je) {
+ return this.demWorkerSources[Ge] || (this.demWorkerSources[Ge] = {}), this.demWorkerSources[Ge][Je] || (this.demWorkerSources[Ge][Je] = new c()), this.demWorkerSources[Ge][Je];
+ }
+ }
+ return i.i(self) && (self.worker = new Vr(self)), Vr;
+ }), r("index", ["exports", "./shared"], function(i, a) {
+ var o = "4.7.1";
+ let s, l, u = { now: typeof performance != "undefined" && performance && performance.now ? performance.now.bind(performance) : Date.now.bind(Date), frameAsync: (ue) => new Promise((w, B) => {
+ let Q = requestAnimationFrame(w);
+ ue.signal.addEventListener("abort", () => {
+ cancelAnimationFrame(Q), B(a.c());
+ });
+ }), getImageData(ue, w = 0) {
+ return this.getImageCanvasContext(ue).getImageData(-w, -w, ue.width + 2 * w, ue.height + 2 * w);
+ }, getImageCanvasContext(ue) {
+ let w = window.document.createElement("canvas"), B = w.getContext("2d", { willReadFrequently: true });
+ if (!B) throw new Error("failed to create canvas 2d context");
+ return w.width = ue.width, w.height = ue.height, B.drawImage(ue, 0, 0, ue.width, ue.height), B;
+ }, resolveURL: (ue) => (s || (s = document.createElement("a")), s.href = ue, s.href), hardwareConcurrency: typeof navigator != "undefined" && navigator.hardwareConcurrency || 4, get prefersReducedMotion() {
+ return !!matchMedia && (l == null && (l = matchMedia("(prefers-reduced-motion: reduce)")), l.matches);
+ } };
+ class c {
+ static testProp(w) {
+ if (!c.docStyle) return w[0];
+ for (let B = 0; B < w.length; B++) if (w[B] in c.docStyle) return w[B];
+ return w[0];
+ }
+ static create(w, B, Q) {
+ let ee = window.document.createElement(w);
+ return B !== void 0 && (ee.className = B), Q && Q.appendChild(ee), ee;
+ }
+ static createNS(w, B) {
+ return window.document.createElementNS(w, B);
+ }
+ static disableDrag() {
+ c.docStyle && c.selectProp && (c.userSelect = c.docStyle[c.selectProp], c.docStyle[c.selectProp] = "none");
+ }
+ static enableDrag() {
+ c.docStyle && c.selectProp && (c.docStyle[c.selectProp] = c.userSelect);
+ }
+ static setTransform(w, B) {
+ w.style[c.transformProp] = B;
+ }
+ static addEventListener(w, B, Q, ee = {}) {
+ w.addEventListener(B, Q, "passive" in ee ? ee : ee.capture);
+ }
+ static removeEventListener(w, B, Q, ee = {}) {
+ w.removeEventListener(B, Q, "passive" in ee ? ee : ee.capture);
+ }
+ static suppressClickInternal(w) {
+ w.preventDefault(), w.stopPropagation(), window.removeEventListener("click", c.suppressClickInternal, true);
+ }
+ static suppressClick() {
+ window.addEventListener("click", c.suppressClickInternal, true), window.setTimeout(() => {
+ window.removeEventListener("click", c.suppressClickInternal, true);
+ }, 0);
+ }
+ static getScale(w) {
+ let B = w.getBoundingClientRect();
+ return { x: B.width / w.offsetWidth || 1, y: B.height / w.offsetHeight || 1, boundingClientRect: B };
+ }
+ static getPoint(w, B, Q) {
+ let ee = B.boundingClientRect;
+ return new a.P((Q.clientX - ee.left) / B.x - w.clientLeft, (Q.clientY - ee.top) / B.y - w.clientTop);
+ }
+ static mousePos(w, B) {
+ let Q = c.getScale(w);
+ return c.getPoint(w, Q, B);
+ }
+ static touchPos(w, B) {
+ let Q = [], ee = c.getScale(w);
+ for (let le = 0; le < B.length; le++) Q.push(c.getPoint(w, ee, B[le]));
+ return Q;
+ }
+ static mouseButton(w) {
+ return w.button;
+ }
+ static remove(w) {
+ w.parentNode && w.parentNode.removeChild(w);
+ }
+ }
+ c.docStyle = typeof window != "undefined" && window.document && window.document.documentElement.style, c.selectProp = c.testProp(["userSelect", "MozUserSelect", "WebkitUserSelect", "msUserSelect"]), c.transformProp = c.testProp(["transform", "WebkitTransform"]);
+ let f = { supported: false, testSupport: function(ue) {
+ !v && d && (_ ? b(ue) : h = ue);
+ } }, h, d, v = false, _ = false;
+ function b(ue) {
+ let w = ue.createTexture();
+ ue.bindTexture(ue.TEXTURE_2D, w);
+ try {
+ if (ue.texImage2D(ue.TEXTURE_2D, 0, ue.RGBA, ue.RGBA, ue.UNSIGNED_BYTE, d), ue.isContextLost()) return;
+ f.supported = true;
+ } catch (B) {
+ }
+ ue.deleteTexture(w), v = true;
+ }
+ var p;
+ typeof document != "undefined" && (d = document.createElement("img"), d.onload = () => {
+ h && b(h), h = null, _ = true;
+ }, d.onerror = () => {
+ v = true, h = null;
+ }, d.src = "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="), function(ue) {
+ let w, B, Q, ee;
+ ue.resetRequestQueue = () => {
+ w = [], B = 0, Q = 0, ee = {};
+ }, ue.addThrottleControl = (st) => {
+ let Tt = Q++;
+ return ee[Tt] = st, Tt;
+ }, ue.removeThrottleControl = (st) => {
+ delete ee[st], Oe();
+ }, ue.getImage = (st, Tt, Yt = true) => new Promise((Kt, xr) => {
+ f.supported && (st.headers || (st.headers = {}), st.headers.accept = "image/webp,*/*"), a.e(st, { type: "image" }), w.push({ abortController: Tt, requestParameters: st, supportImageRefresh: Yt, state: "queued", onError: (Ir) => {
+ xr(Ir);
+ }, onSuccess: (Ir) => {
+ Kt(Ir);
+ } }), Oe();
+ });
+ let le = (st) => a._(this, void 0, void 0, function* () {
+ st.state = "running";
+ let { requestParameters: Tt, supportImageRefresh: Yt, onError: Kt, onSuccess: xr, abortController: Ir } = st, ve = Yt === false && !a.i(self) && !a.g(Tt.url) && (!Tt.headers || Object.keys(Tt.headers).reduce((qe, et) => qe && et === "accept", true));
+ B++;
+ let be = ve ? Ze(Tt, Ir) : a.m(Tt, Ir);
+ try {
+ let qe = yield be;
+ delete st.abortController, st.state = "completed", qe.data instanceof HTMLImageElement || a.b(qe.data) ? xr(qe) : qe.data && xr({ data: yield (Re = qe.data, typeof createImageBitmap == "function" ? a.d(Re) : a.f(Re)), cacheControl: qe.cacheControl, expires: qe.expires });
+ } catch (qe) {
+ delete st.abortController, Kt(qe);
+ } finally {
+ B--, Oe();
+ }
+ var Re;
+ }), Oe = () => {
+ let st = (() => {
+ for (let Tt of Object.keys(ee)) if (ee[Tt]()) return true;
+ return false;
+ })() ? a.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME : a.a.MAX_PARALLEL_IMAGE_REQUESTS;
+ for (let Tt = B; Tt < st && w.length > 0; Tt++) {
+ let Yt = w.shift();
+ Yt.abortController.signal.aborted ? Tt-- : le(Yt);
+ }
+ }, Ze = (st, Tt) => new Promise((Yt, Kt) => {
+ let xr = new Image(), Ir = st.url, ve = st.credentials;
+ ve && ve === "include" ? xr.crossOrigin = "use-credentials" : (ve && ve === "same-origin" || !a.s(Ir)) && (xr.crossOrigin = "anonymous"), Tt.signal.addEventListener("abort", () => {
+ xr.src = "", Kt(a.c());
+ }), xr.fetchPriority = "high", xr.onload = () => {
+ xr.onerror = xr.onload = null, Yt({ data: xr });
+ }, xr.onerror = () => {
+ xr.onerror = xr.onload = null, Tt.signal.aborted || Kt(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));
+ }, xr.src = Ir;
+ });
+ }(p || (p = {})), p.resetRequestQueue();
+ class k {
+ constructor(w) {
+ this._transformRequestFn = w;
+ }
+ transformRequest(w, B) {
+ return this._transformRequestFn && this._transformRequestFn(w, B) || { url: w };
+ }
+ setTransformRequest(w) {
+ this._transformRequestFn = w;
+ }
+ }
+ function E(ue) {
+ var w = new a.A(3);
+ return w[0] = ue[0], w[1] = ue[1], w[2] = ue[2], w;
+ }
+ var T, L = function(ue, w, B) {
+ return ue[0] = w[0] - B[0], ue[1] = w[1] - B[1], ue[2] = w[2] - B[2], ue;
+ };
+ T = new a.A(3), a.A != Float32Array && (T[0] = 0, T[1] = 0, T[2] = 0);
+ var x = function(ue) {
+ var w = ue[0], B = ue[1];
+ return w * w + B * B;
+ };
+ function C(ue) {
+ let w = [];
+ if (typeof ue == "string") w.push({ id: "default", url: ue });
+ else if (ue && ue.length > 0) {
+ let B = [];
+ for (let { id: Q, url: ee } of ue) {
+ let le = `${Q}${ee}`;
+ B.indexOf(le) === -1 && (B.push(le), w.push({ id: Q, url: ee }));
+ }
+ }
+ return w;
+ }
+ function M(ue, w, B) {
+ let Q = ue.split("?");
+ return Q[0] += `${w}${B}`, Q.join("?");
+ }
+ (function() {
+ var ue = new a.A(2);
+ a.A != Float32Array && (ue[0] = 0, ue[1] = 0);
+ })();
+ class g {
+ constructor(w, B, Q, ee) {
+ this.context = w, this.format = Q, this.texture = w.gl.createTexture(), this.update(B, ee);
+ }
+ update(w, B, Q) {
+ let { width: ee, height: le } = w, Oe = !(this.size && this.size[0] === ee && this.size[1] === le || Q), { context: Ze } = this, { gl: st } = Ze;
+ if (this.useMipmap = !!(B && B.useMipmap), st.bindTexture(st.TEXTURE_2D, this.texture), Ze.pixelStoreUnpackFlipY.set(false), Ze.pixelStoreUnpack.set(1), Ze.pixelStoreUnpackPremultiplyAlpha.set(this.format === st.RGBA && (!B || B.premultiply !== false)), Oe) this.size = [ee, le], w instanceof HTMLImageElement || w instanceof HTMLCanvasElement || w instanceof HTMLVideoElement || w instanceof ImageData || a.b(w) ? st.texImage2D(st.TEXTURE_2D, 0, this.format, this.format, st.UNSIGNED_BYTE, w) : st.texImage2D(st.TEXTURE_2D, 0, this.format, ee, le, 0, this.format, st.UNSIGNED_BYTE, w.data);
+ else {
+ let { x: Tt, y: Yt } = Q || { x: 0, y: 0 };
+ w instanceof HTMLImageElement || w instanceof HTMLCanvasElement || w instanceof HTMLVideoElement || w instanceof ImageData || a.b(w) ? st.texSubImage2D(st.TEXTURE_2D, 0, Tt, Yt, st.RGBA, st.UNSIGNED_BYTE, w) : st.texSubImage2D(st.TEXTURE_2D, 0, Tt, Yt, ee, le, st.RGBA, st.UNSIGNED_BYTE, w.data);
+ }
+ this.useMipmap && this.isSizePowerOfTwo() && st.generateMipmap(st.TEXTURE_2D);
+ }
+ bind(w, B, Q) {
+ let { context: ee } = this, { gl: le } = ee;
+ le.bindTexture(le.TEXTURE_2D, this.texture), Q !== le.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (Q = le.LINEAR), w !== this.filter && (le.texParameteri(le.TEXTURE_2D, le.TEXTURE_MAG_FILTER, w), le.texParameteri(le.TEXTURE_2D, le.TEXTURE_MIN_FILTER, Q || w), this.filter = w), B !== this.wrap && (le.texParameteri(le.TEXTURE_2D, le.TEXTURE_WRAP_S, B), le.texParameteri(le.TEXTURE_2D, le.TEXTURE_WRAP_T, B), this.wrap = B);
+ }
+ isSizePowerOfTwo() {
+ return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0;
+ }
+ destroy() {
+ let { gl: w } = this.context;
+ w.deleteTexture(this.texture), this.texture = null;
+ }
+ }
+ function P(ue) {
+ let { userImage: w } = ue;
+ return !!(w && w.render && w.render()) && (ue.data.replace(new Uint8Array(w.data.buffer)), true);
+ }
+ class A extends a.E {
+ constructor() {
+ super(), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = false, this.requestors = [], this.patterns = {}, this.atlasImage = new a.R({ width: 1, height: 1 }), this.dirty = true;
+ }
+ isLoaded() {
+ return this.loaded;
+ }
+ setLoaded(w) {
+ if (this.loaded !== w && (this.loaded = w, w)) {
+ for (let { ids: B, promiseResolve: Q } of this.requestors) Q(this._getImagesForIds(B));
+ this.requestors = [];
+ }
+ }
+ getImage(w) {
+ let B = this.images[w];
+ if (B && !B.data && B.spriteData) {
+ let Q = B.spriteData;
+ B.data = new a.R({ width: Q.width, height: Q.height }, Q.context.getImageData(Q.x, Q.y, Q.width, Q.height).data), B.spriteData = null;
+ }
+ return B;
+ }
+ addImage(w, B) {
+ if (this.images[w]) throw new Error(`Image id ${w} already exist, use updateImage instead`);
+ this._validate(w, B) && (this.images[w] = B);
+ }
+ _validate(w, B) {
+ let Q = true, ee = B.data || B.spriteData;
+ return this._validateStretch(B.stretchX, ee && ee.width) || (this.fire(new a.j(new Error(`Image "${w}" has invalid "stretchX" value`))), Q = false), this._validateStretch(B.stretchY, ee && ee.height) || (this.fire(new a.j(new Error(`Image "${w}" has invalid "stretchY" value`))), Q = false), this._validateContent(B.content, B) || (this.fire(new a.j(new Error(`Image "${w}" has invalid "content" value`))), Q = false), Q;
+ }
+ _validateStretch(w, B) {
+ if (!w) return true;
+ let Q = 0;
+ for (let ee of w) {
+ if (ee[0] < Q || ee[1] < ee[0] || B < ee[1]) return false;
+ Q = ee[1];
+ }
+ return true;
+ }
+ _validateContent(w, B) {
+ if (!w) return true;
+ if (w.length !== 4) return false;
+ let Q = B.spriteData, ee = Q && Q.width || B.data.width, le = Q && Q.height || B.data.height;
+ return !(w[0] < 0 || ee < w[0] || w[1] < 0 || le < w[1] || w[2] < 0 || ee < w[2] || w[3] < 0 || le < w[3] || w[2] < w[0] || w[3] < w[1]);
+ }
+ updateImage(w, B, Q = true) {
+ let ee = this.getImage(w);
+ if (Q && (ee.data.width !== B.data.width || ee.data.height !== B.data.height)) throw new Error(`size mismatch between old image (${ee.data.width}x${ee.data.height}) and new image (${B.data.width}x${B.data.height}).`);
+ B.version = ee.version + 1, this.images[w] = B, this.updatedImages[w] = true;
+ }
+ removeImage(w) {
+ let B = this.images[w];
+ delete this.images[w], delete this.patterns[w], B.userImage && B.userImage.onRemove && B.userImage.onRemove();
+ }
+ listImages() {
+ return Object.keys(this.images);
+ }
+ getImages(w) {
+ return new Promise((B, Q) => {
+ let ee = true;
+ if (!this.isLoaded()) for (let le of w) this.images[le] || (ee = false);
+ this.isLoaded() || ee ? B(this._getImagesForIds(w)) : this.requestors.push({ ids: w, promiseResolve: B });
+ });
+ }
+ _getImagesForIds(w) {
+ let B = {};
+ for (let Q of w) {
+ let ee = this.getImage(Q);
+ ee || (this.fire(new a.k("styleimagemissing", { id: Q })), ee = this.getImage(Q)), ee ? B[Q] = { data: ee.data.clone(), pixelRatio: ee.pixelRatio, sdf: ee.sdf, version: ee.version, stretchX: ee.stretchX, stretchY: ee.stretchY, content: ee.content, textFitWidth: ee.textFitWidth, textFitHeight: ee.textFitHeight, hasRenderCallback: !!(ee.userImage && ee.userImage.render) } : a.w(`Image "${Q}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`);
+ }
+ return B;
+ }
+ getPixelSize() {
+ let { width: w, height: B } = this.atlasImage;
+ return { width: w, height: B };
+ }
+ getPattern(w) {
+ let B = this.patterns[w], Q = this.getImage(w);
+ if (!Q) return null;
+ if (B && B.position.version === Q.version) return B.position;
+ if (B) B.position.version = Q.version;
+ else {
+ let ee = { w: Q.data.width + 2, h: Q.data.height + 2, x: 0, y: 0 }, le = new a.I(ee, Q);
+ this.patterns[w] = { bin: ee, position: le };
+ }
+ return this._updatePatternAtlas(), this.patterns[w].position;
+ }
+ bind(w) {
+ let B = w.gl;
+ this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = false) : this.atlasTexture = new g(w, this.atlasImage, B.RGBA), this.atlasTexture.bind(B.LINEAR, B.CLAMP_TO_EDGE);
+ }
+ _updatePatternAtlas() {
+ let w = [];
+ for (let le in this.patterns) w.push(this.patterns[le].bin);
+ let { w: B, h: Q } = a.p(w), ee = this.atlasImage;
+ ee.resize({ width: B || 1, height: Q || 1 });
+ for (let le in this.patterns) {
+ let { bin: Oe } = this.patterns[le], Ze = Oe.x + 1, st = Oe.y + 1, Tt = this.getImage(le).data, Yt = Tt.width, Kt = Tt.height;
+ a.R.copy(Tt, ee, { x: 0, y: 0 }, { x: Ze, y: st }, { width: Yt, height: Kt }), a.R.copy(Tt, ee, { x: 0, y: Kt - 1 }, { x: Ze, y: st - 1 }, { width: Yt, height: 1 }), a.R.copy(Tt, ee, { x: 0, y: 0 }, { x: Ze, y: st + Kt }, { width: Yt, height: 1 }), a.R.copy(Tt, ee, { x: Yt - 1, y: 0 }, { x: Ze - 1, y: st }, { width: 1, height: Kt }), a.R.copy(Tt, ee, { x: 0, y: 0 }, { x: Ze + Yt, y: st }, { width: 1, height: Kt });
+ }
+ this.dirty = true;
+ }
+ beginFrame() {
+ this.callbackDispatchedThisFrame = {};
+ }
+ dispatchRenderCallbacks(w) {
+ for (let B of w) {
+ if (this.callbackDispatchedThisFrame[B]) continue;
+ this.callbackDispatchedThisFrame[B] = true;
+ let Q = this.getImage(B);
+ Q || a.w(`Image with ID: "${B}" was not found`), P(Q) && this.updateImage(B, Q);
+ }
+ }
+ }
+ let z = 1e20;
+ function O(ue, w, B, Q, ee, le, Oe, Ze, st) {
+ for (let Tt = w; Tt < w + Q; Tt++) U(ue, B * le + Tt, le, ee, Oe, Ze, st);
+ for (let Tt = B; Tt < B + ee; Tt++) U(ue, Tt * le + w, 1, Q, Oe, Ze, st);
+ }
+ function U(ue, w, B, Q, ee, le, Oe) {
+ le[0] = 0, Oe[0] = -1e20, Oe[1] = z, ee[0] = ue[w];
+ for (let Ze = 1, st = 0, Tt = 0; Ze < Q; Ze++) {
+ ee[Ze] = ue[w + Ze * B];
+ let Yt = Ze * Ze;
+ do {
+ let Kt = le[st];
+ Tt = (ee[Ze] - ee[Kt] + Yt - Kt * Kt) / (Ze - Kt) / 2;
+ } while (Tt <= Oe[st] && --st > -1);
+ st++, le[st] = Ze, Oe[st] = Tt, Oe[st + 1] = z;
+ }
+ for (let Ze = 0, st = 0; Ze < Q; Ze++) {
+ for (; Oe[st + 1] < Ze; ) st++;
+ let Tt = le[st], Yt = Ze - Tt;
+ ue[w + Ze * B] = ee[Tt] + Yt * Yt;
+ }
+ }
+ class G {
+ constructor(w, B) {
+ this.requestManager = w, this.localIdeographFontFamily = B, this.entries = {};
+ }
+ setURL(w) {
+ this.url = w;
+ }
+ getGlyphs(w) {
+ return a._(this, void 0, void 0, function* () {
+ let B = [];
+ for (let le in w) for (let Oe of w[le]) B.push(this._getAndCacheGlyphsPromise(le, Oe));
+ let Q = yield Promise.all(B), ee = {};
+ for (let { stack: le, id: Oe, glyph: Ze } of Q) ee[le] || (ee[le] = {}), ee[le][Oe] = Ze && { id: Ze.id, bitmap: Ze.bitmap.clone(), metrics: Ze.metrics };
+ return ee;
+ });
+ }
+ _getAndCacheGlyphsPromise(w, B) {
+ return a._(this, void 0, void 0, function* () {
+ let Q = this.entries[w];
+ Q || (Q = this.entries[w] = { glyphs: {}, requests: {}, ranges: {} });
+ let ee = Q.glyphs[B];
+ if (ee !== void 0) return { stack: w, id: B, glyph: ee };
+ if (ee = this._tinySDF(Q, w, B), ee) return Q.glyphs[B] = ee, { stack: w, id: B, glyph: ee };
+ let le = Math.floor(B / 256);
+ if (256 * le > 65535) throw new Error("glyphs > 65535 not supported");
+ if (Q.ranges[le]) return { stack: w, id: B, glyph: ee };
+ if (!this.url) throw new Error("glyphsUrl is not set");
+ if (!Q.requests[le]) {
+ let Ze = G.loadGlyphRange(w, le, this.url, this.requestManager);
+ Q.requests[le] = Ze;
+ }
+ let Oe = yield Q.requests[le];
+ for (let Ze in Oe) this._doesCharSupportLocalGlyph(+Ze) || (Q.glyphs[+Ze] = Oe[+Ze]);
+ return Q.ranges[le] = true, { stack: w, id: B, glyph: Oe[B] || null };
+ });
+ }
+ _doesCharSupportLocalGlyph(w) {
+ return !!this.localIdeographFontFamily && new RegExp("\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}", "u").test(String.fromCodePoint(w));
+ }
+ _tinySDF(w, B, Q) {
+ let ee = this.localIdeographFontFamily;
+ if (!ee || !this._doesCharSupportLocalGlyph(Q)) return;
+ let le = w.tinySDF;
+ if (!le) {
+ let Ze = "400";
+ /bold/i.test(B) ? Ze = "900" : /medium/i.test(B) ? Ze = "500" : /light/i.test(B) && (Ze = "200"), le = w.tinySDF = new G.TinySDF({ fontSize: 48, buffer: 6, radius: 16, cutoff: 0.25, fontFamily: ee, fontWeight: Ze });
+ }
+ let Oe = le.draw(String.fromCharCode(Q));
+ return { id: Q, bitmap: new a.o({ width: Oe.width || 60, height: Oe.height || 60 }, Oe.data), metrics: { width: Oe.glyphWidth / 2 || 24, height: Oe.glyphHeight / 2 || 24, left: Oe.glyphLeft / 2 + 0.5 || 0, top: Oe.glyphTop / 2 - 27.5 || -8, advance: Oe.glyphAdvance / 2 || 24, isDoubleResolution: true } };
+ }
+ }
+ G.loadGlyphRange = function(ue, w, B, Q) {
+ return a._(this, void 0, void 0, function* () {
+ let ee = 256 * w, le = ee + 255, Oe = Q.transformRequest(B.replace("{fontstack}", ue).replace("{range}", `${ee}-${le}`), "Glyphs"), Ze = yield a.l(Oe, new AbortController());
+ if (!Ze || !Ze.data) throw new Error(`Could not load glyph range. range: ${w}, ${ee}-${le}`);
+ let st = {};
+ for (let Tt of a.n(Ze.data)) st[Tt.id] = Tt;
+ return st;
+ });
+ }, G.TinySDF = class {
+ constructor({ fontSize: ue = 24, buffer: w = 3, radius: B = 8, cutoff: Q = 0.25, fontFamily: ee = "sans-serif", fontWeight: le = "normal", fontStyle: Oe = "normal" } = {}) {
+ this.buffer = w, this.cutoff = Q, this.radius = B;
+ let Ze = this.size = ue + 4 * w, st = this._createCanvas(Ze), Tt = this.ctx = st.getContext("2d", { willReadFrequently: true });
+ Tt.font = `${Oe} ${le} ${ue}px ${ee}`, Tt.textBaseline = "alphabetic", Tt.textAlign = "left", Tt.fillStyle = "black", this.gridOuter = new Float64Array(Ze * Ze), this.gridInner = new Float64Array(Ze * Ze), this.f = new Float64Array(Ze), this.z = new Float64Array(Ze + 1), this.v = new Uint16Array(Ze);
+ }
+ _createCanvas(ue) {
+ let w = document.createElement("canvas");
+ return w.width = w.height = ue, w;
+ }
+ draw(ue) {
+ let { width: w, actualBoundingBoxAscent: B, actualBoundingBoxDescent: Q, actualBoundingBoxLeft: ee, actualBoundingBoxRight: le } = this.ctx.measureText(ue), Oe = Math.ceil(B), Ze = Math.max(0, Math.min(this.size - this.buffer, Math.ceil(le - ee))), st = Math.min(this.size - this.buffer, Oe + Math.ceil(Q)), Tt = Ze + 2 * this.buffer, Yt = st + 2 * this.buffer, Kt = Math.max(Tt * Yt, 0), xr = new Uint8ClampedArray(Kt), Ir = { data: xr, width: Tt, height: Yt, glyphWidth: Ze, glyphHeight: st, glyphTop: Oe, glyphLeft: 0, glyphAdvance: w };
+ if (Ze === 0 || st === 0) return Ir;
+ let { ctx: ve, buffer: be, gridInner: Re, gridOuter: qe } = this;
+ ve.clearRect(be, be, Ze, st), ve.fillText(ue, be, be + Oe);
+ let et = ve.getImageData(be, be, Ze, st);
+ qe.fill(z, 0, Kt), Re.fill(0, 0, Kt);
+ for (let Xe = 0; Xe < st; Xe++) for (let it = 0; it < Ze; it++) {
+ let Ft = et.data[4 * (Xe * Ze + it) + 3] / 255;
+ if (Ft === 0) continue;
+ let Ht = (Xe + be) * Tt + it + be;
+ if (Ft === 1) qe[Ht] = 0, Re[Ht] = z;
+ else {
+ let tr = 0.5 - Ft;
+ qe[Ht] = tr > 0 ? tr * tr : 0, Re[Ht] = tr < 0 ? tr * tr : 0;
+ }
+ }
+ O(qe, 0, 0, Tt, Yt, Tt, this.f, this.v, this.z), O(Re, be, be, Ze, st, Tt, this.f, this.v, this.z);
+ for (let Xe = 0; Xe < Kt; Xe++) {
+ let it = Math.sqrt(qe[Xe]) - Math.sqrt(Re[Xe]);
+ xr[Xe] = Math.round(255 - 255 * (it / this.radius + this.cutoff));
+ }
+ return Ir;
+ }
+ };
+ class Z {
+ constructor() {
+ this.specification = a.v.light.position;
+ }
+ possiblyEvaluate(w, B) {
+ return a.x(w.expression.evaluate(B));
+ }
+ interpolate(w, B, Q) {
+ return { x: a.y.number(w.x, B.x, Q), y: a.y.number(w.y, B.y, Q), z: a.y.number(w.z, B.z, Q) };
+ }
+ }
+ let j;
+ class N extends a.E {
+ constructor(w) {
+ super(), j = j || new a.q({ anchor: new a.D(a.v.light.anchor), position: new Z(), color: new a.D(a.v.light.color), intensity: new a.D(a.v.light.intensity) }), this._transitionable = new a.T(j), this.setLight(w), this._transitioning = this._transitionable.untransitioned();
+ }
+ getLight() {
+ return this._transitionable.serialize();
+ }
+ setLight(w, B = {}) {
+ if (!this._validate(a.r, w, B)) for (let Q in w) {
+ let ee = w[Q];
+ Q.endsWith("-transition") ? this._transitionable.setTransition(Q.slice(0, -11), ee) : this._transitionable.setValue(Q, ee);
+ }
+ }
+ updateTransitions(w) {
+ this._transitioning = this._transitionable.transitioned(w, this._transitioning);
+ }
+ hasTransition() {
+ return this._transitioning.hasTransition();
+ }
+ recalculate(w) {
+ this.properties = this._transitioning.possiblyEvaluate(w);
+ }
+ _validate(w, B, Q) {
+ return (!Q || Q.validate !== false) && a.t(this, w.call(a.u, { value: B, style: { glyphs: true, sprite: true }, styleSpec: a.v }));
+ }
+ }
+ let H = new a.q({ "sky-color": new a.D(a.v.sky["sky-color"]), "horizon-color": new a.D(a.v.sky["horizon-color"]), "fog-color": new a.D(a.v.sky["fog-color"]), "fog-ground-blend": new a.D(a.v.sky["fog-ground-blend"]), "horizon-fog-blend": new a.D(a.v.sky["horizon-fog-blend"]), "sky-horizon-blend": new a.D(a.v.sky["sky-horizon-blend"]), "atmosphere-blend": new a.D(a.v.sky["atmosphere-blend"]) });
+ class re extends a.E {
+ constructor(w) {
+ super(), this._transitionable = new a.T(H), this.setSky(w), this._transitioning = this._transitionable.untransitioned(), this.recalculate(new a.z(0));
+ }
+ setSky(w, B = {}) {
+ if (!this._validate(a.B, w, B)) {
+ w || (w = { "sky-color": "transparent", "horizon-color": "transparent", "fog-color": "transparent", "fog-ground-blend": 1, "atmosphere-blend": 0 });
+ for (let Q in w) {
+ let ee = w[Q];
+ Q.endsWith("-transition") ? this._transitionable.setTransition(Q.slice(0, -11), ee) : this._transitionable.setValue(Q, ee);
+ }
+ }
+ }
+ getSky() {
+ return this._transitionable.serialize();
+ }
+ updateTransitions(w) {
+ this._transitioning = this._transitionable.transitioned(w, this._transitioning);
+ }
+ hasTransition() {
+ return this._transitioning.hasTransition();
+ }
+ recalculate(w) {
+ this.properties = this._transitioning.possiblyEvaluate(w);
+ }
+ _validate(w, B, Q = {}) {
+ return (Q == null ? void 0 : Q.validate) !== false && a.t(this, w.call(a.u, a.e({ value: B, style: { glyphs: true, sprite: true }, styleSpec: a.v })));
+ }
+ calculateFogBlendOpacity(w) {
+ return w < 60 ? 0 : w < 70 ? (w - 60) / 10 : 1;
+ }
+ }
+ class oe {
+ constructor(w, B) {
+ this.width = w, this.height = B, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {};
+ }
+ getDash(w, B) {
+ let Q = w.join(",") + String(B);
+ return this.dashEntry[Q] || (this.dashEntry[Q] = this.addDash(w, B)), this.dashEntry[Q];
+ }
+ getDashRanges(w, B, Q) {
+ let ee = [], le = w.length % 2 == 1 ? -w[w.length - 1] * Q : 0, Oe = w[0] * Q, Ze = true;
+ ee.push({ left: le, right: Oe, isDash: Ze, zeroLength: w[0] === 0 });
+ let st = w[0];
+ for (let Tt = 1; Tt < w.length; Tt++) {
+ Ze = !Ze;
+ let Yt = w[Tt];
+ le = st * Q, st += Yt, Oe = st * Q, ee.push({ left: le, right: Oe, isDash: Ze, zeroLength: Yt === 0 });
+ }
+ return ee;
+ }
+ addRoundDash(w, B, Q) {
+ let ee = B / 2;
+ for (let le = -Q; le <= Q; le++) {
+ let Oe = this.width * (this.nextRow + Q + le), Ze = 0, st = w[Ze];
+ for (let Tt = 0; Tt < this.width; Tt++) {
+ Tt / st.right > 1 && (st = w[++Ze]);
+ let Yt = Math.abs(Tt - st.left), Kt = Math.abs(Tt - st.right), xr = Math.min(Yt, Kt), Ir, ve = le / Q * (ee + 1);
+ if (st.isDash) {
+ let be = ee - Math.abs(ve);
+ Ir = Math.sqrt(xr * xr + be * be);
+ } else Ir = ee - Math.sqrt(xr * xr + ve * ve);
+ this.data[Oe + Tt] = Math.max(0, Math.min(255, Ir + 128));
+ }
+ }
+ }
+ addRegularDash(w) {
+ for (let Ze = w.length - 1; Ze >= 0; --Ze) {
+ let st = w[Ze], Tt = w[Ze + 1];
+ st.zeroLength ? w.splice(Ze, 1) : Tt && Tt.isDash === st.isDash && (Tt.left = st.left, w.splice(Ze, 1));
+ }
+ let B = w[0], Q = w[w.length - 1];
+ B.isDash === Q.isDash && (B.left = Q.left - this.width, Q.right = B.right + this.width);
+ let ee = this.width * this.nextRow, le = 0, Oe = w[le];
+ for (let Ze = 0; Ze < this.width; Ze++) {
+ Ze / Oe.right > 1 && (Oe = w[++le]);
+ let st = Math.abs(Ze - Oe.left), Tt = Math.abs(Ze - Oe.right), Yt = Math.min(st, Tt);
+ this.data[ee + Ze] = Math.max(0, Math.min(255, (Oe.isDash ? Yt : -Yt) + 128));
+ }
+ }
+ addDash(w, B) {
+ let Q = B ? 7 : 0, ee = 2 * Q + 1;
+ if (this.nextRow + ee > this.height) return a.w("LineAtlas out of space"), null;
+ let le = 0;
+ for (let Ze = 0; Ze < w.length; Ze++) le += w[Ze];
+ if (le !== 0) {
+ let Ze = this.width / le, st = this.getDashRanges(w, this.width, Ze);
+ B ? this.addRoundDash(st, Ze, Q) : this.addRegularDash(st);
+ }
+ let Oe = { y: (this.nextRow + Q + 0.5) / this.height, height: 2 * Q / this.height, width: le };
+ return this.nextRow += ee, this.dirty = true, Oe;
+ }
+ bind(w) {
+ let B = w.gl;
+ this.texture ? (B.bindTexture(B.TEXTURE_2D, this.texture), this.dirty && (this.dirty = false, B.texSubImage2D(B.TEXTURE_2D, 0, 0, 0, this.width, this.height, B.ALPHA, B.UNSIGNED_BYTE, this.data))) : (this.texture = B.createTexture(), B.bindTexture(B.TEXTURE_2D, this.texture), B.texParameteri(B.TEXTURE_2D, B.TEXTURE_WRAP_S, B.REPEAT), B.texParameteri(B.TEXTURE_2D, B.TEXTURE_WRAP_T, B.REPEAT), B.texParameteri(B.TEXTURE_2D, B.TEXTURE_MIN_FILTER, B.LINEAR), B.texParameteri(B.TEXTURE_2D, B.TEXTURE_MAG_FILTER, B.LINEAR), B.texImage2D(B.TEXTURE_2D, 0, B.ALPHA, this.width, this.height, 0, B.ALPHA, B.UNSIGNED_BYTE, this.data));
+ }
+ }
+ let _e = "maplibre_preloaded_worker_pool";
+ class Ce {
+ constructor() {
+ this.active = {};
+ }
+ acquire(w) {
+ if (!this.workers) for (this.workers = []; this.workers.length < Ce.workerCount; ) this.workers.push(new Worker(a.a.WORKER_URL));
+ return this.active[w] = true, this.workers.slice();
+ }
+ release(w) {
+ delete this.active[w], this.numActive() === 0 && (this.workers.forEach((B) => {
+ B.terminate();
+ }), this.workers = null);
+ }
+ isPreloaded() {
+ return !!this.active[_e];
+ }
+ numActive() {
+ return Object.keys(this.active).length;
+ }
+ }
+ let Le = Math.floor(u.hardwareConcurrency / 2), ge, ie;
+ function Se() {
+ return ge || (ge = new Ce()), ge;
+ }
+ Ce.workerCount = a.C(globalThis) ? Math.max(Math.min(Le, 3), 1) : 1;
+ class Ee {
+ constructor(w, B) {
+ this.workerPool = w, this.actors = [], this.currentActor = 0, this.id = B;
+ let Q = this.workerPool.acquire(B);
+ for (let ee = 0; ee < Q.length; ee++) {
+ let le = new a.F(Q[ee], B);
+ le.name = `Worker ${ee}`, this.actors.push(le);
+ }
+ if (!this.actors.length) throw new Error("No actors found");
+ }
+ broadcast(w, B) {
+ let Q = [];
+ for (let ee of this.actors) Q.push(ee.sendAsync({ type: w, data: B }));
+ return Promise.all(Q);
+ }
+ getActor() {
+ return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor];
+ }
+ remove(w = true) {
+ this.actors.forEach((B) => {
+ B.remove();
+ }), this.actors = [], w && this.workerPool.release(this.id);
+ }
+ registerMessageHandler(w, B) {
+ for (let Q of this.actors) Q.registerMessageHandler(w, B);
+ }
+ }
+ function Ae() {
+ return ie || (ie = new Ee(Se(), a.G), ie.registerMessageHandler("GR", (ue, w, B) => a.m(w, B))), ie;
+ }
+ function Be(ue, w) {
+ let B = a.H();
+ return a.J(B, B, [1, 1, 0]), a.K(B, B, [0.5 * ue.width, 0.5 * ue.height, 1]), a.L(B, B, ue.calculatePosMatrix(w.toUnwrapped()));
+ }
+ function Pe(ue, w, B, Q, ee, le) {
+ let Oe = function(Kt, xr, Ir) {
+ if (Kt) for (let ve of Kt) {
+ let be = xr[ve];
+ if (be && be.source === Ir && be.type === "fill-extrusion") return true;
+ }
+ else for (let ve in xr) {
+ let be = xr[ve];
+ if (be.source === Ir && be.type === "fill-extrusion") return true;
+ }
+ return false;
+ }(ee && ee.layers, w, ue.id), Ze = le.maxPitchScaleFactor(), st = ue.tilesIn(Q, Ze, Oe);
+ st.sort(me);
+ let Tt = [];
+ for (let Kt of st) Tt.push({ wrappedTileID: Kt.tileID.wrapped().key, queryResults: Kt.tile.queryRenderedFeatures(w, B, ue._state, Kt.queryGeometry, Kt.cameraQueryGeometry, Kt.scale, ee, le, Ze, Be(ue.transform, Kt.tileID)) });
+ let Yt = function(Kt) {
+ let xr = {}, Ir = {};
+ for (let ve of Kt) {
+ let be = ve.queryResults, Re = ve.wrappedTileID, qe = Ir[Re] = Ir[Re] || {};
+ for (let et in be) {
+ let Xe = be[et], it = qe[et] = qe[et] || {}, Ft = xr[et] = xr[et] || [];
+ for (let Ht of Xe) it[Ht.featureIndex] || (it[Ht.featureIndex] = true, Ft.push(Ht));
+ }
+ }
+ return xr;
+ }(Tt);
+ for (let Kt in Yt) Yt[Kt].forEach((xr) => {
+ let Ir = xr.feature, ve = ue.getFeatureState(Ir.layer["source-layer"], Ir.id);
+ Ir.source = Ir.layer.source, Ir.layer["source-layer"] && (Ir.sourceLayer = Ir.layer["source-layer"]), Ir.state = ve;
+ });
+ return Yt;
+ }
+ function me(ue, w) {
+ let B = ue.tileID, Q = w.tileID;
+ return B.overscaledZ - Q.overscaledZ || B.canonical.y - Q.canonical.y || B.wrap - Q.wrap || B.canonical.x - Q.canonical.x;
+ }
+ function De(ue, w, B) {
+ return a._(this, void 0, void 0, function* () {
+ let Q = ue;
+ if (ue.url ? Q = (yield a.h(w.transformRequest(ue.url, "Source"), B)).data : yield u.frameAsync(B), !Q) return null;
+ let ee = a.M(a.e(Q, ue), ["tiles", "minzoom", "maxzoom", "attribution", "bounds", "scheme", "tileSize", "encoding"]);
+ return "vector_layers" in Q && Q.vector_layers && (ee.vectorLayerIds = Q.vector_layers.map((le) => le.id)), ee;
+ });
+ }
+ class ce {
+ constructor(w, B) {
+ w && (B ? this.setSouthWest(w).setNorthEast(B) : Array.isArray(w) && (w.length === 4 ? this.setSouthWest([w[0], w[1]]).setNorthEast([w[2], w[3]]) : this.setSouthWest(w[0]).setNorthEast(w[1])));
+ }
+ setNorthEast(w) {
+ return this._ne = w instanceof a.N ? new a.N(w.lng, w.lat) : a.N.convert(w), this;
+ }
+ setSouthWest(w) {
+ return this._sw = w instanceof a.N ? new a.N(w.lng, w.lat) : a.N.convert(w), this;
+ }
+ extend(w) {
+ let B = this._sw, Q = this._ne, ee, le;
+ if (w instanceof a.N) ee = w, le = w;
+ else {
+ if (!(w instanceof ce)) return Array.isArray(w) ? w.length === 4 || w.every(Array.isArray) ? this.extend(ce.convert(w)) : this.extend(a.N.convert(w)) : w && ("lng" in w || "lon" in w) && "lat" in w ? this.extend(a.N.convert(w)) : this;
+ if (ee = w._sw, le = w._ne, !ee || !le) return this;
+ }
+ return B || Q ? (B.lng = Math.min(ee.lng, B.lng), B.lat = Math.min(ee.lat, B.lat), Q.lng = Math.max(le.lng, Q.lng), Q.lat = Math.max(le.lat, Q.lat)) : (this._sw = new a.N(ee.lng, ee.lat), this._ne = new a.N(le.lng, le.lat)), this;
+ }
+ getCenter() {
+ return new a.N((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2);
+ }
+ getSouthWest() {
+ return this._sw;
+ }
+ getNorthEast() {
+ return this._ne;
+ }
+ getNorthWest() {
+ return new a.N(this.getWest(), this.getNorth());
+ }
+ getSouthEast() {
+ return new a.N(this.getEast(), this.getSouth());
+ }
+ getWest() {
+ return this._sw.lng;
+ }
+ getSouth() {
+ return this._sw.lat;
+ }
+ getEast() {
+ return this._ne.lng;
+ }
+ getNorth() {
+ return this._ne.lat;
+ }
+ toArray() {
+ return [this._sw.toArray(), this._ne.toArray()];
+ }
+ toString() {
+ return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`;
+ }
+ isEmpty() {
+ return !(this._sw && this._ne);
+ }
+ contains(w) {
+ let { lng: B, lat: Q } = a.N.convert(w), ee = this._sw.lng <= B && B <= this._ne.lng;
+ return this._sw.lng > this._ne.lng && (ee = this._sw.lng >= B && B >= this._ne.lng), this._sw.lat <= Q && Q <= this._ne.lat && ee;
+ }
+ static convert(w) {
+ return w instanceof ce ? w : w && new ce(w);
+ }
+ static fromLngLat(w, B = 0) {
+ let Q = 360 * B / 40075017, ee = Q / Math.cos(Math.PI / 180 * w.lat);
+ return new ce(new a.N(w.lng - ee, w.lat - Q), new a.N(w.lng + ee, w.lat + Q));
+ }
+ adjustAntiMeridian() {
+ let w = new a.N(this._sw.lng, this._sw.lat), B = new a.N(this._ne.lng, this._ne.lat);
+ return new ce(w, w.lng > B.lng ? new a.N(B.lng + 360, B.lat) : B);
+ }
+ }
+ class je {
+ constructor(w, B, Q) {
+ this.bounds = ce.convert(this.validateBounds(w)), this.minzoom = B || 0, this.maxzoom = Q || 24;
+ }
+ validateBounds(w) {
+ return Array.isArray(w) && w.length === 4 ? [Math.max(-180, w[0]), Math.max(-90, w[1]), Math.min(180, w[2]), Math.min(90, w[3])] : [-180, -90, 180, 90];
+ }
+ contains(w) {
+ let B = Math.pow(2, w.z), Q = Math.floor(a.O(this.bounds.getWest()) * B), ee = Math.floor(a.Q(this.bounds.getNorth()) * B), le = Math.ceil(a.O(this.bounds.getEast()) * B), Oe = Math.ceil(a.Q(this.bounds.getSouth()) * B);
+ return w.x >= Q && w.x < le && w.y >= ee && w.y < Oe;
+ }
+ }
+ class lt extends a.E {
+ constructor(w, B, Q, ee) {
+ if (super(), this.id = w, this.dispatcher = Q, this.type = "vector", this.minzoom = 0, this.maxzoom = 22, this.scheme = "xyz", this.tileSize = 512, this.reparseOverscaled = true, this.isTileClipped = true, this._loaded = false, a.e(this, a.M(B, ["url", "scheme", "tileSize", "promoteId"])), this._options = a.e({ type: "vector" }, B), this._collectResourceTiming = B.collectResourceTiming, this.tileSize !== 512) throw new Error("vector tile sources must have a tileSize of 512");
+ this.setEventedParent(ee);
+ }
+ load() {
+ return a._(this, void 0, void 0, function* () {
+ this._loaded = false, this.fire(new a.k("dataloading", { dataType: "source" })), this._tileJSONRequest = new AbortController();
+ try {
+ let w = yield De(this._options, this.map._requestManager, this._tileJSONRequest);
+ this._tileJSONRequest = null, this._loaded = true, this.map.style.sourceCaches[this.id].clearTiles(), w && (a.e(this, w), w.bounds && (this.tileBounds = new je(w.bounds, this.minzoom, this.maxzoom)), this.fire(new a.k("data", { dataType: "source", sourceDataType: "metadata" })), this.fire(new a.k("data", { dataType: "source", sourceDataType: "content" })));
+ } catch (w) {
+ this._tileJSONRequest = null, this.fire(new a.j(w));
+ }
+ });
+ }
+ loaded() {
+ return this._loaded;
+ }
+ hasTile(w) {
+ return !this.tileBounds || this.tileBounds.contains(w.canonical);
+ }
+ onAdd(w) {
+ this.map = w, this.load();
+ }
+ setSourceProperty(w) {
+ this._tileJSONRequest && this._tileJSONRequest.abort(), w(), this.load();
+ }
+ setTiles(w) {
+ return this.setSourceProperty(() => {
+ this._options.tiles = w;
+ }), this;
+ }
+ setUrl(w) {
+ return this.setSourceProperty(() => {
+ this.url = w, this._options.url = w;
+ }), this;
+ }
+ onRemove() {
+ this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null);
+ }
+ serialize() {
+ return a.e({}, this._options);
+ }
+ loadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ let B = w.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), Q = { request: this.map._requestManager.transformRequest(B, "Tile"), uid: w.uid, tileID: w.tileID, zoom: w.tileID.overscaledZ, tileSize: this.tileSize * w.tileID.overscaleFactor(), type: this.type, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId };
+ Q.request.collectResourceTiming = this._collectResourceTiming;
+ let ee = "RT";
+ if (w.actor && w.state !== "expired") {
+ if (w.state === "loading") return new Promise((le, Oe) => {
+ w.reloadPromise = { resolve: le, reject: Oe };
+ });
+ } else w.actor = this.dispatcher.getActor(), ee = "LT";
+ w.abortController = new AbortController();
+ try {
+ let le = yield w.actor.sendAsync({ type: ee, data: Q }, w.abortController);
+ if (delete w.abortController, w.aborted) return;
+ this._afterTileLoadWorkerResponse(w, le);
+ } catch (le) {
+ if (delete w.abortController, w.aborted) return;
+ if (le && le.status !== 404) throw le;
+ this._afterTileLoadWorkerResponse(w, null);
+ }
+ });
+ }
+ _afterTileLoadWorkerResponse(w, B) {
+ if (B && B.resourceTiming && (w.resourceTiming = B.resourceTiming), B && this.map._refreshExpiredTiles && w.setExpiryData(B), w.loadVectorData(B, this.map.painter), w.reloadPromise) {
+ let Q = w.reloadPromise;
+ w.reloadPromise = null, this.loadTile(w).then(Q.resolve).catch(Q.reject);
+ }
+ }
+ abortTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ w.abortController && (w.abortController.abort(), delete w.abortController), w.actor && (yield w.actor.sendAsync({ type: "AT", data: { uid: w.uid, type: this.type, source: this.id } }));
+ });
+ }
+ unloadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ w.unloadVectorData(), w.actor && (yield w.actor.sendAsync({ type: "RMT", data: { uid: w.uid, type: this.type, source: this.id } }));
+ });
+ }
+ hasTransition() {
+ return false;
+ }
+ }
+ class pt extends a.E {
+ constructor(w, B, Q, ee) {
+ super(), this.id = w, this.dispatcher = Q, this.setEventedParent(ee), this.type = "raster", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = true, this.scheme = "xyz", this.tileSize = 512, this._loaded = false, this._options = a.e({ type: "raster" }, B), a.e(this, a.M(B, ["url", "scheme", "tileSize"]));
+ }
+ load() {
+ return a._(this, void 0, void 0, function* () {
+ this._loaded = false, this.fire(new a.k("dataloading", { dataType: "source" })), this._tileJSONRequest = new AbortController();
+ try {
+ let w = yield De(this._options, this.map._requestManager, this._tileJSONRequest);
+ this._tileJSONRequest = null, this._loaded = true, w && (a.e(this, w), w.bounds && (this.tileBounds = new je(w.bounds, this.minzoom, this.maxzoom)), this.fire(new a.k("data", { dataType: "source", sourceDataType: "metadata" })), this.fire(new a.k("data", { dataType: "source", sourceDataType: "content" })));
+ } catch (w) {
+ this._tileJSONRequest = null, this.fire(new a.j(w));
+ }
+ });
+ }
+ loaded() {
+ return this._loaded;
+ }
+ onAdd(w) {
+ this.map = w, this.load();
+ }
+ onRemove() {
+ this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null);
+ }
+ setSourceProperty(w) {
+ this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null), w(), this.load();
+ }
+ setTiles(w) {
+ return this.setSourceProperty(() => {
+ this._options.tiles = w;
+ }), this;
+ }
+ setUrl(w) {
+ return this.setSourceProperty(() => {
+ this.url = w, this._options.url = w;
+ }), this;
+ }
+ serialize() {
+ return a.e({}, this._options);
+ }
+ hasTile(w) {
+ return !this.tileBounds || this.tileBounds.contains(w.canonical);
+ }
+ loadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ let B = w.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme);
+ w.abortController = new AbortController();
+ try {
+ let Q = yield p.getImage(this.map._requestManager.transformRequest(B, "Tile"), w.abortController, this.map._refreshExpiredTiles);
+ if (delete w.abortController, w.aborted) return void (w.state = "unloaded");
+ if (Q && Q.data) {
+ this.map._refreshExpiredTiles && Q.cacheControl && Q.expires && w.setExpiryData({ cacheControl: Q.cacheControl, expires: Q.expires });
+ let ee = this.map.painter.context, le = ee.gl, Oe = Q.data;
+ w.texture = this.map.painter.getTileTexture(Oe.width), w.texture ? w.texture.update(Oe, { useMipmap: true }) : (w.texture = new g(ee, Oe, le.RGBA, { useMipmap: true }), w.texture.bind(le.LINEAR, le.CLAMP_TO_EDGE, le.LINEAR_MIPMAP_NEAREST)), w.state = "loaded";
+ }
+ } catch (Q) {
+ if (delete w.abortController, w.aborted) w.state = "unloaded";
+ else if (Q) throw w.state = "errored", Q;
+ }
+ });
+ }
+ abortTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ w.abortController && (w.abortController.abort(), delete w.abortController);
+ });
+ }
+ unloadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ w.texture && this.map.painter.saveTileTexture(w.texture);
+ });
+ }
+ hasTransition() {
+ return false;
+ }
+ }
+ class Vt extends pt {
+ constructor(w, B, Q, ee) {
+ super(w, B, Q, ee), this.type = "raster-dem", this.maxzoom = 22, this._options = a.e({ type: "raster-dem" }, B), this.encoding = B.encoding || "mapbox", this.redFactor = B.redFactor, this.greenFactor = B.greenFactor, this.blueFactor = B.blueFactor, this.baseShift = B.baseShift;
+ }
+ loadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ let B = w.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), Q = this.map._requestManager.transformRequest(B, "Tile");
+ w.neighboringTiles = this._getNeighboringTiles(w.tileID), w.abortController = new AbortController();
+ try {
+ let ee = yield p.getImage(Q, w.abortController, this.map._refreshExpiredTiles);
+ if (delete w.abortController, w.aborted) return void (w.state = "unloaded");
+ if (ee && ee.data) {
+ let le = ee.data;
+ this.map._refreshExpiredTiles && ee.cacheControl && ee.expires && w.setExpiryData({ cacheControl: ee.cacheControl, expires: ee.expires });
+ let Oe = a.b(le) && a.U() ? le : yield this.readImageNow(le), Ze = { type: this.type, uid: w.uid, source: this.id, rawImageData: Oe, encoding: this.encoding, redFactor: this.redFactor, greenFactor: this.greenFactor, blueFactor: this.blueFactor, baseShift: this.baseShift };
+ if (!w.actor || w.state === "expired") {
+ w.actor = this.dispatcher.getActor();
+ let st = yield w.actor.sendAsync({ type: "LDT", data: Ze });
+ w.dem = st, w.needsHillshadePrepare = true, w.needsTerrainPrepare = true, w.state = "loaded";
+ }
+ }
+ } catch (ee) {
+ if (delete w.abortController, w.aborted) w.state = "unloaded";
+ else if (ee) throw w.state = "errored", ee;
+ }
+ });
+ }
+ readImageNow(w) {
+ return a._(this, void 0, void 0, function* () {
+ if (typeof VideoFrame != "undefined" && a.V()) {
+ let B = w.width + 2, Q = w.height + 2;
+ try {
+ return new a.R({ width: B, height: Q }, yield a.W(w, -1, -1, B, Q));
+ } catch (ee) {
+ }
+ }
+ return u.getImageData(w, 1);
+ });
+ }
+ _getNeighboringTiles(w) {
+ let B = w.canonical, Q = Math.pow(2, B.z), ee = (B.x - 1 + Q) % Q, le = B.x === 0 ? w.wrap - 1 : w.wrap, Oe = (B.x + 1 + Q) % Q, Ze = B.x + 1 === Q ? w.wrap + 1 : w.wrap, st = {};
+ return st[new a.S(w.overscaledZ, le, B.z, ee, B.y).key] = { backfilled: false }, st[new a.S(w.overscaledZ, Ze, B.z, Oe, B.y).key] = { backfilled: false }, B.y > 0 && (st[new a.S(w.overscaledZ, le, B.z, ee, B.y - 1).key] = { backfilled: false }, st[new a.S(w.overscaledZ, w.wrap, B.z, B.x, B.y - 1).key] = { backfilled: false }, st[new a.S(w.overscaledZ, Ze, B.z, Oe, B.y - 1).key] = { backfilled: false }), B.y + 1 < Q && (st[new a.S(w.overscaledZ, le, B.z, ee, B.y + 1).key] = { backfilled: false }, st[new a.S(w.overscaledZ, w.wrap, B.z, B.x, B.y + 1).key] = { backfilled: false }, st[new a.S(w.overscaledZ, Ze, B.z, Oe, B.y + 1).key] = { backfilled: false }), st;
+ }
+ unloadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ w.demTexture && this.map.painter.saveTileTexture(w.demTexture), w.fbo && (w.fbo.destroy(), delete w.fbo), w.dem && delete w.dem, delete w.neighboringTiles, w.state = "unloaded", w.actor && (yield w.actor.sendAsync({ type: "RDT", data: { type: this.type, uid: w.uid, source: this.id } }));
+ });
+ }
+ }
+ class ot extends a.E {
+ constructor(w, B, Q, ee) {
+ super(), this.id = w, this.type = "geojson", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = true, this.reparseOverscaled = true, this._removed = false, this._pendingLoads = 0, this.actor = Q.getActor(), this.setEventedParent(ee), this._data = B.data, this._options = a.e({}, B), this._collectResourceTiming = B.collectResourceTiming, B.maxzoom !== void 0 && (this.maxzoom = B.maxzoom), B.type && (this.type = B.type), B.attribution && (this.attribution = B.attribution), this.promoteId = B.promoteId;
+ let le = a.X / this.tileSize;
+ B.clusterMaxZoom !== void 0 && this.maxzoom <= B.clusterMaxZoom && a.w(`The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${B.clusterMaxZoom}".`), this.workerOptions = a.e({ source: this.id, cluster: B.cluster || false, geojsonVtOptions: { buffer: (B.buffer !== void 0 ? B.buffer : 128) * le, tolerance: (B.tolerance !== void 0 ? B.tolerance : 0.375) * le, extent: a.X, maxZoom: this.maxzoom, lineMetrics: B.lineMetrics || false, generateId: B.generateId || false }, superclusterOptions: { maxZoom: B.clusterMaxZoom !== void 0 ? B.clusterMaxZoom : this.maxzoom - 1, minPoints: Math.max(2, B.clusterMinPoints || 2), extent: a.X, radius: (B.clusterRadius || 50) * le, log: false, generateId: B.generateId || false }, clusterProperties: B.clusterProperties, filter: B.filter }, B.workerOptions), typeof this.promoteId == "string" && (this.workerOptions.promoteId = this.promoteId);
+ }
+ load() {
+ return a._(this, void 0, void 0, function* () {
+ yield this._updateWorkerData();
+ });
+ }
+ onAdd(w) {
+ this.map = w, this.load();
+ }
+ setData(w) {
+ return this._data = w, this._updateWorkerData(), this;
+ }
+ updateData(w) {
+ return this._updateWorkerData(w), this;
+ }
+ getData() {
+ return a._(this, void 0, void 0, function* () {
+ let w = a.e({ type: this.type }, this.workerOptions);
+ return this.actor.sendAsync({ type: "GD", data: w });
+ });
+ }
+ setClusterOptions(w) {
+ return this.workerOptions.cluster = w.cluster, w && (w.clusterRadius !== void 0 && (this.workerOptions.superclusterOptions.radius = w.clusterRadius), w.clusterMaxZoom !== void 0 && (this.workerOptions.superclusterOptions.maxZoom = w.clusterMaxZoom)), this._updateWorkerData(), this;
+ }
+ getClusterExpansionZoom(w) {
+ return this.actor.sendAsync({ type: "GCEZ", data: { type: this.type, clusterId: w, source: this.id } });
+ }
+ getClusterChildren(w) {
+ return this.actor.sendAsync({ type: "GCC", data: { type: this.type, clusterId: w, source: this.id } });
+ }
+ getClusterLeaves(w, B, Q) {
+ return this.actor.sendAsync({ type: "GCL", data: { type: this.type, source: this.id, clusterId: w, limit: B, offset: Q } });
+ }
+ _updateWorkerData(w) {
+ return a._(this, void 0, void 0, function* () {
+ let B = a.e({ type: this.type }, this.workerOptions);
+ w ? B.dataDiff = w : typeof this._data == "string" ? (B.request = this.map._requestManager.transformRequest(u.resolveURL(this._data), "Source"), B.request.collectResourceTiming = this._collectResourceTiming) : B.data = JSON.stringify(this._data), this._pendingLoads++, this.fire(new a.k("dataloading", { dataType: "source" }));
+ try {
+ let Q = yield this.actor.sendAsync({ type: "LD", data: B });
+ if (this._pendingLoads--, this._removed || Q.abandoned) return void this.fire(new a.k("dataabort", { dataType: "source" }));
+ let ee = null;
+ Q.resourceTiming && Q.resourceTiming[this.id] && (ee = Q.resourceTiming[this.id].slice(0));
+ let le = { dataType: "source" };
+ this._collectResourceTiming && ee && ee.length > 0 && a.e(le, { resourceTiming: ee }), this.fire(new a.k("data", Object.assign(Object.assign({}, le), { sourceDataType: "metadata" }))), this.fire(new a.k("data", Object.assign(Object.assign({}, le), { sourceDataType: "content" })));
+ } catch (Q) {
+ if (this._pendingLoads--, this._removed) return void this.fire(new a.k("dataabort", { dataType: "source" }));
+ this.fire(new a.j(Q));
+ }
+ });
+ }
+ loaded() {
+ return this._pendingLoads === 0;
+ }
+ loadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ let B = w.actor ? "RT" : "LT";
+ w.actor = this.actor;
+ let Q = { type: this.type, uid: w.uid, tileID: w.tileID, zoom: w.tileID.overscaledZ, maxZoom: this.maxzoom, tileSize: this.tileSize, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId };
+ w.abortController = new AbortController();
+ let ee = yield this.actor.sendAsync({ type: B, data: Q }, w.abortController);
+ delete w.abortController, w.unloadVectorData(), w.aborted || w.loadVectorData(ee, this.map.painter, B === "RT");
+ });
+ }
+ abortTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ w.abortController && (w.abortController.abort(), delete w.abortController), w.aborted = true;
+ });
+ }
+ unloadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ w.unloadVectorData(), yield this.actor.sendAsync({ type: "RMT", data: { uid: w.uid, type: this.type, source: this.id } });
+ });
+ }
+ onRemove() {
+ this._removed = true, this.actor.sendAsync({ type: "RS", data: { type: this.type, source: this.id } });
+ }
+ serialize() {
+ return a.e({}, this._options, { type: this.type, data: this._data });
+ }
+ hasTransition() {
+ return false;
+ }
+ }
+ var ut = a.Y([{ name: "a_pos", type: "Int16", components: 2 }, { name: "a_texture_pos", type: "Int16", components: 2 }]);
+ class Wt extends a.E {
+ constructor(w, B, Q, ee) {
+ super(), this.id = w, this.dispatcher = Q, this.coordinates = B.coordinates, this.type = "image", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = false, this.setEventedParent(ee), this.options = B;
+ }
+ load(w) {
+ return a._(this, void 0, void 0, function* () {
+ this._loaded = false, this.fire(new a.k("dataloading", { dataType: "source" })), this.url = this.options.url, this._request = new AbortController();
+ try {
+ let B = yield p.getImage(this.map._requestManager.transformRequest(this.url, "Image"), this._request);
+ this._request = null, this._loaded = true, B && B.data && (this.image = B.data, w && (this.coordinates = w), this._finishLoading());
+ } catch (B) {
+ this._request = null, this._loaded = true, this.fire(new a.j(B));
+ }
+ });
+ }
+ loaded() {
+ return this._loaded;
+ }
+ updateImage(w) {
+ return w.url ? (this._request && (this._request.abort(), this._request = null), this.options.url = w.url, this.load(w.coordinates).finally(() => {
+ this.texture = null;
+ }), this) : this;
+ }
+ _finishLoading() {
+ this.map && (this.setCoordinates(this.coordinates), this.fire(new a.k("data", { dataType: "source", sourceDataType: "metadata" })));
+ }
+ onAdd(w) {
+ this.map = w, this.load();
+ }
+ onRemove() {
+ this._request && (this._request.abort(), this._request = null);
+ }
+ setCoordinates(w) {
+ this.coordinates = w;
+ let B = w.map(a.Z.fromLngLat);
+ this.tileID = function(ee) {
+ let le = 1 / 0, Oe = 1 / 0, Ze = -1 / 0, st = -1 / 0;
+ for (let xr of ee) le = Math.min(le, xr.x), Oe = Math.min(Oe, xr.y), Ze = Math.max(Ze, xr.x), st = Math.max(st, xr.y);
+ let Tt = Math.max(Ze - le, st - Oe), Yt = Math.max(0, Math.floor(-Math.log(Tt) / Math.LN2)), Kt = Math.pow(2, Yt);
+ return new a.a1(Yt, Math.floor((le + Ze) / 2 * Kt), Math.floor((Oe + st) / 2 * Kt));
+ }(B), this.minzoom = this.maxzoom = this.tileID.z;
+ let Q = B.map((ee) => this.tileID.getTilePoint(ee)._round());
+ return this._boundsArray = new a.$(), this._boundsArray.emplaceBack(Q[0].x, Q[0].y, 0, 0), this._boundsArray.emplaceBack(Q[1].x, Q[1].y, a.X, 0), this._boundsArray.emplaceBack(Q[3].x, Q[3].y, 0, a.X), this._boundsArray.emplaceBack(Q[2].x, Q[2].y, a.X, a.X), this.boundsBuffer && (this.boundsBuffer.destroy(), delete this.boundsBuffer), this.fire(new a.k("data", { dataType: "source", sourceDataType: "content" })), this;
+ }
+ prepare() {
+ if (Object.keys(this.tiles).length === 0 || !this.image) return;
+ let w = this.map.painter.context, B = w.gl;
+ this.boundsBuffer || (this.boundsBuffer = w.createVertexBuffer(this._boundsArray, ut.members)), this.boundsSegments || (this.boundsSegments = a.a0.simpleSegment(0, 0, 4, 2)), this.texture || (this.texture = new g(w, this.image, B.RGBA), this.texture.bind(B.LINEAR, B.CLAMP_TO_EDGE));
+ let Q = false;
+ for (let ee in this.tiles) {
+ let le = this.tiles[ee];
+ le.state !== "loaded" && (le.state = "loaded", le.texture = this.texture, Q = true);
+ }
+ Q && this.fire(new a.k("data", { dataType: "source", sourceDataType: "idle", sourceId: this.id }));
+ }
+ loadTile(w) {
+ return a._(this, void 0, void 0, function* () {
+ this.tileID && this.tileID.equals(w.tileID.canonical) ? (this.tiles[String(w.tileID.wrap)] = w, w.buckets = {}) : w.state = "errored";
+ });
+ }
+ serialize() {
+ return { type: "image", url: this.options.url, coordinates: this.coordinates };
+ }
+ hasTransition() {
+ return false;
+ }
+ }
+ class Nt extends Wt {
+ constructor(w, B, Q, ee) {
+ super(w, B, Q, ee), this.roundZoom = true, this.type = "video", this.options = B;
+ }
+ load() {
+ return a._(this, void 0, void 0, function* () {
+ this._loaded = false;
+ let w = this.options;
+ this.urls = [];
+ for (let B of w.urls) this.urls.push(this.map._requestManager.transformRequest(B, "Source").url);
+ try {
+ let B = yield a.a3(this.urls);
+ if (this._loaded = true, !B) return;
+ this.video = B, this.video.loop = true, this.video.addEventListener("playing", () => {
+ this.map.triggerRepaint();
+ }), this.map && this.video.play(), this._finishLoading();
+ } catch (B) {
+ this.fire(new a.j(B));
+ }
+ });
+ }
+ pause() {
+ this.video && this.video.pause();
+ }
+ play() {
+ this.video && this.video.play();
+ }
+ seek(w) {
+ if (this.video) {
+ let B = this.video.seekable;
+ w < B.start(0) || w > B.end(0) ? this.fire(new a.j(new a.a2(`sources.${this.id}`, null, `Playback for this video can be set only between the ${B.start(0)} and ${B.end(0)}-second mark.`))) : this.video.currentTime = w;
+ }
+ }
+ getVideo() {
+ return this.video;
+ }
+ onAdd(w) {
+ this.map || (this.map = w, this.load(), this.video && (this.video.play(), this.setCoordinates(this.coordinates)));
+ }
+ prepare() {
+ if (Object.keys(this.tiles).length === 0 || this.video.readyState < 2) return;
+ let w = this.map.painter.context, B = w.gl;
+ this.boundsBuffer || (this.boundsBuffer = w.createVertexBuffer(this._boundsArray, ut.members)), this.boundsSegments || (this.boundsSegments = a.a0.simpleSegment(0, 0, 4, 2)), this.texture ? this.video.paused || (this.texture.bind(B.LINEAR, B.CLAMP_TO_EDGE), B.texSubImage2D(B.TEXTURE_2D, 0, 0, 0, B.RGBA, B.UNSIGNED_BYTE, this.video)) : (this.texture = new g(w, this.video, B.RGBA), this.texture.bind(B.LINEAR, B.CLAMP_TO_EDGE));
+ let Q = false;
+ for (let ee in this.tiles) {
+ let le = this.tiles[ee];
+ le.state !== "loaded" && (le.state = "loaded", le.texture = this.texture, Q = true);
+ }
+ Q && this.fire(new a.k("data", { dataType: "source", sourceDataType: "idle", sourceId: this.id }));
+ }
+ serialize() {
+ return { type: "video", urls: this.urls, coordinates: this.coordinates };
+ }
+ hasTransition() {
+ return this.video && !this.video.paused;
+ }
+ }
+ class $t extends Wt {
+ constructor(w, B, Q, ee) {
+ super(w, B, Q, ee), B.coordinates ? Array.isArray(B.coordinates) && B.coordinates.length === 4 && !B.coordinates.some((le) => !Array.isArray(le) || le.length !== 2 || le.some((Oe) => typeof Oe != "number")) || this.fire(new a.j(new a.a2(`sources.${w}`, null, '"coordinates" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new a.j(new a.a2(`sources.${w}`, null, 'missing required property "coordinates"'))), B.animate && typeof B.animate != "boolean" && this.fire(new a.j(new a.a2(`sources.${w}`, null, 'optional "animate" property must be a boolean value'))), B.canvas ? typeof B.canvas == "string" || B.canvas instanceof HTMLCanvasElement || this.fire(new a.j(new a.a2(`sources.${w}`, null, '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new a.j(new a.a2(`sources.${w}`, null, 'missing required property "canvas"'))), this.options = B, this.animate = B.animate === void 0 || B.animate;
+ }
+ load() {
+ return a._(this, void 0, void 0, function* () {
+ this._loaded = true, this.canvas || (this.canvas = this.options.canvas instanceof HTMLCanvasElement ? this.options.canvas : document.getElementById(this.options.canvas)), this.width = this.canvas.width, this.height = this.canvas.height, this._hasInvalidDimensions() ? this.fire(new a.j(new Error("Canvas dimensions cannot be less than or equal to zero."))) : (this.play = function() {
+ this._playing = true, this.map.triggerRepaint();
+ }, this.pause = function() {
+ this._playing && (this.prepare(), this._playing = false);
+ }, this._finishLoading());
+ });
+ }
+ getCanvas() {
+ return this.canvas;
+ }
+ onAdd(w) {
+ this.map = w, this.load(), this.canvas && this.animate && this.play();
+ }
+ onRemove() {
+ this.pause();
+ }
+ prepare() {
+ let w = false;
+ if (this.canvas.width !== this.width && (this.width = this.canvas.width, w = true), this.canvas.height !== this.height && (this.height = this.canvas.height, w = true), this._hasInvalidDimensions() || Object.keys(this.tiles).length === 0) return;
+ let B = this.map.painter.context, Q = B.gl;
+ this.boundsBuffer || (this.boundsBuffer = B.createVertexBuffer(this._boundsArray, ut.members)), this.boundsSegments || (this.boundsSegments = a.a0.simpleSegment(0, 0, 4, 2)), this.texture ? (w || this._playing) && this.texture.update(this.canvas, { premultiply: true }) : this.texture = new g(B, this.canvas, Q.RGBA, { premultiply: true });
+ let ee = false;
+ for (let le in this.tiles) {
+ let Oe = this.tiles[le];
+ Oe.state !== "loaded" && (Oe.state = "loaded", Oe.texture = this.texture, ee = true);
+ }
+ ee && this.fire(new a.k("data", { dataType: "source", sourceDataType: "idle", sourceId: this.id }));
+ }
+ serialize() {
+ return { type: "canvas", coordinates: this.coordinates };
+ }
+ hasTransition() {
+ return this._playing;
+ }
+ _hasInvalidDimensions() {
+ for (let w of [this.canvas.width, this.canvas.height]) if (isNaN(w) || w <= 0) return true;
+ return false;
+ }
+ }
+ let sr = {}, Tr = (ue) => {
+ switch (ue) {
+ case "geojson":
+ return ot;
+ case "image":
+ return Wt;
+ case "raster":
+ return pt;
+ case "raster-dem":
+ return Vt;
+ case "vector":
+ return lt;
+ case "video":
+ return Nt;
+ case "canvas":
+ return $t;
+ }
+ return sr[ue];
+ }, fr = "RTLPluginLoaded";
+ class $e extends a.E {
+ constructor() {
+ super(...arguments), this.status = "unavailable", this.url = null, this.dispatcher = Ae();
+ }
+ _syncState(w) {
+ return this.status = w, this.dispatcher.broadcast("SRPS", { pluginStatus: w, pluginURL: this.url }).catch((B) => {
+ throw this.status = "error", B;
+ });
+ }
+ getRTLTextPluginStatus() {
+ return this.status;
+ }
+ clearRTLTextPlugin() {
+ this.status = "unavailable", this.url = null;
+ }
+ setRTLTextPlugin(w) {
+ return a._(this, arguments, void 0, function* (B, Q = false) {
+ if (this.url) throw new Error("setRTLTextPlugin cannot be called multiple times.");
+ if (this.url = u.resolveURL(B), !this.url) throw new Error(`requested url ${B} is invalid`);
+ if (this.status === "unavailable") {
+ if (!Q) return this._requestImport();
+ this.status = "deferred", this._syncState(this.status);
+ } else if (this.status === "requested") return this._requestImport();
+ });
+ }
+ _requestImport() {
+ return a._(this, void 0, void 0, function* () {
+ yield this._syncState("loading"), this.status = "loaded", this.fire(new a.k(fr));
+ });
+ }
+ lazyLoad() {
+ this.status === "unavailable" ? this.status = "requested" : this.status === "deferred" && this._requestImport();
+ }
+ }
+ let St = null;
+ function Qt() {
+ return St || (St = new $e()), St;
+ }
+ class Gt {
+ constructor(w, B) {
+ this.timeAdded = 0, this.fadeEndTime = 0, this.tileID = w, this.uid = a.a4(), this.uses = 0, this.tileSize = B, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = false, this.hasRTLText = false, this.dependencies = {}, this.rtt = [], this.rttCoords = {}, this.expiredRequestCount = 0, this.state = "loading";
+ }
+ registerFadeDuration(w) {
+ let B = w + this.timeAdded;
+ B < this.fadeEndTime || (this.fadeEndTime = B);
+ }
+ wasRequested() {
+ return this.state === "errored" || this.state === "loaded" || this.state === "reloading";
+ }
+ clearTextures(w) {
+ this.demTexture && w.saveTileTexture(this.demTexture), this.demTexture = null;
+ }
+ loadVectorData(w, B, Q) {
+ if (this.hasData() && this.unloadVectorData(), this.state = "loaded", w) {
+ w.featureIndex && (this.latestFeatureIndex = w.featureIndex, w.rawTileData ? (this.latestRawTileData = w.rawTileData, this.latestFeatureIndex.rawTileData = w.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = w.collisionBoxArray, this.buckets = function(ee, le) {
+ let Oe = {};
+ if (!le) return Oe;
+ for (let Ze of ee) {
+ let st = Ze.layerIds.map((Tt) => le.getLayer(Tt)).filter(Boolean);
+ if (st.length !== 0) {
+ Ze.layers = st, Ze.stateDependentLayerIds && (Ze.stateDependentLayers = Ze.stateDependentLayerIds.map((Tt) => st.filter((Yt) => Yt.id === Tt)[0]));
+ for (let Tt of st) Oe[Tt.id] = Ze;
+ }
+ }
+ return Oe;
+ }(w.buckets, B.style), this.hasSymbolBuckets = false;
+ for (let ee in this.buckets) {
+ let le = this.buckets[ee];
+ if (le instanceof a.a6) {
+ if (this.hasSymbolBuckets = true, !Q) break;
+ le.justReloaded = true;
+ }
+ }
+ if (this.hasRTLText = false, this.hasSymbolBuckets) for (let ee in this.buckets) {
+ let le = this.buckets[ee];
+ if (le instanceof a.a6 && le.hasRTLText) {
+ this.hasRTLText = true, Qt().lazyLoad();
+ break;
+ }
+ }
+ this.queryPadding = 0;
+ for (let ee in this.buckets) {
+ let le = this.buckets[ee];
+ this.queryPadding = Math.max(this.queryPadding, B.style.getLayer(ee).queryRadius(le));
+ }
+ w.imageAtlas && (this.imageAtlas = w.imageAtlas), w.glyphAtlasImage && (this.glyphAtlasImage = w.glyphAtlasImage);
+ } else this.collisionBoxArray = new a.a5();
+ }
+ unloadVectorData() {
+ for (let w in this.buckets) this.buckets[w].destroy();
+ this.buckets = {}, this.imageAtlasTexture && this.imageAtlasTexture.destroy(), this.imageAtlas && (this.imageAtlas = null), this.glyphAtlasTexture && this.glyphAtlasTexture.destroy(), this.latestFeatureIndex = null, this.state = "unloaded";
+ }
+ getBucket(w) {
+ return this.buckets[w.id];
+ }
+ upload(w) {
+ for (let Q in this.buckets) {
+ let ee = this.buckets[Q];
+ ee.uploadPending() && ee.upload(w);
+ }
+ let B = w.gl;
+ this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new g(w, this.imageAtlas.image, B.RGBA), this.imageAtlas.uploaded = true), this.glyphAtlasImage && (this.glyphAtlasTexture = new g(w, this.glyphAtlasImage, B.ALPHA), this.glyphAtlasImage = null);
+ }
+ prepare(w) {
+ this.imageAtlas && this.imageAtlas.patchUpdatedImages(w, this.imageAtlasTexture);
+ }
+ queryRenderedFeatures(w, B, Q, ee, le, Oe, Ze, st, Tt, Yt) {
+ return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ queryGeometry: ee, cameraQueryGeometry: le, scale: Oe, tileSize: this.tileSize, pixelPosMatrix: Yt, transform: st, params: Ze, queryPadding: this.queryPadding * Tt }, w, B, Q) : {};
+ }
+ querySourceFeatures(w, B) {
+ let Q = this.latestFeatureIndex;
+ if (!Q || !Q.rawTileData) return;
+ let ee = Q.loadVTLayers(), le = B && B.sourceLayer ? B.sourceLayer : "", Oe = ee._geojsonTileLayer || ee[le];
+ if (!Oe) return;
+ let Ze = a.a7(B && B.filter), { z: st, x: Tt, y: Yt } = this.tileID.canonical, Kt = { z: st, x: Tt, y: Yt };
+ for (let xr = 0; xr < Oe.length; xr++) {
+ let Ir = Oe.feature(xr);
+ if (Ze.needGeometry) {
+ let Re = a.a8(Ir, true);
+ if (!Ze.filter(new a.z(this.tileID.overscaledZ), Re, this.tileID.canonical)) continue;
+ } else if (!Ze.filter(new a.z(this.tileID.overscaledZ), Ir)) continue;
+ let ve = Q.getId(Ir, le), be = new a.a9(Ir, st, Tt, Yt, ve);
+ be.tile = Kt, w.push(be);
+ }
+ }
+ hasData() {
+ return this.state === "loaded" || this.state === "reloading" || this.state === "expired";
+ }
+ patternsLoaded() {
+ return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length;
+ }
+ setExpiryData(w) {
+ let B = this.expirationTime;
+ if (w.cacheControl) {
+ let Q = a.aa(w.cacheControl);
+ Q["max-age"] && (this.expirationTime = Date.now() + 1e3 * Q["max-age"]);
+ } else w.expires && (this.expirationTime = new Date(w.expires).getTime());
+ if (this.expirationTime) {
+ let Q = Date.now(), ee = false;
+ if (this.expirationTime > Q) ee = false;
+ else if (B) if (this.expirationTime < B) ee = true;
+ else {
+ let le = this.expirationTime - B;
+ le ? this.expirationTime = Q + Math.max(le, 3e4) : ee = true;
+ }
+ else ee = true;
+ ee ? (this.expiredRequestCount++, this.state = "expired") : this.expiredRequestCount = 0;
+ }
+ }
+ getExpiryTimeout() {
+ if (this.expirationTime) return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - (/* @__PURE__ */ new Date()).getTime(), Math.pow(2, 31) - 1);
+ }
+ setFeatureState(w, B) {
+ if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || Object.keys(w).length === 0) return;
+ let Q = this.latestFeatureIndex.loadVTLayers();
+ for (let ee in this.buckets) {
+ if (!B.style.hasLayer(ee)) continue;
+ let le = this.buckets[ee], Oe = le.layers[0].sourceLayer || "_geojsonTileLayer", Ze = Q[Oe], st = w[Oe];
+ if (!Ze || !st || Object.keys(st).length === 0) continue;
+ le.update(st, Ze, this.imageAtlas && this.imageAtlas.patternPositions || {});
+ let Tt = B && B.style && B.style.getLayer(ee);
+ Tt && (this.queryPadding = Math.max(this.queryPadding, Tt.queryRadius(le)));
+ }
+ }
+ holdingForFade() {
+ return this.symbolFadeHoldUntil !== void 0;
+ }
+ symbolFadeFinished() {
+ return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < u.now();
+ }
+ clearFadeHold() {
+ this.symbolFadeHoldUntil = void 0;
+ }
+ setHoldDuration(w) {
+ this.symbolFadeHoldUntil = u.now() + w;
+ }
+ setDependencies(w, B) {
+ let Q = {};
+ for (let ee of B) Q[ee] = true;
+ this.dependencies[w] = Q;
+ }
+ hasDependency(w, B) {
+ for (let Q of w) {
+ let ee = this.dependencies[Q];
+ if (ee) {
+ for (let le of B) if (ee[le]) return true;
+ }
+ }
+ return false;
+ }
+ }
+ class _t {
+ constructor(w, B) {
+ this.max = w, this.onRemove = B, this.reset();
+ }
+ reset() {
+ for (let w in this.data) for (let B of this.data[w]) B.timeout && clearTimeout(B.timeout), this.onRemove(B.value);
+ return this.data = {}, this.order = [], this;
+ }
+ add(w, B, Q) {
+ let ee = w.wrapped().key;
+ this.data[ee] === void 0 && (this.data[ee] = []);
+ let le = { value: B, timeout: void 0 };
+ if (Q !== void 0 && (le.timeout = setTimeout(() => {
+ this.remove(w, le);
+ }, Q)), this.data[ee].push(le), this.order.push(ee), this.order.length > this.max) {
+ let Oe = this._getAndRemoveByKey(this.order[0]);
+ Oe && this.onRemove(Oe);
+ }
+ return this;
+ }
+ has(w) {
+ return w.wrapped().key in this.data;
+ }
+ getAndRemove(w) {
+ return this.has(w) ? this._getAndRemoveByKey(w.wrapped().key) : null;
+ }
+ _getAndRemoveByKey(w) {
+ let B = this.data[w].shift();
+ return B.timeout && clearTimeout(B.timeout), this.data[w].length === 0 && delete this.data[w], this.order.splice(this.order.indexOf(w), 1), B.value;
+ }
+ getByKey(w) {
+ let B = this.data[w];
+ return B ? B[0].value : null;
+ }
+ get(w) {
+ return this.has(w) ? this.data[w.wrapped().key][0].value : null;
+ }
+ remove(w, B) {
+ if (!this.has(w)) return this;
+ let Q = w.wrapped().key, ee = B === void 0 ? 0 : this.data[Q].indexOf(B), le = this.data[Q][ee];
+ return this.data[Q].splice(ee, 1), le.timeout && clearTimeout(le.timeout), this.data[Q].length === 0 && delete this.data[Q], this.onRemove(le.value), this.order.splice(this.order.indexOf(Q), 1), this;
+ }
+ setMaxSize(w) {
+ for (this.max = w; this.order.length > this.max; ) {
+ let B = this._getAndRemoveByKey(this.order[0]);
+ B && this.onRemove(B);
+ }
+ return this;
+ }
+ filter(w) {
+ let B = [];
+ for (let Q in this.data) for (let ee of this.data[Q]) w(ee.value) || B.push(ee);
+ for (let Q of B) this.remove(Q.value.tileID, Q);
+ }
+ }
+ class It {
+ constructor() {
+ this.state = {}, this.stateChanges = {}, this.deletedStates = {};
+ }
+ updateState(w, B, Q) {
+ let ee = String(B);
+ if (this.stateChanges[w] = this.stateChanges[w] || {}, this.stateChanges[w][ee] = this.stateChanges[w][ee] || {}, a.e(this.stateChanges[w][ee], Q), this.deletedStates[w] === null) {
+ this.deletedStates[w] = {};
+ for (let le in this.state[w]) le !== ee && (this.deletedStates[w][le] = null);
+ } else if (this.deletedStates[w] && this.deletedStates[w][ee] === null) {
+ this.deletedStates[w][ee] = {};
+ for (let le in this.state[w][ee]) Q[le] || (this.deletedStates[w][ee][le] = null);
+ } else for (let le in Q) this.deletedStates[w] && this.deletedStates[w][ee] && this.deletedStates[w][ee][le] === null && delete this.deletedStates[w][ee][le];
+ }
+ removeFeatureState(w, B, Q) {
+ if (this.deletedStates[w] === null) return;
+ let ee = String(B);
+ if (this.deletedStates[w] = this.deletedStates[w] || {}, Q && B !== void 0) this.deletedStates[w][ee] !== null && (this.deletedStates[w][ee] = this.deletedStates[w][ee] || {}, this.deletedStates[w][ee][Q] = null);
+ else if (B !== void 0) if (this.stateChanges[w] && this.stateChanges[w][ee]) for (Q in this.deletedStates[w][ee] = {}, this.stateChanges[w][ee]) this.deletedStates[w][ee][Q] = null;
+ else this.deletedStates[w][ee] = null;
+ else this.deletedStates[w] = null;
+ }
+ getState(w, B) {
+ let Q = String(B), ee = a.e({}, (this.state[w] || {})[Q], (this.stateChanges[w] || {})[Q]);
+ if (this.deletedStates[w] === null) return {};
+ if (this.deletedStates[w]) {
+ let le = this.deletedStates[w][B];
+ if (le === null) return {};
+ for (let Oe in le) delete ee[Oe];
+ }
+ return ee;
+ }
+ initializeTileState(w, B) {
+ w.setFeatureState(this.state, B);
+ }
+ coalesceChanges(w, B) {
+ let Q = {};
+ for (let ee in this.stateChanges) {
+ this.state[ee] = this.state[ee] || {};
+ let le = {};
+ for (let Oe in this.stateChanges[ee]) this.state[ee][Oe] || (this.state[ee][Oe] = {}), a.e(this.state[ee][Oe], this.stateChanges[ee][Oe]), le[Oe] = this.state[ee][Oe];
+ Q[ee] = le;
+ }
+ for (let ee in this.deletedStates) {
+ this.state[ee] = this.state[ee] || {};
+ let le = {};
+ if (this.deletedStates[ee] === null) for (let Oe in this.state[ee]) le[Oe] = {}, this.state[ee][Oe] = {};
+ else for (let Oe in this.deletedStates[ee]) {
+ if (this.deletedStates[ee][Oe] === null) this.state[ee][Oe] = {};
+ else for (let Ze of Object.keys(this.deletedStates[ee][Oe])) delete this.state[ee][Oe][Ze];
+ le[Oe] = this.state[ee][Oe];
+ }
+ Q[ee] = Q[ee] || {}, a.e(Q[ee], le);
+ }
+ if (this.stateChanges = {}, this.deletedStates = {}, Object.keys(Q).length !== 0) for (let ee in w) w[ee].setFeatureState(Q, B);
+ }
+ }
+ class mt extends a.E {
+ constructor(w, B, Q) {
+ super(), this.id = w, this.dispatcher = Q, this.on("data", (ee) => this._dataHandler(ee)), this.on("dataloading", () => {
+ this._sourceErrored = false;
+ }), this.on("error", () => {
+ this._sourceErrored = this._source.loaded();
+ }), this._source = ((ee, le, Oe, Ze) => {
+ let st = new (Tr(le.type))(ee, le, Oe, Ze);
+ if (st.id !== ee) throw new Error(`Expected Source id to be ${ee} instead of ${st.id}`);
+ return st;
+ })(w, B, Q, this), this._tiles = {}, this._cache = new _t(0, (ee) => this._unloadTile(ee)), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._maxTileCacheZoomLevels = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new It(), this._didEmitContent = false, this._updated = false;
+ }
+ onAdd(w) {
+ this.map = w, this._maxTileCacheSize = w ? w._maxTileCacheSize : null, this._maxTileCacheZoomLevels = w ? w._maxTileCacheZoomLevels : null, this._source && this._source.onAdd && this._source.onAdd(w);
+ }
+ onRemove(w) {
+ this.clearTiles(), this._source && this._source.onRemove && this._source.onRemove(w);
+ }
+ loaded() {
+ if (this._sourceErrored) return true;
+ if (!this._sourceLoaded || !this._source.loaded()) return false;
+ if (!(this.used === void 0 && this.usedForTerrain === void 0 || this.used || this.usedForTerrain)) return true;
+ if (!this._updated) return false;
+ for (let w in this._tiles) {
+ let B = this._tiles[w];
+ if (B.state !== "loaded" && B.state !== "errored") return false;
+ }
+ return true;
+ }
+ getSource() {
+ return this._source;
+ }
+ pause() {
+ this._paused = true;
+ }
+ resume() {
+ if (!this._paused) return;
+ let w = this._shouldReloadOnResume;
+ this._paused = false, this._shouldReloadOnResume = false, w && this.reload(), this.transform && this.update(this.transform, this.terrain);
+ }
+ _loadTile(w, B, Q) {
+ return a._(this, void 0, void 0, function* () {
+ try {
+ yield this._source.loadTile(w), this._tileLoaded(w, B, Q);
+ } catch (ee) {
+ w.state = "errored", ee.status !== 404 ? this._source.fire(new a.j(ee, { tile: w })) : this.update(this.transform, this.terrain);
+ }
+ });
+ }
+ _unloadTile(w) {
+ this._source.unloadTile && this._source.unloadTile(w);
+ }
+ _abortTile(w) {
+ this._source.abortTile && this._source.abortTile(w), this._source.fire(new a.k("dataabort", { tile: w, coord: w.tileID, dataType: "source" }));
+ }
+ serialize() {
+ return this._source.serialize();
+ }
+ prepare(w) {
+ this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null);
+ for (let B in this._tiles) {
+ let Q = this._tiles[B];
+ Q.upload(w), Q.prepare(this.map.style.imageManager);
+ }
+ }
+ getIds() {
+ return Object.values(this._tiles).map((w) => w.tileID).sort(er).map((w) => w.key);
+ }
+ getRenderableIds(w) {
+ let B = [];
+ for (let Q in this._tiles) this._isIdRenderable(Q, w) && B.push(this._tiles[Q]);
+ return w ? B.sort((Q, ee) => {
+ let le = Q.tileID, Oe = ee.tileID, Ze = new a.P(le.canonical.x, le.canonical.y)._rotate(this.transform.angle), st = new a.P(Oe.canonical.x, Oe.canonical.y)._rotate(this.transform.angle);
+ return le.overscaledZ - Oe.overscaledZ || st.y - Ze.y || st.x - Ze.x;
+ }).map((Q) => Q.tileID.key) : B.map((Q) => Q.tileID).sort(er).map((Q) => Q.key);
+ }
+ hasRenderableParent(w) {
+ let B = this.findLoadedParent(w, 0);
+ return !!B && this._isIdRenderable(B.tileID.key);
+ }
+ _isIdRenderable(w, B) {
+ return this._tiles[w] && this._tiles[w].hasData() && !this._coveredTiles[w] && (B || !this._tiles[w].holdingForFade());
+ }
+ reload() {
+ if (this._paused) this._shouldReloadOnResume = true;
+ else {
+ this._cache.reset();
+ for (let w in this._tiles) this._tiles[w].state !== "errored" && this._reloadTile(w, "reloading");
+ }
+ }
+ _reloadTile(w, B) {
+ return a._(this, void 0, void 0, function* () {
+ let Q = this._tiles[w];
+ Q && (Q.state !== "loading" && (Q.state = B), yield this._loadTile(Q, w, B));
+ });
+ }
+ _tileLoaded(w, B, Q) {
+ w.timeAdded = u.now(), Q === "expired" && (w.refreshedUponExpiration = true), this._setTileReloadTimer(B, w), this.getSource().type === "raster-dem" && w.dem && this._backfillDEM(w), this._state.initializeTileState(w, this.map ? this.map.painter : null), w.aborted || this._source.fire(new a.k("data", { dataType: "source", tile: w, coord: w.tileID }));
+ }
+ _backfillDEM(w) {
+ let B = this.getRenderableIds();
+ for (let ee = 0; ee < B.length; ee++) {
+ let le = B[ee];
+ if (w.neighboringTiles && w.neighboringTiles[le]) {
+ let Oe = this.getTileByID(le);
+ Q(w, Oe), Q(Oe, w);
+ }
+ }
+ function Q(ee, le) {
+ ee.needsHillshadePrepare = true, ee.needsTerrainPrepare = true;
+ let Oe = le.tileID.canonical.x - ee.tileID.canonical.x, Ze = le.tileID.canonical.y - ee.tileID.canonical.y, st = Math.pow(2, ee.tileID.canonical.z), Tt = le.tileID.key;
+ Oe === 0 && Ze === 0 || Math.abs(Ze) > 1 || (Math.abs(Oe) > 1 && (Math.abs(Oe + st) === 1 ? Oe += st : Math.abs(Oe - st) === 1 && (Oe -= st)), le.dem && ee.dem && (ee.dem.backfillBorder(le.dem, Oe, Ze), ee.neighboringTiles && ee.neighboringTiles[Tt] && (ee.neighboringTiles[Tt].backfilled = true)));
+ }
+ }
+ getTile(w) {
+ return this.getTileByID(w.key);
+ }
+ getTileByID(w) {
+ return this._tiles[w];
+ }
+ _retainLoadedChildren(w, B, Q, ee) {
+ for (let le in this._tiles) {
+ let Oe = this._tiles[le];
+ if (ee[le] || !Oe.hasData() || Oe.tileID.overscaledZ <= B || Oe.tileID.overscaledZ > Q) continue;
+ let Ze = Oe.tileID;
+ for (; Oe && Oe.tileID.overscaledZ > B + 1; ) {
+ let Tt = Oe.tileID.scaledTo(Oe.tileID.overscaledZ - 1);
+ Oe = this._tiles[Tt.key], Oe && Oe.hasData() && (Ze = Tt);
+ }
+ let st = Ze;
+ for (; st.overscaledZ > B; ) if (st = st.scaledTo(st.overscaledZ - 1), w[st.key]) {
+ ee[Ze.key] = Ze;
+ break;
+ }
+ }
+ }
+ findLoadedParent(w, B) {
+ if (w.key in this._loadedParentTiles) {
+ let Q = this._loadedParentTiles[w.key];
+ return Q && Q.tileID.overscaledZ >= B ? Q : null;
+ }
+ for (let Q = w.overscaledZ - 1; Q >= B; Q--) {
+ let ee = w.scaledTo(Q), le = this._getLoadedTile(ee);
+ if (le) return le;
+ }
+ }
+ findLoadedSibling(w) {
+ return this._getLoadedTile(w);
+ }
+ _getLoadedTile(w) {
+ let B = this._tiles[w.key];
+ return B && B.hasData() ? B : this._cache.getByKey(w.wrapped().key);
+ }
+ updateCacheSize(w) {
+ let B = Math.ceil(w.width / this._source.tileSize) + 1, Q = Math.ceil(w.height / this._source.tileSize) + 1, ee = Math.floor(B * Q * (this._maxTileCacheZoomLevels === null ? a.a.MAX_TILE_CACHE_ZOOM_LEVELS : this._maxTileCacheZoomLevels)), le = typeof this._maxTileCacheSize == "number" ? Math.min(this._maxTileCacheSize, ee) : ee;
+ this._cache.setMaxSize(le);
+ }
+ handleWrapJump(w) {
+ let B = Math.round((w - (this._prevLng === void 0 ? w : this._prevLng)) / 360);
+ if (this._prevLng = w, B) {
+ let Q = {};
+ for (let ee in this._tiles) {
+ let le = this._tiles[ee];
+ le.tileID = le.tileID.unwrapTo(le.tileID.wrap + B), Q[le.tileID.key] = le;
+ }
+ this._tiles = Q;
+ for (let ee in this._timers) clearTimeout(this._timers[ee]), delete this._timers[ee];
+ for (let ee in this._tiles) this._setTileReloadTimer(ee, this._tiles[ee]);
+ }
+ }
+ _updateCoveredAndRetainedTiles(w, B, Q, ee, le, Oe) {
+ let Ze = {}, st = {}, Tt = Object.keys(w), Yt = u.now();
+ for (let Kt of Tt) {
+ let xr = w[Kt], Ir = this._tiles[Kt];
+ if (!Ir || Ir.fadeEndTime !== 0 && Ir.fadeEndTime <= Yt) continue;
+ let ve = this.findLoadedParent(xr, B), be = this.findLoadedSibling(xr), Re = ve || be || null;
+ Re && (this._addTile(Re.tileID), Ze[Re.tileID.key] = Re.tileID), st[Kt] = xr;
+ }
+ this._retainLoadedChildren(st, ee, Q, w);
+ for (let Kt in Ze) w[Kt] || (this._coveredTiles[Kt] = true, w[Kt] = Ze[Kt]);
+ if (Oe) {
+ let Kt = {}, xr = {};
+ for (let Ir of le) this._tiles[Ir.key].hasData() ? Kt[Ir.key] = Ir : xr[Ir.key] = Ir;
+ for (let Ir in xr) {
+ let ve = xr[Ir].children(this._source.maxzoom);
+ this._tiles[ve[0].key] && this._tiles[ve[1].key] && this._tiles[ve[2].key] && this._tiles[ve[3].key] && (Kt[ve[0].key] = w[ve[0].key] = ve[0], Kt[ve[1].key] = w[ve[1].key] = ve[1], Kt[ve[2].key] = w[ve[2].key] = ve[2], Kt[ve[3].key] = w[ve[3].key] = ve[3], delete xr[Ir]);
+ }
+ for (let Ir in xr) {
+ let ve = xr[Ir], be = this.findLoadedParent(ve, this._source.minzoom), Re = this.findLoadedSibling(ve), qe = be || Re || null;
+ if (qe) {
+ Kt[qe.tileID.key] = w[qe.tileID.key] = qe.tileID;
+ for (let et in Kt) Kt[et].isChildOf(qe.tileID) && delete Kt[et];
+ }
+ }
+ for (let Ir in this._tiles) Kt[Ir] || (this._coveredTiles[Ir] = true);
+ }
+ }
+ update(w, B) {
+ if (!this._sourceLoaded || this._paused) return;
+ let Q;
+ this.transform = w, this.terrain = B, this.updateCacheSize(w), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used || this.usedForTerrain ? this._source.tileID ? Q = w.getVisibleUnwrappedCoordinates(this._source.tileID).map((Yt) => new a.S(Yt.canonical.z, Yt.wrap, Yt.canonical.z, Yt.canonical.x, Yt.canonical.y)) : (Q = w.coveringTiles({ tileSize: this.usedForTerrain ? this.tileSize : this._source.tileSize, minzoom: this._source.minzoom, maxzoom: this._source.maxzoom, roundZoom: !this.usedForTerrain && this._source.roundZoom, reparseOverscaled: this._source.reparseOverscaled, terrain: B }), this._source.hasTile && (Q = Q.filter((Yt) => this._source.hasTile(Yt)))) : Q = [];
+ let ee = w.coveringZoomLevel(this._source), le = Math.max(ee - mt.maxOverzooming, this._source.minzoom), Oe = Math.max(ee + mt.maxUnderzooming, this._source.minzoom);
+ if (this.usedForTerrain) {
+ let Yt = {};
+ for (let Kt of Q) if (Kt.canonical.z > this._source.minzoom) {
+ let xr = Kt.scaledTo(Kt.canonical.z - 1);
+ Yt[xr.key] = xr;
+ let Ir = Kt.scaledTo(Math.max(this._source.minzoom, Math.min(Kt.canonical.z, 5)));
+ Yt[Ir.key] = Ir;
+ }
+ Q = Q.concat(Object.values(Yt));
+ }
+ let Ze = Q.length === 0 && !this._updated && this._didEmitContent;
+ this._updated = true, Ze && this.fire(new a.k("data", { sourceDataType: "idle", dataType: "source", sourceId: this.id }));
+ let st = this._updateRetainedTiles(Q, ee);
+ lr(this._source.type) && this._updateCoveredAndRetainedTiles(st, le, Oe, ee, Q, B);
+ for (let Yt in st) this._tiles[Yt].clearFadeHold();
+ let Tt = a.ab(this._tiles, st);
+ for (let Yt of Tt) {
+ let Kt = this._tiles[Yt];
+ Kt.hasSymbolBuckets && !Kt.holdingForFade() ? Kt.setHoldDuration(this.map._fadeDuration) : Kt.hasSymbolBuckets && !Kt.symbolFadeFinished() || this._removeTile(Yt);
+ }
+ this._updateLoadedParentTileCache(), this._updateLoadedSiblingTileCache();
+ }
+ releaseSymbolFadeTiles() {
+ for (let w in this._tiles) this._tiles[w].holdingForFade() && this._removeTile(w);
+ }
+ _updateRetainedTiles(w, B) {
+ var Q;
+ let ee = {}, le = {}, Oe = Math.max(B - mt.maxOverzooming, this._source.minzoom), Ze = Math.max(B + mt.maxUnderzooming, this._source.minzoom), st = {};
+ for (let Tt of w) {
+ let Yt = this._addTile(Tt);
+ ee[Tt.key] = Tt, Yt.hasData() || B < this._source.maxzoom && (st[Tt.key] = Tt);
+ }
+ this._retainLoadedChildren(st, B, Ze, ee);
+ for (let Tt of w) {
+ let Yt = this._tiles[Tt.key];
+ if (Yt.hasData()) continue;
+ if (B + 1 > this._source.maxzoom) {
+ let xr = Tt.children(this._source.maxzoom)[0], Ir = this.getTile(xr);
+ if (Ir && Ir.hasData()) {
+ ee[xr.key] = xr;
+ continue;
+ }
+ } else {
+ let xr = Tt.children(this._source.maxzoom);
+ if (ee[xr[0].key] && ee[xr[1].key] && ee[xr[2].key] && ee[xr[3].key]) continue;
+ }
+ let Kt = Yt.wasRequested();
+ for (let xr = Tt.overscaledZ - 1; xr >= Oe; --xr) {
+ let Ir = Tt.scaledTo(xr);
+ if (le[Ir.key]) break;
+ if (le[Ir.key] = true, Yt = this.getTile(Ir), !Yt && Kt && (Yt = this._addTile(Ir)), Yt) {
+ let ve = Yt.hasData();
+ if ((ve || !(!((Q = this.map) === null || Q === void 0) && Q.cancelPendingTileRequestsWhileZooming) || Kt) && (ee[Ir.key] = Ir), Kt = Yt.wasRequested(), ve) break;
+ }
+ }
+ }
+ return ee;
+ }
+ _updateLoadedParentTileCache() {
+ this._loadedParentTiles = {};
+ for (let w in this._tiles) {
+ let B = [], Q, ee = this._tiles[w].tileID;
+ for (; ee.overscaledZ > 0; ) {
+ if (ee.key in this._loadedParentTiles) {
+ Q = this._loadedParentTiles[ee.key];
+ break;
+ }
+ B.push(ee.key);
+ let le = ee.scaledTo(ee.overscaledZ - 1);
+ if (Q = this._getLoadedTile(le), Q) break;
+ ee = le;
+ }
+ for (let le of B) this._loadedParentTiles[le] = Q;
+ }
+ }
+ _updateLoadedSiblingTileCache() {
+ this._loadedSiblingTiles = {};
+ for (let w in this._tiles) {
+ let B = this._tiles[w].tileID, Q = this._getLoadedTile(B);
+ this._loadedSiblingTiles[B.key] = Q;
+ }
+ }
+ _addTile(w) {
+ let B = this._tiles[w.key];
+ if (B) return B;
+ B = this._cache.getAndRemove(w), B && (this._setTileReloadTimer(w.key, B), B.tileID = w, this._state.initializeTileState(B, this.map ? this.map.painter : null), this._cacheTimers[w.key] && (clearTimeout(this._cacheTimers[w.key]), delete this._cacheTimers[w.key], this._setTileReloadTimer(w.key, B)));
+ let Q = B;
+ return B || (B = new Gt(w, this._source.tileSize * w.overscaleFactor()), this._loadTile(B, w.key, B.state)), B.uses++, this._tiles[w.key] = B, Q || this._source.fire(new a.k("dataloading", { tile: B, coord: B.tileID, dataType: "source" })), B;
+ }
+ _setTileReloadTimer(w, B) {
+ w in this._timers && (clearTimeout(this._timers[w]), delete this._timers[w]);
+ let Q = B.getExpiryTimeout();
+ Q && (this._timers[w] = setTimeout(() => {
+ this._reloadTile(w, "expired"), delete this._timers[w];
+ }, Q));
+ }
+ _removeTile(w) {
+ let B = this._tiles[w];
+ B && (B.uses--, delete this._tiles[w], this._timers[w] && (clearTimeout(this._timers[w]), delete this._timers[w]), B.uses > 0 || (B.hasData() && B.state !== "reloading" ? this._cache.add(B.tileID, B, B.getExpiryTimeout()) : (B.aborted = true, this._abortTile(B), this._unloadTile(B))));
+ }
+ _dataHandler(w) {
+ let B = w.sourceDataType;
+ w.dataType === "source" && B === "metadata" && (this._sourceLoaded = true), this._sourceLoaded && !this._paused && w.dataType === "source" && B === "content" && (this.reload(), this.transform && this.update(this.transform, this.terrain), this._didEmitContent = true);
+ }
+ clearTiles() {
+ this._shouldReloadOnResume = false, this._paused = false;
+ for (let w in this._tiles) this._removeTile(w);
+ this._cache.reset();
+ }
+ tilesIn(w, B, Q) {
+ let ee = [], le = this.transform;
+ if (!le) return ee;
+ let Oe = Q ? le.getCameraQueryGeometry(w) : w, Ze = w.map((ve) => le.pointCoordinate(ve, this.terrain)), st = Oe.map((ve) => le.pointCoordinate(ve, this.terrain)), Tt = this.getIds(), Yt = 1 / 0, Kt = 1 / 0, xr = -1 / 0, Ir = -1 / 0;
+ for (let ve of st) Yt = Math.min(Yt, ve.x), Kt = Math.min(Kt, ve.y), xr = Math.max(xr, ve.x), Ir = Math.max(Ir, ve.y);
+ for (let ve = 0; ve < Tt.length; ve++) {
+ let be = this._tiles[Tt[ve]];
+ if (be.holdingForFade()) continue;
+ let Re = be.tileID, qe = Math.pow(2, le.zoom - be.tileID.overscaledZ), et = B * be.queryPadding * a.X / be.tileSize / qe, Xe = [Re.getTilePoint(new a.Z(Yt, Kt)), Re.getTilePoint(new a.Z(xr, Ir))];
+ if (Xe[0].x - et < a.X && Xe[0].y - et < a.X && Xe[1].x + et >= 0 && Xe[1].y + et >= 0) {
+ let it = Ze.map((Ht) => Re.getTilePoint(Ht)), Ft = st.map((Ht) => Re.getTilePoint(Ht));
+ ee.push({ tile: be, tileID: Re, queryGeometry: it, cameraQueryGeometry: Ft, scale: qe });
+ }
+ }
+ return ee;
+ }
+ getVisibleCoordinates(w) {
+ let B = this.getRenderableIds(w).map((Q) => this._tiles[Q].tileID);
+ for (let Q of B) Q.posMatrix = this.transform.calculatePosMatrix(Q.toUnwrapped());
+ return B;
+ }
+ hasTransition() {
+ if (this._source.hasTransition()) return true;
+ if (lr(this._source.type)) {
+ let w = u.now();
+ for (let B in this._tiles) if (this._tiles[B].fadeEndTime >= w) return true;
+ }
+ return false;
+ }
+ setFeatureState(w, B, Q) {
+ this._state.updateState(w = w || "_geojsonTileLayer", B, Q);
+ }
+ removeFeatureState(w, B, Q) {
+ this._state.removeFeatureState(w = w || "_geojsonTileLayer", B, Q);
+ }
+ getFeatureState(w, B) {
+ return this._state.getState(w = w || "_geojsonTileLayer", B);
+ }
+ setDependencies(w, B, Q) {
+ let ee = this._tiles[w];
+ ee && ee.setDependencies(B, Q);
+ }
+ reloadTilesForDependencies(w, B) {
+ for (let Q in this._tiles) this._tiles[Q].hasDependency(w, B) && this._reloadTile(Q, "reloading");
+ this._cache.filter((Q) => !Q.hasDependency(w, B));
+ }
+ }
+ function er(ue, w) {
+ let B = Math.abs(2 * ue.wrap) - +(ue.wrap < 0), Q = Math.abs(2 * w.wrap) - +(w.wrap < 0);
+ return ue.overscaledZ - w.overscaledZ || Q - B || w.canonical.y - ue.canonical.y || w.canonical.x - ue.canonical.x;
+ }
+ function lr(ue) {
+ return ue === "raster" || ue === "image" || ue === "video";
+ }
+ mt.maxOverzooming = 10, mt.maxUnderzooming = 3;
+ class wr {
+ constructor(w, B) {
+ this.reset(w, B);
+ }
+ reset(w, B) {
+ this.points = w || [], this._distances = [0];
+ for (let Q = 1; Q < this.points.length; Q++) this._distances[Q] = this._distances[Q - 1] + this.points[Q].dist(this.points[Q - 1]);
+ this.length = this._distances[this._distances.length - 1], this.padding = Math.min(B || 0, 0.5 * this.length), this.paddedLength = this.length - 2 * this.padding;
+ }
+ lerp(w) {
+ if (this.points.length === 1) return this.points[0];
+ w = a.ac(w, 0, 1);
+ let B = 1, Q = this._distances[B], ee = w * this.paddedLength + this.padding;
+ for (; Q < ee && B < this._distances.length; ) Q = this._distances[++B];
+ let le = B - 1, Oe = this._distances[le], Ze = Q - Oe, st = Ze > 0 ? (ee - Oe) / Ze : 0;
+ return this.points[le].mult(1 - st).add(this.points[B].mult(st));
+ }
+ }
+ function Lr(ue, w) {
+ let B = true;
+ return ue === "always" || ue !== "never" && w !== "never" || (B = false), B;
+ }
+ class ti {
+ constructor(w, B, Q) {
+ let ee = this.boxCells = [], le = this.circleCells = [];
+ this.xCellCount = Math.ceil(w / Q), this.yCellCount = Math.ceil(B / Q);
+ for (let Oe = 0; Oe < this.xCellCount * this.yCellCount; Oe++) ee.push([]), le.push([]);
+ this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = w, this.height = B, this.xScale = this.xCellCount / w, this.yScale = this.yCellCount / B, this.boxUid = 0, this.circleUid = 0;
+ }
+ keysLength() {
+ return this.boxKeys.length + this.circleKeys.length;
+ }
+ insert(w, B, Q, ee, le) {
+ this._forEachCell(B, Q, ee, le, this._insertBoxCell, this.boxUid++), this.boxKeys.push(w), this.bboxes.push(B), this.bboxes.push(Q), this.bboxes.push(ee), this.bboxes.push(le);
+ }
+ insertCircle(w, B, Q, ee) {
+ this._forEachCell(B - ee, Q - ee, B + ee, Q + ee, this._insertCircleCell, this.circleUid++), this.circleKeys.push(w), this.circles.push(B), this.circles.push(Q), this.circles.push(ee);
+ }
+ _insertBoxCell(w, B, Q, ee, le, Oe) {
+ this.boxCells[le].push(Oe);
+ }
+ _insertCircleCell(w, B, Q, ee, le, Oe) {
+ this.circleCells[le].push(Oe);
+ }
+ _query(w, B, Q, ee, le, Oe, Ze) {
+ if (Q < 0 || w > this.width || ee < 0 || B > this.height) return [];
+ let st = [];
+ if (w <= 0 && B <= 0 && this.width <= Q && this.height <= ee) {
+ if (le) return [{ key: null, x1: w, y1: B, x2: Q, y2: ee }];
+ for (let Tt = 0; Tt < this.boxKeys.length; Tt++) st.push({ key: this.boxKeys[Tt], x1: this.bboxes[4 * Tt], y1: this.bboxes[4 * Tt + 1], x2: this.bboxes[4 * Tt + 2], y2: this.bboxes[4 * Tt + 3] });
+ for (let Tt = 0; Tt < this.circleKeys.length; Tt++) {
+ let Yt = this.circles[3 * Tt], Kt = this.circles[3 * Tt + 1], xr = this.circles[3 * Tt + 2];
+ st.push({ key: this.circleKeys[Tt], x1: Yt - xr, y1: Kt - xr, x2: Yt + xr, y2: Kt + xr });
+ }
+ } else this._forEachCell(w, B, Q, ee, this._queryCell, st, { hitTest: le, overlapMode: Oe, seenUids: { box: {}, circle: {} } }, Ze);
+ return st;
+ }
+ query(w, B, Q, ee) {
+ return this._query(w, B, Q, ee, false, null);
+ }
+ hitTest(w, B, Q, ee, le, Oe) {
+ return this._query(w, B, Q, ee, true, le, Oe).length > 0;
+ }
+ hitTestCircle(w, B, Q, ee, le) {
+ let Oe = w - Q, Ze = w + Q, st = B - Q, Tt = B + Q;
+ if (Ze < 0 || Oe > this.width || Tt < 0 || st > this.height) return false;
+ let Yt = [];
+ return this._forEachCell(Oe, st, Ze, Tt, this._queryCellCircle, Yt, { hitTest: true, overlapMode: ee, circle: { x: w, y: B, radius: Q }, seenUids: { box: {}, circle: {} } }, le), Yt.length > 0;
+ }
+ _queryCell(w, B, Q, ee, le, Oe, Ze, st) {
+ let { seenUids: Tt, hitTest: Yt, overlapMode: Kt } = Ze, xr = this.boxCells[le];
+ if (xr !== null) {
+ let ve = this.bboxes;
+ for (let be of xr) if (!Tt.box[be]) {
+ Tt.box[be] = true;
+ let Re = 4 * be, qe = this.boxKeys[be];
+ if (w <= ve[Re + 2] && B <= ve[Re + 3] && Q >= ve[Re + 0] && ee >= ve[Re + 1] && (!st || st(qe)) && (!Yt || !Lr(Kt, qe.overlapMode)) && (Oe.push({ key: qe, x1: ve[Re], y1: ve[Re + 1], x2: ve[Re + 2], y2: ve[Re + 3] }), Yt)) return true;
+ }
+ }
+ let Ir = this.circleCells[le];
+ if (Ir !== null) {
+ let ve = this.circles;
+ for (let be of Ir) if (!Tt.circle[be]) {
+ Tt.circle[be] = true;
+ let Re = 3 * be, qe = this.circleKeys[be];
+ if (this._circleAndRectCollide(ve[Re], ve[Re + 1], ve[Re + 2], w, B, Q, ee) && (!st || st(qe)) && (!Yt || !Lr(Kt, qe.overlapMode))) {
+ let et = ve[Re], Xe = ve[Re + 1], it = ve[Re + 2];
+ if (Oe.push({ key: qe, x1: et - it, y1: Xe - it, x2: et + it, y2: Xe + it }), Yt) return true;
+ }
+ }
+ }
+ return false;
+ }
+ _queryCellCircle(w, B, Q, ee, le, Oe, Ze, st) {
+ let { circle: Tt, seenUids: Yt, overlapMode: Kt } = Ze, xr = this.boxCells[le];
+ if (xr !== null) {
+ let ve = this.bboxes;
+ for (let be of xr) if (!Yt.box[be]) {
+ Yt.box[be] = true;
+ let Re = 4 * be, qe = this.boxKeys[be];
+ if (this._circleAndRectCollide(Tt.x, Tt.y, Tt.radius, ve[Re + 0], ve[Re + 1], ve[Re + 2], ve[Re + 3]) && (!st || st(qe)) && !Lr(Kt, qe.overlapMode)) return Oe.push(true), true;
+ }
+ }
+ let Ir = this.circleCells[le];
+ if (Ir !== null) {
+ let ve = this.circles;
+ for (let be of Ir) if (!Yt.circle[be]) {
+ Yt.circle[be] = true;
+ let Re = 3 * be, qe = this.circleKeys[be];
+ if (this._circlesCollide(ve[Re], ve[Re + 1], ve[Re + 2], Tt.x, Tt.y, Tt.radius) && (!st || st(qe)) && !Lr(Kt, qe.overlapMode)) return Oe.push(true), true;
+ }
+ }
+ }
+ _forEachCell(w, B, Q, ee, le, Oe, Ze, st) {
+ let Tt = this._convertToXCellCoord(w), Yt = this._convertToYCellCoord(B), Kt = this._convertToXCellCoord(Q), xr = this._convertToYCellCoord(ee);
+ for (let Ir = Tt; Ir <= Kt; Ir++) for (let ve = Yt; ve <= xr; ve++) if (le.call(this, w, B, Q, ee, this.xCellCount * ve + Ir, Oe, Ze, st)) return;
+ }
+ _convertToXCellCoord(w) {
+ return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(w * this.xScale)));
+ }
+ _convertToYCellCoord(w) {
+ return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(w * this.yScale)));
+ }
+ _circlesCollide(w, B, Q, ee, le, Oe) {
+ let Ze = ee - w, st = le - B, Tt = Q + Oe;
+ return Tt * Tt > Ze * Ze + st * st;
+ }
+ _circleAndRectCollide(w, B, Q, ee, le, Oe, Ze) {
+ let st = (Oe - ee) / 2, Tt = Math.abs(w - (ee + st));
+ if (Tt > st + Q) return false;
+ let Yt = (Ze - le) / 2, Kt = Math.abs(B - (le + Yt));
+ if (Kt > Yt + Q) return false;
+ if (Tt <= st || Kt <= Yt) return true;
+ let xr = Tt - st, Ir = Kt - Yt;
+ return xr * xr + Ir * Ir <= Q * Q;
+ }
+ }
+ function Br(ue, w, B, Q, ee) {
+ let le = a.H();
+ return w ? (a.K(le, le, [1 / ee, 1 / ee, 1]), B || a.ad(le, le, Q.angle)) : a.L(le, Q.labelPlaneMatrix, ue), le;
+ }
+ function Vr(ue, w, B, Q, ee) {
+ if (w) {
+ let le = a.ae(ue);
+ return a.K(le, le, [ee, ee, 1]), B || a.ad(le, le, -Q.angle), le;
+ }
+ return Q.glCoordMatrix;
+ }
+ function dt(ue, w, B, Q) {
+ let ee;
+ Q ? (ee = [ue, w, Q(ue, w), 1], a.af(ee, ee, B)) : (ee = [ue, w, 0, 1], $r(ee, ee, B));
+ let le = ee[3];
+ return { point: new a.P(ee[0] / le, ee[1] / le), signedDistanceFromCamera: le, isOccluded: false };
+ }
+ function Ge(ue, w) {
+ return 0.5 + ue / w * 0.5;
+ }
+ function Je(ue, w) {
+ return ue.x >= -w[0] && ue.x <= w[0] && ue.y >= -w[1] && ue.y <= w[1];
+ }
+ function We(ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, Ir, ve) {
+ let be = Q ? ue.textSizeData : ue.iconSizeData, Re = a.ag(be, B.transform.zoom), qe = [256 / B.width * 2 + 1, 256 / B.height * 2 + 1], et = Q ? ue.text.dynamicLayoutVertexArray : ue.icon.dynamicLayoutVertexArray;
+ et.clear();
+ let Xe = ue.lineVertexArray, it = Q ? ue.text.placedSymbolArray : ue.icon.placedSymbolArray, Ft = B.transform.width / B.transform.height, Ht = false;
+ for (let tr = 0; tr < it.length; tr++) {
+ let dr = it.get(tr);
+ if (dr.hidden || dr.writingMode === a.ah.vertical && !Ht) {
+ pi(dr.numGlyphs, et);
+ continue;
+ }
+ Ht = false;
+ let Sr = dt(dr.anchorX, dr.anchorY, w, ve);
+ if (!Je(Sr.point, qe)) {
+ pi(dr.numGlyphs, et);
+ continue;
+ }
+ let Or = Ge(B.transform.cameraToCenterDistance, Sr.signedDistanceFromCamera), Wr = a.ai(be, Re, dr), ni = Oe ? Wr / Or : Wr * Or, Pi = { getElevation: ve, labelPlaneMatrix: ee, lineVertexArray: Xe, pitchWithMap: Oe, projectionCache: { projections: {}, offsets: {}, cachedAnchorPoint: void 0, anyProjectionOccluded: false }, projection: Tt, tileAnchorPoint: new a.P(dr.anchorX, dr.anchorY), unwrappedTileID: Yt, width: Kt, height: xr, translation: Ir }, cn = Ie(Pi, dr, ni, false, Ze, w, le, ue.glyphOffsetArray, et, Ft, st);
+ Ht = cn.useVertical, (cn.notEnoughRoom || Ht || cn.needsFlipping && Ie(Pi, dr, ni, true, Ze, w, le, ue.glyphOffsetArray, et, Ft, st).notEnoughRoom) && pi(dr.numGlyphs, et);
+ }
+ Q ? ue.text.dynamicLayoutVertexBuffer.updateData(et) : ue.icon.dynamicLayoutVertexBuffer.updateData(et);
+ }
+ function tt(ue, w, B, Q, ee, le, Oe, Ze) {
+ let st = le.glyphStartIndex + le.numGlyphs, Tt = le.lineStartIndex, Yt = le.lineStartIndex + le.lineLength, Kt = w.getoffsetX(le.glyphStartIndex), xr = w.getoffsetX(st - 1), Ir = vr(ue * Kt, B, Q, ee, le.segment, Tt, Yt, Ze, Oe);
+ if (!Ir) return null;
+ let ve = vr(ue * xr, B, Q, ee, le.segment, Tt, Yt, Ze, Oe);
+ return ve ? Ze.projectionCache.anyProjectionOccluded ? null : { first: Ir, last: ve } : null;
+ }
+ function xt(ue, w, B, Q) {
+ return ue === a.ah.horizontal && Math.abs(B.y - w.y) > Math.abs(B.x - w.x) * Q ? { useVertical: true } : (ue === a.ah.vertical ? w.y < B.y : w.x > B.x) ? { needsFlipping: true } : null;
+ }
+ function Ie(ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt) {
+ let Kt = B / 24, xr = w.lineOffsetX * Kt, Ir = w.lineOffsetY * Kt, ve;
+ if (w.numGlyphs > 1) {
+ let be = w.glyphStartIndex + w.numGlyphs, Re = w.lineStartIndex, qe = w.lineStartIndex + w.lineLength, et = tt(Kt, Ze, xr, Ir, Q, w, Yt, ue);
+ if (!et) return { notEnoughRoom: true };
+ let Xe = dt(et.first.point.x, et.first.point.y, Oe, ue.getElevation).point, it = dt(et.last.point.x, et.last.point.y, Oe, ue.getElevation).point;
+ if (ee && !Q) {
+ let Ft = xt(w.writingMode, Xe, it, Tt);
+ if (Ft) return Ft;
+ }
+ ve = [et.first];
+ for (let Ft = w.glyphStartIndex + 1; Ft < be - 1; Ft++) ve.push(vr(Kt * Ze.getoffsetX(Ft), xr, Ir, Q, w.segment, Re, qe, ue, Yt));
+ ve.push(et.last);
+ } else {
+ if (ee && !Q) {
+ let Re = dt(ue.tileAnchorPoint.x, ue.tileAnchorPoint.y, le, ue.getElevation).point, qe = w.lineStartIndex + w.segment + 1, et = new a.P(ue.lineVertexArray.getx(qe), ue.lineVertexArray.gety(qe)), Xe = dt(et.x, et.y, le, ue.getElevation), it = Xe.signedDistanceFromCamera > 0 ? Xe.point : function(Ht, tr, dr, Sr, Or, Wr) {
+ return xe(Ht, tr, dr, 1, Or, Wr);
+ }(ue.tileAnchorPoint, et, Re, 0, le, ue), Ft = xt(w.writingMode, Re, it, Tt);
+ if (Ft) return Ft;
+ }
+ let be = vr(Kt * Ze.getoffsetX(w.glyphStartIndex), xr, Ir, Q, w.segment, w.lineStartIndex, w.lineStartIndex + w.lineLength, ue, Yt);
+ if (!be || ue.projectionCache.anyProjectionOccluded) return { notEnoughRoom: true };
+ ve = [be];
+ }
+ for (let be of ve) a.aj(st, be.point, be.angle);
+ return {};
+ }
+ function xe(ue, w, B, Q, ee, le) {
+ let Oe = ue.add(ue.sub(w)._unit()), Ze = ee !== void 0 ? dt(Oe.x, Oe.y, ee, le.getElevation).point : vt(Oe.x, Oe.y, le).point, st = B.sub(Ze);
+ return B.add(st._mult(Q / st.mag()));
+ }
+ function ke(ue, w, B) {
+ let Q = w.projectionCache;
+ if (Q.projections[ue]) return Q.projections[ue];
+ let ee = new a.P(w.lineVertexArray.getx(ue), w.lineVertexArray.gety(ue)), le = vt(ee.x, ee.y, w);
+ if (le.signedDistanceFromCamera > 0) return Q.projections[ue] = le.point, Q.anyProjectionOccluded = Q.anyProjectionOccluded || le.isOccluded, le.point;
+ let Oe = ue - B.direction;
+ return function(Ze, st, Tt, Yt, Kt) {
+ return xe(Ze, st, Tt, Yt, void 0, Kt);
+ }(B.distanceFromAnchor === 0 ? w.tileAnchorPoint : new a.P(w.lineVertexArray.getx(Oe), w.lineVertexArray.gety(Oe)), ee, B.previousVertex, B.absOffsetX - B.distanceFromAnchor + 1, w);
+ }
+ function vt(ue, w, B) {
+ let Q = ue + B.translation[0], ee = w + B.translation[1], le;
+ return !B.pitchWithMap && B.projection.useSpecialProjectionForSymbols ? (le = B.projection.projectTileCoordinates(Q, ee, B.unwrappedTileID, B.getElevation), le.point.x = (0.5 * le.point.x + 0.5) * B.width, le.point.y = (0.5 * -le.point.y + 0.5) * B.height) : (le = dt(Q, ee, B.labelPlaneMatrix, B.getElevation), le.isOccluded = false), le;
+ }
+ function ir(ue, w, B) {
+ return ue._unit()._perp()._mult(w * B);
+ }
+ function ar(ue, w, B, Q, ee, le, Oe, Ze, st) {
+ if (Ze.projectionCache.offsets[ue]) return Ze.projectionCache.offsets[ue];
+ let Tt = B.add(w);
+ if (ue + st.direction < Q || ue + st.direction >= ee) return Ze.projectionCache.offsets[ue] = Tt, Tt;
+ let Yt = ke(ue + st.direction, Ze, st), Kt = ir(Yt.sub(B), Oe, st.direction), xr = B.add(Kt), Ir = Yt.add(Kt);
+ return Ze.projectionCache.offsets[ue] = a.ak(le, Tt, xr, Ir) || Tt, Ze.projectionCache.offsets[ue];
+ }
+ function vr(ue, w, B, Q, ee, le, Oe, Ze, st) {
+ let Tt = Q ? ue - w : ue + w, Yt = Tt > 0 ? 1 : -1, Kt = 0;
+ Q && (Yt *= -1, Kt = Math.PI), Yt < 0 && (Kt += Math.PI);
+ let xr, Ir = Yt > 0 ? le + ee : le + ee + 1;
+ Ze.projectionCache.cachedAnchorPoint ? xr = Ze.projectionCache.cachedAnchorPoint : (xr = vt(Ze.tileAnchorPoint.x, Ze.tileAnchorPoint.y, Ze).point, Ze.projectionCache.cachedAnchorPoint = xr);
+ let ve, be, Re = xr, qe = xr, et = 0, Xe = 0, it = Math.abs(Tt), Ft = [], Ht;
+ for (; et + Xe <= it; ) {
+ if (Ir += Yt, Ir < le || Ir >= Oe) return null;
+ et += Xe, qe = Re, be = ve;
+ let Sr = { absOffsetX: it, direction: Yt, distanceFromAnchor: et, previousVertex: qe };
+ if (Re = ke(Ir, Ze, Sr), B === 0) Ft.push(qe), Ht = Re.sub(qe);
+ else {
+ let Or, Wr = Re.sub(qe);
+ Or = Wr.mag() === 0 ? ir(ke(Ir + Yt, Ze, Sr).sub(Re), B, Yt) : ir(Wr, B, Yt), be || (be = qe.add(Or)), ve = ar(Ir, Or, Re, le, Oe, be, B, Ze, Sr), Ft.push(be), Ht = ve.sub(be);
+ }
+ Xe = Ht.mag();
+ }
+ let tr = Ht._mult((it - et) / Xe)._add(be || qe), dr = Kt + Math.atan2(Re.y - qe.y, Re.x - qe.x);
+ return Ft.push(tr), { point: tr, angle: st ? dr : 0, path: Ft };
+ }
+ let ii = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]);
+ function pi(ue, w) {
+ for (let B = 0; B < ue; B++) {
+ let Q = w.length;
+ w.resize(Q + 4), w.float32.set(ii, 3 * Q);
+ }
+ }
+ function $r(ue, w, B) {
+ let Q = w[0], ee = w[1];
+ return ue[0] = B[0] * Q + B[4] * ee + B[12], ue[1] = B[1] * Q + B[5] * ee + B[13], ue[3] = B[3] * Q + B[7] * ee + B[15], ue;
+ }
+ let di = 100;
+ class ji {
+ constructor(w, B, Q = new ti(w.width + 200, w.height + 200, 25), ee = new ti(w.width + 200, w.height + 200, 25)) {
+ this.transform = w, this.mapProjection = B, this.grid = Q, this.ignoredGrid = ee, this.pitchFactor = Math.cos(w._pitch) * w.cameraToCenterDistance, this.screenRightBoundary = w.width + di, this.screenBottomBoundary = w.height + di, this.gridRightBoundary = w.width + 200, this.gridBottomBoundary = w.height + 200, this.perspectiveRatioCutoff = 0.6;
+ }
+ placeCollisionBox(w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt) {
+ let xr = w.anchorPointX + st[0], Ir = w.anchorPointY + st[1], ve = this.projectAndGetPerspectiveRatio(ee, xr, Ir, le, Yt), be = Q * ve.perspectiveRatio, Re;
+ if (Oe || Ze) Re = this._projectCollisionBox(w, be, ee, le, Oe, Ze, st, ve, Yt, Kt);
+ else {
+ let Ft = ve.point.x + (Kt ? Kt.x * be : 0), Ht = ve.point.y + (Kt ? Kt.y * be : 0);
+ Re = { allPointsOccluded: false, box: [Ft + w.x1 * be, Ht + w.y1 * be, Ft + w.x2 * be, Ht + w.y2 * be] };
+ }
+ let [qe, et, Xe, it] = Re.box;
+ return this.mapProjection.useSpecialProjectionForSymbols && (Oe ? Re.allPointsOccluded : this.mapProjection.isOccluded(xr, Ir, le)) || ve.perspectiveRatio < this.perspectiveRatioCutoff || !this.isInsideGrid(qe, et, Xe, it) || B !== "always" && this.grid.hitTest(qe, et, Xe, it, B, Tt) ? { box: [qe, et, Xe, it], placeable: false, offscreen: false } : { box: [qe, et, Xe, it], placeable: true, offscreen: this.isOffscreen(qe, et, Xe, it) };
+ }
+ placeCollisionCircles(w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, Ir, ve, be, Re) {
+ let qe = [], et = new a.P(B.anchorX, B.anchorY), Xe = this.getPerspectiveRatio(Oe, et.x, et.y, Ze, Re), it = (Kt ? le / Xe : le * Xe) / a.ap, Ft = { getElevation: Re, labelPlaneMatrix: st, lineVertexArray: Q, pitchWithMap: Kt, projectionCache: { projections: {}, offsets: {}, cachedAnchorPoint: void 0, anyProjectionOccluded: false }, projection: this.mapProjection, tileAnchorPoint: et, unwrappedTileID: Ze, width: this.transform.width, height: this.transform.height, translation: be }, Ht = tt(it, ee, B.lineOffsetX * it, B.lineOffsetY * it, false, B, false, Ft), tr = false, dr = false, Sr = true;
+ if (Ht) {
+ let Or = 0.5 * Ir * Xe + ve, Wr = new a.P(-100, -100), ni = new a.P(this.screenRightBoundary, this.screenBottomBoundary), Pi = new wr(), cn = Ht.first, ln = Ht.last, Cn = [];
+ for (let fa = cn.path.length - 1; fa >= 1; fa--) Cn.push(cn.path[fa]);
+ for (let fa = 1; fa < ln.path.length; fa++) Cn.push(ln.path[fa]);
+ let Kn = 2.5 * Or;
+ if (Tt) {
+ let fa = this.projectPathToScreenSpace(Cn, Ft, Tt);
+ Cn = fa.some(($a) => $a.signedDistanceFromCamera <= 0) ? [] : fa.map(($a) => $a.point);
+ }
+ let Aa = [];
+ if (Cn.length > 0) {
+ let fa = Cn[0].clone(), $a = Cn[0].clone();
+ for (let Co = 1; Co < Cn.length; Co++) fa.x = Math.min(fa.x, Cn[Co].x), fa.y = Math.min(fa.y, Cn[Co].y), $a.x = Math.max($a.x, Cn[Co].x), $a.y = Math.max($a.y, Cn[Co].y);
+ Aa = fa.x >= Wr.x && $a.x <= ni.x && fa.y >= Wr.y && $a.y <= ni.y ? [Cn] : $a.x < Wr.x || fa.x > ni.x || $a.y < Wr.y || fa.y > ni.y ? [] : a.al([Cn], Wr.x, Wr.y, ni.x, ni.y);
+ }
+ for (let fa of Aa) {
+ Pi.reset(fa, 0.25 * Or);
+ let $a = 0;
+ $a = Pi.length <= 0.5 * Or ? 1 : Math.ceil(Pi.paddedLength / Kn) + 1;
+ for (let Co = 0; Co < $a; Co++) {
+ let Qa = Co / Math.max($a - 1, 1), mo = Pi.lerp(Qa), Bo = mo.x + di, Ps = mo.y + di;
+ qe.push(Bo, Ps, Or, 0);
+ let Ts = Bo - Or, wo = Ps - Or, To = Bo + Or, hl = Ps + Or;
+ if (Sr = Sr && this.isOffscreen(Ts, wo, To, hl), dr = dr || this.isInsideGrid(Ts, wo, To, hl), w !== "always" && this.grid.hitTestCircle(Bo, Ps, Or, w, xr) && (tr = true, !Yt)) return { circles: [], offscreen: false, collisionDetected: tr };
+ }
+ }
+ }
+ return { circles: !Yt && tr || !dr || Xe < this.perspectiveRatioCutoff ? [] : qe, offscreen: Sr, collisionDetected: tr };
+ }
+ projectPathToScreenSpace(w, B, Q) {
+ return w.map((ee) => dt(ee.x, ee.y, Q, B.getElevation));
+ }
+ queryRenderedSymbols(w) {
+ if (w.length === 0 || this.grid.keysLength() === 0 && this.ignoredGrid.keysLength() === 0) return {};
+ let B = [], Q = 1 / 0, ee = 1 / 0, le = -1 / 0, Oe = -1 / 0;
+ for (let Yt of w) {
+ let Kt = new a.P(Yt.x + di, Yt.y + di);
+ Q = Math.min(Q, Kt.x), ee = Math.min(ee, Kt.y), le = Math.max(le, Kt.x), Oe = Math.max(Oe, Kt.y), B.push(Kt);
+ }
+ let Ze = this.grid.query(Q, ee, le, Oe).concat(this.ignoredGrid.query(Q, ee, le, Oe)), st = {}, Tt = {};
+ for (let Yt of Ze) {
+ let Kt = Yt.key;
+ if (st[Kt.bucketInstanceId] === void 0 && (st[Kt.bucketInstanceId] = {}), st[Kt.bucketInstanceId][Kt.featureIndex]) continue;
+ let xr = [new a.P(Yt.x1, Yt.y1), new a.P(Yt.x2, Yt.y1), new a.P(Yt.x2, Yt.y2), new a.P(Yt.x1, Yt.y2)];
+ a.am(B, xr) && (st[Kt.bucketInstanceId][Kt.featureIndex] = true, Tt[Kt.bucketInstanceId] === void 0 && (Tt[Kt.bucketInstanceId] = []), Tt[Kt.bucketInstanceId].push(Kt.featureIndex));
+ }
+ return Tt;
+ }
+ insertCollisionBox(w, B, Q, ee, le, Oe) {
+ (Q ? this.ignoredGrid : this.grid).insert({ bucketInstanceId: ee, featureIndex: le, collisionGroupID: Oe, overlapMode: B }, w[0], w[1], w[2], w[3]);
+ }
+ insertCollisionCircles(w, B, Q, ee, le, Oe) {
+ let Ze = Q ? this.ignoredGrid : this.grid, st = { bucketInstanceId: ee, featureIndex: le, collisionGroupID: Oe, overlapMode: B };
+ for (let Tt = 0; Tt < w.length; Tt += 4) Ze.insertCircle(st, w[Tt], w[Tt + 1], w[Tt + 2]);
+ }
+ projectAndGetPerspectiveRatio(w, B, Q, ee, le) {
+ let Oe;
+ le ? (Oe = [B, Q, le(B, Q), 1], a.af(Oe, Oe, w)) : (Oe = [B, Q, 0, 1], $r(Oe, Oe, w));
+ let Ze = Oe[3];
+ return { point: new a.P((Oe[0] / Ze + 1) / 2 * this.transform.width + di, (-Oe[1] / Ze + 1) / 2 * this.transform.height + di), perspectiveRatio: 0.5 + this.transform.cameraToCenterDistance / Ze * 0.5, isOccluded: false, signedDistanceFromCamera: Ze };
+ }
+ getPerspectiveRatio(w, B, Q, ee, le) {
+ let Oe = this.mapProjection.useSpecialProjectionForSymbols ? this.mapProjection.projectTileCoordinates(B, Q, ee, le) : dt(B, Q, w, le);
+ return 0.5 + this.transform.cameraToCenterDistance / Oe.signedDistanceFromCamera * 0.5;
+ }
+ isOffscreen(w, B, Q, ee) {
+ return Q < di || w >= this.screenRightBoundary || ee < di || B > this.screenBottomBoundary;
+ }
+ isInsideGrid(w, B, Q, ee) {
+ return Q >= 0 && w < this.gridRightBoundary && ee >= 0 && B < this.gridBottomBoundary;
+ }
+ getViewportMatrix() {
+ let w = a.an([]);
+ return a.J(w, w, [-100, -100, 0]), w;
+ }
+ _projectCollisionBox(w, B, Q, ee, le, Oe, Ze, st, Tt, Yt) {
+ let Kt = new a.P(1, 0), xr = new a.P(0, 1), Ir = new a.P(w.anchorPointX + Ze[0], w.anchorPointY + Ze[1]);
+ if (Oe && !le) {
+ let Sr = this.projectAndGetPerspectiveRatio(Q, Ir.x + 1, Ir.y, ee, Tt).point.sub(st.point).unit(), Or = Math.atan(Sr.y / Sr.x) + (Sr.x < 0 ? Math.PI : 0), Wr = Math.sin(Or), ni = Math.cos(Or);
+ Kt = new a.P(ni, Wr), xr = new a.P(-Wr, ni);
+ } else if (!Oe && le) {
+ let Sr = -this.transform.angle, Or = Math.sin(Sr), Wr = Math.cos(Sr);
+ Kt = new a.P(Wr, Or), xr = new a.P(-Or, Wr);
+ }
+ let ve = st.point, be = B;
+ if (le) {
+ ve = Ir;
+ let Sr = this.transform.zoom - Math.floor(this.transform.zoom);
+ be = Math.pow(2, -Sr), be *= this.mapProjection.getPitchedTextCorrection(this.transform, Ir, ee), Yt || (be *= a.ac(0.5 + st.signedDistanceFromCamera / this.transform.cameraToCenterDistance * 0.5, 0, 4));
+ }
+ Yt && (ve = ve.add(Kt.mult(Yt.x * be)).add(xr.mult(Yt.y * be)));
+ let Re = w.x1 * be, qe = w.x2 * be, et = (Re + qe) / 2, Xe = w.y1 * be, it = w.y2 * be, Ft = (Xe + it) / 2, Ht = [{ offsetX: Re, offsetY: Xe }, { offsetX: et, offsetY: Xe }, { offsetX: qe, offsetY: Xe }, { offsetX: qe, offsetY: Ft }, { offsetX: qe, offsetY: it }, { offsetX: et, offsetY: it }, { offsetX: Re, offsetY: it }, { offsetX: Re, offsetY: Ft }], tr = [];
+ for (let { offsetX: Sr, offsetY: Or } of Ht) tr.push(new a.P(ve.x + Kt.x * Sr + xr.x * Or, ve.y + Kt.y * Sr + xr.y * Or));
+ let dr = false;
+ if (le) {
+ let Sr = tr.map((Or) => this.projectAndGetPerspectiveRatio(Q, Or.x, Or.y, ee, Tt));
+ dr = Sr.some((Or) => !Or.isOccluded), tr = Sr.map((Or) => Or.point);
+ } else dr = true;
+ return { box: a.ao(tr), allPointsOccluded: !dr };
+ }
+ }
+ function In(ue, w, B) {
+ return w * (a.X / (ue.tileSize * Math.pow(2, B - ue.tileID.overscaledZ)));
+ }
+ class wi {
+ constructor(w, B, Q, ee) {
+ this.opacity = w ? Math.max(0, Math.min(1, w.opacity + (w.placed ? B : -B))) : ee && Q ? 1 : 0, this.placed = Q;
+ }
+ isHidden() {
+ return this.opacity === 0 && !this.placed;
+ }
+ }
+ class On {
+ constructor(w, B, Q, ee, le) {
+ this.text = new wi(w ? w.text : null, B, Q, le), this.icon = new wi(w ? w.icon : null, B, ee, le);
+ }
+ isHidden() {
+ return this.text.isHidden() && this.icon.isHidden();
+ }
+ }
+ class qn {
+ constructor(w, B, Q) {
+ this.text = w, this.icon = B, this.skipFade = Q;
+ }
+ }
+ class Fn {
+ constructor() {
+ this.invProjMatrix = a.H(), this.viewportMatrix = a.H(), this.circles = [];
+ }
+ }
+ class ra {
+ constructor(w, B, Q, ee, le) {
+ this.bucketInstanceId = w, this.featureIndex = B, this.sourceLayerIndex = Q, this.bucketIndex = ee, this.tileID = le;
+ }
+ }
+ class la {
+ constructor(w) {
+ this.crossSourceCollisions = w, this.maxGroupID = 0, this.collisionGroups = {};
+ }
+ get(w) {
+ if (this.crossSourceCollisions) return { ID: 0, predicate: null };
+ if (!this.collisionGroups[w]) {
+ let B = ++this.maxGroupID;
+ this.collisionGroups[w] = { ID: B, predicate: (Q) => Q.collisionGroupID === B };
+ }
+ return this.collisionGroups[w];
+ }
+ }
+ function Ut(ue, w, B, Q, ee) {
+ let { horizontalAlign: le, verticalAlign: Oe } = a.au(ue);
+ return new a.P(-(le - 0.5) * w + Q[0] * ee, -(Oe - 0.5) * B + Q[1] * ee);
+ }
+ class wt {
+ constructor(w, B, Q, ee, le, Oe) {
+ this.transform = w.clone(), this.terrain = Q, this.collisionIndex = new ji(this.transform, B), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = false, this.commitTime = 0, this.fadeDuration = ee, this.retainedQueryData = {}, this.collisionGroups = new la(le), this.collisionCircleArrays = {}, this.collisionBoxArrays = /* @__PURE__ */ new Map(), this.prevPlacement = Oe, Oe && (Oe.prevPlacement = void 0), this.placedOrientations = {};
+ }
+ _getTerrainElevationFunc(w) {
+ let B = this.terrain;
+ return B ? (Q, ee) => B.getElevation(w, Q, ee) : null;
+ }
+ getBucketParts(w, B, Q, ee) {
+ let le = Q.getBucket(B), Oe = Q.latestFeatureIndex;
+ if (!le || !Oe || B.id !== le.layerIds[0]) return;
+ let Ze = Q.collisionBoxArray, st = le.layers[0].layout, Tt = le.layers[0].paint, Yt = Math.pow(2, this.transform.zoom - Q.tileID.overscaledZ), Kt = Q.tileSize / a.X, xr = Q.tileID.toUnwrapped(), Ir = this.transform.calculatePosMatrix(xr), ve = st.get("text-pitch-alignment") === "map", be = st.get("text-rotation-alignment") === "map", Re = In(Q, 1, this.transform.zoom), qe = this.collisionIndex.mapProjection.translatePosition(this.transform, Q, Tt.get("text-translate"), Tt.get("text-translate-anchor")), et = this.collisionIndex.mapProjection.translatePosition(this.transform, Q, Tt.get("icon-translate"), Tt.get("icon-translate-anchor")), Xe = Br(Ir, ve, be, this.transform, Re), it = null;
+ if (ve) {
+ let Ht = Vr(Ir, ve, be, this.transform, Re);
+ it = a.L([], this.transform.labelPlaneMatrix, Ht);
+ }
+ this.retainedQueryData[le.bucketInstanceId] = new ra(le.bucketInstanceId, Oe, le.sourceLayerIndex, le.index, Q.tileID);
+ let Ft = { bucket: le, layout: st, translationText: qe, translationIcon: et, posMatrix: Ir, unwrappedTileID: xr, textLabelPlaneMatrix: Xe, labelToScreenMatrix: it, scale: Yt, textPixelRatio: Kt, holdingForFade: Q.holdingForFade(), collisionBoxArray: Ze, partiallyEvaluatedTextSize: a.ag(le.textSizeData, this.transform.zoom), collisionGroup: this.collisionGroups.get(le.sourceID) };
+ if (ee) for (let Ht of le.sortKeyRanges) {
+ let { sortKey: tr, symbolInstanceStart: dr, symbolInstanceEnd: Sr } = Ht;
+ w.push({ sortKey: tr, symbolInstanceStart: dr, symbolInstanceEnd: Sr, parameters: Ft });
+ }
+ else w.push({ symbolInstanceStart: 0, symbolInstanceEnd: le.symbolInstances.length, parameters: Ft });
+ }
+ attemptAnchorPlacement(w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, Ir, ve, be, Re, qe, et, Xe) {
+ let it = a.aq[w.textAnchor], Ft = [w.textOffset0, w.textOffset1], Ht = Ut(it, Q, ee, Ft, le), tr = this.collisionIndex.placeCollisionBox(B, xr, st, Tt, Yt, Ze, Oe, Re, Kt.predicate, Xe, Ht);
+ if ((!et || this.collisionIndex.placeCollisionBox(et, xr, st, Tt, Yt, Ze, Oe, qe, Kt.predicate, Xe, Ht).placeable) && tr.placeable) {
+ let dr;
+ if (this.prevPlacement && this.prevPlacement.variableOffsets[Ir.crossTileID] && this.prevPlacement.placements[Ir.crossTileID] && this.prevPlacement.placements[Ir.crossTileID].text && (dr = this.prevPlacement.variableOffsets[Ir.crossTileID].anchor), Ir.crossTileID === 0) throw new Error("symbolInstance.crossTileID can't be 0");
+ return this.variableOffsets[Ir.crossTileID] = { textOffset: Ft, width: Q, height: ee, anchor: it, textBoxScale: le, prevAnchor: dr }, this.markUsedJustification(ve, it, Ir, be), ve.allowVerticalPlacement && (this.markUsedOrientation(ve, be, Ir), this.placedOrientations[Ir.crossTileID] = be), { shift: Ht, placedGlyphBoxes: tr };
+ }
+ }
+ placeLayerBucketPart(w, B, Q) {
+ let { bucket: ee, layout: le, translationText: Oe, translationIcon: Ze, posMatrix: st, unwrappedTileID: Tt, textLabelPlaneMatrix: Yt, labelToScreenMatrix: Kt, textPixelRatio: xr, holdingForFade: Ir, collisionBoxArray: ve, partiallyEvaluatedTextSize: be, collisionGroup: Re } = w.parameters, qe = le.get("text-optional"), et = le.get("icon-optional"), Xe = a.ar(le, "text-overlap", "text-allow-overlap"), it = Xe === "always", Ft = a.ar(le, "icon-overlap", "icon-allow-overlap"), Ht = Ft === "always", tr = le.get("text-rotation-alignment") === "map", dr = le.get("text-pitch-alignment") === "map", Sr = le.get("icon-text-fit") !== "none", Or = le.get("symbol-z-order") === "viewport-y", Wr = it && (Ht || !ee.hasIconData() || et), ni = Ht && (it || !ee.hasTextData() || qe);
+ !ee.collisionArrays && ve && ee.deserializeCollisionBoxes(ve);
+ let Pi = this._getTerrainElevationFunc(this.retainedQueryData[ee.bucketInstanceId].tileID), cn = (ln, Cn, Kn) => {
+ var Aa, fa;
+ if (B[ln.crossTileID]) return;
+ if (Ir) return void (this.placements[ln.crossTileID] = new qn(false, false, false));
+ let $a = false, Co = false, Qa = true, mo = null, Bo = { box: null, placeable: false, offscreen: null }, Ps = { placeable: false }, Ts = null, wo = null, To = null, hl = 0, Ul = 0, Lu = 0;
+ Cn.textFeatureIndex ? hl = Cn.textFeatureIndex : ln.useRuntimeCollisionCircles && (hl = ln.featureIndex), Cn.verticalTextFeatureIndex && (Ul = Cn.verticalTextFeatureIndex);
+ let au = Cn.textBox;
+ if (au) {
+ let Tl = (Te) => {
+ let Ne = a.ah.horizontal;
+ if (ee.allowVerticalPlacement && !Te && this.prevPlacement) {
+ let He = this.prevPlacement.placedOrientations[ln.crossTileID];
+ He && (this.placedOrientations[ln.crossTileID] = He, Ne = He, this.markUsedOrientation(ee, Ne, ln));
+ }
+ return Ne;
+ }, Al = (Te, Ne) => {
+ if (ee.allowVerticalPlacement && ln.numVerticalGlyphVertices > 0 && Cn.verticalTextBox) {
+ for (let He of ee.writingModes) if (He === a.ah.vertical ? (Bo = Ne(), Ps = Bo) : Bo = Te(), Bo && Bo.placeable) break;
+ } else Bo = Te();
+ }, X = ln.textAnchorOffsetStartIndex, se = ln.textAnchorOffsetEndIndex;
+ if (se === X) {
+ let Te = (Ne, He) => {
+ let Ye = this.collisionIndex.placeCollisionBox(Ne, Xe, xr, st, Tt, dr, tr, Oe, Re.predicate, Pi);
+ return Ye && Ye.placeable && (this.markUsedOrientation(ee, He, ln), this.placedOrientations[ln.crossTileID] = He), Ye;
+ };
+ Al(() => Te(au, a.ah.horizontal), () => {
+ let Ne = Cn.verticalTextBox;
+ return ee.allowVerticalPlacement && ln.numVerticalGlyphVertices > 0 && Ne ? Te(Ne, a.ah.vertical) : { box: null, offscreen: null };
+ }), Tl(Bo && Bo.placeable);
+ } else {
+ let Te = a.aq[(fa = (Aa = this.prevPlacement) === null || Aa === void 0 ? void 0 : Aa.variableOffsets[ln.crossTileID]) === null || fa === void 0 ? void 0 : fa.anchor], Ne = (Ye, kt, nt) => {
+ let jt = Ye.x2 - Ye.x1, gr = Ye.y2 - Ye.y1, yr = ln.textBoxScale, Hr = Sr && Ft === "never" ? kt : null, qr = null, _i = Xe === "never" ? 1 : 2, bi = "never";
+ Te && _i++;
+ for (let Zr = 0; Zr < _i; Zr++) {
+ for (let ai = X; ai < se; ai++) {
+ let gi = ee.textAnchorOffsets.get(ai);
+ if (Te && gi.textAnchor !== Te) continue;
+ let Ii = this.attemptAnchorPlacement(gi, Ye, jt, gr, yr, tr, dr, xr, st, Tt, Re, bi, ln, ee, nt, Oe, Ze, Hr, Pi);
+ if (Ii && (qr = Ii.placedGlyphBoxes, qr && qr.placeable)) return $a = true, mo = Ii.shift, qr;
+ }
+ Te ? Te = null : bi = Xe;
+ }
+ return Q && !qr && (qr = { box: this.collisionIndex.placeCollisionBox(au, "always", xr, st, Tt, dr, tr, Oe, Re.predicate, Pi, new a.P(0, 0)).box, offscreen: false, placeable: false }), qr;
+ };
+ Al(() => Ne(au, Cn.iconBox, a.ah.horizontal), () => {
+ let Ye = Cn.verticalTextBox;
+ return ee.allowVerticalPlacement && (!Bo || !Bo.placeable) && ln.numVerticalGlyphVertices > 0 && Ye ? Ne(Ye, Cn.verticalIconBox, a.ah.vertical) : { box: null, occluded: true, offscreen: null };
+ }), Bo && ($a = Bo.placeable, Qa = Bo.offscreen);
+ let He = Tl(Bo && Bo.placeable);
+ if (!$a && this.prevPlacement) {
+ let Ye = this.prevPlacement.variableOffsets[ln.crossTileID];
+ Ye && (this.variableOffsets[ln.crossTileID] = Ye, this.markUsedJustification(ee, Ye.anchor, ln, He));
+ }
+ }
+ }
+ if (Ts = Bo, $a = Ts && Ts.placeable, Qa = Ts && Ts.offscreen, ln.useRuntimeCollisionCircles) {
+ let Tl = ee.text.placedSymbolArray.get(ln.centerJustifiedTextSymbolIndex), Al = a.ai(ee.textSizeData, be, Tl), X = le.get("text-padding");
+ wo = this.collisionIndex.placeCollisionCircles(Xe, Tl, ee.lineVertexArray, ee.glyphOffsetArray, Al, st, Tt, Yt, Kt, Q, dr, Re.predicate, ln.collisionCircleDiameter, X, Oe, Pi), wo.circles.length && wo.collisionDetected && !Q && a.w("Collisions detected, but collision boxes are not shown"), $a = it || wo.circles.length > 0 && !wo.collisionDetected, Qa = Qa && wo.offscreen;
+ }
+ if (Cn.iconFeatureIndex && (Lu = Cn.iconFeatureIndex), Cn.iconBox) {
+ let Tl = (Al) => this.collisionIndex.placeCollisionBox(Al, Ft, xr, st, Tt, dr, tr, Ze, Re.predicate, Pi, Sr && mo ? mo : void 0);
+ Ps && Ps.placeable && Cn.verticalIconBox ? (To = Tl(Cn.verticalIconBox), Co = To.placeable) : (To = Tl(Cn.iconBox), Co = To.placeable), Qa = Qa && To.offscreen;
+ }
+ let Js = qe || ln.numHorizontalGlyphVertices === 0 && ln.numVerticalGlyphVertices === 0, eu = et || ln.numIconVertices === 0;
+ Js || eu ? eu ? Js || (Co = Co && $a) : $a = Co && $a : Co = $a = Co && $a;
+ let dc = Co && To.placeable;
+ if ($a && Ts.placeable && this.collisionIndex.insertCollisionBox(Ts.box, Xe, le.get("text-ignore-placement"), ee.bucketInstanceId, Ps && Ps.placeable && Ul ? Ul : hl, Re.ID), dc && this.collisionIndex.insertCollisionBox(To.box, Ft, le.get("icon-ignore-placement"), ee.bucketInstanceId, Lu, Re.ID), wo && $a && this.collisionIndex.insertCollisionCircles(wo.circles, Xe, le.get("text-ignore-placement"), ee.bucketInstanceId, hl, Re.ID), Q && this.storeCollisionData(ee.bucketInstanceId, Kn, Cn, Ts, To, wo), ln.crossTileID === 0) throw new Error("symbolInstance.crossTileID can't be 0");
+ if (ee.bucketInstanceId === 0) throw new Error("bucket.bucketInstanceId can't be 0");
+ this.placements[ln.crossTileID] = new qn($a || Wr, Co || ni, Qa || ee.justReloaded), B[ln.crossTileID] = true;
+ };
+ if (Or) {
+ if (w.symbolInstanceStart !== 0) throw new Error("bucket.bucketInstanceId should be 0");
+ let ln = ee.getSortedSymbolIndexes(this.transform.angle);
+ for (let Cn = ln.length - 1; Cn >= 0; --Cn) {
+ let Kn = ln[Cn];
+ cn(ee.symbolInstances.get(Kn), ee.collisionArrays[Kn], Kn);
+ }
+ } else for (let ln = w.symbolInstanceStart; ln < w.symbolInstanceEnd; ln++) cn(ee.symbolInstances.get(ln), ee.collisionArrays[ln], ln);
+ if (Q && ee.bucketInstanceId in this.collisionCircleArrays) {
+ let ln = this.collisionCircleArrays[ee.bucketInstanceId];
+ a.as(ln.invProjMatrix, st), ln.viewportMatrix = this.collisionIndex.getViewportMatrix();
+ }
+ ee.justReloaded = false;
+ }
+ storeCollisionData(w, B, Q, ee, le, Oe) {
+ if (Q.textBox || Q.iconBox) {
+ let Ze, st;
+ this.collisionBoxArrays.has(w) ? Ze = this.collisionBoxArrays.get(w) : (Ze = /* @__PURE__ */ new Map(), this.collisionBoxArrays.set(w, Ze)), Ze.has(B) ? st = Ze.get(B) : (st = { text: null, icon: null }, Ze.set(B, st)), Q.textBox && (st.text = ee.box), Q.iconBox && (st.icon = le.box);
+ }
+ if (Oe) {
+ let Ze = this.collisionCircleArrays[w];
+ Ze === void 0 && (Ze = this.collisionCircleArrays[w] = new Fn());
+ for (let st = 0; st < Oe.circles.length; st += 4) Ze.circles.push(Oe.circles[st + 0]), Ze.circles.push(Oe.circles[st + 1]), Ze.circles.push(Oe.circles[st + 2]), Ze.circles.push(Oe.collisionDetected ? 1 : 0);
+ }
+ }
+ markUsedJustification(w, B, Q, ee) {
+ let le;
+ le = ee === a.ah.vertical ? Q.verticalPlacedTextSymbolIndex : { left: Q.leftJustifiedTextSymbolIndex, center: Q.centerJustifiedTextSymbolIndex, right: Q.rightJustifiedTextSymbolIndex }[a.at(B)];
+ let Oe = [Q.leftJustifiedTextSymbolIndex, Q.centerJustifiedTextSymbolIndex, Q.rightJustifiedTextSymbolIndex, Q.verticalPlacedTextSymbolIndex];
+ for (let Ze of Oe) Ze >= 0 && (w.text.placedSymbolArray.get(Ze).crossTileID = le >= 0 && Ze !== le ? 0 : Q.crossTileID);
+ }
+ markUsedOrientation(w, B, Q) {
+ let ee = B === a.ah.horizontal || B === a.ah.horizontalOnly ? B : 0, le = B === a.ah.vertical ? B : 0, Oe = [Q.leftJustifiedTextSymbolIndex, Q.centerJustifiedTextSymbolIndex, Q.rightJustifiedTextSymbolIndex];
+ for (let Ze of Oe) w.text.placedSymbolArray.get(Ze).placedOrientation = ee;
+ Q.verticalPlacedTextSymbolIndex && (w.text.placedSymbolArray.get(Q.verticalPlacedTextSymbolIndex).placedOrientation = le);
+ }
+ commit(w) {
+ this.commitTime = w, this.zoomAtLastRecencyCheck = this.transform.zoom;
+ let B = this.prevPlacement, Q = false;
+ this.prevZoomAdjustment = B ? B.zoomAdjustment(this.transform.zoom) : 0;
+ let ee = B ? B.symbolFadeChange(w) : 1, le = B ? B.opacities : {}, Oe = B ? B.variableOffsets : {}, Ze = B ? B.placedOrientations : {};
+ for (let st in this.placements) {
+ let Tt = this.placements[st], Yt = le[st];
+ Yt ? (this.opacities[st] = new On(Yt, ee, Tt.text, Tt.icon), Q = Q || Tt.text !== Yt.text.placed || Tt.icon !== Yt.icon.placed) : (this.opacities[st] = new On(null, ee, Tt.text, Tt.icon, Tt.skipFade), Q = Q || Tt.text || Tt.icon);
+ }
+ for (let st in le) {
+ let Tt = le[st];
+ if (!this.opacities[st]) {
+ let Yt = new On(Tt, ee, false, false);
+ Yt.isHidden() || (this.opacities[st] = Yt, Q = Q || Tt.text.placed || Tt.icon.placed);
+ }
+ }
+ for (let st in Oe) this.variableOffsets[st] || !this.opacities[st] || this.opacities[st].isHidden() || (this.variableOffsets[st] = Oe[st]);
+ for (let st in Ze) this.placedOrientations[st] || !this.opacities[st] || this.opacities[st].isHidden() || (this.placedOrientations[st] = Ze[st]);
+ if (B && B.lastPlacementChangeTime === void 0) throw new Error("Last placement time for previous placement is not defined");
+ Q ? this.lastPlacementChangeTime = w : typeof this.lastPlacementChangeTime != "number" && (this.lastPlacementChangeTime = B ? B.lastPlacementChangeTime : w);
+ }
+ updateLayerOpacities(w, B) {
+ let Q = {};
+ for (let ee of B) {
+ let le = ee.getBucket(w);
+ le && ee.latestFeatureIndex && w.id === le.layerIds[0] && this.updateBucketOpacities(le, ee.tileID, Q, ee.collisionBoxArray);
+ }
+ }
+ updateBucketOpacities(w, B, Q, ee) {
+ w.hasTextData() && (w.text.opacityVertexArray.clear(), w.text.hasVisibleVertices = false), w.hasIconData() && (w.icon.opacityVertexArray.clear(), w.icon.hasVisibleVertices = false), w.hasIconCollisionBoxData() && w.iconCollisionBox.collisionVertexArray.clear(), w.hasTextCollisionBoxData() && w.textCollisionBox.collisionVertexArray.clear();
+ let le = w.layers[0], Oe = le.layout, Ze = new On(null, 0, false, false, true), st = Oe.get("text-allow-overlap"), Tt = Oe.get("icon-allow-overlap"), Yt = le._unevaluatedLayout.hasValue("text-variable-anchor") || le._unevaluatedLayout.hasValue("text-variable-anchor-offset"), Kt = Oe.get("text-rotation-alignment") === "map", xr = Oe.get("text-pitch-alignment") === "map", Ir = Oe.get("icon-text-fit") !== "none", ve = new On(null, 0, st && (Tt || !w.hasIconData() || Oe.get("icon-optional")), Tt && (st || !w.hasTextData() || Oe.get("text-optional")), true);
+ !w.collisionArrays && ee && (w.hasIconCollisionBoxData() || w.hasTextCollisionBoxData()) && w.deserializeCollisionBoxes(ee);
+ let be = (qe, et, Xe) => {
+ for (let it = 0; it < et / 4; it++) qe.opacityVertexArray.emplaceBack(Xe);
+ qe.hasVisibleVertices = qe.hasVisibleVertices || Xe !== fn;
+ }, Re = this.collisionBoxArrays.get(w.bucketInstanceId);
+ for (let qe = 0; qe < w.symbolInstances.length; qe++) {
+ let et = w.symbolInstances.get(qe), { numHorizontalGlyphVertices: Xe, numVerticalGlyphVertices: it, crossTileID: Ft } = et, Ht = this.opacities[Ft];
+ Q[Ft] ? Ht = Ze : Ht || (Ht = ve, this.opacities[Ft] = Ht), Q[Ft] = true;
+ let tr = et.numIconVertices > 0, dr = this.placedOrientations[et.crossTileID], Sr = dr === a.ah.vertical, Or = dr === a.ah.horizontal || dr === a.ah.horizontalOnly;
+ if (Xe > 0 || it > 0) {
+ let ni = tn(Ht.text);
+ be(w.text, Xe, Sr ? fn : ni), be(w.text, it, Or ? fn : ni);
+ let Pi = Ht.text.isHidden();
+ [et.rightJustifiedTextSymbolIndex, et.centerJustifiedTextSymbolIndex, et.leftJustifiedTextSymbolIndex].forEach((Cn) => {
+ Cn >= 0 && (w.text.placedSymbolArray.get(Cn).hidden = Pi || Sr ? 1 : 0);
+ }), et.verticalPlacedTextSymbolIndex >= 0 && (w.text.placedSymbolArray.get(et.verticalPlacedTextSymbolIndex).hidden = Pi || Or ? 1 : 0);
+ let cn = this.variableOffsets[et.crossTileID];
+ cn && this.markUsedJustification(w, cn.anchor, et, dr);
+ let ln = this.placedOrientations[et.crossTileID];
+ ln && (this.markUsedJustification(w, "left", et, ln), this.markUsedOrientation(w, ln, et));
+ }
+ if (tr) {
+ let ni = tn(Ht.icon), Pi = !(Ir && et.verticalPlacedIconSymbolIndex && Sr);
+ et.placedIconSymbolIndex >= 0 && (be(w.icon, et.numIconVertices, Pi ? ni : fn), w.icon.placedSymbolArray.get(et.placedIconSymbolIndex).hidden = Ht.icon.isHidden()), et.verticalPlacedIconSymbolIndex >= 0 && (be(w.icon, et.numVerticalIconVertices, Pi ? fn : ni), w.icon.placedSymbolArray.get(et.verticalPlacedIconSymbolIndex).hidden = Ht.icon.isHidden());
+ }
+ let Wr = Re && Re.has(qe) ? Re.get(qe) : { text: null, icon: null };
+ if (w.hasIconCollisionBoxData() || w.hasTextCollisionBoxData()) {
+ let ni = w.collisionArrays[qe];
+ if (ni) {
+ let Pi = new a.P(0, 0);
+ if (ni.textBox || ni.verticalTextBox) {
+ let cn = true;
+ if (Yt) {
+ let ln = this.variableOffsets[Ft];
+ ln ? (Pi = Ut(ln.anchor, ln.width, ln.height, ln.textOffset, ln.textBoxScale), Kt && Pi._rotate(xr ? this.transform.angle : -this.transform.angle)) : cn = false;
+ }
+ if (ni.textBox || ni.verticalTextBox) {
+ let ln;
+ ni.textBox && (ln = Sr), ni.verticalTextBox && (ln = Or), rr(w.textCollisionBox.collisionVertexArray, Ht.text.placed, !cn || ln, Wr.text, Pi.x, Pi.y);
+ }
+ }
+ if (ni.iconBox || ni.verticalIconBox) {
+ let cn = !!(!Or && ni.verticalIconBox), ln;
+ ni.iconBox && (ln = cn), ni.verticalIconBox && (ln = !cn), rr(w.iconCollisionBox.collisionVertexArray, Ht.icon.placed, ln, Wr.icon, Ir ? Pi.x : 0, Ir ? Pi.y : 0);
+ }
+ }
+ }
+ }
+ if (w.sortFeatures(this.transform.angle), this.retainedQueryData[w.bucketInstanceId] && (this.retainedQueryData[w.bucketInstanceId].featureSortOrder = w.featureSortOrder), w.hasTextData() && w.text.opacityVertexBuffer && w.text.opacityVertexBuffer.updateData(w.text.opacityVertexArray), w.hasIconData() && w.icon.opacityVertexBuffer && w.icon.opacityVertexBuffer.updateData(w.icon.opacityVertexArray), w.hasIconCollisionBoxData() && w.iconCollisionBox.collisionVertexBuffer && w.iconCollisionBox.collisionVertexBuffer.updateData(w.iconCollisionBox.collisionVertexArray), w.hasTextCollisionBoxData() && w.textCollisionBox.collisionVertexBuffer && w.textCollisionBox.collisionVertexBuffer.updateData(w.textCollisionBox.collisionVertexArray), w.text.opacityVertexArray.length !== w.text.layoutVertexArray.length / 4) throw new Error(`bucket.text.opacityVertexArray.length (= ${w.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${w.text.layoutVertexArray.length}) / 4`);
+ if (w.icon.opacityVertexArray.length !== w.icon.layoutVertexArray.length / 4) throw new Error(`bucket.icon.opacityVertexArray.length (= ${w.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${w.icon.layoutVertexArray.length}) / 4`);
+ if (w.bucketInstanceId in this.collisionCircleArrays) {
+ let qe = this.collisionCircleArrays[w.bucketInstanceId];
+ w.placementInvProjMatrix = qe.invProjMatrix, w.placementViewportMatrix = qe.viewportMatrix, w.collisionCircleArray = qe.circles, delete this.collisionCircleArrays[w.bucketInstanceId];
+ }
+ }
+ symbolFadeChange(w) {
+ return this.fadeDuration === 0 ? 1 : (w - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment;
+ }
+ zoomAdjustment(w) {
+ return Math.max(0, (this.transform.zoom - w) / 1.5);
+ }
+ hasTransitions(w) {
+ return this.stale || w - this.lastPlacementChangeTime < this.fadeDuration;
+ }
+ stillRecent(w, B) {
+ let Q = this.zoomAtLastRecencyCheck === B ? 1 - this.zoomAdjustment(B) : 1;
+ return this.zoomAtLastRecencyCheck = B, this.commitTime + this.fadeDuration * Q > w;
+ }
+ setStale() {
+ this.stale = true;
+ }
+ }
+ function rr(ue, w, B, Q, ee, le) {
+ Q && Q.length !== 0 || (Q = [0, 0, 0, 0]);
+ let Oe = Q[0] - di, Ze = Q[1] - di, st = Q[2] - di, Tt = Q[3] - di;
+ ue.emplaceBack(w ? 1 : 0, B ? 1 : 0, ee || 0, le || 0, Oe, Ze), ue.emplaceBack(w ? 1 : 0, B ? 1 : 0, ee || 0, le || 0, st, Ze), ue.emplaceBack(w ? 1 : 0, B ? 1 : 0, ee || 0, le || 0, st, Tt), ue.emplaceBack(w ? 1 : 0, B ? 1 : 0, ee || 0, le || 0, Oe, Tt);
+ }
+ let nr = Math.pow(2, 25), Er = Math.pow(2, 24), Xr = Math.pow(2, 17), ri = Math.pow(2, 16), Qr = Math.pow(2, 9), Oi = Math.pow(2, 8), $i = Math.pow(2, 1);
+ function tn(ue) {
+ if (ue.opacity === 0 && !ue.placed) return 0;
+ if (ue.opacity === 1 && ue.placed) return 4294967295;
+ let w = ue.placed ? 1 : 0, B = Math.floor(127 * ue.opacity);
+ return B * nr + w * Er + B * Xr + w * ri + B * Qr + w * Oi + B * $i + w;
+ }
+ let fn = 0;
+ function yn() {
+ return { isOccluded: (ue, w, B) => false, getPitchedTextCorrection: (ue, w, B) => 1, get useSpecialProjectionForSymbols() {
+ return false;
+ }, projectTileCoordinates(ue, w, B, Q) {
+ throw new Error("Not implemented.");
+ }, translatePosition: (ue, w, B, Q) => function(ee, le, Oe, Ze, st = false) {
+ if (!Oe[0] && !Oe[1]) return [0, 0];
+ let Tt = st ? Ze === "map" ? ee.angle : 0 : Ze === "viewport" ? -ee.angle : 0;
+ if (Tt) {
+ let Yt = Math.sin(Tt), Kt = Math.cos(Tt);
+ Oe = [Oe[0] * Kt - Oe[1] * Yt, Oe[0] * Yt + Oe[1] * Kt];
+ }
+ return [st ? Oe[0] : In(le, Oe[0], ee.zoom), st ? Oe[1] : In(le, Oe[1], ee.zoom)];
+ }(ue, w, B, Q), getCircleRadiusCorrection: (ue) => 1 };
+ }
+ class Sn {
+ constructor(w) {
+ this._sortAcrossTiles = w.layout.get("symbol-z-order") !== "viewport-y" && !w.layout.get("symbol-sort-key").isConstant(), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = [];
+ }
+ continuePlacement(w, B, Q, ee, le) {
+ let Oe = this._bucketParts;
+ for (; this._currentTileIndex < w.length; ) if (B.getBucketParts(Oe, ee, w[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, le()) return true;
+ for (this._sortAcrossTiles && (this._sortAcrossTiles = false, Oe.sort((Ze, st) => Ze.sortKey - st.sortKey)); this._currentPartIndex < Oe.length; ) if (B.placeLayerBucketPart(Oe[this._currentPartIndex], this._seenCrossTileIDs, Q), this._currentPartIndex++, le()) return true;
+ return false;
+ }
+ }
+ class Ba {
+ constructor(w, B, Q, ee, le, Oe, Ze, st) {
+ this.placement = new wt(w, yn(), B, Oe, Ze, st), this._currentPlacementIndex = Q.length - 1, this._forceFullPlacement = ee, this._showCollisionBoxes = le, this._done = false;
+ }
+ isDone() {
+ return this._done;
+ }
+ continuePlacement(w, B, Q) {
+ let ee = u.now(), le = () => !this._forceFullPlacement && u.now() - ee > 2;
+ for (; this._currentPlacementIndex >= 0; ) {
+ let Oe = B[w[this._currentPlacementIndex]], Ze = this.placement.collisionIndex.transform.zoom;
+ if (Oe.type === "symbol" && (!Oe.minzoom || Oe.minzoom <= Ze) && (!Oe.maxzoom || Oe.maxzoom > Ze)) {
+ if (this._inProgressLayer || (this._inProgressLayer = new Sn(Oe)), this._inProgressLayer.continuePlacement(Q[Oe.source], this.placement, this._showCollisionBoxes, Oe, le)) return;
+ delete this._inProgressLayer;
+ }
+ this._currentPlacementIndex--;
+ }
+ this._done = true;
+ }
+ commit(w) {
+ return this.placement.commit(w), this.placement;
+ }
+ }
+ let ua = 512 / a.X / 2;
+ class ma {
+ constructor(w, B, Q) {
+ this.tileID = w, this.bucketInstanceId = Q, this._symbolsByKey = {};
+ let ee = /* @__PURE__ */ new Map();
+ for (let le = 0; le < B.length; le++) {
+ let Oe = B.get(le), Ze = Oe.key, st = ee.get(Ze);
+ st ? st.push(Oe) : ee.set(Ze, [Oe]);
+ }
+ for (let [le, Oe] of ee) {
+ let Ze = { positions: Oe.map((st) => ({ x: Math.floor(st.anchorX * ua), y: Math.floor(st.anchorY * ua) })), crossTileIDs: Oe.map((st) => st.crossTileID) };
+ if (Ze.positions.length > 128) {
+ let st = new a.av(Ze.positions.length, 16, Uint16Array);
+ for (let { x: Tt, y: Yt } of Ze.positions) st.add(Tt, Yt);
+ st.finish(), delete Ze.positions, Ze.index = st;
+ }
+ this._symbolsByKey[le] = Ze;
+ }
+ }
+ getScaledCoordinates(w, B) {
+ let { x: Q, y: ee, z: le } = this.tileID.canonical, { x: Oe, y: Ze, z: st } = B.canonical, Tt = ua / Math.pow(2, st - le), Yt = (Ze * a.X + w.anchorY) * Tt, Kt = ee * a.X * ua;
+ return { x: Math.floor((Oe * a.X + w.anchorX) * Tt - Q * a.X * ua), y: Math.floor(Yt - Kt) };
+ }
+ findMatches(w, B, Q) {
+ let ee = this.tileID.canonical.z < B.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - B.canonical.z);
+ for (let le = 0; le < w.length; le++) {
+ let Oe = w.get(le);
+ if (Oe.crossTileID) continue;
+ let Ze = this._symbolsByKey[Oe.key];
+ if (!Ze) continue;
+ let st = this.getScaledCoordinates(Oe, B);
+ if (Ze.index) {
+ let Tt = Ze.index.range(st.x - ee, st.y - ee, st.x + ee, st.y + ee).sort();
+ for (let Yt of Tt) {
+ let Kt = Ze.crossTileIDs[Yt];
+ if (!Q[Kt]) {
+ Q[Kt] = true, Oe.crossTileID = Kt;
+ break;
+ }
+ }
+ } else if (Ze.positions) for (let Tt = 0; Tt < Ze.positions.length; Tt++) {
+ let Yt = Ze.positions[Tt], Kt = Ze.crossTileIDs[Tt];
+ if (Math.abs(Yt.x - st.x) <= ee && Math.abs(Yt.y - st.y) <= ee && !Q[Kt]) {
+ Q[Kt] = true, Oe.crossTileID = Kt;
+ break;
+ }
+ }
+ }
+ }
+ getCrossTileIDsLists() {
+ return Object.values(this._symbolsByKey).map(({ crossTileIDs: w }) => w);
+ }
+ }
+ class Wa {
+ constructor() {
+ this.maxCrossTileID = 0;
+ }
+ generate() {
+ return ++this.maxCrossTileID;
+ }
+ }
+ class Fa {
+ constructor() {
+ this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0;
+ }
+ handleWrapJump(w) {
+ let B = Math.round((w - this.lng) / 360);
+ if (B !== 0) for (let Q in this.indexes) {
+ let ee = this.indexes[Q], le = {};
+ for (let Oe in ee) {
+ let Ze = ee[Oe];
+ Ze.tileID = Ze.tileID.unwrapTo(Ze.tileID.wrap + B), le[Ze.tileID.key] = Ze;
+ }
+ this.indexes[Q] = le;
+ }
+ this.lng = w;
+ }
+ addBucket(w, B, Q) {
+ if (this.indexes[w.overscaledZ] && this.indexes[w.overscaledZ][w.key]) {
+ if (this.indexes[w.overscaledZ][w.key].bucketInstanceId === B.bucketInstanceId) return false;
+ this.removeBucketCrossTileIDs(w.overscaledZ, this.indexes[w.overscaledZ][w.key]);
+ }
+ for (let le = 0; le < B.symbolInstances.length; le++) B.symbolInstances.get(le).crossTileID = 0;
+ this.usedCrossTileIDs[w.overscaledZ] || (this.usedCrossTileIDs[w.overscaledZ] = {});
+ let ee = this.usedCrossTileIDs[w.overscaledZ];
+ for (let le in this.indexes) {
+ let Oe = this.indexes[le];
+ if (Number(le) > w.overscaledZ) for (let Ze in Oe) {
+ let st = Oe[Ze];
+ st.tileID.isChildOf(w) && st.findMatches(B.symbolInstances, w, ee);
+ }
+ else {
+ let Ze = Oe[w.scaledTo(Number(le)).key];
+ Ze && Ze.findMatches(B.symbolInstances, w, ee);
+ }
+ }
+ for (let le = 0; le < B.symbolInstances.length; le++) {
+ let Oe = B.symbolInstances.get(le);
+ Oe.crossTileID || (Oe.crossTileID = Q.generate(), ee[Oe.crossTileID] = true);
+ }
+ return this.indexes[w.overscaledZ] === void 0 && (this.indexes[w.overscaledZ] = {}), this.indexes[w.overscaledZ][w.key] = new ma(w, B.symbolInstances, B.bucketInstanceId), true;
+ }
+ removeBucketCrossTileIDs(w, B) {
+ for (let Q of B.getCrossTileIDsLists()) for (let ee of Q) delete this.usedCrossTileIDs[w][ee];
+ }
+ removeStaleBuckets(w) {
+ let B = false;
+ for (let Q in this.indexes) {
+ let ee = this.indexes[Q];
+ for (let le in ee) w[ee[le].bucketInstanceId] || (this.removeBucketCrossTileIDs(Q, ee[le]), delete ee[le], B = true);
+ }
+ return B;
+ }
+ }
+ class Xo {
+ constructor() {
+ this.layerIndexes = {}, this.crossTileIDs = new Wa(), this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {};
+ }
+ addLayer(w, B, Q) {
+ let ee = this.layerIndexes[w.id];
+ ee === void 0 && (ee = this.layerIndexes[w.id] = new Fa());
+ let le = false, Oe = {};
+ ee.handleWrapJump(Q);
+ for (let Ze of B) {
+ let st = Ze.getBucket(w);
+ st && w.id === st.layerIds[0] && (st.bucketInstanceId || (st.bucketInstanceId = ++this.maxBucketInstanceId), ee.addBucket(Ze.tileID, st, this.crossTileIDs) && (le = true), Oe[st.bucketInstanceId] = true);
+ }
+ return ee.removeStaleBuckets(Oe) && (le = true), le;
+ }
+ pruneUnusedLayers(w) {
+ let B = {};
+ w.forEach((Q) => {
+ B[Q] = true;
+ });
+ for (let Q in this.layerIndexes) B[Q] || delete this.layerIndexes[Q];
+ }
+ }
+ let da = (ue, w) => a.t(ue, w && w.filter((B) => B.identifier !== "source.canvas")), Wn = a.aw();
+ class Ha extends a.E {
+ constructor(w, B = {}) {
+ super(), this._rtlPluginLoaded = () => {
+ for (let Q in this.sourceCaches) {
+ let ee = this.sourceCaches[Q].getSource().type;
+ ee !== "vector" && ee !== "geojson" || this.sourceCaches[Q].reload();
+ }
+ }, this.map = w, this.dispatcher = new Ee(Se(), w._getMapId()), this.dispatcher.registerMessageHandler("GG", (Q, ee) => this.getGlyphs(Q, ee)), this.dispatcher.registerMessageHandler("GI", (Q, ee) => this.getImages(Q, ee)), this.imageManager = new A(), this.imageManager.setEventedParent(this), this.glyphManager = new G(w._requestManager, B.localIdeographFontFamily), this.lineAtlas = new oe(256, 512), this.crossTileSymbolIndex = new Xo(), this._spritesImagesIds = {}, this._layers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new a.ax(), this._loaded = false, this._availableImages = [], this._resetUpdates(), this.dispatcher.broadcast("SR", a.ay()), Qt().on(fr, this._rtlPluginLoaded), this.on("data", (Q) => {
+ if (Q.dataType !== "source" || Q.sourceDataType !== "metadata") return;
+ let ee = this.sourceCaches[Q.sourceId];
+ if (!ee) return;
+ let le = ee.getSource();
+ if (le && le.vectorLayerIds) for (let Oe in this._layers) {
+ let Ze = this._layers[Oe];
+ Ze.source === le.id && this._validateLayer(Ze);
+ }
+ });
+ }
+ loadURL(w, B = {}, Q) {
+ this.fire(new a.k("dataloading", { dataType: "style" })), B.validate = typeof B.validate != "boolean" || B.validate;
+ let ee = this.map._requestManager.transformRequest(w, "Style");
+ this._loadStyleRequest = new AbortController();
+ let le = this._loadStyleRequest;
+ a.h(ee, this._loadStyleRequest).then((Oe) => {
+ this._loadStyleRequest = null, this._load(Oe.data, B, Q);
+ }).catch((Oe) => {
+ this._loadStyleRequest = null, Oe && !le.signal.aborted && this.fire(new a.j(Oe));
+ });
+ }
+ loadJSON(w, B = {}, Q) {
+ this.fire(new a.k("dataloading", { dataType: "style" })), this._frameRequest = new AbortController(), u.frameAsync(this._frameRequest).then(() => {
+ this._frameRequest = null, B.validate = B.validate !== false, this._load(w, B, Q);
+ }).catch(() => {
+ });
+ }
+ loadEmpty() {
+ this.fire(new a.k("dataloading", { dataType: "style" })), this._load(Wn, { validate: false });
+ }
+ _load(w, B, Q) {
+ var ee;
+ let le = B.transformStyle ? B.transformStyle(Q, w) : w;
+ if (!B.validate || !da(this, a.u(le))) {
+ this._loaded = true, this.stylesheet = le;
+ for (let Oe in le.sources) this.addSource(Oe, le.sources[Oe], { validate: false });
+ le.sprite ? this._loadSprite(le.sprite) : this.imageManager.setLoaded(true), this.glyphManager.setURL(le.glyphs), this._createLayers(), this.light = new N(this.stylesheet.light), this.sky = new re(this.stylesheet.sky), this.map.setTerrain((ee = this.stylesheet.terrain) !== null && ee !== void 0 ? ee : null), this.fire(new a.k("data", { dataType: "style" })), this.fire(new a.k("style.load"));
+ }
+ }
+ _createLayers() {
+ let w = a.az(this.stylesheet.layers);
+ this.dispatcher.broadcast("SL", w), this._order = w.map((B) => B.id), this._layers = {}, this._serializedLayers = null;
+ for (let B of w) {
+ let Q = a.aA(B);
+ Q.setEventedParent(this, { layer: { id: B.id } }), this._layers[B.id] = Q;
+ }
+ }
+ _loadSprite(w, B = false, Q = void 0) {
+ let ee;
+ this.imageManager.setLoaded(false), this._spriteRequest = new AbortController(), function(le, Oe, Ze, st) {
+ return a._(this, void 0, void 0, function* () {
+ let Tt = C(le), Yt = Ze > 1 ? "@2x" : "", Kt = {}, xr = {};
+ for (let { id: Ir, url: ve } of Tt) {
+ let be = Oe.transformRequest(M(ve, Yt, ".json"), "SpriteJSON");
+ Kt[Ir] = a.h(be, st);
+ let Re = Oe.transformRequest(M(ve, Yt, ".png"), "SpriteImage");
+ xr[Ir] = p.getImage(Re, st);
+ }
+ return yield Promise.all([...Object.values(Kt), ...Object.values(xr)]), function(Ir, ve) {
+ return a._(this, void 0, void 0, function* () {
+ let be = {};
+ for (let Re in Ir) {
+ be[Re] = {};
+ let qe = u.getImageCanvasContext((yield ve[Re]).data), et = (yield Ir[Re]).data;
+ for (let Xe in et) {
+ let { width: it, height: Ft, x: Ht, y: tr, sdf: dr, pixelRatio: Sr, stretchX: Or, stretchY: Wr, content: ni, textFitWidth: Pi, textFitHeight: cn } = et[Xe];
+ be[Re][Xe] = { data: null, pixelRatio: Sr, sdf: dr, stretchX: Or, stretchY: Wr, content: ni, textFitWidth: Pi, textFitHeight: cn, spriteData: { width: it, height: Ft, x: Ht, y: tr, context: qe } };
+ }
+ }
+ return be;
+ });
+ }(Kt, xr);
+ });
+ }(w, this.map._requestManager, this.map.getPixelRatio(), this._spriteRequest).then((le) => {
+ if (this._spriteRequest = null, le) for (let Oe in le) {
+ this._spritesImagesIds[Oe] = [];
+ let Ze = this._spritesImagesIds[Oe] ? this._spritesImagesIds[Oe].filter((st) => !(st in le)) : [];
+ for (let st of Ze) this.imageManager.removeImage(st), this._changedImages[st] = true;
+ for (let st in le[Oe]) {
+ let Tt = Oe === "default" ? st : `${Oe}:${st}`;
+ this._spritesImagesIds[Oe].push(Tt), Tt in this.imageManager.images ? this.imageManager.updateImage(Tt, le[Oe][st], false) : this.imageManager.addImage(Tt, le[Oe][st]), B && (this._changedImages[Tt] = true);
+ }
+ }
+ }).catch((le) => {
+ this._spriteRequest = null, ee = le, this.fire(new a.j(ee));
+ }).finally(() => {
+ this.imageManager.setLoaded(true), this._availableImages = this.imageManager.listImages(), B && (this._changed = true), this.dispatcher.broadcast("SI", this._availableImages), this.fire(new a.k("data", { dataType: "style" })), Q && Q(ee);
+ });
+ }
+ _unloadSprite() {
+ for (let w of Object.values(this._spritesImagesIds).flat()) this.imageManager.removeImage(w), this._changedImages[w] = true;
+ this._spritesImagesIds = {}, this._availableImages = this.imageManager.listImages(), this._changed = true, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new a.k("data", { dataType: "style" }));
+ }
+ _validateLayer(w) {
+ let B = this.sourceCaches[w.source];
+ if (!B) return;
+ let Q = w.sourceLayer;
+ if (!Q) return;
+ let ee = B.getSource();
+ (ee.type === "geojson" || ee.vectorLayerIds && ee.vectorLayerIds.indexOf(Q) === -1) && this.fire(new a.j(new Error(`Source layer "${Q}" does not exist on source "${ee.id}" as specified by style layer "${w.id}".`)));
+ }
+ loaded() {
+ if (!this._loaded || Object.keys(this._updatedSources).length) return false;
+ for (let w in this.sourceCaches) if (!this.sourceCaches[w].loaded()) return false;
+ return !!this.imageManager.isLoaded();
+ }
+ _serializeByIds(w, B = false) {
+ let Q = this._serializedAllLayers();
+ if (!w || w.length === 0) return Object.values(B ? a.aB(Q) : Q);
+ let ee = [];
+ for (let le of w) if (Q[le]) {
+ let Oe = B ? a.aB(Q[le]) : Q[le];
+ ee.push(Oe);
+ }
+ return ee;
+ }
+ _serializedAllLayers() {
+ let w = this._serializedLayers;
+ if (w) return w;
+ w = this._serializedLayers = {};
+ let B = Object.keys(this._layers);
+ for (let Q of B) {
+ let ee = this._layers[Q];
+ ee.type !== "custom" && (w[Q] = ee.serialize());
+ }
+ return w;
+ }
+ hasTransitions() {
+ if (this.light && this.light.hasTransition() || this.sky && this.sky.hasTransition()) return true;
+ for (let w in this.sourceCaches) if (this.sourceCaches[w].hasTransition()) return true;
+ for (let w in this._layers) if (this._layers[w].hasTransition()) return true;
+ return false;
+ }
+ _checkLoaded() {
+ if (!this._loaded) throw new Error("Style is not done loading.");
+ }
+ update(w) {
+ if (!this._loaded) return;
+ let B = this._changed;
+ if (B) {
+ let ee = Object.keys(this._updatedLayers), le = Object.keys(this._removedLayers);
+ (ee.length || le.length) && this._updateWorkerLayers(ee, le);
+ for (let Oe in this._updatedSources) {
+ let Ze = this._updatedSources[Oe];
+ if (Ze === "reload") this._reloadSource(Oe);
+ else {
+ if (Ze !== "clear") throw new Error(`Invalid action ${Ze}`);
+ this._clearSource(Oe);
+ }
+ }
+ this._updateTilesForChangedImages(), this._updateTilesForChangedGlyphs();
+ for (let Oe in this._updatedPaintProps) this._layers[Oe].updateTransitions(w);
+ this.light.updateTransitions(w), this.sky.updateTransitions(w), this._resetUpdates();
+ }
+ let Q = {};
+ for (let ee in this.sourceCaches) {
+ let le = this.sourceCaches[ee];
+ Q[ee] = le.used, le.used = false;
+ }
+ for (let ee of this._order) {
+ let le = this._layers[ee];
+ le.recalculate(w, this._availableImages), !le.isHidden(w.zoom) && le.source && (this.sourceCaches[le.source].used = true);
+ }
+ for (let ee in Q) {
+ let le = this.sourceCaches[ee];
+ !!Q[ee] != !!le.used && le.fire(new a.k("data", { sourceDataType: "visibility", dataType: "source", sourceId: ee }));
+ }
+ this.light.recalculate(w), this.sky.recalculate(w), this.z = w.zoom, B && this.fire(new a.k("data", { dataType: "style" }));
+ }
+ _updateTilesForChangedImages() {
+ let w = Object.keys(this._changedImages);
+ if (w.length) {
+ for (let B in this.sourceCaches) this.sourceCaches[B].reloadTilesForDependencies(["icons", "patterns"], w);
+ this._changedImages = {};
+ }
+ }
+ _updateTilesForChangedGlyphs() {
+ if (this._glyphsDidChange) {
+ for (let w in this.sourceCaches) this.sourceCaches[w].reloadTilesForDependencies(["glyphs"], [""]);
+ this._glyphsDidChange = false;
+ }
+ }
+ _updateWorkerLayers(w, B) {
+ this.dispatcher.broadcast("UL", { layers: this._serializeByIds(w, false), removedIds: B });
+ }
+ _resetUpdates() {
+ this._changed = false, this._updatedLayers = {}, this._removedLayers = {}, this._updatedSources = {}, this._updatedPaintProps = {}, this._changedImages = {}, this._glyphsDidChange = false;
+ }
+ setState(w, B = {}) {
+ var Q;
+ this._checkLoaded();
+ let ee = this.serialize();
+ if (w = B.transformStyle ? B.transformStyle(ee, w) : w, ((Q = B.validate) === null || Q === void 0 || Q) && da(this, a.u(w))) return false;
+ (w = a.aB(w)).layers = a.az(w.layers);
+ let le = a.aC(ee, w), Oe = this._getOperationsToPerform(le);
+ if (Oe.unimplemented.length > 0) throw new Error(`Unimplemented: ${Oe.unimplemented.join(", ")}.`);
+ if (Oe.operations.length === 0) return false;
+ for (let Ze of Oe.operations) Ze();
+ return this.stylesheet = w, this._serializedLayers = null, true;
+ }
+ _getOperationsToPerform(w) {
+ let B = [], Q = [];
+ for (let ee of w) switch (ee.command) {
+ case "setCenter":
+ case "setZoom":
+ case "setBearing":
+ case "setPitch":
+ continue;
+ case "addLayer":
+ B.push(() => this.addLayer.apply(this, ee.args));
+ break;
+ case "removeLayer":
+ B.push(() => this.removeLayer.apply(this, ee.args));
+ break;
+ case "setPaintProperty":
+ B.push(() => this.setPaintProperty.apply(this, ee.args));
+ break;
+ case "setLayoutProperty":
+ B.push(() => this.setLayoutProperty.apply(this, ee.args));
+ break;
+ case "setFilter":
+ B.push(() => this.setFilter.apply(this, ee.args));
+ break;
+ case "addSource":
+ B.push(() => this.addSource.apply(this, ee.args));
+ break;
+ case "removeSource":
+ B.push(() => this.removeSource.apply(this, ee.args));
+ break;
+ case "setLayerZoomRange":
+ B.push(() => this.setLayerZoomRange.apply(this, ee.args));
+ break;
+ case "setLight":
+ B.push(() => this.setLight.apply(this, ee.args));
+ break;
+ case "setGeoJSONSourceData":
+ B.push(() => this.setGeoJSONSourceData.apply(this, ee.args));
+ break;
+ case "setGlyphs":
+ B.push(() => this.setGlyphs.apply(this, ee.args));
+ break;
+ case "setSprite":
+ B.push(() => this.setSprite.apply(this, ee.args));
+ break;
+ case "setSky":
+ B.push(() => this.setSky.apply(this, ee.args));
+ break;
+ case "setTerrain":
+ B.push(() => this.map.setTerrain.apply(this, ee.args));
+ break;
+ case "setTransition":
+ B.push(() => {
+ });
+ break;
+ default:
+ Q.push(ee.command);
+ }
+ return { operations: B, unimplemented: Q };
+ }
+ addImage(w, B) {
+ if (this.getImage(w)) return this.fire(new a.j(new Error(`An image named "${w}" already exists.`)));
+ this.imageManager.addImage(w, B), this._afterImageUpdated(w);
+ }
+ updateImage(w, B) {
+ this.imageManager.updateImage(w, B);
+ }
+ getImage(w) {
+ return this.imageManager.getImage(w);
+ }
+ removeImage(w) {
+ if (!this.getImage(w)) return this.fire(new a.j(new Error(`An image named "${w}" does not exist.`)));
+ this.imageManager.removeImage(w), this._afterImageUpdated(w);
+ }
+ _afterImageUpdated(w) {
+ this._availableImages = this.imageManager.listImages(), this._changedImages[w] = true, this._changed = true, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new a.k("data", { dataType: "style" }));
+ }
+ listImages() {
+ return this._checkLoaded(), this.imageManager.listImages();
+ }
+ addSource(w, B, Q = {}) {
+ if (this._checkLoaded(), this.sourceCaches[w] !== void 0) throw new Error(`Source "${w}" already exists.`);
+ if (!B.type) throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(B).join(", ")}.`);
+ if (["vector", "raster", "geojson", "video", "image"].indexOf(B.type) >= 0 && this._validate(a.u.source, `sources.${w}`, B, null, Q)) return;
+ this.map && this.map._collectResourceTiming && (B.collectResourceTiming = true);
+ let ee = this.sourceCaches[w] = new mt(w, B, this.dispatcher);
+ ee.style = this, ee.setEventedParent(this, () => ({ isSourceLoaded: ee.loaded(), source: ee.serialize(), sourceId: w })), ee.onAdd(this.map), this._changed = true;
+ }
+ removeSource(w) {
+ if (this._checkLoaded(), this.sourceCaches[w] === void 0) throw new Error("There is no source with this ID");
+ for (let Q in this._layers) if (this._layers[Q].source === w) return this.fire(new a.j(new Error(`Source "${w}" cannot be removed while layer "${Q}" is using it.`)));
+ let B = this.sourceCaches[w];
+ delete this.sourceCaches[w], delete this._updatedSources[w], B.fire(new a.k("data", { sourceDataType: "metadata", dataType: "source", sourceId: w })), B.setEventedParent(null), B.onRemove(this.map), this._changed = true;
+ }
+ setGeoJSONSourceData(w, B) {
+ if (this._checkLoaded(), this.sourceCaches[w] === void 0) throw new Error(`There is no source with this ID=${w}`);
+ let Q = this.sourceCaches[w].getSource();
+ if (Q.type !== "geojson") throw new Error(`geojsonSource.type is ${Q.type}, which is !== 'geojson`);
+ Q.setData(B), this._changed = true;
+ }
+ getSource(w) {
+ return this.sourceCaches[w] && this.sourceCaches[w].getSource();
+ }
+ addLayer(w, B, Q = {}) {
+ this._checkLoaded();
+ let ee = w.id;
+ if (this.getLayer(ee)) return void this.fire(new a.j(new Error(`Layer "${ee}" already exists on this map.`)));
+ let le;
+ if (w.type === "custom") {
+ if (da(this, a.aD(w))) return;
+ le = a.aA(w);
+ } else {
+ if ("source" in w && typeof w.source == "object" && (this.addSource(ee, w.source), w = a.aB(w), w = a.e(w, { source: ee })), this._validate(a.u.layer, `layers.${ee}`, w, { arrayIndex: -1 }, Q)) return;
+ le = a.aA(w), this._validateLayer(le), le.setEventedParent(this, { layer: { id: ee } });
+ }
+ let Oe = B ? this._order.indexOf(B) : this._order.length;
+ if (B && Oe === -1) this.fire(new a.j(new Error(`Cannot add layer "${ee}" before non-existing layer "${B}".`)));
+ else {
+ if (this._order.splice(Oe, 0, ee), this._layerOrderChanged = true, this._layers[ee] = le, this._removedLayers[ee] && le.source && le.type !== "custom") {
+ let Ze = this._removedLayers[ee];
+ delete this._removedLayers[ee], Ze.type !== le.type ? this._updatedSources[le.source] = "clear" : (this._updatedSources[le.source] = "reload", this.sourceCaches[le.source].pause());
+ }
+ this._updateLayer(le), le.onAdd && le.onAdd(this.map);
+ }
+ }
+ moveLayer(w, B) {
+ if (this._checkLoaded(), this._changed = true, !this._layers[w]) return void this.fire(new a.j(new Error(`The layer '${w}' does not exist in the map's style and cannot be moved.`)));
+ if (w === B) return;
+ let Q = this._order.indexOf(w);
+ this._order.splice(Q, 1);
+ let ee = B ? this._order.indexOf(B) : this._order.length;
+ B && ee === -1 ? this.fire(new a.j(new Error(`Cannot move layer "${w}" before non-existing layer "${B}".`))) : (this._order.splice(ee, 0, w), this._layerOrderChanged = true);
+ }
+ removeLayer(w) {
+ this._checkLoaded();
+ let B = this._layers[w];
+ if (!B) return void this.fire(new a.j(new Error(`Cannot remove non-existing layer "${w}".`)));
+ B.setEventedParent(null);
+ let Q = this._order.indexOf(w);
+ this._order.splice(Q, 1), this._layerOrderChanged = true, this._changed = true, this._removedLayers[w] = B, delete this._layers[w], this._serializedLayers && delete this._serializedLayers[w], delete this._updatedLayers[w], delete this._updatedPaintProps[w], B.onRemove && B.onRemove(this.map);
+ }
+ getLayer(w) {
+ return this._layers[w];
+ }
+ getLayersOrder() {
+ return [...this._order];
+ }
+ hasLayer(w) {
+ return w in this._layers;
+ }
+ setLayerZoomRange(w, B, Q) {
+ this._checkLoaded();
+ let ee = this.getLayer(w);
+ ee ? ee.minzoom === B && ee.maxzoom === Q || (B != null && (ee.minzoom = B), Q != null && (ee.maxzoom = Q), this._updateLayer(ee)) : this.fire(new a.j(new Error(`Cannot set the zoom range of non-existing layer "${w}".`)));
+ }
+ setFilter(w, B, Q = {}) {
+ this._checkLoaded();
+ let ee = this.getLayer(w);
+ if (ee) {
+ if (!a.aE(ee.filter, B)) return B == null ? (ee.filter = void 0, void this._updateLayer(ee)) : void (this._validate(a.u.filter, `layers.${ee.id}.filter`, B, null, Q) || (ee.filter = a.aB(B), this._updateLayer(ee)));
+ } else this.fire(new a.j(new Error(`Cannot filter non-existing layer "${w}".`)));
+ }
+ getFilter(w) {
+ return a.aB(this.getLayer(w).filter);
+ }
+ setLayoutProperty(w, B, Q, ee = {}) {
+ this._checkLoaded();
+ let le = this.getLayer(w);
+ le ? a.aE(le.getLayoutProperty(B), Q) || (le.setLayoutProperty(B, Q, ee), this._updateLayer(le)) : this.fire(new a.j(new Error(`Cannot style non-existing layer "${w}".`)));
+ }
+ getLayoutProperty(w, B) {
+ let Q = this.getLayer(w);
+ if (Q) return Q.getLayoutProperty(B);
+ this.fire(new a.j(new Error(`Cannot get style of non-existing layer "${w}".`)));
+ }
+ setPaintProperty(w, B, Q, ee = {}) {
+ this._checkLoaded();
+ let le = this.getLayer(w);
+ le ? a.aE(le.getPaintProperty(B), Q) || (le.setPaintProperty(B, Q, ee) && this._updateLayer(le), this._changed = true, this._updatedPaintProps[w] = true, this._serializedLayers = null) : this.fire(new a.j(new Error(`Cannot style non-existing layer "${w}".`)));
+ }
+ getPaintProperty(w, B) {
+ return this.getLayer(w).getPaintProperty(B);
+ }
+ setFeatureState(w, B) {
+ this._checkLoaded();
+ let Q = w.source, ee = w.sourceLayer, le = this.sourceCaches[Q];
+ if (le === void 0) return void this.fire(new a.j(new Error(`The source '${Q}' does not exist in the map's style.`)));
+ let Oe = le.getSource().type;
+ Oe === "geojson" && ee ? this.fire(new a.j(new Error("GeoJSON sources cannot have a sourceLayer parameter."))) : Oe !== "vector" || ee ? (w.id === void 0 && this.fire(new a.j(new Error("The feature id parameter must be provided."))), le.setFeatureState(ee, w.id, B)) : this.fire(new a.j(new Error("The sourceLayer parameter must be provided for vector source types.")));
+ }
+ removeFeatureState(w, B) {
+ this._checkLoaded();
+ let Q = w.source, ee = this.sourceCaches[Q];
+ if (ee === void 0) return void this.fire(new a.j(new Error(`The source '${Q}' does not exist in the map's style.`)));
+ let le = ee.getSource().type, Oe = le === "vector" ? w.sourceLayer : void 0;
+ le !== "vector" || Oe ? B && typeof w.id != "string" && typeof w.id != "number" ? this.fire(new a.j(new Error("A feature id is required to remove its specific state property."))) : ee.removeFeatureState(Oe, w.id, B) : this.fire(new a.j(new Error("The sourceLayer parameter must be provided for vector source types.")));
+ }
+ getFeatureState(w) {
+ this._checkLoaded();
+ let B = w.source, Q = w.sourceLayer, ee = this.sourceCaches[B];
+ if (ee !== void 0) return ee.getSource().type !== "vector" || Q ? (w.id === void 0 && this.fire(new a.j(new Error("The feature id parameter must be provided."))), ee.getFeatureState(Q, w.id)) : void this.fire(new a.j(new Error("The sourceLayer parameter must be provided for vector source types.")));
+ this.fire(new a.j(new Error(`The source '${B}' does not exist in the map's style.`)));
+ }
+ getTransition() {
+ return a.e({ duration: 300, delay: 0 }, this.stylesheet && this.stylesheet.transition);
+ }
+ serialize() {
+ if (!this._loaded) return;
+ let w = a.aF(this.sourceCaches, (le) => le.serialize()), B = this._serializeByIds(this._order, true), Q = this.map.getTerrain() || void 0, ee = this.stylesheet;
+ return a.aG({ version: ee.version, name: ee.name, metadata: ee.metadata, light: ee.light, sky: ee.sky, center: ee.center, zoom: ee.zoom, bearing: ee.bearing, pitch: ee.pitch, sprite: ee.sprite, glyphs: ee.glyphs, transition: ee.transition, sources: w, layers: B, terrain: Q }, (le) => le !== void 0);
+ }
+ _updateLayer(w) {
+ this._updatedLayers[w.id] = true, w.source && !this._updatedSources[w.source] && this.sourceCaches[w.source].getSource().type !== "raster" && (this._updatedSources[w.source] = "reload", this.sourceCaches[w.source].pause()), this._serializedLayers = null, this._changed = true;
+ }
+ _flattenAndSortRenderedFeatures(w) {
+ let B = (Oe) => this._layers[Oe].type === "fill-extrusion", Q = {}, ee = [];
+ for (let Oe = this._order.length - 1; Oe >= 0; Oe--) {
+ let Ze = this._order[Oe];
+ if (B(Ze)) {
+ Q[Ze] = Oe;
+ for (let st of w) {
+ let Tt = st[Ze];
+ if (Tt) for (let Yt of Tt) ee.push(Yt);
+ }
+ }
+ }
+ ee.sort((Oe, Ze) => Ze.intersectionZ - Oe.intersectionZ);
+ let le = [];
+ for (let Oe = this._order.length - 1; Oe >= 0; Oe--) {
+ let Ze = this._order[Oe];
+ if (B(Ze)) for (let st = ee.length - 1; st >= 0; st--) {
+ let Tt = ee[st].feature;
+ if (Q[Tt.layer.id] < Oe) break;
+ le.push(Tt), ee.pop();
+ }
+ else for (let st of w) {
+ let Tt = st[Ze];
+ if (Tt) for (let Yt of Tt) le.push(Yt.feature);
+ }
+ }
+ return le;
+ }
+ queryRenderedFeatures(w, B, Q) {
+ B && B.filter && this._validate(a.u.filter, "queryRenderedFeatures.filter", B.filter, null, B);
+ let ee = {};
+ if (B && B.layers) {
+ if (!Array.isArray(B.layers)) return this.fire(new a.j(new Error("parameters.layers must be an Array."))), [];
+ for (let Ze of B.layers) {
+ let st = this._layers[Ze];
+ if (!st) return this.fire(new a.j(new Error(`The layer '${Ze}' does not exist in the map's style and cannot be queried for features.`))), [];
+ ee[st.source] = true;
+ }
+ }
+ let le = [];
+ B.availableImages = this._availableImages;
+ let Oe = this._serializedAllLayers();
+ for (let Ze in this.sourceCaches) B.layers && !ee[Ze] || le.push(Pe(this.sourceCaches[Ze], this._layers, Oe, w, B, Q));
+ return this.placement && le.push(function(Ze, st, Tt, Yt, Kt, xr, Ir) {
+ let ve = {}, be = xr.queryRenderedSymbols(Yt), Re = [];
+ for (let qe of Object.keys(be).map(Number)) Re.push(Ir[qe]);
+ Re.sort(me);
+ for (let qe of Re) {
+ let et = qe.featureIndex.lookupSymbolFeatures(be[qe.bucketInstanceId], st, qe.bucketIndex, qe.sourceLayerIndex, Kt.filter, Kt.layers, Kt.availableImages, Ze);
+ for (let Xe in et) {
+ let it = ve[Xe] = ve[Xe] || [], Ft = et[Xe];
+ Ft.sort((Ht, tr) => {
+ let dr = qe.featureSortOrder;
+ if (dr) {
+ let Sr = dr.indexOf(Ht.featureIndex);
+ return dr.indexOf(tr.featureIndex) - Sr;
+ }
+ return tr.featureIndex - Ht.featureIndex;
+ });
+ for (let Ht of Ft) it.push(Ht);
+ }
+ }
+ for (let qe in ve) ve[qe].forEach((et) => {
+ let Xe = et.feature, it = Tt[Ze[qe].source].getFeatureState(Xe.layer["source-layer"], Xe.id);
+ Xe.source = Xe.layer.source, Xe.layer["source-layer"] && (Xe.sourceLayer = Xe.layer["source-layer"]), Xe.state = it;
+ });
+ return ve;
+ }(this._layers, Oe, this.sourceCaches, w, B, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(le);
+ }
+ querySourceFeatures(w, B) {
+ B && B.filter && this._validate(a.u.filter, "querySourceFeatures.filter", B.filter, null, B);
+ let Q = this.sourceCaches[w];
+ return Q ? function(ee, le) {
+ let Oe = ee.getRenderableIds().map((Tt) => ee.getTileByID(Tt)), Ze = [], st = {};
+ for (let Tt = 0; Tt < Oe.length; Tt++) {
+ let Yt = Oe[Tt], Kt = Yt.tileID.canonical.key;
+ st[Kt] || (st[Kt] = true, Yt.querySourceFeatures(Ze, le));
+ }
+ return Ze;
+ }(Q, B) : [];
+ }
+ getLight() {
+ return this.light.getLight();
+ }
+ setLight(w, B = {}) {
+ this._checkLoaded();
+ let Q = this.light.getLight(), ee = false;
+ for (let Oe in w) if (!a.aE(w[Oe], Q[Oe])) {
+ ee = true;
+ break;
+ }
+ if (!ee) return;
+ let le = { now: u.now(), transition: a.e({ duration: 300, delay: 0 }, this.stylesheet.transition) };
+ this.light.setLight(w, B), this.light.updateTransitions(le);
+ }
+ getSky() {
+ var w;
+ return (w = this.stylesheet) === null || w === void 0 ? void 0 : w.sky;
+ }
+ setSky(w, B = {}) {
+ let Q = this.getSky(), ee = false;
+ if (!w && !Q) return;
+ if (w && !Q) ee = true;
+ else if (!w && Q) ee = true;
+ else for (let Oe in w) if (!a.aE(w[Oe], Q[Oe])) {
+ ee = true;
+ break;
+ }
+ if (!ee) return;
+ let le = { now: u.now(), transition: a.e({ duration: 300, delay: 0 }, this.stylesheet.transition) };
+ this.stylesheet.sky = w, this.sky.setSky(w, B), this.sky.updateTransitions(le);
+ }
+ _validate(w, B, Q, ee, le = {}) {
+ return (!le || le.validate !== false) && da(this, w.call(a.u, a.e({ key: B, style: this.serialize(), value: Q, styleSpec: a.v }, ee)));
+ }
+ _remove(w = true) {
+ this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._loadStyleRequest && (this._loadStyleRequest.abort(), this._loadStyleRequest = null), this._spriteRequest && (this._spriteRequest.abort(), this._spriteRequest = null), Qt().off(fr, this._rtlPluginLoaded);
+ for (let B in this._layers) this._layers[B].setEventedParent(null);
+ for (let B in this.sourceCaches) {
+ let Q = this.sourceCaches[B];
+ Q.setEventedParent(null), Q.onRemove(this.map);
+ }
+ this.imageManager.setEventedParent(null), this.setEventedParent(null), w && this.dispatcher.broadcast("RM", void 0), this.dispatcher.remove(w);
+ }
+ _clearSource(w) {
+ this.sourceCaches[w].clearTiles();
+ }
+ _reloadSource(w) {
+ this.sourceCaches[w].resume(), this.sourceCaches[w].reload();
+ }
+ _updateSources(w) {
+ for (let B in this.sourceCaches) this.sourceCaches[B].update(w, this.map.terrain);
+ }
+ _generateCollisionBoxes() {
+ for (let w in this.sourceCaches) this._reloadSource(w);
+ }
+ _updatePlacement(w, B, Q, ee, le = false) {
+ let Oe = false, Ze = false, st = {};
+ for (let Tt of this._order) {
+ let Yt = this._layers[Tt];
+ if (Yt.type !== "symbol") continue;
+ if (!st[Yt.source]) {
+ let xr = this.sourceCaches[Yt.source];
+ st[Yt.source] = xr.getRenderableIds(true).map((Ir) => xr.getTileByID(Ir)).sort((Ir, ve) => ve.tileID.overscaledZ - Ir.tileID.overscaledZ || (Ir.tileID.isLessThan(ve.tileID) ? -1 : 1));
+ }
+ let Kt = this.crossTileSymbolIndex.addLayer(Yt, st[Yt.source], w.center.lng);
+ Oe = Oe || Kt;
+ }
+ if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((le = le || this._layerOrderChanged || Q === 0) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(u.now(), w.zoom)) && (this.pauseablePlacement = new Ba(w, this.map.terrain, this._order, le, B, Q, ee, this.placement), this._layerOrderChanged = false), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, st), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(u.now()), Ze = true), Oe && this.pauseablePlacement.placement.setStale()), Ze || Oe) for (let Tt of this._order) {
+ let Yt = this._layers[Tt];
+ Yt.type === "symbol" && this.placement.updateLayerOpacities(Yt, st[Yt.source]);
+ }
+ return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(u.now());
+ }
+ _releaseSymbolFadeTiles() {
+ for (let w in this.sourceCaches) this.sourceCaches[w].releaseSymbolFadeTiles();
+ }
+ getImages(w, B) {
+ return a._(this, void 0, void 0, function* () {
+ let Q = yield this.imageManager.getImages(B.icons);
+ this._updateTilesForChangedImages();
+ let ee = this.sourceCaches[B.source];
+ return ee && ee.setDependencies(B.tileID.key, B.type, B.icons), Q;
+ });
+ }
+ getGlyphs(w, B) {
+ return a._(this, void 0, void 0, function* () {
+ let Q = yield this.glyphManager.getGlyphs(B.stacks), ee = this.sourceCaches[B.source];
+ return ee && ee.setDependencies(B.tileID.key, B.type, [""]), Q;
+ });
+ }
+ getGlyphsUrl() {
+ return this.stylesheet.glyphs || null;
+ }
+ setGlyphs(w, B = {}) {
+ this._checkLoaded(), w && this._validate(a.u.glyphs, "glyphs", w, null, B) || (this._glyphsDidChange = true, this.stylesheet.glyphs = w, this.glyphManager.entries = {}, this.glyphManager.setURL(w));
+ }
+ addSprite(w, B, Q = {}, ee) {
+ this._checkLoaded();
+ let le = [{ id: w, url: B }], Oe = [...C(this.stylesheet.sprite), ...le];
+ this._validate(a.u.sprite, "sprite", Oe, null, Q) || (this.stylesheet.sprite = Oe, this._loadSprite(le, true, ee));
+ }
+ removeSprite(w) {
+ this._checkLoaded();
+ let B = C(this.stylesheet.sprite);
+ if (B.find((Q) => Q.id === w)) {
+ if (this._spritesImagesIds[w]) for (let Q of this._spritesImagesIds[w]) this.imageManager.removeImage(Q), this._changedImages[Q] = true;
+ B.splice(B.findIndex((Q) => Q.id === w), 1), this.stylesheet.sprite = B.length > 0 ? B : void 0, delete this._spritesImagesIds[w], this._availableImages = this.imageManager.listImages(), this._changed = true, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new a.k("data", { dataType: "style" }));
+ } else this.fire(new a.j(new Error(`Sprite "${w}" doesn't exists on this map.`)));
+ }
+ getSprite() {
+ return C(this.stylesheet.sprite);
+ }
+ setSprite(w, B = {}, Q) {
+ this._checkLoaded(), w && this._validate(a.u.sprite, "sprite", w, null, B) || (this.stylesheet.sprite = w, w ? this._loadSprite(w, true, Q) : (this._unloadSprite(), Q && Q(null)));
+ }
+ }
+ var vo = a.Y([{ name: "a_pos", type: "Int16", components: 2 }]);
+ let jn = { prelude: Mt(`#ifdef GL_ES
+precision mediump float;
+#else
+#if !defined(lowp)
+#define lowp
+#endif
+#if !defined(mediump)
+#define mediump
+#endif
+#if !defined(highp)
+#define highp
+#endif
+#endif
+`, `#ifdef GL_ES
+precision highp float;
+#else
+#if !defined(lowp)
+#define lowp
+#endif
+#if !defined(mediump)
+#define mediump
+#endif
+#if !defined(highp)
+#define highp
+#endif
+#endif
+vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
+);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}
+#ifdef TERRAIN3D
+uniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;
+#endif
+const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {
+#ifdef TERRAIN3D
+highp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));
+#else
+return 1.0;
+#endif
+}float calculate_visibility(vec4 pos) {
+#ifdef TERRAIN3D
+vec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;
+#else
+return 1.0;
+#endif
+}float ele(vec2 pos) {
+#ifdef TERRAIN3D
+vec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
+#else
+return 0.0;
+#endif
+}float get_elevation(vec2 pos) {
+#ifdef TERRAIN3D
+vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;
+#else
+return 0.0;
+#endif
+}`), background: Mt(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), backgroundPattern: Mt(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, "uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"), circle: Mt(`varying vec3 v_data;varying float v_visibility;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define mediump float radius
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define highp vec4 stroke_color
+#pragma mapbox: define mediump float stroke_width
+#pragma mapbox: define lowp float stroke_opacity
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize mediump float radius
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize highp vec4 stroke_color
+#pragma mapbox: initialize mediump float stroke_width
+#pragma mapbox: initialize lowp float stroke_opacity
+vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define mediump float radius
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define highp vec4 stroke_color
+#pragma mapbox: define mediump float stroke_width
+#pragma mapbox: define lowp float stroke_opacity
+void main(void) {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize mediump float radius
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize highp vec4 stroke_color
+#pragma mapbox: initialize mediump float stroke_width
+#pragma mapbox: initialize lowp float stroke_opacity
+vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`), clippingMask: Mt("void main() {gl_FragColor=vec4(1.0);}", "attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"), heatmap: Mt(`uniform highp float u_intensity;varying vec2 v_extrude;
+#pragma mapbox: define highp float weight
+#define GAUSS_COEF 0.3989422804014327
+void main() {
+#pragma mapbox: initialize highp float weight
+float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;
+#pragma mapbox: define highp float weight
+#pragma mapbox: define mediump float radius
+const highp float ZERO=1.0/255.0/16.0;
+#define GAUSS_COEF 0.3989422804014327
+void main(void) {
+#pragma mapbox: initialize highp float weight
+#pragma mapbox: initialize mediump float radius
+vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,get_elevation(floor(a_pos*0.5)),1);gl_Position=u_matrix*pos;}`), heatmapTexture: Mt(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(0.0);
+#endif
+}`, "uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"), collisionBox: Mt("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}", "attribute vec2 a_anchor_pos;attribute vec2 a_placed;attribute vec2 a_box_real;uniform mat4 u_matrix;uniform vec2 u_pixel_extrude_scale;varying float v_placed;varying float v_notUsed;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"), collisionCircle: Mt("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}", "attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"), debug: Mt("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}", "attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}"), fill: Mt(`#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float opacity
+gl_FragColor=color*opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `attribute vec2 a_pos;uniform mat4 u_matrix;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float opacity
+gl_Position=u_matrix*vec4(a_pos,0,1);}`), fillOutline: Mt(`varying vec2 v_pos;
+#pragma mapbox: define highp vec4 outline_color
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 outline_color
+#pragma mapbox: initialize lowp float opacity
+float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;
+#pragma mapbox: define highp vec4 outline_color
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 outline_color
+#pragma mapbox: initialize lowp float opacity
+gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`), fillOutlinePattern: Mt(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+void main() {
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`), fillPattern: Mt(`#ifdef GL_ES
+precision highp float;
+#endif
+uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+void main() {
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`), fillExtrusion: Mt(`varying vec4 v_color;void main() {gl_FragColor=v_color;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;
+#ifdef TERRAIN3D
+attribute vec2 a_centroid;
+#endif
+varying vec4 v_color;
+#pragma mapbox: define highp float base
+#pragma mapbox: define highp float height
+#pragma mapbox: define highp vec4 color
+void main() {
+#pragma mapbox: initialize highp float base
+#pragma mapbox: initialize highp float height
+#pragma mapbox: initialize highp vec4 color
+vec3 normal=a_normal_ed.xyz;
+#ifdef TERRAIN3D
+float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
+#else
+float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
+#endif
+base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`), fillExtrusionPattern: Mt(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;
+#pragma mapbox: define lowp float base
+#pragma mapbox: define lowp float height
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float base
+#pragma mapbox: initialize lowp float height
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;
+#ifdef TERRAIN3D
+attribute vec2 a_centroid;
+#endif
+varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;
+#pragma mapbox: define lowp float base
+#pragma mapbox: define lowp float height
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float base
+#pragma mapbox: initialize lowp float height
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;
+#ifdef TERRAIN3D
+float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
+#else
+float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
+#endif
+base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0
+? a_pos
+: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`), hillshadePrepare: Mt(`#ifdef GL_ES
+precision highp float;
+#endif
+uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, "uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"), hillshade: Mt(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;
+#define PI 3.141592653589793
+void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, "uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"), line: Mt(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `
+#define scale 0.015873016
+attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define mediump float gapwidth
+#pragma mapbox: define lowp float offset
+#pragma mapbox: define mediump float width
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump float gapwidth
+#pragma mapbox: initialize lowp float offset
+#pragma mapbox: initialize mediump float width
+float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;
+#ifdef TERRAIN3D
+v_gamma_scale=1.0;
+#else
+float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
+#endif
+v_width2=vec2(outset,inset);}`), lineGradient: Mt(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `
+#define scale 0.015873016
+attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define mediump float gapwidth
+#pragma mapbox: define lowp float offset
+#pragma mapbox: define mediump float width
+void main() {
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump float gapwidth
+#pragma mapbox: initialize lowp float offset
+#pragma mapbox: initialize mediump float width
+float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;
+#ifdef TERRAIN3D
+v_gamma_scale=1.0;
+#else
+float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
+#endif
+v_width2=vec2(outset,inset);}`), linePattern: Mt(`#ifdef GL_ES
+precision highp float;
+#endif
+uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `
+#define scale 0.015873016
+#define LINE_DISTANCE_SCALE 2.0
+attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float offset
+#pragma mapbox: define mediump float gapwidth
+#pragma mapbox: define mediump float width
+#pragma mapbox: define lowp float floorwidth
+#pragma mapbox: define lowp vec4 pattern_from
+#pragma mapbox: define lowp vec4 pattern_to
+#pragma mapbox: define lowp float pixel_ratio_from
+#pragma mapbox: define lowp float pixel_ratio_to
+void main() {
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float offset
+#pragma mapbox: initialize mediump float gapwidth
+#pragma mapbox: initialize mediump float width
+#pragma mapbox: initialize lowp float floorwidth
+#pragma mapbox: initialize mediump vec4 pattern_from
+#pragma mapbox: initialize mediump vec4 pattern_to
+#pragma mapbox: initialize lowp float pixel_ratio_from
+#pragma mapbox: initialize lowp float pixel_ratio_to
+float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;
+#ifdef TERRAIN3D
+v_gamma_scale=1.0;
+#else
+float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
+#endif
+v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`), lineSDF: Mt(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define mediump float width
+#pragma mapbox: define lowp float floorwidth
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump float width
+#pragma mapbox: initialize lowp float floorwidth
+float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `
+#define scale 0.015873016
+#define LINE_DISTANCE_SCALE 2.0
+attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;
+#pragma mapbox: define highp vec4 color
+#pragma mapbox: define lowp float blur
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define mediump float gapwidth
+#pragma mapbox: define lowp float offset
+#pragma mapbox: define mediump float width
+#pragma mapbox: define lowp float floorwidth
+void main() {
+#pragma mapbox: initialize highp vec4 color
+#pragma mapbox: initialize lowp float blur
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize mediump float gapwidth
+#pragma mapbox: initialize lowp float offset
+#pragma mapbox: initialize mediump float width
+#pragma mapbox: initialize lowp float floorwidth
+float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;
+#ifdef TERRAIN3D
+v_gamma_scale=1.0;
+#else
+float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
+#endif
+v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`), raster: Mt(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, "uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"), symbolIcon: Mt(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize lowp float opacity
+lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec2 v_tex;varying float v_fade_opacity;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}
+#pragma mapbox: define lowp float opacity
+void main() {
+#pragma mapbox: initialize lowp float opacity
+vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
+camera_to_anchor_distance/u_camera_to_center_distance :
+u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`), symbolSDF: Mt(`#define SDF_PX 8.0
+uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;
+#pragma mapbox: define highp vec4 fill_color
+#pragma mapbox: define highp vec4 halo_color
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float halo_width
+#pragma mapbox: define lowp float halo_blur
+void main() {
+#pragma mapbox: initialize highp vec4 fill_color
+#pragma mapbox: initialize highp vec4 halo_color
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float halo_width
+#pragma mapbox: initialize lowp float halo_blur
+float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec2 v_data0;varying vec3 v_data1;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}
+#pragma mapbox: define highp vec4 fill_color
+#pragma mapbox: define highp vec4 halo_color
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float halo_width
+#pragma mapbox: define lowp float halo_blur
+void main() {
+#pragma mapbox: initialize highp vec4 fill_color
+#pragma mapbox: initialize highp vec4 halo_color
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float halo_width
+#pragma mapbox: initialize lowp float halo_blur
+vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
+camera_to_anchor_distance/u_camera_to_center_distance :
+u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`), symbolTextAndIcon: Mt(`#define SDF_PX 8.0
+#define SDF 1.0
+#define ICON 0.0
+uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;
+#pragma mapbox: define highp vec4 fill_color
+#pragma mapbox: define highp vec4 halo_color
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float halo_width
+#pragma mapbox: define lowp float halo_blur
+void main() {
+#pragma mapbox: initialize highp vec4 fill_color
+#pragma mapbox: initialize highp vec4 halo_color
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float halo_width
+#pragma mapbox: initialize lowp float halo_blur
+float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);
+#ifdef OVERDRAW_INSPECTOR
+gl_FragColor=vec4(1.0);
+#endif
+}`, `attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec4 v_data0;varying vec4 v_data1;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}
+#pragma mapbox: define highp vec4 fill_color
+#pragma mapbox: define highp vec4 halo_color
+#pragma mapbox: define lowp float opacity
+#pragma mapbox: define lowp float halo_width
+#pragma mapbox: define lowp float halo_blur
+void main() {
+#pragma mapbox: initialize highp vec4 fill_color
+#pragma mapbox: initialize highp vec4 halo_color
+#pragma mapbox: initialize lowp float opacity
+#pragma mapbox: initialize lowp float halo_width
+#pragma mapbox: initialize lowp float halo_blur
+vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
+camera_to_anchor_distance/u_camera_to_center_distance :
+u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`), terrain: Mt("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;varying vec2 v_texture_pos;varying float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture2D(u_texture,v_texture_pos);if (v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);gl_FragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {gl_FragColor=surface_color;}}", "attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform mat4 u_fog_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"), terrainDepth: Mt("varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}", "attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}"), terrainCoords: Mt("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}", "attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);}"), sky: Mt("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform float u_horizon;uniform float u_sky_horizon_blend;void main() {float y=gl_FragCoord.y;if (y > u_horizon) {float blend=y-u_horizon;if (blend < u_sky_horizon_blend) {gl_FragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {gl_FragColor=u_sky_color;}}}", "attribute vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}") };
+ function Mt(ue, w) {
+ let B = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, Q = w.match(/attribute ([\w]+) ([\w]+)/g), ee = ue.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), le = w.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), Oe = le ? le.concat(ee) : ee, Ze = {};
+ return { fragmentSource: ue = ue.replace(B, (st, Tt, Yt, Kt, xr) => (Ze[xr] = true, Tt === "define" ? `
+#ifndef HAS_UNIFORM_u_${xr}
+varying ${Yt} ${Kt} ${xr};
+#else
+uniform ${Yt} ${Kt} u_${xr};
+#endif
+` : `
+#ifdef HAS_UNIFORM_u_${xr}
+ ${Yt} ${Kt} ${xr} = u_${xr};
+#endif
+`)), vertexSource: w = w.replace(B, (st, Tt, Yt, Kt, xr) => {
+ let Ir = Kt === "float" ? "vec2" : "vec4", ve = xr.match(/color/) ? "color" : Ir;
+ return Ze[xr] ? Tt === "define" ? `
+#ifndef HAS_UNIFORM_u_${xr}
+uniform lowp float u_${xr}_t;
+attribute ${Yt} ${Ir} a_${xr};
+varying ${Yt} ${Kt} ${xr};
+#else
+uniform ${Yt} ${Kt} u_${xr};
+#endif
+` : ve === "vec4" ? `
+#ifndef HAS_UNIFORM_u_${xr}
+ ${xr} = a_${xr};
+#else
+ ${Yt} ${Kt} ${xr} = u_${xr};
+#endif
+` : `
+#ifndef HAS_UNIFORM_u_${xr}
+ ${xr} = unpack_mix_${ve}(a_${xr}, u_${xr}_t);
+#else
+ ${Yt} ${Kt} ${xr} = u_${xr};
+#endif
+` : Tt === "define" ? `
+#ifndef HAS_UNIFORM_u_${xr}
+uniform lowp float u_${xr}_t;
+attribute ${Yt} ${Ir} a_${xr};
+#else
+uniform ${Yt} ${Kt} u_${xr};
+#endif
+` : ve === "vec4" ? `
+#ifndef HAS_UNIFORM_u_${xr}
+ ${Yt} ${Kt} ${xr} = a_${xr};
+#else
+ ${Yt} ${Kt} ${xr} = u_${xr};
+#endif
+` : `
+#ifndef HAS_UNIFORM_u_${xr}
+ ${Yt} ${Kt} ${xr} = unpack_mix_${ve}(a_${xr}, u_${xr}_t);
+#else
+ ${Yt} ${Kt} ${xr} = u_${xr};
+#endif
+`;
+ }), staticAttributes: Q, staticUniforms: Oe };
+ }
+ class kr {
+ constructor() {
+ this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null;
+ }
+ bind(w, B, Q, ee, le, Oe, Ze, st, Tt) {
+ this.context = w;
+ let Yt = this.boundPaintVertexBuffers.length !== ee.length;
+ for (let Kt = 0; !Yt && Kt < ee.length; Kt++) this.boundPaintVertexBuffers[Kt] !== ee[Kt] && (Yt = true);
+ !this.vao || this.boundProgram !== B || this.boundLayoutVertexBuffer !== Q || Yt || this.boundIndexBuffer !== le || this.boundVertexOffset !== Oe || this.boundDynamicVertexBuffer !== Ze || this.boundDynamicVertexBuffer2 !== st || this.boundDynamicVertexBuffer3 !== Tt ? this.freshBind(B, Q, ee, le, Oe, Ze, st, Tt) : (w.bindVertexArray.set(this.vao), Ze && Ze.bind(), le && le.dynamicDraw && le.bind(), st && st.bind(), Tt && Tt.bind());
+ }
+ freshBind(w, B, Q, ee, le, Oe, Ze, st) {
+ let Tt = w.numAttributes, Yt = this.context, Kt = Yt.gl;
+ this.vao && this.destroy(), this.vao = Yt.createVertexArray(), Yt.bindVertexArray.set(this.vao), this.boundProgram = w, this.boundLayoutVertexBuffer = B, this.boundPaintVertexBuffers = Q, this.boundIndexBuffer = ee, this.boundVertexOffset = le, this.boundDynamicVertexBuffer = Oe, this.boundDynamicVertexBuffer2 = Ze, this.boundDynamicVertexBuffer3 = st, B.enableAttributes(Kt, w);
+ for (let xr of Q) xr.enableAttributes(Kt, w);
+ Oe && Oe.enableAttributes(Kt, w), Ze && Ze.enableAttributes(Kt, w), st && st.enableAttributes(Kt, w), B.bind(), B.setVertexAttribPointers(Kt, w, le);
+ for (let xr of Q) xr.bind(), xr.setVertexAttribPointers(Kt, w, le);
+ Oe && (Oe.bind(), Oe.setVertexAttribPointers(Kt, w, le)), ee && ee.bind(), Ze && (Ze.bind(), Ze.setVertexAttribPointers(Kt, w, le)), st && (st.bind(), st.setVertexAttribPointers(Kt, w, le)), Yt.currentNumAttributes = Tt;
+ }
+ destroy() {
+ this.vao && (this.context.deleteVertexArray(this.vao), this.vao = null);
+ }
+ }
+ let Jr = (ue, w, B, Q, ee) => ({ u_matrix: ue, u_texture: 0, u_ele_delta: w, u_fog_matrix: B, u_fog_color: Q ? Q.properties.get("fog-color") : a.aM.white, u_fog_ground_blend: Q ? Q.properties.get("fog-ground-blend") : 1, u_fog_ground_blend_opacity: Q ? Q.calculateFogBlendOpacity(ee) : 0, u_horizon_color: Q ? Q.properties.get("horizon-color") : a.aM.white, u_horizon_fog_blend: Q ? Q.properties.get("horizon-fog-blend") : 1 });
+ function vi(ue) {
+ let w = [];
+ for (let B = 0; B < ue.length; B++) {
+ if (ue[B] === null) continue;
+ let Q = ue[B].split(" ");
+ w.push(Q.pop());
+ }
+ return w;
+ }
+ class hn {
+ constructor(w, B, Q, ee, le, Oe) {
+ let Ze = w.gl;
+ this.program = Ze.createProgram();
+ let st = vi(B.staticAttributes), Tt = Q ? Q.getBinderAttributes() : [], Yt = st.concat(Tt), Kt = jn.prelude.staticUniforms ? vi(jn.prelude.staticUniforms) : [], xr = B.staticUniforms ? vi(B.staticUniforms) : [], Ir = Q ? Q.getBinderUniforms() : [], ve = Kt.concat(xr).concat(Ir), be = [];
+ for (let Ht of ve) be.indexOf(Ht) < 0 && be.push(Ht);
+ let Re = Q ? Q.defines() : [];
+ le && Re.push("#define OVERDRAW_INSPECTOR;"), Oe && Re.push("#define TERRAIN3D;");
+ let qe = Re.concat(jn.prelude.fragmentSource, B.fragmentSource).join(`
+`), et = Re.concat(jn.prelude.vertexSource, B.vertexSource).join(`
+`), Xe = Ze.createShader(Ze.FRAGMENT_SHADER);
+ if (Ze.isContextLost()) return void (this.failedToCreate = true);
+ if (Ze.shaderSource(Xe, qe), Ze.compileShader(Xe), !Ze.getShaderParameter(Xe, Ze.COMPILE_STATUS)) throw new Error(`Could not compile fragment shader: ${Ze.getShaderInfoLog(Xe)}`);
+ Ze.attachShader(this.program, Xe);
+ let it = Ze.createShader(Ze.VERTEX_SHADER);
+ if (Ze.isContextLost()) return void (this.failedToCreate = true);
+ if (Ze.shaderSource(it, et), Ze.compileShader(it), !Ze.getShaderParameter(it, Ze.COMPILE_STATUS)) throw new Error(`Could not compile vertex shader: ${Ze.getShaderInfoLog(it)}`);
+ Ze.attachShader(this.program, it), this.attributes = {};
+ let Ft = {};
+ this.numAttributes = Yt.length;
+ for (let Ht = 0; Ht < this.numAttributes; Ht++) Yt[Ht] && (Ze.bindAttribLocation(this.program, Ht, Yt[Ht]), this.attributes[Yt[Ht]] = Ht);
+ if (Ze.linkProgram(this.program), !Ze.getProgramParameter(this.program, Ze.LINK_STATUS)) throw new Error(`Program failed to link: ${Ze.getProgramInfoLog(this.program)}`);
+ Ze.deleteShader(it), Ze.deleteShader(Xe);
+ for (let Ht = 0; Ht < be.length; Ht++) {
+ let tr = be[Ht];
+ if (tr && !Ft[tr]) {
+ let dr = Ze.getUniformLocation(this.program, tr);
+ dr && (Ft[tr] = dr);
+ }
+ }
+ this.fixedUniforms = ee(w, Ft), this.terrainUniforms = ((Ht, tr) => ({ u_depth: new a.aH(Ht, tr.u_depth), u_terrain: new a.aH(Ht, tr.u_terrain), u_terrain_dim: new a.aI(Ht, tr.u_terrain_dim), u_terrain_matrix: new a.aJ(Ht, tr.u_terrain_matrix), u_terrain_unpack: new a.aK(Ht, tr.u_terrain_unpack), u_terrain_exaggeration: new a.aI(Ht, tr.u_terrain_exaggeration) }))(w, Ft), this.binderUniforms = Q ? Q.getUniforms(w, Ft) : [];
+ }
+ draw(w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, Ir, ve, be, Re, qe, et) {
+ let Xe = w.gl;
+ if (this.failedToCreate) return;
+ if (w.program.set(this.program), w.setDepthMode(Q), w.setStencilMode(ee), w.setColorMode(le), w.setCullFace(Oe), st) {
+ w.activeTexture.set(Xe.TEXTURE2), Xe.bindTexture(Xe.TEXTURE_2D, st.depthTexture), w.activeTexture.set(Xe.TEXTURE3), Xe.bindTexture(Xe.TEXTURE_2D, st.texture);
+ for (let Ft in this.terrainUniforms) this.terrainUniforms[Ft].set(st[Ft]);
+ }
+ for (let Ft in this.fixedUniforms) this.fixedUniforms[Ft].set(Ze[Ft]);
+ be && be.setUniforms(w, this.binderUniforms, Ir, { zoom: ve });
+ let it = 0;
+ switch (B) {
+ case Xe.LINES:
+ it = 2;
+ break;
+ case Xe.TRIANGLES:
+ it = 3;
+ break;
+ case Xe.LINE_STRIP:
+ it = 1;
+ }
+ for (let Ft of xr.get()) {
+ let Ht = Ft.vaos || (Ft.vaos = {});
+ (Ht[Tt] || (Ht[Tt] = new kr())).bind(w, this, Yt, be ? be.getPaintVertexBuffers() : [], Kt, Ft.vertexOffset, Re, qe, et), Xe.drawElements(B, Ft.primitiveLength * it, Xe.UNSIGNED_SHORT, Ft.primitiveOffset * it * 2);
+ }
+ }
+ }
+ function An(ue, w, B) {
+ let Q = 1 / In(B, 1, w.transform.tileZoom), ee = Math.pow(2, B.tileID.overscaledZ), le = B.tileSize * Math.pow(2, w.transform.tileZoom) / ee, Oe = le * (B.tileID.canonical.x + B.tileID.wrap * ee), Ze = le * B.tileID.canonical.y;
+ return { u_image: 0, u_texsize: B.imageAtlasTexture.size, u_scale: [Q, ue.fromScale, ue.toScale], u_fade: ue.t, u_pixel_coord_upper: [Oe >> 16, Ze >> 16], u_pixel_coord_lower: [65535 & Oe, 65535 & Ze] };
+ }
+ let Mn = (ue, w, B, Q) => {
+ let ee = w.style.light, le = ee.properties.get("position"), Oe = [le.x, le.y, le.z], Ze = function() {
+ var Tt = new a.A(9);
+ return a.A != Float32Array && (Tt[1] = 0, Tt[2] = 0, Tt[3] = 0, Tt[5] = 0, Tt[6] = 0, Tt[7] = 0), Tt[0] = 1, Tt[4] = 1, Tt[8] = 1, Tt;
+ }();
+ ee.properties.get("anchor") === "viewport" && function(Tt, Yt) {
+ var Kt = Math.sin(Yt), xr = Math.cos(Yt);
+ Tt[0] = xr, Tt[1] = Kt, Tt[2] = 0, Tt[3] = -Kt, Tt[4] = xr, Tt[5] = 0, Tt[6] = 0, Tt[7] = 0, Tt[8] = 1;
+ }(Ze, -w.transform.angle), function(Tt, Yt, Kt) {
+ var xr = Yt[0], Ir = Yt[1], ve = Yt[2];
+ Tt[0] = xr * Kt[0] + Ir * Kt[3] + ve * Kt[6], Tt[1] = xr * Kt[1] + Ir * Kt[4] + ve * Kt[7], Tt[2] = xr * Kt[2] + Ir * Kt[5] + ve * Kt[8];
+ }(Oe, Oe, Ze);
+ let st = ee.properties.get("color");
+ return { u_matrix: ue, u_lightpos: Oe, u_lightintensity: ee.properties.get("intensity"), u_lightcolor: [st.r, st.g, st.b], u_vertical_gradient: +B, u_opacity: Q };
+ }, Li = (ue, w, B, Q, ee, le, Oe) => a.e(Mn(ue, w, B, Q), An(le, w, Oe), { u_height_factor: -Math.pow(2, ee.overscaledZ) / Oe.tileSize / 8 }), _n = (ue) => ({ u_matrix: ue }), ya = (ue, w, B, Q) => a.e(_n(ue), An(B, w, Q)), $n = (ue, w) => ({ u_matrix: ue, u_world: w }), Ma = (ue, w, B, Q, ee) => a.e(ya(ue, w, B, Q), { u_world: ee }), _o = (ue, w, B, Q) => {
+ let ee = ue.transform, le, Oe;
+ if (Q.paint.get("circle-pitch-alignment") === "map") {
+ let Ze = In(B, 1, ee.zoom);
+ le = true, Oe = [Ze, Ze];
+ } else le = false, Oe = ee.pixelsToGLUnits;
+ return { u_camera_to_center_distance: ee.cameraToCenterDistance, u_scale_with_map: +(Q.paint.get("circle-pitch-scale") === "map"), u_matrix: ue.translatePosMatrix(w.posMatrix, B, Q.paint.get("circle-translate"), Q.paint.get("circle-translate-anchor")), u_pitch_with_map: +le, u_device_pixel_ratio: ue.pixelRatio, u_extrude_scale: Oe };
+ }, No = (ue, w, B) => ({ u_matrix: ue, u_inv_matrix: w, u_camera_to_center_distance: B.cameraToCenterDistance, u_viewport_size: [B.width, B.height] }), po = (ue, w, B = 1) => ({ u_matrix: ue, u_color: w, u_overlay: 0, u_overlay_scale: B }), Lo = (ue) => ({ u_matrix: ue }), ko = (ue, w, B, Q) => ({ u_matrix: ue, u_extrude_scale: In(w, 1, B), u_intensity: Q }), Ds = (ue, w, B, Q) => {
+ let ee = a.H();
+ a.aP(ee, 0, ue.width, ue.height, 0, 0, 1);
+ let le = ue.context.gl;
+ return { u_matrix: ee, u_world: [le.drawingBufferWidth, le.drawingBufferHeight], u_image: B, u_color_ramp: Q, u_opacity: w.paint.get("heatmap-opacity") };
+ };
+ function Fs(ue, w) {
+ let B = Math.pow(2, w.canonical.z), Q = w.canonical.y;
+ return [new a.Z(0, Q / B).toLngLat().lat, new a.Z(0, (Q + 1) / B).toLngLat().lat];
+ }
+ let ll = (ue, w, B, Q) => {
+ let ee = ue.transform;
+ return { u_matrix: As(ue, w, B, Q), u_ratio: 1 / In(w, 1, ee.zoom), u_device_pixel_ratio: ue.pixelRatio, u_units_to_pixels: [1 / ee.pixelsToGLUnits[0], 1 / ee.pixelsToGLUnits[1]] };
+ }, ul = (ue, w, B, Q, ee) => a.e(ll(ue, w, B, ee), { u_image: 0, u_image_height: Q }), zl = (ue, w, B, Q, ee) => {
+ let le = ue.transform, Oe = il(w, le);
+ return { u_matrix: As(ue, w, B, ee), u_texsize: w.imageAtlasTexture.size, u_ratio: 1 / In(w, 1, le.zoom), u_device_pixel_ratio: ue.pixelRatio, u_image: 0, u_scale: [Oe, Q.fromScale, Q.toScale], u_fade: Q.t, u_units_to_pixels: [1 / le.pixelsToGLUnits[0], 1 / le.pixelsToGLUnits[1]] };
+ }, us = (ue, w, B, Q, ee, le) => {
+ let Oe = ue.lineAtlas, Ze = il(w, ue.transform), st = B.layout.get("line-cap") === "round", Tt = Oe.getDash(Q.from, st), Yt = Oe.getDash(Q.to, st), Kt = Tt.width * ee.fromScale, xr = Yt.width * ee.toScale;
+ return a.e(ll(ue, w, B, le), { u_patternscale_a: [Ze / Kt, -Tt.height / 2], u_patternscale_b: [Ze / xr, -Yt.height / 2], u_sdfgamma: Oe.width / (256 * Math.min(Kt, xr) * ue.pixelRatio) / 2, u_image: 0, u_tex_y_a: Tt.y, u_tex_y_b: Yt.y, u_mix: ee.t });
+ };
+ function il(ue, w) {
+ return 1 / In(ue, 1, w.tileZoom);
+ }
+ function As(ue, w, B, Q) {
+ return ue.translatePosMatrix(Q ? Q.posMatrix : w.tileID.posMatrix, w, B.paint.get("line-translate"), B.paint.get("line-translate-anchor"));
+ }
+ let cl = (ue, w, B, Q, ee) => {
+ return { u_matrix: ue, u_tl_parent: w, u_scale_parent: B, u_buffer_scale: 1, u_fade_t: Q.mix, u_opacity: Q.opacity * ee.paint.get("raster-opacity"), u_image0: 0, u_image1: 1, u_brightness_low: ee.paint.get("raster-brightness-min"), u_brightness_high: ee.paint.get("raster-brightness-max"), u_saturation_factor: (Oe = ee.paint.get("raster-saturation"), Oe > 0 ? 1 - 1 / (1.001 - Oe) : -Oe), u_contrast_factor: (le = ee.paint.get("raster-contrast"), le > 0 ? 1 / (1 - le) : 1 + le), u_spin_weights: Ks(ee.paint.get("raster-hue-rotate")) };
+ var le, Oe;
+ };
+ function Ks(ue) {
+ ue *= Math.PI / 180;
+ let w = Math.sin(ue), B = Math.cos(ue);
+ return [(2 * B + 1) / 3, (-Math.sqrt(3) * w - B + 1) / 3, (Math.sqrt(3) * w - B + 1) / 3];
+ }
+ let zs = (ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, Ir) => {
+ let ve = Oe.transform;
+ return { u_is_size_zoom_constant: +(ue === "constant" || ue === "source"), u_is_size_feature_constant: +(ue === "constant" || ue === "camera"), u_size_t: w ? w.uSizeT : 0, u_size: w ? w.uSize : 0, u_camera_to_center_distance: ve.cameraToCenterDistance, u_pitch: ve.pitch / 360 * 2 * Math.PI, u_rotate_symbol: +B, u_aspect_ratio: ve.width / ve.height, u_fade_change: Oe.options.fadeDuration ? Oe.symbolFadeChange : 1, u_matrix: Ze, u_label_plane_matrix: st, u_coord_matrix: Tt, u_is_text: +Kt, u_pitch_with_map: +Q, u_is_along_line: ee, u_is_variable_anchor: le, u_texsize: xr, u_texture: 0, u_translation: Yt, u_pitched_scale: Ir };
+ }, Io = (ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, Ir, ve) => {
+ let be = Oe.transform;
+ return a.e(zs(ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, ve), { u_gamma_scale: Q ? Math.cos(be._pitch) * be.cameraToCenterDistance : 1, u_device_pixel_ratio: Oe.pixelRatio, u_is_halo: 1 });
+ }, ls = (ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, Ir) => a.e(Io(ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, true, Kt, true, Ir), { u_texsize_icon: xr, u_texture_icon: 1 }), Yl = (ue, w, B) => ({ u_matrix: ue, u_opacity: w, u_color: B }), Su = (ue, w, B, Q, ee, le) => a.e(function(Oe, Ze, st, Tt) {
+ let Yt = st.imageManager.getPattern(Oe.from.toString()), Kt = st.imageManager.getPattern(Oe.to.toString()), { width: xr, height: Ir } = st.imageManager.getPixelSize(), ve = Math.pow(2, Tt.tileID.overscaledZ), be = Tt.tileSize * Math.pow(2, st.transform.tileZoom) / ve, Re = be * (Tt.tileID.canonical.x + Tt.tileID.wrap * ve), qe = be * Tt.tileID.canonical.y;
+ return { u_image: 0, u_pattern_tl_a: Yt.tl, u_pattern_br_a: Yt.br, u_pattern_tl_b: Kt.tl, u_pattern_br_b: Kt.br, u_texsize: [xr, Ir], u_mix: Ze.t, u_pattern_size_a: Yt.displaySize, u_pattern_size_b: Kt.displaySize, u_scale_a: Ze.fromScale, u_scale_b: Ze.toScale, u_tile_units_to_pixels: 1 / In(Tt, 1, st.transform.tileZoom), u_pixel_coord_upper: [Re >> 16, qe >> 16], u_pixel_coord_lower: [65535 & Re, 65535 & qe] };
+ }(Q, le, B, ee), { u_matrix: ue, u_opacity: w }), nc = { fillExtrusion: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_lightpos: new a.aN(ue, w.u_lightpos), u_lightintensity: new a.aI(ue, w.u_lightintensity), u_lightcolor: new a.aN(ue, w.u_lightcolor), u_vertical_gradient: new a.aI(ue, w.u_vertical_gradient), u_opacity: new a.aI(ue, w.u_opacity) }), fillExtrusionPattern: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_lightpos: new a.aN(ue, w.u_lightpos), u_lightintensity: new a.aI(ue, w.u_lightintensity), u_lightcolor: new a.aN(ue, w.u_lightcolor), u_vertical_gradient: new a.aI(ue, w.u_vertical_gradient), u_height_factor: new a.aI(ue, w.u_height_factor), u_image: new a.aH(ue, w.u_image), u_texsize: new a.aO(ue, w.u_texsize), u_pixel_coord_upper: new a.aO(ue, w.u_pixel_coord_upper), u_pixel_coord_lower: new a.aO(ue, w.u_pixel_coord_lower), u_scale: new a.aN(ue, w.u_scale), u_fade: new a.aI(ue, w.u_fade), u_opacity: new a.aI(ue, w.u_opacity) }), fill: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix) }), fillPattern: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_image: new a.aH(ue, w.u_image), u_texsize: new a.aO(ue, w.u_texsize), u_pixel_coord_upper: new a.aO(ue, w.u_pixel_coord_upper), u_pixel_coord_lower: new a.aO(ue, w.u_pixel_coord_lower), u_scale: new a.aN(ue, w.u_scale), u_fade: new a.aI(ue, w.u_fade) }), fillOutline: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_world: new a.aO(ue, w.u_world) }), fillOutlinePattern: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_world: new a.aO(ue, w.u_world), u_image: new a.aH(ue, w.u_image), u_texsize: new a.aO(ue, w.u_texsize), u_pixel_coord_upper: new a.aO(ue, w.u_pixel_coord_upper), u_pixel_coord_lower: new a.aO(ue, w.u_pixel_coord_lower), u_scale: new a.aN(ue, w.u_scale), u_fade: new a.aI(ue, w.u_fade) }), circle: (ue, w) => ({ u_camera_to_center_distance: new a.aI(ue, w.u_camera_to_center_distance), u_scale_with_map: new a.aH(ue, w.u_scale_with_map), u_pitch_with_map: new a.aH(ue, w.u_pitch_with_map), u_extrude_scale: new a.aO(ue, w.u_extrude_scale), u_device_pixel_ratio: new a.aI(ue, w.u_device_pixel_ratio), u_matrix: new a.aJ(ue, w.u_matrix) }), collisionBox: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_pixel_extrude_scale: new a.aO(ue, w.u_pixel_extrude_scale) }), collisionCircle: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_inv_matrix: new a.aJ(ue, w.u_inv_matrix), u_camera_to_center_distance: new a.aI(ue, w.u_camera_to_center_distance), u_viewport_size: new a.aO(ue, w.u_viewport_size) }), debug: (ue, w) => ({ u_color: new a.aL(ue, w.u_color), u_matrix: new a.aJ(ue, w.u_matrix), u_overlay: new a.aH(ue, w.u_overlay), u_overlay_scale: new a.aI(ue, w.u_overlay_scale) }), clippingMask: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix) }), heatmap: (ue, w) => ({ u_extrude_scale: new a.aI(ue, w.u_extrude_scale), u_intensity: new a.aI(ue, w.u_intensity), u_matrix: new a.aJ(ue, w.u_matrix) }), heatmapTexture: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_world: new a.aO(ue, w.u_world), u_image: new a.aH(ue, w.u_image), u_color_ramp: new a.aH(ue, w.u_color_ramp), u_opacity: new a.aI(ue, w.u_opacity) }), hillshade: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_image: new a.aH(ue, w.u_image), u_latrange: new a.aO(ue, w.u_latrange), u_light: new a.aO(ue, w.u_light), u_shadow: new a.aL(ue, w.u_shadow), u_highlight: new a.aL(ue, w.u_highlight), u_accent: new a.aL(ue, w.u_accent) }), hillshadePrepare: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_image: new a.aH(ue, w.u_image), u_dimension: new a.aO(ue, w.u_dimension), u_zoom: new a.aI(ue, w.u_zoom), u_unpack: new a.aK(ue, w.u_unpack) }), line: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_ratio: new a.aI(ue, w.u_ratio), u_device_pixel_ratio: new a.aI(ue, w.u_device_pixel_ratio), u_units_to_pixels: new a.aO(ue, w.u_units_to_pixels) }), lineGradient: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_ratio: new a.aI(ue, w.u_ratio), u_device_pixel_ratio: new a.aI(ue, w.u_device_pixel_ratio), u_units_to_pixels: new a.aO(ue, w.u_units_to_pixels), u_image: new a.aH(ue, w.u_image), u_image_height: new a.aI(ue, w.u_image_height) }), linePattern: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_texsize: new a.aO(ue, w.u_texsize), u_ratio: new a.aI(ue, w.u_ratio), u_device_pixel_ratio: new a.aI(ue, w.u_device_pixel_ratio), u_image: new a.aH(ue, w.u_image), u_units_to_pixels: new a.aO(ue, w.u_units_to_pixels), u_scale: new a.aN(ue, w.u_scale), u_fade: new a.aI(ue, w.u_fade) }), lineSDF: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_ratio: new a.aI(ue, w.u_ratio), u_device_pixel_ratio: new a.aI(ue, w.u_device_pixel_ratio), u_units_to_pixels: new a.aO(ue, w.u_units_to_pixels), u_patternscale_a: new a.aO(ue, w.u_patternscale_a), u_patternscale_b: new a.aO(ue, w.u_patternscale_b), u_sdfgamma: new a.aI(ue, w.u_sdfgamma), u_image: new a.aH(ue, w.u_image), u_tex_y_a: new a.aI(ue, w.u_tex_y_a), u_tex_y_b: new a.aI(ue, w.u_tex_y_b), u_mix: new a.aI(ue, w.u_mix) }), raster: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_tl_parent: new a.aO(ue, w.u_tl_parent), u_scale_parent: new a.aI(ue, w.u_scale_parent), u_buffer_scale: new a.aI(ue, w.u_buffer_scale), u_fade_t: new a.aI(ue, w.u_fade_t), u_opacity: new a.aI(ue, w.u_opacity), u_image0: new a.aH(ue, w.u_image0), u_image1: new a.aH(ue, w.u_image1), u_brightness_low: new a.aI(ue, w.u_brightness_low), u_brightness_high: new a.aI(ue, w.u_brightness_high), u_saturation_factor: new a.aI(ue, w.u_saturation_factor), u_contrast_factor: new a.aI(ue, w.u_contrast_factor), u_spin_weights: new a.aN(ue, w.u_spin_weights) }), symbolIcon: (ue, w) => ({ u_is_size_zoom_constant: new a.aH(ue, w.u_is_size_zoom_constant), u_is_size_feature_constant: new a.aH(ue, w.u_is_size_feature_constant), u_size_t: new a.aI(ue, w.u_size_t), u_size: new a.aI(ue, w.u_size), u_camera_to_center_distance: new a.aI(ue, w.u_camera_to_center_distance), u_pitch: new a.aI(ue, w.u_pitch), u_rotate_symbol: new a.aH(ue, w.u_rotate_symbol), u_aspect_ratio: new a.aI(ue, w.u_aspect_ratio), u_fade_change: new a.aI(ue, w.u_fade_change), u_matrix: new a.aJ(ue, w.u_matrix), u_label_plane_matrix: new a.aJ(ue, w.u_label_plane_matrix), u_coord_matrix: new a.aJ(ue, w.u_coord_matrix), u_is_text: new a.aH(ue, w.u_is_text), u_pitch_with_map: new a.aH(ue, w.u_pitch_with_map), u_is_along_line: new a.aH(ue, w.u_is_along_line), u_is_variable_anchor: new a.aH(ue, w.u_is_variable_anchor), u_texsize: new a.aO(ue, w.u_texsize), u_texture: new a.aH(ue, w.u_texture), u_translation: new a.aO(ue, w.u_translation), u_pitched_scale: new a.aI(ue, w.u_pitched_scale) }), symbolSDF: (ue, w) => ({ u_is_size_zoom_constant: new a.aH(ue, w.u_is_size_zoom_constant), u_is_size_feature_constant: new a.aH(ue, w.u_is_size_feature_constant), u_size_t: new a.aI(ue, w.u_size_t), u_size: new a.aI(ue, w.u_size), u_camera_to_center_distance: new a.aI(ue, w.u_camera_to_center_distance), u_pitch: new a.aI(ue, w.u_pitch), u_rotate_symbol: new a.aH(ue, w.u_rotate_symbol), u_aspect_ratio: new a.aI(ue, w.u_aspect_ratio), u_fade_change: new a.aI(ue, w.u_fade_change), u_matrix: new a.aJ(ue, w.u_matrix), u_label_plane_matrix: new a.aJ(ue, w.u_label_plane_matrix), u_coord_matrix: new a.aJ(ue, w.u_coord_matrix), u_is_text: new a.aH(ue, w.u_is_text), u_pitch_with_map: new a.aH(ue, w.u_pitch_with_map), u_is_along_line: new a.aH(ue, w.u_is_along_line), u_is_variable_anchor: new a.aH(ue, w.u_is_variable_anchor), u_texsize: new a.aO(ue, w.u_texsize), u_texture: new a.aH(ue, w.u_texture), u_gamma_scale: new a.aI(ue, w.u_gamma_scale), u_device_pixel_ratio: new a.aI(ue, w.u_device_pixel_ratio), u_is_halo: new a.aH(ue, w.u_is_halo), u_translation: new a.aO(ue, w.u_translation), u_pitched_scale: new a.aI(ue, w.u_pitched_scale) }), symbolTextAndIcon: (ue, w) => ({ u_is_size_zoom_constant: new a.aH(ue, w.u_is_size_zoom_constant), u_is_size_feature_constant: new a.aH(ue, w.u_is_size_feature_constant), u_size_t: new a.aI(ue, w.u_size_t), u_size: new a.aI(ue, w.u_size), u_camera_to_center_distance: new a.aI(ue, w.u_camera_to_center_distance), u_pitch: new a.aI(ue, w.u_pitch), u_rotate_symbol: new a.aH(ue, w.u_rotate_symbol), u_aspect_ratio: new a.aI(ue, w.u_aspect_ratio), u_fade_change: new a.aI(ue, w.u_fade_change), u_matrix: new a.aJ(ue, w.u_matrix), u_label_plane_matrix: new a.aJ(ue, w.u_label_plane_matrix), u_coord_matrix: new a.aJ(ue, w.u_coord_matrix), u_is_text: new a.aH(ue, w.u_is_text), u_pitch_with_map: new a.aH(ue, w.u_pitch_with_map), u_is_along_line: new a.aH(ue, w.u_is_along_line), u_is_variable_anchor: new a.aH(ue, w.u_is_variable_anchor), u_texsize: new a.aO(ue, w.u_texsize), u_texsize_icon: new a.aO(ue, w.u_texsize_icon), u_texture: new a.aH(ue, w.u_texture), u_texture_icon: new a.aH(ue, w.u_texture_icon), u_gamma_scale: new a.aI(ue, w.u_gamma_scale), u_device_pixel_ratio: new a.aI(ue, w.u_device_pixel_ratio), u_is_halo: new a.aH(ue, w.u_is_halo), u_translation: new a.aO(ue, w.u_translation), u_pitched_scale: new a.aI(ue, w.u_pitched_scale) }), background: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_opacity: new a.aI(ue, w.u_opacity), u_color: new a.aL(ue, w.u_color) }), backgroundPattern: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_opacity: new a.aI(ue, w.u_opacity), u_image: new a.aH(ue, w.u_image), u_pattern_tl_a: new a.aO(ue, w.u_pattern_tl_a), u_pattern_br_a: new a.aO(ue, w.u_pattern_br_a), u_pattern_tl_b: new a.aO(ue, w.u_pattern_tl_b), u_pattern_br_b: new a.aO(ue, w.u_pattern_br_b), u_texsize: new a.aO(ue, w.u_texsize), u_mix: new a.aI(ue, w.u_mix), u_pattern_size_a: new a.aO(ue, w.u_pattern_size_a), u_pattern_size_b: new a.aO(ue, w.u_pattern_size_b), u_scale_a: new a.aI(ue, w.u_scale_a), u_scale_b: new a.aI(ue, w.u_scale_b), u_pixel_coord_upper: new a.aO(ue, w.u_pixel_coord_upper), u_pixel_coord_lower: new a.aO(ue, w.u_pixel_coord_lower), u_tile_units_to_pixels: new a.aI(ue, w.u_tile_units_to_pixels) }), terrain: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_texture: new a.aH(ue, w.u_texture), u_ele_delta: new a.aI(ue, w.u_ele_delta), u_fog_matrix: new a.aJ(ue, w.u_fog_matrix), u_fog_color: new a.aL(ue, w.u_fog_color), u_fog_ground_blend: new a.aI(ue, w.u_fog_ground_blend), u_fog_ground_blend_opacity: new a.aI(ue, w.u_fog_ground_blend_opacity), u_horizon_color: new a.aL(ue, w.u_horizon_color), u_horizon_fog_blend: new a.aI(ue, w.u_horizon_fog_blend) }), terrainDepth: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_ele_delta: new a.aI(ue, w.u_ele_delta) }), terrainCoords: (ue, w) => ({ u_matrix: new a.aJ(ue, w.u_matrix), u_texture: new a.aH(ue, w.u_texture), u_terrain_coords_id: new a.aI(ue, w.u_terrain_coords_id), u_ele_delta: new a.aI(ue, w.u_ele_delta) }), sky: (ue, w) => ({ u_sky_color: new a.aL(ue, w.u_sky_color), u_horizon_color: new a.aL(ue, w.u_horizon_color), u_horizon: new a.aI(ue, w.u_horizon), u_sky_horizon_blend: new a.aI(ue, w.u_sky_horizon_blend) }) };
+ class bs {
+ constructor(w, B, Q) {
+ this.context = w;
+ let ee = w.gl;
+ this.buffer = ee.createBuffer(), this.dynamicDraw = !!Q, this.context.unbindVAO(), w.bindElementBuffer.set(this.buffer), ee.bufferData(ee.ELEMENT_ARRAY_BUFFER, B.arrayBuffer, this.dynamicDraw ? ee.DYNAMIC_DRAW : ee.STATIC_DRAW), this.dynamicDraw || delete B.arrayBuffer;
+ }
+ bind() {
+ this.context.bindElementBuffer.set(this.buffer);
+ }
+ updateData(w) {
+ let B = this.context.gl;
+ if (!this.dynamicDraw) throw new Error("Attempted to update data while not in dynamic mode.");
+ this.context.unbindVAO(), this.bind(), B.bufferSubData(B.ELEMENT_ARRAY_BUFFER, 0, w.arrayBuffer);
+ }
+ destroy() {
+ this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer);
+ }
+ }
+ let Rn = { Int8: "BYTE", Uint8: "UNSIGNED_BYTE", Int16: "SHORT", Uint16: "UNSIGNED_SHORT", Int32: "INT", Uint32: "UNSIGNED_INT", Float32: "FLOAT" };
+ class _a {
+ constructor(w, B, Q, ee) {
+ this.length = B.length, this.attributes = Q, this.itemSize = B.bytesPerElement, this.dynamicDraw = ee, this.context = w;
+ let le = w.gl;
+ this.buffer = le.createBuffer(), w.bindVertexBuffer.set(this.buffer), le.bufferData(le.ARRAY_BUFFER, B.arrayBuffer, this.dynamicDraw ? le.DYNAMIC_DRAW : le.STATIC_DRAW), this.dynamicDraw || delete B.arrayBuffer;
+ }
+ bind() {
+ this.context.bindVertexBuffer.set(this.buffer);
+ }
+ updateData(w) {
+ if (w.length !== this.length) throw new Error(`Length of new data is ${w.length}, which doesn't match current length of ${this.length}`);
+ let B = this.context.gl;
+ this.bind(), B.bufferSubData(B.ARRAY_BUFFER, 0, w.arrayBuffer);
+ }
+ enableAttributes(w, B) {
+ for (let Q = 0; Q < this.attributes.length; Q++) {
+ let ee = B.attributes[this.attributes[Q].name];
+ ee !== void 0 && w.enableVertexAttribArray(ee);
+ }
+ }
+ setVertexAttribPointers(w, B, Q) {
+ for (let ee = 0; ee < this.attributes.length; ee++) {
+ let le = this.attributes[ee], Oe = B.attributes[le.name];
+ Oe !== void 0 && w.vertexAttribPointer(Oe, le.components, w[Rn[le.type]], false, this.itemSize, le.offset + this.itemSize * (Q || 0));
+ }
+ }
+ destroy() {
+ this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer);
+ }
+ }
+ let Vu = /* @__PURE__ */ new WeakMap();
+ function Ol(ue) {
+ var w;
+ if (Vu.has(ue)) return Vu.get(ue);
+ {
+ let B = (w = ue.getParameter(ue.VERSION)) === null || w === void 0 ? void 0 : w.startsWith("WebGL 2.0");
+ return Vu.set(ue, B), B;
+ }
+ }
+ class xo {
+ constructor(w) {
+ this.gl = w.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = false;
+ }
+ get() {
+ return this.current;
+ }
+ set(w) {
+ }
+ getDefault() {
+ return this.default;
+ }
+ setDefault() {
+ this.set(this.default);
+ }
+ }
+ class Kl extends xo {
+ getDefault() {
+ return a.aM.transparent;
+ }
+ set(w) {
+ let B = this.current;
+ (w.r !== B.r || w.g !== B.g || w.b !== B.b || w.a !== B.a || this.dirty) && (this.gl.clearColor(w.r, w.g, w.b, w.a), this.current = w, this.dirty = false);
+ }
+ }
+ class Ns extends xo {
+ getDefault() {
+ return 1;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.clearDepth(w), this.current = w, this.dirty = false);
+ }
+ }
+ class Hl extends xo {
+ getDefault() {
+ return 0;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.clearStencil(w), this.current = w, this.dirty = false);
+ }
+ }
+ class ac extends xo {
+ getDefault() {
+ return [true, true, true, true];
+ }
+ set(w) {
+ let B = this.current;
+ (w[0] !== B[0] || w[1] !== B[1] || w[2] !== B[2] || w[3] !== B[3] || this.dirty) && (this.gl.colorMask(w[0], w[1], w[2], w[3]), this.current = w, this.dirty = false);
+ }
+ }
+ class aa extends xo {
+ getDefault() {
+ return true;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.depthMask(w), this.current = w, this.dirty = false);
+ }
+ }
+ class Oo extends xo {
+ getDefault() {
+ return 255;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.stencilMask(w), this.current = w, this.dirty = false);
+ }
+ }
+ class qo extends xo {
+ getDefault() {
+ return { func: this.gl.ALWAYS, ref: 0, mask: 255 };
+ }
+ set(w) {
+ let B = this.current;
+ (w.func !== B.func || w.ref !== B.ref || w.mask !== B.mask || this.dirty) && (this.gl.stencilFunc(w.func, w.ref, w.mask), this.current = w, this.dirty = false);
+ }
+ }
+ class ql extends xo {
+ getDefault() {
+ let w = this.gl;
+ return [w.KEEP, w.KEEP, w.KEEP];
+ }
+ set(w) {
+ let B = this.current;
+ (w[0] !== B[0] || w[1] !== B[1] || w[2] !== B[2] || this.dirty) && (this.gl.stencilOp(w[0], w[1], w[2]), this.current = w, this.dirty = false);
+ }
+ }
+ class Pc extends xo {
+ getDefault() {
+ return false;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ w ? B.enable(B.STENCIL_TEST) : B.disable(B.STENCIL_TEST), this.current = w, this.dirty = false;
+ }
+ }
+ class Do extends xo {
+ getDefault() {
+ return [0, 1];
+ }
+ set(w) {
+ let B = this.current;
+ (w[0] !== B[0] || w[1] !== B[1] || this.dirty) && (this.gl.depthRange(w[0], w[1]), this.current = w, this.dirty = false);
+ }
+ }
+ class rf extends xo {
+ getDefault() {
+ return false;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ w ? B.enable(B.DEPTH_TEST) : B.disable(B.DEPTH_TEST), this.current = w, this.dirty = false;
+ }
+ }
+ class Vf extends xo {
+ getDefault() {
+ return this.gl.LESS;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.depthFunc(w), this.current = w, this.dirty = false);
+ }
+ }
+ class pl extends xo {
+ getDefault() {
+ return false;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ w ? B.enable(B.BLEND) : B.disable(B.BLEND), this.current = w, this.dirty = false;
+ }
+ }
+ class Zc extends xo {
+ getDefault() {
+ let w = this.gl;
+ return [w.ONE, w.ZERO];
+ }
+ set(w) {
+ let B = this.current;
+ (w[0] !== B[0] || w[1] !== B[1] || this.dirty) && (this.gl.blendFunc(w[0], w[1]), this.current = w, this.dirty = false);
+ }
+ }
+ class Jl extends xo {
+ getDefault() {
+ return a.aM.transparent;
+ }
+ set(w) {
+ let B = this.current;
+ (w.r !== B.r || w.g !== B.g || w.b !== B.b || w.a !== B.a || this.dirty) && (this.gl.blendColor(w.r, w.g, w.b, w.a), this.current = w, this.dirty = false);
+ }
+ }
+ class Os extends xo {
+ getDefault() {
+ return this.gl.FUNC_ADD;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.blendEquation(w), this.current = w, this.dirty = false);
+ }
+ }
+ class yu extends xo {
+ getDefault() {
+ return false;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ w ? B.enable(B.CULL_FACE) : B.disable(B.CULL_FACE), this.current = w, this.dirty = false;
+ }
+ }
+ class oc extends xo {
+ getDefault() {
+ return this.gl.BACK;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.cullFace(w), this.current = w, this.dirty = false);
+ }
+ }
+ class Cf extends xo {
+ getDefault() {
+ return this.gl.CCW;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.frontFace(w), this.current = w, this.dirty = false);
+ }
+ }
+ class sc extends xo {
+ getDefault() {
+ return null;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.useProgram(w), this.current = w, this.dirty = false);
+ }
+ }
+ class jh extends xo {
+ getDefault() {
+ return this.gl.TEXTURE0;
+ }
+ set(w) {
+ (w !== this.current || this.dirty) && (this.gl.activeTexture(w), this.current = w, this.dirty = false);
+ }
+ }
+ class Lf extends xo {
+ getDefault() {
+ let w = this.gl;
+ return [0, 0, w.drawingBufferWidth, w.drawingBufferHeight];
+ }
+ set(w) {
+ let B = this.current;
+ (w[0] !== B[0] || w[1] !== B[1] || w[2] !== B[2] || w[3] !== B[3] || this.dirty) && (this.gl.viewport(w[0], w[1], w[2], w[3]), this.current = w, this.dirty = false);
+ }
+ }
+ class cs extends xo {
+ getDefault() {
+ return null;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ B.bindFramebuffer(B.FRAMEBUFFER, w), this.current = w, this.dirty = false;
+ }
+ }
+ class nf extends xo {
+ getDefault() {
+ return null;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ B.bindRenderbuffer(B.RENDERBUFFER, w), this.current = w, this.dirty = false;
+ }
+ }
+ class Gf extends xo {
+ getDefault() {
+ return null;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ B.bindTexture(B.TEXTURE_2D, w), this.current = w, this.dirty = false;
+ }
+ }
+ class $l extends xo {
+ getDefault() {
+ return null;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ B.bindBuffer(B.ARRAY_BUFFER, w), this.current = w, this.dirty = false;
+ }
+ }
+ class fl extends xo {
+ getDefault() {
+ return null;
+ }
+ set(w) {
+ let B = this.gl;
+ B.bindBuffer(B.ELEMENT_ARRAY_BUFFER, w), this.current = w, this.dirty = false;
+ }
+ }
+ class lc extends xo {
+ getDefault() {
+ return null;
+ }
+ set(w) {
+ var B;
+ if (w === this.current && !this.dirty) return;
+ let Q = this.gl;
+ Ol(Q) ? Q.bindVertexArray(w) : (B = Q.getExtension("OES_vertex_array_object")) === null || B === void 0 || B.bindVertexArrayOES(w), this.current = w, this.dirty = false;
+ }
+ }
+ class Fu extends xo {
+ getDefault() {
+ return 4;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ B.pixelStorei(B.UNPACK_ALIGNMENT, w), this.current = w, this.dirty = false;
+ }
+ }
+ class Es extends xo {
+ getDefault() {
+ return false;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ B.pixelStorei(B.UNPACK_PREMULTIPLY_ALPHA_WEBGL, w), this.current = w, this.dirty = false;
+ }
+ }
+ class Hs extends xo {
+ getDefault() {
+ return false;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ let B = this.gl;
+ B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL, w), this.current = w, this.dirty = false;
+ }
+ }
+ class Go extends xo {
+ constructor(w, B) {
+ super(w), this.context = w, this.parent = B;
+ }
+ getDefault() {
+ return null;
+ }
+ }
+ class ps extends Go {
+ setDirty() {
+ this.dirty = true;
+ }
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ this.context.bindFramebuffer.set(this.parent);
+ let B = this.gl;
+ B.framebufferTexture2D(B.FRAMEBUFFER, B.COLOR_ATTACHMENT0, B.TEXTURE_2D, w, 0), this.current = w, this.dirty = false;
+ }
+ }
+ class uc extends Go {
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ this.context.bindFramebuffer.set(this.parent);
+ let B = this.gl;
+ B.framebufferRenderbuffer(B.FRAMEBUFFER, B.DEPTH_ATTACHMENT, B.RENDERBUFFER, w), this.current = w, this.dirty = false;
+ }
+ }
+ class xl extends Go {
+ set(w) {
+ if (w === this.current && !this.dirty) return;
+ this.context.bindFramebuffer.set(this.parent);
+ let B = this.gl;
+ B.framebufferRenderbuffer(B.FRAMEBUFFER, B.DEPTH_STENCIL_ATTACHMENT, B.RENDERBUFFER, w), this.current = w, this.dirty = false;
+ }
+ }
+ class Gu {
+ constructor(w, B, Q, ee, le) {
+ this.context = w, this.width = B, this.height = Q;
+ let Oe = w.gl, Ze = this.framebuffer = Oe.createFramebuffer();
+ if (this.colorAttachment = new ps(w, Ze), ee) this.depthAttachment = le ? new xl(w, Ze) : new uc(w, Ze);
+ else if (le) throw new Error("Stencil cannot be set without depth");
+ if (Oe.checkFramebufferStatus(Oe.FRAMEBUFFER) !== Oe.FRAMEBUFFER_COMPLETE) throw new Error("Framebuffer is not complete");
+ }
+ destroy() {
+ let w = this.context.gl, B = this.colorAttachment.get();
+ if (B && w.deleteTexture(B), this.depthAttachment) {
+ let Q = this.depthAttachment.get();
+ Q && w.deleteRenderbuffer(Q);
+ }
+ w.deleteFramebuffer(this.framebuffer);
+ }
+ }
+ class qs {
+ constructor(w, B, Q) {
+ this.blendFunction = w, this.blendColor = B, this.mask = Q;
+ }
+ }
+ qs.Replace = [1, 0], qs.disabled = new qs(qs.Replace, a.aM.transparent, [false, false, false, false]), qs.unblended = new qs(qs.Replace, a.aM.transparent, [true, true, true, true]), qs.alphaBlended = new qs([1, 771], a.aM.transparent, [true, true, true, true]);
+ class od {
+ constructor(w) {
+ var B, Q;
+ if (this.gl = w, this.clearColor = new Kl(this), this.clearDepth = new Ns(this), this.clearStencil = new Hl(this), this.colorMask = new ac(this), this.depthMask = new aa(this), this.stencilMask = new Oo(this), this.stencilFunc = new qo(this), this.stencilOp = new ql(this), this.stencilTest = new Pc(this), this.depthRange = new Do(this), this.depthTest = new rf(this), this.depthFunc = new Vf(this), this.blend = new pl(this), this.blendFunc = new Zc(this), this.blendColor = new Jl(this), this.blendEquation = new Os(this), this.cullFace = new yu(this), this.cullFaceSide = new oc(this), this.frontFace = new Cf(this), this.program = new sc(this), this.activeTexture = new jh(this), this.viewport = new Lf(this), this.bindFramebuffer = new cs(this), this.bindRenderbuffer = new nf(this), this.bindTexture = new Gf(this), this.bindVertexBuffer = new $l(this), this.bindElementBuffer = new fl(this), this.bindVertexArray = new lc(this), this.pixelStoreUnpack = new Fu(this), this.pixelStoreUnpackPremultiplyAlpha = new Es(this), this.pixelStoreUnpackFlipY = new Hs(this), this.extTextureFilterAnisotropic = w.getExtension("EXT_texture_filter_anisotropic") || w.getExtension("MOZ_EXT_texture_filter_anisotropic") || w.getExtension("WEBKIT_EXT_texture_filter_anisotropic"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = w.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.maxTextureSize = w.getParameter(w.MAX_TEXTURE_SIZE), Ol(w)) {
+ this.HALF_FLOAT = w.HALF_FLOAT;
+ let ee = w.getExtension("EXT_color_buffer_half_float");
+ this.RGBA16F = (B = w.RGBA16F) !== null && B !== void 0 ? B : ee == null ? void 0 : ee.RGBA16F_EXT, this.RGB16F = (Q = w.RGB16F) !== null && Q !== void 0 ? Q : ee == null ? void 0 : ee.RGB16F_EXT, w.getExtension("EXT_color_buffer_float");
+ } else {
+ w.getExtension("EXT_color_buffer_half_float"), w.getExtension("OES_texture_half_float_linear");
+ let ee = w.getExtension("OES_texture_half_float");
+ this.HALF_FLOAT = ee == null ? void 0 : ee.HALF_FLOAT_OES;
+ }
+ }
+ setDefault() {
+ this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault();
+ }
+ setDirty() {
+ this.clearColor.dirty = true, this.clearDepth.dirty = true, this.clearStencil.dirty = true, this.colorMask.dirty = true, this.depthMask.dirty = true, this.stencilMask.dirty = true, this.stencilFunc.dirty = true, this.stencilOp.dirty = true, this.stencilTest.dirty = true, this.depthRange.dirty = true, this.depthTest.dirty = true, this.depthFunc.dirty = true, this.blend.dirty = true, this.blendFunc.dirty = true, this.blendColor.dirty = true, this.blendEquation.dirty = true, this.cullFace.dirty = true, this.cullFaceSide.dirty = true, this.frontFace.dirty = true, this.program.dirty = true, this.activeTexture.dirty = true, this.viewport.dirty = true, this.bindFramebuffer.dirty = true, this.bindRenderbuffer.dirty = true, this.bindTexture.dirty = true, this.bindVertexBuffer.dirty = true, this.bindElementBuffer.dirty = true, this.bindVertexArray.dirty = true, this.pixelStoreUnpack.dirty = true, this.pixelStoreUnpackPremultiplyAlpha.dirty = true, this.pixelStoreUnpackFlipY.dirty = true;
+ }
+ createIndexBuffer(w, B) {
+ return new bs(this, w, B);
+ }
+ createVertexBuffer(w, B, Q) {
+ return new _a(this, w, B, Q);
+ }
+ createRenderbuffer(w, B, Q) {
+ let ee = this.gl, le = ee.createRenderbuffer();
+ return this.bindRenderbuffer.set(le), ee.renderbufferStorage(ee.RENDERBUFFER, w, B, Q), this.bindRenderbuffer.set(null), le;
+ }
+ createFramebuffer(w, B, Q, ee) {
+ return new Gu(this, w, B, Q, ee);
+ }
+ clear({ color: w, depth: B, stencil: Q }) {
+ let ee = this.gl, le = 0;
+ w && (le |= ee.COLOR_BUFFER_BIT, this.clearColor.set(w), this.colorMask.set([true, true, true, true])), B !== void 0 && (le |= ee.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(B), this.depthMask.set(true)), Q !== void 0 && (le |= ee.STENCIL_BUFFER_BIT, this.clearStencil.set(Q), this.stencilMask.set(255)), ee.clear(le);
+ }
+ setCullFace(w) {
+ w.enable === false ? this.cullFace.set(false) : (this.cullFace.set(true), this.cullFaceSide.set(w.mode), this.frontFace.set(w.frontFace));
+ }
+ setDepthMode(w) {
+ w.func !== this.gl.ALWAYS || w.mask ? (this.depthTest.set(true), this.depthFunc.set(w.func), this.depthMask.set(w.mask), this.depthRange.set(w.range)) : this.depthTest.set(false);
+ }
+ setStencilMode(w) {
+ w.test.func !== this.gl.ALWAYS || w.mask ? (this.stencilTest.set(true), this.stencilMask.set(w.mask), this.stencilOp.set([w.fail, w.depthFail, w.pass]), this.stencilFunc.set({ func: w.test.func, ref: w.ref, mask: w.test.mask })) : this.stencilTest.set(false);
+ }
+ setColorMode(w) {
+ a.aE(w.blendFunction, qs.Replace) ? this.blend.set(false) : (this.blend.set(true), this.blendFunc.set(w.blendFunction), this.blendColor.set(w.blendColor)), this.colorMask.set(w.mask);
+ }
+ createVertexArray() {
+ var w;
+ return Ol(this.gl) ? this.gl.createVertexArray() : (w = this.gl.getExtension("OES_vertex_array_object")) === null || w === void 0 ? void 0 : w.createVertexArrayOES();
+ }
+ deleteVertexArray(w) {
+ var B;
+ return Ol(this.gl) ? this.gl.deleteVertexArray(w) : (B = this.gl.getExtension("OES_vertex_array_object")) === null || B === void 0 ? void 0 : B.deleteVertexArrayOES(w);
+ }
+ unbindVAO() {
+ this.bindVertexArray.set(null);
+ }
+ }
+ class Po {
+ constructor(w, B, Q) {
+ this.func = w, this.mask = B, this.range = Q;
+ }
+ }
+ Po.ReadOnly = false, Po.ReadWrite = true, Po.disabled = new Po(519, Po.ReadOnly, [0, 1]);
+ let sd = 7680;
+ class Ko {
+ constructor(w, B, Q, ee, le, Oe) {
+ this.test = w, this.ref = B, this.mask = Q, this.fail = ee, this.depthFail = le, this.pass = Oe;
+ }
+ }
+ Ko.disabled = new Ko({ func: 519, mask: 0 }, 0, 0, sd, sd, sd);
+ class Pa {
+ constructor(w, B, Q) {
+ this.enable = w, this.mode = B, this.frontFace = Q;
+ }
+ }
+ let af;
+ function Hu(ue, w, B, Q, ee) {
+ let le = ue.context, Oe = le.gl, Ze = ue.useProgram("collisionBox"), st = [], Tt = 0, Yt = 0;
+ for (let qe = 0; qe < Q.length; qe++) {
+ let et = Q[qe], Xe = w.getTile(et).getBucket(B);
+ if (!Xe) continue;
+ let it = ee ? Xe.textCollisionBox : Xe.iconCollisionBox, Ft = Xe.collisionCircleArray;
+ if (Ft.length > 0) {
+ let Ht = a.H();
+ a.aQ(Ht, Xe.placementInvProjMatrix, ue.transform.glCoordMatrix), a.aQ(Ht, Ht, Xe.placementViewportMatrix), st.push({ circleArray: Ft, circleOffset: Yt, transform: et.posMatrix, invTransform: Ht, coord: et }), Tt += Ft.length / 4, Yt = Tt;
+ }
+ it && Ze.draw(le, Oe.LINES, Po.disabled, Ko.disabled, ue.colorModeForRenderPass(), Pa.disabled, { u_matrix: et.posMatrix, u_pixel_extrude_scale: [1 / (Kt = ue.transform).width, 1 / Kt.height] }, ue.style.map.terrain && ue.style.map.terrain.getTerrainData(et), B.id, it.layoutVertexBuffer, it.indexBuffer, it.segments, null, ue.transform.zoom, null, null, it.collisionVertexBuffer);
+ }
+ var Kt;
+ if (!ee || !st.length) return;
+ let xr = ue.useProgram("collisionCircle"), Ir = new a.aR();
+ Ir.resize(4 * Tt), Ir._trim();
+ let ve = 0;
+ for (let qe of st) for (let et = 0; et < qe.circleArray.length / 4; et++) {
+ let Xe = 4 * et, it = qe.circleArray[Xe + 0], Ft = qe.circleArray[Xe + 1], Ht = qe.circleArray[Xe + 2], tr = qe.circleArray[Xe + 3];
+ Ir.emplace(ve++, it, Ft, Ht, tr, 0), Ir.emplace(ve++, it, Ft, Ht, tr, 1), Ir.emplace(ve++, it, Ft, Ht, tr, 2), Ir.emplace(ve++, it, Ft, Ht, tr, 3);
+ }
+ (!af || af.length < 2 * Tt) && (af = function(qe) {
+ let et = 2 * qe, Xe = new a.aT();
+ Xe.resize(et), Xe._trim();
+ for (let it = 0; it < et; it++) {
+ let Ft = 6 * it;
+ Xe.uint16[Ft + 0] = 4 * it + 0, Xe.uint16[Ft + 1] = 4 * it + 1, Xe.uint16[Ft + 2] = 4 * it + 2, Xe.uint16[Ft + 3] = 4 * it + 2, Xe.uint16[Ft + 4] = 4 * it + 3, Xe.uint16[Ft + 5] = 4 * it + 0;
+ }
+ return Xe;
+ }(Tt));
+ let be = le.createIndexBuffer(af, true), Re = le.createVertexBuffer(Ir, a.aS.members, true);
+ for (let qe of st) {
+ let et = No(qe.transform, qe.invTransform, ue.transform);
+ xr.draw(le, Oe.TRIANGLES, Po.disabled, Ko.disabled, ue.colorModeForRenderPass(), Pa.disabled, et, ue.style.map.terrain && ue.style.map.terrain.getTerrainData(qe.coord), B.id, Re, be, a.a0.simpleSegment(0, 2 * qe.circleOffset, qe.circleArray.length, qe.circleArray.length / 2), null, ue.transform.zoom, null, null, null);
+ }
+ Re.destroy(), be.destroy();
+ }
+ Pa.disabled = new Pa(false, 1029, 2305), Pa.backCCW = new Pa(true, 1029, 2305);
+ let bl = a.an(new Float32Array(16));
+ function Hf(ue, w, B, Q, ee, le) {
+ let { horizontalAlign: Oe, verticalAlign: Ze } = a.au(ue);
+ return new a.P((-(Oe - 0.5) * w / ee + Q[0]) * le, (-(Ze - 0.5) * B / ee + Q[1]) * le);
+ }
+ function Ic(ue, w, B, Q, ee, le) {
+ let Oe = w.tileAnchorPoint.add(new a.P(w.translation[0], w.translation[1]));
+ if (w.pitchWithMap) {
+ let Ze = Q.mult(le);
+ B || (Ze = Ze.rotate(-ee));
+ let st = Oe.add(Ze);
+ return dt(st.x, st.y, w.labelPlaneMatrix, w.getElevation).point;
+ }
+ if (B) {
+ let Ze = vt(w.tileAnchorPoint.x + 1, w.tileAnchorPoint.y, w).point.sub(ue), st = Math.atan(Ze.y / Ze.x) + (Ze.x < 0 ? Math.PI : 0);
+ return ue.add(Q.rotate(st));
+ }
+ return ue.add(Q);
+ }
+ function yf(ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt, xr, Ir) {
+ let ve = ue.text.placedSymbolArray, be = ue.text.dynamicLayoutVertexArray, Re = ue.icon.dynamicLayoutVertexArray, qe = {};
+ be.clear();
+ for (let et = 0; et < ve.length; et++) {
+ let Xe = ve.get(et), it = Xe.hidden || !Xe.crossTileID || ue.allowVerticalPlacement && !Xe.placedOrientation ? null : Q[Xe.crossTileID];
+ if (it) {
+ let Ft = new a.P(Xe.anchorX, Xe.anchorY), Ht = { getElevation: Ir, width: ee.width, height: ee.height, labelPlaneMatrix: le, pitchWithMap: B, projection: Yt, tileAnchorPoint: Ft, translation: Kt, unwrappedTileID: xr }, tr = B ? dt(Ft.x, Ft.y, Oe, Ir) : vt(Ft.x, Ft.y, Ht), dr = Ge(ee.cameraToCenterDistance, tr.signedDistanceFromCamera), Sr = a.ai(ue.textSizeData, st, Xe) * dr / a.ap;
+ B && (Sr *= ue.tilePixelRatio / Ze);
+ let { width: Or, height: Wr, anchor: ni, textOffset: Pi, textBoxScale: cn } = it, ln = Hf(ni, Or, Wr, Pi, cn, Sr), Cn = Yt.getPitchedTextCorrection(ee, Ft.add(new a.P(Kt[0], Kt[1])), xr), Kn = Ic(tr.point, Ht, w, ln, ee.angle, Cn), Aa = ue.allowVerticalPlacement && Xe.placedOrientation === a.ah.vertical ? Math.PI / 2 : 0;
+ for (let fa = 0; fa < Xe.numGlyphs; fa++) a.aj(be, Kn, Aa);
+ Tt && Xe.associatedIconIndex >= 0 && (qe[Xe.associatedIconIndex] = { shiftedAnchor: Kn, angle: Aa });
+ } else pi(Xe.numGlyphs, be);
+ }
+ if (Tt) {
+ Re.clear();
+ let et = ue.icon.placedSymbolArray;
+ for (let Xe = 0; Xe < et.length; Xe++) {
+ let it = et.get(Xe);
+ if (it.hidden) pi(it.numGlyphs, Re);
+ else {
+ let Ft = qe[Xe];
+ if (Ft) for (let Ht = 0; Ht < it.numGlyphs; Ht++) a.aj(Re, Ft.shiftedAnchor, Ft.angle);
+ else pi(it.numGlyphs, Re);
+ }
+ }
+ ue.icon.dynamicLayoutVertexBuffer.updateData(Re);
+ }
+ ue.text.dynamicLayoutVertexBuffer.updateData(be);
+ }
+ function Bl(ue, w, B) {
+ return B.iconsInText && w ? "symbolTextAndIcon" : ue ? "symbolSDF" : "symbolIcon";
+ }
+ function Ah(ue, w, B, Q, ee, le, Oe, Ze, st, Tt, Yt, Kt) {
+ let xr = ue.context, Ir = xr.gl, ve = ue.transform, be = yn(), Re = Ze === "map", qe = st === "map", et = Ze !== "viewport" && B.layout.get("symbol-placement") !== "point", Xe = Re && !qe && !et, it = !qe && et, Ft = !B.layout.get("symbol-sort-key").isConstant(), Ht = false, tr = ue.depthModeForSublayer(0, Po.ReadOnly), dr = B._unevaluatedLayout.hasValue("text-variable-anchor") || B._unevaluatedLayout.hasValue("text-variable-anchor-offset"), Sr = [], Or = be.getCircleRadiusCorrection(ve);
+ for (let Wr of Q) {
+ let ni = w.getTile(Wr), Pi = ni.getBucket(B);
+ if (!Pi) continue;
+ let cn = ee ? Pi.text : Pi.icon;
+ if (!cn || !cn.segments.get().length || !cn.hasVisibleVertices) continue;
+ let ln = cn.programConfigurations.get(B.id), Cn = ee || Pi.sdfIcons, Kn = ee ? Pi.textSizeData : Pi.iconSizeData, Aa = qe || ve.pitch !== 0, fa = ue.useProgram(Bl(Cn, ee, Pi), ln), $a = a.ag(Kn, ve.zoom), Co = ue.style.map.terrain && ue.style.map.terrain.getTerrainData(Wr), Qa, mo, Bo, Ps, Ts = [0, 0], wo = null;
+ if (ee) mo = ni.glyphAtlasTexture, Bo = Ir.LINEAR, Qa = ni.glyphAtlasTexture.size, Pi.iconsInText && (Ts = ni.imageAtlasTexture.size, wo = ni.imageAtlasTexture, Ps = Aa || ue.options.rotating || ue.options.zooming || Kn.kind === "composite" || Kn.kind === "camera" ? Ir.LINEAR : Ir.NEAREST);
+ else {
+ let Ye = B.layout.get("icon-size").constantOr(0) !== 1 || Pi.iconsNeedLinear;
+ mo = ni.imageAtlasTexture, Bo = Cn || ue.options.rotating || ue.options.zooming || Ye || Aa ? Ir.LINEAR : Ir.NEAREST, Qa = ni.imageAtlasTexture.size;
+ }
+ let To = In(ni, 1, ue.transform.zoom), hl = it ? Wr.posMatrix : bl, Ul = Br(hl, qe, Re, ue.transform, To), Lu = Vr(hl, qe, Re, ue.transform, To), au = Vr(Wr.posMatrix, qe, Re, ue.transform, To), Js = be.translatePosition(ue.transform, ni, le, Oe), eu = dr && Pi.hasTextData(), dc = B.layout.get("icon-text-fit") !== "none" && eu && Pi.hasIconData();
+ if (et) {
+ let Ye = ue.style.map.terrain ? (nt, jt) => ue.style.map.terrain.getElevation(Wr, nt, jt) : null, kt = B.layout.get("text-rotation-alignment") === "map";
+ We(Pi, Wr.posMatrix, ue, ee, Ul, au, qe, Tt, kt, be, Wr.toUnwrapped(), ve.width, ve.height, Js, Ye);
+ }
+ let Tl = Wr.posMatrix, Al = ee && dr || dc, X = et || Al ? bl : Ul, se = Lu, Te = Cn && B.paint.get(ee ? "text-halo-width" : "icon-halo-width").constantOr(1) !== 0, Ne;
+ Ne = Cn ? Pi.iconsInText ? ls(Kn.kind, $a, Xe, qe, et, Al, ue, Tl, X, se, Js, Qa, Ts, Or) : Io(Kn.kind, $a, Xe, qe, et, Al, ue, Tl, X, se, Js, ee, Qa, true, Or) : zs(Kn.kind, $a, Xe, qe, et, Al, ue, Tl, X, se, Js, ee, Qa, Or);
+ let He = { program: fa, buffers: cn, uniformValues: Ne, atlasTexture: mo, atlasTextureIcon: wo, atlasInterpolation: Bo, atlasInterpolationIcon: Ps, isSDF: Cn, hasHalo: Te };
+ if (Ft && Pi.canOverlap) {
+ Ht = true;
+ let Ye = cn.segments.get();
+ for (let kt of Ye) Sr.push({ segments: new a.a0([kt]), sortKey: kt.sortKey, state: He, terrainData: Co });
+ } else Sr.push({ segments: cn.segments, sortKey: 0, state: He, terrainData: Co });
+ }
+ Ht && Sr.sort((Wr, ni) => Wr.sortKey - ni.sortKey);
+ for (let Wr of Sr) {
+ let ni = Wr.state;
+ if (xr.activeTexture.set(Ir.TEXTURE0), ni.atlasTexture.bind(ni.atlasInterpolation, Ir.CLAMP_TO_EDGE), ni.atlasTextureIcon && (xr.activeTexture.set(Ir.TEXTURE1), ni.atlasTextureIcon && ni.atlasTextureIcon.bind(ni.atlasInterpolationIcon, Ir.CLAMP_TO_EDGE)), ni.isSDF) {
+ let Pi = ni.uniformValues;
+ ni.hasHalo && (Pi.u_is_halo = 1, Qf(ni.buffers, Wr.segments, B, ue, ni.program, tr, Yt, Kt, Pi, Wr.terrainData)), Pi.u_is_halo = 0;
+ }
+ Qf(ni.buffers, Wr.segments, B, ue, ni.program, tr, Yt, Kt, ni.uniformValues, Wr.terrainData);
+ }
+ }
+ function Qf(ue, w, B, Q, ee, le, Oe, Ze, st, Tt) {
+ let Yt = Q.context;
+ ee.draw(Yt, Yt.gl.TRIANGLES, le, Oe, Ze, Pa.disabled, st, Tt, B.id, ue.layoutVertexBuffer, ue.indexBuffer, w, B.paint, Q.transform.zoom, ue.programConfigurations.get(B.id), ue.dynamicLayoutVertexBuffer, ue.opacityVertexBuffer);
+ }
+ function _f(ue, w, B, Q) {
+ let ee = ue.context, le = ee.gl, Oe = Ko.disabled, Ze = new qs([le.ONE, le.ONE], a.aM.transparent, [true, true, true, true]), st = w.getBucket(B);
+ if (!st) return;
+ let Tt = Q.key, Yt = B.heatmapFbos.get(Tt);
+ Yt || (Yt = eh(ee, w.tileSize, w.tileSize), B.heatmapFbos.set(Tt, Yt)), ee.bindFramebuffer.set(Yt.framebuffer), ee.viewport.set([0, 0, w.tileSize, w.tileSize]), ee.clear({ color: a.aM.transparent });
+ let Kt = st.programConfigurations.get(B.id), xr = ue.useProgram("heatmap", Kt), Ir = ue.style.map.terrain.getTerrainData(Q);
+ xr.draw(ee, le.TRIANGLES, Po.disabled, Oe, Ze, Pa.disabled, ko(Q.posMatrix, w, ue.transform.zoom, B.paint.get("heatmap-intensity")), Ir, B.id, st.layoutVertexBuffer, st.indexBuffer, st.segments, B.paint, ue.transform.zoom, Kt);
+ }
+ function Yc(ue, w, B) {
+ let Q = ue.context, ee = Q.gl;
+ Q.setColorMode(ue.colorModeForRenderPass());
+ let le = th(Q, w), Oe = B.key, Ze = w.heatmapFbos.get(Oe);
+ Ze && (Q.activeTexture.set(ee.TEXTURE0), ee.bindTexture(ee.TEXTURE_2D, Ze.colorAttachment.get()), Q.activeTexture.set(ee.TEXTURE1), le.bind(ee.LINEAR, ee.CLAMP_TO_EDGE), ue.useProgram("heatmapTexture").draw(Q, ee.TRIANGLES, Po.disabled, Ko.disabled, ue.colorModeForRenderPass(), Pa.disabled, Ds(ue, w, 0, 1), null, w.id, ue.rasterBoundsBuffer, ue.quadTriangleIndexBuffer, ue.rasterBoundsSegments, w.paint, ue.transform.zoom), Ze.destroy(), w.heatmapFbos.delete(Oe));
+ }
+ function eh(ue, w, B) {
+ var Q, ee;
+ let le = ue.gl, Oe = le.createTexture();
+ le.bindTexture(le.TEXTURE_2D, Oe), le.texParameteri(le.TEXTURE_2D, le.TEXTURE_WRAP_S, le.CLAMP_TO_EDGE), le.texParameteri(le.TEXTURE_2D, le.TEXTURE_WRAP_T, le.CLAMP_TO_EDGE), le.texParameteri(le.TEXTURE_2D, le.TEXTURE_MIN_FILTER, le.LINEAR), le.texParameteri(le.TEXTURE_2D, le.TEXTURE_MAG_FILTER, le.LINEAR);
+ let Ze = (Q = ue.HALF_FLOAT) !== null && Q !== void 0 ? Q : le.UNSIGNED_BYTE, st = (ee = ue.RGBA16F) !== null && ee !== void 0 ? ee : le.RGBA;
+ le.texImage2D(le.TEXTURE_2D, 0, st, w, B, 0, le.RGBA, Ze, null);
+ let Tt = ue.createFramebuffer(w, B, false, false);
+ return Tt.colorAttachment.set(Oe), Tt;
+ }
+ function th(ue, w) {
+ return w.colorRampTexture || (w.colorRampTexture = new g(ue, w.colorRamp, ue.gl.RGBA)), w.colorRampTexture;
+ }
+ function ju(ue, w, B, Q, ee) {
+ if (!B || !Q || !Q.imageAtlas) return;
+ let le = Q.imageAtlas.patternPositions, Oe = le[B.to.toString()], Ze = le[B.from.toString()];
+ if (!Oe && Ze && (Oe = Ze), !Ze && Oe && (Ze = Oe), !Oe || !Ze) {
+ let st = ee.getPaintProperty(w);
+ Oe = le[st], Ze = le[st];
+ }
+ Oe && Ze && ue.setConstantPatternPositions(Oe, Ze);
+ }
+ function jf(ue, w, B, Q, ee, le, Oe) {
+ let Ze = ue.context.gl, st = "fill-pattern", Tt = B.paint.get(st), Yt = Tt && Tt.constantOr(1), Kt = B.getCrossfadeParameters(), xr, Ir, ve, be, Re;
+ Oe ? (Ir = Yt && !B.getPaintProperty("fill-outline-color") ? "fillOutlinePattern" : "fillOutline", xr = Ze.LINES) : (Ir = Yt ? "fillPattern" : "fill", xr = Ze.TRIANGLES);
+ let qe = Tt.constantOr(null);
+ for (let et of Q) {
+ let Xe = w.getTile(et);
+ if (Yt && !Xe.patternsLoaded()) continue;
+ let it = Xe.getBucket(B);
+ if (!it) continue;
+ let Ft = it.programConfigurations.get(B.id), Ht = ue.useProgram(Ir, Ft), tr = ue.style.map.terrain && ue.style.map.terrain.getTerrainData(et);
+ Yt && (ue.context.activeTexture.set(Ze.TEXTURE0), Xe.imageAtlasTexture.bind(Ze.LINEAR, Ze.CLAMP_TO_EDGE), Ft.updatePaintBuffers(Kt)), ju(Ft, st, qe, Xe, B);
+ let dr = tr ? et : null, Sr = ue.translatePosMatrix(dr ? dr.posMatrix : et.posMatrix, Xe, B.paint.get("fill-translate"), B.paint.get("fill-translate-anchor"));
+ if (Oe) {
+ be = it.indexBuffer2, Re = it.segments2;
+ let Or = [Ze.drawingBufferWidth, Ze.drawingBufferHeight];
+ ve = Ir === "fillOutlinePattern" && Yt ? Ma(Sr, ue, Kt, Xe, Or) : $n(Sr, Or);
+ } else be = it.indexBuffer, Re = it.segments, ve = Yt ? ya(Sr, ue, Kt, Xe) : _n(Sr);
+ Ht.draw(ue.context, xr, ee, ue.stencilModeForClipping(et), le, Pa.disabled, ve, tr, B.id, it.layoutVertexBuffer, be, Re, B.paint, ue.transform.zoom, Ft);
+ }
+ }
+ function cc(ue, w, B, Q, ee, le, Oe) {
+ let Ze = ue.context, st = Ze.gl, Tt = "fill-extrusion-pattern", Yt = B.paint.get(Tt), Kt = Yt.constantOr(1), xr = B.getCrossfadeParameters(), Ir = B.paint.get("fill-extrusion-opacity"), ve = Yt.constantOr(null);
+ for (let be of Q) {
+ let Re = w.getTile(be), qe = Re.getBucket(B);
+ if (!qe) continue;
+ let et = ue.style.map.terrain && ue.style.map.terrain.getTerrainData(be), Xe = qe.programConfigurations.get(B.id), it = ue.useProgram(Kt ? "fillExtrusionPattern" : "fillExtrusion", Xe);
+ Kt && (ue.context.activeTexture.set(st.TEXTURE0), Re.imageAtlasTexture.bind(st.LINEAR, st.CLAMP_TO_EDGE), Xe.updatePaintBuffers(xr)), ju(Xe, Tt, ve, Re, B);
+ let Ft = ue.translatePosMatrix(be.posMatrix, Re, B.paint.get("fill-extrusion-translate"), B.paint.get("fill-extrusion-translate-anchor")), Ht = B.paint.get("fill-extrusion-vertical-gradient"), tr = Kt ? Li(Ft, ue, Ht, Ir, be, xr, Re) : Mn(Ft, ue, Ht, Ir);
+ it.draw(Ze, Ze.gl.TRIANGLES, ee, le, Oe, Pa.backCCW, tr, et, B.id, qe.layoutVertexBuffer, qe.indexBuffer, qe.segments, B.paint, ue.transform.zoom, Xe, ue.style.map.terrain && qe.centroidVertexBuffer);
+ }
+ }
+ function of(ue, w, B, Q, ee, le, Oe) {
+ let Ze = ue.context, st = Ze.gl, Tt = B.fbo;
+ if (!Tt) return;
+ let Yt = ue.useProgram("hillshade"), Kt = ue.style.map.terrain && ue.style.map.terrain.getTerrainData(w);
+ Ze.activeTexture.set(st.TEXTURE0), st.bindTexture(st.TEXTURE_2D, Tt.colorAttachment.get()), Yt.draw(Ze, st.TRIANGLES, ee, le, Oe, Pa.disabled, ((xr, Ir, ve, be) => {
+ let Re = ve.paint.get("hillshade-shadow-color"), qe = ve.paint.get("hillshade-highlight-color"), et = ve.paint.get("hillshade-accent-color"), Xe = ve.paint.get("hillshade-illumination-direction") * (Math.PI / 180);
+ ve.paint.get("hillshade-illumination-anchor") === "viewport" && (Xe -= xr.transform.angle);
+ let it = !xr.options.moving;
+ return { u_matrix: be ? be.posMatrix : xr.transform.calculatePosMatrix(Ir.tileID.toUnwrapped(), it), u_image: 0, u_latrange: Fs(0, Ir.tileID), u_light: [ve.paint.get("hillshade-exaggeration"), Xe], u_shadow: Re, u_highlight: qe, u_accent: et };
+ })(ue, B, Q, Kt ? w : null), Kt, Q.id, ue.rasterBoundsBuffer, ue.quadTriangleIndexBuffer, ue.rasterBoundsSegments);
+ }
+ function Nl(ue, w, B, Q, ee, le) {
+ let Oe = ue.context, Ze = Oe.gl, st = w.dem;
+ if (st && st.data) {
+ let Tt = st.dim, Yt = st.stride, Kt = st.getPixels();
+ if (Oe.activeTexture.set(Ze.TEXTURE1), Oe.pixelStoreUnpackPremultiplyAlpha.set(false), w.demTexture = w.demTexture || ue.getTileTexture(Yt), w.demTexture) {
+ let Ir = w.demTexture;
+ Ir.update(Kt, { premultiply: false }), Ir.bind(Ze.NEAREST, Ze.CLAMP_TO_EDGE);
+ } else w.demTexture = new g(Oe, Kt, Ze.RGBA, { premultiply: false }), w.demTexture.bind(Ze.NEAREST, Ze.CLAMP_TO_EDGE);
+ Oe.activeTexture.set(Ze.TEXTURE0);
+ let xr = w.fbo;
+ if (!xr) {
+ let Ir = new g(Oe, { width: Tt, height: Tt, data: null }, Ze.RGBA);
+ Ir.bind(Ze.LINEAR, Ze.CLAMP_TO_EDGE), xr = w.fbo = Oe.createFramebuffer(Tt, Tt, true, false), xr.colorAttachment.set(Ir.texture);
+ }
+ Oe.bindFramebuffer.set(xr.framebuffer), Oe.viewport.set([0, 0, Tt, Tt]), ue.useProgram("hillshadePrepare").draw(Oe, Ze.TRIANGLES, Q, ee, le, Pa.disabled, ((Ir, ve) => {
+ let be = ve.stride, Re = a.H();
+ return a.aP(Re, 0, a.X, -a.X, 0, 0, 1), a.J(Re, Re, [0, -a.X, 0]), { u_matrix: Re, u_image: 1, u_dimension: [be, be], u_zoom: Ir.overscaledZ, u_unpack: ve.getUnpackVector() };
+ })(w.tileID, st), null, B.id, ue.rasterBoundsBuffer, ue.quadTriangleIndexBuffer, ue.rasterBoundsSegments), w.needsHillshadePrepare = false;
+ }
+ }
+ function Kc(ue, w, B, Q, ee, le) {
+ let Oe = Q.paint.get("raster-fade-duration");
+ if (!le && Oe > 0) {
+ let Ze = u.now(), st = (Ze - ue.timeAdded) / Oe, Tt = w ? (Ze - w.timeAdded) / Oe : -1, Yt = B.getSource(), Kt = ee.coveringZoomLevel({ tileSize: Yt.tileSize, roundZoom: Yt.roundZoom }), xr = !w || Math.abs(w.tileID.overscaledZ - Kt) > Math.abs(ue.tileID.overscaledZ - Kt), Ir = xr && ue.refreshedUponExpiration ? 1 : a.ac(xr ? st : 1 - Tt, 0, 1);
+ return ue.refreshedUponExpiration && st >= 1 && (ue.refreshedUponExpiration = false), w ? { opacity: 1, mix: 1 - Ir } : { opacity: Ir, mix: 0 };
+ }
+ return { opacity: 1, mix: 0 };
+ }
+ let Rc = new a.aM(1, 0, 0, 1), gs = new a.aM(0, 1, 0, 1), Wf = new a.aM(0, 0, 1, 1), Wh = new a.aM(1, 0, 1, 1), rh = new a.aM(0, 1, 1, 1);
+ function sf(ue, w, B, Q) {
+ Mu(ue, 0, w + B / 2, ue.transform.width, B, Q);
+ }
+ function Sh(ue, w, B, Q) {
+ Mu(ue, w - B / 2, 0, B, ue.transform.height, Q);
+ }
+ function Mu(ue, w, B, Q, ee, le) {
+ let Oe = ue.context, Ze = Oe.gl;
+ Ze.enable(Ze.SCISSOR_TEST), Ze.scissor(w * ue.pixelRatio, B * ue.pixelRatio, Q * ue.pixelRatio, ee * ue.pixelRatio), Oe.clear({ color: le }), Ze.disable(Ze.SCISSOR_TEST);
+ }
+ function ih(ue, w, B) {
+ let Q = ue.context, ee = Q.gl, le = B.posMatrix, Oe = ue.useProgram("debug"), Ze = Po.disabled, st = Ko.disabled, Tt = ue.colorModeForRenderPass(), Yt = "$debug", Kt = ue.style.map.terrain && ue.style.map.terrain.getTerrainData(B);
+ Q.activeTexture.set(ee.TEXTURE0);
+ let xr = w.getTileByID(B.key).latestRawTileData, Ir = Math.floor((xr && xr.byteLength || 0) / 1024), ve = w.getTile(B).tileSize, be = 512 / Math.min(ve, 512) * (B.overscaledZ / ue.transform.zoom) * 0.5, Re = B.canonical.toString();
+ B.overscaledZ !== B.canonical.z && (Re += ` => ${B.overscaledZ}`), function(qe, et) {
+ qe.initDebugOverlayCanvas();
+ let Xe = qe.debugOverlayCanvas, it = qe.context.gl, Ft = qe.debugOverlayCanvas.getContext("2d");
+ Ft.clearRect(0, 0, Xe.width, Xe.height), Ft.shadowColor = "white", Ft.shadowBlur = 2, Ft.lineWidth = 1.5, Ft.strokeStyle = "white", Ft.textBaseline = "top", Ft.font = "bold 36px Open Sans, sans-serif", Ft.fillText(et, 5, 5), Ft.strokeText(et, 5, 5), qe.debugOverlayTexture.update(Xe), qe.debugOverlayTexture.bind(it.LINEAR, it.CLAMP_TO_EDGE);
+ }(ue, `${Re} ${Ir}kB`), Oe.draw(Q, ee.TRIANGLES, Ze, st, qs.alphaBlended, Pa.disabled, po(le, a.aM.transparent, be), null, Yt, ue.debugBuffer, ue.quadTriangleIndexBuffer, ue.debugSegments), Oe.draw(Q, ee.LINE_STRIP, Ze, st, Tt, Pa.disabled, po(le, a.aM.red), Kt, Yt, ue.debugBuffer, ue.tileBorderIndexBuffer, ue.debugSegments);
+ }
+ function js(ue, w, B) {
+ let Q = ue.context, ee = Q.gl, le = ue.colorModeForRenderPass(), Oe = new Po(ee.LEQUAL, Po.ReadWrite, ue.depthRangeFor3D), Ze = ue.useProgram("terrain"), st = w.getTerrainMesh();
+ Q.bindFramebuffer.set(null), Q.viewport.set([0, 0, ue.width, ue.height]);
+ for (let Tt of B) {
+ let Yt = ue.renderToTexture.getTexture(Tt), Kt = w.getTerrainData(Tt.tileID);
+ Q.activeTexture.set(ee.TEXTURE0), ee.bindTexture(ee.TEXTURE_2D, Yt.texture);
+ let xr = ue.transform.calculatePosMatrix(Tt.tileID.toUnwrapped()), Ir = w.getMeshFrameDelta(ue.transform.zoom), ve = ue.transform.calculateFogMatrix(Tt.tileID.toUnwrapped()), be = Jr(xr, Ir, ve, ue.style.sky, ue.transform.pitch);
+ Ze.draw(Q, ee.TRIANGLES, Oe, Ko.disabled, le, Pa.backCCW, be, Kt, "terrain", st.vertexBuffer, st.indexBuffer, st.segments);
+ }
+ }
+ class Eu {
+ constructor(w, B, Q) {
+ this.vertexBuffer = w, this.indexBuffer = B, this.segments = Q;
+ }
+ destroy() {
+ this.vertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.vertexBuffer = null, this.indexBuffer = null, this.segments = null;
+ }
+ }
+ class Dc {
+ constructor(w, B) {
+ this.context = new od(w), this.transform = B, this._tileTextures = {}, this.terrainFacilitator = { dirty: true, matrix: a.an(new Float64Array(16)), renderTime: 0 }, this.setup(), this.numSublayers = mt.maxUnderzooming + mt.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new Xo();
+ }
+ resize(w, B, Q) {
+ if (this.width = Math.floor(w * Q), this.height = Math.floor(B * Q), this.pixelRatio = Q, this.context.viewport.set([0, 0, this.width, this.height]), this.style) for (let ee of this.style._order) this.style._layers[ee].resize();
+ }
+ setup() {
+ let w = this.context, B = new a.aX();
+ B.emplaceBack(0, 0), B.emplaceBack(a.X, 0), B.emplaceBack(0, a.X), B.emplaceBack(a.X, a.X), this.tileExtentBuffer = w.createVertexBuffer(B, vo.members), this.tileExtentSegments = a.a0.simpleSegment(0, 0, 4, 2);
+ let Q = new a.aX();
+ Q.emplaceBack(0, 0), Q.emplaceBack(a.X, 0), Q.emplaceBack(0, a.X), Q.emplaceBack(a.X, a.X), this.debugBuffer = w.createVertexBuffer(Q, vo.members), this.debugSegments = a.a0.simpleSegment(0, 0, 4, 5);
+ let ee = new a.$();
+ ee.emplaceBack(0, 0, 0, 0), ee.emplaceBack(a.X, 0, a.X, 0), ee.emplaceBack(0, a.X, 0, a.X), ee.emplaceBack(a.X, a.X, a.X, a.X), this.rasterBoundsBuffer = w.createVertexBuffer(ee, ut.members), this.rasterBoundsSegments = a.a0.simpleSegment(0, 0, 4, 2);
+ let le = new a.aX();
+ le.emplaceBack(0, 0), le.emplaceBack(1, 0), le.emplaceBack(0, 1), le.emplaceBack(1, 1), this.viewportBuffer = w.createVertexBuffer(le, vo.members), this.viewportSegments = a.a0.simpleSegment(0, 0, 4, 2);
+ let Oe = new a.aZ();
+ Oe.emplaceBack(0), Oe.emplaceBack(1), Oe.emplaceBack(3), Oe.emplaceBack(2), Oe.emplaceBack(0), this.tileBorderIndexBuffer = w.createIndexBuffer(Oe);
+ let Ze = new a.aY();
+ Ze.emplaceBack(0, 1, 2), Ze.emplaceBack(2, 1, 3), this.quadTriangleIndexBuffer = w.createIndexBuffer(Ze);
+ let st = this.context.gl;
+ this.stencilClearMode = new Ko({ func: st.ALWAYS, mask: 0 }, 0, 255, st.ZERO, st.ZERO, st.ZERO);
+ }
+ clearStencil() {
+ let w = this.context, B = w.gl;
+ this.nextStencilID = 1, this.currentStencilSource = void 0;
+ let Q = a.H();
+ a.aP(Q, 0, this.width, this.height, 0, 0, 1), a.K(Q, Q, [B.drawingBufferWidth, B.drawingBufferHeight, 0]), this.useProgram("clippingMask").draw(w, B.TRIANGLES, Po.disabled, this.stencilClearMode, qs.disabled, Pa.disabled, Lo(Q), null, "$clipping", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments);
+ }
+ _renderTileClippingMasks(w, B) {
+ if (this.currentStencilSource === w.source || !w.isTileClipped() || !B || !B.length) return;
+ this.currentStencilSource = w.source;
+ let Q = this.context, ee = Q.gl;
+ this.nextStencilID + B.length > 256 && this.clearStencil(), Q.setColorMode(qs.disabled), Q.setDepthMode(Po.disabled);
+ let le = this.useProgram("clippingMask");
+ this._tileClippingMaskIDs = {};
+ for (let Oe of B) {
+ let Ze = this._tileClippingMaskIDs[Oe.key] = this.nextStencilID++, st = this.style.map.terrain && this.style.map.terrain.getTerrainData(Oe);
+ le.draw(Q, ee.TRIANGLES, Po.disabled, new Ko({ func: ee.ALWAYS, mask: 0 }, Ze, 255, ee.KEEP, ee.KEEP, ee.REPLACE), qs.disabled, Pa.disabled, Lo(Oe.posMatrix), st, "$clipping", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments);
+ }
+ }
+ stencilModeFor3D() {
+ this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil();
+ let w = this.nextStencilID++, B = this.context.gl;
+ return new Ko({ func: B.NOTEQUAL, mask: 255 }, w, 255, B.KEEP, B.KEEP, B.REPLACE);
+ }
+ stencilModeForClipping(w) {
+ let B = this.context.gl;
+ return new Ko({ func: B.EQUAL, mask: 255 }, this._tileClippingMaskIDs[w.key], 0, B.KEEP, B.KEEP, B.REPLACE);
+ }
+ stencilConfigForOverlap(w) {
+ let B = this.context.gl, Q = w.sort((Oe, Ze) => Ze.overscaledZ - Oe.overscaledZ), ee = Q[Q.length - 1].overscaledZ, le = Q[0].overscaledZ - ee + 1;
+ if (le > 1) {
+ this.currentStencilSource = void 0, this.nextStencilID + le > 256 && this.clearStencil();
+ let Oe = {};
+ for (let Ze = 0; Ze < le; Ze++) Oe[Ze + ee] = new Ko({ func: B.GEQUAL, mask: 255 }, Ze + this.nextStencilID, 255, B.KEEP, B.KEEP, B.REPLACE);
+ return this.nextStencilID += le, [Oe, Q];
+ }
+ return [{ [ee]: Ko.disabled }, Q];
+ }
+ colorModeForRenderPass() {
+ let w = this.context.gl;
+ return this._showOverdrawInspector ? new qs([w.CONSTANT_COLOR, w.ONE], new a.aM(0.125, 0.125, 0.125, 0), [true, true, true, true]) : this.renderPass === "opaque" ? qs.unblended : qs.alphaBlended;
+ }
+ depthModeForSublayer(w, B, Q) {
+ if (!this.opaquePassEnabledForLayer()) return Po.disabled;
+ let ee = 1 - ((1 + this.currentLayer) * this.numSublayers + w) * this.depthEpsilon;
+ return new Po(Q || this.context.gl.LEQUAL, B, [ee, ee]);
+ }
+ opaquePassEnabledForLayer() {
+ return this.currentLayer < this.opaquePassCutoff;
+ }
+ render(w, B) {
+ this.style = w, this.options = B, this.lineAtlas = w.lineAtlas, this.imageManager = w.imageManager, this.glyphManager = w.glyphManager, this.symbolFadeChange = w.placement.symbolFadeChange(u.now()), this.imageManager.beginFrame();
+ let Q = this.style._order, ee = this.style.sourceCaches, le = {}, Oe = {}, Ze = {};
+ for (let st in ee) {
+ let Tt = ee[st];
+ Tt.used && Tt.prepare(this.context), le[st] = Tt.getVisibleCoordinates(), Oe[st] = le[st].slice().reverse(), Ze[st] = Tt.getVisibleCoordinates(true).reverse();
+ }
+ this.opaquePassCutoff = 1 / 0;
+ for (let st = 0; st < Q.length; st++) if (this.style._layers[Q[st]].is3D()) {
+ this.opaquePassCutoff = st;
+ break;
+ }
+ this.maybeDrawDepthAndCoords(false), this.renderToTexture && (this.renderToTexture.prepareForRender(this.style, this.transform.zoom), this.opaquePassCutoff = 0), this.renderPass = "offscreen";
+ for (let st of Q) {
+ let Tt = this.style._layers[st];
+ if (!Tt.hasOffscreenPass() || Tt.isHidden(this.transform.zoom)) continue;
+ let Yt = Oe[Tt.source];
+ (Tt.type === "custom" || Yt.length) && this.renderLayer(this, ee[Tt.source], Tt, Yt);
+ }
+ if (this.context.bindFramebuffer.set(null), this.context.clear({ color: B.showOverdrawInspector ? a.aM.black : a.aM.transparent, depth: 1 }), this.clearStencil(), this.style.sky && function(st, Tt) {
+ let Yt = st.context, Kt = Yt.gl, xr = ((qe, et, Xe) => ({ u_sky_color: qe.properties.get("sky-color"), u_horizon_color: qe.properties.get("horizon-color"), u_horizon: (et.height / 2 + et.getHorizon()) * Xe, u_sky_horizon_blend: qe.properties.get("sky-horizon-blend") * et.height / 2 * Xe }))(Tt, st.style.map.transform, st.pixelRatio), Ir = new Po(Kt.LEQUAL, Po.ReadWrite, [0, 1]), ve = Ko.disabled, be = st.colorModeForRenderPass(), Re = st.useProgram("sky");
+ if (!Tt.mesh) {
+ let qe = new a.aX();
+ qe.emplaceBack(-1, -1), qe.emplaceBack(1, -1), qe.emplaceBack(1, 1), qe.emplaceBack(-1, 1);
+ let et = new a.aY();
+ et.emplaceBack(0, 1, 2), et.emplaceBack(0, 2, 3), Tt.mesh = new Eu(Yt.createVertexBuffer(qe, vo.members), Yt.createIndexBuffer(et), a.a0.simpleSegment(0, 0, qe.length, et.length));
+ }
+ Re.draw(Yt, Kt.TRIANGLES, Ir, ve, be, Pa.disabled, xr, void 0, "sky", Tt.mesh.vertexBuffer, Tt.mesh.indexBuffer, Tt.mesh.segments);
+ }(this, this.style.sky), this._showOverdrawInspector = B.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (w._order.length + 2) * this.numSublayers * this.depthEpsilon], !this.renderToTexture) for (this.renderPass = "opaque", this.currentLayer = Q.length - 1; this.currentLayer >= 0; this.currentLayer--) {
+ let st = this.style._layers[Q[this.currentLayer]], Tt = ee[st.source], Yt = le[st.source];
+ this._renderTileClippingMasks(st, Yt), this.renderLayer(this, Tt, st, Yt);
+ }
+ for (this.renderPass = "translucent", this.currentLayer = 0; this.currentLayer < Q.length; this.currentLayer++) {
+ let st = this.style._layers[Q[this.currentLayer]], Tt = ee[st.source];
+ if (this.renderToTexture && this.renderToTexture.renderLayer(st)) continue;
+ let Yt = (st.type === "symbol" ? Ze : Oe)[st.source];
+ this._renderTileClippingMasks(st, le[st.source]), this.renderLayer(this, Tt, st, Yt);
+ }
+ if (this.options.showTileBoundaries) {
+ let st = function(Tt, Yt) {
+ let Kt = null, xr = Object.values(Tt._layers).flatMap((Re) => Re.source && !Re.isHidden(Yt) ? [Tt.sourceCaches[Re.source]] : []), Ir = xr.filter((Re) => Re.getSource().type === "vector"), ve = xr.filter((Re) => Re.getSource().type !== "vector"), be = (Re) => {
+ (!Kt || Kt.getSource().maxzoom < Re.getSource().maxzoom) && (Kt = Re);
+ };
+ return Ir.forEach((Re) => be(Re)), Kt || ve.forEach((Re) => be(Re)), Kt;
+ }(this.style, this.transform.zoom);
+ st && function(Tt, Yt, Kt) {
+ for (let xr = 0; xr < Kt.length; xr++) ih(Tt, Yt, Kt[xr]);
+ }(this, st, st.getVisibleCoordinates());
+ }
+ this.options.showPadding && function(st) {
+ let Tt = st.transform.padding;
+ sf(st, st.transform.height - (Tt.top || 0), 3, Rc), sf(st, Tt.bottom || 0, 3, gs), Sh(st, Tt.left || 0, 3, Wf), Sh(st, st.transform.width - (Tt.right || 0), 3, Wh);
+ let Yt = st.transform.centerPoint;
+ (function(Kt, xr, Ir, ve) {
+ Mu(Kt, xr - 1, Ir - 10, 2, 20, ve), Mu(Kt, xr - 10, Ir - 1, 20, 2, ve);
+ })(st, Yt.x, st.transform.height - Yt.y, rh);
+ }(this), this.context.setDefault();
+ }
+ maybeDrawDepthAndCoords(w) {
+ if (!this.style || !this.style.map || !this.style.map.terrain) return;
+ let B = this.terrainFacilitator.matrix, Q = this.transform.modelViewProjectionMatrix, ee = this.terrainFacilitator.dirty;
+ ee || (ee = w ? !a.a_(B, Q) : !a.a$(B, Q)), ee || (ee = this.style.map.terrain.sourceCache.tilesAfterTime(this.terrainFacilitator.renderTime).length > 0), ee && (a.b0(B, Q), this.terrainFacilitator.renderTime = Date.now(), this.terrainFacilitator.dirty = false, function(le, Oe) {
+ let Ze = le.context, st = Ze.gl, Tt = qs.unblended, Yt = new Po(st.LEQUAL, Po.ReadWrite, [0, 1]), Kt = Oe.getTerrainMesh(), xr = Oe.sourceCache.getRenderableTiles(), Ir = le.useProgram("terrainDepth");
+ Ze.bindFramebuffer.set(Oe.getFramebuffer("depth").framebuffer), Ze.viewport.set([0, 0, le.width / devicePixelRatio, le.height / devicePixelRatio]), Ze.clear({ color: a.aM.transparent, depth: 1 });
+ for (let ve of xr) {
+ let be = Oe.getTerrainData(ve.tileID), Re = { u_matrix: le.transform.calculatePosMatrix(ve.tileID.toUnwrapped()), u_ele_delta: Oe.getMeshFrameDelta(le.transform.zoom) };
+ Ir.draw(Ze, st.TRIANGLES, Yt, Ko.disabled, Tt, Pa.backCCW, Re, be, "terrain", Kt.vertexBuffer, Kt.indexBuffer, Kt.segments);
+ }
+ Ze.bindFramebuffer.set(null), Ze.viewport.set([0, 0, le.width, le.height]);
+ }(this, this.style.map.terrain), function(le, Oe) {
+ let Ze = le.context, st = Ze.gl, Tt = qs.unblended, Yt = new Po(st.LEQUAL, Po.ReadWrite, [0, 1]), Kt = Oe.getTerrainMesh(), xr = Oe.getCoordsTexture(), Ir = Oe.sourceCache.getRenderableTiles(), ve = le.useProgram("terrainCoords");
+ Ze.bindFramebuffer.set(Oe.getFramebuffer("coords").framebuffer), Ze.viewport.set([0, 0, le.width / devicePixelRatio, le.height / devicePixelRatio]), Ze.clear({ color: a.aM.transparent, depth: 1 }), Oe.coordsIndex = [];
+ for (let be of Ir) {
+ let Re = Oe.getTerrainData(be.tileID);
+ Ze.activeTexture.set(st.TEXTURE0), st.bindTexture(st.TEXTURE_2D, xr.texture);
+ let qe = { u_matrix: le.transform.calculatePosMatrix(be.tileID.toUnwrapped()), u_terrain_coords_id: (255 - Oe.coordsIndex.length) / 255, u_texture: 0, u_ele_delta: Oe.getMeshFrameDelta(le.transform.zoom) };
+ ve.draw(Ze, st.TRIANGLES, Yt, Ko.disabled, Tt, Pa.backCCW, qe, Re, "terrain", Kt.vertexBuffer, Kt.indexBuffer, Kt.segments), Oe.coordsIndex.push(be.tileID.key);
+ }
+ Ze.bindFramebuffer.set(null), Ze.viewport.set([0, 0, le.width, le.height]);
+ }(this, this.style.map.terrain));
+ }
+ renderLayer(w, B, Q, ee) {
+ if (!Q.isHidden(this.transform.zoom) && (Q.type === "background" || Q.type === "custom" || (ee || []).length)) switch (this.id = Q.id, Q.type) {
+ case "symbol":
+ (function(le, Oe, Ze, st, Tt) {
+ if (le.renderPass !== "translucent") return;
+ let Yt = Ko.disabled, Kt = le.colorModeForRenderPass();
+ (Ze._unevaluatedLayout.hasValue("text-variable-anchor") || Ze._unevaluatedLayout.hasValue("text-variable-anchor-offset")) && function(xr, Ir, ve, be, Re, qe, et, Xe, it) {
+ let Ft = Ir.transform, Ht = yn(), tr = Re === "map", dr = qe === "map";
+ for (let Sr of xr) {
+ let Or = be.getTile(Sr), Wr = Or.getBucket(ve);
+ if (!Wr || !Wr.text || !Wr.text.segments.get().length) continue;
+ let ni = a.ag(Wr.textSizeData, Ft.zoom), Pi = In(Or, 1, Ir.transform.zoom), cn = Br(Sr.posMatrix, dr, tr, Ir.transform, Pi), ln = ve.layout.get("icon-text-fit") !== "none" && Wr.hasIconData();
+ if (ni) {
+ let Cn = Math.pow(2, Ft.zoom - Or.tileID.overscaledZ), Kn = Ir.style.map.terrain ? (fa, $a) => Ir.style.map.terrain.getElevation(Sr, fa, $a) : null, Aa = Ht.translatePosition(Ft, Or, et, Xe);
+ yf(Wr, tr, dr, it, Ft, cn, Sr.posMatrix, Cn, ni, ln, Ht, Aa, Sr.toUnwrapped(), Kn);
+ }
+ }
+ }(st, le, Ze, Oe, Ze.layout.get("text-rotation-alignment"), Ze.layout.get("text-pitch-alignment"), Ze.paint.get("text-translate"), Ze.paint.get("text-translate-anchor"), Tt), Ze.paint.get("icon-opacity").constantOr(1) !== 0 && Ah(le, Oe, Ze, st, false, Ze.paint.get("icon-translate"), Ze.paint.get("icon-translate-anchor"), Ze.layout.get("icon-rotation-alignment"), Ze.layout.get("icon-pitch-alignment"), Ze.layout.get("icon-keep-upright"), Yt, Kt), Ze.paint.get("text-opacity").constantOr(1) !== 0 && Ah(le, Oe, Ze, st, true, Ze.paint.get("text-translate"), Ze.paint.get("text-translate-anchor"), Ze.layout.get("text-rotation-alignment"), Ze.layout.get("text-pitch-alignment"), Ze.layout.get("text-keep-upright"), Yt, Kt), Oe.map.showCollisionBoxes && (Hu(le, Oe, Ze, st, true), Hu(le, Oe, Ze, st, false));
+ })(w, B, Q, ee, this.style.placement.variableOffsets);
+ break;
+ case "circle":
+ (function(le, Oe, Ze, st) {
+ if (le.renderPass !== "translucent") return;
+ let Tt = Ze.paint.get("circle-opacity"), Yt = Ze.paint.get("circle-stroke-width"), Kt = Ze.paint.get("circle-stroke-opacity"), xr = !Ze.layout.get("circle-sort-key").isConstant();
+ if (Tt.constantOr(1) === 0 && (Yt.constantOr(1) === 0 || Kt.constantOr(1) === 0)) return;
+ let Ir = le.context, ve = Ir.gl, be = le.depthModeForSublayer(0, Po.ReadOnly), Re = Ko.disabled, qe = le.colorModeForRenderPass(), et = [];
+ for (let Xe = 0; Xe < st.length; Xe++) {
+ let it = st[Xe], Ft = Oe.getTile(it), Ht = Ft.getBucket(Ze);
+ if (!Ht) continue;
+ let tr = Ht.programConfigurations.get(Ze.id), dr = le.useProgram("circle", tr), Sr = Ht.layoutVertexBuffer, Or = Ht.indexBuffer, Wr = le.style.map.terrain && le.style.map.terrain.getTerrainData(it), ni = { programConfiguration: tr, program: dr, layoutVertexBuffer: Sr, indexBuffer: Or, uniformValues: _o(le, it, Ft, Ze), terrainData: Wr };
+ if (xr) {
+ let Pi = Ht.segments.get();
+ for (let cn of Pi) et.push({ segments: new a.a0([cn]), sortKey: cn.sortKey, state: ni });
+ } else et.push({ segments: Ht.segments, sortKey: 0, state: ni });
+ }
+ xr && et.sort((Xe, it) => Xe.sortKey - it.sortKey);
+ for (let Xe of et) {
+ let { programConfiguration: it, program: Ft, layoutVertexBuffer: Ht, indexBuffer: tr, uniformValues: dr, terrainData: Sr } = Xe.state;
+ Ft.draw(Ir, ve.TRIANGLES, be, Re, qe, Pa.disabled, dr, Sr, Ze.id, Ht, tr, Xe.segments, Ze.paint, le.transform.zoom, it);
+ }
+ })(w, B, Q, ee);
+ break;
+ case "heatmap":
+ (function(le, Oe, Ze, st) {
+ if (Ze.paint.get("heatmap-opacity") === 0) return;
+ let Tt = le.context;
+ if (le.style.map.terrain) {
+ for (let Yt of st) {
+ let Kt = Oe.getTile(Yt);
+ Oe.hasRenderableParent(Yt) || (le.renderPass === "offscreen" ? _f(le, Kt, Ze, Yt) : le.renderPass === "translucent" && Yc(le, Ze, Yt));
+ }
+ Tt.viewport.set([0, 0, le.width, le.height]);
+ } else le.renderPass === "offscreen" ? function(Yt, Kt, xr, Ir) {
+ let ve = Yt.context, be = ve.gl, Re = Ko.disabled, qe = new qs([be.ONE, be.ONE], a.aM.transparent, [true, true, true, true]);
+ (function(et, Xe, it) {
+ let Ft = et.gl;
+ et.activeTexture.set(Ft.TEXTURE1), et.viewport.set([0, 0, Xe.width / 4, Xe.height / 4]);
+ let Ht = it.heatmapFbos.get(a.aU);
+ Ht ? (Ft.bindTexture(Ft.TEXTURE_2D, Ht.colorAttachment.get()), et.bindFramebuffer.set(Ht.framebuffer)) : (Ht = eh(et, Xe.width / 4, Xe.height / 4), it.heatmapFbos.set(a.aU, Ht));
+ })(ve, Yt, xr), ve.clear({ color: a.aM.transparent });
+ for (let et = 0; et < Ir.length; et++) {
+ let Xe = Ir[et];
+ if (Kt.hasRenderableParent(Xe)) continue;
+ let it = Kt.getTile(Xe), Ft = it.getBucket(xr);
+ if (!Ft) continue;
+ let Ht = Ft.programConfigurations.get(xr.id), tr = Yt.useProgram("heatmap", Ht), { zoom: dr } = Yt.transform;
+ tr.draw(ve, be.TRIANGLES, Po.disabled, Re, qe, Pa.disabled, ko(Xe.posMatrix, it, dr, xr.paint.get("heatmap-intensity")), null, xr.id, Ft.layoutVertexBuffer, Ft.indexBuffer, Ft.segments, xr.paint, Yt.transform.zoom, Ht);
+ }
+ ve.viewport.set([0, 0, Yt.width, Yt.height]);
+ }(le, Oe, Ze, st) : le.renderPass === "translucent" && function(Yt, Kt) {
+ let xr = Yt.context, Ir = xr.gl;
+ xr.setColorMode(Yt.colorModeForRenderPass());
+ let ve = Kt.heatmapFbos.get(a.aU);
+ ve && (xr.activeTexture.set(Ir.TEXTURE0), Ir.bindTexture(Ir.TEXTURE_2D, ve.colorAttachment.get()), xr.activeTexture.set(Ir.TEXTURE1), th(xr, Kt).bind(Ir.LINEAR, Ir.CLAMP_TO_EDGE), Yt.useProgram("heatmapTexture").draw(xr, Ir.TRIANGLES, Po.disabled, Ko.disabled, Yt.colorModeForRenderPass(), Pa.disabled, Ds(Yt, Kt, 0, 1), null, Kt.id, Yt.viewportBuffer, Yt.quadTriangleIndexBuffer, Yt.viewportSegments, Kt.paint, Yt.transform.zoom));
+ }(le, Ze);
+ })(w, B, Q, ee);
+ break;
+ case "line":
+ (function(le, Oe, Ze, st) {
+ if (le.renderPass !== "translucent") return;
+ let Tt = Ze.paint.get("line-opacity"), Yt = Ze.paint.get("line-width");
+ if (Tt.constantOr(1) === 0 || Yt.constantOr(1) === 0) return;
+ let Kt = le.depthModeForSublayer(0, Po.ReadOnly), xr = le.colorModeForRenderPass(), Ir = Ze.paint.get("line-dasharray"), ve = Ze.paint.get("line-pattern"), be = ve.constantOr(1), Re = Ze.paint.get("line-gradient"), qe = Ze.getCrossfadeParameters(), et = be ? "linePattern" : Ir ? "lineSDF" : Re ? "lineGradient" : "line", Xe = le.context, it = Xe.gl, Ft = true;
+ for (let Ht of st) {
+ let tr = Oe.getTile(Ht);
+ if (be && !tr.patternsLoaded()) continue;
+ let dr = tr.getBucket(Ze);
+ if (!dr) continue;
+ let Sr = dr.programConfigurations.get(Ze.id), Or = le.context.program.get(), Wr = le.useProgram(et, Sr), ni = Ft || Wr.program !== Or, Pi = le.style.map.terrain && le.style.map.terrain.getTerrainData(Ht), cn = ve.constantOr(null);
+ if (cn && tr.imageAtlas) {
+ let Kn = tr.imageAtlas, Aa = Kn.patternPositions[cn.to.toString()], fa = Kn.patternPositions[cn.from.toString()];
+ Aa && fa && Sr.setConstantPatternPositions(Aa, fa);
+ }
+ let ln = Pi ? Ht : null, Cn = be ? zl(le, tr, Ze, qe, ln) : Ir ? us(le, tr, Ze, Ir, qe, ln) : Re ? ul(le, tr, Ze, dr.lineClipsArray.length, ln) : ll(le, tr, Ze, ln);
+ if (be) Xe.activeTexture.set(it.TEXTURE0), tr.imageAtlasTexture.bind(it.LINEAR, it.CLAMP_TO_EDGE), Sr.updatePaintBuffers(qe);
+ else if (Ir && (ni || le.lineAtlas.dirty)) Xe.activeTexture.set(it.TEXTURE0), le.lineAtlas.bind(Xe);
+ else if (Re) {
+ let Kn = dr.gradients[Ze.id], Aa = Kn.texture;
+ if (Ze.gradientVersion !== Kn.version) {
+ let fa = 256;
+ if (Ze.stepInterpolant) {
+ let $a = Oe.getSource().maxzoom, Co = Ht.canonical.z === $a ? Math.ceil(1 << le.transform.maxZoom - Ht.canonical.z) : 1;
+ fa = a.ac(a.aV(dr.maxLineLength / a.X * 1024 * Co), 256, Xe.maxTextureSize);
+ }
+ Kn.gradient = a.aW({ expression: Ze.gradientExpression(), evaluationKey: "lineProgress", resolution: fa, image: Kn.gradient || void 0, clips: dr.lineClipsArray }), Kn.texture ? Kn.texture.update(Kn.gradient) : Kn.texture = new g(Xe, Kn.gradient, it.RGBA), Kn.version = Ze.gradientVersion, Aa = Kn.texture;
+ }
+ Xe.activeTexture.set(it.TEXTURE0), Aa.bind(Ze.stepInterpolant ? it.NEAREST : it.LINEAR, it.CLAMP_TO_EDGE);
+ }
+ Wr.draw(Xe, it.TRIANGLES, Kt, le.stencilModeForClipping(Ht), xr, Pa.disabled, Cn, Pi, Ze.id, dr.layoutVertexBuffer, dr.indexBuffer, dr.segments, Ze.paint, le.transform.zoom, Sr, dr.layoutVertexBuffer2), Ft = false;
+ }
+ })(w, B, Q, ee);
+ break;
+ case "fill":
+ (function(le, Oe, Ze, st) {
+ let Tt = Ze.paint.get("fill-color"), Yt = Ze.paint.get("fill-opacity");
+ if (Yt.constantOr(1) === 0) return;
+ let Kt = le.colorModeForRenderPass(), xr = Ze.paint.get("fill-pattern"), Ir = le.opaquePassEnabledForLayer() && !xr.constantOr(1) && Tt.constantOr(a.aM.transparent).a === 1 && Yt.constantOr(0) === 1 ? "opaque" : "translucent";
+ if (le.renderPass === Ir) {
+ let ve = le.depthModeForSublayer(1, le.renderPass === "opaque" ? Po.ReadWrite : Po.ReadOnly);
+ jf(le, Oe, Ze, st, ve, Kt, false);
+ }
+ if (le.renderPass === "translucent" && Ze.paint.get("fill-antialias")) {
+ let ve = le.depthModeForSublayer(Ze.getPaintProperty("fill-outline-color") ? 2 : 0, Po.ReadOnly);
+ jf(le, Oe, Ze, st, ve, Kt, true);
+ }
+ })(w, B, Q, ee);
+ break;
+ case "fill-extrusion":
+ (function(le, Oe, Ze, st) {
+ let Tt = Ze.paint.get("fill-extrusion-opacity");
+ if (Tt !== 0 && le.renderPass === "translucent") {
+ let Yt = new Po(le.context.gl.LEQUAL, Po.ReadWrite, le.depthRangeFor3D);
+ if (Tt !== 1 || Ze.paint.get("fill-extrusion-pattern").constantOr(1)) cc(le, Oe, Ze, st, Yt, Ko.disabled, qs.disabled), cc(le, Oe, Ze, st, Yt, le.stencilModeFor3D(), le.colorModeForRenderPass());
+ else {
+ let Kt = le.colorModeForRenderPass();
+ cc(le, Oe, Ze, st, Yt, Ko.disabled, Kt);
+ }
+ }
+ })(w, B, Q, ee);
+ break;
+ case "hillshade":
+ (function(le, Oe, Ze, st) {
+ if (le.renderPass !== "offscreen" && le.renderPass !== "translucent") return;
+ let Tt = le.context, Yt = le.depthModeForSublayer(0, Po.ReadOnly), Kt = le.colorModeForRenderPass(), [xr, Ir] = le.renderPass === "translucent" ? le.stencilConfigForOverlap(st) : [{}, st];
+ for (let ve of Ir) {
+ let be = Oe.getTile(ve);
+ be.needsHillshadePrepare !== void 0 && be.needsHillshadePrepare && le.renderPass === "offscreen" ? Nl(le, be, Ze, Yt, Ko.disabled, Kt) : le.renderPass === "translucent" && of(le, ve, be, Ze, Yt, xr[ve.overscaledZ], Kt);
+ }
+ Tt.viewport.set([0, 0, le.width, le.height]);
+ })(w, B, Q, ee);
+ break;
+ case "raster":
+ (function(le, Oe, Ze, st) {
+ if (le.renderPass !== "translucent" || Ze.paint.get("raster-opacity") === 0 || !st.length) return;
+ let Tt = le.context, Yt = Tt.gl, Kt = Oe.getSource(), xr = le.useProgram("raster"), Ir = le.colorModeForRenderPass(), [ve, be] = Kt instanceof Wt ? [{}, st] : le.stencilConfigForOverlap(st), Re = be[be.length - 1].overscaledZ, qe = !le.options.moving;
+ for (let et of be) {
+ let Xe = le.depthModeForSublayer(et.overscaledZ - Re, Ze.paint.get("raster-opacity") === 1 ? Po.ReadWrite : Po.ReadOnly, Yt.LESS), it = Oe.getTile(et);
+ it.registerFadeDuration(Ze.paint.get("raster-fade-duration"));
+ let Ft = Oe.findLoadedParent(et, 0), Ht = Oe.findLoadedSibling(et), tr = Kc(it, Ft || Ht || null, Oe, Ze, le.transform, le.style.map.terrain), dr, Sr, Or = Ze.paint.get("raster-resampling") === "nearest" ? Yt.NEAREST : Yt.LINEAR;
+ Tt.activeTexture.set(Yt.TEXTURE0), it.texture.bind(Or, Yt.CLAMP_TO_EDGE, Yt.LINEAR_MIPMAP_NEAREST), Tt.activeTexture.set(Yt.TEXTURE1), Ft ? (Ft.texture.bind(Or, Yt.CLAMP_TO_EDGE, Yt.LINEAR_MIPMAP_NEAREST), dr = Math.pow(2, Ft.tileID.overscaledZ - it.tileID.overscaledZ), Sr = [it.tileID.canonical.x * dr % 1, it.tileID.canonical.y * dr % 1]) : it.texture.bind(Or, Yt.CLAMP_TO_EDGE, Yt.LINEAR_MIPMAP_NEAREST), it.texture.useMipmap && Tt.extTextureFilterAnisotropic && le.transform.pitch > 20 && Yt.texParameterf(Yt.TEXTURE_2D, Tt.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, Tt.extTextureFilterAnisotropicMax);
+ let Wr = le.style.map.terrain && le.style.map.terrain.getTerrainData(et), ni = Wr ? et : null, Pi = ni ? ni.posMatrix : le.transform.calculatePosMatrix(et.toUnwrapped(), qe), cn = cl(Pi, Sr || [0, 0], dr || 1, tr, Ze);
+ Kt instanceof Wt ? xr.draw(Tt, Yt.TRIANGLES, Xe, Ko.disabled, Ir, Pa.disabled, cn, Wr, Ze.id, Kt.boundsBuffer, le.quadTriangleIndexBuffer, Kt.boundsSegments) : xr.draw(Tt, Yt.TRIANGLES, Xe, ve[et.overscaledZ], Ir, Pa.disabled, cn, Wr, Ze.id, le.rasterBoundsBuffer, le.quadTriangleIndexBuffer, le.rasterBoundsSegments);
+ }
+ })(w, B, Q, ee);
+ break;
+ case "background":
+ (function(le, Oe, Ze, st) {
+ let Tt = Ze.paint.get("background-color"), Yt = Ze.paint.get("background-opacity");
+ if (Yt === 0) return;
+ let Kt = le.context, xr = Kt.gl, Ir = le.transform, ve = Ir.tileSize, be = Ze.paint.get("background-pattern");
+ if (le.isPatternMissing(be)) return;
+ let Re = !be && Tt.a === 1 && Yt === 1 && le.opaquePassEnabledForLayer() ? "opaque" : "translucent";
+ if (le.renderPass !== Re) return;
+ let qe = Ko.disabled, et = le.depthModeForSublayer(0, Re === "opaque" ? Po.ReadWrite : Po.ReadOnly), Xe = le.colorModeForRenderPass(), it = le.useProgram(be ? "backgroundPattern" : "background"), Ft = st || Ir.coveringTiles({ tileSize: ve, terrain: le.style.map.terrain });
+ be && (Kt.activeTexture.set(xr.TEXTURE0), le.imageManager.bind(le.context));
+ let Ht = Ze.getCrossfadeParameters();
+ for (let tr of Ft) {
+ let dr = st ? tr.posMatrix : le.transform.calculatePosMatrix(tr.toUnwrapped()), Sr = be ? Su(dr, Yt, le, be, { tileID: tr, tileSize: ve }, Ht) : Yl(dr, Yt, Tt), Or = le.style.map.terrain && le.style.map.terrain.getTerrainData(tr);
+ it.draw(Kt, xr.TRIANGLES, et, qe, Xe, Pa.disabled, Sr, Or, Ze.id, le.tileExtentBuffer, le.quadTriangleIndexBuffer, le.tileExtentSegments);
+ }
+ })(w, 0, Q, ee);
+ break;
+ case "custom":
+ (function(le, Oe, Ze) {
+ let st = le.context, Tt = Ze.implementation;
+ if (le.renderPass === "offscreen") {
+ let Yt = Tt.prerender;
+ Yt && (le.setCustomLayerDefaults(), st.setColorMode(le.colorModeForRenderPass()), Yt.call(Tt, st.gl, le.transform.customLayerMatrix()), st.setDirty(), le.setBaseState());
+ } else if (le.renderPass === "translucent") {
+ le.setCustomLayerDefaults(), st.setColorMode(le.colorModeForRenderPass()), st.setStencilMode(Ko.disabled);
+ let Yt = Tt.renderingMode === "3d" ? new Po(le.context.gl.LEQUAL, Po.ReadWrite, le.depthRangeFor3D) : le.depthModeForSublayer(0, Po.ReadOnly);
+ st.setDepthMode(Yt), Tt.render(st.gl, le.transform.customLayerMatrix(), { farZ: le.transform.farZ, nearZ: le.transform.nearZ, fov: le.transform._fov, modelViewProjectionMatrix: le.transform.modelViewProjectionMatrix, projectionMatrix: le.transform.projectionMatrix }), st.setDirty(), le.setBaseState(), st.bindFramebuffer.set(null);
+ }
+ })(w, 0, Q);
+ }
+ }
+ translatePosMatrix(w, B, Q, ee, le) {
+ if (!Q[0] && !Q[1]) return w;
+ let Oe = le ? ee === "map" ? this.transform.angle : 0 : ee === "viewport" ? -this.transform.angle : 0;
+ if (Oe) {
+ let Tt = Math.sin(Oe), Yt = Math.cos(Oe);
+ Q = [Q[0] * Yt - Q[1] * Tt, Q[0] * Tt + Q[1] * Yt];
+ }
+ let Ze = [le ? Q[0] : In(B, Q[0], this.transform.zoom), le ? Q[1] : In(B, Q[1], this.transform.zoom), 0], st = new Float32Array(16);
+ return a.J(st, w, Ze), st;
+ }
+ saveTileTexture(w) {
+ let B = this._tileTextures[w.size[0]];
+ B ? B.push(w) : this._tileTextures[w.size[0]] = [w];
+ }
+ getTileTexture(w) {
+ let B = this._tileTextures[w];
+ return B && B.length > 0 ? B.pop() : null;
+ }
+ isPatternMissing(w) {
+ if (!w) return false;
+ if (!w.from || !w.to) return true;
+ let B = this.imageManager.getPattern(w.from.toString()), Q = this.imageManager.getPattern(w.to.toString());
+ return !B || !Q;
+ }
+ useProgram(w, B) {
+ this.cache = this.cache || {};
+ let Q = w + (B ? B.cacheKey : "") + (this._showOverdrawInspector ? "/overdraw" : "") + (this.style.map.terrain ? "/terrain" : "");
+ return this.cache[Q] || (this.cache[Q] = new hn(this.context, jn[w], B, nc[w], this._showOverdrawInspector, this.style.map.terrain)), this.cache[Q];
+ }
+ setCustomLayerDefaults() {
+ this.context.unbindVAO(), this.context.cullFace.setDefault(), this.context.activeTexture.setDefault(), this.context.pixelStoreUnpack.setDefault(), this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.context.pixelStoreUnpackFlipY.setDefault();
+ }
+ setBaseState() {
+ let w = this.context.gl;
+ this.context.cullFace.set(false), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(w.FUNC_ADD);
+ }
+ initDebugOverlayCanvas() {
+ this.debugOverlayCanvas == null && (this.debugOverlayCanvas = document.createElement("canvas"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new g(this.context, this.debugOverlayCanvas, this.context.gl.RGBA));
+ }
+ destroy() {
+ this.debugOverlayTexture && this.debugOverlayTexture.destroy();
+ }
+ overLimit() {
+ let { drawingBufferWidth: w, drawingBufferHeight: B } = this.context.gl;
+ return this.width !== w || this.height !== B;
+ }
+ }
+ class ks {
+ constructor(w, B) {
+ this.points = w, this.planes = B;
+ }
+ static fromInvProjectionMatrix(w, B, Q) {
+ let ee = Math.pow(2, Q), le = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]].map((Ze) => {
+ let st = 1 / (Ze = a.af([], Ze, w))[3] / B * ee;
+ return a.b1(Ze, Ze, [st, st, 1 / Ze[3], st]);
+ }), Oe = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]].map((Ze) => {
+ let st = function(xr, Ir) {
+ var ve = Ir[0], be = Ir[1], Re = Ir[2], qe = ve * ve + be * be + Re * Re;
+ return qe > 0 && (qe = 1 / Math.sqrt(qe)), xr[0] = Ir[0] * qe, xr[1] = Ir[1] * qe, xr[2] = Ir[2] * qe, xr;
+ }([], function(xr, Ir, ve) {
+ var be = Ir[0], Re = Ir[1], qe = Ir[2], et = ve[0], Xe = ve[1], it = ve[2];
+ return xr[0] = Re * it - qe * Xe, xr[1] = qe * et - be * it, xr[2] = be * Xe - Re * et, xr;
+ }([], L([], le[Ze[0]], le[Ze[1]]), L([], le[Ze[2]], le[Ze[1]]))), Tt = -((Yt = st)[0] * (Kt = le[Ze[1]])[0] + Yt[1] * Kt[1] + Yt[2] * Kt[2]);
+ var Yt, Kt;
+ return st.concat(Tt);
+ });
+ return new ks(le, Oe);
+ }
+ }
+ class bc {
+ constructor(w, B) {
+ this.min = w, this.max = B, this.center = function(Q, ee, le) {
+ return Q[0] = 0.5 * ee[0], Q[1] = 0.5 * ee[1], Q[2] = 0.5 * ee[2], Q;
+ }([], function(Q, ee, le) {
+ return Q[0] = ee[0] + le[0], Q[1] = ee[1] + le[1], Q[2] = ee[2] + le[2], Q;
+ }([], this.min, this.max));
+ }
+ quadrant(w) {
+ let B = [w % 2 == 0, w < 2], Q = E(this.min), ee = E(this.max);
+ for (let le = 0; le < B.length; le++) Q[le] = B[le] ? this.min[le] : this.center[le], ee[le] = B[le] ? this.center[le] : this.max[le];
+ return ee[2] = this.max[2], new bc(Q, ee);
+ }
+ distanceX(w) {
+ return Math.max(Math.min(this.max[0], w[0]), this.min[0]) - w[0];
+ }
+ distanceY(w) {
+ return Math.max(Math.min(this.max[1], w[1]), this.min[1]) - w[1];
+ }
+ intersects(w) {
+ let B = [[this.min[0], this.min[1], this.min[2], 1], [this.max[0], this.min[1], this.min[2], 1], [this.max[0], this.max[1], this.min[2], 1], [this.min[0], this.max[1], this.min[2], 1], [this.min[0], this.min[1], this.max[2], 1], [this.max[0], this.min[1], this.max[2], 1], [this.max[0], this.max[1], this.max[2], 1], [this.min[0], this.max[1], this.max[2], 1]], Q = true;
+ for (let ee = 0; ee < w.planes.length; ee++) {
+ let le = w.planes[ee], Oe = 0;
+ for (let Ze = 0; Ze < B.length; Ze++) a.b2(le, B[Ze]) >= 0 && Oe++;
+ if (Oe === 0) return 0;
+ Oe !== B.length && (Q = false);
+ }
+ if (Q) return 2;
+ for (let ee = 0; ee < 3; ee++) {
+ let le = Number.MAX_VALUE, Oe = -Number.MAX_VALUE;
+ for (let Ze = 0; Ze < w.points.length; Ze++) {
+ let st = w.points[Ze][ee] - this.min[ee];
+ le = Math.min(le, st), Oe = Math.max(Oe, st);
+ }
+ if (Oe < 0 || le > this.max[ee] - this.min[ee]) return 0;
+ }
+ return 1;
+ }
+ }
+ class hu {
+ constructor(w = 0, B = 0, Q = 0, ee = 0) {
+ if (isNaN(w) || w < 0 || isNaN(B) || B < 0 || isNaN(Q) || Q < 0 || isNaN(ee) || ee < 0) throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");
+ this.top = w, this.bottom = B, this.left = Q, this.right = ee;
+ }
+ interpolate(w, B, Q) {
+ return B.top != null && w.top != null && (this.top = a.y.number(w.top, B.top, Q)), B.bottom != null && w.bottom != null && (this.bottom = a.y.number(w.bottom, B.bottom, Q)), B.left != null && w.left != null && (this.left = a.y.number(w.left, B.left, Q)), B.right != null && w.right != null && (this.right = a.y.number(w.right, B.right, Q)), this;
+ }
+ getCenter(w, B) {
+ let Q = a.ac((this.left + w - this.right) / 2, 0, w), ee = a.ac((this.top + B - this.bottom) / 2, 0, B);
+ return new a.P(Q, ee);
+ }
+ equals(w) {
+ return this.top === w.top && this.bottom === w.bottom && this.left === w.left && this.right === w.right;
+ }
+ clone() {
+ return new hu(this.top, this.bottom, this.left, this.right);
+ }
+ toJSON() {
+ return { top: this.top, bottom: this.bottom, left: this.left, right: this.right };
+ }
+ }
+ let _u = 85.051129;
+ class nl {
+ constructor(w, B, Q, ee, le) {
+ this.tileSize = 512, this._renderWorldCopies = le === void 0 || !!le, this._minZoom = w || 0, this._maxZoom = B || 22, this._minPitch = Q == null ? 0 : Q, this._maxPitch = ee == null ? 60 : ee, this.setMaxBounds(), this.width = 0, this.height = 0, this._center = new a.N(0, 0), this._elevation = 0, this.zoom = 0, this.angle = 0, this._fov = 0.6435011087932844, this._pitch = 0, this._unmodified = true, this._edgeInsets = new hu(), this._posMatrixCache = {}, this._alignedPosMatrixCache = {}, this._fogMatrixCache = {}, this.minElevationForCurrentTile = 0;
+ }
+ clone() {
+ let w = new nl(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies);
+ return w.apply(this), w;
+ }
+ apply(w) {
+ this.tileSize = w.tileSize, this.latRange = w.latRange, this.lngRange = w.lngRange, this.width = w.width, this.height = w.height, this._center = w._center, this._elevation = w._elevation, this.minElevationForCurrentTile = w.minElevationForCurrentTile, this.zoom = w.zoom, this.angle = w.angle, this._fov = w._fov, this._pitch = w._pitch, this._unmodified = w._unmodified, this._edgeInsets = w._edgeInsets.clone(), this._calcMatrices();
+ }
+ get minZoom() {
+ return this._minZoom;
+ }
+ set minZoom(w) {
+ this._minZoom !== w && (this._minZoom = w, this.zoom = Math.max(this.zoom, w));
+ }
+ get maxZoom() {
+ return this._maxZoom;
+ }
+ set maxZoom(w) {
+ this._maxZoom !== w && (this._maxZoom = w, this.zoom = Math.min(this.zoom, w));
+ }
+ get minPitch() {
+ return this._minPitch;
+ }
+ set minPitch(w) {
+ this._minPitch !== w && (this._minPitch = w, this.pitch = Math.max(this.pitch, w));
+ }
+ get maxPitch() {
+ return this._maxPitch;
+ }
+ set maxPitch(w) {
+ this._maxPitch !== w && (this._maxPitch = w, this.pitch = Math.min(this.pitch, w));
+ }
+ get renderWorldCopies() {
+ return this._renderWorldCopies;
+ }
+ set renderWorldCopies(w) {
+ w === void 0 ? w = true : w === null && (w = false), this._renderWorldCopies = w;
+ }
+ get worldSize() {
+ return this.tileSize * this.scale;
+ }
+ get centerOffset() {
+ return this.centerPoint._sub(this.size._div(2));
+ }
+ get size() {
+ return new a.P(this.width, this.height);
+ }
+ get bearing() {
+ return -this.angle / Math.PI * 180;
+ }
+ set bearing(w) {
+ let B = -a.b3(w, -180, 180) * Math.PI / 180;
+ this.angle !== B && (this._unmodified = false, this.angle = B, this._calcMatrices(), this.rotationMatrix = function() {
+ var Q = new a.A(4);
+ return a.A != Float32Array && (Q[1] = 0, Q[2] = 0), Q[0] = 1, Q[3] = 1, Q;
+ }(), function(Q, ee, le) {
+ var Oe = ee[0], Ze = ee[1], st = ee[2], Tt = ee[3], Yt = Math.sin(le), Kt = Math.cos(le);
+ Q[0] = Oe * Kt + st * Yt, Q[1] = Ze * Kt + Tt * Yt, Q[2] = Oe * -Yt + st * Kt, Q[3] = Ze * -Yt + Tt * Kt;
+ }(this.rotationMatrix, this.rotationMatrix, this.angle));
+ }
+ get pitch() {
+ return this._pitch / Math.PI * 180;
+ }
+ set pitch(w) {
+ let B = a.ac(w, this.minPitch, this.maxPitch) / 180 * Math.PI;
+ this._pitch !== B && (this._unmodified = false, this._pitch = B, this._calcMatrices());
+ }
+ get fov() {
+ return this._fov / Math.PI * 180;
+ }
+ set fov(w) {
+ w = Math.max(0.01, Math.min(60, w)), this._fov !== w && (this._unmodified = false, this._fov = w / 180 * Math.PI, this._calcMatrices());
+ }
+ get zoom() {
+ return this._zoom;
+ }
+ set zoom(w) {
+ let B = Math.min(Math.max(w, this.minZoom), this.maxZoom);
+ this._zoom !== B && (this._unmodified = false, this._zoom = B, this.tileZoom = Math.max(0, Math.floor(B)), this.scale = this.zoomScale(B), this._constrain(), this._calcMatrices());
+ }
+ get center() {
+ return this._center;
+ }
+ set center(w) {
+ w.lat === this._center.lat && w.lng === this._center.lng || (this._unmodified = false, this._center = w, this._constrain(), this._calcMatrices());
+ }
+ get elevation() {
+ return this._elevation;
+ }
+ set elevation(w) {
+ w !== this._elevation && (this._elevation = w, this._constrain(), this._calcMatrices());
+ }
+ get padding() {
+ return this._edgeInsets.toJSON();
+ }
+ set padding(w) {
+ this._edgeInsets.equals(w) || (this._unmodified = false, this._edgeInsets.interpolate(this._edgeInsets, w, 1), this._calcMatrices());
+ }
+ get centerPoint() {
+ return this._edgeInsets.getCenter(this.width, this.height);
+ }
+ isPaddingEqual(w) {
+ return this._edgeInsets.equals(w);
+ }
+ interpolatePadding(w, B, Q) {
+ this._unmodified = false, this._edgeInsets.interpolate(w, B, Q), this._constrain(), this._calcMatrices();
+ }
+ coveringZoomLevel(w) {
+ let B = (w.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / w.tileSize));
+ return Math.max(0, B);
+ }
+ getVisibleUnwrappedCoordinates(w) {
+ let B = [new a.b4(0, w)];
+ if (this._renderWorldCopies) {
+ let Q = this.pointCoordinate(new a.P(0, 0)), ee = this.pointCoordinate(new a.P(this.width, 0)), le = this.pointCoordinate(new a.P(this.width, this.height)), Oe = this.pointCoordinate(new a.P(0, this.height)), Ze = Math.floor(Math.min(Q.x, ee.x, le.x, Oe.x)), st = Math.floor(Math.max(Q.x, ee.x, le.x, Oe.x)), Tt = 1;
+ for (let Yt = Ze - Tt; Yt <= st + Tt; Yt++) Yt !== 0 && B.push(new a.b4(Yt, w));
+ }
+ return B;
+ }
+ coveringTiles(w) {
+ var B, Q;
+ let ee = this.coveringZoomLevel(w), le = ee;
+ if (w.minzoom !== void 0 && ee < w.minzoom) return [];
+ w.maxzoom !== void 0 && ee > w.maxzoom && (ee = w.maxzoom);
+ let Oe = this.pointCoordinate(this.getCameraPoint()), Ze = a.Z.fromLngLat(this.center), st = Math.pow(2, ee), Tt = [st * Oe.x, st * Oe.y, 0], Yt = [st * Ze.x, st * Ze.y, 0], Kt = ks.fromInvProjectionMatrix(this.invModelViewProjectionMatrix, this.worldSize, ee), xr = w.minzoom || 0;
+ !w.terrain && this.pitch <= 60 && this._edgeInsets.top < 0.1 && (xr = ee);
+ let Ir = w.terrain ? 2 / Math.min(this.tileSize, w.tileSize) * this.tileSize : 3, ve = (Xe) => ({ aabb: new bc([Xe * st, 0, 0], [(Xe + 1) * st, st, 0]), zoom: 0, x: 0, y: 0, wrap: Xe, fullyVisible: false }), be = [], Re = [], qe = ee, et = w.reparseOverscaled ? le : ee;
+ if (this._renderWorldCopies) for (let Xe = 1; Xe <= 3; Xe++) be.push(ve(-Xe)), be.push(ve(Xe));
+ for (be.push(ve(0)); be.length > 0; ) {
+ let Xe = be.pop(), it = Xe.x, Ft = Xe.y, Ht = Xe.fullyVisible;
+ if (!Ht) {
+ let Wr = Xe.aabb.intersects(Kt);
+ if (Wr === 0) continue;
+ Ht = Wr === 2;
+ }
+ let tr = w.terrain ? Tt : Yt, dr = Xe.aabb.distanceX(tr), Sr = Xe.aabb.distanceY(tr), Or = Math.max(Math.abs(dr), Math.abs(Sr));
+ if (Xe.zoom === qe || Or > Ir + (1 << qe - Xe.zoom) - 2 && Xe.zoom >= xr) {
+ let Wr = qe - Xe.zoom, ni = Tt[0] - 0.5 - (it << Wr), Pi = Tt[1] - 0.5 - (Ft << Wr);
+ Re.push({ tileID: new a.S(Xe.zoom === qe ? et : Xe.zoom, Xe.wrap, Xe.zoom, it, Ft), distanceSq: x([Yt[0] - 0.5 - it, Yt[1] - 0.5 - Ft]), tileDistanceToCamera: Math.sqrt(ni * ni + Pi * Pi) });
+ } else for (let Wr = 0; Wr < 4; Wr++) {
+ let ni = (it << 1) + Wr % 2, Pi = (Ft << 1) + (Wr >> 1), cn = Xe.zoom + 1, ln = Xe.aabb.quadrant(Wr);
+ if (w.terrain) {
+ let Cn = new a.S(cn, Xe.wrap, cn, ni, Pi), Kn = w.terrain.getMinMaxElevation(Cn), Aa = (B = Kn.minElevation) !== null && B !== void 0 ? B : this.elevation, fa = (Q = Kn.maxElevation) !== null && Q !== void 0 ? Q : this.elevation;
+ ln = new bc([ln.min[0], ln.min[1], Aa], [ln.max[0], ln.max[1], fa]);
+ }
+ be.push({ aabb: ln, zoom: cn, x: ni, y: Pi, wrap: Xe.wrap, fullyVisible: Ht });
+ }
+ }
+ return Re.sort((Xe, it) => Xe.distanceSq - it.distanceSq).map((Xe) => Xe.tileID);
+ }
+ resize(w, B) {
+ this.width = w, this.height = B, this.pixelsToGLUnits = [2 / w, -2 / B], this._constrain(), this._calcMatrices();
+ }
+ get unmodified() {
+ return this._unmodified;
+ }
+ zoomScale(w) {
+ return Math.pow(2, w);
+ }
+ scaleZoom(w) {
+ return Math.log(w) / Math.LN2;
+ }
+ project(w) {
+ let B = a.ac(w.lat, -85.051129, _u);
+ return new a.P(a.O(w.lng) * this.worldSize, a.Q(B) * this.worldSize);
+ }
+ unproject(w) {
+ return new a.Z(w.x / this.worldSize, w.y / this.worldSize).toLngLat();
+ }
+ get point() {
+ return this.project(this.center);
+ }
+ getCameraPosition() {
+ return { lngLat: this.pointLocation(this.getCameraPoint()), altitude: Math.cos(this._pitch) * this.cameraToCenterDistance / this._pixelPerMeter + this.elevation };
+ }
+ recalculateZoom(w) {
+ let B = this.elevation, Q = Math.cos(this._pitch) * this.cameraToCenterDistance / this._pixelPerMeter, ee = this.pointLocation(this.centerPoint, w), le = w.getElevationForLngLatZoom(ee, this.tileZoom);
+ if (!(this.elevation - le)) return;
+ let Oe = Q + B - le, Ze = Math.cos(this._pitch) * this.cameraToCenterDistance / Oe / a.b5(1, ee.lat), st = this.scaleZoom(Ze / this.tileSize);
+ this._elevation = le, this._center = ee, this.zoom = st;
+ }
+ setLocationAtPoint(w, B) {
+ let Q = this.pointCoordinate(B), ee = this.pointCoordinate(this.centerPoint), le = this.locationCoordinate(w), Oe = new a.Z(le.x - (Q.x - ee.x), le.y - (Q.y - ee.y));
+ this.center = this.coordinateLocation(Oe), this._renderWorldCopies && (this.center = this.center.wrap());
+ }
+ locationPoint(w, B) {
+ return B ? this.coordinatePoint(this.locationCoordinate(w), B.getElevationForLngLatZoom(w, this.tileZoom), this.pixelMatrix3D) : this.coordinatePoint(this.locationCoordinate(w));
+ }
+ pointLocation(w, B) {
+ return this.coordinateLocation(this.pointCoordinate(w, B));
+ }
+ locationCoordinate(w) {
+ return a.Z.fromLngLat(w);
+ }
+ coordinateLocation(w) {
+ return w && w.toLngLat();
+ }
+ pointCoordinate(w, B) {
+ if (B) {
+ let xr = B.pointCoordinate(w);
+ if (xr != null) return xr;
+ }
+ let Q = [w.x, w.y, 0, 1], ee = [w.x, w.y, 1, 1];
+ a.af(Q, Q, this.pixelMatrixInverse), a.af(ee, ee, this.pixelMatrixInverse);
+ let le = Q[3], Oe = ee[3], Ze = Q[1] / le, st = ee[1] / Oe, Tt = Q[2] / le, Yt = ee[2] / Oe, Kt = Tt === Yt ? 0 : (0 - Tt) / (Yt - Tt);
+ return new a.Z(a.y.number(Q[0] / le, ee[0] / Oe, Kt) / this.worldSize, a.y.number(Ze, st, Kt) / this.worldSize);
+ }
+ coordinatePoint(w, B = 0, Q = this.pixelMatrix) {
+ let ee = [w.x * this.worldSize, w.y * this.worldSize, B, 1];
+ return a.af(ee, ee, Q), new a.P(ee[0] / ee[3], ee[1] / ee[3]);
+ }
+ getBounds() {
+ let w = Math.max(0, this.height / 2 - this.getHorizon());
+ return new ce().extend(this.pointLocation(new a.P(0, w))).extend(this.pointLocation(new a.P(this.width, w))).extend(this.pointLocation(new a.P(this.width, this.height))).extend(this.pointLocation(new a.P(0, this.height)));
+ }
+ getMaxBounds() {
+ return this.latRange && this.latRange.length === 2 && this.lngRange && this.lngRange.length === 2 ? new ce([this.lngRange[0], this.latRange[0]], [this.lngRange[1], this.latRange[1]]) : null;
+ }
+ getHorizon() {
+ return Math.tan(Math.PI / 2 - this._pitch) * this.cameraToCenterDistance * 0.85;
+ }
+ setMaxBounds(w) {
+ w ? (this.lngRange = [w.getWest(), w.getEast()], this.latRange = [w.getSouth(), w.getNorth()], this._constrain()) : (this.lngRange = null, this.latRange = [-85.051129, _u]);
+ }
+ calculateTileMatrix(w) {
+ let B = w.canonical, Q = this.worldSize / this.zoomScale(B.z), ee = B.x + Math.pow(2, B.z) * w.wrap, le = a.an(new Float64Array(16));
+ return a.J(le, le, [ee * Q, B.y * Q, 0]), a.K(le, le, [Q / a.X, Q / a.X, 1]), le;
+ }
+ calculatePosMatrix(w, B = false) {
+ let Q = w.key, ee = B ? this._alignedPosMatrixCache : this._posMatrixCache;
+ if (ee[Q]) return ee[Q];
+ let le = this.calculateTileMatrix(w);
+ return a.L(le, B ? this.alignedModelViewProjectionMatrix : this.modelViewProjectionMatrix, le), ee[Q] = new Float32Array(le), ee[Q];
+ }
+ calculateFogMatrix(w) {
+ let B = w.key, Q = this._fogMatrixCache;
+ if (Q[B]) return Q[B];
+ let ee = this.calculateTileMatrix(w);
+ return a.L(ee, this.fogMatrix, ee), Q[B] = new Float32Array(ee), Q[B];
+ }
+ customLayerMatrix() {
+ return this.mercatorMatrix.slice();
+ }
+ getConstrained(w, B) {
+ B = a.ac(+B, this.minZoom, this.maxZoom);
+ let Q = { center: new a.N(w.lng, w.lat), zoom: B }, ee = this.lngRange;
+ if (!this._renderWorldCopies && ee === null) {
+ let Xe = 179.9999999999;
+ ee = [-179.9999999999, Xe];
+ }
+ let le = this.tileSize * this.zoomScale(Q.zoom), Oe = 0, Ze = le, st = 0, Tt = le, Yt = 0, Kt = 0, { x: xr, y: Ir } = this.size;
+ if (this.latRange) {
+ let Xe = this.latRange;
+ Oe = a.Q(Xe[1]) * le, Ze = a.Q(Xe[0]) * le, Ze - Oe < Ir && (Yt = Ir / (Ze - Oe));
+ }
+ ee && (st = a.b3(a.O(ee[0]) * le, 0, le), Tt = a.b3(a.O(ee[1]) * le, 0, le), Tt < st && (Tt += le), Tt - st < xr && (Kt = xr / (Tt - st)));
+ let { x: ve, y: be } = this.project.call({ worldSize: le }, w), Re, qe, et = Math.max(Kt || 0, Yt || 0);
+ if (et) {
+ let Xe = new a.P(Kt ? (Tt + st) / 2 : ve, Yt ? (Ze + Oe) / 2 : be);
+ return Q.center = this.unproject.call({ worldSize: le }, Xe).wrap(), Q.zoom += this.scaleZoom(et), Q;
+ }
+ if (this.latRange) {
+ let Xe = Ir / 2;
+ be - Xe < Oe && (qe = Oe + Xe), be + Xe > Ze && (qe = Ze - Xe);
+ }
+ if (ee) {
+ let Xe = (st + Tt) / 2, it = ve;
+ this._renderWorldCopies && (it = a.b3(ve, Xe - le / 2, Xe + le / 2));
+ let Ft = xr / 2;
+ it - Ft < st && (Re = st + Ft), it + Ft > Tt && (Re = Tt - Ft);
+ }
+ if (Re !== void 0 || qe !== void 0) {
+ let Xe = new a.P(Re != null ? Re : ve, qe != null ? qe : be);
+ Q.center = this.unproject.call({ worldSize: le }, Xe).wrap();
+ }
+ return Q;
+ }
+ _constrain() {
+ if (!this.center || !this.width || !this.height || this._constraining) return;
+ this._constraining = true;
+ let w = this._unmodified, { center: B, zoom: Q } = this.getConstrained(this.center, this.zoom);
+ this.center = B, this.zoom = Q, this._unmodified = w, this._constraining = false;
+ }
+ _calcMatrices() {
+ if (!this.height) return;
+ let w = this.centerOffset, B = this.point.x, Q = this.point.y;
+ this.cameraToCenterDistance = 0.5 / Math.tan(this._fov / 2) * this.height, this._pixelPerMeter = a.b5(1, this.center.lat) * this.worldSize;
+ let ee = a.an(new Float64Array(16));
+ a.K(ee, ee, [this.width / 2, -this.height / 2, 1]), a.J(ee, ee, [1, -1, 0]), this.labelPlaneMatrix = ee, ee = a.an(new Float64Array(16)), a.K(ee, ee, [1, -1, 1]), a.J(ee, ee, [-1, -1, 0]), a.K(ee, ee, [2 / this.width, 2 / this.height, 1]), this.glCoordMatrix = ee;
+ let le = this.cameraToCenterDistance + this._elevation * this._pixelPerMeter / Math.cos(this._pitch), Oe = Math.min(this.elevation, this.minElevationForCurrentTile), Ze = le - Oe * this._pixelPerMeter / Math.cos(this._pitch), st = Oe < 0 ? Ze : le, Tt = Math.PI / 2 + this._pitch, Yt = this._fov * (0.5 + w.y / this.height), Kt = Math.sin(Yt) * st / Math.sin(a.ac(Math.PI - Tt - Yt, 0.01, Math.PI - 0.01)), xr = this.getHorizon(), Ir = 2 * Math.atan(xr / this.cameraToCenterDistance) * (0.5 + w.y / (2 * xr)), ve = Math.sin(Ir) * st / Math.sin(a.ac(Math.PI - Tt - Ir, 0.01, Math.PI - 0.01)), be = Math.min(Kt, ve);
+ this.farZ = 1.01 * (Math.cos(Math.PI / 2 - this._pitch) * be + st), this.nearZ = this.height / 50, ee = new Float64Array(16), a.b6(ee, this._fov, this.width / this.height, this.nearZ, this.farZ), ee[8] = 2 * -w.x / this.width, ee[9] = 2 * w.y / this.height, this.projectionMatrix = a.ae(ee), a.K(ee, ee, [1, -1, 1]), a.J(ee, ee, [0, 0, -this.cameraToCenterDistance]), a.b7(ee, ee, this._pitch), a.ad(ee, ee, this.angle), a.J(ee, ee, [-B, -Q, 0]), this.mercatorMatrix = a.K([], ee, [this.worldSize, this.worldSize, this.worldSize]), a.K(ee, ee, [1, 1, this._pixelPerMeter]), this.pixelMatrix = a.L(new Float64Array(16), this.labelPlaneMatrix, ee), a.J(ee, ee, [0, 0, -this.elevation]), this.modelViewProjectionMatrix = ee, this.invModelViewProjectionMatrix = a.as([], ee), this.fogMatrix = new Float64Array(16), a.b6(this.fogMatrix, this._fov, this.width / this.height, le, this.farZ), this.fogMatrix[8] = 2 * -w.x / this.width, this.fogMatrix[9] = 2 * w.y / this.height, a.K(this.fogMatrix, this.fogMatrix, [1, -1, 1]), a.J(this.fogMatrix, this.fogMatrix, [0, 0, -this.cameraToCenterDistance]), a.b7(this.fogMatrix, this.fogMatrix, this._pitch), a.ad(this.fogMatrix, this.fogMatrix, this.angle), a.J(this.fogMatrix, this.fogMatrix, [-B, -Q, 0]), a.K(this.fogMatrix, this.fogMatrix, [1, 1, this._pixelPerMeter]), a.J(this.fogMatrix, this.fogMatrix, [0, 0, -this.elevation]), this.pixelMatrix3D = a.L(new Float64Array(16), this.labelPlaneMatrix, ee);
+ let Re = this.width % 2 / 2, qe = this.height % 2 / 2, et = Math.cos(this.angle), Xe = Math.sin(this.angle), it = B - Math.round(B) + et * Re + Xe * qe, Ft = Q - Math.round(Q) + et * qe + Xe * Re, Ht = new Float64Array(ee);
+ if (a.J(Ht, Ht, [it > 0.5 ? it - 1 : it, Ft > 0.5 ? Ft - 1 : Ft, 0]), this.alignedModelViewProjectionMatrix = Ht, ee = a.as(new Float64Array(16), this.pixelMatrix), !ee) throw new Error("failed to invert matrix");
+ this.pixelMatrixInverse = ee, this._posMatrixCache = {}, this._alignedPosMatrixCache = {}, this._fogMatrixCache = {};
+ }
+ maxPitchScaleFactor() {
+ if (!this.pixelMatrixInverse) return 1;
+ let w = this.pointCoordinate(new a.P(0, 0)), B = [w.x * this.worldSize, w.y * this.worldSize, 0, 1];
+ return a.af(B, B, this.pixelMatrix)[3] / this.cameraToCenterDistance;
+ }
+ getCameraPoint() {
+ let w = Math.tan(this._pitch) * (this.cameraToCenterDistance || 1);
+ return this.centerPoint.add(new a.P(0, w));
+ }
+ getCameraQueryGeometry(w) {
+ let B = this.getCameraPoint();
+ if (w.length === 1) return [w[0], B];
+ {
+ let Q = B.x, ee = B.y, le = B.x, Oe = B.y;
+ for (let Ze of w) Q = Math.min(Q, Ze.x), ee = Math.min(ee, Ze.y), le = Math.max(le, Ze.x), Oe = Math.max(Oe, Ze.y);
+ return [new a.P(Q, ee), new a.P(le, ee), new a.P(le, Oe), new a.P(Q, Oe), new a.P(Q, ee)];
+ }
+ }
+ lngLatToCameraDepth(w, B) {
+ let Q = this.locationCoordinate(w), ee = [Q.x * this.worldSize, Q.y * this.worldSize, B, 1];
+ return a.af(ee, ee, this.modelViewProjectionMatrix), ee[2] / ee[3];
+ }
+ }
+ function nh(ue, w) {
+ let B, Q = false, ee = null, le = null, Oe = () => {
+ ee = null, Q && (ue.apply(le, B), ee = setTimeout(Oe, w), Q = false);
+ };
+ return (...Ze) => (Q = true, le = this, B = Ze, ee || Oe(), ee);
+ }
+ class Mh {
+ constructor(w) {
+ this._getCurrentHash = () => {
+ let B = window.location.hash.replace("#", "");
+ if (this._hashName) {
+ let Q;
+ return B.split("&").map((ee) => ee.split("=")).forEach((ee) => {
+ ee[0] === this._hashName && (Q = ee);
+ }), (Q && Q[1] || "").split("/");
+ }
+ return B.split("/");
+ }, this._onHashChange = () => {
+ let B = this._getCurrentHash();
+ if (B.length >= 3 && !B.some((Q) => isNaN(Q))) {
+ let Q = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(B[3] || 0) : this._map.getBearing();
+ return this._map.jumpTo({ center: [+B[2], +B[1]], zoom: +B[0], bearing: Q, pitch: +(B[4] || 0) }), true;
+ }
+ return false;
+ }, this._updateHashUnthrottled = () => {
+ let B = window.location.href.replace(/(#.*)?$/, this.getHashString());
+ window.history.replaceState(window.history.state, null, B);
+ }, this._removeHash = () => {
+ let B = this._getCurrentHash();
+ if (B.length === 0) return;
+ let Q = B.join("/"), ee = Q;
+ ee.split("&").length > 0 && (ee = ee.split("&")[0]), this._hashName && (ee = `${this._hashName}=${Q}`);
+ let le = window.location.hash.replace(ee, "");
+ le.startsWith("#&") ? le = le.slice(0, 1) + le.slice(2) : le === "#" && (le = "");
+ let Oe = window.location.href.replace(/(#.+)?$/, le);
+ Oe = Oe.replace("&&", "&"), window.history.replaceState(window.history.state, null, Oe);
+ }, this._updateHash = nh(this._updateHashUnthrottled, 300), this._hashName = w && encodeURIComponent(w);
+ }
+ addTo(w) {
+ return this._map = w, addEventListener("hashchange", this._onHashChange, false), this._map.on("moveend", this._updateHash), this;
+ }
+ remove() {
+ return removeEventListener("hashchange", this._onHashChange, false), this._map.off("moveend", this._updateHash), clearTimeout(this._updateHash()), this._removeHash(), delete this._map, this;
+ }
+ getHashString(w) {
+ let B = this._map.getCenter(), Q = Math.round(100 * this._map.getZoom()) / 100, ee = Math.ceil((Q * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), le = Math.pow(10, ee), Oe = Math.round(B.lng * le) / le, Ze = Math.round(B.lat * le) / le, st = this._map.getBearing(), Tt = this._map.getPitch(), Yt = "";
+ if (Yt += w ? `/${Oe}/${Ze}/${Q}` : `${Q}/${Ze}/${Oe}`, (st || Tt) && (Yt += "/" + Math.round(10 * st) / 10), Tt && (Yt += `/${Math.round(Tt)}`), this._hashName) {
+ let Kt = this._hashName, xr = false, Ir = window.location.hash.slice(1).split("&").map((ve) => {
+ let be = ve.split("=")[0];
+ return be === Kt ? (xr = true, `${be}=${Yt}`) : ve;
+ }).filter((ve) => ve);
+ return xr || Ir.push(`${Kt}=${Yt}`), `#${Ir.join("&")}`;
+ }
+ return `#${Yt}`;
+ }
+ }
+ let zu = { linearity: 0.3, easing: a.b8(0, 0, 0.3, 1) }, Fc = a.e({ deceleration: 2500, maxSpeed: 1400 }, zu), wc = a.e({ deceleration: 20, maxSpeed: 1400 }, zu), bd = a.e({ deceleration: 1e3, maxSpeed: 360 }, zu), xf = a.e({ deceleration: 1e3, maxSpeed: 90 }, zu);
+ class Pf {
+ constructor(w) {
+ this._map = w, this.clear();
+ }
+ clear() {
+ this._inertiaBuffer = [];
+ }
+ record(w) {
+ this._drainInertiaBuffer(), this._inertiaBuffer.push({ time: u.now(), settings: w });
+ }
+ _drainInertiaBuffer() {
+ let w = this._inertiaBuffer, B = u.now();
+ for (; w.length > 0 && B - w[0].time > 160; ) w.shift();
+ }
+ _onMoveEnd(w) {
+ if (this._drainInertiaBuffer(), this._inertiaBuffer.length < 2) return;
+ let B = { zoom: 0, bearing: 0, pitch: 0, pan: new a.P(0, 0), pinchAround: void 0, around: void 0 };
+ for (let { settings: le } of this._inertiaBuffer) B.zoom += le.zoomDelta || 0, B.bearing += le.bearingDelta || 0, B.pitch += le.pitchDelta || 0, le.panDelta && B.pan._add(le.panDelta), le.around && (B.around = le.around), le.pinchAround && (B.pinchAround = le.pinchAround);
+ let Q = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, ee = {};
+ if (B.pan.mag()) {
+ let le = bf(B.pan.mag(), Q, a.e({}, Fc, w || {}));
+ ee.offset = B.pan.mult(le.amount / B.pan.mag()), ee.center = this._map.transform.center, Ou(ee, le);
+ }
+ if (B.zoom) {
+ let le = bf(B.zoom, Q, wc);
+ ee.zoom = this._map.transform.zoom + le.amount, Ou(ee, le);
+ }
+ if (B.bearing) {
+ let le = bf(B.bearing, Q, bd);
+ ee.bearing = this._map.transform.bearing + a.ac(le.amount, -179, 179), Ou(ee, le);
+ }
+ if (B.pitch) {
+ let le = bf(B.pitch, Q, xf);
+ ee.pitch = this._map.transform.pitch + le.amount, Ou(ee, le);
+ }
+ if (ee.zoom || ee.bearing) {
+ let le = B.pinchAround === void 0 ? B.around : B.pinchAround;
+ ee.around = le ? this._map.unproject(le) : this._map.getCenter();
+ }
+ return this.clear(), a.e(ee, { noMoveStart: true });
+ }
+ }
+ function Ou(ue, w) {
+ (!ue.duration || ue.duration < w.duration) && (ue.duration = w.duration, ue.easing = w.easing);
+ }
+ function bf(ue, w, B) {
+ let { maxSpeed: Q, linearity: ee, deceleration: le } = B, Oe = a.ac(ue * ee / (w / 1e3), -Q, Q), Ze = Math.abs(Oe) / (le * ee);
+ return { easing: B.easing, duration: 1e3 * Ze, amount: Oe * (Ze / 2) };
+ }
+ class jl extends a.k {
+ preventDefault() {
+ this._defaultPrevented = true;
+ }
+ get defaultPrevented() {
+ return this._defaultPrevented;
+ }
+ constructor(w, B, Q, ee = {}) {
+ let le = c.mousePos(B.getCanvas(), Q), Oe = B.unproject(le);
+ super(w, a.e({ point: le, lngLat: Oe, originalEvent: Q }, ee)), this._defaultPrevented = false, this.target = B;
+ }
+ }
+ class lf extends a.k {
+ preventDefault() {
+ this._defaultPrevented = true;
+ }
+ get defaultPrevented() {
+ return this._defaultPrevented;
+ }
+ constructor(w, B, Q) {
+ let ee = w === "touchend" ? Q.changedTouches : Q.touches, le = c.touchPos(B.getCanvasContainer(), ee), Oe = le.map((st) => B.unproject(st)), Ze = le.reduce((st, Tt, Yt, Kt) => st.add(Tt.div(Kt.length)), new a.P(0, 0));
+ super(w, { points: le, point: Ze, lngLats: Oe, lngLat: B.unproject(Ze), originalEvent: Q }), this._defaultPrevented = false;
+ }
+ }
+ class Xh extends a.k {
+ preventDefault() {
+ this._defaultPrevented = true;
+ }
+ get defaultPrevented() {
+ return this._defaultPrevented;
+ }
+ constructor(w, B, Q) {
+ super(w, { originalEvent: Q }), this._defaultPrevented = false;
+ }
+ }
+ class If {
+ constructor(w, B) {
+ this._map = w, this._clickTolerance = B.clickTolerance;
+ }
+ reset() {
+ delete this._mousedownPos;
+ }
+ wheel(w) {
+ return this._firePreventable(new Xh(w.type, this._map, w));
+ }
+ mousedown(w, B) {
+ return this._mousedownPos = B, this._firePreventable(new jl(w.type, this._map, w));
+ }
+ mouseup(w) {
+ this._map.fire(new jl(w.type, this._map, w));
+ }
+ click(w, B) {
+ this._mousedownPos && this._mousedownPos.dist(B) >= this._clickTolerance || this._map.fire(new jl(w.type, this._map, w));
+ }
+ dblclick(w) {
+ return this._firePreventable(new jl(w.type, this._map, w));
+ }
+ mouseover(w) {
+ this._map.fire(new jl(w.type, this._map, w));
+ }
+ mouseout(w) {
+ this._map.fire(new jl(w.type, this._map, w));
+ }
+ touchstart(w) {
+ return this._firePreventable(new lf(w.type, this._map, w));
+ }
+ touchmove(w) {
+ this._map.fire(new lf(w.type, this._map, w));
+ }
+ touchend(w) {
+ this._map.fire(new lf(w.type, this._map, w));
+ }
+ touchcancel(w) {
+ this._map.fire(new lf(w.type, this._map, w));
+ }
+ _firePreventable(w) {
+ if (this._map.fire(w), w.defaultPrevented) return {};
+ }
+ isEnabled() {
+ return true;
+ }
+ isActive() {
+ return false;
+ }
+ enable() {
+ }
+ disable() {
+ }
+ }
+ class Cs {
+ constructor(w) {
+ this._map = w;
+ }
+ reset() {
+ this._delayContextMenu = false, this._ignoreContextMenu = true, delete this._contextMenuEvent;
+ }
+ mousemove(w) {
+ this._map.fire(new jl(w.type, this._map, w));
+ }
+ mousedown() {
+ this._delayContextMenu = true, this._ignoreContextMenu = false;
+ }
+ mouseup() {
+ this._delayContextMenu = false, this._contextMenuEvent && (this._map.fire(new jl("contextmenu", this._map, this._contextMenuEvent)), delete this._contextMenuEvent);
+ }
+ contextmenu(w) {
+ this._delayContextMenu ? this._contextMenuEvent = w : this._ignoreContextMenu || this._map.fire(new jl(w.type, this._map, w)), this._map.listens("contextmenu") && w.preventDefault();
+ }
+ isEnabled() {
+ return true;
+ }
+ isActive() {
+ return false;
+ }
+ enable() {
+ }
+ disable() {
+ }
+ }
+ class du {
+ constructor(w) {
+ this._map = w;
+ }
+ get transform() {
+ return this._map._requestedCameraState || this._map.transform;
+ }
+ get center() {
+ return { lng: this.transform.center.lng, lat: this.transform.center.lat };
+ }
+ get zoom() {
+ return this.transform.zoom;
+ }
+ get pitch() {
+ return this.transform.pitch;
+ }
+ get bearing() {
+ return this.transform.bearing;
+ }
+ unproject(w) {
+ return this.transform.pointLocation(a.P.convert(w), this._map.terrain);
+ }
+ }
+ class ku {
+ constructor(w, B) {
+ this._map = w, this._tr = new du(w), this._el = w.getCanvasContainer(), this._container = w.getContainer(), this._clickTolerance = B.clickTolerance || 1;
+ }
+ isEnabled() {
+ return !!this._enabled;
+ }
+ isActive() {
+ return !!this._active;
+ }
+ enable() {
+ this.isEnabled() || (this._enabled = true);
+ }
+ disable() {
+ this.isEnabled() && (this._enabled = false);
+ }
+ mousedown(w, B) {
+ this.isEnabled() && w.shiftKey && w.button === 0 && (c.disableDrag(), this._startPos = this._lastPos = B, this._active = true);
+ }
+ mousemoveWindow(w, B) {
+ if (!this._active) return;
+ let Q = B;
+ if (this._lastPos.equals(Q) || !this._box && Q.dist(this._startPos) < this._clickTolerance) return;
+ let ee = this._startPos;
+ this._lastPos = Q, this._box || (this._box = c.create("div", "maplibregl-boxzoom", this._container), this._container.classList.add("maplibregl-crosshair"), this._fireEvent("boxzoomstart", w));
+ let le = Math.min(ee.x, Q.x), Oe = Math.max(ee.x, Q.x), Ze = Math.min(ee.y, Q.y), st = Math.max(ee.y, Q.y);
+ c.setTransform(this._box, `translate(${le}px,${Ze}px)`), this._box.style.width = Oe - le + "px", this._box.style.height = st - Ze + "px";
+ }
+ mouseupWindow(w, B) {
+ if (!this._active || w.button !== 0) return;
+ let Q = this._startPos, ee = B;
+ if (this.reset(), c.suppressClick(), Q.x !== ee.x || Q.y !== ee.y) return this._map.fire(new a.k("boxzoomend", { originalEvent: w })), { cameraAnimation: (le) => le.fitScreenCoordinates(Q, ee, this._tr.bearing, { linear: true }) };
+ this._fireEvent("boxzoomcancel", w);
+ }
+ keydown(w) {
+ this._active && w.keyCode === 27 && (this.reset(), this._fireEvent("boxzoomcancel", w));
+ }
+ reset() {
+ this._active = false, this._container.classList.remove("maplibregl-crosshair"), this._box && (c.remove(this._box), this._box = null), c.enableDrag(), delete this._startPos, delete this._lastPos;
+ }
+ _fireEvent(w, B) {
+ return this._map.fire(new a.k(w, { originalEvent: B }));
+ }
+ }
+ function Xf(ue, w) {
+ if (ue.length !== w.length) throw new Error(`The number of touches and points are not equal - touches ${ue.length}, points ${w.length}`);
+ let B = {};
+ for (let Q = 0; Q < ue.length; Q++) B[ue[Q].identifier] = w[Q];
+ return B;
+ }
+ class Us {
+ constructor(w) {
+ this.reset(), this.numTouches = w.numTouches;
+ }
+ reset() {
+ delete this.centroid, delete this.startTime, delete this.touches, this.aborted = false;
+ }
+ touchstart(w, B, Q) {
+ (this.centroid || Q.length > this.numTouches) && (this.aborted = true), this.aborted || (this.startTime === void 0 && (this.startTime = w.timeStamp), Q.length === this.numTouches && (this.centroid = function(ee) {
+ let le = new a.P(0, 0);
+ for (let Oe of ee) le._add(Oe);
+ return le.div(ee.length);
+ }(B), this.touches = Xf(Q, B)));
+ }
+ touchmove(w, B, Q) {
+ if (this.aborted || !this.centroid) return;
+ let ee = Xf(Q, B);
+ for (let le in this.touches) {
+ let Oe = ee[le];
+ (!Oe || Oe.dist(this.touches[le]) > 30) && (this.aborted = true);
+ }
+ }
+ touchend(w, B, Q) {
+ if ((!this.centroid || w.timeStamp - this.startTime > 500) && (this.aborted = true), Q.length === 0) {
+ let ee = !this.aborted && this.centroid;
+ if (this.reset(), ee) return ee;
+ }
+ }
+ }
+ class wf {
+ constructor(w) {
+ this.singleTap = new Us(w), this.numTaps = w.numTaps, this.reset();
+ }
+ reset() {
+ this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset();
+ }
+ touchstart(w, B, Q) {
+ this.singleTap.touchstart(w, B, Q);
+ }
+ touchmove(w, B, Q) {
+ this.singleTap.touchmove(w, B, Q);
+ }
+ touchend(w, B, Q) {
+ let ee = this.singleTap.touchend(w, B, Q);
+ if (ee) {
+ let le = w.timeStamp - this.lastTime < 500, Oe = !this.lastTap || this.lastTap.dist(ee) < 30;
+ if (le && Oe || this.reset(), this.count++, this.lastTime = w.timeStamp, this.lastTap = ee, this.count === this.numTaps) return this.reset(), ee;
+ }
+ }
+ }
+ class zc {
+ constructor(w) {
+ this._tr = new du(w), this._zoomIn = new wf({ numTouches: 1, numTaps: 2 }), this._zoomOut = new wf({ numTouches: 2, numTaps: 1 }), this.reset();
+ }
+ reset() {
+ this._active = false, this._zoomIn.reset(), this._zoomOut.reset();
+ }
+ touchstart(w, B, Q) {
+ this._zoomIn.touchstart(w, B, Q), this._zoomOut.touchstart(w, B, Q);
+ }
+ touchmove(w, B, Q) {
+ this._zoomIn.touchmove(w, B, Q), this._zoomOut.touchmove(w, B, Q);
+ }
+ touchend(w, B, Q) {
+ let ee = this._zoomIn.touchend(w, B, Q), le = this._zoomOut.touchend(w, B, Q), Oe = this._tr;
+ return ee ? (this._active = true, w.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (Ze) => Ze.easeTo({ duration: 300, zoom: Oe.zoom + 1, around: Oe.unproject(ee) }, { originalEvent: w }) }) : le ? (this._active = true, w.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (Ze) => Ze.easeTo({ duration: 300, zoom: Oe.zoom - 1, around: Oe.unproject(le) }, { originalEvent: w }) }) : void 0;
+ }
+ touchcancel() {
+ this.reset();
+ }
+ enable() {
+ this._enabled = true;
+ }
+ disable() {
+ this._enabled = false, this.reset();
+ }
+ isEnabled() {
+ return this._enabled;
+ }
+ isActive() {
+ return this._active;
+ }
+ }
+ class Wu {
+ constructor(w) {
+ this._enabled = !!w.enable, this._moveStateManager = w.moveStateManager, this._clickTolerance = w.clickTolerance || 1, this._moveFunction = w.move, this._activateOnStart = !!w.activateOnStart, w.assignEvents(this), this.reset();
+ }
+ reset(w) {
+ this._active = false, this._moved = false, delete this._lastPoint, this._moveStateManager.endMove(w);
+ }
+ _move(...w) {
+ let B = this._moveFunction(...w);
+ if (B.bearingDelta || B.pitchDelta || B.around || B.panDelta) return this._active = true, B;
+ }
+ dragStart(w, B) {
+ this.isEnabled() && !this._lastPoint && this._moveStateManager.isValidStartEvent(w) && (this._moveStateManager.startMove(w), this._lastPoint = B.length ? B[0] : B, this._activateOnStart && this._lastPoint && (this._active = true));
+ }
+ dragMove(w, B) {
+ if (!this.isEnabled()) return;
+ let Q = this._lastPoint;
+ if (!Q) return;
+ if (w.preventDefault(), !this._moveStateManager.isValidMoveEvent(w)) return void this.reset(w);
+ let ee = B.length ? B[0] : B;
+ return !this._moved && ee.dist(Q) < this._clickTolerance ? void 0 : (this._moved = true, this._lastPoint = ee, this._move(Q, ee));
+ }
+ dragEnd(w) {
+ this.isEnabled() && this._lastPoint && this._moveStateManager.isValidEndEvent(w) && (this._moved && c.suppressClick(), this.reset(w));
+ }
+ enable() {
+ this._enabled = true;
+ }
+ disable() {
+ this._enabled = false, this.reset();
+ }
+ isEnabled() {
+ return this._enabled;
+ }
+ isActive() {
+ return this._active;
+ }
+ getClickTolerance() {
+ return this._clickTolerance;
+ }
+ }
+ let Rf = { 0: 1, 2: 2 };
+ class Xu {
+ constructor(w) {
+ this._correctEvent = w.checkCorrectEvent;
+ }
+ startMove(w) {
+ let B = c.mouseButton(w);
+ this._eventButton = B;
+ }
+ endMove(w) {
+ delete this._eventButton;
+ }
+ isValidStartEvent(w) {
+ return this._correctEvent(w);
+ }
+ isValidMoveEvent(w) {
+ return !function(B, Q) {
+ let ee = Rf[Q];
+ return B.buttons === void 0 || (B.buttons & ee) !== ee;
+ }(w, this._eventButton);
+ }
+ isValidEndEvent(w) {
+ return c.mouseButton(w) === this._eventButton;
+ }
+ }
+ class uf {
+ constructor() {
+ this._firstTouch = void 0;
+ }
+ _isOneFingerTouch(w) {
+ return w.targetTouches.length === 1;
+ }
+ _isSameTouchEvent(w) {
+ return w.targetTouches[0].identifier === this._firstTouch;
+ }
+ startMove(w) {
+ this._firstTouch = w.targetTouches[0].identifier;
+ }
+ endMove(w) {
+ delete this._firstTouch;
+ }
+ isValidStartEvent(w) {
+ return this._isOneFingerTouch(w);
+ }
+ isValidMoveEvent(w) {
+ return this._isOneFingerTouch(w) && this._isSameTouchEvent(w);
+ }
+ isValidEndEvent(w) {
+ return this._isOneFingerTouch(w) && this._isSameTouchEvent(w);
+ }
+ }
+ let Zf = (ue) => {
+ ue.mousedown = ue.dragStart, ue.mousemoveWindow = ue.dragMove, ue.mouseup = ue.dragEnd, ue.contextmenu = (w) => {
+ w.preventDefault();
+ };
+ }, Wl = ({ enable: ue, clickTolerance: w, bearingDegreesPerPixelMoved: B = 0.8 }) => {
+ let Q = new Xu({ checkCorrectEvent: (ee) => c.mouseButton(ee) === 0 && ee.ctrlKey || c.mouseButton(ee) === 2 });
+ return new Wu({ clickTolerance: w, move: (ee, le) => ({ bearingDelta: (le.x - ee.x) * B }), moveStateManager: Q, enable: ue, assignEvents: Zf });
+ }, ah = ({ enable: ue, clickTolerance: w, pitchDegreesPerPixelMoved: B = -0.5 }) => {
+ let Q = new Xu({ checkCorrectEvent: (ee) => c.mouseButton(ee) === 0 && ee.ctrlKey || c.mouseButton(ee) === 2 });
+ return new Wu({ clickTolerance: w, move: (ee, le) => ({ pitchDelta: (le.y - ee.y) * B }), moveStateManager: Q, enable: ue, assignEvents: Zf });
+ };
+ class Zu {
+ constructor(w, B) {
+ this._clickTolerance = w.clickTolerance || 1, this._map = B, this.reset();
+ }
+ reset() {
+ this._active = false, this._touches = {}, this._sum = new a.P(0, 0);
+ }
+ _shouldBePrevented(w) {
+ return w < (this._map.cooperativeGestures.isEnabled() ? 2 : 1);
+ }
+ touchstart(w, B, Q) {
+ return this._calculateTransform(w, B, Q);
+ }
+ touchmove(w, B, Q) {
+ if (this._active) {
+ if (!this._shouldBePrevented(Q.length)) return w.preventDefault(), this._calculateTransform(w, B, Q);
+ this._map.cooperativeGestures.notifyGestureBlocked("touch_pan", w);
+ }
+ }
+ touchend(w, B, Q) {
+ this._calculateTransform(w, B, Q), this._active && this._shouldBePrevented(Q.length) && this.reset();
+ }
+ touchcancel() {
+ this.reset();
+ }
+ _calculateTransform(w, B, Q) {
+ Q.length > 0 && (this._active = true);
+ let ee = Xf(Q, B), le = new a.P(0, 0), Oe = new a.P(0, 0), Ze = 0;
+ for (let Tt in ee) {
+ let Yt = ee[Tt], Kt = this._touches[Tt];
+ Kt && (le._add(Yt), Oe._add(Yt.sub(Kt)), Ze++, ee[Tt] = Yt);
+ }
+ if (this._touches = ee, this._shouldBePrevented(Ze) || !Oe.mag()) return;
+ let st = Oe.div(Ze);
+ return this._sum._add(st), this._sum.mag() < this._clickTolerance ? void 0 : { around: le.div(Ze), panDelta: st };
+ }
+ enable() {
+ this._enabled = true;
+ }
+ disable() {
+ this._enabled = false, this.reset();
+ }
+ isEnabled() {
+ return this._enabled;
+ }
+ isActive() {
+ return this._active;
+ }
+ }
+ class Oc {
+ constructor() {
+ this.reset();
+ }
+ reset() {
+ this._active = false, delete this._firstTwoTouches;
+ }
+ touchstart(w, B, Q) {
+ this._firstTwoTouches || Q.length < 2 || (this._firstTwoTouches = [Q[0].identifier, Q[1].identifier], this._start([B[0], B[1]]));
+ }
+ touchmove(w, B, Q) {
+ if (!this._firstTwoTouches) return;
+ w.preventDefault();
+ let [ee, le] = this._firstTwoTouches, Oe = Tc(Q, B, ee), Ze = Tc(Q, B, le);
+ if (!Oe || !Ze) return;
+ let st = this._aroundCenter ? null : Oe.add(Ze).div(2);
+ return this._move([Oe, Ze], st, w);
+ }
+ touchend(w, B, Q) {
+ if (!this._firstTwoTouches) return;
+ let [ee, le] = this._firstTwoTouches, Oe = Tc(Q, B, ee), Ze = Tc(Q, B, le);
+ Oe && Ze || (this._active && c.suppressClick(), this.reset());
+ }
+ touchcancel() {
+ this.reset();
+ }
+ enable(w) {
+ this._enabled = true, this._aroundCenter = !!w && w.around === "center";
+ }
+ disable() {
+ this._enabled = false, this.reset();
+ }
+ isEnabled() {
+ return !!this._enabled;
+ }
+ isActive() {
+ return !!this._active;
+ }
+ }
+ function Tc(ue, w, B) {
+ for (let Q = 0; Q < ue.length; Q++) if (ue[Q].identifier === B) return w[Q];
+ }
+ function wl(ue, w) {
+ return Math.log(ue / w) / Math.LN2;
+ }
+ class vu extends Oc {
+ reset() {
+ super.reset(), delete this._distance, delete this._startDistance;
+ }
+ _start(w) {
+ this._startDistance = this._distance = w[0].dist(w[1]);
+ }
+ _move(w, B) {
+ let Q = this._distance;
+ if (this._distance = w[0].dist(w[1]), this._active || !(Math.abs(wl(this._distance, this._startDistance)) < 0.1)) return this._active = true, { zoomDelta: wl(this._distance, Q), pinchAround: B };
+ }
+ }
+ function qc(ue, w) {
+ return 180 * ue.angleWith(w) / Math.PI;
+ }
+ class cf extends Oc {
+ reset() {
+ super.reset(), delete this._minDiameter, delete this._startVector, delete this._vector;
+ }
+ _start(w) {
+ this._startVector = this._vector = w[0].sub(w[1]), this._minDiameter = w[0].dist(w[1]);
+ }
+ _move(w, B, Q) {
+ let ee = this._vector;
+ if (this._vector = w[0].sub(w[1]), this._active || !this._isBelowThreshold(this._vector)) return this._active = true, { bearingDelta: qc(this._vector, ee), pinchAround: B };
+ }
+ _isBelowThreshold(w) {
+ this._minDiameter = Math.min(this._minDiameter, w.mag());
+ let B = 25 / (Math.PI * this._minDiameter) * 360, Q = qc(w, this._startVector);
+ return Math.abs(Q) < B;
+ }
+ }
+ function fc(ue) {
+ return Math.abs(ue.y) > Math.abs(ue.x);
+ }
+ class Bc extends Oc {
+ constructor(w) {
+ super(), this._currentTouchCount = 0, this._map = w;
+ }
+ reset() {
+ super.reset(), this._valid = void 0, delete this._firstMove, delete this._lastPoints;
+ }
+ touchstart(w, B, Q) {
+ super.touchstart(w, B, Q), this._currentTouchCount = Q.length;
+ }
+ _start(w) {
+ this._lastPoints = w, fc(w[0].sub(w[1])) && (this._valid = false);
+ }
+ _move(w, B, Q) {
+ if (this._map.cooperativeGestures.isEnabled() && this._currentTouchCount < 3) return;
+ let ee = w[0].sub(this._lastPoints[0]), le = w[1].sub(this._lastPoints[1]);
+ return this._valid = this.gestureBeginsVertically(ee, le, Q.timeStamp), this._valid ? (this._lastPoints = w, this._active = true, { pitchDelta: (ee.y + le.y) / 2 * -0.5 }) : void 0;
+ }
+ gestureBeginsVertically(w, B, Q) {
+ if (this._valid !== void 0) return this._valid;
+ let ee = w.mag() >= 2, le = B.mag() >= 2;
+ if (!ee && !le) return;
+ if (!ee || !le) return this._firstMove === void 0 && (this._firstMove = Q), Q - this._firstMove < 100 && void 0;
+ let Oe = w.y > 0 == B.y > 0;
+ return fc(w) && fc(B) && Oe;
+ }
+ }
+ let At = { panStep: 100, bearingStep: 15, pitchStep: 10 };
+ class Xt {
+ constructor(w) {
+ this._tr = new du(w);
+ let B = At;
+ this._panStep = B.panStep, this._bearingStep = B.bearingStep, this._pitchStep = B.pitchStep, this._rotationDisabled = false;
+ }
+ reset() {
+ this._active = false;
+ }
+ keydown(w) {
+ if (w.altKey || w.ctrlKey || w.metaKey) return;
+ let B = 0, Q = 0, ee = 0, le = 0, Oe = 0;
+ switch (w.keyCode) {
+ case 61:
+ case 107:
+ case 171:
+ case 187:
+ B = 1;
+ break;
+ case 189:
+ case 109:
+ case 173:
+ B = -1;
+ break;
+ case 37:
+ w.shiftKey ? Q = -1 : (w.preventDefault(), le = -1);
+ break;
+ case 39:
+ w.shiftKey ? Q = 1 : (w.preventDefault(), le = 1);
+ break;
+ case 38:
+ w.shiftKey ? ee = 1 : (w.preventDefault(), Oe = -1);
+ break;
+ case 40:
+ w.shiftKey ? ee = -1 : (w.preventDefault(), Oe = 1);
+ break;
+ default:
+ return;
+ }
+ return this._rotationDisabled && (Q = 0, ee = 0), { cameraAnimation: (Ze) => {
+ let st = this._tr;
+ Ze.easeTo({ duration: 300, easeId: "keyboardHandler", easing: Cr, zoom: B ? Math.round(st.zoom) + B * (w.shiftKey ? 2 : 1) : st.zoom, bearing: st.bearing + Q * this._bearingStep, pitch: st.pitch + ee * this._pitchStep, offset: [-le * this._panStep, -Oe * this._panStep], center: st.center }, { originalEvent: w });
+ } };
+ }
+ enable() {
+ this._enabled = true;
+ }
+ disable() {
+ this._enabled = false, this.reset();
+ }
+ isEnabled() {
+ return this._enabled;
+ }
+ isActive() {
+ return this._active;
+ }
+ disableRotation() {
+ this._rotationDisabled = true;
+ }
+ enableRotation() {
+ this._rotationDisabled = false;
+ }
+ }
+ function Cr(ue) {
+ return ue * (2 - ue);
+ }
+ let Ar = 4.000244140625;
+ class Kr {
+ constructor(w, B) {
+ this._onTimeout = (Q) => {
+ this._type = "wheel", this._delta -= this._lastValue, this._active || this._start(Q);
+ }, this._map = w, this._tr = new du(w), this._triggerRenderFrame = B, this._delta = 0, this._defaultZoomRate = 0.01, this._wheelZoomRate = 0.0022222222222222222;
+ }
+ setZoomRate(w) {
+ this._defaultZoomRate = w;
+ }
+ setWheelZoomRate(w) {
+ this._wheelZoomRate = w;
+ }
+ isEnabled() {
+ return !!this._enabled;
+ }
+ isActive() {
+ return !!this._active || this._finishTimeout !== void 0;
+ }
+ isZooming() {
+ return !!this._zooming;
+ }
+ enable(w) {
+ this.isEnabled() || (this._enabled = true, this._aroundCenter = !!w && w.around === "center");
+ }
+ disable() {
+ this.isEnabled() && (this._enabled = false);
+ }
+ _shouldBePrevented(w) {
+ return !!this._map.cooperativeGestures.isEnabled() && !(w.ctrlKey || this._map.cooperativeGestures.isBypassed(w));
+ }
+ wheel(w) {
+ if (!this.isEnabled()) return;
+ if (this._shouldBePrevented(w)) return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom", w);
+ let B = w.deltaMode === WheelEvent.DOM_DELTA_LINE ? 40 * w.deltaY : w.deltaY, Q = u.now(), ee = Q - (this._lastWheelEventTime || 0);
+ this._lastWheelEventTime = Q, B !== 0 && B % Ar == 0 ? this._type = "wheel" : B !== 0 && Math.abs(B) < 4 ? this._type = "trackpad" : ee > 400 ? (this._type = null, this._lastValue = B, this._timeout = setTimeout(this._onTimeout, 40, w)) : this._type || (this._type = Math.abs(ee * B) < 200 ? "trackpad" : "wheel", this._timeout && (clearTimeout(this._timeout), this._timeout = null, B += this._lastValue)), w.shiftKey && B && (B /= 4), this._type && (this._lastWheelEvent = w, this._delta -= B, this._active || this._start(w)), w.preventDefault();
+ }
+ _start(w) {
+ if (!this._delta) return;
+ this._frameId && (this._frameId = null), this._active = true, this.isZooming() || (this._zooming = true), this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout);
+ let B = c.mousePos(this._map.getCanvas(), w), Q = this._tr;
+ this._around = B.y > Q.transform.height / 2 - Q.transform.getHorizon() ? a.N.convert(this._aroundCenter ? Q.center : Q.unproject(B)) : a.N.convert(Q.center), this._aroundPoint = Q.transform.locationPoint(this._around), this._frameId || (this._frameId = true, this._triggerRenderFrame());
+ }
+ renderFrame() {
+ if (!this._frameId || (this._frameId = null, !this.isActive())) return;
+ let w = this._tr.transform;
+ if (this._delta !== 0) {
+ let st = this._type === "wheel" && Math.abs(this._delta) > Ar ? this._wheelZoomRate : this._defaultZoomRate, Tt = 2 / (1 + Math.exp(-Math.abs(this._delta * st)));
+ this._delta < 0 && Tt !== 0 && (Tt = 1 / Tt);
+ let Yt = typeof this._targetZoom == "number" ? w.zoomScale(this._targetZoom) : w.scale;
+ this._targetZoom = Math.min(w.maxZoom, Math.max(w.minZoom, w.scaleZoom(Yt * Tt))), this._type === "wheel" && (this._startZoom = w.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0;
+ }
+ let B = typeof this._targetZoom == "number" ? this._targetZoom : w.zoom, Q = this._startZoom, ee = this._easing, le, Oe = false, Ze = u.now() - this._lastWheelEventTime;
+ if (this._type === "wheel" && Q && ee && Ze) {
+ let st = Math.min(Ze / 200, 1), Tt = ee(st);
+ le = a.y.number(Q, B, Tt), st < 1 ? this._frameId || (this._frameId = true) : Oe = true;
+ } else le = B, Oe = true;
+ return this._active = true, Oe && (this._active = false, this._finishTimeout = setTimeout(() => {
+ this._zooming = false, this._triggerRenderFrame(), delete this._targetZoom, delete this._finishTimeout;
+ }, 200)), { noInertia: true, needsRenderFrame: !Oe, zoomDelta: le - w.zoom, around: this._aroundPoint, originalEvent: this._lastWheelEvent };
+ }
+ _smoothOutEasing(w) {
+ let B = a.b9;
+ if (this._prevEase) {
+ let Q = this._prevEase, ee = (u.now() - Q.start) / Q.duration, le = Q.easing(ee + 0.01) - Q.easing(ee), Oe = 0.27 / Math.sqrt(le * le + 1e-4) * 0.01, Ze = Math.sqrt(0.0729 - Oe * Oe);
+ B = a.b8(Oe, Ze, 0.25, 1);
+ }
+ return this._prevEase = { start: u.now(), duration: w, easing: B }, B;
+ }
+ reset() {
+ this._active = false, this._zooming = false, delete this._targetZoom, this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout);
+ }
+ }
+ class ki {
+ constructor(w, B) {
+ this._clickZoom = w, this._tapZoom = B;
+ }
+ enable() {
+ this._clickZoom.enable(), this._tapZoom.enable();
+ }
+ disable() {
+ this._clickZoom.disable(), this._tapZoom.disable();
+ }
+ isEnabled() {
+ return this._clickZoom.isEnabled() && this._tapZoom.isEnabled();
+ }
+ isActive() {
+ return this._clickZoom.isActive() || this._tapZoom.isActive();
+ }
+ }
+ class Xi {
+ constructor(w) {
+ this._tr = new du(w), this.reset();
+ }
+ reset() {
+ this._active = false;
+ }
+ dblclick(w, B) {
+ return w.preventDefault(), { cameraAnimation: (Q) => {
+ Q.easeTo({ duration: 300, zoom: this._tr.zoom + (w.shiftKey ? -1 : 1), around: this._tr.unproject(B) }, { originalEvent: w });
+ } };
+ }
+ enable() {
+ this._enabled = true;
+ }
+ disable() {
+ this._enabled = false, this.reset();
+ }
+ isEnabled() {
+ return this._enabled;
+ }
+ isActive() {
+ return this._active;
+ }
+ }
+ class dn {
+ constructor() {
+ this._tap = new wf({ numTouches: 1, numTaps: 1 }), this.reset();
+ }
+ reset() {
+ this._active = false, delete this._swipePoint, delete this._swipeTouch, delete this._tapTime, delete this._tapPoint, this._tap.reset();
+ }
+ touchstart(w, B, Q) {
+ if (!this._swipePoint) if (this._tapTime) {
+ let ee = B[0], le = w.timeStamp - this._tapTime < 500, Oe = this._tapPoint.dist(ee) < 30;
+ le && Oe ? Q.length > 0 && (this._swipePoint = ee, this._swipeTouch = Q[0].identifier) : this.reset();
+ } else this._tap.touchstart(w, B, Q);
+ }
+ touchmove(w, B, Q) {
+ if (this._tapTime) {
+ if (this._swipePoint) {
+ if (Q[0].identifier !== this._swipeTouch) return;
+ let ee = B[0], le = ee.y - this._swipePoint.y;
+ return this._swipePoint = ee, w.preventDefault(), this._active = true, { zoomDelta: le / 128 };
+ }
+ } else this._tap.touchmove(w, B, Q);
+ }
+ touchend(w, B, Q) {
+ if (this._tapTime) this._swipePoint && Q.length === 0 && this.reset();
+ else {
+ let ee = this._tap.touchend(w, B, Q);
+ ee && (this._tapTime = w.timeStamp, this._tapPoint = ee);
+ }
+ }
+ touchcancel() {
+ this.reset();
+ }
+ enable() {
+ this._enabled = true;
+ }
+ disable() {
+ this._enabled = false, this.reset();
+ }
+ isEnabled() {
+ return this._enabled;
+ }
+ isActive() {
+ return this._active;
+ }
+ }
+ class wn {
+ constructor(w, B, Q) {
+ this._el = w, this._mousePan = B, this._touchPan = Q;
+ }
+ enable(w) {
+ this._inertiaOptions = w || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add("maplibregl-touch-drag-pan");
+ }
+ disable() {
+ this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove("maplibregl-touch-drag-pan");
+ }
+ isEnabled() {
+ return this._mousePan.isEnabled() && this._touchPan.isEnabled();
+ }
+ isActive() {
+ return this._mousePan.isActive() || this._touchPan.isActive();
+ }
+ }
+ class Nn {
+ constructor(w, B, Q) {
+ this._pitchWithRotate = w.pitchWithRotate, this._mouseRotate = B, this._mousePitch = Q;
+ }
+ enable() {
+ this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable();
+ }
+ disable() {
+ this._mouseRotate.disable(), this._mousePitch.disable();
+ }
+ isEnabled() {
+ return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled());
+ }
+ isActive() {
+ return this._mouseRotate.isActive() || this._mousePitch.isActive();
+ }
+ }
+ class Yi {
+ constructor(w, B, Q, ee) {
+ this._el = w, this._touchZoom = B, this._touchRotate = Q, this._tapDragZoom = ee, this._rotationDisabled = false, this._enabled = true;
+ }
+ enable(w) {
+ this._touchZoom.enable(w), this._rotationDisabled || this._touchRotate.enable(w), this._tapDragZoom.enable(), this._el.classList.add("maplibregl-touch-zoom-rotate");
+ }
+ disable() {
+ this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove("maplibregl-touch-zoom-rotate");
+ }
+ isEnabled() {
+ return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled();
+ }
+ isActive() {
+ return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive();
+ }
+ disableRotation() {
+ this._rotationDisabled = true, this._touchRotate.disable();
+ }
+ enableRotation() {
+ this._rotationDisabled = false, this._touchZoom.isEnabled() && this._touchRotate.enable();
+ }
+ }
+ class Qi {
+ constructor(w, B) {
+ this._bypassKey = navigator.userAgent.indexOf("Mac") !== -1 ? "metaKey" : "ctrlKey", this._map = w, this._options = B, this._enabled = false;
+ }
+ isActive() {
+ return false;
+ }
+ reset() {
+ }
+ _setupUI() {
+ if (this._container) return;
+ let w = this._map.getCanvasContainer();
+ w.classList.add("maplibregl-cooperative-gestures"), this._container = c.create("div", "maplibregl-cooperative-gesture-screen", w);
+ let B = this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");
+ this._bypassKey === "metaKey" && (B = this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));
+ let Q = this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"), ee = document.createElement("div");
+ ee.className = "maplibregl-desktop-message", ee.textContent = B, this._container.appendChild(ee);
+ let le = document.createElement("div");
+ le.className = "maplibregl-mobile-message", le.textContent = Q, this._container.appendChild(le), this._container.setAttribute("aria-hidden", "true");
+ }
+ _destroyUI() {
+ this._container && (c.remove(this._container), this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")), delete this._container;
+ }
+ enable() {
+ this._setupUI(), this._enabled = true;
+ }
+ disable() {
+ this._enabled = false, this._destroyUI();
+ }
+ isEnabled() {
+ return this._enabled;
+ }
+ isBypassed(w) {
+ return w[this._bypassKey];
+ }
+ notifyGestureBlocked(w, B) {
+ this._enabled && (this._map.fire(new a.k("cooperativegestureprevented", { gestureType: w, originalEvent: B })), this._container.classList.add("maplibregl-show"), setTimeout(() => {
+ this._container.classList.remove("maplibregl-show");
+ }, 100));
+ }
+ }
+ let on = (ue) => ue.zoom || ue.drag || ue.pitch || ue.rotate;
+ class Fi extends a.k {
+ }
+ function Qn(ue) {
+ return ue.panDelta && ue.panDelta.mag() || ue.zoomDelta || ue.bearingDelta || ue.pitchDelta;
+ }
+ class Ca {
+ constructor(w, B) {
+ this.handleWindowEvent = (ee) => {
+ this.handleEvent(ee, `${ee.type}Window`);
+ }, this.handleEvent = (ee, le) => {
+ if (ee.type === "blur") return void this.stop(true);
+ this._updatingCamera = true;
+ let Oe = ee.type === "renderFrame" ? void 0 : ee, Ze = { needsRenderFrame: false }, st = {}, Tt = {}, Yt = ee.touches, Kt = Yt ? this._getMapTouches(Yt) : void 0, xr = Kt ? c.touchPos(this._map.getCanvas(), Kt) : c.mousePos(this._map.getCanvas(), ee);
+ for (let { handlerName: be, handler: Re, allowed: qe } of this._handlers) {
+ if (!Re.isEnabled()) continue;
+ let et;
+ this._blockedByActive(Tt, qe, be) ? Re.reset() : Re[le || ee.type] && (et = Re[le || ee.type](ee, xr, Kt), this.mergeHandlerResult(Ze, st, et, be, Oe), et && et.needsRenderFrame && this._triggerRenderFrame()), (et || Re.isActive()) && (Tt[be] = Re);
+ }
+ let Ir = {};
+ for (let be in this._previousActiveHandlers) Tt[be] || (Ir[be] = Oe);
+ this._previousActiveHandlers = Tt, (Object.keys(Ir).length || Qn(Ze)) && (this._changes.push([Ze, st, Ir]), this._triggerRenderFrame()), (Object.keys(Tt).length || Qn(Ze)) && this._map._stop(true), this._updatingCamera = false;
+ let { cameraAnimation: ve } = Ze;
+ ve && (this._inertia.clear(), this._fireEvents({}, {}, true), this._changes = [], ve(this._map));
+ }, this._map = w, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new Pf(w), this._bearingSnap = B.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(B);
+ let Q = this._el;
+ this._listeners = [[Q, "touchstart", { passive: true }], [Q, "touchmove", { passive: false }], [Q, "touchend", void 0], [Q, "touchcancel", void 0], [Q, "mousedown", void 0], [Q, "mousemove", void 0], [Q, "mouseup", void 0], [document, "mousemove", { capture: true }], [document, "mouseup", void 0], [Q, "mouseover", void 0], [Q, "mouseout", void 0], [Q, "dblclick", void 0], [Q, "click", void 0], [Q, "keydown", { capture: false }], [Q, "keyup", void 0], [Q, "wheel", { passive: false }], [Q, "contextmenu", void 0], [window, "blur", void 0]];
+ for (let [ee, le, Oe] of this._listeners) c.addEventListener(ee, le, ee === document ? this.handleWindowEvent : this.handleEvent, Oe);
+ }
+ destroy() {
+ for (let [w, B, Q] of this._listeners) c.removeEventListener(w, B, w === document ? this.handleWindowEvent : this.handleEvent, Q);
+ }
+ _addDefaultHandlers(w) {
+ let B = this._map, Q = B.getCanvasContainer();
+ this._add("mapEvent", new If(B, w));
+ let ee = B.boxZoom = new ku(B, w);
+ this._add("boxZoom", ee), w.interactive && w.boxZoom && ee.enable();
+ let le = B.cooperativeGestures = new Qi(B, w.cooperativeGestures);
+ this._add("cooperativeGestures", le), w.cooperativeGestures && le.enable();
+ let Oe = new zc(B), Ze = new Xi(B);
+ B.doubleClickZoom = new ki(Ze, Oe), this._add("tapZoom", Oe), this._add("clickZoom", Ze), w.interactive && w.doubleClickZoom && B.doubleClickZoom.enable();
+ let st = new dn();
+ this._add("tapDragZoom", st);
+ let Tt = B.touchPitch = new Bc(B);
+ this._add("touchPitch", Tt), w.interactive && w.touchPitch && B.touchPitch.enable(w.touchPitch);
+ let Yt = Wl(w), Kt = ah(w);
+ B.dragRotate = new Nn(w, Yt, Kt), this._add("mouseRotate", Yt, ["mousePitch"]), this._add("mousePitch", Kt, ["mouseRotate"]), w.interactive && w.dragRotate && B.dragRotate.enable();
+ let xr = (({ enable: et, clickTolerance: Xe }) => {
+ let it = new Xu({ checkCorrectEvent: (Ft) => c.mouseButton(Ft) === 0 && !Ft.ctrlKey });
+ return new Wu({ clickTolerance: Xe, move: (Ft, Ht) => ({ around: Ht, panDelta: Ht.sub(Ft) }), activateOnStart: true, moveStateManager: it, enable: et, assignEvents: Zf });
+ })(w), Ir = new Zu(w, B);
+ B.dragPan = new wn(Q, xr, Ir), this._add("mousePan", xr), this._add("touchPan", Ir, ["touchZoom", "touchRotate"]), w.interactive && w.dragPan && B.dragPan.enable(w.dragPan);
+ let ve = new cf(), be = new vu();
+ B.touchZoomRotate = new Yi(Q, be, ve, st), this._add("touchRotate", ve, ["touchPan", "touchZoom"]), this._add("touchZoom", be, ["touchPan", "touchRotate"]), w.interactive && w.touchZoomRotate && B.touchZoomRotate.enable(w.touchZoomRotate);
+ let Re = B.scrollZoom = new Kr(B, () => this._triggerRenderFrame());
+ this._add("scrollZoom", Re, ["mousePan"]), w.interactive && w.scrollZoom && B.scrollZoom.enable(w.scrollZoom);
+ let qe = B.keyboard = new Xt(B);
+ this._add("keyboard", qe), w.interactive && w.keyboard && B.keyboard.enable(), this._add("blockableMapEvent", new Cs(B));
+ }
+ _add(w, B, Q) {
+ this._handlers.push({ handlerName: w, handler: B, allowed: Q }), this._handlersById[w] = B;
+ }
+ stop(w) {
+ if (!this._updatingCamera) {
+ for (let { handler: B } of this._handlers) B.reset();
+ this._inertia.clear(), this._fireEvents({}, {}, w), this._changes = [];
+ }
+ }
+ isActive() {
+ for (let { handler: w } of this._handlers) if (w.isActive()) return true;
+ return false;
+ }
+ isZooming() {
+ return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming();
+ }
+ isRotating() {
+ return !!this._eventsInProgress.rotate;
+ }
+ isMoving() {
+ return !!on(this._eventsInProgress) || this.isZooming();
+ }
+ _blockedByActive(w, B, Q) {
+ for (let ee in w) if (ee !== Q && (!B || B.indexOf(ee) < 0)) return true;
+ return false;
+ }
+ _getMapTouches(w) {
+ let B = [];
+ for (let Q of w) this._el.contains(Q.target) && B.push(Q);
+ return B;
+ }
+ mergeHandlerResult(w, B, Q, ee, le) {
+ if (!Q) return;
+ a.e(w, Q);
+ let Oe = { handlerName: ee, originalEvent: Q.originalEvent || le };
+ Q.zoomDelta !== void 0 && (B.zoom = Oe), Q.panDelta !== void 0 && (B.drag = Oe), Q.pitchDelta !== void 0 && (B.pitch = Oe), Q.bearingDelta !== void 0 && (B.rotate = Oe);
+ }
+ _applyChanges() {
+ let w = {}, B = {}, Q = {};
+ for (let [ee, le, Oe] of this._changes) ee.panDelta && (w.panDelta = (w.panDelta || new a.P(0, 0))._add(ee.panDelta)), ee.zoomDelta && (w.zoomDelta = (w.zoomDelta || 0) + ee.zoomDelta), ee.bearingDelta && (w.bearingDelta = (w.bearingDelta || 0) + ee.bearingDelta), ee.pitchDelta && (w.pitchDelta = (w.pitchDelta || 0) + ee.pitchDelta), ee.around !== void 0 && (w.around = ee.around), ee.pinchAround !== void 0 && (w.pinchAround = ee.pinchAround), ee.noInertia && (w.noInertia = ee.noInertia), a.e(B, le), a.e(Q, Oe);
+ this._updateMapTransform(w, B, Q), this._changes = [];
+ }
+ _updateMapTransform(w, B, Q) {
+ let ee = this._map, le = ee._getTransformForUpdate(), Oe = ee.terrain;
+ if (!(Qn(w) || Oe && this._terrainMovement)) return this._fireEvents(B, Q, true);
+ let { panDelta: Ze, zoomDelta: st, bearingDelta: Tt, pitchDelta: Yt, around: Kt, pinchAround: xr } = w;
+ xr !== void 0 && (Kt = xr), ee._stop(true), Kt = Kt || ee.transform.centerPoint;
+ let Ir = le.pointLocation(Ze ? Kt.sub(Ze) : Kt);
+ Tt && (le.bearing += Tt), Yt && (le.pitch += Yt), st && (le.zoom += st), Oe ? this._terrainMovement || !B.drag && !B.zoom ? B.drag && this._terrainMovement ? le.center = le.pointLocation(le.centerPoint.sub(Ze)) : le.setLocationAtPoint(Ir, Kt) : (this._terrainMovement = true, this._map._elevationFreeze = true, le.setLocationAtPoint(Ir, Kt)) : le.setLocationAtPoint(Ir, Kt), ee._applyUpdatedTransform(le), this._map._update(), w.noInertia || this._inertia.record(w), this._fireEvents(B, Q, true);
+ }
+ _fireEvents(w, B, Q) {
+ let ee = on(this._eventsInProgress), le = on(w), Oe = {};
+ for (let Kt in w) {
+ let { originalEvent: xr } = w[Kt];
+ this._eventsInProgress[Kt] || (Oe[`${Kt}start`] = xr), this._eventsInProgress[Kt] = w[Kt];
+ }
+ !ee && le && this._fireEvent("movestart", le.originalEvent);
+ for (let Kt in Oe) this._fireEvent(Kt, Oe[Kt]);
+ le && this._fireEvent("move", le.originalEvent);
+ for (let Kt in w) {
+ let { originalEvent: xr } = w[Kt];
+ this._fireEvent(Kt, xr);
+ }
+ let Ze = {}, st;
+ for (let Kt in this._eventsInProgress) {
+ let { handlerName: xr, originalEvent: Ir } = this._eventsInProgress[Kt];
+ this._handlersById[xr].isActive() || (delete this._eventsInProgress[Kt], st = B[xr] || Ir, Ze[`${Kt}end`] = st);
+ }
+ for (let Kt in Ze) this._fireEvent(Kt, Ze[Kt]);
+ let Tt = on(this._eventsInProgress), Yt = (ee || le) && !Tt;
+ if (Yt && this._terrainMovement) {
+ this._map._elevationFreeze = false, this._terrainMovement = false;
+ let Kt = this._map._getTransformForUpdate();
+ Kt.recalculateZoom(this._map.terrain), this._map._applyUpdatedTransform(Kt);
+ }
+ if (Q && Yt) {
+ this._updatingCamera = true;
+ let Kt = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), xr = (Ir) => Ir !== 0 && -this._bearingSnap < Ir && Ir < this._bearingSnap;
+ !Kt || !Kt.essential && u.prefersReducedMotion ? (this._map.fire(new a.k("moveend", { originalEvent: st })), xr(this._map.getBearing()) && this._map.resetNorth()) : (xr(Kt.bearing || this._map.getBearing()) && (Kt.bearing = 0), Kt.freezeElevation = true, this._map.easeTo(Kt, { originalEvent: st })), this._updatingCamera = false;
+ }
+ }
+ _fireEvent(w, B) {
+ this._map.fire(new a.k(w, B ? { originalEvent: B } : {}));
+ }
+ _requestFrame() {
+ return this._map.triggerRepaint(), this._map._renderTaskQueue.add((w) => {
+ delete this._frameId, this.handleEvent(new Fi("renderFrame", { timeStamp: w })), this._applyChanges();
+ });
+ }
+ _triggerRenderFrame() {
+ this._frameId === void 0 && (this._frameId = this._requestFrame());
+ }
+ }
+ class Ra extends a.E {
+ constructor(w, B) {
+ super(), this._renderFrameCallback = () => {
+ let Q = Math.min((u.now() - this._easeStart) / this._easeOptions.duration, 1);
+ this._onEaseFrame(this._easeOptions.easing(Q)), Q < 1 && this._easeFrameId ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop();
+ }, this._moving = false, this._zooming = false, this.transform = w, this._bearingSnap = B.bearingSnap, this.on("moveend", () => {
+ delete this._requestedCameraState;
+ });
+ }
+ getCenter() {
+ return new a.N(this.transform.center.lng, this.transform.center.lat);
+ }
+ setCenter(w, B) {
+ return this.jumpTo({ center: w }, B);
+ }
+ panBy(w, B, Q) {
+ return w = a.P.convert(w).mult(-1), this.panTo(this.transform.center, a.e({ offset: w }, B), Q);
+ }
+ panTo(w, B, Q) {
+ return this.easeTo(a.e({ center: w }, B), Q);
+ }
+ getZoom() {
+ return this.transform.zoom;
+ }
+ setZoom(w, B) {
+ return this.jumpTo({ zoom: w }, B), this;
+ }
+ zoomTo(w, B, Q) {
+ return this.easeTo(a.e({ zoom: w }, B), Q);
+ }
+ zoomIn(w, B) {
+ return this.zoomTo(this.getZoom() + 1, w, B), this;
+ }
+ zoomOut(w, B) {
+ return this.zoomTo(this.getZoom() - 1, w, B), this;
+ }
+ getBearing() {
+ return this.transform.bearing;
+ }
+ setBearing(w, B) {
+ return this.jumpTo({ bearing: w }, B), this;
+ }
+ getPadding() {
+ return this.transform.padding;
+ }
+ setPadding(w, B) {
+ return this.jumpTo({ padding: w }, B), this;
+ }
+ rotateTo(w, B, Q) {
+ return this.easeTo(a.e({ bearing: w }, B), Q);
+ }
+ resetNorth(w, B) {
+ return this.rotateTo(0, a.e({ duration: 1e3 }, w), B), this;
+ }
+ resetNorthPitch(w, B) {
+ return this.easeTo(a.e({ bearing: 0, pitch: 0, duration: 1e3 }, w), B), this;
+ }
+ snapToNorth(w, B) {
+ return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(w, B) : this;
+ }
+ getPitch() {
+ return this.transform.pitch;
+ }
+ setPitch(w, B) {
+ return this.jumpTo({ pitch: w }, B), this;
+ }
+ cameraForBounds(w, B) {
+ w = ce.convert(w).adjustAntiMeridian();
+ let Q = B && B.bearing || 0;
+ return this._cameraForBoxAndBearing(w.getNorthWest(), w.getSouthEast(), Q, B);
+ }
+ _cameraForBoxAndBearing(w, B, Q, ee) {
+ let le = { top: 0, bottom: 0, right: 0, left: 0 };
+ if (typeof (ee = a.e({ padding: le, offset: [0, 0], maxZoom: this.transform.maxZoom }, ee)).padding == "number") {
+ let Wr = ee.padding;
+ ee.padding = { top: Wr, bottom: Wr, right: Wr, left: Wr };
+ }
+ ee.padding = a.e(le, ee.padding);
+ let Oe = this.transform, Ze = Oe.padding, st = new ce(w, B), Tt = Oe.project(st.getNorthWest()), Yt = Oe.project(st.getNorthEast()), Kt = Oe.project(st.getSouthEast()), xr = Oe.project(st.getSouthWest()), Ir = a.ba(-Q), ve = Tt.rotate(Ir), be = Yt.rotate(Ir), Re = Kt.rotate(Ir), qe = xr.rotate(Ir), et = new a.P(Math.max(ve.x, be.x, qe.x, Re.x), Math.max(ve.y, be.y, qe.y, Re.y)), Xe = new a.P(Math.min(ve.x, be.x, qe.x, Re.x), Math.min(ve.y, be.y, qe.y, Re.y)), it = et.sub(Xe), Ft = (Oe.width - (Ze.left + Ze.right + ee.padding.left + ee.padding.right)) / it.x, Ht = (Oe.height - (Ze.top + Ze.bottom + ee.padding.top + ee.padding.bottom)) / it.y;
+ if (Ht < 0 || Ft < 0) return void a.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.");
+ let tr = Math.min(Oe.scaleZoom(Oe.scale * Math.min(Ft, Ht)), ee.maxZoom), dr = a.P.convert(ee.offset), Sr = new a.P((ee.padding.left - ee.padding.right) / 2, (ee.padding.top - ee.padding.bottom) / 2).rotate(a.ba(Q)), Or = dr.add(Sr).mult(Oe.scale / Oe.zoomScale(tr));
+ return { center: Oe.unproject(Tt.add(Kt).div(2).sub(Or)), zoom: tr, bearing: Q };
+ }
+ fitBounds(w, B, Q) {
+ return this._fitInternal(this.cameraForBounds(w, B), B, Q);
+ }
+ fitScreenCoordinates(w, B, Q, ee, le) {
+ return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(a.P.convert(w)), this.transform.pointLocation(a.P.convert(B)), Q, ee), ee, le);
+ }
+ _fitInternal(w, B, Q) {
+ return w ? (delete (B = a.e(w, B)).padding, B.linear ? this.easeTo(B, Q) : this.flyTo(B, Q)) : this;
+ }
+ jumpTo(w, B) {
+ this.stop();
+ let Q = this._getTransformForUpdate(), ee = false, le = false, Oe = false;
+ return "zoom" in w && Q.zoom !== +w.zoom && (ee = true, Q.zoom = +w.zoom), w.center !== void 0 && (Q.center = a.N.convert(w.center)), "bearing" in w && Q.bearing !== +w.bearing && (le = true, Q.bearing = +w.bearing), "pitch" in w && Q.pitch !== +w.pitch && (Oe = true, Q.pitch = +w.pitch), w.padding == null || Q.isPaddingEqual(w.padding) || (Q.padding = w.padding), this._applyUpdatedTransform(Q), this.fire(new a.k("movestart", B)).fire(new a.k("move", B)), ee && this.fire(new a.k("zoomstart", B)).fire(new a.k("zoom", B)).fire(new a.k("zoomend", B)), le && this.fire(new a.k("rotatestart", B)).fire(new a.k("rotate", B)).fire(new a.k("rotateend", B)), Oe && this.fire(new a.k("pitchstart", B)).fire(new a.k("pitch", B)).fire(new a.k("pitchend", B)), this.fire(new a.k("moveend", B));
+ }
+ calculateCameraOptionsFromTo(w, B, Q, ee = 0) {
+ let le = a.Z.fromLngLat(w, B), Oe = a.Z.fromLngLat(Q, ee), Ze = Oe.x - le.x, st = Oe.y - le.y, Tt = Oe.z - le.z, Yt = Math.hypot(Ze, st, Tt);
+ if (Yt === 0) throw new Error("Can't calculate camera options with same From and To");
+ let Kt = Math.hypot(Ze, st), xr = this.transform.scaleZoom(this.transform.cameraToCenterDistance / Yt / this.transform.tileSize), Ir = 180 * Math.atan2(Ze, -st) / Math.PI, ve = 180 * Math.acos(Kt / Yt) / Math.PI;
+ return ve = Tt < 0 ? 90 - ve : 90 + ve, { center: Oe.toLngLat(), zoom: xr, pitch: ve, bearing: Ir };
+ }
+ easeTo(w, B) {
+ var Q;
+ this._stop(false, w.easeId), ((w = a.e({ offset: [0, 0], duration: 500, easing: a.b9 }, w)).animate === false || !w.essential && u.prefersReducedMotion) && (w.duration = 0);
+ let ee = this._getTransformForUpdate(), le = ee.zoom, Oe = ee.bearing, Ze = ee.pitch, st = ee.padding, Tt = "bearing" in w ? this._normalizeBearing(w.bearing, Oe) : Oe, Yt = "pitch" in w ? +w.pitch : Ze, Kt = "padding" in w ? w.padding : ee.padding, xr = a.P.convert(w.offset), Ir = ee.centerPoint.add(xr), ve = ee.pointLocation(Ir), { center: be, zoom: Re } = ee.getConstrained(a.N.convert(w.center || ve), (Q = w.zoom) !== null && Q !== void 0 ? Q : le);
+ this._normalizeCenter(be, ee);
+ let qe = ee.project(ve), et = ee.project(be).sub(qe), Xe = ee.zoomScale(Re - le), it, Ft;
+ w.around && (it = a.N.convert(w.around), Ft = ee.locationPoint(it));
+ let Ht = { moving: this._moving, zooming: this._zooming, rotating: this._rotating, pitching: this._pitching };
+ return this._zooming = this._zooming || Re !== le, this._rotating = this._rotating || Oe !== Tt, this._pitching = this._pitching || Yt !== Ze, this._padding = !ee.isPaddingEqual(Kt), this._easeId = w.easeId, this._prepareEase(B, w.noMoveStart, Ht), this.terrain && this._prepareElevation(be), this._ease((tr) => {
+ if (this._zooming && (ee.zoom = a.y.number(le, Re, tr)), this._rotating && (ee.bearing = a.y.number(Oe, Tt, tr)), this._pitching && (ee.pitch = a.y.number(Ze, Yt, tr)), this._padding && (ee.interpolatePadding(st, Kt, tr), Ir = ee.centerPoint.add(xr)), this.terrain && !w.freezeElevation && this._updateElevation(tr), it) ee.setLocationAtPoint(it, Ft);
+ else {
+ let dr = ee.zoomScale(ee.zoom - le), Sr = Re > le ? Math.min(2, Xe) : Math.max(0.5, Xe), Or = Math.pow(Sr, 1 - tr), Wr = ee.unproject(qe.add(et.mult(tr * Or)).mult(dr));
+ ee.setLocationAtPoint(ee.renderWorldCopies ? Wr.wrap() : Wr, Ir);
+ }
+ this._applyUpdatedTransform(ee), this._fireMoveEvents(B);
+ }, (tr) => {
+ this.terrain && w.freezeElevation && this._finalizeElevation(), this._afterEase(B, tr);
+ }, w), this;
+ }
+ _prepareEase(w, B, Q = {}) {
+ this._moving = true, B || Q.moving || this.fire(new a.k("movestart", w)), this._zooming && !Q.zooming && this.fire(new a.k("zoomstart", w)), this._rotating && !Q.rotating && this.fire(new a.k("rotatestart", w)), this._pitching && !Q.pitching && this.fire(new a.k("pitchstart", w));
+ }
+ _prepareElevation(w) {
+ this._elevationCenter = w, this._elevationStart = this.transform.elevation, this._elevationTarget = this.terrain.getElevationForLngLatZoom(w, this.transform.tileZoom), this._elevationFreeze = true;
+ }
+ _updateElevation(w) {
+ this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom);
+ let B = this.terrain.getElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom);
+ if (w < 1 && B !== this._elevationTarget) {
+ let Q = this._elevationTarget - this._elevationStart;
+ this._elevationStart += w * (Q - (B - (Q * w + this._elevationStart)) / (1 - w)), this._elevationTarget = B;
+ }
+ this.transform.elevation = a.y.number(this._elevationStart, this._elevationTarget, w);
+ }
+ _finalizeElevation() {
+ this._elevationFreeze = false, this.transform.recalculateZoom(this.terrain);
+ }
+ _getTransformForUpdate() {
+ return this.transformCameraUpdate || this.terrain ? (this._requestedCameraState || (this._requestedCameraState = this.transform.clone()), this._requestedCameraState) : this.transform;
+ }
+ _elevateCameraIfInsideTerrain(w) {
+ let B = w.getCameraPosition(), Q = this.terrain.getElevationForLngLatZoom(B.lngLat, w.zoom);
+ if (B.altitude < Q) {
+ let ee = this.calculateCameraOptionsFromTo(B.lngLat, Q, w.center, w.elevation);
+ return { pitch: ee.pitch, zoom: ee.zoom };
+ }
+ return {};
+ }
+ _applyUpdatedTransform(w) {
+ let B = [];
+ if (this.terrain && B.push((ee) => this._elevateCameraIfInsideTerrain(ee)), this.transformCameraUpdate && B.push((ee) => this.transformCameraUpdate(ee)), !B.length) return;
+ let Q = w.clone();
+ for (let ee of B) {
+ let le = Q.clone(), { center: Oe, zoom: Ze, pitch: st, bearing: Tt, elevation: Yt } = ee(le);
+ Oe && (le.center = Oe), Ze !== void 0 && (le.zoom = Ze), st !== void 0 && (le.pitch = st), Tt !== void 0 && (le.bearing = Tt), Yt !== void 0 && (le.elevation = Yt), Q.apply(le);
+ }
+ this.transform.apply(Q);
+ }
+ _fireMoveEvents(w) {
+ this.fire(new a.k("move", w)), this._zooming && this.fire(new a.k("zoom", w)), this._rotating && this.fire(new a.k("rotate", w)), this._pitching && this.fire(new a.k("pitch", w));
+ }
+ _afterEase(w, B) {
+ if (this._easeId && B && this._easeId === B) return;
+ delete this._easeId;
+ let Q = this._zooming, ee = this._rotating, le = this._pitching;
+ this._moving = false, this._zooming = false, this._rotating = false, this._pitching = false, this._padding = false, Q && this.fire(new a.k("zoomend", w)), ee && this.fire(new a.k("rotateend", w)), le && this.fire(new a.k("pitchend", w)), this.fire(new a.k("moveend", w));
+ }
+ flyTo(w, B) {
+ var Q;
+ if (!w.essential && u.prefersReducedMotion) {
+ let Cn = a.M(w, ["center", "zoom", "bearing", "pitch", "around"]);
+ return this.jumpTo(Cn, B);
+ }
+ this.stop(), w = a.e({ offset: [0, 0], speed: 1.2, curve: 1.42, easing: a.b9 }, w);
+ let ee = this._getTransformForUpdate(), le = ee.zoom, Oe = ee.bearing, Ze = ee.pitch, st = ee.padding, Tt = "bearing" in w ? this._normalizeBearing(w.bearing, Oe) : Oe, Yt = "pitch" in w ? +w.pitch : Ze, Kt = "padding" in w ? w.padding : ee.padding, xr = a.P.convert(w.offset), Ir = ee.centerPoint.add(xr), ve = ee.pointLocation(Ir), { center: be, zoom: Re } = ee.getConstrained(a.N.convert(w.center || ve), (Q = w.zoom) !== null && Q !== void 0 ? Q : le);
+ this._normalizeCenter(be, ee);
+ let qe = ee.zoomScale(Re - le), et = ee.project(ve), Xe = ee.project(be).sub(et), it = w.curve, Ft = Math.max(ee.width, ee.height), Ht = Ft / qe, tr = Xe.mag();
+ if ("minZoom" in w) {
+ let Cn = a.ac(Math.min(w.minZoom, le, Re), ee.minZoom, ee.maxZoom), Kn = Ft / ee.zoomScale(Cn - le);
+ it = Math.sqrt(Kn / tr * 2);
+ }
+ let dr = it * it;
+ function Sr(Cn) {
+ let Kn = (Ht * Ht - Ft * Ft + (Cn ? -1 : 1) * dr * dr * tr * tr) / (2 * (Cn ? Ht : Ft) * dr * tr);
+ return Math.log(Math.sqrt(Kn * Kn + 1) - Kn);
+ }
+ function Or(Cn) {
+ return (Math.exp(Cn) - Math.exp(-Cn)) / 2;
+ }
+ function Wr(Cn) {
+ return (Math.exp(Cn) + Math.exp(-Cn)) / 2;
+ }
+ let ni = Sr(false), Pi = function(Cn) {
+ return Wr(ni) / Wr(ni + it * Cn);
+ }, cn = function(Cn) {
+ return Ft * ((Wr(ni) * (Or(Kn = ni + it * Cn) / Wr(Kn)) - Or(ni)) / dr) / tr;
+ var Kn;
+ }, ln = (Sr(true) - ni) / it;
+ if (Math.abs(tr) < 1e-6 || !isFinite(ln)) {
+ if (Math.abs(Ft - Ht) < 1e-6) return this.easeTo(w, B);
+ let Cn = Ht < Ft ? -1 : 1;
+ ln = Math.abs(Math.log(Ht / Ft)) / it, cn = () => 0, Pi = (Kn) => Math.exp(Cn * it * Kn);
+ }
+ return w.duration = "duration" in w ? +w.duration : 1e3 * ln / ("screenSpeed" in w ? +w.screenSpeed / it : +w.speed), w.maxDuration && w.duration > w.maxDuration && (w.duration = 0), this._zooming = true, this._rotating = Oe !== Tt, this._pitching = Yt !== Ze, this._padding = !ee.isPaddingEqual(Kt), this._prepareEase(B, false), this.terrain && this._prepareElevation(be), this._ease((Cn) => {
+ let Kn = Cn * ln, Aa = 1 / Pi(Kn);
+ ee.zoom = Cn === 1 ? Re : le + ee.scaleZoom(Aa), this._rotating && (ee.bearing = a.y.number(Oe, Tt, Cn)), this._pitching && (ee.pitch = a.y.number(Ze, Yt, Cn)), this._padding && (ee.interpolatePadding(st, Kt, Cn), Ir = ee.centerPoint.add(xr)), this.terrain && !w.freezeElevation && this._updateElevation(Cn);
+ let fa = Cn === 1 ? be : ee.unproject(et.add(Xe.mult(cn(Kn))).mult(Aa));
+ ee.setLocationAtPoint(ee.renderWorldCopies ? fa.wrap() : fa, Ir), this._applyUpdatedTransform(ee), this._fireMoveEvents(B);
+ }, () => {
+ this.terrain && w.freezeElevation && this._finalizeElevation(), this._afterEase(B);
+ }, w), this;
+ }
+ isEasing() {
+ return !!this._easeFrameId;
+ }
+ stop() {
+ return this._stop();
+ }
+ _stop(w, B) {
+ var Q;
+ if (this._easeFrameId && (this._cancelRenderFrame(this._easeFrameId), delete this._easeFrameId, delete this._onEaseFrame), this._onEaseEnd) {
+ let ee = this._onEaseEnd;
+ delete this._onEaseEnd, ee.call(this, B);
+ }
+ return w || (Q = this.handlers) === null || Q === void 0 || Q.stop(false), this;
+ }
+ _ease(w, B, Q) {
+ Q.animate === false || Q.duration === 0 ? (w(1), B()) : (this._easeStart = u.now(), this._easeOptions = Q, this._onEaseFrame = w, this._onEaseEnd = B, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback));
+ }
+ _normalizeBearing(w, B) {
+ w = a.b3(w, -180, 180);
+ let Q = Math.abs(w - B);
+ return Math.abs(w - 360 - B) < Q && (w -= 360), Math.abs(w + 360 - B) < Q && (w += 360), w;
+ }
+ _normalizeCenter(w, B) {
+ if (!B.renderWorldCopies || B.lngRange) return;
+ let Q = w.lng - B.center.lng;
+ w.lng += Q > 180 ? -360 : Q < -180 ? 360 : 0;
+ }
+ queryTerrainElevation(w) {
+ return this.terrain ? this.terrain.getElevationForLngLatZoom(a.N.convert(w), this.transform.tileZoom) - this.transform.elevation : null;
+ }
+ }
+ let La = { compact: true, customAttribution: 'MapLibre ' };
+ class Na {
+ constructor(w = La) {
+ this._toggleAttribution = () => {
+ this._container.classList.contains("maplibregl-compact") && (this._container.classList.contains("maplibregl-compact-show") ? (this._container.setAttribute("open", ""), this._container.classList.remove("maplibregl-compact-show")) : (this._container.classList.add("maplibregl-compact-show"), this._container.removeAttribute("open")));
+ }, this._updateData = (B) => {
+ !B || B.sourceDataType !== "metadata" && B.sourceDataType !== "visibility" && B.dataType !== "style" && B.type !== "terrain" || this._updateAttributions();
+ }, this._updateCompact = () => {
+ this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? this._compact === false ? this._container.setAttribute("open", "") : this._container.classList.contains("maplibregl-compact") || this._container.classList.contains("maplibregl-attrib-empty") || (this._container.setAttribute("open", ""), this._container.classList.add("maplibregl-compact", "maplibregl-compact-show")) : (this._container.setAttribute("open", ""), this._container.classList.contains("maplibregl-compact") && this._container.classList.remove("maplibregl-compact", "maplibregl-compact-show"));
+ }, this._updateCompactMinimize = () => {
+ this._container.classList.contains("maplibregl-compact") && this._container.classList.contains("maplibregl-compact-show") && this._container.classList.remove("maplibregl-compact-show");
+ }, this.options = w;
+ }
+ getDefaultPosition() {
+ return "bottom-right";
+ }
+ onAdd(w) {
+ return this._map = w, this._compact = this.options.compact, this._container = c.create("details", "maplibregl-ctrl maplibregl-ctrl-attrib"), this._compactButton = c.create("summary", "maplibregl-ctrl-attrib-button", this._container), this._compactButton.addEventListener("click", this._toggleAttribution), this._setElementTitle(this._compactButton, "ToggleAttribution"), this._innerContainer = c.create("div", "maplibregl-ctrl-attrib-inner", this._container), this._updateAttributions(), this._updateCompact(), this._map.on("styledata", this._updateData), this._map.on("sourcedata", this._updateData), this._map.on("terrain", this._updateData), this._map.on("resize", this._updateCompact), this._map.on("drag", this._updateCompactMinimize), this._container;
+ }
+ onRemove() {
+ c.remove(this._container), this._map.off("styledata", this._updateData), this._map.off("sourcedata", this._updateData), this._map.off("terrain", this._updateData), this._map.off("resize", this._updateCompact), this._map.off("drag", this._updateCompactMinimize), this._map = void 0, this._compact = void 0, this._attribHTML = void 0;
+ }
+ _setElementTitle(w, B) {
+ let Q = this._map._getUIString(`AttributionControl.${B}`);
+ w.title = Q, w.setAttribute("aria-label", Q);
+ }
+ _updateAttributions() {
+ if (!this._map.style) return;
+ let w = [];
+ if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? w = w.concat(this.options.customAttribution.map((ee) => typeof ee != "string" ? "" : ee)) : typeof this.options.customAttribution == "string" && w.push(this.options.customAttribution)), this._map.style.stylesheet) {
+ let ee = this._map.style.stylesheet;
+ this.styleOwner = ee.owner, this.styleId = ee.id;
+ }
+ let B = this._map.style.sourceCaches;
+ for (let ee in B) {
+ let le = B[ee];
+ if (le.used || le.usedForTerrain) {
+ let Oe = le.getSource();
+ Oe.attribution && w.indexOf(Oe.attribution) < 0 && w.push(Oe.attribution);
+ }
+ }
+ w = w.filter((ee) => String(ee).trim()), w.sort((ee, le) => ee.length - le.length), w = w.filter((ee, le) => {
+ for (let Oe = le + 1; Oe < w.length; Oe++) if (w[Oe].indexOf(ee) >= 0) return false;
+ return true;
+ });
+ let Q = w.join(" | ");
+ Q !== this._attribHTML && (this._attribHTML = Q, w.length ? (this._innerContainer.innerHTML = Q, this._container.classList.remove("maplibregl-attrib-empty")) : this._container.classList.add("maplibregl-attrib-empty"), this._updateCompact(), this._editLink = null);
+ }
+ }
+ class Yn {
+ constructor(w = {}) {
+ this._updateCompact = () => {
+ let B = this._container.children;
+ if (B.length) {
+ let Q = B[0];
+ this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? this._compact !== false && Q.classList.add("maplibregl-compact") : Q.classList.remove("maplibregl-compact");
+ }
+ }, this.options = w;
+ }
+ getDefaultPosition() {
+ return "bottom-left";
+ }
+ onAdd(w) {
+ this._map = w, this._compact = this.options && this.options.compact, this._container = c.create("div", "maplibregl-ctrl");
+ let B = c.create("a", "maplibregl-ctrl-logo");
+ return B.target = "_blank", B.rel = "noopener nofollow", B.href = "https://maplibre.org/", B.setAttribute("aria-label", this._map._getUIString("LogoControl.Title")), B.setAttribute("rel", "noopener nofollow"), this._container.appendChild(B), this._container.style.display = "block", this._map.on("resize", this._updateCompact), this._updateCompact(), this._container;
+ }
+ onRemove() {
+ c.remove(this._container), this._map.off("resize", this._updateCompact), this._map = void 0, this._compact = void 0;
+ }
+ }
+ class Dn {
+ constructor() {
+ this._queue = [], this._id = 0, this._cleared = false, this._currentlyRunning = false;
+ }
+ add(w) {
+ let B = ++this._id;
+ return this._queue.push({ callback: w, id: B, cancelled: false }), B;
+ }
+ remove(w) {
+ let B = this._currentlyRunning, Q = B ? this._queue.concat(B) : this._queue;
+ for (let ee of Q) if (ee.id === w) return void (ee.cancelled = true);
+ }
+ run(w = 0) {
+ if (this._currentlyRunning) throw new Error("Attempting to run(), but is already running.");
+ let B = this._currentlyRunning = this._queue;
+ this._queue = [];
+ for (let Q of B) if (!Q.cancelled && (Q.callback(w), this._cleared)) break;
+ this._cleared = false, this._currentlyRunning = false;
+ }
+ clear() {
+ this._currentlyRunning && (this._cleared = true), this._queue = [];
+ }
+ }
+ var Ka = a.Y([{ name: "a_pos3d", type: "Int16", components: 3 }]);
+ class bo extends a.E {
+ constructor(w) {
+ super(), this.sourceCache = w, this._tiles = {}, this._renderableTilesKeys = [], this._sourceTileCache = {}, this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.deltaZoom = 1, w.usedForTerrain = true, w.tileSize = this.tileSize * 2 ** this.deltaZoom;
+ }
+ destruct() {
+ this.sourceCache.usedForTerrain = false, this.sourceCache.tileSize = null;
+ }
+ update(w, B) {
+ this.sourceCache.update(w, B), this._renderableTilesKeys = [];
+ let Q = {};
+ for (let ee of w.coveringTiles({ tileSize: this.tileSize, minzoom: this.minzoom, maxzoom: this.maxzoom, reparseOverscaled: false, terrain: B })) Q[ee.key] = true, this._renderableTilesKeys.push(ee.key), this._tiles[ee.key] || (ee.posMatrix = new Float64Array(16), a.aP(ee.posMatrix, 0, a.X, 0, a.X, 0, 1), this._tiles[ee.key] = new Gt(ee, this.tileSize));
+ for (let ee in this._tiles) Q[ee] || delete this._tiles[ee];
+ }
+ freeRtt(w) {
+ for (let B in this._tiles) {
+ let Q = this._tiles[B];
+ (!w || Q.tileID.equals(w) || Q.tileID.isChildOf(w) || w.isChildOf(Q.tileID)) && (Q.rtt = []);
+ }
+ }
+ getRenderableTiles() {
+ return this._renderableTilesKeys.map((w) => this.getTileByID(w));
+ }
+ getTileByID(w) {
+ return this._tiles[w];
+ }
+ getTerrainCoords(w) {
+ let B = {};
+ for (let Q of this._renderableTilesKeys) {
+ let ee = this._tiles[Q].tileID;
+ if (ee.canonical.equals(w.canonical)) {
+ let le = w.clone();
+ le.posMatrix = new Float64Array(16), a.aP(le.posMatrix, 0, a.X, 0, a.X, 0, 1), B[Q] = le;
+ } else if (ee.canonical.isChildOf(w.canonical)) {
+ let le = w.clone();
+ le.posMatrix = new Float64Array(16);
+ let Oe = ee.canonical.z - w.canonical.z, Ze = ee.canonical.x - (ee.canonical.x >> Oe << Oe), st = ee.canonical.y - (ee.canonical.y >> Oe << Oe), Tt = a.X >> Oe;
+ a.aP(le.posMatrix, 0, Tt, 0, Tt, 0, 1), a.J(le.posMatrix, le.posMatrix, [-Ze * Tt, -st * Tt, 0]), B[Q] = le;
+ } else if (w.canonical.isChildOf(ee.canonical)) {
+ let le = w.clone();
+ le.posMatrix = new Float64Array(16);
+ let Oe = w.canonical.z - ee.canonical.z, Ze = w.canonical.x - (w.canonical.x >> Oe << Oe), st = w.canonical.y - (w.canonical.y >> Oe << Oe), Tt = a.X >> Oe;
+ a.aP(le.posMatrix, 0, a.X, 0, a.X, 0, 1), a.J(le.posMatrix, le.posMatrix, [Ze * Tt, st * Tt, 0]), a.K(le.posMatrix, le.posMatrix, [1 / 2 ** Oe, 1 / 2 ** Oe, 0]), B[Q] = le;
+ }
+ }
+ return B;
+ }
+ getSourceTile(w, B) {
+ let Q = this.sourceCache._source, ee = w.overscaledZ - this.deltaZoom;
+ if (ee > Q.maxzoom && (ee = Q.maxzoom), ee < Q.minzoom) return null;
+ this._sourceTileCache[w.key] || (this._sourceTileCache[w.key] = w.scaledTo(ee).key);
+ let le = this.sourceCache.getTileByID(this._sourceTileCache[w.key]);
+ if ((!le || !le.dem) && B) for (; ee >= Q.minzoom && (!le || !le.dem); ) le = this.sourceCache.getTileByID(w.scaledTo(ee--).key);
+ return le;
+ }
+ tilesAfterTime(w = Date.now()) {
+ return Object.values(this._tiles).filter((B) => B.timeAdded >= w);
+ }
+ }
+ class Zo {
+ constructor(w, B, Q) {
+ this.painter = w, this.sourceCache = new bo(B), this.options = Q, this.exaggeration = typeof Q.exaggeration == "number" ? Q.exaggeration : 1, this.qualityFactor = 2, this.meshSize = 128, this._demMatrixCache = {}, this.coordsIndex = [], this._coordsTextureSize = 1024;
+ }
+ getDEMElevation(w, B, Q, ee = a.X) {
+ var le;
+ if (!(B >= 0 && B < ee && Q >= 0 && Q < ee)) return 0;
+ let Oe = this.getTerrainData(w), Ze = (le = Oe.tile) === null || le === void 0 ? void 0 : le.dem;
+ if (!Ze) return 0;
+ let st = function(ve, be, Re) {
+ var qe = be[0], et = be[1];
+ return ve[0] = Re[0] * qe + Re[4] * et + Re[12], ve[1] = Re[1] * qe + Re[5] * et + Re[13], ve;
+ }([], [B / ee * a.X, Q / ee * a.X], Oe.u_terrain_matrix), Tt = [st[0] * Ze.dim, st[1] * Ze.dim], Yt = Math.floor(Tt[0]), Kt = Math.floor(Tt[1]), xr = Tt[0] - Yt, Ir = Tt[1] - Kt;
+ return Ze.get(Yt, Kt) * (1 - xr) * (1 - Ir) + Ze.get(Yt + 1, Kt) * xr * (1 - Ir) + Ze.get(Yt, Kt + 1) * (1 - xr) * Ir + Ze.get(Yt + 1, Kt + 1) * xr * Ir;
+ }
+ getElevationForLngLatZoom(w, B) {
+ if (!a.bb(B, w.wrap())) return 0;
+ let { tileID: Q, mercatorX: ee, mercatorY: le } = this._getOverscaledTileIDFromLngLatZoom(w, B);
+ return this.getElevation(Q, ee % a.X, le % a.X, a.X);
+ }
+ getElevation(w, B, Q, ee = a.X) {
+ return this.getDEMElevation(w, B, Q, ee) * this.exaggeration;
+ }
+ getTerrainData(w) {
+ if (!this._emptyDemTexture) {
+ let ee = this.painter.context, le = new a.R({ width: 1, height: 1 }, new Uint8Array(4));
+ this._emptyDepthTexture = new g(ee, le, ee.gl.RGBA, { premultiply: false }), this._emptyDemUnpack = [0, 0, 0, 0], this._emptyDemTexture = new g(ee, new a.R({ width: 1, height: 1 }), ee.gl.RGBA, { premultiply: false }), this._emptyDemTexture.bind(ee.gl.NEAREST, ee.gl.CLAMP_TO_EDGE), this._emptyDemMatrix = a.an([]);
+ }
+ let B = this.sourceCache.getSourceTile(w, true);
+ if (B && B.dem && (!B.demTexture || B.needsTerrainPrepare)) {
+ let ee = this.painter.context;
+ B.demTexture = this.painter.getTileTexture(B.dem.stride), B.demTexture ? B.demTexture.update(B.dem.getPixels(), { premultiply: false }) : B.demTexture = new g(ee, B.dem.getPixels(), ee.gl.RGBA, { premultiply: false }), B.demTexture.bind(ee.gl.NEAREST, ee.gl.CLAMP_TO_EDGE), B.needsTerrainPrepare = false;
+ }
+ let Q = B && B + B.tileID.key + w.key;
+ if (Q && !this._demMatrixCache[Q]) {
+ let ee = this.sourceCache.sourceCache._source.maxzoom, le = w.canonical.z - B.tileID.canonical.z;
+ w.overscaledZ > w.canonical.z && (w.canonical.z >= ee ? le = w.canonical.z - ee : a.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));
+ let Oe = w.canonical.x - (w.canonical.x >> le << le), Ze = w.canonical.y - (w.canonical.y >> le << le), st = a.bc(new Float64Array(16), [1 / (a.X << le), 1 / (a.X << le), 0]);
+ a.J(st, st, [Oe * a.X, Ze * a.X, 0]), this._demMatrixCache[w.key] = { matrix: st, coord: w };
+ }
+ return { u_depth: 2, u_terrain: 3, u_terrain_dim: B && B.dem && B.dem.dim || 1, u_terrain_matrix: Q ? this._demMatrixCache[w.key].matrix : this._emptyDemMatrix, u_terrain_unpack: B && B.dem && B.dem.getUnpackVector() || this._emptyDemUnpack, u_terrain_exaggeration: this.exaggeration, texture: (B && B.demTexture || this._emptyDemTexture).texture, depthTexture: (this._fboDepthTexture || this._emptyDepthTexture).texture, tile: B };
+ }
+ getFramebuffer(w) {
+ let B = this.painter, Q = B.width / devicePixelRatio, ee = B.height / devicePixelRatio;
+ return !this._fbo || this._fbo.width === Q && this._fbo.height === ee || (this._fbo.destroy(), this._fboCoordsTexture.destroy(), this._fboDepthTexture.destroy(), delete this._fbo, delete this._fboDepthTexture, delete this._fboCoordsTexture), this._fboCoordsTexture || (this._fboCoordsTexture = new g(B.context, { width: Q, height: ee, data: null }, B.context.gl.RGBA, { premultiply: false }), this._fboCoordsTexture.bind(B.context.gl.NEAREST, B.context.gl.CLAMP_TO_EDGE)), this._fboDepthTexture || (this._fboDepthTexture = new g(B.context, { width: Q, height: ee, data: null }, B.context.gl.RGBA, { premultiply: false }), this._fboDepthTexture.bind(B.context.gl.NEAREST, B.context.gl.CLAMP_TO_EDGE)), this._fbo || (this._fbo = B.context.createFramebuffer(Q, ee, true, false), this._fbo.depthAttachment.set(B.context.createRenderbuffer(B.context.gl.DEPTH_COMPONENT16, Q, ee))), this._fbo.colorAttachment.set(w === "coords" ? this._fboCoordsTexture.texture : this._fboDepthTexture.texture), this._fbo;
+ }
+ getCoordsTexture() {
+ let w = this.painter.context;
+ if (this._coordsTexture) return this._coordsTexture;
+ let B = new Uint8Array(this._coordsTextureSize * this._coordsTextureSize * 4);
+ for (let le = 0, Oe = 0; le < this._coordsTextureSize; le++) for (let Ze = 0; Ze < this._coordsTextureSize; Ze++, Oe += 4) B[Oe + 0] = 255 & Ze, B[Oe + 1] = 255 & le, B[Oe + 2] = Ze >> 8 << 4 | le >> 8, B[Oe + 3] = 0;
+ let Q = new a.R({ width: this._coordsTextureSize, height: this._coordsTextureSize }, new Uint8Array(B.buffer)), ee = new g(w, Q, w.gl.RGBA, { premultiply: false });
+ return ee.bind(w.gl.NEAREST, w.gl.CLAMP_TO_EDGE), this._coordsTexture = ee, ee;
+ }
+ pointCoordinate(w) {
+ this.painter.maybeDrawDepthAndCoords(true);
+ let B = new Uint8Array(4), Q = this.painter.context, ee = Q.gl, le = Math.round(w.x * this.painter.pixelRatio / devicePixelRatio), Oe = Math.round(w.y * this.painter.pixelRatio / devicePixelRatio), Ze = Math.round(this.painter.height / devicePixelRatio);
+ Q.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer), ee.readPixels(le, Ze - Oe - 1, 1, 1, ee.RGBA, ee.UNSIGNED_BYTE, B), Q.bindFramebuffer.set(null);
+ let st = B[0] + (B[2] >> 4 << 8), Tt = B[1] + ((15 & B[2]) << 8), Yt = this.coordsIndex[255 - B[3]], Kt = Yt && this.sourceCache.getTileByID(Yt);
+ if (!Kt) return null;
+ let xr = this._coordsTextureSize, Ir = (1 << Kt.tileID.canonical.z) * xr;
+ return new a.Z((Kt.tileID.canonical.x * xr + st) / Ir + Kt.tileID.wrap, (Kt.tileID.canonical.y * xr + Tt) / Ir, this.getElevation(Kt.tileID, st, Tt, xr));
+ }
+ depthAtPoint(w) {
+ let B = new Uint8Array(4), Q = this.painter.context, ee = Q.gl;
+ return Q.bindFramebuffer.set(this.getFramebuffer("depth").framebuffer), ee.readPixels(w.x, this.painter.height / devicePixelRatio - w.y - 1, 1, 1, ee.RGBA, ee.UNSIGNED_BYTE, B), Q.bindFramebuffer.set(null), (B[0] / 16777216 + B[1] / 65536 + B[2] / 256 + B[3]) / 256;
+ }
+ getTerrainMesh() {
+ if (this._mesh) return this._mesh;
+ let w = this.painter.context, B = new a.bd(), Q = new a.aY(), ee = this.meshSize, le = a.X / ee, Oe = ee * ee;
+ for (let Kt = 0; Kt <= ee; Kt++) for (let xr = 0; xr <= ee; xr++) B.emplaceBack(xr * le, Kt * le, 0);
+ for (let Kt = 0; Kt < Oe; Kt += ee + 1) for (let xr = 0; xr < ee; xr++) Q.emplaceBack(xr + Kt, ee + xr + Kt + 1, ee + xr + Kt + 2), Q.emplaceBack(xr + Kt, ee + xr + Kt + 2, xr + Kt + 1);
+ let Ze = B.length, st = Ze + 2 * (ee + 1);
+ for (let Kt of [0, 1]) for (let xr = 0; xr <= ee; xr++) for (let Ir of [0, 1]) B.emplaceBack(xr * le, Kt * a.X, Ir);
+ for (let Kt = 0; Kt < 2 * ee; Kt += 2) Q.emplaceBack(st + Kt, st + Kt + 1, st + Kt + 3), Q.emplaceBack(st + Kt, st + Kt + 3, st + Kt + 2), Q.emplaceBack(Ze + Kt, Ze + Kt + 3, Ze + Kt + 1), Q.emplaceBack(Ze + Kt, Ze + Kt + 2, Ze + Kt + 3);
+ let Tt = B.length, Yt = Tt + 2 * (ee + 1);
+ for (let Kt of [0, 1]) for (let xr = 0; xr <= ee; xr++) for (let Ir of [0, 1]) B.emplaceBack(Kt * a.X, xr * le, Ir);
+ for (let Kt = 0; Kt < 2 * ee; Kt += 2) Q.emplaceBack(Tt + Kt, Tt + Kt + 1, Tt + Kt + 3), Q.emplaceBack(Tt + Kt, Tt + Kt + 3, Tt + Kt + 2), Q.emplaceBack(Yt + Kt, Yt + Kt + 3, Yt + Kt + 1), Q.emplaceBack(Yt + Kt, Yt + Kt + 2, Yt + Kt + 3);
+ return this._mesh = new Eu(w.createVertexBuffer(B, Ka.members), w.createIndexBuffer(Q), a.a0.simpleSegment(0, 0, B.length, Q.length)), this._mesh;
+ }
+ getMeshFrameDelta(w) {
+ return 2 * Math.PI * a.be / Math.pow(2, w) / 5;
+ }
+ getMinTileElevationForLngLatZoom(w, B) {
+ var Q;
+ let { tileID: ee } = this._getOverscaledTileIDFromLngLatZoom(w, B);
+ return (Q = this.getMinMaxElevation(ee).minElevation) !== null && Q !== void 0 ? Q : 0;
+ }
+ getMinMaxElevation(w) {
+ let B = this.getTerrainData(w).tile, Q = { minElevation: null, maxElevation: null };
+ return B && B.dem && (Q.minElevation = B.dem.min * this.exaggeration, Q.maxElevation = B.dem.max * this.exaggeration), Q;
+ }
+ _getOverscaledTileIDFromLngLatZoom(w, B) {
+ let Q = a.Z.fromLngLat(w.wrap()), ee = (1 << B) * a.X, le = Q.x * ee, Oe = Q.y * ee, Ze = Math.floor(le / a.X), st = Math.floor(Oe / a.X);
+ return { tileID: new a.S(B, 0, B, Ze, st), mercatorX: le, mercatorY: Oe };
+ }
+ }
+ class Ss {
+ constructor(w, B, Q) {
+ this._context = w, this._size = B, this._tileSize = Q, this._objects = [], this._recentlyUsed = [], this._stamp = 0;
+ }
+ destruct() {
+ for (let w of this._objects) w.texture.destroy(), w.fbo.destroy();
+ }
+ _createObject(w) {
+ let B = this._context.createFramebuffer(this._tileSize, this._tileSize, true, true), Q = new g(this._context, { width: this._tileSize, height: this._tileSize, data: null }, this._context.gl.RGBA);
+ return Q.bind(this._context.gl.LINEAR, this._context.gl.CLAMP_TO_EDGE), B.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL, this._tileSize, this._tileSize)), B.colorAttachment.set(Q.texture), { id: w, fbo: B, texture: Q, stamp: -1, inUse: false };
+ }
+ getObjectForId(w) {
+ return this._objects[w];
+ }
+ useObject(w) {
+ w.inUse = true, this._recentlyUsed = this._recentlyUsed.filter((B) => w.id !== B), this._recentlyUsed.push(w.id);
+ }
+ stampObject(w) {
+ w.stamp = ++this._stamp;
+ }
+ getOrCreateFreeObject() {
+ for (let B of this._recentlyUsed) if (!this._objects[B].inUse) return this._objects[B];
+ if (this._objects.length >= this._size) throw new Error("No free RenderPool available, call freeAllObjects() required!");
+ let w = this._createObject(this._objects.length);
+ return this._objects.push(w), w;
+ }
+ freeObject(w) {
+ w.inUse = false;
+ }
+ freeAllObjects() {
+ for (let w of this._objects) this.freeObject(w);
+ }
+ isFull() {
+ return !(this._objects.length < this._size) && this._objects.some((w) => !w.inUse) === false;
+ }
+ }
+ let as = { background: true, fill: true, line: true, raster: true, hillshade: true };
+ class ws {
+ constructor(w, B) {
+ this.painter = w, this.terrain = B, this.pool = new Ss(w.context, 30, B.sourceCache.tileSize * B.qualityFactor);
+ }
+ destruct() {
+ this.pool.destruct();
+ }
+ getTexture(w) {
+ return this.pool.getObjectForId(w.rtt[this._stacks.length - 1].id).texture;
+ }
+ prepareForRender(w, B) {
+ this._stacks = [], this._prevType = null, this._rttTiles = [], this._renderableTiles = this.terrain.sourceCache.getRenderableTiles(), this._renderableLayerIds = w._order.filter((Q) => !w._layers[Q].isHidden(B)), this._coordsDescendingInv = {};
+ for (let Q in w.sourceCaches) {
+ this._coordsDescendingInv[Q] = {};
+ let ee = w.sourceCaches[Q].getVisibleCoordinates();
+ for (let le of ee) {
+ let Oe = this.terrain.sourceCache.getTerrainCoords(le);
+ for (let Ze in Oe) this._coordsDescendingInv[Q][Ze] || (this._coordsDescendingInv[Q][Ze] = []), this._coordsDescendingInv[Q][Ze].push(Oe[Ze]);
+ }
+ }
+ this._coordsDescendingInvStr = {};
+ for (let Q of w._order) {
+ let ee = w._layers[Q], le = ee.source;
+ if (as[ee.type] && !this._coordsDescendingInvStr[le]) {
+ this._coordsDescendingInvStr[le] = {};
+ for (let Oe in this._coordsDescendingInv[le]) this._coordsDescendingInvStr[le][Oe] = this._coordsDescendingInv[le][Oe].map((Ze) => Ze.key).sort().join();
+ }
+ }
+ for (let Q of this._renderableTiles) for (let ee in this._coordsDescendingInvStr) {
+ let le = this._coordsDescendingInvStr[ee][Q.tileID.key];
+ le && le !== Q.rttCoords[ee] && (Q.rtt = []);
+ }
+ }
+ renderLayer(w) {
+ if (w.isHidden(this.painter.transform.zoom)) return false;
+ let B = w.type, Q = this.painter, ee = this._renderableLayerIds[this._renderableLayerIds.length - 1] === w.id;
+ if (as[B] && (this._prevType && as[this._prevType] || this._stacks.push([]), this._prevType = B, this._stacks[this._stacks.length - 1].push(w.id), !ee)) return true;
+ if (as[this._prevType] || as[B] && ee) {
+ this._prevType = B;
+ let le = this._stacks.length - 1, Oe = this._stacks[le] || [];
+ for (let Ze of this._renderableTiles) {
+ if (this.pool.isFull() && (js(this.painter, this.terrain, this._rttTiles), this._rttTiles = [], this.pool.freeAllObjects()), this._rttTiles.push(Ze), Ze.rtt[le]) {
+ let Tt = this.pool.getObjectForId(Ze.rtt[le].id);
+ if (Tt.stamp === Ze.rtt[le].stamp) {
+ this.pool.useObject(Tt);
+ continue;
+ }
+ }
+ let st = this.pool.getOrCreateFreeObject();
+ this.pool.useObject(st), this.pool.stampObject(st), Ze.rtt[le] = { id: st.id, stamp: st.stamp }, Q.context.bindFramebuffer.set(st.fbo.framebuffer), Q.context.clear({ color: a.aM.transparent, stencil: 0 }), Q.currentStencilSource = void 0;
+ for (let Tt = 0; Tt < Oe.length; Tt++) {
+ let Yt = Q.style._layers[Oe[Tt]], Kt = Yt.source ? this._coordsDescendingInv[Yt.source][Ze.tileID.key] : [Ze.tileID];
+ Q.context.viewport.set([0, 0, st.fbo.width, st.fbo.height]), Q._renderTileClippingMasks(Yt, Kt), Q.renderLayer(Q, Q.style.sourceCaches[Yt.source], Yt, Kt), Yt.source && (Ze.rttCoords[Yt.source] = this._coordsDescendingInvStr[Yt.source][Ze.tileID.key]);
+ }
+ }
+ return js(this.painter, this.terrain, this._rttTiles), this._rttTiles = [], this.pool.freeAllObjects(), as[B];
+ }
+ return false;
+ }
+ }
+ let Ho = { "AttributionControl.ToggleAttribution": "Toggle attribution", "AttributionControl.MapFeedback": "Map feedback", "FullscreenControl.Enter": "Enter fullscreen", "FullscreenControl.Exit": "Exit fullscreen", "GeolocateControl.FindMyLocation": "Find my location", "GeolocateControl.LocationNotAvailable": "Location not available", "LogoControl.Title": "MapLibre logo", "Map.Title": "Map", "Marker.Title": "Map marker", "NavigationControl.ResetBearing": "Reset bearing to north", "NavigationControl.ZoomIn": "Zoom in", "NavigationControl.ZoomOut": "Zoom out", "Popup.Close": "Close popup", "ScaleControl.Feet": "ft", "ScaleControl.Meters": "m", "ScaleControl.Kilometers": "km", "ScaleControl.Miles": "mi", "ScaleControl.NauticalMiles": "nm", "TerrainControl.Enable": "Enable terrain", "TerrainControl.Disable": "Disable terrain", "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map", "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map", "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map" }, ml = o, Ws = { hash: false, interactive: true, bearingSnap: 7, attributionControl: La, maplibreLogo: false, failIfMajorPerformanceCaveat: false, preserveDrawingBuffer: false, refreshExpiredTiles: true, scrollZoom: true, minZoom: -2, maxZoom: 22, minPitch: 0, maxPitch: 60, boxZoom: true, dragRotate: true, dragPan: true, keyboard: true, doubleClickZoom: true, touchZoomRotate: true, touchPitch: true, cooperativeGestures: false, trackResize: true, center: [0, 0], zoom: 0, bearing: 0, pitch: 0, renderWorldCopies: true, maxTileCacheSize: null, maxTileCacheZoomLevels: a.a.MAX_TILE_CACHE_ZOOM_LEVELS, transformRequest: null, transformCameraUpdate: null, fadeDuration: 300, crossSourceCollisions: true, clickTolerance: 3, localIdeographFontFamily: "sans-serif", pitchWithRotate: true, validateStyle: true, maxCanvasSize: [4096, 4096], cancelPendingTileRequestsWhileZooming: true }, Ls = (ue) => {
+ ue.touchstart = ue.dragStart, ue.touchmoveWindow = ue.dragMove, ue.touchend = ue.dragEnd;
+ }, va = { showCompass: true, showZoom: true, visualizePitch: false };
+ class no {
+ constructor(w, B, Q = false) {
+ this.mousedown = (Oe) => {
+ this.startMouse(a.e({}, Oe, { ctrlKey: true, preventDefault: () => Oe.preventDefault() }), c.mousePos(this.element, Oe)), c.addEventListener(window, "mousemove", this.mousemove), c.addEventListener(window, "mouseup", this.mouseup);
+ }, this.mousemove = (Oe) => {
+ this.moveMouse(Oe, c.mousePos(this.element, Oe));
+ }, this.mouseup = (Oe) => {
+ this.mouseRotate.dragEnd(Oe), this.mousePitch && this.mousePitch.dragEnd(Oe), this.offTemp();
+ }, this.touchstart = (Oe) => {
+ Oe.targetTouches.length !== 1 ? this.reset() : (this._startPos = this._lastPos = c.touchPos(this.element, Oe.targetTouches)[0], this.startTouch(Oe, this._startPos), c.addEventListener(window, "touchmove", this.touchmove, { passive: false }), c.addEventListener(window, "touchend", this.touchend));
+ }, this.touchmove = (Oe) => {
+ Oe.targetTouches.length !== 1 ? this.reset() : (this._lastPos = c.touchPos(this.element, Oe.targetTouches)[0], this.moveTouch(Oe, this._lastPos));
+ }, this.touchend = (Oe) => {
+ Oe.targetTouches.length === 0 && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), delete this._startPos, delete this._lastPos, this.offTemp();
+ }, this.reset = () => {
+ this.mouseRotate.reset(), this.mousePitch && this.mousePitch.reset(), this.touchRotate.reset(), this.touchPitch && this.touchPitch.reset(), delete this._startPos, delete this._lastPos, this.offTemp();
+ }, this._clickTolerance = 10;
+ let ee = w.dragRotate._mouseRotate.getClickTolerance(), le = w.dragRotate._mousePitch.getClickTolerance();
+ this.element = B, this.mouseRotate = Wl({ clickTolerance: ee, enable: true }), this.touchRotate = (({ enable: Oe, clickTolerance: Ze, bearingDegreesPerPixelMoved: st = 0.8 }) => {
+ let Tt = new uf();
+ return new Wu({ clickTolerance: Ze, move: (Yt, Kt) => ({ bearingDelta: (Kt.x - Yt.x) * st }), moveStateManager: Tt, enable: Oe, assignEvents: Ls });
+ })({ clickTolerance: ee, enable: true }), this.map = w, Q && (this.mousePitch = ah({ clickTolerance: le, enable: true }), this.touchPitch = (({ enable: Oe, clickTolerance: Ze, pitchDegreesPerPixelMoved: st = -0.5 }) => {
+ let Tt = new uf();
+ return new Wu({ clickTolerance: Ze, move: (Yt, Kt) => ({ pitchDelta: (Kt.y - Yt.y) * st }), moveStateManager: Tt, enable: Oe, assignEvents: Ls });
+ })({ clickTolerance: le, enable: true })), c.addEventListener(B, "mousedown", this.mousedown), c.addEventListener(B, "touchstart", this.touchstart, { passive: false }), c.addEventListener(B, "touchcancel", this.reset);
+ }
+ startMouse(w, B) {
+ this.mouseRotate.dragStart(w, B), this.mousePitch && this.mousePitch.dragStart(w, B), c.disableDrag();
+ }
+ startTouch(w, B) {
+ this.touchRotate.dragStart(w, B), this.touchPitch && this.touchPitch.dragStart(w, B), c.disableDrag();
+ }
+ moveMouse(w, B) {
+ let Q = this.map, { bearingDelta: ee } = this.mouseRotate.dragMove(w, B) || {};
+ if (ee && Q.setBearing(Q.getBearing() + ee), this.mousePitch) {
+ let { pitchDelta: le } = this.mousePitch.dragMove(w, B) || {};
+ le && Q.setPitch(Q.getPitch() + le);
+ }
+ }
+ moveTouch(w, B) {
+ let Q = this.map, { bearingDelta: ee } = this.touchRotate.dragMove(w, B) || {};
+ if (ee && Q.setBearing(Q.getBearing() + ee), this.touchPitch) {
+ let { pitchDelta: le } = this.touchPitch.dragMove(w, B) || {};
+ le && Q.setPitch(Q.getPitch() + le);
+ }
+ }
+ off() {
+ let w = this.element;
+ c.removeEventListener(w, "mousedown", this.mousedown), c.removeEventListener(w, "touchstart", this.touchstart, { passive: false }), c.removeEventListener(window, "touchmove", this.touchmove, { passive: false }), c.removeEventListener(window, "touchend", this.touchend), c.removeEventListener(w, "touchcancel", this.reset), this.offTemp();
+ }
+ offTemp() {
+ c.enableDrag(), c.removeEventListener(window, "mousemove", this.mousemove), c.removeEventListener(window, "mouseup", this.mouseup), c.removeEventListener(window, "touchmove", this.touchmove, { passive: false }), c.removeEventListener(window, "touchend", this.touchend);
+ }
+ }
+ let ys;
+ function rs(ue, w, B) {
+ let Q = new a.N(ue.lng, ue.lat);
+ if (ue = new a.N(ue.lng, ue.lat), w) {
+ let ee = new a.N(ue.lng - 360, ue.lat), le = new a.N(ue.lng + 360, ue.lat), Oe = B.locationPoint(ue).distSqr(w);
+ B.locationPoint(ee).distSqr(w) < Oe ? ue = ee : B.locationPoint(le).distSqr(w) < Oe && (ue = le);
+ }
+ for (; Math.abs(ue.lng - B.center.lng) > 180; ) {
+ let ee = B.locationPoint(ue);
+ if (ee.x >= 0 && ee.y >= 0 && ee.x <= B.width && ee.y <= B.height) break;
+ ue.lng > B.center.lng ? ue.lng -= 360 : ue.lng += 360;
+ }
+ return ue.lng !== Q.lng && B.locationPoint(ue).y > B.height / 2 - B.getHorizon() ? ue : Q;
+ }
+ let Ql = { center: "translate(-50%,-50%)", top: "translate(-50%,0)", "top-left": "translate(0,0)", "top-right": "translate(-100%,0)", bottom: "translate(-50%,-100%)", "bottom-left": "translate(0,-100%)", "bottom-right": "translate(-100%,-100%)", left: "translate(0,-50%)", right: "translate(-100%,-50%)" };
+ function Cu(ue, w, B) {
+ let Q = ue.classList;
+ for (let ee in Ql) Q.remove(`maplibregl-${B}-anchor-${ee}`);
+ Q.add(`maplibregl-${B}-anchor-${w}`);
+ }
+ class Yu extends a.E {
+ constructor(w) {
+ if (super(), this._onKeyPress = (B) => {
+ let Q = B.code, ee = B.charCode || B.keyCode;
+ Q !== "Space" && Q !== "Enter" && ee !== 32 && ee !== 13 || this.togglePopup();
+ }, this._onMapClick = (B) => {
+ let Q = B.originalEvent.target, ee = this._element;
+ this._popup && (Q === ee || ee.contains(Q)) && this.togglePopup();
+ }, this._update = (B) => {
+ var Q;
+ if (!this._map) return;
+ let ee = this._map.loaded() && !this._map.isMoving();
+ ((B == null ? void 0 : B.type) === "terrain" || (B == null ? void 0 : B.type) === "render" && !ee) && this._map.once("render", this._update), this._lngLat = this._map.transform.renderWorldCopies ? rs(this._lngLat, this._flatPos, this._map.transform) : (Q = this._lngLat) === null || Q === void 0 ? void 0 : Q.wrap(), this._flatPos = this._pos = this._map.project(this._lngLat)._add(this._offset), this._map.terrain && (this._flatPos = this._map.transform.locationPoint(this._lngLat)._add(this._offset));
+ let le = "";
+ this._rotationAlignment === "viewport" || this._rotationAlignment === "auto" ? le = `rotateZ(${this._rotation}deg)` : this._rotationAlignment === "map" && (le = `rotateZ(${this._rotation - this._map.getBearing()}deg)`);
+ let Oe = "";
+ this._pitchAlignment === "viewport" || this._pitchAlignment === "auto" ? Oe = "rotateX(0deg)" : this._pitchAlignment === "map" && (Oe = `rotateX(${this._map.getPitch()}deg)`), this._subpixelPositioning || B && B.type !== "moveend" || (this._pos = this._pos.round()), c.setTransform(this._element, `${Ql[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${Oe} ${le}`), u.frameAsync(new AbortController()).then(() => {
+ this._updateOpacity(B && B.type === "moveend");
+ }).catch(() => {
+ });
+ }, this._onMove = (B) => {
+ if (!this._isDragging) {
+ let Q = this._clickTolerance || this._map._clickTolerance;
+ this._isDragging = B.point.dist(this._pointerdownPos) >= Q;
+ }
+ this._isDragging && (this._pos = B.point.sub(this._positionDelta), this._lngLat = this._map.unproject(this._pos), this.setLngLat(this._lngLat), this._element.style.pointerEvents = "none", this._state === "pending" && (this._state = "active", this.fire(new a.k("dragstart"))), this.fire(new a.k("drag")));
+ }, this._onUp = () => {
+ this._element.style.pointerEvents = "auto", this._positionDelta = null, this._pointerdownPos = null, this._isDragging = false, this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), this._state === "active" && this.fire(new a.k("dragend")), this._state = "inactive";
+ }, this._addDragHandler = (B) => {
+ this._element.contains(B.originalEvent.target) && (B.preventDefault(), this._positionDelta = B.point.sub(this._pos).add(this._offset), this._pointerdownPos = B.point, this._state = "pending", this._map.on("mousemove", this._onMove), this._map.on("touchmove", this._onMove), this._map.once("mouseup", this._onUp), this._map.once("touchend", this._onUp));
+ }, this._anchor = w && w.anchor || "center", this._color = w && w.color || "#3FB1CE", this._scale = w && w.scale || 1, this._draggable = w && w.draggable || false, this._clickTolerance = w && w.clickTolerance || 0, this._subpixelPositioning = w && w.subpixelPositioning || false, this._isDragging = false, this._state = "inactive", this._rotation = w && w.rotation || 0, this._rotationAlignment = w && w.rotationAlignment || "auto", this._pitchAlignment = w && w.pitchAlignment && w.pitchAlignment !== "auto" ? w.pitchAlignment : this._rotationAlignment, this.setOpacity(), this.setOpacity(w == null ? void 0 : w.opacity, w == null ? void 0 : w.opacityWhenCovered), w && w.element) this._element = w.element, this._offset = a.P.convert(w && w.offset || [0, 0]);
+ else {
+ this._defaultMarker = true, this._element = c.create("div");
+ let B = c.createNS("http://www.w3.org/2000/svg", "svg"), Q = 41, ee = 27;
+ B.setAttributeNS(null, "display", "block"), B.setAttributeNS(null, "height", `${Q}px`), B.setAttributeNS(null, "width", `${ee}px`), B.setAttributeNS(null, "viewBox", `0 0 ${ee} ${Q}`);
+ let le = c.createNS("http://www.w3.org/2000/svg", "g");
+ le.setAttributeNS(null, "stroke", "none"), le.setAttributeNS(null, "stroke-width", "1"), le.setAttributeNS(null, "fill", "none"), le.setAttributeNS(null, "fill-rule", "evenodd");
+ let Oe = c.createNS("http://www.w3.org/2000/svg", "g");
+ Oe.setAttributeNS(null, "fill-rule", "nonzero");
+ let Ze = c.createNS("http://www.w3.org/2000/svg", "g");
+ Ze.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), Ze.setAttributeNS(null, "fill", "#000000");
+ let st = [{ rx: "10.5", ry: "5.25002273" }, { rx: "10.5", ry: "5.25002273" }, { rx: "9.5", ry: "4.77275007" }, { rx: "8.5", ry: "4.29549936" }, { rx: "7.5", ry: "3.81822308" }, { rx: "6.5", ry: "3.34094679" }, { rx: "5.5", ry: "2.86367051" }, { rx: "4.5", ry: "2.38636864" }];
+ for (let qe of st) {
+ let et = c.createNS("http://www.w3.org/2000/svg", "ellipse");
+ et.setAttributeNS(null, "opacity", "0.04"), et.setAttributeNS(null, "cx", "10.5"), et.setAttributeNS(null, "cy", "5.80029008"), et.setAttributeNS(null, "rx", qe.rx), et.setAttributeNS(null, "ry", qe.ry), Ze.appendChild(et);
+ }
+ let Tt = c.createNS("http://www.w3.org/2000/svg", "g");
+ Tt.setAttributeNS(null, "fill", this._color);
+ let Yt = c.createNS("http://www.w3.org/2000/svg", "path");
+ Yt.setAttributeNS(null, "d", "M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"), Tt.appendChild(Yt);
+ let Kt = c.createNS("http://www.w3.org/2000/svg", "g");
+ Kt.setAttributeNS(null, "opacity", "0.25"), Kt.setAttributeNS(null, "fill", "#000000");
+ let xr = c.createNS("http://www.w3.org/2000/svg", "path");
+ xr.setAttributeNS(null, "d", "M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"), Kt.appendChild(xr);
+ let Ir = c.createNS("http://www.w3.org/2000/svg", "g");
+ Ir.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), Ir.setAttributeNS(null, "fill", "#FFFFFF");
+ let ve = c.createNS("http://www.w3.org/2000/svg", "g");
+ ve.setAttributeNS(null, "transform", "translate(8.0, 8.0)");
+ let be = c.createNS("http://www.w3.org/2000/svg", "circle");
+ be.setAttributeNS(null, "fill", "#000000"), be.setAttributeNS(null, "opacity", "0.25"), be.setAttributeNS(null, "cx", "5.5"), be.setAttributeNS(null, "cy", "5.5"), be.setAttributeNS(null, "r", "5.4999962");
+ let Re = c.createNS("http://www.w3.org/2000/svg", "circle");
+ Re.setAttributeNS(null, "fill", "#FFFFFF"), Re.setAttributeNS(null, "cx", "5.5"), Re.setAttributeNS(null, "cy", "5.5"), Re.setAttributeNS(null, "r", "5.4999962"), ve.appendChild(be), ve.appendChild(Re), Oe.appendChild(Ze), Oe.appendChild(Tt), Oe.appendChild(Kt), Oe.appendChild(Ir), Oe.appendChild(ve), B.appendChild(Oe), B.setAttributeNS(null, "height", Q * this._scale + "px"), B.setAttributeNS(null, "width", ee * this._scale + "px"), this._element.appendChild(B), this._offset = a.P.convert(w && w.offset || [0, -14]);
+ }
+ if (this._element.classList.add("maplibregl-marker"), this._element.addEventListener("dragstart", (B) => {
+ B.preventDefault();
+ }), this._element.addEventListener("mousedown", (B) => {
+ B.preventDefault();
+ }), Cu(this._element, this._anchor, "marker"), w && w.className) for (let B of w.className.split(" ")) this._element.classList.add(B);
+ this._popup = null;
+ }
+ addTo(w) {
+ return this.remove(), this._map = w, this._element.setAttribute("aria-label", w._getUIString("Marker.Title")), w.getCanvasContainer().appendChild(this._element), w.on("move", this._update), w.on("moveend", this._update), w.on("terrain", this._update), this.setDraggable(this._draggable), this._update(), this._map.on("click", this._onMapClick), this;
+ }
+ remove() {
+ return this._opacityTimeout && (clearTimeout(this._opacityTimeout), delete this._opacityTimeout), this._map && (this._map.off("click", this._onMapClick), this._map.off("move", this._update), this._map.off("moveend", this._update), this._map.off("terrain", this._update), this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler), this._map.off("mouseup", this._onUp), this._map.off("touchend", this._onUp), this._map.off("mousemove", this._onMove), this._map.off("touchmove", this._onMove), delete this._map), c.remove(this._element), this._popup && this._popup.remove(), this;
+ }
+ getLngLat() {
+ return this._lngLat;
+ }
+ setLngLat(w) {
+ return this._lngLat = a.N.convert(w), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this;
+ }
+ getElement() {
+ return this._element;
+ }
+ setPopup(w) {
+ if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener("keypress", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute("tabindex")), w) {
+ if (!("offset" in w.options)) {
+ let ee = Math.abs(13.5) / Math.SQRT2;
+ w.options.offset = this._defaultMarker ? { top: [0, 0], "top-left": [0, 0], "top-right": [0, 0], bottom: [0, -38.1], "bottom-left": [ee, -1 * (38.1 - 13.5 + ee)], "bottom-right": [-ee, -1 * (38.1 - 13.5 + ee)], left: [13.5, -1 * (38.1 - 13.5)], right: [-13.5, -1 * (38.1 - 13.5)] } : this._offset;
+ }
+ this._popup = w, this._originalTabIndex = this._element.getAttribute("tabindex"), this._originalTabIndex || this._element.setAttribute("tabindex", "0"), this._element.addEventListener("keypress", this._onKeyPress);
+ }
+ return this;
+ }
+ setSubpixelPositioning(w) {
+ return this._subpixelPositioning = w, this;
+ }
+ getPopup() {
+ return this._popup;
+ }
+ togglePopup() {
+ let w = this._popup;
+ return this._element.style.opacity === this._opacityWhenCovered ? this : w ? (w.isOpen() ? w.remove() : (w.setLngLat(this._lngLat), w.addTo(this._map)), this) : this;
+ }
+ _updateOpacity(w = false) {
+ var B, Q;
+ if (!(!((B = this._map) === null || B === void 0) && B.terrain)) return void (this._element.style.opacity !== this._opacity && (this._element.style.opacity = this._opacity));
+ if (w) this._opacityTimeout = null;
+ else {
+ if (this._opacityTimeout) return;
+ this._opacityTimeout = setTimeout(() => {
+ this._opacityTimeout = null;
+ }, 100);
+ }
+ let ee = this._map, le = ee.terrain.depthAtPoint(this._pos), Oe = ee.terrain.getElevationForLngLatZoom(this._lngLat, ee.transform.tileZoom);
+ if (ee.transform.lngLatToCameraDepth(this._lngLat, Oe) - le < 6e-3) return void (this._element.style.opacity = this._opacity);
+ let Ze = -this._offset.y / ee.transform._pixelPerMeter, st = Math.sin(ee.getPitch() * Math.PI / 180) * Ze, Tt = ee.terrain.depthAtPoint(new a.P(this._pos.x, this._pos.y - this._offset.y)), Yt = ee.transform.lngLatToCameraDepth(this._lngLat, Oe + st) - Tt > 6e-3;
+ !((Q = this._popup) === null || Q === void 0) && Q.isOpen() && Yt && this._popup.remove(), this._element.style.opacity = Yt ? this._opacityWhenCovered : this._opacity;
+ }
+ getOffset() {
+ return this._offset;
+ }
+ setOffset(w) {
+ return this._offset = a.P.convert(w), this._update(), this;
+ }
+ addClassName(w) {
+ this._element.classList.add(w);
+ }
+ removeClassName(w) {
+ this._element.classList.remove(w);
+ }
+ toggleClassName(w) {
+ return this._element.classList.toggle(w);
+ }
+ setDraggable(w) {
+ return this._draggable = !!w, this._map && (w ? (this._map.on("mousedown", this._addDragHandler), this._map.on("touchstart", this._addDragHandler)) : (this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler))), this;
+ }
+ isDraggable() {
+ return this._draggable;
+ }
+ setRotation(w) {
+ return this._rotation = w || 0, this._update(), this;
+ }
+ getRotation() {
+ return this._rotation;
+ }
+ setRotationAlignment(w) {
+ return this._rotationAlignment = w || "auto", this._update(), this;
+ }
+ getRotationAlignment() {
+ return this._rotationAlignment;
+ }
+ setPitchAlignment(w) {
+ return this._pitchAlignment = w && w !== "auto" ? w : this._rotationAlignment, this._update(), this;
+ }
+ getPitchAlignment() {
+ return this._pitchAlignment;
+ }
+ setOpacity(w, B) {
+ return w === void 0 && B === void 0 && (this._opacity = "1", this._opacityWhenCovered = "0.2"), w !== void 0 && (this._opacity = w), B !== void 0 && (this._opacityWhenCovered = B), this._map && this._updateOpacity(true), this;
+ }
+ }
+ let Nc = { positionOptions: { enableHighAccuracy: false, maximumAge: 0, timeout: 6e3 }, fitBoundsOptions: { maxZoom: 15 }, trackUserLocation: false, showAccuracyCircle: true, showUserLocation: true }, pu = 0, Uc = false, xu = { maxWidth: 100, unit: "metric" };
+ function Ac(ue, w, B) {
+ let Q = B && B.maxWidth || 100, ee = ue._container.clientHeight / 2, le = ue.unproject([0, ee]), Oe = ue.unproject([Q, ee]), Ze = le.distanceTo(Oe);
+ if (B && B.unit === "imperial") {
+ let st = 3.2808 * Ze;
+ st > 5280 ? Ua(w, Q, st / 5280, ue._getUIString("ScaleControl.Miles")) : Ua(w, Q, st, ue._getUIString("ScaleControl.Feet"));
+ } else B && B.unit === "nautical" ? Ua(w, Q, Ze / 1852, ue._getUIString("ScaleControl.NauticalMiles")) : Ze >= 1e3 ? Ua(w, Q, Ze / 1e3, ue._getUIString("ScaleControl.Kilometers")) : Ua(w, Q, Ze, ue._getUIString("ScaleControl.Meters"));
+ }
+ function Ua(ue, w, B, Q) {
+ let ee = function(le) {
+ let Oe = Math.pow(10, `${Math.floor(le)}`.length - 1), Ze = le / Oe;
+ return Ze = Ze >= 10 ? 10 : Ze >= 5 ? 5 : Ze >= 3 ? 3 : Ze >= 2 ? 2 : Ze >= 1 ? 1 : function(st) {
+ let Tt = Math.pow(10, Math.ceil(-Math.log(st) / Math.LN10));
+ return Math.round(st * Tt) / Tt;
+ }(Ze), Oe * Ze;
+ }(B);
+ ue.style.width = w * (ee / B) + "px", ue.innerHTML = `${ee} ${Q}`;
+ }
+ let oo = { closeButton: true, closeOnClick: true, focusAfterOpen: true, className: "", maxWidth: "240px", subpixelPositioning: false }, Vc = ["a[href]", "[tabindex]:not([tabindex='-1'])", "[contenteditable]:not([contenteditable='false'])", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].join(", ");
+ function hc(ue) {
+ if (ue) {
+ if (typeof ue == "number") {
+ let w = Math.round(Math.abs(ue) / Math.SQRT2);
+ return { center: new a.P(0, 0), top: new a.P(0, ue), "top-left": new a.P(w, w), "top-right": new a.P(-w, w), bottom: new a.P(0, -ue), "bottom-left": new a.P(w, -w), "bottom-right": new a.P(-w, -w), left: new a.P(ue, 0), right: new a.P(-ue, 0) };
+ }
+ if (ue instanceof a.P || Array.isArray(ue)) {
+ let w = a.P.convert(ue);
+ return { center: w, top: w, "top-left": w, "top-right": w, bottom: w, "bottom-left": w, "bottom-right": w, left: w, right: w };
+ }
+ return { center: a.P.convert(ue.center || [0, 0]), top: a.P.convert(ue.top || [0, 0]), "top-left": a.P.convert(ue["top-left"] || [0, 0]), "top-right": a.P.convert(ue["top-right"] || [0, 0]), bottom: a.P.convert(ue.bottom || [0, 0]), "bottom-left": a.P.convert(ue["bottom-left"] || [0, 0]), "bottom-right": a.P.convert(ue["bottom-right"] || [0, 0]), left: a.P.convert(ue.left || [0, 0]), right: a.P.convert(ue.right || [0, 0]) };
+ }
+ return hc(new a.P(0, 0));
+ }
+ let Ku = o;
+ i.AJAXError = a.bh, i.Evented = a.E, i.LngLat = a.N, i.MercatorCoordinate = a.Z, i.Point = a.P, i.addProtocol = a.bi, i.config = a.a, i.removeProtocol = a.bj, i.AttributionControl = Na, i.BoxZoomHandler = ku, i.CanvasSource = $t, i.CooperativeGesturesHandler = Qi, i.DoubleClickZoomHandler = ki, i.DragPanHandler = wn, i.DragRotateHandler = Nn, i.EdgeInsets = hu, i.FullscreenControl = class extends a.E {
+ constructor(ue = {}) {
+ super(), this._onFullscreenChange = () => {
+ var w;
+ let B = window.document.fullscreenElement || window.document.mozFullScreenElement || window.document.webkitFullscreenElement || window.document.msFullscreenElement;
+ for (; !((w = B == null ? void 0 : B.shadowRoot) === null || w === void 0) && w.fullscreenElement; ) B = B.shadowRoot.fullscreenElement;
+ B === this._container !== this._fullscreen && this._handleFullscreenChange();
+ }, this._onClickFullscreen = () => {
+ this._isFullscreen() ? this._exitFullscreen() : this._requestFullscreen();
+ }, this._fullscreen = false, ue && ue.container && (ue.container instanceof HTMLElement ? this._container = ue.container : a.w("Full screen control 'container' must be a DOM element.")), "onfullscreenchange" in document ? this._fullscreenchange = "fullscreenchange" : "onmozfullscreenchange" in document ? this._fullscreenchange = "mozfullscreenchange" : "onwebkitfullscreenchange" in document ? this._fullscreenchange = "webkitfullscreenchange" : "onmsfullscreenchange" in document && (this._fullscreenchange = "MSFullscreenChange");
+ }
+ onAdd(ue) {
+ return this._map = ue, this._container || (this._container = this._map.getContainer()), this._controlContainer = c.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._setupUI(), this._controlContainer;
+ }
+ onRemove() {
+ c.remove(this._controlContainer), this._map = null, window.document.removeEventListener(this._fullscreenchange, this._onFullscreenChange);
+ }
+ _setupUI() {
+ let ue = this._fullscreenButton = c.create("button", "maplibregl-ctrl-fullscreen", this._controlContainer);
+ c.create("span", "maplibregl-ctrl-icon", ue).setAttribute("aria-hidden", "true"), ue.type = "button", this._updateTitle(), this._fullscreenButton.addEventListener("click", this._onClickFullscreen), window.document.addEventListener(this._fullscreenchange, this._onFullscreenChange);
+ }
+ _updateTitle() {
+ let ue = this._getTitle();
+ this._fullscreenButton.setAttribute("aria-label", ue), this._fullscreenButton.title = ue;
+ }
+ _getTitle() {
+ return this._map._getUIString(this._isFullscreen() ? "FullscreenControl.Exit" : "FullscreenControl.Enter");
+ }
+ _isFullscreen() {
+ return this._fullscreen;
+ }
+ _handleFullscreenChange() {
+ this._fullscreen = !this._fullscreen, this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"), this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"), this._updateTitle(), this._fullscreen ? (this.fire(new a.k("fullscreenstart")), this._prevCooperativeGesturesEnabled = this._map.cooperativeGestures.isEnabled(), this._map.cooperativeGestures.disable()) : (this.fire(new a.k("fullscreenend")), this._prevCooperativeGesturesEnabled && this._map.cooperativeGestures.enable());
+ }
+ _exitFullscreen() {
+ window.document.exitFullscreen ? window.document.exitFullscreen() : window.document.mozCancelFullScreen ? window.document.mozCancelFullScreen() : window.document.msExitFullscreen ? window.document.msExitFullscreen() : window.document.webkitCancelFullScreen ? window.document.webkitCancelFullScreen() : this._togglePseudoFullScreen();
+ }
+ _requestFullscreen() {
+ this._container.requestFullscreen ? this._container.requestFullscreen() : this._container.mozRequestFullScreen ? this._container.mozRequestFullScreen() : this._container.msRequestFullscreen ? this._container.msRequestFullscreen() : this._container.webkitRequestFullscreen ? this._container.webkitRequestFullscreen() : this._togglePseudoFullScreen();
+ }
+ _togglePseudoFullScreen() {
+ this._container.classList.toggle("maplibregl-pseudo-fullscreen"), this._handleFullscreenChange(), this._map.resize();
+ }
+ }, i.GeoJSONSource = ot, i.GeolocateControl = class extends a.E {
+ constructor(ue) {
+ super(), this._onSuccess = (w) => {
+ if (this._map) {
+ if (this._isOutOfMapMaxBounds(w)) return this._setErrorState(), this.fire(new a.k("outofmaxbounds", w)), this._updateMarker(), void this._finish();
+ if (this.options.trackUserLocation) switch (this._lastKnownPosition = w, this._watchState) {
+ case "WAITING_ACTIVE":
+ case "ACTIVE_LOCK":
+ case "ACTIVE_ERROR":
+ this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");
+ break;
+ case "BACKGROUND":
+ case "BACKGROUND_ERROR":
+ this._watchState = "BACKGROUND", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");
+ break;
+ default:
+ throw new Error(`Unexpected watchState ${this._watchState}`);
+ }
+ this.options.showUserLocation && this._watchState !== "OFF" && this._updateMarker(w), this.options.trackUserLocation && this._watchState !== "ACTIVE_LOCK" || this._updateCamera(w), this.options.showUserLocation && this._dotElement.classList.remove("maplibregl-user-location-dot-stale"), this.fire(new a.k("geolocate", w)), this._finish();
+ }
+ }, this._updateCamera = (w) => {
+ let B = new a.N(w.coords.longitude, w.coords.latitude), Q = w.coords.accuracy, ee = this._map.getBearing(), le = a.e({ bearing: ee }, this.options.fitBoundsOptions), Oe = ce.fromLngLat(B, Q);
+ this._map.fitBounds(Oe, le, { geolocateSource: true });
+ }, this._updateMarker = (w) => {
+ if (w) {
+ let B = new a.N(w.coords.longitude, w.coords.latitude);
+ this._accuracyCircleMarker.setLngLat(B).addTo(this._map), this._userLocationDotMarker.setLngLat(B).addTo(this._map), this._accuracy = w.coords.accuracy, this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius();
+ } else this._userLocationDotMarker.remove(), this._accuracyCircleMarker.remove();
+ }, this._onZoom = () => {
+ this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius();
+ }, this._onError = (w) => {
+ if (this._map) {
+ if (this.options.trackUserLocation) if (w.code === 1) {
+ this._watchState = "OFF", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"), this._geolocateButton.disabled = true;
+ let B = this._map._getUIString("GeolocateControl.LocationNotAvailable");
+ this._geolocateButton.title = B, this._geolocateButton.setAttribute("aria-label", B), this._geolocationWatchID !== void 0 && this._clearWatch();
+ } else {
+ if (w.code === 3 && Uc) return;
+ this._setErrorState();
+ }
+ this._watchState !== "OFF" && this.options.showUserLocation && this._dotElement.classList.add("maplibregl-user-location-dot-stale"), this.fire(new a.k("error", w)), this._finish();
+ }
+ }, this._finish = () => {
+ this._timeoutId && clearTimeout(this._timeoutId), this._timeoutId = void 0;
+ }, this._setupUI = () => {
+ this._map && (this._container.addEventListener("contextmenu", (w) => w.preventDefault()), this._geolocateButton = c.create("button", "maplibregl-ctrl-geolocate", this._container), c.create("span", "maplibregl-ctrl-icon", this._geolocateButton).setAttribute("aria-hidden", "true"), this._geolocateButton.type = "button", this._geolocateButton.disabled = true);
+ }, this._finishSetupUI = (w) => {
+ if (this._map) {
+ if (w === false) {
+ a.w("Geolocation support is not available so the GeolocateControl will be disabled.");
+ let B = this._map._getUIString("GeolocateControl.LocationNotAvailable");
+ this._geolocateButton.disabled = true, this._geolocateButton.title = B, this._geolocateButton.setAttribute("aria-label", B);
+ } else {
+ let B = this._map._getUIString("GeolocateControl.FindMyLocation");
+ this._geolocateButton.disabled = false, this._geolocateButton.title = B, this._geolocateButton.setAttribute("aria-label", B);
+ }
+ this.options.trackUserLocation && (this._geolocateButton.setAttribute("aria-pressed", "false"), this._watchState = "OFF"), this.options.showUserLocation && (this._dotElement = c.create("div", "maplibregl-user-location-dot"), this._userLocationDotMarker = new Yu({ element: this._dotElement }), this._circleElement = c.create("div", "maplibregl-user-location-accuracy-circle"), this._accuracyCircleMarker = new Yu({ element: this._circleElement, pitchAlignment: "map" }), this.options.trackUserLocation && (this._watchState = "OFF"), this._map.on("zoom", this._onZoom)), this._geolocateButton.addEventListener("click", () => this.trigger()), this._setup = true, this.options.trackUserLocation && this._map.on("movestart", (B) => {
+ B.geolocateSource || this._watchState !== "ACTIVE_LOCK" || B.originalEvent && B.originalEvent.type === "resize" || (this._watchState = "BACKGROUND", this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this.fire(new a.k("trackuserlocationend")), this.fire(new a.k("userlocationlostfocus")));
+ });
+ }
+ }, this.options = a.e({}, Nc, ue);
+ }
+ onAdd(ue) {
+ return this._map = ue, this._container = c.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._setupUI(), function() {
+ return a._(this, arguments, void 0, function* (w = false) {
+ if (ys !== void 0 && !w) return ys;
+ if (window.navigator.permissions === void 0) return ys = !!window.navigator.geolocation, ys;
+ try {
+ ys = (yield window.navigator.permissions.query({ name: "geolocation" })).state !== "denied";
+ } catch (B) {
+ ys = !!window.navigator.geolocation;
+ }
+ return ys;
+ });
+ }().then((w) => this._finishSetupUI(w)), this._container;
+ }
+ onRemove() {
+ this._geolocationWatchID !== void 0 && (window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), c.remove(this._container), this._map.off("zoom", this._onZoom), this._map = void 0, pu = 0, Uc = false;
+ }
+ _isOutOfMapMaxBounds(ue) {
+ let w = this._map.getMaxBounds(), B = ue.coords;
+ return w && (B.longitude < w.getWest() || B.longitude > w.getEast() || B.latitude < w.getSouth() || B.latitude > w.getNorth());
+ }
+ _setErrorState() {
+ switch (this._watchState) {
+ case "WAITING_ACTIVE":
+ this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error");
+ break;
+ case "ACTIVE_LOCK":
+ this._watchState = "ACTIVE_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");
+ break;
+ case "BACKGROUND":
+ this._watchState = "BACKGROUND_ERROR", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");
+ break;
+ case "ACTIVE_ERROR":
+ break;
+ default:
+ throw new Error(`Unexpected watchState ${this._watchState}`);
+ }
+ }
+ _updateCircleRadius() {
+ let ue = this._map.getBounds(), w = ue.getSouthEast(), B = ue.getNorthEast(), Q = w.distanceTo(B), ee = Math.ceil(this._accuracy / (Q / this._map._container.clientHeight) * 2);
+ this._circleElement.style.width = `${ee}px`, this._circleElement.style.height = `${ee}px`;
+ }
+ trigger() {
+ if (!this._setup) return a.w("Geolocate control triggered before added to a map"), false;
+ if (this.options.trackUserLocation) {
+ switch (this._watchState) {
+ case "OFF":
+ this._watchState = "WAITING_ACTIVE", this.fire(new a.k("trackuserlocationstart"));
+ break;
+ case "WAITING_ACTIVE":
+ case "ACTIVE_LOCK":
+ case "ACTIVE_ERROR":
+ case "BACKGROUND_ERROR":
+ pu--, Uc = false, this._watchState = "OFF", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"), this.fire(new a.k("trackuserlocationend"));
+ break;
+ case "BACKGROUND":
+ this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"), this._lastKnownPosition && this._updateCamera(this._lastKnownPosition), this.fire(new a.k("trackuserlocationstart")), this.fire(new a.k("userlocationfocus"));
+ break;
+ default:
+ throw new Error(`Unexpected watchState ${this._watchState}`);
+ }
+ switch (this._watchState) {
+ case "WAITING_ACTIVE":
+ this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");
+ break;
+ case "ACTIVE_LOCK":
+ this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");
+ break;
+ case "OFF":
+ break;
+ default:
+ throw new Error(`Unexpected watchState ${this._watchState}`);
+ }
+ if (this._watchState === "OFF" && this._geolocationWatchID !== void 0) this._clearWatch();
+ else if (this._geolocationWatchID === void 0) {
+ let ue;
+ this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "true"), pu++, pu > 1 ? (ue = { maximumAge: 6e5, timeout: 0 }, Uc = true) : (ue = this.options.positionOptions, Uc = false), this._geolocationWatchID = window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, ue);
+ }
+ } else window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions), this._timeoutId = setTimeout(this._finish, 1e4);
+ return true;
+ }
+ _clearWatch() {
+ window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0, this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "false"), this.options.showUserLocation && this._updateMarker(null);
+ }
+ }, i.Hash = Mh, i.ImageSource = Wt, i.KeyboardHandler = Xt, i.LngLatBounds = ce, i.LogoControl = Yn, i.Map = class extends Ra {
+ constructor(ue) {
+ a.bf.mark(a.bg.create);
+ let w = Object.assign(Object.assign({}, Ws), ue);
+ if (w.minZoom != null && w.maxZoom != null && w.minZoom > w.maxZoom) throw new Error("maxZoom must be greater than or equal to minZoom");
+ if (w.minPitch != null && w.maxPitch != null && w.minPitch > w.maxPitch) throw new Error("maxPitch must be greater than or equal to minPitch");
+ if (w.minPitch != null && w.minPitch < 0) throw new Error("minPitch must be greater than or equal to 0");
+ if (w.maxPitch != null && w.maxPitch > 85) throw new Error("maxPitch must be less than or equal to 85");
+ if (super(new nl(w.minZoom, w.maxZoom, w.minPitch, w.maxPitch, w.renderWorldCopies), { bearingSnap: w.bearingSnap }), this._idleTriggered = false, this._crossFadingFactor = 1, this._renderTaskQueue = new Dn(), this._controls = [], this._mapId = a.a4(), this._contextLost = (B) => {
+ B.preventDefault(), this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this.fire(new a.k("webglcontextlost", { originalEvent: B }));
+ }, this._contextRestored = (B) => {
+ this._setupPainter(), this.resize(), this._update(), this.fire(new a.k("webglcontextrestored", { originalEvent: B }));
+ }, this._onMapScroll = (B) => {
+ if (B.target === this._container) return this._container.scrollTop = 0, this._container.scrollLeft = 0, false;
+ }, this._onWindowOnline = () => {
+ this._update();
+ }, this._interactive = w.interactive, this._maxTileCacheSize = w.maxTileCacheSize, this._maxTileCacheZoomLevels = w.maxTileCacheZoomLevels, this._failIfMajorPerformanceCaveat = w.failIfMajorPerformanceCaveat === true, this._preserveDrawingBuffer = w.preserveDrawingBuffer === true, this._antialias = w.antialias === true, this._trackResize = w.trackResize === true, this._bearingSnap = w.bearingSnap, this._refreshExpiredTiles = w.refreshExpiredTiles === true, this._fadeDuration = w.fadeDuration, this._crossSourceCollisions = w.crossSourceCollisions === true, this._collectResourceTiming = w.collectResourceTiming === true, this._locale = Object.assign(Object.assign({}, Ho), w.locale), this._clickTolerance = w.clickTolerance, this._overridePixelRatio = w.pixelRatio, this._maxCanvasSize = w.maxCanvasSize, this.transformCameraUpdate = w.transformCameraUpdate, this.cancelPendingTileRequestsWhileZooming = w.cancelPendingTileRequestsWhileZooming === true, this._imageQueueHandle = p.addThrottleControl(() => this.isMoving()), this._requestManager = new k(w.transformRequest), typeof w.container == "string") {
+ if (this._container = document.getElementById(w.container), !this._container) throw new Error(`Container '${w.container}' not found.`);
+ } else {
+ if (!(w.container instanceof HTMLElement)) throw new Error("Invalid type: 'container' must be a String or HTMLElement.");
+ this._container = w.container;
+ }
+ if (w.maxBounds && this.setMaxBounds(w.maxBounds), this._setupContainer(), this._setupPainter(), this.on("move", () => this._update(false)).on("moveend", () => this._update(false)).on("zoom", () => this._update(true)).on("terrain", () => {
+ this.painter.terrainFacilitator.dirty = true, this._update(true);
+ }).once("idle", () => {
+ this._idleTriggered = true;
+ }), typeof window != "undefined") {
+ addEventListener("online", this._onWindowOnline, false);
+ let B = false, Q = nh((ee) => {
+ this._trackResize && !this._removed && (this.resize(ee), this.redraw());
+ }, 50);
+ this._resizeObserver = new ResizeObserver((ee) => {
+ B ? Q(ee) : B = true;
+ }), this._resizeObserver.observe(this._container);
+ }
+ this.handlers = new Ca(this, w), this._hash = w.hash && new Mh(typeof w.hash == "string" && w.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ center: w.center, zoom: w.zoom, bearing: w.bearing, pitch: w.pitch }), w.bounds && (this.resize(), this.fitBounds(w.bounds, a.e({}, w.fitBoundsOptions, { duration: 0 })))), this.resize(), this._localIdeographFontFamily = w.localIdeographFontFamily, this._validateStyle = w.validateStyle, w.style && this.setStyle(w.style, { localIdeographFontFamily: w.localIdeographFontFamily }), w.attributionControl && this.addControl(new Na(typeof w.attributionControl == "boolean" ? void 0 : w.attributionControl)), w.maplibreLogo && this.addControl(new Yn(), w.logoPosition), this.on("style.load", () => {
+ this.transform.unmodified && this.jumpTo(this.style.stylesheet);
+ }), this.on("data", (B) => {
+ this._update(B.dataType === "style"), this.fire(new a.k(`${B.dataType}data`, B));
+ }), this.on("dataloading", (B) => {
+ this.fire(new a.k(`${B.dataType}dataloading`, B));
+ }), this.on("dataabort", (B) => {
+ this.fire(new a.k("sourcedataabort", B));
+ });
+ }
+ _getMapId() {
+ return this._mapId;
+ }
+ addControl(ue, w) {
+ if (w === void 0 && (w = ue.getDefaultPosition ? ue.getDefaultPosition() : "top-right"), !ue || !ue.onAdd) return this.fire(new a.j(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));
+ let B = ue.onAdd(this);
+ this._controls.push(ue);
+ let Q = this._controlPositions[w];
+ return w.indexOf("bottom") !== -1 ? Q.insertBefore(B, Q.firstChild) : Q.appendChild(B), this;
+ }
+ removeControl(ue) {
+ if (!ue || !ue.onRemove) return this.fire(new a.j(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));
+ let w = this._controls.indexOf(ue);
+ return w > -1 && this._controls.splice(w, 1), ue.onRemove(this), this;
+ }
+ hasControl(ue) {
+ return this._controls.indexOf(ue) > -1;
+ }
+ calculateCameraOptionsFromTo(ue, w, B, Q) {
+ return Q == null && this.terrain && (Q = this.terrain.getElevationForLngLatZoom(B, this.transform.tileZoom)), super.calculateCameraOptionsFromTo(ue, w, B, Q);
+ }
+ resize(ue) {
+ var w;
+ let B = this._containerDimensions(), Q = B[0], ee = B[1], le = this._getClampedPixelRatio(Q, ee);
+ if (this._resizeCanvas(Q, ee, le), this.painter.resize(Q, ee, le), this.painter.overLimit()) {
+ let Ze = this.painter.context.gl;
+ this._maxCanvasSize = [Ze.drawingBufferWidth, Ze.drawingBufferHeight];
+ let st = this._getClampedPixelRatio(Q, ee);
+ this._resizeCanvas(Q, ee, st), this.painter.resize(Q, ee, st);
+ }
+ this.transform.resize(Q, ee), (w = this._requestedCameraState) === null || w === void 0 || w.resize(Q, ee);
+ let Oe = !this._moving;
+ return Oe && (this.stop(), this.fire(new a.k("movestart", ue)).fire(new a.k("move", ue))), this.fire(new a.k("resize", ue)), Oe && this.fire(new a.k("moveend", ue)), this;
+ }
+ _getClampedPixelRatio(ue, w) {
+ let { 0: B, 1: Q } = this._maxCanvasSize, ee = this.getPixelRatio(), le = ue * ee, Oe = w * ee;
+ return Math.min(le > B ? B / le : 1, Oe > Q ? Q / Oe : 1) * ee;
+ }
+ getPixelRatio() {
+ var ue;
+ return (ue = this._overridePixelRatio) !== null && ue !== void 0 ? ue : devicePixelRatio;
+ }
+ setPixelRatio(ue) {
+ this._overridePixelRatio = ue, this.resize();
+ }
+ getBounds() {
+ return this.transform.getBounds();
+ }
+ getMaxBounds() {
+ return this.transform.getMaxBounds();
+ }
+ setMaxBounds(ue) {
+ return this.transform.setMaxBounds(ce.convert(ue)), this._update();
+ }
+ setMinZoom(ue) {
+ if ((ue = ue == null ? -2 : ue) >= -2 && ue <= this.transform.maxZoom) return this.transform.minZoom = ue, this._update(), this.getZoom() < ue && this.setZoom(ue), this;
+ throw new Error("minZoom must be between -2 and the current maxZoom, inclusive");
+ }
+ getMinZoom() {
+ return this.transform.minZoom;
+ }
+ setMaxZoom(ue) {
+ if ((ue = ue == null ? 22 : ue) >= this.transform.minZoom) return this.transform.maxZoom = ue, this._update(), this.getZoom() > ue && this.setZoom(ue), this;
+ throw new Error("maxZoom must be greater than the current minZoom");
+ }
+ getMaxZoom() {
+ return this.transform.maxZoom;
+ }
+ setMinPitch(ue) {
+ if ((ue = ue == null ? 0 : ue) < 0) throw new Error("minPitch must be greater than or equal to 0");
+ if (ue >= 0 && ue <= this.transform.maxPitch) return this.transform.minPitch = ue, this._update(), this.getPitch() < ue && this.setPitch(ue), this;
+ throw new Error("minPitch must be between 0 and the current maxPitch, inclusive");
+ }
+ getMinPitch() {
+ return this.transform.minPitch;
+ }
+ setMaxPitch(ue) {
+ if ((ue = ue == null ? 60 : ue) > 85) throw new Error("maxPitch must be less than or equal to 85");
+ if (ue >= this.transform.minPitch) return this.transform.maxPitch = ue, this._update(), this.getPitch() > ue && this.setPitch(ue), this;
+ throw new Error("maxPitch must be greater than the current minPitch");
+ }
+ getMaxPitch() {
+ return this.transform.maxPitch;
+ }
+ getRenderWorldCopies() {
+ return this.transform.renderWorldCopies;
+ }
+ setRenderWorldCopies(ue) {
+ return this.transform.renderWorldCopies = ue, this._update();
+ }
+ project(ue) {
+ return this.transform.locationPoint(a.N.convert(ue), this.style && this.terrain);
+ }
+ unproject(ue) {
+ return this.transform.pointLocation(a.P.convert(ue), this.terrain);
+ }
+ isMoving() {
+ var ue;
+ return this._moving || ((ue = this.handlers) === null || ue === void 0 ? void 0 : ue.isMoving());
+ }
+ isZooming() {
+ var ue;
+ return this._zooming || ((ue = this.handlers) === null || ue === void 0 ? void 0 : ue.isZooming());
+ }
+ isRotating() {
+ var ue;
+ return this._rotating || ((ue = this.handlers) === null || ue === void 0 ? void 0 : ue.isRotating());
+ }
+ _createDelegatedListener(ue, w, B) {
+ if (ue === "mouseenter" || ue === "mouseover") {
+ let Q = false;
+ return { layers: w, listener: B, delegates: { mousemove: (le) => {
+ let Oe = w.filter((st) => this.getLayer(st)), Ze = Oe.length !== 0 ? this.queryRenderedFeatures(le.point, { layers: Oe }) : [];
+ Ze.length ? Q || (Q = true, B.call(this, new jl(ue, this, le.originalEvent, { features: Ze }))) : Q = false;
+ }, mouseout: () => {
+ Q = false;
+ } } };
+ }
+ if (ue === "mouseleave" || ue === "mouseout") {
+ let Q = false;
+ return { layers: w, listener: B, delegates: { mousemove: (Oe) => {
+ let Ze = w.filter((st) => this.getLayer(st));
+ (Ze.length !== 0 ? this.queryRenderedFeatures(Oe.point, { layers: Ze }) : []).length ? Q = true : Q && (Q = false, B.call(this, new jl(ue, this, Oe.originalEvent)));
+ }, mouseout: (Oe) => {
+ Q && (Q = false, B.call(this, new jl(ue, this, Oe.originalEvent)));
+ } } };
+ }
+ {
+ let Q = (ee) => {
+ let le = w.filter((Ze) => this.getLayer(Ze)), Oe = le.length !== 0 ? this.queryRenderedFeatures(ee.point, { layers: le }) : [];
+ Oe.length && (ee.features = Oe, B.call(this, ee), delete ee.features);
+ };
+ return { layers: w, listener: B, delegates: { [ue]: Q } };
+ }
+ }
+ _saveDelegatedListener(ue, w) {
+ this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[ue] = this._delegatedListeners[ue] || [], this._delegatedListeners[ue].push(w);
+ }
+ _removeDelegatedListener(ue, w, B) {
+ if (!this._delegatedListeners || !this._delegatedListeners[ue]) return;
+ let Q = this._delegatedListeners[ue];
+ for (let ee = 0; ee < Q.length; ee++) {
+ let le = Q[ee];
+ if (le.listener === B && le.layers.length === w.length && le.layers.every((Oe) => w.includes(Oe))) {
+ for (let Oe in le.delegates) this.off(Oe, le.delegates[Oe]);
+ return void Q.splice(ee, 1);
+ }
+ }
+ }
+ on(ue, w, B) {
+ if (B === void 0) return super.on(ue, w);
+ let Q = this._createDelegatedListener(ue, typeof w == "string" ? [w] : w, B);
+ this._saveDelegatedListener(ue, Q);
+ for (let ee in Q.delegates) this.on(ee, Q.delegates[ee]);
+ return this;
+ }
+ once(ue, w, B) {
+ if (B === void 0) return super.once(ue, w);
+ let Q = typeof w == "string" ? [w] : w, ee = this._createDelegatedListener(ue, Q, B);
+ for (let le in ee.delegates) {
+ let Oe = ee.delegates[le];
+ ee.delegates[le] = (...Ze) => {
+ this._removeDelegatedListener(ue, Q, B), Oe(...Ze);
+ };
+ }
+ this._saveDelegatedListener(ue, ee);
+ for (let le in ee.delegates) this.once(le, ee.delegates[le]);
+ return this;
+ }
+ off(ue, w, B) {
+ return B === void 0 ? super.off(ue, w) : (this._removeDelegatedListener(ue, typeof w == "string" ? [w] : w, B), this);
+ }
+ queryRenderedFeatures(ue, w) {
+ if (!this.style) return [];
+ let B, Q = ue instanceof a.P || Array.isArray(ue), ee = Q ? ue : [[0, 0], [this.transform.width, this.transform.height]];
+ if (w = w || (Q ? {} : ue) || {}, ee instanceof a.P || typeof ee[0] == "number") B = [a.P.convert(ee)];
+ else {
+ let le = a.P.convert(ee[0]), Oe = a.P.convert(ee[1]);
+ B = [le, new a.P(Oe.x, le.y), Oe, new a.P(le.x, Oe.y), le];
+ }
+ return this.style.queryRenderedFeatures(B, w, this.transform);
+ }
+ querySourceFeatures(ue, w) {
+ return this.style.querySourceFeatures(ue, w);
+ }
+ setStyle(ue, w) {
+ return (w = a.e({}, { localIdeographFontFamily: this._localIdeographFontFamily, validate: this._validateStyle }, w)).diff !== false && w.localIdeographFontFamily === this._localIdeographFontFamily && this.style && ue ? (this._diffStyle(ue, w), this) : (this._localIdeographFontFamily = w.localIdeographFontFamily, this._updateStyle(ue, w));
+ }
+ setTransformRequest(ue) {
+ return this._requestManager.setTransformRequest(ue), this;
+ }
+ _getUIString(ue) {
+ let w = this._locale[ue];
+ if (w == null) throw new Error(`Missing UI string '${ue}'`);
+ return w;
+ }
+ _updateStyle(ue, w) {
+ if (w.transformStyle && this.style && !this.style._loaded) return void this.style.once("style.load", () => this._updateStyle(ue, w));
+ let B = this.style && w.transformStyle ? this.style.serialize() : void 0;
+ return this.style && (this.style.setEventedParent(null), this.style._remove(!ue)), ue ? (this.style = new Ha(this, w || {}), this.style.setEventedParent(this, { style: this.style }), typeof ue == "string" ? this.style.loadURL(ue, w, B) : this.style.loadJSON(ue, w, B), this) : (delete this.style, this);
+ }
+ _lazyInitEmptyStyle() {
+ this.style || (this.style = new Ha(this, {}), this.style.setEventedParent(this, { style: this.style }), this.style.loadEmpty());
+ }
+ _diffStyle(ue, w) {
+ if (typeof ue == "string") {
+ let B = this._requestManager.transformRequest(ue, "Style");
+ a.h(B, new AbortController()).then((Q) => {
+ this._updateDiff(Q.data, w);
+ }).catch((Q) => {
+ Q && this.fire(new a.j(Q));
+ });
+ } else typeof ue == "object" && this._updateDiff(ue, w);
+ }
+ _updateDiff(ue, w) {
+ try {
+ this.style.setState(ue, w) && this._update(true);
+ } catch (B) {
+ a.w(`Unable to perform style diff: ${B.message || B.error || B}. Rebuilding the style from scratch.`), this._updateStyle(ue, w);
+ }
+ }
+ getStyle() {
+ if (this.style) return this.style.serialize();
+ }
+ isStyleLoaded() {
+ return this.style ? this.style.loaded() : a.w("There is no style added to the map.");
+ }
+ addSource(ue, w) {
+ return this._lazyInitEmptyStyle(), this.style.addSource(ue, w), this._update(true);
+ }
+ isSourceLoaded(ue) {
+ let w = this.style && this.style.sourceCaches[ue];
+ if (w !== void 0) return w.loaded();
+ this.fire(new a.j(new Error(`There is no source with ID '${ue}'`)));
+ }
+ setTerrain(ue) {
+ if (this.style._checkLoaded(), this._terrainDataCallback && this.style.off("data", this._terrainDataCallback), ue) {
+ let w = this.style.sourceCaches[ue.source];
+ if (!w) throw new Error(`cannot load terrain, because there exists no source with ID: ${ue.source}`);
+ this.terrain === null && w.reload();
+ for (let B in this.style._layers) {
+ let Q = this.style._layers[B];
+ Q.type === "hillshade" && Q.source === ue.source && a.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.");
+ }
+ this.terrain = new Zo(this.painter, w, ue), this.painter.renderToTexture = new ws(this.painter, this.terrain), this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this._terrainDataCallback = (B) => {
+ B.dataType === "style" ? this.terrain.sourceCache.freeRtt() : B.dataType === "source" && B.tile && (B.sourceId !== ue.source || this._elevationFreeze || (this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this.terrain.sourceCache.freeRtt(B.tile.tileID));
+ }, this.style.on("data", this._terrainDataCallback);
+ } else this.terrain && this.terrain.sourceCache.destruct(), this.terrain = null, this.painter.renderToTexture && this.painter.renderToTexture.destruct(), this.painter.renderToTexture = null, this.transform.minElevationForCurrentTile = 0, this.transform.elevation = 0;
+ return this.fire(new a.k("terrain", { terrain: ue })), this;
+ }
+ getTerrain() {
+ var ue, w;
+ return (w = (ue = this.terrain) === null || ue === void 0 ? void 0 : ue.options) !== null && w !== void 0 ? w : null;
+ }
+ areTilesLoaded() {
+ let ue = this.style && this.style.sourceCaches;
+ for (let w in ue) {
+ let B = ue[w]._tiles;
+ for (let Q in B) {
+ let ee = B[Q];
+ if (ee.state !== "loaded" && ee.state !== "errored") return false;
+ }
+ }
+ return true;
+ }
+ removeSource(ue) {
+ return this.style.removeSource(ue), this._update(true);
+ }
+ getSource(ue) {
+ return this.style.getSource(ue);
+ }
+ addImage(ue, w, B = {}) {
+ let { pixelRatio: Q = 1, sdf: ee = false, stretchX: le, stretchY: Oe, content: Ze, textFitWidth: st, textFitHeight: Tt } = B;
+ if (this._lazyInitEmptyStyle(), !(w instanceof HTMLImageElement || a.b(w))) {
+ if (w.width === void 0 || w.height === void 0) return this.fire(new a.j(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));
+ {
+ let { width: Yt, height: Kt, data: xr } = w, Ir = w;
+ return this.style.addImage(ue, { data: new a.R({ width: Yt, height: Kt }, new Uint8Array(xr)), pixelRatio: Q, stretchX: le, stretchY: Oe, content: Ze, textFitWidth: st, textFitHeight: Tt, sdf: ee, version: 0, userImage: Ir }), Ir.onAdd && Ir.onAdd(this, ue), this;
+ }
+ }
+ {
+ let { width: Yt, height: Kt, data: xr } = u.getImageData(w);
+ this.style.addImage(ue, { data: new a.R({ width: Yt, height: Kt }, xr), pixelRatio: Q, stretchX: le, stretchY: Oe, content: Ze, textFitWidth: st, textFitHeight: Tt, sdf: ee, version: 0 });
+ }
+ }
+ updateImage(ue, w) {
+ let B = this.style.getImage(ue);
+ if (!B) return this.fire(new a.j(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));
+ let Q = w instanceof HTMLImageElement || a.b(w) ? u.getImageData(w) : w, { width: ee, height: le, data: Oe } = Q;
+ if (ee === void 0 || le === void 0) return this.fire(new a.j(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));
+ if (ee !== B.data.width || le !== B.data.height) return this.fire(new a.j(new Error("The width and height of the updated image must be that same as the previous version of the image")));
+ let Ze = !(w instanceof HTMLImageElement || a.b(w));
+ return B.data.replace(Oe, Ze), this.style.updateImage(ue, B), this;
+ }
+ getImage(ue) {
+ return this.style.getImage(ue);
+ }
+ hasImage(ue) {
+ return ue ? !!this.style.getImage(ue) : (this.fire(new a.j(new Error("Missing required image id"))), false);
+ }
+ removeImage(ue) {
+ this.style.removeImage(ue);
+ }
+ loadImage(ue) {
+ return p.getImage(this._requestManager.transformRequest(ue, "Image"), new AbortController());
+ }
+ listImages() {
+ return this.style.listImages();
+ }
+ addLayer(ue, w) {
+ return this._lazyInitEmptyStyle(), this.style.addLayer(ue, w), this._update(true);
+ }
+ moveLayer(ue, w) {
+ return this.style.moveLayer(ue, w), this._update(true);
+ }
+ removeLayer(ue) {
+ return this.style.removeLayer(ue), this._update(true);
+ }
+ getLayer(ue) {
+ return this.style.getLayer(ue);
+ }
+ getLayersOrder() {
+ return this.style.getLayersOrder();
+ }
+ setLayerZoomRange(ue, w, B) {
+ return this.style.setLayerZoomRange(ue, w, B), this._update(true);
+ }
+ setFilter(ue, w, B = {}) {
+ return this.style.setFilter(ue, w, B), this._update(true);
+ }
+ getFilter(ue) {
+ return this.style.getFilter(ue);
+ }
+ setPaintProperty(ue, w, B, Q = {}) {
+ return this.style.setPaintProperty(ue, w, B, Q), this._update(true);
+ }
+ getPaintProperty(ue, w) {
+ return this.style.getPaintProperty(ue, w);
+ }
+ setLayoutProperty(ue, w, B, Q = {}) {
+ return this.style.setLayoutProperty(ue, w, B, Q), this._update(true);
+ }
+ getLayoutProperty(ue, w) {
+ return this.style.getLayoutProperty(ue, w);
+ }
+ setGlyphs(ue, w = {}) {
+ return this._lazyInitEmptyStyle(), this.style.setGlyphs(ue, w), this._update(true);
+ }
+ getGlyphs() {
+ return this.style.getGlyphsUrl();
+ }
+ addSprite(ue, w, B = {}) {
+ return this._lazyInitEmptyStyle(), this.style.addSprite(ue, w, B, (Q) => {
+ Q || this._update(true);
+ }), this;
+ }
+ removeSprite(ue) {
+ return this._lazyInitEmptyStyle(), this.style.removeSprite(ue), this._update(true);
+ }
+ getSprite() {
+ return this.style.getSprite();
+ }
+ setSprite(ue, w = {}) {
+ return this._lazyInitEmptyStyle(), this.style.setSprite(ue, w, (B) => {
+ B || this._update(true);
+ }), this;
+ }
+ setLight(ue, w = {}) {
+ return this._lazyInitEmptyStyle(), this.style.setLight(ue, w), this._update(true);
+ }
+ getLight() {
+ return this.style.getLight();
+ }
+ setSky(ue) {
+ return this._lazyInitEmptyStyle(), this.style.setSky(ue), this._update(true);
+ }
+ getSky() {
+ return this.style.getSky();
+ }
+ setFeatureState(ue, w) {
+ return this.style.setFeatureState(ue, w), this._update();
+ }
+ removeFeatureState(ue, w) {
+ return this.style.removeFeatureState(ue, w), this._update();
+ }
+ getFeatureState(ue) {
+ return this.style.getFeatureState(ue);
+ }
+ getContainer() {
+ return this._container;
+ }
+ getCanvasContainer() {
+ return this._canvasContainer;
+ }
+ getCanvas() {
+ return this._canvas;
+ }
+ _containerDimensions() {
+ let ue = 0, w = 0;
+ return this._container && (ue = this._container.clientWidth || 400, w = this._container.clientHeight || 300), [ue, w];
+ }
+ _setupContainer() {
+ let ue = this._container;
+ ue.classList.add("maplibregl-map");
+ let w = this._canvasContainer = c.create("div", "maplibregl-canvas-container", ue);
+ this._interactive && w.classList.add("maplibregl-interactive"), this._canvas = c.create("canvas", "maplibregl-canvas", w), this._canvas.addEventListener("webglcontextlost", this._contextLost, false), this._canvas.addEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.setAttribute("tabindex", this._interactive ? "0" : "-1"), this._canvas.setAttribute("aria-label", this._getUIString("Map.Title")), this._canvas.setAttribute("role", "region");
+ let B = this._containerDimensions(), Q = this._getClampedPixelRatio(B[0], B[1]);
+ this._resizeCanvas(B[0], B[1], Q);
+ let ee = this._controlContainer = c.create("div", "maplibregl-control-container", ue), le = this._controlPositions = {};
+ ["top-left", "top-right", "bottom-left", "bottom-right"].forEach((Oe) => {
+ le[Oe] = c.create("div", `maplibregl-ctrl-${Oe} `, ee);
+ }), this._container.addEventListener("scroll", this._onMapScroll, false);
+ }
+ _resizeCanvas(ue, w, B) {
+ this._canvas.width = Math.floor(B * ue), this._canvas.height = Math.floor(B * w), this._canvas.style.width = `${ue}px`, this._canvas.style.height = `${w}px`;
+ }
+ _setupPainter() {
+ let ue = { alpha: true, stencil: true, depth: true, failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat, preserveDrawingBuffer: this._preserveDrawingBuffer, antialias: this._antialias || false }, w = null;
+ this._canvas.addEventListener("webglcontextcreationerror", (Q) => {
+ w = { requestedAttributes: ue }, Q && (w.statusMessage = Q.statusMessage, w.type = Q.type);
+ }, { once: true });
+ let B = this._canvas.getContext("webgl2", ue) || this._canvas.getContext("webgl", ue);
+ if (!B) {
+ let Q = "Failed to initialize WebGL";
+ throw w ? (w.message = Q, new Error(JSON.stringify(w))) : new Error(Q);
+ }
+ this.painter = new Dc(B, this.transform), f.testSupport(B);
+ }
+ loaded() {
+ return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded();
+ }
+ _update(ue) {
+ return this.style && this.style._loaded ? (this._styleDirty = this._styleDirty || ue, this._sourcesDirty = true, this.triggerRepaint(), this) : this;
+ }
+ _requestRenderFrame(ue) {
+ return this._update(), this._renderTaskQueue.add(ue);
+ }
+ _cancelRenderFrame(ue) {
+ this._renderTaskQueue.remove(ue);
+ }
+ _render(ue) {
+ let w = this._idleTriggered ? this._fadeDuration : 0;
+ if (this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(ue), this._removed) return;
+ let B = false;
+ if (this.style && this._styleDirty) {
+ this._styleDirty = false;
+ let ee = this.transform.zoom, le = u.now();
+ this.style.zoomHistory.update(ee, le);
+ let Oe = new a.z(ee, { now: le, fadeDuration: w, zoomHistory: this.style.zoomHistory, transition: this.style.getTransition() }), Ze = Oe.crossFadingFactor();
+ Ze === 1 && Ze === this._crossFadingFactor || (B = true, this._crossFadingFactor = Ze), this.style.update(Oe);
+ }
+ this.style && this._sourcesDirty && (this._sourcesDirty = false, this.style._updateSources(this.transform)), this.terrain ? (this.terrain.sourceCache.update(this.transform, this.terrain), this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this._elevationFreeze || (this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom))) : (this.transform.minElevationForCurrentTile = 0, this.transform.elevation = 0), this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, w, this._crossSourceCollisions), this.painter.render(this.style, { showTileBoundaries: this.showTileBoundaries, showOverdrawInspector: this._showOverdrawInspector, rotating: this.isRotating(), zooming: this.isZooming(), moving: this.isMoving(), fadeDuration: w, showPadding: this.showPadding }), this.fire(new a.k("render")), this.loaded() && !this._loaded && (this._loaded = true, a.bf.mark(a.bg.load), this.fire(new a.k("load"))), this.style && (this.style.hasTransitions() || B) && (this._styleDirty = true), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles();
+ let Q = this._sourcesDirty || this._styleDirty || this._placementDirty;
+ return Q || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new a.k("idle")), !this._loaded || this._fullyLoaded || Q || (this._fullyLoaded = true, a.bf.mark(a.bg.fullLoad)), this;
+ }
+ redraw() {
+ return this.style && (this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._render(0)), this;
+ }
+ remove() {
+ var ue;
+ this._hash && this._hash.remove();
+ for (let B of this._controls) B.onRemove(this);
+ this._controls = [], this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._renderTaskQueue.clear(), this.painter.destroy(), this.handlers.destroy(), delete this.handlers, this.setStyle(null), typeof window != "undefined" && removeEventListener("online", this._onWindowOnline, false), p.removeThrottleControl(this._imageQueueHandle), (ue = this._resizeObserver) === null || ue === void 0 || ue.disconnect();
+ let w = this.painter.context.gl.getExtension("WEBGL_lose_context");
+ w != null && w.loseContext && w.loseContext(), this._canvas.removeEventListener("webglcontextrestored", this._contextRestored, false), this._canvas.removeEventListener("webglcontextlost", this._contextLost, false), c.remove(this._canvasContainer), c.remove(this._controlContainer), this._container.classList.remove("maplibregl-map"), a.bf.clearMetrics(), this._removed = true, this.fire(new a.k("remove"));
+ }
+ triggerRepaint() {
+ this.style && !this._frameRequest && (this._frameRequest = new AbortController(), u.frameAsync(this._frameRequest).then((ue) => {
+ a.bf.frame(ue), this._frameRequest = null, this._render(ue);
+ }).catch(() => {
+ }));
+ }
+ get showTileBoundaries() {
+ return !!this._showTileBoundaries;
+ }
+ set showTileBoundaries(ue) {
+ this._showTileBoundaries !== ue && (this._showTileBoundaries = ue, this._update());
+ }
+ get showPadding() {
+ return !!this._showPadding;
+ }
+ set showPadding(ue) {
+ this._showPadding !== ue && (this._showPadding = ue, this._update());
+ }
+ get showCollisionBoxes() {
+ return !!this._showCollisionBoxes;
+ }
+ set showCollisionBoxes(ue) {
+ this._showCollisionBoxes !== ue && (this._showCollisionBoxes = ue, ue ? this.style._generateCollisionBoxes() : this._update());
+ }
+ get showOverdrawInspector() {
+ return !!this._showOverdrawInspector;
+ }
+ set showOverdrawInspector(ue) {
+ this._showOverdrawInspector !== ue && (this._showOverdrawInspector = ue, this._update());
+ }
+ get repaint() {
+ return !!this._repaint;
+ }
+ set repaint(ue) {
+ this._repaint !== ue && (this._repaint = ue, this.triggerRepaint());
+ }
+ get vertices() {
+ return !!this._vertices;
+ }
+ set vertices(ue) {
+ this._vertices = ue, this._update();
+ }
+ get version() {
+ return ml;
+ }
+ getCameraTargetElevation() {
+ return this.transform.elevation;
+ }
+ }, i.MapMouseEvent = jl, i.MapTouchEvent = lf, i.MapWheelEvent = Xh, i.Marker = Yu, i.NavigationControl = class {
+ constructor(ue) {
+ this._updateZoomButtons = () => {
+ let w = this._map.getZoom(), B = w === this._map.getMaxZoom(), Q = w === this._map.getMinZoom();
+ this._zoomInButton.disabled = B, this._zoomOutButton.disabled = Q, this._zoomInButton.setAttribute("aria-disabled", B.toString()), this._zoomOutButton.setAttribute("aria-disabled", Q.toString());
+ }, this._rotateCompassArrow = () => {
+ let w = this.options.visualizePitch ? `scale(${1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle * (180 / Math.PI)}deg)` : `rotate(${this._map.transform.angle * (180 / Math.PI)}deg)`;
+ this._compassIcon.style.transform = w;
+ }, this._setButtonTitle = (w, B) => {
+ let Q = this._map._getUIString(`NavigationControl.${B}`);
+ w.title = Q, w.setAttribute("aria-label", Q);
+ }, this.options = a.e({}, va, ue), this._container = c.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._container.addEventListener("contextmenu", (w) => w.preventDefault()), this.options.showZoom && (this._zoomInButton = this._createButton("maplibregl-ctrl-zoom-in", (w) => this._map.zoomIn({}, { originalEvent: w })), c.create("span", "maplibregl-ctrl-icon", this._zoomInButton).setAttribute("aria-hidden", "true"), this._zoomOutButton = this._createButton("maplibregl-ctrl-zoom-out", (w) => this._map.zoomOut({}, { originalEvent: w })), c.create("span", "maplibregl-ctrl-icon", this._zoomOutButton).setAttribute("aria-hidden", "true")), this.options.showCompass && (this._compass = this._createButton("maplibregl-ctrl-compass", (w) => {
+ this.options.visualizePitch ? this._map.resetNorthPitch({}, { originalEvent: w }) : this._map.resetNorth({}, { originalEvent: w });
+ }), this._compassIcon = c.create("span", "maplibregl-ctrl-icon", this._compass), this._compassIcon.setAttribute("aria-hidden", "true"));
+ }
+ onAdd(ue) {
+ return this._map = ue, this.options.showZoom && (this._setButtonTitle(this._zoomInButton, "ZoomIn"), this._setButtonTitle(this._zoomOutButton, "ZoomOut"), this._map.on("zoom", this._updateZoomButtons), this._updateZoomButtons()), this.options.showCompass && (this._setButtonTitle(this._compass, "ResetBearing"), this.options.visualizePitch && this._map.on("pitch", this._rotateCompassArrow), this._map.on("rotate", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new no(this._map, this._compass, this.options.visualizePitch)), this._container;
+ }
+ onRemove() {
+ c.remove(this._container), this.options.showZoom && this._map.off("zoom", this._updateZoomButtons), this.options.showCompass && (this.options.visualizePitch && this._map.off("pitch", this._rotateCompassArrow), this._map.off("rotate", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map;
+ }
+ _createButton(ue, w) {
+ let B = c.create("button", ue, this._container);
+ return B.type = "button", B.addEventListener("click", w), B;
+ }
+ }, i.Popup = class extends a.E {
+ constructor(ue) {
+ super(), this.remove = () => (this._content && c.remove(this._content), this._container && (c.remove(this._container), delete this._container), this._map && (this._map.off("move", this._update), this._map.off("move", this._onClose), this._map.off("click", this._onClose), this._map.off("remove", this.remove), this._map.off("mousemove", this._onMouseMove), this._map.off("mouseup", this._onMouseUp), this._map.off("drag", this._onDrag), this._map._canvasContainer.classList.remove("maplibregl-track-pointer"), delete this._map, this.fire(new a.k("close"))), this), this._onMouseUp = (w) => {
+ this._update(w.point);
+ }, this._onMouseMove = (w) => {
+ this._update(w.point);
+ }, this._onDrag = (w) => {
+ this._update(w.point);
+ }, this._update = (w) => {
+ var B;
+ if (!this._map || !this._lngLat && !this._trackPointer || !this._content) return;
+ if (!this._container) {
+ if (this._container = c.create("div", "maplibregl-popup", this._map.getContainer()), this._tip = c.create("div", "maplibregl-popup-tip", this._container), this._container.appendChild(this._content), this.options.className) for (let Ze of this.options.className.split(" ")) this._container.classList.add(Ze);
+ this._closeButton && this._closeButton.setAttribute("aria-label", this._map._getUIString("Popup.Close")), this._trackPointer && this._container.classList.add("maplibregl-popup-track-pointer");
+ }
+ if (this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth && (this._container.style.maxWidth = this.options.maxWidth), this._lngLat = this._map.transform.renderWorldCopies && !this._trackPointer ? rs(this._lngLat, this._flatPos, this._map.transform) : (B = this._lngLat) === null || B === void 0 ? void 0 : B.wrap(), this._trackPointer && !w) return;
+ let Q = this._flatPos = this._pos = this._trackPointer && w ? w : this._map.project(this._lngLat);
+ this._map.terrain && (this._flatPos = this._trackPointer && w ? w : this._map.transform.locationPoint(this._lngLat));
+ let ee = this.options.anchor, le = hc(this.options.offset);
+ if (!ee) {
+ let Ze = this._container.offsetWidth, st = this._container.offsetHeight, Tt;
+ Tt = Q.y + le.bottom.y < st ? ["top"] : Q.y > this._map.transform.height - st ? ["bottom"] : [], Q.x < Ze / 2 ? Tt.push("left") : Q.x > this._map.transform.width - Ze / 2 && Tt.push("right"), ee = Tt.length === 0 ? "bottom" : Tt.join("-");
+ }
+ let Oe = Q.add(le[ee]);
+ this.options.subpixelPositioning || (Oe = Oe.round()), c.setTransform(this._container, `${Ql[ee]} translate(${Oe.x}px,${Oe.y}px)`), Cu(this._container, ee, "popup");
+ }, this._onClose = () => {
+ this.remove();
+ }, this.options = a.e(Object.create(oo), ue);
+ }
+ addTo(ue) {
+ return this._map && this.remove(), this._map = ue, this.options.closeOnClick && this._map.on("click", this._onClose), this.options.closeOnMove && this._map.on("move", this._onClose), this._map.on("remove", this.remove), this._update(), this._focusFirstElement(), this._trackPointer ? (this._map.on("mousemove", this._onMouseMove), this._map.on("mouseup", this._onMouseUp), this._container && this._container.classList.add("maplibregl-popup-track-pointer"), this._map._canvasContainer.classList.add("maplibregl-track-pointer")) : this._map.on("move", this._update), this.fire(new a.k("open")), this;
+ }
+ isOpen() {
+ return !!this._map;
+ }
+ getLngLat() {
+ return this._lngLat;
+ }
+ setLngLat(ue) {
+ return this._lngLat = a.N.convert(ue), this._pos = null, this._flatPos = null, this._trackPointer = false, this._update(), this._map && (this._map.on("move", this._update), this._map.off("mousemove", this._onMouseMove), this._container && this._container.classList.remove("maplibregl-popup-track-pointer"), this._map._canvasContainer.classList.remove("maplibregl-track-pointer")), this;
+ }
+ trackPointer() {
+ return this._trackPointer = true, this._pos = null, this._flatPos = null, this._update(), this._map && (this._map.off("move", this._update), this._map.on("mousemove", this._onMouseMove), this._map.on("drag", this._onDrag), this._container && this._container.classList.add("maplibregl-popup-track-pointer"), this._map._canvasContainer.classList.add("maplibregl-track-pointer")), this;
+ }
+ getElement() {
+ return this._container;
+ }
+ setText(ue) {
+ return this.setDOMContent(document.createTextNode(ue));
+ }
+ setHTML(ue) {
+ let w = document.createDocumentFragment(), B = document.createElement("body"), Q;
+ for (B.innerHTML = ue; Q = B.firstChild, Q; ) w.appendChild(Q);
+ return this.setDOMContent(w);
+ }
+ getMaxWidth() {
+ var ue;
+ return (ue = this._container) === null || ue === void 0 ? void 0 : ue.style.maxWidth;
+ }
+ setMaxWidth(ue) {
+ return this.options.maxWidth = ue, this._update(), this;
+ }
+ setDOMContent(ue) {
+ if (this._content) for (; this._content.hasChildNodes(); ) this._content.firstChild && this._content.removeChild(this._content.firstChild);
+ else this._content = c.create("div", "maplibregl-popup-content", this._container);
+ return this._content.appendChild(ue), this._createCloseButton(), this._update(), this._focusFirstElement(), this;
+ }
+ addClassName(ue) {
+ return this._container && this._container.classList.add(ue), this;
+ }
+ removeClassName(ue) {
+ return this._container && this._container.classList.remove(ue), this;
+ }
+ setOffset(ue) {
+ return this.options.offset = ue, this._update(), this;
+ }
+ toggleClassName(ue) {
+ if (this._container) return this._container.classList.toggle(ue);
+ }
+ setSubpixelPositioning(ue) {
+ this.options.subpixelPositioning = ue;
+ }
+ _createCloseButton() {
+ this.options.closeButton && (this._closeButton = c.create("button", "maplibregl-popup-close-button", this._content), this._closeButton.type = "button", this._closeButton.innerHTML = "×", this._closeButton.addEventListener("click", this._onClose));
+ }
+ _focusFirstElement() {
+ if (!this.options.focusAfterOpen || !this._container) return;
+ let ue = this._container.querySelector(Vc);
+ ue && ue.focus();
+ }
+ }, i.RasterDEMTileSource = Vt, i.RasterTileSource = pt, i.ScaleControl = class {
+ constructor(ue) {
+ this._onMove = () => {
+ Ac(this._map, this._container, this.options);
+ }, this.setUnit = (w) => {
+ this.options.unit = w, Ac(this._map, this._container, this.options);
+ }, this.options = Object.assign(Object.assign({}, xu), ue);
+ }
+ getDefaultPosition() {
+ return "bottom-left";
+ }
+ onAdd(ue) {
+ return this._map = ue, this._container = c.create("div", "maplibregl-ctrl maplibregl-ctrl-scale", ue.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container;
+ }
+ onRemove() {
+ c.remove(this._container), this._map.off("move", this._onMove), this._map = void 0;
+ }
+ }, i.ScrollZoomHandler = Kr, i.Style = Ha, i.TerrainControl = class {
+ constructor(ue) {
+ this._toggleTerrain = () => {
+ this._map.getTerrain() ? this._map.setTerrain(null) : this._map.setTerrain(this.options), this._updateTerrainIcon();
+ }, this._updateTerrainIcon = () => {
+ this._terrainButton.classList.remove("maplibregl-ctrl-terrain"), this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"), this._map.terrain ? (this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"), this._terrainButton.title = this._map._getUIString("TerrainControl.Disable")) : (this._terrainButton.classList.add("maplibregl-ctrl-terrain"), this._terrainButton.title = this._map._getUIString("TerrainControl.Enable"));
+ }, this.options = ue;
+ }
+ onAdd(ue) {
+ return this._map = ue, this._container = c.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._terrainButton = c.create("button", "maplibregl-ctrl-terrain", this._container), c.create("span", "maplibregl-ctrl-icon", this._terrainButton).setAttribute("aria-hidden", "true"), this._terrainButton.type = "button", this._terrainButton.addEventListener("click", this._toggleTerrain), this._updateTerrainIcon(), this._map.on("terrain", this._updateTerrainIcon), this._container;
+ }
+ onRemove() {
+ c.remove(this._container), this._map.off("terrain", this._updateTerrainIcon), this._map = void 0;
+ }
+ }, i.TwoFingersTouchPitchHandler = Bc, i.TwoFingersTouchRotateHandler = cf, i.TwoFingersTouchZoomHandler = vu, i.TwoFingersTouchZoomRotateHandler = Yi, i.VectorTileSource = lt, i.VideoSource = Nt, i.addSourceType = (ue, w) => a._(void 0, void 0, void 0, function* () {
+ if (Tr(ue)) throw new Error(`A source type called "${ue}" already exists.`);
+ ((B, Q) => {
+ sr[B] = Q;
+ })(ue, w);
+ }), i.clearPrewarmedResources = function() {
+ let ue = ge;
+ ue && (ue.isPreloaded() && ue.numActive() === 1 ? (ue.release(_e), ge = null) : console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"));
+ }, i.getMaxParallelImageRequests = function() {
+ return a.a.MAX_PARALLEL_IMAGE_REQUESTS;
+ }, i.getRTLTextPluginStatus = function() {
+ return Qt().getRTLTextPluginStatus();
+ }, i.getVersion = function() {
+ return Ku;
+ }, i.getWorkerCount = function() {
+ return Ce.workerCount;
+ }, i.getWorkerUrl = function() {
+ return a.a.WORKER_URL;
+ }, i.importScriptInWorkers = function(ue) {
+ return Ae().broadcast("IS", ue);
+ }, i.prewarm = function() {
+ Se().acquire(_e);
+ }, i.setMaxParallelImageRequests = function(ue) {
+ a.a.MAX_PARALLEL_IMAGE_REQUESTS = ue;
+ }, i.setRTLTextPlugin = function(ue, w) {
+ return Qt().setRTLTextPlugin(ue, w);
+ }, i.setWorkerCount = function(ue) {
+ Ce.workerCount = ue;
+ }, i.setWorkerUrl = function(ue) {
+ a.a.WORKER_URL = ue;
+ };
+ });
+ var n = e;
+ return n;
+ });
+ });
+ var yje = ye((Bbr, mje) => {
+ var vw = Dr(), FXt = Zl().sanitizeHTML, zXt = IJ(), vje = Px();
+ function pje(e, t) {
+ this.subplot = e, this.uid = e.uid + "-" + t, this.index = t, this.idSource = "source-" + this.uid, this.idLayer = vje.layoutLayerPrefix + this.uid, this.sourceType = null, this.source = null, this.layerType = null, this.below = null, this.visible = false;
+ }
+ var sg = pje.prototype;
+ sg.update = function(t) {
+ this.visible ? this.needsNewImage(t) ? this.updateImage(t) : this.needsNewSource(t) ? (this.removeLayer(), this.updateSource(t), this.updateLayer(t)) : this.needsNewLayer(t) ? this.updateLayer(t) : this.updateStyle(t) : (this.updateSource(t), this.updateLayer(t)), this.visible = v7(t);
+ };
+ sg.needsNewImage = function(e) {
+ var t = this.subplot.map;
+ return t.getSource(this.idSource) && this.sourceType === "image" && e.sourcetype === "image" && (this.source !== e.source || JSON.stringify(this.coordinates) !== JSON.stringify(e.coordinates));
+ };
+ sg.needsNewSource = function(e) {
+ return this.sourceType !== e.sourcetype || JSON.stringify(this.source) !== JSON.stringify(e.source) || this.layerType !== e.type;
+ };
+ sg.needsNewLayer = function(e) {
+ return this.layerType !== e.type || this.below !== this.subplot.belowLookup["layout-" + this.index];
+ };
+ sg.lookupBelow = function() {
+ return this.subplot.belowLookup["layout-" + this.index];
+ };
+ sg.updateImage = function(e) {
+ var t = this.subplot.map;
+ t.getSource(this.idSource).updateImage({ url: e.source, coordinates: e.coordinates });
+ var r = this.findFollowingMapLayerId(this.lookupBelow());
+ r !== null && this.subplot.map.moveLayer(this.idLayer, r);
+ };
+ sg.updateSource = function(e) {
+ var t = this.subplot.map;
+ if (t.getSource(this.idSource) && t.removeSource(this.idSource), this.sourceType = e.sourcetype, this.source = e.source, !!v7(e)) {
+ var r = OXt(e);
+ t.addSource(this.idSource, r);
+ }
+ };
+ sg.findFollowingMapLayerId = function(e) {
+ if (e === "traces") for (var t = this.subplot.getMapLayers(), r = 0; r < t.length; r++) {
+ var n = t[r].id;
+ if (typeof n == "string" && n.indexOf(vje.traceLayerPrefix) === 0) {
+ e = n;
+ break;
+ }
+ }
+ return e;
+ };
+ sg.updateLayer = function(e) {
+ var t = this.subplot, r = gje(e), n = this.lookupBelow(), i = this.findFollowingMapLayerId(n);
+ this.removeLayer(), v7(e) && t.addLayer({ id: this.idLayer, source: this.idSource, "source-layer": e.sourcelayer || "", type: e.type, minzoom: e.minzoom, maxzoom: e.maxzoom, layout: r.layout, paint: r.paint }, i), this.layerType = e.type, this.below = n;
+ };
+ sg.updateStyle = function(e) {
+ if (v7(e)) {
+ var t = gje(e);
+ this.subplot.setOptions(this.idLayer, "setLayoutProperty", t.layout), this.subplot.setOptions(this.idLayer, "setPaintProperty", t.paint);
+ }
+ };
+ sg.removeLayer = function() {
+ var e = this.subplot.map;
+ e.getLayer(this.idLayer) && e.removeLayer(this.idLayer);
+ };
+ sg.dispose = function() {
+ var e = this.subplot.map;
+ e.getLayer(this.idLayer) && e.removeLayer(this.idLayer), e.getSource(this.idSource) && e.removeSource(this.idSource);
+ };
+ function v7(e) {
+ if (!e.visible) return false;
+ var t = e.source;
+ if (Array.isArray(t) && t.length > 0) {
+ for (var r = 0; r < t.length; r++) if (typeof t[r] != "string" || t[r].length === 0) return false;
+ return true;
+ }
+ return vw.isPlainObject(t) || typeof t == "string" && t.length > 0;
+ }
+ function gje(e) {
+ var t = {}, r = {};
+ switch (e.type) {
+ case "circle":
+ vw.extendFlat(r, { "circle-radius": e.circle.radius, "circle-color": e.color, "circle-opacity": e.opacity });
+ break;
+ case "line":
+ vw.extendFlat(r, { "line-width": e.line.width, "line-color": e.color, "line-opacity": e.opacity, "line-dasharray": e.line.dash });
+ break;
+ case "fill":
+ vw.extendFlat(r, { "fill-color": e.color, "fill-outline-color": e.fill.outlinecolor, "fill-opacity": e.opacity });
+ break;
+ case "symbol":
+ var n = e.symbol, i = zXt(n.textposition, n.iconsize);
+ vw.extendFlat(t, { "icon-image": n.icon + "-15", "icon-size": n.iconsize / 10, "text-field": n.text, "text-size": n.textfont.size, "text-anchor": i.anchor, "text-offset": i.offset, "symbol-placement": n.placement }), vw.extendFlat(r, { "icon-color": e.color, "text-color": n.textfont.color, "text-opacity": e.opacity });
+ break;
+ case "raster":
+ vw.extendFlat(r, { "raster-fade-duration": 0, "raster-opacity": e.opacity });
+ break;
+ }
+ return { layout: t, paint: r };
+ }
+ function OXt(e) {
+ var t = e.sourcetype, r = e.source, n = { type: t }, i;
+ return t === "geojson" ? i = "data" : t === "vector" ? i = typeof r == "string" ? "url" : "tiles" : t === "raster" ? (i = "tiles", n.tileSize = 256) : t === "image" && (i = "url", n.coordinates = e.coordinates), n[i] = r, e.sourceattribution && (n.attribution = FXt(e.sourceattribution)), n;
+ }
+ mje.exports = function(t, r, n) {
+ var i = new pje(t, r);
+ return i.update(n), i;
+ };
+ });
+ var Mje = ye((Nbr, Sje) => {
+ var qJ = dje(), BJ = Dr(), bje = hx(), _je = qa(), qXt = ho(), BXt = yv(), p7 = vf(), wje = Cg(), NXt = wje.drawMode, UXt = wje.selectMode, VXt = Of().prepSelect, GXt = Of().clearOutline, HXt = Of().clearSelectionsCache, jXt = Of().selectOnClick, pw = Px(), WXt = yje();
+ function Tje(e, t) {
+ this.id = t, this.gd = e;
+ var r = e._fullLayout, n = e._context;
+ this.container = r._glcontainer.node(), this.isStatic = n.staticPlot, this.uid = r._uid + "-" + this.id, this.div = null, this.xaxis = null, this.yaxis = null, this.createFramework(r), this.map = null, this.styleObj = null, this.traceHash = {}, this.layerList = [], this.belowLookup = {}, this.dragging = false, this.wheeling = false;
+ }
+ var Hh = Tje.prototype;
+ Hh.plot = function(e, t, r) {
+ var n = this, i;
+ n.map ? i = new Promise(function(a, o) {
+ n.updateMap(e, t, a, o);
+ }) : i = new Promise(function(a, o) {
+ n.createMap(e, t, a, o);
+ }), r.push(i);
+ };
+ Hh.createMap = function(e, t, r, n) {
+ var i = this, a = t[i.id], o = i.styleObj = Aje(a.style), s = a.bounds, l = s ? [[s.west, s.south], [s.east, s.north]] : null, u = i.map = new qJ.Map({ container: i.div, style: o.style, center: NJ(a.center), zoom: a.zoom, bearing: a.bearing, pitch: a.pitch, maxBounds: l, interactive: !i.isStatic, preserveDrawingBuffer: i.isStatic, doubleClickZoom: false, boxZoom: false, attributionControl: false }).addControl(new qJ.AttributionControl({ compact: true })), c = {};
+ u.on("styleimagemissing", function(h) {
+ var d = h.id;
+ if (!c[d] && d.includes("-15")) {
+ c[d] = true;
+ var v = new Image(15, 15);
+ v.onload = function() {
+ u.addImage(d, v);
+ }, v.crossOrigin = "Anonymous", v.src = "https://unpkg.com/maki@2.1.0/icons/" + d + ".svg";
+ }
+ }), u.setTransformRequest(function(h) {
+ return h = h.replace("https://fonts.openmaptiles.org/Open Sans Extrabold", "https://fonts.openmaptiles.org/Open Sans Extra Bold"), h = h.replace("https://tiles.basemaps.cartocdn.com/fonts/Open Sans Extrabold", "https://fonts.openmaptiles.org/Open Sans Extra Bold"), h = h.replace("https://fonts.openmaptiles.org/Open Sans Regular,Arial Unicode MS Regular", "https://fonts.openmaptiles.org/Klokantech Noto Sans Regular"), { url: h };
+ }), u._canvas.style.left = "0px", u._canvas.style.top = "0px", i.rejectOnError(n), i.isStatic || i.initFx(e, t);
+ var f = [];
+ f.push(new Promise(function(h) {
+ u.once("load", h);
+ })), f = f.concat(bje.fetchTraceGeoData(e)), Promise.all(f).then(function() {
+ i.fillBelowLookup(e, t), i.updateData(e), i.updateLayout(t), i.resolveOnRender(r);
+ }).catch(n);
+ };
+ Hh.updateMap = function(e, t, r, n) {
+ var i = this, a = i.map, o = t[this.id];
+ i.rejectOnError(n);
+ var s = [], l = Aje(o.style);
+ JSON.stringify(i.styleObj) !== JSON.stringify(l) && (i.styleObj = l, a.setStyle(l.style), i.traceHash = {}, s.push(new Promise(function(u) {
+ a.once("styledata", u);
+ }))), s = s.concat(bje.fetchTraceGeoData(e)), Promise.all(s).then(function() {
+ i.fillBelowLookup(e, t), i.updateData(e), i.updateLayout(t), i.resolveOnRender(r);
+ }).catch(n);
+ };
+ Hh.fillBelowLookup = function(e, t) {
+ var r = t[this.id], n = r.layers, i, a, o = this.belowLookup = {}, s = false;
+ for (i = 0; i < e.length; i++) {
+ var l = e[i][0].trace, u = l._module;
+ typeof l.below == "string" ? a = l.below : u.getBelow && (a = u.getBelow(l, this)), a === "" && (s = true), o["trace-" + l.uid] = a || "";
+ }
+ for (i = 0; i < n.length; i++) {
+ var c = n[i];
+ typeof c.below == "string" ? a = c.below : s ? a = "traces" : a = "", o["layout-" + i] = a;
+ }
+ var f = {}, h, d;
+ for (h in o) a = o[h], f[a] ? f[a].push(h) : f[a] = [h];
+ for (a in f) {
+ var v = f[a];
+ if (v.length > 1) for (i = 0; i < v.length; i++) h = v[i], h.indexOf("trace-") === 0 ? (d = h.split("trace-")[1], this.traceHash[d] && (this.traceHash[d].below = null)) : h.indexOf("layout-") === 0 && (d = h.split("layout-")[1], this.layerList[d] && (this.layerList[d].below = null));
+ }
+ };
+ var xje = { choroplethmap: 0, densitymap: 1, scattermap: 2 };
+ Hh.updateData = function(e) {
+ var t = this.traceHash, r, n, i, a, o = e.slice().sort(function(f, h) {
+ return xje[f[0].trace.type] - xje[h[0].trace.type];
+ });
+ for (i = 0; i < o.length; i++) {
+ var s = o[i];
+ n = s[0].trace, r = t[n.uid];
+ var l = false;
+ r && (r.type === n.type ? (r.update(s), l = true) : r.dispose()), !l && n._module && (t[n.uid] = n._module.plot(this, s));
+ }
+ var u = Object.keys(t);
+ e: for (i = 0; i < u.length; i++) {
+ var c = u[i];
+ for (a = 0; a < e.length; a++) if (n = e[a][0].trace, c === n.uid) continue e;
+ r = t[c], r.dispose(), delete t[c];
+ }
+ };
+ Hh.updateLayout = function(e) {
+ var t = this.map, r = e[this.id];
+ !this.dragging && !this.wheeling && (t.setCenter(NJ(r.center)), t.setZoom(r.zoom), t.setBearing(r.bearing), t.setPitch(r.pitch)), this.updateLayers(e), this.updateFramework(e), this.updateFx(e), this.map.resize(), this.gd._context._scrollZoom.map ? t.scrollZoom.enable() : t.scrollZoom.disable();
+ };
+ Hh.resolveOnRender = function(e) {
+ var t = this.map;
+ t.on("render", function r() {
+ t.loaded() && (t.off("render", r), setTimeout(e, 10));
+ });
+ };
+ Hh.rejectOnError = function(e) {
+ var t = this.map;
+ function r() {
+ e(new Error(pw.mapOnErrorMsg));
+ }
+ t.once("error", r), t.once("style.error", r), t.once("source.error", r), t.once("tile.error", r), t.once("layer.error", r);
+ };
+ Hh.createFramework = function(e) {
+ var t = this, r = t.div = document.createElement("div");
+ r.id = t.uid, r.style.position = "absolute", t.container.appendChild(r), t.xaxis = { _id: "x", c2p: function(n) {
+ return t.project(n).x;
+ } }, t.yaxis = { _id: "y", c2p: function(n) {
+ return t.project(n).y;
+ } }, t.updateFramework(e), t.mockAxis = { type: "linear", showexponent: "all", exponentformat: "B" }, qXt.setConvert(t.mockAxis, e);
+ };
+ Hh.initFx = function(e, t) {
+ var r = this, n = r.gd, i = r.map;
+ i.on("moveend", function(s) {
+ if (r.map) {
+ var l = n._fullLayout;
+ if (s.originalEvent || r.wheeling) {
+ var u = l[r.id];
+ _je.call("_storeDirectGUIEdit", n.layout, l._preGUI, r.getViewEdits(u));
+ var c = r.getView();
+ u._input.center = u.center = c.center, u._input.zoom = u.zoom = c.zoom, u._input.bearing = u.bearing = c.bearing, u._input.pitch = u.pitch = c.pitch, n.emit("plotly_relayout", r.getViewEditsWithDerived(c));
+ }
+ s.originalEvent && s.originalEvent.type === "mouseup" ? r.dragging = false : r.wheeling && (r.wheeling = false), l && l._rehover && l._rehover();
+ }
+ }), i.on("wheel", function() {
+ r.wheeling = true;
+ }), i.on("mousemove", function(s) {
+ var l = r.div.getBoundingClientRect(), u = [s.originalEvent.offsetX, s.originalEvent.offsetY];
+ s.target.getBoundingClientRect = function() {
+ return l;
+ }, r.xaxis.p2c = function() {
+ return i.unproject(u).lng;
+ }, r.yaxis.p2c = function() {
+ return i.unproject(u).lat;
+ }, n._fullLayout._rehover = function() {
+ n._fullLayout._hoversubplot === r.id && n._fullLayout[r.id] && p7.hover(n, s, r.id);
+ }, p7.hover(n, s, r.id), n._fullLayout._hoversubplot = r.id;
+ });
+ function a() {
+ p7.loneUnhover(t._hoverlayer);
+ }
+ i.on("dragstart", function() {
+ r.dragging = true, a();
+ }), i.on("zoomstart", a), i.on("mouseout", function() {
+ n._fullLayout._hoversubplot = null;
+ });
+ function o() {
+ var s = r.getView();
+ n.emit("plotly_relayouting", r.getViewEditsWithDerived(s));
+ }
+ i.on("drag", o), i.on("zoom", o), i.on("dblclick", function() {
+ var s = n._fullLayout[r.id];
+ _je.call("_storeDirectGUIEdit", n.layout, n._fullLayout._preGUI, r.getViewEdits(s));
+ var l = r.viewInitial;
+ i.setCenter(NJ(l.center)), i.setZoom(l.zoom), i.setBearing(l.bearing), i.setPitch(l.pitch);
+ var u = r.getView();
+ s._input.center = s.center = u.center, s._input.zoom = s.zoom = u.zoom, s._input.bearing = s.bearing = u.bearing, s._input.pitch = s.pitch = u.pitch, n.emit("plotly_doubleclick", null), n.emit("plotly_relayout", r.getViewEditsWithDerived(u));
+ }), r.clearOutline = function() {
+ HXt(r.dragOptions), GXt(r.dragOptions.gd);
+ }, r.onClickInPanFn = function(s) {
+ return function(l) {
+ var u = n._fullLayout.clickmode;
+ u.indexOf("select") > -1 && jXt(l.originalEvent, n, [r.xaxis], [r.yaxis], r.id, s), u.indexOf("event") > -1 && p7.click(n, l.originalEvent);
+ };
+ };
+ };
+ Hh.updateFx = function(e) {
+ var t = this, r = t.map, n = t.gd;
+ if (t.isStatic) return;
+ function i(l) {
+ var u = t.map.unproject(l);
+ return [u.lng, u.lat];
+ }
+ var a = e.dragmode, o;
+ o = function(l, u) {
+ if (u.isRect) {
+ var c = l.range = {};
+ c[t.id] = [i([u.xmin, u.ymin]), i([u.xmax, u.ymax])];
+ } else {
+ var f = l.lassoPoints = {};
+ f[t.id] = u.map(i);
+ }
+ };
+ var s = t.dragOptions;
+ t.dragOptions = BJ.extendDeep(s || {}, { dragmode: e.dragmode, element: t.div, gd: n, plotinfo: { id: t.id, domain: e[t.id].domain, xaxis: t.xaxis, yaxis: t.yaxis, fillRangeItems: o }, xaxes: [t.xaxis], yaxes: [t.yaxis], subplot: t.id }), r.off("click", t.onClickInPanHandler), UXt(a) || NXt(a) ? (r.dragPan.disable(), r.on("zoomstart", t.clearOutline), t.dragOptions.prepFn = function(l, u, c) {
+ VXt(l, u, c, t.dragOptions, a);
+ }, BXt.init(t.dragOptions)) : (r.dragPan.enable(), r.off("zoomstart", t.clearOutline), t.div.onmousedown = null, t.div.ontouchstart = null, t.div.removeEventListener("touchstart", t.div._ontouchstart), t.onClickInPanHandler = t.onClickInPanFn(t.dragOptions), r.on("click", t.onClickInPanHandler));
+ };
+ Hh.updateFramework = function(e) {
+ var t = e[this.id].domain, r = e._size, n = this.div.style;
+ n.width = r.w * (t.x[1] - t.x[0]) + "px", n.height = r.h * (t.y[1] - t.y[0]) + "px", n.left = r.l + t.x[0] * r.w + "px", n.top = r.t + (1 - t.y[1]) * r.h + "px", this.xaxis._offset = r.l + t.x[0] * r.w, this.xaxis._length = r.w * (t.x[1] - t.x[0]), this.yaxis._offset = r.t + (1 - t.y[1]) * r.h, this.yaxis._length = r.h * (t.y[1] - t.y[0]);
+ };
+ Hh.updateLayers = function(e) {
+ var t = e[this.id], r = t.layers, n = this.layerList, i;
+ if (r.length !== n.length) {
+ for (i = 0; i < n.length; i++) n[i].dispose();
+ for (n = this.layerList = [], i = 0; i < r.length; i++) n.push(WXt(this, i, r[i]));
+ } else for (i = 0; i < r.length; i++) n[i].update(r[i]);
+ };
+ Hh.destroy = function() {
+ this.map && (this.map.remove(), this.map = null, this.container.removeChild(this.div));
+ };
+ Hh.toImage = function() {
+ return this.map.stop(), this.map.getCanvas().toDataURL();
+ };
+ Hh.setOptions = function(e, t, r) {
+ for (var n in r) this.map[t](e, n, r[n]);
+ };
+ Hh.getMapLayers = function() {
+ return this.map.getStyle().layers;
+ };
+ Hh.addLayer = function(e, t) {
+ var r = this.map;
+ if (typeof t == "string") {
+ if (t === "") {
+ r.addLayer(e, t);
+ return;
+ }
+ for (var n = this.getMapLayers(), i = 0; i < n.length; i++) if (t === n[i].id) {
+ r.addLayer(e, t);
+ return;
+ }
+ BJ.warn(["Trying to add layer with *below* value", t, "referencing a layer that does not exist", "or that does not yet exist."].join(" "));
+ }
+ r.addLayer(e);
+ };
+ Hh.project = function(e) {
+ return this.map.project(new qJ.LngLat(e[0], e[1]));
+ };
+ Hh.getView = function() {
+ var e = this.map, t = e.getCenter(), r = t.lng, n = t.lat, i = { lon: r, lat: n }, a = e.getCanvas(), o = parseInt(a.style.width), s = parseInt(a.style.height);
+ return { center: i, zoom: e.getZoom(), bearing: e.getBearing(), pitch: e.getPitch(), _derived: { coordinates: [e.unproject([0, 0]).toArray(), e.unproject([o, 0]).toArray(), e.unproject([o, s]).toArray(), e.unproject([0, s]).toArray()] } };
+ };
+ Hh.getViewEdits = function(e) {
+ for (var t = this.id, r = ["center", "zoom", "bearing", "pitch"], n = {}, i = 0; i < r.length; i++) {
+ var a = r[i];
+ n[t + "." + a] = e[a];
+ }
+ return n;
+ };
+ Hh.getViewEditsWithDerived = function(e) {
+ var t = this.id, r = this.getViewEdits(e);
+ return r[t + "._derived"] = e._derived, r;
+ };
+ function Aje(e) {
+ var t = {};
+ return BJ.isPlainObject(e) ? (t.id = e.id, t.style = e) : typeof e == "string" ? (t.id = e, pw.stylesMap[e] ? t.style = pw.stylesMap[e] : t.style = e) : (t.id = pw.styleValueDflt, t.style = XXt(pw.styleValueDflt)), t.transition = { duration: 0, delay: 0 }, t;
+ }
+ function XXt(e) {
+ return pw.styleUrlPrefix + e + "-" + pw.styleUrlSuffix;
+ }
+ function NJ(e) {
+ return [e.lon, e.lat];
+ }
+ Sje.exports = Tje;
+ });
+ var Cje = ye((Ubr, kje) => {
+ var UJ = Dr(), ZXt = O_(), YXt = Zd(), Eje = Qk();
+ kje.exports = function(t, r, n) {
+ ZXt(t, r, n, { type: "map", attributes: Eje, handleDefaults: KXt, partition: "y" });
+ };
+ function KXt(e, t, r) {
+ r("style"), r("center.lon"), r("center.lat"), r("zoom"), r("bearing"), r("pitch");
+ var n = r("bounds.west"), i = r("bounds.east"), a = r("bounds.south"), o = r("bounds.north");
+ (n === void 0 || i === void 0 || a === void 0 || o === void 0) && delete t.bounds, YXt(e, t, { name: "layers", handleItemDefaults: JXt }), t._input = e;
+ }
+ function JXt(e, t) {
+ function r(l, u) {
+ return UJ.coerce(e, t, Eje.layers, l, u);
+ }
+ var n = r("visible");
+ if (n) {
+ var i = r("sourcetype"), a = i === "raster" || i === "image";
+ r("source"), r("sourceattribution"), i === "vector" && r("sourcelayer"), i === "image" && r("coordinates");
+ var o;
+ a && (o = "raster");
+ var s = r("type", o);
+ a && s !== "raster" && (s = t.type = "raster", UJ.log("Source types *raster* and *image* must drawn *raster* layer type.")), r("below"), r("color"), r("opacity"), r("minzoom"), r("maxzoom"), s === "circle" && r("circle.radius"), s === "line" && (r("line.width"), r("line.dash")), s === "fill" && r("fill.outlinecolor"), s === "symbol" && (r("symbol.icon"), r("symbol.iconsize"), r("symbol.text"), UJ.coerceFont(r, "symbol.textfont", void 0, { noFontVariant: true, noFontShadow: true, noFontLineposition: true, noFontTextcase: true }), r("symbol.textposition"), r("symbol.placement"));
+ }
+ }
+ });
+ var m7 = ye((u0) => {
+ var g7 = Dr(), Lje = g7.strTranslate, $Xt = g7.strScale, QXt = Id().getSubplotCalcData, eZt = Wp(), tZt = Oa(), Pje = So(), rZt = Zl(), iZt = Mje(), Ix = "map";
+ u0.name = Ix;
+ u0.attr = "subplot";
+ u0.idRoot = Ix;
+ u0.idRegex = u0.attrRegex = g7.counterRegex(Ix);
+ u0.attributes = { subplot: { valType: "subplotid", dflt: "map", editType: "calc" } };
+ u0.layoutAttributes = Qk();
+ u0.supplyLayoutDefaults = Cje();
+ u0.plot = function(t) {
+ for (var r = t._fullLayout, n = t.calcdata, i = r._subplots[Ix], a = 0; a < i.length; a++) {
+ var o = i[a], s = QXt(n, Ix, o), l = r[o], u = l._subplot;
+ u || (u = new iZt(t, o), r[o]._subplot = u), u.viewInitial || (u.viewInitial = { center: g7.extendFlat({}, l.center), zoom: l.zoom, bearing: l.bearing, pitch: l.pitch }), u.plot(s, r, t._promises);
+ }
+ };
+ u0.clean = function(e, t, r, n) {
+ for (var i = n._subplots[Ix] || [], a = 0; a < i.length; a++) {
+ var o = i[a];
+ !t[o] && n[o]._subplot && n[o]._subplot.destroy();
+ }
+ };
+ u0.toSVG = function(e) {
+ for (var t = e._fullLayout, r = t._subplots[Ix], n = t._size, i = 0; i < r.length; i++) {
+ var a = t[r[i]], o = a.domain, s = a._subplot, l = s.toImage("png"), u = t._glimages.append("svg:image");
+ u.attr({ xmlns: eZt.svg, "xlink:href": l, x: n.l + n.w * o.x[0], y: n.t + n.h * (1 - o.y[1]), width: n.w * (o.x[1] - o.x[0]), height: n.h * (o.y[1] - o.y[0]), preserveAspectRatio: "none" });
+ var c = tZt.select(a._subplot.div), f = c.select(".maplibregl-ctrl-attrib").text().replace("Improve this map", ""), h = t._glimages.append("g"), d = h.append("text");
+ d.text(f).classed("static-attribution", true).attr({ "font-size": 12, "font-family": "Arial", color: "rgba(0, 0, 0, 0.75)", "text-anchor": "end", "data-unformatted": f });
+ var v = Pje.bBox(d.node()), _ = n.w * (o.x[1] - o.x[0]);
+ if (v.width > _ / 2) {
+ var b = f.split("|").join(" ");
+ d.text(b).attr("data-unformatted", b).call(rZt.convertToTspans, e), v = Pje.bBox(d.node());
+ }
+ d.attr("transform", Lje(-3, -v.height + 8)), h.insert("rect", ".static-attribution").attr({ x: -v.width - 6, y: -v.height - 3, width: v.width + 6, height: v.height + 3, fill: "rgba(255, 255, 255, 0.75)" });
+ var p = 1;
+ v.width + 6 > _ && (p = _ / (v.width + 6));
+ var k = [n.l + n.w * o.x[1], n.t + n.h * (1 - o.y[0])];
+ h.attr("transform", Lje(k[0], k[1]) + $Xt(p));
+ }
+ };
+ u0.updateFx = function(e) {
+ for (var t = e._fullLayout, r = t._subplots[Ix], n = 0; n < r.length; n++) {
+ var i = t[r[n]]._subplot;
+ i.updateFx(t);
+ }
+ };
+ });
+ var Rje = ye((Gbr, Ije) => {
+ Ije.exports = { attributes: l7(), supplyDefaults: jHe(), colorbar: $d(), formatLabels: PJ(), calc: _F(), plot: aje(), hoverPoints: d7().hoverPoints, eventData: uje(), selectPoints: fje(), styleOnSelect: function(e, t) {
+ if (t) {
+ var r = t[0].trace;
+ r._glTrace.update(t);
+ }
+ }, moduleType: "trace", name: "scattermap", basePlotModule: m7(), categories: ["map", "gl", "symbols", "showLegend", "scatter-like"], meta: {} };
+ });
+ var Fje = ye((Hbr, Dje) => {
+ Dje.exports = Rje();
+ });
+ var VJ = ye((jbr, zje) => {
+ var x1 = a5(), nZt = Tu(), { hovertemplateAttrs: aZt, templatefallbackAttrs: oZt } = Ll(), sZt = Gl(), Rx = Ao().extendFlat;
+ zje.exports = Rx({ locations: { valType: "data_array", editType: "calc" }, z: { valType: "data_array", editType: "calc" }, geojson: { valType: "any", editType: "calc" }, featureidkey: Rx({}, x1.featureidkey, {}), below: { valType: "string", editType: "plot" }, text: x1.text, hovertext: x1.hovertext, marker: { line: { color: Rx({}, x1.marker.line.color, { editType: "plot" }), width: Rx({}, x1.marker.line.width, { editType: "plot" }), editType: "calc" }, opacity: Rx({}, x1.marker.opacity, { editType: "plot" }), editType: "calc" }, selected: { marker: { opacity: Rx({}, x1.selected.marker.opacity, { editType: "plot" }), editType: "plot" }, editType: "plot" }, unselected: { marker: { opacity: Rx({}, x1.unselected.marker.opacity, { editType: "plot" }), editType: "plot" }, editType: "plot" }, hoverinfo: x1.hoverinfo, hovertemplate: aZt({}, { keys: ["properties"] }), hovertemplatefallback: oZt(), showlegend: Rx({}, sZt.showlegend, { dflt: false }) }, nZt("", { cLetter: "z", editTypeOverride: "calc" }));
+ });
+ var qje = ye((Wbr, Oje) => {
+ var iC = Dr(), lZt = td(), uZt = VJ();
+ Oje.exports = function(t, r, n, i) {
+ function a(c, f) {
+ return iC.coerce(t, r, uZt, c, f);
+ }
+ var o = a("locations"), s = a("z"), l = a("geojson");
+ if (!iC.isArrayOrTypedArray(o) || !o.length || !iC.isArrayOrTypedArray(s) || !s.length || !(typeof l == "string" && l !== "" || iC.isPlainObject(l))) {
+ r.visible = false;
+ return;
+ }
+ a("featureidkey"), r._length = Math.min(o.length, s.length), a("below"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback");
+ var u = a("marker.line.width");
+ u && a("marker.line.color"), a("marker.opacity"), lZt(t, r, i, a, { prefix: "", cLetter: "z" }), iC.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var GJ = ye((Xbr, Uje) => {
+ var cZt = Eo(), b1 = Dr(), fZt = tc(), hZt = So(), dZt = cx().makeBlank, Bje = hx();
+ function vZt(e) {
+ var t = e[0].trace, r = t.visible === true && t._length !== 0, n = { layout: { visibility: "none" }, paint: {} }, i = { layout: { visibility: "none" }, paint: {} }, a = t._opts = { fill: n, line: i, geojson: dZt() };
+ if (!r) return a;
+ var o = Bje.extractTraceFeature(e);
+ if (!o) return a;
+ var s = fZt.makeColorScaleFuncFromTrace(t), l = t.marker, u = l.line || {}, c;
+ b1.isArrayOrTypedArray(l.opacity) && (c = function(k) {
+ var E = k.mo;
+ return cZt(E) ? +b1.constrain(E, 0, 1) : 0;
+ });
+ var f;
+ b1.isArrayOrTypedArray(u.color) && (f = function(k) {
+ return k.mlc;
+ });
+ var h;
+ b1.isArrayOrTypedArray(u.width) && (h = function(k) {
+ return k.mlw;
+ });
+ for (var d = 0; d < e.length; d++) {
+ var v = e[d], _ = v.fOut;
+ if (_) {
+ var b = _.properties;
+ b.fc = s(v.z), c && (b.mo = c(v)), f && (b.mlc = f(v)), h && (b.mlw = h(v)), v.ct = b.ct, v._polygons = Bje.feature2polygons(_);
+ }
+ }
+ var p = c ? { type: "identity", property: "mo" } : l.opacity;
+ return b1.extendFlat(n.paint, { "fill-color": { type: "identity", property: "fc" }, "fill-opacity": p }), b1.extendFlat(i.paint, { "line-color": f ? { type: "identity", property: "mlc" } : u.color, "line-width": h ? { type: "identity", property: "mlw" } : u.width, "line-opacity": p }), n.layout.visibility = "visible", i.layout.visibility = "visible", a.geojson = { type: "FeatureCollection", features: o }, Nje(e), a;
+ }
+ function Nje(e) {
+ var t = e[0].trace, r = t._opts, n;
+ if (t.selectedpoints) {
+ for (var i = hZt.makeSelectedPointStyleFns(t), a = 0; a < e.length; a++) {
+ var o = e[a];
+ o.fOut && (o.fOut.properties.mo2 = i.selectedOpacityFn(o));
+ }
+ n = { type: "identity", property: "mo2" };
+ } else n = b1.isArrayOrTypedArray(t.marker.opacity) ? { type: "identity", property: "mo" } : t.marker.opacity;
+ return b1.extendFlat(r.fill.paint, { "fill-opacity": n }), b1.extendFlat(r.line.paint, { "line-opacity": n }), r;
+ }
+ Uje.exports = { convert: vZt, convertOnSelect: Nje };
+ });
+ var Wje = ye((Zbr, jje) => {
+ var Gje = GJ().convert, pZt = GJ().convertOnSelect, Vje = Px().traceLayerPrefix;
+ function Hje(e, t) {
+ this.type = "choroplethmap", this.subplot = e, this.uid = t, this.sourceId = "source-" + t, this.layerList = [["fill", Vje + t + "-fill"], ["line", Vje + t + "-line"]], this.below = null;
+ }
+ var D5 = Hje.prototype;
+ D5.update = function(e) {
+ this._update(Gje(e)), e[0].trace._glTrace = this;
+ };
+ D5.updateOnSelect = function(e) {
+ this._update(pZt(e));
+ };
+ D5._update = function(e) {
+ var t = this.subplot, r = this.layerList, n = t.belowLookup["trace-" + this.uid];
+ t.map.getSource(this.sourceId).setData(e.geojson), n !== this.below && (this._removeLayers(), this._addLayers(e, n), this.below = n);
+ for (var i = 0; i < r.length; i++) {
+ var a = r[i], o = a[0], s = a[1], l = e[o];
+ t.setOptions(s, "setLayoutProperty", l.layout), l.layout.visibility === "visible" && t.setOptions(s, "setPaintProperty", l.paint);
+ }
+ };
+ D5._addLayers = function(e, t) {
+ for (var r = this.subplot, n = this.layerList, i = this.sourceId, a = 0; a < n.length; a++) {
+ var o = n[a], s = o[0], l = e[s];
+ r.addLayer({ type: s, id: o[1], source: i, layout: l.layout, paint: l.paint }, t);
+ }
+ };
+ D5._removeLayers = function() {
+ for (var e = this.subplot.map, t = this.layerList, r = t.length - 1; r >= 0; r--) e.removeLayer(t[r][1]);
+ };
+ D5.dispose = function() {
+ var e = this.subplot.map;
+ this._removeLayers(), e.removeSource(this.sourceId);
+ };
+ jje.exports = function(t, r) {
+ var n = r[0].trace, i = new Hje(t, n.uid), a = i.sourceId, o = Gje(r), s = i.below = t.belowLookup["trace-" + n.uid];
+ return t.map.addSource(a, { type: "geojson", data: o.geojson }), i._addLayers(o, s), r[0].trace._glTrace = i, i;
+ };
+ });
+ var Zje = ye((Ybr, Xje) => {
+ Xje.exports = { attributes: VJ(), supplyDefaults: qje(), colorbar: D_(), calc: NF(), plot: Wje(), hoverPoints: VF(), eventData: GF(), selectPoints: HF(), styleOnSelect: function(e, t) {
+ if (t) {
+ var r = t[0].trace;
+ r._glTrace.updateOnSelect(t);
+ }
+ }, getBelow: function(e, t) {
+ for (var r = t.getMapLayers(), n = r.length - 2; n >= 0; n--) {
+ var i = r[n].id;
+ if (typeof i == "string" && i.indexOf("water") === 0) {
+ for (var a = n + 1; a < r.length; a++) if (i = r[a].id, typeof i == "string" && i.indexOf("plotly-") === -1) return i;
+ }
+ }
+ }, moduleType: "trace", name: "choroplethmap", basePlotModule: m7(), categories: ["map", "gl", "noOpacity", "showLegend"], meta: { hr_name: "choropleth_map" } };
+ });
+ var Kje = ye((Kbr, Yje) => {
+ Yje.exports = Zje();
+ });
+ var jJ = ye((Jbr, $je) => {
+ var gZt = Tu(), { hovertemplateAttrs: mZt, templatefallbackAttrs: yZt } = Ll(), Jje = Gl(), y7 = l7(), HJ = Ao().extendFlat;
+ $je.exports = HJ({ lon: y7.lon, lat: y7.lat, z: { valType: "data_array", editType: "calc" }, radius: { valType: "number", editType: "plot", arrayOk: true, min: 1, dflt: 30 }, below: { valType: "string", editType: "plot" }, text: y7.text, hovertext: y7.hovertext, hoverinfo: HJ({}, Jje.hoverinfo, { flags: ["lon", "lat", "z", "text", "name"] }), hovertemplate: mZt(), hovertemplatefallback: yZt(), showlegend: HJ({}, Jje.showlegend, { dflt: false }) }, gZt("", { cLetter: "z", editTypeOverride: "calc" }));
+ });
+ var eWe = ye(($br, Qje) => {
+ var _Zt = Dr(), xZt = td(), bZt = jJ();
+ Qje.exports = function(t, r, n, i) {
+ function a(u, c) {
+ return _Zt.coerce(t, r, bZt, u, c);
+ }
+ var o = a("lon") || [], s = a("lat") || [], l = Math.min(o.length, s.length);
+ if (!l) {
+ r.visible = false;
+ return;
+ }
+ r._length = l, a("z"), a("radius"), a("below"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), xZt(t, r, i, a, { prefix: "", cLetter: "z" });
+ };
+ });
+ var iWe = ye((Qbr, rWe) => {
+ var WJ = Eo(), wZt = Dr().isArrayOrTypedArray, XJ = fs().BADNUM, TZt = gv(), tWe = Dr()._;
+ rWe.exports = function(t, r) {
+ for (var n = r._length, i = new Array(n), a = r.z, o = wZt(a) && a.length, s = 0; s < n; s++) {
+ var l = i[s] = {}, u = r.lon[s], c = r.lat[s];
+ if (l.lonlat = WJ(u) && WJ(c) ? [+u, +c] : [XJ, XJ], o) {
+ var f = a[s];
+ l.z = WJ(f) ? f : XJ;
+ }
+ }
+ return TZt(t, r, { vals: o ? a : [0, 1], containerStr: "", cLetter: "z" }), n && (i[0].t = { labels: { lat: tWe(t, "lat:") + " ", lon: tWe(t, "lon:") + " " } }), i;
+ };
+ });
+ var lWe = ye((e2r, sWe) => {
+ var AZt = Eo(), ZJ = Dr(), nWe = ka(), aWe = tc(), oWe = fs().BADNUM, SZt = cx().makeBlank;
+ sWe.exports = function(t) {
+ var r = t[0].trace, n = r.visible === true && r._length !== 0, i = { layout: { visibility: "none" }, paint: {} }, a = r._opts = { heatmap: i, geojson: SZt() };
+ if (!n) return a;
+ var o = [], s, l = r.z, u = r.radius, c = ZJ.isArrayOrTypedArray(l) && l.length, f = ZJ.isArrayOrTypedArray(u);
+ for (s = 0; s < t.length; s++) {
+ var h = t[s], d = h.lonlat;
+ if (d[0] !== oWe) {
+ var v = {};
+ if (c) {
+ var _ = h.z;
+ v.z = _ !== oWe ? _ : 0;
+ }
+ f && (v.r = AZt(u[s]) && u[s] > 0 ? +u[s] : 0), o.push({ type: "Feature", geometry: { type: "Point", coordinates: d }, properties: v });
+ }
+ }
+ var b = aWe.extractOpts(r), p = b.reversescale ? aWe.flipScale(b.colorscale) : b.colorscale, k = p[0][1], E = nWe.opacity(k) < 1 ? k : nWe.addOpacity(k, 0), T = ["interpolate", ["linear"], ["heatmap-density"], 0, E];
+ for (s = 1; s < p.length; s++) T.push(p[s][0], p[s][1]);
+ var L = ["interpolate", ["linear"], ["get", "z"], b.min, 0, b.max, 1];
+ return ZJ.extendFlat(a.heatmap.paint, { "heatmap-weight": c ? L : 1 / (b.max - b.min), "heatmap-color": T, "heatmap-radius": f ? { type: "identity", property: "r" } : r.radius, "heatmap-opacity": r.opacity }), a.geojson = { type: "FeatureCollection", features: o }, a.heatmap.layout.visibility = "visible", a;
+ };
+ });
+ var hWe = ye((t2r, fWe) => {
+ var uWe = lWe(), MZt = Px().traceLayerPrefix;
+ function cWe(e, t) {
+ this.type = "densitymap", this.subplot = e, this.uid = t, this.sourceId = "source-" + t, this.layerList = [["heatmap", MZt + t + "-heatmap"]], this.below = null;
+ }
+ var _7 = cWe.prototype;
+ _7.update = function(e) {
+ var t = this.subplot, r = this.layerList, n = uWe(e), i = t.belowLookup["trace-" + this.uid];
+ t.map.getSource(this.sourceId).setData(n.geojson), i !== this.below && (this._removeLayers(), this._addLayers(n, i), this.below = i);
+ for (var a = 0; a < r.length; a++) {
+ var o = r[a], s = o[0], l = o[1], u = n[s];
+ t.setOptions(l, "setLayoutProperty", u.layout), u.layout.visibility === "visible" && t.setOptions(l, "setPaintProperty", u.paint);
+ }
+ };
+ _7._addLayers = function(e, t) {
+ for (var r = this.subplot, n = this.layerList, i = this.sourceId, a = 0; a < n.length; a++) {
+ var o = n[a], s = o[0], l = e[s];
+ r.addLayer({ type: s, id: o[1], source: i, layout: l.layout, paint: l.paint }, t);
+ }
+ };
+ _7._removeLayers = function() {
+ for (var e = this.subplot.map, t = this.layerList, r = t.length - 1; r >= 0; r--) e.removeLayer(t[r][1]);
+ };
+ _7.dispose = function() {
+ var e = this.subplot.map;
+ this._removeLayers(), e.removeSource(this.sourceId);
+ };
+ fWe.exports = function(t, r) {
+ var n = r[0].trace, i = new cWe(t, n.uid), a = i.sourceId, o = uWe(r), s = i.below = t.belowLookup["trace-" + n.uid];
+ return t.map.addSource(a, { type: "geojson", data: o.geojson }), i._addLayers(o, s), i;
+ };
+ });
+ var vWe = ye((r2r, dWe) => {
+ var EZt = ho(), kZt = d7().hoverPoints, CZt = d7().getExtraText;
+ dWe.exports = function(t, r, n) {
+ var i = kZt(t, r, n);
+ if (i) {
+ var a = i[0], o = a.cd, s = o[0].trace, l = o[a.index];
+ if (delete a.color, "z" in l) {
+ var u = a.subplot.mockAxis;
+ a.z = l.z, a.zLabel = EZt.tickText(u, u.c2l(l.z), "hover").text;
+ }
+ return a.extraText = CZt(s, l, o[0].t.labels), [a];
+ }
+ };
+ });
+ var gWe = ye((i2r, pWe) => {
+ pWe.exports = function(t, r) {
+ return t.lon = r.lon, t.lat = r.lat, t.z = r.z, t;
+ };
+ });
+ var yWe = ye((n2r, mWe) => {
+ mWe.exports = { attributes: jJ(), supplyDefaults: eWe(), colorbar: D_(), formatLabels: PJ(), calc: iWe(), plot: hWe(), hoverPoints: vWe(), eventData: gWe(), getBelow: function(e, t) {
+ for (var r = t.getMapLayers(), n = 0; n < r.length; n++) {
+ var i = r[n], a = i.id;
+ if (i.type === "symbol" && typeof a == "string" && a.indexOf("plotly-") === -1) return a;
+ }
+ }, moduleType: "trace", name: "densitymap", basePlotModule: m7(), categories: ["map", "gl", "showLegend"], meta: { hr_name: "density_map" } };
+ });
+ var xWe = ye((a2r, _We) => {
+ _We.exports = yWe();
+ });
+ var KJ = ye((s2r, SWe) => {
+ var LZt = ec(), PZt = Gl(), bWe = Ih(), YJ = v3(), IZt = Cc().attributes, { hovertemplateAttrs: wWe, templatefallbackAttrs: TWe } = Ll(), RZt = Tu(), DZt = vl().templatedArray, FZt = df().descriptionOnlyNumbers, AWe = Ao().extendFlat, zZt = mc().overrideAll;
+ SWe.exports = zZt({ hoverinfo: AWe({}, PZt.hoverinfo, { flags: [], arrayOk: false }), hoverlabel: YJ.hoverlabel, domain: IZt({ name: "sankey", trace: true }), orientation: { valType: "enumerated", values: ["v", "h"], dflt: "h" }, valueformat: { valType: "string", dflt: ".3s", description: FZt("value") }, valuesuffix: { valType: "string", dflt: "" }, arrangement: { valType: "enumerated", values: ["snap", "perpendicular", "freeform", "fixed"], dflt: "snap" }, textfont: LZt({ autoShadowDflt: true }), customdata: void 0, node: { label: { valType: "data_array", dflt: [] }, groups: { valType: "info_array", impliedEdits: { x: [], y: [] }, dimensions: 2, freeLength: true, dflt: [], items: { valType: "number", editType: "calc" } }, x: { valType: "data_array", dflt: [] }, y: { valType: "data_array", dflt: [] }, color: { valType: "color", arrayOk: true }, customdata: { valType: "data_array", editType: "calc" }, line: { color: { valType: "color", dflt: bWe.defaultLine, arrayOk: true }, width: { valType: "number", min: 0, dflt: 0.5, arrayOk: true } }, pad: { valType: "number", arrayOk: false, min: 0, dflt: 20 }, thickness: { valType: "number", arrayOk: false, min: 1, dflt: 20 }, hoverinfo: { valType: "enumerated", values: ["all", "none", "skip"], dflt: "all" }, hoverlabel: YJ.hoverlabel, hovertemplate: wWe({}, { keys: ["value", "label"] }), hovertemplatefallback: TWe(), align: { valType: "enumerated", values: ["justify", "left", "right", "center"], dflt: "justify" } }, link: { arrowlen: { valType: "number", min: 0, dflt: 0 }, label: { valType: "data_array", dflt: [] }, color: { valType: "color", arrayOk: true }, hovercolor: { valType: "color", arrayOk: true }, customdata: { valType: "data_array", editType: "calc" }, line: { color: { valType: "color", dflt: bWe.defaultLine, arrayOk: true }, width: { valType: "number", min: 0, dflt: 0, arrayOk: true } }, source: { valType: "data_array", dflt: [] }, target: { valType: "data_array", dflt: [] }, value: { valType: "data_array", dflt: [] }, hoverinfo: { valType: "enumerated", values: ["all", "none", "skip"], dflt: "all" }, hoverlabel: YJ.hoverlabel, hovertemplate: wWe({}, { keys: ["value", "label"] }), hovertemplatefallback: TWe(), colorscales: DZt("concentrationscales", { editType: "calc", label: { valType: "string", editType: "calc", dflt: "" }, cmax: { valType: "number", editType: "calc", dflt: 1 }, cmin: { valType: "number", editType: "calc", dflt: 0 }, colorscale: AWe(RZt().colorscale, { dflt: [[0, "white"], [1, "black"]] }) }) } }, "calc", "nested");
+ });
+ var LWe = ye((l2r, CWe) => {
+ var F5 = Dr(), x7 = KJ(), OZt = ka(), MWe = fd(), qZt = Cc().defaults, EWe = _M(), kWe = vl(), BZt = Zd();
+ CWe.exports = function(t, r, n, i) {
+ function a(T, L) {
+ return F5.coerce(t, r, x7, T, L);
+ }
+ var o = F5.extendDeep(i.hoverlabel, t.hoverlabel), s = t.node, l = kWe.newContainer(r, "node");
+ function u(T, L) {
+ return F5.coerce(s, l, x7.node, T, L);
+ }
+ u("label"), u("groups"), u("x"), u("y"), u("pad"), u("thickness"), u("line.color"), u("line.width"), u("hoverinfo", t.hoverinfo), EWe(s, l, u, o), u("hovertemplate"), u("align");
+ var c = i.colorway, f = function(T) {
+ return c[T % c.length];
+ };
+ u("color", l.label.map(function(T, L) {
+ return OZt.addOpacity(f(L), 0.8);
+ })), u("customdata");
+ var h = t.link || {}, d = kWe.newContainer(r, "link");
+ function v(T, L) {
+ return F5.coerce(h, d, x7.link, T, L);
+ }
+ v("label"), v("arrowlen"), v("source"), v("target"), v("value"), v("line.color"), v("line.width"), v("hoverinfo", t.hoverinfo), EWe(h, d, v, o), v("hovertemplate");
+ var _ = MWe(i.paper_bgcolor).getLuminance() < 0.333, b = _ ? "rgba(255, 255, 255, 0.6)" : "rgba(0, 0, 0, 0.2)", p = v("color", b);
+ function k(T) {
+ var L = MWe(T);
+ if (!L.isValid()) return T;
+ var x = L.getAlpha();
+ return x <= 0.8 ? L.setAlpha(x + 0.2) : L = _ ? L.brighten() : L.darken(), L.toRgbString();
+ }
+ v("hovercolor", Array.isArray(p) ? p.map(k) : k(p)), v("customdata"), BZt(h, d, { name: "colorscales", handleItemDefaults: NZt }), qZt(r, i, a), a("orientation"), a("valueformat"), a("valuesuffix");
+ var E;
+ l.x.length && l.y.length && (E = "freeform"), a("arrangement", E), F5.coerceFont(a, "textfont", i.font, { autoShadowDflt: true }), r._length = null;
+ };
+ function NZt(e, t) {
+ function r(n, i) {
+ return F5.coerce(e, t, x7.link.colorscales, n, i);
+ }
+ r("label"), r("cmin"), r("cmax"), r("colorscale");
+ }
+ });
+ var JJ = ye((u2r, PWe) => {
+ PWe.exports = UZt;
+ function UZt(e) {
+ for (var t = e.length, r = new Array(t), n = new Array(t), i = new Array(t), a = new Array(t), o = new Array(t), s = new Array(t), l = 0; l < t; ++l) r[l] = -1, n[l] = 0, i[l] = false, a[l] = 0, o[l] = -1, s[l] = [];
+ var u = 0, c = [], f = [];
+ function h(b) {
+ var p = [b], k = [b];
+ for (r[b] = n[b] = u, i[b] = true, u += 1; k.length > 0; ) {
+ b = k[k.length - 1];
+ var E = e[b];
+ if (a[b] < E.length) {
+ for (var T = a[b]; T < E.length; ++T) {
+ var L = E[T];
+ if (r[L] < 0) {
+ r[L] = n[L] = u, i[L] = true, u += 1, p.push(L), k.push(L);
+ break;
+ } else i[L] && (n[b] = Math.min(n[b], n[L]) | 0);
+ o[L] >= 0 && s[b].push(o[L]);
+ }
+ a[b] = T;
+ } else {
+ if (n[b] === r[b]) {
+ for (var x = [], C = [], M = 0, T = p.length - 1; T >= 0; --T) {
+ var g = p[T];
+ if (i[g] = false, x.push(g), C.push(s[g]), M += s[g].length, o[g] = c.length, g === b) {
+ p.length = T;
+ break;
+ }
+ }
+ c.push(x);
+ for (var P = new Array(M), T = 0; T < C.length; T++) for (var A = 0; A < C[T].length; A++) P[--M] = C[T][A];
+ f.push(P);
+ }
+ k.pop();
+ }
+ }
+ }
+ for (var l = 0; l < t; ++l) r[l] < 0 && h(l);
+ for (var d, l = 0; l < f.length; l++) {
+ var v = f[l];
+ if (v.length !== 0) {
+ v.sort(function(p, k) {
+ return p - k;
+ }), d = [v[0]];
+ for (var _ = 1; _ < v.length; _++) v[_] !== v[_ - 1] && d.push(v[_]);
+ f[l] = d;
+ }
+ }
+ return { components: c, adjacencyList: f };
+ }
+ });
+ var FWe = ye((c2r, DWe) => {
+ var VZt = JJ(), z5 = Dr(), GZt = iy().wrap, nC = z5.isArrayOrTypedArray, IWe = z5.isIndex, RWe = tc();
+ function HZt(e) {
+ var t = e.node, r = e.link, n = [], i = nC(r.color), a = nC(r.hovercolor), o = nC(r.customdata), s = {}, l = {}, u = r.colorscales.length, c;
+ for (c = 0; c < u; c++) {
+ var f = r.colorscales[c], h = RWe.extractScale(f, { cLetter: "c" }), d = RWe.makeColorScaleFunc(h);
+ l[f.label] = d;
+ }
+ var v = 0;
+ for (c = 0; c < r.value.length; c++) r.source[c] > v && (v = r.source[c]), r.target[c] > v && (v = r.target[c]);
+ var _ = v + 1;
+ e.node._count = _;
+ var b, p = e.node.groups, k = {};
+ for (c = 0; c < p.length; c++) {
+ var E = p[c];
+ for (b = 0; b < E.length; b++) {
+ var T = E[b], L = _ + c;
+ k.hasOwnProperty(T) ? z5.warn("Node " + T + " is already part of a group.") : k[T] = L;
+ }
+ }
+ var x = { source: [], target: [] };
+ for (c = 0; c < r.value.length; c++) {
+ var C = r.value[c], M = r.source[c], g = r.target[c];
+ if (C > 0 && IWe(M, _) && IWe(g, _) && !(k.hasOwnProperty(M) && k.hasOwnProperty(g) && k[M] === k[g])) {
+ k.hasOwnProperty(g) && (g = k[g]), k.hasOwnProperty(M) && (M = k[M]), M = +M, g = +g, s[M] = s[g] = true;
+ var P = "";
+ r.label && r.label[c] && (P = r.label[c]);
+ var A = null;
+ P && l.hasOwnProperty(P) && (A = l[P]), n.push({ pointNumber: c, label: P, color: i ? r.color[c] : r.color, hovercolor: a ? r.hovercolor[c] : r.hovercolor, customdata: o ? r.customdata[c] : r.customdata, concentrationscale: A, source: M, target: g, value: +C }), x.source.push(M), x.target.push(g);
+ }
+ }
+ var z = _ + p.length, O = nC(t.color), U = nC(t.customdata), G = [];
+ for (c = 0; c < z; c++) if (s[c]) {
+ var Z = t.label[c];
+ G.push({ group: c > _ - 1, childrenNodes: [], pointNumber: c, label: Z, color: O ? t.color[c] : t.color, customdata: U ? t.customdata[c] : t.customdata });
+ }
+ var j = false;
+ return jZt(z, x.source, x.target) && (j = true), { circular: j, links: n, nodes: G, groups: p, groupLookup: k };
+ }
+ function jZt(e, t, r) {
+ for (var n = z5.init2dArray(e, 0), i = 0; i < Math.min(t.length, r.length); i++) if (z5.isIndex(t[i], e) && z5.isIndex(r[i], e)) {
+ if (t[i] === r[i]) return true;
+ n[t[i]].push(r[i]);
+ }
+ var a = VZt(n);
+ return a.components.some(function(o) {
+ return o.length > 1;
+ });
+ }
+ DWe.exports = function(t, r) {
+ var n = HZt(r);
+ return GZt({ circular: n.circular, _nodes: n.nodes, _links: n.links, _groups: n.groups, _groupLookup: n.groupLookup });
+ };
+ });
+ var OWe = ye((b7, zWe) => {
+ (function(e, t) {
+ typeof b7 == "object" && typeof zWe != "undefined" ? t(b7) : (e = e || self, t(e.d3 = e.d3 || {}));
+ })(b7, function(e) {
+ function t(C) {
+ var M = +this._x.call(null, C), g = +this._y.call(null, C);
+ return r(this.cover(M, g), M, g, C);
+ }
+ function r(C, M, g, P) {
+ if (isNaN(M) || isNaN(g)) return C;
+ var A, z = C._root, O = { data: P }, U = C._x0, G = C._y0, Z = C._x1, j = C._y1, N, H, re, oe, _e, Ce, Le, ge;
+ if (!z) return C._root = O, C;
+ for (; z.length; ) if ((_e = M >= (N = (U + Z) / 2)) ? U = N : Z = N, (Ce = g >= (H = (G + j) / 2)) ? G = H : j = H, A = z, !(z = z[Le = Ce << 1 | _e])) return A[Le] = O, C;
+ if (re = +C._x.call(null, z.data), oe = +C._y.call(null, z.data), M === re && g === oe) return O.next = z, A ? A[Le] = O : C._root = O, C;
+ do
+ A = A ? A[Le] = new Array(4) : C._root = new Array(4), (_e = M >= (N = (U + Z) / 2)) ? U = N : Z = N, (Ce = g >= (H = (G + j) / 2)) ? G = H : j = H;
+ while ((Le = Ce << 1 | _e) === (ge = (oe >= H) << 1 | re >= N));
+ return A[ge] = z, A[Le] = O, C;
+ }
+ function n(C) {
+ var M, g, P = C.length, A, z, O = new Array(P), U = new Array(P), G = 1 / 0, Z = 1 / 0, j = -1 / 0, N = -1 / 0;
+ for (g = 0; g < P; ++g) isNaN(A = +this._x.call(null, M = C[g])) || isNaN(z = +this._y.call(null, M)) || (O[g] = A, U[g] = z, A < G && (G = A), A > j && (j = A), z < Z && (Z = z), z > N && (N = z));
+ if (G > j || Z > N) return this;
+ for (this.cover(G, Z).cover(j, N), g = 0; g < P; ++g) r(this, O[g], U[g], C[g]);
+ return this;
+ }
+ function i(C, M) {
+ if (isNaN(C = +C) || isNaN(M = +M)) return this;
+ var g = this._x0, P = this._y0, A = this._x1, z = this._y1;
+ if (isNaN(g)) A = (g = Math.floor(C)) + 1, z = (P = Math.floor(M)) + 1;
+ else {
+ for (var O = A - g, U = this._root, G, Z; g > C || C >= A || P > M || M >= z; ) switch (Z = (M < P) << 1 | C < g, G = new Array(4), G[Z] = U, U = G, O *= 2, Z) {
+ case 0:
+ A = g + O, z = P + O;
+ break;
+ case 1:
+ g = A - O, z = P + O;
+ break;
+ case 2:
+ A = g + O, P = z - O;
+ break;
+ case 3:
+ g = A - O, P = z - O;
+ break;
+ }
+ this._root && this._root.length && (this._root = U);
+ }
+ return this._x0 = g, this._y0 = P, this._x1 = A, this._y1 = z, this;
+ }
+ function a() {
+ var C = [];
+ return this.visit(function(M) {
+ if (!M.length) do
+ C.push(M.data);
+ while (M = M.next);
+ }), C;
+ }
+ function o(C) {
+ return arguments.length ? this.cover(+C[0][0], +C[0][1]).cover(+C[1][0], +C[1][1]) : isNaN(this._x0) ? void 0 : [[this._x0, this._y0], [this._x1, this._y1]];
+ }
+ function s(C, M, g, P, A) {
+ this.node = C, this.x0 = M, this.y0 = g, this.x1 = P, this.y1 = A;
+ }
+ function l(C, M, g) {
+ var P, A = this._x0, z = this._y0, O, U, G, Z, j = this._x1, N = this._y1, H = [], re = this._root, oe, _e;
+ for (re && H.push(new s(re, A, z, j, N)), g == null ? g = 1 / 0 : (A = C - g, z = M - g, j = C + g, N = M + g, g *= g); oe = H.pop(); ) if (!(!(re = oe.node) || (O = oe.x0) > j || (U = oe.y0) > N || (G = oe.x1) < A || (Z = oe.y1) < z)) if (re.length) {
+ var Ce = (O + G) / 2, Le = (U + Z) / 2;
+ H.push(new s(re[3], Ce, Le, G, Z), new s(re[2], O, Le, Ce, Z), new s(re[1], Ce, U, G, Le), new s(re[0], O, U, Ce, Le)), (_e = (M >= Le) << 1 | C >= Ce) && (oe = H[H.length - 1], H[H.length - 1] = H[H.length - 1 - _e], H[H.length - 1 - _e] = oe);
+ } else {
+ var ge = C - +this._x.call(null, re.data), ie = M - +this._y.call(null, re.data), Se = ge * ge + ie * ie;
+ if (Se < g) {
+ var Ee = Math.sqrt(g = Se);
+ A = C - Ee, z = M - Ee, j = C + Ee, N = M + Ee, P = re.data;
+ }
+ }
+ return P;
+ }
+ function u(C) {
+ if (isNaN(j = +this._x.call(null, C)) || isNaN(N = +this._y.call(null, C))) return this;
+ var M, g = this._root, P, A, z, O = this._x0, U = this._y0, G = this._x1, Z = this._y1, j, N, H, re, oe, _e, Ce, Le;
+ if (!g) return this;
+ if (g.length) for (; ; ) {
+ if ((oe = j >= (H = (O + G) / 2)) ? O = H : G = H, (_e = N >= (re = (U + Z) / 2)) ? U = re : Z = re, M = g, !(g = g[Ce = _e << 1 | oe])) return this;
+ if (!g.length) break;
+ (M[Ce + 1 & 3] || M[Ce + 2 & 3] || M[Ce + 3 & 3]) && (P = M, Le = Ce);
+ }
+ for (; g.data !== C; ) if (A = g, !(g = g.next)) return this;
+ return (z = g.next) && delete g.next, A ? (z ? A.next = z : delete A.next, this) : M ? (z ? M[Ce] = z : delete M[Ce], (g = M[0] || M[1] || M[2] || M[3]) && g === (M[3] || M[2] || M[1] || M[0]) && !g.length && (P ? P[Le] = g : this._root = g), this) : (this._root = z, this);
+ }
+ function c(C) {
+ for (var M = 0, g = C.length; M < g; ++M) this.remove(C[M]);
+ return this;
+ }
+ function f() {
+ return this._root;
+ }
+ function h() {
+ var C = 0;
+ return this.visit(function(M) {
+ if (!M.length) do
+ ++C;
+ while (M = M.next);
+ }), C;
+ }
+ function d(C) {
+ var M = [], g, P = this._root, A, z, O, U, G;
+ for (P && M.push(new s(P, this._x0, this._y0, this._x1, this._y1)); g = M.pop(); ) if (!C(P = g.node, z = g.x0, O = g.y0, U = g.x1, G = g.y1) && P.length) {
+ var Z = (z + U) / 2, j = (O + G) / 2;
+ (A = P[3]) && M.push(new s(A, Z, j, U, G)), (A = P[2]) && M.push(new s(A, z, j, Z, G)), (A = P[1]) && M.push(new s(A, Z, O, U, j)), (A = P[0]) && M.push(new s(A, z, O, Z, j));
+ }
+ return this;
+ }
+ function v(C) {
+ var M = [], g = [], P;
+ for (this._root && M.push(new s(this._root, this._x0, this._y0, this._x1, this._y1)); P = M.pop(); ) {
+ var A = P.node;
+ if (A.length) {
+ var z, O = P.x0, U = P.y0, G = P.x1, Z = P.y1, j = (O + G) / 2, N = (U + Z) / 2;
+ (z = A[0]) && M.push(new s(z, O, U, j, N)), (z = A[1]) && M.push(new s(z, j, U, G, N)), (z = A[2]) && M.push(new s(z, O, N, j, Z)), (z = A[3]) && M.push(new s(z, j, N, G, Z));
+ }
+ g.push(P);
+ }
+ for (; P = g.pop(); ) C(P.node, P.x0, P.y0, P.x1, P.y1);
+ return this;
+ }
+ function _(C) {
+ return C[0];
+ }
+ function b(C) {
+ return arguments.length ? (this._x = C, this) : this._x;
+ }
+ function p(C) {
+ return C[1];
+ }
+ function k(C) {
+ return arguments.length ? (this._y = C, this) : this._y;
+ }
+ function E(C, M, g) {
+ var P = new T(M == null ? _ : M, g == null ? p : g, NaN, NaN, NaN, NaN);
+ return C == null ? P : P.addAll(C);
+ }
+ function T(C, M, g, P, A, z) {
+ this._x = C, this._y = M, this._x0 = g, this._y0 = P, this._x1 = A, this._y1 = z, this._root = void 0;
+ }
+ function L(C) {
+ for (var M = { data: C.data }, g = M; C = C.next; ) g = g.next = { data: C.data };
+ return M;
+ }
+ var x = E.prototype = T.prototype;
+ x.copy = function() {
+ var C = new T(this._x, this._y, this._x0, this._y0, this._x1, this._y1), M = this._root, g, P;
+ if (!M) return C;
+ if (!M.length) return C._root = L(M), C;
+ for (g = [{ source: M, target: C._root = new Array(4) }]; M = g.pop(); ) for (var A = 0; A < 4; ++A) (P = M.source[A]) && (P.length ? g.push({ source: P, target: M.target[A] = new Array(4) }) : M.target[A] = L(P));
+ return C;
+ }, x.add = t, x.addAll = n, x.cover = i, x.data = a, x.extent = o, x.find = l, x.remove = u, x.removeAll = c, x.root = f, x.size = h, x.visit = d, x.visitAfter = v, x.x = b, x.y = k, e.quadtree = E, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var T7 = ye((w7, qWe) => {
+ (function(e, t) {
+ t(typeof w7 == "object" && typeof qWe != "undefined" ? w7 : e.d3 = e.d3 || {});
+ })(w7, function(e) {
+ var t = "$";
+ function r() {
+ }
+ r.prototype = n.prototype = { constructor: r, has: function(_) {
+ return t + _ in this;
+ }, get: function(_) {
+ return this[t + _];
+ }, set: function(_, b) {
+ return this[t + _] = b, this;
+ }, remove: function(_) {
+ var b = t + _;
+ return b in this && delete this[b];
+ }, clear: function() {
+ for (var _ in this) _[0] === t && delete this[_];
+ }, keys: function() {
+ var _ = [];
+ for (var b in this) b[0] === t && _.push(b.slice(1));
+ return _;
+ }, values: function() {
+ var _ = [];
+ for (var b in this) b[0] === t && _.push(this[b]);
+ return _;
+ }, entries: function() {
+ var _ = [];
+ for (var b in this) b[0] === t && _.push({ key: b.slice(1), value: this[b] });
+ return _;
+ }, size: function() {
+ var _ = 0;
+ for (var b in this) b[0] === t && ++_;
+ return _;
+ }, empty: function() {
+ for (var _ in this) if (_[0] === t) return false;
+ return true;
+ }, each: function(_) {
+ for (var b in this) b[0] === t && _(this[b], b.slice(1), this);
+ } };
+ function n(_, b) {
+ var p = new r();
+ if (_ instanceof r) _.each(function(x, C) {
+ p.set(C, x);
+ });
+ else if (Array.isArray(_)) {
+ var k = -1, E = _.length, T;
+ if (b == null) for (; ++k < E; ) p.set(k, _[k]);
+ else for (; ++k < E; ) p.set(b(T = _[k], k, _), T);
+ } else if (_) for (var L in _) p.set(L, _[L]);
+ return p;
+ }
+ function i() {
+ var _ = [], b = [], p, k, E;
+ function T(x, C, M, g) {
+ if (C >= _.length) return p != null && x.sort(p), k != null ? k(x) : x;
+ for (var P = -1, A = x.length, z = _[C++], O, U, G = n(), Z, j = M(); ++P < A; ) (Z = G.get(O = z(U = x[P]) + "")) ? Z.push(U) : G.set(O, [U]);
+ return G.each(function(N, H) {
+ g(j, H, T(N, C, M, g));
+ }), j;
+ }
+ function L(x, C) {
+ if (++C > _.length) return x;
+ var M, g = b[C - 1];
+ return k != null && C >= _.length ? M = x.entries() : (M = [], x.each(function(P, A) {
+ M.push({ key: A, values: L(P, C) });
+ })), g != null ? M.sort(function(P, A) {
+ return g(P.key, A.key);
+ }) : M;
+ }
+ return E = { object: function(x) {
+ return T(x, 0, a, o);
+ }, map: function(x) {
+ return T(x, 0, s, l);
+ }, entries: function(x) {
+ return L(T(x, 0, s, l), 0);
+ }, key: function(x) {
+ return _.push(x), E;
+ }, sortKeys: function(x) {
+ return b[_.length - 1] = x, E;
+ }, sortValues: function(x) {
+ return p = x, E;
+ }, rollup: function(x) {
+ return k = x, E;
+ } };
+ }
+ function a() {
+ return {};
+ }
+ function o(_, b, p) {
+ _[b] = p;
+ }
+ function s() {
+ return n();
+ }
+ function l(_, b, p) {
+ _.set(b, p);
+ }
+ function u() {
+ }
+ var c = n.prototype;
+ u.prototype = f.prototype = { constructor: u, has: c.has, add: function(_) {
+ return _ += "", this[t + _] = _, this;
+ }, remove: c.remove, clear: c.clear, values: c.keys, size: c.size, empty: c.empty, each: c.each };
+ function f(_, b) {
+ var p = new u();
+ if (_ instanceof u) _.each(function(T) {
+ p.add(T);
+ });
+ else if (_) {
+ var k = -1, E = _.length;
+ if (b == null) for (; ++k < E; ) p.add(_[k]);
+ else for (; ++k < E; ) p.add(b(_[k], k, _));
+ }
+ return p;
+ }
+ function h(_) {
+ var b = [];
+ for (var p in _) b.push(p);
+ return b;
+ }
+ function d(_) {
+ var b = [];
+ for (var p in _) b.push(_[p]);
+ return b;
+ }
+ function v(_) {
+ var b = [];
+ for (var p in _) b.push({ key: p, value: _[p] });
+ return b;
+ }
+ e.nest = i, e.set = f, e.map = n, e.keys = h, e.values = d, e.entries = v, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var NWe = ye((A7, BWe) => {
+ (function(e, t) {
+ typeof A7 == "object" && typeof BWe != "undefined" ? t(A7) : (e = e || self, t(e.d3 = e.d3 || {}));
+ })(A7, function(e) {
+ var t = { value: function() {
+ } };
+ function r() {
+ for (var s = 0, l = arguments.length, u = {}, c; s < l; ++s) {
+ if (!(c = arguments[s] + "") || c in u || /[\s.]/.test(c)) throw new Error("illegal type: " + c);
+ u[c] = [];
+ }
+ return new n(u);
+ }
+ function n(s) {
+ this._ = s;
+ }
+ function i(s, l) {
+ return s.trim().split(/^|\s+/).map(function(u) {
+ var c = "", f = u.indexOf(".");
+ if (f >= 0 && (c = u.slice(f + 1), u = u.slice(0, f)), u && !l.hasOwnProperty(u)) throw new Error("unknown type: " + u);
+ return { type: u, name: c };
+ });
+ }
+ n.prototype = r.prototype = { constructor: n, on: function(s, l) {
+ var u = this._, c = i(s + "", u), f, h = -1, d = c.length;
+ if (arguments.length < 2) {
+ for (; ++h < d; ) if ((f = (s = c[h]).type) && (f = a(u[f], s.name))) return f;
+ return;
+ }
+ if (l != null && typeof l != "function") throw new Error("invalid callback: " + l);
+ for (; ++h < d; ) if (f = (s = c[h]).type) u[f] = o(u[f], s.name, l);
+ else if (l == null) for (f in u) u[f] = o(u[f], s.name, null);
+ return this;
+ }, copy: function() {
+ var s = {}, l = this._;
+ for (var u in l) s[u] = l[u].slice();
+ return new n(s);
+ }, call: function(s, l) {
+ if ((f = arguments.length - 2) > 0) for (var u = new Array(f), c = 0, f, h; c < f; ++c) u[c] = arguments[c + 2];
+ if (!this._.hasOwnProperty(s)) throw new Error("unknown type: " + s);
+ for (h = this._[s], c = 0, f = h.length; c < f; ++c) h[c].value.apply(l, u);
+ }, apply: function(s, l, u) {
+ if (!this._.hasOwnProperty(s)) throw new Error("unknown type: " + s);
+ for (var c = this._[s], f = 0, h = c.length; f < h; ++f) c[f].value.apply(l, u);
+ } };
+ function a(s, l) {
+ for (var u = 0, c = s.length, f; u < c; ++u) if ((f = s[u]).name === l) return f.value;
+ }
+ function o(s, l, u) {
+ for (var c = 0, f = s.length; c < f; ++c) if (s[c].name === l) {
+ s[c] = t, s = s.slice(0, c).concat(s.slice(c + 1));
+ break;
+ }
+ return u != null && s.push({ name: l, value: u }), s;
+ }
+ e.dispatch = r, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var VWe = ye((S7, UWe) => {
+ (function(e, t) {
+ typeof S7 == "object" && typeof UWe != "undefined" ? t(S7) : (e = e || self, t(e.d3 = e.d3 || {}));
+ })(S7, function(e) {
+ var t = 0, r = 0, n = 0, i = 1e3, a, o, s = 0, l = 0, u = 0, c = typeof performance == "object" && performance.now ? performance : Date, f = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(C) {
+ setTimeout(C, 17);
+ };
+ function h() {
+ return l || (f(d), l = c.now() + u);
+ }
+ function d() {
+ l = 0;
+ }
+ function v() {
+ this._call = this._time = this._next = null;
+ }
+ v.prototype = _.prototype = { constructor: v, restart: function(C, M, g) {
+ if (typeof C != "function") throw new TypeError("callback is not a function");
+ g = (g == null ? h() : +g) + (M == null ? 0 : +M), !this._next && o !== this && (o ? o._next = this : a = this, o = this), this._call = C, this._time = g, T();
+ }, stop: function() {
+ this._call && (this._call = null, this._time = 1 / 0, T());
+ } };
+ function _(C, M, g) {
+ var P = new v();
+ return P.restart(C, M, g), P;
+ }
+ function b() {
+ h(), ++t;
+ for (var C = a, M; C; ) (M = l - C._time) >= 0 && C._call.call(null, M), C = C._next;
+ --t;
+ }
+ function p() {
+ l = (s = c.now()) + u, t = r = 0;
+ try {
+ b();
+ } finally {
+ t = 0, E(), l = 0;
+ }
+ }
+ function k() {
+ var C = c.now(), M = C - s;
+ M > i && (u -= M, s = C);
+ }
+ function E() {
+ for (var C, M = a, g, P = 1 / 0; M; ) M._call ? (P > M._time && (P = M._time), C = M, M = M._next) : (g = M._next, M._next = null, M = C ? C._next = g : a = g);
+ o = C, T(P);
+ }
+ function T(C) {
+ if (!t) {
+ r && (r = clearTimeout(r));
+ var M = C - l;
+ M > 24 ? (C < 1 / 0 && (r = setTimeout(p, C - c.now() - u)), n && (n = clearInterval(n))) : (n || (s = c.now(), n = setInterval(k, i)), t = 1, f(p));
+ }
+ }
+ function L(C, M, g) {
+ var P = new v();
+ return M = M == null ? 0 : +M, P.restart(function(A) {
+ P.stop(), C(A + M);
+ }, M, g), P;
+ }
+ function x(C, M, g) {
+ var P = new v(), A = M;
+ return M == null ? (P.restart(C, M, g), P) : (M = +M, g = g == null ? h() : +g, P.restart(function z(O) {
+ O += A, P.restart(z, A += M, g), C(O);
+ }, M, g), P);
+ }
+ e.interval = x, e.now = h, e.timeout = L, e.timer = _, e.timerFlush = b, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var HWe = ye((M7, GWe) => {
+ (function(e, t) {
+ typeof M7 == "object" && typeof GWe != "undefined" ? t(M7, OWe(), T7(), NWe(), VWe()) : t(e.d3 = e.d3 || {}, e.d3, e.d3, e.d3, e.d3);
+ })(M7, function(e, t, r, n, i) {
+ function a(C, M) {
+ var g;
+ C == null && (C = 0), M == null && (M = 0);
+ function P() {
+ var A, z = g.length, O, U = 0, G = 0;
+ for (A = 0; A < z; ++A) O = g[A], U += O.x, G += O.y;
+ for (U = U / z - C, G = G / z - M, A = 0; A < z; ++A) O = g[A], O.x -= U, O.y -= G;
+ }
+ return P.initialize = function(A) {
+ g = A;
+ }, P.x = function(A) {
+ return arguments.length ? (C = +A, P) : C;
+ }, P.y = function(A) {
+ return arguments.length ? (M = +A, P) : M;
+ }, P;
+ }
+ function o(C) {
+ return function() {
+ return C;
+ };
+ }
+ function s() {
+ return (Math.random() - 0.5) * 1e-6;
+ }
+ function l(C) {
+ return C.x + C.vx;
+ }
+ function u(C) {
+ return C.y + C.vy;
+ }
+ function c(C) {
+ var M, g, P = 1, A = 1;
+ typeof C != "function" && (C = o(C == null ? 1 : +C));
+ function z() {
+ for (var G, Z = M.length, j, N, H, re, oe, _e, Ce = 0; Ce < A; ++Ce) for (j = t.quadtree(M, l, u).visitAfter(O), G = 0; G < Z; ++G) N = M[G], oe = g[N.index], _e = oe * oe, H = N.x + N.vx, re = N.y + N.vy, j.visit(Le);
+ function Le(ge, ie, Se, Ee, Ae) {
+ var Be = ge.data, Pe = ge.r, me = oe + Pe;
+ if (Be) {
+ if (Be.index > N.index) {
+ var De = H - Be.x - Be.vx, ce = re - Be.y - Be.vy, je = De * De + ce * ce;
+ je < me * me && (De === 0 && (De = s(), je += De * De), ce === 0 && (ce = s(), je += ce * ce), je = (me - (je = Math.sqrt(je))) / je * P, N.vx += (De *= je) * (me = (Pe *= Pe) / (_e + Pe)), N.vy += (ce *= je) * me, Be.vx -= De * (me = 1 - me), Be.vy -= ce * me);
+ }
+ return;
+ }
+ return ie > H + me || Ee < H - me || Se > re + me || Ae < re - me;
+ }
+ }
+ function O(G) {
+ if (G.data) return G.r = g[G.data.index];
+ for (var Z = G.r = 0; Z < 4; ++Z) G[Z] && G[Z].r > G.r && (G.r = G[Z].r);
+ }
+ function U() {
+ if (M) {
+ var G, Z = M.length, j;
+ for (g = new Array(Z), G = 0; G < Z; ++G) j = M[G], g[j.index] = +C(j, G, M);
+ }
+ }
+ return z.initialize = function(G) {
+ M = G, U();
+ }, z.iterations = function(G) {
+ return arguments.length ? (A = +G, z) : A;
+ }, z.strength = function(G) {
+ return arguments.length ? (P = +G, z) : P;
+ }, z.radius = function(G) {
+ return arguments.length ? (C = typeof G == "function" ? G : o(+G), U(), z) : C;
+ }, z;
+ }
+ function f(C) {
+ return C.index;
+ }
+ function h(C, M) {
+ var g = C.get(M);
+ if (!g) throw new Error("missing: " + M);
+ return g;
+ }
+ function d(C) {
+ var M = f, g = j, P, A = o(30), z, O, U, G, Z = 1;
+ C == null && (C = []);
+ function j(_e) {
+ return 1 / Math.min(U[_e.source.index], U[_e.target.index]);
+ }
+ function N(_e) {
+ for (var Ce = 0, Le = C.length; Ce < Z; ++Ce) for (var ge = 0, ie, Se, Ee, Ae, Be, Pe, me; ge < Le; ++ge) ie = C[ge], Se = ie.source, Ee = ie.target, Ae = Ee.x + Ee.vx - Se.x - Se.vx || s(), Be = Ee.y + Ee.vy - Se.y - Se.vy || s(), Pe = Math.sqrt(Ae * Ae + Be * Be), Pe = (Pe - z[ge]) / Pe * _e * P[ge], Ae *= Pe, Be *= Pe, Ee.vx -= Ae * (me = G[ge]), Ee.vy -= Be * me, Se.vx += Ae * (me = 1 - me), Se.vy += Be * me;
+ }
+ function H() {
+ if (O) {
+ var _e, Ce = O.length, Le = C.length, ge = r.map(O, M), ie;
+ for (_e = 0, U = new Array(Ce); _e < Le; ++_e) ie = C[_e], ie.index = _e, typeof ie.source != "object" && (ie.source = h(ge, ie.source)), typeof ie.target != "object" && (ie.target = h(ge, ie.target)), U[ie.source.index] = (U[ie.source.index] || 0) + 1, U[ie.target.index] = (U[ie.target.index] || 0) + 1;
+ for (_e = 0, G = new Array(Le); _e < Le; ++_e) ie = C[_e], G[_e] = U[ie.source.index] / (U[ie.source.index] + U[ie.target.index]);
+ P = new Array(Le), re(), z = new Array(Le), oe();
+ }
+ }
+ function re() {
+ if (O) for (var _e = 0, Ce = C.length; _e < Ce; ++_e) P[_e] = +g(C[_e], _e, C);
+ }
+ function oe() {
+ if (O) for (var _e = 0, Ce = C.length; _e < Ce; ++_e) z[_e] = +A(C[_e], _e, C);
+ }
+ return N.initialize = function(_e) {
+ O = _e, H();
+ }, N.links = function(_e) {
+ return arguments.length ? (C = _e, H(), N) : C;
+ }, N.id = function(_e) {
+ return arguments.length ? (M = _e, N) : M;
+ }, N.iterations = function(_e) {
+ return arguments.length ? (Z = +_e, N) : Z;
+ }, N.strength = function(_e) {
+ return arguments.length ? (g = typeof _e == "function" ? _e : o(+_e), re(), N) : g;
+ }, N.distance = function(_e) {
+ return arguments.length ? (A = typeof _e == "function" ? _e : o(+_e), oe(), N) : A;
+ }, N;
+ }
+ function v(C) {
+ return C.x;
+ }
+ function _(C) {
+ return C.y;
+ }
+ var b = 10, p = Math.PI * (3 - Math.sqrt(5));
+ function k(C) {
+ var M, g = 1, P = 1e-3, A = 1 - Math.pow(P, 1 / 300), z = 0, O = 0.6, U = r.map(), G = i.timer(j), Z = n.dispatch("tick", "end");
+ C == null && (C = []);
+ function j() {
+ N(), Z.call("tick", M), g < P && (G.stop(), Z.call("end", M));
+ }
+ function N(oe) {
+ var _e, Ce = C.length, Le;
+ oe === void 0 && (oe = 1);
+ for (var ge = 0; ge < oe; ++ge) for (g += (z - g) * A, U.each(function(ie) {
+ ie(g);
+ }), _e = 0; _e < Ce; ++_e) Le = C[_e], Le.fx == null ? Le.x += Le.vx *= O : (Le.x = Le.fx, Le.vx = 0), Le.fy == null ? Le.y += Le.vy *= O : (Le.y = Le.fy, Le.vy = 0);
+ return M;
+ }
+ function H() {
+ for (var oe = 0, _e = C.length, Ce; oe < _e; ++oe) {
+ if (Ce = C[oe], Ce.index = oe, Ce.fx != null && (Ce.x = Ce.fx), Ce.fy != null && (Ce.y = Ce.fy), isNaN(Ce.x) || isNaN(Ce.y)) {
+ var Le = b * Math.sqrt(oe), ge = oe * p;
+ Ce.x = Le * Math.cos(ge), Ce.y = Le * Math.sin(ge);
+ }
+ (isNaN(Ce.vx) || isNaN(Ce.vy)) && (Ce.vx = Ce.vy = 0);
+ }
+ }
+ function re(oe) {
+ return oe.initialize && oe.initialize(C), oe;
+ }
+ return H(), M = { tick: N, restart: function() {
+ return G.restart(j), M;
+ }, stop: function() {
+ return G.stop(), M;
+ }, nodes: function(oe) {
+ return arguments.length ? (C = oe, H(), U.each(re), M) : C;
+ }, alpha: function(oe) {
+ return arguments.length ? (g = +oe, M) : g;
+ }, alphaMin: function(oe) {
+ return arguments.length ? (P = +oe, M) : P;
+ }, alphaDecay: function(oe) {
+ return arguments.length ? (A = +oe, M) : +A;
+ }, alphaTarget: function(oe) {
+ return arguments.length ? (z = +oe, M) : z;
+ }, velocityDecay: function(oe) {
+ return arguments.length ? (O = 1 - oe, M) : 1 - O;
+ }, force: function(oe, _e) {
+ return arguments.length > 1 ? (_e == null ? U.remove(oe) : U.set(oe, re(_e)), M) : U.get(oe);
+ }, find: function(oe, _e, Ce) {
+ var Le = 0, ge = C.length, ie, Se, Ee, Ae, Be;
+ for (Ce == null ? Ce = 1 / 0 : Ce *= Ce, Le = 0; Le < ge; ++Le) Ae = C[Le], ie = oe - Ae.x, Se = _e - Ae.y, Ee = ie * ie + Se * Se, Ee < Ce && (Be = Ae, Ce = Ee);
+ return Be;
+ }, on: function(oe, _e) {
+ return arguments.length > 1 ? (Z.on(oe, _e), M) : Z.on(oe);
+ } };
+ }
+ function E() {
+ var C, M, g, P = o(-30), A, z = 1, O = 1 / 0, U = 0.81;
+ function G(H) {
+ var re, oe = C.length, _e = t.quadtree(C, v, _).visitAfter(j);
+ for (g = H, re = 0; re < oe; ++re) M = C[re], _e.visit(N);
+ }
+ function Z() {
+ if (C) {
+ var H, re = C.length, oe;
+ for (A = new Array(re), H = 0; H < re; ++H) oe = C[H], A[oe.index] = +P(oe, H, C);
+ }
+ }
+ function j(H) {
+ var re = 0, oe, _e, Ce = 0, Le, ge, ie;
+ if (H.length) {
+ for (Le = ge = ie = 0; ie < 4; ++ie) (oe = H[ie]) && (_e = Math.abs(oe.value)) && (re += oe.value, Ce += _e, Le += _e * oe.x, ge += _e * oe.y);
+ H.x = Le / Ce, H.y = ge / Ce;
+ } else {
+ oe = H, oe.x = oe.data.x, oe.y = oe.data.y;
+ do
+ re += A[oe.data.index];
+ while (oe = oe.next);
+ }
+ H.value = re;
+ }
+ function N(H, re, oe, _e) {
+ if (!H.value) return true;
+ var Ce = H.x - M.x, Le = H.y - M.y, ge = _e - re, ie = Ce * Ce + Le * Le;
+ if (ge * ge / U < ie) return ie < O && (Ce === 0 && (Ce = s(), ie += Ce * Ce), Le === 0 && (Le = s(), ie += Le * Le), ie < z && (ie = Math.sqrt(z * ie)), M.vx += Ce * H.value * g / ie, M.vy += Le * H.value * g / ie), true;
+ if (H.length || ie >= O) return;
+ (H.data !== M || H.next) && (Ce === 0 && (Ce = s(), ie += Ce * Ce), Le === 0 && (Le = s(), ie += Le * Le), ie < z && (ie = Math.sqrt(z * ie)));
+ do
+ H.data !== M && (ge = A[H.data.index] * g / ie, M.vx += Ce * ge, M.vy += Le * ge);
+ while (H = H.next);
+ }
+ return G.initialize = function(H) {
+ C = H, Z();
+ }, G.strength = function(H) {
+ return arguments.length ? (P = typeof H == "function" ? H : o(+H), Z(), G) : P;
+ }, G.distanceMin = function(H) {
+ return arguments.length ? (z = H * H, G) : Math.sqrt(z);
+ }, G.distanceMax = function(H) {
+ return arguments.length ? (O = H * H, G) : Math.sqrt(O);
+ }, G.theta = function(H) {
+ return arguments.length ? (U = H * H, G) : Math.sqrt(U);
+ }, G;
+ }
+ function T(C, M, g) {
+ var P, A = o(0.1), z, O;
+ typeof C != "function" && (C = o(+C)), M == null && (M = 0), g == null && (g = 0);
+ function U(Z) {
+ for (var j = 0, N = P.length; j < N; ++j) {
+ var H = P[j], re = H.x - M || 1e-6, oe = H.y - g || 1e-6, _e = Math.sqrt(re * re + oe * oe), Ce = (O[j] - _e) * z[j] * Z / _e;
+ H.vx += re * Ce, H.vy += oe * Ce;
+ }
+ }
+ function G() {
+ if (P) {
+ var Z, j = P.length;
+ for (z = new Array(j), O = new Array(j), Z = 0; Z < j; ++Z) O[Z] = +C(P[Z], Z, P), z[Z] = isNaN(O[Z]) ? 0 : +A(P[Z], Z, P);
+ }
+ }
+ return U.initialize = function(Z) {
+ P = Z, G();
+ }, U.strength = function(Z) {
+ return arguments.length ? (A = typeof Z == "function" ? Z : o(+Z), G(), U) : A;
+ }, U.radius = function(Z) {
+ return arguments.length ? (C = typeof Z == "function" ? Z : o(+Z), G(), U) : C;
+ }, U.x = function(Z) {
+ return arguments.length ? (M = +Z, U) : M;
+ }, U.y = function(Z) {
+ return arguments.length ? (g = +Z, U) : g;
+ }, U;
+ }
+ function L(C) {
+ var M = o(0.1), g, P, A;
+ typeof C != "function" && (C = o(C == null ? 0 : +C));
+ function z(U) {
+ for (var G = 0, Z = g.length, j; G < Z; ++G) j = g[G], j.vx += (A[G] - j.x) * P[G] * U;
+ }
+ function O() {
+ if (g) {
+ var U, G = g.length;
+ for (P = new Array(G), A = new Array(G), U = 0; U < G; ++U) P[U] = isNaN(A[U] = +C(g[U], U, g)) ? 0 : +M(g[U], U, g);
+ }
+ }
+ return z.initialize = function(U) {
+ g = U, O();
+ }, z.strength = function(U) {
+ return arguments.length ? (M = typeof U == "function" ? U : o(+U), O(), z) : M;
+ }, z.x = function(U) {
+ return arguments.length ? (C = typeof U == "function" ? U : o(+U), O(), z) : C;
+ }, z;
+ }
+ function x(C) {
+ var M = o(0.1), g, P, A;
+ typeof C != "function" && (C = o(C == null ? 0 : +C));
+ function z(U) {
+ for (var G = 0, Z = g.length, j; G < Z; ++G) j = g[G], j.vy += (A[G] - j.y) * P[G] * U;
+ }
+ function O() {
+ if (g) {
+ var U, G = g.length;
+ for (P = new Array(G), A = new Array(G), U = 0; U < G; ++U) P[U] = isNaN(A[U] = +C(g[U], U, g)) ? 0 : +M(g[U], U, g);
+ }
+ }
+ return z.initialize = function(U) {
+ g = U, O();
+ }, z.strength = function(U) {
+ return arguments.length ? (M = typeof U == "function" ? U : o(+U), O(), z) : M;
+ }, z.y = function(U) {
+ return arguments.length ? (C = typeof U == "function" ? U : o(+U), O(), z) : C;
+ }, z;
+ }
+ e.forceCenter = a, e.forceCollide = c, e.forceLink = d, e.forceManyBody = E, e.forceRadial = T, e.forceSimulation = k, e.forceX = L, e.forceY = x, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var WWe = ye((E7, jWe) => {
+ (function(e, t) {
+ typeof E7 == "object" && typeof jWe != "undefined" ? t(E7) : (e = e || self, t(e.d3 = e.d3 || {}));
+ })(E7, function(e) {
+ var t = Math.PI, r = 2 * t, n = 1e-6, i = r - n;
+ function a() {
+ this._x0 = this._y0 = this._x1 = this._y1 = null, this._ = "";
+ }
+ function o() {
+ return new a();
+ }
+ a.prototype = o.prototype = { constructor: a, moveTo: function(s, l) {
+ this._ += "M" + (this._x0 = this._x1 = +s) + "," + (this._y0 = this._y1 = +l);
+ }, closePath: function() {
+ this._x1 !== null && (this._x1 = this._x0, this._y1 = this._y0, this._ += "Z");
+ }, lineTo: function(s, l) {
+ this._ += "L" + (this._x1 = +s) + "," + (this._y1 = +l);
+ }, quadraticCurveTo: function(s, l, u, c) {
+ this._ += "Q" + +s + "," + +l + "," + (this._x1 = +u) + "," + (this._y1 = +c);
+ }, bezierCurveTo: function(s, l, u, c, f, h) {
+ this._ += "C" + +s + "," + +l + "," + +u + "," + +c + "," + (this._x1 = +f) + "," + (this._y1 = +h);
+ }, arcTo: function(s, l, u, c, f) {
+ s = +s, l = +l, u = +u, c = +c, f = +f;
+ var h = this._x1, d = this._y1, v = u - s, _ = c - l, b = h - s, p = d - l, k = b * b + p * p;
+ if (f < 0) throw new Error("negative radius: " + f);
+ if (this._x1 === null) this._ += "M" + (this._x1 = s) + "," + (this._y1 = l);
+ else if (k > n) if (!(Math.abs(p * v - _ * b) > n) || !f) this._ += "L" + (this._x1 = s) + "," + (this._y1 = l);
+ else {
+ var E = u - h, T = c - d, L = v * v + _ * _, x = E * E + T * T, C = Math.sqrt(L), M = Math.sqrt(k), g = f * Math.tan((t - Math.acos((L + k - x) / (2 * C * M))) / 2), P = g / M, A = g / C;
+ Math.abs(P - 1) > n && (this._ += "L" + (s + P * b) + "," + (l + P * p)), this._ += "A" + f + "," + f + ",0,0," + +(p * E > b * T) + "," + (this._x1 = s + A * v) + "," + (this._y1 = l + A * _);
+ }
+ }, arc: function(s, l, u, c, f, h) {
+ s = +s, l = +l, u = +u, h = !!h;
+ var d = u * Math.cos(c), v = u * Math.sin(c), _ = s + d, b = l + v, p = 1 ^ h, k = h ? c - f : f - c;
+ if (u < 0) throw new Error("negative radius: " + u);
+ this._x1 === null ? this._ += "M" + _ + "," + b : (Math.abs(this._x1 - _) > n || Math.abs(this._y1 - b) > n) && (this._ += "L" + _ + "," + b), u && (k < 0 && (k = k % r + r), k > i ? this._ += "A" + u + "," + u + ",0,1," + p + "," + (s - d) + "," + (l - v) + "A" + u + "," + u + ",0,1," + p + "," + (this._x1 = _) + "," + (this._y1 = b) : k > n && (this._ += "A" + u + "," + u + ",0," + +(k >= t) + "," + p + "," + (this._x1 = s + u * Math.cos(f)) + "," + (this._y1 = l + u * Math.sin(f))));
+ }, rect: function(s, l, u, c) {
+ this._ += "M" + (this._x0 = this._x1 = +s) + "," + (this._y0 = this._y1 = +l) + "h" + +u + "v" + +c + "h" + -u + "Z";
+ }, toString: function() {
+ return this._;
+ } }, e.path = o, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var $J = ye((k7, XWe) => {
+ (function(e, t) {
+ typeof k7 == "object" && typeof XWe != "undefined" ? t(k7, WWe()) : (e = e || self, t(e.d3 = e.d3 || {}, e.d3));
+ })(k7, function(e, t) {
+ function r(Mt) {
+ return function() {
+ return Mt;
+ };
+ }
+ var n = Math.abs, i = Math.atan2, a = Math.cos, o = Math.max, s = Math.min, l = Math.sin, u = Math.sqrt, c = 1e-12, f = Math.PI, h = f / 2, d = 2 * f;
+ function v(Mt) {
+ return Mt > 1 ? 0 : Mt < -1 ? f : Math.acos(Mt);
+ }
+ function _(Mt) {
+ return Mt >= 1 ? h : Mt <= -1 ? -h : Math.asin(Mt);
+ }
+ function b(Mt) {
+ return Mt.innerRadius;
+ }
+ function p(Mt) {
+ return Mt.outerRadius;
+ }
+ function k(Mt) {
+ return Mt.startAngle;
+ }
+ function E(Mt) {
+ return Mt.endAngle;
+ }
+ function T(Mt) {
+ return Mt && Mt.padAngle;
+ }
+ function L(Mt, kr, Jr, vi, hn, An, Mn, Li) {
+ var _n = Jr - Mt, ya = vi - kr, $n = Mn - hn, Ma = Li - An, _o = Ma * _n - $n * ya;
+ if (!(_o * _o < c)) return _o = ($n * (kr - An) - Ma * (Mt - hn)) / _o, [Mt + _o * _n, kr + _o * ya];
+ }
+ function x(Mt, kr, Jr, vi, hn, An, Mn) {
+ var Li = Mt - Jr, _n = kr - vi, ya = (Mn ? An : -An) / u(Li * Li + _n * _n), $n = ya * _n, Ma = -ya * Li, _o = Mt + $n, No = kr + Ma, po = Jr + $n, Lo = vi + Ma, ko = (_o + po) / 2, Ds = (No + Lo) / 2, Fs = po - _o, ll = Lo - No, ul = Fs * Fs + ll * ll, zl = hn - An, us = _o * Lo - po * No, il = (ll < 0 ? -1 : 1) * u(o(0, zl * zl * ul - us * us)), As = (us * ll - Fs * il) / ul, cl = (-us * Fs - ll * il) / ul, Ks = (us * ll + Fs * il) / ul, zs = (-us * Fs + ll * il) / ul, Io = As - ko, ls = cl - Ds, Yl = Ks - ko, Su = zs - Ds;
+ return Io * Io + ls * ls > Yl * Yl + Su * Su && (As = Ks, cl = zs), { cx: As, cy: cl, x01: -$n, y01: -Ma, x11: As * (hn / zl - 1), y11: cl * (hn / zl - 1) };
+ }
+ function C() {
+ var Mt = b, kr = p, Jr = r(0), vi = null, hn = k, An = E, Mn = T, Li = null;
+ function _n() {
+ var ya, $n, Ma = +Mt.apply(this, arguments), _o = +kr.apply(this, arguments), No = hn.apply(this, arguments) - h, po = An.apply(this, arguments) - h, Lo = n(po - No), ko = po > No;
+ if (Li || (Li = ya = t.path()), _o < Ma && ($n = _o, _o = Ma, Ma = $n), !(_o > c)) Li.moveTo(0, 0);
+ else if (Lo > d - c) Li.moveTo(_o * a(No), _o * l(No)), Li.arc(0, 0, _o, No, po, !ko), Ma > c && (Li.moveTo(Ma * a(po), Ma * l(po)), Li.arc(0, 0, Ma, po, No, ko));
+ else {
+ var Ds = No, Fs = po, ll = No, ul = po, zl = Lo, us = Lo, il = Mn.apply(this, arguments) / 2, As = il > c && (vi ? +vi.apply(this, arguments) : u(Ma * Ma + _o * _o)), cl = s(n(_o - Ma) / 2, +Jr.apply(this, arguments)), Ks = cl, zs = cl, Io, ls;
+ if (As > c) {
+ var Yl = _(As / Ma * l(il)), Su = _(As / _o * l(il));
+ (zl -= Yl * 2) > c ? (Yl *= ko ? 1 : -1, ll += Yl, ul -= Yl) : (zl = 0, ll = ul = (No + po) / 2), (us -= Su * 2) > c ? (Su *= ko ? 1 : -1, Ds += Su, Fs -= Su) : (us = 0, Ds = Fs = (No + po) / 2);
+ }
+ var nc = _o * a(Ds), bs = _o * l(Ds), Rn = Ma * a(ul), _a = Ma * l(ul);
+ if (cl > c) {
+ var Vu = _o * a(Fs), Ol = _o * l(Fs), xo = Ma * a(ll), Kl = Ma * l(ll), Ns;
+ if (Lo < f && (Ns = L(nc, bs, xo, Kl, Vu, Ol, Rn, _a))) {
+ var Hl = nc - Ns[0], ac = bs - Ns[1], aa = Vu - Ns[0], Oo = Ol - Ns[1], qo = 1 / l(v((Hl * aa + ac * Oo) / (u(Hl * Hl + ac * ac) * u(aa * aa + Oo * Oo))) / 2), ql = u(Ns[0] * Ns[0] + Ns[1] * Ns[1]);
+ Ks = s(cl, (Ma - ql) / (qo - 1)), zs = s(cl, (_o - ql) / (qo + 1));
+ }
+ }
+ us > c ? zs > c ? (Io = x(xo, Kl, nc, bs, _o, zs, ko), ls = x(Vu, Ol, Rn, _a, _o, zs, ko), Li.moveTo(Io.cx + Io.x01, Io.cy + Io.y01), zs < cl ? Li.arc(Io.cx, Io.cy, zs, i(Io.y01, Io.x01), i(ls.y01, ls.x01), !ko) : (Li.arc(Io.cx, Io.cy, zs, i(Io.y01, Io.x01), i(Io.y11, Io.x11), !ko), Li.arc(0, 0, _o, i(Io.cy + Io.y11, Io.cx + Io.x11), i(ls.cy + ls.y11, ls.cx + ls.x11), !ko), Li.arc(ls.cx, ls.cy, zs, i(ls.y11, ls.x11), i(ls.y01, ls.x01), !ko))) : (Li.moveTo(nc, bs), Li.arc(0, 0, _o, Ds, Fs, !ko)) : Li.moveTo(nc, bs), !(Ma > c) || !(zl > c) ? Li.lineTo(Rn, _a) : Ks > c ? (Io = x(Rn, _a, Vu, Ol, Ma, -Ks, ko), ls = x(nc, bs, xo, Kl, Ma, -Ks, ko), Li.lineTo(Io.cx + Io.x01, Io.cy + Io.y01), Ks < cl ? Li.arc(Io.cx, Io.cy, Ks, i(Io.y01, Io.x01), i(ls.y01, ls.x01), !ko) : (Li.arc(Io.cx, Io.cy, Ks, i(Io.y01, Io.x01), i(Io.y11, Io.x11), !ko), Li.arc(0, 0, Ma, i(Io.cy + Io.y11, Io.cx + Io.x11), i(ls.cy + ls.y11, ls.cx + ls.x11), ko), Li.arc(ls.cx, ls.cy, Ks, i(ls.y11, ls.x11), i(ls.y01, ls.x01), !ko))) : Li.arc(0, 0, Ma, ul, ll, ko);
+ }
+ if (Li.closePath(), ya) return Li = null, ya + "" || null;
+ }
+ return _n.centroid = function() {
+ var ya = (+Mt.apply(this, arguments) + +kr.apply(this, arguments)) / 2, $n = (+hn.apply(this, arguments) + +An.apply(this, arguments)) / 2 - f / 2;
+ return [a($n) * ya, l($n) * ya];
+ }, _n.innerRadius = function(ya) {
+ return arguments.length ? (Mt = typeof ya == "function" ? ya : r(+ya), _n) : Mt;
+ }, _n.outerRadius = function(ya) {
+ return arguments.length ? (kr = typeof ya == "function" ? ya : r(+ya), _n) : kr;
+ }, _n.cornerRadius = function(ya) {
+ return arguments.length ? (Jr = typeof ya == "function" ? ya : r(+ya), _n) : Jr;
+ }, _n.padRadius = function(ya) {
+ return arguments.length ? (vi = ya == null ? null : typeof ya == "function" ? ya : r(+ya), _n) : vi;
+ }, _n.startAngle = function(ya) {
+ return arguments.length ? (hn = typeof ya == "function" ? ya : r(+ya), _n) : hn;
+ }, _n.endAngle = function(ya) {
+ return arguments.length ? (An = typeof ya == "function" ? ya : r(+ya), _n) : An;
+ }, _n.padAngle = function(ya) {
+ return arguments.length ? (Mn = typeof ya == "function" ? ya : r(+ya), _n) : Mn;
+ }, _n.context = function(ya) {
+ return arguments.length ? (Li = ya == null ? null : ya, _n) : Li;
+ }, _n;
+ }
+ function M(Mt) {
+ this._context = Mt;
+ }
+ M.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._point = 0;
+ }, lineEnd: function() {
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ }, point: function(Mt, kr) {
+ switch (Mt = +Mt, kr = +kr, this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(Mt, kr) : this._context.moveTo(Mt, kr);
+ break;
+ case 1:
+ this._point = 2;
+ default:
+ this._context.lineTo(Mt, kr);
+ break;
+ }
+ } };
+ function g(Mt) {
+ return new M(Mt);
+ }
+ function P(Mt) {
+ return Mt[0];
+ }
+ function A(Mt) {
+ return Mt[1];
+ }
+ function z() {
+ var Mt = P, kr = A, Jr = r(true), vi = null, hn = g, An = null;
+ function Mn(Li) {
+ var _n, ya = Li.length, $n, Ma = false, _o;
+ for (vi == null && (An = hn(_o = t.path())), _n = 0; _n <= ya; ++_n) !(_n < ya && Jr($n = Li[_n], _n, Li)) === Ma && ((Ma = !Ma) ? An.lineStart() : An.lineEnd()), Ma && An.point(+Mt($n, _n, Li), +kr($n, _n, Li));
+ if (_o) return An = null, _o + "" || null;
+ }
+ return Mn.x = function(Li) {
+ return arguments.length ? (Mt = typeof Li == "function" ? Li : r(+Li), Mn) : Mt;
+ }, Mn.y = function(Li) {
+ return arguments.length ? (kr = typeof Li == "function" ? Li : r(+Li), Mn) : kr;
+ }, Mn.defined = function(Li) {
+ return arguments.length ? (Jr = typeof Li == "function" ? Li : r(!!Li), Mn) : Jr;
+ }, Mn.curve = function(Li) {
+ return arguments.length ? (hn = Li, vi != null && (An = hn(vi)), Mn) : hn;
+ }, Mn.context = function(Li) {
+ return arguments.length ? (Li == null ? vi = An = null : An = hn(vi = Li), Mn) : vi;
+ }, Mn;
+ }
+ function O() {
+ var Mt = P, kr = null, Jr = r(0), vi = A, hn = r(true), An = null, Mn = g, Li = null;
+ function _n($n) {
+ var Ma, _o, No, po = $n.length, Lo, ko = false, Ds, Fs = new Array(po), ll = new Array(po);
+ for (An == null && (Li = Mn(Ds = t.path())), Ma = 0; Ma <= po; ++Ma) {
+ if (!(Ma < po && hn(Lo = $n[Ma], Ma, $n)) === ko) if (ko = !ko) _o = Ma, Li.areaStart(), Li.lineStart();
+ else {
+ for (Li.lineEnd(), Li.lineStart(), No = Ma - 1; No >= _o; --No) Li.point(Fs[No], ll[No]);
+ Li.lineEnd(), Li.areaEnd();
+ }
+ ko && (Fs[Ma] = +Mt(Lo, Ma, $n), ll[Ma] = +Jr(Lo, Ma, $n), Li.point(kr ? +kr(Lo, Ma, $n) : Fs[Ma], vi ? +vi(Lo, Ma, $n) : ll[Ma]));
+ }
+ if (Ds) return Li = null, Ds + "" || null;
+ }
+ function ya() {
+ return z().defined(hn).curve(Mn).context(An);
+ }
+ return _n.x = function($n) {
+ return arguments.length ? (Mt = typeof $n == "function" ? $n : r(+$n), kr = null, _n) : Mt;
+ }, _n.x0 = function($n) {
+ return arguments.length ? (Mt = typeof $n == "function" ? $n : r(+$n), _n) : Mt;
+ }, _n.x1 = function($n) {
+ return arguments.length ? (kr = $n == null ? null : typeof $n == "function" ? $n : r(+$n), _n) : kr;
+ }, _n.y = function($n) {
+ return arguments.length ? (Jr = typeof $n == "function" ? $n : r(+$n), vi = null, _n) : Jr;
+ }, _n.y0 = function($n) {
+ return arguments.length ? (Jr = typeof $n == "function" ? $n : r(+$n), _n) : Jr;
+ }, _n.y1 = function($n) {
+ return arguments.length ? (vi = $n == null ? null : typeof $n == "function" ? $n : r(+$n), _n) : vi;
+ }, _n.lineX0 = _n.lineY0 = function() {
+ return ya().x(Mt).y(Jr);
+ }, _n.lineY1 = function() {
+ return ya().x(Mt).y(vi);
+ }, _n.lineX1 = function() {
+ return ya().x(kr).y(Jr);
+ }, _n.defined = function($n) {
+ return arguments.length ? (hn = typeof $n == "function" ? $n : r(!!$n), _n) : hn;
+ }, _n.curve = function($n) {
+ return arguments.length ? (Mn = $n, An != null && (Li = Mn(An)), _n) : Mn;
+ }, _n.context = function($n) {
+ return arguments.length ? ($n == null ? An = Li = null : Li = Mn(An = $n), _n) : An;
+ }, _n;
+ }
+ function U(Mt, kr) {
+ return kr < Mt ? -1 : kr > Mt ? 1 : kr >= Mt ? 0 : NaN;
+ }
+ function G(Mt) {
+ return Mt;
+ }
+ function Z() {
+ var Mt = G, kr = U, Jr = null, vi = r(0), hn = r(d), An = r(0);
+ function Mn(Li) {
+ var _n, ya = Li.length, $n, Ma, _o = 0, No = new Array(ya), po = new Array(ya), Lo = +vi.apply(this, arguments), ko = Math.min(d, Math.max(-d, hn.apply(this, arguments) - Lo)), Ds, Fs = Math.min(Math.abs(ko) / ya, An.apply(this, arguments)), ll = Fs * (ko < 0 ? -1 : 1), ul;
+ for (_n = 0; _n < ya; ++_n) (ul = po[No[_n] = _n] = +Mt(Li[_n], _n, Li)) > 0 && (_o += ul);
+ for (kr != null ? No.sort(function(zl, us) {
+ return kr(po[zl], po[us]);
+ }) : Jr != null && No.sort(function(zl, us) {
+ return Jr(Li[zl], Li[us]);
+ }), _n = 0, Ma = _o ? (ko - ya * ll) / _o : 0; _n < ya; ++_n, Lo = Ds) $n = No[_n], ul = po[$n], Ds = Lo + (ul > 0 ? ul * Ma : 0) + ll, po[$n] = { data: Li[$n], index: _n, value: ul, startAngle: Lo, endAngle: Ds, padAngle: Fs };
+ return po;
+ }
+ return Mn.value = function(Li) {
+ return arguments.length ? (Mt = typeof Li == "function" ? Li : r(+Li), Mn) : Mt;
+ }, Mn.sortValues = function(Li) {
+ return arguments.length ? (kr = Li, Jr = null, Mn) : kr;
+ }, Mn.sort = function(Li) {
+ return arguments.length ? (Jr = Li, kr = null, Mn) : Jr;
+ }, Mn.startAngle = function(Li) {
+ return arguments.length ? (vi = typeof Li == "function" ? Li : r(+Li), Mn) : vi;
+ }, Mn.endAngle = function(Li) {
+ return arguments.length ? (hn = typeof Li == "function" ? Li : r(+Li), Mn) : hn;
+ }, Mn.padAngle = function(Li) {
+ return arguments.length ? (An = typeof Li == "function" ? Li : r(+Li), Mn) : An;
+ }, Mn;
+ }
+ var j = H(g);
+ function N(Mt) {
+ this._curve = Mt;
+ }
+ N.prototype = { areaStart: function() {
+ this._curve.areaStart();
+ }, areaEnd: function() {
+ this._curve.areaEnd();
+ }, lineStart: function() {
+ this._curve.lineStart();
+ }, lineEnd: function() {
+ this._curve.lineEnd();
+ }, point: function(Mt, kr) {
+ this._curve.point(kr * Math.sin(Mt), kr * -Math.cos(Mt));
+ } };
+ function H(Mt) {
+ function kr(Jr) {
+ return new N(Mt(Jr));
+ }
+ return kr._curve = Mt, kr;
+ }
+ function re(Mt) {
+ var kr = Mt.curve;
+ return Mt.angle = Mt.x, delete Mt.x, Mt.radius = Mt.y, delete Mt.y, Mt.curve = function(Jr) {
+ return arguments.length ? kr(H(Jr)) : kr()._curve;
+ }, Mt;
+ }
+ function oe() {
+ return re(z().curve(j));
+ }
+ function _e() {
+ var Mt = O().curve(j), kr = Mt.curve, Jr = Mt.lineX0, vi = Mt.lineX1, hn = Mt.lineY0, An = Mt.lineY1;
+ return Mt.angle = Mt.x, delete Mt.x, Mt.startAngle = Mt.x0, delete Mt.x0, Mt.endAngle = Mt.x1, delete Mt.x1, Mt.radius = Mt.y, delete Mt.y, Mt.innerRadius = Mt.y0, delete Mt.y0, Mt.outerRadius = Mt.y1, delete Mt.y1, Mt.lineStartAngle = function() {
+ return re(Jr());
+ }, delete Mt.lineX0, Mt.lineEndAngle = function() {
+ return re(vi());
+ }, delete Mt.lineX1, Mt.lineInnerRadius = function() {
+ return re(hn());
+ }, delete Mt.lineY0, Mt.lineOuterRadius = function() {
+ return re(An());
+ }, delete Mt.lineY1, Mt.curve = function(Mn) {
+ return arguments.length ? kr(H(Mn)) : kr()._curve;
+ }, Mt;
+ }
+ function Ce(Mt, kr) {
+ return [(kr = +kr) * Math.cos(Mt -= Math.PI / 2), kr * Math.sin(Mt)];
+ }
+ var Le = Array.prototype.slice;
+ function ge(Mt) {
+ return Mt.source;
+ }
+ function ie(Mt) {
+ return Mt.target;
+ }
+ function Se(Mt) {
+ var kr = ge, Jr = ie, vi = P, hn = A, An = null;
+ function Mn() {
+ var Li, _n = Le.call(arguments), ya = kr.apply(this, _n), $n = Jr.apply(this, _n);
+ if (An || (An = Li = t.path()), Mt(An, +vi.apply(this, (_n[0] = ya, _n)), +hn.apply(this, _n), +vi.apply(this, (_n[0] = $n, _n)), +hn.apply(this, _n)), Li) return An = null, Li + "" || null;
+ }
+ return Mn.source = function(Li) {
+ return arguments.length ? (kr = Li, Mn) : kr;
+ }, Mn.target = function(Li) {
+ return arguments.length ? (Jr = Li, Mn) : Jr;
+ }, Mn.x = function(Li) {
+ return arguments.length ? (vi = typeof Li == "function" ? Li : r(+Li), Mn) : vi;
+ }, Mn.y = function(Li) {
+ return arguments.length ? (hn = typeof Li == "function" ? Li : r(+Li), Mn) : hn;
+ }, Mn.context = function(Li) {
+ return arguments.length ? (An = Li == null ? null : Li, Mn) : An;
+ }, Mn;
+ }
+ function Ee(Mt, kr, Jr, vi, hn) {
+ Mt.moveTo(kr, Jr), Mt.bezierCurveTo(kr = (kr + vi) / 2, Jr, kr, hn, vi, hn);
+ }
+ function Ae(Mt, kr, Jr, vi, hn) {
+ Mt.moveTo(kr, Jr), Mt.bezierCurveTo(kr, Jr = (Jr + hn) / 2, vi, Jr, vi, hn);
+ }
+ function Be(Mt, kr, Jr, vi, hn) {
+ var An = Ce(kr, Jr), Mn = Ce(kr, Jr = (Jr + hn) / 2), Li = Ce(vi, Jr), _n = Ce(vi, hn);
+ Mt.moveTo(An[0], An[1]), Mt.bezierCurveTo(Mn[0], Mn[1], Li[0], Li[1], _n[0], _n[1]);
+ }
+ function Pe() {
+ return Se(Ee);
+ }
+ function me() {
+ return Se(Ae);
+ }
+ function De() {
+ var Mt = Se(Be);
+ return Mt.angle = Mt.x, delete Mt.x, Mt.radius = Mt.y, delete Mt.y, Mt;
+ }
+ var ce = { draw: function(Mt, kr) {
+ var Jr = Math.sqrt(kr / f);
+ Mt.moveTo(Jr, 0), Mt.arc(0, 0, Jr, 0, d);
+ } }, je = { draw: function(Mt, kr) {
+ var Jr = Math.sqrt(kr / 5) / 2;
+ Mt.moveTo(-3 * Jr, -Jr), Mt.lineTo(-Jr, -Jr), Mt.lineTo(-Jr, -3 * Jr), Mt.lineTo(Jr, -3 * Jr), Mt.lineTo(Jr, -Jr), Mt.lineTo(3 * Jr, -Jr), Mt.lineTo(3 * Jr, Jr), Mt.lineTo(Jr, Jr), Mt.lineTo(Jr, 3 * Jr), Mt.lineTo(-Jr, 3 * Jr), Mt.lineTo(-Jr, Jr), Mt.lineTo(-3 * Jr, Jr), Mt.closePath();
+ } }, lt = Math.sqrt(1 / 3), pt = lt * 2, Vt = { draw: function(Mt, kr) {
+ var Jr = Math.sqrt(kr / pt), vi = Jr * lt;
+ Mt.moveTo(0, -Jr), Mt.lineTo(vi, 0), Mt.lineTo(0, Jr), Mt.lineTo(-vi, 0), Mt.closePath();
+ } }, ot = 0.8908130915292852, ut = Math.sin(f / 10) / Math.sin(7 * f / 10), Wt = Math.sin(d / 10) * ut, Nt = -Math.cos(d / 10) * ut, $t = { draw: function(Mt, kr) {
+ var Jr = Math.sqrt(kr * ot), vi = Wt * Jr, hn = Nt * Jr;
+ Mt.moveTo(0, -Jr), Mt.lineTo(vi, hn);
+ for (var An = 1; An < 5; ++An) {
+ var Mn = d * An / 5, Li = Math.cos(Mn), _n = Math.sin(Mn);
+ Mt.lineTo(_n * Jr, -Li * Jr), Mt.lineTo(Li * vi - _n * hn, _n * vi + Li * hn);
+ }
+ Mt.closePath();
+ } }, sr = { draw: function(Mt, kr) {
+ var Jr = Math.sqrt(kr), vi = -Jr / 2;
+ Mt.rect(vi, vi, Jr, Jr);
+ } }, Tr = Math.sqrt(3), fr = { draw: function(Mt, kr) {
+ var Jr = -Math.sqrt(kr / (Tr * 3));
+ Mt.moveTo(0, Jr * 2), Mt.lineTo(-Tr * Jr, -Jr), Mt.lineTo(Tr * Jr, -Jr), Mt.closePath();
+ } }, $e = -0.5, St = Math.sqrt(3) / 2, Qt = 1 / Math.sqrt(12), Gt = (Qt / 2 + 1) * 3, _t = { draw: function(Mt, kr) {
+ var Jr = Math.sqrt(kr / Gt), vi = Jr / 2, hn = Jr * Qt, An = vi, Mn = Jr * Qt + Jr, Li = -An, _n = Mn;
+ Mt.moveTo(vi, hn), Mt.lineTo(An, Mn), Mt.lineTo(Li, _n), Mt.lineTo($e * vi - St * hn, St * vi + $e * hn), Mt.lineTo($e * An - St * Mn, St * An + $e * Mn), Mt.lineTo($e * Li - St * _n, St * Li + $e * _n), Mt.lineTo($e * vi + St * hn, $e * hn - St * vi), Mt.lineTo($e * An + St * Mn, $e * Mn - St * An), Mt.lineTo($e * Li + St * _n, $e * _n - St * Li), Mt.closePath();
+ } }, It = [ce, je, Vt, sr, $t, fr, _t];
+ function mt() {
+ var Mt = r(ce), kr = r(64), Jr = null;
+ function vi() {
+ var hn;
+ if (Jr || (Jr = hn = t.path()), Mt.apply(this, arguments).draw(Jr, +kr.apply(this, arguments)), hn) return Jr = null, hn + "" || null;
+ }
+ return vi.type = function(hn) {
+ return arguments.length ? (Mt = typeof hn == "function" ? hn : r(hn), vi) : Mt;
+ }, vi.size = function(hn) {
+ return arguments.length ? (kr = typeof hn == "function" ? hn : r(+hn), vi) : kr;
+ }, vi.context = function(hn) {
+ return arguments.length ? (Jr = hn == null ? null : hn, vi) : Jr;
+ }, vi;
+ }
+ function er() {
+ }
+ function lr(Mt, kr, Jr) {
+ Mt._context.bezierCurveTo((2 * Mt._x0 + Mt._x1) / 3, (2 * Mt._y0 + Mt._y1) / 3, (Mt._x0 + 2 * Mt._x1) / 3, (Mt._y0 + 2 * Mt._y1) / 3, (Mt._x0 + 4 * Mt._x1 + kr) / 6, (Mt._y0 + 4 * Mt._y1 + Jr) / 6);
+ }
+ function wr(Mt) {
+ this._context = Mt;
+ }
+ wr.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0;
+ }, lineEnd: function() {
+ switch (this._point) {
+ case 3:
+ lr(this, this._x1, this._y1);
+ case 2:
+ this._context.lineTo(this._x1, this._y1);
+ break;
+ }
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ }, point: function(Mt, kr) {
+ switch (Mt = +Mt, kr = +kr, this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(Mt, kr) : this._context.moveTo(Mt, kr);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3, this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);
+ default:
+ lr(this, Mt, kr);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = Mt, this._y0 = this._y1, this._y1 = kr;
+ } };
+ function Lr(Mt) {
+ return new wr(Mt);
+ }
+ function ti(Mt) {
+ this._context = Mt;
+ }
+ ti.prototype = { areaStart: er, areaEnd: er, lineStart: function() {
+ this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN, this._point = 0;
+ }, lineEnd: function() {
+ switch (this._point) {
+ case 1: {
+ this._context.moveTo(this._x2, this._y2), this._context.closePath();
+ break;
+ }
+ case 2: {
+ this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3), this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3), this._context.closePath();
+ break;
+ }
+ case 3: {
+ this.point(this._x2, this._y2), this.point(this._x3, this._y3), this.point(this._x4, this._y4);
+ break;
+ }
+ }
+ }, point: function(Mt, kr) {
+ switch (Mt = +Mt, kr = +kr, this._point) {
+ case 0:
+ this._point = 1, this._x2 = Mt, this._y2 = kr;
+ break;
+ case 1:
+ this._point = 2, this._x3 = Mt, this._y3 = kr;
+ break;
+ case 2:
+ this._point = 3, this._x4 = Mt, this._y4 = kr, this._context.moveTo((this._x0 + 4 * this._x1 + Mt) / 6, (this._y0 + 4 * this._y1 + kr) / 6);
+ break;
+ default:
+ lr(this, Mt, kr);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = Mt, this._y0 = this._y1, this._y1 = kr;
+ } };
+ function Br(Mt) {
+ return new ti(Mt);
+ }
+ function Vr(Mt) {
+ this._context = Mt;
+ }
+ Vr.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0;
+ }, lineEnd: function() {
+ (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
+ }, point: function(Mt, kr) {
+ switch (Mt = +Mt, kr = +kr, this._point) {
+ case 0:
+ this._point = 1;
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ var Jr = (this._x0 + 4 * this._x1 + Mt) / 6, vi = (this._y0 + 4 * this._y1 + kr) / 6;
+ this._line ? this._context.lineTo(Jr, vi) : this._context.moveTo(Jr, vi);
+ break;
+ case 3:
+ this._point = 4;
+ default:
+ lr(this, Mt, kr);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = Mt, this._y0 = this._y1, this._y1 = kr;
+ } };
+ function dt(Mt) {
+ return new Vr(Mt);
+ }
+ function Ge(Mt, kr) {
+ this._basis = new wr(Mt), this._beta = kr;
+ }
+ Ge.prototype = { lineStart: function() {
+ this._x = [], this._y = [], this._basis.lineStart();
+ }, lineEnd: function() {
+ var Mt = this._x, kr = this._y, Jr = Mt.length - 1;
+ if (Jr > 0) for (var vi = Mt[0], hn = kr[0], An = Mt[Jr] - vi, Mn = kr[Jr] - hn, Li = -1, _n; ++Li <= Jr; ) _n = Li / Jr, this._basis.point(this._beta * Mt[Li] + (1 - this._beta) * (vi + _n * An), this._beta * kr[Li] + (1 - this._beta) * (hn + _n * Mn));
+ this._x = this._y = null, this._basis.lineEnd();
+ }, point: function(Mt, kr) {
+ this._x.push(+Mt), this._y.push(+kr);
+ } };
+ var Je = function Mt(kr) {
+ function Jr(vi) {
+ return kr === 1 ? new wr(vi) : new Ge(vi, kr);
+ }
+ return Jr.beta = function(vi) {
+ return Mt(+vi);
+ }, Jr;
+ }(0.85);
+ function We(Mt, kr, Jr) {
+ Mt._context.bezierCurveTo(Mt._x1 + Mt._k * (Mt._x2 - Mt._x0), Mt._y1 + Mt._k * (Mt._y2 - Mt._y0), Mt._x2 + Mt._k * (Mt._x1 - kr), Mt._y2 + Mt._k * (Mt._y1 - Jr), Mt._x2, Mt._y2);
+ }
+ function tt(Mt, kr) {
+ this._context = Mt, this._k = (1 - kr) / 6;
+ }
+ tt.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0;
+ }, lineEnd: function() {
+ switch (this._point) {
+ case 2:
+ this._context.lineTo(this._x2, this._y2);
+ break;
+ case 3:
+ We(this, this._x1, this._y1);
+ break;
+ }
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ }, point: function(Mt, kr) {
+ switch (Mt = +Mt, kr = +kr, this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(Mt, kr) : this._context.moveTo(Mt, kr);
+ break;
+ case 1:
+ this._point = 2, this._x1 = Mt, this._y1 = kr;
+ break;
+ case 2:
+ this._point = 3;
+ default:
+ We(this, Mt, kr);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = Mt, this._y0 = this._y1, this._y1 = this._y2, this._y2 = kr;
+ } };
+ var xt = function Mt(kr) {
+ function Jr(vi) {
+ return new tt(vi, kr);
+ }
+ return Jr.tension = function(vi) {
+ return Mt(+vi);
+ }, Jr;
+ }(0);
+ function Ie(Mt, kr) {
+ this._context = Mt, this._k = (1 - kr) / 6;
+ }
+ Ie.prototype = { areaStart: er, areaEnd: er, lineStart: function() {
+ this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._point = 0;
+ }, lineEnd: function() {
+ switch (this._point) {
+ case 1: {
+ this._context.moveTo(this._x3, this._y3), this._context.closePath();
+ break;
+ }
+ case 2: {
+ this._context.lineTo(this._x3, this._y3), this._context.closePath();
+ break;
+ }
+ case 3: {
+ this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5);
+ break;
+ }
+ }
+ }, point: function(Mt, kr) {
+ switch (Mt = +Mt, kr = +kr, this._point) {
+ case 0:
+ this._point = 1, this._x3 = Mt, this._y3 = kr;
+ break;
+ case 1:
+ this._point = 2, this._context.moveTo(this._x4 = Mt, this._y4 = kr);
+ break;
+ case 2:
+ this._point = 3, this._x5 = Mt, this._y5 = kr;
+ break;
+ default:
+ We(this, Mt, kr);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = Mt, this._y0 = this._y1, this._y1 = this._y2, this._y2 = kr;
+ } };
+ var xe = function Mt(kr) {
+ function Jr(vi) {
+ return new Ie(vi, kr);
+ }
+ return Jr.tension = function(vi) {
+ return Mt(+vi);
+ }, Jr;
+ }(0);
+ function ke(Mt, kr) {
+ this._context = Mt, this._k = (1 - kr) / 6;
+ }
+ ke.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0;
+ }, lineEnd: function() {
+ (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
+ }, point: function(Mt, kr) {
+ switch (Mt = +Mt, kr = +kr, this._point) {
+ case 0:
+ this._point = 1;
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
+ break;
+ case 3:
+ this._point = 4;
+ default:
+ We(this, Mt, kr);
+ break;
+ }
+ this._x0 = this._x1, this._x1 = this._x2, this._x2 = Mt, this._y0 = this._y1, this._y1 = this._y2, this._y2 = kr;
+ } };
+ var vt = function Mt(kr) {
+ function Jr(vi) {
+ return new ke(vi, kr);
+ }
+ return Jr.tension = function(vi) {
+ return Mt(+vi);
+ }, Jr;
+ }(0);
+ function ir(Mt, kr, Jr) {
+ var vi = Mt._x1, hn = Mt._y1, An = Mt._x2, Mn = Mt._y2;
+ if (Mt._l01_a > c) {
+ var Li = 2 * Mt._l01_2a + 3 * Mt._l01_a * Mt._l12_a + Mt._l12_2a, _n = 3 * Mt._l01_a * (Mt._l01_a + Mt._l12_a);
+ vi = (vi * Li - Mt._x0 * Mt._l12_2a + Mt._x2 * Mt._l01_2a) / _n, hn = (hn * Li - Mt._y0 * Mt._l12_2a + Mt._y2 * Mt._l01_2a) / _n;
+ }
+ if (Mt._l23_a > c) {
+ var ya = 2 * Mt._l23_2a + 3 * Mt._l23_a * Mt._l12_a + Mt._l12_2a, $n = 3 * Mt._l23_a * (Mt._l23_a + Mt._l12_a);
+ An = (An * ya + Mt._x1 * Mt._l23_2a - kr * Mt._l12_2a) / $n, Mn = (Mn * ya + Mt._y1 * Mt._l23_2a - Jr * Mt._l12_2a) / $n;
+ }
+ Mt._context.bezierCurveTo(vi, hn, An, Mn, Mt._x2, Mt._y2);
+ }
+ function ar(Mt, kr) {
+ this._context = Mt, this._alpha = kr;
+ }
+ ar.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
+ }, lineEnd: function() {
+ switch (this._point) {
+ case 2:
+ this._context.lineTo(this._x2, this._y2);
+ break;
+ case 3:
+ this.point(this._x2, this._y2);
+ break;
+ }
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ }, point: function(Mt, kr) {
+ if (Mt = +Mt, kr = +kr, this._point) {
+ var Jr = this._x2 - Mt, vi = this._y2 - kr;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(Jr * Jr + vi * vi, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(Mt, kr) : this._context.moveTo(Mt, kr);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3;
+ default:
+ ir(this, Mt, kr);
+ break;
+ }
+ this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = Mt, this._y0 = this._y1, this._y1 = this._y2, this._y2 = kr;
+ } };
+ var vr = function Mt(kr) {
+ function Jr(vi) {
+ return kr ? new ar(vi, kr) : new tt(vi, 0);
+ }
+ return Jr.alpha = function(vi) {
+ return Mt(+vi);
+ }, Jr;
+ }(0.5);
+ function ii(Mt, kr) {
+ this._context = Mt, this._alpha = kr;
+ }
+ ii.prototype = { areaStart: er, areaEnd: er, lineStart: function() {
+ this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
+ }, lineEnd: function() {
+ switch (this._point) {
+ case 1: {
+ this._context.moveTo(this._x3, this._y3), this._context.closePath();
+ break;
+ }
+ case 2: {
+ this._context.lineTo(this._x3, this._y3), this._context.closePath();
+ break;
+ }
+ case 3: {
+ this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5);
+ break;
+ }
+ }
+ }, point: function(Mt, kr) {
+ if (Mt = +Mt, kr = +kr, this._point) {
+ var Jr = this._x2 - Mt, vi = this._y2 - kr;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(Jr * Jr + vi * vi, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1, this._x3 = Mt, this._y3 = kr;
+ break;
+ case 1:
+ this._point = 2, this._context.moveTo(this._x4 = Mt, this._y4 = kr);
+ break;
+ case 2:
+ this._point = 3, this._x5 = Mt, this._y5 = kr;
+ break;
+ default:
+ ir(this, Mt, kr);
+ break;
+ }
+ this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = Mt, this._y0 = this._y1, this._y1 = this._y2, this._y2 = kr;
+ } };
+ var pi = function Mt(kr) {
+ function Jr(vi) {
+ return kr ? new ii(vi, kr) : new Ie(vi, 0);
+ }
+ return Jr.alpha = function(vi) {
+ return Mt(+vi);
+ }, Jr;
+ }(0.5);
+ function $r(Mt, kr) {
+ this._context = Mt, this._alpha = kr;
+ }
+ $r.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
+ }, lineEnd: function() {
+ (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
+ }, point: function(Mt, kr) {
+ if (Mt = +Mt, kr = +kr, this._point) {
+ var Jr = this._x2 - Mt, vi = this._y2 - kr;
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(Jr * Jr + vi * vi, this._alpha));
+ }
+ switch (this._point) {
+ case 0:
+ this._point = 1;
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
+ break;
+ case 3:
+ this._point = 4;
+ default:
+ ir(this, Mt, kr);
+ break;
+ }
+ this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = Mt, this._y0 = this._y1, this._y1 = this._y2, this._y2 = kr;
+ } };
+ var di = function Mt(kr) {
+ function Jr(vi) {
+ return kr ? new $r(vi, kr) : new ke(vi, 0);
+ }
+ return Jr.alpha = function(vi) {
+ return Mt(+vi);
+ }, Jr;
+ }(0.5);
+ function ji(Mt) {
+ this._context = Mt;
+ }
+ ji.prototype = { areaStart: er, areaEnd: er, lineStart: function() {
+ this._point = 0;
+ }, lineEnd: function() {
+ this._point && this._context.closePath();
+ }, point: function(Mt, kr) {
+ Mt = +Mt, kr = +kr, this._point ? this._context.lineTo(Mt, kr) : (this._point = 1, this._context.moveTo(Mt, kr));
+ } };
+ function In(Mt) {
+ return new ji(Mt);
+ }
+ function wi(Mt) {
+ return Mt < 0 ? -1 : 1;
+ }
+ function On(Mt, kr, Jr) {
+ var vi = Mt._x1 - Mt._x0, hn = kr - Mt._x1, An = (Mt._y1 - Mt._y0) / (vi || hn < 0 && -0), Mn = (Jr - Mt._y1) / (hn || vi < 0 && -0), Li = (An * hn + Mn * vi) / (vi + hn);
+ return (wi(An) + wi(Mn)) * Math.min(Math.abs(An), Math.abs(Mn), 0.5 * Math.abs(Li)) || 0;
+ }
+ function qn(Mt, kr) {
+ var Jr = Mt._x1 - Mt._x0;
+ return Jr ? (3 * (Mt._y1 - Mt._y0) / Jr - kr) / 2 : kr;
+ }
+ function Fn(Mt, kr, Jr) {
+ var vi = Mt._x0, hn = Mt._y0, An = Mt._x1, Mn = Mt._y1, Li = (An - vi) / 3;
+ Mt._context.bezierCurveTo(vi + Li, hn + Li * kr, An - Li, Mn - Li * Jr, An, Mn);
+ }
+ function ra(Mt) {
+ this._context = Mt;
+ }
+ ra.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN, this._point = 0;
+ }, lineEnd: function() {
+ switch (this._point) {
+ case 2:
+ this._context.lineTo(this._x1, this._y1);
+ break;
+ case 3:
+ Fn(this, this._t0, qn(this, this._t0));
+ break;
+ }
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
+ }, point: function(Mt, kr) {
+ var Jr = NaN;
+ if (Mt = +Mt, kr = +kr, !(Mt === this._x1 && kr === this._y1)) {
+ switch (this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(Mt, kr) : this._context.moveTo(Mt, kr);
+ break;
+ case 1:
+ this._point = 2;
+ break;
+ case 2:
+ this._point = 3, Fn(this, qn(this, Jr = On(this, Mt, kr)), Jr);
+ break;
+ default:
+ Fn(this, this._t0, Jr = On(this, Mt, kr));
+ break;
+ }
+ this._x0 = this._x1, this._x1 = Mt, this._y0 = this._y1, this._y1 = kr, this._t0 = Jr;
+ }
+ } };
+ function la(Mt) {
+ this._context = new Ut(Mt);
+ }
+ (la.prototype = Object.create(ra.prototype)).point = function(Mt, kr) {
+ ra.prototype.point.call(this, kr, Mt);
+ };
+ function Ut(Mt) {
+ this._context = Mt;
+ }
+ Ut.prototype = { moveTo: function(Mt, kr) {
+ this._context.moveTo(kr, Mt);
+ }, closePath: function() {
+ this._context.closePath();
+ }, lineTo: function(Mt, kr) {
+ this._context.lineTo(kr, Mt);
+ }, bezierCurveTo: function(Mt, kr, Jr, vi, hn, An) {
+ this._context.bezierCurveTo(kr, Mt, vi, Jr, An, hn);
+ } };
+ function wt(Mt) {
+ return new ra(Mt);
+ }
+ function rr(Mt) {
+ return new la(Mt);
+ }
+ function nr(Mt) {
+ this._context = Mt;
+ }
+ nr.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x = [], this._y = [];
+ }, lineEnd: function() {
+ var Mt = this._x, kr = this._y, Jr = Mt.length;
+ if (Jr) if (this._line ? this._context.lineTo(Mt[0], kr[0]) : this._context.moveTo(Mt[0], kr[0]), Jr === 2) this._context.lineTo(Mt[1], kr[1]);
+ else for (var vi = Er(Mt), hn = Er(kr), An = 0, Mn = 1; Mn < Jr; ++An, ++Mn) this._context.bezierCurveTo(vi[0][An], hn[0][An], vi[1][An], hn[1][An], Mt[Mn], kr[Mn]);
+ (this._line || this._line !== 0 && Jr === 1) && this._context.closePath(), this._line = 1 - this._line, this._x = this._y = null;
+ }, point: function(Mt, kr) {
+ this._x.push(+Mt), this._y.push(+kr);
+ } };
+ function Er(Mt) {
+ var kr, Jr = Mt.length - 1, vi, hn = new Array(Jr), An = new Array(Jr), Mn = new Array(Jr);
+ for (hn[0] = 0, An[0] = 2, Mn[0] = Mt[0] + 2 * Mt[1], kr = 1; kr < Jr - 1; ++kr) hn[kr] = 1, An[kr] = 4, Mn[kr] = 4 * Mt[kr] + 2 * Mt[kr + 1];
+ for (hn[Jr - 1] = 2, An[Jr - 1] = 7, Mn[Jr - 1] = 8 * Mt[Jr - 1] + Mt[Jr], kr = 1; kr < Jr; ++kr) vi = hn[kr] / An[kr - 1], An[kr] -= vi, Mn[kr] -= vi * Mn[kr - 1];
+ for (hn[Jr - 1] = Mn[Jr - 1] / An[Jr - 1], kr = Jr - 2; kr >= 0; --kr) hn[kr] = (Mn[kr] - hn[kr + 1]) / An[kr];
+ for (An[Jr - 1] = (Mt[Jr] + hn[Jr - 1]) / 2, kr = 0; kr < Jr - 1; ++kr) An[kr] = 2 * Mt[kr + 1] - hn[kr + 1];
+ return [hn, An];
+ }
+ function Xr(Mt) {
+ return new nr(Mt);
+ }
+ function ri(Mt, kr) {
+ this._context = Mt, this._t = kr;
+ }
+ ri.prototype = { areaStart: function() {
+ this._line = 0;
+ }, areaEnd: function() {
+ this._line = NaN;
+ }, lineStart: function() {
+ this._x = this._y = NaN, this._point = 0;
+ }, lineEnd: function() {
+ 0 < this._t && this._t < 1 && this._point === 2 && this._context.lineTo(this._x, this._y), (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line >= 0 && (this._t = 1 - this._t, this._line = 1 - this._line);
+ }, point: function(Mt, kr) {
+ switch (Mt = +Mt, kr = +kr, this._point) {
+ case 0:
+ this._point = 1, this._line ? this._context.lineTo(Mt, kr) : this._context.moveTo(Mt, kr);
+ break;
+ case 1:
+ this._point = 2;
+ default: {
+ if (this._t <= 0) this._context.lineTo(this._x, kr), this._context.lineTo(Mt, kr);
+ else {
+ var Jr = this._x * (1 - this._t) + Mt * this._t;
+ this._context.lineTo(Jr, this._y), this._context.lineTo(Jr, kr);
+ }
+ break;
+ }
+ }
+ this._x = Mt, this._y = kr;
+ } };
+ function Qr(Mt) {
+ return new ri(Mt, 0.5);
+ }
+ function Oi(Mt) {
+ return new ri(Mt, 0);
+ }
+ function $i(Mt) {
+ return new ri(Mt, 1);
+ }
+ function tn(Mt, kr) {
+ if ((Mn = Mt.length) > 1) for (var Jr = 1, vi, hn, An = Mt[kr[0]], Mn, Li = An.length; Jr < Mn; ++Jr) for (hn = An, An = Mt[kr[Jr]], vi = 0; vi < Li; ++vi) An[vi][1] += An[vi][0] = isNaN(hn[vi][1]) ? hn[vi][0] : hn[vi][1];
+ }
+ function fn(Mt) {
+ for (var kr = Mt.length, Jr = new Array(kr); --kr >= 0; ) Jr[kr] = kr;
+ return Jr;
+ }
+ function yn(Mt, kr) {
+ return Mt[kr];
+ }
+ function Sn() {
+ var Mt = r([]), kr = fn, Jr = tn, vi = yn;
+ function hn(An) {
+ var Mn = Mt.apply(this, arguments), Li, _n = An.length, ya = Mn.length, $n = new Array(ya), Ma;
+ for (Li = 0; Li < ya; ++Li) {
+ for (var _o = Mn[Li], No = $n[Li] = new Array(_n), po = 0, Lo; po < _n; ++po) No[po] = Lo = [0, +vi(An[po], _o, po, An)], Lo.data = An[po];
+ No.key = _o;
+ }
+ for (Li = 0, Ma = kr($n); Li < ya; ++Li) $n[Ma[Li]].index = Li;
+ return Jr($n, Ma), $n;
+ }
+ return hn.keys = function(An) {
+ return arguments.length ? (Mt = typeof An == "function" ? An : r(Le.call(An)), hn) : Mt;
+ }, hn.value = function(An) {
+ return arguments.length ? (vi = typeof An == "function" ? An : r(+An), hn) : vi;
+ }, hn.order = function(An) {
+ return arguments.length ? (kr = An == null ? fn : typeof An == "function" ? An : r(Le.call(An)), hn) : kr;
+ }, hn.offset = function(An) {
+ return arguments.length ? (Jr = An == null ? tn : An, hn) : Jr;
+ }, hn;
+ }
+ function Ba(Mt, kr) {
+ if ((vi = Mt.length) > 0) {
+ for (var Jr, vi, hn = 0, An = Mt[0].length, Mn; hn < An; ++hn) {
+ for (Mn = Jr = 0; Jr < vi; ++Jr) Mn += Mt[Jr][hn][1] || 0;
+ if (Mn) for (Jr = 0; Jr < vi; ++Jr) Mt[Jr][hn][1] /= Mn;
+ }
+ tn(Mt, kr);
+ }
+ }
+ function ua(Mt, kr) {
+ if ((_n = Mt.length) > 0) for (var Jr, vi = 0, hn, An, Mn, Li, _n, ya = Mt[kr[0]].length; vi < ya; ++vi) for (Mn = Li = 0, Jr = 0; Jr < _n; ++Jr) (An = (hn = Mt[kr[Jr]][vi])[1] - hn[0]) > 0 ? (hn[0] = Mn, hn[1] = Mn += An) : An < 0 ? (hn[1] = Li, hn[0] = Li += An) : (hn[0] = 0, hn[1] = An);
+ }
+ function ma(Mt, kr) {
+ if ((hn = Mt.length) > 0) {
+ for (var Jr = 0, vi = Mt[kr[0]], hn, An = vi.length; Jr < An; ++Jr) {
+ for (var Mn = 0, Li = 0; Mn < hn; ++Mn) Li += Mt[Mn][Jr][1] || 0;
+ vi[Jr][1] += vi[Jr][0] = -Li / 2;
+ }
+ tn(Mt, kr);
+ }
+ }
+ function Wa(Mt, kr) {
+ if (!(!((Mn = Mt.length) > 0) || !((An = (hn = Mt[kr[0]]).length) > 0))) {
+ for (var Jr = 0, vi = 1, hn, An, Mn; vi < An; ++vi) {
+ for (var Li = 0, _n = 0, ya = 0; Li < Mn; ++Li) {
+ for (var $n = Mt[kr[Li]], Ma = $n[vi][1] || 0, _o = $n[vi - 1][1] || 0, No = (Ma - _o) / 2, po = 0; po < Li; ++po) {
+ var Lo = Mt[kr[po]], ko = Lo[vi][1] || 0, Ds = Lo[vi - 1][1] || 0;
+ No += ko - Ds;
+ }
+ _n += Ma, ya += No * Ma;
+ }
+ hn[vi - 1][1] += hn[vi - 1][0] = Jr, _n && (Jr -= ya / _n);
+ }
+ hn[vi - 1][1] += hn[vi - 1][0] = Jr, tn(Mt, kr);
+ }
+ }
+ function Fa(Mt) {
+ var kr = Mt.map(Xo);
+ return fn(Mt).sort(function(Jr, vi) {
+ return kr[Jr] - kr[vi];
+ });
+ }
+ function Xo(Mt) {
+ for (var kr = -1, Jr = 0, vi = Mt.length, hn, An = -1 / 0; ++kr < vi; ) (hn = +Mt[kr][1]) > An && (An = hn, Jr = kr);
+ return Jr;
+ }
+ function da(Mt) {
+ var kr = Mt.map(Wn);
+ return fn(Mt).sort(function(Jr, vi) {
+ return kr[Jr] - kr[vi];
+ });
+ }
+ function Wn(Mt) {
+ for (var kr = 0, Jr = -1, vi = Mt.length, hn; ++Jr < vi; ) (hn = +Mt[Jr][1]) && (kr += hn);
+ return kr;
+ }
+ function Ha(Mt) {
+ return da(Mt).reverse();
+ }
+ function vo(Mt) {
+ var kr = Mt.length, Jr, vi, hn = Mt.map(Wn), An = Fa(Mt), Mn = 0, Li = 0, _n = [], ya = [];
+ for (Jr = 0; Jr < kr; ++Jr) vi = An[Jr], Mn < Li ? (Mn += hn[vi], _n.push(vi)) : (Li += hn[vi], ya.push(vi));
+ return ya.reverse().concat(_n);
+ }
+ function jn(Mt) {
+ return fn(Mt).reverse();
+ }
+ e.arc = C, e.area = O, e.areaRadial = _e, e.curveBasis = Lr, e.curveBasisClosed = Br, e.curveBasisOpen = dt, e.curveBundle = Je, e.curveCardinal = xt, e.curveCardinalClosed = xe, e.curveCardinalOpen = vt, e.curveCatmullRom = vr, e.curveCatmullRomClosed = pi, e.curveCatmullRomOpen = di, e.curveLinear = g, e.curveLinearClosed = In, e.curveMonotoneX = wt, e.curveMonotoneY = rr, e.curveNatural = Xr, e.curveStep = Qr, e.curveStepAfter = $i, e.curveStepBefore = Oi, e.line = z, e.lineRadial = oe, e.linkHorizontal = Pe, e.linkRadial = De, e.linkVertical = me, e.pie = Z, e.pointRadial = Ce, e.radialArea = _e, e.radialLine = oe, e.stack = Sn, e.stackOffsetDiverging = ua, e.stackOffsetExpand = Ba, e.stackOffsetNone = tn, e.stackOffsetSilhouette = ma, e.stackOffsetWiggle = Wa, e.stackOrderAppearance = Fa, e.stackOrderAscending = da, e.stackOrderDescending = Ha, e.stackOrderInsideOut = vo, e.stackOrderNone = fn, e.stackOrderReverse = jn, e.symbol = mt, e.symbolCircle = ce, e.symbolCross = je, e.symbolDiamond = Vt, e.symbolSquare = sr, e.symbolStar = $t, e.symbolTriangle = fr, e.symbolWye = _t, e.symbols = It, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var YWe = ye((C7, ZWe) => {
+ (function(e, t) {
+ typeof C7 == "object" && typeof ZWe != "undefined" ? t(C7, hk(), T7(), $J()) : t(e.d3 = e.d3 || {}, e.d3, e.d3, e.d3);
+ })(C7, function(e, t, r, n) {
+ function i(g) {
+ return g.target.depth;
+ }
+ function a(g) {
+ return g.depth;
+ }
+ function o(g, P) {
+ return P - 1 - g.height;
+ }
+ function s(g, P) {
+ return g.sourceLinks.length ? g.depth : P - 1;
+ }
+ function l(g) {
+ return g.targetLinks.length ? g.depth : g.sourceLinks.length ? t.min(g.sourceLinks, i) - 1 : 0;
+ }
+ function u(g) {
+ return function() {
+ return g;
+ };
+ }
+ function c(g, P) {
+ return h(g.source, P.source) || g.index - P.index;
+ }
+ function f(g, P) {
+ return h(g.target, P.target) || g.index - P.index;
+ }
+ function h(g, P) {
+ return g.y0 - P.y0;
+ }
+ function d(g) {
+ return g.value;
+ }
+ function v(g) {
+ return (g.y0 + g.y1) / 2;
+ }
+ function _(g) {
+ return v(g.source) * g.value;
+ }
+ function b(g) {
+ return v(g.target) * g.value;
+ }
+ function p(g) {
+ return g.index;
+ }
+ function k(g) {
+ return g.nodes;
+ }
+ function E(g) {
+ return g.links;
+ }
+ function T(g, P) {
+ var A = g.get(P);
+ if (!A) throw new Error("missing: " + P);
+ return A;
+ }
+ var L = function() {
+ var g = 0, P = 0, A = 1, z = 1, O = 24, U = 8, G = p, Z = s, j = k, N = E, H = 32, re = 2 / 3;
+ function oe() {
+ var Se = { nodes: j.apply(null, arguments), links: N.apply(null, arguments) };
+ return _e(Se), Ce(Se), Le(Se), ge(Se), ie(Se), Se;
+ }
+ oe.update = function(Se) {
+ return ie(Se), Se;
+ }, oe.nodeId = function(Se) {
+ return arguments.length ? (G = typeof Se == "function" ? Se : u(Se), oe) : G;
+ }, oe.nodeAlign = function(Se) {
+ return arguments.length ? (Z = typeof Se == "function" ? Se : u(Se), oe) : Z;
+ }, oe.nodeWidth = function(Se) {
+ return arguments.length ? (O = +Se, oe) : O;
+ }, oe.nodePadding = function(Se) {
+ return arguments.length ? (U = +Se, oe) : U;
+ }, oe.nodes = function(Se) {
+ return arguments.length ? (j = typeof Se == "function" ? Se : u(Se), oe) : j;
+ }, oe.links = function(Se) {
+ return arguments.length ? (N = typeof Se == "function" ? Se : u(Se), oe) : N;
+ }, oe.size = function(Se) {
+ return arguments.length ? (g = P = 0, A = +Se[0], z = +Se[1], oe) : [A - g, z - P];
+ }, oe.extent = function(Se) {
+ return arguments.length ? (g = +Se[0][0], A = +Se[1][0], P = +Se[0][1], z = +Se[1][1], oe) : [[g, P], [A, z]];
+ }, oe.iterations = function(Se) {
+ return arguments.length ? (H = +Se, oe) : H;
+ };
+ function _e(Se) {
+ Se.nodes.forEach(function(Ae, Be) {
+ Ae.index = Be, Ae.sourceLinks = [], Ae.targetLinks = [];
+ });
+ var Ee = r.map(Se.nodes, G);
+ Se.links.forEach(function(Ae, Be) {
+ Ae.index = Be;
+ var Pe = Ae.source, me = Ae.target;
+ typeof Pe != "object" && (Pe = Ae.source = T(Ee, Pe)), typeof me != "object" && (me = Ae.target = T(Ee, me)), Pe.sourceLinks.push(Ae), me.targetLinks.push(Ae);
+ });
+ }
+ function Ce(Se) {
+ Se.nodes.forEach(function(Ee) {
+ Ee.value = Math.max(t.sum(Ee.sourceLinks, d), t.sum(Ee.targetLinks, d));
+ });
+ }
+ function Le(Se) {
+ var Ee, Ae, Be;
+ for (Ee = Se.nodes, Ae = [], Be = 0; Ee.length; ++Be, Ee = Ae, Ae = []) Ee.forEach(function(me) {
+ me.depth = Be, me.sourceLinks.forEach(function(De) {
+ Ae.indexOf(De.target) < 0 && Ae.push(De.target);
+ });
+ });
+ for (Ee = Se.nodes, Ae = [], Be = 0; Ee.length; ++Be, Ee = Ae, Ae = []) Ee.forEach(function(me) {
+ me.height = Be, me.targetLinks.forEach(function(De) {
+ Ae.indexOf(De.source) < 0 && Ae.push(De.source);
+ });
+ });
+ var Pe = (A - g - O) / (Be - 1);
+ Se.nodes.forEach(function(me) {
+ me.x1 = (me.x0 = g + Math.max(0, Math.min(Be - 1, Math.floor(Z.call(null, me, Be)))) * Pe) + O;
+ });
+ }
+ function ge(Se) {
+ var Ee = r.nest().key(function(je) {
+ return je.x0;
+ }).sortKeys(t.ascending).entries(Se.nodes).map(function(je) {
+ return je.values;
+ });
+ Pe(), ce();
+ for (var Ae = 1, Be = H; Be > 0; --Be) De(Ae *= 0.99), ce(), me(Ae), ce();
+ function Pe() {
+ var je = t.max(Ee, function(Vt) {
+ return Vt.length;
+ }), lt = re * (z - P) / (je - 1);
+ U > lt && (U = lt);
+ var pt = t.min(Ee, function(Vt) {
+ return (z - P - (Vt.length - 1) * U) / t.sum(Vt, d);
+ });
+ Ee.forEach(function(Vt) {
+ Vt.forEach(function(ot, ut) {
+ ot.y1 = (ot.y0 = ut) + ot.value * pt;
+ });
+ }), Se.links.forEach(function(Vt) {
+ Vt.width = Vt.value * pt;
+ });
+ }
+ function me(je) {
+ Ee.forEach(function(lt) {
+ lt.forEach(function(pt) {
+ if (pt.targetLinks.length) {
+ var Vt = (t.sum(pt.targetLinks, _) / t.sum(pt.targetLinks, d) - v(pt)) * je;
+ pt.y0 += Vt, pt.y1 += Vt;
+ }
+ });
+ });
+ }
+ function De(je) {
+ Ee.slice().reverse().forEach(function(lt) {
+ lt.forEach(function(pt) {
+ if (pt.sourceLinks.length) {
+ var Vt = (t.sum(pt.sourceLinks, b) / t.sum(pt.sourceLinks, d) - v(pt)) * je;
+ pt.y0 += Vt, pt.y1 += Vt;
+ }
+ });
+ });
+ }
+ function ce() {
+ Ee.forEach(function(je) {
+ var lt, pt, Vt = P, ot = je.length, ut;
+ for (je.sort(h), ut = 0; ut < ot; ++ut) lt = je[ut], pt = Vt - lt.y0, pt > 0 && (lt.y0 += pt, lt.y1 += pt), Vt = lt.y1 + U;
+ if (pt = Vt - U - z, pt > 0) for (Vt = lt.y0 -= pt, lt.y1 -= pt, ut = ot - 2; ut >= 0; --ut) lt = je[ut], pt = lt.y1 + U - Vt, pt > 0 && (lt.y0 -= pt, lt.y1 -= pt), Vt = lt.y0;
+ });
+ }
+ }
+ function ie(Se) {
+ Se.nodes.forEach(function(Ee) {
+ Ee.sourceLinks.sort(f), Ee.targetLinks.sort(c);
+ }), Se.nodes.forEach(function(Ee) {
+ var Ae = Ee.y0, Be = Ae;
+ Ee.sourceLinks.forEach(function(Pe) {
+ Pe.y0 = Ae + Pe.width / 2, Ae += Pe.width;
+ }), Ee.targetLinks.forEach(function(Pe) {
+ Pe.y1 = Be + Pe.width / 2, Be += Pe.width;
+ });
+ });
+ }
+ return oe;
+ };
+ function x(g) {
+ return [g.source.x1, g.y0];
+ }
+ function C(g) {
+ return [g.target.x0, g.y1];
+ }
+ var M = function() {
+ return n.linkHorizontal().source(x).target(C);
+ };
+ e.sankey = L, e.sankeyCenter = l, e.sankeyLeft = a, e.sankeyRight = o, e.sankeyJustify = s, e.sankeyLinkHorizontal = M, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var JWe = ye((f2r, KWe) => {
+ var WZt = JJ();
+ KWe.exports = function(t, r) {
+ var n = [], i = [], a = [], o = {}, s = [], l;
+ function u(E) {
+ a[E] = false, o.hasOwnProperty(E) && Object.keys(o[E]).forEach(function(T) {
+ delete o[E][T], a[T] && u(T);
+ });
+ }
+ function c(E) {
+ var T = false;
+ i.push(E), a[E] = true;
+ var L, x;
+ for (L = 0; L < s[E].length; L++) x = s[E][L], x === l ? (f(l, i), T = true) : a[x] || (T = c(x));
+ if (T) u(E);
+ else for (L = 0; L < s[E].length; L++) {
+ x = s[E][L];
+ var C = o[x];
+ C || (C = {}, o[x] = C), C[x] = true;
+ }
+ return i.pop(), T;
+ }
+ function f(E, T) {
+ var L = [].concat(T).concat(E);
+ r ? r(c) : n.push(L);
+ }
+ function h(E) {
+ for (var T = 0; T < t.length; T++) T < E && (t[T] = []), t[T] = t[T].filter(function(L) {
+ return L >= E;
+ });
+ }
+ function d(E) {
+ h(E);
+ for (var T = t, L = WZt(T), x = L.components.filter(function(O) {
+ return O.length > 1;
+ }), C = 1 / 0, M, g = 0; g < x.length; g++) for (var P = 0; P < x[g].length; P++) x[g][P] < C && (C = x[g][P], M = g);
+ var A = x[M];
+ if (!A) return false;
+ var z = t.map(function(O, U) {
+ return A.indexOf(U) === -1 ? [] : O.filter(function(G) {
+ return A.indexOf(G) !== -1;
+ });
+ });
+ return { leastVertex: C, adjList: z };
+ }
+ l = 0;
+ for (var v = t.length; l < v; ) {
+ var _ = d(l);
+ if (l = _.leastVertex, s = _.adjList, s) {
+ for (var b = 0; b < s.length; b++) for (var p = 0; p < s[b].length; p++) {
+ var k = s[b][p];
+ a[+k] = false, o[k] = {};
+ }
+ c(l), l = l + 1;
+ } else l = v;
+ }
+ if (!r) return n;
+ };
+ });
+ var QWe = ye((L7, $We) => {
+ (function(e, t) {
+ typeof L7 == "object" && typeof $We != "undefined" ? t(L7, hk(), T7(), $J(), JWe()) : t(e.d3 = e.d3 || {}, e.d3, e.d3, e.d3, null);
+ })(L7, function(e, t, r, n, i) {
+ i = i && i.hasOwnProperty("default") ? i.default : i;
+ function a(ot) {
+ return ot.target.depth;
+ }
+ function o(ot) {
+ return ot.depth;
+ }
+ function s(ot, ut) {
+ return ut - 1 - ot.height;
+ }
+ function l(ot, ut) {
+ return ot.sourceLinks.length ? ot.depth : ut - 1;
+ }
+ function u(ot) {
+ return ot.targetLinks.length ? ot.depth : ot.sourceLinks.length ? t.min(ot.sourceLinks, a) - 1 : 0;
+ }
+ function c(ot) {
+ return function() {
+ return ot;
+ };
+ }
+ var f = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(ot) {
+ return typeof ot;
+ } : function(ot) {
+ return ot && typeof Symbol == "function" && ot.constructor === Symbol && ot !== Symbol.prototype ? "symbol" : typeof ot;
+ };
+ function h(ot, ut) {
+ return v(ot.source, ut.source) || ot.index - ut.index;
+ }
+ function d(ot, ut) {
+ return v(ot.target, ut.target) || ot.index - ut.index;
+ }
+ function v(ot, ut) {
+ return ot.partOfCycle === ut.partOfCycle ? ot.y0 - ut.y0 : ot.circularLinkType === "top" || ut.circularLinkType === "bottom" ? -1 : 1;
+ }
+ function _(ot) {
+ return ot.value;
+ }
+ function b(ot) {
+ return (ot.y0 + ot.y1) / 2;
+ }
+ function p(ot) {
+ return b(ot.source);
+ }
+ function k(ot) {
+ return b(ot.target);
+ }
+ function E(ot) {
+ return ot.index;
+ }
+ function T(ot) {
+ return ot.nodes;
+ }
+ function L(ot) {
+ return ot.links;
+ }
+ function x(ot, ut) {
+ var Wt = ot.get(ut);
+ if (!Wt) throw new Error("missing: " + ut);
+ return Wt;
+ }
+ function C(ot, ut) {
+ return ut(ot);
+ }
+ var M = 25, g = 10, P = 0.3;
+ function A() {
+ var ot = 0, ut = 0, Wt = 1, Nt = 1, $t = 24, sr, Tr = E, fr = l, $e = T, St = L, Qt = 32, Gt = 2, _t, It = null;
+ function mt() {
+ var dt = { nodes: $e.apply(null, arguments), links: St.apply(null, arguments) };
+ er(dt), z(dt, Tr, It), lr(dt), ti(dt), O(dt, Tr), Br(dt, Qt, Tr), Vr(dt);
+ for (var Ge = 4, Je = 0; Je < Ge; Je++) De(dt, Nt, Tr), ce(dt, Nt, Tr), Be(dt, ut, Nt, Tr), De(dt, Nt, Tr), ce(dt, Nt, Tr);
+ return Vt(dt, ut, Nt), H(dt, Gt, Nt, Tr), dt;
+ }
+ mt.nodeId = function(dt) {
+ return arguments.length ? (Tr = typeof dt == "function" ? dt : c(dt), mt) : Tr;
+ }, mt.nodeAlign = function(dt) {
+ return arguments.length ? (fr = typeof dt == "function" ? dt : c(dt), mt) : fr;
+ }, mt.nodeWidth = function(dt) {
+ return arguments.length ? ($t = +dt, mt) : $t;
+ }, mt.nodePadding = function(dt) {
+ return arguments.length ? (sr = +dt, mt) : sr;
+ }, mt.nodes = function(dt) {
+ return arguments.length ? ($e = typeof dt == "function" ? dt : c(dt), mt) : $e;
+ }, mt.links = function(dt) {
+ return arguments.length ? (St = typeof dt == "function" ? dt : c(dt), mt) : St;
+ }, mt.size = function(dt) {
+ return arguments.length ? (ot = ut = 0, Wt = +dt[0], Nt = +dt[1], mt) : [Wt - ot, Nt - ut];
+ }, mt.extent = function(dt) {
+ return arguments.length ? (ot = +dt[0][0], Wt = +dt[1][0], ut = +dt[0][1], Nt = +dt[1][1], mt) : [[ot, ut], [Wt, Nt]];
+ }, mt.iterations = function(dt) {
+ return arguments.length ? (Qt = +dt, mt) : Qt;
+ }, mt.circularLinkGap = function(dt) {
+ return arguments.length ? (Gt = +dt, mt) : Gt;
+ }, mt.nodePaddingRatio = function(dt) {
+ return arguments.length ? (_t = +dt, mt) : _t;
+ }, mt.sortNodes = function(dt) {
+ return arguments.length ? (It = dt, mt) : It;
+ }, mt.update = function(dt) {
+ return O(dt, Tr), Vr(dt), dt.links.forEach(function(Ge) {
+ Ge.circular && (Ge.circularLinkType = Ge.y0 + Ge.y1 < Nt ? "top" : "bottom", Ge.source.circularLinkType = Ge.circularLinkType, Ge.target.circularLinkType = Ge.circularLinkType);
+ }), De(dt, Nt, Tr, false), ce(dt, Nt, Tr), H(dt, Gt, Nt, Tr), dt;
+ };
+ function er(dt) {
+ dt.nodes.forEach(function(Je, We) {
+ Je.index = We, Je.sourceLinks = [], Je.targetLinks = [];
+ });
+ var Ge = r.map(dt.nodes, Tr);
+ return dt.links.forEach(function(Je, We) {
+ Je.index = We;
+ var tt = Je.source, xt = Je.target;
+ (typeof tt == "undefined" ? "undefined" : f(tt)) !== "object" && (tt = Je.source = x(Ge, tt)), (typeof xt == "undefined" ? "undefined" : f(xt)) !== "object" && (xt = Je.target = x(Ge, xt)), tt.sourceLinks.push(Je), xt.targetLinks.push(Je);
+ }), dt;
+ }
+ function lr(dt) {
+ dt.nodes.forEach(function(Ge) {
+ Ge.partOfCycle = false, Ge.value = Math.max(t.sum(Ge.sourceLinks, _), t.sum(Ge.targetLinks, _)), Ge.sourceLinks.forEach(function(Je) {
+ Je.circular && (Ge.partOfCycle = true, Ge.circularLinkType = Je.circularLinkType);
+ }), Ge.targetLinks.forEach(function(Je) {
+ Je.circular && (Ge.partOfCycle = true, Ge.circularLinkType = Je.circularLinkType);
+ });
+ });
+ }
+ function wr(dt) {
+ var Ge = 0, Je = 0, We = 0, tt = 0, xt = t.max(dt.nodes, function(Ie) {
+ return Ie.column;
+ });
+ return dt.links.forEach(function(Ie) {
+ Ie.circular && (Ie.circularLinkType == "top" ? Ge = Ge + Ie.width : Je = Je + Ie.width, Ie.target.column == 0 && (tt = tt + Ie.width), Ie.source.column == xt && (We = We + Ie.width));
+ }), Ge = Ge > 0 ? Ge + M + g : Ge, Je = Je > 0 ? Je + M + g : Je, We = We > 0 ? We + M + g : We, tt = tt > 0 ? tt + M + g : tt, { top: Ge, bottom: Je, left: tt, right: We };
+ }
+ function Lr(dt, Ge) {
+ var Je = t.max(dt.nodes, function(vt) {
+ return vt.column;
+ }), We = Wt - ot, tt = Nt - ut, xt = We + Ge.right + Ge.left, Ie = tt + Ge.top + Ge.bottom, xe = We / xt, ke = tt / Ie;
+ return ot = ot * xe + Ge.left, Wt = Ge.right == 0 ? Wt : Wt * xe, ut = ut * ke + Ge.top, Nt = Nt * ke, dt.nodes.forEach(function(vt) {
+ vt.x0 = ot + vt.column * ((Wt - ot - $t) / Je), vt.x1 = vt.x0 + $t;
+ }), ke;
+ }
+ function ti(dt) {
+ var Ge, Je, We;
+ for (Ge = dt.nodes, Je = [], We = 0; Ge.length; ++We, Ge = Je, Je = []) Ge.forEach(function(tt) {
+ tt.depth = We, tt.sourceLinks.forEach(function(xt) {
+ Je.indexOf(xt.target) < 0 && !xt.circular && Je.push(xt.target);
+ });
+ });
+ for (Ge = dt.nodes, Je = [], We = 0; Ge.length; ++We, Ge = Je, Je = []) Ge.forEach(function(tt) {
+ tt.height = We, tt.targetLinks.forEach(function(xt) {
+ Je.indexOf(xt.source) < 0 && !xt.circular && Je.push(xt.source);
+ });
+ });
+ dt.nodes.forEach(function(tt) {
+ tt.column = Math.floor(fr.call(null, tt, We));
+ });
+ }
+ function Br(dt, Ge, Je) {
+ var We = r.nest().key(function(vt) {
+ return vt.column;
+ }).sortKeys(t.ascending).entries(dt.nodes).map(function(vt) {
+ return vt.values;
+ });
+ Ie(Je), ke();
+ for (var tt = 1, xt = Ge; xt > 0; --xt) xe(tt *= 0.99, Je), ke();
+ function Ie(vt) {
+ if (_t) {
+ var ir = 1 / 0;
+ We.forEach(function(pi) {
+ var $r = Nt * _t / (pi.length + 1);
+ ir = $r < ir ? $r : ir;
+ }), sr = ir;
+ }
+ var ar = t.min(We, function(pi) {
+ return (Nt - ut - (pi.length - 1) * sr) / t.sum(pi, _);
+ });
+ ar = ar * P, dt.links.forEach(function(pi) {
+ pi.width = pi.value * ar;
+ });
+ var vr = wr(dt), ii = Lr(dt, vr);
+ ar = ar * ii, dt.links.forEach(function(pi) {
+ pi.width = pi.value * ar;
+ }), We.forEach(function(pi) {
+ var $r = pi.length;
+ pi.forEach(function(di, ji) {
+ di.depth == We.length - 1 && $r == 1 || di.depth == 0 && $r == 1 ? (di.y0 = Nt / 2 - di.value * ar, di.y1 = di.y0 + di.value * ar) : di.partOfCycle ? Z(di, vt) == 0 ? (di.y0 = Nt / 2 + ji, di.y1 = di.y0 + di.value * ar) : di.circularLinkType == "top" ? (di.y0 = ut + ji, di.y1 = di.y0 + di.value * ar) : (di.y0 = Nt - di.value * ar - ji, di.y1 = di.y0 + di.value * ar) : vr.top == 0 || vr.bottom == 0 ? (di.y0 = (Nt - ut) / $r * ji, di.y1 = di.y0 + di.value * ar) : (di.y0 = (Nt - ut) / 2 - $r / 2 + ji, di.y1 = di.y0 + di.value * ar);
+ });
+ });
+ }
+ function xe(vt, ir) {
+ var ar = We.length;
+ We.forEach(function(vr) {
+ var ii = vr.length, pi = vr[0].depth;
+ vr.forEach(function($r) {
+ var di;
+ if (($r.sourceLinks.length || $r.targetLinks.length) && !($r.partOfCycle && Z($r, ir) > 0)) if (pi == 0 && ii == 1) di = $r.y1 - $r.y0, $r.y0 = Nt / 2 - di / 2, $r.y1 = Nt / 2 + di / 2;
+ else if (pi == ar - 1 && ii == 1) di = $r.y1 - $r.y0, $r.y0 = Nt / 2 - di / 2, $r.y1 = Nt / 2 + di / 2;
+ else {
+ var ji = 0, In = t.mean($r.sourceLinks, k), wi = t.mean($r.targetLinks, p);
+ In && wi ? ji = (In + wi) / 2 : ji = In || wi;
+ var On = (ji - b($r)) * vt;
+ $r.y0 += On, $r.y1 += On;
+ }
+ });
+ });
+ }
+ function ke() {
+ We.forEach(function(vt) {
+ var ir, ar, vr = ut, ii = vt.length, pi;
+ for (vt.sort(v), pi = 0; pi < ii; ++pi) ir = vt[pi], ar = vr - ir.y0, ar > 0 && (ir.y0 += ar, ir.y1 += ar), vr = ir.y1 + sr;
+ if (ar = vr - sr - Nt, ar > 0) for (vr = ir.y0 -= ar, ir.y1 -= ar, pi = ii - 2; pi >= 0; --pi) ir = vt[pi], ar = ir.y1 + sr - vr, ar > 0 && (ir.y0 -= ar, ir.y1 -= ar), vr = ir.y0;
+ });
+ }
+ }
+ function Vr(dt) {
+ dt.nodes.forEach(function(Ge) {
+ Ge.sourceLinks.sort(d), Ge.targetLinks.sort(h);
+ }), dt.nodes.forEach(function(Ge) {
+ var Je = Ge.y0, We = Je, tt = Ge.y1, xt = tt;
+ Ge.sourceLinks.forEach(function(Ie) {
+ Ie.circular ? (Ie.y0 = tt - Ie.width / 2, tt = tt - Ie.width) : (Ie.y0 = Je + Ie.width / 2, Je += Ie.width);
+ }), Ge.targetLinks.forEach(function(Ie) {
+ Ie.circular ? (Ie.y1 = xt - Ie.width / 2, xt = xt - Ie.width) : (Ie.y1 = We + Ie.width / 2, We += Ie.width);
+ });
+ });
+ }
+ return mt;
+ }
+ function z(ot, ut, Wt) {
+ var Nt = 0;
+ if (Wt === null) {
+ for (var $t = [], sr = 0; sr < ot.links.length; sr++) {
+ var Tr = ot.links[sr], fr = Tr.source.index, $e = Tr.target.index;
+ $t[fr] || ($t[fr] = []), $t[$e] || ($t[$e] = []), $t[fr].indexOf($e) === -1 && $t[fr].push($e);
+ }
+ var St = i($t);
+ St.sort(function(It, mt) {
+ return It.length - mt.length;
+ });
+ var Qt = {};
+ for (sr = 0; sr < St.length; sr++) {
+ var Gt = St[sr], _t = Gt.slice(-2);
+ Qt[_t[0]] || (Qt[_t[0]] = {}), Qt[_t[0]][_t[1]] = true;
+ }
+ ot.links.forEach(function(It) {
+ var mt = It.target.index, er = It.source.index;
+ mt === er || Qt[er] && Qt[er][mt] ? (It.circular = true, It.circularLinkID = Nt, Nt = Nt + 1) : It.circular = false;
+ });
+ } else ot.links.forEach(function(It) {
+ It.source[Wt] < It.target[Wt] ? It.circular = false : (It.circular = true, It.circularLinkID = Nt, Nt = Nt + 1);
+ });
+ }
+ function O(ot, ut) {
+ var Wt = 0, Nt = 0;
+ ot.links.forEach(function($t) {
+ $t.circular && ($t.source.circularLinkType || $t.target.circularLinkType ? $t.circularLinkType = $t.source.circularLinkType ? $t.source.circularLinkType : $t.target.circularLinkType : $t.circularLinkType = Wt < Nt ? "top" : "bottom", $t.circularLinkType == "top" ? Wt = Wt + 1 : Nt = Nt + 1, ot.nodes.forEach(function(sr) {
+ (C(sr, ut) == C($t.source, ut) || C(sr, ut) == C($t.target, ut)) && (sr.circularLinkType = $t.circularLinkType);
+ }));
+ }), ot.links.forEach(function($t) {
+ $t.circular && ($t.source.circularLinkType == $t.target.circularLinkType && ($t.circularLinkType = $t.source.circularLinkType), pt($t, ut) && ($t.circularLinkType = $t.source.circularLinkType));
+ });
+ }
+ function U(ot) {
+ var ut = Math.abs(ot.y1 - ot.y0), Wt = Math.abs(ot.target.x0 - ot.source.x1);
+ return Math.atan(Wt / ut);
+ }
+ function G(ot, ut) {
+ return ot.source.column < ut.target.column ? false : !(ot.target.column > ut.source.column);
+ }
+ function Z(ot, ut) {
+ var Wt = 0;
+ ot.sourceLinks.forEach(function($t) {
+ Wt = $t.circular && !pt($t, ut) ? Wt + 1 : Wt;
+ });
+ var Nt = 0;
+ return ot.targetLinks.forEach(function($t) {
+ Nt = $t.circular && !pt($t, ut) ? Nt + 1 : Nt;
+ }), Wt + Nt;
+ }
+ function j(ot) {
+ var ut = ot.source.sourceLinks, Wt = 0;
+ ut.forEach(function(sr) {
+ Wt = sr.circular ? Wt + 1 : Wt;
+ });
+ var Nt = ot.target.targetLinks, $t = 0;
+ return Nt.forEach(function(sr) {
+ $t = sr.circular ? $t + 1 : $t;
+ }), !(Wt > 1 || $t > 1);
+ }
+ function N(ot, ut, Wt) {
+ return ot.sort(oe), ot.forEach(function(Nt, $t) {
+ var sr = 0;
+ if (pt(Nt, Wt) && j(Nt)) Nt.circularPathData.verticalBuffer = sr + Nt.width / 2;
+ else {
+ var Tr = 0;
+ for (Tr; Tr < $t; Tr++) if (G(ot[$t], ot[Tr])) {
+ var fr = ot[Tr].circularPathData.verticalBuffer + ot[Tr].width / 2 + ut;
+ sr = fr > sr ? fr : sr;
+ }
+ Nt.circularPathData.verticalBuffer = sr + Nt.width / 2;
+ }
+ }), ot;
+ }
+ function H(ot, ut, Wt, Nt) {
+ var $t = 5, sr = t.min(ot.links, function($e) {
+ return $e.source.y0;
+ });
+ ot.links.forEach(function($e) {
+ $e.circular && ($e.circularPathData = {});
+ });
+ var Tr = ot.links.filter(function($e) {
+ return $e.circularLinkType == "top";
+ });
+ N(Tr, ut, Nt);
+ var fr = ot.links.filter(function($e) {
+ return $e.circularLinkType == "bottom";
+ });
+ N(fr, ut, Nt), ot.links.forEach(function($e) {
+ if ($e.circular) {
+ if ($e.circularPathData.arcRadius = $e.width + g, $e.circularPathData.leftNodeBuffer = $t, $e.circularPathData.rightNodeBuffer = $t, $e.circularPathData.sourceWidth = $e.source.x1 - $e.source.x0, $e.circularPathData.sourceX = $e.source.x0 + $e.circularPathData.sourceWidth, $e.circularPathData.targetX = $e.target.x0, $e.circularPathData.sourceY = $e.y0, $e.circularPathData.targetY = $e.y1, pt($e, Nt) && j($e)) $e.circularPathData.leftSmallArcRadius = g + $e.width / 2, $e.circularPathData.leftLargeArcRadius = g + $e.width / 2, $e.circularPathData.rightSmallArcRadius = g + $e.width / 2, $e.circularPathData.rightLargeArcRadius = g + $e.width / 2, $e.circularLinkType == "bottom" ? ($e.circularPathData.verticalFullExtent = $e.source.y1 + M + $e.circularPathData.verticalBuffer, $e.circularPathData.verticalLeftInnerExtent = $e.circularPathData.verticalFullExtent - $e.circularPathData.leftLargeArcRadius, $e.circularPathData.verticalRightInnerExtent = $e.circularPathData.verticalFullExtent - $e.circularPathData.rightLargeArcRadius) : ($e.circularPathData.verticalFullExtent = $e.source.y0 - M - $e.circularPathData.verticalBuffer, $e.circularPathData.verticalLeftInnerExtent = $e.circularPathData.verticalFullExtent + $e.circularPathData.leftLargeArcRadius, $e.circularPathData.verticalRightInnerExtent = $e.circularPathData.verticalFullExtent + $e.circularPathData.rightLargeArcRadius);
+ else {
+ var St = $e.source.column, Qt = $e.circularLinkType, Gt = ot.links.filter(function(mt) {
+ return mt.source.column == St && mt.circularLinkType == Qt;
+ });
+ $e.circularLinkType == "bottom" ? Gt.sort(Ce) : Gt.sort(_e);
+ var _t = 0;
+ Gt.forEach(function(mt, er) {
+ mt.circularLinkID == $e.circularLinkID && ($e.circularPathData.leftSmallArcRadius = g + $e.width / 2 + _t, $e.circularPathData.leftLargeArcRadius = g + $e.width / 2 + er * ut + _t), _t = _t + mt.width;
+ }), St = $e.target.column, Gt = ot.links.filter(function(mt) {
+ return mt.target.column == St && mt.circularLinkType == Qt;
+ }), $e.circularLinkType == "bottom" ? Gt.sort(ge) : Gt.sort(Le), _t = 0, Gt.forEach(function(mt, er) {
+ mt.circularLinkID == $e.circularLinkID && ($e.circularPathData.rightSmallArcRadius = g + $e.width / 2 + _t, $e.circularPathData.rightLargeArcRadius = g + $e.width / 2 + er * ut + _t), _t = _t + mt.width;
+ }), $e.circularLinkType == "bottom" ? ($e.circularPathData.verticalFullExtent = Math.max(Wt, $e.source.y1, $e.target.y1) + M + $e.circularPathData.verticalBuffer, $e.circularPathData.verticalLeftInnerExtent = $e.circularPathData.verticalFullExtent - $e.circularPathData.leftLargeArcRadius, $e.circularPathData.verticalRightInnerExtent = $e.circularPathData.verticalFullExtent - $e.circularPathData.rightLargeArcRadius) : ($e.circularPathData.verticalFullExtent = sr - M - $e.circularPathData.verticalBuffer, $e.circularPathData.verticalLeftInnerExtent = $e.circularPathData.verticalFullExtent + $e.circularPathData.leftLargeArcRadius, $e.circularPathData.verticalRightInnerExtent = $e.circularPathData.verticalFullExtent + $e.circularPathData.rightLargeArcRadius);
+ }
+ $e.circularPathData.leftInnerExtent = $e.circularPathData.sourceX + $e.circularPathData.leftNodeBuffer, $e.circularPathData.rightInnerExtent = $e.circularPathData.targetX - $e.circularPathData.rightNodeBuffer, $e.circularPathData.leftFullExtent = $e.circularPathData.sourceX + $e.circularPathData.leftLargeArcRadius + $e.circularPathData.leftNodeBuffer, $e.circularPathData.rightFullExtent = $e.circularPathData.targetX - $e.circularPathData.rightLargeArcRadius - $e.circularPathData.rightNodeBuffer;
+ }
+ if ($e.circular) $e.path = re($e);
+ else {
+ var It = n.linkHorizontal().source(function(mt) {
+ var er = mt.source.x0 + (mt.source.x1 - mt.source.x0), lr = mt.y0;
+ return [er, lr];
+ }).target(function(mt) {
+ var er = mt.target.x0, lr = mt.y1;
+ return [er, lr];
+ });
+ $e.path = It($e);
+ }
+ });
+ }
+ function re(ot) {
+ var ut = "";
+ return ot.circularLinkType == "top" ? ut = "M" + ot.circularPathData.sourceX + " " + ot.circularPathData.sourceY + " L" + ot.circularPathData.leftInnerExtent + " " + ot.circularPathData.sourceY + " A" + ot.circularPathData.leftLargeArcRadius + " " + ot.circularPathData.leftSmallArcRadius + " 0 0 0 " + ot.circularPathData.leftFullExtent + " " + (ot.circularPathData.sourceY - ot.circularPathData.leftSmallArcRadius) + " L" + ot.circularPathData.leftFullExtent + " " + ot.circularPathData.verticalLeftInnerExtent + " A" + ot.circularPathData.leftLargeArcRadius + " " + ot.circularPathData.leftLargeArcRadius + " 0 0 0 " + ot.circularPathData.leftInnerExtent + " " + ot.circularPathData.verticalFullExtent + " L" + ot.circularPathData.rightInnerExtent + " " + ot.circularPathData.verticalFullExtent + " A" + ot.circularPathData.rightLargeArcRadius + " " + ot.circularPathData.rightLargeArcRadius + " 0 0 0 " + ot.circularPathData.rightFullExtent + " " + ot.circularPathData.verticalRightInnerExtent + " L" + ot.circularPathData.rightFullExtent + " " + (ot.circularPathData.targetY - ot.circularPathData.rightSmallArcRadius) + " A" + ot.circularPathData.rightLargeArcRadius + " " + ot.circularPathData.rightSmallArcRadius + " 0 0 0 " + ot.circularPathData.rightInnerExtent + " " + ot.circularPathData.targetY + " L" + ot.circularPathData.targetX + " " + ot.circularPathData.targetY : ut = "M" + ot.circularPathData.sourceX + " " + ot.circularPathData.sourceY + " L" + ot.circularPathData.leftInnerExtent + " " + ot.circularPathData.sourceY + " A" + ot.circularPathData.leftLargeArcRadius + " " + ot.circularPathData.leftSmallArcRadius + " 0 0 1 " + ot.circularPathData.leftFullExtent + " " + (ot.circularPathData.sourceY + ot.circularPathData.leftSmallArcRadius) + " L" + ot.circularPathData.leftFullExtent + " " + ot.circularPathData.verticalLeftInnerExtent + " A" + ot.circularPathData.leftLargeArcRadius + " " + ot.circularPathData.leftLargeArcRadius + " 0 0 1 " + ot.circularPathData.leftInnerExtent + " " + ot.circularPathData.verticalFullExtent + " L" + ot.circularPathData.rightInnerExtent + " " + ot.circularPathData.verticalFullExtent + " A" + ot.circularPathData.rightLargeArcRadius + " " + ot.circularPathData.rightLargeArcRadius + " 0 0 1 " + ot.circularPathData.rightFullExtent + " " + ot.circularPathData.verticalRightInnerExtent + " L" + ot.circularPathData.rightFullExtent + " " + (ot.circularPathData.targetY + ot.circularPathData.rightSmallArcRadius) + " A" + ot.circularPathData.rightLargeArcRadius + " " + ot.circularPathData.rightSmallArcRadius + " 0 0 1 " + ot.circularPathData.rightInnerExtent + " " + ot.circularPathData.targetY + " L" + ot.circularPathData.targetX + " " + ot.circularPathData.targetY, ut;
+ }
+ function oe(ot, ut) {
+ return ie(ot) == ie(ut) ? ot.circularLinkType == "bottom" ? Ce(ot, ut) : _e(ot, ut) : ie(ut) - ie(ot);
+ }
+ function _e(ot, ut) {
+ return ot.y0 - ut.y0;
+ }
+ function Ce(ot, ut) {
+ return ut.y0 - ot.y0;
+ }
+ function Le(ot, ut) {
+ return ot.y1 - ut.y1;
+ }
+ function ge(ot, ut) {
+ return ut.y1 - ot.y1;
+ }
+ function ie(ot) {
+ return ot.target.column - ot.source.column;
+ }
+ function Se(ot) {
+ return ot.target.x0 - ot.source.x1;
+ }
+ function Ee(ot, ut) {
+ var Wt = U(ot), Nt = Se(ut) / Math.tan(Wt), $t = lt(ot) == "up" ? ot.y1 + Nt : ot.y1 - Nt;
+ return $t;
+ }
+ function Ae(ot, ut) {
+ var Wt = U(ot), Nt = Se(ut) / Math.tan(Wt), $t = lt(ot) == "up" ? ot.y1 - Nt : ot.y1 + Nt;
+ return $t;
+ }
+ function Be(ot, ut, Wt, Nt) {
+ ot.links.forEach(function($t) {
+ if (!$t.circular && $t.target.column - $t.source.column > 1) {
+ var sr = $t.source.column + 1, Tr = $t.target.column - 1, fr = 1, $e = Tr - sr + 1;
+ for (fr = 1; sr <= Tr; sr++, fr++) ot.nodes.forEach(function(St) {
+ if (St.column == sr) {
+ var Qt = fr / ($e + 1), Gt = Math.pow(1 - Qt, 3), _t = 3 * Qt * Math.pow(1 - Qt, 2), It = 3 * Math.pow(Qt, 2) * (1 - Qt), mt = Math.pow(Qt, 3), er = Gt * $t.y0 + _t * $t.y0 + It * $t.y1 + mt * $t.y1, lr = er - $t.width / 2, wr = er + $t.width / 2, Lr;
+ lr > St.y0 && lr < St.y1 ? (Lr = St.y1 - lr + 10, Lr = St.circularLinkType == "bottom" ? Lr : -Lr, St = me(St, Lr, ut, Wt), ot.nodes.forEach(function(ti) {
+ C(ti, Nt) == C(St, Nt) || ti.column != St.column || Pe(St, ti) && me(ti, Lr, ut, Wt);
+ })) : wr > St.y0 && wr < St.y1 ? (Lr = wr - St.y0 + 10, St = me(St, Lr, ut, Wt), ot.nodes.forEach(function(ti) {
+ C(ti, Nt) == C(St, Nt) || ti.column != St.column || ti.y0 < St.y1 && ti.y1 > St.y1 && me(ti, Lr, ut, Wt);
+ })) : lr < St.y0 && wr > St.y1 && (Lr = wr - St.y0 + 10, St = me(St, Lr, ut, Wt), ot.nodes.forEach(function(ti) {
+ C(ti, Nt) == C(St, Nt) || ti.column != St.column || ti.y0 < St.y1 && ti.y1 > St.y1 && me(ti, Lr, ut, Wt);
+ }));
+ }
+ });
+ }
+ });
+ }
+ function Pe(ot, ut) {
+ return ot.y0 > ut.y0 && ot.y0 < ut.y1 || ot.y1 > ut.y0 && ot.y1 < ut.y1 ? true : ot.y0 < ut.y0 && ot.y1 > ut.y1;
+ }
+ function me(ot, ut, Wt, Nt) {
+ return ot.y0 + ut >= Wt && ot.y1 + ut <= Nt && (ot.y0 = ot.y0 + ut, ot.y1 = ot.y1 + ut, ot.targetLinks.forEach(function($t) {
+ $t.y1 = $t.y1 + ut;
+ }), ot.sourceLinks.forEach(function($t) {
+ $t.y0 = $t.y0 + ut;
+ })), ot;
+ }
+ function De(ot, ut, Wt, Nt) {
+ ot.nodes.forEach(function($t) {
+ Nt && $t.y + ($t.y1 - $t.y0) > ut && ($t.y = $t.y - ($t.y + ($t.y1 - $t.y0) - ut));
+ var sr = ot.links.filter(function($e) {
+ return C($e.source, Wt) == C($t, Wt);
+ }), Tr = sr.length;
+ Tr > 1 && sr.sort(function($e, St) {
+ if (!$e.circular && !St.circular) {
+ if ($e.target.column == St.target.column) return $e.y1 - St.y1;
+ if (je($e, St)) {
+ if ($e.target.column > St.target.column) {
+ var Qt = Ae(St, $e);
+ return $e.y1 - Qt;
+ }
+ if (St.target.column > $e.target.column) {
+ var Gt = Ae($e, St);
+ return Gt - St.y1;
+ }
+ } else return $e.y1 - St.y1;
+ }
+ if ($e.circular && !St.circular) return $e.circularLinkType == "top" ? -1 : 1;
+ if (St.circular && !$e.circular) return St.circularLinkType == "top" ? 1 : -1;
+ if ($e.circular && St.circular) return $e.circularLinkType === St.circularLinkType && $e.circularLinkType == "top" ? $e.target.column === St.target.column ? $e.target.y1 - St.target.y1 : St.target.column - $e.target.column : $e.circularLinkType === St.circularLinkType && $e.circularLinkType == "bottom" ? $e.target.column === St.target.column ? St.target.y1 - $e.target.y1 : $e.target.column - St.target.column : $e.circularLinkType == "top" ? -1 : 1;
+ });
+ var fr = $t.y0;
+ sr.forEach(function($e) {
+ $e.y0 = fr + $e.width / 2, fr = fr + $e.width;
+ }), sr.forEach(function($e, St) {
+ if ($e.circularLinkType == "bottom") {
+ var Qt = St + 1, Gt = 0;
+ for (Qt; Qt < Tr; Qt++) Gt = Gt + sr[Qt].width;
+ $e.y0 = $t.y1 - Gt - $e.width / 2;
+ }
+ });
+ });
+ }
+ function ce(ot, ut, Wt) {
+ ot.nodes.forEach(function(Nt) {
+ var $t = ot.links.filter(function(fr) {
+ return C(fr.target, Wt) == C(Nt, Wt);
+ }), sr = $t.length;
+ sr > 1 && $t.sort(function(fr, $e) {
+ if (!fr.circular && !$e.circular) {
+ if (fr.source.column == $e.source.column) return fr.y0 - $e.y0;
+ if (je(fr, $e)) {
+ if ($e.source.column < fr.source.column) {
+ var St = Ee($e, fr);
+ return fr.y0 - St;
+ }
+ if (fr.source.column < $e.source.column) {
+ var Qt = Ee(fr, $e);
+ return Qt - $e.y0;
+ }
+ } else return fr.y0 - $e.y0;
+ }
+ if (fr.circular && !$e.circular) return fr.circularLinkType == "top" ? -1 : 1;
+ if ($e.circular && !fr.circular) return $e.circularLinkType == "top" ? 1 : -1;
+ if (fr.circular && $e.circular) return fr.circularLinkType === $e.circularLinkType && fr.circularLinkType == "top" ? fr.source.column === $e.source.column ? fr.source.y1 - $e.source.y1 : fr.source.column - $e.source.column : fr.circularLinkType === $e.circularLinkType && fr.circularLinkType == "bottom" ? fr.source.column === $e.source.column ? fr.source.y1 - $e.source.y1 : $e.source.column - fr.source.column : fr.circularLinkType == "top" ? -1 : 1;
+ });
+ var Tr = Nt.y0;
+ $t.forEach(function(fr) {
+ fr.y1 = Tr + fr.width / 2, Tr = Tr + fr.width;
+ }), $t.forEach(function(fr, $e) {
+ if (fr.circularLinkType == "bottom") {
+ var St = $e + 1, Qt = 0;
+ for (St; St < sr; St++) Qt = Qt + $t[St].width;
+ fr.y1 = Nt.y1 - Qt - fr.width / 2;
+ }
+ });
+ });
+ }
+ function je(ot, ut) {
+ return lt(ot) == lt(ut);
+ }
+ function lt(ot) {
+ return ot.y0 - ot.y1 > 0 ? "up" : "down";
+ }
+ function pt(ot, ut) {
+ return C(ot.source, ut) == C(ot.target, ut);
+ }
+ function Vt(ot, ut, Wt) {
+ var Nt = ot.nodes, $t = ot.links, sr = false, Tr = false;
+ if ($t.forEach(function(_t) {
+ _t.circularLinkType == "top" ? sr = true : _t.circularLinkType == "bottom" && (Tr = true);
+ }), sr == false || Tr == false) {
+ var fr = t.min(Nt, function(_t) {
+ return _t.y0;
+ }), $e = t.max(Nt, function(_t) {
+ return _t.y1;
+ }), St = $e - fr, Qt = Wt - ut, Gt = Qt / St;
+ Nt.forEach(function(_t) {
+ var It = (_t.y1 - _t.y0) * Gt;
+ _t.y0 = (_t.y0 - fr) * Gt, _t.y1 = _t.y0 + It;
+ }), $t.forEach(function(_t) {
+ _t.y0 = (_t.y0 - fr) * Gt, _t.y1 = (_t.y1 - fr) * Gt, _t.width = _t.width * Gt;
+ });
+ }
+ }
+ e.sankeyCircular = A, e.sankeyCenter = u, e.sankeyLeft = o, e.sankeyRight = s, e.sankeyJustify = l, Object.defineProperty(e, "__esModule", { value: true });
+ });
+ });
+ var QJ = ye((h2r, eXe) => {
+ eXe.exports = { nodeTextOffsetHorizontal: 4, nodeTextOffsetVertical: 3, nodePadAcross: 10, sankeyIterations: 50, forceIterations: 5, forceTicksPerFrame: 10, duration: 500, ease: "linear", cn: { sankey: "sankey", sankeyLinks: "sankey-links", sankeyLink: "sankey-link", sankeyNodeSet: "sankey-node-set", sankeyNode: "sankey-node", nodeRect: "node-rect", nodeLabel: "node-label" } };
+ });
+ var dXe = ye((d2r, hXe) => {
+ var tXe = HWe(), XZt = (H2(), pb(G2)).interpolateNumber, O5 = Oa(), aC = YWe(), ZZt = QWe(), Nu = QJ(), q5 = fd(), gw = ka(), YZt = So(), w1 = Dr(), r$ = w1.strTranslate, KZt = w1.strRotate, i$ = iy(), oC = i$.keyFun, P7 = i$.repeat, sXe = i$.unwrap, rXe = Zl(), JZt = qa(), lXe = Dh(), $Zt = lXe.CAP_SHIFT, QZt = lXe.LINE_SPACING, eYt = 3;
+ function tYt(e, t, r) {
+ var n = sXe(t), i = n.trace, a = i.domain, o = i.orientation === "h", s = i.node.pad, l = i.node.thickness, u = { justify: aC.sankeyJustify, left: aC.sankeyLeft, right: aC.sankeyRight, center: aC.sankeyCenter }[i.node.align], c = e.width * (a.x[1] - a.x[0]), f = e.height * (a.y[1] - a.y[0]), h = n._nodes, d = n._links, v = n.circular, _;
+ v ? _ = ZZt.sankeyCircular().circularLinkGap(0) : _ = aC.sankey(), _.iterations(Nu.sankeyIterations).size(o ? [c, f] : [f, c]).nodeWidth(l).nodePadding(s).nodeId(function(U) {
+ return U.pointNumber;
+ }).nodeAlign(u).nodes(h).links(d);
+ var b = _();
+ _.nodePadding() < s && w1.warn("node.pad was reduced to ", _.nodePadding(), " to fit within the figure.");
+ var p, k, E;
+ for (var T in n._groupLookup) {
+ var L = parseInt(n._groupLookup[T]), x;
+ for (p = 0; p < b.nodes.length; p++) if (b.nodes[p].pointNumber === L) {
+ x = b.nodes[p];
+ break;
+ }
+ if (x) {
+ var C = { pointNumber: parseInt(T), x0: x.x0, x1: x.x1, y0: x.y0, y1: x.y1, partOfGroup: true, sourceLinks: [], targetLinks: [] };
+ b.nodes.unshift(C), x.childrenNodes.unshift(C);
+ }
+ }
+ function M() {
+ for (p = 0; p < b.nodes.length; p++) {
+ var U = b.nodes[p], G = {}, Z, j;
+ for (k = 0; k < U.targetLinks.length; k++) j = U.targetLinks[k], Z = j.source.pointNumber + ":" + j.target.pointNumber, G.hasOwnProperty(Z) || (G[Z] = []), G[Z].push(j);
+ var N = Object.keys(G);
+ for (k = 0; k < N.length; k++) {
+ Z = N[k];
+ var H = G[Z], re = 0, oe = {};
+ for (E = 0; E < H.length; E++) j = H[E], oe[j.label] || (oe[j.label] = 0), oe[j.label] += j.value, re += j.value;
+ for (E = 0; E < H.length; E++) j = H[E], j.flow = { value: re, labelConcentration: oe[j.label] / re, concentration: j.value / re, links: H }, j.concentrationscale && (j.color = q5(j.concentrationscale(j.flow.labelConcentration)));
+ }
+ var _e = 0;
+ for (k = 0; k < U.sourceLinks.length; k++) _e += U.sourceLinks[k].value;
+ for (k = 0; k < U.sourceLinks.length; k++) j = U.sourceLinks[k], j.concentrationOut = j.value / _e;
+ var Ce = 0;
+ for (k = 0; k < U.targetLinks.length; k++) Ce += U.targetLinks[k].value;
+ for (k = 0; k < U.targetLinks.length; k++) j = U.targetLinks[k], j.concenrationIn = j.value / Ce;
+ }
+ }
+ M();
+ function g(U) {
+ U.forEach(function(G) {
+ var Z, j, N = 0, H = G.length, re;
+ for (G.sort(function(oe, _e) {
+ return oe.y0 - _e.y0;
+ }), re = 0; re < H; ++re) Z = G[re], Z.y0 >= N || (j = N - Z.y0, j > 1e-6 && (Z.y0 += j, Z.y1 += j)), N = Z.y1 + s;
+ });
+ }
+ function P(U) {
+ var G = U.map(function(_e, Ce) {
+ return { x0: _e.x0, index: Ce };
+ }).sort(function(_e, Ce) {
+ return _e.x0 - Ce.x0;
+ }), Z = [], j = -1, N, H = -1 / 0, re;
+ for (p = 0; p < G.length; p++) {
+ var oe = U[G[p].index];
+ oe.x0 > H + l && (j += 1, N = oe.x0), H = oe.x0, Z[j] || (Z[j] = []), Z[j].push(oe), re = N - oe.x0, oe.x0 += re, oe.x1 += re;
+ }
+ return Z;
+ }
+ if (i.node.x.length && i.node.y.length) {
+ for (p = 0; p < Math.min(i.node.x.length, i.node.y.length, b.nodes.length); p++) if (i.node.x[p] && i.node.y[p]) {
+ var A = [i.node.x[p] * c, i.node.y[p] * f];
+ b.nodes[p].x0 = A[0] - l / 2, b.nodes[p].x1 = A[0] + l / 2;
+ var z = b.nodes[p].y1 - b.nodes[p].y0;
+ b.nodes[p].y0 = A[1] - z / 2, b.nodes[p].y1 = A[1] + z / 2;
+ }
+ if (i.arrangement === "snap") {
+ h = b.nodes;
+ var O = P(h);
+ g(O);
+ }
+ _.update(b);
+ }
+ return { circular: v, key: r, trace: i, guid: w1.randstr(), horizontal: o, width: c, height: f, nodePad: i.node.pad, nodeLineColor: i.node.line.color, nodeLineWidth: i.node.line.width, linkLineColor: i.link.line.color, linkLineWidth: i.link.line.width, linkArrowLength: i.link.arrowlen, valueFormat: i.valueformat, valueSuffix: i.valuesuffix, textFont: i.textfont, translateX: a.x[0] * e.width + e.margin.l, translateY: e.height - a.y[1] * e.height + e.margin.t, dragParallel: o ? f : c, dragPerpendicular: o ? c : f, arrangement: i.arrangement, sankey: _, graph: b, forceLayouts: {}, interactionState: { dragInProgress: false, hovered: false } };
+ }
+ function rYt(e, t, r) {
+ var n = q5(t.color), i = q5(t.hovercolor), a = t.source.label + "|" + t.target.label, o = a + "__" + r;
+ return t.trace = e.trace, t.curveNumber = e.trace.index, { circular: e.circular, key: o, traceId: e.key, pointNumber: t.pointNumber, link: t, tinyColorHue: gw.tinyRGB(n), tinyColorAlpha: n.getAlpha(), tinyColorHoverHue: gw.tinyRGB(i), tinyColorHoverAlpha: i.getAlpha(), linkPath: n$, linkLineColor: e.linkLineColor, linkLineWidth: e.linkLineWidth, linkArrowLength: e.linkArrowLength, valueFormat: e.valueFormat, valueSuffix: e.valueSuffix, sankey: e.sankey, parent: e, interactionState: e.interactionState, flow: t.flow };
+ }
+ function iYt(e, t) {
+ var r = "", n = e.width / 2, i = e.circularPathData, a = i.sourceX + i.verticalBuffer < i.targetX, o = i.rightFullExtent - i.rightLargeArcRadius - t <= i.leftFullExtent - n;
+ Math.abs(i.rightFullExtent - i.leftFullExtent - n) < n;
+ return e.circularLinkType === "top" ? (r = "M " + (i.targetX - t) + " " + (i.targetY + n) + " L " + (i.rightInnerExtent - t) + " " + (i.targetY + n) + "A " + (i.rightLargeArcRadius + n) + " " + (i.rightSmallArcRadius + n) + " 0 0 1 " + (i.rightFullExtent - n - t) + " " + (i.targetY - i.rightSmallArcRadius) + "L " + (i.rightFullExtent - n - t) + " " + i.verticalRightInnerExtent, a && o ? r += " A " + (i.rightLargeArcRadius + n) + " " + (i.rightLargeArcRadius + n) + " 0 0 1 " + (i.rightFullExtent + n - t - (i.rightLargeArcRadius - n)) + " " + (i.verticalRightInnerExtent - (i.rightLargeArcRadius + n)) + " L " + (i.rightFullExtent + n - (i.rightLargeArcRadius - n) - t) + " " + (i.verticalRightInnerExtent - (i.rightLargeArcRadius + n)) + " A " + (i.leftLargeArcRadius + n) + " " + (i.leftLargeArcRadius + n) + " 0 0 1 " + (i.leftFullExtent + n) + " " + i.verticalRightInnerExtent : a ? r += " A " + (i.rightLargeArcRadius - n) + " " + (i.rightLargeArcRadius - n) + " 0 0 0 " + (i.rightFullExtent - n - t - (i.rightLargeArcRadius - n)) + " " + (i.verticalRightInnerExtent - (i.rightLargeArcRadius - n)) + " L " + (i.leftFullExtent + n + (i.rightLargeArcRadius - n)) + " " + (i.verticalRightInnerExtent - (i.rightLargeArcRadius - n)) + " A " + (i.leftLargeArcRadius - n) + " " + (i.leftLargeArcRadius - n) + " 0 0 0 " + (i.leftFullExtent + n) + " " + i.verticalLeftInnerExtent : r += " A " + (i.rightLargeArcRadius + n) + " " + (i.rightLargeArcRadius + n) + " 0 0 1 " + (i.rightInnerExtent - t) + " " + (i.verticalFullExtent - n) + " L " + i.leftInnerExtent + " " + (i.verticalFullExtent - n) + " A " + (i.leftLargeArcRadius + n) + " " + (i.leftLargeArcRadius + n) + " 0 0 1 " + (i.leftFullExtent + n) + " " + i.verticalLeftInnerExtent, r += " L " + (i.leftFullExtent + n) + " " + (i.sourceY - i.leftSmallArcRadius) + " A " + (i.leftLargeArcRadius + n) + " " + (i.leftSmallArcRadius + n) + " 0 0 1 " + i.leftInnerExtent + " " + (i.sourceY + n) + " L " + i.sourceX + " " + (i.sourceY + n) + " L " + i.sourceX + " " + (i.sourceY - n) + " L " + i.leftInnerExtent + " " + (i.sourceY - n) + " A " + (i.leftLargeArcRadius - n) + " " + (i.leftSmallArcRadius - n) + " 0 0 0 " + (i.leftFullExtent - n) + " " + (i.sourceY - i.leftSmallArcRadius) + " L " + (i.leftFullExtent - n) + " " + i.verticalLeftInnerExtent, a && o ? r += " A " + (i.leftLargeArcRadius + n) + " " + (i.leftSmallArcRadius + n) + " 0 0 0 " + (i.leftFullExtent - n) + " " + (i.verticalFullExtent + n) + "L" + (i.rightFullExtent + n - t) + " " + (i.verticalFullExtent + n) + " A " + (i.leftLargeArcRadius + n) + " " + (i.leftSmallArcRadius + n) + " 0 0 0 " + (i.rightFullExtent + n - t) + " " + i.verticalRightInnerExtent : a ? r += " A " + (i.leftLargeArcRadius + n) + " " + (i.leftSmallArcRadius + n) + " 0 0 1 " + (i.leftFullExtent + n) + " " + (i.verticalFullExtent - n) + " L " + (i.rightFullExtent - n - t) + " " + (i.verticalFullExtent - n) + " A " + (i.leftLargeArcRadius + n) + " " + (i.leftSmallArcRadius + n) + " 0 0 1 " + (i.rightFullExtent + n - t) + " " + i.verticalRightInnerExtent : r += " A " + (i.leftLargeArcRadius - n) + " " + (i.leftLargeArcRadius - n) + " 0 0 0 " + i.leftInnerExtent + " " + (i.verticalFullExtent + n) + " L " + (i.rightInnerExtent - t) + " " + (i.verticalFullExtent + n) + " A " + (i.rightLargeArcRadius - n) + " " + (i.rightLargeArcRadius - n) + " 0 0 0 " + (i.rightFullExtent + n - t) + " " + i.verticalRightInnerExtent, r += " L " + (i.rightFullExtent + n - t) + " " + (i.targetY - i.rightSmallArcRadius) + " A " + (i.rightLargeArcRadius - n) + " " + (i.rightSmallArcRadius - n) + " 0 0 0 " + (i.rightInnerExtent - t) + " " + (i.targetY - n) + " L " + (i.targetX - t) + " " + (i.targetY - n) + (t > 0 ? " L " + i.targetX + " " + i.targetY : "") + "Z") : (r = "M " + (i.targetX - t) + " " + (i.targetY - n) + " L " + (i.rightInnerExtent - t) + " " + (i.targetY - n) + " A " + (i.rightLargeArcRadius + n) + " " + (i.rightSmallArcRadius + n) + " 0 0 0 " + (i.rightFullExtent - n - t) + " " + (i.targetY + i.rightSmallArcRadius) + " L " + (i.rightFullExtent - n - t) + " " + i.verticalRightInnerExtent, a && o ? r += " A " + (i.rightLargeArcRadius + n) + " " + (i.rightLargeArcRadius + n) + " 0 0 0 " + (i.rightInnerExtent - n - t) + " " + (i.verticalFullExtent + n) + " L " + (i.rightFullExtent + n - t - (i.rightLargeArcRadius - n)) + " " + (i.verticalFullExtent + n) + " A " + (i.rightLargeArcRadius + n) + " " + (i.rightLargeArcRadius + n) + " 0 0 0 " + (i.leftFullExtent + n) + " " + i.verticalLeftInnerExtent : a ? r += " A " + (i.rightLargeArcRadius - n) + " " + (i.rightSmallArcRadius - n) + " 0 0 1 " + (i.rightFullExtent - t - n - (i.rightLargeArcRadius - n)) + " " + (i.verticalFullExtent - n) + " L " + (i.leftFullExtent + n + (i.rightLargeArcRadius - n)) + " " + (i.verticalFullExtent - n) + " A " + (i.rightLargeArcRadius - n) + " " + (i.rightSmallArcRadius - n) + " 0 0 1 " + (i.leftFullExtent + n) + " " + i.verticalLeftInnerExtent : r += " A " + (i.rightLargeArcRadius + n) + " " + (i.rightLargeArcRadius + n) + " 0 0 0 " + (i.rightInnerExtent - t) + " " + (i.verticalFullExtent + n) + " L " + i.leftInnerExtent + " " + (i.verticalFullExtent + n) + " A " + (i.leftLargeArcRadius + n) + " " + (i.leftLargeArcRadius + n) + " 0 0 0 " + (i.leftFullExtent + n) + " " + i.verticalLeftInnerExtent, r += " L " + (i.leftFullExtent + n) + " " + (i.sourceY + i.leftSmallArcRadius) + " A " + (i.leftLargeArcRadius + n) + " " + (i.leftSmallArcRadius + n) + " 0 0 0 " + i.leftInnerExtent + " " + (i.sourceY - n) + " L " + i.sourceX + " " + (i.sourceY - n) + " L " + i.sourceX + " " + (i.sourceY + n) + " L " + i.leftInnerExtent + " " + (i.sourceY + n) + " A " + (i.leftLargeArcRadius - n) + " " + (i.leftSmallArcRadius - n) + " 0 0 1 " + (i.leftFullExtent - n) + " " + (i.sourceY + i.leftSmallArcRadius) + " L " + (i.leftFullExtent - n) + " " + i.verticalLeftInnerExtent, a && o ? r += " A " + (i.rightLargeArcRadius - n) + " " + (i.rightSmallArcRadius - n) + " 0 0 1 " + (i.leftFullExtent - n - (i.rightLargeArcRadius - n)) + " " + (i.verticalFullExtent - n) + " L " + (i.rightFullExtent + n - t + (i.rightLargeArcRadius - n)) + " " + (i.verticalFullExtent - n) + " A " + (i.rightLargeArcRadius - n) + " " + (i.rightSmallArcRadius - n) + " 0 0 1 " + (i.rightFullExtent + n - t) + " " + i.verticalRightInnerExtent : a ? r += " A " + (i.rightLargeArcRadius + n) + " " + (i.rightLargeArcRadius + n) + " 0 0 0 " + (i.leftFullExtent + n) + " " + (i.verticalFullExtent + n) + " L " + (i.rightFullExtent - t - n) + " " + (i.verticalFullExtent + n) + " A " + (i.rightLargeArcRadius + n) + " " + (i.rightLargeArcRadius + n) + " 0 0 0 " + (i.rightFullExtent + n - t) + " " + i.verticalRightInnerExtent : r += " A " + (i.leftLargeArcRadius - n) + " " + (i.leftLargeArcRadius - n) + " 0 0 1 " + i.leftInnerExtent + " " + (i.verticalFullExtent - n) + " L " + (i.rightInnerExtent - t) + " " + (i.verticalFullExtent - n) + " A " + (i.rightLargeArcRadius - n) + " " + (i.rightLargeArcRadius - n) + " 0 0 1 " + (i.rightFullExtent + n - t) + " " + i.verticalRightInnerExtent, r += " L " + (i.rightFullExtent + n - t) + " " + (i.targetY + i.rightSmallArcRadius) + " A " + (i.rightLargeArcRadius - n) + " " + (i.rightSmallArcRadius - n) + " 0 0 1 " + (i.rightInnerExtent - t) + " " + (i.targetY + n) + " L " + (i.targetX - t) + " " + (i.targetY + n) + (t > 0 ? " L " + i.targetX + " " + i.targetY : "") + "Z"), r;
+ }
+ function n$() {
+ var e = 0.5;
+ function t(r) {
+ var n = r.linkArrowLength;
+ if (r.link.circular) return iYt(r.link, n);
+ var i = Math.abs((r.link.target.x0 - r.link.source.x1) / 2);
+ n > i && (n = i);
+ var a = r.link.source.x1, o = r.link.target.x0 - n, s = XZt(a, o), l = s(e), u = s(1 - e), c = r.link.y0 - r.link.width / 2, f = r.link.y0 + r.link.width / 2, h = r.link.y1 - r.link.width / 2, d = r.link.y1 + r.link.width / 2, v = "M" + a + "," + c, _ = "C" + l + "," + c + " " + u + "," + h + " " + o + "," + h, b = "C" + u + "," + d + " " + l + "," + f + " " + a + "," + f, p = n > 0 ? "L" + (o + n) + "," + (h + r.link.width / 2) : "";
+ return p += "L" + o + "," + d, v + _ + p + b + "Z";
+ }
+ return t;
+ }
+ function nYt(e, t) {
+ var r = q5(t.color), n = Nu.nodePadAcross, i = e.nodePad / 2;
+ t.dx = t.x1 - t.x0, t.dy = t.y1 - t.y0;
+ var a = t.dx, o = Math.max(0.5, t.dy), s = "node_" + t.pointNumber;
+ return t.group && (s = w1.randstr()), t.trace = e.trace, t.curveNumber = e.trace.index, { index: t.pointNumber, key: s, partOfGroup: t.partOfGroup || false, group: t.group, traceId: e.key, trace: e.trace, node: t, nodePad: e.nodePad, nodeLineColor: e.nodeLineColor, nodeLineWidth: e.nodeLineWidth, textFont: e.textFont, size: e.horizontal ? e.height : e.width, visibleWidth: Math.ceil(a), visibleHeight: o, zoneX: -n, zoneY: -i, zoneWidth: a + 2 * n, zoneHeight: o + 2 * i, labelY: e.horizontal ? t.dy / 2 + 1 : t.dx / 2 + 1, left: t.originalLayer === 1, sizeAcross: e.width, forceLayouts: e.forceLayouts, horizontal: e.horizontal, darkBackground: r.getBrightness() <= 128, tinyColorHue: gw.tinyRGB(r), tinyColorAlpha: r.getAlpha(), valueFormat: e.valueFormat, valueSuffix: e.valueSuffix, sankey: e.sankey, graph: e.graph, arrangement: e.arrangement, uniqueNodeLabelPathId: [e.guid, e.key, s].join("_"), interactionState: e.interactionState, figure: e };
+ }
+ function t$(e) {
+ e.attr("transform", function(t) {
+ return r$(t.node.x0.toFixed(3), t.node.y0.toFixed(3));
+ });
+ }
+ function aYt(e) {
+ e.call(t$);
+ }
+ function uXe(e, t) {
+ e.call(aYt), t.attr("d", n$());
+ }
+ function iXe(e) {
+ e.attr("width", function(t) {
+ return t.node.x1 - t.node.x0;
+ }).attr("height", function(t) {
+ return t.visibleHeight;
+ });
+ }
+ function e$(e) {
+ return e.link.width > 1 || e.linkLineWidth > 0;
+ }
+ function nXe(e) {
+ var t = r$(e.translateX, e.translateY);
+ return t + (e.horizontal ? "matrix(1 0 0 1 0 0)" : "matrix(0 1 1 0 0 0)");
+ }
+ function aXe(e, t, r) {
+ e.on(".basic", null).on("mouseover.basic", function(n) {
+ !n.interactionState.dragInProgress && !n.partOfGroup && (r.hover(this, n, t), n.interactionState.hovered = [this, n]);
+ }).on("mousemove.basic", function(n) {
+ !n.interactionState.dragInProgress && !n.partOfGroup && (r.follow(this, n), n.interactionState.hovered = [this, n]);
+ }).on("mouseout.basic", function(n) {
+ !n.interactionState.dragInProgress && !n.partOfGroup && (r.unhover(this, n, t), n.interactionState.hovered = false);
+ }).on("click.basic", function(n) {
+ n.interactionState.hovered && (r.unhover(this, n, t), n.interactionState.hovered = false), !n.interactionState.dragInProgress && !n.partOfGroup && r.select(this, n, t);
+ });
+ }
+ function oYt(e, t, r, n) {
+ var i = O5.behavior.drag().origin(function(a) {
+ return { x: a.node.x0 + a.visibleWidth / 2, y: a.node.y0 + a.visibleHeight / 2 };
+ }).on("dragstart", function(a) {
+ if (a.arrangement !== "fixed" && (w1.ensureSingle(n._fullLayout._infolayer, "g", "dragcover", function(s) {
+ n._fullLayout._dragCover = s;
+ }), w1.raiseToTop(this), a.interactionState.dragInProgress = a.node, oXe(a.node), a.interactionState.hovered && (r.nodeEvents.unhover.apply(0, a.interactionState.hovered), a.interactionState.hovered = false), a.arrangement === "snap")) {
+ var o = a.traceId + "|" + a.key;
+ a.forceLayouts[o] ? a.forceLayouts[o].alpha(1) : sYt(e, o, a), lYt(e, t, a, o, n);
+ }
+ }).on("drag", function(a) {
+ if (a.arrangement !== "fixed") {
+ var o = O5.event.x, s = O5.event.y;
+ a.arrangement === "snap" ? (a.node.x0 = o - a.visibleWidth / 2, a.node.x1 = o + a.visibleWidth / 2, a.node.y0 = s - a.visibleHeight / 2, a.node.y1 = s + a.visibleHeight / 2) : (a.arrangement === "freeform" && (a.node.x0 = o - a.visibleWidth / 2, a.node.x1 = o + a.visibleWidth / 2), s = Math.max(0, Math.min(a.size - a.visibleHeight / 2, s)), a.node.y0 = s - a.visibleHeight / 2, a.node.y1 = s + a.visibleHeight / 2), oXe(a.node), a.arrangement !== "snap" && (a.sankey.update(a.graph), uXe(e.filter(fXe(a)), t));
+ }
+ }).on("dragend", function(a) {
+ if (a.arrangement !== "fixed") {
+ a.interactionState.dragInProgress = false;
+ for (var o = 0; o < a.node.childrenNodes.length; o++) a.node.childrenNodes[o].x = a.node.x, a.node.childrenNodes[o].y = a.node.y;
+ a.arrangement !== "snap" && cXe(a, n);
+ }
+ });
+ e.on(".drag", null).call(i);
+ }
+ function sYt(e, t, r, n) {
+ fYt(r.graph.nodes);
+ var i = r.graph.nodes.filter(function(a) {
+ return a.originalX === r.node.originalX;
+ }).filter(function(a) {
+ return !a.partOfGroup;
+ });
+ r.forceLayouts[t] = tXe.forceSimulation(i).alphaDecay(0).force("collide", tXe.forceCollide().radius(function(a) {
+ return a.dy / 2 + r.nodePad / 2;
+ }).strength(1).iterations(Nu.forceIterations)).force("constrain", uYt(e, t, i, r)).stop();
+ }
+ function lYt(e, t, r, n, i) {
+ window.requestAnimationFrame(function a() {
+ var o;
+ for (o = 0; o < Nu.forceTicksPerFrame; o++) r.forceLayouts[n].tick();
+ var s = r.graph.nodes;
+ if (hYt(s), r.sankey.update(r.graph), uXe(e.filter(fXe(r)), t), r.forceLayouts[n].alpha() > 0) window.requestAnimationFrame(a);
+ else {
+ var l = r.node.originalX;
+ r.node.x0 = l - r.visibleWidth / 2, r.node.x1 = l + r.visibleWidth / 2, cXe(r, i);
+ }
+ });
+ }
+ function uYt(e, t, r, n) {
+ return function() {
+ for (var a = 0, o = 0; o < r.length; o++) {
+ var s = r[o];
+ s === n.interactionState.dragInProgress ? (s.x = s.lastDraggedX, s.y = s.lastDraggedY) : (s.vx = (s.originalX - s.x) / Nu.forceTicksPerFrame, s.y = Math.min(n.size - s.dy / 2, Math.max(s.dy / 2, s.y))), a = Math.max(a, Math.abs(s.vx), Math.abs(s.vy));
+ }
+ !n.interactionState.dragInProgress && a < 0.1 && n.forceLayouts[t].alpha() > 0 && n.forceLayouts[t].alpha(0);
+ };
+ }
+ function cXe(e, t) {
+ for (var r = [], n = [], i = 0; i < e.graph.nodes.length; i++) {
+ var a = (e.graph.nodes[i].x0 + e.graph.nodes[i].x1) / 2, o = (e.graph.nodes[i].y0 + e.graph.nodes[i].y1) / 2;
+ r.push(a / e.figure.width), n.push(o / e.figure.height);
+ }
+ JZt.call("_guiRestyle", t, { "node.x": [r], "node.y": [n] }, e.trace.index).then(function() {
+ t._fullLayout._dragCover && t._fullLayout._dragCover.remove();
+ });
+ }
+ function cYt(e) {
+ var t = [], r;
+ for (r = 0; r < e.length; r++) e[r].originalX = (e[r].x0 + e[r].x1) / 2, e[r].originalY = (e[r].y0 + e[r].y1) / 2, t.indexOf(e[r].originalX) === -1 && t.push(e[r].originalX);
+ for (t.sort(function(n, i) {
+ return n - i;
+ }), r = 0; r < e.length; r++) e[r].originalLayerIndex = t.indexOf(e[r].originalX), e[r].originalLayer = e[r].originalLayerIndex / (t.length - 1);
+ }
+ function oXe(e) {
+ e.lastDraggedX = e.x0 + e.dx / 2, e.lastDraggedY = e.y0 + e.dy / 2;
+ }
+ function fXe(e) {
+ return function(t) {
+ return t.node.originalX === e.node.originalX;
+ };
+ }
+ function fYt(e) {
+ for (var t = 0; t < e.length; t++) e[t].y = (e[t].y0 + e[t].y1) / 2, e[t].x = (e[t].x0 + e[t].x1) / 2;
+ }
+ function hYt(e) {
+ for (var t = 0; t < e.length; t++) e[t].y0 = e[t].y - e[t].dy / 2, e[t].y1 = e[t].y0 + e[t].dy, e[t].x0 = e[t].x - e[t].dx / 2, e[t].x1 = e[t].x0 + e[t].dx;
+ }
+ hXe.exports = function(e, t, r, n, i) {
+ var a = e._context.staticPlot, o = false;
+ w1.ensureSingle(e._fullLayout._infolayer, "g", "first-render", function() {
+ o = true;
+ });
+ var s = e._fullLayout._dragCover, l = r.filter(function(b) {
+ return sXe(b).trace.visible;
+ }).map(tYt.bind(null, n)), u = t.selectAll("." + Nu.cn.sankey).data(l, oC);
+ u.exit().remove(), u.enter().append("g").classed(Nu.cn.sankey, true).style("box-sizing", "content-box").style("position", "absolute").style("left", 0).style("shape-rendering", "geometricPrecision").style("pointer-events", a ? "none" : "auto").attr("transform", nXe), u.each(function(b, p) {
+ e._fullData[p]._sankey = b;
+ var k = "bgsankey-" + b.trace.uid + "-" + p;
+ w1.ensureSingle(e._fullLayout._draggers, "rect", k), e._fullData[p]._bgRect = O5.select("." + k), e._fullData[p]._bgRect.style("pointer-events", a ? "none" : "all").attr("width", b.width).attr("height", b.height).attr("x", b.translateX).attr("y", b.translateY).classed("bgsankey", true).style({ fill: "transparent", "stroke-width": 0 });
+ }), u.transition().ease(Nu.ease).duration(Nu.duration).attr("transform", nXe);
+ var c = u.selectAll("." + Nu.cn.sankeyLinks).data(P7, oC);
+ c.enter().append("g").classed(Nu.cn.sankeyLinks, true).style("fill", "none");
+ var f = c.selectAll("." + Nu.cn.sankeyLink).data(function(b) {
+ var p = b.graph.links;
+ return p.filter(function(k) {
+ return k.value;
+ }).map(rYt.bind(null, b));
+ }, oC);
+ f.enter().append("path").classed(Nu.cn.sankeyLink, true).call(aXe, u, i.linkEvents), f.style("stroke", function(b) {
+ return e$(b) ? gw.tinyRGB(q5(b.linkLineColor)) : b.tinyColorHue;
+ }).style("stroke-opacity", function(b) {
+ return e$(b) ? gw.opacity(b.linkLineColor) : b.tinyColorAlpha;
+ }).style("fill", function(b) {
+ return b.tinyColorHue;
+ }).style("fill-opacity", function(b) {
+ return b.tinyColorAlpha;
+ }).style("stroke-width", function(b) {
+ return e$(b) ? b.linkLineWidth : 1;
+ }).attr("d", n$()), f.style("opacity", function() {
+ return e._context.staticPlot || o || s ? 1 : 0;
+ }).transition().ease(Nu.ease).duration(Nu.duration).style("opacity", 1), f.exit().transition().ease(Nu.ease).duration(Nu.duration).style("opacity", 0).remove();
+ var h = u.selectAll("." + Nu.cn.sankeyNodeSet).data(P7, oC);
+ h.enter().append("g").classed(Nu.cn.sankeyNodeSet, true), h.style("cursor", function(b) {
+ switch (b.arrangement) {
+ case "fixed":
+ return "default";
+ case "perpendicular":
+ return "ns-resize";
+ default:
+ return "move";
+ }
+ });
+ var d = h.selectAll("." + Nu.cn.sankeyNode).data(function(b) {
+ var p = b.graph.nodes;
+ return cYt(p), p.map(nYt.bind(null, b));
+ }, oC);
+ d.enter().append("g").classed(Nu.cn.sankeyNode, true).call(t$).style("opacity", function(b) {
+ return (e._context.staticPlot || o) && !b.partOfGroup ? 1 : 0;
+ }), d.call(aXe, u, i.nodeEvents).call(oYt, f, i, e), d.transition().ease(Nu.ease).duration(Nu.duration).call(t$).style("opacity", function(b) {
+ return b.partOfGroup ? 0 : 1;
+ }), d.exit().transition().ease(Nu.ease).duration(Nu.duration).style("opacity", 0).remove();
+ var v = d.selectAll("." + Nu.cn.nodeRect).data(P7);
+ v.enter().append("rect").classed(Nu.cn.nodeRect, true).call(iXe), v.style("stroke-width", function(b) {
+ return b.nodeLineWidth;
+ }).style("stroke", function(b) {
+ return gw.tinyRGB(q5(b.nodeLineColor));
+ }).style("stroke-opacity", function(b) {
+ return gw.opacity(b.nodeLineColor);
+ }).style("fill", function(b) {
+ return b.tinyColorHue;
+ }).style("fill-opacity", function(b) {
+ return b.tinyColorAlpha;
+ }), v.transition().ease(Nu.ease).duration(Nu.duration).call(iXe);
+ var _ = d.selectAll("." + Nu.cn.nodeLabel).data(P7);
+ _.enter().append("text").classed(Nu.cn.nodeLabel, true).style("cursor", "default"), _.attr("data-notex", 1).text(function(b) {
+ return b.node.label;
+ }).each(function(b) {
+ var p = O5.select(this);
+ YZt.font(p, b.textFont), rXe.convertToTspans(p, e);
+ }).attr("text-anchor", function(b) {
+ return b.horizontal && b.left ? "end" : "start";
+ }).attr("transform", function(b) {
+ var p = O5.select(this), k = rXe.lineCount(p), E = b.textFont.size * ((k - 1) * QZt - $Zt), T = b.nodeLineWidth / 2 + eYt, L = ((b.horizontal ? b.visibleHeight : b.visibleWidth) - E) / 2;
+ b.horizontal && (b.left ? T = -T : T += b.visibleWidth);
+ var x = b.horizontal ? "" : "scale(-1,1)" + KZt(90);
+ return r$(b.horizontal ? T : L, b.horizontal ? L : T) + x;
+ }), _.transition().ease(Nu.ease).duration(Nu.duration);
+ };
+ });
+ var s$ = ye((v2r, wXe) => {
+ var Zv = Oa(), o$ = Dr(), I7 = o$.numberFormat, dYt = dXe(), B5 = vf(), vYt = ka(), Dx = QJ().cn, sC = o$._;
+ function vXe(e) {
+ return e !== "";
+ }
+ function N5(e, t) {
+ return e.filter(function(r) {
+ return r.key === t.traceId;
+ });
+ }
+ function pXe(e, t) {
+ Zv.select(e).select("path").style("fill-opacity", t), Zv.select(e).select("rect").style("fill-opacity", t);
+ }
+ function gXe(e) {
+ Zv.select(e).select("text.name").style("fill", "black");
+ }
+ function mXe(e) {
+ return function(t) {
+ return e.node.sourceLinks.indexOf(t.link) !== -1 || e.node.targetLinks.indexOf(t.link) !== -1;
+ };
+ }
+ function yXe(e) {
+ return function(t) {
+ return t.node.sourceLinks.indexOf(e.link) !== -1 || t.node.targetLinks.indexOf(e.link) !== -1;
+ };
+ }
+ function _Xe(e, t, r) {
+ t && r && N5(r, t).selectAll("." + Dx.sankeyLink).filter(mXe(t)).call(xXe.bind(0, t, r, false));
+ }
+ function a$(e, t, r) {
+ t && r && N5(r, t).selectAll("." + Dx.sankeyLink).filter(mXe(t)).call(bXe.bind(0, t, r, false));
+ }
+ function xXe(e, t, r, n) {
+ n.style("fill", function(i) {
+ if (!i.link.concentrationscale) return i.tinyColorHoverHue;
+ }).style("fill-opacity", function(i) {
+ if (!i.link.concentrationscale) return i.tinyColorHoverAlpha;
+ }), n.each(function(i) {
+ var a = i.link.label;
+ a !== "" && N5(t, e).selectAll("." + Dx.sankeyLink).filter(function(o) {
+ return o.link.label === a;
+ }).style("fill", function(o) {
+ if (!o.link.concentrationscale) return o.tinyColorHoverHue;
+ }).style("fill-opacity", function(o) {
+ if (!o.link.concentrationscale) return o.tinyColorHoverAlpha;
+ });
+ }), r && N5(t, e).selectAll("." + Dx.sankeyNode).filter(yXe(e)).call(_Xe);
+ }
+ function bXe(e, t, r, n) {
+ n.style("fill", function(i) {
+ return i.tinyColorHue;
+ }).style("fill-opacity", function(i) {
+ return i.tinyColorAlpha;
+ }), n.each(function(i) {
+ var a = i.link.label;
+ a !== "" && N5(t, e).selectAll("." + Dx.sankeyLink).filter(function(o) {
+ return o.link.label === a;
+ }).style("fill", function(o) {
+ return o.tinyColorHue;
+ }).style("fill-opacity", function(o) {
+ return o.tinyColorAlpha;
+ });
+ }), r && N5(t, e).selectAll(Dx.sankeyNode).filter(yXe(e)).call(a$);
+ }
+ function kf(e, t) {
+ var r = e.hoverlabel || {}, n = o$.nestedProperty(r, t).get();
+ return Array.isArray(n) ? false : n;
+ }
+ wXe.exports = function(t, r) {
+ for (var n = t._fullLayout, i = n._paper, a = n._size, o = 0; o < t._fullData.length; o++) if (t._fullData[o].visible && t._fullData[o].type === Dx.sankey && !t._fullData[o]._viewInitial) {
+ var s = t._fullData[o].node;
+ t._fullData[o]._viewInitial = { node: { groups: s.groups.slice(), x: s.x.slice(), y: s.y.slice() } };
+ }
+ var l = function(L, x) {
+ var C = x.link;
+ C.originalEvent = Zv.event, t._hoverdata = [C], B5.click(t, { target: true });
+ }, u = function(L, x, C) {
+ t._fullLayout.hovermode !== false && (Zv.select(L).call(xXe.bind(0, x, C, true)), x.link.trace.link.hoverinfo !== "skip" && (x.link.fullData = x.link.trace, t.emit("plotly_hover", { event: Zv.event, points: [x.link] })));
+ }, c = sC(t, "source:") + " ", f = sC(t, "target:") + " ", h = sC(t, "concentration:") + " ", d = sC(t, "incoming flow count:") + " ", v = sC(t, "outgoing flow count:") + " ", _ = function(L, x) {
+ if (t._fullLayout.hovermode === false) return;
+ var C = x.link.trace.link;
+ if (C.hoverinfo === "none" || C.hoverinfo === "skip") return;
+ var M = [];
+ function g(Z) {
+ var j, N;
+ Z.circular ? (j = (Z.circularPathData.leftInnerExtent + Z.circularPathData.rightInnerExtent) / 2, N = Z.circularPathData.verticalFullExtent) : (j = (Z.source.x1 + Z.target.x0) / 2, N = (Z.y0 + Z.y1) / 2);
+ var H = [j, N];
+ return Z.trace.orientation === "v" && H.reverse(), H[0] += x.parent.translateX, H[1] += x.parent.translateY, H;
+ }
+ for (var P = 0, A = 0; A < x.flow.links.length; A++) {
+ var z = x.flow.links[A];
+ if (!(t._fullLayout.hovermode === "closest" && x.link.pointNumber !== z.pointNumber)) {
+ x.link.pointNumber === z.pointNumber && (P = A), z.fullData = z.trace, C = x.link.trace.link;
+ var O = g(z), U = { valueLabel: I7(x.valueFormat)(z.value) + x.valueSuffix };
+ M.push({ x: O[0], y: O[1], name: U.valueLabel, text: [z.label || "", c + z.source.label, f + z.target.label, z.concentrationscale ? h + I7("%0.2f")(z.flow.labelConcentration) : ""].filter(vXe).join(" "), color: kf(C, "bgcolor") || vYt.addOpacity(z.color, 1), borderColor: kf(C, "bordercolor"), fontFamily: kf(C, "font.family"), fontSize: kf(C, "font.size"), fontColor: kf(C, "font.color"), fontWeight: kf(C, "font.weight"), fontStyle: kf(C, "font.style"), fontVariant: kf(C, "font.variant"), fontTextcase: kf(C, "font.textcase"), fontLineposition: kf(C, "font.lineposition"), fontShadow: kf(C, "font.shadow"), nameLength: kf(C, "namelength"), textAlign: kf(C, "align"), idealAlign: Zv.event.x < O[0] ? "right" : "left", hovertemplate: C.hovertemplate, hovertemplateLabels: U, eventData: [z] });
+ }
+ }
+ var G = B5.loneHover(M, { container: n._hoverlayer.node(), outerContainer: n._paper.node(), gd: t, anchorIndex: P });
+ G.each(function() {
+ var Z = this;
+ x.link.concentrationscale || pXe(Z, 0.65), gXe(Z);
+ });
+ }, b = function(L, x, C) {
+ t._fullLayout.hovermode !== false && (Zv.select(L).call(bXe.bind(0, x, C, true)), x.link.trace.link.hoverinfo !== "skip" && (x.link.fullData = x.link.trace, t.emit("plotly_unhover", { event: Zv.event, points: [x.link] })), B5.loneUnhover(n._hoverlayer.node()));
+ }, p = function(L, x, C) {
+ var M = x.node;
+ M.originalEvent = Zv.event, t._hoverdata = [M], Zv.select(L).call(a$, x, C), B5.click(t, { target: true });
+ }, k = function(L, x, C) {
+ t._fullLayout.hovermode !== false && (Zv.select(L).call(_Xe, x, C), x.node.trace.node.hoverinfo !== "skip" && (x.node.fullData = x.node.trace, t.emit("plotly_hover", { event: Zv.event, points: [x.node] })));
+ }, E = function(L, x) {
+ if (t._fullLayout.hovermode !== false) {
+ var C = x.node.trace.node;
+ if (!(C.hoverinfo === "none" || C.hoverinfo === "skip")) {
+ var M = Zv.select(L).select("." + Dx.nodeRect), g = t._fullLayout._paperdiv.node().getBoundingClientRect(), P = M.node().getBoundingClientRect(), A = P.left - 2 - g.left, z = P.right + 2 - g.left, O = P.top + P.height / 4 - g.top, U = { valueLabel: I7(x.valueFormat)(x.node.value) + x.valueSuffix };
+ x.node.fullData = x.node.trace, t._fullLayout._calcInverseTransform(t);
+ var G = t._fullLayout._invScaleX, Z = t._fullLayout._invScaleY, j = B5.loneHover({ x0: G * A, x1: G * z, y: Z * O, name: I7(x.valueFormat)(x.node.value) + x.valueSuffix, text: [x.node.label, d + x.node.targetLinks.length, v + x.node.sourceLinks.length].filter(vXe).join(" "), color: kf(C, "bgcolor") || x.tinyColorHue, borderColor: kf(C, "bordercolor"), fontFamily: kf(C, "font.family"), fontSize: kf(C, "font.size"), fontColor: kf(C, "font.color"), fontWeight: kf(C, "font.weight"), fontStyle: kf(C, "font.style"), fontVariant: kf(C, "font.variant"), fontTextcase: kf(C, "font.textcase"), fontLineposition: kf(C, "font.lineposition"), fontShadow: kf(C, "font.shadow"), nameLength: kf(C, "namelength"), textAlign: kf(C, "align"), idealAlign: "left", hovertemplate: C.hovertemplate, hovertemplateLabels: U, eventData: [x.node] }, { container: n._hoverlayer.node(), outerContainer: n._paper.node(), gd: t });
+ pXe(j, 0.85), gXe(j);
+ }
+ }
+ }, T = function(L, x, C) {
+ t._fullLayout.hovermode !== false && (Zv.select(L).call(a$, x, C), x.node.trace.node.hoverinfo !== "skip" && (x.node.fullData = x.node.trace, t.emit("plotly_unhover", { event: Zv.event, points: [x.node] })), B5.loneUnhover(n._hoverlayer.node()));
+ };
+ dYt(t, i, r, { width: a.w, height: a.h, margin: { t: a.t, r: a.r, b: a.b, l: a.l } }, { linkEvents: { hover: u, follow: _, unhover: b, select: l }, nodeEvents: { hover: k, follow: E, unhover: T, select: p } });
+ };
+ });
+ var TXe = ye((mw) => {
+ var pYt = mc().overrideAll, gYt = Id().getModuleCalcData, mYt = s$(), yYt = W1(), _Yt = Eg(), xYt = yv(), bYt = Of().prepSelect, l$ = Dr(), wYt = qa(), R7 = "sankey";
+ mw.name = R7;
+ mw.baseLayoutAttrOverrides = pYt({ hoverlabel: yYt.hoverlabel }, "plot", "nested");
+ mw.plot = function(e) {
+ var t = gYt(e.calcdata, R7)[0];
+ mYt(e, t), mw.updateFx(e);
+ };
+ mw.clean = function(e, t, r, n) {
+ var i = n._has && n._has(R7), a = t._has && t._has(R7);
+ i && !a && (n._paperdiv.selectAll(".sankey").remove(), n._paperdiv.selectAll(".bgsankey").remove());
+ };
+ mw.updateFx = function(e) {
+ for (var t = 0; t < e._fullData.length; t++) TYt(e, t);
+ };
+ function TYt(e, t) {
+ var r = e._fullData[t], n = e._fullLayout, i = n.dragmode, a = n.dragmode === "pan" ? "move" : "crosshair", o = r._bgRect;
+ if (o && !(i === "pan" || i === "zoom")) {
+ _Yt(o, a);
+ var s = { _id: "x", c2p: l$.identity, _offset: r._sankey.translateX, _length: r._sankey.width }, l = { _id: "y", c2p: l$.identity, _offset: r._sankey.translateY, _length: r._sankey.height }, u = { gd: e, element: o.node(), plotinfo: { id: t, xaxis: s, yaxis: l, fillRangeItems: l$.noop }, subplot: t, xaxes: [s], yaxes: [l], doneFnCompleted: function(c) {
+ var f = e._fullData[t], h, d = f.node.groups.slice(), v = [];
+ function _(E) {
+ for (var T = f._sankey.graph.nodes, L = 0; L < T.length; L++) if (T[L].pointNumber === E) return T[L];
+ }
+ for (var b = 0; b < c.length; b++) {
+ var p = _(c[b].pointNumber);
+ if (p) if (p.group) {
+ for (var k = 0; k < p.childrenNodes.length; k++) v.push(p.childrenNodes[k].pointNumber);
+ d[p.pointNumber - f.node._count] = false;
+ } else v.push(p.pointNumber);
+ }
+ h = d.filter(Boolean).concat([v]), wYt.call("_guiRestyle", e, { "node.groups": [h] }, t);
+ } };
+ u.prepFn = function(c, f, h) {
+ bYt(c, f, h, u, i);
+ }, xYt.init(u);
+ }
+ }
+ });
+ var SXe = ye((g2r, AXe) => {
+ AXe.exports = function(t, r) {
+ for (var n = t.cd, i = [], a = n[0].trace, o = a._sankey.graph.nodes, s = 0; s < o.length; s++) {
+ var l = o[s];
+ if (!l.partOfGroup) {
+ var u = [(l.x0 + l.x1) / 2, (l.y0 + l.y1) / 2];
+ a.orientation === "v" && u.reverse(), r && r.contains(u, false, s, t) && i.push({ pointNumber: l.pointNumber });
+ }
+ }
+ return i;
+ };
+ });
+ var EXe = ye((m2r, MXe) => {
+ MXe.exports = { attributes: KJ(), supplyDefaults: LWe(), calc: FWe(), plot: s$(), moduleType: "trace", name: "sankey", basePlotModule: TXe(), selectPoints: SXe(), categories: ["noOpacity"], meta: {} };
+ });
+ var CXe = ye((y2r, kXe) => {
+ kXe.exports = EXe();
+ });
+ var PXe = ye((U5) => {
+ var LXe = Mc();
+ U5.name = "indicator";
+ U5.plot = function(e, t, r, n) {
+ LXe.plotBasePlot(U5.name, e, t, r, n);
+ };
+ U5.clean = function(e, t, r, n) {
+ LXe.cleanBasePlot(U5.name, e, t, r, n);
+ };
+ });
+ var c$ = ye((x2r, OXe) => {
+ var Fx = Ao().extendFlat, RXe = Ao().extendDeep, AYt = mc().overrideAll, DXe = ec(), FXe = Ih(), SYt = Cc().attributes, Nf = Rd(), MYt = vl().templatedArray, D7 = JT(), IXe = df().descriptionOnlyNumbers, u$ = DXe({ editType: "plot", colorEditType: "plot" }), lC = { color: { valType: "color", editType: "plot" }, line: { color: { valType: "color", dflt: FXe.defaultLine, editType: "plot" }, width: { valType: "number", min: 0, dflt: 0, editType: "plot" }, editType: "calc" }, thickness: { valType: "number", min: 0, max: 1, dflt: 1, editType: "plot" }, editType: "calc" }, zXe = { valType: "info_array", items: [{ valType: "number", editType: "plot" }, { valType: "number", editType: "plot" }], editType: "plot" }, EYt = MYt("step", RXe({}, lC, { range: zXe }));
+ OXe.exports = { mode: { valType: "flaglist", editType: "calc", flags: ["number", "delta", "gauge"], dflt: "number" }, value: { valType: "number", editType: "calc", anim: true }, align: { valType: "enumerated", values: ["left", "center", "right"], editType: "plot" }, domain: SYt({ name: "indicator", trace: true, editType: "calc" }), title: { text: { valType: "string", editType: "plot" }, align: { valType: "enumerated", values: ["left", "center", "right"], editType: "plot" }, font: Fx({}, u$, {}), editType: "plot" }, number: { valueformat: { valType: "string", dflt: "", editType: "plot", description: IXe("value") }, font: Fx({}, u$, {}), prefix: { valType: "string", dflt: "", editType: "plot" }, suffix: { valType: "string", dflt: "", editType: "plot" }, editType: "plot" }, delta: { reference: { valType: "number", editType: "calc" }, position: { valType: "enumerated", values: ["top", "bottom", "left", "right"], dflt: "bottom", editType: "plot" }, relative: { valType: "boolean", editType: "plot", dflt: false }, valueformat: { valType: "string", editType: "plot", description: IXe("value") }, increasing: { symbol: { valType: "string", dflt: D7.INCREASING.SYMBOL, editType: "plot" }, color: { valType: "color", dflt: D7.INCREASING.COLOR, editType: "plot" }, editType: "plot" }, decreasing: { symbol: { valType: "string", dflt: D7.DECREASING.SYMBOL, editType: "plot" }, color: { valType: "color", dflt: D7.DECREASING.COLOR, editType: "plot" }, editType: "plot" }, font: Fx({}, u$, {}), prefix: { valType: "string", dflt: "", editType: "plot" }, suffix: { valType: "string", dflt: "", editType: "plot" }, editType: "calc" }, gauge: { shape: { valType: "enumerated", editType: "plot", dflt: "angular", values: ["angular", "bullet"] }, bar: RXe({}, lC, { color: { dflt: "green" } }), bgcolor: { valType: "color", editType: "plot" }, bordercolor: { valType: "color", dflt: FXe.defaultLine, editType: "plot" }, borderwidth: { valType: "number", min: 0, dflt: 1, editType: "plot" }, axis: AYt({ range: zXe, visible: Fx({}, Nf.visible, { dflt: true }), tickmode: Nf.minor.tickmode, nticks: Nf.nticks, tick0: Nf.tick0, dtick: Nf.dtick, tickvals: Nf.tickvals, ticktext: Nf.ticktext, ticks: Fx({}, Nf.ticks, { dflt: "outside" }), ticklen: Nf.ticklen, tickwidth: Nf.tickwidth, tickcolor: Nf.tickcolor, ticklabelstep: Nf.ticklabelstep, showticklabels: Nf.showticklabels, labelalias: Nf.labelalias, tickfont: DXe({}), tickangle: Nf.tickangle, tickformat: Nf.tickformat, tickformatstops: Nf.tickformatstops, tickprefix: Nf.tickprefix, showtickprefix: Nf.showtickprefix, ticksuffix: Nf.ticksuffix, showticksuffix: Nf.showticksuffix, separatethousands: Nf.separatethousands, exponentformat: Nf.exponentformat, minexponent: Nf.minexponent, showexponent: Nf.showexponent, editType: "plot" }, "plot"), steps: EYt, threshold: { line: { color: Fx({}, lC.line.color, {}), width: Fx({}, lC.line.width, { dflt: 1 }), editType: "plot" }, thickness: Fx({}, lC.thickness, { dflt: 0.85 }), value: { valType: "number", editType: "calc", dflt: false }, editType: "plot" }, editType: "plot" } };
+ });
+ var f$ = ye((b2r, qXe) => {
+ qXe.exports = { defaultNumberFontSize: 80, bulletNumberDomainSize: 0.25, bulletPadding: 0.025, innerRadius: 0.75, valueThickness: 0.5, titlePadding: 5, horizontalPadding: 10 };
+ });
+ var UXe = ye((w2r, NXe) => {
+ var sy = Dr(), z7 = c$(), kYt = Cc().defaults, BXe = vl(), CYt = Zd(), F7 = f$(), LYt = Lb(), PYt = F3(), IYt = s_(), RYt = l_();
+ function DYt(e, t, r, n) {
+ function i(x, C) {
+ return sy.coerce(e, t, z7, x, C);
+ }
+ kYt(t, n, i), i("mode"), t._hasNumber = t.mode.indexOf("number") !== -1, t._hasDelta = t.mode.indexOf("delta") !== -1, t._hasGauge = t.mode.indexOf("gauge") !== -1;
+ var a = i("value");
+ t._range = [0, typeof a == "number" ? 1.5 * a : 1];
+ var o = new Array(2), s;
+ if (t._hasNumber) {
+ i("number.valueformat");
+ var l = sy.extendFlat({}, n.font);
+ l.size = void 0, sy.coerceFont(i, "number.font", l), t.number.font.size === void 0 && (t.number.font.size = F7.defaultNumberFontSize, o[0] = true), i("number.prefix"), i("number.suffix"), s = t.number.font.size;
+ }
+ var u;
+ if (t._hasDelta) {
+ var c = sy.extendFlat({}, n.font);
+ c.size = void 0, sy.coerceFont(i, "delta.font", c), t.delta.font.size === void 0 && (t.delta.font.size = (t._hasNumber ? 0.5 : 1) * (s || F7.defaultNumberFontSize), o[1] = true), i("delta.reference", t.value), i("delta.relative"), i("delta.valueformat", t.delta.relative ? "2%" : ""), i("delta.increasing.symbol"), i("delta.increasing.color"), i("delta.decreasing.symbol"), i("delta.decreasing.color"), i("delta.position"), i("delta.prefix"), i("delta.suffix"), u = t.delta.font.size;
+ }
+ t._scaleNumbers = (!t._hasNumber || o[0]) && (!t._hasDelta || o[1]) || false;
+ var f = sy.extendFlat({}, n.font);
+ f.size = 0.25 * (s || u || F7.defaultNumberFontSize), sy.coerceFont(i, "title.font", f), i("title.text");
+ var h, d, v, _;
+ function b(x, C) {
+ return sy.coerce(h, d, z7.gauge, x, C);
+ }
+ function p(x, C) {
+ return sy.coerce(v, _, z7.gauge.axis, x, C);
+ }
+ if (t._hasGauge) {
+ h = e.gauge, h || (h = {}), d = BXe.newContainer(t, "gauge"), b("shape");
+ var k = t._isBullet = t.gauge.shape === "bullet";
+ k || i("title.align", "center");
+ var E = t._isAngular = t.gauge.shape === "angular";
+ E || i("align", "center"), b("bgcolor", n.paper_bgcolor), b("borderwidth"), b("bordercolor"), b("bar.color"), b("bar.line.color"), b("bar.line.width");
+ var T = F7.valueThickness * (t.gauge.shape === "bullet" ? 0.5 : 1);
+ b("bar.thickness", T), CYt(h, d, { name: "steps", handleItemDefaults: FYt }), b("threshold.value"), b("threshold.thickness"), b("threshold.line.width"), b("threshold.line.color"), v = {}, h && (v = h.axis || {}), _ = BXe.newContainer(d, "axis"), p("visible"), t._range = p("range", t._range);
+ var L = { font: n.font, noAutotickangles: true, outerTicks: true, noTicklabelshift: true, noTicklabelstandoff: true };
+ LYt(v, _, p, "linear"), RYt(v, _, p, "linear", L), IYt(v, _, p, "linear", L), PYt(v, _, p, L);
+ } else i("title.align", "center"), i("align", "center"), t._isAngular = t._isBullet = false;
+ t._length = null;
+ }
+ function FYt(e, t) {
+ function r(n, i) {
+ return sy.coerce(e, t, z7.gauge.steps, n, i);
+ }
+ r("color"), r("line.color"), r("line.width"), r("range"), r("thickness");
+ }
+ NXe.exports = { supplyDefaults: DYt };
+ });
+ var GXe = ye((T2r, VXe) => {
+ function zYt(e, t) {
+ var r = [], n = t.value;
+ typeof t._lastValue != "number" && (t._lastValue = t.value);
+ var i = t._lastValue, a = i;
+ return t._hasDelta && typeof t.delta.reference == "number" && (a = t.delta.reference), r[0] = { y: n, lastY: i, delta: n - a, relativeDelta: (n - a) / a }, r;
+ }
+ VXe.exports = { calc: zYt };
+ });
+ var YXe = ye((A2r, ZXe) => {
+ var ww = Oa(), OYt = (H2(), pb(G2)).interpolate, HXe = (H2(), pb(G2)).interpolateNumber, zx = Dr(), qYt = zx.strScale, cC = zx.strTranslate, BYt = zx.rad2deg, NYt = Dh().MID_SHIFT, bw = So(), yw = f$(), q7 = Zl(), sv = ho(), UYt = f4(), VYt = dI(), GYt = Rd(), V5 = ka(), h$ = { left: "start", center: "middle", right: "end" }, _w = { left: 0, center: 0.5, right: 1 }, jXe = /[yzafpnµmkMGTPEZY]/;
+ function fC(e) {
+ return e && e.duration > 0;
+ }
+ ZXe.exports = function(t, r, n, i) {
+ var a = t._fullLayout, o;
+ fC(n) && i && (o = i()), zx.makeTraceGroups(a._indicatorlayer, r, "trace").each(function(s) {
+ var l = s[0], u = l.trace, c = ww.select(this), f = u._hasGauge, h = u._isAngular, d = u._isBullet, v = u.domain, _ = { w: a._size.w * (v.x[1] - v.x[0]), h: a._size.h * (v.y[1] - v.y[0]), l: a._size.l + a._size.w * v.x[0], r: a._size.r + a._size.w * (1 - v.x[1]), t: a._size.t + a._size.h * (1 - v.y[1]), b: a._size.b + a._size.h * v.y[0] }, b = _.l + _.w / 2, p = _.t + _.h / 2, k = Math.min(_.w / 2, _.h), E = yw.innerRadius * k, T, L, x, C = u.align || "center";
+ if (L = p, !f) T = _.l + _w[C] * _.w, x = function(j) {
+ return WXe(j, _.w, _.h);
+ };
+ else if (h && (T = b, L = p + k / 2, x = function(j) {
+ return ZYt(j, 0.9 * E);
+ }), d) {
+ var M = yw.bulletPadding, g = 1 - yw.bulletNumberDomainSize + M;
+ T = _.l + (g + (1 - g) * _w[C]) * _.w, x = function(j) {
+ return WXe(j, (yw.bulletNumberDomainSize - M) * _.w, _.h);
+ };
+ }
+ WYt(t, c, s, { numbersX: T, numbersY: L, numbersScaler: x, transitionOpts: n, onComplete: o });
+ var P, A;
+ f && (P = { range: u.gauge.axis.range, color: u.gauge.bgcolor, line: { color: u.gauge.bordercolor, width: 0 }, thickness: 1 }, A = { range: u.gauge.axis.range, color: "rgba(0, 0, 0, 0)", line: { color: u.gauge.bordercolor, width: u.gauge.borderwidth }, thickness: 1 });
+ var z = c.selectAll("g.angular").data(h ? s : []);
+ z.exit().remove();
+ var O = c.selectAll("g.angularaxis").data(h ? s : []);
+ O.exit().remove(), h && jYt(t, c, s, { radius: k, innerRadius: E, gauge: z, layer: O, size: _, gaugeBg: P, gaugeOutline: A, transitionOpts: n, onComplete: o });
+ var U = c.selectAll("g.bullet").data(d ? s : []);
+ U.exit().remove();
+ var G = c.selectAll("g.bulletaxis").data(d ? s : []);
+ G.exit().remove(), d && HYt(t, c, s, { gauge: U, layer: G, size: _, gaugeBg: P, gaugeOutline: A, transitionOpts: n, onComplete: o });
+ var Z = c.selectAll("text.title").data(s);
+ Z.exit().remove(), Z.enter().append("text").classed("title", true), Z.attr("text-anchor", function() {
+ return d ? h$.right : h$[u.title.align];
+ }).text(u.title.text).call(bw.font, u.title.font).call(q7.convertToTspans, t), Z.attr("transform", function() {
+ var j = _.l + _.w * _w[u.title.align], N, H = yw.titlePadding, re = bw.bBox(Z.node());
+ if (f) {
+ if (h) if (u.gauge.axis.visible) {
+ var oe = bw.bBox(O.node());
+ N = oe.top - H - re.bottom;
+ } else N = _.t + _.h / 2 - k / 2 - re.bottom - H;
+ d && (N = L - (re.top + re.bottom) / 2, j = _.l - yw.bulletPadding * _.w);
+ } else N = u._numbersTop - H - re.bottom;
+ return cC(j, N);
+ });
+ });
+ };
+ function HYt(e, t, r, n) {
+ var i = r[0].trace, a = n.gauge, o = n.layer, s = n.gaugeBg, l = n.gaugeOutline, u = n.size, c = i.domain, f = n.transitionOpts, h = n.onComplete, d, v, _, b, p;
+ a.enter().append("g").classed("bullet", true), a.attr("transform", cC(u.l, u.t)), o.enter().append("g").classed("bulletaxis", true).classed("crisp", true), o.selectAll("g.xbulletaxistick,path,text").remove();
+ var k = u.h, E = i.gauge.bar.thickness * k, T = c.x[0], L = c.x[0] + (c.x[1] - c.x[0]) * (i._hasNumber || i._hasDelta ? 1 - yw.bulletNumberDomainSize : 1);
+ d = uC(e, i.gauge.axis), d._id = "xbulletaxis", d.domain = [T, L], d.setScale(), v = sv.calcTicks(d), _ = sv.makeTransTickFn(d), b = sv.getTickSigns(d)[2], p = u.t + u.h, d.visible && (sv.drawTicks(e, d, { vals: d.ticks === "inside" ? sv.clipEnds(d, v) : v, layer: o, path: sv.makeTickPath(d, p, b), transFn: _ }), sv.drawLabels(e, d, { vals: v, layer: o, transFn: _, labelFns: sv.makeLabelFns(d, p) }));
+ function x(O) {
+ O.attr("width", function(U) {
+ return Math.max(0, d.c2p(U.range[1]) - d.c2p(U.range[0]));
+ }).attr("x", function(U) {
+ return d.c2p(U.range[0]);
+ }).attr("y", function(U) {
+ return 0.5 * (1 - U.thickness) * k;
+ }).attr("height", function(U) {
+ return U.thickness * k;
+ });
+ }
+ var C = [s].concat(i.gauge.steps), M = a.selectAll("g.bg-bullet").data(C);
+ M.enter().append("g").classed("bg-bullet", true).append("rect"), M.select("rect").call(x).call(xw), M.exit().remove();
+ var g = a.selectAll("g.value-bullet").data([i.gauge.bar]);
+ g.enter().append("g").classed("value-bullet", true).append("rect"), g.select("rect").attr("height", E).attr("y", (k - E) / 2).call(xw), fC(f) ? g.select("rect").transition().duration(f.duration).ease(f.easing).each("end", function() {
+ h && h();
+ }).each("interrupt", function() {
+ h && h();
+ }).attr("width", Math.max(0, d.c2p(Math.min(i.gauge.axis.range[1], r[0].y)))) : g.select("rect").attr("width", typeof r[0].y == "number" ? Math.max(0, d.c2p(Math.min(i.gauge.axis.range[1], r[0].y))) : 0), g.exit().remove();
+ var P = r.filter(function() {
+ return i.gauge.threshold.value || i.gauge.threshold.value === 0;
+ }), A = a.selectAll("g.threshold-bullet").data(P);
+ A.enter().append("g").classed("threshold-bullet", true).append("line"), A.select("line").attr("x1", d.c2p(i.gauge.threshold.value)).attr("x2", d.c2p(i.gauge.threshold.value)).attr("y1", (1 - i.gauge.threshold.thickness) / 2 * k).attr("y2", (1 - (1 - i.gauge.threshold.thickness) / 2) * k).call(V5.stroke, i.gauge.threshold.line.color).style("stroke-width", i.gauge.threshold.line.width), A.exit().remove();
+ var z = a.selectAll("g.gauge-outline").data([l]);
+ z.enter().append("g").classed("gauge-outline", true).append("rect"), z.select("rect").call(x).call(xw), z.exit().remove();
+ }
+ function jYt(e, t, r, n) {
+ var i = r[0].trace, a = n.size, o = n.radius, s = n.innerRadius, l = n.gaugeBg, u = n.gaugeOutline, c = [a.l + a.w / 2, a.t + a.h / 2 + o / 2], f = n.gauge, h = n.layer, d = n.transitionOpts, v = n.onComplete, _ = Math.PI / 2;
+ function b(_e) {
+ var Ce = i.gauge.axis.range[0], Le = i.gauge.axis.range[1], ge = (_e - Ce) / (Le - Ce) * Math.PI - _;
+ return ge < -_ ? -_ : ge > _ ? _ : ge;
+ }
+ function p(_e) {
+ return ww.svg.arc().innerRadius((s + o) / 2 - _e / 2 * (o - s)).outerRadius((s + o) / 2 + _e / 2 * (o - s)).startAngle(-_);
+ }
+ function k(_e) {
+ _e.attr("d", function(Ce) {
+ return p(Ce.thickness).startAngle(b(Ce.range[0])).endAngle(b(Ce.range[1]))();
+ });
+ }
+ var E, T, L, x;
+ f.enter().append("g").classed("angular", true), f.attr("transform", cC(c[0], c[1])), h.enter().append("g").classed("angularaxis", true).classed("crisp", true), h.selectAll("g.xangularaxistick,path,text").remove(), E = uC(e, i.gauge.axis), E.type = "linear", E.range = i.gauge.axis.range, E._id = "xangularaxis", E.ticklabeloverflow = "allow", E.setScale();
+ var C = function(_e) {
+ return (E.range[0] - _e.x) / (E.range[1] - E.range[0]) * Math.PI + Math.PI;
+ }, M = {}, g = sv.makeLabelFns(E, 0), P = g.labelStandoff;
+ M.xFn = function(_e) {
+ var Ce = C(_e);
+ return Math.cos(Ce) * P;
+ }, M.yFn = function(_e) {
+ var Ce = C(_e), Le = Math.sin(Ce) > 0 ? 0.2 : 1;
+ return -Math.sin(Ce) * (P + _e.fontSize * Le) + Math.abs(Math.cos(Ce)) * (_e.fontSize * NYt);
+ }, M.anchorFn = function(_e) {
+ var Ce = C(_e), Le = Math.cos(Ce);
+ return Math.abs(Le) < 0.1 ? "middle" : Le > 0 ? "start" : "end";
+ }, M.heightFn = function(_e, Ce, Le) {
+ var ge = C(_e);
+ return -0.5 * (1 + Math.sin(ge)) * Le;
+ };
+ var A = function(_e) {
+ return cC(c[0] + o * Math.cos(_e), c[1] - o * Math.sin(_e));
+ };
+ L = function(_e) {
+ return A(C(_e));
+ };
+ var z = function(_e) {
+ var Ce = C(_e);
+ return A(Ce) + "rotate(" + -BYt(Ce) + ")";
+ };
+ if (T = sv.calcTicks(E), x = sv.getTickSigns(E)[2], E.visible) {
+ x = E.ticks === "inside" ? -1 : 1;
+ var O = (E.linewidth || 1) / 2;
+ sv.drawTicks(e, E, { vals: T, layer: h, path: "M" + x * O + ",0h" + x * E.ticklen, transFn: z }), sv.drawLabels(e, E, { vals: T, layer: h, transFn: L, labelFns: M });
+ }
+ var U = [l].concat(i.gauge.steps), G = f.selectAll("g.bg-arc").data(U);
+ G.enter().append("g").classed("bg-arc", true).append("path"), G.select("path").call(k).call(xw), G.exit().remove();
+ var Z = p(i.gauge.bar.thickness), j = f.selectAll("g.value-arc").data([i.gauge.bar]);
+ j.enter().append("g").classed("value-arc", true).append("path");
+ var N = j.select("path");
+ fC(d) ? (N.transition().duration(d.duration).ease(d.easing).each("end", function() {
+ v && v();
+ }).each("interrupt", function() {
+ v && v();
+ }).attrTween("d", XYt(Z, b(r[0].lastY), b(r[0].y))), i._lastValue = r[0].y) : N.attr("d", typeof r[0].y == "number" ? Z.endAngle(b(r[0].y)) : "M0,0Z"), N.call(xw), j.exit().remove(), U = [];
+ var H = i.gauge.threshold.value;
+ (H || H === 0) && U.push({ range: [H, H], color: i.gauge.threshold.color, line: { color: i.gauge.threshold.line.color, width: i.gauge.threshold.line.width }, thickness: i.gauge.threshold.thickness });
+ var re = f.selectAll("g.threshold-arc").data(U);
+ re.enter().append("g").classed("threshold-arc", true).append("path"), re.select("path").call(k).call(xw), re.exit().remove();
+ var oe = f.selectAll("g.gauge-outline").data([u]);
+ oe.enter().append("g").classed("gauge-outline", true).append("path"), oe.select("path").call(k).call(xw), oe.exit().remove();
+ }
+ function WYt(e, t, r, n) {
+ var i = r[0].trace, a = n.numbersX, o = n.numbersY, s = i.align || "center", l = h$[s], u = n.transitionOpts, c = n.onComplete, f = zx.ensureSingle(t, "g", "numbers"), h, d, v, _ = [];
+ i._hasNumber && _.push("number"), i._hasDelta && (_.push("delta"), i.delta.position === "left" && _.reverse());
+ var b = f.selectAll("text").data(_);
+ b.enter().append("text"), b.attr("text-anchor", function() {
+ return l;
+ }).attr("class", function(A) {
+ return A;
+ }).attr("x", null).attr("y", null).attr("dx", null).attr("dy", null), b.exit().remove();
+ function p(A, z, O, U) {
+ if (A.match("s") && O >= 0 != U >= 0 && !z(O).slice(-1).match(jXe) && !z(U).slice(-1).match(jXe)) {
+ var G = A.slice().replace("s", "f").replace(/\d+/, function(j) {
+ return parseInt(j) - 1;
+ }), Z = uC(e, { tickformat: G });
+ return function(j) {
+ return Math.abs(j) < 1 ? sv.tickText(Z, j).text : z(j);
+ };
+ } else return z;
+ }
+ function k() {
+ var A = uC(e, { tickformat: i.number.valueformat }, i._range);
+ A.setScale(), sv.prepTicks(A);
+ var z = function(j) {
+ return sv.tickText(A, j).text;
+ }, O = i.number.suffix, U = i.number.prefix, G = f.select("text.number");
+ function Z() {
+ var j = typeof r[0].y == "number" ? U + z(r[0].y) + O : "-";
+ G.text(j).call(bw.font, i.number.font).call(q7.convertToTspans, e);
+ }
+ return fC(u) ? G.transition().duration(u.duration).ease(u.easing).each("end", function() {
+ Z(), c && c();
+ }).each("interrupt", function() {
+ Z(), c && c();
+ }).attrTween("text", function() {
+ var j = ww.select(this), N = HXe(r[0].lastY, r[0].y);
+ i._lastValue = r[0].y;
+ var H = p(i.number.valueformat, z, r[0].lastY, r[0].y);
+ return function(re) {
+ j.text(U + H(N(re)) + O);
+ };
+ }) : Z(), h = XXe(U + z(r[0].y) + O, i.number.font, l, e), G;
+ }
+ function E() {
+ var A = uC(e, { tickformat: i.delta.valueformat }, i._range);
+ A.setScale(), sv.prepTicks(A);
+ var z = function(re) {
+ return sv.tickText(A, re).text;
+ }, O = i.delta.suffix, U = i.delta.prefix, G = function(re) {
+ var oe = i.delta.relative ? re.relativeDelta : re.delta;
+ return oe;
+ }, Z = function(re, oe) {
+ return re === 0 || typeof re != "number" || isNaN(re) ? "-" : (re > 0 ? i.delta.increasing.symbol : i.delta.decreasing.symbol) + U + oe(re) + O;
+ }, j = function(re) {
+ return re.delta >= 0 ? i.delta.increasing.color : i.delta.decreasing.color;
+ };
+ i._deltaLastValue === void 0 && (i._deltaLastValue = G(r[0]));
+ var N = f.select("text.delta");
+ N.call(bw.font, i.delta.font).call(V5.fill, j({ delta: i._deltaLastValue }));
+ function H() {
+ N.text(Z(G(r[0]), z)).call(V5.fill, j(r[0])).call(q7.convertToTspans, e);
+ }
+ return fC(u) ? N.transition().duration(u.duration).ease(u.easing).tween("text", function() {
+ var re = ww.select(this), oe = G(r[0]), _e = i._deltaLastValue, Ce = p(i.delta.valueformat, z, _e, oe), Le = HXe(_e, oe);
+ return i._deltaLastValue = oe, function(ge) {
+ re.text(Z(Le(ge), Ce)), re.call(V5.fill, j({ delta: Le(ge) }));
+ };
+ }).each("end", function() {
+ H(), c && c();
+ }).each("interrupt", function() {
+ H(), c && c();
+ }) : H(), d = XXe(Z(G(r[0]), z), i.delta.font, l, e), N;
+ }
+ var T = i.mode + i.align, L;
+ if (i._hasDelta && (L = E(), T += i.delta.position + i.delta.font.size + i.delta.font.family + i.delta.valueformat, T += i.delta.increasing.symbol + i.delta.decreasing.symbol, v = d), i._hasNumber && (k(), T += i.number.font.size + i.number.font.family + i.number.valueformat + i.number.suffix + i.number.prefix, v = h), i._hasDelta && i._hasNumber) {
+ var x = [(h.left + h.right) / 2, (h.top + h.bottom) / 2], C = [(d.left + d.right) / 2, (d.top + d.bottom) / 2], M, g, P = 0.75 * i.delta.font.size;
+ i.delta.position === "left" && (M = O7(i, "deltaPos", 0, -1 * (h.width * _w[i.align] + d.width * (1 - _w[i.align]) + P), T, Math.min), g = x[1] - C[1], v = { width: h.width + d.width + P, height: Math.max(h.height, d.height), left: d.left + M, right: h.right, top: Math.min(h.top, d.top + g), bottom: Math.max(h.bottom, d.bottom + g) }), i.delta.position === "right" && (M = O7(i, "deltaPos", 0, h.width * (1 - _w[i.align]) + d.width * _w[i.align] + P, T, Math.max), g = x[1] - C[1], v = { width: h.width + d.width + P, height: Math.max(h.height, d.height), left: h.left, right: d.right + M, top: Math.min(h.top, d.top + g), bottom: Math.max(h.bottom, d.bottom + g) }), i.delta.position === "bottom" && (M = null, g = d.height, v = { width: Math.max(h.width, d.width), height: h.height + d.height, left: Math.min(h.left, d.left), right: Math.max(h.right, d.right), top: h.bottom - h.height, bottom: h.bottom + d.height }), i.delta.position === "top" && (M = null, g = h.top, v = { width: Math.max(h.width, d.width), height: h.height + d.height, left: Math.min(h.left, d.left), right: Math.max(h.right, d.right), top: h.bottom - h.height - d.height, bottom: h.bottom }), L.attr({ dx: M, dy: g });
+ }
+ (i._hasNumber || i._hasDelta) && f.attr("transform", function() {
+ var A = n.numbersScaler(v);
+ T += A[2];
+ var z = O7(i, "numbersScale", 1, A[0], T, Math.min), O;
+ i._scaleNumbers || (z = 1), i._isAngular ? O = o - z * v.bottom : O = o - z * (v.top + v.bottom) / 2, i._numbersTop = z * v.top + O;
+ var U = v[s];
+ s === "center" && (U = (v.left + v.right) / 2);
+ var G = a - z * U;
+ return G = O7(i, "numbersTranslate", 0, G, T, Math.max), cC(G, O) + qYt(z);
+ });
+ }
+ function xw(e) {
+ e.each(function(t) {
+ V5.stroke(ww.select(this), t.line.color);
+ }).each(function(t) {
+ V5.fill(ww.select(this), t.color);
+ }).style("stroke-width", function(t) {
+ return t.line.width;
+ });
+ }
+ function XYt(e, t, r) {
+ return function() {
+ var n = OYt(t, r);
+ return function(i) {
+ return e.endAngle(n(i))();
+ };
+ };
+ }
+ function uC(e, t, r) {
+ var n = e._fullLayout, i = zx.extendFlat({ type: "linear", ticks: "outside", range: r, showline: true }, t), a = { type: "linear", _id: "x" + t._id }, o = { letter: "x", font: n.font, noAutotickangles: true, noHover: true, noTickson: true };
+ function s(l, u) {
+ return zx.coerce(i, a, GYt, l, u);
+ }
+ return UYt(i, a, s, o, n), VYt(i, a, s, o), a;
+ }
+ function WXe(e, t, r) {
+ var n = Math.min(t / e.width, r / e.height);
+ return [n, e, t + "x" + r];
+ }
+ function ZYt(e, t) {
+ var r = Math.sqrt(e.width / 2 * (e.width / 2) + e.height * e.height), n = t / r;
+ return [n, e, t];
+ }
+ function XXe(e, t, r, n) {
+ var i = document.createElementNS("http://www.w3.org/2000/svg", "text"), a = ww.select(i);
+ return a.text(e).attr("x", 0).attr("y", 0).attr("text-anchor", r).attr("data-unformatted", e).call(q7.convertToTspans, n).call(bw.font, t), bw.bBox(a.node());
+ }
+ function O7(e, t, r, n, i, a) {
+ var o = "_cache" + t;
+ e[o] && e[o].key === i || (e[o] = { key: i, value: r });
+ var s = zx.aggNums(a, null, [e[o].value, n], 2);
+ return e[o].value = s, s;
+ }
+ });
+ var JXe = ye((S2r, KXe) => {
+ KXe.exports = { moduleType: "trace", name: "indicator", basePlotModule: PXe(), categories: ["svg", "noOpacity", "noHover"], animatable: true, attributes: c$(), supplyDefaults: UXe().supplyDefaults, calc: GXe().calc, plot: YXe(), meta: {} };
+ });
+ var QXe = ye((M2r, $Xe) => {
+ $Xe.exports = JXe();
+ });
+ var d$ = ye((k2r, iZe) => {
+ var eZe = Jb(), B7 = Ao().extendFlat, YYt = mc().overrideAll, tZe = ec(), KYt = Cc().attributes, rZe = df().descriptionOnlyNumbers;
+ iZe.exports = YYt({ domain: KYt({ name: "table", trace: true }), columnwidth: { valType: "number", arrayOk: true, dflt: null }, columnorder: { valType: "data_array" }, header: { values: { valType: "data_array", dflt: [] }, format: { valType: "data_array", dflt: [], description: rZe("cell value") }, prefix: { valType: "string", arrayOk: true, dflt: null }, suffix: { valType: "string", arrayOk: true, dflt: null }, height: { valType: "number", dflt: 28 }, align: B7({}, eZe.align, { arrayOk: true }), line: { width: { valType: "number", arrayOk: true, dflt: 1 }, color: { valType: "color", arrayOk: true, dflt: "grey" } }, fill: { color: { valType: "color", arrayOk: true, dflt: "white" } }, font: B7({}, tZe({ arrayOk: true })) }, cells: { values: { valType: "data_array", dflt: [] }, format: { valType: "data_array", dflt: [], description: rZe("cell value") }, prefix: { valType: "string", arrayOk: true, dflt: null }, suffix: { valType: "string", arrayOk: true, dflt: null }, height: { valType: "number", dflt: 20 }, align: B7({}, eZe.align, { arrayOk: true }), line: { width: { valType: "number", arrayOk: true, dflt: 1 }, color: { valType: "color", arrayOk: true, dflt: "grey" } }, fill: { color: { valType: "color", arrayOk: true, dflt: "white" } }, font: B7({}, tZe({ arrayOk: true })) } }, "calc", "from-root");
+ });
+ var aZe = ye((C2r, nZe) => {
+ var v$ = Dr(), JYt = d$(), $Yt = Cc().defaults;
+ function QYt(e, t) {
+ for (var r = e.columnorder || [], n = e.header.values.length, i = r.slice(0, n), a = i.slice().sort(function(l, u) {
+ return l - u;
+ }), o = i.map(function(l) {
+ return a.indexOf(l);
+ }), s = o.length; s < n; s++) o.push(s);
+ t("columnorder", o);
+ }
+ nZe.exports = function(t, r, n, i) {
+ function a(o, s) {
+ return v$.coerce(t, r, JYt, o, s);
+ }
+ $Yt(r, i, a), a("columnwidth"), a("header.values"), a("header.format"), a("header.align"), a("header.prefix"), a("header.suffix"), a("header.height"), a("header.line.width"), a("header.line.color"), a("header.fill.color"), v$.coerceFont(a, "header.font", i.font), QYt(r, a), a("cells.values"), a("cells.format"), a("cells.align"), a("cells.prefix"), a("cells.suffix"), a("cells.height"), a("cells.line.width"), a("cells.line.color"), a("cells.fill.color"), v$.coerceFont(a, "cells.font", i.font), r._length = null;
+ };
+ });
+ var sZe = ye((L2r, oZe) => {
+ var eKt = iy().wrap;
+ oZe.exports = function() {
+ return eKt({});
+ };
+ });
+ var p$ = ye((P2r, lZe) => {
+ lZe.exports = { cellPad: 8, columnExtentOffset: 10, columnTitleOffset: 28, emptyHeaderHeight: 16, latexCheck: /^\$.*\$$/, goldenRatio: 1.618, lineBreaker: " ", maxDimensionCount: 60, overdrag: 45, releaseTransitionDuration: 120, releaseTransitionEase: "cubic-out", scrollbarCaptureWidth: 18, scrollbarHideDelay: 1e3, scrollbarHideDuration: 1e3, scrollbarOffset: 5, scrollbarWidth: 8, transitionDuration: 100, transitionEase: "cubic-out", uplift: 5, wrapSpacer: " ", wrapSplitCharacter: " ", cn: { table: "table", tableControlView: "table-control-view", scrollBackground: "scroll-background", yColumn: "y-column", columnBlock: "column-block", scrollAreaClip: "scroll-area-clip", scrollAreaClipRect: "scroll-area-clip-rect", columnBoundary: "column-boundary", columnBoundaryClippath: "column-boundary-clippath", columnBoundaryRect: "column-boundary-rect", columnCells: "column-cells", columnCell: "column-cell", cellRect: "cell-rect", cellText: "cell-text", cellTextHolder: "cell-text-holder", scrollbarKit: "scrollbar-kit", scrollbar: "scrollbar", scrollbarSlider: "scrollbar-slider", scrollbarGlyph: "scrollbar-glyph", scrollbarCaptureZone: "scrollbar-capture-zone" } };
+ });
+ var mZe = ye((I2r, gZe) => {
+ var uZe = p$(), m$ = Ao().extendFlat, tKt = Eo(), rKt = vv().isTypedArray, N7 = vv().isArrayOrTypedArray;
+ gZe.exports = function(t, r) {
+ var n = g$(r.cells.values), i = function(g) {
+ return g.slice(r.header.values.length, g.length);
+ }, a = g$(r.header.values);
+ a.length && !a[0].length && (a[0] = [""], a = g$(a));
+ var o = a.concat(i(n).map(function() {
+ return pZe((a[0] || [""]).length);
+ })), s = r.domain, l = Math.floor(t._fullLayout._size.w * (s.x[1] - s.x[0])), u = Math.floor(t._fullLayout._size.h * (s.y[1] - s.y[0])), c = r.header.values.length ? o[0].map(function() {
+ return r.header.height;
+ }) : [uZe.emptyHeaderHeight], f = n.length ? n[0].map(function() {
+ return r.cells.height;
+ }) : [], h = c.reduce(cZe, 0), d = u - h, v = d + uZe.uplift, _ = dZe(f, v), b = dZe(c, h), p = hZe(b, []), k = hZe(_, p), E = {}, T = r._fullInput.columnorder;
+ N7(T) && (T = Array.from(T)), T = T.concat(i(n.map(function(g, P) {
+ return P;
+ })));
+ var L = o.map(function(g, P) {
+ var A = N7(r.columnwidth) ? r.columnwidth[Math.min(P, r.columnwidth.length - 1)] : r.columnwidth;
+ return tKt(A) ? Number(A) : 1;
+ }), x = L.reduce(cZe, 0);
+ L = L.map(function(g) {
+ return g / x * l;
+ });
+ var C = Math.max(y$(r.header.line.width), y$(r.cells.line.width)), M = { key: r.uid + t._context.staticPlot, translateX: s.x[0] * t._fullLayout._size.w, translateY: t._fullLayout._size.h * (1 - s.y[1]), size: t._fullLayout._size, width: l, maxLineWidth: C, height: u, columnOrder: T, groupHeight: u, rowBlocks: k, headerRowBlocks: p, scrollY: 0, cells: m$({}, r.cells, { values: n }), headerCells: m$({}, r.header, { values: o }), gdColumns: o.map(function(g) {
+ return g[0];
+ }), gdColumnsOriginalOrder: o.map(function(g) {
+ return g[0];
+ }), prevPages: [0, 0], scrollbarState: { scrollbarScrollInProgress: false }, columns: o.map(function(g, P) {
+ var A = E[g];
+ E[g] = (A || 0) + 1;
+ var z = g + "__" + E[g];
+ return { key: z, label: g, specIndex: P, xIndex: T[P], xScale: fZe, x: void 0, calcdata: void 0, columnWidth: L[P] };
+ }) };
+ return M.columns.forEach(function(g) {
+ g.calcdata = M, g.x = fZe(g);
+ }), M;
+ };
+ function y$(e) {
+ if (N7(e)) {
+ for (var t = 0, r = 0; r < e.length; r++) t = Math.max(t, y$(e[r]));
+ return t;
+ }
+ return e;
+ }
+ function cZe(e, t) {
+ return e + t;
+ }
+ function g$(e) {
+ var t = e.slice(), r = 1 / 0, n = 0, i;
+ for (i = 0; i < t.length; i++) rKt(t[i]) ? t[i] = Array.from(t[i]) : N7(t[i]) || (t[i] = [t[i]]), r = Math.min(r, t[i].length), n = Math.max(n, t[i].length);
+ if (r !== n) for (i = 0; i < t.length; i++) {
+ var a = n - t[i].length;
+ a && (t[i] = t[i].concat(pZe(a)));
+ }
+ return t;
+ }
+ function pZe(e) {
+ for (var t = new Array(e), r = 0; r < e; r++) t[r] = "";
+ return t;
+ }
+ function fZe(e) {
+ return e.calcdata.columns.reduce(function(t, r) {
+ return r.xIndex < e.xIndex ? t + r.columnWidth : t;
+ }, 0);
+ }
+ function hZe(e, t) {
+ var r = Object.keys(e);
+ return r.map(function(n) {
+ return m$({}, e[n], { auxiliaryBlocks: t });
+ });
+ }
+ function dZe(e, t) {
+ for (var r = {}, n, i = 0, a = 0, o = vZe(), s = 0, l = 0, u = 0; u < e.length; u++) n = e[u], o.rows.push({ rowIndex: u, rowHeight: n }), a += n, (a >= t || u === e.length - 1) && (r[i] = o, o.key = l++, o.firstRowIndex = s, o.lastRowIndex = u, o = vZe(), i += a, s = u + 1, a = 0);
+ return r;
+ }
+ function vZe() {
+ return { firstRowIndex: null, lastRowIndex: null, rows: [] };
+ }
+ });
+ var yZe = ye((_$) => {
+ var U7 = Ao().extendFlat;
+ _$.splitToPanels = function(e) {
+ var t = [0, 0], r = U7({}, e, { key: "header", type: "header", page: 0, prevPages: t, currentRepaint: [null, null], dragHandle: true, values: e.calcdata.headerCells.values[e.specIndex], rowBlocks: e.calcdata.headerRowBlocks, calcdata: U7({}, e.calcdata, { cells: e.calcdata.headerCells }) }), n = U7({}, e, { key: "cells1", type: "cells", page: 0, prevPages: t, currentRepaint: [null, null], dragHandle: false, values: e.calcdata.cells.values[e.specIndex], rowBlocks: e.calcdata.rowBlocks }), i = U7({}, e, { key: "cells2", type: "cells", page: 1, prevPages: t, currentRepaint: [null, null], dragHandle: false, values: e.calcdata.cells.values[e.specIndex], rowBlocks: e.calcdata.rowBlocks });
+ return [n, i, r];
+ };
+ _$.splitToCells = function(e) {
+ var t = iKt(e);
+ return (e.values || []).slice(t[0], t[1]).map(function(r, n) {
+ var i = typeof r == "string" && r.match(/[<$&> ]/) ? "_keybuster_" + Math.random() : "";
+ return { keyWithinBlock: n + i, key: t[0] + n, column: e, calcdata: e.calcdata, page: e.page, rowBlocks: e.rowBlocks, value: r };
+ });
+ };
+ function iKt(e) {
+ var t = e.rowBlocks[e.page], r = t ? t.rows[0].rowIndex : 0, n = t ? r + t.rows.length : 0;
+ return [r, n];
+ }
+ });
+ var C$ = ye((D2r, CZe) => {
+ var Ya = p$(), tf = Oa(), x$ = Dr(), nKt = x$.numberFormat, Uu = iy(), b$ = So(), aKt = Zl(), oKt = Dr().raiseToTop, lg = Dr().strTranslate, sKt = Dr().cancelTransition, lKt = mZe(), SZe = yZe(), _Ze = ka();
+ CZe.exports = function(t, r) {
+ var n = !t._context.staticPlot, i = t._fullLayout._paper.selectAll("." + Ya.cn.table).data(r.map(function(k) {
+ var E = Uu.unwrap(k), T = E.trace;
+ return lKt(t, T);
+ }), Uu.keyFun);
+ i.exit().remove(), i.enter().append("g").classed(Ya.cn.table, true).attr("overflow", "visible").style("box-sizing", "content-box").style("position", "absolute").style("left", 0).style("overflow", "visible").style("shape-rendering", "crispEdges").style("pointer-events", "all"), i.attr("width", function(k) {
+ return k.width + k.size.l + k.size.r;
+ }).attr("height", function(k) {
+ return k.height + k.size.t + k.size.b;
+ }).attr("transform", function(k) {
+ return lg(k.translateX, k.translateY);
+ });
+ var a = i.selectAll("." + Ya.cn.tableControlView).data(Uu.repeat, Uu.keyFun), o = a.enter().append("g").classed(Ya.cn.tableControlView, true).style("box-sizing", "content-box");
+ if (n) {
+ var s = "onwheel" in document ? "wheel" : "mousewheel";
+ o.on("mousemove", function(k) {
+ a.filter(function(E) {
+ return k === E;
+ }).call(hC, t);
+ }).on(s, function(k) {
+ if (!k.scrollbarState.wheeling) {
+ k.scrollbarState.wheeling = true;
+ var E = k.scrollY + tf.event.deltaY, T = G7(t, a, null, E)(k);
+ T || (tf.event.stopPropagation(), tf.event.preventDefault()), k.scrollbarState.wheeling = false;
+ }
+ }).call(hC, t, true);
+ }
+ a.attr("transform", function(k) {
+ return lg(k.size.l, k.size.t);
+ });
+ var l = a.selectAll("." + Ya.cn.scrollBackground).data(Uu.repeat, Uu.keyFun);
+ l.enter().append("rect").classed(Ya.cn.scrollBackground, true).attr("fill", "none"), l.attr("width", function(k) {
+ return k.width;
+ }).attr("height", function(k) {
+ return k.height;
+ }), a.each(function(k) {
+ b$.setClipUrl(tf.select(this), xZe(t, k), t);
+ });
+ var u = a.selectAll("." + Ya.cn.yColumn).data(function(k) {
+ return k.columns;
+ }, Uu.keyFun);
+ u.enter().append("g").classed(Ya.cn.yColumn, true), u.exit().remove(), u.attr("transform", function(k) {
+ return lg(k.x, 0);
+ }), n && u.call(tf.behavior.drag().origin(function(k) {
+ var E = tf.select(this);
+ return TZe(E, k, -Ya.uplift), oKt(this), k.calcdata.columnDragInProgress = true, hC(a.filter(function(T) {
+ return k.calcdata.key === T.key;
+ }), t), k;
+ }).on("drag", function(k) {
+ var E = tf.select(this), T = function(C) {
+ return (k === C ? tf.event.x : C.x) + C.columnWidth / 2;
+ };
+ k.x = Math.max(-Ya.overdrag, Math.min(k.calcdata.width + Ya.overdrag - k.columnWidth, tf.event.x));
+ var L = MZe(u).filter(function(C) {
+ return C.calcdata.key === k.calcdata.key;
+ }), x = L.sort(function(C, M) {
+ return T(C) - T(M);
+ });
+ x.forEach(function(C, M) {
+ C.xIndex = M, C.x = k === C ? C.x : C.xScale(C);
+ }), u.filter(function(C) {
+ return k !== C;
+ }).transition().ease(Ya.transitionEase).duration(Ya.transitionDuration).attr("transform", function(C) {
+ return lg(C.x, 0);
+ }), E.call(sKt).attr("transform", lg(k.x, -Ya.uplift));
+ }).on("dragend", function(k) {
+ var E = tf.select(this), T = k.calcdata;
+ k.x = k.xScale(k), k.calcdata.columnDragInProgress = false, TZe(E, k, 0), yKt(t, T, T.columns.map(function(L) {
+ return L.xIndex;
+ }));
+ })), u.each(function(k) {
+ b$.setClipUrl(tf.select(this), bZe(t, k), t);
+ });
+ var c = u.selectAll("." + Ya.cn.columnBlock).data(SZe.splitToPanels, Uu.keyFun);
+ c.enter().append("g").classed(Ya.cn.columnBlock, true).attr("id", function(k) {
+ return k.key;
+ }), c.style("cursor", function(k) {
+ return k.dragHandle ? "ew-resize" : k.calcdata.scrollbarState.barWiggleRoom ? "ns-resize" : "default";
+ });
+ var f = c.filter(_Kt), h = c.filter(M$);
+ n && h.call(tf.behavior.drag().origin(function(k) {
+ return tf.event.stopPropagation(), k;
+ }).on("drag", G7(t, a, -1)).on("dragend", function() {
+ })), w$(t, a, f, c), w$(t, a, h, c);
+ var d = a.selectAll("." + Ya.cn.scrollAreaClip).data(Uu.repeat, Uu.keyFun);
+ d.enter().append("clipPath").classed(Ya.cn.scrollAreaClip, true).attr("id", function(k) {
+ return xZe(t, k);
+ });
+ var v = d.selectAll("." + Ya.cn.scrollAreaClipRect).data(Uu.repeat, Uu.keyFun);
+ v.enter().append("rect").classed(Ya.cn.scrollAreaClipRect, true).attr("x", -Ya.overdrag).attr("y", -Ya.uplift).attr("fill", "none"), v.attr("width", function(k) {
+ return k.width + 2 * Ya.overdrag;
+ }).attr("height", function(k) {
+ return k.height + Ya.uplift;
+ });
+ var _ = u.selectAll("." + Ya.cn.columnBoundary).data(Uu.repeat, Uu.keyFun);
+ _.enter().append("g").classed(Ya.cn.columnBoundary, true);
+ var b = u.selectAll("." + Ya.cn.columnBoundaryClippath).data(Uu.repeat, Uu.keyFun);
+ b.enter().append("clipPath").classed(Ya.cn.columnBoundaryClippath, true), b.attr("id", function(k) {
+ return bZe(t, k);
+ });
+ var p = b.selectAll("." + Ya.cn.columnBoundaryRect).data(Uu.repeat, Uu.keyFun);
+ p.enter().append("rect").classed(Ya.cn.columnBoundaryRect, true).attr("fill", "none"), p.attr("width", function(k) {
+ return k.columnWidth + 2 * V7(k);
+ }).attr("height", function(k) {
+ return k.calcdata.height + 2 * V7(k) + Ya.uplift;
+ }).attr("x", function(k) {
+ return -V7(k);
+ }).attr("y", function(k) {
+ return -V7(k);
+ }), E$(null, h, a);
+ };
+ function V7(e) {
+ return Math.ceil(e.calcdata.maxLineWidth / 2);
+ }
+ function xZe(e, t) {
+ return "clip" + e._fullLayout._uid + "_scrollAreaBottomClip_" + t.key;
+ }
+ function bZe(e, t) {
+ return "clip" + e._fullLayout._uid + "_columnBoundaryClippath_" + t.calcdata.key + "_" + t.specIndex;
+ }
+ function MZe(e) {
+ return [].concat.apply([], e.map(function(t) {
+ return t;
+ })).map(function(t) {
+ return t.__data__;
+ });
+ }
+ function hC(e, t, r) {
+ function n(u) {
+ var c = u.rowBlocks;
+ return A$(c, c.length - 1) + (c.length ? H7(c[c.length - 1], 1 / 0) : 1);
+ }
+ var i = e.selectAll("." + Ya.cn.scrollbarKit).data(Uu.repeat, Uu.keyFun);
+ i.enter().append("g").classed(Ya.cn.scrollbarKit, true).style("shape-rendering", "geometricPrecision"), i.each(function(u) {
+ var c = u.scrollbarState;
+ c.totalHeight = n(u), c.scrollableAreaHeight = u.groupHeight - T$(u), c.currentlyVisibleHeight = Math.min(c.totalHeight, c.scrollableAreaHeight), c.ratio = c.currentlyVisibleHeight / c.totalHeight, c.barLength = Math.max(c.ratio * c.currentlyVisibleHeight, Ya.goldenRatio * Ya.scrollbarWidth), c.barWiggleRoom = c.currentlyVisibleHeight - c.barLength, c.wiggleRoom = Math.max(0, c.totalHeight - c.scrollableAreaHeight), c.topY = c.barWiggleRoom === 0 ? 0 : u.scrollY / c.wiggleRoom * c.barWiggleRoom, c.bottomY = c.topY + c.barLength, c.dragMultiplier = c.wiggleRoom / c.barWiggleRoom;
+ }).attr("transform", function(u) {
+ var c = u.width + Ya.scrollbarWidth / 2 + Ya.scrollbarOffset;
+ return lg(c, T$(u));
+ });
+ var a = i.selectAll("." + Ya.cn.scrollbar).data(Uu.repeat, Uu.keyFun);
+ a.enter().append("g").classed(Ya.cn.scrollbar, true);
+ var o = a.selectAll("." + Ya.cn.scrollbarSlider).data(Uu.repeat, Uu.keyFun);
+ o.enter().append("g").classed(Ya.cn.scrollbarSlider, true), o.attr("transform", function(u) {
+ return lg(0, u.scrollbarState.topY || 0);
+ });
+ var s = o.selectAll("." + Ya.cn.scrollbarGlyph).data(Uu.repeat, Uu.keyFun);
+ s.enter().append("line").classed(Ya.cn.scrollbarGlyph, true).attr("stroke", "black").attr("stroke-width", Ya.scrollbarWidth).attr("stroke-linecap", "round").attr("y1", Ya.scrollbarWidth / 2), s.attr("y2", function(u) {
+ return u.scrollbarState.barLength - Ya.scrollbarWidth / 2;
+ }).attr("stroke-opacity", function(u) {
+ return u.columnDragInProgress || !u.scrollbarState.barWiggleRoom || r ? 0 : 0.4;
+ }), s.transition().delay(0).duration(0), s.transition().delay(Ya.scrollbarHideDelay).duration(Ya.scrollbarHideDuration).attr("stroke-opacity", 0);
+ var l = a.selectAll("." + Ya.cn.scrollbarCaptureZone).data(Uu.repeat, Uu.keyFun);
+ l.enter().append("line").classed(Ya.cn.scrollbarCaptureZone, true).attr("stroke", "white").attr("stroke-opacity", 0.01).attr("stroke-width", Ya.scrollbarCaptureWidth).attr("stroke-linecap", "butt").attr("y1", 0).on("mousedown", function(u) {
+ var c = tf.event.y, f = this.getBoundingClientRect(), h = u.scrollbarState, d = c - f.top, v = tf.scale.linear().domain([0, h.scrollableAreaHeight]).range([0, h.totalHeight]).clamp(true);
+ h.topY <= d && d <= h.bottomY || G7(t, e, null, v(d - h.barLength / 2))(u);
+ }).call(tf.behavior.drag().origin(function(u) {
+ return tf.event.stopPropagation(), u.scrollbarState.scrollbarScrollInProgress = true, u;
+ }).on("drag", G7(t, e)).on("dragend", function() {
+ })), l.attr("y2", function(u) {
+ return u.scrollbarState.scrollableAreaHeight;
+ }), t._context.staticPlot && (s.remove(), l.remove());
+ }
+ function w$(e, t, r, n) {
+ var i = uKt(r), a = cKt(i);
+ vKt(a);
+ var o = fKt(a);
+ gKt(o);
+ var s = dKt(a), l = hKt(s);
+ pKt(l), EZe(l, t, n, e), k$(a);
+ }
+ function uKt(e) {
+ var t = e.selectAll("." + Ya.cn.columnCells).data(Uu.repeat, Uu.keyFun);
+ return t.enter().append("g").classed(Ya.cn.columnCells, true), t.exit().remove(), t;
+ }
+ function cKt(e) {
+ var t = e.selectAll("." + Ya.cn.columnCell).data(SZe.splitToCells, function(r) {
+ return r.keyWithinBlock;
+ });
+ return t.enter().append("g").classed(Ya.cn.columnCell, true), t.exit().remove(), t;
+ }
+ function fKt(e) {
+ var t = e.selectAll("." + Ya.cn.cellRect).data(Uu.repeat, function(r) {
+ return r.keyWithinBlock;
+ });
+ return t.enter().append("rect").classed(Ya.cn.cellRect, true), t;
+ }
+ function hKt(e) {
+ var t = e.selectAll("." + Ya.cn.cellText).data(Uu.repeat, function(r) {
+ return r.keyWithinBlock;
+ });
+ return t.enter().append("text").classed(Ya.cn.cellText, true).style("cursor", function() {
+ return "auto";
+ }).on("mousedown", function() {
+ tf.event.stopPropagation();
+ }), t;
+ }
+ function dKt(e) {
+ var t = e.selectAll("." + Ya.cn.cellTextHolder).data(Uu.repeat, function(r) {
+ return r.keyWithinBlock;
+ });
+ return t.enter().append("g").classed(Ya.cn.cellTextHolder, true).style("shape-rendering", "geometricPrecision"), t;
+ }
+ function vKt(e) {
+ e.each(function(t, r) {
+ var n = t.calcdata.cells.font, i = t.column.specIndex, a = { size: Yv(n.size, i, r), color: Yv(n.color, i, r), family: Yv(n.family, i, r), weight: Yv(n.weight, i, r), style: Yv(n.style, i, r), variant: Yv(n.variant, i, r), textcase: Yv(n.textcase, i, r), lineposition: Yv(n.lineposition, i, r), shadow: Yv(n.shadow, i, r) };
+ t.rowNumber = t.key, t.align = Yv(t.calcdata.cells.align, i, r), t.cellBorderWidth = Yv(t.calcdata.cells.line.width, i, r), t.font = a;
+ });
+ }
+ function pKt(e) {
+ e.each(function(t) {
+ b$.font(tf.select(this), t.font);
+ });
+ }
+ function gKt(e) {
+ e.attr("width", function(t) {
+ return t.column.columnWidth;
+ }).attr("stroke-width", function(t) {
+ return t.cellBorderWidth;
+ }).each(function(t) {
+ var r = tf.select(this);
+ _Ze.stroke(r, Yv(t.calcdata.cells.line.color, t.column.specIndex, t.rowNumber)), _Ze.fill(r, Yv(t.calcdata.cells.fill.color, t.column.specIndex, t.rowNumber));
+ });
+ }
+ function EZe(e, t, r, n) {
+ e.text(function(i) {
+ var a = i.column.specIndex, o = i.rowNumber, s = i.value, l = typeof s == "string", u = l && s.match(/ /i), c = !l || u;
+ i.mayHaveMarkup = l && s.match(/[<&>]/);
+ var f = mKt(s);
+ i.latex = f;
+ var h = f ? "" : Yv(i.calcdata.cells.prefix, a, o) || "", d = f ? "" : Yv(i.calcdata.cells.suffix, a, o) || "", v = f ? null : Yv(i.calcdata.cells.format, a, o) || null, _ = h + (v ? nKt(v)(i.value) : i.value) + d, b;
+ i.wrappingNeeded = !i.wrapped && !c && !f && (b = wZe(_)), i.cellHeightMayIncrease = u || f || i.mayHaveMarkup || (b === void 0 ? wZe(_) : b), i.needsConvertToTspans = i.mayHaveMarkup || i.wrappingNeeded || i.latex;
+ var p;
+ if (i.wrappingNeeded) {
+ var k = Ya.wrapSplitCharacter === " " ? _.replace(/ i && n.push(a), i += l;
+ }
+ return n;
+ }
+ function E$(e, t, r) {
+ var n = MZe(t)[0];
+ if (n !== void 0) {
+ var i = n.rowBlocks, a = n.calcdata, o = A$(i, i.length), s = n.calcdata.groupHeight - T$(n), l = a.scrollY = Math.max(0, Math.min(o - s, a.scrollY)), u = xKt(i, l, s);
+ u.length === 1 && (u[0] === i.length - 1 ? u.unshift(u[0] - 1) : u.push(u[0] + 1)), u[0] % 2 && u.reverse(), t.each(function(c, f) {
+ c.page = u[f], c.scrollY = l;
+ }), t.attr("transform", function(c) {
+ var f = A$(c.rowBlocks, c.page) - c.scrollY;
+ return lg(0, f);
+ }), e && (AZe(e, r, t, u, n.prevPages, n, 0), AZe(e, r, t, u, n.prevPages, n, 1), hC(r, e));
+ }
+ }
+ function G7(e, t, r, n) {
+ return function(a) {
+ var o = a.calcdata ? a.calcdata : a, s = t.filter(function(f) {
+ return o.key === f.key;
+ }), l = r || o.scrollbarState.dragMultiplier, u = o.scrollY;
+ o.scrollY = n === void 0 ? o.scrollY + l * tf.event.dy : n;
+ var c = s.selectAll("." + Ya.cn.yColumn).selectAll("." + Ya.cn.columnBlock).filter(M$);
+ return E$(e, c, s), o.scrollY === u;
+ };
+ }
+ function AZe(e, t, r, n, i, a, o) {
+ var s = n[o] !== i[o];
+ s && (clearTimeout(a.currentRepaint[o]), a.currentRepaint[o] = setTimeout(function() {
+ var l = r.filter(function(u, c) {
+ return c === o && n[c] !== i[c];
+ });
+ w$(e, t, l, r), i[o] = n[o];
+ }));
+ }
+ function bKt(e, t, r, n) {
+ return function() {
+ var a = tf.select(t.parentNode);
+ a.each(function(o) {
+ var s = o.fragments;
+ a.selectAll("tspan.line").each(function(_, b) {
+ s[b].width = this.getComputedTextLength();
+ });
+ var l = s[s.length - 1].width, u = s.slice(0, -1), c = [], f, h, d = 0, v = o.column.columnWidth - 2 * Ya.cellPad;
+ for (o.value = ""; u.length; ) f = u.shift(), h = f.width + l, d + h > v && (o.value += c.join(Ya.wrapSpacer) + Ya.lineBreaker, c = [], d = 0), c.push(f.text), d += h;
+ d && (o.value += c.join(Ya.wrapSpacer)), o.wrapped = true;
+ }), a.selectAll("tspan.line").remove(), EZe(a.select("." + Ya.cn.cellText), r, e, n), tf.select(t.parentNode.parentNode).call(k$);
+ };
+ }
+ function wKt(e, t, r, n, i) {
+ return function() {
+ if (!i.settledY) {
+ var o = tf.select(t.parentNode), s = S$(i), l = i.key - s.firstRowIndex, u = s.rows[l].rowHeight, c = i.cellHeightMayIncrease ? t.parentNode.getBoundingClientRect().height + 2 * Ya.cellPad : u, f = Math.max(c, u), h = f - s.rows[l].rowHeight;
+ h && (s.rows[l].rowHeight = f, e.selectAll("." + Ya.cn.columnCell).call(k$), E$(null, e.filter(M$), 0), hC(r, n, true)), o.attr("transform", function() {
+ var d = this, v = d.parentNode, _ = v.getBoundingClientRect(), b = tf.select(d.parentNode).select("." + Ya.cn.cellRect).node().getBoundingClientRect(), p = d.transform.baseVal.consolidate(), k = b.top - _.top + (p ? p.matrix.f : Ya.cellPad);
+ return lg(kZe(i, tf.select(d.parentNode).select("." + Ya.cn.cellTextHolder).node().getBoundingClientRect().width), k);
+ }), i.settledY = true;
+ }
+ };
+ }
+ function kZe(e, t) {
+ switch (e.align) {
+ case "left":
+ return Ya.cellPad;
+ case "right":
+ return e.column.columnWidth - (t || 0) - Ya.cellPad;
+ case "center":
+ return (e.column.columnWidth - (t || 0)) / 2;
+ default:
+ return Ya.cellPad;
+ }
+ }
+ function k$(e) {
+ e.attr("transform", function(t) {
+ var r = t.rowBlocks[0].auxiliaryBlocks.reduce(function(o, s) {
+ return o + H7(s, 1 / 0);
+ }, 0), n = S$(t), i = H7(n, t.key), a = i + r;
+ return lg(0, a);
+ }).selectAll("." + Ya.cn.cellRect).attr("height", function(t) {
+ return AKt(S$(t), t.key).rowHeight;
+ });
+ }
+ function A$(e, t) {
+ for (var r = 0, n = t - 1; n >= 0; n--) r += TKt(e[n]);
+ return r;
+ }
+ function H7(e, t) {
+ for (var r = 0, n = 0; n < e.rows.length && e.rows[n].rowIndex < t; n++) r += e.rows[n].rowHeight;
+ return r;
+ }
+ function TKt(e) {
+ var t = e.allRowsHeight;
+ if (t !== void 0) return t;
+ for (var r = 0, n = 0; n < e.rows.length; n++) r += e.rows[n].rowHeight;
+ return e.allRowsHeight = r, r;
+ }
+ function S$(e) {
+ return e.rowBlocks[e.page];
+ }
+ function AKt(e, t) {
+ return e.rows[t - e.firstRowIndex];
+ }
+ });
+ var LZe = ye((W7) => {
+ var SKt = Id().getModuleCalcData, MKt = C$(), j7 = "table";
+ W7.name = j7;
+ W7.plot = function(e) {
+ var t = SKt(e.calcdata, j7)[0];
+ t.length && MKt(e, t);
+ };
+ W7.clean = function(e, t, r, n) {
+ var i = n._has && n._has(j7), a = t._has && t._has(j7);
+ i && !a && n._paperdiv.selectAll(".table").remove();
+ };
+ });
+ var IZe = ye((z2r, PZe) => {
+ PZe.exports = { attributes: d$(), supplyDefaults: aZe(), calc: sZe(), plot: C$(), moduleType: "trace", name: "table", basePlotModule: LZe(), categories: ["noOpacity"], meta: {} };
+ });
+ var DZe = ye((O2r, RZe) => {
+ RZe.exports = IZe();
+ });
+ var BZe = ye((q2r, qZe) => {
+ var FZe = ec(), zZe = Ih(), L$ = Rd(), EKt = df().descriptionWithDates, kKt = mc().overrideAll, OZe = Pd().dash, P$ = Ao().extendFlat;
+ qZe.exports = { color: { valType: "color", editType: "calc" }, smoothing: { valType: "number", dflt: 1, min: 0, max: 1.3, editType: "calc" }, title: { text: { valType: "string", dflt: "", editType: "calc" }, font: FZe({ editType: "calc" }), offset: { valType: "number", dflt: 10, editType: "calc" }, editType: "calc" }, type: { valType: "enumerated", values: ["-", "linear", "date", "category"], dflt: "-", editType: "calc" }, autotypenumbers: L$.autotypenumbers, autorange: { valType: "enumerated", values: [true, false, "reversed"], dflt: true, editType: "calc" }, rangemode: { valType: "enumerated", values: ["normal", "tozero", "nonnegative"], dflt: "normal", editType: "calc" }, range: { valType: "info_array", editType: "calc", items: [{ valType: "any", editType: "calc" }, { valType: "any", editType: "calc" }] }, fixedrange: { valType: "boolean", dflt: false, editType: "calc" }, cheatertype: { valType: "enumerated", values: ["index", "value"], dflt: "value", editType: "calc" }, tickmode: { valType: "enumerated", values: ["linear", "array"], dflt: "array", editType: "calc" }, nticks: { valType: "integer", min: 0, dflt: 0, editType: "calc" }, tickvals: { valType: "data_array", editType: "calc" }, ticktext: { valType: "data_array", editType: "calc" }, showticklabels: { valType: "enumerated", values: ["start", "end", "both", "none"], dflt: "start", editType: "calc" }, labelalias: P$({}, L$.labelalias, { editType: "calc" }), tickfont: FZe({ editType: "calc" }), tickangle: { valType: "angle", dflt: "auto", editType: "calc" }, tickprefix: { valType: "string", dflt: "", editType: "calc" }, showtickprefix: { valType: "enumerated", values: ["all", "first", "last", "none"], dflt: "all", editType: "calc" }, ticksuffix: { valType: "string", dflt: "", editType: "calc" }, showticksuffix: { valType: "enumerated", values: ["all", "first", "last", "none"], dflt: "all", editType: "calc" }, showexponent: { valType: "enumerated", values: ["all", "first", "last", "none"], dflt: "all", editType: "calc" }, exponentformat: { valType: "enumerated", values: ["none", "e", "E", "power", "SI", "B", "SI extended"], dflt: "B", editType: "calc" }, minexponent: { valType: "number", dflt: 3, min: 0, editType: "calc" }, separatethousands: { valType: "boolean", dflt: false, editType: "calc" }, tickformat: { valType: "string", dflt: "", editType: "calc", description: EKt("tick label") }, tickformatstops: kKt(L$.tickformatstops, "calc", "from-root"), categoryorder: { valType: "enumerated", values: ["trace", "category ascending", "category descending", "array"], dflt: "trace", editType: "calc" }, categoryarray: { valType: "data_array", editType: "calc" }, labelpadding: { valType: "integer", dflt: 10, editType: "calc" }, labelprefix: { valType: "string", editType: "calc" }, labelsuffix: { valType: "string", dflt: "", editType: "calc" }, showline: { valType: "boolean", dflt: false, editType: "calc" }, linecolor: { valType: "color", dflt: zZe.defaultLine, editType: "calc" }, linewidth: { valType: "number", min: 0, dflt: 1, editType: "calc" }, gridcolor: { valType: "color", editType: "calc" }, gridwidth: { valType: "number", min: 0, dflt: 1, editType: "calc" }, griddash: P$({}, OZe, { editType: "calc" }), showgrid: { valType: "boolean", dflt: true, editType: "calc" }, minorgridcount: { valType: "integer", min: 0, dflt: 0, editType: "calc" }, minorgridwidth: { valType: "number", min: 0, dflt: 1, editType: "calc" }, minorgriddash: P$({}, OZe, { editType: "calc" }), minorgridcolor: { valType: "color", dflt: zZe.lightLine, editType: "calc" }, startline: { valType: "boolean", editType: "calc" }, startlinecolor: { valType: "color", editType: "calc" }, startlinewidth: { valType: "number", dflt: 1, editType: "calc" }, endline: { valType: "boolean", editType: "calc" }, endlinewidth: { valType: "number", dflt: 1, editType: "calc" }, endlinecolor: { valType: "color", editType: "calc" }, tick0: { valType: "number", min: 0, dflt: 0, editType: "calc" }, dtick: { valType: "number", min: 0, dflt: 1, editType: "calc" }, arraytick0: { valType: "integer", min: 0, dflt: 0, editType: "calc" }, arraydtick: { valType: "integer", min: 1, dflt: 1, editType: "calc" }, editType: "calc" };
+ });
+ var Z7 = ye((B2r, VZe) => {
+ var CKt = ec(), NZe = BZe(), UZe = Ih(), X7 = CKt({ editType: "calc" }), LKt = pf().zorder;
+ X7.family.dflt = '"Open Sans", verdana, arial, sans-serif';
+ X7.size.dflt = 12;
+ X7.color.dflt = UZe.defaultLine;
+ VZe.exports = { carpet: { valType: "string", editType: "calc" }, x: { valType: "data_array", editType: "calc+clearAxisTypes" }, y: { valType: "data_array", editType: "calc+clearAxisTypes" }, a: { valType: "data_array", editType: "calc" }, a0: { valType: "number", dflt: 0, editType: "calc" }, da: { valType: "number", dflt: 1, editType: "calc" }, b: { valType: "data_array", editType: "calc" }, b0: { valType: "number", dflt: 0, editType: "calc" }, db: { valType: "number", dflt: 1, editType: "calc" }, cheaterslope: { valType: "number", dflt: 1, editType: "calc" }, aaxis: NZe, baxis: NZe, font: X7, color: { valType: "color", dflt: UZe.defaultLine, editType: "plot" }, zorder: LKt };
+ });
+ var jZe = ye((N2r, HZe) => {
+ var GZe = Dr().isArray1D;
+ HZe.exports = function(t, r, n) {
+ var i = n("x"), a = i && i.length, o = n("y"), s = o && o.length;
+ if (!a && !s) return false;
+ if (r._cheater = !i, (!a || GZe(i)) && (!s || GZe(o))) {
+ var l = a ? i.length : 1 / 0;
+ s && (l = Math.min(l, o.length)), r.a && r.a.length && (l = Math.min(l, r.a.length)), r.b && r.b.length && (l = Math.min(l, r.b.length)), r._length = l;
+ } else r._length = null;
+ return true;
+ };
+ });
+ var ZZe = ye((U2r, XZe) => {
+ var PKt = Z7(), WZe = ka().addOpacity, IKt = qa(), dC = Dr(), RKt = Lb(), DKt = s_(), FKt = l_(), zKt = cI(), OKt = xm(), qKt = V3();
+ XZe.exports = function(t, r, n) {
+ var i = n.letter, a = n.font || {}, o = PKt[i + "axis"];
+ function s(g, P) {
+ return dC.coerce(t, r, o, g, P);
+ }
+ function l(g, P) {
+ return dC.coerce2(t, r, o, g, P);
+ }
+ n.name && (r._name = n.name, r._id = n.name), s("autotypenumbers", n.autotypenumbersDflt);
+ var u = s("type");
+ if (u === "-" && (n.data && BKt(r, n.data), r.type === "-" ? r.type = "linear" : u = t.type = r.type), s("smoothing"), s("cheatertype"), s("showticklabels"), s("labelprefix", i + " = "), s("labelsuffix"), s("showtickprefix"), s("showticksuffix"), s("separatethousands"), s("tickformat"), s("exponentformat"), s("minexponent"), s("showexponent"), s("categoryorder"), s("tickmode"), s("tickvals"), s("ticktext"), s("tick0"), s("dtick"), r.tickmode === "array" && (s("arraytick0"), s("arraydtick")), s("labelpadding"), r._hovertitle = i, u === "date") {
+ var c = IKt.getComponentMethod("calendars", "handleDefaults");
+ c(t, r, "calendar", n.calendar);
+ }
+ OKt(r, n.fullLayout), r.c2p = dC.identity;
+ var f = s("color", n.dfltColor), h = f === t.color ? f : a.color, d = s("title.text");
+ d && (dC.coerceFont(s, "title.font", a, { overrideDflt: { size: dC.bigFont(a.size), color: h } }), s("title.offset")), s("tickangle");
+ var v = s("autorange", !r.isValidRange(t.range));
+ v && s("rangemode"), s("range"), r.cleanRange(), s("fixedrange"), RKt(t, r, s, u), FKt(t, r, s, u, n), DKt(t, r, s, u, n), zKt(t, r, s, { data: n.data, dataAttr: i });
+ var _ = l("gridcolor", WZe(f, 0.3)), b = l("gridwidth"), p = l("griddash"), k = s("showgrid");
+ k || (delete r.gridcolor, delete r.gridwidth, delete r.griddash);
+ var E = l("startlinecolor", f), T = l("startlinewidth", b), L = s("startline", r.showgrid || !!E || !!T);
+ L || (delete r.startlinecolor, delete r.startlinewidth);
+ var x = l("endlinecolor", f), C = l("endlinewidth", b), M = s("endline", r.showgrid || !!x || !!C);
+ return M || (delete r.endlinecolor, delete r.endlinewidth), k ? (s("minorgridcount"), s("minorgridwidth", b), s("minorgriddash", p), s("minorgridcolor", WZe(_, 0.06)), r.minorgridcount || (delete r.minorgridwidth, delete r.minorgriddash, delete r.minorgridcolor)) : (delete r.gridcolor, delete r.gridwidth, delete r.griddash), r.showticklabels === "none" && (delete r.tickfont, delete r.tickangle, delete r.showexponent, delete r.exponentformat, delete r.minexponent, delete r.tickformat, delete r.showticksuffix, delete r.showtickprefix), r.showticksuffix || delete r.ticksuffix, r.showtickprefix || delete r.tickprefix, s("tickmode"), r;
+ };
+ function BKt(e, t) {
+ if (e.type === "-") {
+ var r = e._id, n = r.charAt(0), i = n + "calendar", a = e[i];
+ e.type = qKt(t, a, { autotypenumbers: e.autotypenumbers });
+ }
+ }
+ });
+ var KZe = ye((V2r, YZe) => {
+ var NKt = ZZe(), UKt = vl();
+ YZe.exports = function(t, r, n, i, a) {
+ var o = i("a");
+ o || (i("da"), i("a0"));
+ var s = i("b");
+ s || (i("db"), i("b0")), VKt(t, r, n, a);
+ };
+ function VKt(e, t, r, n) {
+ var i = ["aaxis", "baxis"];
+ i.forEach(function(a) {
+ var o = a.charAt(0), s = e[a] || {}, l = UKt.newContainer(t, a), u = { noAutotickangles: true, noTicklabelshift: true, noTicklabelstandoff: true, noTicklabelstep: true, tickfont: "x", id: o + "axis", letter: o, font: t.font, name: a, data: e[o], calendar: t.calendar, dfltColor: n, bgColor: r.paper_bgcolor, autotypenumbersDflt: r.autotypenumbers, fullLayout: r };
+ NKt(s, l, u), l._categories = l._categories || [], !e[a] && s.type !== "-" && (e[a] = { type: s.type });
+ });
+ }
+ });
+ var QZe = ye((G2r, $Ze) => {
+ var JZe = Dr(), GKt = jZe(), HKt = KZe(), jKt = Z7(), WKt = Ih();
+ $Ze.exports = function(t, r, n, i) {
+ function a(l, u) {
+ return JZe.coerce(t, r, jKt, l, u);
+ }
+ r._clipPathId = "clip" + r.uid + "carpet";
+ var o = a("color", WKt.defaultLine);
+ if (JZe.coerceFont(a, "font", i.font), a("carpet"), HKt(t, r, i, a, o), !r.a || !r.b) {
+ r.visible = false;
+ return;
+ }
+ r.a.length < 3 && (r.aaxis.smoothing = 0), r.b.length < 3 && (r.baxis.smoothing = 0);
+ var s = GKt(t, r, a);
+ s || (r.visible = false), r._cheater && a("cheaterslope"), a("zorder");
+ };
+ });
+ var I$ = ye((H2r, eYe) => {
+ var XKt = Dr().isArrayOrTypedArray;
+ eYe.exports = function(t, r, n) {
+ var i;
+ for (XKt(t) ? t.length > r.length && (t = t.slice(0, r.length)) : t = [], i = 0; i < r.length; i++) t[i] = n(r[i]);
+ return t;
+ };
+ });
+ var R$ = ye((j2r, tYe) => {
+ tYe.exports = function(t, r, n) {
+ if (t.length === 0) return "";
+ var i, a = [], o = n ? 3 : 1;
+ for (i = 0; i < t.length; i += o) a.push(t[i] + "," + r[i]), n && i < t.length - o && (a.push("C"), a.push([t[i + 1] + "," + r[i + 1], t[i + 2] + "," + r[i + 2] + " "].join(" ")));
+ return a.join(n ? "" : "L");
+ };
+ });
+ var iYe = ye((W2r, rYe) => {
+ rYe.exports = function(t, r, n, i, a, o) {
+ var s = a[0] * t.dpdx(r), l = a[1] * t.dpdy(n), u = 1, c = 1;
+ if (o) {
+ var f = Math.sqrt(a[0] * a[0] + a[1] * a[1]), h = Math.sqrt(o[0] * o[0] + o[1] * o[1]), d = (a[0] * o[0] + a[1] * o[1]) / f / h;
+ c = Math.max(0, d);
+ }
+ var v = Math.atan2(l, s) * 180 / Math.PI;
+ return v < -90 ? (v += 180, u = -u) : v > 90 && (v -= 180, u = -u), { angle: v, flip: u, p: t.c2p(i, r, n), offsetMultplier: c };
+ };
+ });
+ var fYe = ye((X2r, cYe) => {
+ var $7 = Oa(), Y7 = So(), K7 = I$(), oYe = R$(), vC = iYe(), D$ = Zl(), Up = Dr(), sYe = Up.strRotate, J7 = Up.strTranslate, lYe = Dh();
+ cYe.exports = function(t, r, n, i) {
+ var a = t._context.staticPlot, o = r.xaxis, s = r.yaxis, l = t._fullLayout, u = l._clips;
+ Up.makeTraceGroups(i, n, "trace").each(function(c) {
+ var f = $7.select(this), h = c[0], d = h.trace, v = d.aaxis, _ = d.baxis, b = Up.ensureSingle(f, "g", "minorlayer"), p = Up.ensureSingle(f, "g", "majorlayer"), k = Up.ensureSingle(f, "g", "boundarylayer"), E = Up.ensureSingle(f, "g", "labellayer");
+ f.style("opacity", d.opacity), G5(o, s, p, v, "a", v._gridlines, true), G5(o, s, p, _, "b", _._gridlines, true), G5(o, s, b, v, "a", v._minorgridlines, true), G5(o, s, b, _, "b", _._minorgridlines, true), G5(o, s, k, v, "a-boundary", v._boundarylines, a), G5(o, s, k, _, "b-boundary", _._boundarylines, a);
+ var T = nYe(t, o, s, d, h, E, v._labels, "a-label"), L = nYe(t, o, s, d, h, E, _._labels, "b-label");
+ YKt(t, E, d, h, o, s, T, L), ZKt(d, h, u, o, s);
+ });
+ };
+ function ZKt(e, t, r, n, i) {
+ var a, o, s, l, u = r.select("#" + e._clipPathId);
+ u.size() || (u = r.append("clipPath").classed("carpetclip", true));
+ var c = Up.ensureSingle(u, "path", "carpetboundary"), f = t.clipsegments, h = [];
+ for (l = 0; l < f.length; l++) a = f[l], o = K7([], a.x, n.c2p), s = K7([], a.y, i.c2p), h.push(oYe(o, s, a.bicubic));
+ var d = "M" + h.join("L") + "Z";
+ u.attr("id", e._clipPathId), c.attr("d", d);
+ }
+ function G5(e, t, r, n, i, a, o) {
+ var s = "const-" + i + "-lines", l = r.selectAll("." + s).data(a);
+ l.enter().append("path").classed(s, true).style("vector-effect", o ? "none" : "non-scaling-stroke"), l.each(function(u) {
+ var c = u, f = c.x, h = c.y, d = K7([], f, e.c2p), v = K7([], h, t.c2p), _ = "M" + oYe(d, v, c.smoothing), b = $7.select(this);
+ b.attr("d", _).style("stroke-width", c.width).style("stroke", c.color).style("stroke-dasharray", Y7.dashStyle(c.dash, c.width)).style("fill", "none");
+ }), l.exit().remove();
+ }
+ function nYe(e, t, r, n, i, a, o, s) {
+ var l = a.selectAll("text." + s).data(o);
+ l.enter().append("text").classed(s, true);
+ var u = 0, c = {};
+ return l.each(function(f, h) {
+ var d;
+ if (f.axis.tickangle === "auto") d = vC(n, t, r, f.xy, f.dxy);
+ else {
+ var v = (f.axis.tickangle + 180) * Math.PI / 180;
+ d = vC(n, t, r, f.xy, [Math.cos(v), Math.sin(v)]);
+ }
+ h || (c = { angle: d.angle, flip: d.flip });
+ var _ = (f.endAnchor ? -1 : 1) * d.flip, b = $7.select(this).attr({ "text-anchor": _ > 0 ? "start" : "end", "data-notex": 1 }).call(Y7.font, f.font).text(f.text).call(D$.convertToTspans, e), p = Y7.bBox(this);
+ b.attr("transform", J7(d.p[0], d.p[1]) + sYe(d.angle) + J7(f.axis.labelpadding * _, p.height * 0.3)), u = Math.max(u, p.width + f.axis.labelpadding);
+ }), l.exit().remove(), c.maxExtent = u, c;
+ }
+ function YKt(e, t, r, n, i, a, o, s) {
+ var l, u, c, f, h = Up.aggNums(Math.min, null, r.a), d = Up.aggNums(Math.max, null, r.a), v = Up.aggNums(Math.min, null, r.b), _ = Up.aggNums(Math.max, null, r.b);
+ l = 0.5 * (h + d), u = v, c = r.ab2xy(l, u, true), f = r.dxyda_rough(l, u), o.angle === void 0 && Up.extendFlat(o, vC(r, i, a, c, r.dxydb_rough(l, u))), aYe(e, t, r, n, c, f, r.aaxis, i, a, o, "a-title"), l = h, u = 0.5 * (v + _), c = r.ab2xy(l, u, true), f = r.dxydb_rough(l, u), s.angle === void 0 && Up.extendFlat(s, vC(r, i, a, c, r.dxyda_rough(l, u))), aYe(e, t, r, n, c, f, r.baxis, i, a, s, "b-title");
+ }
+ var uYe = lYe.LINE_SPACING, KKt = (1 - lYe.MID_SHIFT) / uYe + 1;
+ function aYe(e, t, r, n, i, a, o, s, l, u, c) {
+ var f = [];
+ o.title.text && f.push(o.title.text);
+ var h = t.selectAll("text." + c).data(f), d = u.maxExtent;
+ h.enter().append("text").classed(c, true), h.each(function() {
+ var v = vC(r, s, l, i, a);
+ ["start", "both"].indexOf(o.showticklabels) === -1 && (d = 0);
+ var _ = o.title.font.size;
+ d += _ + o.title.offset;
+ var b = u.angle + (u.flip < 0 ? 180 : 0), p = (b - v.angle + 450) % 360, k = p > 90 && p < 270, E = $7.select(this);
+ E.text(o.title.text).call(D$.convertToTspans, e), k && (d = (-D$.lineCount(E) + KKt) * uYe * _ - d), E.attr("transform", J7(v.p[0], v.p[1]) + sYe(v.angle) + J7(0, d)).attr("text-anchor", "middle").call(Y7.font, o.title.font);
+ }), h.exit().remove();
+ }
+ });
+ var dYe = ye((Z2r, hYe) => {
+ var Q7 = Dr().isArrayOrTypedArray;
+ hYe.exports = function(e, t, r) {
+ var n, i, a, o, s, l, u = [], c = Q7(e) ? e.length : e, f = Q7(t) ? t.length : t, h = Q7(e) ? e : null, d = Q7(t) ? t : null;
+ h && (a = (h.length - 1) / (h[h.length - 1] - h[0]) / (c - 1)), d && (o = (d.length - 1) / (d[d.length - 1] - d[0]) / (f - 1));
+ var v, _ = 1 / 0, b = -1 / 0;
+ for (i = 0; i < f; i++) for (u[i] = [], l = d ? (d[i] - d[0]) * o : i / (f - 1), n = 0; n < c; n++) s = h ? (h[n] - h[0]) * a : n / (c - 1), v = s - l * r, _ = Math.min(v, _), b = Math.max(v, b), u[i][n] = v;
+ var p = 1 / (b - _), k = -_ * p;
+ for (i = 0; i < f; i++) for (n = 0; n < c; n++) u[i][n] = p * u[i][n] + k;
+ return u;
+ };
+ });
+ var mYe = ye((Y2r, gYe) => {
+ var vYe = Dr().isArrayOrTypedArray;
+ gYe.exports = function(e) {
+ return pYe(e, 0);
+ };
+ function pYe(e, t) {
+ if (!vYe(e) || t >= 10) return null;
+ for (var r = 1 / 0, n = -1 / 0, i = e.length, a = 0; a < i; a++) {
+ var o = e[a];
+ if (vYe(o)) {
+ var s = pYe(o, t + 1);
+ s && (r = Math.min(s[0], r), n = Math.max(s[1], n));
+ } else r = Math.min(o, r), n = Math.max(o, n);
+ }
+ return [r, n];
+ }
+ });
+ var _Ye = ye((K2r, yYe) => {
+ var JKt = ho(), Ox = Ao().extendFlat;
+ yYe.exports = function(t, r, n) {
+ var i, a, o, s, l, u, c, f, h, d, v, _, b, p, k = t["_" + r], E = t[r + "axis"], T = E._gridlines = [], L = E._minorgridlines = [], x = E._boundarylines = [], C = t["_" + n], M = t[n + "axis"];
+ E.tickmode === "array" && (E.tickvals = k.slice());
+ var g = t._xctrl, P = t._yctrl, A = g[0].length, z = g.length, O = t._a.length, U = t._b.length;
+ JKt.prepTicks(E), E.tickmode === "array" && delete E.tickvals;
+ var G = E.smoothing ? 3 : 1;
+ function Z(N) {
+ var H, re, oe, _e, Ce, Le, ge, ie, Se, Ee, Ae, Be, Pe = [], me = [], De = {};
+ if (r === "b") for (re = t.b2j(N), oe = Math.floor(Math.max(0, Math.min(U - 2, re))), _e = re - oe, De.length = U, De.crossLength = O, De.xy = function(ce) {
+ return t.evalxy([], ce, re);
+ }, De.dxy = function(ce, je) {
+ return t.dxydi([], ce, oe, je, _e);
+ }, H = 0; H < O; H++) Le = Math.min(O - 2, H), ge = H - Le, ie = t.evalxy([], H, re), M.smoothing && H > 0 && (Se = t.dxydi([], H - 1, oe, 0, _e), Pe.push(Ce[0] + Se[0] / 3), me.push(Ce[1] + Se[1] / 3), Ee = t.dxydi([], H - 1, oe, 1, _e), Pe.push(ie[0] - Ee[0] / 3), me.push(ie[1] - Ee[1] / 3)), Pe.push(ie[0]), me.push(ie[1]), Ce = ie;
+ else for (H = t.a2i(N), Le = Math.floor(Math.max(0, Math.min(O - 2, H))), ge = H - Le, De.length = O, De.crossLength = U, De.xy = function(ce) {
+ return t.evalxy([], H, ce);
+ }, De.dxy = function(ce, je) {
+ return t.dxydj([], Le, ce, ge, je);
+ }, re = 0; re < U; re++) oe = Math.min(U - 2, re), _e = re - oe, ie = t.evalxy([], H, re), M.smoothing && re > 0 && (Ae = t.dxydj([], Le, re - 1, ge, 0), Pe.push(Ce[0] + Ae[0] / 3), me.push(Ce[1] + Ae[1] / 3), Be = t.dxydj([], Le, re - 1, ge, 1), Pe.push(ie[0] - Be[0] / 3), me.push(ie[1] - Be[1] / 3)), Pe.push(ie[0]), me.push(ie[1]), Ce = ie;
+ return De.axisLetter = r, De.axis = E, De.crossAxis = M, De.value = N, De.constvar = n, De.index = f, De.x = Pe, De.y = me, De.smoothing = M.smoothing, De;
+ }
+ function j(N) {
+ var H, re, oe, _e, Ce, Le = [], ge = [], ie = {};
+ if (ie.length = k.length, ie.crossLength = C.length, r === "b") for (oe = Math.max(0, Math.min(U - 2, N)), Ce = Math.min(1, Math.max(0, N - oe)), ie.xy = function(Se) {
+ return t.evalxy([], Se, N);
+ }, ie.dxy = function(Se, Ee) {
+ return t.dxydi([], Se, oe, Ee, Ce);
+ }, H = 0; H < A; H++) Le[H] = g[N * G][H], ge[H] = P[N * G][H];
+ else for (re = Math.max(0, Math.min(O - 2, N)), _e = Math.min(1, Math.max(0, N - re)), ie.xy = function(Se) {
+ return t.evalxy([], N, Se);
+ }, ie.dxy = function(Se, Ee) {
+ return t.dxydj([], re, Se, _e, Ee);
+ }, H = 0; H < z; H++) Le[H] = g[H][N * G], ge[H] = P[H][N * G];
+ return ie.axisLetter = r, ie.axis = E, ie.crossAxis = M, ie.value = k[N], ie.constvar = n, ie.index = N, ie.x = Le, ie.y = ge, ie.smoothing = M.smoothing, ie;
+ }
+ if (E.tickmode === "array") {
+ for (s = 5e-15, l = [Math.floor((k.length - 1 - E.arraytick0) / E.arraydtick * (1 + s)), Math.ceil(-E.arraytick0 / E.arraydtick / (1 + s))].sort(function(N, H) {
+ return N - H;
+ }), u = l[0] - 1, c = l[1] + 1, f = u; f < c; f++) a = E.arraytick0 + E.arraydtick * f, !(a < 0 || a > k.length - 1) && T.push(Ox(j(a), { color: E.gridcolor, width: E.gridwidth, dash: E.griddash }));
+ for (f = u; f < c; f++) if (o = E.arraytick0 + E.arraydtick * f, v = Math.min(o + E.arraydtick, k.length - 1), !(o < 0 || o > k.length - 1) && !(v < 0 || v > k.length - 1)) for (_ = k[o], b = k[v], i = 0; i < E.minorgridcount; i++) p = v - o, !(p <= 0) && (d = _ + (b - _) * (i + 1) / (E.minorgridcount + 1) * (E.arraydtick / p), !(d < k[0] || d > k[k.length - 1]) && L.push(Ox(Z(d), { color: E.minorgridcolor, width: E.minorgridwidth, dash: E.minorgriddash })));
+ E.startline && x.push(Ox(j(0), { color: E.startlinecolor, width: E.startlinewidth })), E.endline && x.push(Ox(j(k.length - 1), { color: E.endlinecolor, width: E.endlinewidth }));
+ } else {
+ for (s = 5e-15, l = [Math.floor((k[k.length - 1] - E.tick0) / E.dtick * (1 + s)), Math.ceil((k[0] - E.tick0) / E.dtick / (1 + s))].sort(function(N, H) {
+ return N - H;
+ }), u = l[0], c = l[1], f = u; f <= c; f++) h = E.tick0 + E.dtick * f, T.push(Ox(Z(h), { color: E.gridcolor, width: E.gridwidth, dash: E.griddash }));
+ for (f = u - 1; f < c + 1; f++) for (h = E.tick0 + E.dtick * f, i = 0; i < E.minorgridcount; i++) d = h + E.dtick * (i + 1) / (E.minorgridcount + 1), !(d < k[0] || d > k[k.length - 1]) && L.push(Ox(Z(d), { color: E.minorgridcolor, width: E.minorgridwidth, dash: E.minorgriddash }));
+ E.startline && x.push(Ox(Z(k[0]), { color: E.startlinecolor, width: E.startlinewidth })), E.endline && x.push(Ox(Z(k[k.length - 1]), { color: E.endlinecolor, width: E.endlinewidth }));
+ }
+ };
+ });
+ var TYe = ye((J2r, wYe) => {
+ var xYe = ho(), bYe = Ao().extendFlat;
+ wYe.exports = function(t, r) {
+ var n, i, a, o, s, l = r._labels = [], u = r._gridlines;
+ for (n = 0; n < u.length; n++) s = u[n], ["start", "both"].indexOf(r.showticklabels) !== -1 && (i = xYe.tickText(r, s.value), bYe(i, { prefix: a, suffix: o, endAnchor: true, xy: s.xy(0), dxy: s.dxy(0, 0), axis: s.axis, length: s.crossAxis.length, font: s.axis.tickfont, isFirst: n === 0, isLast: n === u.length - 1 }), l.push(i)), ["end", "both"].indexOf(r.showticklabels) !== -1 && (i = xYe.tickText(r, s.value), bYe(i, { endAnchor: false, xy: s.xy(s.crossLength - 1), dxy: s.dxy(s.crossLength - 2, 1), axis: s.axis, length: s.crossAxis.length, font: s.axis.tickfont, isFirst: n === 0, isLast: n === u.length - 1 }), l.push(i));
+ };
+ });
+ var SYe = ye(($2r, AYe) => {
+ AYe.exports = function(t, r, n, i) {
+ var a, o, s, l = [], u = !!n.smoothing, c = !!i.smoothing, f = t[0].length - 1, h = t.length - 1;
+ for (a = 0, o = [], s = []; a <= f; a++) o[a] = t[0][a], s[a] = r[0][a];
+ for (l.push({ x: o, y: s, bicubic: u }), a = 0, o = [], s = []; a <= h; a++) o[a] = t[a][f], s[a] = r[a][f];
+ for (l.push({ x: o, y: s, bicubic: c }), a = f, o = [], s = []; a >= 0; a--) o[f - a] = t[h][a], s[f - a] = r[h][a];
+ for (l.push({ x: o, y: s, bicubic: u }), a = h, o = [], s = []; a >= 0; a--) o[h - a] = t[a][0], s[h - a] = r[a][0];
+ return l.push({ x: o, y: s, bicubic: c }), l;
+ };
+ });
+ var EYe = ye((Q2r, MYe) => {
+ var $Kt = Dr();
+ MYe.exports = function(t, r, n) {
+ var i, a, o, s = [], l = [], u = t[0].length, c = t.length;
+ function f(oe, _e) {
+ var Ce = 0, Le, ge = 0;
+ return oe > 0 && (Le = t[_e][oe - 1]) !== void 0 && (ge++, Ce += Le), oe < u - 1 && (Le = t[_e][oe + 1]) !== void 0 && (ge++, Ce += Le), _e > 0 && (Le = t[_e - 1][oe]) !== void 0 && (ge++, Ce += Le), _e < c - 1 && (Le = t[_e + 1][oe]) !== void 0 && (ge++, Ce += Le), Ce / Math.max(1, ge);
+ }
+ var h = 0;
+ for (i = 0; i < u; i++) for (a = 0; a < c; a++) t[a][i] === void 0 && (s.push(i), l.push(a), t[a][i] = f(i, a)), h = Math.max(h, Math.abs(t[a][i]));
+ if (!s.length) return t;
+ var d, v, _, b, p, k, E, T, L, x, C, M = 1e-5, g = 0, P = 100, A = 0, z = s.length;
+ do {
+ for (g = 0, o = 0; o < z; o++) {
+ i = s[o], a = l[o];
+ var O = 0, U = 0, G, Z, j, N, H, re;
+ i === 0 ? (H = Math.min(u - 1, 2), j = r[H], N = r[1], G = t[a][H], Z = t[a][1], U += Z + (Z - G) * (r[0] - N) / (N - j), O++) : i === u - 1 && (H = Math.max(0, u - 3), j = r[H], N = r[u - 2], G = t[a][H], Z = t[a][u - 2], U += Z + (Z - G) * (r[u - 1] - N) / (N - j), O++), (i === 0 || i === u - 1) && a > 0 && a < c - 1 && (d = n[a + 1] - n[a], v = n[a] - n[a - 1], U += (v * t[a + 1][i] + d * t[a - 1][i]) / (v + d), O++), a === 0 ? (re = Math.min(c - 1, 2), j = n[re], N = n[1], G = t[re][i], Z = t[1][i], U += Z + (Z - G) * (n[0] - N) / (N - j), O++) : a === c - 1 && (re = Math.max(0, c - 3), j = n[re], N = n[c - 2], G = t[re][i], Z = t[c - 2][i], U += Z + (Z - G) * (n[c - 1] - N) / (N - j), O++), (a === 0 || a === c - 1) && i > 0 && i < u - 1 && (d = r[i + 1] - r[i], v = r[i] - r[i - 1], U += (v * t[a][i + 1] + d * t[a][i - 1]) / (v + d), O++), O ? U /= O : (_ = r[i + 1] - r[i], b = r[i] - r[i - 1], p = n[a + 1] - n[a], k = n[a] - n[a - 1], E = _ * b * (_ + b), T = p * k * (p + k), U = (E * (k * t[a + 1][i] + p * t[a - 1][i]) + T * (b * t[a][i + 1] + _ * t[a][i - 1])) / (T * (b + _) + E * (k + p))), L = U - t[a][i], x = L / h, g += x * x, C = O ? 0 : 0.85, t[a][i] += L * (1 + C);
+ }
+ g = Math.sqrt(g);
+ } while (A++ < P && g > M);
+ return $Kt.log("Smoother converged to", g, "after", A, "iterations"), t;
+ };
+ });
+ var CYe = ye((ewr, kYe) => {
+ kYe.exports = { RELATIVE_CULL_TOLERANCE: 1e-6 };
+ });
+ var IYe = ye((twr, PYe) => {
+ var LYe = 0.5;
+ PYe.exports = function(t, r, n, i) {
+ var a = t[0] - r[0], o = t[1] - r[1], s = n[0] - r[0], l = n[1] - r[1], u = Math.pow(a * a + o * o, LYe / 2), c = Math.pow(s * s + l * l, LYe / 2), f = (c * c * a - u * u * s) * i, h = (c * c * o - u * u * l) * i, d = c * (u + c) * 3, v = u * (u + c) * 3;
+ return [[r[0] + (d && f / d), r[1] + (d && h / d)], [r[0] - (v && f / v), r[1] - (v && h / v)]];
+ };
+ });
+ var DYe = ye((rwr, RYe) => {
+ var F$ = IYe(), e9 = Dr().ensureArray;
+ function H5(e, t, r) {
+ var n = -0.5 * r[0] + 1.5 * t[0], i = -0.5 * r[1] + 1.5 * t[1];
+ return [(2 * n + e[0]) / 3, (2 * i + e[1]) / 3];
+ }
+ RYe.exports = function(t, r, n, i, a, o) {
+ var s, l, u, c, f, h, d, v, _, b, p = n[0].length, k = n.length, E = a ? 3 * p - 2 : p, T = o ? 3 * k - 2 : k;
+ for (t = e9(t, T), r = e9(r, T), u = 0; u < T; u++) t[u] = e9(t[u], E), r[u] = e9(r[u], E);
+ for (l = 0, c = 0; l < k; l++, c += o ? 3 : 1) for (f = t[c], h = r[c], d = n[l], v = i[l], s = 0, u = 0; s < p; s++, u += a ? 3 : 1) f[u] = d[s], h[u] = v[s];
+ if (a) for (l = 0, c = 0; l < k; l++, c += o ? 3 : 1) {
+ for (s = 1, u = 3; s < p - 1; s++, u += 3) _ = F$([n[l][s - 1], i[l][s - 1]], [n[l][s], i[l][s]], [n[l][s + 1], i[l][s + 1]], a), t[c][u - 1] = _[0][0], r[c][u - 1] = _[0][1], t[c][u + 1] = _[1][0], r[c][u + 1] = _[1][1];
+ b = H5([t[c][0], r[c][0]], [t[c][2], r[c][2]], [t[c][3], r[c][3]]), t[c][1] = b[0], r[c][1] = b[1], b = H5([t[c][E - 1], r[c][E - 1]], [t[c][E - 3], r[c][E - 3]], [t[c][E - 4], r[c][E - 4]]), t[c][E - 2] = b[0], r[c][E - 2] = b[1];
+ }
+ if (o) for (u = 0; u < E; u++) {
+ for (c = 3; c < T - 3; c += 3) _ = F$([t[c - 3][u], r[c - 3][u]], [t[c][u], r[c][u]], [t[c + 3][u], r[c + 3][u]], o), t[c - 1][u] = _[0][0], r[c - 1][u] = _[0][1], t[c + 1][u] = _[1][0], r[c + 1][u] = _[1][1];
+ b = H5([t[0][u], r[0][u]], [t[2][u], r[2][u]], [t[3][u], r[3][u]]), t[1][u] = b[0], r[1][u] = b[1], b = H5([t[T - 1][u], r[T - 1][u]], [t[T - 3][u], r[T - 3][u]], [t[T - 4][u], r[T - 4][u]]), t[T - 2][u] = b[0], r[T - 2][u] = b[1];
+ }
+ if (a && o) for (c = 1; c < T; c += (c + 1) % 3 === 0 ? 2 : 1) {
+ for (u = 3; u < E - 3; u += 3) _ = F$([t[c][u - 3], r[c][u - 3]], [t[c][u], r[c][u]], [t[c][u + 3], r[c][u + 3]], a), t[c][u - 1] = 0.5 * (t[c][u - 1] + _[0][0]), r[c][u - 1] = 0.5 * (r[c][u - 1] + _[0][1]), t[c][u + 1] = 0.5 * (t[c][u + 1] + _[1][0]), r[c][u + 1] = 0.5 * (r[c][u + 1] + _[1][1]);
+ b = H5([t[c][0], r[c][0]], [t[c][2], r[c][2]], [t[c][3], r[c][3]]), t[c][1] = 0.5 * (t[c][1] + b[0]), r[c][1] = 0.5 * (r[c][1] + b[1]), b = H5([t[c][E - 1], r[c][E - 1]], [t[c][E - 3], r[c][E - 3]], [t[c][E - 4], r[c][E - 4]]), t[c][E - 2] = 0.5 * (t[c][E - 2] + b[0]), r[c][E - 2] = 0.5 * (r[c][E - 2] + b[1]);
+ }
+ return [t, r];
+ };
+ });
+ var zYe = ye((iwr, FYe) => {
+ FYe.exports = function(e, t, r, n, i) {
+ var a = t - 2, o = r - 2;
+ return n && i ? function(s, l, u) {
+ s || (s = []);
+ var c, f, h, d, v, _, b = Math.max(0, Math.min(Math.floor(l), a)), p = Math.max(0, Math.min(Math.floor(u), o)), k = Math.max(0, Math.min(1, l - b)), E = Math.max(0, Math.min(1, u - p));
+ b *= 3, p *= 3;
+ var T = k * k, L = T * k, x = 1 - k, C = x * x, M = C * x, g = E * E, P = g * E, A = 1 - E, z = A * A, O = z * A;
+ for (_ = 0; _ < e.length; _++) v = e[_], c = M * v[p][b] + 3 * (C * k * v[p][b + 1] + x * T * v[p][b + 2]) + L * v[p][b + 3], f = M * v[p + 1][b] + 3 * (C * k * v[p + 1][b + 1] + x * T * v[p + 1][b + 2]) + L * v[p + 1][b + 3], h = M * v[p + 2][b] + 3 * (C * k * v[p + 2][b + 1] + x * T * v[p + 2][b + 2]) + L * v[p + 2][b + 3], d = M * v[p + 3][b] + 3 * (C * k * v[p + 3][b + 1] + x * T * v[p + 3][b + 2]) + L * v[p + 3][b + 3], s[_] = O * c + 3 * (z * E * f + A * g * h) + P * d;
+ return s;
+ } : n ? function(s, l, u) {
+ s || (s = []);
+ var c = Math.max(0, Math.min(Math.floor(l), a)), f = Math.max(0, Math.min(Math.floor(u), o)), h = Math.max(0, Math.min(1, l - c)), d = Math.max(0, Math.min(1, u - f)), v, _, b, p, k, E;
+ c *= 3;
+ var T = h * h, L = T * h, x = 1 - h, C = x * x, M = C * x, g = 1 - d;
+ for (k = 0; k < e.length; k++) E = e[k], v = g * E[f][c] + d * E[f + 1][c], _ = g * E[f][c + 1] + d * E[f + 1][c + 1], b = g * E[f][c + 2] + d * E[f + 1][c + 1], p = g * E[f][c + 3] + d * E[f + 1][c + 1], s[k] = M * v + 3 * (C * h * _ + x * T * b) + L * p;
+ return s;
+ } : i ? function(s, l, u) {
+ s || (s = []);
+ var c = Math.max(0, Math.min(Math.floor(l), a)), f = Math.max(0, Math.min(Math.floor(u), o)), h = Math.max(0, Math.min(1, l - c)), d = Math.max(0, Math.min(1, u - f)), v, _, b, p, k, E;
+ f *= 3;
+ var T = d * d, L = T * d, x = 1 - d, C = x * x, M = C * x, g = 1 - h;
+ for (k = 0; k < e.length; k++) E = e[k], v = g * E[f][c] + h * E[f][c + 1], _ = g * E[f + 1][c] + h * E[f + 1][c + 1], b = g * E[f + 2][c] + h * E[f + 2][c + 1], p = g * E[f + 3][c] + h * E[f + 3][c + 1], s[k] = M * v + 3 * (C * d * _ + x * T * b) + L * p;
+ return s;
+ } : function(s, l, u) {
+ s || (s = []);
+ var c = Math.max(0, Math.min(Math.floor(l), a)), f = Math.max(0, Math.min(Math.floor(u), o)), h = Math.max(0, Math.min(1, l - c)), d = Math.max(0, Math.min(1, u - f)), v, _, b, p, k = 1 - d, E = 1 - h;
+ for (b = 0; b < e.length; b++) p = e[b], v = E * p[f][c] + h * p[f][c + 1], _ = E * p[f + 1][c] + h * p[f + 1][c + 1], s[b] = k * v + d * _;
+ return s;
+ };
+ };
+ });
+ var qYe = ye((nwr, OYe) => {
+ OYe.exports = function(e, t, r) {
+ return t && r ? function(n, i, a, o, s) {
+ n || (n = []);
+ var l, u, c, f, h, d;
+ i *= 3, a *= 3;
+ var v = o * o, _ = 1 - o, b = _ * _, p = _ * o * 2, k = -3 * b, E = 3 * (b - p), T = 3 * (p - v), L = 3 * v, x = s * s, C = x * s, M = 1 - s, g = M * M, P = g * M;
+ for (d = 0; d < e.length; d++) h = e[d], l = k * h[a][i] + E * h[a][i + 1] + T * h[a][i + 2] + L * h[a][i + 3], u = k * h[a + 1][i] + E * h[a + 1][i + 1] + T * h[a + 1][i + 2] + L * h[a + 1][i + 3], c = k * h[a + 2][i] + E * h[a + 2][i + 1] + T * h[a + 2][i + 2] + L * h[a + 2][i + 3], f = k * h[a + 3][i] + E * h[a + 3][i + 1] + T * h[a + 3][i + 2] + L * h[a + 3][i + 3], n[d] = P * l + 3 * (g * s * u + M * x * c) + C * f;
+ return n;
+ } : t ? function(n, i, a, o, s) {
+ n || (n = []);
+ var l, u, c, f;
+ i *= 3;
+ var h = o * o, d = 1 - o, v = d * d, _ = d * o * 2, b = -3 * v, p = 3 * (v - _), k = 3 * (_ - h), E = 3 * h, T = 1 - s;
+ for (c = 0; c < e.length; c++) f = e[c], l = b * f[a][i] + p * f[a][i + 1] + k * f[a][i + 2] + E * f[a][i + 3], u = b * f[a + 1][i] + p * f[a + 1][i + 1] + k * f[a + 1][i + 2] + E * f[a + 1][i + 3], n[c] = T * l + s * u;
+ return n;
+ } : r ? function(n, i, a, o, s) {
+ n || (n = []);
+ var l, u, c, f, h, d;
+ a *= 3;
+ var v = s * s, _ = v * s, b = 1 - s, p = b * b, k = p * b;
+ for (h = 0; h < e.length; h++) d = e[h], l = d[a][i + 1] - d[a][i], u = d[a + 1][i + 1] - d[a + 1][i], c = d[a + 2][i + 1] - d[a + 2][i], f = d[a + 3][i + 1] - d[a + 3][i], n[h] = k * l + 3 * (p * s * u + b * v * c) + _ * f;
+ return n;
+ } : function(n, i, a, o, s) {
+ n || (n = []);
+ var l, u, c, f, h = 1 - s;
+ for (c = 0; c < e.length; c++) f = e[c], l = f[a][i + 1] - f[a][i], u = f[a + 1][i + 1] - f[a + 1][i], n[c] = h * l + s * u;
+ return n;
+ };
+ };
+ });
+ var NYe = ye((awr, BYe) => {
+ BYe.exports = function(e, t, r) {
+ return t && r ? function(n, i, a, o, s) {
+ n || (n = []);
+ var l, u, c, f, h, d;
+ i *= 3, a *= 3;
+ var v = o * o, _ = v * o, b = 1 - o, p = b * b, k = p * b, E = s * s, T = 1 - s, L = T * T, x = T * s * 2, C = -3 * L, M = 3 * (L - x), g = 3 * (x - E), P = 3 * E;
+ for (d = 0; d < e.length; d++) h = e[d], l = C * h[a][i] + M * h[a + 1][i] + g * h[a + 2][i] + P * h[a + 3][i], u = C * h[a][i + 1] + M * h[a + 1][i + 1] + g * h[a + 2][i + 1] + P * h[a + 3][i + 1], c = C * h[a][i + 2] + M * h[a + 1][i + 2] + g * h[a + 2][i + 2] + P * h[a + 3][i + 2], f = C * h[a][i + 3] + M * h[a + 1][i + 3] + g * h[a + 2][i + 3] + P * h[a + 3][i + 3], n[d] = k * l + 3 * (p * o * u + b * v * c) + _ * f;
+ return n;
+ } : t ? function(n, i, a, o, s) {
+ n || (n = []);
+ var l, u, c, f, h, d;
+ i *= 3;
+ var v = s * s, _ = v * s, b = 1 - s, p = b * b, k = p * b;
+ for (h = 0; h < e.length; h++) d = e[h], l = d[a + 1][i] - d[a][i], u = d[a + 1][i + 1] - d[a][i + 1], c = d[a + 1][i + 2] - d[a][i + 2], f = d[a + 1][i + 3] - d[a][i + 3], n[h] = k * l + 3 * (p * s * u + b * v * c) + _ * f;
+ return n;
+ } : r ? function(n, i, a, o, s) {
+ n || (n = []);
+ var l, u, c, f;
+ a *= 3;
+ var h = 1 - o, d = s * s, v = 1 - s, _ = v * v, b = v * s * 2, p = -3 * _, k = 3 * (_ - b), E = 3 * (b - d), T = 3 * d;
+ for (c = 0; c < e.length; c++) f = e[c], l = p * f[a][i] + k * f[a + 1][i] + E * f[a + 2][i] + T * f[a + 3][i], u = p * f[a][i + 1] + k * f[a + 1][i + 1] + E * f[a + 2][i + 1] + T * f[a + 3][i + 1], n[c] = h * l + o * u;
+ return n;
+ } : function(n, i, a, o, s) {
+ n || (n = []);
+ var l, u, c, f, h = 1 - o;
+ for (c = 0; c < e.length; c++) f = e[c], l = f[a + 1][i] - f[a][i], u = f[a + 1][i + 1] - f[a][i + 1], n[c] = h * l + o * u;
+ return n;
+ };
+ };
+ });
+ var HYe = ye((owr, GYe) => {
+ var UYe = CYe(), VYe = U6().findBin, QKt = DYe(), eJt = zYe(), tJt = qYe(), rJt = NYe();
+ GYe.exports = function(t) {
+ var r = t._a, n = t._b, i = r.length, a = n.length, o = t.aaxis, s = t.baxis, l = r[0], u = r[i - 1], c = n[0], f = n[a - 1], h = r[r.length - 1] - r[0], d = n[n.length - 1] - n[0], v = h * UYe.RELATIVE_CULL_TOLERANCE, _ = d * UYe.RELATIVE_CULL_TOLERANCE;
+ l -= v, u += v, c -= _, f += _, t.isVisible = function(b, p) {
+ return b > l && b < u && p > c && p < f;
+ }, t.isOccluded = function(b, p) {
+ return b < l || b > u || p < c || p > f;
+ }, t.setScale = function() {
+ var b = t._x, p = t._y, k = QKt(t._xctrl, t._yctrl, b, p, o.smoothing, s.smoothing);
+ t._xctrl = k[0], t._yctrl = k[1], t.evalxy = eJt([t._xctrl, t._yctrl], i, a, o.smoothing, s.smoothing), t.dxydi = tJt([t._xctrl, t._yctrl], o.smoothing, s.smoothing), t.dxydj = rJt([t._xctrl, t._yctrl], o.smoothing, s.smoothing);
+ }, t.i2a = function(b) {
+ var p = Math.max(0, Math.floor(b[0]), i - 2), k = b[0] - p;
+ return (1 - k) * r[p] + k * r[p + 1];
+ }, t.j2b = function(b) {
+ var p = Math.max(0, Math.floor(b[1]), i - 2), k = b[1] - p;
+ return (1 - k) * n[p] + k * n[p + 1];
+ }, t.ij2ab = function(b) {
+ return [t.i2a(b[0]), t.j2b(b[1])];
+ }, t.a2i = function(b) {
+ var p = Math.max(0, Math.min(VYe(b, r), i - 2)), k = r[p], E = r[p + 1];
+ return Math.max(0, Math.min(i - 1, p + (b - k) / (E - k)));
+ }, t.b2j = function(b) {
+ var p = Math.max(0, Math.min(VYe(b, n), a - 2)), k = n[p], E = n[p + 1];
+ return Math.max(0, Math.min(a - 1, p + (b - k) / (E - k)));
+ }, t.ab2ij = function(b) {
+ return [t.a2i(b[0]), t.b2j(b[1])];
+ }, t.i2c = function(b, p) {
+ return t.evalxy([], b, p);
+ }, t.ab2xy = function(b, p, k) {
+ if (!k && (b < r[0] || b > r[i - 1] | p < n[0] || p > n[a - 1])) return [false, false];
+ var E = t.a2i(b), T = t.b2j(p), L = t.evalxy([], E, T);
+ if (k) {
+ var x = 0, C = 0, M = [], g, P, A, z;
+ b < r[0] ? (g = 0, P = 0, x = (b - r[0]) / (r[1] - r[0])) : b > r[i - 1] ? (g = i - 2, P = 1, x = (b - r[i - 1]) / (r[i - 1] - r[i - 2])) : (g = Math.max(0, Math.min(i - 2, Math.floor(E))), P = E - g), p < n[0] ? (A = 0, z = 0, C = (p - n[0]) / (n[1] - n[0])) : p > n[a - 1] ? (A = a - 2, z = 1, C = (p - n[a - 1]) / (n[a - 1] - n[a - 2])) : (A = Math.max(0, Math.min(a - 2, Math.floor(T))), z = T - A), x && (t.dxydi(M, g, A, P, z), L[0] += M[0] * x, L[1] += M[1] * x), C && (t.dxydj(M, g, A, P, z), L[0] += M[0] * C, L[1] += M[1] * C);
+ }
+ return L;
+ }, t.c2p = function(b, p, k) {
+ return [p.c2p(b[0]), k.c2p(b[1])];
+ }, t.p2x = function(b, p, k) {
+ return [p.p2c(b[0]), k.p2c(b[1])];
+ }, t.dadi = function(b) {
+ var p = Math.max(0, Math.min(r.length - 2, b));
+ return r[p + 1] - r[p];
+ }, t.dbdj = function(b) {
+ var p = Math.max(0, Math.min(n.length - 2, b));
+ return n[p + 1] - n[p];
+ }, t.dxyda = function(b, p, k, E) {
+ var T = t.dxydi(null, b, p, k, E), L = t.dadi(b, k);
+ return [T[0] / L, T[1] / L];
+ }, t.dxydb = function(b, p, k, E) {
+ var T = t.dxydj(null, b, p, k, E), L = t.dbdj(p, E);
+ return [T[0] / L, T[1] / L];
+ }, t.dxyda_rough = function(b, p, k) {
+ var E = h * (k || 0.1), T = t.ab2xy(b + E, p, true), L = t.ab2xy(b - E, p, true);
+ return [(T[0] - L[0]) * 0.5 / E, (T[1] - L[1]) * 0.5 / E];
+ }, t.dxydb_rough = function(b, p, k) {
+ var E = d * (k || 0.1), T = t.ab2xy(b, p + E, true), L = t.ab2xy(b, p - E, true);
+ return [(T[0] - L[0]) * 0.5 / E, (T[1] - L[1]) * 0.5 / E];
+ }, t.dpdx = function(b) {
+ return b._m;
+ }, t.dpdy = function(b) {
+ return b._m;
+ };
+ };
+ });
+ var $Ye = ye((swr, JYe) => {
+ var t9 = ho(), jYe = Dr().isArray1D, iJt = dYe(), WYe = mYe(), XYe = _Ye(), ZYe = TYe(), nJt = SYe(), YYe = u8(), KYe = EYe(), aJt = s8(), oJt = HYe();
+ JYe.exports = function(t, r) {
+ var n = t9.getFromId(t, r.xaxis), i = t9.getFromId(t, r.yaxis), a = r.aaxis, o = r.baxis, s = r.x, l = r.y, u = [];
+ s && jYe(s) && u.push("x"), l && jYe(l) && u.push("y"), u.length && aJt(r, a, o, "a", "b", u);
+ var c = r._a = r._a || r.a, f = r._b = r._b || r.b;
+ s = r._x || r.x, l = r._y || r.y;
+ var h = {};
+ if (r._cheater) {
+ var d = a.cheatertype === "index" ? c.length : c, v = o.cheatertype === "index" ? f.length : f;
+ s = iJt(d, v, r.cheaterslope);
+ }
+ r._x = s = YYe(s), r._y = l = YYe(l), KYe(s, c, f), KYe(l, c, f), oJt(r), r.setScale();
+ var _ = WYe(s), b = WYe(l), p = 0.5 * (_[1] - _[0]), k = 0.5 * (_[1] + _[0]), E = 0.5 * (b[1] - b[0]), T = 0.5 * (b[1] + b[0]), L = 1.3;
+ return _ = [k - p * L, k + p * L], b = [T - E * L, T + E * L], r._extremes[n._id] = t9.findExtremes(n, _, { padded: true }), r._extremes[i._id] = t9.findExtremes(i, b, { padded: true }), XYe(r, "a", "b"), XYe(r, "b", "a"), ZYe(r, a), ZYe(r, o), h.clipsegments = nJt(r._xctrl, r._yctrl, a, o), h.x = s, h.y = l, h.a = c, h.b = f, [h];
+ };
+ });
+ var eKe = ye((lwr, QYe) => {
+ QYe.exports = { attributes: Z7(), supplyDefaults: QZe(), plot: fYe(), calc: $Ye(), animatable: true, isContainer: true, moduleType: "trace", name: "carpet", basePlotModule: mh(), categories: ["cartesian", "svg", "carpet", "carpetAxis", "notLegendIsolatable", "noMultiCategory", "noHover", "noSortingByValue"], meta: {} };
+ });
+ var rKe = ye((uwr, tKe) => {
+ tKe.exports = eKe();
+ });
+ var z$ = ye((cwr, oKe) => {
+ var sJt = Pg(), c0 = pf(), lJt = Gl(), { hovertemplateAttrs: uJt, texttemplateAttrs: cJt, templatefallbackAttrs: iKe } = Ll(), nKe = Tu(), qx = Ao().extendFlat, ug = c0.marker, j5 = c0.line, aKe = ug.line;
+ oKe.exports = { carpet: { valType: "string", editType: "calc" }, a: { valType: "data_array", editType: "calc" }, b: { valType: "data_array", editType: "calc" }, mode: qx({}, c0.mode, { dflt: "markers" }), text: qx({}, c0.text, {}), texttemplate: cJt({ editType: "plot" }, { keys: ["a", "b", "text"] }), texttemplatefallback: iKe({ editType: "plot" }), hovertext: qx({}, c0.hovertext, {}), line: { color: j5.color, width: j5.width, dash: j5.dash, backoff: j5.backoff, shape: qx({}, j5.shape, { values: ["linear", "spline"] }), smoothing: j5.smoothing, editType: "calc" }, connectgaps: c0.connectgaps, fill: qx({}, c0.fill, { values: ["none", "toself", "tonext"], dflt: "none" }), fillcolor: sJt(), marker: qx({ symbol: ug.symbol, opacity: ug.opacity, maxdisplayed: ug.maxdisplayed, angle: ug.angle, angleref: ug.angleref, standoff: ug.standoff, size: ug.size, sizeref: ug.sizeref, sizemin: ug.sizemin, sizemode: ug.sizemode, line: qx({ width: aKe.width, dash: aKe.dash, editType: "calc" }, nKe("marker.line")), gradient: ug.gradient, editType: "calc" }, nKe("marker")), textfont: c0.textfont, textposition: c0.textposition, selected: c0.selected, unselected: c0.unselected, hoverinfo: qx({}, lJt.hoverinfo, { flags: ["a", "b", "text", "name"] }), hoveron: c0.hoveron, hovertemplate: uJt(), hovertemplatefallback: iKe(), zorder: c0.zorder };
+ });
+ var cKe = ye((fwr, uKe) => {
+ var sKe = Dr(), fJt = Lm(), W5 = Ru(), hJt = $p(), dJt = D0(), lKe = sT(), vJt = F0(), pJt = Fg(), gJt = z$();
+ uKe.exports = function(t, r, n, i) {
+ function a(h, d) {
+ return sKe.coerce(t, r, gJt, h, d);
+ }
+ a("carpet"), r.xaxis = "x", r.yaxis = "y";
+ var o = a("a"), s = a("b"), l = Math.min(o.length, s.length);
+ if (!l) {
+ r.visible = false;
+ return;
+ }
+ r._length = l, a("text"), a("texttemplate"), a("texttemplatefallback"), a("hovertext");
+ var u = l < fJt.PTS_LINESONLY ? "lines+markers" : "lines";
+ a("mode", u), W5.hasMarkers(r) && hJt(t, r, n, i, a, { gradient: true }), W5.hasLines(r) && (dJt(t, r, n, i, a, { backoff: true }), lKe(t, r, a), a("connectgaps")), W5.hasText(r) && vJt(t, r, i, a);
+ var c = [];
+ (W5.hasMarkers(r) || W5.hasText(r)) && (a("marker.maxdisplayed"), c.push("points")), a("fill"), r.fill !== "none" && (pJt(t, r, n, a), W5.hasLines(r) || lKe(t, r, a)), (r.fill === "tonext" || r.fill === "toself") && c.push("fills");
+ var f = a("hoveron", c.join("+") || "points");
+ f !== "fills" && (a("hovertemplate"), a("hovertemplatefallback")), a("zorder"), sKe.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var hKe = ye((hwr, fKe) => {
+ fKe.exports = function(t, r) {
+ var n = {}, i = r._carpet, a = i.ab2ij([t.a, t.b]), o = Math.floor(a[0]), s = a[0] - o, l = Math.floor(a[1]), u = a[1] - l, c = i.evalxy([], o, l, s, u);
+ return n.yLabel = c[1].toFixed(3), n;
+ };
+ });
+ var r9 = ye((dwr, dKe) => {
+ dKe.exports = function(e, t) {
+ for (var r = e._fullData.length, n, i = 0; i < r; i++) {
+ var a = e._fullData[i];
+ if (a.index !== t.index && a.type === "carpet" && (n || (n = a), a.carpet === t.carpet)) return a;
+ }
+ return n;
+ };
+ });
+ var gKe = ye((vwr, pKe) => {
+ var vKe = Eo(), mJt = z0(), yJt = Rm(), _Jt = O0(), xJt = q0().calcMarkerSize, bJt = r9();
+ pKe.exports = function(t, r) {
+ var n = r._carpetTrace = bJt(t, r);
+ if (!(!n || !n.visible || n.visible === "legendonly")) {
+ var i;
+ r.xaxis = n.xaxis, r.yaxis = n.yaxis;
+ var a = r._length, o = new Array(a), s, l, u = false;
+ for (i = 0; i < a; i++) if (s = r.a[i], l = r.b[i], vKe(s) && vKe(l)) {
+ var c = n.ab2xy(+s, +l, true), f = n.isVisible(+s, +l);
+ f || (u = true), o[i] = { x: c[0], y: c[1], a: s, b: l, vis: f };
+ } else o[i] = { x: false, y: false };
+ return r._needsCull = u, o[0].carpet = n, o[0].trace = r, xJt(r, a), mJt(t, r), yJt(o, r), _Jt(o, r), o;
+ }
+ };
+ });
+ var _Ke = ye((pwr, yKe) => {
+ var wJt = dT(), mKe = ho(), TJt = So();
+ yKe.exports = function(t, r, n, i) {
+ var a, o, s, l = n[0][0].carpet, u = mKe.getFromId(t, l.xaxis || "x"), c = mKe.getFromId(t, l.yaxis || "y"), f = { xaxis: u, yaxis: c, plot: r.plot };
+ for (a = 0; a < n.length; a++) o = n[a][0].trace, o._xA = u, o._yA = c;
+ for (wJt(t, f, n, i), a = 0; a < n.length; a++) o = n[a][0].trace, s = i.selectAll("g.trace" + o.uid + " .js-line"), TJt.setClipUrl(s, n[a][0].carpet._clipPathId, t);
+ };
+ });
+ var bKe = ye((gwr, xKe) => {
+ var AJt = mT(), SJt = Dr().fillText;
+ xKe.exports = function(t, r, n, i) {
+ var a = AJt(t, r, n, i);
+ if (!a || a[0].index === false) return;
+ var o = a[0];
+ if (o.index === void 0) {
+ var s = 1 - o.y0 / t.ya._length, l = t.xa._length, u = l * s / 2, c = l - u;
+ return o.x0 = Math.max(Math.min(o.x0, c), u), o.x1 = Math.max(Math.min(o.x1, c), u), a;
+ }
+ var f = o.cd[o.index];
+ o.a = f.a, o.b = f.b, o.xLabelVal = void 0, o.yLabelVal = void 0;
+ var h = o.trace, d = h._carpet, v = h._module.formatLabels(f, h);
+ o.yLabel = v.yLabel, delete o.text;
+ var _ = [];
+ function b(E, T) {
+ var L;
+ E.labelprefix && E.labelprefix.length > 0 ? L = E.labelprefix.replace(/ = $/, "") : L = E._hovertitle, _.push(L + ": " + T.toFixed(3) + E.labelsuffix);
+ }
+ if (!h.hovertemplate) {
+ var p = f.hi || h.hoverinfo, k = p.split("+");
+ k.indexOf("all") !== -1 && (k = ["a", "b", "text"]), k.indexOf("a") !== -1 && b(d.aaxis, f.a), k.indexOf("b") !== -1 && b(d.baxis, f.b), _.push("y: " + o.yLabel), k.indexOf("text") !== -1 && SJt(f, h, _), o.extraText = _.join(" ");
+ }
+ return a;
+ };
+ });
+ var TKe = ye((mwr, wKe) => {
+ wKe.exports = function(t, r, n, i, a) {
+ var o = i[a];
+ return t.a = o.a, t.b = o.b, t.y = o.y, t;
+ };
+ });
+ var SKe = ye((ywr, AKe) => {
+ AKe.exports = { attributes: z$(), supplyDefaults: cKe(), colorbar: $d(), formatLabels: hKe(), calc: gKe(), plot: _Ke(), style: sp().style, styleOnSelect: sp().styleOnSelect, hoverPoints: bKe(), selectPoints: yT(), eventData: TKe(), moduleType: "trace", name: "scattercarpet", basePlotModule: mh(), categories: ["svg", "carpet", "symbols", "showLegend", "carpetDependent", "zoomScale"], meta: {} };
+ });
+ var EKe = ye((_wr, MKe) => {
+ MKe.exports = SKe();
+ });
+ var O$ = ye((xwr, kKe) => {
+ var cg = FT(), T1 = O4(), MJt = Tu(), EJt = Ao().extendFlat, ly = T1.contours;
+ kKe.exports = EJt({ carpet: { valType: "string", editType: "calc" }, z: cg.z, a: cg.x, a0: cg.x0, da: cg.dx, b: cg.y, b0: cg.y0, db: cg.dy, text: cg.text, hovertext: cg.hovertext, transpose: cg.transpose, atype: cg.xtype, btype: cg.ytype, fillcolor: T1.fillcolor, autocontour: T1.autocontour, ncontours: T1.ncontours, contours: { type: ly.type, start: ly.start, end: ly.end, size: ly.size, coloring: { valType: "enumerated", values: ["fill", "lines", "none"], dflt: "fill", editType: "calc" }, showlines: ly.showlines, showlabels: ly.showlabels, labelfont: ly.labelfont, labelformat: ly.labelformat, operation: ly.operation, value: ly.value, editType: "calc", impliedEdits: { autocontour: false } }, line: { color: T1.line.color, width: T1.line.width, dash: T1.line.dash, smoothing: T1.line.smoothing, editType: "plot" }, zorder: T1.zorder }, MJt("", { cLetter: "z", autoColorDflt: false }));
+ });
+ var q$ = ye((bwr, PKe) => {
+ var CKe = Dr(), kJt = n8(), LKe = O$(), CJt = RG(), LJt = k8(), PJt = C8();
+ PKe.exports = function(t, r, n, i) {
+ function a(u, c) {
+ return CKe.coerce(t, r, LKe, u, c);
+ }
+ function o(u) {
+ return CKe.coerce2(t, r, LKe, u);
+ }
+ if (a("carpet"), t.a && t.b) {
+ var s = kJt(t, r, a, i, "a", "b");
+ if (!s) {
+ r.visible = false;
+ return;
+ }
+ a("text");
+ var l = a("contours.type") === "constraint";
+ l ? CJt(t, r, a, i, n, { hasHover: false }) : (LJt(t, r, a, o), PJt(t, r, a, i, { hasHover: false }));
+ } else r._defaultColor = n, r._length = null;
+ a("zorder");
+ };
+ });
+ var FKe = ye((wwr, DKe) => {
+ var IJt = gv(), IKe = Dr(), RJt = s8(), DJt = u8(), FJt = c8(), zJt = f8(), RKe = rG(), OJt = q$(), qJt = r9(), BJt = bG();
+ DKe.exports = function(t, r) {
+ var n = r._carpetTrace = qJt(t, r);
+ if (!(!n || !n.visible || n.visible === "legendonly")) {
+ if (!r.a || !r.b) {
+ var i = t.data[n.index], a = t.data[r.index];
+ a.a || (a.a = i.a), a.b || (a.b = i.b), OJt(a, r, r._defaultColor, t._fullLayout);
+ }
+ var o = NJt(t, r);
+ return BJt(r, r._z), o;
+ }
+ };
+ function NJt(e, t) {
+ var r = t._carpetTrace, n = r.aaxis, i = r.baxis, a, o, s, l, u, c, f;
+ n._minDtick = 0, i._minDtick = 0, IKe.isArray1D(t.z) && RJt(t, n, i, "a", "b", ["z"]), a = t._a = t._a || t.a, l = t._b = t._b || t.b, a = a ? n.makeCalcdata(t, "_a") : [], l = l ? i.makeCalcdata(t, "_b") : [], o = t.a0 || 0, s = t.da || 1, u = t.b0 || 0, c = t.db || 1, f = t._z = DJt(t._z || t.z, t.transpose), t._emptypoints = zJt(f), FJt(f, t._emptypoints);
+ var h = IKe.maxRowLength(f), d = t.xtype === "scaled" ? "" : a, v = RKe(t, d, o, s, h, n), _ = t.ytype === "scaled" ? "" : l, b = RKe(t, _, u, c, f.length, i), p = { a: v, b, z: f };
+ return t.contours.type === "levels" && t.contours.coloring !== "none" && IJt(e, t, { vals: f, containerStr: "", cLetter: "z" }), [p];
+ }
+ });
+ var OKe = ye((Twr, zKe) => {
+ var UJt = Dr().isArrayOrTypedArray;
+ zKe.exports = function(e, t, r, n) {
+ var i, a, o, s, l, u, c, f, h, d, v, _, b, p = UJt(r) ? "a" : "b", k = p === "a" ? e.aaxis : e.baxis, E = k.smoothing, T = p === "a" ? e.a2i : e.b2j, L = p === "a" ? r : n, x = p === "a" ? n : r, C = p === "a" ? t.a.length : t.b.length, M = p === "a" ? t.b.length : t.a.length, g = Math.floor(p === "a" ? e.b2j(x) : e.a2i(x)), P = p === "a" ? function(_e) {
+ return e.evalxy([], _e, g);
+ } : function(_e) {
+ return e.evalxy([], g, _e);
+ };
+ E && (o = Math.max(0, Math.min(M - 2, g)), s = g - o, a = p === "a" ? function(_e, Ce) {
+ return e.dxydi([], _e, o, Ce, s);
+ } : function(_e, Ce) {
+ return e.dxydj([], o, _e, s, Ce);
+ });
+ var A = T(L[0]), z = T(L[1]), O = A < z ? 1 : -1, U = (z - A) * 1e-8, G = O > 0 ? Math.floor : Math.ceil, Z = O > 0 ? Math.ceil : Math.floor, j = O > 0 ? Math.min : Math.max, N = O > 0 ? Math.max : Math.min, H = G(A + U), re = Z(z - U);
+ c = P(A);
+ var oe = [[c]];
+ for (i = H; i * O < re * O; i += O) l = [], v = N(A, i), _ = j(z, i + O), b = _ - v, u = Math.max(0, Math.min(C - 2, Math.floor(0.5 * (v + _)))), f = P(_), E && (h = a(u, v - u), d = a(u, _ - u), l.push([c[0] + h[0] / 3 * b, c[1] + h[1] / 3 * b]), l.push([f[0] - d[0] / 3 * b, f[1] - d[1] / 3 * b])), l.push(f), oe.push(l), c = f;
+ return oe;
+ };
+ });
+ var HKe = ye((Awr, GKe) => {
+ var n9 = Oa(), a9 = I$(), VKe = R$(), pC = So(), A1 = Dr(), VJt = TG(), GJt = AG(), Tw = I8(), i9 = B4(), HJt = kG(), jJt = EG(), WJt = CG(), XJt = r9(), qKe = OKe();
+ GKe.exports = function(t, r, n, i) {
+ var a = r.xaxis, o = r.yaxis;
+ A1.makeTraceGroups(i, n, "contour").each(function(s) {
+ var l = n9.select(this), u = s[0], c = u.trace, f = c._carpetTrace = XJt(t, c), h = t.calcdata[f.index][0];
+ if (!f.visible || f.visible === "legendonly") return;
+ var d = u.a, v = u.b, _ = c.contours, b = jJt(_, r, u), p = _.type === "constraint", k = _._operation, E = p ? k === "=" ? "lines" : "fill" : _.coloring;
+ function T(G) {
+ var Z = f.ab2xy(G[0], G[1], true);
+ return [a.c2p(Z[0]), o.c2p(Z[1])];
+ }
+ var L = [[d[0], v[v.length - 1]], [d[d.length - 1], v[v.length - 1]], [d[d.length - 1], v[0]], [d[0], v[0]]];
+ VJt(b);
+ var x = (d[d.length - 1] - d[0]) * 1e-8, C = (v[v.length - 1] - v[0]) * 1e-8;
+ GJt(b, x, C);
+ var M = b;
+ _.type === "constraint" && (M = HJt(b, k)), ZJt(b, T);
+ var g, P, A, z, O = [];
+ for (z = h.clipsegments.length - 1; z >= 0; z--) g = h.clipsegments[z], P = a9([], g.x, a.c2p), A = a9([], g.y, o.c2p), P.reverse(), A.reverse(), O.push(VKe(P, A, g.bicubic));
+ var U = "M" + O.join("L") + "Z";
+ JJt(l, h.clipsegments, a, o, p, E), $Jt(c, l, a, o, M, L, T, f, h, E, U), YJt(l, b, t, u, _, r, f), pC.setClipUrl(l, f._clipPathId, t);
+ });
+ };
+ function ZJt(e, t) {
+ var r, n, i, a, o, s, l, u, c;
+ for (r = 0; r < e.length; r++) {
+ for (a = e[r], o = a.pedgepaths = [], s = a.ppaths = [], n = 0; n < a.edgepaths.length; n++) {
+ for (c = a.edgepaths[n], l = [], i = 0; i < c.length; i++) l[i] = t(c[i]);
+ o.push(l);
+ }
+ for (n = 0; n < a.paths.length; n++) {
+ for (c = a.paths[n], u = [], i = 0; i < c.length; i++) u[i] = t(c[i]);
+ s.push(u);
+ }
+ }
+ }
+ function YJt(e, t, r, n, i, a, o) {
+ var s = r._context.staticPlot, l = A1.ensureSingle(e, "g", "contourlines"), u = i.showlines !== false, c = i.showlabels, f = u && c, h = Tw.createLines(l, u || c, t, s), d = Tw.createLineClip(l, f, r, n.trace.uid), v = e.selectAll("g.contourlabels").data(c ? [0] : []);
+ if (v.exit().remove(), v.enter().append("g").classed("contourlabels", true), c) {
+ var _ = a.xaxis, b = a.yaxis, p = _._length, k = b._length, E = [[[0, 0], [p, 0], [p, k], [0, k]]], T = [];
+ A1.clearLocationCache();
+ var L = Tw.labelFormatter(r, n), x = pC.tester.append("text").attr("data-notex", 1).call(pC.font, i.labelfont), C = { left: 0, right: p, center: p / 2, top: 0, bottom: k, middle: k / 2 }, M = Math.sqrt(p * p + k * k), g = i9.LABELDISTANCE * M / Math.max(1, t.length / i9.LABELINCREASE);
+ h.each(function(P) {
+ var A = Tw.calcTextOpts(P.level, L, x, r);
+ n9.select(this).selectAll("path").each(function(z) {
+ var O = this, U = A1.getVisibleSegment(O, C, A.height / 2);
+ if (U && (KJt(O, z, P, U, o, A.height), !(U.len < (A.width + A.height) * i9.LABELMIN))) for (var G = Math.min(Math.ceil(U.len / g), i9.LABELMAX), Z = 0; Z < G; Z++) {
+ var j = Tw.findBestTextLocation(O, U, A, T, C);
+ if (!j) break;
+ Tw.addLabelData(j, A, T, E);
+ }
+ });
+ }), x.remove(), Tw.drawLabels(v, T, r, d, f ? E : null);
+ }
+ c && !u && h.remove();
+ }
+ function KJt(e, t, r, n, i, a) {
+ for (var o, s = 0; s < r.pedgepaths.length; s++) t === r.pedgepaths[s] && (o = r.edgepaths[s]);
+ if (!o) return;
+ var l = i.a[0], u = i.a[i.a.length - 1], c = i.b[0], f = i.b[i.b.length - 1];
+ function h(p, k) {
+ var E = 0, T, L = 0.1;
+ return (Math.abs(p[0] - l) < L || Math.abs(p[0] - u) < L) && (T = NKe(i.dxydb_rough(p[0], p[1], L)), E = Math.max(E, a * UKe(k, T) / 2)), (Math.abs(p[1] - c) < L || Math.abs(p[1] - f) < L) && (T = NKe(i.dxyda_rough(p[0], p[1], L)), E = Math.max(E, a * UKe(k, T) / 2)), E;
+ }
+ var d = BKe(e, 0, 1), v = BKe(e, n.total, n.total - 1), _ = h(o[0], d), b = n.total - h(o[o.length - 1], v);
+ n.min < _ && (n.min = _), n.max > b && (n.max = b), n.len = n.max - n.min;
+ }
+ function BKe(e, t, r) {
+ var n = e.getPointAtLength(t), i = e.getPointAtLength(r), a = i.x - n.x, o = i.y - n.y, s = Math.sqrt(a * a + o * o);
+ return [a / s, o / s];
+ }
+ function NKe(e) {
+ var t = Math.sqrt(e[0] * e[0] + e[1] * e[1]);
+ return [e[0] / t, e[1] / t];
+ }
+ function UKe(e, t) {
+ var r = Math.abs(e[0] * t[0] + e[1] * t[1]), n = Math.sqrt(1 - r * r);
+ return n / r;
+ }
+ function JJt(e, t, r, n, i, a) {
+ var o, s, l, u, c = A1.ensureSingle(e, "g", "contourbg"), f = c.selectAll("path").data(a === "fill" && !i ? [0] : []);
+ f.enter().append("path"), f.exit().remove();
+ var h = [];
+ for (u = 0; u < t.length; u++) o = t[u], s = a9([], o.x, r.c2p), l = a9([], o.y, n.c2p), h.push(VKe(s, l, o.bicubic));
+ f.attr("d", "M" + h.join("L") + "Z").style("stroke", "none");
+ }
+ function $Jt(e, t, r, n, i, a, o, s, l, u, c) {
+ var f = u === "fill";
+ f && WJt(i, e.contours);
+ var h = A1.ensureSingle(t, "g", "contourfill"), d = h.selectAll("path").data(f ? i : []);
+ d.enter().append("path"), d.exit().remove(), d.each(function(v) {
+ var _ = (v.prefixBoundary ? c : "") + QJt(e, v, a, o, s, l, r, n);
+ _ ? n9.select(this).attr("d", _).style("stroke", "none") : n9.select(this).remove();
+ });
+ }
+ function QJt(e, t, r, n, i, a, o, s) {
+ var l, u = "", c = t.edgepaths.map(function(A, z) {
+ return z;
+ }), f = true, h, d, v, _, b, p, k = Math.abs(r[0][0] - r[2][0]) * 1e-4, E = Math.abs(r[0][1] - r[2][1]) * 1e-4;
+ function T(A) {
+ return Math.abs(A[1] - r[0][1]) < E;
+ }
+ function L(A) {
+ return Math.abs(A[1] - r[2][1]) < E;
+ }
+ function x(A) {
+ return Math.abs(A[0] - r[0][0]) < k;
+ }
+ function C(A) {
+ return Math.abs(A[0] - r[2][0]) < k;
+ }
+ function M(A, z) {
+ var O, U, G, Z, j = "";
+ for (T(A) && !C(A) || L(A) && !x(A) ? (Z = i.aaxis, G = qKe(i, a, [A[0], z[0]], 0.5 * (A[1] + z[1]))) : (Z = i.baxis, G = qKe(i, a, 0.5 * (A[0] + z[0]), [A[1], z[1]])), O = 1; O < G.length; O++) for (j += Z.smoothing ? "C" : "L", U = 0; U < G[O].length; U++) {
+ var N = G[O][U];
+ j += [o.c2p(N[0]), s.c2p(N[1])] + " ";
+ }
+ return j;
+ }
+ for (l = 0, h = null; c.length; ) {
+ var g = t.edgepaths[l][0];
+ for (h && (u += M(h, g)), p = pC.smoothopen(t.edgepaths[l].map(n), t.smoothing), u += f ? p : p.replace(/^M/, "L"), c.splice(c.indexOf(l), 1), h = t.edgepaths[l][t.edgepaths[l].length - 1], _ = -1, v = 0; v < 4; v++) {
+ if (!h) {
+ A1.log("Missing end?", l, t);
+ break;
+ }
+ for (T(h) && !C(h) ? d = r[1] : x(h) ? d = r[0] : L(h) ? d = r[3] : C(h) && (d = r[2]), b = 0; b < t.edgepaths.length; b++) {
+ var P = t.edgepaths[b][0];
+ Math.abs(h[0] - d[0]) < k ? Math.abs(h[0] - P[0]) < k && (P[1] - h[1]) * (d[1] - P[1]) >= 0 && (d = P, _ = b) : Math.abs(h[1] - d[1]) < E ? Math.abs(h[1] - P[1]) < E && (P[0] - h[0]) * (d[0] - P[0]) >= 0 && (d = P, _ = b) : A1.log("endpt to newendpt is not vert. or horz.", h, d, P);
+ }
+ if (_ >= 0) break;
+ u += M(h, d), h = d;
+ }
+ if (_ === t.edgepaths.length) {
+ A1.log("unclosed perimeter path");
+ break;
+ }
+ l = _, f = c.indexOf(l) === -1, f && (l = c[0], u += M(h, d) + "Z", h = null);
+ }
+ for (l = 0; l < t.paths.length; l++) u += pC.smoothclosed(t.paths[l].map(n), t.smoothing);
+ return u;
+ }
+ });
+ var WKe = ye((Swr, jKe) => {
+ jKe.exports = { attributes: O$(), supplyDefaults: q$(), colorbar: F8(), calc: FKe(), plot: HKe(), style: D8(), moduleType: "trace", name: "contourcarpet", basePlotModule: mh(), categories: ["cartesian", "svg", "carpet", "contour", "symbols", "showLegend", "hasLines", "carpetDependent", "noHover", "noSortingByValue"], meta: {} };
+ });
+ var ZKe = ye((Mwr, XKe) => {
+ XKe.exports = WKe();
+ });
+ var s9 = ye((Ewr, QKe) => {
+ var o9 = Dr().extendFlat, gC = pf(), YKe = df().axisHoverFormat, { hovertemplateAttrs: e$t, templatefallbackAttrs: t$t } = Ll(), JKe = Pd().dash, r$t = v3(), $Ke = JT(), i$t = $Ke.INCREASING.COLOR, n$t = $Ke.DECREASING.COLOR, B$ = gC.line;
+ function KKe(e) {
+ return { line: { color: o9({}, B$.color, { dflt: e }), width: B$.width, dash: JKe, editType: "style" }, editType: "style" };
+ }
+ QKe.exports = { xperiod: gC.xperiod, xperiod0: gC.xperiod0, xperiodalignment: gC.xperiodalignment, xhoverformat: YKe("x"), yhoverformat: YKe("y"), x: { valType: "data_array", editType: "calc+clearAxisTypes" }, open: { valType: "data_array", editType: "calc" }, high: { valType: "data_array", editType: "calc" }, low: { valType: "data_array", editType: "calc" }, close: { valType: "data_array", editType: "calc" }, line: { width: o9({}, B$.width, {}), dash: o9({}, JKe, {}), editType: "style" }, increasing: KKe(i$t), decreasing: KKe(n$t), text: { valType: "string", dflt: "", arrayOk: true, editType: "calc" }, hovertext: { valType: "string", dflt: "", arrayOk: true, editType: "calc" }, hovertemplate: e$t({}, { keys: ["open", "high", "low", "close"] }), hovertemplatefallback: t$t(), tickwidth: { valType: "number", min: 0, max: 0.5, dflt: 0.3, editType: "calc" }, hoverlabel: o9({}, r$t.hoverlabel, { split: { valType: "boolean", dflt: false, editType: "style" } }), zorder: gC.zorder };
+ });
+ var N$ = ye((kwr, eJe) => {
+ var a$t = qa(), o$t = Dr();
+ eJe.exports = function(t, r, n, i) {
+ var a = n("x"), o = n("open"), s = n("high"), l = n("low"), u = n("close");
+ n("hoverlabel.split");
+ var c = a$t.getComponentMethod("calendars", "handleTraceDefaults");
+ if (c(t, r, ["x"], i), !!(o && s && l && u)) {
+ var f = Math.min(o.length, s.length, l.length, u.length);
+ return a && (f = Math.min(f, o$t.minRowLength(a))), r._length = f, f;
+ }
+ };
+ });
+ var iJe = ye((Cwr, rJe) => {
+ var s$t = Dr(), l$t = N$(), u$t = Dg(), c$t = s9();
+ rJe.exports = function(t, r, n, i) {
+ function a(s, l) {
+ return s$t.coerce(t, r, c$t, s, l);
+ }
+ var o = l$t(t, r, a, i);
+ if (!o) {
+ r.visible = false;
+ return;
+ }
+ u$t(t, r, i, a, { x: true }), a("xhoverformat"), a("yhoverformat"), a("line.width"), a("line.dash"), tJe(t, r, a, "increasing"), tJe(t, r, a, "decreasing"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("tickwidth"), i._requestRangeslider[r.xaxis] = true, a("zorder");
+ };
+ function tJe(e, t, r, n) {
+ r(n + ".line.color"), r(n + ".line.width", t.line.width), r(n + ".line.dash", t.line.dash);
+ }
+ });
+ var U$ = ye((Lwr, aJe) => {
+ var X5 = Dr(), l9 = X5._, u9 = ho(), f$t = zg(), mC = fs().BADNUM;
+ function h$t(e, t) {
+ var r = u9.getFromId(e, t.xaxis), n = u9.getFromId(e, t.yaxis), i = v$t(e, r, t), a = t._minDiff;
+ t._minDiff = null;
+ var o = t._origX;
+ t._origX = null;
+ var s = t._xcalc;
+ t._xcalc = null;
+ var l = nJe(e, t, o, s, n, d$t);
+ return t._extremes[r._id] = u9.findExtremes(r, s, { vpad: a / 2 }), l.length ? (X5.extendFlat(l[0].t, { wHover: a / 2, tickLen: i }), l) : [{ t: { empty: true } }];
+ }
+ function d$t(e, t, r, n) {
+ return { o: e, h: t, l: r, c: n };
+ }
+ function nJe(e, t, r, n, i, a) {
+ for (var o = i.makeCalcdata(t, "open"), s = i.makeCalcdata(t, "high"), l = i.makeCalcdata(t, "low"), u = i.makeCalcdata(t, "close"), c = X5.isArrayOrTypedArray(t.text), f = X5.isArrayOrTypedArray(t.hovertext), h = true, d = null, v = !!t.xperiodalignment, _ = [], b = 0; b < n.length; b++) {
+ var p = n[b], k = o[b], E = s[b], T = l[b], L = u[b];
+ if (p !== mC && k !== mC && E !== mC && T !== mC && L !== mC) {
+ L === k ? d !== null && L !== d && (h = L > d) : h = L > k, d = L;
+ var x = a(k, E, T, L);
+ x.pos = p, x.yc = (k + L) / 2, x.i = b, x.dir = h ? "increasing" : "decreasing", x.x = x.pos, x.y = [T, E], v && (x.orig_p = r[b]), c && (x.tx = t.text[b]), f && (x.htx = t.hovertext[b]), _.push(x);
+ } else _.push({ pos: p, empty: true });
+ }
+ return t._extremes[i._id] = u9.findExtremes(i, X5.concat(l, s), { padded: true }), _.length && (_[0].t = { labels: { open: l9(e, "open:") + " ", high: l9(e, "high:") + " ", low: l9(e, "low:") + " ", close: l9(e, "close:") + " " } }), _;
+ }
+ function v$t(e, t, r) {
+ var n = r._minDiff;
+ if (!n) {
+ var i = e._fullData, a = [];
+ n = 1 / 0;
+ var o;
+ for (o = 0; o < i.length; o++) {
+ var s = i[o];
+ if (s.type === "ohlc" && s.visible === true && s.xaxis === t._id) {
+ a.push(s);
+ var l = t.makeCalcdata(s, "x");
+ s._origX = l;
+ var u = f$t(r, t, "x", l).vals;
+ s._xcalc = u;
+ var c = X5.distinctVals(u).minDiff;
+ c && isFinite(c) && (n = Math.min(n, c));
+ }
+ }
+ for (n === 1 / 0 && (n = 1), o = 0; o < a.length; o++) a[o]._minDiff = n;
+ }
+ return n * r.tickwidth;
+ }
+ aJe.exports = { calc: h$t, calcCommon: nJe };
+ });
+ var lJe = ye((Pwr, sJe) => {
+ var p$t = Oa(), oJe = Dr();
+ sJe.exports = function(t, r, n, i) {
+ var a = r.yaxis, o = r.xaxis, s = !!o.rangebreaks;
+ oJe.makeTraceGroups(i, n, "trace ohlc").each(function(l) {
+ var u = p$t.select(this), c = l[0], f = c.t, h = c.trace;
+ if (h.visible !== true || f.empty) {
+ u.remove();
+ return;
+ }
+ var d = f.tickLen, v = u.selectAll("path").data(oJe.identity);
+ v.enter().append("path"), v.exit().remove(), v.attr("d", function(_) {
+ if (_.empty) return "M0,0Z";
+ var b = o.c2p(_.pos - d, true), p = o.c2p(_.pos + d, true), k = s ? (b + p) / 2 : o.c2p(_.pos, true), E = a.c2p(_.o, true), T = a.c2p(_.h, true), L = a.c2p(_.l, true), x = a.c2p(_.c, true);
+ return "M" + b + "," + E + "H" + k + "M" + k + "," + T + "V" + L + "M" + p + "," + x + "H" + k;
+ });
+ });
+ };
+ });
+ var cJe = ye((Iwr, uJe) => {
+ var V$ = Oa(), g$t = So(), m$t = ka();
+ uJe.exports = function(t, r, n) {
+ var i = n || V$.select(t).selectAll("g.ohlclayer").selectAll("g.trace");
+ i.style("opacity", function(a) {
+ return a[0].trace.opacity;
+ }), i.each(function(a) {
+ var o = a[0].trace;
+ V$.select(this).selectAll("path").each(function(s) {
+ if (!s.empty) {
+ var l = o[s.dir].line;
+ V$.select(this).style("fill", "none").call(m$t.stroke, l.color).call(g$t.dashLine, l.dash, l.width).style("opacity", o.selectedpoints && !s.selected ? 0.3 : 1);
+ }
+ });
+ });
+ };
+ });
+ var H$ = ye((Rwr, pJe) => {
+ var G$ = ho(), y$t = Dr(), c9 = vf(), _$t = ka(), x$t = Dr().fillText, fJe = JT(), b$t = { increasing: fJe.INCREASING.SYMBOL, decreasing: fJe.DECREASING.SYMBOL };
+ function w$t(e, t, r, n) {
+ var i = e.cd, a = i[0].trace;
+ return a.hoverlabel.split ? dJe(e, t, r, n) : vJe(e, t, r, n);
+ }
+ function hJe(e, t, r, n) {
+ var i = e.cd, a = e.xa, o = i[0].trace, s = i[0].t, l = o.type, u = l === "ohlc" ? "l" : "min", c = l === "ohlc" ? "h" : "max", f, h, d = s.bPos || 0, v = function(P) {
+ return P.pos + d - t;
+ }, _ = s.bdPos || s.tickLen, b = s.wHover, p = Math.min(1, _ / Math.abs(a.r2c(a.range[1]) - a.r2c(a.range[0])));
+ f = e.maxHoverDistance - p, h = e.maxSpikeDistance - p;
+ function k(P) {
+ var A = v(P);
+ return c9.inbox(A - b, A + b, f);
+ }
+ function E(P) {
+ var A = P[u], z = P[c];
+ return A === z || c9.inbox(A - r, z - r, f);
+ }
+ function T(P) {
+ return (k(P) + E(P)) / 2;
+ }
+ var L = c9.getDistanceFunction(n, k, E, T);
+ if (c9.getClosest(i, L, e), e.index === false) return null;
+ var x = i[e.index];
+ if (x.empty) return null;
+ var C = x.dir, M = o[C], g = M.line.color;
+ return _$t.opacity(g) && M.line.width ? e.color = g : e.color = M.fillcolor, e.x0 = a.c2p(x.pos + d - _, true), e.x1 = a.c2p(x.pos + d + _, true), e.xLabelVal = x.orig_p !== void 0 ? x.orig_p : x.pos, e.spikeDistance = T(x) * h / f, e.xSpike = a.c2p(x.pos, true), e;
+ }
+ function dJe(e, t, r, n) {
+ var i = e.cd, a = e.ya, o = i[0].trace, s = i[0].t, l = [], u = hJe(e, t, r, n);
+ if (!u) return [];
+ var c = i[u.index], f = c.hi || o.hoverinfo || "";
+ if (f === "none" || f === "skip") return [];
+ for (var h = ["high", "open", "close", "low"], d = {}, v = 0; v < h.length; v++) {
+ var _ = h[v], b = o[_][u.index], p = a.c2p(b, true), k;
+ b in d ? (k = d[b], k.yLabel += " " + s.labels[_] + G$.hoverLabelText(a, b, o.yhoverformat)) : (k = y$t.extendFlat({}, u), k.y0 = k.y1 = p, k.yLabelVal = b, k.yLabel = s.labels[_] + G$.hoverLabelText(a, b, o.yhoverformat), k.name = "", l.push(k), d[b] = k);
+ }
+ return l;
+ }
+ function vJe(e, t, r, n) {
+ var i = e.cd, a = e.ya, o = i[0].trace, s = i[0].t, l = hJe(e, t, r, n);
+ if (!l) return [];
+ var u = l.index, c = i[u], f = l.index = c.i, h = c.dir;
+ function d(T) {
+ return s.labels[T] + G$.hoverLabelText(a, o[T][f], o.yhoverformat);
+ }
+ var v = c.hi || o.hoverinfo || "", _ = v.split("+"), b = v === "all", p = b || _.indexOf("y") !== -1, k = b || _.indexOf("text") !== -1, E = p ? [d("open"), d("high"), d("low"), d("close") + " " + b$t[h]] : [];
+ return k && x$t(c, o, E), l.extraText = E.join(" "), l.y0 = l.y1 = a.c2p(c.yc, true), [l];
+ }
+ pJe.exports = { hoverPoints: w$t, hoverSplit: dJe, hoverOnPoints: vJe };
+ });
+ var j$ = ye((Dwr, gJe) => {
+ gJe.exports = function(t, r) {
+ var n = t.cd, i = t.xaxis, a = t.yaxis, o = [], s, l = n[0].t.bPos || 0;
+ if (r === false) for (s = 0; s < n.length; s++) n[s].selected = 0;
+ else for (s = 0; s < n.length; s++) {
+ var u = n[s];
+ r.contains([i.c2p(u.pos + l), a.c2p(u.yc)], null, u.i, t) ? (o.push({ pointNumber: u.i, x: i.c2d(u.pos), y: a.c2d(u.yc) }), u.selected = 1) : u.selected = 0;
+ }
+ return o;
+ };
+ });
+ var yJe = ye((Fwr, mJe) => {
+ mJe.exports = { moduleType: "trace", name: "ohlc", basePlotModule: mh(), categories: ["cartesian", "svg", "showLegend"], meta: {}, attributes: s9(), supplyDefaults: iJe(), calc: U$().calc, plot: lJe(), style: cJe(), hoverPoints: H$().hoverPoints, selectPoints: j$() };
+ });
+ var xJe = ye((zwr, _Je) => {
+ _Je.exports = yJe();
+ });
+ var X$ = ye((Owr, TJe) => {
+ var W$ = Dr().extendFlat, bJe = df().axisHoverFormat, vp = s9(), Z5 = k4();
+ function wJe(e) {
+ return { line: { color: W$({}, Z5.line.color, { dflt: e }), width: Z5.line.width, editType: "style" }, fillcolor: Z5.fillcolor, editType: "style" };
+ }
+ TJe.exports = { xperiod: vp.xperiod, xperiod0: vp.xperiod0, xperiodalignment: vp.xperiodalignment, xhoverformat: bJe("x"), yhoverformat: bJe("y"), x: vp.x, open: vp.open, high: vp.high, low: vp.low, close: vp.close, line: { width: W$({}, Z5.line.width, {}), editType: "style" }, increasing: wJe(vp.increasing.line.color.dflt), decreasing: wJe(vp.decreasing.line.color.dflt), text: vp.text, hovertext: vp.hovertext, hovertemplate: vp.hovertemplate, hovertemplatefallback: vp.hovertemplatefallback, whiskerwidth: W$({}, Z5.whiskerwidth, { dflt: 0 }), hoverlabel: vp.hoverlabel, zorder: Z5.zorder };
+ });
+ var MJe = ye((qwr, SJe) => {
+ var T$t = Dr(), A$t = ka(), S$t = N$(), M$t = Dg(), E$t = X$();
+ SJe.exports = function(t, r, n, i) {
+ function a(s, l) {
+ return T$t.coerce(t, r, E$t, s, l);
+ }
+ var o = S$t(t, r, a, i);
+ if (!o) {
+ r.visible = false;
+ return;
+ }
+ M$t(t, r, i, a, { x: true }), a("xhoverformat"), a("yhoverformat"), a("line.width"), AJe(t, r, a, "increasing"), AJe(t, r, a, "decreasing"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), a("whiskerwidth"), i._requestRangeslider[r.xaxis] = true, a("zorder");
+ };
+ function AJe(e, t, r, n) {
+ var i = r(n + ".line.color");
+ r(n + ".line.width", t.line.width), r(n + ".fillcolor", A$t.addOpacity(i, 0.5));
+ }
+ });
+ var LJe = ye((Bwr, CJe) => {
+ var EJe = Dr(), kJe = ho(), k$t = zg(), C$t = U$().calcCommon;
+ CJe.exports = function(e, t) {
+ var r = e._fullLayout, n = kJe.getFromId(e, t.xaxis), i = kJe.getFromId(e, t.yaxis), a = n.makeCalcdata(t, "x"), o = k$t(t, n, "x", a).vals, s = C$t(e, t, a, o, i, L$t);
+ return s.length ? (EJe.extendFlat(s[0].t, { num: r._numBoxes, dPos: EJe.distinctVals(o).minDiff / 2, posLetter: "x", valLetter: "y" }), r._numBoxes++, s) : [{ t: { empty: true } }];
+ };
+ function L$t(e, t, r, n) {
+ return { min: r, q1: Math.min(e, n), med: n, q3: Math.max(e, n), max: t };
+ }
+ });
+ var IJe = ye((Nwr, PJe) => {
+ PJe.exports = { moduleType: "trace", name: "candlestick", basePlotModule: mh(), categories: ["cartesian", "svg", "showLegend", "candlestick", "boxLayout"], meta: {}, attributes: X$(), layoutAttributes: C4(), supplyLayoutDefaults: $I().supplyLayoutDefaults, crossTraceCalc: e8().crossTraceCalc, supplyDefaults: MJe(), calc: LJe(), plot: t8().plot, layerName: "boxlayer", style: r8().style, hoverPoints: H$().hoverPoints, selectPoints: j$() };
+ });
+ var DJe = ye((Uwr, RJe) => {
+ RJe.exports = IJe();
+ });
+ var Y$ = ye((Vwr, FJe) => {
+ var h9 = Dr(), P$t = xm(), f9 = h9.deg2rad, Z$ = h9.rad2deg;
+ FJe.exports = function(t, r, n) {
+ switch (P$t(t, n), t._id) {
+ case "x":
+ case "radialaxis":
+ I$t(t, r);
+ break;
+ case "angularaxis":
+ F$t(t, r);
+ break;
+ }
+ };
+ function I$t(e, t) {
+ var r = t._subplot;
+ e.setGeometry = function() {
+ var n = e._rl[0], i = e._rl[1], a = r.innerRadius, o = (r.radius - a) / (i - n), s = a / o, l = n > i ? function(u) {
+ return u <= 0;
+ } : function(u) {
+ return u >= 0;
+ };
+ e.c2g = function(u) {
+ var c = e.c2l(u) - n;
+ return (l(c) ? c : 0) + s;
+ }, e.g2c = function(u) {
+ return e.l2c(u + n - s);
+ }, e.g2p = function(u) {
+ return u * o;
+ }, e.c2p = function(u) {
+ return e.g2p(e.c2g(u));
+ };
+ };
+ }
+ function R$t(e, t) {
+ return t === "degrees" ? f9(e) : e;
+ }
+ function D$t(e, t) {
+ return t === "degrees" ? Z$(e) : e;
+ }
+ function F$t(e, t) {
+ var r = e.type;
+ if (r === "linear") {
+ var n = e.d2c, i = e.c2d;
+ e.d2c = function(a, o) {
+ return R$t(n(a), o);
+ }, e.c2d = function(a, o) {
+ return i(D$t(a, o));
+ };
+ }
+ e.makeCalcdata = function(a, o) {
+ var s = a[o], l = a._length, u, c, f = function(b) {
+ return e.d2c(b, a.thetaunit);
+ };
+ if (s) for (u = new Array(l), c = 0; c < l; c++) u[c] = f(s[c]);
+ else {
+ var h = o + "0", d = "d" + o, v = h in a ? f(a[h]) : 0, _ = a[d] ? f(a[d]) : (e.period || 2 * Math.PI) / l;
+ for (u = new Array(l), c = 0; c < l; c++) u[c] = v + c * _;
+ }
+ return u;
+ }, e.setGeometry = function() {
+ var a = t.sector, o = a.map(f9), s = { clockwise: -1, counterclockwise: 1 }[e.direction], l = f9(e.rotation), u = function(p) {
+ return s * p + l;
+ }, c = function(p) {
+ return (p - l) / s;
+ }, f, h, d, v;
+ switch (r) {
+ case "linear":
+ h = f = h9.identity, v = f9, d = Z$, e.range = h9.isFullCircle(o) ? [a[0], a[0] + 360] : o.map(c).map(Z$);
+ break;
+ case "category":
+ var _ = e._categories.length, b = e.period ? Math.max(e.period, _) : _;
+ b === 0 && (b = 1), h = v = function(p) {
+ return p * 2 * Math.PI / b;
+ }, f = d = function(p) {
+ return p * b / Math.PI / 2;
+ }, e.range = [0, b];
+ break;
+ }
+ e.c2g = function(p) {
+ return u(h(p));
+ }, e.g2c = function(p) {
+ return f(c(p));
+ }, e.t2g = function(p) {
+ return u(v(p));
+ }, e.g2t = function(p) {
+ return d(c(p));
+ };
+ };
+ }
+ });
+ var d9 = ye((Gwr, zJe) => {
+ zJe.exports = { attr: "subplot", name: "polar", axisNames: ["angularaxis", "radialaxis"], axisName2dataArray: { angularaxis: "theta", radialaxis: "r" }, layerNames: ["draglayer", "plotbg", "backplot", "angular-grid", "radial-grid", "frontplot", "angular-line", "radial-line", "angular-axis", "radial-axis"], radialDragBoxSize: 50, angularDragBoxSize: 30, cornerLen: 25, cornerHalfWidth: 2, MINDRAG: 8, MINZOOM: 20, OFFEDGE: 20 };
+ });
+ var p9 = ye((Hwr, UJe) => {
+ var Aw = Dr(), OJe = FM().tester, K$ = Aw.findIndexOfMin, BJe = Aw.isAngleInsideSector, z$t = Aw.angleDelta, qJe = Aw.angleDist;
+ function O$t(e, t, r, n, i) {
+ if (!BJe(t, n)) return false;
+ var a, o;
+ r[0] < r[1] ? (a = r[0], o = r[1]) : (a = r[1], o = r[0]);
+ var s = OJe(Y5(a, n[0], n[1], i)), l = OJe(Y5(o, n[0], n[1], i)), u = [e * Math.cos(t), e * Math.sin(t)];
+ return l.contains(u) && !s.contains(u);
+ }
+ function NJe(e, t, r, n) {
+ var i, a, o = n[0], s = n[1], l = v9(Math.sin(t) - Math.sin(e)), u = v9(Math.cos(t) - Math.cos(e)), c = Math.tan(r), f = v9(1 / c), h = l / u, d = s - h * o;
+ return f ? l && u ? (i = d / (c - h), a = c * i) : u ? (i = s * f, a = s) : (i = o, a = o * c) : l && u ? (i = 0, a = d) : u ? (i = 0, a = s) : i = a = NaN, [i, a];
+ }
+ function q$t(e, t, r, n) {
+ var i = -t * r, a = t * t + 1, o = 2 * (t * i - r), s = i * i + r * r - e * e, l = Math.sqrt(o * o - 4 * a * s), u = (-o + l) / (2 * a), c = (-o - l) / (2 * a);
+ return [[u, t * u + i + n], [c, t * c + i + n]];
+ }
+ function B$t(e, t) {
+ var r = t.length, n = new Array(r + 1), i;
+ for (i = 0; i < r; i++) {
+ var a = t[i];
+ n[i] = [e * Math.cos(a), e * Math.sin(a)];
+ }
+ return n[i] = n[0].slice(), n;
+ }
+ function N$t(e, t, r, n) {
+ var i = n.length, a = [], o, s;
+ function l(p) {
+ return [e * Math.cos(p), e * Math.sin(p)];
+ }
+ function u(p, k, E) {
+ return NJe(p, k, E, l(p));
+ }
+ function c(p) {
+ return Aw.mod(p, i);
+ }
+ function f(p) {
+ return BJe(p, [t, r]);
+ }
+ var h = K$(n, function(p) {
+ return f(p) ? qJe(p, t) : 1 / 0;
+ }), d = u(n[h], n[c(h - 1)], t);
+ for (a.push(d), o = h, s = 0; s < i; o++, s++) {
+ var v = n[c(o)];
+ if (!f(v)) break;
+ a.push(l(v));
+ }
+ var _ = K$(n, function(p) {
+ return f(p) ? qJe(p, r) : 1 / 0;
+ }), b = u(n[_], n[c(_ + 1)], r);
+ return a.push(b), a.push([0, 0]), a.push(a[0].slice()), a;
+ }
+ function Y5(e, t, r, n) {
+ return Aw.isFullCircle([t, r]) ? B$t(e, n) : N$t(e, t, r, n);
+ }
+ function U$t(e, t, r, n) {
+ for (var i = 1 / 0, a = 1 / 0, o = Y5(e, t, r, n), s = 0; s < o.length; s++) {
+ var l = o[s];
+ i = Math.min(i, l[0]), a = Math.min(a, -l[1]);
+ }
+ return [i, a];
+ }
+ function V$t(e, t) {
+ var r = function(a) {
+ var o = z$t(a, e);
+ return o > 0 ? o : 1 / 0;
+ }, n = K$(t, r), i = Aw.mod(n + 1, t.length);
+ return [t[n], t[i]];
+ }
+ function v9(e) {
+ return Math.abs(e) > 1e-10 ? e : 0;
+ }
+ function J$(e, t, r) {
+ t = t || 0, r = r || 0;
+ for (var n = e.length, i = new Array(n), a = 0; a < n; a++) {
+ var o = e[a];
+ i[a] = [t + o[0], r - o[1]];
+ }
+ return i;
+ }
+ function G$t(e, t, r, n, i, a) {
+ var o = Y5(e, t, r, n);
+ return "M" + J$(o, i, a).join("L");
+ }
+ function H$t(e, t, r, n, i, a, o) {
+ var s, l;
+ e < t ? (s = e, l = t) : (s = t, l = e);
+ var u = J$(Y5(s, r, n, i), a, o), c = J$(Y5(l, r, n, i), a, o);
+ return "M" + c.reverse().join("L") + "M" + u.join("L");
+ }
+ UJe.exports = { isPtInsidePolygon: O$t, findPolygonOffset: U$t, findEnclosingVertexAngles: V$t, findIntersectionXY: NJe, findXYatLength: q$t, clampTiny: v9, pathPolygon: G$t, pathPolygonAnnulus: H$t };
+ });
+ var $$ = ye((jwr, HJe) => {
+ function VJe(e) {
+ return e < 0 ? -1 : e > 0 ? 1 : 0;
+ }
+ function K5(e) {
+ var t = e[0], r = e[1];
+ if (!isFinite(t) || !isFinite(r)) return [1, 0];
+ var n = (t + 1) * (t + 1) + r * r;
+ return [(t * t + r * r - 1) / n, 2 * r / n];
+ }
+ function J5(e, t) {
+ var r = t[0], n = t[1];
+ return [r * e.radius + e.cx, -n * e.radius + e.cy];
+ }
+ function GJe(e, t) {
+ return t * e.radius;
+ }
+ function j$t(e, t, r, n) {
+ var i = J5(e, K5([r, t])), a = i[0], o = i[1], s = J5(e, K5([n, t])), l = s[0], u = s[1];
+ if (t === 0) return ["M" + a + "," + o, "L" + l + "," + u].join(" ");
+ var c = GJe(e, 1 / Math.abs(t));
+ return ["M" + a + "," + o, "A" + c + "," + c + " 0 0," + (t < 0 ? 1 : 0) + " " + l + "," + u].join(" ");
+ }
+ function W$t(e, t, r, n) {
+ var i = GJe(e, 1 / (t + 1)), a = J5(e, K5([t, r])), o = a[0], s = a[1], l = J5(e, K5([t, n])), u = l[0], c = l[1];
+ if (VJe(r) !== VJe(n)) {
+ var f = J5(e, K5([t, 0])), h = f[0], d = f[1];
+ return ["M" + o + "," + s, "A" + i + "," + i + " 0 0," + (0 < r ? 0 : 1) + " " + h + "," + d, "A" + i + "," + i + " 0 0," + (n < 0 ? 0 : 1) + u + "," + c].join(" ");
+ }
+ return ["M" + o + "," + s, "A" + i + "," + i + " 0 0," + (n < r ? 0 : 1) + " " + u + "," + c].join(" ");
+ }
+ HJe.exports = { smith: K5, reactanceArc: j$t, resistanceArc: W$t, smithTransform: J5 };
+ });
+ var tQ = ye((Wwr, QJe) => {
+ var Sw = Oa(), X$t = fd(), Ew = qa(), Xc = Dr(), uy = Xc.strRotate, xd = Xc.strTranslate, Q$ = ka(), yC = So(), Z$t = Mc(), pp = ho(), Y$t = xm(), K$t = Y$(), J$t = Mg().doAutoRange, S1 = jN(), y9 = yv(), jJe = vf(), $$t = zb(), Q$t = Of().prepSelect, eQt = Of().selectOnClick, eQ = Of().clearOutline, WJe = Eg(), XJe = bM(), ZJe = CM().redrawReglTraces, tQt = Dh().MID_SHIFT, Bx = d9(), M1 = p9(), _9 = $$(), g9 = _9.smith, rQt = _9.reactanceArc, iQt = _9.resistanceArc, m9 = _9.smithTransform, nQt = Xc._, YJe = Xc.mod, Nx = Xc.deg2rad, Mw = Xc.rad2deg;
+ function KJe(e, t, r) {
+ this.isSmith = r || false, this.id = t, this.gd = e, this._hasClipOnAxisFalse = null, this.vangles = null, this.radialAxisAngle = null, this.traceHash = {}, this.layers = {}, this.clipPaths = {}, this.clipIds = {}, this.viewInitial = {};
+ var n = e._fullLayout, i = "clip" + n._uid + t;
+ this.clipIds.forTraces = i + "-for-traces", this.clipPaths.forTraces = n._clips.append("clipPath").attr("id", this.clipIds.forTraces), this.clipPaths.forTraces.append("path"), this.framework = n["_" + (r ? "smith" : "polar") + "layer"].append("g").attr("class", t), this.getHole = function(a) {
+ return this.isSmith ? 0 : a.hole;
+ }, this.getSector = function(a) {
+ return this.isSmith ? [0, 360] : a.sector;
+ }, this.getRadial = function(a) {
+ return this.isSmith ? a.realaxis : a.radialaxis;
+ }, this.getAngular = function(a) {
+ return this.isSmith ? a.imaginaryaxis : a.angularaxis;
+ }, r || (this.radialTickLayout = null, this.angularTickLayout = null);
+ }
+ var Bd = KJe.prototype;
+ QJe.exports = function(t, r, n) {
+ return new KJe(t, r, n);
+ };
+ Bd.plot = function(e, t) {
+ for (var r = this, n = t[r.id], i = false, a = 0; a < e.length; a++) {
+ var o = e[a][0].trace;
+ if (o.cliponaxis === false) {
+ i = true;
+ break;
+ }
+ }
+ r._hasClipOnAxisFalse = i, r.updateLayers(t, n), r.updateLayout(t, n), Z$t.generalUpdatePerTraceModule(r.gd, r, e, n), r.updateFx(t, n), r.isSmith && (delete n.realaxis.range, delete n.imaginaryaxis.range);
+ };
+ Bd.updateLayers = function(e, t) {
+ var r = this, n = r.isSmith, i = r.layers, a = r.getRadial(t), o = r.getAngular(t), s = Bx.layerNames, l = s.indexOf("frontplot"), u = s.slice(0, l), c = o.layer === "below traces", f = a.layer === "below traces";
+ c && u.push("angular-line"), f && u.push("radial-line"), c && u.push("angular-axis"), f && u.push("radial-axis"), u.push("frontplot"), c || u.push("angular-line"), f || u.push("radial-line"), c || u.push("angular-axis"), f || u.push("radial-axis");
+ var h = (n ? "smith" : "polar") + "sublayer", d = r.framework.selectAll("." + h).data(u, String);
+ d.enter().append("g").attr("class", function(v) {
+ return h + " " + v;
+ }).each(function(v) {
+ var _ = i[v] = Sw.select(this);
+ switch (v) {
+ case "frontplot":
+ n || _.append("g").classed("barlayer", true), _.append("g").classed("scatterlayer", true);
+ break;
+ case "backplot":
+ _.append("g").classed("maplayer", true);
+ break;
+ case "plotbg":
+ i.bg = _.append("path");
+ break;
+ case "radial-grid":
+ _.style("fill", "none");
+ break;
+ case "angular-grid":
+ _.style("fill", "none");
+ break;
+ case "radial-line":
+ _.append("line").style("fill", "none");
+ break;
+ case "angular-line":
+ _.append("path").style("fill", "none");
+ break;
+ }
+ }), d.order();
+ };
+ Bd.updateLayout = function(e, t) {
+ var r = this, n = r.layers, i = e._size, a = r.getRadial(t), o = r.getAngular(t), s = t.domain.x, l = t.domain.y;
+ r.xOffset = i.l + i.w * s[0], r.yOffset = i.t + i.h * (1 - l[1]);
+ var u = r.xLength = i.w * (s[1] - s[0]), c = r.yLength = i.h * (l[1] - l[0]), f = r.getSector(t);
+ r.sectorInRad = f.map(Nx);
+ var h = r.sectorBBox = aQt(f), d = h[2] - h[0], v = h[3] - h[1], _ = c / u, b = Math.abs(v / d), p, k, E, T, L;
+ _ > b ? (p = u, k = u * b, L = (c - k) / i.h / 2, E = [s[0], s[1]], T = [l[0] + L, l[1] - L]) : (p = c / b, k = c, L = (u - p) / i.w / 2, E = [s[0] + L, s[1] - L], T = [l[0], l[1]]), r.xLength2 = p, r.yLength2 = k, r.xDomain2 = E, r.yDomain2 = T;
+ var x = r.xOffset2 = i.l + i.w * E[0], C = r.yOffset2 = i.t + i.h * (1 - T[1]), M = r.radius = p / d, g = r.innerRadius = r.getHole(t) * M, P = r.cx = x - M * h[0], A = r.cy = C + M * h[3], z = r.cxx = P - x, O = r.cyy = A - C, U = a.side, G;
+ U === "counterclockwise" ? (G = U, U = "top") : U === "clockwise" && (G = U, U = "bottom"), r.radialAxis = r.mockAxis(e, t, a, { _id: "x", side: U, _trueSide: G, domain: [g / i.w, M / i.w] }), r.angularAxis = r.mockAxis(e, t, o, { side: "right", domain: [0, Math.PI], autorange: false }), r.doAutoRange(e, t), r.updateAngularAxis(e, t), r.updateRadialAxis(e, t), r.updateRadialAxisTitle(e, t), r.xaxis = r.mockCartesianAxis(e, t, { _id: "x", domain: E }), r.yaxis = r.mockCartesianAxis(e, t, { _id: "y", domain: T });
+ var Z = r.pathSubplot();
+ r.clipPaths.forTraces.select("path").attr("d", Z).attr("transform", xd(z, O)), n.frontplot.attr("transform", xd(x, C)).call(yC.setClipUrl, r._hasClipOnAxisFalse ? null : r.clipIds.forTraces, r.gd), n.bg.attr("d", Z).attr("transform", xd(P, A)).call(Q$.fill, t.bgcolor);
+ };
+ Bd.mockAxis = function(e, t, r, n) {
+ var i = Xc.extendFlat({}, r, n);
+ return K$t(i, t, e), i;
+ };
+ Bd.mockCartesianAxis = function(e, t, r) {
+ var n = this, i = n.isSmith, a = r._id, o = Xc.extendFlat({ type: "linear" }, r);
+ Y$t(o, e);
+ var s = { x: [0, 2], y: [1, 3] };
+ return o.setRange = function() {
+ var l = n.sectorBBox, u = s[a], c = n.radialAxis._rl, f = (c[1] - c[0]) / (1 - n.getHole(t));
+ o.range = [l[u[0]] * f, l[u[1]] * f];
+ }, o.isPtWithinRange = a === "x" && !i ? function(l) {
+ return n.isPtInside(l);
+ } : function() {
+ return true;
+ }, o.setRange(), o.setScale(), o;
+ };
+ Bd.doAutoRange = function(e, t) {
+ var r = this, n = r.gd, i = r.radialAxis, a = r.getRadial(t);
+ J$t(n, i);
+ var o = i.range;
+ if (a.range = o.slice(), a._input.range = o.slice(), i._rl = [i.r2l(o[0], null, "gregorian"), i.r2l(o[1], null, "gregorian")], i.minallowed !== void 0) {
+ var s = i.r2l(i.minallowed);
+ i._rl[0] > i._rl[1] ? i._rl[1] = Math.max(i._rl[1], s) : i._rl[0] = Math.max(i._rl[0], s);
+ }
+ if (i.maxallowed !== void 0) {
+ var l = i.r2l(i.maxallowed);
+ i._rl[0] < i._rl[1] ? i._rl[1] = Math.min(i._rl[1], l) : i._rl[0] = Math.min(i._rl[0], l);
+ }
+ };
+ Bd.updateRadialAxis = function(e, t) {
+ var r = this, n = r.gd, i = r.layers, a = r.radius, o = r.innerRadius, s = r.cx, l = r.cy, u = r.getRadial(t), c = YJe(r.getSector(t)[0], 360), f = r.radialAxis, h = o < a, d = r.isSmith;
+ d || (r.fillViewInitialKey("radialaxis.angle", u.angle), r.fillViewInitialKey("radialaxis.range", f.range.slice()), f.setGeometry()), f.tickangle === "auto" && c > 90 && c <= 270 && (f.tickangle = 180);
+ var v = d ? function(M) {
+ var g = m9(r, g9([M.x, 0]));
+ return xd(g[0] - s, g[1] - l);
+ } : function(M) {
+ return xd(f.l2p(M.x) + o, 0);
+ }, _ = d ? function(M) {
+ return iQt(r, M.x, -1 / 0, 1 / 0);
+ } : function(M) {
+ return r.pathArc(f.r2p(M.x) + o);
+ }, b = JJe(u);
+ if (r.radialTickLayout !== b && (i["radial-axis"].selectAll(".xtick").remove(), r.radialTickLayout = b), h) {
+ f.setScale();
+ var p = 0, k = d ? (f.tickvals || []).filter(function(M) {
+ return M >= 0;
+ }).map(function(M) {
+ return pp.tickText(f, M, true, false);
+ }) : pp.calcTicks(f), E = d ? k : pp.clipEnds(f, k), T = pp.getTickSigns(f)[2];
+ d && ((f.ticks === "top" && f.side === "bottom" || f.ticks === "bottom" && f.side === "top") && (T = -T), f.ticks === "top" && f.side === "top" && (p = -f.ticklen), f.ticks === "bottom" && f.side === "bottom" && (p = f.ticklen)), pp.drawTicks(n, f, { vals: k, layer: i["radial-axis"], path: pp.makeTickPath(f, 0, T), transFn: v, crisp: false }), pp.drawGrid(n, f, { vals: E, layer: i["radial-grid"], path: _, transFn: Xc.noop, crisp: false }), pp.drawLabels(n, f, { vals: k, layer: i["radial-axis"], transFn: v, labelFns: pp.makeLabelFns(f, p) });
+ }
+ var L = r.radialAxisAngle = r.vangles ? Mw($Je(Nx(u.angle), r.vangles)) : u.angle, x = xd(s, l), C = x + uy(-L);
+ _C(i["radial-axis"], h && (u.showticklabels || u.ticks), { transform: C }), _C(i["radial-grid"], h && u.showgrid, { transform: d ? "" : x }), _C(i["radial-line"].select("line"), h && u.showline, { x1: d ? -a : o, y1: 0, x2: a, y2: 0, transform: C }).attr("stroke-width", u.linewidth).call(Q$.stroke, u.linecolor);
+ };
+ Bd.updateRadialAxisTitle = function(e, t, r) {
+ if (!this.isSmith) {
+ var n = this, i = n.gd, a = n.radius, o = n.cx, s = n.cy, l = n.getRadial(t), u = n.id + "title", c = 0;
+ if (l.title) {
+ var f = yC.bBox(n.layers["radial-axis"].node()).height, h = l.title.font.size, d = l.side;
+ c = d === "top" ? h : d === "counterclockwise" ? -(f + h * 0.4) : f + h * 0.8;
+ }
+ var v = r !== void 0 ? r : n.radialAxisAngle, _ = Nx(v), b = Math.cos(_), p = Math.sin(_), k = o + a / 2 * b + c * p, E = s - a / 2 * p + c * b;
+ n.layers["radial-axis-title"] = $$t.draw(i, u, { propContainer: l, propName: n.id + ".radialaxis.title.text", placeholder: nQt(i, "Click to enter radial axis title"), attributes: { x: k, y: E, "text-anchor": "middle" }, transform: { rotate: -v } });
+ }
+ };
+ Bd.updateAngularAxis = function(e, t) {
+ var r = this, n = r.gd, i = r.layers, a = r.radius, o = r.innerRadius, s = r.cx, l = r.cy, u = r.getAngular(t), c = r.angularAxis, f = r.isSmith;
+ f || (r.fillViewInitialKey("angularaxis.rotation", u.rotation), c.setGeometry(), c.setScale());
+ var h = f ? function(g) {
+ var P = m9(r, g9([0, g.x]));
+ return Math.atan2(P[0] - s, P[1] - l) - Math.PI / 2;
+ } : function(g) {
+ return c.t2g(g.x);
+ };
+ c.type === "linear" && c.thetaunit === "radians" && (c.tick0 = Mw(c.tick0), c.dtick = Mw(c.dtick));
+ var d = function(g) {
+ return xd(s + a * Math.cos(g), l - a * Math.sin(g));
+ }, v = f ? function(g) {
+ var P = m9(r, g9([0, g.x]));
+ return xd(P[0], P[1]);
+ } : function(g) {
+ return d(h(g));
+ }, _ = f ? function(g) {
+ var P = m9(r, g9([0, g.x])), A = Math.atan2(P[0] - s, P[1] - l) - Math.PI / 2;
+ return xd(P[0], P[1]) + uy(-Mw(A));
+ } : function(g) {
+ var P = h(g);
+ return d(P) + uy(-Mw(P));
+ }, b = f ? function(g) {
+ return rQt(r, g.x, 0, 1 / 0);
+ } : function(g) {
+ var P = h(g), A = Math.cos(P), z = Math.sin(P);
+ return "M" + [s + o * A, l - o * z] + "L" + [s + a * A, l - a * z];
+ }, p = pp.makeLabelFns(c, 0), k = p.labelStandoff, E = {};
+ E.xFn = function(g) {
+ var P = h(g);
+ return Math.cos(P) * k;
+ }, E.yFn = function(g) {
+ var P = h(g), A = Math.sin(P) > 0 ? 0.2 : 1;
+ return -Math.sin(P) * (k + g.fontSize * A) + Math.abs(Math.cos(P)) * (g.fontSize * tQt);
+ }, E.anchorFn = function(g) {
+ var P = h(g), A = Math.cos(P);
+ return Math.abs(A) < 0.1 ? "middle" : A > 0 ? "start" : "end";
+ }, E.heightFn = function(g, P, A) {
+ var z = h(g);
+ return -0.5 * (1 + Math.sin(z)) * A;
+ };
+ var T = JJe(u);
+ r.angularTickLayout !== T && (i["angular-axis"].selectAll("." + c._id + "tick").remove(), r.angularTickLayout = T);
+ var L = f ? [1 / 0].concat(c.tickvals || []).map(function(g) {
+ return pp.tickText(c, g, true, false);
+ }) : pp.calcTicks(c);
+ f && (L[0].text = "∞", L[0].fontSize *= 1.75);
+ var x;
+ if (t.gridshape === "linear" ? (x = L.map(h), Xc.angleDelta(x[0], x[1]) < 0 && (x = x.slice().reverse())) : x = null, r.vangles = x, c.type === "category" && (L = L.filter(function(g) {
+ return Xc.isAngleInsideSector(h(g), r.sectorInRad);
+ })), c.visible) {
+ var C = c.ticks === "inside" ? -1 : 1, M = (c.linewidth || 1) / 2;
+ pp.drawTicks(n, c, { vals: L, layer: i["angular-axis"], path: "M" + C * M + ",0h" + C * c.ticklen, transFn: _, crisp: false }), pp.drawGrid(n, c, { vals: L, layer: i["angular-grid"], path: b, transFn: Xc.noop, crisp: false }), pp.drawLabels(n, c, { vals: L, layer: i["angular-axis"], repositionOnUpdate: true, transFn: v, labelFns: E });
+ }
+ _C(i["angular-line"].select("path"), u.showline, { d: r.pathSubplot(), transform: xd(s, l) }).attr("stroke-width", u.linewidth).call(Q$.stroke, u.linecolor);
+ };
+ Bd.updateFx = function(e, t) {
+ if (!this.gd._context.staticPlot) {
+ var r = !this.isSmith;
+ r && (this.updateAngularDrag(e), this.updateRadialDrag(e, t, 0), this.updateRadialDrag(e, t, 1)), this.updateHoverAndMainDrag(e);
+ }
+ };
+ Bd.updateHoverAndMainDrag = function(e) {
+ var t = this, r = t.isSmith, n = t.gd, i = t.layers, a = e._zoomlayer, o = Bx.MINZOOM, s = Bx.OFFEDGE, l = t.radius, u = t.innerRadius, c = t.cx, f = t.cy, h = t.cxx, d = t.cyy, v = t.sectorInRad, _ = t.vangles, b = t.radialAxis, p = M1.clampTiny, k = M1.findXYatLength, E = M1.findEnclosingVertexAngles, T = Bx.cornerHalfWidth, L = Bx.cornerLen / 2, x, C, M = S1.makeDragger(i, "path", "maindrag", e.dragmode === false ? "none" : "crosshair");
+ Sw.select(M).attr("d", t.pathSubplot()).attr("transform", xd(c, f)), M.onmousemove = function(ce) {
+ jJe.hover(n, ce, t.id), n._fullLayout._lasthover = M, n._fullLayout._hoversubplot = t.id;
+ }, M.onmouseout = function(ce) {
+ n._dragging || y9.unhover(n, ce);
+ };
+ var g = { element: M, gd: n, subplot: t.id, plotinfo: { id: t.id, xaxis: t.xaxis, yaxis: t.yaxis }, xaxes: [t.xaxis], yaxes: [t.yaxis] }, P, A, z, O, U, G, Z, j, N;
+ function H(ce, je) {
+ return Math.sqrt(ce * ce + je * je);
+ }
+ function re(ce, je) {
+ return H(ce - h, je - d);
+ }
+ function oe(ce, je) {
+ return Math.atan2(d - je, ce - h);
+ }
+ function _e(ce, je) {
+ return [ce * Math.cos(je), ce * Math.sin(-je)];
+ }
+ function Ce(ce, je) {
+ if (ce === 0) return t.pathSector(2 * T);
+ var lt = L / ce, pt = je - lt, Vt = je + lt, ot = Math.max(0, Math.min(ce, l)), ut = ot - T, Wt = ot + T;
+ return "M" + _e(ut, pt) + "A" + [ut, ut] + " 0,0,0 " + _e(ut, Vt) + "L" + _e(Wt, Vt) + "A" + [Wt, Wt] + " 0,0,1 " + _e(Wt, pt) + "Z";
+ }
+ function Le(ce, je, lt) {
+ if (ce === 0) return t.pathSector(2 * T);
+ var pt = _e(ce, je), Vt = _e(ce, lt), ot = p((pt[0] + Vt[0]) / 2), ut = p((pt[1] + Vt[1]) / 2), Wt, Nt;
+ if (ot && ut) {
+ var $t = ut / ot, sr = -1 / $t, Tr = k(T, $t, ot, ut);
+ Wt = k(L, sr, Tr[0][0], Tr[0][1]), Nt = k(L, sr, Tr[1][0], Tr[1][1]);
+ } else {
+ var fr, $e;
+ ut ? (fr = L, $e = T) : (fr = T, $e = L), Wt = [[ot - fr, ut - $e], [ot + fr, ut - $e]], Nt = [[ot - fr, ut + $e], [ot + fr, ut + $e]];
+ }
+ return "M" + Wt.join("L") + "L" + Nt.reverse().join("L") + "Z";
+ }
+ function ge() {
+ z = null, O = null, U = t.pathSubplot(), G = false;
+ var ce = n._fullLayout[t.id];
+ Z = X$t(ce.bgcolor).getLuminance(), j = S1.makeZoombox(a, Z, c, f, U), j.attr("fill-rule", "evenodd"), N = S1.makeCorners(a, c, f), eQ(n);
+ }
+ function ie(ce, je) {
+ return je = Math.max(Math.min(je, l), u), ce < s ? ce = 0 : l - ce < s ? ce = l : je < s ? je = 0 : l - je < s && (je = l), Math.abs(je - ce) > o ? (ce < je ? (z = ce, O = je) : (z = je, O = ce), true) : (z = null, O = null, false);
+ }
+ function Se(ce, je) {
+ ce = ce || U, je = je || "M0,0Z", j.attr("d", ce), N.attr("d", je), S1.transitionZoombox(j, N, G, Z), G = true;
+ var lt = {};
+ me(lt), n.emit("plotly_relayouting", lt);
+ }
+ function Ee(ce, je) {
+ ce = ce * x, je = je * C;
+ var lt = P + ce, pt = A + je, Vt = re(P, A), ot = Math.min(re(lt, pt), l), ut = oe(P, A), Wt, Nt;
+ ie(Vt, ot) && (Wt = U + t.pathSector(O), z && (Wt += t.pathSector(z)), Nt = Ce(z, ut) + Ce(O, ut)), Se(Wt, Nt);
+ }
+ function Ae(ce, je, lt, pt) {
+ var Vt = M1.findIntersectionXY(lt, pt, lt, [ce - h, d - je]);
+ return H(Vt[0], Vt[1]);
+ }
+ function Be(ce, je) {
+ var lt = P + ce, pt = A + je, Vt = oe(P, A), ot = oe(lt, pt), ut = E(Vt, _), Wt = E(ot, _), Nt = Ae(P, A, ut[0], ut[1]), $t = Math.min(Ae(lt, pt, Wt[0], Wt[1]), l), sr, Tr;
+ ie(Nt, $t) && (sr = U + t.pathSector(O), z && (sr += t.pathSector(z)), Tr = [Le(z, ut[0], ut[1]), Le(O, ut[0], ut[1])].join(" ")), Se(sr, Tr);
+ }
+ function Pe() {
+ if (S1.removeZoombox(n), !(z === null || O === null)) {
+ var ce = {};
+ me(ce), S1.showDoubleClickNotifier(n), Ew.call("_guiRelayout", n, ce);
+ }
+ }
+ function me(ce) {
+ var je = b._rl, lt = (je[1] - je[0]) / (1 - u / l) / l, pt = [je[0] + (z - u) * lt, je[0] + (O - u) * lt];
+ ce[t.id + ".radialaxis.range"] = pt;
+ }
+ function De(ce, je) {
+ var lt = n._fullLayout.clickmode;
+ if (S1.removeZoombox(n), ce === 2) {
+ var pt = {};
+ for (var Vt in t.viewInitial) pt[t.id + "." + Vt] = t.viewInitial[Vt];
+ n.emit("plotly_doubleclick", null), Ew.call("_guiRelayout", n, pt);
+ }
+ lt.indexOf("select") > -1 && ce === 1 && eQt(je, n, [t.xaxis], [t.yaxis], t.id, g), lt.indexOf("event") > -1 && jJe.click(n, je, t.id);
+ }
+ g.prepFn = function(ce, je, lt) {
+ var pt = n._fullLayout.dragmode, Vt = M.getBoundingClientRect();
+ n._fullLayout._calcInverseTransform(n);
+ var ot = n._fullLayout._invTransform;
+ x = n._fullLayout._invScaleX, C = n._fullLayout._invScaleY;
+ var ut = Xc.apply3DTransform(ot)(je - Vt.left, lt - Vt.top);
+ if (P = ut[0], A = ut[1], _) {
+ var Wt = M1.findPolygonOffset(l, v[0], v[1], _);
+ P += h + Wt[0], A += d + Wt[1];
+ }
+ switch (pt) {
+ case "zoom":
+ g.clickFn = De, r || (_ ? g.moveFn = Be : g.moveFn = Ee, g.doneFn = Pe, ge());
+ break;
+ case "select":
+ case "lasso":
+ Q$t(ce, je, lt, g, pt);
+ break;
+ }
+ }, y9.init(g);
+ };
+ Bd.updateRadialDrag = function(e, t, r) {
+ var n = this, i = n.gd, a = n.layers, o = n.radius, s = n.innerRadius, l = n.cx, u = n.cy, c = n.radialAxis, f = Bx.radialDragBoxSize, h = f / 2;
+ if (!c.visible) return;
+ var d = Nx(n.radialAxisAngle), v = c._rl, _ = v[0], b = v[1], p = v[r], k = 0.75 * (v[1] - v[0]) / (1 - n.getHole(t)) / o, E, T, L;
+ r ? (E = l + (o + h) * Math.cos(d), T = u - (o + h) * Math.sin(d), L = "radialdrag") : (E = l + (s - h) * Math.cos(d), T = u - (s - h) * Math.sin(d), L = "radialdrag-inner");
+ var x = S1.makeRectDragger(a, L, "crosshair", -h, -h, f, f), C = { element: x, gd: i };
+ e.dragmode === false && (C.dragmode = false), _C(Sw.select(x), c.visible && s < o, { transform: xd(E, T) });
+ var M, g, P;
+ function A(Z, j) {
+ if (M) M(Z, j);
+ else {
+ var N = [Z, -j], H = [Math.cos(d), Math.sin(d)], re = Math.abs(Xc.dot(N, H) / Math.sqrt(Xc.dot(N, N)));
+ isNaN(re) || (M = re < 0.5 ? U : G);
+ }
+ var oe = {};
+ z(oe), i.emit("plotly_relayouting", oe);
+ }
+ function z(Z) {
+ g !== null ? Z[n.id + ".radialaxis.angle"] = g : P !== null && (Z[n.id + ".radialaxis.range[" + r + "]"] = P);
+ }
+ function O() {
+ g !== null ? Ew.call("_guiRelayout", i, n.id + ".radialaxis.angle", g) : P !== null && Ew.call("_guiRelayout", i, n.id + ".radialaxis.range[" + r + "]", P);
+ }
+ function U(Z, j) {
+ if (r !== 0) {
+ var N = E + Z, H = T + j;
+ g = Math.atan2(u - H, N - l), n.vangles && (g = $Je(g, n.vangles)), g = Mw(g);
+ var re = xd(l, u) + uy(-g);
+ a["radial-axis"].attr("transform", re), a["radial-line"].select("line").attr("transform", re);
+ var oe = n.gd._fullLayout, _e = oe[n.id];
+ n.updateRadialAxisTitle(oe, _e, g);
+ }
+ }
+ function G(Z, j) {
+ var N = Xc.dot([Z, -j], [Math.cos(d), Math.sin(d)]);
+ if (P = p - k * N, k > 0 != (r ? P > _ : P < b)) {
+ P = null;
+ return;
+ }
+ var H = i._fullLayout, re = H[n.id];
+ c.range[r] = P, c._rl[r] = P, n.updateRadialAxis(H, re), n.xaxis.setRange(), n.xaxis.setScale(), n.yaxis.setRange(), n.yaxis.setScale();
+ var oe = false;
+ for (var _e in n.traceHash) {
+ var Ce = n.traceHash[_e], Le = Xc.filterVisible(Ce), ge = Ce[0][0].trace._module;
+ ge.plot(i, n, Le, re), Ew.traceIs(_e, "gl") && Le.length && (oe = true);
+ }
+ oe && (XJe(i), ZJe(i));
+ }
+ C.prepFn = function() {
+ M = null, g = null, P = null, C.moveFn = A, C.doneFn = O, eQ(i);
+ }, C.clampFn = function(Z, j) {
+ return Math.sqrt(Z * Z + j * j) < Bx.MINDRAG && (Z = 0, j = 0), [Z, j];
+ }, y9.init(C);
+ };
+ Bd.updateAngularDrag = function(e) {
+ var t = this, r = t.gd, n = t.layers, i = t.radius, a = t.angularAxis, o = t.cx, s = t.cy, l = t.cxx, u = t.cyy, c = Bx.angularDragBoxSize, f = S1.makeDragger(n, "path", "angulardrag", e.dragmode === false ? "none" : "move"), h = { element: f, gd: r };
+ e.dragmode === false ? h.dragmode = false : Sw.select(f).attr("d", t.pathAnnulus(i, i + c)).attr("transform", xd(o, s)).call(WJe, "move");
+ function d(P, A) {
+ return Math.atan2(u + c - A, P - l - c);
+ }
+ var v = n.frontplot.select(".scatterlayer").selectAll(".trace"), _ = v.selectAll(".point"), b = v.selectAll(".textpoint"), p, k, E, T, L, x;
+ function C(P, A) {
+ var z = t.gd._fullLayout, O = z[t.id], U = p + P * e._invScaleX, G = k + A * e._invScaleY, Z = d(U, G), j = Mw(Z - x);
+ if (T = E + j, n.frontplot.attr("transform", xd(t.xOffset2, t.yOffset2) + uy([-j, l, u])), t.vangles) {
+ L = t.radialAxisAngle + j;
+ var N = xd(o, s) + uy(-j), H = xd(o, s) + uy(-L);
+ n.bg.attr("transform", N), n["radial-grid"].attr("transform", N), n["radial-axis"].attr("transform", H), n["radial-line"].select("line").attr("transform", H), t.updateRadialAxisTitle(z, O, L);
+ } else t.clipPaths.forTraces.select("path").attr("transform", xd(l, u) + uy(j));
+ _.each(function() {
+ var ie = Sw.select(this), Se = yC.getTranslate(ie);
+ ie.attr("transform", xd(Se.x, Se.y) + uy([j]));
+ }), b.each(function() {
+ var ie = Sw.select(this), Se = ie.select("text"), Ee = yC.getTranslate(ie);
+ ie.attr("transform", uy([j, Se.attr("x"), Se.attr("y")]) + xd(Ee.x, Ee.y));
+ }), a.rotation = Xc.modHalf(T, 360), t.updateAngularAxis(z, O), t._hasClipOnAxisFalse && !Xc.isFullCircle(t.sectorInRad) && v.call(yC.hideOutsideRangePoints, t);
+ var re = false;
+ for (var oe in t.traceHash) if (Ew.traceIs(oe, "gl")) {
+ var _e = t.traceHash[oe], Ce = Xc.filterVisible(_e), Le = _e[0][0].trace._module;
+ Le.plot(r, t, Ce, O), Ce.length && (re = true);
+ }
+ re && (XJe(r), ZJe(r));
+ var ge = {};
+ M(ge), r.emit("plotly_relayouting", ge);
+ }
+ function M(P) {
+ P[t.id + ".angularaxis.rotation"] = T, t.vangles && (P[t.id + ".radialaxis.angle"] = L);
+ }
+ function g() {
+ b.select("text").attr("transform", null);
+ var P = {};
+ M(P), Ew.call("_guiRelayout", r, P);
+ }
+ h.prepFn = function(P, A, z) {
+ var O = e[t.id];
+ E = O.angularaxis.rotation;
+ var U = f.getBoundingClientRect();
+ p = A - U.left, k = z - U.top, r._fullLayout._calcInverseTransform(r);
+ var G = Xc.apply3DTransform(e._invTransform)(p, k);
+ p = G[0], k = G[1], x = d(p, k), h.moveFn = C, h.doneFn = g, eQ(r);
+ }, t.vangles && !Xc.isFullCircle(t.sectorInRad) && (h.prepFn = Xc.noop, WJe(Sw.select(f), null)), y9.init(h);
+ };
+ Bd.isPtInside = function(e) {
+ if (this.isSmith) return true;
+ var t = this.sectorInRad, r = this.vangles, n = this.angularAxis.c2g(e.theta), i = this.radialAxis, a = i.c2l(e.r), o = i._rl, s = r ? M1.isPtInsidePolygon : Xc.isPtInsideSector;
+ return s(a, n, o, t, r);
+ };
+ Bd.pathArc = function(e) {
+ var t = this.sectorInRad, r = this.vangles, n = r ? M1.pathPolygon : Xc.pathArc;
+ return n(e, t[0], t[1], r);
+ };
+ Bd.pathSector = function(e) {
+ var t = this.sectorInRad, r = this.vangles, n = r ? M1.pathPolygon : Xc.pathSector;
+ return n(e, t[0], t[1], r);
+ };
+ Bd.pathAnnulus = function(e, t) {
+ var r = this.sectorInRad, n = this.vangles, i = n ? M1.pathPolygonAnnulus : Xc.pathAnnulus;
+ return i(e, t, r[0], r[1], n);
+ };
+ Bd.pathSubplot = function() {
+ var e = this.innerRadius, t = this.radius;
+ return e ? this.pathAnnulus(e, t) : this.pathSector(t);
+ };
+ Bd.fillViewInitialKey = function(e, t) {
+ e in this.viewInitial || (this.viewInitial[e] = t);
+ };
+ function JJe(e) {
+ var t = e.ticks + String(e.ticklen) + String(e.showticklabels);
+ return "side" in e && (t += e.side), t;
+ }
+ function aQt(e) {
+ var t = e[0], r = e[1], n = r - t, i = YJe(t, 360), a = i + n, o = Math.cos(Nx(i)), s = Math.sin(Nx(i)), l = Math.cos(Nx(a)), u = Math.sin(Nx(a)), c, f, h, d;
+ return i <= 90 && a >= 90 || i > 90 && a >= 450 ? d = 1 : s <= 0 && u <= 0 ? d = 0 : d = Math.max(s, u), i <= 180 && a >= 180 || i > 180 && a >= 540 ? c = -1 : o >= 0 && l >= 0 ? c = 0 : c = Math.min(o, l), i <= 270 && a >= 270 || i > 270 && a >= 630 ? f = -1 : s >= 0 && u >= 0 ? f = 0 : f = Math.min(s, u), a >= 360 ? h = 1 : o <= 0 && l <= 0 ? h = 0 : h = Math.max(o, l), [c, f, h, d];
+ }
+ function $Je(e, t) {
+ var r = function(i) {
+ return Xc.angleDist(e, i);
+ }, n = Xc.findIndexOfMin(t, r);
+ return t[n];
+ }
+ function _C(e, t, r) {
+ return t ? (e.attr("display", null), e.attr(r)) : e && e.attr("display", "none"), e;
+ }
+ });
+ var rQ = ye((Xwr, a$e) => {
+ var oQt = Ih(), os = Rd(), sQt = Cc().attributes, f0 = Dr().extendFlat, e$e = mc().overrideAll, t$e = e$e({ color: os.color, showline: f0({}, os.showline, { dflt: true }), linecolor: os.linecolor, linewidth: os.linewidth, showgrid: f0({}, os.showgrid, { dflt: true }), gridcolor: os.gridcolor, gridwidth: os.gridwidth, griddash: os.griddash }, "plot", "from-root"), r$e = e$e({ tickmode: os.minor.tickmode, nticks: os.nticks, tick0: os.tick0, dtick: os.dtick, tickvals: os.tickvals, ticktext: os.ticktext, ticks: os.ticks, ticklen: os.ticklen, tickwidth: os.tickwidth, tickcolor: os.tickcolor, ticklabelstep: os.ticklabelstep, showticklabels: os.showticklabels, labelalias: os.labelalias, minorloglabels: os.minorloglabels, showtickprefix: os.showtickprefix, tickprefix: os.tickprefix, showticksuffix: os.showticksuffix, ticksuffix: os.ticksuffix, showexponent: os.showexponent, exponentformat: os.exponentformat, minexponent: os.minexponent, separatethousands: os.separatethousands, tickfont: os.tickfont, tickangle: os.tickangle, tickformat: os.tickformat, tickformatstops: os.tickformatstops, layer: os.layer }, "plot", "from-root"), i$e = { visible: f0({}, os.visible, { dflt: true }), type: f0({}, os.type, { values: ["-", "linear", "log", "date", "category"] }), autotypenumbers: os.autotypenumbers, autorangeoptions: { minallowed: os.autorangeoptions.minallowed, maxallowed: os.autorangeoptions.maxallowed, clipmin: os.autorangeoptions.clipmin, clipmax: os.autorangeoptions.clipmax, include: os.autorangeoptions.include, editType: "plot" }, autorange: f0({}, os.autorange, { editType: "plot" }), rangemode: { valType: "enumerated", values: ["tozero", "nonnegative", "normal"], dflt: "tozero", editType: "calc" }, minallowed: f0({}, os.minallowed, { editType: "plot" }), maxallowed: f0({}, os.maxallowed, { editType: "plot" }), range: f0({}, os.range, { items: [{ valType: "any", editType: "plot", impliedEdits: { "^autorange": false } }, { valType: "any", editType: "plot", impliedEdits: { "^autorange": false } }], editType: "plot" }), categoryorder: os.categoryorder, categoryarray: os.categoryarray, angle: { valType: "angle", editType: "plot" }, autotickangles: os.autotickangles, side: { valType: "enumerated", values: ["clockwise", "counterclockwise"], dflt: "clockwise", editType: "plot" }, title: { text: f0({}, os.title.text, { editType: "plot", dflt: "" }), font: f0({}, os.title.font, { editType: "plot" }), editType: "plot" }, hoverformat: os.hoverformat, uirevision: { valType: "any", editType: "none" }, editType: "calc" };
+ f0(i$e, t$e, r$e);
+ var n$e = { visible: f0({}, os.visible, { dflt: true }), type: { valType: "enumerated", values: ["-", "linear", "category"], dflt: "-", editType: "calc", _noTemplating: true }, autotypenumbers: os.autotypenumbers, categoryorder: os.categoryorder, categoryarray: os.categoryarray, thetaunit: { valType: "enumerated", values: ["radians", "degrees"], dflt: "degrees", editType: "calc" }, period: { valType: "number", editType: "calc", min: 0 }, direction: { valType: "enumerated", values: ["counterclockwise", "clockwise"], dflt: "counterclockwise", editType: "calc" }, rotation: { valType: "angle", editType: "calc" }, hoverformat: os.hoverformat, uirevision: { valType: "any", editType: "none" }, editType: "calc" };
+ f0(n$e, t$e, r$e);
+ a$e.exports = { domain: sQt({ name: "polar", editType: "plot" }), sector: { valType: "info_array", items: [{ valType: "number", editType: "plot" }, { valType: "number", editType: "plot" }], dflt: [0, 360], editType: "plot" }, hole: { valType: "number", min: 0, max: 1, dflt: 0, editType: "plot" }, bgcolor: { valType: "color", editType: "plot", dflt: oQt.background }, radialaxis: i$e, angularaxis: n$e, gridshape: { valType: "enumerated", values: ["circular", "linear"], dflt: "circular", editType: "plot" }, uirevision: { valType: "any", editType: "none" }, editType: "calc" };
+ });
+ var u$e = ye((Zwr, l$e) => {
+ var x9 = Dr(), lQt = ka(), uQt = vl(), cQt = O_(), fQt = Id().getSubplotData, hQt = Lb(), dQt = F3(), vQt = s_(), pQt = l_(), gQt = cI(), mQt = u4(), yQt = TB(), _Qt = V3(), s$e = rQ(), xQt = Y$(), b9 = d9(), o$e = b9.axisNames;
+ function bQt(e, t, r, n) {
+ var i = r("bgcolor");
+ n.bgColor = lQt.combine(i, n.paper_bgcolor);
+ var a = r("sector");
+ r("hole");
+ var o = fQt(n.fullData, b9.name, n.id), s = n.layoutOut, l;
+ function u(j, N) {
+ return r(l + "." + j, N);
+ }
+ for (var c = 0; c < o$e.length; c++) {
+ l = o$e[c], x9.isPlainObject(e[l]) || (e[l] = {});
+ var f = e[l], h = uQt.newContainer(t, l);
+ h._id = h._name = l, h._attr = n.id + "." + l, h._traceIndices = o.map(function(j) {
+ return j.index;
+ });
+ var d = b9.axisName2dataArray[l], v = wQt(f, h, u, o, d, n);
+ gQt(f, h, u, { axData: o, dataAttr: d });
+ var _ = u("visible");
+ switch (xQt(h, t, s), u("uirevision", t.uirevision), h._m = 1, l) {
+ case "radialaxis":
+ u("minallowed"), u("maxallowed");
+ var b = u("range"), p = h.getAutorangeDflt(b), k = u("autorange", p), E;
+ b && (b[0] === null && b[1] === null || (b[0] === null || b[1] === null) && (k === "reversed" || k === true) || b[0] !== null && (k === "min" || k === "max reversed") || b[1] !== null && (k === "max" || k === "min reversed")) && (b = void 0, delete h.range, h.autorange = true, E = true), E || (p = h.getAutorangeDflt(b), k = u("autorange", p)), f.autorange = k, k && (yQt(u, k, b), (v === "linear" || v === "-") && u("rangemode"), h.isReversed() && (h._m = -1)), h.cleanRange("range", { dfltRange: [0, 1] });
+ break;
+ case "angularaxis":
+ if (v === "date") {
+ x9.log("Polar plots do not support date angular axes yet.");
+ for (var T = 0; T < o.length; T++) o[T].visible = false;
+ v = f.type = h.type = "linear";
+ }
+ u(v === "linear" ? "thetaunit" : "period");
+ var L = u("direction");
+ u("rotation", { counterclockwise: 0, clockwise: 90 }[L]);
+ break;
+ }
+ if (pQt(f, h, u, h.type, { tickSuffixDflt: h.thetaunit === "degrees" ? "°" : void 0 }), _) {
+ var x, C, M, g, P, A, z, O, U, G, Z = n.font || {};
+ x = u("color"), C = x === f.color ? x : Z.color, M = Z.size, g = Z.family, P = Z.weight, A = Z.style, z = Z.variant, O = Z.textcase, U = Z.lineposition, G = Z.shadow, hQt(f, h, u, h.type), vQt(f, h, u, h.type, { font: { weight: P, style: A, variant: z, textcase: O, lineposition: U, shadow: G, color: C, size: M, family: g }, noAutotickangles: l === "angularaxis", noTicklabelshift: true, noTicklabelstandoff: true }), dQt(f, h, u, { outerTicks: true }), mQt(f, h, u, { dfltColor: x, bgColor: n.bgColor, blend: 60, showLine: true, showGrid: true, noZeroLine: true, attributes: s$e[l] }), u("layer"), l === "radialaxis" && (u("side"), u("angle", a[0]), u("title.text"), x9.coerceFont(u, "title.font", { weight: P, style: A, variant: z, textcase: O, lineposition: U, shadow: G, color: C, size: x9.bigFont(M), family: g }));
+ }
+ v !== "category" && u("hoverformat"), h._input = f;
+ }
+ t.angularaxis.type === "category" && r("gridshape");
+ }
+ function wQt(e, t, r, n, i, a) {
+ var o = r("autotypenumbers", a.autotypenumbersDflt), s = r("type");
+ if (s === "-") {
+ for (var l, u = 0; u < n.length; u++) if (n[u].visible) {
+ l = n[u];
+ break;
+ }
+ l && l[i] && (t.type = _Qt(l[i], "gregorian", { noMultiCategory: true, autotypenumbers: o })), t.type === "-" ? t.type = "linear" : e.type = t.type;
+ }
+ return t.type;
+ }
+ l$e.exports = function(t, r, n) {
+ cQt(t, r, n, { type: b9.name, attributes: s$e, handleDefaults: bQt, font: r.font, autotypenumbersDflt: r.autotypenumbers, paper_bgcolor: r.paper_bgcolor, fullData: n, layoutOut: r });
+ };
+ });
+ var w9 = ye((Ywr, v$e) => {
+ var TQt = Id().getSubplotCalcData, AQt = Dr().counterRegex, SQt = tQ(), f$e = d9(), h$e = f$e.attr, kw = f$e.name, c$e = AQt(kw), d$e = {};
+ d$e[h$e] = { valType: "subplotid", dflt: kw, editType: "calc" };
+ function MQt(e) {
+ for (var t = e._fullLayout, r = e.calcdata, n = t._subplots[kw], i = 0; i < n.length; i++) {
+ var a = n[i], o = TQt(r, kw, a), s = t[a]._subplot;
+ s || (s = SQt(e, a), t[a]._subplot = s), s.plot(o, t, e._promises);
+ }
+ }
+ function EQt(e, t, r, n) {
+ for (var i = n._subplots[kw] || [], a = n._has && n._has("gl"), o = t._has && t._has("gl"), s = a && !o, l = 0; l < i.length; l++) {
+ var u = i[l], c = n[u]._subplot;
+ if (!t[u] && c) {
+ c.framework.remove(), c.layers["radial-axis-title"].remove();
+ for (var f in c.clipPaths) c.clipPaths[f].remove();
+ }
+ s && c._scene && (c._scene.destroy(), c._scene = null);
+ }
+ }
+ v$e.exports = { attr: h$e, name: kw, idRoot: kw, idRegex: c$e, attrRegex: c$e, attributes: d$e, layoutAttributes: rQ(), supplyLayoutDefaults: u$e(), plot: MQt, clean: EQt, toSVG: mh().toSVG };
+ });
+ var xC = ye((Kwr, g$e) => {
+ var { hovertemplateAttrs: kQt, texttemplateAttrs: CQt, templatefallbackAttrs: p$e } = Ll(), T9 = Ao().extendFlat, LQt = Pg(), h0 = pf(), PQt = Gl(), $5 = h0.line;
+ g$e.exports = { mode: h0.mode, r: { valType: "data_array", editType: "calc+clearAxisTypes" }, theta: { valType: "data_array", editType: "calc+clearAxisTypes" }, r0: { valType: "any", dflt: 0, editType: "calc+clearAxisTypes" }, dr: { valType: "number", dflt: 1, editType: "calc" }, theta0: { valType: "any", dflt: 0, editType: "calc+clearAxisTypes" }, dtheta: { valType: "number", editType: "calc" }, thetaunit: { valType: "enumerated", values: ["radians", "degrees", "gradians"], dflt: "degrees", editType: "calc+clearAxisTypes" }, text: h0.text, texttemplate: CQt({ editType: "plot" }, { keys: ["r", "theta", "text"] }), texttemplatefallback: p$e({ editType: "plot" }), hovertext: h0.hovertext, line: { color: $5.color, width: $5.width, dash: $5.dash, backoff: $5.backoff, shape: T9({}, $5.shape, { values: ["linear", "spline"] }), smoothing: $5.smoothing, editType: "calc" }, connectgaps: h0.connectgaps, marker: h0.marker, cliponaxis: T9({}, h0.cliponaxis, { dflt: false }), textposition: h0.textposition, textfont: h0.textfont, fill: T9({}, h0.fill, { values: ["none", "toself", "tonext"], dflt: "none" }), fillcolor: LQt(), hoverinfo: T9({}, PQt.hoverinfo, { flags: ["r", "theta", "text", "name"] }), hoveron: h0.hoveron, hovertemplate: kQt(), hovertemplatefallback: p$e(), selected: h0.selected, unselected: h0.unselected };
+ });
+ var S9 = ye((Jwr, _$e) => {
+ var A9 = Dr(), Q5 = Ru(), IQt = $p(), RQt = D0(), m$e = sT(), DQt = F0(), FQt = Fg(), zQt = Lm().PTS_LINESONLY, OQt = xC();
+ function qQt(e, t, r, n) {
+ function i(s, l) {
+ return A9.coerce(e, t, OQt, s, l);
+ }
+ var a = y$e(e, t, n, i);
+ if (!a) {
+ t.visible = false;
+ return;
+ }
+ i("thetaunit"), i("mode", a < zQt ? "lines+markers" : "lines"), i("text"), i("hovertext"), t.hoveron !== "fills" && (i("hovertemplate"), i("hovertemplatefallback")), Q5.hasMarkers(t) && IQt(e, t, r, n, i, { gradient: true }), Q5.hasLines(t) && (RQt(e, t, r, n, i, { backoff: true }), m$e(e, t, i), i("connectgaps")), Q5.hasText(t) && (i("texttemplate"), i("texttemplatefallback"), DQt(e, t, n, i));
+ var o = [];
+ (Q5.hasMarkers(t) || Q5.hasText(t)) && (i("cliponaxis"), i("marker.maxdisplayed"), o.push("points")), i("fill"), t.fill !== "none" && (FQt(e, t, r, i), Q5.hasLines(t) || m$e(e, t, i)), (t.fill === "tonext" || t.fill === "toself") && o.push("fills"), i("hoveron", o.join("+") || "points"), A9.coerceSelectionMarkerOpacity(t, i);
+ }
+ function y$e(e, t, r, n) {
+ var i = n("r"), a = n("theta");
+ A9.isTypedArray(i) && (t.r = i = Array.from(i)), A9.isTypedArray(a) && (t.theta = a = Array.from(a));
+ var o;
+ if (i) a ? o = Math.min(i.length, a.length) : (o = i.length, n("theta0"), n("dtheta"));
+ else {
+ if (!a) return 0;
+ o = t.theta.length, n("r0"), n("dr");
+ }
+ return t._length = o, o;
+ }
+ _$e.exports = { handleRThetaDefaults: y$e, supplyDefaults: qQt };
+ });
+ var M9 = ye(($wr, b$e) => {
+ var BQt = Dr(), x$e = ho();
+ b$e.exports = function(t, r, n) {
+ var i = {}, a = n[r.subplot]._subplot, o, s;
+ a ? (o = a.radialAxis, s = a.angularAxis) : (a = n[r.subplot], o = a.radialaxis, s = a.angularaxis);
+ var l = o.c2l(t.r);
+ i.rLabel = x$e.tickText(o, l, true).text;
+ var u = s.thetaunit === "degrees" ? BQt.rad2deg(t.theta) : t.theta;
+ return i.thetaLabel = x$e.tickText(s, u, true).text, i;
+ };
+ });
+ var A$e = ye((Qwr, T$e) => {
+ var w$e = Eo(), NQt = fs().BADNUM, UQt = ho(), VQt = z0(), GQt = Rm(), HQt = O0(), jQt = q0().calcMarkerSize;
+ T$e.exports = function(t, r) {
+ for (var n = t._fullLayout, i = r.subplot, a = n[i].radialaxis, o = n[i].angularaxis, s = a.makeCalcdata(r, "r"), l = o.makeCalcdata(r, "theta"), u = r._length, c = new Array(u), f = 0; f < u; f++) {
+ var h = s[f], d = l[f], v = c[f] = {};
+ w$e(h) && w$e(d) ? (v.r = h, v.theta = d) : v.r = NQt;
+ }
+ var _ = jQt(r, u);
+ return r._extremes.x = UQt.findExtremes(a, s, { ppad: _ }), VQt(t, r), GQt(c, r), HQt(c, r), c;
+ };
+ });
+ var E$e = ye((e3r, M$e) => {
+ var WQt = dT(), S$e = fs().BADNUM;
+ M$e.exports = function(t, r, n) {
+ for (var i = r.layers.frontplot.select("g.scatterlayer"), a = r.xaxis, o = r.yaxis, s = { xaxis: a, yaxis: o, plot: r.framework, layerClipId: r._hasClipOnAxisFalse ? r.clipIds.forTraces : null }, l = r.radialAxis, u = r.angularAxis, c = 0; c < n.length; c++) for (var f = n[c], h = 0; h < f.length; h++) {
+ h === 0 && (f[0].trace._xA = a, f[0].trace._yA = o);
+ var d = f[h], v = d.r;
+ if (v === S$e) d.x = d.y = S$e;
+ else {
+ var _ = l.c2g(v), b = u.c2g(d.theta);
+ d.x = _ * Math.cos(b), d.y = _ * Math.sin(b);
+ }
+ }
+ WQt(t, s, n, i);
+ };
+ });
+ var E9 = ye((t3r, C$e) => {
+ var XQt = mT();
+ function ZQt(e, t, r, n) {
+ var i = XQt(e, t, r, n);
+ if (!(!i || i[0].index === false)) {
+ var a = i[0];
+ if (a.index === void 0) return i;
+ var o = e.subplot, s = a.cd[a.index], l = a.trace;
+ if (o.isPtInside(s)) return a.xLabelVal = void 0, a.yLabelVal = void 0, k$e(s, l, o, a), a.hovertemplate = l.hovertemplate, i;
+ }
+ }
+ function k$e(e, t, r, n) {
+ var i = r.radialAxis, a = r.angularAxis;
+ i._hovertitle = "r", a._hovertitle = "θ";
+ var o = {};
+ o[t.subplot] = { _subplot: r };
+ var s = t._module.formatLabels(e, t, o);
+ n.rLabel = s.rLabel, n.thetaLabel = s.thetaLabel;
+ var l = e.hi || t.hoverinfo, u = [];
+ function c(h, d) {
+ u.push(h._hovertitle + ": " + d);
+ }
+ if (!t.hovertemplate) {
+ var f = l.split("+");
+ f.indexOf("all") !== -1 && (f = ["r", "theta", "text"]), f.indexOf("r") !== -1 && c(i, n.rLabel), f.indexOf("theta") !== -1 && c(a, n.thetaLabel), f.indexOf("text") !== -1 && n.text && (u.push(n.text), delete n.text), n.extraText = u.join(" ");
+ }
+ }
+ C$e.exports = { hoverPoints: ZQt, makeHoverPointText: k$e };
+ });
+ var P$e = ye((r3r, L$e) => {
+ L$e.exports = { moduleType: "trace", name: "scatterpolar", basePlotModule: w9(), categories: ["polar", "symbols", "showLegend", "scatter-like"], attributes: xC(), supplyDefaults: S9().supplyDefaults, colorbar: $d(), formatLabels: M9(), calc: A$e(), plot: E$e(), style: sp().style, styleOnSelect: sp().styleOnSelect, hoverPoints: E9().hoverPoints, selectPoints: yT(), meta: {} };
+ });
+ var R$e = ye((i3r, I$e) => {
+ I$e.exports = P$e();
+ });
+ var iQ = ye((o3r, F$e) => {
+ var D$e = xC(), { cliponaxis: n3r, hoveron: a3r } = D$e, YQt = gee(D$e, ["cliponaxis", "hoveron"]), { connectgaps: KQt, line: { color: JQt, dash: $Qt, width: QQt }, fill: eer, fillcolor: ter, marker: rer, textfont: ier, textposition: ner } = gk();
+ F$e.exports = j1(_g({}, YQt), { connectgaps: KQt, fill: eer, fillcolor: ter, line: { color: JQt, dash: $Qt, editType: "calc", width: QQt }, marker: rer, textfont: ier, textposition: ner });
+ });
+ var q$e = ye((l3r, O$e) => {
+ var z$e = Dr(), nQ = Ru(), aer = S9().handleRThetaDefaults, oer = $p(), ser = D0(), ler = F0(), uer = Fg(), cer = Lm().PTS_LINESONLY, fer = iQ();
+ O$e.exports = function(t, r, n, i) {
+ function a(s, l) {
+ return z$e.coerce(t, r, fer, s, l);
+ }
+ var o = aer(t, r, i, a);
+ if (!o) {
+ r.visible = false;
+ return;
+ }
+ a("thetaunit"), a("mode", o < cer ? "lines+markers" : "lines"), a("text"), a("hovertext"), r.hoveron !== "fills" && (a("hovertemplate"), a("hovertemplatefallback")), nQ.hasMarkers(r) && oer(t, r, n, i, a, { noAngleRef: true, noLineDash: true, noStandOff: true }), nQ.hasLines(r) && (ser(t, r, n, i, a), a("connectgaps")), nQ.hasText(r) && (a("texttemplate"), a("texttemplatefallback"), ler(t, r, i, a, { noFontShadow: true, noFontLineposition: true, noFontTextcase: true })), a("fill"), r.fill !== "none" && uer(t, r, n, a), z$e.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var N$e = ye((u3r, B$e) => {
+ var her = M9();
+ B$e.exports = function(t, r, n) {
+ var i = t.i;
+ return "r" in t || (t.r = r._r[i]), "theta" in t || (t.theta = r._theta[i]), her(t, r, n);
+ };
+ });
+ var V$e = ye((c3r, U$e) => {
+ var der = z0(), ver = q0().calcMarkerSize, per = ow(), ger = ho(), mer = px().TOO_MANY_POINTS;
+ U$e.exports = function(t, r) {
+ var n = t._fullLayout, i = r.subplot, a = n[i].radialaxis, o = n[i].angularaxis, s = r._r = a.makeCalcdata(r, "r"), l = r._theta = o.makeCalcdata(r, "theta"), u = r._length, c = {};
+ u < s.length && (s = s.slice(0, u)), u < l.length && (l = l.slice(0, u)), c.r = s, c.theta = l, der(t, r);
+ var f = c.opts = per.style(t, r), h;
+ return u < mer ? h = ver(r, u) : f.marker && (h = 2 * (f.marker.sizeAvg || Math.max(f.marker.size, 3))), r._extremes.x = ger.findExtremes(a, s, { ppad: h }), [{ x: false, y: false, t: c, trace: r }];
+ };
+ });
+ var H$e = ye((f3r, G$e) => {
+ var yer = jF(), _er = E9().makeHoverPointText;
+ function xer(e, t, r, n) {
+ var i = e.cd, a = i[0].t, o = a.r, s = a.theta, l = yer.hoverPoints(e, t, r, n);
+ if (!(!l || l[0].index === false)) {
+ var u = l[0];
+ if (u.index === void 0) return l;
+ var c = e.subplot, f = u.cd[u.index], h = u.trace;
+ if (f.r = o[u.index], f.theta = s[u.index], !!c.isPtInside(f)) return u.xLabelVal = void 0, u.yLabelVal = void 0, _er(f, h, c, u), l;
+ }
+ }
+ G$e.exports = { hoverPoints: xer };
+ });
+ var W$e = ye((h3r, j$e) => {
+ j$e.exports = { moduleType: "trace", name: "scatterpolargl", basePlotModule: w9(), categories: ["gl", "regl", "polar", "symbols", "showLegend", "scatter-like"], attributes: iQ(), supplyDefaults: q$e(), colorbar: $d(), formatLabels: N$e(), calc: V$e(), hoverPoints: H$e().hoverPoints, selectPoints: gY(), meta: {} };
+ });
+ var X$e = ye((d3r, aQ) => {
+ var ber = ZF(), wer = Eo(), Ter = xK(), Aer = dY(), k9 = ow(), C9 = Dr(), Ser = px().TOO_MANY_POINTS, Mer = {};
+ aQ.exports = function(t, r, n) {
+ if (n.length) {
+ var i = r.radialAxis, a = r.angularAxis, o = Aer(t, r);
+ return n.forEach(function(s) {
+ if (!(!s || !s[0] || !s[0].trace)) {
+ var l = s[0], u = l.trace, c = l.t, f = u._length, h = c.r, d = c.theta, v = c.opts, _, b = h.slice(), p = d.slice();
+ for (_ = 0; _ < h.length; _++) r.isPtInside({ r: h[_], theta: d[_] }) || (b[_] = NaN, p[_] = NaN);
+ var k = new Array(f * 2), E = Array(f), T = Array(f);
+ for (_ = 0; _ < f; _++) {
+ var L = b[_], x, C;
+ if (wer(L)) {
+ var M = i.c2g(L), g = a.c2g(p[_], u.thetaunit);
+ x = M * Math.cos(g), C = M * Math.sin(g);
+ } else x = C = NaN;
+ E[_] = k[_ * 2] = x, T[_] = k[_ * 2 + 1] = C;
+ }
+ c.tree = ber(k), v.marker && f >= Ser && (v.marker.cluster = c.tree), v.marker && (v.markerSel.positions = v.markerUnsel.positions = v.marker.positions = k), v.line && k.length > 1 && C9.extendFlat(v.line, k9.linePositions(t, u, k)), v.text && (C9.extendFlat(v.text, { positions: k }, k9.textPosition(t, u, v.text, v.marker)), C9.extendFlat(v.textSel, { positions: k }, k9.textPosition(t, u, v.text, v.markerSel)), C9.extendFlat(v.textUnsel, { positions: k }, k9.textPosition(t, u, v.text, v.markerUnsel))), v.fill && !o.fill2d && (o.fill2d = true), v.marker && !o.scatter2d && (o.scatter2d = true), v.line && !o.line2d && (o.line2d = true), v.text && !o.glText && (o.glText = true), o.lineOptions.push(v.line), o.fillOptions.push(v.fill), o.markerOptions.push(v.marker), o.markerSelectedOptions.push(v.markerSel), o.markerUnselectedOptions.push(v.markerUnsel), o.textOptions.push(v.text), o.textSelectedOptions.push(v.textSel), o.textUnselectedOptions.push(v.textUnsel), o.selectBatch.push([]), o.unselectBatch.push([]), c.x = E, c.y = T, c.rawx = E, c.rawy = T, c.r = h, c.theta = d, c.positions = k, c._scene = o, c.index = o.count, o.count++;
+ }
+ }), Ter(t, r, n);
+ }
+ };
+ aQ.exports.reglPrecompiled = Mer;
+ });
+ var K$e = ye((v3r, Y$e) => {
+ var Z$e = W$e();
+ Z$e.plot = X$e();
+ Y$e.exports = Z$e;
+ });
+ var $$e = ye((p3r, J$e) => {
+ J$e.exports = K$e();
+ });
+ var oQ = ye((g3r, Q$e) => {
+ var { hovertemplateAttrs: Eer, templatefallbackAttrs: ker } = Ll(), eS = Ao().extendFlat, Ux = xC(), Vx = zm();
+ Q$e.exports = { r: Ux.r, theta: Ux.theta, r0: Ux.r0, dr: Ux.dr, theta0: Ux.theta0, dtheta: Ux.dtheta, thetaunit: Ux.thetaunit, base: eS({}, Vx.base, {}), offset: eS({}, Vx.offset, {}), width: eS({}, Vx.width, {}), text: eS({}, Vx.text, {}), hovertext: eS({}, Vx.hovertext, {}), marker: Cer(), hoverinfo: Ux.hoverinfo, hovertemplate: Eer(), hovertemplatefallback: ker(), selected: Vx.selected, unselected: Vx.unselected };
+ function Cer() {
+ var e = eS({}, Vx.marker);
+ return delete e.cornerradius, e;
+ }
+ });
+ var sQ = ye((m3r, eQe) => {
+ eQe.exports = { barmode: { valType: "enumerated", values: ["stack", "overlay"], dflt: "stack", editType: "calc" }, bargap: { valType: "number", dflt: 0.1, min: 0, max: 1, editType: "calc" } };
+ });
+ var iQe = ye((y3r, rQe) => {
+ var tQe = Dr(), Ler = S9().handleRThetaDefaults, Per = WI(), Ier = oQ();
+ rQe.exports = function(t, r, n, i) {
+ function a(s, l) {
+ return tQe.coerce(t, r, Ier, s, l);
+ }
+ var o = Ler(t, r, i, a);
+ if (!o) {
+ r.visible = false;
+ return;
+ }
+ a("thetaunit"), a("base"), a("offset"), a("width"), a("text"), a("hovertext"), a("hovertemplate"), a("hovertemplatefallback"), Per(t, r, a, n, i), tQe.coerceSelectionMarkerOpacity(r, a);
+ };
+ });
+ var aQe = ye((_3r, nQe) => {
+ var Rer = Dr(), Der = sQ();
+ nQe.exports = function(e, t, r) {
+ var n = {}, i;
+ function a(l, u) {
+ return Rer.coerce(e[i] || {}, t[i], Der, l, u);
+ }
+ for (var o = 0; o < r.length; o++) {
+ var s = r[o];
+ s.type === "barpolar" && s.visible === true && (i = s.subplot, n[i] || (a("barmode"), a("bargap"), n[i] = 1));
+ }
+ };
+ });
+ var lQ = ye((x3r, lQe) => {
+ var oQe = pv().hasColorscale, sQe = gv(), Fer = Dr().isArrayOrTypedArray, zer = A4(), Oer = t2().setGroupPositions, qer = O0(), Ber = qa().traceIs, Ner = Dr().extendFlat;
+ function Uer(e, t) {
+ for (var r = e._fullLayout, n = t.subplot, i = r[n].radialaxis, a = r[n].angularaxis, o = i.makeCalcdata(t, "r"), s = a.makeCalcdata(t, "theta"), l = t._length, u = new Array(l), c = o, f = s, h = 0; h < l; h++) u[h] = { p: f[h], s: c[h] };
+ function d(v) {
+ var _ = t[v];
+ _ !== void 0 && (t["_" + v] = Fer(_) ? a.makeCalcdata(t, v) : a.d2c(_, t.thetaunit));
+ }
+ return a.type === "linear" && (d("width"), d("offset")), oQe(t, "marker") && sQe(e, t, { vals: t.marker.color, containerStr: "marker", cLetter: "c" }), oQe(t, "marker.line") && sQe(e, t, { vals: t.marker.line.color, containerStr: "marker.line", cLetter: "c" }), zer(u, t), qer(u, t), u;
+ }
+ function Ver(e, t, r) {
+ for (var n = e.calcdata, i = [], a = 0; a < n.length; a++) {
+ var o = n[a], s = o[0].trace;
+ s.visible === true && Ber(s, "bar") && s.subplot === r && i.push(o);
+ }
+ var l = Ner({}, t.radialaxis, { _id: "x" }), u = t.angularaxis;
+ Oer(e, u, l, i, { mode: t.barmode, norm: t.barnorm, gap: t.bargap, groupgap: t.bargroupgap });
+ }
+ lQe.exports = { calc: Uer, crossTraceCalc: Ver };
+ });
+ var fQe = ye((b3r, cQe) => {
+ var uQe = Oa(), L9 = Eo(), tS = Dr(), Ger = So(), uQ = p9();
+ cQe.exports = function(t, r, n) {
+ var i = t._context.staticPlot, a = r.xaxis, o = r.yaxis, s = r.radialAxis, l = r.angularAxis, u = Her(r), c = r.layers.frontplot.select("g.barlayer");
+ tS.makeTraceGroups(c, n, "trace bars").each(function() {
+ var f = uQe.select(this), h = tS.ensureSingle(f, "g", "points"), d = h.selectAll("g.point").data(tS.identity);
+ d.enter().append("g").style("vector-effect", i ? "none" : "non-scaling-stroke").style("stroke-miterlimit", 2).classed("point", true), d.exit().remove(), d.each(function(v) {
+ var _ = uQe.select(this), b = v.rp0 = s.c2p(v.s0), p = v.rp1 = s.c2p(v.s1), k = v.thetag0 = l.c2g(v.p0), E = v.thetag1 = l.c2g(v.p1), T;
+ if (!L9(b) || !L9(p) || !L9(k) || !L9(E) || b === p || k === E) T = "M0,0Z";
+ else {
+ var L = s.c2g(v.s1), x = (k + E) / 2;
+ v.ct = [a.c2p(L * Math.cos(x)), o.c2p(L * Math.sin(x))], T = u(b, p, k, E);
+ }
+ tS.ensureSingle(_, "path").attr("d", T);
+ }), Ger.setClipUrl(f, r._hasClipOnAxisFalse ? r.clipIds.forTraces : null, t);
+ });
+ };
+ function Her(e) {
+ var t = e.cxx, r = e.cyy;
+ return e.vangles ? function(n, i, a, o) {
+ var s, l;
+ tS.angleDelta(a, o) > 0 ? (s = a, l = o) : (s = o, l = a);
+ var u = uQ.findEnclosingVertexAngles(s, e.vangles)[0], c = uQ.findEnclosingVertexAngles(l, e.vangles)[1], f = [u, (s + l) / 2, c];
+ return uQ.pathPolygonAnnulus(n, i, s, l, f, t, r);
+ } : function(n, i, a, o) {
+ return tS.pathAnnulus(n, i, a, o, t, r);
+ };
+ }
+ });
+ var dQe = ye((w3r, hQe) => {
+ var jer = vf(), cQ = Dr(), Wer = PT().getTraceColor, Xer = cQ.fillText, Zer = E9().makeHoverPointText, Yer = p9().isPtInsidePolygon;
+ hQe.exports = function(t, r, n) {
+ var i = t.cd, a = i[0].trace, o = t.subplot, s = o.radialAxis, l = o.angularAxis, u = o.vangles, c = u ? Yer : cQ.isPtInsideSector, f = t.maxHoverDistance, h = l._period || 2 * Math.PI, d = Math.abs(s.g2p(Math.sqrt(r * r + n * n))), v = Math.atan2(n, r);
+ s.range[0] > s.range[1] && (v += Math.PI);
+ var _ = function(E) {
+ return c(d, v, [E.rp0, E.rp1], [E.thetag0, E.thetag1], u) ? f + Math.min(1, Math.abs(E.thetag1 - E.thetag0) / h) - 1 + (E.rp1 - d) / (E.rp1 - E.rp0) - 1 : 1 / 0;
+ };
+ if (jer.getClosest(i, _, t), t.index !== false) {
+ var b = t.index, p = i[b];
+ t.x0 = t.x1 = p.ct[0], t.y0 = t.y1 = p.ct[1];
+ var k = cQ.extendFlat({}, p, { r: p.s, theta: p.p });
+ return Xer(p, a, t), Zer(k, a, o, t), t.hovertemplate = a.hovertemplate, t.color = Wer(a, p), t.xLabelVal = t.yLabelVal = void 0, p.s < 0 && (t.idealAlign = "left"), [t];
+ }
+ };
+ });
+ var pQe = ye((T3r, vQe) => {
+ vQe.exports = { moduleType: "trace", name: "barpolar", basePlotModule: w9(), categories: ["polar", "bar", "showLegend"], attributes: oQ(), layoutAttributes: sQ(), supplyDefaults: iQe(), supplyLayoutDefaults: aQe(), calc: lQ().calc, crossTraceCalc: lQ().crossTraceCalc, plot: fQe(), colorbar: $d(), formatLabels: M9(), style: V0().style, styleOnSelect: V0().styleOnSelect, hoverPoints: dQe(), selectPoints: IT(), meta: {} };
+ });
+ var mQe = ye((A3r, gQe) => {
+ gQe.exports = pQe();
+ });
+ var fQ = ye((S3r, yQe) => {
+ yQe.exports = { attr: "subplot", name: "smith", axisNames: ["realaxis", "imaginaryaxis"], axisName2dataArray: { imaginaryaxis: "imag", realaxis: "real" } };
+ });
+ var hQ = ye((M3r, wQe) => {
+ var Ker = Ih(), Uf = Rd(), Jer = Cc().attributes, Gx = Dr().extendFlat, _Qe = mc().overrideAll, xQe = _Qe({ color: Uf.color, showline: Gx({}, Uf.showline, { dflt: true }), linecolor: Uf.linecolor, linewidth: Uf.linewidth, showgrid: Gx({}, Uf.showgrid, { dflt: true }), gridcolor: Uf.gridcolor, gridwidth: Uf.gridwidth, griddash: Uf.griddash }, "plot", "from-root"), bQe = _Qe({ ticklen: Uf.ticklen, tickwidth: Gx({}, Uf.tickwidth, { dflt: 2 }), tickcolor: Uf.tickcolor, showticklabels: Uf.showticklabels, labelalias: Uf.labelalias, showtickprefix: Uf.showtickprefix, tickprefix: Uf.tickprefix, showticksuffix: Uf.showticksuffix, ticksuffix: Uf.ticksuffix, tickfont: Uf.tickfont, tickformat: Uf.tickformat, hoverformat: Uf.hoverformat, layer: Uf.layer }, "plot", "from-root"), $er = Gx({ visible: Gx({}, Uf.visible, { dflt: true }), tickvals: { dflt: [0.2, 0.5, 1, 2, 5], valType: "data_array", editType: "plot" }, tickangle: Gx({}, Uf.tickangle, { dflt: 90 }), ticks: { valType: "enumerated", values: ["top", "bottom", ""], editType: "ticks" }, side: { valType: "enumerated", values: ["top", "bottom"], dflt: "top", editType: "plot" }, editType: "calc" }, xQe, bQe), Qer = Gx({ visible: Gx({}, Uf.visible, { dflt: true }), tickvals: { valType: "data_array", editType: "plot" }, ticks: Uf.ticks, editType: "calc" }, xQe, bQe);
+ wQe.exports = { domain: Jer({ name: "smith", editType: "plot" }), bgcolor: { valType: "color", editType: "plot", dflt: Ker.background }, realaxis: $er, imaginaryaxis: Qer, editType: "calc" };
+ });
+ var SQe = ye((E3r, AQe) => {
+ var rS = Dr(), etr = ka(), ttr = vl(), rtr = O_(), itr = Id().getSubplotData, ntr = l_(), atr = s_(), otr = u4(), str = xm(), iS = hQ(), dQ = fQ(), TQe = dQ.axisNames, ltr = ctr(function(e) {
+ return rS.isTypedArray(e) && (e = Array.from(e)), e.slice().reverse().map(function(t) {
+ return -t;
+ }).concat([0]).concat(e);
+ }, String);
+ function utr(e, t, r, n) {
+ var i = r("bgcolor");
+ n.bgColor = etr.combine(i, n.paper_bgcolor);
+ var a = itr(n.fullData, dQ.name, n.id), o = n.layoutOut, s;
+ function l(L, x) {
+ return r(s + "." + L, x);
+ }
+ for (var u = 0; u < TQe.length; u++) {
+ s = TQe[u], rS.isPlainObject(e[s]) || (e[s] = {});
+ var c = e[s], f = ttr.newContainer(t, s);
+ f._id = f._name = s, f._attr = n.id + "." + s, f._traceIndices = a.map(function(L) {
+ return L.index;
+ });
+ var h = l("visible");
+ if (f.type = "linear", str(f, o), ntr(c, f, l, f.type), h) {
+ var d = s === "realaxis";
+ if (d && l("side"), d) l("tickvals");
+ else {
+ var v = ltr(t.realaxis.tickvals || iS.realaxis.tickvals.dflt);
+ l("tickvals", v);
+ }
+ rS.isTypedArray(f.tickvals) && (f.tickvals = Array.from(f.tickvals));
+ var _, b, p, k, E = n.font || {};
+ h && (_ = l("color"), b = _ === c.color ? _ : E.color, p = E.size, k = E.family), atr(c, f, l, f.type, { noAutotickangles: true, noTicklabelshift: true, noTicklabelstandoff: true, noTicklabelstep: true, noAng: !d, noExp: true, font: { color: b, size: p, family: k } }), rS.coerce2(e, t, iS, s + ".ticklen"), rS.coerce2(e, t, iS, s + ".tickwidth"), rS.coerce2(e, t, iS, s + ".tickcolor", t.color);
+ var T = l("ticks");
+ T || (delete t[s].ticklen, delete t[s].tickwidth, delete t[s].tickcolor), otr(c, f, l, { dfltColor: _, bgColor: n.bgColor, blend: 60, showLine: true, showGrid: true, noZeroLine: true, attributes: iS[s] }), l("layer");
+ }
+ l("hoverformat"), delete f.type, f._input = c;
+ }
+ }
+ AQe.exports = function(t, r, n) {
+ rtr(t, r, n, { noUirevision: true, type: dQ.name, attributes: iS, handleDefaults: utr, font: r.font, paper_bgcolor: r.paper_bgcolor, fullData: n, layoutOut: r });
+ };
+ function ctr(e, t) {
+ var r = {};
+ return function(n) {
+ var i = t ? t(n) : n;
+ if (i in r) return r[i];
+ var a = e(n);
+ return r[i] = a, a;
+ };
+ }
+ });
+ var PQe = ye((k3r, LQe) => {
+ var ftr = Id().getSubplotCalcData, htr = Dr().counterRegex, dtr = tQ(), EQe = fQ(), kQe = EQe.attr, Cw = EQe.name, MQe = htr(Cw), CQe = {};
+ CQe[kQe] = { valType: "subplotid", dflt: Cw, editType: "calc" };
+ function vtr(e) {
+ for (var t = e._fullLayout, r = e.calcdata, n = t._subplots[Cw], i = 0; i < n.length; i++) {
+ var a = n[i], o = ftr(r, Cw, a), s = t[a]._subplot;
+ s || (s = dtr(e, a, true), t[a]._subplot = s), s.plot(o, t, e._promises);
+ }
+ }
+ function ptr(e, t, r, n) {
+ for (var i = n._subplots[Cw] || [], a = 0; a < i.length; a++) {
+ var o = i[a], s = n[o]._subplot;
+ if (!t[o] && s) {
+ s.framework.remove();
+ for (var l in s.clipPaths) s.clipPaths[l].remove();
+ }
+ }
+ }
+ LQe.exports = { attr: kQe, name: Cw, idRoot: Cw, idRegex: MQe, attrRegex: MQe, attributes: CQe, layoutAttributes: hQ(), supplyLayoutDefaults: SQe(), plot: vtr, clean: ptr, toSVG: mh().toSVG };
+ });
+ var vQ = ye((C3r, RQe) => {
+ var { hovertemplateAttrs: gtr, texttemplateAttrs: mtr, templatefallbackAttrs: IQe } = Ll(), P9 = Ao().extendFlat, ytr = Pg(), d0 = pf(), _tr = Gl(), nS = d0.line;
+ RQe.exports = { mode: d0.mode, real: { valType: "data_array", editType: "calc+clearAxisTypes" }, imag: { valType: "data_array", editType: "calc+clearAxisTypes" }, text: d0.text, texttemplate: mtr({ editType: "plot" }, { keys: ["real", "imag", "text"] }), texttemplatefallback: IQe({ editType: "plot" }), hovertext: d0.hovertext, line: { color: nS.color, width: nS.width, dash: nS.dash, backoff: nS.backoff, shape: P9({}, nS.shape, { values: ["linear", "spline"] }), smoothing: nS.smoothing, editType: "calc" }, connectgaps: d0.connectgaps, marker: d0.marker, cliponaxis: P9({}, d0.cliponaxis, { dflt: false }), textposition: d0.textposition, textfont: d0.textfont, fill: P9({}, d0.fill, { values: ["none", "toself", "tonext"], dflt: "none" }), fillcolor: ytr(), hoverinfo: P9({}, _tr.hoverinfo, { flags: ["real", "imag", "text", "name"] }), hoveron: d0.hoveron, hovertemplate: gtr(), hovertemplatefallback: IQe(), selected: d0.selected, unselected: d0.unselected };
+ });
+ var zQe = ye((L3r, FQe) => {
+ var I9 = Dr(), aS = Ru(), xtr = $p(), btr = D0(), DQe = sT(), wtr = F0(), Ttr = Fg(), Atr = Lm().PTS_LINESONLY, Str = vQ();
+ FQe.exports = function(t, r, n, i) {
+ function a(l, u) {
+ return I9.coerce(t, r, Str, l, u);
+ }
+ var o = Mtr(t, r, i, a);
+ if (!o) {
+ r.visible = false;
+ return;
+ }
+ a("mode", o < Atr ? "lines+markers" : "lines"), a("text"), a("hovertext"), r.hoveron !== "fills" && (a("hovertemplate"), a("hovertemplatefallback")), aS.hasMarkers(r) && xtr(t, r, n, i, a, { gradient: true }), aS.hasLines(r) && (btr(t, r, n, i, a, { backoff: true }), DQe(t, r, a), a("connectgaps")), aS.hasText(r) && (a("texttemplate"), a("texttemplatefallback"), wtr(t, r, i, a));
+ var s = [];
+ (aS.hasMarkers(r) || aS.hasText(r)) && (a("cliponaxis"), a("marker.maxdisplayed"), s.push("points")), a("fill"), r.fill !== "none" && (Ttr(t, r, n, a), aS.hasLines(r) || DQe(t, r, a)), (r.fill === "tonext" || r.fill === "toself") && s.push("fills"), a("hoveron", s.join("+") || "points"), I9.coerceSelectionMarkerOpacity(r, a);
+ };
+ function Mtr(e, t, r, n) {
+ var i = n("real"), a = n("imag"), o;
+ return i && a && (o = Math.min(i.length, a.length)), I9.isTypedArray(i) && (t.real = i = Array.from(i)), I9.isTypedArray(a) && (t.imag = a = Array.from(a)), t._length = o, o;
+ }
+ });
+ var BQe = ye((P3r, qQe) => {
+ var OQe = ho();
+ qQe.exports = function(t, r, n) {
+ var i = {}, a = n[r.subplot]._subplot;
+ return i.realLabel = OQe.tickText(a.radialAxis, t.real, true).text, i.imagLabel = OQe.tickText(a.angularAxis, t.imag, true).text, i;
+ };
+ });
+ var VQe = ye((I3r, UQe) => {
+ var NQe = Eo(), Etr = fs().BADNUM, ktr = z0(), Ctr = Rm(), Ltr = O0(), Ptr = q0().calcMarkerSize;
+ UQe.exports = function(t, r) {
+ for (var n = t._fullLayout, i = r.subplot, a = n[i].realaxis, o = n[i].imaginaryaxis, s = a.makeCalcdata(r, "real"), l = o.makeCalcdata(r, "imag"), u = r._length, c = new Array(u), f = 0; f < u; f++) {
+ var h = s[f], d = l[f], v = c[f] = {};
+ NQe(h) && NQe(d) ? (v.real = h, v.imag = d) : v.real = Etr;
+ }
+ return Ptr(r, u), ktr(t, r), Ctr(c, r), Ltr(c, r), c;
+ };
+ });
+ var jQe = ye((R3r, HQe) => {
+ var Itr = dT(), GQe = fs().BADNUM, Rtr = $$(), Dtr = Rtr.smith;
+ HQe.exports = function(t, r, n) {
+ for (var i = r.layers.frontplot.select("g.scatterlayer"), a = r.xaxis, o = r.yaxis, s = { xaxis: a, yaxis: o, plot: r.framework, layerClipId: r._hasClipOnAxisFalse ? r.clipIds.forTraces : null }, l = 0; l < n.length; l++) for (var u = n[l], c = 0; c < u.length; c++) {
+ c === 0 && (u[0].trace._xA = a, u[0].trace._yA = o);
+ var f = u[c], h = f.real;
+ if (h === GQe) f.x = f.y = GQe;
+ else {
+ var d = Dtr([h, f.imag]);
+ f.x = d[0], f.y = d[1];
+ }
+ }
+ Itr(t, s, n, i);
+ };
+ });
+ var ZQe = ye((D3r, XQe) => {
+ var Ftr = mT();
+ function ztr(e, t, r, n) {
+ var i = Ftr(e, t, r, n);
+ if (!(!i || i[0].index === false)) {
+ var a = i[0];
+ if (a.index === void 0) return i;
+ var o = e.subplot, s = a.cd[a.index], l = a.trace;
+ if (o.isPtInside(s)) return a.xLabelVal = void 0, a.yLabelVal = void 0, WQe(s, l, o, a), a.hovertemplate = l.hovertemplate, i;
+ }
+ }
+ function WQe(e, t, r, n) {
+ var i = r.radialAxis, a = r.angularAxis;
+ i._hovertitle = "real", a._hovertitle = "imag";
+ var o = {};
+ o[t.subplot] = { _subplot: r };
+ var s = t._module.formatLabels(e, t, o);
+ n.realLabel = s.realLabel, n.imagLabel = s.imagLabel;
+ var l = e.hi || t.hoverinfo, u = [];
+ function c(h, d) {
+ u.push(h._hovertitle + ": " + d);
+ }
+ if (!t.hovertemplate) {
+ var f = l.split("+");
+ f.indexOf("all") !== -1 && (f = ["real", "imag", "text"]), f.indexOf("real") !== -1 && c(i, n.realLabel), f.indexOf("imag") !== -1 && c(a, n.imagLabel), f.indexOf("text") !== -1 && n.text && (u.push(n.text), delete n.text), n.extraText = u.join(" ");
+ }
+ }
+ XQe.exports = { hoverPoints: ztr, makeHoverPointText: WQe };
+ });
+ var KQe = ye((F3r, YQe) => {
+ YQe.exports = { moduleType: "trace", name: "scattersmith", basePlotModule: PQe(), categories: ["smith", "symbols", "showLegend", "scatter-like"], attributes: vQ(), supplyDefaults: zQe(), colorbar: $d(), formatLabels: BQe(), calc: VQe(), plot: jQe(), style: sp().style, styleOnSelect: sp().styleOnSelect, hoverPoints: ZQe().hoverPoints, selectPoints: yT(), meta: {} };
+ });
+ var $Qe = ye((z3r, JQe) => {
+ JQe.exports = KQe();
+ });
+ var kv = ye((O3r, eet) => {
+ var D9 = Nh();
+ function QQe() {
+ this.regionalOptions = [], this.regionalOptions[""] = { invalidCalendar: "Calendar {0} not found", invalidDate: "Invalid {0} date", invalidMonth: "Invalid {0} month", invalidYear: "Invalid {0} year", differentCalendars: "Cannot mix {0} and {1} dates" }, this.local = this.regionalOptions[""], this.calendars = {}, this._localCals = {};
+ }
+ D9(QQe.prototype, { instance: function(e, t) {
+ e = (e || "gregorian").toLowerCase(), t = t || "";
+ var r = this._localCals[e + "-" + t];
+ if (!r && this.calendars[e] && (r = new this.calendars[e](t), this._localCals[e + "-" + t] = r), !r) throw (this.local.invalidCalendar || this.regionalOptions[""].invalidCalendar).replace(/\{0\}/, e);
+ return r;
+ }, newDate: function(e, t, r, n, i) {
+ return n = (e != null && e.year ? e.calendar() : typeof n == "string" ? this.instance(n, i) : n) || this.instance(), n.newDate(e, t, r);
+ }, substituteDigits: function(e) {
+ return function(t) {
+ return (t + "").replace(/[0-9]/g, function(r) {
+ return e[r];
+ });
+ };
+ }, substituteChineseDigits: function(e, t) {
+ return function(r) {
+ for (var n = "", i = 0; r > 0; ) {
+ var a = r % 10;
+ n = (a === 0 ? "" : e[a] + t[i]) + n, i++, r = Math.floor(r / 10);
+ }
+ return n.indexOf(e[1] + t[1]) === 0 && (n = n.substr(1)), n || e[0];
+ };
+ } });
+ function pQ(e, t, r, n) {
+ if (this._calendar = e, this._year = t, this._month = r, this._day = n, this._calendar._validateLevel === 0 && !this._calendar.isValid(this._year, this._month, this._day)) throw (Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate).replace(/\{0\}/, this._calendar.local.name);
+ }
+ function R9(e, t) {
+ return e = "" + e, "000000".substring(0, t - e.length) + e;
+ }
+ D9(pQ.prototype, { newDate: function(e, t, r) {
+ return this._calendar.newDate(e == null ? this : e, t, r);
+ }, year: function(e) {
+ return arguments.length === 0 ? this._year : this.set(e, "y");
+ }, month: function(e) {
+ return arguments.length === 0 ? this._month : this.set(e, "m");
+ }, day: function(e) {
+ return arguments.length === 0 ? this._day : this.set(e, "d");
+ }, date: function(e, t, r) {
+ if (!this._calendar.isValid(e, t, r)) throw (Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate).replace(/\{0\}/, this._calendar.local.name);
+ return this._year = e, this._month = t, this._day = r, this;
+ }, leapYear: function() {
+ return this._calendar.leapYear(this);
+ }, epoch: function() {
+ return this._calendar.epoch(this);
+ }, formatYear: function() {
+ return this._calendar.formatYear(this);
+ }, monthOfYear: function() {
+ return this._calendar.monthOfYear(this);
+ }, weekOfYear: function() {
+ return this._calendar.weekOfYear(this);
+ }, daysInYear: function() {
+ return this._calendar.daysInYear(this);
+ }, dayOfYear: function() {
+ return this._calendar.dayOfYear(this);
+ }, daysInMonth: function() {
+ return this._calendar.daysInMonth(this);
+ }, dayOfWeek: function() {
+ return this._calendar.dayOfWeek(this);
+ }, weekDay: function() {
+ return this._calendar.weekDay(this);
+ }, extraInfo: function() {
+ return this._calendar.extraInfo(this);
+ }, add: function(e, t) {
+ return this._calendar.add(this, e, t);
+ }, set: function(e, t) {
+ return this._calendar.set(this, e, t);
+ }, compareTo: function(e) {
+ if (this._calendar.name !== e._calendar.name) throw (Gs.local.differentCalendars || Gs.regionalOptions[""].differentCalendars).replace(/\{0\}/, this._calendar.local.name).replace(/\{1\}/, e._calendar.local.name);
+ var t = this._year !== e._year ? this._year - e._year : this._month !== e._month ? this.monthOfYear() - e.monthOfYear() : this._day - e._day;
+ return t === 0 ? 0 : t < 0 ? -1 : 1;
+ }, calendar: function() {
+ return this._calendar;
+ }, toJD: function() {
+ return this._calendar.toJD(this);
+ }, fromJD: function(e) {
+ return this._calendar.fromJD(e);
+ }, toJSDate: function() {
+ return this._calendar.toJSDate(this);
+ }, fromJSDate: function(e) {
+ return this._calendar.fromJSDate(e);
+ }, toString: function() {
+ return (this.year() < 0 ? "-" : "") + R9(Math.abs(this.year()), 4) + "-" + R9(this.month(), 2) + "-" + R9(this.day(), 2);
+ } });
+ function gQ() {
+ this.shortYearCutoff = "+10";
+ }
+ D9(gQ.prototype, { _validateLevel: 0, newDate: function(e, t, r) {
+ return e == null ? this.today() : (e.year && (this._validate(e, t, r, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate), r = e.day(), t = e.month(), e = e.year()), new pQ(this, e, t, r));
+ }, today: function() {
+ return this.fromJSDate(/* @__PURE__ */ new Date());
+ }, epoch: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, Gs.local.invalidYear || Gs.regionalOptions[""].invalidYear);
+ return t.year() < 0 ? this.local.epochs[0] : this.local.epochs[1];
+ }, formatYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, Gs.local.invalidYear || Gs.regionalOptions[""].invalidYear);
+ return (t.year() < 0 ? "-" : "") + R9(Math.abs(t.year()), 4);
+ }, monthsInYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, Gs.local.invalidYear || Gs.regionalOptions[""].invalidYear), 12;
+ }, monthOfYear: function(e, t) {
+ var r = this._validate(e, t, this.minDay, Gs.local.invalidMonth || Gs.regionalOptions[""].invalidMonth);
+ return (r.month() + this.monthsInYear(r) - this.firstMonth) % this.monthsInYear(r) + this.minMonth;
+ }, fromMonthOfYear: function(e, t) {
+ var r = (t + this.firstMonth - 2 * this.minMonth) % this.monthsInYear(e) + this.minMonth;
+ return this._validate(e, r, this.minDay, Gs.local.invalidMonth || Gs.regionalOptions[""].invalidMonth), r;
+ }, daysInYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, Gs.local.invalidYear || Gs.regionalOptions[""].invalidYear);
+ return this.leapYear(t) ? 366 : 365;
+ }, dayOfYear: function(e, t, r) {
+ var n = this._validate(e, t, r, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate);
+ return n.toJD() - this.newDate(n.year(), this.fromMonthOfYear(n.year(), this.minMonth), this.minDay).toJD() + 1;
+ }, daysInWeek: function() {
+ return 7;
+ }, dayOfWeek: function(e, t, r) {
+ var n = this._validate(e, t, r, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate);
+ return (Math.floor(this.toJD(n)) + 2) % this.daysInWeek();
+ }, extraInfo: function(e, t, r) {
+ return this._validate(e, t, r, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate), {};
+ }, add: function(e, t, r) {
+ return this._validate(e, this.minMonth, this.minDay, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate), this._correctAdd(e, this._add(e, t, r), t, r);
+ }, _add: function(e, t, r) {
+ if (this._validateLevel++, r === "d" || r === "w") {
+ var n = e.toJD() + t * (r === "w" ? this.daysInWeek() : 1), i = e.calendar().fromJD(n);
+ return this._validateLevel--, [i.year(), i.month(), i.day()];
+ }
+ try {
+ var a = e.year() + (r === "y" ? t : 0), o = e.monthOfYear() + (r === "m" ? t : 0), i = e.day(), s = function(c) {
+ for (; o < c.minMonth; ) a--, o += c.monthsInYear(a);
+ for (var f = c.monthsInYear(a); o > f - 1 + c.minMonth; ) a++, o -= f, f = c.monthsInYear(a);
+ };
+ r === "y" ? (e.month() !== this.fromMonthOfYear(a, o) && (o = this.newDate(a, e.month(), this.minDay).monthOfYear()), o = Math.min(o, this.monthsInYear(a)), i = Math.min(i, this.daysInMonth(a, this.fromMonthOfYear(a, o)))) : r === "m" && (s(this), i = Math.min(i, this.daysInMonth(a, this.fromMonthOfYear(a, o))));
+ var l = [a, this.fromMonthOfYear(a, o), i];
+ return this._validateLevel--, l;
+ } catch (u) {
+ throw this._validateLevel--, u;
+ }
+ }, _correctAdd: function(e, t, r, n) {
+ if (!this.hasYearZero && (n === "y" || n === "m") && (t[0] === 0 || e.year() > 0 != t[0] > 0)) {
+ var i = { y: [1, 1, "y"], m: [1, this.monthsInYear(-1), "m"], w: [this.daysInWeek(), this.daysInYear(-1), "d"], d: [1, this.daysInYear(-1), "d"] }[n], a = r < 0 ? -1 : 1;
+ t = this._add(e, r * i[0] + a * i[1], i[2]);
+ }
+ return e.date(t[0], t[1], t[2]);
+ }, set: function(e, t, r) {
+ this._validate(e, this.minMonth, this.minDay, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate);
+ var n = r === "y" ? t : e.year(), i = r === "m" ? t : e.month(), a = r === "d" ? t : e.day();
+ return (r === "y" || r === "m") && (a = Math.min(a, this.daysInMonth(n, i))), e.date(n, i, a);
+ }, isValid: function(e, t, r) {
+ this._validateLevel++;
+ var n = this.hasYearZero || e !== 0;
+ if (n) {
+ var i = this.newDate(e, t, this.minDay);
+ n = t >= this.minMonth && t - this.minMonth < this.monthsInYear(i) && r >= this.minDay && r - this.minDay < this.daysInMonth(i);
+ }
+ return this._validateLevel--, n;
+ }, toJSDate: function(e, t, r) {
+ var n = this._validate(e, t, r, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate);
+ return Gs.instance().fromJD(this.toJD(n)).toJSDate();
+ }, fromJSDate: function(e) {
+ return this.fromJD(Gs.instance().fromJSDate(e).toJD());
+ }, _validate: function(e, t, r, n) {
+ if (e.year) {
+ if (this._validateLevel === 0 && this.name !== e.calendar().name) throw (Gs.local.differentCalendars || Gs.regionalOptions[""].differentCalendars).replace(/\{0\}/, this.local.name).replace(/\{1\}/, e.calendar().local.name);
+ return e;
+ }
+ try {
+ if (this._validateLevel++, this._validateLevel === 1 && !this.isValid(e, t, r)) throw n.replace(/\{0\}/, this.local.name);
+ var i = this.newDate(e, t, r);
+ return this._validateLevel--, i;
+ } catch (a) {
+ throw this._validateLevel--, a;
+ }
+ } });
+ function mQ(e) {
+ this.local = this.regionalOptions[e] || this.regionalOptions[""];
+ }
+ mQ.prototype = new gQ();
+ D9(mQ.prototype, { name: "Gregorian", jdEpoch: 17214255e-1, daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Gregorian", epochs: ["BCE", "CE"], monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], digits: null, dateFormat: "mm/dd/yyyy", firstDay: 0, isRTL: false } }, leapYear: function(r) {
+ var t = this._validate(r, this.minMonth, this.minDay, Gs.local.invalidYear || Gs.regionalOptions[""].invalidYear), r = t.year() + (t.year() < 0 ? 1 : 0);
+ return r % 4 === 0 && (r % 100 !== 0 || r % 400 === 0);
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(4 - (n.dayOfWeek() || 7), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, Gs.local.invalidMonth || Gs.regionalOptions[""].invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 2 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return (this.dayOfWeek(e, t, r) || 7) < 6;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate);
+ e = n.year(), t = n.month(), r = n.day(), e < 0 && e++, t < 3 && (t += 12, e--);
+ var i = Math.floor(e / 100), a = 2 - i + Math.floor(i / 4);
+ return Math.floor(365.25 * (e + 4716)) + Math.floor(30.6001 * (t + 1)) + r + a - 1524.5;
+ }, fromJD: function(e) {
+ var t = Math.floor(e + 0.5), r = Math.floor((t - 186721625e-2) / 36524.25);
+ r = t + 1 + r - Math.floor(r / 4);
+ var n = r + 1524, i = Math.floor((n - 122.1) / 365.25), a = Math.floor(365.25 * i), o = Math.floor((n - a) / 30.6001), s = n - a - Math.floor(o * 30.6001), l = o - (o > 13.5 ? 13 : 1), u = i - (l > 2.5 ? 4716 : 4715);
+ return u <= 0 && u--, this.newDate(u, l, s);
+ }, toJSDate: function(e, t, r) {
+ var n = this._validate(e, t, r, Gs.local.invalidDate || Gs.regionalOptions[""].invalidDate), i = new Date(n.year(), n.month() - 1, n.day());
+ return i.setHours(0), i.setMinutes(0), i.setSeconds(0), i.setMilliseconds(0), i.setHours(i.getHours() > 12 ? i.getHours() + 2 : 0), i;
+ }, fromJSDate: function(e) {
+ return this.newDate(e.getFullYear(), e.getMonth() + 1, e.getDate());
+ } });
+ var Gs = eet.exports = new QQe();
+ Gs.cdate = pQ;
+ Gs.baseCalendar = gQ;
+ Gs.calendars.gregorian = mQ;
+ });
+ var tet = ye(() => {
+ var yQ = Nh(), Nd = kv();
+ yQ(Nd.regionalOptions[""], { invalidArguments: "Invalid arguments", invalidFormat: "Cannot format a date from another calendar", missingNumberAt: "Missing number at position {0}", unknownNameAt: "Unknown name at position {0}", unexpectedLiteralAt: "Unexpected literal at position {0}", unexpectedText: "Additional text found at end" });
+ Nd.local = Nd.regionalOptions[""];
+ yQ(Nd.cdate.prototype, { formatDate: function(e, t) {
+ return typeof e != "string" && (t = e, e = ""), this._calendar.formatDate(e || "", this, t);
+ } });
+ yQ(Nd.baseCalendar.prototype, { UNIX_EPOCH: Nd.instance().newDate(1970, 1, 1).toJD(), SECS_PER_DAY: 24 * 60 * 60, TICKS_EPOCH: Nd.instance().jdEpoch, TICKS_PER_DAY: 24 * 60 * 60 * 1e7, ATOM: "yyyy-mm-dd", COOKIE: "D, dd M yyyy", FULL: "DD, MM d, yyyy", ISO_8601: "yyyy-mm-dd", JULIAN: "J", RFC_822: "D, d M yy", RFC_850: "DD, dd-M-yy", RFC_1036: "D, d M yy", RFC_1123: "D, d M yyyy", RFC_2822: "D, d M yyyy", RSS: "D, d M yy", TICKS: "!", TIMESTAMP: "@", W3C: "yyyy-mm-dd", formatDate: function(e, t, r) {
+ if (typeof e != "string" && (r = t, t = e, e = ""), !t) return "";
+ if (t.calendar() !== this) throw Nd.local.invalidFormat || Nd.regionalOptions[""].invalidFormat;
+ e = e || this.local.dateFormat, r = r || {};
+ for (var n = r.dayNamesShort || this.local.dayNamesShort, i = r.dayNames || this.local.dayNames, a = r.monthNumbers || this.local.monthNumbers, o = r.monthNamesShort || this.local.monthNamesShort, s = r.monthNames || this.local.monthNames, l = r.calculateWeek || this.local.calculateWeek, u = function(T, L) {
+ for (var x = 1; E + x < e.length && e.charAt(E + x) === T; ) x++;
+ return E += x - 1, Math.floor(x / (L || 1)) > 1;
+ }, c = function(T, L, x, C) {
+ var M = "" + L;
+ if (u(T, C)) for (; M.length < x; ) M = "0" + M;
+ return M;
+ }, f = function(T, L, x, C) {
+ return u(T) ? C[L] : x[L];
+ }, h = this, d = function(T) {
+ return typeof a == "function" ? a.call(h, T, u("m")) : b(c("m", T.month(), 2));
+ }, v = function(T, L) {
+ return L ? typeof s == "function" ? s.call(h, T) : s[T.month() - h.minMonth] : typeof o == "function" ? o.call(h, T) : o[T.month() - h.minMonth];
+ }, _ = this.local.digits, b = function(T) {
+ return r.localNumbers && _ ? _(T) : T;
+ }, p = "", k = false, E = 0; E < e.length; E++) if (k) e.charAt(E) === "'" && !u("'") ? k = false : p += e.charAt(E);
+ else switch (e.charAt(E)) {
+ case "d":
+ p += b(c("d", t.day(), 2));
+ break;
+ case "D":
+ p += f("D", t.dayOfWeek(), n, i);
+ break;
+ case "o":
+ p += c("o", t.dayOfYear(), 3);
+ break;
+ case "w":
+ p += c("w", t.weekOfYear(), 2);
+ break;
+ case "m":
+ p += d(t);
+ break;
+ case "M":
+ p += v(t, u("M"));
+ break;
+ case "y":
+ p += u("y", 2) ? t.year() : (t.year() % 100 < 10 ? "0" : "") + t.year() % 100;
+ break;
+ case "Y":
+ u("Y", 2), p += t.formatYear();
+ break;
+ case "J":
+ p += t.toJD();
+ break;
+ case "@":
+ p += (t.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY;
+ break;
+ case "!":
+ p += (t.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY;
+ break;
+ case "'":
+ u("'") ? p += "'" : k = true;
+ break;
+ default:
+ p += e.charAt(E);
+ }
+ return p;
+ }, parseDate: function(e, t, r) {
+ if (t == null) throw Nd.local.invalidArguments || Nd.regionalOptions[""].invalidArguments;
+ if (t = typeof t == "object" ? t.toString() : t + "", t === "") return null;
+ e = e || this.local.dateFormat, r = r || {};
+ var n = r.shortYearCutoff || this.shortYearCutoff;
+ n = typeof n != "string" ? n : this.today().year() % 100 + parseInt(n, 10);
+ for (var i = r.dayNamesShort || this.local.dayNamesShort, a = r.dayNames || this.local.dayNames, o = r.parseMonth || this.local.parseMonth, s = r.monthNumbers || this.local.monthNumbers, l = r.monthNamesShort || this.local.monthNamesShort, u = r.monthNames || this.local.monthNames, c = -1, f = -1, h = -1, d = -1, v = -1, _ = false, b = false, p = function(z, O) {
+ for (var U = 1; g + U < e.length && e.charAt(g + U) === z; ) U++;
+ return g += U - 1, Math.floor(U / (O || 1)) > 1;
+ }, k = function(z, O) {
+ var U = p(z, O), G = [2, 3, U ? 4 : 2, U ? 4 : 2, 10, 11, 20]["oyYJ@!".indexOf(z) + 1], Z = new RegExp("^-?\\d{1," + G + "}"), j = t.substring(M).match(Z);
+ if (!j) throw (Nd.local.missingNumberAt || Nd.regionalOptions[""].missingNumberAt).replace(/\{0\}/, M);
+ return M += j[0].length, parseInt(j[0], 10);
+ }, E = this, T = function() {
+ if (typeof s == "function") {
+ p("m");
+ var z = s.call(E, t.substring(M));
+ return M += z.length, z;
+ }
+ return k("m");
+ }, L = function(z, O, U, G) {
+ for (var Z = p(z, G) ? U : O, j = 0; j < Z.length; j++) if (t.substr(M, Z[j].length).toLowerCase() === Z[j].toLowerCase()) return M += Z[j].length, j + E.minMonth;
+ throw (Nd.local.unknownNameAt || Nd.regionalOptions[""].unknownNameAt).replace(/\{0\}/, M);
+ }, x = function() {
+ if (typeof u == "function") {
+ var z = p("M") ? u.call(E, t.substring(M)) : l.call(E, t.substring(M));
+ return M += z.length, z;
+ }
+ return L("M", l, u);
+ }, C = function() {
+ if (t.charAt(M) !== e.charAt(g)) throw (Nd.local.unexpectedLiteralAt || Nd.regionalOptions[""].unexpectedLiteralAt).replace(/\{0\}/, M);
+ M++;
+ }, M = 0, g = 0; g < e.length; g++) if (b) e.charAt(g) === "'" && !p("'") ? b = false : C();
+ else switch (e.charAt(g)) {
+ case "d":
+ d = k("d");
+ break;
+ case "D":
+ L("D", i, a);
+ break;
+ case "o":
+ v = k("o");
+ break;
+ case "w":
+ k("w");
+ break;
+ case "m":
+ h = T();
+ break;
+ case "M":
+ h = x();
+ break;
+ case "y":
+ var P = g;
+ _ = !p("y", 2), g = P, f = k("y", 2);
+ break;
+ case "Y":
+ f = k("Y", 2);
+ break;
+ case "J":
+ c = k("J") + 0.5, t.charAt(M) === "." && (M++, k("J"));
+ break;
+ case "@":
+ c = k("@") / this.SECS_PER_DAY + this.UNIX_EPOCH;
+ break;
+ case "!":
+ c = k("!") / this.TICKS_PER_DAY + this.TICKS_EPOCH;
+ break;
+ case "*":
+ M = t.length;
+ break;
+ case "'":
+ p("'") ? C() : b = true;
+ break;
+ default:
+ C();
+ }
+ if (M < t.length) throw Nd.local.unexpectedText || Nd.regionalOptions[""].unexpectedText;
+ if (f === -1 ? f = this.today().year() : f < 100 && _ && (f += n === -1 ? 1900 : this.today().year() - this.today().year() % 100 - (f <= n ? 0 : 100)), typeof h == "string" && (h = o.call(this, f, h)), v > -1) {
+ h = 1, d = v;
+ for (var A = this.daysInMonth(f, h); d > A; A = this.daysInMonth(f, h)) h++, d -= A;
+ }
+ return c > -1 ? this.fromJD(c) : this.newDate(f, h, d);
+ }, determineDate: function(e, t, r, n, i) {
+ r && typeof r != "object" && (i = n, n = r, r = null), typeof n != "string" && (i = n, n = "");
+ var a = this, o = function(s) {
+ try {
+ return a.parseDate(n, s, i);
+ } catch (f) {
+ }
+ s = s.toLowerCase();
+ for (var l = (s.match(/^c/) && r ? r.newDate() : null) || a.today(), u = /([+-]?[0-9]+)\s*(d|w|m|y)?/g, c = u.exec(s); c; ) l.add(parseInt(c[1], 10), c[2] || "d"), c = u.exec(s);
+ return l;
+ };
+ return t = t ? t.newDate() : null, e = e == null ? t : typeof e == "string" ? o(e) : typeof e == "number" ? isNaN(e) || e === 1 / 0 || e === -1 / 0 ? t : a.today().add(e, "d") : a.newDate(e), e;
+ } });
+ });
+ var ret = ye(() => {
+ var Hx = kv(), Otr = Nh(), _Q = Hx.instance();
+ function F9(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ F9.prototype = new Hx.baseCalendar();
+ Otr(F9.prototype, { name: "Chinese", jdEpoch: 17214255e-1, hasYearZero: false, minMonth: 0, firstMonth: 0, minDay: 1, regionalOptions: { "": { name: "Chinese", epochs: ["BEC", "EC"], monthNumbers: function(e, t) {
+ if (typeof e == "string") {
+ var r = e.match(Btr);
+ return r ? r[0] : "";
+ }
+ var n = this._validateYear(e), i = e.month(), a = "" + this.toChineseMonth(n, i);
+ return t && a.length < 2 && (a = "0" + a), this.isIntercalaryMonth(n, i) && (a += "i"), a;
+ }, monthNames: function(e) {
+ if (typeof e == "string") {
+ var t = e.match(Ntr);
+ return t ? t[0] : "";
+ }
+ var r = this._validateYear(e), n = e.month(), i = this.toChineseMonth(r, n), a = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"][i - 1];
+ return this.isIntercalaryMonth(r, n) && (a = "闰" + a), a;
+ }, monthNamesShort: function(e) {
+ if (typeof e == "string") {
+ var t = e.match(Utr);
+ return t ? t[0] : "";
+ }
+ var r = this._validateYear(e), n = e.month(), i = this.toChineseMonth(r, n), a = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"][i - 1];
+ return this.isIntercalaryMonth(r, n) && (a = "闰" + a), a;
+ }, parseMonth: function(e, t) {
+ e = this._validateYear(e);
+ var r = parseInt(t), n;
+ if (isNaN(r)) t[0] === "闰" && (n = true, t = t.substring(1)), t[t.length - 1] === "月" && (t = t.substring(0, t.length - 1)), r = 1 + ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"].indexOf(t);
+ else {
+ var i = t[t.length - 1];
+ n = i === "i" || i === "I";
+ }
+ var a = this.toMonthIndex(e, r, n);
+ return a;
+ }, dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], digits: null, dateFormat: "yyyy/mm/dd", firstDay: 1, isRTL: false } }, _validateYear: function(e, t) {
+ if (e.year && (e = e.year()), typeof e != "number" || e < 1888 || e > 2111) throw t.replace(/\{0\}/, this.local.name);
+ return e;
+ }, toMonthIndex: function(e, t, r) {
+ var n = this.intercalaryMonth(e), i = r && t !== n;
+ if (i || t < 1 || t > 12) throw Hx.local.invalidMonth.replace(/\{0\}/, this.local.name);
+ var a;
+ return n ? !r && t <= n ? a = t - 1 : a = t : a = t - 1, a;
+ }, toChineseMonth: function(e, t) {
+ e.year && (e = e.year(), t = e.month());
+ var r = this.intercalaryMonth(e), n = r ? 12 : 11;
+ if (t < 0 || t > n) throw Hx.local.invalidMonth.replace(/\{0\}/, this.local.name);
+ var i;
+ return r ? t < r ? i = t + 1 : i = t : i = t + 1, i;
+ }, intercalaryMonth: function(e) {
+ e = this._validateYear(e);
+ var t = jx[e - jx[0]], r = t >> 13;
+ return r;
+ }, isIntercalaryMonth: function(e, t) {
+ e.year && (e = e.year(), t = e.month());
+ var r = this.intercalaryMonth(e);
+ return !!r && r === t;
+ }, leapYear: function(e) {
+ return this.intercalaryMonth(e) !== 0;
+ }, weekOfYear: function(e, t, r) {
+ var n = this._validateYear(e, Hx.local.invalidyear), i = Wx[n - Wx[0]], a = i >> 9 & 4095, o = i >> 5 & 15, s = i & 31, l;
+ l = _Q.newDate(a, o, s), l.add(4 - (l.dayOfWeek() || 7), "d");
+ var u = this.toJD(e, t, r) - l.toJD();
+ return 1 + Math.floor(u / 7);
+ }, monthsInYear: function(e) {
+ return this.leapYear(e) ? 13 : 12;
+ }, daysInMonth: function(e, t) {
+ e.year && (t = e.month(), e = e.year()), e = this._validateYear(e);
+ var r = jx[e - jx[0]], n = r >> 13, i = n ? 12 : 11;
+ if (t > i) throw Hx.local.invalidMonth.replace(/\{0\}/, this.local.name);
+ var a = r & 1 << 12 - t ? 30 : 29;
+ return a;
+ }, weekDay: function(e, t, r) {
+ return (this.dayOfWeek(e, t, r) || 7) < 6;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, a, r, Hx.local.invalidDate);
+ e = this._validateYear(n.year()), t = n.month(), r = n.day();
+ var i = this.isIntercalaryMonth(e, t), a = this.toChineseMonth(e, t), o = Gtr(e, a, r, i);
+ return _Q.toJD(o.year, o.month, o.day);
+ }, fromJD: function(e) {
+ var t = _Q.fromJD(e), r = Vtr(t.year(), t.month(), t.day()), n = this.toMonthIndex(r.year, r.month, r.isIntercalary);
+ return this.newDate(r.year, n, r.day);
+ }, fromString: function(e) {
+ var t = e.match(qtr), r = this._validateYear(+t[1]), n = +t[2], i = !!t[3], a = this.toMonthIndex(r, n, i), o = +t[4];
+ return this.newDate(r, a, o);
+ }, add: function(e, t, r) {
+ var n = e.year(), i = e.month(), a = this.isIntercalaryMonth(n, i), o = this.toChineseMonth(n, i), s = Object.getPrototypeOf(F9.prototype).add.call(this, e, t, r);
+ if (r === "y") {
+ var l = s.year(), u = s.month(), c = this.isIntercalaryMonth(l, o), f = a && c ? this.toMonthIndex(l, o, true) : this.toMonthIndex(l, o, false);
+ f !== u && s.month(f);
+ }
+ return s;
+ } });
+ var qtr = /^\s*(-?\d\d\d\d|\d\d)[-/](\d?\d)([iI]?)[-/](\d?\d)/m, Btr = /^\d?\d[iI]?/m, Ntr = /^闰?十?[一二三四五六七八九]?月/m, Utr = /^闰?十?[一二三四五六七八九]?/m;
+ Hx.calendars.chinese = F9;
+ var jx = [1887, 5780, 5802, 19157, 2742, 50359, 1198, 2646, 46378, 7466, 3412, 30122, 5482, 67949, 2396, 5294, 43597, 6732, 6954, 36181, 2772, 4954, 18781, 2396, 54427, 5274, 6730, 47781, 5800, 6868, 21210, 4790, 59703, 2350, 5270, 46667, 3402, 3496, 38325, 1388, 4782, 18735, 2350, 52374, 6804, 7498, 44457, 2906, 1388, 29294, 4700, 63789, 6442, 6804, 56138, 5802, 2772, 38235, 1210, 4698, 22827, 5418, 63125, 3476, 5802, 43701, 2484, 5302, 27223, 2646, 70954, 7466, 3412, 54698, 5482, 2412, 38062, 5294, 2636, 32038, 6954, 60245, 2772, 4826, 43357, 2394, 5274, 39501, 6730, 72357, 5800, 5844, 53978, 4790, 2358, 38039, 5270, 87627, 3402, 3496, 54708, 5484, 4782, 43311, 2350, 3222, 27978, 7498, 68965, 2904, 5484, 45677, 4700, 6444, 39573, 6804, 6986, 19285, 2772, 62811, 1210, 4698, 47403, 5418, 5780, 38570, 5546, 76469, 2420, 5302, 51799, 2646, 5414, 36501, 3412, 5546, 18869, 2412, 54446, 5276, 6732, 48422, 6822, 2900, 28010, 4826, 92509, 2394, 5274, 55883, 6730, 6820, 47956, 5812, 2778, 18779, 2358, 62615, 5270, 5450, 46757, 3492, 5556, 27318, 4718, 67887, 2350, 3222, 52554, 7498, 3428, 38252, 5468, 4700, 31022, 6444, 64149, 6804, 6986, 43861, 2772, 5338, 35421, 2650, 70955, 5418, 5780, 54954, 5546, 2740, 38074, 5302, 2646, 29991, 3366, 61011, 3412, 5546, 43445, 2412, 5294, 35406, 6732, 72998, 6820, 6996, 52586, 2778, 2396, 38045, 5274, 6698, 23333, 6820, 64338, 5812, 2746, 43355, 2358, 5270, 39499, 5450, 79525, 3492, 5548], Wx = [1887, 966732, 967231, 967733, 968265, 968766, 969297, 969798, 970298, 970829, 971330, 971830, 972362, 972863, 973395, 973896, 974397, 974928, 975428, 975929, 976461, 976962, 977462, 977994, 978494, 979026, 979526, 980026, 980558, 981059, 981559, 982091, 982593, 983124, 983624, 984124, 984656, 985157, 985656, 986189, 986690, 987191, 987722, 988222, 988753, 989254, 989754, 990286, 990788, 991288, 991819, 992319, 992851, 993352, 993851, 994383, 994885, 995385, 995917, 996418, 996918, 997450, 997949, 998481, 998982, 999483, 1000014, 1000515, 1001016, 1001548, 1002047, 1002578, 1003080, 1003580, 1004111, 1004613, 1005113, 1005645, 1006146, 1006645, 1007177, 1007678, 1008209, 1008710, 1009211, 1009743, 1010243, 1010743, 1011275, 1011775, 1012306, 1012807, 1013308, 1013840, 1014341, 1014841, 1015373, 1015874, 1016404, 1016905, 1017405, 1017937, 1018438, 1018939, 1019471, 1019972, 1020471, 1021002, 1021503, 1022035, 1022535, 1023036, 1023568, 1024069, 1024568, 1025100, 1025601, 1026102, 1026633, 1027133, 1027666, 1028167, 1028666, 1029198, 1029699, 1030199, 1030730, 1031231, 1031763, 1032264, 1032764, 1033296, 1033797, 1034297, 1034828, 1035329, 1035830, 1036362, 1036861, 1037393, 1037894, 1038394, 1038925, 1039427, 1039927, 1040459, 1040959, 1041491, 1041992, 1042492, 1043023, 1043524, 1044024, 1044556, 1045057, 1045558, 1046090, 1046590, 1047121, 1047622, 1048122, 1048654, 1049154, 1049655, 1050187, 1050689, 1051219, 1051720, 1052220, 1052751, 1053252, 1053752, 1054284, 1054786, 1055285, 1055817, 1056317, 1056849, 1057349, 1057850, 1058382, 1058883, 1059383, 1059915, 1060415, 1060947, 1061447, 1061947, 1062479, 1062981, 1063480, 1064012, 1064514, 1065014, 1065545, 1066045, 1066577, 1067078, 1067578, 1068110, 1068611, 1069112, 1069642, 1070142, 1070674, 1071175, 1071675, 1072207, 1072709, 1073209, 1073740, 1074241, 1074741, 1075273, 1075773, 1076305, 1076807, 1077308, 1077839, 1078340, 1078840, 1079372, 1079871, 1080403, 1080904];
+ function Vtr(e, t, r, n) {
+ var i, a;
+ if (typeof e == "object") i = e, a = t || {};
+ else {
+ var o = typeof e == "number" && e >= 1888 && e <= 2111;
+ if (!o) throw new Error("Solar year outside range 1888-2111");
+ var s = typeof t == "number" && t >= 1 && t <= 12;
+ if (!s) throw new Error("Solar month outside range 1 - 12");
+ var l = typeof r == "number" && r >= 1 && r <= 31;
+ if (!l) throw new Error("Solar day outside range 1 - 31");
+ i = { year: e, month: t, day: r }, a = {};
+ }
+ var u = Wx[i.year - Wx[0]], c = i.year << 9 | i.month << 5 | i.day;
+ a.year = c >= u ? i.year : i.year - 1, u = Wx[a.year - Wx[0]];
+ var f = u >> 9 & 4095, h = u >> 5 & 15, d = u & 31, v, _ = new Date(f, h - 1, d), b = new Date(i.year, i.month - 1, i.day);
+ v = Math.round((b - _) / (24 * 3600 * 1e3));
+ var p = jx[a.year - jx[0]], k;
+ for (k = 0; k < 13; k++) {
+ var E = p & 1 << 12 - k ? 30 : 29;
+ if (v < E) break;
+ v -= E;
+ }
+ var T = p >> 13;
+ return !T || k < T ? (a.isIntercalary = false, a.month = 1 + k) : k === T ? (a.isIntercalary = true, a.month = k) : (a.isIntercalary = false, a.month = k), a.day = 1 + v, a;
+ }
+ function Gtr(e, t, r, n, i) {
+ var a, o;
+ if (typeof e == "object") o = e, a = t || {};
+ else {
+ var s = typeof e == "number" && e >= 1888 && e <= 2111;
+ if (!s) throw new Error("Lunar year outside range 1888-2111");
+ var l = typeof t == "number" && t >= 1 && t <= 12;
+ if (!l) throw new Error("Lunar month outside range 1 - 12");
+ var u = typeof r == "number" && r >= 1 && r <= 30;
+ if (!u) throw new Error("Lunar day outside range 1 - 30");
+ var c;
+ typeof n == "object" ? (c = false, a = n) : (c = !!n, a = {}), o = { year: e, month: t, day: r, isIntercalary: c };
+ }
+ var f;
+ f = o.day - 1;
+ var h = jx[o.year - jx[0]], d = h >> 13, v;
+ d && (o.month > d || o.isIntercalary) ? v = o.month : v = o.month - 1;
+ for (var _ = 0; _ < v; _++) {
+ var b = h & 1 << 12 - _ ? 30 : 29;
+ f += b;
+ }
+ var p = Wx[o.year - Wx[0]], k = p >> 9 & 4095, E = p >> 5 & 15, T = p & 31, L = new Date(k, E - 1, T + f);
+ return a.year = L.getFullYear(), a.month = 1 + L.getMonth(), a.day = L.getDate(), a;
+ }
+ });
+ var iet = ye(() => {
+ var Lw = kv(), Htr = Nh();
+ function xQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ xQ.prototype = new Lw.baseCalendar();
+ Htr(xQ.prototype, { name: "Coptic", jdEpoch: 18250295e-1, daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Coptic", epochs: ["BAM", "AM"], monthNames: ["Thout", "Paopi", "Hathor", "Koiak", "Tobi", "Meshir", "Paremhat", "Paremoude", "Pashons", "Paoni", "Epip", "Mesori", "Pi Kogi Enavot"], monthNamesShort: ["Tho", "Pao", "Hath", "Koi", "Tob", "Mesh", "Pat", "Pad", "Pash", "Pao", "Epi", "Meso", "PiK"], dayNames: ["Tkyriaka", "Pesnau", "Pshoment", "Peftoou", "Ptiou", "Psoou", "Psabbaton"], dayNamesShort: ["Tky", "Pes", "Psh", "Pef", "Pti", "Pso", "Psa"], dayNamesMin: ["Tk", "Pes", "Psh", "Pef", "Pt", "Pso", "Psa"], digits: null, dateFormat: "dd/mm/yyyy", firstDay: 0, isRTL: false } }, leapYear: function(r) {
+ var t = this._validate(r, this.minMonth, this.minDay, Lw.local.invalidYear), r = t.year() + (t.year() < 0 ? 1 : 0);
+ return r % 4 === 3 || r % 4 === -1;
+ }, monthsInYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, Lw.local.invalidYear || Lw.regionalOptions[""].invalidYear), 13;
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(-n.dayOfWeek(), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, Lw.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 13 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return (this.dayOfWeek(e, t, r) || 7) < 6;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, Lw.local.invalidDate);
+ return e = n.year(), e < 0 && e++, n.day() + (n.month() - 1) * 30 + (e - 1) * 365 + Math.floor(e / 4) + this.jdEpoch - 1;
+ }, fromJD: function(e) {
+ var t = Math.floor(e) + 0.5 - this.jdEpoch, r = Math.floor((t - Math.floor((t + 366) / 1461)) / 365) + 1;
+ r <= 0 && r--, t = Math.floor(e) + 0.5 - this.newDate(r, 1, 1).toJD();
+ var n = Math.floor(t / 30) + 1, i = t - (n - 1) * 30 + 1;
+ return this.newDate(r, n, i);
+ } });
+ Lw.calendars.coptic = xQ;
+ });
+ var net = ye(() => {
+ var E1 = kv(), jtr = Nh();
+ function bQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ bQ.prototype = new E1.baseCalendar();
+ jtr(bQ.prototype, { name: "Discworld", jdEpoch: 17214255e-1, daysPerMonth: [16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Discworld", epochs: ["BUC", "UC"], monthNames: ["Ick", "Offle", "February", "March", "April", "May", "June", "Grune", "August", "Spune", "Sektober", "Ember", "December"], monthNamesShort: ["Ick", "Off", "Feb", "Mar", "Apr", "May", "Jun", "Gru", "Aug", "Spu", "Sek", "Emb", "Dec"], dayNames: ["Sunday", "Octeday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Oct", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Oc", "Mo", "Tu", "We", "Th", "Fr", "Sa"], digits: null, dateFormat: "yyyy/mm/dd", firstDay: 2, isRTL: false } }, leapYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, E1.local.invalidYear), false;
+ }, monthsInYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, E1.local.invalidYear), 13;
+ }, daysInYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, E1.local.invalidYear), 400;
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(-n.dayOfWeek(), "d"), Math.floor((n.dayOfYear() - 1) / 8) + 1;
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, E1.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1];
+ }, daysInWeek: function() {
+ return 8;
+ }, dayOfWeek: function(e, t, r) {
+ var n = this._validate(e, t, r, E1.local.invalidDate);
+ return (n.day() + 1) % 8;
+ }, weekDay: function(e, t, r) {
+ var n = this.dayOfWeek(e, t, r);
+ return n >= 2 && n <= 6;
+ }, extraInfo: function(e, t, r) {
+ var n = this._validate(e, t, r, E1.local.invalidDate);
+ return { century: Wtr[Math.floor((n.year() - 1) / 100) + 1] || "" };
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, E1.local.invalidDate);
+ return e = n.year() + (n.year() < 0 ? 1 : 0), t = n.month(), r = n.day(), r + (t > 1 ? 16 : 0) + (t > 2 ? (t - 2) * 32 : 0) + (e - 1) * 400 + this.jdEpoch - 1;
+ }, fromJD: function(e) {
+ e = Math.floor(e + 0.5) - Math.floor(this.jdEpoch) - 1;
+ var t = Math.floor(e / 400) + 1;
+ e -= (t - 1) * 400, e += e > 15 ? 16 : 0;
+ var r = Math.floor(e / 32) + 1, n = e - (r - 1) * 32 + 1;
+ return this.newDate(t <= 0 ? t - 1 : t, r, n);
+ } });
+ var Wtr = { 20: "Fruitbat", 21: "Anchovy" };
+ E1.calendars.discworld = bQ;
+ });
+ var aet = ye(() => {
+ var Pw = kv(), Xtr = Nh();
+ function wQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ wQ.prototype = new Pw.baseCalendar();
+ Xtr(wQ.prototype, { name: "Ethiopian", jdEpoch: 17242205e-1, daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Ethiopian", epochs: ["BEE", "EE"], monthNames: ["Meskerem", "Tikemet", "Hidar", "Tahesas", "Tir", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehase", "Pagume"], monthNamesShort: ["Mes", "Tik", "Hid", "Tah", "Tir", "Yek", "Meg", "Mia", "Gen", "Sen", "Ham", "Neh", "Pag"], dayNames: ["Ehud", "Segno", "Maksegno", "Irob", "Hamus", "Arb", "Kidame"], dayNamesShort: ["Ehu", "Seg", "Mak", "Iro", "Ham", "Arb", "Kid"], dayNamesMin: ["Eh", "Se", "Ma", "Ir", "Ha", "Ar", "Ki"], digits: null, dateFormat: "dd/mm/yyyy", firstDay: 0, isRTL: false } }, leapYear: function(r) {
+ var t = this._validate(r, this.minMonth, this.minDay, Pw.local.invalidYear), r = t.year() + (t.year() < 0 ? 1 : 0);
+ return r % 4 === 3 || r % 4 === -1;
+ }, monthsInYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, Pw.local.invalidYear || Pw.regionalOptions[""].invalidYear), 13;
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(-n.dayOfWeek(), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, Pw.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 13 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return (this.dayOfWeek(e, t, r) || 7) < 6;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, Pw.local.invalidDate);
+ return e = n.year(), e < 0 && e++, n.day() + (n.month() - 1) * 30 + (e - 1) * 365 + Math.floor(e / 4) + this.jdEpoch - 1;
+ }, fromJD: function(e) {
+ var t = Math.floor(e) + 0.5 - this.jdEpoch, r = Math.floor((t - Math.floor((t + 366) / 1461)) / 365) + 1;
+ r <= 0 && r--, t = Math.floor(e) + 0.5 - this.newDate(r, 1, 1).toJD();
+ var n = Math.floor(t / 30) + 1, i = t - (n - 1) * 30 + 1;
+ return this.newDate(r, n, i);
+ } });
+ Pw.calendars.ethiopian = wQ;
+ });
+ var oet = ye(() => {
+ var Xx = kv(), Ztr = Nh();
+ function TQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ TQ.prototype = new Xx.baseCalendar();
+ Ztr(TQ.prototype, { name: "Hebrew", jdEpoch: 347995.5, daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 29], hasYearZero: false, minMonth: 1, firstMonth: 7, minDay: 1, regionalOptions: { "": { name: "Hebrew", epochs: ["BAM", "AM"], monthNames: ["Nisan", "Iyar", "Sivan", "Tammuz", "Av", "Elul", "Tishrei", "Cheshvan", "Kislev", "Tevet", "Shevat", "Adar", "Adar II"], monthNamesShort: ["Nis", "Iya", "Siv", "Tam", "Av", "Elu", "Tis", "Che", "Kis", "Tev", "She", "Ada", "Ad2"], dayNames: ["Yom Rishon", "Yom Sheni", "Yom Shlishi", "Yom Revi'i", "Yom Chamishi", "Yom Shishi", "Yom Shabbat"], dayNamesShort: ["Ris", "She", "Shl", "Rev", "Cha", "Shi", "Sha"], dayNamesMin: ["Ri", "She", "Shl", "Re", "Ch", "Shi", "Sha"], digits: null, dateFormat: "dd/mm/yyyy", firstDay: 0, isRTL: false } }, leapYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, Xx.local.invalidYear);
+ return this._leapYear(t.year());
+ }, _leapYear: function(e) {
+ return e = e < 0 ? e + 1 : e, z9(e * 7 + 1, 19) < 7;
+ }, monthsInYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, Xx.local.invalidYear), this._leapYear(e.year ? e.year() : e) ? 13 : 12;
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(-n.dayOfWeek(), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, Xx.local.invalidYear);
+ return e = t.year(), this.toJD(e === -1 ? 1 : e + 1, 7, 1) - this.toJD(e, 7, 1);
+ }, daysInMonth: function(e, t) {
+ return e.year && (t = e.month(), e = e.year()), this._validate(e, t, this.minDay, Xx.local.invalidMonth), t === 12 && this.leapYear(e) || t === 8 && z9(this.daysInYear(e), 10) === 5 ? 30 : t === 9 && z9(this.daysInYear(e), 10) === 3 ? 29 : this.daysPerMonth[t - 1];
+ }, weekDay: function(e, t, r) {
+ return this.dayOfWeek(e, t, r) !== 6;
+ }, extraInfo: function(e, t, r) {
+ var n = this._validate(e, t, r, Xx.local.invalidDate);
+ return { yearType: (this.leapYear(n) ? "embolismic" : "common") + " " + ["deficient", "regular", "complete"][this.daysInYear(n) % 10 - 3] };
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, Xx.local.invalidDate);
+ e = n.year(), t = n.month(), r = n.day();
+ var i = e <= 0 ? e + 1 : e, a = this.jdEpoch + this._delay1(i) + this._delay2(i) + r + 1;
+ if (t < 7) {
+ for (var o = 7; o <= this.monthsInYear(e); o++) a += this.daysInMonth(e, o);
+ for (var o = 1; o < t; o++) a += this.daysInMonth(e, o);
+ } else for (var o = 7; o < t; o++) a += this.daysInMonth(e, o);
+ return a;
+ }, _delay1: function(e) {
+ var t = Math.floor((235 * e - 234) / 19), r = 12084 + 13753 * t, n = t * 29 + Math.floor(r / 25920);
+ return z9(3 * (n + 1), 7) < 3 && n++, n;
+ }, _delay2: function(e) {
+ var t = this._delay1(e - 1), r = this._delay1(e), n = this._delay1(e + 1);
+ return n - r === 356 ? 2 : r - t === 382 ? 1 : 0;
+ }, fromJD: function(e) {
+ e = Math.floor(e) + 0.5;
+ for (var t = Math.floor((e - this.jdEpoch) * 98496 / 35975351) - 1; e >= this.toJD(t === -1 ? 1 : t + 1, 7, 1); ) t++;
+ for (var r = e < this.toJD(t, 1, 1) ? 7 : 1; e > this.toJD(t, r, this.daysInMonth(t, r)); ) r++;
+ var n = e - this.toJD(t, r, 1) + 1;
+ return this.newDate(t, r, n);
+ } });
+ function z9(e, t) {
+ return e - t * Math.floor(e / t);
+ }
+ Xx.calendars.hebrew = TQ;
+ });
+ var set = ye(() => {
+ var bC = kv(), Ytr = Nh();
+ function AQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ AQ.prototype = new bC.baseCalendar();
+ Ytr(AQ.prototype, { name: "Islamic", jdEpoch: 19484395e-1, daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Islamic", epochs: ["BH", "AH"], monthNames: ["Muharram", "Safar", "Rabi' al-awwal", "Rabi' al-thani", "Jumada al-awwal", "Jumada al-thani", "Rajab", "Sha'aban", "Ramadan", "Shawwal", "Dhu al-Qi'dah", "Dhu al-Hijjah"], monthNamesShort: ["Muh", "Saf", "Rab1", "Rab2", "Jum1", "Jum2", "Raj", "Sha'", "Ram", "Shaw", "DhuQ", "DhuH"], dayNames: ["Yawm al-ahad", "Yawm al-ithnayn", "Yawm ath-thulaathaa'", "Yawm al-arbi'aa'", "Yawm al-khamīs", "Yawm al-jum'a", "Yawm as-sabt"], dayNamesShort: ["Aha", "Ith", "Thu", "Arb", "Kha", "Jum", "Sab"], dayNamesMin: ["Ah", "It", "Th", "Ar", "Kh", "Ju", "Sa"], digits: null, dateFormat: "yyyy/mm/dd", firstDay: 6, isRTL: false } }, leapYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, bC.local.invalidYear);
+ return (t.year() * 11 + 14) % 30 < 11;
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(-n.dayOfWeek(), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInYear: function(e) {
+ return this.leapYear(e) ? 355 : 354;
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, bC.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 12 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return this.dayOfWeek(e, t, r) !== 5;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, bC.local.invalidDate);
+ return e = n.year(), t = n.month(), r = n.day(), e = e <= 0 ? e + 1 : e, r + Math.ceil(29.5 * (t - 1)) + (e - 1) * 354 + Math.floor((3 + 11 * e) / 30) + this.jdEpoch - 1;
+ }, fromJD: function(e) {
+ e = Math.floor(e) + 0.5;
+ var t = Math.floor((30 * (e - this.jdEpoch) + 10646) / 10631);
+ t = t <= 0 ? t - 1 : t;
+ var r = Math.min(12, Math.ceil((e - 29 - this.toJD(t, 1, 1)) / 29.5) + 1), n = e - this.toJD(t, r, 1) + 1;
+ return this.newDate(t, r, n);
+ } });
+ bC.calendars.islamic = AQ;
+ });
+ var uet = ye(() => {
+ var wC = kv(), Ktr = Nh();
+ function SQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ SQ.prototype = new wC.baseCalendar();
+ Ktr(SQ.prototype, { name: "Julian", jdEpoch: 17214235e-1, daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Julian", epochs: ["BC", "AD"], monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], digits: null, dateFormat: "mm/dd/yyyy", firstDay: 0, isRTL: false } }, leapYear: function(r) {
+ var t = this._validate(r, this.minMonth, this.minDay, wC.local.invalidYear), r = t.year() < 0 ? t.year() + 1 : t.year();
+ return r % 4 === 0;
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(4 - (n.dayOfWeek() || 7), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, wC.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 2 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return (this.dayOfWeek(e, t, r) || 7) < 6;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, wC.local.invalidDate);
+ return e = n.year(), t = n.month(), r = n.day(), e < 0 && e++, t <= 2 && (e--, t += 12), Math.floor(365.25 * (e + 4716)) + Math.floor(30.6001 * (t + 1)) + r - 1524.5;
+ }, fromJD: function(e) {
+ var t = Math.floor(e + 0.5), r = t + 1524, n = Math.floor((r - 122.1) / 365.25), i = Math.floor(365.25 * n), a = Math.floor((r - i) / 30.6001), o = a - Math.floor(a < 14 ? 1 : 13), s = n - Math.floor(o > 2 ? 4716 : 4715), l = r - i - Math.floor(30.6001 * a);
+ return s <= 0 && s--, this.newDate(s, o, l);
+ } });
+ wC.calendars.julian = SQ;
+ });
+ var fet = ye(() => {
+ var fg = kv(), Jtr = Nh();
+ function EQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ EQ.prototype = new fg.baseCalendar();
+ Jtr(EQ.prototype, { name: "Mayan", jdEpoch: 584282.5, hasYearZero: true, minMonth: 0, firstMonth: 0, minDay: 0, regionalOptions: { "": { name: "Mayan", epochs: ["", ""], monthNames: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17"], monthNamesShort: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17"], dayNames: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"], dayNamesShort: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"], dayNamesMin: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"], digits: null, dateFormat: "YYYY.m.d", firstDay: 0, isRTL: false, haabMonths: ["Pop", "Uo", "Zip", "Zotz", "Tzec", "Xul", "Yaxkin", "Mol", "Chen", "Yax", "Zac", "Ceh", "Mac", "Kankin", "Muan", "Pax", "Kayab", "Cumku", "Uayeb"], tzolkinMonths: ["Imix", "Ik", "Akbal", "Kan", "Chicchan", "Cimi", "Manik", "Lamat", "Muluc", "Oc", "Chuen", "Eb", "Ben", "Ix", "Men", "Cib", "Caban", "Etznab", "Cauac", "Ahau"] } }, leapYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, fg.local.invalidYear), false;
+ }, formatYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, fg.local.invalidYear);
+ e = t.year();
+ var r = Math.floor(e / 400);
+ e = e % 400, e += e < 0 ? 400 : 0;
+ var n = Math.floor(e / 20);
+ return r + "." + n + "." + e % 20;
+ }, forYear: function(e) {
+ if (e = e.split("."), e.length < 3) throw "Invalid Mayan year";
+ for (var t = 0, r = 0; r < e.length; r++) {
+ var n = parseInt(e[r], 10);
+ if (Math.abs(n) > 19 || r > 0 && n < 0) throw "Invalid Mayan year";
+ t = t * 20 + n;
+ }
+ return t;
+ }, monthsInYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, fg.local.invalidYear), 18;
+ }, weekOfYear: function(e, t, r) {
+ return this._validate(e, t, r, fg.local.invalidDate), 0;
+ }, daysInYear: function(e) {
+ return this._validate(e, this.minMonth, this.minDay, fg.local.invalidYear), 360;
+ }, daysInMonth: function(e, t) {
+ return this._validate(e, t, this.minDay, fg.local.invalidMonth), 20;
+ }, daysInWeek: function() {
+ return 5;
+ }, dayOfWeek: function(e, t, r) {
+ var n = this._validate(e, t, r, fg.local.invalidDate);
+ return n.day();
+ }, weekDay: function(e, t, r) {
+ return this._validate(e, t, r, fg.local.invalidDate), true;
+ }, extraInfo: function(e, t, r) {
+ var n = this._validate(e, t, r, fg.local.invalidDate), i = n.toJD(), a = this._toHaab(i), o = this._toTzolkin(i);
+ return { haabMonthName: this.local.haabMonths[a[0] - 1], haabMonth: a[0], haabDay: a[1], tzolkinDayName: this.local.tzolkinMonths[o[0] - 1], tzolkinDay: o[0], tzolkinTrecena: o[1] };
+ }, _toHaab: function(e) {
+ e -= this.jdEpoch;
+ var t = MQ(e + 8 + 17 * 20, 365);
+ return [Math.floor(t / 20) + 1, MQ(t, 20)];
+ }, _toTzolkin: function(e) {
+ return e -= this.jdEpoch, [cet(e + 20, 20), cet(e + 4, 13)];
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, fg.local.invalidDate);
+ return n.day() + n.month() * 20 + n.year() * 360 + this.jdEpoch;
+ }, fromJD: function(e) {
+ e = Math.floor(e) + 0.5 - this.jdEpoch;
+ var t = Math.floor(e / 360);
+ e = e % 360, e += e < 0 ? 360 : 0;
+ var r = Math.floor(e / 20), n = e % 20;
+ return this.newDate(t, r, n);
+ } });
+ function MQ(e, t) {
+ return e - t * Math.floor(e / t);
+ }
+ function cet(e, t) {
+ return MQ(e - 1, t) + 1;
+ }
+ fg.calendars.mayan = EQ;
+ });
+ var det = ye(() => {
+ var Iw = kv(), $tr = Nh();
+ function kQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ kQ.prototype = new Iw.baseCalendar();
+ var het = Iw.instance("gregorian");
+ $tr(kQ.prototype, { name: "Nanakshahi", jdEpoch: 22576735e-1, daysPerMonth: [31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Nanakshahi", epochs: ["BN", "AN"], monthNames: ["Chet", "Vaisakh", "Jeth", "Harh", "Sawan", "Bhadon", "Assu", "Katak", "Maghar", "Poh", "Magh", "Phagun"], monthNamesShort: ["Che", "Vai", "Jet", "Har", "Saw", "Bha", "Ass", "Kat", "Mgr", "Poh", "Mgh", "Pha"], dayNames: ["Somvaar", "Mangalvar", "Budhvaar", "Veervaar", "Shukarvaar", "Sanicharvaar", "Etvaar"], dayNamesShort: ["Som", "Mangal", "Budh", "Veer", "Shukar", "Sanichar", "Et"], dayNamesMin: ["So", "Ma", "Bu", "Ve", "Sh", "Sa", "Et"], digits: null, dateFormat: "dd-mm-yyyy", firstDay: 0, isRTL: false } }, leapYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, Iw.local.invalidYear || Iw.regionalOptions[""].invalidYear);
+ return het.leapYear(t.year() + (t.year() < 1 ? 1 : 0) + 1469);
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(1 - (n.dayOfWeek() || 7), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, Iw.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 12 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return (this.dayOfWeek(e, t, r) || 7) < 6;
+ }, toJD: function(i, t, r) {
+ var n = this._validate(i, t, r, Iw.local.invalidMonth), i = n.year();
+ i < 0 && i++;
+ for (var a = n.day(), o = 1; o < n.month(); o++) a += this.daysPerMonth[o - 1];
+ return a + het.toJD(i + 1468, 3, 13);
+ }, fromJD: function(e) {
+ e = Math.floor(e + 0.5);
+ for (var t = Math.floor((e - (this.jdEpoch - 1)) / 366); e >= this.toJD(t + 1, 1, 1); ) t++;
+ for (var r = e - Math.floor(this.toJD(t, 1, 1) + 0.5) + 1, n = 1; r > this.daysInMonth(t, n); ) r -= this.daysInMonth(t, n), n++;
+ return this.newDate(t, n, r);
+ } });
+ Iw.calendars.nanakshahi = kQ;
+ });
+ var vet = ye(() => {
+ var Rw = kv(), Qtr = Nh();
+ function CQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ CQ.prototype = new Rw.baseCalendar();
+ Qtr(CQ.prototype, { name: "Nepali", jdEpoch: 17007095e-1, daysPerMonth: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, daysPerYear: 365, regionalOptions: { "": { name: "Nepali", epochs: ["BBS", "ABS"], monthNames: ["Baisakh", "Jestha", "Ashadh", "Shrawan", "Bhadra", "Ashwin", "Kartik", "Mangsir", "Paush", "Mangh", "Falgun", "Chaitra"], monthNamesShort: ["Bai", "Je", "As", "Shra", "Bha", "Ash", "Kar", "Mang", "Pau", "Ma", "Fal", "Chai"], dayNames: ["Aaitabaar", "Sombaar", "Manglbaar", "Budhabaar", "Bihibaar", "Shukrabaar", "Shanibaar"], dayNamesShort: ["Aaita", "Som", "Mangl", "Budha", "Bihi", "Shukra", "Shani"], dayNamesMin: ["Aai", "So", "Man", "Bu", "Bi", "Shu", "Sha"], digits: null, dateFormat: "dd/mm/yyyy", firstDay: 1, isRTL: false } }, leapYear: function(e) {
+ return this.daysInYear(e) !== this.daysPerYear;
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(-n.dayOfWeek(), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, Rw.local.invalidYear);
+ if (e = t.year(), typeof this.NEPALI_CALENDAR_DATA[e] == "undefined") return this.daysPerYear;
+ for (var r = 0, n = this.minMonth; n <= 12; n++) r += this.NEPALI_CALENDAR_DATA[e][n];
+ return r;
+ }, daysInMonth: function(e, t) {
+ return e.year && (t = e.month(), e = e.year()), this._validate(e, t, this.minDay, Rw.local.invalidMonth), typeof this.NEPALI_CALENDAR_DATA[e] == "undefined" ? this.daysPerMonth[t - 1] : this.NEPALI_CALENDAR_DATA[e][t];
+ }, weekDay: function(e, t, r) {
+ return this.dayOfWeek(e, t, r) !== 6;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, Rw.local.invalidDate);
+ e = n.year(), t = n.month(), r = n.day();
+ var i = Rw.instance(), a = 0, o = t, s = e;
+ this._createMissingCalendarData(e);
+ var l = e - (o > 9 || o === 9 && r >= this.NEPALI_CALENDAR_DATA[s][0] ? 56 : 57);
+ for (t !== 9 && (a = r, o--); o !== 9; ) o <= 0 && (o = 12, s--), a += this.NEPALI_CALENDAR_DATA[s][o], o--;
+ return t === 9 ? (a += r - this.NEPALI_CALENDAR_DATA[s][0], a < 0 && (a += i.daysInYear(l))) : a += this.NEPALI_CALENDAR_DATA[s][9] - this.NEPALI_CALENDAR_DATA[s][0], i.newDate(l, 1, 1).add(a, "d").toJD();
+ }, fromJD: function(e) {
+ var t = Rw.instance(), r = t.fromJD(e), n = r.year(), i = r.dayOfYear(), a = n + 56;
+ this._createMissingCalendarData(a);
+ for (var o = 9, s = this.NEPALI_CALENDAR_DATA[a][0], l = this.NEPALI_CALENDAR_DATA[a][o] - s + 1; i > l; ) o++, o > 12 && (o = 1, a++), l += this.NEPALI_CALENDAR_DATA[a][o];
+ var u = this.NEPALI_CALENDAR_DATA[a][o] - (l - i);
+ return this.newDate(a, o, u);
+ }, _createMissingCalendarData: function(e) {
+ var t = this.daysPerMonth.slice(0);
+ t.unshift(17);
+ for (var r = e - 1; r < e + 2; r++) typeof this.NEPALI_CALENDAR_DATA[r] == "undefined" && (this.NEPALI_CALENDAR_DATA[r] = t);
+ }, NEPALI_CALENDAR_DATA: { 1970: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 1971: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30], 1972: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], 1973: [19, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 1974: [19, 31, 31, 32, 30, 31, 31, 30, 29, 30, 29, 30, 30], 1975: [18, 31, 31, 32, 32, 30, 31, 30, 29, 30, 29, 30, 30], 1976: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 1977: [18, 31, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31], 1978: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 1979: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 1980: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 1981: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], 1982: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 1983: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 1984: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 1985: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], 1986: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 1987: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], 1988: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 1989: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], 1990: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 1991: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], 1992: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 1993: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], 1994: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 1995: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], 1996: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 1997: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 1998: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 1999: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2e3: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2001: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2002: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2003: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2004: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2005: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2006: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2007: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2008: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31], 2009: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2010: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2011: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2012: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], 2013: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2014: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2015: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2016: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], 2017: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2018: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2019: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2020: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], 2021: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2022: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], 2023: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2024: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], 2025: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2026: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2027: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2028: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2029: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30], 2030: [17, 31, 32, 31, 32, 31, 30, 30, 30, 30, 30, 30, 31], 2031: [17, 31, 32, 31, 32, 31, 31, 31, 31, 31, 31, 31, 31], 2032: [17, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32], 2033: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2034: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2035: [17, 30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31], 2036: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2037: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2038: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2039: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], 2040: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2041: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2042: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2043: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], 2044: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2045: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2046: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2047: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], 2048: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2049: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], 2050: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2051: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], 2052: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2053: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], 2054: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2055: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 29, 30], 2056: [17, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30], 2057: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2058: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2059: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2060: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2061: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2062: [17, 30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31], 2063: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2064: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2065: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2066: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31], 2067: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2068: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2069: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2070: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], 2071: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2072: [17, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2073: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], 2074: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], 2075: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2076: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], 2077: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], 2078: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], 2079: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], 2080: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], 2081: [17, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30], 2082: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], 2083: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30], 2084: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30], 2085: [17, 31, 32, 31, 32, 31, 31, 30, 30, 29, 30, 30, 30], 2086: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], 2087: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30], 2088: [16, 30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30], 2089: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], 2090: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], 2091: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30], 2092: [16, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30], 2093: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], 2094: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30], 2095: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30], 2096: [17, 30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], 2097: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], 2098: [17, 31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 30, 31], 2099: [17, 31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30], 2100: [17, 31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30] } });
+ Rw.calendars.nepali = CQ;
+ });
+ var pet = ye(() => {
+ var oS = kv(), err = Nh();
+ function q9(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ function O9(e) {
+ var t = e - 475;
+ e < 0 && t++;
+ var r = 0.242197, n = r * t, i = r * (t + 1), a = n - Math.floor(n), o = i - Math.floor(i);
+ return a > o;
+ }
+ q9.prototype = new oS.baseCalendar();
+ err(q9.prototype, { name: "Persian", jdEpoch: 19483205e-1, daysPerMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Persian", epochs: ["BP", "AP"], monthNames: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"], monthNamesShort: ["Far", "Ord", "Kho", "Tir", "Mor", "Sha", "Meh", "Aba", "Aza", "Dey", "Bah", "Esf"], dayNames: ["Yekshanbeh", "Doshanbeh", "Seshanbeh", "Chahārshanbeh", "Panjshanbeh", "Jom'eh", "Shanbeh"], dayNamesShort: ["Yek", "Do", "Se", "Cha", "Panj", "Jom", "Sha"], dayNamesMin: ["Ye", "Do", "Se", "Ch", "Pa", "Jo", "Sh"], digits: null, dateFormat: "yyyy/mm/dd", firstDay: 6, isRTL: false } }, leapYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, oS.local.invalidYear);
+ return O9(t.year());
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(-((n.dayOfWeek() + 1) % 7), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, oS.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 12 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return this.dayOfWeek(e, t, r) !== 5;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, oS.local.invalidDate);
+ e = n.year(), t = n.month(), r = n.day();
+ var i = 0;
+ if (e > 0) for (var a = 1; a < e; a++) O9(a) && i++;
+ else if (e < 0) for (var a = e; a < 0; a++) O9(a) && i--;
+ return r + (t <= 7 ? (t - 1) * 31 : (t - 1) * 30 + 6) + (e > 0 ? e - 1 : e) * 365 + i + this.jdEpoch - 1;
+ }, fromJD: function(e) {
+ e = Math.floor(e) + 0.5;
+ var t = 475 + (e - this.toJD(475, 1, 1)) / 365.242197, r = Math.floor(t);
+ r <= 0 && r--, e > this.toJD(r, 12, O9(r) ? 30 : 29) && (r++, r === 0 && r++);
+ var n = e - this.toJD(r, 1, 1) + 1, i = n <= 186 ? Math.ceil(n / 31) : Math.ceil((n - 6) / 30), a = e - this.toJD(r, i, 1) + 1;
+ return this.newDate(r, i, a);
+ } });
+ oS.calendars.persian = q9;
+ oS.calendars.jalali = q9;
+ });
+ var get = ye(() => {
+ var Dw = kv(), trr = Nh(), B9 = Dw.instance();
+ function LQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ LQ.prototype = new Dw.baseCalendar();
+ trr(LQ.prototype, { name: "Taiwan", jdEpoch: 24194025e-1, yearsOffset: 1911, daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Taiwan", epochs: ["BROC", "ROC"], monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], digits: null, dateFormat: "yyyy/mm/dd", firstDay: 1, isRTL: false } }, leapYear: function(r) {
+ var t = this._validate(r, this.minMonth, this.minDay, Dw.local.invalidYear), r = this._t2gYear(t.year());
+ return B9.leapYear(r);
+ }, weekOfYear: function(i, t, r) {
+ var n = this._validate(i, this.minMonth, this.minDay, Dw.local.invalidYear), i = this._t2gYear(n.year());
+ return B9.weekOfYear(i, n.month(), n.day());
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, Dw.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 2 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return (this.dayOfWeek(e, t, r) || 7) < 6;
+ }, toJD: function(i, t, r) {
+ var n = this._validate(i, t, r, Dw.local.invalidDate), i = this._t2gYear(n.year());
+ return B9.toJD(i, n.month(), n.day());
+ }, fromJD: function(e) {
+ var t = B9.fromJD(e), r = this._g2tYear(t.year());
+ return this.newDate(r, t.month(), t.day());
+ }, _t2gYear: function(e) {
+ return e + this.yearsOffset + (e >= -this.yearsOffset && e <= -1 ? 1 : 0);
+ }, _g2tYear: function(e) {
+ return e - this.yearsOffset - (e >= 1 && e <= this.yearsOffset ? 1 : 0);
+ } });
+ Dw.calendars.taiwan = LQ;
+ });
+ var met = ye(() => {
+ var Fw = kv(), rrr = Nh(), N9 = Fw.instance();
+ function PQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ PQ.prototype = new Fw.baseCalendar();
+ rrr(PQ.prototype, { name: "Thai", jdEpoch: 15230985e-1, yearsOffset: 543, daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Thai", epochs: ["BBE", "BE"], monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], digits: null, dateFormat: "dd/mm/yyyy", firstDay: 0, isRTL: false } }, leapYear: function(r) {
+ var t = this._validate(r, this.minMonth, this.minDay, Fw.local.invalidYear), r = this._t2gYear(t.year());
+ return N9.leapYear(r);
+ }, weekOfYear: function(i, t, r) {
+ var n = this._validate(i, this.minMonth, this.minDay, Fw.local.invalidYear), i = this._t2gYear(n.year());
+ return N9.weekOfYear(i, n.month(), n.day());
+ }, daysInMonth: function(e, t) {
+ var r = this._validate(e, t, this.minDay, Fw.local.invalidMonth);
+ return this.daysPerMonth[r.month() - 1] + (r.month() === 2 && this.leapYear(r.year()) ? 1 : 0);
+ }, weekDay: function(e, t, r) {
+ return (this.dayOfWeek(e, t, r) || 7) < 6;
+ }, toJD: function(i, t, r) {
+ var n = this._validate(i, t, r, Fw.local.invalidDate), i = this._t2gYear(n.year());
+ return N9.toJD(i, n.month(), n.day());
+ }, fromJD: function(e) {
+ var t = N9.fromJD(e), r = this._g2tYear(t.year());
+ return this.newDate(r, t.month(), t.day());
+ }, _t2gYear: function(e) {
+ return e - this.yearsOffset - (e >= 1 && e <= this.yearsOffset ? 1 : 0);
+ }, _g2tYear: function(e) {
+ return e + this.yearsOffset + (e >= -this.yearsOffset && e <= -1 ? 1 : 0);
+ } });
+ Fw.calendars.thai = PQ;
+ });
+ var yet = ye(() => {
+ var zw = kv(), irr = Nh();
+ function IQ(e) {
+ this.local = this.regionalOptions[e || ""] || this.regionalOptions[""];
+ }
+ IQ.prototype = new zw.baseCalendar();
+ irr(IQ.prototype, { name: "UmmAlQura", hasYearZero: false, minMonth: 1, firstMonth: 1, minDay: 1, regionalOptions: { "": { name: "Umm al-Qura", epochs: ["BH", "AH"], monthNames: ["Al-Muharram", "Safar", "Rabi' al-awwal", "Rabi' Al-Thani", "Jumada Al-Awwal", "Jumada Al-Thani", "Rajab", "Sha'aban", "Ramadan", "Shawwal", "Dhu al-Qi'dah", "Dhu al-Hijjah"], monthNamesShort: ["Muh", "Saf", "Rab1", "Rab2", "Jum1", "Jum2", "Raj", "Sha'", "Ram", "Shaw", "DhuQ", "DhuH"], dayNames: ["Yawm al-Ahad", "Yawm al-Ithnain", "Yawm al-Thalāthā’", "Yawm al-Arba‘ā’", "Yawm al-Khamīs", "Yawm al-Jum‘a", "Yawm al-Sabt"], dayNamesMin: ["Ah", "Ith", "Th", "Ar", "Kh", "Ju", "Sa"], digits: null, dateFormat: "yyyy/mm/dd", firstDay: 6, isRTL: true } }, leapYear: function(e) {
+ var t = this._validate(e, this.minMonth, this.minDay, zw.local.invalidYear);
+ return this.daysInYear(t.year()) === 355;
+ }, weekOfYear: function(e, t, r) {
+ var n = this.newDate(e, t, r);
+ return n.add(-n.dayOfWeek(), "d"), Math.floor((n.dayOfYear() - 1) / 7) + 1;
+ }, daysInYear: function(e) {
+ for (var t = 0, r = 1; r <= 12; r++) t += this.daysInMonth(e, r);
+ return t;
+ }, daysInMonth: function(e, t) {
+ for (var r = this._validate(e, t, this.minDay, zw.local.invalidMonth), n = r.toJD() - 24e5 + 0.5, i = 0, a = 0; a < Zx.length; a++) {
+ if (Zx[a] > n) return Zx[i] - Zx[i - 1];
+ i++;
+ }
+ return 30;
+ }, weekDay: function(e, t, r) {
+ return this.dayOfWeek(e, t, r) !== 5;
+ }, toJD: function(e, t, r) {
+ var n = this._validate(e, t, r, zw.local.invalidDate), i = 12 * (n.year() - 1) + n.month() - 15292, a = n.day() + Zx[i - 1] - 1;
+ return a + 24e5 - 0.5;
+ }, fromJD: function(e) {
+ for (var t = e - 24e5 + 0.5, r = 0, n = 0; n < Zx.length && !(Zx[n] > t); n++) r++;
+ var i = r + 15292, a = Math.floor((i - 1) / 12), o = a + 1, s = i - 12 * a, l = t - Zx[r - 1] + 1;
+ return this.newDate(o, s, l);
+ }, isValid: function(e, t, r) {
+ var n = zw.baseCalendar.prototype.isValid.apply(this, arguments);
+ return n && (e = e.year != null ? e.year : e, n = e >= 1276 && e <= 1500), n;
+ }, _validate: function(e, t, r, n) {
+ var i = zw.baseCalendar.prototype._validate.apply(this, arguments);
+ if (i.year < 1276 || i.year > 1500) throw n.replace(/\{0\}/, this.local.name);
+ return i;
+ } });
+ zw.calendars.ummalqura = IQ;
+ var Zx = [20, 50, 79, 109, 138, 168, 197, 227, 256, 286, 315, 345, 374, 404, 433, 463, 492, 522, 551, 581, 611, 641, 670, 700, 729, 759, 788, 818, 847, 877, 906, 936, 965, 995, 1024, 1054, 1083, 1113, 1142, 1172, 1201, 1231, 1260, 1290, 1320, 1350, 1379, 1409, 1438, 1468, 1497, 1527, 1556, 1586, 1615, 1645, 1674, 1704, 1733, 1763, 1792, 1822, 1851, 1881, 1910, 1940, 1969, 1999, 2028, 2058, 2087, 2117, 2146, 2176, 2205, 2235, 2264, 2294, 2323, 2353, 2383, 2413, 2442, 2472, 2501, 2531, 2560, 2590, 2619, 2649, 2678, 2708, 2737, 2767, 2796, 2826, 2855, 2885, 2914, 2944, 2973, 3003, 3032, 3062, 3091, 3121, 3150, 3180, 3209, 3239, 3268, 3298, 3327, 3357, 3386, 3416, 3446, 3476, 3505, 3535, 3564, 3594, 3623, 3653, 3682, 3712, 3741, 3771, 3800, 3830, 3859, 3889, 3918, 3948, 3977, 4007, 4036, 4066, 4095, 4125, 4155, 4185, 4214, 4244, 4273, 4303, 4332, 4362, 4391, 4421, 4450, 4480, 4509, 4539, 4568, 4598, 4627, 4657, 4686, 4716, 4745, 4775, 4804, 4834, 4863, 4893, 4922, 4952, 4981, 5011, 5040, 5070, 5099, 5129, 5158, 5188, 5218, 5248, 5277, 5307, 5336, 5366, 5395, 5425, 5454, 5484, 5513, 5543, 5572, 5602, 5631, 5661, 5690, 5720, 5749, 5779, 5808, 5838, 5867, 5897, 5926, 5956, 5985, 6015, 6044, 6074, 6103, 6133, 6162, 6192, 6221, 6251, 6281, 6311, 6340, 6370, 6399, 6429, 6458, 6488, 6517, 6547, 6576, 6606, 6635, 6665, 6694, 6724, 6753, 6783, 6812, 6842, 6871, 6901, 6930, 6960, 6989, 7019, 7048, 7078, 7107, 7137, 7166, 7196, 7225, 7255, 7284, 7314, 7344, 7374, 7403, 7433, 7462, 7492, 7521, 7551, 7580, 7610, 7639, 7669, 7698, 7728, 7757, 7787, 7816, 7846, 7875, 7905, 7934, 7964, 7993, 8023, 8053, 8083, 8112, 8142, 8171, 8201, 8230, 8260, 8289, 8319, 8348, 8378, 8407, 8437, 8466, 8496, 8525, 8555, 8584, 8614, 8643, 8673, 8702, 8732, 8761, 8791, 8821, 8850, 8880, 8909, 8938, 8968, 8997, 9027, 9056, 9086, 9115, 9145, 9175, 9205, 9234, 9264, 9293, 9322, 9352, 9381, 9410, 9440, 9470, 9499, 9529, 9559, 9589, 9618, 9648, 9677, 9706, 9736, 9765, 9794, 9824, 9853, 9883, 9913, 9943, 9972, 10002, 10032, 10061, 10090, 10120, 10149, 10178, 10208, 10237, 10267, 10297, 10326, 10356, 10386, 10415, 10445, 10474, 10504, 10533, 10562, 10592, 10621, 10651, 10680, 10710, 10740, 10770, 10799, 10829, 10858, 10888, 10917, 10947, 10976, 11005, 11035, 11064, 11094, 11124, 11153, 11183, 11213, 11242, 11272, 11301, 11331, 11360, 11389, 11419, 11448, 11478, 11507, 11537, 11567, 11596, 11626, 11655, 11685, 11715, 11744, 11774, 11803, 11832, 11862, 11891, 11921, 11950, 11980, 12010, 12039, 12069, 12099, 12128, 12158, 12187, 12216, 12246, 12275, 12304, 12334, 12364, 12393, 12423, 12453, 12483, 12512, 12542, 12571, 12600, 12630, 12659, 12688, 12718, 12747, 12777, 12807, 12837, 12866, 12896, 12926, 12955, 12984, 13014, 13043, 13072, 13102, 13131, 13161, 13191, 13220, 13250, 13280, 13310, 13339, 13368, 13398, 13427, 13456, 13486, 13515, 13545, 13574, 13604, 13634, 13664, 13693, 13723, 13752, 13782, 13811, 13840, 13870, 13899, 13929, 13958, 13988, 14018, 14047, 14077, 14107, 14136, 14166, 14195, 14224, 14254, 14283, 14313, 14342, 14372, 14401, 14431, 14461, 14490, 14520, 14550, 14579, 14609, 14638, 14667, 14697, 14726, 14756, 14785, 14815, 14844, 14874, 14904, 14933, 14963, 14993, 15021, 15051, 15081, 15110, 15140, 15169, 15199, 15228, 15258, 15287, 15317, 15347, 15377, 15406, 15436, 15465, 15494, 15524, 15553, 15582, 15612, 15641, 15671, 15701, 15731, 15760, 15790, 15820, 15849, 15878, 15908, 15937, 15966, 15996, 16025, 16055, 16085, 16114, 16144, 16174, 16204, 16233, 16262, 16292, 16321, 16350, 16380, 16409, 16439, 16468, 16498, 16528, 16558, 16587, 16617, 16646, 16676, 16705, 16734, 16764, 16793, 16823, 16852, 16882, 16912, 16941, 16971, 17001, 17030, 17060, 17089, 17118, 17148, 17177, 17207, 17236, 17266, 17295, 17325, 17355, 17384, 17414, 17444, 17473, 17502, 17532, 17561, 17591, 17620, 17650, 17679, 17709, 17738, 17768, 17798, 17827, 17857, 17886, 17916, 17945, 17975, 18004, 18034, 18063, 18093, 18122, 18152, 18181, 18211, 18241, 18270, 18300, 18330, 18359, 18388, 18418, 18447, 18476, 18506, 18535, 18565, 18595, 18625, 18654, 18684, 18714, 18743, 18772, 18802, 18831, 18860, 18890, 18919, 18949, 18979, 19008, 19038, 19068, 19098, 19127, 19156, 19186, 19215, 19244, 19274, 19303, 19333, 19362, 19392, 19422, 19452, 19481, 19511, 19540, 19570, 19599, 19628, 19658, 19687, 19717, 19746, 19776, 19806, 19836, 19865, 19895, 19924, 19954, 19983, 20012, 20042, 20071, 20101, 20130, 20160, 20190, 20219, 20249, 20279, 20308, 20338, 20367, 20396, 20426, 20455, 20485, 20514, 20544, 20573, 20603, 20633, 20662, 20692, 20721, 20751, 20780, 20810, 20839, 20869, 20898, 20928, 20957, 20987, 21016, 21046, 21076, 21105, 21135, 21164, 21194, 21223, 21253, 21282, 21312, 21341, 21371, 21400, 21430, 21459, 21489, 21519, 21548, 21578, 21607, 21637, 21666, 21696, 21725, 21754, 21784, 21813, 21843, 21873, 21902, 21932, 21962, 21991, 22021, 22050, 22080, 22109, 22138, 22168, 22197, 22227, 22256, 22286, 22316, 22346, 22375, 22405, 22434, 22464, 22493, 22522, 22552, 22581, 22611, 22640, 22670, 22700, 22730, 22759, 22789, 22818, 22848, 22877, 22906, 22936, 22965, 22994, 23024, 23054, 23083, 23113, 23143, 23173, 23202, 23232, 23261, 23290, 23320, 23349, 23379, 23408, 23438, 23467, 23497, 23527, 23556, 23586, 23616, 23645, 23674, 23704, 23733, 23763, 23792, 23822, 23851, 23881, 23910, 23940, 23970, 23999, 24029, 24058, 24088, 24117, 24147, 24176, 24206, 24235, 24265, 24294, 24324, 24353, 24383, 24413, 24442, 24472, 24501, 24531, 24560, 24590, 24619, 24648, 24678, 24707, 24737, 24767, 24796, 24826, 24856, 24885, 24915, 24944, 24974, 25003, 25032, 25062, 25091, 25121, 25150, 25180, 25210, 25240, 25269, 25299, 25328, 25358, 25387, 25416, 25446, 25475, 25505, 25534, 25564, 25594, 25624, 25653, 25683, 25712, 25742, 25771, 25800, 25830, 25859, 25888, 25918, 25948, 25977, 26007, 26037, 26067, 26096, 26126, 26155, 26184, 26214, 26243, 26272, 26302, 26332, 26361, 26391, 26421, 26451, 26480, 26510, 26539, 26568, 26598, 26627, 26656, 26686, 26715, 26745, 26775, 26805, 26834, 26864, 26893, 26923, 26952, 26982, 27011, 27041, 27070, 27099, 27129, 27159, 27188, 27218, 27248, 27277, 27307, 27336, 27366, 27395, 27425, 27454, 27484, 27513, 27542, 27572, 27602, 27631, 27661, 27691, 27720, 27750, 27779, 27809, 27838, 27868, 27897, 27926, 27956, 27985, 28015, 28045, 28074, 28104, 28134, 28163, 28193, 28222, 28252, 28281, 28310, 28340, 28369, 28399, 28428, 28458, 28488, 28517, 28547, 28577, 28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990, 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522, 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053, 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585, 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116, 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648, 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180, 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711, 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243, 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775, 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306, 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837, 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370, 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901, 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433, 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963, 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495, 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027, 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558, 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089, 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621, 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153, 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685, 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216, 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748, 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279, 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810, 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342, 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873, 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405, 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936, 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468, 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999, 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531, 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063, 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594, 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125, 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657, 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189, 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720, 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252, 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784, 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315, 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846, 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379, 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910, 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441, 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973, 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505, 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036, 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567, 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100, 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631, 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162, 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694, 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226, 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757, 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288, 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820, 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352, 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883, 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415, 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947, 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478, 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009, 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541, 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073, 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603, 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136, 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667, 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199, 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730, 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262, 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793, 67823, 67852, 67882, 67911, 67941, 67971, 68e3, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325, 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857, 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388, 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919, 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451, 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983, 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514, 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046, 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577, 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109, 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640, 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172, 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704, 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235, 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766, 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299, 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830, 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361, 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893, 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425, 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956, 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487, 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990];
+ });
+ var xet = ye((vTr, _et) => {
+ _et.exports = kv();
+ tet();
+ ret();
+ iet();
+ net();
+ aet();
+ oet();
+ set();
+ uet();
+ fet();
+ det();
+ vet();
+ pet();
+ get();
+ met();
+ yet();
+ });
+ var ket = ye((pTr, Eet) => {
+ var wet = xet(), TC = Dr(), Tet = fs(), nrr = Tet.EPOCHJD, arr = Tet.ONEDAY, FQ = { valType: "enumerated", values: TC.sortObjectKeys(wet.calendars), editType: "calc", dflt: "gregorian" }, Aet = function(e, t, r, n) {
+ var i = {};
+ return i[r] = FQ, TC.coerce(e, t, i, r, n);
+ }, orr = function(e, t, r, n) {
+ for (var i = 0; i < r.length; i++) Aet(e, t, r[i] + "calendar", n.calendar);
+ }, srr = { chinese: "2000-01-01", coptic: "2000-01-01", discworld: "2000-01-01", ethiopian: "2000-01-01", hebrew: "5000-01-01", islamic: "1000-01-01", julian: "2000-01-01", mayan: "5000-01-01", nanakshahi: "1000-01-01", nepali: "2000-01-01", persian: "1000-01-01", jalali: "1000-01-01", taiwan: "1000-01-01", thai: "2000-01-01", ummalqura: "1400-01-01" }, lrr = { chinese: "2000-01-02", coptic: "2000-01-03", discworld: "2000-01-03", ethiopian: "2000-01-05", hebrew: "5000-01-01", islamic: "1000-01-02", julian: "2000-01-03", mayan: "5000-01-01", nanakshahi: "1000-01-05", nepali: "2000-01-05", persian: "1000-01-01", jalali: "1000-01-01", taiwan: "1000-01-04", thai: "2000-01-04", ummalqura: "1400-01-06" }, urr = { chinese: ["2000-01-01", "2001-01-01"], coptic: ["1700-01-01", "1701-01-01"], discworld: ["1800-01-01", "1801-01-01"], ethiopian: ["2000-01-01", "2001-01-01"], hebrew: ["5700-01-01", "5701-01-01"], islamic: ["1400-01-01", "1401-01-01"], julian: ["2000-01-01", "2001-01-01"], mayan: ["5200-01-01", "5201-01-01"], nanakshahi: ["0500-01-01", "0501-01-01"], nepali: ["2000-01-01", "2001-01-01"], persian: ["1400-01-01", "1401-01-01"], jalali: ["1400-01-01", "1401-01-01"], taiwan: ["0100-01-01", "0101-01-01"], thai: ["2500-01-01", "2501-01-01"], ummalqura: ["1400-01-01", "1401-01-01"] }, U9 = "##", crr = { d: { 0: "dd", "-": "d" }, e: { 0: "d", "-": "d" }, a: { 0: "D", "-": "D" }, A: { 0: "DD", "-": "DD" }, j: { 0: "oo", "-": "o" }, W: { 0: "ww", "-": "w" }, m: { 0: "mm", "-": "m" }, b: { 0: "M", "-": "M" }, B: { 0: "MM", "-": "MM" }, y: { 0: "yy", "-": "yy" }, Y: { 0: "yyyy", "-": "yyyy" }, U: U9, w: U9, c: { 0: "D M d %X yyyy", "-": "D M d %X yyyy" }, x: { 0: "mm/dd/yyyy", "-": "mm/dd/yyyy" } };
+ function frr(e, t, r) {
+ for (var n = Math.floor((t + 0.05) / arr) + nrr, i = Met(r).fromJD(n), a = 0, o, s, l, u, c; (a = e.indexOf("%", a)) !== -1; ) o = e.charAt(a + 1), o === "0" || o === "-" || o === "_" ? (l = 3, s = e.charAt(a + 2), o === "_" && (o = "-")) : (s = o, o = "0", l = 2), u = crr[s], u ? (u === U9 ? c = U9 : c = i.formatDate(u[o]), e = e.slice(0, a) + c + e.slice(a + l), a += c.length) : a += l;
+ return e;
+ }
+ var bet = {};
+ function Met(e) {
+ var t = bet[e];
+ return t || (t = bet[e] = wet.instance(e), t);
+ }
+ function AC(e) {
+ return TC.extendFlat({}, FQ, { description: e });
+ }
+ function zQ(e) {
+ return "Sets the calendar system to use with `" + e + "` date data.";
+ }
+ var DQ = { xcalendar: AC(zQ("x")) }, cy = TC.extendFlat({}, DQ, { ycalendar: AC(zQ("y")) }), RQ = TC.extendFlat({}, cy, { zcalendar: AC(zQ("z")) }), sS = AC(["Sets the calendar system to use for `range` and `tick0`", "if this is a date axis. This does not set the calendar for", "interpreting data on this axis, that's specified in the trace", "or via the global `layout.calendar`"].join(" "));
+ Eet.exports = { moduleType: "component", name: "calendars", schema: { traces: { scatter: cy, bar: cy, box: cy, heatmap: cy, contour: cy, histogram: cy, histogram2d: cy, histogram2dcontour: cy, scatter3d: RQ, surface: RQ, mesh3d: RQ, scattergl: cy, ohlc: DQ, candlestick: DQ }, layout: { calendar: AC(["Sets the default calendar system to use for interpreting and", "displaying dates throughout the plot."].join(" ")) }, subplots: { xaxis: { calendar: sS }, yaxis: { calendar: sS }, scene: { xaxis: { calendar: sS }, yaxis: { calendar: sS }, zaxis: { calendar: sS } }, polar: { radialaxis: { calendar: sS } } } }, layoutAttributes: FQ, handleDefaults: Aet, handleTraceDefaults: orr, CANONICAL_SUNDAY: lrr, CANONICAL_TICK: srr, DFLTRANGE: urr, getCal: Met, worldCalFmt: frr };
+ });
+ var Let = ye((gTr, Cet) => {
+ Cet.exports = ket();
+ });
+ var hrr = ye((mTr, Iet) => {
+ var Pet = uye();
+ Pet.register([f1e(), $1e(), hxe(), Rxe(), Xxe(), Gbe(), r2e(), H2e(), _we(), t3e(), V3e(), eke(), Gke(), D6e(), wLe(), QLe(), TPe(), ZIe(), d8e(), P8e(), G8e(), iRe(), yRe(), DRe(), uFe(), CFe(), WBe(), WNe(), rVe(), kVe(), qGe(), QGe(), THe(), Fje(), Kje(), xWe(), CXe(), QXe(), DZe(), rKe(), EKe(), ZKe(), xJe(), DJe(), R$e(), $$e(), mQe(), $Qe(), Let()]);
+ Iet.exports = Pet;
+ });
+ return hrr();
+ })();
+ /*!
+ * pad-left
+ *
+ * Copyright (c) 2014-2015, Jon Schlinkert.
+ * Licensed under the MIT license.
+ */
+ /*!
+ * repeat-string
+ *
+ * Copyright (c) 2014-2015, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */
+ /*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh
+ * @license MIT
+ */
+ /*!
+ * Determine if an object is a Buffer
+ *
+ * @author Feross Aboukhadijeh
+ * @license MIT
+ */
+ /*! Bundled license information:
+
+ native-promise-only/lib/npo.src.js:
+ (*! Native Promise Only
+ v0.8.1 (c) Kyle Simpson
+ MIT License: http://getify.mit-license.org
+ *)
+
+ polybooljs/index.js:
+ (*
+ * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc
+ * @license MIT
+ * @preserve Project Home: https://github.com/voidqk/polybooljs
+ *)
+
+ ieee754/index.js:
+ (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *)
+
+ buffer/index.js:
+ (*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh
+ * @license MIT
+ *)
+
+ safe-buffer/index.js:
+ (*! safe-buffer. MIT License. Feross Aboukhadijeh *)
+
+ assert/build/internal/util/comparisons.js:
+ (*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh
+ * @license MIT
+ *)
+
+ object-assign/index.js:
+ (*
+ object-assign
+ (c) Sindre Sorhus
+ @license MIT
+ *)
+
+ maplibre-gl/dist/maplibre-gl.js:
+ (**
+ * MapLibre GL JS
+ * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v4.7.1/LICENSE.txt
+ *)
+ */
+ window.Plotly = Plotly;
+ return Plotly;
+ });
+})(plotly_min$2);
+var plotly_minExports = plotly_min$2.exports;
+const plotly_min = /* @__PURE__ */ getDefaultExportFromCjs(plotly_minExports);
+const plotly_min$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ default: plotly_min
+}, Symbol.toStringTag, { value: "Module" }));
+export {
+ plotly_min$1 as p
+};
diff --git a/src/bowser/dist/index.css b/src/bowser/dist/index.css
index 723d266..f2c4463 100644
--- a/src/bowser/dist/index.css
+++ b/src/bowser/dist/index.css
@@ -1,665 +1,4 @@
-/* required styles */
-
-.leaflet-pane,
-.leaflet-tile,
-.leaflet-marker-icon,
-.leaflet-marker-shadow,
-.leaflet-tile-container,
-.leaflet-pane > svg,
-.leaflet-pane > canvas,
-.leaflet-zoom-box,
-.leaflet-image-layer,
-.leaflet-layer {
- position: absolute;
- left: 0;
- top: 0;
- }
-.leaflet-container {
- overflow: hidden;
- }
-.leaflet-tile,
-.leaflet-marker-icon,
-.leaflet-marker-shadow {
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- -webkit-user-drag: none;
- }
-/* Prevents IE11 from highlighting tiles in blue */
-.leaflet-tile::selection {
- background: transparent;
-}
-/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
-.leaflet-safari .leaflet-tile {
- image-rendering: -webkit-optimize-contrast;
- }
-/* hack that prevents hw layers "stretching" when loading new tiles */
-.leaflet-safari .leaflet-tile-container {
- width: 1600px;
- height: 1600px;
- -webkit-transform-origin: 0 0;
- }
-.leaflet-marker-icon,
-.leaflet-marker-shadow {
- display: block;
- }
-/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
-/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
-.leaflet-container .leaflet-overlay-pane svg {
- max-width: none !important;
- max-height: none !important;
- }
-.leaflet-container .leaflet-marker-pane img,
-.leaflet-container .leaflet-shadow-pane img,
-.leaflet-container .leaflet-tile-pane img,
-.leaflet-container img.leaflet-image-layer,
-.leaflet-container .leaflet-tile {
- max-width: none !important;
- max-height: none !important;
- width: auto;
- padding: 0;
- }
-
-.leaflet-container img.leaflet-tile {
- /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
- mix-blend-mode: plus-lighter;
-}
-
-.leaflet-container.leaflet-touch-zoom {
- -ms-touch-action: pan-x pan-y;
- touch-action: pan-x pan-y;
- }
-.leaflet-container.leaflet-touch-drag {
- -ms-touch-action: pinch-zoom;
- /* Fallback for FF which doesn't support pinch-zoom */
- touch-action: none;
- touch-action: pinch-zoom;
-}
-.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
- -ms-touch-action: none;
- touch-action: none;
-}
-.leaflet-container {
- -webkit-tap-highlight-color: transparent;
-}
-.leaflet-container a {
- -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
-}
-.leaflet-tile {
- filter: inherit;
- visibility: hidden;
- }
-.leaflet-tile-loaded {
- visibility: inherit;
- }
-.leaflet-zoom-box {
- width: 0;
- height: 0;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- z-index: 800;
- }
-/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
-.leaflet-overlay-pane svg {
- -moz-user-select: none;
- }
-
-.leaflet-pane { z-index: 400; }
-
-.leaflet-tile-pane { z-index: 200; }
-.leaflet-overlay-pane { z-index: 400; }
-.leaflet-shadow-pane { z-index: 500; }
-.leaflet-marker-pane { z-index: 600; }
-.leaflet-tooltip-pane { z-index: 650; }
-.leaflet-popup-pane { z-index: 700; }
-
-.leaflet-map-pane canvas { z-index: 100; }
-.leaflet-map-pane svg { z-index: 200; }
-
-.leaflet-vml-shape {
- width: 1px;
- height: 1px;
- }
-.lvml {
- behavior: url(#default#VML);
- display: inline-block;
- position: absolute;
- }
-
-
-/* control positioning */
-
-.leaflet-control {
- position: relative;
- z-index: 800;
- pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
- pointer-events: auto;
- }
-.leaflet-top,
-.leaflet-bottom {
- position: absolute;
- z-index: 1000;
- pointer-events: none;
- }
-.leaflet-top {
- top: 0;
- }
-.leaflet-right {
- right: 0;
- }
-.leaflet-bottom {
- bottom: 0;
- }
-.leaflet-left {
- left: 0;
- }
-.leaflet-control {
- float: left;
- clear: both;
- }
-.leaflet-right .leaflet-control {
- float: right;
- }
-.leaflet-top .leaflet-control {
- margin-top: 10px;
- }
-.leaflet-bottom .leaflet-control {
- margin-bottom: 10px;
- }
-.leaflet-left .leaflet-control {
- margin-left: 10px;
- }
-.leaflet-right .leaflet-control {
- margin-right: 10px;
- }
-
-
-/* zoom and fade animations */
-
-.leaflet-fade-anim .leaflet-popup {
- opacity: 0;
- -webkit-transition: opacity 0.2s linear;
- -moz-transition: opacity 0.2s linear;
- transition: opacity 0.2s linear;
- }
-.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
- opacity: 1;
- }
-.leaflet-zoom-animated {
- -webkit-transform-origin: 0 0;
- -ms-transform-origin: 0 0;
- transform-origin: 0 0;
- }
-svg.leaflet-zoom-animated {
- will-change: transform;
-}
-
-.leaflet-zoom-anim .leaflet-zoom-animated {
- -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
- -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
- transition: transform 0.25s cubic-bezier(0,0,0.25,1);
- }
-.leaflet-zoom-anim .leaflet-tile,
-.leaflet-pan-anim .leaflet-tile {
- -webkit-transition: none;
- -moz-transition: none;
- transition: none;
- }
-
-.leaflet-zoom-anim .leaflet-zoom-hide {
- visibility: hidden;
- }
-
-
-/* cursors */
-
-.leaflet-interactive {
- cursor: pointer;
- }
-.leaflet-grab {
- cursor: -webkit-grab;
- cursor: -moz-grab;
- cursor: grab;
- }
-.leaflet-crosshair,
-.leaflet-crosshair .leaflet-interactive {
- cursor: crosshair;
- }
-.leaflet-popup-pane,
-.leaflet-control {
- cursor: auto;
- }
-.leaflet-dragging .leaflet-grab,
-.leaflet-dragging .leaflet-grab .leaflet-interactive,
-.leaflet-dragging .leaflet-marker-draggable {
- cursor: move;
- cursor: -webkit-grabbing;
- cursor: -moz-grabbing;
- cursor: grabbing;
- }
-
-/* marker & overlays interactivity */
-.leaflet-marker-icon,
-.leaflet-marker-shadow,
-.leaflet-image-layer,
-.leaflet-pane > svg path,
-.leaflet-tile-container {
- pointer-events: none;
- }
-
-.leaflet-marker-icon.leaflet-interactive,
-.leaflet-image-layer.leaflet-interactive,
-.leaflet-pane > svg path.leaflet-interactive,
-svg.leaflet-image-layer.leaflet-interactive path {
- pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
- pointer-events: auto;
- }
-
-/* visual tweaks */
-
-.leaflet-container {
- background: #ddd;
- outline-offset: 1px;
- }
-.leaflet-container a {
- color: #0078A8;
- }
-.leaflet-zoom-box {
- border: 2px dotted #38f;
- background: rgba(255,255,255,0.5);
- }
-
-
-/* general typography */
-.leaflet-container {
- font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
- font-size: 12px;
- font-size: 0.75rem;
- line-height: 1.5;
- }
-
-
-/* general toolbar styles */
-
-.leaflet-bar {
- box-shadow: 0 1px 5px rgba(0,0,0,0.65);
- border-radius: 4px;
- }
-.leaflet-bar a {
- background-color: #fff;
- border-bottom: 1px solid #ccc;
- width: 26px;
- height: 26px;
- line-height: 26px;
- display: block;
- text-align: center;
- text-decoration: none;
- color: black;
- }
-.leaflet-bar a,
-.leaflet-control-layers-toggle {
- background-position: 50% 50%;
- background-repeat: no-repeat;
- display: block;
- }
-.leaflet-bar a:hover,
-.leaflet-bar a:focus {
- background-color: #f4f4f4;
- }
-.leaflet-bar a:first-child {
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- }
-.leaflet-bar a:last-child {
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
- border-bottom: none;
- }
-.leaflet-bar a.leaflet-disabled {
- cursor: default;
- background-color: #f4f4f4;
- color: #bbb;
- }
-
-.leaflet-touch .leaflet-bar a {
- width: 30px;
- height: 30px;
- line-height: 30px;
- }
-.leaflet-touch .leaflet-bar a:first-child {
- border-top-left-radius: 2px;
- border-top-right-radius: 2px;
- }
-.leaflet-touch .leaflet-bar a:last-child {
- border-bottom-left-radius: 2px;
- border-bottom-right-radius: 2px;
- }
-
-/* zoom control */
-
-.leaflet-control-zoom-in,
-.leaflet-control-zoom-out {
- font: bold 18px 'Lucida Console', Monaco, monospace;
- text-indent: 1px;
- }
-
-.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
- font-size: 22px;
- }
-
-
-/* layers control */
-
-.leaflet-control-layers {
- box-shadow: 0 1px 5px rgba(0,0,0,0.4);
- background: #fff;
- border-radius: 5px;
- }
-.leaflet-control-layers-toggle {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);
- width: 36px;
- height: 36px;
- }
-.leaflet-retina .leaflet-control-layers-toggle {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);
- background-size: 26px 26px;
- }
-.leaflet-touch .leaflet-control-layers-toggle {
- width: 44px;
- height: 44px;
- }
-.leaflet-control-layers .leaflet-control-layers-list,
-.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
- display: none;
- }
-.leaflet-control-layers-expanded .leaflet-control-layers-list {
- display: block;
- position: relative;
- }
-.leaflet-control-layers-expanded {
- padding: 6px 10px 6px 6px;
- color: #333;
- background: #fff;
- }
-.leaflet-control-layers-scrollbar {
- overflow-y: scroll;
- overflow-x: hidden;
- padding-right: 5px;
- }
-.leaflet-control-layers-selector {
- margin-top: 2px;
- position: relative;
- top: 1px;
- }
-.leaflet-control-layers label {
- display: block;
- font-size: 13px;
- font-size: 1.08333em;
- }
-.leaflet-control-layers-separator {
- height: 0;
- border-top: 1px solid #ddd;
- margin: 5px -10px 5px -6px;
- }
-
-/* Default icon URLs */
-.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=);
- }
-
-
-/* attribution and scale controls */
-
-.leaflet-container .leaflet-control-attribution {
- background: #fff;
- background: rgba(255, 255, 255, 0.8);
- margin: 0;
- }
-.leaflet-control-attribution,
-.leaflet-control-scale-line {
- padding: 0 5px;
- color: #333;
- line-height: 1.4;
- }
-.leaflet-control-attribution a {
- text-decoration: none;
- }
-.leaflet-control-attribution a:hover,
-.leaflet-control-attribution a:focus {
- text-decoration: underline;
- }
-.leaflet-attribution-flag {
- display: inline !important;
- vertical-align: baseline !important;
- width: 1em;
- height: 0.6669em;
- }
-.leaflet-left .leaflet-control-scale {
- margin-left: 5px;
- }
-.leaflet-bottom .leaflet-control-scale {
- margin-bottom: 5px;
- }
-.leaflet-control-scale-line {
- border: 2px solid #777;
- border-top: none;
- line-height: 1.1;
- padding: 2px 5px 1px;
- white-space: nowrap;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- background: rgba(255, 255, 255, 0.8);
- text-shadow: 1px 1px #fff;
- }
-.leaflet-control-scale-line:not(:first-child) {
- border-top: 2px solid #777;
- border-bottom: none;
- margin-top: -2px;
- }
-.leaflet-control-scale-line:not(:first-child):not(:last-child) {
- border-bottom: 2px solid #777;
- }
-
-.leaflet-touch .leaflet-control-attribution,
-.leaflet-touch .leaflet-control-layers,
-.leaflet-touch .leaflet-bar {
- box-shadow: none;
- }
-.leaflet-touch .leaflet-control-layers,
-.leaflet-touch .leaflet-bar {
- border: 2px solid rgba(0,0,0,0.2);
- background-clip: padding-box;
- }
-
-
-/* popup */
-
-.leaflet-popup {
- position: absolute;
- text-align: center;
- margin-bottom: 20px;
- }
-.leaflet-popup-content-wrapper {
- padding: 1px;
- text-align: left;
- border-radius: 12px;
- }
-.leaflet-popup-content {
- margin: 13px 24px 13px 20px;
- line-height: 1.3;
- font-size: 13px;
- font-size: 1.08333em;
- min-height: 1px;
- }
-.leaflet-popup-content p {
- margin: 17px 0;
- margin: 1.3em 0;
- }
-.leaflet-popup-tip-container {
- width: 40px;
- height: 20px;
- position: absolute;
- left: 50%;
- margin-top: -1px;
- margin-left: -20px;
- overflow: hidden;
- pointer-events: none;
- }
-.leaflet-popup-tip {
- width: 17px;
- height: 17px;
- padding: 1px;
-
- margin: -10px auto 0;
- pointer-events: auto;
-
- -webkit-transform: rotate(45deg);
- -moz-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- transform: rotate(45deg);
- }
-.leaflet-popup-content-wrapper,
-.leaflet-popup-tip {
- background: white;
- color: #333;
- box-shadow: 0 3px 14px rgba(0,0,0,0.4);
- }
-.leaflet-container a.leaflet-popup-close-button {
- position: absolute;
- top: 0;
- right: 0;
- border: none;
- text-align: center;
- width: 24px;
- height: 24px;
- font: 16px/24px Tahoma, Verdana, sans-serif;
- color: #757575;
- text-decoration: none;
- background: transparent;
- }
-.leaflet-container a.leaflet-popup-close-button:hover,
-.leaflet-container a.leaflet-popup-close-button:focus {
- color: #585858;
- }
-.leaflet-popup-scrolled {
- overflow: auto;
- }
-
-.leaflet-oldie .leaflet-popup-content-wrapper {
- -ms-zoom: 1;
- }
-.leaflet-oldie .leaflet-popup-tip {
- width: 24px;
- margin: 0 auto;
-
- -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
- filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
- }
-
-.leaflet-oldie .leaflet-control-zoom,
-.leaflet-oldie .leaflet-control-layers,
-.leaflet-oldie .leaflet-popup-content-wrapper,
-.leaflet-oldie .leaflet-popup-tip {
- border: 1px solid #999;
- }
-
-
-/* div icon */
-
-.leaflet-div-icon {
- background: #fff;
- border: 1px solid #666;
- }
-
-
-/* Tooltip */
-/* Base styles for the element that has a tooltip */
-.leaflet-tooltip {
- position: absolute;
- padding: 6px;
- background-color: #fff;
- border: 1px solid #fff;
- border-radius: 3px;
- color: #222;
- white-space: nowrap;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- pointer-events: none;
- box-shadow: 0 1px 3px rgba(0,0,0,0.4);
- }
-.leaflet-tooltip.leaflet-interactive {
- cursor: pointer;
- pointer-events: auto;
- }
-.leaflet-tooltip-top:before,
-.leaflet-tooltip-bottom:before,
-.leaflet-tooltip-left:before,
-.leaflet-tooltip-right:before {
- position: absolute;
- pointer-events: none;
- border: 6px solid transparent;
- background: transparent;
- content: "";
- }
-
-/* Directions */
-
-.leaflet-tooltip-bottom {
- margin-top: 6px;
-}
-.leaflet-tooltip-top {
- margin-top: -6px;
-}
-.leaflet-tooltip-bottom:before,
-.leaflet-tooltip-top:before {
- left: 50%;
- margin-left: -6px;
- }
-.leaflet-tooltip-top:before {
- bottom: 0;
- margin-bottom: -12px;
- border-top-color: #fff;
- }
-.leaflet-tooltip-bottom:before {
- top: 0;
- margin-top: -12px;
- margin-left: -6px;
- border-bottom-color: #fff;
- }
-.leaflet-tooltip-left {
- margin-left: -6px;
-}
-.leaflet-tooltip-right {
- margin-left: 6px;
-}
-.leaflet-tooltip-left:before,
-.leaflet-tooltip-right:before {
- top: 50%;
- margin-top: -6px;
- }
-.leaflet-tooltip-left:before {
- right: 0;
- margin-right: -12px;
- border-left-color: #fff;
- }
-.leaflet-tooltip-right:before {
- left: 0;
- margin-left: -12px;
- border-right-color: #fff;
- }
-
-/* Printing */
-
-@media print {
- /* Prevent printers from removing background-images of controls. */
- .leaflet-control {
- -webkit-print-color-adjust: exact;
- print-color-adjust: exact;
- }
- }
-:root {
+.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}@media (hover:hover){.maplibregl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}}.maplibregl-ctrl button:not(:disabled):active{background-color:rgba(0,0,0,.05)}.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-globe .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='none' stroke='%23333' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-globe-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='none' stroke='%2333b5e5' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%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:rgba(0,0,0,.05)}.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;white-space:nowrap}.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}[dir=rtl] .maplibregl-popup-anchor-left{flex-direction:row-reverse}[dir=rtl] .maplibregl-popup-anchor-right{flex-direction:row}[dir=rtl] .maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-end}[dir=rtl] .maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-start}[dir=rtl] .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-end}[dir=rtl] .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-start}.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:rgba(0,0,0,.05)}.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}@media (prefers-reduced-motion:reduce){.maplibregl-user-location-dot:before{animation:none}}@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),(pointer:coarse){.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}:root {
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
line-height: 1.5;
font-weight: 400;
diff --git a/src/bowser/dist/index.html b/src/bowser/dist/index.html
index e9f8785..6d5f7eb 100644
--- a/src/bowser/dist/index.html
+++ b/src/bowser/dist/index.html
@@ -11,9 +11,6 @@
-
-
Bowser
diff --git a/src/bowser/dist/index.js b/src/bowser/dist/index.js
index cb6b9c0..9defcb8 100644
--- a/src/bowser/dist/index.js
+++ b/src/bowser/dist/index.js
@@ -1,7 +1,7 @@
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
-var _a, _b;
+var _a2, _b2, _c2;
(function polyfill() {
const relList = document.createElement("link").relList;
if (relList && relList.supports && relList.supports("modulepreload")) {
@@ -56,252 +56,252 @@ var react_production_min = {};
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
-var l$1 = Symbol.for("react.element"), n$1 = Symbol.for("react.portal"), p$2 = Symbol.for("react.fragment"), q$1 = Symbol.for("react.strict_mode"), r = Symbol.for("react.profiler"), t = Symbol.for("react.provider"), u = Symbol.for("react.context"), v$1 = Symbol.for("react.forward_ref"), w = Symbol.for("react.suspense"), x = Symbol.for("react.memo"), y = Symbol.for("react.lazy"), z$1 = Symbol.iterator;
-function A$1(a) {
- if (null === a || "object" !== typeof a) return null;
- a = z$1 && a[z$1] || a["@@iterator"];
- return "function" === typeof a ? a : null;
+var l$2 = Symbol.for("react.element"), n$2 = Symbol.for("react.portal"), p$3 = Symbol.for("react.fragment"), q$2 = Symbol.for("react.strict_mode"), r$1 = Symbol.for("react.profiler"), t$1 = Symbol.for("react.provider"), u$1 = Symbol.for("react.context"), v$2 = Symbol.for("react.forward_ref"), w$1 = Symbol.for("react.suspense"), x$1 = Symbol.for("react.memo"), y$1 = Symbol.for("react.lazy"), z$2 = Symbol.iterator;
+function A$2(a2) {
+ if (null === a2 || "object" !== typeof a2) return null;
+ a2 = z$2 && a2[z$2] || a2["@@iterator"];
+ return "function" === typeof a2 ? a2 : null;
}
-var B$1 = { isMounted: function() {
+var B$2 = { isMounted: function() {
return false;
}, enqueueForceUpdate: function() {
}, enqueueReplaceState: function() {
}, enqueueSetState: function() {
-} }, C$1 = Object.assign, D$1 = {};
-function E$1(a, b, e) {
- this.props = a;
- this.context = b;
- this.refs = D$1;
- this.updater = e || B$1;
-}
-E$1.prototype.isReactComponent = {};
-E$1.prototype.setState = function(a, b) {
- if ("object" !== typeof a && "function" !== typeof a && null != a) throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
- this.updater.enqueueSetState(this, a, b, "setState");
-};
-E$1.prototype.forceUpdate = function(a) {
- this.updater.enqueueForceUpdate(this, a, "forceUpdate");
-};
-function F() {
-}
-F.prototype = E$1.prototype;
-function G$1(a, b, e) {
- this.props = a;
- this.context = b;
- this.refs = D$1;
- this.updater = e || B$1;
-}
-var H$1 = G$1.prototype = new F();
-H$1.constructor = G$1;
-C$1(H$1, E$1.prototype);
-H$1.isPureReactComponent = true;
-var I$1 = Array.isArray, J = Object.prototype.hasOwnProperty, K$1 = { current: null }, L$3 = { key: true, ref: true, __self: true, __source: true };
-function M$1(a, b, e) {
- var d, c = {}, k2 = null, h = null;
- if (null != b) for (d in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k2 = "" + b.key), b) J.call(b, d) && !L$3.hasOwnProperty(d) && (c[d] = b[d]);
- var g = arguments.length - 2;
- if (1 === g) c.children = e;
- else if (1 < g) {
- for (var f2 = Array(g), m2 = 0; m2 < g; m2++) f2[m2] = arguments[m2 + 2];
- c.children = f2;
- }
- if (a && a.defaultProps) for (d in g = a.defaultProps, g) void 0 === c[d] && (c[d] = g[d]);
- return { $$typeof: l$1, type: a, key: k2, ref: h, props: c, _owner: K$1.current };
-}
-function N$1(a, b) {
- return { $$typeof: l$1, type: a.type, key: b, ref: a.ref, props: a.props, _owner: a._owner };
-}
-function O$1(a) {
- return "object" === typeof a && null !== a && a.$$typeof === l$1;
-}
-function escape(a) {
- var b = { "=": "=0", ":": "=2" };
- return "$" + a.replace(/[=:]/g, function(a2) {
- return b[a2];
+} }, C$2 = Object.assign, D$2 = {};
+function E$2(a2, b2, e2) {
+ this.props = a2;
+ this.context = b2;
+ this.refs = D$2;
+ this.updater = e2 || B$2;
+}
+E$2.prototype.isReactComponent = {};
+E$2.prototype.setState = function(a2, b2) {
+ if ("object" !== typeof a2 && "function" !== typeof a2 && null != a2) throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
+ this.updater.enqueueSetState(this, a2, b2, "setState");
+};
+E$2.prototype.forceUpdate = function(a2) {
+ this.updater.enqueueForceUpdate(this, a2, "forceUpdate");
+};
+function F$1() {
+}
+F$1.prototype = E$2.prototype;
+function G$2(a2, b2, e2) {
+ this.props = a2;
+ this.context = b2;
+ this.refs = D$2;
+ this.updater = e2 || B$2;
+}
+var H$2 = G$2.prototype = new F$1();
+H$2.constructor = G$2;
+C$2(H$2, E$2.prototype);
+H$2.isPureReactComponent = true;
+var I$2 = Array.isArray, J$1 = Object.prototype.hasOwnProperty, K$2 = { current: null }, L$2 = { key: true, ref: true, __self: true, __source: true };
+function M$2(a2, b2, e2) {
+ var d2, c2 = {}, k2 = null, h2 = null;
+ if (null != b2) for (d2 in void 0 !== b2.ref && (h2 = b2.ref), void 0 !== b2.key && (k2 = "" + b2.key), b2) J$1.call(b2, d2) && !L$2.hasOwnProperty(d2) && (c2[d2] = b2[d2]);
+ var g2 = arguments.length - 2;
+ if (1 === g2) c2.children = e2;
+ else if (1 < g2) {
+ for (var f2 = Array(g2), m2 = 0; m2 < g2; m2++) f2[m2] = arguments[m2 + 2];
+ c2.children = f2;
+ }
+ if (a2 && a2.defaultProps) for (d2 in g2 = a2.defaultProps, g2) void 0 === c2[d2] && (c2[d2] = g2[d2]);
+ return { $$typeof: l$2, type: a2, key: k2, ref: h2, props: c2, _owner: K$2.current };
+}
+function N$2(a2, b2) {
+ return { $$typeof: l$2, type: a2.type, key: b2, ref: a2.ref, props: a2.props, _owner: a2._owner };
+}
+function O$2(a2) {
+ return "object" === typeof a2 && null !== a2 && a2.$$typeof === l$2;
+}
+function escape$1(a2) {
+ var b2 = { "=": "=0", ":": "=2" };
+ return "$" + a2.replace(/[=:]/g, function(a3) {
+ return b2[a3];
});
}
-var P$1 = /\/+/g;
-function Q$1(a, b) {
- return "object" === typeof a && null !== a && null != a.key ? escape("" + a.key) : b.toString(36);
+var P$2 = /\/+/g;
+function Q$2(a2, b2) {
+ return "object" === typeof a2 && null !== a2 && null != a2.key ? escape$1("" + a2.key) : b2.toString(36);
}
-function R$1(a, b, e, d, c) {
- var k2 = typeof a;
- if ("undefined" === k2 || "boolean" === k2) a = null;
- var h = false;
- if (null === a) h = true;
+function R$2(a2, b2, e2, d2, c2) {
+ var k2 = typeof a2;
+ if ("undefined" === k2 || "boolean" === k2) a2 = null;
+ var h2 = false;
+ if (null === a2) h2 = true;
else switch (k2) {
case "string":
case "number":
- h = true;
+ h2 = true;
break;
case "object":
- switch (a.$$typeof) {
- case l$1:
- case n$1:
- h = true;
+ switch (a2.$$typeof) {
+ case l$2:
+ case n$2:
+ h2 = true;
}
}
- if (h) return h = a, c = c(h), a = "" === d ? "." + Q$1(h, 0) : d, I$1(c) ? (e = "", null != a && (e = a.replace(P$1, "$&/") + "/"), R$1(c, b, e, "", function(a2) {
- return a2;
- })) : null != c && (O$1(c) && (c = N$1(c, e + (!c.key || h && h.key === c.key ? "" : ("" + c.key).replace(P$1, "$&/") + "/") + a)), b.push(c)), 1;
- h = 0;
- d = "" === d ? "." : d + ":";
- if (I$1(a)) for (var g = 0; g < a.length; g++) {
- k2 = a[g];
- var f2 = d + Q$1(k2, g);
- h += R$1(k2, b, e, f2, c);
- }
- else if (f2 = A$1(a), "function" === typeof f2) for (a = f2.call(a), g = 0; !(k2 = a.next()).done; ) k2 = k2.value, f2 = d + Q$1(k2, g++), h += R$1(k2, b, e, f2, c);
- else if ("object" === k2) throw b = String(a), Error("Objects are not valid as a React child (found: " + ("[object Object]" === b ? "object with keys {" + Object.keys(a).join(", ") + "}" : b) + "). If you meant to render a collection of children, use an array instead.");
- return h;
-}
-function S$1(a, b, e) {
- if (null == a) return a;
- var d = [], c = 0;
- R$1(a, d, "", "", function(a2) {
- return b.call(e, a2, c++);
+ if (h2) return h2 = a2, c2 = c2(h2), a2 = "" === d2 ? "." + Q$2(h2, 0) : d2, I$2(c2) ? (e2 = "", null != a2 && (e2 = a2.replace(P$2, "$&/") + "/"), R$2(c2, b2, e2, "", function(a3) {
+ return a3;
+ })) : null != c2 && (O$2(c2) && (c2 = N$2(c2, e2 + (!c2.key || h2 && h2.key === c2.key ? "" : ("" + c2.key).replace(P$2, "$&/") + "/") + a2)), b2.push(c2)), 1;
+ h2 = 0;
+ d2 = "" === d2 ? "." : d2 + ":";
+ if (I$2(a2)) for (var g2 = 0; g2 < a2.length; g2++) {
+ k2 = a2[g2];
+ var f2 = d2 + Q$2(k2, g2);
+ h2 += R$2(k2, b2, e2, f2, c2);
+ }
+ else if (f2 = A$2(a2), "function" === typeof f2) for (a2 = f2.call(a2), g2 = 0; !(k2 = a2.next()).done; ) k2 = k2.value, f2 = d2 + Q$2(k2, g2++), h2 += R$2(k2, b2, e2, f2, c2);
+ else if ("object" === k2) throw b2 = String(a2), Error("Objects are not valid as a React child (found: " + ("[object Object]" === b2 ? "object with keys {" + Object.keys(a2).join(", ") + "}" : b2) + "). If you meant to render a collection of children, use an array instead.");
+ return h2;
+}
+function S$2(a2, b2, e2) {
+ if (null == a2) return a2;
+ var d2 = [], c2 = 0;
+ R$2(a2, d2, "", "", function(a3) {
+ return b2.call(e2, a3, c2++);
});
- return d;
-}
-function T$1(a) {
- if (-1 === a._status) {
- var b = a._result;
- b = b();
- b.then(function(b2) {
- if (0 === a._status || -1 === a._status) a._status = 1, a._result = b2;
- }, function(b2) {
- if (0 === a._status || -1 === a._status) a._status = 2, a._result = b2;
+ return d2;
+}
+function T$2(a2) {
+ if (-1 === a2._status) {
+ var b2 = a2._result;
+ b2 = b2();
+ b2.then(function(b3) {
+ if (0 === a2._status || -1 === a2._status) a2._status = 1, a2._result = b3;
+ }, function(b3) {
+ if (0 === a2._status || -1 === a2._status) a2._status = 2, a2._result = b3;
});
- -1 === a._status && (a._status = 0, a._result = b);
+ -1 === a2._status && (a2._status = 0, a2._result = b2);
}
- if (1 === a._status) return a._result.default;
- throw a._result;
+ if (1 === a2._status) return a2._result.default;
+ throw a2._result;
}
-var U$1 = { current: null }, V$1 = { transition: null }, W$1 = { ReactCurrentDispatcher: U$1, ReactCurrentBatchConfig: V$1, ReactCurrentOwner: K$1 };
-function X$1() {
+var U$2 = { current: null }, V$2 = { transition: null }, W$2 = { ReactCurrentDispatcher: U$2, ReactCurrentBatchConfig: V$2, ReactCurrentOwner: K$2 };
+function X$2() {
throw Error("act(...) is not supported in production builds of React.");
}
-react_production_min.Children = { map: S$1, forEach: function(a, b, e) {
- S$1(a, function() {
- b.apply(this, arguments);
- }, e);
-}, count: function(a) {
- var b = 0;
- S$1(a, function() {
- b++;
+react_production_min.Children = { map: S$2, forEach: function(a2, b2, e2) {
+ S$2(a2, function() {
+ b2.apply(this, arguments);
+ }, e2);
+}, count: function(a2) {
+ var b2 = 0;
+ S$2(a2, function() {
+ b2++;
});
- return b;
-}, toArray: function(a) {
- return S$1(a, function(a2) {
- return a2;
+ return b2;
+}, toArray: function(a2) {
+ return S$2(a2, function(a3) {
+ return a3;
}) || [];
-}, only: function(a) {
- if (!O$1(a)) throw Error("React.Children.only expected to receive a single React element child.");
- return a;
+}, only: function(a2) {
+ if (!O$2(a2)) throw Error("React.Children.only expected to receive a single React element child.");
+ return a2;
} };
-react_production_min.Component = E$1;
-react_production_min.Fragment = p$2;
-react_production_min.Profiler = r;
-react_production_min.PureComponent = G$1;
-react_production_min.StrictMode = q$1;
-react_production_min.Suspense = w;
-react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W$1;
-react_production_min.act = X$1;
-react_production_min.cloneElement = function(a, b, e) {
- if (null === a || void 0 === a) throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + a + ".");
- var d = C$1({}, a.props), c = a.key, k2 = a.ref, h = a._owner;
- if (null != b) {
- void 0 !== b.ref && (k2 = b.ref, h = K$1.current);
- void 0 !== b.key && (c = "" + b.key);
- if (a.type && a.type.defaultProps) var g = a.type.defaultProps;
- for (f2 in b) J.call(b, f2) && !L$3.hasOwnProperty(f2) && (d[f2] = void 0 === b[f2] && void 0 !== g ? g[f2] : b[f2]);
+react_production_min.Component = E$2;
+react_production_min.Fragment = p$3;
+react_production_min.Profiler = r$1;
+react_production_min.PureComponent = G$2;
+react_production_min.StrictMode = q$2;
+react_production_min.Suspense = w$1;
+react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W$2;
+react_production_min.act = X$2;
+react_production_min.cloneElement = function(a2, b2, e2) {
+ if (null === a2 || void 0 === a2) throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + a2 + ".");
+ var d2 = C$2({}, a2.props), c2 = a2.key, k2 = a2.ref, h2 = a2._owner;
+ if (null != b2) {
+ void 0 !== b2.ref && (k2 = b2.ref, h2 = K$2.current);
+ void 0 !== b2.key && (c2 = "" + b2.key);
+ if (a2.type && a2.type.defaultProps) var g2 = a2.type.defaultProps;
+ for (f2 in b2) J$1.call(b2, f2) && !L$2.hasOwnProperty(f2) && (d2[f2] = void 0 === b2[f2] && void 0 !== g2 ? g2[f2] : b2[f2]);
}
var f2 = arguments.length - 2;
- if (1 === f2) d.children = e;
+ if (1 === f2) d2.children = e2;
else if (1 < f2) {
- g = Array(f2);
- for (var m2 = 0; m2 < f2; m2++) g[m2] = arguments[m2 + 2];
- d.children = g;
+ g2 = Array(f2);
+ for (var m2 = 0; m2 < f2; m2++) g2[m2] = arguments[m2 + 2];
+ d2.children = g2;
}
- return { $$typeof: l$1, type: a.type, key: c, ref: k2, props: d, _owner: h };
+ return { $$typeof: l$2, type: a2.type, key: c2, ref: k2, props: d2, _owner: h2 };
};
-react_production_min.createContext = function(a) {
- a = { $$typeof: u, _currentValue: a, _currentValue2: a, _threadCount: 0, Provider: null, Consumer: null, _defaultValue: null, _globalName: null };
- a.Provider = { $$typeof: t, _context: a };
- return a.Consumer = a;
+react_production_min.createContext = function(a2) {
+ a2 = { $$typeof: u$1, _currentValue: a2, _currentValue2: a2, _threadCount: 0, Provider: null, Consumer: null, _defaultValue: null, _globalName: null };
+ a2.Provider = { $$typeof: t$1, _context: a2 };
+ return a2.Consumer = a2;
};
-react_production_min.createElement = M$1;
-react_production_min.createFactory = function(a) {
- var b = M$1.bind(null, a);
- b.type = a;
- return b;
+react_production_min.createElement = M$2;
+react_production_min.createFactory = function(a2) {
+ var b2 = M$2.bind(null, a2);
+ b2.type = a2;
+ return b2;
};
react_production_min.createRef = function() {
return { current: null };
};
-react_production_min.forwardRef = function(a) {
- return { $$typeof: v$1, render: a };
+react_production_min.forwardRef = function(a2) {
+ return { $$typeof: v$2, render: a2 };
};
-react_production_min.isValidElement = O$1;
-react_production_min.lazy = function(a) {
- return { $$typeof: y, _payload: { _status: -1, _result: a }, _init: T$1 };
+react_production_min.isValidElement = O$2;
+react_production_min.lazy = function(a2) {
+ return { $$typeof: y$1, _payload: { _status: -1, _result: a2 }, _init: T$2 };
};
-react_production_min.memo = function(a, b) {
- return { $$typeof: x, type: a, compare: void 0 === b ? null : b };
+react_production_min.memo = function(a2, b2) {
+ return { $$typeof: x$1, type: a2, compare: void 0 === b2 ? null : b2 };
};
-react_production_min.startTransition = function(a) {
- var b = V$1.transition;
- V$1.transition = {};
+react_production_min.startTransition = function(a2) {
+ var b2 = V$2.transition;
+ V$2.transition = {};
try {
- a();
+ a2();
} finally {
- V$1.transition = b;
+ V$2.transition = b2;
}
};
-react_production_min.unstable_act = X$1;
-react_production_min.useCallback = function(a, b) {
- return U$1.current.useCallback(a, b);
+react_production_min.unstable_act = X$2;
+react_production_min.useCallback = function(a2, b2) {
+ return U$2.current.useCallback(a2, b2);
};
-react_production_min.useContext = function(a) {
- return U$1.current.useContext(a);
+react_production_min.useContext = function(a2) {
+ return U$2.current.useContext(a2);
};
react_production_min.useDebugValue = function() {
};
-react_production_min.useDeferredValue = function(a) {
- return U$1.current.useDeferredValue(a);
+react_production_min.useDeferredValue = function(a2) {
+ return U$2.current.useDeferredValue(a2);
};
-react_production_min.useEffect = function(a, b) {
- return U$1.current.useEffect(a, b);
+react_production_min.useEffect = function(a2, b2) {
+ return U$2.current.useEffect(a2, b2);
};
react_production_min.useId = function() {
- return U$1.current.useId();
+ return U$2.current.useId();
};
-react_production_min.useImperativeHandle = function(a, b, e) {
- return U$1.current.useImperativeHandle(a, b, e);
+react_production_min.useImperativeHandle = function(a2, b2, e2) {
+ return U$2.current.useImperativeHandle(a2, b2, e2);
};
-react_production_min.useInsertionEffect = function(a, b) {
- return U$1.current.useInsertionEffect(a, b);
+react_production_min.useInsertionEffect = function(a2, b2) {
+ return U$2.current.useInsertionEffect(a2, b2);
};
-react_production_min.useLayoutEffect = function(a, b) {
- return U$1.current.useLayoutEffect(a, b);
+react_production_min.useLayoutEffect = function(a2, b2) {
+ return U$2.current.useLayoutEffect(a2, b2);
};
-react_production_min.useMemo = function(a, b) {
- return U$1.current.useMemo(a, b);
+react_production_min.useMemo = function(a2, b2) {
+ return U$2.current.useMemo(a2, b2);
};
-react_production_min.useReducer = function(a, b, e) {
- return U$1.current.useReducer(a, b, e);
+react_production_min.useReducer = function(a2, b2, e2) {
+ return U$2.current.useReducer(a2, b2, e2);
};
-react_production_min.useRef = function(a) {
- return U$1.current.useRef(a);
+react_production_min.useRef = function(a2) {
+ return U$2.current.useRef(a2);
};
-react_production_min.useState = function(a) {
- return U$1.current.useState(a);
+react_production_min.useState = function(a2) {
+ return U$2.current.useState(a2);
};
-react_production_min.useSyncExternalStore = function(a, b, e) {
- return U$1.current.useSyncExternalStore(a, b, e);
+react_production_min.useSyncExternalStore = function(a2, b2, e2) {
+ return U$2.current.useSyncExternalStore(a2, b2, e2);
};
react_production_min.useTransition = function() {
- return U$1.current.useTransition();
+ return U$2.current.useTransition();
};
react_production_min.version = "18.3.1";
{
@@ -318,19 +318,19 @@ const React = /* @__PURE__ */ getDefaultExportFromCjs(reactExports);
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
-var f = reactExports, k = Symbol.for("react.element"), l = Symbol.for("react.fragment"), m$1 = Object.prototype.hasOwnProperty, n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p$1 = { key: true, ref: true, __self: true, __source: true };
-function q(c, a, g) {
- var b, d = {}, e = null, h = null;
- void 0 !== g && (e = "" + g);
- void 0 !== a.key && (e = "" + a.key);
- void 0 !== a.ref && (h = a.ref);
- for (b in a) m$1.call(a, b) && !p$1.hasOwnProperty(b) && (d[b] = a[b]);
- if (c && c.defaultProps) for (b in a = c.defaultProps, a) void 0 === d[b] && (d[b] = a[b]);
- return { $$typeof: k, type: c, key: e, ref: h, props: d, _owner: n.current };
-}
-reactJsxRuntime_production_min.Fragment = l;
-reactJsxRuntime_production_min.jsx = q;
-reactJsxRuntime_production_min.jsxs = q;
+var f$1 = reactExports, k$1 = Symbol.for("react.element"), l$1 = Symbol.for("react.fragment"), m$2 = Object.prototype.hasOwnProperty, n$1 = f$1.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p$2 = { key: true, ref: true, __self: true, __source: true };
+function q$1(c2, a2, g2) {
+ var b2, d2 = {}, e2 = null, h2 = null;
+ void 0 !== g2 && (e2 = "" + g2);
+ void 0 !== a2.key && (e2 = "" + a2.key);
+ void 0 !== a2.ref && (h2 = a2.ref);
+ for (b2 in a2) m$2.call(a2, b2) && !p$2.hasOwnProperty(b2) && (d2[b2] = a2[b2]);
+ if (c2 && c2.defaultProps) for (b2 in a2 = c2.defaultProps, a2) void 0 === d2[b2] && (d2[b2] = a2[b2]);
+ return { $$typeof: k$1, type: c2, key: e2, ref: h2, props: d2, _owner: n$1.current };
+}
+reactJsxRuntime_production_min.Fragment = l$1;
+reactJsxRuntime_production_min.jsx = q$1;
+reactJsxRuntime_production_min.jsxs = q$1;
{
jsxRuntime.exports = reactJsxRuntime_production_min;
}
@@ -350,35 +350,35 @@ var scheduler_production_min = {};
* LICENSE file in the root directory of this source tree.
*/
(function(exports) {
- function f2(a, b) {
- var c = a.length;
- a.push(b);
- a: for (; 0 < c; ) {
- var d = c - 1 >>> 1, e = a[d];
- if (0 < g(e, b)) a[d] = b, a[c] = e, c = d;
+ function f2(a2, b2) {
+ var c2 = a2.length;
+ a2.push(b2);
+ a: for (; 0 < c2; ) {
+ var d2 = c2 - 1 >>> 1, e2 = a2[d2];
+ if (0 < g2(e2, b2)) a2[d2] = b2, a2[c2] = e2, c2 = d2;
else break a;
}
}
- function h(a) {
- return 0 === a.length ? null : a[0];
- }
- function k2(a) {
- if (0 === a.length) return null;
- var b = a[0], c = a.pop();
- if (c !== b) {
- a[0] = c;
- a: for (var d = 0, e = a.length, w2 = e >>> 1; d < w2; ) {
- var m2 = 2 * (d + 1) - 1, C2 = a[m2], n2 = m2 + 1, x2 = a[n2];
- if (0 > g(C2, c)) n2 < e && 0 > g(x2, C2) ? (a[d] = x2, a[n2] = c, d = n2) : (a[d] = C2, a[m2] = c, d = m2);
- else if (n2 < e && 0 > g(x2, c)) a[d] = x2, a[n2] = c, d = n2;
+ function h2(a2) {
+ return 0 === a2.length ? null : a2[0];
+ }
+ function k2(a2) {
+ if (0 === a2.length) return null;
+ var b2 = a2[0], c2 = a2.pop();
+ if (c2 !== b2) {
+ a2[0] = c2;
+ a: for (var d2 = 0, e2 = a2.length, w2 = e2 >>> 1; d2 < w2; ) {
+ var m2 = 2 * (d2 + 1) - 1, C2 = a2[m2], n2 = m2 + 1, x2 = a2[n2];
+ if (0 > g2(C2, c2)) n2 < e2 && 0 > g2(x2, C2) ? (a2[d2] = x2, a2[n2] = c2, d2 = n2) : (a2[d2] = C2, a2[m2] = c2, d2 = m2);
+ else if (n2 < e2 && 0 > g2(x2, c2)) a2[d2] = x2, a2[n2] = c2, d2 = n2;
else break a;
}
}
- return b;
+ return b2;
}
- function g(a, b) {
- var c = a.sortIndex - b.sortIndex;
- return 0 !== c ? c : a.id - b.id;
+ function g2(a2, b2) {
+ var c2 = a2.sortIndex - b2.sortIndex;
+ return 0 !== c2 ? c2 : a2.id - b2.id;
}
if ("object" === typeof performance && "function" === typeof performance.now) {
var l2 = performance;
@@ -393,51 +393,51 @@ var scheduler_production_min = {};
}
var r2 = [], t2 = [], u2 = 1, v2 = null, y2 = 3, z2 = false, A2 = false, B2 = false, D2 = "function" === typeof setTimeout ? setTimeout : null, E2 = "function" === typeof clearTimeout ? clearTimeout : null, F2 = "undefined" !== typeof setImmediate ? setImmediate : null;
"undefined" !== typeof navigator && void 0 !== navigator.scheduling && void 0 !== navigator.scheduling.isInputPending && navigator.scheduling.isInputPending.bind(navigator.scheduling);
- function G2(a) {
- for (var b = h(t2); null !== b; ) {
- if (null === b.callback) k2(t2);
- else if (b.startTime <= a) k2(t2), b.sortIndex = b.expirationTime, f2(r2, b);
+ function G2(a2) {
+ for (var b2 = h2(t2); null !== b2; ) {
+ if (null === b2.callback) k2(t2);
+ else if (b2.startTime <= a2) k2(t2), b2.sortIndex = b2.expirationTime, f2(r2, b2);
else break;
- b = h(t2);
+ b2 = h2(t2);
}
}
- function H2(a) {
+ function H2(a2) {
B2 = false;
- G2(a);
- if (!A2) if (null !== h(r2)) A2 = true, I2(J2);
+ G2(a2);
+ if (!A2) if (null !== h2(r2)) A2 = true, I2(J2);
else {
- var b = h(t2);
- null !== b && K2(H2, b.startTime - a);
+ var b2 = h2(t2);
+ null !== b2 && K2(H2, b2.startTime - a2);
}
}
- function J2(a, b) {
+ function J2(a2, b2) {
A2 = false;
B2 && (B2 = false, E2(L2), L2 = -1);
z2 = true;
- var c = y2;
+ var c2 = y2;
try {
- G2(b);
- for (v2 = h(r2); null !== v2 && (!(v2.expirationTime > b) || a && !M2()); ) {
- var d = v2.callback;
- if ("function" === typeof d) {
+ G2(b2);
+ for (v2 = h2(r2); null !== v2 && (!(v2.expirationTime > b2) || a2 && !M2()); ) {
+ var d2 = v2.callback;
+ if ("function" === typeof d2) {
v2.callback = null;
y2 = v2.priorityLevel;
- var e = d(v2.expirationTime <= b);
- b = exports.unstable_now();
- "function" === typeof e ? v2.callback = e : v2 === h(r2) && k2(r2);
- G2(b);
+ var e2 = d2(v2.expirationTime <= b2);
+ b2 = exports.unstable_now();
+ "function" === typeof e2 ? v2.callback = e2 : v2 === h2(r2) && k2(r2);
+ G2(b2);
} else k2(r2);
- v2 = h(r2);
+ v2 = h2(r2);
}
if (null !== v2) var w2 = true;
else {
- var m2 = h(t2);
- null !== m2 && K2(H2, m2.startTime - b);
+ var m2 = h2(t2);
+ null !== m2 && K2(H2, m2.startTime - b2);
w2 = false;
}
return w2;
} finally {
- v2 = null, y2 = c, z2 = false;
+ v2 = null, y2 = c2, z2 = false;
}
}
var N2 = false, O2 = null, L2 = -1, P2 = 5, Q2 = -1;
@@ -446,13 +446,13 @@ var scheduler_production_min = {};
}
function R2() {
if (null !== O2) {
- var a = exports.unstable_now();
- Q2 = a;
- var b = true;
+ var a2 = exports.unstable_now();
+ Q2 = a2;
+ var b2 = true;
try {
- b = O2(true, a);
+ b2 = O2(true, a2);
} finally {
- b ? S2() : (N2 = false, O2 = null);
+ b2 ? S2() : (N2 = false, O2 = null);
}
} else N2 = false;
}
@@ -469,14 +469,14 @@ var scheduler_production_min = {};
} else S2 = function() {
D2(R2, 0);
};
- function I2(a) {
- O2 = a;
+ function I2(a2) {
+ O2 = a2;
N2 || (N2 = true, S2());
}
- function K2(a, b) {
+ function K2(a2, b2) {
L2 = D2(function() {
- a(exports.unstable_now());
- }, b);
+ a2(exports.unstable_now());
+ }, b2);
}
exports.unstable_IdlePriority = 5;
exports.unstable_ImmediatePriority = 1;
@@ -484,45 +484,45 @@ var scheduler_production_min = {};
exports.unstable_NormalPriority = 3;
exports.unstable_Profiling = null;
exports.unstable_UserBlockingPriority = 2;
- exports.unstable_cancelCallback = function(a) {
- a.callback = null;
+ exports.unstable_cancelCallback = function(a2) {
+ a2.callback = null;
};
exports.unstable_continueExecution = function() {
A2 || z2 || (A2 = true, I2(J2));
};
- exports.unstable_forceFrameRate = function(a) {
- 0 > a || 125 < a ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : P2 = 0 < a ? Math.floor(1e3 / a) : 5;
+ exports.unstable_forceFrameRate = function(a2) {
+ 0 > a2 || 125 < a2 ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : P2 = 0 < a2 ? Math.floor(1e3 / a2) : 5;
};
exports.unstable_getCurrentPriorityLevel = function() {
return y2;
};
exports.unstable_getFirstCallbackNode = function() {
- return h(r2);
+ return h2(r2);
};
- exports.unstable_next = function(a) {
+ exports.unstable_next = function(a2) {
switch (y2) {
case 1:
case 2:
case 3:
- var b = 3;
+ var b2 = 3;
break;
default:
- b = y2;
+ b2 = y2;
}
- var c = y2;
- y2 = b;
+ var c2 = y2;
+ y2 = b2;
try {
- return a();
+ return a2();
} finally {
- y2 = c;
+ y2 = c2;
}
};
exports.unstable_pauseExecution = function() {
};
exports.unstable_requestPaint = function() {
};
- exports.unstable_runWithPriority = function(a, b) {
- switch (a) {
+ exports.unstable_runWithPriority = function(a2, b2) {
+ switch (a2) {
case 1:
case 2:
case 3:
@@ -530,50 +530,50 @@ var scheduler_production_min = {};
case 5:
break;
default:
- a = 3;
+ a2 = 3;
}
- var c = y2;
- y2 = a;
+ var c2 = y2;
+ y2 = a2;
try {
- return b();
+ return b2();
} finally {
- y2 = c;
+ y2 = c2;
}
};
- exports.unstable_scheduleCallback = function(a, b, c) {
- var d = exports.unstable_now();
- "object" === typeof c && null !== c ? (c = c.delay, c = "number" === typeof c && 0 < c ? d + c : d) : c = d;
- switch (a) {
+ exports.unstable_scheduleCallback = function(a2, b2, c2) {
+ var d2 = exports.unstable_now();
+ "object" === typeof c2 && null !== c2 ? (c2 = c2.delay, c2 = "number" === typeof c2 && 0 < c2 ? d2 + c2 : d2) : c2 = d2;
+ switch (a2) {
case 1:
- var e = -1;
+ var e2 = -1;
break;
case 2:
- e = 250;
+ e2 = 250;
break;
case 5:
- e = 1073741823;
+ e2 = 1073741823;
break;
case 4:
- e = 1e4;
+ e2 = 1e4;
break;
default:
- e = 5e3;
+ e2 = 5e3;
}
- e = c + e;
- a = { id: u2++, callback: b, priorityLevel: a, startTime: c, expirationTime: e, sortIndex: -1 };
- c > d ? (a.sortIndex = c, f2(t2, a), null === h(r2) && a === h(t2) && (B2 ? (E2(L2), L2 = -1) : B2 = true, K2(H2, c - d))) : (a.sortIndex = e, f2(r2, a), A2 || z2 || (A2 = true, I2(J2)));
- return a;
+ e2 = c2 + e2;
+ a2 = { id: u2++, callback: b2, priorityLevel: a2, startTime: c2, expirationTime: e2, sortIndex: -1 };
+ c2 > d2 ? (a2.sortIndex = c2, f2(t2, a2), null === h2(r2) && a2 === h2(t2) && (B2 ? (E2(L2), L2 = -1) : B2 = true, K2(H2, c2 - d2))) : (a2.sortIndex = e2, f2(r2, a2), A2 || z2 || (A2 = true, I2(J2)));
+ return a2;
};
exports.unstable_shouldYield = M2;
- exports.unstable_wrapCallback = function(a) {
- var b = y2;
+ exports.unstable_wrapCallback = function(a2) {
+ var b2 = y2;
return function() {
- var c = y2;
- y2 = b;
+ var c2 = y2;
+ y2 = b2;
try {
- return a.apply(this, arguments);
+ return a2.apply(this, arguments);
} finally {
- y2 = c;
+ y2 = c2;
}
};
};
@@ -592,203 +592,203 @@ var schedulerExports = scheduler.exports;
* LICENSE file in the root directory of this source tree.
*/
var aa = reactExports, ca = schedulerExports;
-function p(a) {
- for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++) b += "&args[]=" + encodeURIComponent(arguments[c]);
- return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
+function p$1(a2) {
+ for (var b2 = "https://reactjs.org/docs/error-decoder.html?invariant=" + a2, c2 = 1; c2 < arguments.length; c2++) b2 += "&args[]=" + encodeURIComponent(arguments[c2]);
+ return "Minified React error #" + a2 + "; visit " + b2 + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
}
var da = /* @__PURE__ */ new Set(), ea = {};
-function fa(a, b) {
- ha(a, b);
- ha(a + "Capture", b);
+function fa(a2, b2) {
+ ha(a2, b2);
+ ha(a2 + "Capture", b2);
}
-function ha(a, b) {
- ea[a] = b;
- for (a = 0; a < b.length; a++) da.add(b[a]);
+function ha(a2, b2) {
+ ea[a2] = b2;
+ for (a2 = 0; a2 < b2.length; a2++) da.add(b2[a2]);
}
var ia = !("undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement), ja = Object.prototype.hasOwnProperty, ka = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, la = {}, ma = {};
-function oa(a) {
- if (ja.call(ma, a)) return true;
- if (ja.call(la, a)) return false;
- if (ka.test(a)) return ma[a] = true;
- la[a] = true;
+function oa(a2) {
+ if (ja.call(ma, a2)) return true;
+ if (ja.call(la, a2)) return false;
+ if (ka.test(a2)) return ma[a2] = true;
+ la[a2] = true;
return false;
}
-function pa(a, b, c, d) {
- if (null !== c && 0 === c.type) return false;
- switch (typeof b) {
+function pa(a2, b2, c2, d2) {
+ if (null !== c2 && 0 === c2.type) return false;
+ switch (typeof b2) {
case "function":
case "symbol":
return true;
case "boolean":
- if (d) return false;
- if (null !== c) return !c.acceptsBooleans;
- a = a.toLowerCase().slice(0, 5);
- return "data-" !== a && "aria-" !== a;
+ if (d2) return false;
+ if (null !== c2) return !c2.acceptsBooleans;
+ a2 = a2.toLowerCase().slice(0, 5);
+ return "data-" !== a2 && "aria-" !== a2;
default:
return false;
}
}
-function qa(a, b, c, d) {
- if (null === b || "undefined" === typeof b || pa(a, b, c, d)) return true;
- if (d) return false;
- if (null !== c) switch (c.type) {
+function qa(a2, b2, c2, d2) {
+ if (null === b2 || "undefined" === typeof b2 || pa(a2, b2, c2, d2)) return true;
+ if (d2) return false;
+ if (null !== c2) switch (c2.type) {
case 3:
- return !b;
+ return !b2;
case 4:
- return false === b;
+ return false === b2;
case 5:
- return isNaN(b);
+ return isNaN(b2);
case 6:
- return isNaN(b) || 1 > b;
+ return isNaN(b2) || 1 > b2;
}
return false;
}
-function v(a, b, c, d, e, f2, g) {
- this.acceptsBooleans = 2 === b || 3 === b || 4 === b;
- this.attributeName = d;
- this.attributeNamespace = e;
- this.mustUseProperty = c;
- this.propertyName = a;
- this.type = b;
+function v$1(a2, b2, c2, d2, e2, f2, g2) {
+ this.acceptsBooleans = 2 === b2 || 3 === b2 || 4 === b2;
+ this.attributeName = d2;
+ this.attributeNamespace = e2;
+ this.mustUseProperty = c2;
+ this.propertyName = a2;
+ this.type = b2;
this.sanitizeURL = f2;
- this.removeEmptyString = g;
+ this.removeEmptyString = g2;
}
-var z = {};
-"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a) {
- z[a] = new v(a, 0, false, a, null, false, false);
+var z$1 = {};
+"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 0, false, a2, null, false, false);
});
-[["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(a) {
- var b = a[0];
- z[b] = new v(b, 1, false, a[1], null, false, false);
+[["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(a2) {
+ var b2 = a2[0];
+ z$1[b2] = new v$1(b2, 1, false, a2[1], null, false, false);
});
-["contentEditable", "draggable", "spellCheck", "value"].forEach(function(a) {
- z[a] = new v(a, 2, false, a.toLowerCase(), null, false, false);
+["contentEditable", "draggable", "spellCheck", "value"].forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 2, false, a2.toLowerCase(), null, false, false);
});
-["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(a) {
- z[a] = new v(a, 2, false, a, null, false, false);
+["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 2, false, a2, null, false, false);
});
-"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a) {
- z[a] = new v(a, 3, false, a.toLowerCase(), null, false, false);
+"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 3, false, a2.toLowerCase(), null, false, false);
});
-["checked", "multiple", "muted", "selected"].forEach(function(a) {
- z[a] = new v(a, 3, true, a, null, false, false);
+["checked", "multiple", "muted", "selected"].forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 3, true, a2, null, false, false);
});
-["capture", "download"].forEach(function(a) {
- z[a] = new v(a, 4, false, a, null, false, false);
+["capture", "download"].forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 4, false, a2, null, false, false);
});
-["cols", "rows", "size", "span"].forEach(function(a) {
- z[a] = new v(a, 6, false, a, null, false, false);
+["cols", "rows", "size", "span"].forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 6, false, a2, null, false, false);
});
-["rowSpan", "start"].forEach(function(a) {
- z[a] = new v(a, 5, false, a.toLowerCase(), null, false, false);
+["rowSpan", "start"].forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 5, false, a2.toLowerCase(), null, false, false);
});
var ra = /[\-:]([a-z])/g;
-function sa(a) {
- return a[1].toUpperCase();
+function sa(a2) {
+ return a2[1].toUpperCase();
}
-"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a) {
- var b = a.replace(
+"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a2) {
+ var b2 = a2.replace(
ra,
sa
);
- z[b] = new v(b, 1, false, a, null, false, false);
+ z$1[b2] = new v$1(b2, 1, false, a2, null, false, false);
});
-"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a) {
- var b = a.replace(ra, sa);
- z[b] = new v(b, 1, false, a, "http://www.w3.org/1999/xlink", false, false);
+"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a2) {
+ var b2 = a2.replace(ra, sa);
+ z$1[b2] = new v$1(b2, 1, false, a2, "http://www.w3.org/1999/xlink", false, false);
});
-["xml:base", "xml:lang", "xml:space"].forEach(function(a) {
- var b = a.replace(ra, sa);
- z[b] = new v(b, 1, false, a, "http://www.w3.org/XML/1998/namespace", false, false);
+["xml:base", "xml:lang", "xml:space"].forEach(function(a2) {
+ var b2 = a2.replace(ra, sa);
+ z$1[b2] = new v$1(b2, 1, false, a2, "http://www.w3.org/XML/1998/namespace", false, false);
});
-["tabIndex", "crossOrigin"].forEach(function(a) {
- z[a] = new v(a, 1, false, a.toLowerCase(), null, false, false);
+["tabIndex", "crossOrigin"].forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 1, false, a2.toLowerCase(), null, false, false);
});
-z.xlinkHref = new v("xlinkHref", 1, false, "xlink:href", "http://www.w3.org/1999/xlink", true, false);
-["src", "href", "action", "formAction"].forEach(function(a) {
- z[a] = new v(a, 1, false, a.toLowerCase(), null, true, true);
+z$1.xlinkHref = new v$1("xlinkHref", 1, false, "xlink:href", "http://www.w3.org/1999/xlink", true, false);
+["src", "href", "action", "formAction"].forEach(function(a2) {
+ z$1[a2] = new v$1(a2, 1, false, a2.toLowerCase(), null, true, true);
});
-function ta(a, b, c, d) {
- var e = z.hasOwnProperty(b) ? z[b] : null;
- if (null !== e ? 0 !== e.type : d || !(2 < b.length) || "o" !== b[0] && "O" !== b[0] || "n" !== b[1] && "N" !== b[1]) qa(b, c, e, d) && (c = null), d || null === e ? oa(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, "" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? false : "" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && true === c ? "" : "" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c)));
+function ta(a2, b2, c2, d2) {
+ var e2 = z$1.hasOwnProperty(b2) ? z$1[b2] : null;
+ if (null !== e2 ? 0 !== e2.type : d2 || !(2 < b2.length) || "o" !== b2[0] && "O" !== b2[0] || "n" !== b2[1] && "N" !== b2[1]) qa(b2, c2, e2, d2) && (c2 = null), d2 || null === e2 ? oa(b2) && (null === c2 ? a2.removeAttribute(b2) : a2.setAttribute(b2, "" + c2)) : e2.mustUseProperty ? a2[e2.propertyName] = null === c2 ? 3 === e2.type ? false : "" : c2 : (b2 = e2.attributeName, d2 = e2.attributeNamespace, null === c2 ? a2.removeAttribute(b2) : (e2 = e2.type, c2 = 3 === e2 || 4 === e2 && true === c2 ? "" : "" + c2, d2 ? a2.setAttributeNS(d2, b2, c2) : a2.setAttribute(b2, c2)));
}
var ua = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, va = Symbol.for("react.element"), wa = Symbol.for("react.portal"), ya = Symbol.for("react.fragment"), za = Symbol.for("react.strict_mode"), Aa = Symbol.for("react.profiler"), Ba = Symbol.for("react.provider"), Ca = Symbol.for("react.context"), Da = Symbol.for("react.forward_ref"), Ea = Symbol.for("react.suspense"), Fa = Symbol.for("react.suspense_list"), Ga = Symbol.for("react.memo"), Ha = Symbol.for("react.lazy");
var Ia = Symbol.for("react.offscreen");
var Ja = Symbol.iterator;
-function Ka(a) {
- if (null === a || "object" !== typeof a) return null;
- a = Ja && a[Ja] || a["@@iterator"];
- return "function" === typeof a ? a : null;
+function Ka(a2) {
+ if (null === a2 || "object" !== typeof a2) return null;
+ a2 = Ja && a2[Ja] || a2["@@iterator"];
+ return "function" === typeof a2 ? a2 : null;
}
-var A = Object.assign, La;
-function Ma(a) {
+var A$1 = Object.assign, La;
+function Ma(a2) {
if (void 0 === La) try {
throw Error();
- } catch (c) {
- var b = c.stack.trim().match(/\n( *(at )?)/);
- La = b && b[1] || "";
+ } catch (c2) {
+ var b2 = c2.stack.trim().match(/\n( *(at )?)/);
+ La = b2 && b2[1] || "";
}
- return "\n" + La + a;
+ return "\n" + La + a2;
}
var Na = false;
-function Oa(a, b) {
- if (!a || Na) return "";
+function Oa(a2, b2) {
+ if (!a2 || Na) return "";
Na = true;
- var c = Error.prepareStackTrace;
+ var c2 = Error.prepareStackTrace;
Error.prepareStackTrace = void 0;
try {
- if (b) if (b = function() {
+ if (b2) if (b2 = function() {
throw Error();
- }, Object.defineProperty(b.prototype, "props", { set: function() {
+ }, Object.defineProperty(b2.prototype, "props", { set: function() {
throw Error();
} }), "object" === typeof Reflect && Reflect.construct) {
try {
- Reflect.construct(b, []);
+ Reflect.construct(b2, []);
} catch (l2) {
- var d = l2;
+ var d2 = l2;
}
- Reflect.construct(a, [], b);
+ Reflect.construct(a2, [], b2);
} else {
try {
- b.call();
+ b2.call();
} catch (l2) {
- d = l2;
+ d2 = l2;
}
- a.call(b.prototype);
+ a2.call(b2.prototype);
}
else {
try {
throw Error();
} catch (l2) {
- d = l2;
+ d2 = l2;
}
- a();
+ a2();
}
} catch (l2) {
- if (l2 && d && "string" === typeof l2.stack) {
- for (var e = l2.stack.split("\n"), f2 = d.stack.split("\n"), g = e.length - 1, h = f2.length - 1; 1 <= g && 0 <= h && e[g] !== f2[h]; ) h--;
- for (; 1 <= g && 0 <= h; g--, h--) if (e[g] !== f2[h]) {
- if (1 !== g || 1 !== h) {
+ if (l2 && d2 && "string" === typeof l2.stack) {
+ for (var e2 = l2.stack.split("\n"), f2 = d2.stack.split("\n"), g2 = e2.length - 1, h2 = f2.length - 1; 1 <= g2 && 0 <= h2 && e2[g2] !== f2[h2]; ) h2--;
+ for (; 1 <= g2 && 0 <= h2; g2--, h2--) if (e2[g2] !== f2[h2]) {
+ if (1 !== g2 || 1 !== h2) {
do
- if (g--, h--, 0 > h || e[g] !== f2[h]) {
- var k2 = "\n" + e[g].replace(" at new ", " at ");
- a.displayName && k2.includes("") && (k2 = k2.replace("", a.displayName));
+ if (g2--, h2--, 0 > h2 || e2[g2] !== f2[h2]) {
+ var k2 = "\n" + e2[g2].replace(" at new ", " at ");
+ a2.displayName && k2.includes("") && (k2 = k2.replace("", a2.displayName));
return k2;
}
- while (1 <= g && 0 <= h);
+ while (1 <= g2 && 0 <= h2);
}
break;
}
}
} finally {
- Na = false, Error.prepareStackTrace = c;
+ Na = false, Error.prepareStackTrace = c2;
}
- return (a = a ? a.displayName || a.name : "") ? Ma(a) : "";
+ return (a2 = a2 ? a2.displayName || a2.name : "") ? Ma(a2) : "";
}
-function Pa(a) {
- switch (a.tag) {
+function Pa(a2) {
+ switch (a2.tag) {
case 5:
- return Ma(a.type);
+ return Ma(a2.type);
case 16:
return Ma("Lazy");
case 13:
@@ -798,20 +798,20 @@ function Pa(a) {
case 0:
case 2:
case 15:
- return a = Oa(a.type, false), a;
+ return a2 = Oa(a2.type, false), a2;
case 11:
- return a = Oa(a.type.render, false), a;
+ return a2 = Oa(a2.type.render, false), a2;
case 1:
- return a = Oa(a.type, true), a;
+ return a2 = Oa(a2.type, true), a2;
default:
return "";
}
}
-function Qa(a) {
- if (null == a) return null;
- if ("function" === typeof a) return a.displayName || a.name || null;
- if ("string" === typeof a) return a;
- switch (a) {
+function Qa(a2) {
+ if (null == a2) return null;
+ if ("function" === typeof a2) return a2.displayName || a2.name || null;
+ if ("string" === typeof a2) return a2;
+ switch (a2) {
case ya:
return "Fragment";
case wa:
@@ -825,45 +825,45 @@ function Qa(a) {
case Fa:
return "SuspenseList";
}
- if ("object" === typeof a) switch (a.$$typeof) {
+ if ("object" === typeof a2) switch (a2.$$typeof) {
case Ca:
- return (a.displayName || "Context") + ".Consumer";
+ return (a2.displayName || "Context") + ".Consumer";
case Ba:
- return (a._context.displayName || "Context") + ".Provider";
+ return (a2._context.displayName || "Context") + ".Provider";
case Da:
- var b = a.render;
- a = a.displayName;
- a || (a = b.displayName || b.name || "", a = "" !== a ? "ForwardRef(" + a + ")" : "ForwardRef");
- return a;
+ var b2 = a2.render;
+ a2 = a2.displayName;
+ a2 || (a2 = b2.displayName || b2.name || "", a2 = "" !== a2 ? "ForwardRef(" + a2 + ")" : "ForwardRef");
+ return a2;
case Ga:
- return b = a.displayName || null, null !== b ? b : Qa(a.type) || "Memo";
+ return b2 = a2.displayName || null, null !== b2 ? b2 : Qa(a2.type) || "Memo";
case Ha:
- b = a._payload;
- a = a._init;
+ b2 = a2._payload;
+ a2 = a2._init;
try {
- return Qa(a(b));
- } catch (c) {
+ return Qa(a2(b2));
+ } catch (c2) {
}
}
return null;
}
-function Ra(a) {
- var b = a.type;
- switch (a.tag) {
+function Ra(a2) {
+ var b2 = a2.type;
+ switch (a2.tag) {
case 24:
return "Cache";
case 9:
- return (b.displayName || "Context") + ".Consumer";
+ return (b2.displayName || "Context") + ".Consumer";
case 10:
- return (b._context.displayName || "Context") + ".Provider";
+ return (b2._context.displayName || "Context") + ".Provider";
case 18:
return "DehydratedFragment";
case 11:
- return a = b.render, a = a.displayName || a.name || "", b.displayName || ("" !== a ? "ForwardRef(" + a + ")" : "ForwardRef");
+ return a2 = b2.render, a2 = a2.displayName || a2.name || "", b2.displayName || ("" !== a2 ? "ForwardRef(" + a2 + ")" : "ForwardRef");
case 7:
return "Fragment";
case 5:
- return b;
+ return b2;
case 4:
return "Portal";
case 3:
@@ -871,9 +871,9 @@ function Ra(a) {
case 6:
return "Text";
case 16:
- return Qa(b);
+ return Qa(b2);
case 8:
- return b === za ? "StrictMode" : "Mode";
+ return b2 === za ? "StrictMode" : "Mode";
case 22:
return "Offscreen";
case 12:
@@ -892,167 +892,167 @@ function Ra(a) {
case 2:
case 14:
case 15:
- if ("function" === typeof b) return b.displayName || b.name || null;
- if ("string" === typeof b) return b;
+ if ("function" === typeof b2) return b2.displayName || b2.name || null;
+ if ("string" === typeof b2) return b2;
}
return null;
}
-function Sa(a) {
- switch (typeof a) {
+function Sa(a2) {
+ switch (typeof a2) {
case "boolean":
case "number":
case "string":
case "undefined":
- return a;
+ return a2;
case "object":
- return a;
+ return a2;
default:
return "";
}
}
-function Ta(a) {
- var b = a.type;
- return (a = a.nodeName) && "input" === a.toLowerCase() && ("checkbox" === b || "radio" === b);
+function Ta(a2) {
+ var b2 = a2.type;
+ return (a2 = a2.nodeName) && "input" === a2.toLowerCase() && ("checkbox" === b2 || "radio" === b2);
}
-function Ua(a) {
- var b = Ta(a) ? "checked" : "value", c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b), d = "" + a[b];
- if (!a.hasOwnProperty(b) && "undefined" !== typeof c && "function" === typeof c.get && "function" === typeof c.set) {
- var e = c.get, f2 = c.set;
- Object.defineProperty(a, b, { configurable: true, get: function() {
- return e.call(this);
- }, set: function(a2) {
- d = "" + a2;
- f2.call(this, a2);
+function Ua(a2) {
+ var b2 = Ta(a2) ? "checked" : "value", c2 = Object.getOwnPropertyDescriptor(a2.constructor.prototype, b2), d2 = "" + a2[b2];
+ if (!a2.hasOwnProperty(b2) && "undefined" !== typeof c2 && "function" === typeof c2.get && "function" === typeof c2.set) {
+ var e2 = c2.get, f2 = c2.set;
+ Object.defineProperty(a2, b2, { configurable: true, get: function() {
+ return e2.call(this);
+ }, set: function(a3) {
+ d2 = "" + a3;
+ f2.call(this, a3);
} });
- Object.defineProperty(a, b, { enumerable: c.enumerable });
+ Object.defineProperty(a2, b2, { enumerable: c2.enumerable });
return { getValue: function() {
- return d;
- }, setValue: function(a2) {
- d = "" + a2;
+ return d2;
+ }, setValue: function(a3) {
+ d2 = "" + a3;
}, stopTracking: function() {
- a._valueTracker = null;
- delete a[b];
+ a2._valueTracker = null;
+ delete a2[b2];
} };
}
}
-function Va(a) {
- a._valueTracker || (a._valueTracker = Ua(a));
+function Va(a2) {
+ a2._valueTracker || (a2._valueTracker = Ua(a2));
}
-function Wa(a) {
- if (!a) return false;
- var b = a._valueTracker;
- if (!b) return true;
- var c = b.getValue();
- var d = "";
- a && (d = Ta(a) ? a.checked ? "true" : "false" : a.value);
- a = d;
- return a !== c ? (b.setValue(a), true) : false;
+function Wa(a2) {
+ if (!a2) return false;
+ var b2 = a2._valueTracker;
+ if (!b2) return true;
+ var c2 = b2.getValue();
+ var d2 = "";
+ a2 && (d2 = Ta(a2) ? a2.checked ? "true" : "false" : a2.value);
+ a2 = d2;
+ return a2 !== c2 ? (b2.setValue(a2), true) : false;
}
-function Xa(a) {
- a = a || ("undefined" !== typeof document ? document : void 0);
- if ("undefined" === typeof a) return null;
+function Xa(a2) {
+ a2 = a2 || ("undefined" !== typeof document ? document : void 0);
+ if ("undefined" === typeof a2) return null;
try {
- return a.activeElement || a.body;
- } catch (b) {
- return a.body;
- }
-}
-function Ya(a, b) {
- var c = b.checked;
- return A({}, b, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: null != c ? c : a._wrapperState.initialChecked });
-}
-function Za(a, b) {
- var c = null == b.defaultValue ? "" : b.defaultValue, d = null != b.checked ? b.checked : b.defaultChecked;
- c = Sa(null != b.value ? b.value : c);
- a._wrapperState = { initialChecked: d, initialValue: c, controlled: "checkbox" === b.type || "radio" === b.type ? null != b.checked : null != b.value };
-}
-function ab(a, b) {
- b = b.checked;
- null != b && ta(a, "checked", b, false);
-}
-function bb(a, b) {
- ab(a, b);
- var c = Sa(b.value), d = b.type;
- if (null != c) if ("number" === d) {
- if (0 === c && "" === a.value || a.value != c) a.value = "" + c;
- } else a.value !== "" + c && (a.value = "" + c);
- else if ("submit" === d || "reset" === d) {
- a.removeAttribute("value");
- return;
+ return a2.activeElement || a2.body;
+ } catch (b2) {
+ return a2.body;
}
- b.hasOwnProperty("value") ? cb(a, b.type, c) : b.hasOwnProperty("defaultValue") && cb(a, b.type, Sa(b.defaultValue));
- null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);
}
-function db(a, b, c) {
- if (b.hasOwnProperty("value") || b.hasOwnProperty("defaultValue")) {
- var d = b.type;
- if (!("submit" !== d && "reset" !== d || void 0 !== b.value && null !== b.value)) return;
- b = "" + a._wrapperState.initialValue;
- c || b === a.value || (a.value = b);
- a.defaultValue = b;
+function Ya(a2, b2) {
+ var c2 = b2.checked;
+ return A$1({}, b2, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: null != c2 ? c2 : a2._wrapperState.initialChecked });
+}
+function Za(a2, b2) {
+ var c2 = null == b2.defaultValue ? "" : b2.defaultValue, d2 = null != b2.checked ? b2.checked : b2.defaultChecked;
+ c2 = Sa(null != b2.value ? b2.value : c2);
+ a2._wrapperState = { initialChecked: d2, initialValue: c2, controlled: "checkbox" === b2.type || "radio" === b2.type ? null != b2.checked : null != b2.value };
+}
+function ab(a2, b2) {
+ b2 = b2.checked;
+ null != b2 && ta(a2, "checked", b2, false);
+}
+function bb(a2, b2) {
+ ab(a2, b2);
+ var c2 = Sa(b2.value), d2 = b2.type;
+ if (null != c2) if ("number" === d2) {
+ if (0 === c2 && "" === a2.value || a2.value != c2) a2.value = "" + c2;
+ } else a2.value !== "" + c2 && (a2.value = "" + c2);
+ else if ("submit" === d2 || "reset" === d2) {
+ a2.removeAttribute("value");
+ return;
}
- c = a.name;
- "" !== c && (a.name = "");
- a.defaultChecked = !!a._wrapperState.initialChecked;
- "" !== c && (a.name = c);
+ b2.hasOwnProperty("value") ? cb(a2, b2.type, c2) : b2.hasOwnProperty("defaultValue") && cb(a2, b2.type, Sa(b2.defaultValue));
+ null == b2.checked && null != b2.defaultChecked && (a2.defaultChecked = !!b2.defaultChecked);
+}
+function db(a2, b2, c2) {
+ if (b2.hasOwnProperty("value") || b2.hasOwnProperty("defaultValue")) {
+ var d2 = b2.type;
+ if (!("submit" !== d2 && "reset" !== d2 || void 0 !== b2.value && null !== b2.value)) return;
+ b2 = "" + a2._wrapperState.initialValue;
+ c2 || b2 === a2.value || (a2.value = b2);
+ a2.defaultValue = b2;
+ }
+ c2 = a2.name;
+ "" !== c2 && (a2.name = "");
+ a2.defaultChecked = !!a2._wrapperState.initialChecked;
+ "" !== c2 && (a2.name = c2);
}
-function cb(a, b, c) {
- if ("number" !== b || Xa(a.ownerDocument) !== a) null == c ? a.defaultValue = "" + a._wrapperState.initialValue : a.defaultValue !== "" + c && (a.defaultValue = "" + c);
+function cb(a2, b2, c2) {
+ if ("number" !== b2 || Xa(a2.ownerDocument) !== a2) null == c2 ? a2.defaultValue = "" + a2._wrapperState.initialValue : a2.defaultValue !== "" + c2 && (a2.defaultValue = "" + c2);
}
var eb = Array.isArray;
-function fb(a, b, c, d) {
- a = a.options;
- if (b) {
- b = {};
- for (var e = 0; e < c.length; e++) b["$" + c[e]] = true;
- for (c = 0; c < a.length; c++) e = b.hasOwnProperty("$" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = true);
+function fb(a2, b2, c2, d2) {
+ a2 = a2.options;
+ if (b2) {
+ b2 = {};
+ for (var e2 = 0; e2 < c2.length; e2++) b2["$" + c2[e2]] = true;
+ for (c2 = 0; c2 < a2.length; c2++) e2 = b2.hasOwnProperty("$" + a2[c2].value), a2[c2].selected !== e2 && (a2[c2].selected = e2), e2 && d2 && (a2[c2].defaultSelected = true);
} else {
- c = "" + Sa(c);
- b = null;
- for (e = 0; e < a.length; e++) {
- if (a[e].value === c) {
- a[e].selected = true;
- d && (a[e].defaultSelected = true);
+ c2 = "" + Sa(c2);
+ b2 = null;
+ for (e2 = 0; e2 < a2.length; e2++) {
+ if (a2[e2].value === c2) {
+ a2[e2].selected = true;
+ d2 && (a2[e2].defaultSelected = true);
return;
}
- null !== b || a[e].disabled || (b = a[e]);
+ null !== b2 || a2[e2].disabled || (b2 = a2[e2]);
}
- null !== b && (b.selected = true);
+ null !== b2 && (b2.selected = true);
}
}
-function gb(a, b) {
- if (null != b.dangerouslySetInnerHTML) throw Error(p(91));
- return A({}, b, { value: void 0, defaultValue: void 0, children: "" + a._wrapperState.initialValue });
+function gb(a2, b2) {
+ if (null != b2.dangerouslySetInnerHTML) throw Error(p$1(91));
+ return A$1({}, b2, { value: void 0, defaultValue: void 0, children: "" + a2._wrapperState.initialValue });
}
-function hb(a, b) {
- var c = b.value;
- if (null == c) {
- c = b.children;
- b = b.defaultValue;
- if (null != c) {
- if (null != b) throw Error(p(92));
- if (eb(c)) {
- if (1 < c.length) throw Error(p(93));
- c = c[0];
+function hb(a2, b2) {
+ var c2 = b2.value;
+ if (null == c2) {
+ c2 = b2.children;
+ b2 = b2.defaultValue;
+ if (null != c2) {
+ if (null != b2) throw Error(p$1(92));
+ if (eb(c2)) {
+ if (1 < c2.length) throw Error(p$1(93));
+ c2 = c2[0];
}
- b = c;
+ b2 = c2;
}
- null == b && (b = "");
- c = b;
+ null == b2 && (b2 = "");
+ c2 = b2;
}
- a._wrapperState = { initialValue: Sa(c) };
+ a2._wrapperState = { initialValue: Sa(c2) };
}
-function ib(a, b) {
- var c = Sa(b.value), d = Sa(b.defaultValue);
- null != c && (c = "" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));
- null != d && (a.defaultValue = "" + d);
+function ib(a2, b2) {
+ var c2 = Sa(b2.value), d2 = Sa(b2.defaultValue);
+ null != c2 && (c2 = "" + c2, c2 !== a2.value && (a2.value = c2), null == b2.defaultValue && a2.defaultValue !== c2 && (a2.defaultValue = c2));
+ null != d2 && (a2.defaultValue = "" + d2);
}
-function jb(a) {
- var b = a.textContent;
- b === a._wrapperState.initialValue && "" !== b && null !== b && (a.value = b);
+function jb(a2) {
+ var b2 = a2.textContent;
+ b2 === a2._wrapperState.initialValue && "" !== b2 && null !== b2 && (a2.value = b2);
}
-function kb(a) {
- switch (a) {
+function kb(a2) {
+ switch (a2) {
case "svg":
return "http://www.w3.org/2000/svg";
case "math":
@@ -1061,33 +1061,33 @@ function kb(a) {
return "http://www.w3.org/1999/xhtml";
}
}
-function lb(a, b) {
- return null == a || "http://www.w3.org/1999/xhtml" === a ? kb(b) : "http://www.w3.org/2000/svg" === a && "foreignObject" === b ? "http://www.w3.org/1999/xhtml" : a;
+function lb(a2, b2) {
+ return null == a2 || "http://www.w3.org/1999/xhtml" === a2 ? kb(b2) : "http://www.w3.org/2000/svg" === a2 && "foreignObject" === b2 ? "http://www.w3.org/1999/xhtml" : a2;
}
-var mb, nb = function(a) {
- return "undefined" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function(b, c, d, e) {
+var mb, nb = function(a2) {
+ return "undefined" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function(b2, c2, d2, e2) {
MSApp.execUnsafeLocalFunction(function() {
- return a(b, c, d, e);
+ return a2(b2, c2, d2, e2);
});
- } : a;
-}(function(a, b) {
- if ("http://www.w3.org/2000/svg" !== a.namespaceURI || "innerHTML" in a) a.innerHTML = b;
+ } : a2;
+}(function(a2, b2) {
+ if ("http://www.w3.org/2000/svg" !== a2.namespaceURI || "innerHTML" in a2) a2.innerHTML = b2;
else {
mb = mb || document.createElement("div");
- mb.innerHTML = "" + b.valueOf().toString() + " ";
- for (b = mb.firstChild; a.firstChild; ) a.removeChild(a.firstChild);
- for (; b.firstChild; ) a.appendChild(b.firstChild);
+ mb.innerHTML = "" + b2.valueOf().toString() + " ";
+ for (b2 = mb.firstChild; a2.firstChild; ) a2.removeChild(a2.firstChild);
+ for (; b2.firstChild; ) a2.appendChild(b2.firstChild);
}
});
-function ob(a, b) {
- if (b) {
- var c = a.firstChild;
- if (c && c === a.lastChild && 3 === c.nodeType) {
- c.nodeValue = b;
+function ob(a2, b2) {
+ if (b2) {
+ var c2 = a2.firstChild;
+ if (c2 && c2 === a2.lastChild && 3 === c2.nodeType) {
+ c2.nodeValue = b2;
return;
}
}
- a.textContent = b;
+ a2.textContent = b2;
}
var pb = {
animationIterationCount: true,
@@ -1134,37 +1134,37 @@ var pb = {
strokeOpacity: true,
strokeWidth: true
}, qb = ["Webkit", "ms", "Moz", "O"];
-Object.keys(pb).forEach(function(a) {
- qb.forEach(function(b) {
- b = b + a.charAt(0).toUpperCase() + a.substring(1);
- pb[b] = pb[a];
+Object.keys(pb).forEach(function(a2) {
+ qb.forEach(function(b2) {
+ b2 = b2 + a2.charAt(0).toUpperCase() + a2.substring(1);
+ pb[b2] = pb[a2];
});
});
-function rb(a, b, c) {
- return null == b || "boolean" === typeof b || "" === b ? "" : c || "number" !== typeof b || 0 === b || pb.hasOwnProperty(a) && pb[a] ? ("" + b).trim() : b + "px";
+function rb(a2, b2, c2) {
+ return null == b2 || "boolean" === typeof b2 || "" === b2 ? "" : c2 || "number" !== typeof b2 || 0 === b2 || pb.hasOwnProperty(a2) && pb[a2] ? ("" + b2).trim() : b2 + "px";
}
-function sb(a, b) {
- a = a.style;
- for (var c in b) if (b.hasOwnProperty(c)) {
- var d = 0 === c.indexOf("--"), e = rb(c, b[c], d);
- "float" === c && (c = "cssFloat");
- d ? a.setProperty(c, e) : a[c] = e;
+function sb(a2, b2) {
+ a2 = a2.style;
+ for (var c2 in b2) if (b2.hasOwnProperty(c2)) {
+ var d2 = 0 === c2.indexOf("--"), e2 = rb(c2, b2[c2], d2);
+ "float" === c2 && (c2 = "cssFloat");
+ d2 ? a2.setProperty(c2, e2) : a2[c2] = e2;
}
}
-var tb = A({ menuitem: true }, { area: true, base: true, br: true, col: true, embed: true, hr: true, img: true, input: true, keygen: true, link: true, meta: true, param: true, source: true, track: true, wbr: true });
-function ub(a, b) {
- if (b) {
- if (tb[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(p(137, a));
- if (null != b.dangerouslySetInnerHTML) {
- if (null != b.children) throw Error(p(60));
- if ("object" !== typeof b.dangerouslySetInnerHTML || !("__html" in b.dangerouslySetInnerHTML)) throw Error(p(61));
+var tb = A$1({ menuitem: true }, { area: true, base: true, br: true, col: true, embed: true, hr: true, img: true, input: true, keygen: true, link: true, meta: true, param: true, source: true, track: true, wbr: true });
+function ub(a2, b2) {
+ if (b2) {
+ if (tb[a2] && (null != b2.children || null != b2.dangerouslySetInnerHTML)) throw Error(p$1(137, a2));
+ if (null != b2.dangerouslySetInnerHTML) {
+ if (null != b2.children) throw Error(p$1(60));
+ if ("object" !== typeof b2.dangerouslySetInnerHTML || !("__html" in b2.dangerouslySetInnerHTML)) throw Error(p$1(61));
}
- if (null != b.style && "object" !== typeof b.style) throw Error(p(62));
+ if (null != b2.style && "object" !== typeof b2.style) throw Error(p$1(62));
}
}
-function vb(a, b) {
- if (-1 === a.indexOf("-")) return "string" === typeof b.is;
- switch (a) {
+function vb(a2, b2) {
+ if (-1 === a2.indexOf("-")) return "string" === typeof b2.is;
+ switch (a2) {
case "annotation-xml":
case "color-profile":
case "font-face":
@@ -1179,52 +1179,52 @@ function vb(a, b) {
}
}
var wb = null;
-function xb(a) {
- a = a.target || a.srcElement || window;
- a.correspondingUseElement && (a = a.correspondingUseElement);
- return 3 === a.nodeType ? a.parentNode : a;
+function xb(a2) {
+ a2 = a2.target || a2.srcElement || window;
+ a2.correspondingUseElement && (a2 = a2.correspondingUseElement);
+ return 3 === a2.nodeType ? a2.parentNode : a2;
}
var yb = null, zb = null, Ab = null;
-function Bb(a) {
- if (a = Cb(a)) {
- if ("function" !== typeof yb) throw Error(p(280));
- var b = a.stateNode;
- b && (b = Db(b), yb(a.stateNode, a.type, b));
+function Bb(a2) {
+ if (a2 = Cb(a2)) {
+ if ("function" !== typeof yb) throw Error(p$1(280));
+ var b2 = a2.stateNode;
+ b2 && (b2 = Db(b2), yb(a2.stateNode, a2.type, b2));
}
}
-function Eb(a) {
- zb ? Ab ? Ab.push(a) : Ab = [a] : zb = a;
+function Eb(a2) {
+ zb ? Ab ? Ab.push(a2) : Ab = [a2] : zb = a2;
}
function Fb() {
if (zb) {
- var a = zb, b = Ab;
+ var a2 = zb, b2 = Ab;
Ab = zb = null;
- Bb(a);
- if (b) for (a = 0; a < b.length; a++) Bb(b[a]);
+ Bb(a2);
+ if (b2) for (a2 = 0; a2 < b2.length; a2++) Bb(b2[a2]);
}
}
-function Gb(a, b) {
- return a(b);
+function Gb(a2, b2) {
+ return a2(b2);
}
function Hb() {
}
var Ib = false;
-function Jb(a, b, c) {
- if (Ib) return a(b, c);
+function Jb(a2, b2, c2) {
+ if (Ib) return a2(b2, c2);
Ib = true;
try {
- return Gb(a, b, c);
+ return Gb(a2, b2, c2);
} finally {
if (Ib = false, null !== zb || null !== Ab) Hb(), Fb();
}
}
-function Kb(a, b) {
- var c = a.stateNode;
- if (null === c) return null;
- var d = Db(c);
- if (null === d) return null;
- c = d[b];
- a: switch (b) {
+function Kb(a2, b2) {
+ var c2 = a2.stateNode;
+ if (null === c2) return null;
+ var d2 = Db(c2);
+ if (null === d2) return null;
+ c2 = d2[b2];
+ a: switch (b2) {
case "onClick":
case "onClickCapture":
case "onDoubleClick":
@@ -1236,15 +1236,15 @@ function Kb(a, b) {
case "onMouseUp":
case "onMouseUpCapture":
case "onMouseEnter":
- (d = !d.disabled) || (a = a.type, d = !("button" === a || "input" === a || "select" === a || "textarea" === a));
- a = !d;
+ (d2 = !d2.disabled) || (a2 = a2.type, d2 = !("button" === a2 || "input" === a2 || "select" === a2 || "textarea" === a2));
+ a2 = !d2;
break a;
default:
- a = false;
+ a2 = false;
}
- if (a) return null;
- if (c && "function" !== typeof c) throw Error(p(231, b, typeof c));
- return c;
+ if (a2) return null;
+ if (c2 && "function" !== typeof c2) throw Error(p$1(231, b2, typeof c2));
+ return c2;
}
var Lb = false;
if (ia) try {
@@ -1254,155 +1254,155 @@ if (ia) try {
} });
window.addEventListener("test", Mb, Mb);
window.removeEventListener("test", Mb, Mb);
-} catch (a) {
+} catch (a2) {
Lb = false;
}
-function Nb(a, b, c, d, e, f2, g, h, k2) {
+function Nb(a2, b2, c2, d2, e2, f2, g2, h2, k2) {
var l2 = Array.prototype.slice.call(arguments, 3);
try {
- b.apply(c, l2);
+ b2.apply(c2, l2);
} catch (m2) {
this.onError(m2);
}
}
-var Ob = false, Pb = null, Qb = false, Rb = null, Sb = { onError: function(a) {
+var Ob = false, Pb = null, Qb = false, Rb = null, Sb = { onError: function(a2) {
Ob = true;
- Pb = a;
+ Pb = a2;
} };
-function Tb(a, b, c, d, e, f2, g, h, k2) {
+function Tb(a2, b2, c2, d2, e2, f2, g2, h2, k2) {
Ob = false;
Pb = null;
Nb.apply(Sb, arguments);
}
-function Ub(a, b, c, d, e, f2, g, h, k2) {
+function Ub(a2, b2, c2, d2, e2, f2, g2, h2, k2) {
Tb.apply(this, arguments);
if (Ob) {
if (Ob) {
var l2 = Pb;
Ob = false;
Pb = null;
- } else throw Error(p(198));
+ } else throw Error(p$1(198));
Qb || (Qb = true, Rb = l2);
}
}
-function Vb(a) {
- var b = a, c = a;
- if (a.alternate) for (; b.return; ) b = b.return;
+function Vb(a2) {
+ var b2 = a2, c2 = a2;
+ if (a2.alternate) for (; b2.return; ) b2 = b2.return;
else {
- a = b;
+ a2 = b2;
do
- b = a, 0 !== (b.flags & 4098) && (c = b.return), a = b.return;
- while (a);
+ b2 = a2, 0 !== (b2.flags & 4098) && (c2 = b2.return), a2 = b2.return;
+ while (a2);
}
- return 3 === b.tag ? c : null;
+ return 3 === b2.tag ? c2 : null;
}
-function Wb(a) {
- if (13 === a.tag) {
- var b = a.memoizedState;
- null === b && (a = a.alternate, null !== a && (b = a.memoizedState));
- if (null !== b) return b.dehydrated;
+function Wb(a2) {
+ if (13 === a2.tag) {
+ var b2 = a2.memoizedState;
+ null === b2 && (a2 = a2.alternate, null !== a2 && (b2 = a2.memoizedState));
+ if (null !== b2) return b2.dehydrated;
}
return null;
}
-function Xb(a) {
- if (Vb(a) !== a) throw Error(p(188));
+function Xb(a2) {
+ if (Vb(a2) !== a2) throw Error(p$1(188));
}
-function Yb(a) {
- var b = a.alternate;
- if (!b) {
- b = Vb(a);
- if (null === b) throw Error(p(188));
- return b !== a ? null : a;
- }
- for (var c = a, d = b; ; ) {
- var e = c.return;
- if (null === e) break;
- var f2 = e.alternate;
+function Yb(a2) {
+ var b2 = a2.alternate;
+ if (!b2) {
+ b2 = Vb(a2);
+ if (null === b2) throw Error(p$1(188));
+ return b2 !== a2 ? null : a2;
+ }
+ for (var c2 = a2, d2 = b2; ; ) {
+ var e2 = c2.return;
+ if (null === e2) break;
+ var f2 = e2.alternate;
if (null === f2) {
- d = e.return;
- if (null !== d) {
- c = d;
+ d2 = e2.return;
+ if (null !== d2) {
+ c2 = d2;
continue;
}
break;
}
- if (e.child === f2.child) {
- for (f2 = e.child; f2; ) {
- if (f2 === c) return Xb(e), a;
- if (f2 === d) return Xb(e), b;
+ if (e2.child === f2.child) {
+ for (f2 = e2.child; f2; ) {
+ if (f2 === c2) return Xb(e2), a2;
+ if (f2 === d2) return Xb(e2), b2;
f2 = f2.sibling;
}
- throw Error(p(188));
+ throw Error(p$1(188));
}
- if (c.return !== d.return) c = e, d = f2;
+ if (c2.return !== d2.return) c2 = e2, d2 = f2;
else {
- for (var g = false, h = e.child; h; ) {
- if (h === c) {
- g = true;
- c = e;
- d = f2;
+ for (var g2 = false, h2 = e2.child; h2; ) {
+ if (h2 === c2) {
+ g2 = true;
+ c2 = e2;
+ d2 = f2;
break;
}
- if (h === d) {
- g = true;
- d = e;
- c = f2;
+ if (h2 === d2) {
+ g2 = true;
+ d2 = e2;
+ c2 = f2;
break;
}
- h = h.sibling;
+ h2 = h2.sibling;
}
- if (!g) {
- for (h = f2.child; h; ) {
- if (h === c) {
- g = true;
- c = f2;
- d = e;
+ if (!g2) {
+ for (h2 = f2.child; h2; ) {
+ if (h2 === c2) {
+ g2 = true;
+ c2 = f2;
+ d2 = e2;
break;
}
- if (h === d) {
- g = true;
- d = f2;
- c = e;
+ if (h2 === d2) {
+ g2 = true;
+ d2 = f2;
+ c2 = e2;
break;
}
- h = h.sibling;
+ h2 = h2.sibling;
}
- if (!g) throw Error(p(189));
+ if (!g2) throw Error(p$1(189));
}
}
- if (c.alternate !== d) throw Error(p(190));
+ if (c2.alternate !== d2) throw Error(p$1(190));
}
- if (3 !== c.tag) throw Error(p(188));
- return c.stateNode.current === c ? a : b;
+ if (3 !== c2.tag) throw Error(p$1(188));
+ return c2.stateNode.current === c2 ? a2 : b2;
}
-function Zb(a) {
- a = Yb(a);
- return null !== a ? $b(a) : null;
+function Zb(a2) {
+ a2 = Yb(a2);
+ return null !== a2 ? $b(a2) : null;
}
-function $b(a) {
- if (5 === a.tag || 6 === a.tag) return a;
- for (a = a.child; null !== a; ) {
- var b = $b(a);
- if (null !== b) return b;
- a = a.sibling;
+function $b(a2) {
+ if (5 === a2.tag || 6 === a2.tag) return a2;
+ for (a2 = a2.child; null !== a2; ) {
+ var b2 = $b(a2);
+ if (null !== b2) return b2;
+ a2 = a2.sibling;
}
return null;
}
-var ac = ca.unstable_scheduleCallback, bc = ca.unstable_cancelCallback, cc = ca.unstable_shouldYield, dc = ca.unstable_requestPaint, B = ca.unstable_now, ec = ca.unstable_getCurrentPriorityLevel, fc = ca.unstable_ImmediatePriority, gc = ca.unstable_UserBlockingPriority, hc = ca.unstable_NormalPriority, ic = ca.unstable_LowPriority, jc = ca.unstable_IdlePriority, kc = null, lc = null;
-function mc(a) {
+var ac = ca.unstable_scheduleCallback, bc = ca.unstable_cancelCallback, cc = ca.unstable_shouldYield, dc = ca.unstable_requestPaint, B$1 = ca.unstable_now, ec = ca.unstable_getCurrentPriorityLevel, fc = ca.unstable_ImmediatePriority, gc = ca.unstable_UserBlockingPriority, hc = ca.unstable_NormalPriority, ic = ca.unstable_LowPriority, jc = ca.unstable_IdlePriority, kc = null, lc = null;
+function mc(a2) {
if (lc && "function" === typeof lc.onCommitFiberRoot) try {
- lc.onCommitFiberRoot(kc, a, void 0, 128 === (a.current.flags & 128));
- } catch (b) {
+ lc.onCommitFiberRoot(kc, a2, void 0, 128 === (a2.current.flags & 128));
+ } catch (b2) {
}
}
var oc = Math.clz32 ? Math.clz32 : nc, pc = Math.log, qc = Math.LN2;
-function nc(a) {
- a >>>= 0;
- return 0 === a ? 32 : 31 - (pc(a) / qc | 0) | 0;
+function nc(a2) {
+ a2 >>>= 0;
+ return 0 === a2 ? 32 : 31 - (pc(a2) / qc | 0) | 0;
}
var rc = 64, sc = 4194304;
-function tc(a) {
- switch (a & -a) {
+function tc(a2) {
+ switch (a2 & -a2) {
case 1:
return 1;
case 2:
@@ -1431,13 +1431,13 @@ function tc(a) {
case 524288:
case 1048576:
case 2097152:
- return a & 4194240;
+ return a2 & 4194240;
case 4194304:
case 8388608:
case 16777216:
case 33554432:
case 67108864:
- return a & 130023424;
+ return a2 & 130023424;
case 134217728:
return 134217728;
case 268435456:
@@ -1447,30 +1447,30 @@ function tc(a) {
case 1073741824:
return 1073741824;
default:
- return a;
- }
-}
-function uc(a, b) {
- var c = a.pendingLanes;
- if (0 === c) return 0;
- var d = 0, e = a.suspendedLanes, f2 = a.pingedLanes, g = c & 268435455;
- if (0 !== g) {
- var h = g & ~e;
- 0 !== h ? d = tc(h) : (f2 &= g, 0 !== f2 && (d = tc(f2)));
- } else g = c & ~e, 0 !== g ? d = tc(g) : 0 !== f2 && (d = tc(f2));
- if (0 === d) return 0;
- if (0 !== b && b !== d && 0 === (b & e) && (e = d & -d, f2 = b & -b, e >= f2 || 16 === e && 0 !== (f2 & 4194240))) return b;
- 0 !== (d & 4) && (d |= c & 16);
- b = a.entangledLanes;
- if (0 !== b) for (a = a.entanglements, b &= d; 0 < b; ) c = 31 - oc(b), e = 1 << c, d |= a[c], b &= ~e;
- return d;
-}
-function vc(a, b) {
- switch (a) {
+ return a2;
+ }
+}
+function uc(a2, b2) {
+ var c2 = a2.pendingLanes;
+ if (0 === c2) return 0;
+ var d2 = 0, e2 = a2.suspendedLanes, f2 = a2.pingedLanes, g2 = c2 & 268435455;
+ if (0 !== g2) {
+ var h2 = g2 & ~e2;
+ 0 !== h2 ? d2 = tc(h2) : (f2 &= g2, 0 !== f2 && (d2 = tc(f2)));
+ } else g2 = c2 & ~e2, 0 !== g2 ? d2 = tc(g2) : 0 !== f2 && (d2 = tc(f2));
+ if (0 === d2) return 0;
+ if (0 !== b2 && b2 !== d2 && 0 === (b2 & e2) && (e2 = d2 & -d2, f2 = b2 & -b2, e2 >= f2 || 16 === e2 && 0 !== (f2 & 4194240))) return b2;
+ 0 !== (d2 & 4) && (d2 |= c2 & 16);
+ b2 = a2.entangledLanes;
+ if (0 !== b2) for (a2 = a2.entanglements, b2 &= d2; 0 < b2; ) c2 = 31 - oc(b2), e2 = 1 << c2, d2 |= a2[c2], b2 &= ~e2;
+ return d2;
+}
+function vc(a2, b2) {
+ switch (a2) {
case 1:
case 2:
case 4:
- return b + 250;
+ return b2 + 250;
case 8:
case 16:
case 32:
@@ -1490,7 +1490,7 @@ function vc(a, b) {
case 524288:
case 1048576:
case 2097152:
- return b + 5e3;
+ return b2 + 5e3;
case 4194304:
case 8388608:
case 16777216:
@@ -1506,70 +1506,70 @@ function vc(a, b) {
return -1;
}
}
-function wc(a, b) {
- for (var c = a.suspendedLanes, d = a.pingedLanes, e = a.expirationTimes, f2 = a.pendingLanes; 0 < f2; ) {
- var g = 31 - oc(f2), h = 1 << g, k2 = e[g];
+function wc(a2, b2) {
+ for (var c2 = a2.suspendedLanes, d2 = a2.pingedLanes, e2 = a2.expirationTimes, f2 = a2.pendingLanes; 0 < f2; ) {
+ var g2 = 31 - oc(f2), h2 = 1 << g2, k2 = e2[g2];
if (-1 === k2) {
- if (0 === (h & c) || 0 !== (h & d)) e[g] = vc(h, b);
- } else k2 <= b && (a.expiredLanes |= h);
- f2 &= ~h;
+ if (0 === (h2 & c2) || 0 !== (h2 & d2)) e2[g2] = vc(h2, b2);
+ } else k2 <= b2 && (a2.expiredLanes |= h2);
+ f2 &= ~h2;
}
}
-function xc(a) {
- a = a.pendingLanes & -1073741825;
- return 0 !== a ? a : a & 1073741824 ? 1073741824 : 0;
+function xc(a2) {
+ a2 = a2.pendingLanes & -1073741825;
+ return 0 !== a2 ? a2 : a2 & 1073741824 ? 1073741824 : 0;
}
function yc() {
- var a = rc;
+ var a2 = rc;
rc <<= 1;
0 === (rc & 4194240) && (rc = 64);
- return a;
+ return a2;
}
-function zc(a) {
- for (var b = [], c = 0; 31 > c; c++) b.push(a);
- return b;
+function zc(a2) {
+ for (var b2 = [], c2 = 0; 31 > c2; c2++) b2.push(a2);
+ return b2;
+}
+function Ac(a2, b2, c2) {
+ a2.pendingLanes |= b2;
+ 536870912 !== b2 && (a2.suspendedLanes = 0, a2.pingedLanes = 0);
+ a2 = a2.eventTimes;
+ b2 = 31 - oc(b2);
+ a2[b2] = c2;
+}
+function Bc(a2, b2) {
+ var c2 = a2.pendingLanes & ~b2;
+ a2.pendingLanes = b2;
+ a2.suspendedLanes = 0;
+ a2.pingedLanes = 0;
+ a2.expiredLanes &= b2;
+ a2.mutableReadLanes &= b2;
+ a2.entangledLanes &= b2;
+ b2 = a2.entanglements;
+ var d2 = a2.eventTimes;
+ for (a2 = a2.expirationTimes; 0 < c2; ) {
+ var e2 = 31 - oc(c2), f2 = 1 << e2;
+ b2[e2] = 0;
+ d2[e2] = -1;
+ a2[e2] = -1;
+ c2 &= ~f2;
+ }
}
-function Ac(a, b, c) {
- a.pendingLanes |= b;
- 536870912 !== b && (a.suspendedLanes = 0, a.pingedLanes = 0);
- a = a.eventTimes;
- b = 31 - oc(b);
- a[b] = c;
-}
-function Bc(a, b) {
- var c = a.pendingLanes & ~b;
- a.pendingLanes = b;
- a.suspendedLanes = 0;
- a.pingedLanes = 0;
- a.expiredLanes &= b;
- a.mutableReadLanes &= b;
- a.entangledLanes &= b;
- b = a.entanglements;
- var d = a.eventTimes;
- for (a = a.expirationTimes; 0 < c; ) {
- var e = 31 - oc(c), f2 = 1 << e;
- b[e] = 0;
- d[e] = -1;
- a[e] = -1;
- c &= ~f2;
- }
-}
-function Cc(a, b) {
- var c = a.entangledLanes |= b;
- for (a = a.entanglements; c; ) {
- var d = 31 - oc(c), e = 1 << d;
- e & b | a[d] & b && (a[d] |= b);
- c &= ~e;
- }
-}
-var C = 0;
-function Dc(a) {
- a &= -a;
- return 1 < a ? 4 < a ? 0 !== (a & 268435455) ? 16 : 536870912 : 4 : 1;
+function Cc(a2, b2) {
+ var c2 = a2.entangledLanes |= b2;
+ for (a2 = a2.entanglements; c2; ) {
+ var d2 = 31 - oc(c2), e2 = 1 << d2;
+ e2 & b2 | a2[d2] & b2 && (a2[d2] |= b2);
+ c2 &= ~e2;
+ }
+}
+var C$1 = 0;
+function Dc(a2) {
+ a2 &= -a2;
+ return 1 < a2 ? 4 < a2 ? 0 !== (a2 & 268435455) ? 16 : 536870912 : 4 : 1;
}
var Ec, Fc, Gc, Hc, Ic, Jc = false, Kc = [], Lc = null, Mc = null, Nc = null, Oc = /* @__PURE__ */ new Map(), Pc = /* @__PURE__ */ new Map(), Qc = [], Rc = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");
-function Sc(a, b) {
- switch (a) {
+function Sc(a2, b2) {
+ switch (a2) {
case "focusin":
case "focusout":
Lc = null;
@@ -1584,75 +1584,75 @@ function Sc(a, b) {
break;
case "pointerover":
case "pointerout":
- Oc.delete(b.pointerId);
+ Oc.delete(b2.pointerId);
break;
case "gotpointercapture":
case "lostpointercapture":
- Pc.delete(b.pointerId);
+ Pc.delete(b2.pointerId);
}
}
-function Tc(a, b, c, d, e, f2) {
- if (null === a || a.nativeEvent !== f2) return a = { blockedOn: b, domEventName: c, eventSystemFlags: d, nativeEvent: f2, targetContainers: [e] }, null !== b && (b = Cb(b), null !== b && Fc(b)), a;
- a.eventSystemFlags |= d;
- b = a.targetContainers;
- null !== e && -1 === b.indexOf(e) && b.push(e);
- return a;
+function Tc(a2, b2, c2, d2, e2, f2) {
+ if (null === a2 || a2.nativeEvent !== f2) return a2 = { blockedOn: b2, domEventName: c2, eventSystemFlags: d2, nativeEvent: f2, targetContainers: [e2] }, null !== b2 && (b2 = Cb(b2), null !== b2 && Fc(b2)), a2;
+ a2.eventSystemFlags |= d2;
+ b2 = a2.targetContainers;
+ null !== e2 && -1 === b2.indexOf(e2) && b2.push(e2);
+ return a2;
}
-function Uc(a, b, c, d, e) {
- switch (b) {
+function Uc(a2, b2, c2, d2, e2) {
+ switch (b2) {
case "focusin":
- return Lc = Tc(Lc, a, b, c, d, e), true;
+ return Lc = Tc(Lc, a2, b2, c2, d2, e2), true;
case "dragenter":
- return Mc = Tc(Mc, a, b, c, d, e), true;
+ return Mc = Tc(Mc, a2, b2, c2, d2, e2), true;
case "mouseover":
- return Nc = Tc(Nc, a, b, c, d, e), true;
+ return Nc = Tc(Nc, a2, b2, c2, d2, e2), true;
case "pointerover":
- var f2 = e.pointerId;
- Oc.set(f2, Tc(Oc.get(f2) || null, a, b, c, d, e));
+ var f2 = e2.pointerId;
+ Oc.set(f2, Tc(Oc.get(f2) || null, a2, b2, c2, d2, e2));
return true;
case "gotpointercapture":
- return f2 = e.pointerId, Pc.set(f2, Tc(Pc.get(f2) || null, a, b, c, d, e)), true;
+ return f2 = e2.pointerId, Pc.set(f2, Tc(Pc.get(f2) || null, a2, b2, c2, d2, e2)), true;
}
return false;
}
-function Vc(a) {
- var b = Wc(a.target);
- if (null !== b) {
- var c = Vb(b);
- if (null !== c) {
- if (b = c.tag, 13 === b) {
- if (b = Wb(c), null !== b) {
- a.blockedOn = b;
- Ic(a.priority, function() {
- Gc(c);
+function Vc(a2) {
+ var b2 = Wc(a2.target);
+ if (null !== b2) {
+ var c2 = Vb(b2);
+ if (null !== c2) {
+ if (b2 = c2.tag, 13 === b2) {
+ if (b2 = Wb(c2), null !== b2) {
+ a2.blockedOn = b2;
+ Ic(a2.priority, function() {
+ Gc(c2);
});
return;
}
- } else if (3 === b && c.stateNode.current.memoizedState.isDehydrated) {
- a.blockedOn = 3 === c.tag ? c.stateNode.containerInfo : null;
+ } else if (3 === b2 && c2.stateNode.current.memoizedState.isDehydrated) {
+ a2.blockedOn = 3 === c2.tag ? c2.stateNode.containerInfo : null;
return;
}
}
}
- a.blockedOn = null;
+ a2.blockedOn = null;
}
-function Xc(a) {
- if (null !== a.blockedOn) return false;
- for (var b = a.targetContainers; 0 < b.length; ) {
- var c = Yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);
- if (null === c) {
- c = a.nativeEvent;
- var d = new c.constructor(c.type, c);
- wb = d;
- c.target.dispatchEvent(d);
+function Xc(a2) {
+ if (null !== a2.blockedOn) return false;
+ for (var b2 = a2.targetContainers; 0 < b2.length; ) {
+ var c2 = Yc(a2.domEventName, a2.eventSystemFlags, b2[0], a2.nativeEvent);
+ if (null === c2) {
+ c2 = a2.nativeEvent;
+ var d2 = new c2.constructor(c2.type, c2);
+ wb = d2;
+ c2.target.dispatchEvent(d2);
wb = null;
- } else return b = Cb(c), null !== b && Fc(b), a.blockedOn = c, false;
- b.shift();
+ } else return b2 = Cb(c2), null !== b2 && Fc(b2), a2.blockedOn = c2, false;
+ b2.shift();
}
return true;
}
-function Zc(a, b, c) {
- Xc(a) && c.delete(b);
+function Zc(a2, b2, c2) {
+ Xc(a2) && c2.delete(b2);
}
function $c() {
Jc = false;
@@ -1662,84 +1662,84 @@ function $c() {
Oc.forEach(Zc);
Pc.forEach(Zc);
}
-function ad(a, b) {
- a.blockedOn === b && (a.blockedOn = null, Jc || (Jc = true, ca.unstable_scheduleCallback(ca.unstable_NormalPriority, $c)));
+function ad(a2, b2) {
+ a2.blockedOn === b2 && (a2.blockedOn = null, Jc || (Jc = true, ca.unstable_scheduleCallback(ca.unstable_NormalPriority, $c)));
}
-function bd(a) {
- function b(b2) {
- return ad(b2, a);
+function bd(a2) {
+ function b2(b3) {
+ return ad(b3, a2);
}
if (0 < Kc.length) {
- ad(Kc[0], a);
- for (var c = 1; c < Kc.length; c++) {
- var d = Kc[c];
- d.blockedOn === a && (d.blockedOn = null);
+ ad(Kc[0], a2);
+ for (var c2 = 1; c2 < Kc.length; c2++) {
+ var d2 = Kc[c2];
+ d2.blockedOn === a2 && (d2.blockedOn = null);
}
}
- null !== Lc && ad(Lc, a);
- null !== Mc && ad(Mc, a);
- null !== Nc && ad(Nc, a);
- Oc.forEach(b);
- Pc.forEach(b);
- for (c = 0; c < Qc.length; c++) d = Qc[c], d.blockedOn === a && (d.blockedOn = null);
- for (; 0 < Qc.length && (c = Qc[0], null === c.blockedOn); ) Vc(c), null === c.blockedOn && Qc.shift();
+ null !== Lc && ad(Lc, a2);
+ null !== Mc && ad(Mc, a2);
+ null !== Nc && ad(Nc, a2);
+ Oc.forEach(b2);
+ Pc.forEach(b2);
+ for (c2 = 0; c2 < Qc.length; c2++) d2 = Qc[c2], d2.blockedOn === a2 && (d2.blockedOn = null);
+ for (; 0 < Qc.length && (c2 = Qc[0], null === c2.blockedOn); ) Vc(c2), null === c2.blockedOn && Qc.shift();
}
var cd = ua.ReactCurrentBatchConfig, dd = true;
-function ed(a, b, c, d) {
- var e = C, f2 = cd.transition;
+function ed(a2, b2, c2, d2) {
+ var e2 = C$1, f2 = cd.transition;
cd.transition = null;
try {
- C = 1, fd(a, b, c, d);
+ C$1 = 1, fd(a2, b2, c2, d2);
} finally {
- C = e, cd.transition = f2;
+ C$1 = e2, cd.transition = f2;
}
}
-function gd(a, b, c, d) {
- var e = C, f2 = cd.transition;
+function gd(a2, b2, c2, d2) {
+ var e2 = C$1, f2 = cd.transition;
cd.transition = null;
try {
- C = 4, fd(a, b, c, d);
+ C$1 = 4, fd(a2, b2, c2, d2);
} finally {
- C = e, cd.transition = f2;
+ C$1 = e2, cd.transition = f2;
}
}
-function fd(a, b, c, d) {
+function fd(a2, b2, c2, d2) {
if (dd) {
- var e = Yc(a, b, c, d);
- if (null === e) hd(a, b, d, id, c), Sc(a, d);
- else if (Uc(e, a, b, c, d)) d.stopPropagation();
- else if (Sc(a, d), b & 4 && -1 < Rc.indexOf(a)) {
- for (; null !== e; ) {
- var f2 = Cb(e);
+ var e2 = Yc(a2, b2, c2, d2);
+ if (null === e2) hd(a2, b2, d2, id, c2), Sc(a2, d2);
+ else if (Uc(e2, a2, b2, c2, d2)) d2.stopPropagation();
+ else if (Sc(a2, d2), b2 & 4 && -1 < Rc.indexOf(a2)) {
+ for (; null !== e2; ) {
+ var f2 = Cb(e2);
null !== f2 && Ec(f2);
- f2 = Yc(a, b, c, d);
- null === f2 && hd(a, b, d, id, c);
- if (f2 === e) break;
- e = f2;
+ f2 = Yc(a2, b2, c2, d2);
+ null === f2 && hd(a2, b2, d2, id, c2);
+ if (f2 === e2) break;
+ e2 = f2;
}
- null !== e && d.stopPropagation();
- } else hd(a, b, d, null, c);
+ null !== e2 && d2.stopPropagation();
+ } else hd(a2, b2, d2, null, c2);
}
}
var id = null;
-function Yc(a, b, c, d) {
+function Yc(a2, b2, c2, d2) {
id = null;
- a = xb(d);
- a = Wc(a);
- if (null !== a) if (b = Vb(a), null === b) a = null;
- else if (c = b.tag, 13 === c) {
- a = Wb(b);
- if (null !== a) return a;
- a = null;
- } else if (3 === c) {
- if (b.stateNode.current.memoizedState.isDehydrated) return 3 === b.tag ? b.stateNode.containerInfo : null;
- a = null;
- } else b !== a && (a = null);
- id = a;
+ a2 = xb(d2);
+ a2 = Wc(a2);
+ if (null !== a2) if (b2 = Vb(a2), null === b2) a2 = null;
+ else if (c2 = b2.tag, 13 === c2) {
+ a2 = Wb(b2);
+ if (null !== a2) return a2;
+ a2 = null;
+ } else if (3 === c2) {
+ if (b2.stateNode.current.memoizedState.isDehydrated) return 3 === b2.tag ? b2.stateNode.containerInfo : null;
+ a2 = null;
+ } else b2 !== a2 && (a2 = null);
+ id = a2;
return null;
}
-function jd(a) {
- switch (a) {
+function jd(a2) {
+ switch (a2) {
case "cancel":
case "click":
case "close":
@@ -1833,17 +1833,17 @@ function jd(a) {
var kd = null, ld = null, md = null;
function nd() {
if (md) return md;
- var a, b = ld, c = b.length, d, e = "value" in kd ? kd.value : kd.textContent, f2 = e.length;
- for (a = 0; a < c && b[a] === e[a]; a++) ;
- var g = c - a;
- for (d = 1; d <= g && b[c - d] === e[f2 - d]; d++) ;
- return md = e.slice(a, 1 < d ? 1 - d : void 0);
-}
-function od(a) {
- var b = a.keyCode;
- "charCode" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;
- 10 === a && (a = 13);
- return 32 <= a || 13 === a ? a : 0;
+ var a2, b2 = ld, c2 = b2.length, d2, e2 = "value" in kd ? kd.value : kd.textContent, f2 = e2.length;
+ for (a2 = 0; a2 < c2 && b2[a2] === e2[a2]; a2++) ;
+ var g2 = c2 - a2;
+ for (d2 = 1; d2 <= g2 && b2[c2 - d2] === e2[f2 - d2]; d2++) ;
+ return md = e2.slice(a2, 1 < d2 ? 1 - d2 : void 0);
+}
+function od(a2) {
+ var b2 = a2.keyCode;
+ "charCode" in a2 ? (a2 = a2.charCode, 0 === a2 && 13 === b2 && (a2 = 13)) : a2 = b2;
+ 10 === a2 && (a2 = 13);
+ return 32 <= a2 || 13 === a2 ? a2 : 0;
}
function pd() {
return true;
@@ -1851,43 +1851,43 @@ function pd() {
function qd() {
return false;
}
-function rd(a) {
- function b(b2, d, e, f2, g) {
- this._reactName = b2;
- this._targetInst = e;
- this.type = d;
+function rd(a2) {
+ function b2(b3, d2, e2, f2, g2) {
+ this._reactName = b3;
+ this._targetInst = e2;
+ this.type = d2;
this.nativeEvent = f2;
- this.target = g;
+ this.target = g2;
this.currentTarget = null;
- for (var c in a) a.hasOwnProperty(c) && (b2 = a[c], this[c] = b2 ? b2(f2) : f2[c]);
+ for (var c2 in a2) a2.hasOwnProperty(c2) && (b3 = a2[c2], this[c2] = b3 ? b3(f2) : f2[c2]);
this.isDefaultPrevented = (null != f2.defaultPrevented ? f2.defaultPrevented : false === f2.returnValue) ? pd : qd;
this.isPropagationStopped = qd;
return this;
}
- A(b.prototype, { preventDefault: function() {
+ A$1(b2.prototype, { preventDefault: function() {
this.defaultPrevented = true;
- var a2 = this.nativeEvent;
- a2 && (a2.preventDefault ? a2.preventDefault() : "unknown" !== typeof a2.returnValue && (a2.returnValue = false), this.isDefaultPrevented = pd);
+ var a3 = this.nativeEvent;
+ a3 && (a3.preventDefault ? a3.preventDefault() : "unknown" !== typeof a3.returnValue && (a3.returnValue = false), this.isDefaultPrevented = pd);
}, stopPropagation: function() {
- var a2 = this.nativeEvent;
- a2 && (a2.stopPropagation ? a2.stopPropagation() : "unknown" !== typeof a2.cancelBubble && (a2.cancelBubble = true), this.isPropagationStopped = pd);
+ var a3 = this.nativeEvent;
+ a3 && (a3.stopPropagation ? a3.stopPropagation() : "unknown" !== typeof a3.cancelBubble && (a3.cancelBubble = true), this.isPropagationStopped = pd);
}, persist: function() {
}, isPersistent: pd });
- return b;
+ return b2;
}
-var sd = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function(a) {
- return a.timeStamp || Date.now();
-}, defaultPrevented: 0, isTrusted: 0 }, td = rd(sd), ud = A({}, sd, { view: 0, detail: 0 }), vd = rd(ud), wd, xd, yd, Ad = A({}, ud, { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, getModifierState: zd, button: 0, buttons: 0, relatedTarget: function(a) {
- return void 0 === a.relatedTarget ? a.fromElement === a.srcElement ? a.toElement : a.fromElement : a.relatedTarget;
-}, movementX: function(a) {
- if ("movementX" in a) return a.movementX;
- a !== yd && (yd && "mousemove" === a.type ? (wd = a.screenX - yd.screenX, xd = a.screenY - yd.screenY) : xd = wd = 0, yd = a);
+var sd = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function(a2) {
+ return a2.timeStamp || Date.now();
+}, defaultPrevented: 0, isTrusted: 0 }, td = rd(sd), ud = A$1({}, sd, { view: 0, detail: 0 }), vd = rd(ud), wd, xd, yd, Ad = A$1({}, ud, { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, getModifierState: zd, button: 0, buttons: 0, relatedTarget: function(a2) {
+ return void 0 === a2.relatedTarget ? a2.fromElement === a2.srcElement ? a2.toElement : a2.fromElement : a2.relatedTarget;
+}, movementX: function(a2) {
+ if ("movementX" in a2) return a2.movementX;
+ a2 !== yd && (yd && "mousemove" === a2.type ? (wd = a2.screenX - yd.screenX, xd = a2.screenY - yd.screenY) : xd = wd = 0, yd = a2);
return wd;
-}, movementY: function(a) {
- return "movementY" in a ? a.movementY : xd;
-} }), Bd = rd(Ad), Cd = A({}, Ad, { dataTransfer: 0 }), Dd = rd(Cd), Ed = A({}, ud, { relatedTarget: 0 }), Fd = rd(Ed), Gd = A({}, sd, { animationName: 0, elapsedTime: 0, pseudoElement: 0 }), Hd = rd(Gd), Id = A({}, sd, { clipboardData: function(a) {
- return "clipboardData" in a ? a.clipboardData : window.clipboardData;
-} }), Jd = rd(Id), Kd = A({}, sd, { data: 0 }), Ld = rd(Kd), Md = {
+}, movementY: function(a2) {
+ return "movementY" in a2 ? a2.movementY : xd;
+} }), Bd = rd(Ad), Cd = A$1({}, Ad, { dataTransfer: 0 }), Dd = rd(Cd), Ed = A$1({}, ud, { relatedTarget: 0 }), Fd = rd(Ed), Gd = A$1({}, sd, { animationName: 0, elapsedTime: 0, pseudoElement: 0 }), Hd = rd(Gd), Id = A$1({}, sd, { clipboardData: function(a2) {
+ return "clipboardData" in a2 ? a2.clipboardData : window.clipboardData;
+} }), Jd = rd(Id), Kd = A$1({}, sd, { data: 0 }), Ld = rd(Kd), Md = {
Esc: "Escape",
Spacebar: " ",
Left: "ArrowLeft",
@@ -1938,43 +1938,43 @@ var sd = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function(a) {
145: "ScrollLock",
224: "Meta"
}, Od = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" };
-function Pd(a) {
- var b = this.nativeEvent;
- return b.getModifierState ? b.getModifierState(a) : (a = Od[a]) ? !!b[a] : false;
+function Pd(a2) {
+ var b2 = this.nativeEvent;
+ return b2.getModifierState ? b2.getModifierState(a2) : (a2 = Od[a2]) ? !!b2[a2] : false;
}
function zd() {
return Pd;
}
-var Qd = A({}, ud, { key: function(a) {
- if (a.key) {
- var b = Md[a.key] || a.key;
- if ("Unidentified" !== b) return b;
- }
- return "keypress" === a.type ? (a = od(a), 13 === a ? "Enter" : String.fromCharCode(a)) : "keydown" === a.type || "keyup" === a.type ? Nd[a.keyCode] || "Unidentified" : "";
-}, code: 0, location: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, repeat: 0, locale: 0, getModifierState: zd, charCode: function(a) {
- return "keypress" === a.type ? od(a) : 0;
-}, keyCode: function(a) {
- return "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
-}, which: function(a) {
- return "keypress" === a.type ? od(a) : "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
-} }), Rd = rd(Qd), Sd = A({}, Ad, { pointerId: 0, width: 0, height: 0, pressure: 0, tangentialPressure: 0, tiltX: 0, tiltY: 0, twist: 0, pointerType: 0, isPrimary: 0 }), Td = rd(Sd), Ud = A({}, ud, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: zd }), Vd = rd(Ud), Wd = A({}, sd, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 }), Xd = rd(Wd), Yd = A({}, Ad, {
- deltaX: function(a) {
- return "deltaX" in a ? a.deltaX : "wheelDeltaX" in a ? -a.wheelDeltaX : 0;
+var Qd = A$1({}, ud, { key: function(a2) {
+ if (a2.key) {
+ var b2 = Md[a2.key] || a2.key;
+ if ("Unidentified" !== b2) return b2;
+ }
+ return "keypress" === a2.type ? (a2 = od(a2), 13 === a2 ? "Enter" : String.fromCharCode(a2)) : "keydown" === a2.type || "keyup" === a2.type ? Nd[a2.keyCode] || "Unidentified" : "";
+}, code: 0, location: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, repeat: 0, locale: 0, getModifierState: zd, charCode: function(a2) {
+ return "keypress" === a2.type ? od(a2) : 0;
+}, keyCode: function(a2) {
+ return "keydown" === a2.type || "keyup" === a2.type ? a2.keyCode : 0;
+}, which: function(a2) {
+ return "keypress" === a2.type ? od(a2) : "keydown" === a2.type || "keyup" === a2.type ? a2.keyCode : 0;
+} }), Rd = rd(Qd), Sd = A$1({}, Ad, { pointerId: 0, width: 0, height: 0, pressure: 0, tangentialPressure: 0, tiltX: 0, tiltY: 0, twist: 0, pointerType: 0, isPrimary: 0 }), Td = rd(Sd), Ud = A$1({}, ud, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: zd }), Vd = rd(Ud), Wd = A$1({}, sd, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 }), Xd = rd(Wd), Yd = A$1({}, Ad, {
+ deltaX: function(a2) {
+ return "deltaX" in a2 ? a2.deltaX : "wheelDeltaX" in a2 ? -a2.wheelDeltaX : 0;
},
- deltaY: function(a) {
- return "deltaY" in a ? a.deltaY : "wheelDeltaY" in a ? -a.wheelDeltaY : "wheelDelta" in a ? -a.wheelDelta : 0;
+ deltaY: function(a2) {
+ return "deltaY" in a2 ? a2.deltaY : "wheelDeltaY" in a2 ? -a2.wheelDeltaY : "wheelDelta" in a2 ? -a2.wheelDelta : 0;
},
deltaZ: 0,
deltaMode: 0
-}), Zd = rd(Yd), $d = [9, 13, 27, 32], ae = ia && "CompositionEvent" in window, be = null;
+}), Zd = rd(Yd), $d = [9, 13, 27, 32], ae$1 = ia && "CompositionEvent" in window, be = null;
ia && "documentMode" in document && (be = document.documentMode);
-var ce = ia && "TextEvent" in window && !be, de = ia && (!ae || be && 8 < be && 11 >= be), ee = String.fromCharCode(32), fe = false;
-function ge(a, b) {
- switch (a) {
+var ce$1 = ia && "TextEvent" in window && !be, de$1 = ia && (!ae$1 || be && 8 < be && 11 >= be), ee$1 = String.fromCharCode(32), fe$1 = false;
+function ge$1(a2, b2) {
+ switch (a2) {
case "keyup":
- return -1 !== $d.indexOf(b.keyCode);
+ return -1 !== $d.indexOf(b2.keyCode);
case "keydown":
- return 229 !== b.keyCode;
+ return 229 !== b2.keyCode;
case "keypress":
case "mousedown":
case "focusout":
@@ -1983,215 +1983,215 @@ function ge(a, b) {
return false;
}
}
-function he(a) {
- a = a.detail;
- return "object" === typeof a && "data" in a ? a.data : null;
+function he$1(a2) {
+ a2 = a2.detail;
+ return "object" === typeof a2 && "data" in a2 ? a2.data : null;
}
-var ie = false;
-function je(a, b) {
- switch (a) {
+var ie$1 = false;
+function je$1(a2, b2) {
+ switch (a2) {
case "compositionend":
- return he(b);
+ return he$1(b2);
case "keypress":
- if (32 !== b.which) return null;
- fe = true;
- return ee;
+ if (32 !== b2.which) return null;
+ fe$1 = true;
+ return ee$1;
case "textInput":
- return a = b.data, a === ee && fe ? null : a;
+ return a2 = b2.data, a2 === ee$1 && fe$1 ? null : a2;
default:
return null;
}
}
-function ke(a, b) {
- if (ie) return "compositionend" === a || !ae && ge(a, b) ? (a = nd(), md = ld = kd = null, ie = false, a) : null;
- switch (a) {
+function ke$1(a2, b2) {
+ if (ie$1) return "compositionend" === a2 || !ae$1 && ge$1(a2, b2) ? (a2 = nd(), md = ld = kd = null, ie$1 = false, a2) : null;
+ switch (a2) {
case "paste":
return null;
case "keypress":
- if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {
- if (b.char && 1 < b.char.length) return b.char;
- if (b.which) return String.fromCharCode(b.which);
+ if (!(b2.ctrlKey || b2.altKey || b2.metaKey) || b2.ctrlKey && b2.altKey) {
+ if (b2.char && 1 < b2.char.length) return b2.char;
+ if (b2.which) return String.fromCharCode(b2.which);
}
return null;
case "compositionend":
- return de && "ko" !== b.locale ? null : b.data;
+ return de$1 && "ko" !== b2.locale ? null : b2.data;
default:
return null;
}
}
-var le = { color: true, date: true, datetime: true, "datetime-local": true, email: true, month: true, number: true, password: true, range: true, search: true, tel: true, text: true, time: true, url: true, week: true };
-function me(a) {
- var b = a && a.nodeName && a.nodeName.toLowerCase();
- return "input" === b ? !!le[a.type] : "textarea" === b ? true : false;
+var le$1 = { color: true, date: true, datetime: true, "datetime-local": true, email: true, month: true, number: true, password: true, range: true, search: true, tel: true, text: true, time: true, url: true, week: true };
+function me$1(a2) {
+ var b2 = a2 && a2.nodeName && a2.nodeName.toLowerCase();
+ return "input" === b2 ? !!le$1[a2.type] : "textarea" === b2 ? true : false;
}
-function ne(a, b, c, d) {
- Eb(d);
- b = oe(b, "onChange");
- 0 < b.length && (c = new td("onChange", "change", null, c, d), a.push({ event: c, listeners: b }));
+function ne$1(a2, b2, c2, d2) {
+ Eb(d2);
+ b2 = oe$1(b2, "onChange");
+ 0 < b2.length && (c2 = new td("onChange", "change", null, c2, d2), a2.push({ event: c2, listeners: b2 }));
}
-var pe = null, qe = null;
-function re(a) {
- se(a, 0);
+var pe$1 = null, qe$1 = null;
+function re$1(a2) {
+ se$1(a2, 0);
}
-function te(a) {
- var b = ue(a);
- if (Wa(b)) return a;
+function te$1(a2) {
+ var b2 = ue$1(a2);
+ if (Wa(b2)) return a2;
}
-function ve(a, b) {
- if ("change" === a) return b;
+function ve$1(a2, b2) {
+ if ("change" === a2) return b2;
}
-var we = false;
+var we$1 = false;
if (ia) {
- var xe;
+ var xe$1;
if (ia) {
- var ye = "oninput" in document;
- if (!ye) {
- var ze = document.createElement("div");
- ze.setAttribute("oninput", "return;");
- ye = "function" === typeof ze.oninput;
+ var ye$1 = "oninput" in document;
+ if (!ye$1) {
+ var ze$1 = document.createElement("div");
+ ze$1.setAttribute("oninput", "return;");
+ ye$1 = "function" === typeof ze$1.oninput;
}
- xe = ye;
- } else xe = false;
- we = xe && (!document.documentMode || 9 < document.documentMode);
+ xe$1 = ye$1;
+ } else xe$1 = false;
+ we$1 = xe$1 && (!document.documentMode || 9 < document.documentMode);
}
-function Ae() {
- pe && (pe.detachEvent("onpropertychange", Be), qe = pe = null);
+function Ae$1() {
+ pe$1 && (pe$1.detachEvent("onpropertychange", Be$1), qe$1 = pe$1 = null);
}
-function Be(a) {
- if ("value" === a.propertyName && te(qe)) {
- var b = [];
- ne(b, qe, a, xb(a));
- Jb(re, b);
+function Be$1(a2) {
+ if ("value" === a2.propertyName && te$1(qe$1)) {
+ var b2 = [];
+ ne$1(b2, qe$1, a2, xb(a2));
+ Jb(re$1, b2);
}
}
-function Ce(a, b, c) {
- "focusin" === a ? (Ae(), pe = b, qe = c, pe.attachEvent("onpropertychange", Be)) : "focusout" === a && Ae();
+function Ce$1(a2, b2, c2) {
+ "focusin" === a2 ? (Ae$1(), pe$1 = b2, qe$1 = c2, pe$1.attachEvent("onpropertychange", Be$1)) : "focusout" === a2 && Ae$1();
}
-function De(a) {
- if ("selectionchange" === a || "keyup" === a || "keydown" === a) return te(qe);
+function De$1(a2) {
+ if ("selectionchange" === a2 || "keyup" === a2 || "keydown" === a2) return te$1(qe$1);
}
-function Ee(a, b) {
- if ("click" === a) return te(b);
+function Ee$1(a2, b2) {
+ if ("click" === a2) return te$1(b2);
}
-function Fe(a, b) {
- if ("input" === a || "change" === a) return te(b);
+function Fe$1(a2, b2) {
+ if ("input" === a2 || "change" === a2) return te$1(b2);
}
-function Ge(a, b) {
- return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
+function Ge$1(a2, b2) {
+ return a2 === b2 && (0 !== a2 || 1 / a2 === 1 / b2) || a2 !== a2 && b2 !== b2;
}
-var He = "function" === typeof Object.is ? Object.is : Ge;
-function Ie(a, b) {
- if (He(a, b)) return true;
- if ("object" !== typeof a || null === a || "object" !== typeof b || null === b) return false;
- var c = Object.keys(a), d = Object.keys(b);
- if (c.length !== d.length) return false;
- for (d = 0; d < c.length; d++) {
- var e = c[d];
- if (!ja.call(b, e) || !He(a[e], b[e])) return false;
+var He$1 = "function" === typeof Object.is ? Object.is : Ge$1;
+function Ie$1(a2, b2) {
+ if (He$1(a2, b2)) return true;
+ if ("object" !== typeof a2 || null === a2 || "object" !== typeof b2 || null === b2) return false;
+ var c2 = Object.keys(a2), d2 = Object.keys(b2);
+ if (c2.length !== d2.length) return false;
+ for (d2 = 0; d2 < c2.length; d2++) {
+ var e2 = c2[d2];
+ if (!ja.call(b2, e2) || !He$1(a2[e2], b2[e2])) return false;
}
return true;
}
-function Je(a) {
- for (; a && a.firstChild; ) a = a.firstChild;
- return a;
+function Je$1(a2) {
+ for (; a2 && a2.firstChild; ) a2 = a2.firstChild;
+ return a2;
}
-function Ke(a, b) {
- var c = Je(a);
- a = 0;
- for (var d; c; ) {
- if (3 === c.nodeType) {
- d = a + c.textContent.length;
- if (a <= b && d >= b) return { node: c, offset: b - a };
- a = d;
+function Ke$1(a2, b2) {
+ var c2 = Je$1(a2);
+ a2 = 0;
+ for (var d2; c2; ) {
+ if (3 === c2.nodeType) {
+ d2 = a2 + c2.textContent.length;
+ if (a2 <= b2 && d2 >= b2) return { node: c2, offset: b2 - a2 };
+ a2 = d2;
}
a: {
- for (; c; ) {
- if (c.nextSibling) {
- c = c.nextSibling;
+ for (; c2; ) {
+ if (c2.nextSibling) {
+ c2 = c2.nextSibling;
break a;
}
- c = c.parentNode;
+ c2 = c2.parentNode;
}
- c = void 0;
+ c2 = void 0;
}
- c = Je(c);
+ c2 = Je$1(c2);
}
}
-function Le(a, b) {
- return a && b ? a === b ? true : a && 3 === a.nodeType ? false : b && 3 === b.nodeType ? Le(a, b.parentNode) : "contains" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : false : false;
+function Le$1(a2, b2) {
+ return a2 && b2 ? a2 === b2 ? true : a2 && 3 === a2.nodeType ? false : b2 && 3 === b2.nodeType ? Le$1(a2, b2.parentNode) : "contains" in a2 ? a2.contains(b2) : a2.compareDocumentPosition ? !!(a2.compareDocumentPosition(b2) & 16) : false : false;
}
-function Me() {
- for (var a = window, b = Xa(); b instanceof a.HTMLIFrameElement; ) {
+function Me$1() {
+ for (var a2 = window, b2 = Xa(); b2 instanceof a2.HTMLIFrameElement; ) {
try {
- var c = "string" === typeof b.contentWindow.location.href;
- } catch (d) {
- c = false;
+ var c2 = "string" === typeof b2.contentWindow.location.href;
+ } catch (d2) {
+ c2 = false;
}
- if (c) a = b.contentWindow;
+ if (c2) a2 = b2.contentWindow;
else break;
- b = Xa(a.document);
+ b2 = Xa(a2.document);
}
- return b;
+ return b2;
+}
+function Ne$1(a2) {
+ var b2 = a2 && a2.nodeName && a2.nodeName.toLowerCase();
+ return b2 && ("input" === b2 && ("text" === a2.type || "search" === a2.type || "tel" === a2.type || "url" === a2.type || "password" === a2.type) || "textarea" === b2 || "true" === a2.contentEditable);
}
-function Ne(a) {
- var b = a && a.nodeName && a.nodeName.toLowerCase();
- return b && ("input" === b && ("text" === a.type || "search" === a.type || "tel" === a.type || "url" === a.type || "password" === a.type) || "textarea" === b || "true" === a.contentEditable);
-}
-function Oe(a) {
- var b = Me(), c = a.focusedElem, d = a.selectionRange;
- if (b !== c && c && c.ownerDocument && Le(c.ownerDocument.documentElement, c)) {
- if (null !== d && Ne(c)) {
- if (b = d.start, a = d.end, void 0 === a && (a = b), "selectionStart" in c) c.selectionStart = b, c.selectionEnd = Math.min(a, c.value.length);
- else if (a = (b = c.ownerDocument || document) && b.defaultView || window, a.getSelection) {
- a = a.getSelection();
- var e = c.textContent.length, f2 = Math.min(d.start, e);
- d = void 0 === d.end ? f2 : Math.min(d.end, e);
- !a.extend && f2 > d && (e = d, d = f2, f2 = e);
- e = Ke(c, f2);
- var g = Ke(
- c,
- d
+function Oe$1(a2) {
+ var b2 = Me$1(), c2 = a2.focusedElem, d2 = a2.selectionRange;
+ if (b2 !== c2 && c2 && c2.ownerDocument && Le$1(c2.ownerDocument.documentElement, c2)) {
+ if (null !== d2 && Ne$1(c2)) {
+ if (b2 = d2.start, a2 = d2.end, void 0 === a2 && (a2 = b2), "selectionStart" in c2) c2.selectionStart = b2, c2.selectionEnd = Math.min(a2, c2.value.length);
+ else if (a2 = (b2 = c2.ownerDocument || document) && b2.defaultView || window, a2.getSelection) {
+ a2 = a2.getSelection();
+ var e2 = c2.textContent.length, f2 = Math.min(d2.start, e2);
+ d2 = void 0 === d2.end ? f2 : Math.min(d2.end, e2);
+ !a2.extend && f2 > d2 && (e2 = d2, d2 = f2, f2 = e2);
+ e2 = Ke$1(c2, f2);
+ var g2 = Ke$1(
+ c2,
+ d2
);
- e && g && (1 !== a.rangeCount || a.anchorNode !== e.node || a.anchorOffset !== e.offset || a.focusNode !== g.node || a.focusOffset !== g.offset) && (b = b.createRange(), b.setStart(e.node, e.offset), a.removeAllRanges(), f2 > d ? (a.addRange(b), a.extend(g.node, g.offset)) : (b.setEnd(g.node, g.offset), a.addRange(b)));
+ e2 && g2 && (1 !== a2.rangeCount || a2.anchorNode !== e2.node || a2.anchorOffset !== e2.offset || a2.focusNode !== g2.node || a2.focusOffset !== g2.offset) && (b2 = b2.createRange(), b2.setStart(e2.node, e2.offset), a2.removeAllRanges(), f2 > d2 ? (a2.addRange(b2), a2.extend(g2.node, g2.offset)) : (b2.setEnd(g2.node, g2.offset), a2.addRange(b2)));
}
}
- b = [];
- for (a = c; a = a.parentNode; ) 1 === a.nodeType && b.push({ element: a, left: a.scrollLeft, top: a.scrollTop });
- "function" === typeof c.focus && c.focus();
- for (c = 0; c < b.length; c++) a = b[c], a.element.scrollLeft = a.left, a.element.scrollTop = a.top;
+ b2 = [];
+ for (a2 = c2; a2 = a2.parentNode; ) 1 === a2.nodeType && b2.push({ element: a2, left: a2.scrollLeft, top: a2.scrollTop });
+ "function" === typeof c2.focus && c2.focus();
+ for (c2 = 0; c2 < b2.length; c2++) a2 = b2[c2], a2.element.scrollLeft = a2.left, a2.element.scrollTop = a2.top;
}
}
-var Pe = ia && "documentMode" in document && 11 >= document.documentMode, Qe = null, Re = null, Se = null, Te = false;
-function Ue(a, b, c) {
- var d = c.window === c ? c.document : 9 === c.nodeType ? c : c.ownerDocument;
- Te || null == Qe || Qe !== Xa(d) || (d = Qe, "selectionStart" in d && Ne(d) ? d = { start: d.selectionStart, end: d.selectionEnd } : (d = (d.ownerDocument && d.ownerDocument.defaultView || window).getSelection(), d = { anchorNode: d.anchorNode, anchorOffset: d.anchorOffset, focusNode: d.focusNode, focusOffset: d.focusOffset }), Se && Ie(Se, d) || (Se = d, d = oe(Re, "onSelect"), 0 < d.length && (b = new td("onSelect", "select", null, b, c), a.push({ event: b, listeners: d }), b.target = Qe)));
+var Pe$1 = ia && "documentMode" in document && 11 >= document.documentMode, Qe$1 = null, Re$1 = null, Se$1 = null, Te$1 = false;
+function Ue$1(a2, b2, c2) {
+ var d2 = c2.window === c2 ? c2.document : 9 === c2.nodeType ? c2 : c2.ownerDocument;
+ Te$1 || null == Qe$1 || Qe$1 !== Xa(d2) || (d2 = Qe$1, "selectionStart" in d2 && Ne$1(d2) ? d2 = { start: d2.selectionStart, end: d2.selectionEnd } : (d2 = (d2.ownerDocument && d2.ownerDocument.defaultView || window).getSelection(), d2 = { anchorNode: d2.anchorNode, anchorOffset: d2.anchorOffset, focusNode: d2.focusNode, focusOffset: d2.focusOffset }), Se$1 && Ie$1(Se$1, d2) || (Se$1 = d2, d2 = oe$1(Re$1, "onSelect"), 0 < d2.length && (b2 = new td("onSelect", "select", null, b2, c2), a2.push({ event: b2, listeners: d2 }), b2.target = Qe$1)));
}
-function Ve(a, b) {
- var c = {};
- c[a.toLowerCase()] = b.toLowerCase();
- c["Webkit" + a] = "webkit" + b;
- c["Moz" + a] = "moz" + b;
- return c;
+function Ve$1(a2, b2) {
+ var c2 = {};
+ c2[a2.toLowerCase()] = b2.toLowerCase();
+ c2["Webkit" + a2] = "webkit" + b2;
+ c2["Moz" + a2] = "moz" + b2;
+ return c2;
}
-var We = { animationend: Ve("Animation", "AnimationEnd"), animationiteration: Ve("Animation", "AnimationIteration"), animationstart: Ve("Animation", "AnimationStart"), transitionend: Ve("Transition", "TransitionEnd") }, Xe = {}, Ye = {};
-ia && (Ye = document.createElement("div").style, "AnimationEvent" in window || (delete We.animationend.animation, delete We.animationiteration.animation, delete We.animationstart.animation), "TransitionEvent" in window || delete We.transitionend.transition);
-function Ze(a) {
- if (Xe[a]) return Xe[a];
- if (!We[a]) return a;
- var b = We[a], c;
- for (c in b) if (b.hasOwnProperty(c) && c in Ye) return Xe[a] = b[c];
- return a;
+var We$1 = { animationend: Ve$1("Animation", "AnimationEnd"), animationiteration: Ve$1("Animation", "AnimationIteration"), animationstart: Ve$1("Animation", "AnimationStart"), transitionend: Ve$1("Transition", "TransitionEnd") }, Xe$1 = {}, Ye$1 = {};
+ia && (Ye$1 = document.createElement("div").style, "AnimationEvent" in window || (delete We$1.animationend.animation, delete We$1.animationiteration.animation, delete We$1.animationstart.animation), "TransitionEvent" in window || delete We$1.transitionend.transition);
+function Ze$1(a2) {
+ if (Xe$1[a2]) return Xe$1[a2];
+ if (!We$1[a2]) return a2;
+ var b2 = We$1[a2], c2;
+ for (c2 in b2) if (b2.hasOwnProperty(c2) && c2 in Ye$1) return Xe$1[a2] = b2[c2];
+ return a2;
}
-var $e = Ze("animationend"), af = Ze("animationiteration"), bf = Ze("animationstart"), cf = Ze("transitionend"), df = /* @__PURE__ */ new Map(), ef = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");
-function ff(a, b) {
- df.set(a, b);
- fa(b, [a]);
+var $e$1 = Ze$1("animationend"), af = Ze$1("animationiteration"), bf = Ze$1("animationstart"), cf = Ze$1("transitionend"), df = /* @__PURE__ */ new Map(), ef = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");
+function ff(a2, b2) {
+ df.set(a2, b2);
+ fa(b2, [a2]);
}
for (var gf = 0; gf < ef.length; gf++) {
var hf = ef[gf], jf = hf.toLowerCase(), kf = hf[0].toUpperCase() + hf.slice(1);
ff(jf, "on" + kf);
}
-ff($e, "onAnimationEnd");
+ff($e$1, "onAnimationEnd");
ff(af, "onAnimationIteration");
ff(bf, "onAnimationStart");
ff("dblclick", "onDoubleClick");
@@ -2209,114 +2209,114 @@ fa("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown
fa("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" "));
fa("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" "));
var lf = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "), mf = new Set("cancel close invalid load scroll toggle".split(" ").concat(lf));
-function nf(a, b, c) {
- var d = a.type || "unknown-event";
- a.currentTarget = c;
- Ub(d, b, void 0, a);
- a.currentTarget = null;
-}
-function se(a, b) {
- b = 0 !== (b & 4);
- for (var c = 0; c < a.length; c++) {
- var d = a[c], e = d.event;
- d = d.listeners;
+function nf(a2, b2, c2) {
+ var d2 = a2.type || "unknown-event";
+ a2.currentTarget = c2;
+ Ub(d2, b2, void 0, a2);
+ a2.currentTarget = null;
+}
+function se$1(a2, b2) {
+ b2 = 0 !== (b2 & 4);
+ for (var c2 = 0; c2 < a2.length; c2++) {
+ var d2 = a2[c2], e2 = d2.event;
+ d2 = d2.listeners;
a: {
var f2 = void 0;
- if (b) for (var g = d.length - 1; 0 <= g; g--) {
- var h = d[g], k2 = h.instance, l2 = h.currentTarget;
- h = h.listener;
- if (k2 !== f2 && e.isPropagationStopped()) break a;
- nf(e, h, l2);
+ if (b2) for (var g2 = d2.length - 1; 0 <= g2; g2--) {
+ var h2 = d2[g2], k2 = h2.instance, l2 = h2.currentTarget;
+ h2 = h2.listener;
+ if (k2 !== f2 && e2.isPropagationStopped()) break a;
+ nf(e2, h2, l2);
f2 = k2;
}
- else for (g = 0; g < d.length; g++) {
- h = d[g];
- k2 = h.instance;
- l2 = h.currentTarget;
- h = h.listener;
- if (k2 !== f2 && e.isPropagationStopped()) break a;
- nf(e, h, l2);
+ else for (g2 = 0; g2 < d2.length; g2++) {
+ h2 = d2[g2];
+ k2 = h2.instance;
+ l2 = h2.currentTarget;
+ h2 = h2.listener;
+ if (k2 !== f2 && e2.isPropagationStopped()) break a;
+ nf(e2, h2, l2);
f2 = k2;
}
}
}
- if (Qb) throw a = Rb, Qb = false, Rb = null, a;
+ if (Qb) throw a2 = Rb, Qb = false, Rb = null, a2;
}
-function D(a, b) {
- var c = b[of];
- void 0 === c && (c = b[of] = /* @__PURE__ */ new Set());
- var d = a + "__bubble";
- c.has(d) || (pf(b, a, 2, false), c.add(d));
+function D$1(a2, b2) {
+ var c2 = b2[of];
+ void 0 === c2 && (c2 = b2[of] = /* @__PURE__ */ new Set());
+ var d2 = a2 + "__bubble";
+ c2.has(d2) || (pf(b2, a2, 2, false), c2.add(d2));
}
-function qf(a, b, c) {
- var d = 0;
- b && (d |= 4);
- pf(c, a, d, b);
+function qf(a2, b2, c2) {
+ var d2 = 0;
+ b2 && (d2 |= 4);
+ pf(c2, a2, d2, b2);
}
var rf = "_reactListening" + Math.random().toString(36).slice(2);
-function sf(a) {
- if (!a[rf]) {
- a[rf] = true;
- da.forEach(function(b2) {
- "selectionchange" !== b2 && (mf.has(b2) || qf(b2, false, a), qf(b2, true, a));
+function sf(a2) {
+ if (!a2[rf]) {
+ a2[rf] = true;
+ da.forEach(function(b3) {
+ "selectionchange" !== b3 && (mf.has(b3) || qf(b3, false, a2), qf(b3, true, a2));
});
- var b = 9 === a.nodeType ? a : a.ownerDocument;
- null === b || b[rf] || (b[rf] = true, qf("selectionchange", false, b));
+ var b2 = 9 === a2.nodeType ? a2 : a2.ownerDocument;
+ null === b2 || b2[rf] || (b2[rf] = true, qf("selectionchange", false, b2));
}
}
-function pf(a, b, c, d) {
- switch (jd(b)) {
+function pf(a2, b2, c2, d2) {
+ switch (jd(b2)) {
case 1:
- var e = ed;
+ var e2 = ed;
break;
case 4:
- e = gd;
+ e2 = gd;
break;
default:
- e = fd;
- }
- c = e.bind(null, b, c, a);
- e = void 0;
- !Lb || "touchstart" !== b && "touchmove" !== b && "wheel" !== b || (e = true);
- d ? void 0 !== e ? a.addEventListener(b, c, { capture: true, passive: e }) : a.addEventListener(b, c, true) : void 0 !== e ? a.addEventListener(b, c, { passive: e }) : a.addEventListener(b, c, false);
-}
-function hd(a, b, c, d, e) {
- var f2 = d;
- if (0 === (b & 1) && 0 === (b & 2) && null !== d) a: for (; ; ) {
- if (null === d) return;
- var g = d.tag;
- if (3 === g || 4 === g) {
- var h = d.stateNode.containerInfo;
- if (h === e || 8 === h.nodeType && h.parentNode === e) break;
- if (4 === g) for (g = d.return; null !== g; ) {
- var k2 = g.tag;
+ e2 = fd;
+ }
+ c2 = e2.bind(null, b2, c2, a2);
+ e2 = void 0;
+ !Lb || "touchstart" !== b2 && "touchmove" !== b2 && "wheel" !== b2 || (e2 = true);
+ d2 ? void 0 !== e2 ? a2.addEventListener(b2, c2, { capture: true, passive: e2 }) : a2.addEventListener(b2, c2, true) : void 0 !== e2 ? a2.addEventListener(b2, c2, { passive: e2 }) : a2.addEventListener(b2, c2, false);
+}
+function hd(a2, b2, c2, d2, e2) {
+ var f2 = d2;
+ if (0 === (b2 & 1) && 0 === (b2 & 2) && null !== d2) a: for (; ; ) {
+ if (null === d2) return;
+ var g2 = d2.tag;
+ if (3 === g2 || 4 === g2) {
+ var h2 = d2.stateNode.containerInfo;
+ if (h2 === e2 || 8 === h2.nodeType && h2.parentNode === e2) break;
+ if (4 === g2) for (g2 = d2.return; null !== g2; ) {
+ var k2 = g2.tag;
if (3 === k2 || 4 === k2) {
- if (k2 = g.stateNode.containerInfo, k2 === e || 8 === k2.nodeType && k2.parentNode === e) return;
+ if (k2 = g2.stateNode.containerInfo, k2 === e2 || 8 === k2.nodeType && k2.parentNode === e2) return;
}
- g = g.return;
+ g2 = g2.return;
}
- for (; null !== h; ) {
- g = Wc(h);
- if (null === g) return;
- k2 = g.tag;
+ for (; null !== h2; ) {
+ g2 = Wc(h2);
+ if (null === g2) return;
+ k2 = g2.tag;
if (5 === k2 || 6 === k2) {
- d = f2 = g;
+ d2 = f2 = g2;
continue a;
}
- h = h.parentNode;
+ h2 = h2.parentNode;
}
}
- d = d.return;
+ d2 = d2.return;
}
Jb(function() {
- var d2 = f2, e2 = xb(c), g2 = [];
+ var d3 = f2, e3 = xb(c2), g3 = [];
a: {
- var h3 = df.get(a);
+ var h3 = df.get(a2);
if (void 0 !== h3) {
- var k3 = td, n2 = a;
- switch (a) {
+ var k3 = td, n2 = a2;
+ switch (a2) {
case "keypress":
- if (0 === od(c)) break a;
+ if (0 === od(c2)) break a;
case "keydown":
case "keyup":
k3 = Rd;
@@ -2334,7 +2334,7 @@ function hd(a, b, c, d, e) {
k3 = Fd;
break;
case "click":
- if (2 === c.button) break a;
+ if (2 === c2.button) break a;
case "auxclick":
case "dblclick":
case "mousedown":
@@ -2361,7 +2361,7 @@ function hd(a, b, c, d, e) {
case "touchstart":
k3 = Vd;
break;
- case $e:
+ case $e$1:
case af:
case bf:
k3 = Hd;
@@ -2390,41 +2390,41 @@ function hd(a, b, c, d, e) {
case "pointerup":
k3 = Td;
}
- var t2 = 0 !== (b & 4), J2 = !t2 && "scroll" === a, x2 = t2 ? null !== h3 ? h3 + "Capture" : null : h3;
+ var t2 = 0 !== (b2 & 4), J2 = !t2 && "scroll" === a2, x2 = t2 ? null !== h3 ? h3 + "Capture" : null : h3;
t2 = [];
- for (var w2 = d2, u2; null !== w2; ) {
+ for (var w2 = d3, u2; null !== w2; ) {
u2 = w2;
var F2 = u2.stateNode;
5 === u2.tag && null !== F2 && (u2 = F2, null !== x2 && (F2 = Kb(w2, x2), null != F2 && t2.push(tf(w2, F2, u2))));
if (J2) break;
w2 = w2.return;
}
- 0 < t2.length && (h3 = new k3(h3, n2, null, c, e2), g2.push({ event: h3, listeners: t2 }));
+ 0 < t2.length && (h3 = new k3(h3, n2, null, c2, e3), g3.push({ event: h3, listeners: t2 }));
}
}
- if (0 === (b & 7)) {
+ if (0 === (b2 & 7)) {
a: {
- h3 = "mouseover" === a || "pointerover" === a;
- k3 = "mouseout" === a || "pointerout" === a;
- if (h3 && c !== wb && (n2 = c.relatedTarget || c.fromElement) && (Wc(n2) || n2[uf])) break a;
+ h3 = "mouseover" === a2 || "pointerover" === a2;
+ k3 = "mouseout" === a2 || "pointerout" === a2;
+ if (h3 && c2 !== wb && (n2 = c2.relatedTarget || c2.fromElement) && (Wc(n2) || n2[uf])) break a;
if (k3 || h3) {
- h3 = e2.window === e2 ? e2 : (h3 = e2.ownerDocument) ? h3.defaultView || h3.parentWindow : window;
+ h3 = e3.window === e3 ? e3 : (h3 = e3.ownerDocument) ? h3.defaultView || h3.parentWindow : window;
if (k3) {
- if (n2 = c.relatedTarget || c.toElement, k3 = d2, n2 = n2 ? Wc(n2) : null, null !== n2 && (J2 = Vb(n2), n2 !== J2 || 5 !== n2.tag && 6 !== n2.tag)) n2 = null;
- } else k3 = null, n2 = d2;
+ if (n2 = c2.relatedTarget || c2.toElement, k3 = d3, n2 = n2 ? Wc(n2) : null, null !== n2 && (J2 = Vb(n2), n2 !== J2 || 5 !== n2.tag && 6 !== n2.tag)) n2 = null;
+ } else k3 = null, n2 = d3;
if (k3 !== n2) {
t2 = Bd;
F2 = "onMouseLeave";
x2 = "onMouseEnter";
w2 = "mouse";
- if ("pointerout" === a || "pointerover" === a) t2 = Td, F2 = "onPointerLeave", x2 = "onPointerEnter", w2 = "pointer";
- J2 = null == k3 ? h3 : ue(k3);
- u2 = null == n2 ? h3 : ue(n2);
- h3 = new t2(F2, w2 + "leave", k3, c, e2);
+ if ("pointerout" === a2 || "pointerover" === a2) t2 = Td, F2 = "onPointerLeave", x2 = "onPointerEnter", w2 = "pointer";
+ J2 = null == k3 ? h3 : ue$1(k3);
+ u2 = null == n2 ? h3 : ue$1(n2);
+ h3 = new t2(F2, w2 + "leave", k3, c2, e3);
h3.target = J2;
h3.relatedTarget = u2;
F2 = null;
- Wc(e2) === d2 && (t2 = new t2(x2, w2 + "enter", n2, c, e2), t2.target = u2, t2.relatedTarget = J2, F2 = t2);
+ Wc(e3) === d3 && (t2 = new t2(x2, w2 + "enter", n2, c2, e3), t2.target = u2, t2.relatedTarget = J2, F2 = t2);
J2 = F2;
if (k3 && n2) b: {
t2 = k3;
@@ -2443,54 +2443,54 @@ function hd(a, b, c, d, e) {
t2 = null;
}
else t2 = null;
- null !== k3 && wf(g2, h3, k3, t2, false);
- null !== n2 && null !== J2 && wf(g2, J2, n2, t2, true);
+ null !== k3 && wf(g3, h3, k3, t2, false);
+ null !== n2 && null !== J2 && wf(g3, J2, n2, t2, true);
}
}
}
a: {
- h3 = d2 ? ue(d2) : window;
+ h3 = d3 ? ue$1(d3) : window;
k3 = h3.nodeName && h3.nodeName.toLowerCase();
- if ("select" === k3 || "input" === k3 && "file" === h3.type) var na = ve;
- else if (me(h3)) if (we) na = Fe;
+ if ("select" === k3 || "input" === k3 && "file" === h3.type) var na = ve$1;
+ else if (me$1(h3)) if (we$1) na = Fe$1;
else {
- na = De;
- var xa = Ce;
+ na = De$1;
+ var xa = Ce$1;
}
- else (k3 = h3.nodeName) && "input" === k3.toLowerCase() && ("checkbox" === h3.type || "radio" === h3.type) && (na = Ee);
- if (na && (na = na(a, d2))) {
- ne(g2, na, c, e2);
+ else (k3 = h3.nodeName) && "input" === k3.toLowerCase() && ("checkbox" === h3.type || "radio" === h3.type) && (na = Ee$1);
+ if (na && (na = na(a2, d3))) {
+ ne$1(g3, na, c2, e3);
break a;
}
- xa && xa(a, h3, d2);
- "focusout" === a && (xa = h3._wrapperState) && xa.controlled && "number" === h3.type && cb(h3, "number", h3.value);
+ xa && xa(a2, h3, d3);
+ "focusout" === a2 && (xa = h3._wrapperState) && xa.controlled && "number" === h3.type && cb(h3, "number", h3.value);
}
- xa = d2 ? ue(d2) : window;
- switch (a) {
+ xa = d3 ? ue$1(d3) : window;
+ switch (a2) {
case "focusin":
- if (me(xa) || "true" === xa.contentEditable) Qe = xa, Re = d2, Se = null;
+ if (me$1(xa) || "true" === xa.contentEditable) Qe$1 = xa, Re$1 = d3, Se$1 = null;
break;
case "focusout":
- Se = Re = Qe = null;
+ Se$1 = Re$1 = Qe$1 = null;
break;
case "mousedown":
- Te = true;
+ Te$1 = true;
break;
case "contextmenu":
case "mouseup":
case "dragend":
- Te = false;
- Ue(g2, c, e2);
+ Te$1 = false;
+ Ue$1(g3, c2, e3);
break;
case "selectionchange":
- if (Pe) break;
+ if (Pe$1) break;
case "keydown":
case "keyup":
- Ue(g2, c, e2);
+ Ue$1(g3, c2, e3);
}
var $a;
- if (ae) b: {
- switch (a) {
+ if (ae$1) b: {
+ switch (a2) {
case "compositionstart":
var ba = "onCompositionStart";
break b;
@@ -2503,621 +2503,621 @@ function hd(a, b, c, d, e) {
}
ba = void 0;
}
- else ie ? ge(a, c) && (ba = "onCompositionEnd") : "keydown" === a && 229 === c.keyCode && (ba = "onCompositionStart");
- ba && (de && "ko" !== c.locale && (ie || "onCompositionStart" !== ba ? "onCompositionEnd" === ba && ie && ($a = nd()) : (kd = e2, ld = "value" in kd ? kd.value : kd.textContent, ie = true)), xa = oe(d2, ba), 0 < xa.length && (ba = new Ld(ba, a, null, c, e2), g2.push({ event: ba, listeners: xa }), $a ? ba.data = $a : ($a = he(c), null !== $a && (ba.data = $a))));
- if ($a = ce ? je(a, c) : ke(a, c)) d2 = oe(d2, "onBeforeInput"), 0 < d2.length && (e2 = new Ld("onBeforeInput", "beforeinput", null, c, e2), g2.push({ event: e2, listeners: d2 }), e2.data = $a);
+ else ie$1 ? ge$1(a2, c2) && (ba = "onCompositionEnd") : "keydown" === a2 && 229 === c2.keyCode && (ba = "onCompositionStart");
+ ba && (de$1 && "ko" !== c2.locale && (ie$1 || "onCompositionStart" !== ba ? "onCompositionEnd" === ba && ie$1 && ($a = nd()) : (kd = e3, ld = "value" in kd ? kd.value : kd.textContent, ie$1 = true)), xa = oe$1(d3, ba), 0 < xa.length && (ba = new Ld(ba, a2, null, c2, e3), g3.push({ event: ba, listeners: xa }), $a ? ba.data = $a : ($a = he$1(c2), null !== $a && (ba.data = $a))));
+ if ($a = ce$1 ? je$1(a2, c2) : ke$1(a2, c2)) d3 = oe$1(d3, "onBeforeInput"), 0 < d3.length && (e3 = new Ld("onBeforeInput", "beforeinput", null, c2, e3), g3.push({ event: e3, listeners: d3 }), e3.data = $a);
}
- se(g2, b);
+ se$1(g3, b2);
});
}
-function tf(a, b, c) {
- return { instance: a, listener: b, currentTarget: c };
+function tf(a2, b2, c2) {
+ return { instance: a2, listener: b2, currentTarget: c2 };
}
-function oe(a, b) {
- for (var c = b + "Capture", d = []; null !== a; ) {
- var e = a, f2 = e.stateNode;
- 5 === e.tag && null !== f2 && (e = f2, f2 = Kb(a, c), null != f2 && d.unshift(tf(a, f2, e)), f2 = Kb(a, b), null != f2 && d.push(tf(a, f2, e)));
- a = a.return;
+function oe$1(a2, b2) {
+ for (var c2 = b2 + "Capture", d2 = []; null !== a2; ) {
+ var e2 = a2, f2 = e2.stateNode;
+ 5 === e2.tag && null !== f2 && (e2 = f2, f2 = Kb(a2, c2), null != f2 && d2.unshift(tf(a2, f2, e2)), f2 = Kb(a2, b2), null != f2 && d2.push(tf(a2, f2, e2)));
+ a2 = a2.return;
}
- return d;
+ return d2;
}
-function vf(a) {
- if (null === a) return null;
+function vf(a2) {
+ if (null === a2) return null;
do
- a = a.return;
- while (a && 5 !== a.tag);
- return a ? a : null;
+ a2 = a2.return;
+ while (a2 && 5 !== a2.tag);
+ return a2 ? a2 : null;
}
-function wf(a, b, c, d, e) {
- for (var f2 = b._reactName, g = []; null !== c && c !== d; ) {
- var h = c, k2 = h.alternate, l2 = h.stateNode;
- if (null !== k2 && k2 === d) break;
- 5 === h.tag && null !== l2 && (h = l2, e ? (k2 = Kb(c, f2), null != k2 && g.unshift(tf(c, k2, h))) : e || (k2 = Kb(c, f2), null != k2 && g.push(tf(c, k2, h))));
- c = c.return;
- }
- 0 !== g.length && a.push({ event: b, listeners: g });
+function wf(a2, b2, c2, d2, e2) {
+ for (var f2 = b2._reactName, g2 = []; null !== c2 && c2 !== d2; ) {
+ var h2 = c2, k2 = h2.alternate, l2 = h2.stateNode;
+ if (null !== k2 && k2 === d2) break;
+ 5 === h2.tag && null !== l2 && (h2 = l2, e2 ? (k2 = Kb(c2, f2), null != k2 && g2.unshift(tf(c2, k2, h2))) : e2 || (k2 = Kb(c2, f2), null != k2 && g2.push(tf(c2, k2, h2))));
+ c2 = c2.return;
+ }
+ 0 !== g2.length && a2.push({ event: b2, listeners: g2 });
}
var xf = /\r\n?/g, yf = /\u0000|\uFFFD/g;
-function zf(a) {
- return ("string" === typeof a ? a : "" + a).replace(xf, "\n").replace(yf, "");
+function zf(a2) {
+ return ("string" === typeof a2 ? a2 : "" + a2).replace(xf, "\n").replace(yf, "");
}
-function Af(a, b, c) {
- b = zf(b);
- if (zf(a) !== b && c) throw Error(p(425));
+function Af(a2, b2, c2) {
+ b2 = zf(b2);
+ if (zf(a2) !== b2 && c2) throw Error(p$1(425));
}
function Bf() {
}
var Cf = null, Df = null;
-function Ef(a, b) {
- return "textarea" === a || "noscript" === a || "string" === typeof b.children || "number" === typeof b.children || "object" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;
+function Ef(a2, b2) {
+ return "textarea" === a2 || "noscript" === a2 || "string" === typeof b2.children || "number" === typeof b2.children || "object" === typeof b2.dangerouslySetInnerHTML && null !== b2.dangerouslySetInnerHTML && null != b2.dangerouslySetInnerHTML.__html;
}
-var Ff = "function" === typeof setTimeout ? setTimeout : void 0, Gf = "function" === typeof clearTimeout ? clearTimeout : void 0, Hf = "function" === typeof Promise ? Promise : void 0, Jf = "function" === typeof queueMicrotask ? queueMicrotask : "undefined" !== typeof Hf ? function(a) {
- return Hf.resolve(null).then(a).catch(If);
+var Ff = "function" === typeof setTimeout ? setTimeout : void 0, Gf = "function" === typeof clearTimeout ? clearTimeout : void 0, Hf = "function" === typeof Promise ? Promise : void 0, Jf = "function" === typeof queueMicrotask ? queueMicrotask : "undefined" !== typeof Hf ? function(a2) {
+ return Hf.resolve(null).then(a2).catch(If);
} : Ff;
-function If(a) {
+function If(a2) {
setTimeout(function() {
- throw a;
+ throw a2;
});
}
-function Kf(a, b) {
- var c = b, d = 0;
+function Kf(a2, b2) {
+ var c2 = b2, d2 = 0;
do {
- var e = c.nextSibling;
- a.removeChild(c);
- if (e && 8 === e.nodeType) if (c = e.data, "/$" === c) {
- if (0 === d) {
- a.removeChild(e);
- bd(b);
+ var e2 = c2.nextSibling;
+ a2.removeChild(c2);
+ if (e2 && 8 === e2.nodeType) if (c2 = e2.data, "/$" === c2) {
+ if (0 === d2) {
+ a2.removeChild(e2);
+ bd(b2);
return;
}
- d--;
- } else "$" !== c && "$?" !== c && "$!" !== c || d++;
- c = e;
- } while (c);
- bd(b);
+ d2--;
+ } else "$" !== c2 && "$?" !== c2 && "$!" !== c2 || d2++;
+ c2 = e2;
+ } while (c2);
+ bd(b2);
}
-function Lf(a) {
- for (; null != a; a = a.nextSibling) {
- var b = a.nodeType;
- if (1 === b || 3 === b) break;
- if (8 === b) {
- b = a.data;
- if ("$" === b || "$!" === b || "$?" === b) break;
- if ("/$" === b) return null;
+function Lf(a2) {
+ for (; null != a2; a2 = a2.nextSibling) {
+ var b2 = a2.nodeType;
+ if (1 === b2 || 3 === b2) break;
+ if (8 === b2) {
+ b2 = a2.data;
+ if ("$" === b2 || "$!" === b2 || "$?" === b2) break;
+ if ("/$" === b2) return null;
}
}
- return a;
+ return a2;
}
-function Mf(a) {
- a = a.previousSibling;
- for (var b = 0; a; ) {
- if (8 === a.nodeType) {
- var c = a.data;
- if ("$" === c || "$!" === c || "$?" === c) {
- if (0 === b) return a;
- b--;
- } else "/$" === c && b++;
+function Mf(a2) {
+ a2 = a2.previousSibling;
+ for (var b2 = 0; a2; ) {
+ if (8 === a2.nodeType) {
+ var c2 = a2.data;
+ if ("$" === c2 || "$!" === c2 || "$?" === c2) {
+ if (0 === b2) return a2;
+ b2--;
+ } else "/$" === c2 && b2++;
}
- a = a.previousSibling;
+ a2 = a2.previousSibling;
}
return null;
}
var Nf = Math.random().toString(36).slice(2), Of = "__reactFiber$" + Nf, Pf = "__reactProps$" + Nf, uf = "__reactContainer$" + Nf, of = "__reactEvents$" + Nf, Qf = "__reactListeners$" + Nf, Rf = "__reactHandles$" + Nf;
-function Wc(a) {
- var b = a[Of];
- if (b) return b;
- for (var c = a.parentNode; c; ) {
- if (b = c[uf] || c[Of]) {
- c = b.alternate;
- if (null !== b.child || null !== c && null !== c.child) for (a = Mf(a); null !== a; ) {
- if (c = a[Of]) return c;
- a = Mf(a);
+function Wc(a2) {
+ var b2 = a2[Of];
+ if (b2) return b2;
+ for (var c2 = a2.parentNode; c2; ) {
+ if (b2 = c2[uf] || c2[Of]) {
+ c2 = b2.alternate;
+ if (null !== b2.child || null !== c2 && null !== c2.child) for (a2 = Mf(a2); null !== a2; ) {
+ if (c2 = a2[Of]) return c2;
+ a2 = Mf(a2);
}
- return b;
+ return b2;
}
- a = c;
- c = a.parentNode;
+ a2 = c2;
+ c2 = a2.parentNode;
}
return null;
}
-function Cb(a) {
- a = a[Of] || a[uf];
- return !a || 5 !== a.tag && 6 !== a.tag && 13 !== a.tag && 3 !== a.tag ? null : a;
+function Cb(a2) {
+ a2 = a2[Of] || a2[uf];
+ return !a2 || 5 !== a2.tag && 6 !== a2.tag && 13 !== a2.tag && 3 !== a2.tag ? null : a2;
}
-function ue(a) {
- if (5 === a.tag || 6 === a.tag) return a.stateNode;
- throw Error(p(33));
+function ue$1(a2) {
+ if (5 === a2.tag || 6 === a2.tag) return a2.stateNode;
+ throw Error(p$1(33));
}
-function Db(a) {
- return a[Pf] || null;
+function Db(a2) {
+ return a2[Pf] || null;
}
var Sf = [], Tf = -1;
-function Uf(a) {
- return { current: a };
+function Uf(a2) {
+ return { current: a2 };
}
-function E(a) {
- 0 > Tf || (a.current = Sf[Tf], Sf[Tf] = null, Tf--);
+function E$1(a2) {
+ 0 > Tf || (a2.current = Sf[Tf], Sf[Tf] = null, Tf--);
}
-function G(a, b) {
+function G$1(a2, b2) {
Tf++;
- Sf[Tf] = a.current;
- a.current = b;
-}
-var Vf = {}, H = Uf(Vf), Wf = Uf(false), Xf = Vf;
-function Yf(a, b) {
- var c = a.type.contextTypes;
- if (!c) return Vf;
- var d = a.stateNode;
- if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;
- var e = {}, f2;
- for (f2 in c) e[f2] = b[f2];
- d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);
- return e;
-}
-function Zf(a) {
- a = a.childContextTypes;
- return null !== a && void 0 !== a;
+ Sf[Tf] = a2.current;
+ a2.current = b2;
+}
+var Vf = {}, H$1 = Uf(Vf), Wf = Uf(false), Xf = Vf;
+function Yf(a2, b2) {
+ var c2 = a2.type.contextTypes;
+ if (!c2) return Vf;
+ var d2 = a2.stateNode;
+ if (d2 && d2.__reactInternalMemoizedUnmaskedChildContext === b2) return d2.__reactInternalMemoizedMaskedChildContext;
+ var e2 = {}, f2;
+ for (f2 in c2) e2[f2] = b2[f2];
+ d2 && (a2 = a2.stateNode, a2.__reactInternalMemoizedUnmaskedChildContext = b2, a2.__reactInternalMemoizedMaskedChildContext = e2);
+ return e2;
+}
+function Zf(a2) {
+ a2 = a2.childContextTypes;
+ return null !== a2 && void 0 !== a2;
}
function $f() {
- E(Wf);
- E(H);
-}
-function ag(a, b, c) {
- if (H.current !== Vf) throw Error(p(168));
- G(H, b);
- G(Wf, c);
-}
-function bg(a, b, c) {
- var d = a.stateNode;
- b = b.childContextTypes;
- if ("function" !== typeof d.getChildContext) return c;
- d = d.getChildContext();
- for (var e in d) if (!(e in b)) throw Error(p(108, Ra(a) || "Unknown", e));
- return A({}, c, d);
-}
-function cg(a) {
- a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Vf;
- Xf = H.current;
- G(H, a);
- G(Wf, Wf.current);
+ E$1(Wf);
+ E$1(H$1);
+}
+function ag(a2, b2, c2) {
+ if (H$1.current !== Vf) throw Error(p$1(168));
+ G$1(H$1, b2);
+ G$1(Wf, c2);
+}
+function bg(a2, b2, c2) {
+ var d2 = a2.stateNode;
+ b2 = b2.childContextTypes;
+ if ("function" !== typeof d2.getChildContext) return c2;
+ d2 = d2.getChildContext();
+ for (var e2 in d2) if (!(e2 in b2)) throw Error(p$1(108, Ra(a2) || "Unknown", e2));
+ return A$1({}, c2, d2);
+}
+function cg(a2) {
+ a2 = (a2 = a2.stateNode) && a2.__reactInternalMemoizedMergedChildContext || Vf;
+ Xf = H$1.current;
+ G$1(H$1, a2);
+ G$1(Wf, Wf.current);
return true;
}
-function dg(a, b, c) {
- var d = a.stateNode;
- if (!d) throw Error(p(169));
- c ? (a = bg(a, b, Xf), d.__reactInternalMemoizedMergedChildContext = a, E(Wf), E(H), G(H, a)) : E(Wf);
- G(Wf, c);
+function dg(a2, b2, c2) {
+ var d2 = a2.stateNode;
+ if (!d2) throw Error(p$1(169));
+ c2 ? (a2 = bg(a2, b2, Xf), d2.__reactInternalMemoizedMergedChildContext = a2, E$1(Wf), E$1(H$1), G$1(H$1, a2)) : E$1(Wf);
+ G$1(Wf, c2);
}
var eg = null, fg = false, gg = false;
-function hg(a) {
- null === eg ? eg = [a] : eg.push(a);
+function hg(a2) {
+ null === eg ? eg = [a2] : eg.push(a2);
}
-function ig(a) {
+function ig(a2) {
fg = true;
- hg(a);
+ hg(a2);
}
function jg() {
if (!gg && null !== eg) {
gg = true;
- var a = 0, b = C;
+ var a2 = 0, b2 = C$1;
try {
- var c = eg;
- for (C = 1; a < c.length; a++) {
- var d = c[a];
+ var c2 = eg;
+ for (C$1 = 1; a2 < c2.length; a2++) {
+ var d2 = c2[a2];
do
- d = d(true);
- while (null !== d);
+ d2 = d2(true);
+ while (null !== d2);
}
eg = null;
fg = false;
- } catch (e) {
- throw null !== eg && (eg = eg.slice(a + 1)), ac(fc, jg), e;
+ } catch (e2) {
+ throw null !== eg && (eg = eg.slice(a2 + 1)), ac(fc, jg), e2;
} finally {
- C = b, gg = false;
+ C$1 = b2, gg = false;
}
}
return null;
}
var kg = [], lg = 0, mg = null, ng = 0, og = [], pg = 0, qg = null, rg = 1, sg = "";
-function tg(a, b) {
+function tg(a2, b2) {
kg[lg++] = ng;
kg[lg++] = mg;
- mg = a;
- ng = b;
+ mg = a2;
+ ng = b2;
}
-function ug(a, b, c) {
+function ug(a2, b2, c2) {
og[pg++] = rg;
og[pg++] = sg;
og[pg++] = qg;
- qg = a;
- var d = rg;
- a = sg;
- var e = 32 - oc(d) - 1;
- d &= ~(1 << e);
- c += 1;
- var f2 = 32 - oc(b) + e;
+ qg = a2;
+ var d2 = rg;
+ a2 = sg;
+ var e2 = 32 - oc(d2) - 1;
+ d2 &= ~(1 << e2);
+ c2 += 1;
+ var f2 = 32 - oc(b2) + e2;
if (30 < f2) {
- var g = e - e % 5;
- f2 = (d & (1 << g) - 1).toString(32);
- d >>= g;
- e -= g;
- rg = 1 << 32 - oc(b) + e | c << e | d;
- sg = f2 + a;
- } else rg = 1 << f2 | c << e | d, sg = a;
-}
-function vg(a) {
- null !== a.return && (tg(a, 1), ug(a, 1, 0));
-}
-function wg(a) {
- for (; a === mg; ) mg = kg[--lg], kg[lg] = null, ng = kg[--lg], kg[lg] = null;
- for (; a === qg; ) qg = og[--pg], og[pg] = null, sg = og[--pg], og[pg] = null, rg = og[--pg], og[pg] = null;
-}
-var xg = null, yg = null, I = false, zg = null;
-function Ag(a, b) {
- var c = Bg(5, null, null, 0);
- c.elementType = "DELETED";
- c.stateNode = b;
- c.return = a;
- b = a.deletions;
- null === b ? (a.deletions = [c], a.flags |= 16) : b.push(c);
-}
-function Cg(a, b) {
- switch (a.tag) {
+ var g2 = e2 - e2 % 5;
+ f2 = (d2 & (1 << g2) - 1).toString(32);
+ d2 >>= g2;
+ e2 -= g2;
+ rg = 1 << 32 - oc(b2) + e2 | c2 << e2 | d2;
+ sg = f2 + a2;
+ } else rg = 1 << f2 | c2 << e2 | d2, sg = a2;
+}
+function vg(a2) {
+ null !== a2.return && (tg(a2, 1), ug(a2, 1, 0));
+}
+function wg(a2) {
+ for (; a2 === mg; ) mg = kg[--lg], kg[lg] = null, ng = kg[--lg], kg[lg] = null;
+ for (; a2 === qg; ) qg = og[--pg], og[pg] = null, sg = og[--pg], og[pg] = null, rg = og[--pg], og[pg] = null;
+}
+var xg = null, yg = null, I$1 = false, zg = null;
+function Ag(a2, b2) {
+ var c2 = Bg(5, null, null, 0);
+ c2.elementType = "DELETED";
+ c2.stateNode = b2;
+ c2.return = a2;
+ b2 = a2.deletions;
+ null === b2 ? (a2.deletions = [c2], a2.flags |= 16) : b2.push(c2);
+}
+function Cg(a2, b2) {
+ switch (a2.tag) {
case 5:
- var c = a.type;
- b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;
- return null !== b ? (a.stateNode = b, xg = a, yg = Lf(b.firstChild), true) : false;
+ var c2 = a2.type;
+ b2 = 1 !== b2.nodeType || c2.toLowerCase() !== b2.nodeName.toLowerCase() ? null : b2;
+ return null !== b2 ? (a2.stateNode = b2, xg = a2, yg = Lf(b2.firstChild), true) : false;
case 6:
- return b = "" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, xg = a, yg = null, true) : false;
+ return b2 = "" === a2.pendingProps || 3 !== b2.nodeType ? null : b2, null !== b2 ? (a2.stateNode = b2, xg = a2, yg = null, true) : false;
case 13:
- return b = 8 !== b.nodeType ? null : b, null !== b ? (c = null !== qg ? { id: rg, overflow: sg } : null, a.memoizedState = { dehydrated: b, treeContext: c, retryLane: 1073741824 }, c = Bg(18, null, null, 0), c.stateNode = b, c.return = a, a.child = c, xg = a, yg = null, true) : false;
+ return b2 = 8 !== b2.nodeType ? null : b2, null !== b2 ? (c2 = null !== qg ? { id: rg, overflow: sg } : null, a2.memoizedState = { dehydrated: b2, treeContext: c2, retryLane: 1073741824 }, c2 = Bg(18, null, null, 0), c2.stateNode = b2, c2.return = a2, a2.child = c2, xg = a2, yg = null, true) : false;
default:
return false;
}
}
-function Dg(a) {
- return 0 !== (a.mode & 1) && 0 === (a.flags & 128);
+function Dg(a2) {
+ return 0 !== (a2.mode & 1) && 0 === (a2.flags & 128);
}
-function Eg(a) {
- if (I) {
- var b = yg;
- if (b) {
- var c = b;
- if (!Cg(a, b)) {
- if (Dg(a)) throw Error(p(418));
- b = Lf(c.nextSibling);
- var d = xg;
- b && Cg(a, b) ? Ag(d, c) : (a.flags = a.flags & -4097 | 2, I = false, xg = a);
+function Eg(a2) {
+ if (I$1) {
+ var b2 = yg;
+ if (b2) {
+ var c2 = b2;
+ if (!Cg(a2, b2)) {
+ if (Dg(a2)) throw Error(p$1(418));
+ b2 = Lf(c2.nextSibling);
+ var d2 = xg;
+ b2 && Cg(a2, b2) ? Ag(d2, c2) : (a2.flags = a2.flags & -4097 | 2, I$1 = false, xg = a2);
}
} else {
- if (Dg(a)) throw Error(p(418));
- a.flags = a.flags & -4097 | 2;
- I = false;
- xg = a;
- }
- }
-}
-function Fg(a) {
- for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag; ) a = a.return;
- xg = a;
-}
-function Gg(a) {
- if (a !== xg) return false;
- if (!I) return Fg(a), I = true, false;
- var b;
- (b = 3 !== a.tag) && !(b = 5 !== a.tag) && (b = a.type, b = "head" !== b && "body" !== b && !Ef(a.type, a.memoizedProps));
- if (b && (b = yg)) {
- if (Dg(a)) throw Hg(), Error(p(418));
- for (; b; ) Ag(a, b), b = Lf(b.nextSibling);
- }
- Fg(a);
- if (13 === a.tag) {
- a = a.memoizedState;
- a = null !== a ? a.dehydrated : null;
- if (!a) throw Error(p(317));
+ if (Dg(a2)) throw Error(p$1(418));
+ a2.flags = a2.flags & -4097 | 2;
+ I$1 = false;
+ xg = a2;
+ }
+ }
+}
+function Fg(a2) {
+ for (a2 = a2.return; null !== a2 && 5 !== a2.tag && 3 !== a2.tag && 13 !== a2.tag; ) a2 = a2.return;
+ xg = a2;
+}
+function Gg(a2) {
+ if (a2 !== xg) return false;
+ if (!I$1) return Fg(a2), I$1 = true, false;
+ var b2;
+ (b2 = 3 !== a2.tag) && !(b2 = 5 !== a2.tag) && (b2 = a2.type, b2 = "head" !== b2 && "body" !== b2 && !Ef(a2.type, a2.memoizedProps));
+ if (b2 && (b2 = yg)) {
+ if (Dg(a2)) throw Hg(), Error(p$1(418));
+ for (; b2; ) Ag(a2, b2), b2 = Lf(b2.nextSibling);
+ }
+ Fg(a2);
+ if (13 === a2.tag) {
+ a2 = a2.memoizedState;
+ a2 = null !== a2 ? a2.dehydrated : null;
+ if (!a2) throw Error(p$1(317));
a: {
- a = a.nextSibling;
- for (b = 0; a; ) {
- if (8 === a.nodeType) {
- var c = a.data;
- if ("/$" === c) {
- if (0 === b) {
- yg = Lf(a.nextSibling);
+ a2 = a2.nextSibling;
+ for (b2 = 0; a2; ) {
+ if (8 === a2.nodeType) {
+ var c2 = a2.data;
+ if ("/$" === c2) {
+ if (0 === b2) {
+ yg = Lf(a2.nextSibling);
break a;
}
- b--;
- } else "$" !== c && "$!" !== c && "$?" !== c || b++;
+ b2--;
+ } else "$" !== c2 && "$!" !== c2 && "$?" !== c2 || b2++;
}
- a = a.nextSibling;
+ a2 = a2.nextSibling;
}
yg = null;
}
- } else yg = xg ? Lf(a.stateNode.nextSibling) : null;
+ } else yg = xg ? Lf(a2.stateNode.nextSibling) : null;
return true;
}
function Hg() {
- for (var a = yg; a; ) a = Lf(a.nextSibling);
+ for (var a2 = yg; a2; ) a2 = Lf(a2.nextSibling);
}
function Ig() {
yg = xg = null;
- I = false;
+ I$1 = false;
}
-function Jg(a) {
- null === zg ? zg = [a] : zg.push(a);
+function Jg(a2) {
+ null === zg ? zg = [a2] : zg.push(a2);
}
var Kg = ua.ReactCurrentBatchConfig;
-function Lg(a, b, c) {
- a = c.ref;
- if (null !== a && "function" !== typeof a && "object" !== typeof a) {
- if (c._owner) {
- c = c._owner;
- if (c) {
- if (1 !== c.tag) throw Error(p(309));
- var d = c.stateNode;
- }
- if (!d) throw Error(p(147, a));
- var e = d, f2 = "" + a;
- if (null !== b && null !== b.ref && "function" === typeof b.ref && b.ref._stringRef === f2) return b.ref;
- b = function(a2) {
- var b2 = e.refs;
- null === a2 ? delete b2[f2] : b2[f2] = a2;
+function Lg(a2, b2, c2) {
+ a2 = c2.ref;
+ if (null !== a2 && "function" !== typeof a2 && "object" !== typeof a2) {
+ if (c2._owner) {
+ c2 = c2._owner;
+ if (c2) {
+ if (1 !== c2.tag) throw Error(p$1(309));
+ var d2 = c2.stateNode;
+ }
+ if (!d2) throw Error(p$1(147, a2));
+ var e2 = d2, f2 = "" + a2;
+ if (null !== b2 && null !== b2.ref && "function" === typeof b2.ref && b2.ref._stringRef === f2) return b2.ref;
+ b2 = function(a3) {
+ var b3 = e2.refs;
+ null === a3 ? delete b3[f2] : b3[f2] = a3;
};
- b._stringRef = f2;
- return b;
+ b2._stringRef = f2;
+ return b2;
}
- if ("string" !== typeof a) throw Error(p(284));
- if (!c._owner) throw Error(p(290, a));
+ if ("string" !== typeof a2) throw Error(p$1(284));
+ if (!c2._owner) throw Error(p$1(290, a2));
}
- return a;
+ return a2;
}
-function Mg(a, b) {
- a = Object.prototype.toString.call(b);
- throw Error(p(31, "[object Object]" === a ? "object with keys {" + Object.keys(b).join(", ") + "}" : a));
+function Mg(a2, b2) {
+ a2 = Object.prototype.toString.call(b2);
+ throw Error(p$1(31, "[object Object]" === a2 ? "object with keys {" + Object.keys(b2).join(", ") + "}" : a2));
}
-function Ng(a) {
- var b = a._init;
- return b(a._payload);
+function Ng(a2) {
+ var b2 = a2._init;
+ return b2(a2._payload);
}
-function Og(a) {
- function b(b2, c2) {
- if (a) {
- var d2 = b2.deletions;
- null === d2 ? (b2.deletions = [c2], b2.flags |= 16) : d2.push(c2);
+function Og(a2) {
+ function b2(b3, c3) {
+ if (a2) {
+ var d3 = b3.deletions;
+ null === d3 ? (b3.deletions = [c3], b3.flags |= 16) : d3.push(c3);
}
}
- function c(c2, d2) {
- if (!a) return null;
- for (; null !== d2; ) b(c2, d2), d2 = d2.sibling;
+ function c2(c3, d3) {
+ if (!a2) return null;
+ for (; null !== d3; ) b2(c3, d3), d3 = d3.sibling;
return null;
}
- function d(a2, b2) {
- for (a2 = /* @__PURE__ */ new Map(); null !== b2; ) null !== b2.key ? a2.set(b2.key, b2) : a2.set(b2.index, b2), b2 = b2.sibling;
- return a2;
- }
- function e(a2, b2) {
- a2 = Pg(a2, b2);
- a2.index = 0;
- a2.sibling = null;
- return a2;
- }
- function f2(b2, c2, d2) {
- b2.index = d2;
- if (!a) return b2.flags |= 1048576, c2;
- d2 = b2.alternate;
- if (null !== d2) return d2 = d2.index, d2 < c2 ? (b2.flags |= 2, c2) : d2;
- b2.flags |= 2;
- return c2;
- }
- function g(b2) {
- a && null === b2.alternate && (b2.flags |= 2);
- return b2;
- }
- function h(a2, b2, c2, d2) {
- if (null === b2 || 6 !== b2.tag) return b2 = Qg(c2, a2.mode, d2), b2.return = a2, b2;
- b2 = e(b2, c2);
- b2.return = a2;
- return b2;
- }
- function k2(a2, b2, c2, d2) {
- var f3 = c2.type;
- if (f3 === ya) return m2(a2, b2, c2.props.children, d2, c2.key);
- if (null !== b2 && (b2.elementType === f3 || "object" === typeof f3 && null !== f3 && f3.$$typeof === Ha && Ng(f3) === b2.type)) return d2 = e(b2, c2.props), d2.ref = Lg(a2, b2, c2), d2.return = a2, d2;
- d2 = Rg(c2.type, c2.key, c2.props, null, a2.mode, d2);
- d2.ref = Lg(a2, b2, c2);
- d2.return = a2;
- return d2;
- }
- function l2(a2, b2, c2, d2) {
- if (null === b2 || 4 !== b2.tag || b2.stateNode.containerInfo !== c2.containerInfo || b2.stateNode.implementation !== c2.implementation) return b2 = Sg(c2, a2.mode, d2), b2.return = a2, b2;
- b2 = e(b2, c2.children || []);
- b2.return = a2;
- return b2;
- }
- function m2(a2, b2, c2, d2, f3) {
- if (null === b2 || 7 !== b2.tag) return b2 = Tg(c2, a2.mode, d2, f3), b2.return = a2, b2;
- b2 = e(b2, c2);
- b2.return = a2;
- return b2;
- }
- function q2(a2, b2, c2) {
- if ("string" === typeof b2 && "" !== b2 || "number" === typeof b2) return b2 = Qg("" + b2, a2.mode, c2), b2.return = a2, b2;
- if ("object" === typeof b2 && null !== b2) {
- switch (b2.$$typeof) {
+ function d2(a3, b3) {
+ for (a3 = /* @__PURE__ */ new Map(); null !== b3; ) null !== b3.key ? a3.set(b3.key, b3) : a3.set(b3.index, b3), b3 = b3.sibling;
+ return a3;
+ }
+ function e2(a3, b3) {
+ a3 = Pg(a3, b3);
+ a3.index = 0;
+ a3.sibling = null;
+ return a3;
+ }
+ function f2(b3, c3, d3) {
+ b3.index = d3;
+ if (!a2) return b3.flags |= 1048576, c3;
+ d3 = b3.alternate;
+ if (null !== d3) return d3 = d3.index, d3 < c3 ? (b3.flags |= 2, c3) : d3;
+ b3.flags |= 2;
+ return c3;
+ }
+ function g2(b3) {
+ a2 && null === b3.alternate && (b3.flags |= 2);
+ return b3;
+ }
+ function h2(a3, b3, c3, d3) {
+ if (null === b3 || 6 !== b3.tag) return b3 = Qg(c3, a3.mode, d3), b3.return = a3, b3;
+ b3 = e2(b3, c3);
+ b3.return = a3;
+ return b3;
+ }
+ function k2(a3, b3, c3, d3) {
+ var f3 = c3.type;
+ if (f3 === ya) return m2(a3, b3, c3.props.children, d3, c3.key);
+ if (null !== b3 && (b3.elementType === f3 || "object" === typeof f3 && null !== f3 && f3.$$typeof === Ha && Ng(f3) === b3.type)) return d3 = e2(b3, c3.props), d3.ref = Lg(a3, b3, c3), d3.return = a3, d3;
+ d3 = Rg(c3.type, c3.key, c3.props, null, a3.mode, d3);
+ d3.ref = Lg(a3, b3, c3);
+ d3.return = a3;
+ return d3;
+ }
+ function l2(a3, b3, c3, d3) {
+ if (null === b3 || 4 !== b3.tag || b3.stateNode.containerInfo !== c3.containerInfo || b3.stateNode.implementation !== c3.implementation) return b3 = Sg(c3, a3.mode, d3), b3.return = a3, b3;
+ b3 = e2(b3, c3.children || []);
+ b3.return = a3;
+ return b3;
+ }
+ function m2(a3, b3, c3, d3, f3) {
+ if (null === b3 || 7 !== b3.tag) return b3 = Tg(c3, a3.mode, d3, f3), b3.return = a3, b3;
+ b3 = e2(b3, c3);
+ b3.return = a3;
+ return b3;
+ }
+ function q2(a3, b3, c3) {
+ if ("string" === typeof b3 && "" !== b3 || "number" === typeof b3) return b3 = Qg("" + b3, a3.mode, c3), b3.return = a3, b3;
+ if ("object" === typeof b3 && null !== b3) {
+ switch (b3.$$typeof) {
case va:
- return c2 = Rg(b2.type, b2.key, b2.props, null, a2.mode, c2), c2.ref = Lg(a2, null, b2), c2.return = a2, c2;
+ return c3 = Rg(b3.type, b3.key, b3.props, null, a3.mode, c3), c3.ref = Lg(a3, null, b3), c3.return = a3, c3;
case wa:
- return b2 = Sg(b2, a2.mode, c2), b2.return = a2, b2;
+ return b3 = Sg(b3, a3.mode, c3), b3.return = a3, b3;
case Ha:
- var d2 = b2._init;
- return q2(a2, d2(b2._payload), c2);
+ var d3 = b3._init;
+ return q2(a3, d3(b3._payload), c3);
}
- if (eb(b2) || Ka(b2)) return b2 = Tg(b2, a2.mode, c2, null), b2.return = a2, b2;
- Mg(a2, b2);
+ if (eb(b3) || Ka(b3)) return b3 = Tg(b3, a3.mode, c3, null), b3.return = a3, b3;
+ Mg(a3, b3);
}
return null;
}
- function r2(a2, b2, c2, d2) {
- var e2 = null !== b2 ? b2.key : null;
- if ("string" === typeof c2 && "" !== c2 || "number" === typeof c2) return null !== e2 ? null : h(a2, b2, "" + c2, d2);
- if ("object" === typeof c2 && null !== c2) {
- switch (c2.$$typeof) {
+ function r2(a3, b3, c3, d3) {
+ var e3 = null !== b3 ? b3.key : null;
+ if ("string" === typeof c3 && "" !== c3 || "number" === typeof c3) return null !== e3 ? null : h2(a3, b3, "" + c3, d3);
+ if ("object" === typeof c3 && null !== c3) {
+ switch (c3.$$typeof) {
case va:
- return c2.key === e2 ? k2(a2, b2, c2, d2) : null;
+ return c3.key === e3 ? k2(a3, b3, c3, d3) : null;
case wa:
- return c2.key === e2 ? l2(a2, b2, c2, d2) : null;
+ return c3.key === e3 ? l2(a3, b3, c3, d3) : null;
case Ha:
- return e2 = c2._init, r2(
- a2,
- b2,
- e2(c2._payload),
- d2
+ return e3 = c3._init, r2(
+ a3,
+ b3,
+ e3(c3._payload),
+ d3
);
}
- if (eb(c2) || Ka(c2)) return null !== e2 ? null : m2(a2, b2, c2, d2, null);
- Mg(a2, c2);
+ if (eb(c3) || Ka(c3)) return null !== e3 ? null : m2(a3, b3, c3, d3, null);
+ Mg(a3, c3);
}
return null;
}
- function y2(a2, b2, c2, d2, e2) {
- if ("string" === typeof d2 && "" !== d2 || "number" === typeof d2) return a2 = a2.get(c2) || null, h(b2, a2, "" + d2, e2);
- if ("object" === typeof d2 && null !== d2) {
- switch (d2.$$typeof) {
+ function y2(a3, b3, c3, d3, e3) {
+ if ("string" === typeof d3 && "" !== d3 || "number" === typeof d3) return a3 = a3.get(c3) || null, h2(b3, a3, "" + d3, e3);
+ if ("object" === typeof d3 && null !== d3) {
+ switch (d3.$$typeof) {
case va:
- return a2 = a2.get(null === d2.key ? c2 : d2.key) || null, k2(b2, a2, d2, e2);
+ return a3 = a3.get(null === d3.key ? c3 : d3.key) || null, k2(b3, a3, d3, e3);
case wa:
- return a2 = a2.get(null === d2.key ? c2 : d2.key) || null, l2(b2, a2, d2, e2);
+ return a3 = a3.get(null === d3.key ? c3 : d3.key) || null, l2(b3, a3, d3, e3);
case Ha:
- var f3 = d2._init;
- return y2(a2, b2, c2, f3(d2._payload), e2);
+ var f3 = d3._init;
+ return y2(a3, b3, c3, f3(d3._payload), e3);
}
- if (eb(d2) || Ka(d2)) return a2 = a2.get(c2) || null, m2(b2, a2, d2, e2, null);
- Mg(b2, d2);
+ if (eb(d3) || Ka(d3)) return a3 = a3.get(c3) || null, m2(b3, a3, d3, e3, null);
+ Mg(b3, d3);
}
return null;
}
- function n2(e2, g2, h3, k3) {
- for (var l3 = null, m3 = null, u2 = g2, w2 = g2 = 0, x2 = null; null !== u2 && w2 < h3.length; w2++) {
+ function n2(e3, g3, h3, k3) {
+ for (var l3 = null, m3 = null, u2 = g3, w2 = g3 = 0, x2 = null; null !== u2 && w2 < h3.length; w2++) {
u2.index > w2 ? (x2 = u2, u2 = null) : x2 = u2.sibling;
- var n3 = r2(e2, u2, h3[w2], k3);
+ var n3 = r2(e3, u2, h3[w2], k3);
if (null === n3) {
null === u2 && (u2 = x2);
break;
}
- a && u2 && null === n3.alternate && b(e2, u2);
- g2 = f2(n3, g2, w2);
+ a2 && u2 && null === n3.alternate && b2(e3, u2);
+ g3 = f2(n3, g3, w2);
null === m3 ? l3 = n3 : m3.sibling = n3;
m3 = n3;
u2 = x2;
}
- if (w2 === h3.length) return c(e2, u2), I && tg(e2, w2), l3;
+ if (w2 === h3.length) return c2(e3, u2), I$1 && tg(e3, w2), l3;
if (null === u2) {
- for (; w2 < h3.length; w2++) u2 = q2(e2, h3[w2], k3), null !== u2 && (g2 = f2(u2, g2, w2), null === m3 ? l3 = u2 : m3.sibling = u2, m3 = u2);
- I && tg(e2, w2);
+ for (; w2 < h3.length; w2++) u2 = q2(e3, h3[w2], k3), null !== u2 && (g3 = f2(u2, g3, w2), null === m3 ? l3 = u2 : m3.sibling = u2, m3 = u2);
+ I$1 && tg(e3, w2);
return l3;
}
- for (u2 = d(e2, u2); w2 < h3.length; w2++) x2 = y2(u2, e2, w2, h3[w2], k3), null !== x2 && (a && null !== x2.alternate && u2.delete(null === x2.key ? w2 : x2.key), g2 = f2(x2, g2, w2), null === m3 ? l3 = x2 : m3.sibling = x2, m3 = x2);
- a && u2.forEach(function(a2) {
- return b(e2, a2);
+ for (u2 = d2(e3, u2); w2 < h3.length; w2++) x2 = y2(u2, e3, w2, h3[w2], k3), null !== x2 && (a2 && null !== x2.alternate && u2.delete(null === x2.key ? w2 : x2.key), g3 = f2(x2, g3, w2), null === m3 ? l3 = x2 : m3.sibling = x2, m3 = x2);
+ a2 && u2.forEach(function(a3) {
+ return b2(e3, a3);
});
- I && tg(e2, w2);
+ I$1 && tg(e3, w2);
return l3;
}
- function t2(e2, g2, h3, k3) {
+ function t2(e3, g3, h3, k3) {
var l3 = Ka(h3);
- if ("function" !== typeof l3) throw Error(p(150));
+ if ("function" !== typeof l3) throw Error(p$1(150));
h3 = l3.call(h3);
- if (null == h3) throw Error(p(151));
- for (var u2 = l3 = null, m3 = g2, w2 = g2 = 0, x2 = null, n3 = h3.next(); null !== m3 && !n3.done; w2++, n3 = h3.next()) {
+ if (null == h3) throw Error(p$1(151));
+ for (var u2 = l3 = null, m3 = g3, w2 = g3 = 0, x2 = null, n3 = h3.next(); null !== m3 && !n3.done; w2++, n3 = h3.next()) {
m3.index > w2 ? (x2 = m3, m3 = null) : x2 = m3.sibling;
- var t3 = r2(e2, m3, n3.value, k3);
+ var t3 = r2(e3, m3, n3.value, k3);
if (null === t3) {
null === m3 && (m3 = x2);
break;
}
- a && m3 && null === t3.alternate && b(e2, m3);
- g2 = f2(t3, g2, w2);
+ a2 && m3 && null === t3.alternate && b2(e3, m3);
+ g3 = f2(t3, g3, w2);
null === u2 ? l3 = t3 : u2.sibling = t3;
u2 = t3;
m3 = x2;
}
- if (n3.done) return c(
- e2,
+ if (n3.done) return c2(
+ e3,
m3
- ), I && tg(e2, w2), l3;
+ ), I$1 && tg(e3, w2), l3;
if (null === m3) {
- for (; !n3.done; w2++, n3 = h3.next()) n3 = q2(e2, n3.value, k3), null !== n3 && (g2 = f2(n3, g2, w2), null === u2 ? l3 = n3 : u2.sibling = n3, u2 = n3);
- I && tg(e2, w2);
+ for (; !n3.done; w2++, n3 = h3.next()) n3 = q2(e3, n3.value, k3), null !== n3 && (g3 = f2(n3, g3, w2), null === u2 ? l3 = n3 : u2.sibling = n3, u2 = n3);
+ I$1 && tg(e3, w2);
return l3;
}
- for (m3 = d(e2, m3); !n3.done; w2++, n3 = h3.next()) n3 = y2(m3, e2, w2, n3.value, k3), null !== n3 && (a && null !== n3.alternate && m3.delete(null === n3.key ? w2 : n3.key), g2 = f2(n3, g2, w2), null === u2 ? l3 = n3 : u2.sibling = n3, u2 = n3);
- a && m3.forEach(function(a2) {
- return b(e2, a2);
+ for (m3 = d2(e3, m3); !n3.done; w2++, n3 = h3.next()) n3 = y2(m3, e3, w2, n3.value, k3), null !== n3 && (a2 && null !== n3.alternate && m3.delete(null === n3.key ? w2 : n3.key), g3 = f2(n3, g3, w2), null === u2 ? l3 = n3 : u2.sibling = n3, u2 = n3);
+ a2 && m3.forEach(function(a3) {
+ return b2(e3, a3);
});
- I && tg(e2, w2);
+ I$1 && tg(e3, w2);
return l3;
}
- function J2(a2, d2, f3, h3) {
+ function J2(a3, d3, f3, h3) {
"object" === typeof f3 && null !== f3 && f3.type === ya && null === f3.key && (f3 = f3.props.children);
if ("object" === typeof f3 && null !== f3) {
switch (f3.$$typeof) {
case va:
a: {
- for (var k3 = f3.key, l3 = d2; null !== l3; ) {
+ for (var k3 = f3.key, l3 = d3; null !== l3; ) {
if (l3.key === k3) {
k3 = f3.type;
if (k3 === ya) {
if (7 === l3.tag) {
- c(a2, l3.sibling);
- d2 = e(l3, f3.props.children);
- d2.return = a2;
- a2 = d2;
+ c2(a3, l3.sibling);
+ d3 = e2(l3, f3.props.children);
+ d3.return = a3;
+ a3 = d3;
break a;
}
} else if (l3.elementType === k3 || "object" === typeof k3 && null !== k3 && k3.$$typeof === Ha && Ng(k3) === l3.type) {
- c(a2, l3.sibling);
- d2 = e(l3, f3.props);
- d2.ref = Lg(a2, l3, f3);
- d2.return = a2;
- a2 = d2;
+ c2(a3, l3.sibling);
+ d3 = e2(l3, f3.props);
+ d3.ref = Lg(a3, l3, f3);
+ d3.return = a3;
+ a3 = d3;
break a;
}
- c(a2, l3);
+ c2(a3, l3);
break;
- } else b(a2, l3);
+ } else b2(a3, l3);
l3 = l3.sibling;
}
- f3.type === ya ? (d2 = Tg(f3.props.children, a2.mode, h3, f3.key), d2.return = a2, a2 = d2) : (h3 = Rg(f3.type, f3.key, f3.props, null, a2.mode, h3), h3.ref = Lg(a2, d2, f3), h3.return = a2, a2 = h3);
+ f3.type === ya ? (d3 = Tg(f3.props.children, a3.mode, h3, f3.key), d3.return = a3, a3 = d3) : (h3 = Rg(f3.type, f3.key, f3.props, null, a3.mode, h3), h3.ref = Lg(a3, d3, f3), h3.return = a3, a3 = h3);
}
- return g(a2);
+ return g2(a3);
case wa:
a: {
- for (l3 = f3.key; null !== d2; ) {
- if (d2.key === l3) if (4 === d2.tag && d2.stateNode.containerInfo === f3.containerInfo && d2.stateNode.implementation === f3.implementation) {
- c(a2, d2.sibling);
- d2 = e(d2, f3.children || []);
- d2.return = a2;
- a2 = d2;
+ for (l3 = f3.key; null !== d3; ) {
+ if (d3.key === l3) if (4 === d3.tag && d3.stateNode.containerInfo === f3.containerInfo && d3.stateNode.implementation === f3.implementation) {
+ c2(a3, d3.sibling);
+ d3 = e2(d3, f3.children || []);
+ d3.return = a3;
+ a3 = d3;
break a;
} else {
- c(a2, d2);
+ c2(a3, d3);
break;
}
- else b(a2, d2);
- d2 = d2.sibling;
+ else b2(a3, d3);
+ d3 = d3.sibling;
}
- d2 = Sg(f3, a2.mode, h3);
- d2.return = a2;
- a2 = d2;
+ d3 = Sg(f3, a3.mode, h3);
+ d3.return = a3;
+ a3 = d3;
}
- return g(a2);
+ return g2(a3);
case Ha:
- return l3 = f3._init, J2(a2, d2, l3(f3._payload), h3);
+ return l3 = f3._init, J2(a3, d3, l3(f3._payload), h3);
}
- if (eb(f3)) return n2(a2, d2, f3, h3);
- if (Ka(f3)) return t2(a2, d2, f3, h3);
- Mg(a2, f3);
+ if (eb(f3)) return n2(a3, d3, f3, h3);
+ if (Ka(f3)) return t2(a3, d3, f3, h3);
+ Mg(a3, f3);
}
- return "string" === typeof f3 && "" !== f3 || "number" === typeof f3 ? (f3 = "" + f3, null !== d2 && 6 === d2.tag ? (c(a2, d2.sibling), d2 = e(d2, f3), d2.return = a2, a2 = d2) : (c(a2, d2), d2 = Qg(f3, a2.mode, h3), d2.return = a2, a2 = d2), g(a2)) : c(a2, d2);
+ return "string" === typeof f3 && "" !== f3 || "number" === typeof f3 ? (f3 = "" + f3, null !== d3 && 6 === d3.tag ? (c2(a3, d3.sibling), d3 = e2(d3, f3), d3.return = a3, a3 = d3) : (c2(a3, d3), d3 = Qg(f3, a3.mode, h3), d3.return = a3, a3 = d3), g2(a3)) : c2(a3, d3);
}
return J2;
}
@@ -3125,142 +3125,142 @@ var Ug = Og(true), Vg = Og(false), Wg = Uf(null), Xg = null, Yg = null, Zg = nul
function $g() {
Zg = Yg = Xg = null;
}
-function ah(a) {
- var b = Wg.current;
- E(Wg);
- a._currentValue = b;
+function ah(a2) {
+ var b2 = Wg.current;
+ E$1(Wg);
+ a2._currentValue = b2;
}
-function bh(a, b, c) {
- for (; null !== a; ) {
- var d = a.alternate;
- (a.childLanes & b) !== b ? (a.childLanes |= b, null !== d && (d.childLanes |= b)) : null !== d && (d.childLanes & b) !== b && (d.childLanes |= b);
- if (a === c) break;
- a = a.return;
+function bh(a2, b2, c2) {
+ for (; null !== a2; ) {
+ var d2 = a2.alternate;
+ (a2.childLanes & b2) !== b2 ? (a2.childLanes |= b2, null !== d2 && (d2.childLanes |= b2)) : null !== d2 && (d2.childLanes & b2) !== b2 && (d2.childLanes |= b2);
+ if (a2 === c2) break;
+ a2 = a2.return;
}
}
-function ch(a, b) {
- Xg = a;
+function ch(a2, b2) {
+ Xg = a2;
Zg = Yg = null;
- a = a.dependencies;
- null !== a && null !== a.firstContext && (0 !== (a.lanes & b) && (dh = true), a.firstContext = null);
-}
-function eh(a) {
- var b = a._currentValue;
- if (Zg !== a) if (a = { context: a, memoizedValue: b, next: null }, null === Yg) {
- if (null === Xg) throw Error(p(308));
- Yg = a;
- Xg.dependencies = { lanes: 0, firstContext: a };
- } else Yg = Yg.next = a;
- return b;
+ a2 = a2.dependencies;
+ null !== a2 && null !== a2.firstContext && (0 !== (a2.lanes & b2) && (dh = true), a2.firstContext = null);
+}
+function eh(a2) {
+ var b2 = a2._currentValue;
+ if (Zg !== a2) if (a2 = { context: a2, memoizedValue: b2, next: null }, null === Yg) {
+ if (null === Xg) throw Error(p$1(308));
+ Yg = a2;
+ Xg.dependencies = { lanes: 0, firstContext: a2 };
+ } else Yg = Yg.next = a2;
+ return b2;
}
var fh = null;
-function gh(a) {
- null === fh ? fh = [a] : fh.push(a);
-}
-function hh(a, b, c, d) {
- var e = b.interleaved;
- null === e ? (c.next = c, gh(b)) : (c.next = e.next, e.next = c);
- b.interleaved = c;
- return ih(a, d);
-}
-function ih(a, b) {
- a.lanes |= b;
- var c = a.alternate;
- null !== c && (c.lanes |= b);
- c = a;
- for (a = a.return; null !== a; ) a.childLanes |= b, c = a.alternate, null !== c && (c.childLanes |= b), c = a, a = a.return;
- return 3 === c.tag ? c.stateNode : null;
+function gh(a2) {
+ null === fh ? fh = [a2] : fh.push(a2);
+}
+function hh(a2, b2, c2, d2) {
+ var e2 = b2.interleaved;
+ null === e2 ? (c2.next = c2, gh(b2)) : (c2.next = e2.next, e2.next = c2);
+ b2.interleaved = c2;
+ return ih(a2, d2);
+}
+function ih(a2, b2) {
+ a2.lanes |= b2;
+ var c2 = a2.alternate;
+ null !== c2 && (c2.lanes |= b2);
+ c2 = a2;
+ for (a2 = a2.return; null !== a2; ) a2.childLanes |= b2, c2 = a2.alternate, null !== c2 && (c2.childLanes |= b2), c2 = a2, a2 = a2.return;
+ return 3 === c2.tag ? c2.stateNode : null;
}
var jh = false;
-function kh(a) {
- a.updateQueue = { baseState: a.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, interleaved: null, lanes: 0 }, effects: null };
-}
-function lh(a, b) {
- a = a.updateQueue;
- b.updateQueue === a && (b.updateQueue = { baseState: a.baseState, firstBaseUpdate: a.firstBaseUpdate, lastBaseUpdate: a.lastBaseUpdate, shared: a.shared, effects: a.effects });
-}
-function mh(a, b) {
- return { eventTime: a, lane: b, tag: 0, payload: null, callback: null, next: null };
-}
-function nh(a, b, c) {
- var d = a.updateQueue;
- if (null === d) return null;
- d = d.shared;
- if (0 !== (K & 2)) {
- var e = d.pending;
- null === e ? b.next = b : (b.next = e.next, e.next = b);
- d.pending = b;
- return ih(a, c);
- }
- e = d.interleaved;
- null === e ? (b.next = b, gh(d)) : (b.next = e.next, e.next = b);
- d.interleaved = b;
- return ih(a, c);
-}
-function oh(a, b, c) {
- b = b.updateQueue;
- if (null !== b && (b = b.shared, 0 !== (c & 4194240))) {
- var d = b.lanes;
- d &= a.pendingLanes;
- c |= d;
- b.lanes = c;
- Cc(a, c);
- }
-}
-function ph(a, b) {
- var c = a.updateQueue, d = a.alternate;
- if (null !== d && (d = d.updateQueue, c === d)) {
- var e = null, f2 = null;
- c = c.firstBaseUpdate;
- if (null !== c) {
+function kh(a2) {
+ a2.updateQueue = { baseState: a2.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, interleaved: null, lanes: 0 }, effects: null };
+}
+function lh(a2, b2) {
+ a2 = a2.updateQueue;
+ b2.updateQueue === a2 && (b2.updateQueue = { baseState: a2.baseState, firstBaseUpdate: a2.firstBaseUpdate, lastBaseUpdate: a2.lastBaseUpdate, shared: a2.shared, effects: a2.effects });
+}
+function mh(a2, b2) {
+ return { eventTime: a2, lane: b2, tag: 0, payload: null, callback: null, next: null };
+}
+function nh(a2, b2, c2) {
+ var d2 = a2.updateQueue;
+ if (null === d2) return null;
+ d2 = d2.shared;
+ if (0 !== (K$1 & 2)) {
+ var e2 = d2.pending;
+ null === e2 ? b2.next = b2 : (b2.next = e2.next, e2.next = b2);
+ d2.pending = b2;
+ return ih(a2, c2);
+ }
+ e2 = d2.interleaved;
+ null === e2 ? (b2.next = b2, gh(d2)) : (b2.next = e2.next, e2.next = b2);
+ d2.interleaved = b2;
+ return ih(a2, c2);
+}
+function oh(a2, b2, c2) {
+ b2 = b2.updateQueue;
+ if (null !== b2 && (b2 = b2.shared, 0 !== (c2 & 4194240))) {
+ var d2 = b2.lanes;
+ d2 &= a2.pendingLanes;
+ c2 |= d2;
+ b2.lanes = c2;
+ Cc(a2, c2);
+ }
+}
+function ph(a2, b2) {
+ var c2 = a2.updateQueue, d2 = a2.alternate;
+ if (null !== d2 && (d2 = d2.updateQueue, c2 === d2)) {
+ var e2 = null, f2 = null;
+ c2 = c2.firstBaseUpdate;
+ if (null !== c2) {
do {
- var g = { eventTime: c.eventTime, lane: c.lane, tag: c.tag, payload: c.payload, callback: c.callback, next: null };
- null === f2 ? e = f2 = g : f2 = f2.next = g;
- c = c.next;
- } while (null !== c);
- null === f2 ? e = f2 = b : f2 = f2.next = b;
- } else e = f2 = b;
- c = { baseState: d.baseState, firstBaseUpdate: e, lastBaseUpdate: f2, shared: d.shared, effects: d.effects };
- a.updateQueue = c;
+ var g2 = { eventTime: c2.eventTime, lane: c2.lane, tag: c2.tag, payload: c2.payload, callback: c2.callback, next: null };
+ null === f2 ? e2 = f2 = g2 : f2 = f2.next = g2;
+ c2 = c2.next;
+ } while (null !== c2);
+ null === f2 ? e2 = f2 = b2 : f2 = f2.next = b2;
+ } else e2 = f2 = b2;
+ c2 = { baseState: d2.baseState, firstBaseUpdate: e2, lastBaseUpdate: f2, shared: d2.shared, effects: d2.effects };
+ a2.updateQueue = c2;
return;
}
- a = c.lastBaseUpdate;
- null === a ? c.firstBaseUpdate = b : a.next = b;
- c.lastBaseUpdate = b;
+ a2 = c2.lastBaseUpdate;
+ null === a2 ? c2.firstBaseUpdate = b2 : a2.next = b2;
+ c2.lastBaseUpdate = b2;
}
-function qh(a, b, c, d) {
- var e = a.updateQueue;
+function qh(a2, b2, c2, d2) {
+ var e2 = a2.updateQueue;
jh = false;
- var f2 = e.firstBaseUpdate, g = e.lastBaseUpdate, h = e.shared.pending;
- if (null !== h) {
- e.shared.pending = null;
- var k2 = h, l2 = k2.next;
+ var f2 = e2.firstBaseUpdate, g2 = e2.lastBaseUpdate, h2 = e2.shared.pending;
+ if (null !== h2) {
+ e2.shared.pending = null;
+ var k2 = h2, l2 = k2.next;
k2.next = null;
- null === g ? f2 = l2 : g.next = l2;
- g = k2;
- var m2 = a.alternate;
- null !== m2 && (m2 = m2.updateQueue, h = m2.lastBaseUpdate, h !== g && (null === h ? m2.firstBaseUpdate = l2 : h.next = l2, m2.lastBaseUpdate = k2));
+ null === g2 ? f2 = l2 : g2.next = l2;
+ g2 = k2;
+ var m2 = a2.alternate;
+ null !== m2 && (m2 = m2.updateQueue, h2 = m2.lastBaseUpdate, h2 !== g2 && (null === h2 ? m2.firstBaseUpdate = l2 : h2.next = l2, m2.lastBaseUpdate = k2));
}
if (null !== f2) {
- var q2 = e.baseState;
- g = 0;
+ var q2 = e2.baseState;
+ g2 = 0;
m2 = l2 = k2 = null;
- h = f2;
+ h2 = f2;
do {
- var r2 = h.lane, y2 = h.eventTime;
- if ((d & r2) === r2) {
+ var r2 = h2.lane, y2 = h2.eventTime;
+ if ((d2 & r2) === r2) {
null !== m2 && (m2 = m2.next = {
eventTime: y2,
lane: 0,
- tag: h.tag,
- payload: h.payload,
- callback: h.callback,
+ tag: h2.tag,
+ payload: h2.payload,
+ callback: h2.callback,
next: null
});
a: {
- var n2 = a, t2 = h;
- r2 = b;
- y2 = c;
+ var n2 = a2, t2 = h2;
+ r2 = b2;
+ y2 = c2;
switch (t2.tag) {
case 1:
n2 = t2.payload;
@@ -3276,197 +3276,197 @@ function qh(a, b, c, d) {
n2 = t2.payload;
r2 = "function" === typeof n2 ? n2.call(y2, q2, r2) : n2;
if (null === r2 || void 0 === r2) break a;
- q2 = A({}, q2, r2);
+ q2 = A$1({}, q2, r2);
break a;
case 2:
jh = true;
}
}
- null !== h.callback && 0 !== h.lane && (a.flags |= 64, r2 = e.effects, null === r2 ? e.effects = [h] : r2.push(h));
- } else y2 = { eventTime: y2, lane: r2, tag: h.tag, payload: h.payload, callback: h.callback, next: null }, null === m2 ? (l2 = m2 = y2, k2 = q2) : m2 = m2.next = y2, g |= r2;
- h = h.next;
- if (null === h) if (h = e.shared.pending, null === h) break;
- else r2 = h, h = r2.next, r2.next = null, e.lastBaseUpdate = r2, e.shared.pending = null;
+ null !== h2.callback && 0 !== h2.lane && (a2.flags |= 64, r2 = e2.effects, null === r2 ? e2.effects = [h2] : r2.push(h2));
+ } else y2 = { eventTime: y2, lane: r2, tag: h2.tag, payload: h2.payload, callback: h2.callback, next: null }, null === m2 ? (l2 = m2 = y2, k2 = q2) : m2 = m2.next = y2, g2 |= r2;
+ h2 = h2.next;
+ if (null === h2) if (h2 = e2.shared.pending, null === h2) break;
+ else r2 = h2, h2 = r2.next, r2.next = null, e2.lastBaseUpdate = r2, e2.shared.pending = null;
} while (1);
null === m2 && (k2 = q2);
- e.baseState = k2;
- e.firstBaseUpdate = l2;
- e.lastBaseUpdate = m2;
- b = e.shared.interleaved;
- if (null !== b) {
- e = b;
+ e2.baseState = k2;
+ e2.firstBaseUpdate = l2;
+ e2.lastBaseUpdate = m2;
+ b2 = e2.shared.interleaved;
+ if (null !== b2) {
+ e2 = b2;
do
- g |= e.lane, e = e.next;
- while (e !== b);
- } else null === f2 && (e.shared.lanes = 0);
- rh |= g;
- a.lanes = g;
- a.memoizedState = q2;
+ g2 |= e2.lane, e2 = e2.next;
+ while (e2 !== b2);
+ } else null === f2 && (e2.shared.lanes = 0);
+ rh |= g2;
+ a2.lanes = g2;
+ a2.memoizedState = q2;
}
}
-function sh(a, b, c) {
- a = b.effects;
- b.effects = null;
- if (null !== a) for (b = 0; b < a.length; b++) {
- var d = a[b], e = d.callback;
- if (null !== e) {
- d.callback = null;
- d = c;
- if ("function" !== typeof e) throw Error(p(191, e));
- e.call(d);
+function sh(a2, b2, c2) {
+ a2 = b2.effects;
+ b2.effects = null;
+ if (null !== a2) for (b2 = 0; b2 < a2.length; b2++) {
+ var d2 = a2[b2], e2 = d2.callback;
+ if (null !== e2) {
+ d2.callback = null;
+ d2 = c2;
+ if ("function" !== typeof e2) throw Error(p$1(191, e2));
+ e2.call(d2);
}
}
}
var th = {}, uh = Uf(th), vh = Uf(th), wh = Uf(th);
-function xh(a) {
- if (a === th) throw Error(p(174));
- return a;
-}
-function yh(a, b) {
- G(wh, b);
- G(vh, a);
- G(uh, th);
- a = b.nodeType;
- switch (a) {
+function xh(a2) {
+ if (a2 === th) throw Error(p$1(174));
+ return a2;
+}
+function yh(a2, b2) {
+ G$1(wh, b2);
+ G$1(vh, a2);
+ G$1(uh, th);
+ a2 = b2.nodeType;
+ switch (a2) {
case 9:
case 11:
- b = (b = b.documentElement) ? b.namespaceURI : lb(null, "");
+ b2 = (b2 = b2.documentElement) ? b2.namespaceURI : lb(null, "");
break;
default:
- a = 8 === a ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = lb(b, a);
+ a2 = 8 === a2 ? b2.parentNode : b2, b2 = a2.namespaceURI || null, a2 = a2.tagName, b2 = lb(b2, a2);
}
- E(uh);
- G(uh, b);
+ E$1(uh);
+ G$1(uh, b2);
}
function zh() {
- E(uh);
- E(vh);
- E(wh);
+ E$1(uh);
+ E$1(vh);
+ E$1(wh);
}
-function Ah(a) {
+function Ah(a2) {
xh(wh.current);
- var b = xh(uh.current);
- var c = lb(b, a.type);
- b !== c && (G(vh, a), G(uh, c));
-}
-function Bh(a) {
- vh.current === a && (E(uh), E(vh));
-}
-var L$2 = Uf(0);
-function Ch(a) {
- for (var b = a; null !== b; ) {
- if (13 === b.tag) {
- var c = b.memoizedState;
- if (null !== c && (c = c.dehydrated, null === c || "$?" === c.data || "$!" === c.data)) return b;
- } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {
- if (0 !== (b.flags & 128)) return b;
- } else if (null !== b.child) {
- b.child.return = b;
- b = b.child;
+ var b2 = xh(uh.current);
+ var c2 = lb(b2, a2.type);
+ b2 !== c2 && (G$1(vh, a2), G$1(uh, c2));
+}
+function Bh(a2) {
+ vh.current === a2 && (E$1(uh), E$1(vh));
+}
+var L$1 = Uf(0);
+function Ch(a2) {
+ for (var b2 = a2; null !== b2; ) {
+ if (13 === b2.tag) {
+ var c2 = b2.memoizedState;
+ if (null !== c2 && (c2 = c2.dehydrated, null === c2 || "$?" === c2.data || "$!" === c2.data)) return b2;
+ } else if (19 === b2.tag && void 0 !== b2.memoizedProps.revealOrder) {
+ if (0 !== (b2.flags & 128)) return b2;
+ } else if (null !== b2.child) {
+ b2.child.return = b2;
+ b2 = b2.child;
continue;
}
- if (b === a) break;
- for (; null === b.sibling; ) {
- if (null === b.return || b.return === a) return null;
- b = b.return;
+ if (b2 === a2) break;
+ for (; null === b2.sibling; ) {
+ if (null === b2.return || b2.return === a2) return null;
+ b2 = b2.return;
}
- b.sibling.return = b.return;
- b = b.sibling;
+ b2.sibling.return = b2.return;
+ b2 = b2.sibling;
}
return null;
}
var Dh = [];
function Eh() {
- for (var a = 0; a < Dh.length; a++) Dh[a]._workInProgressVersionPrimary = null;
+ for (var a2 = 0; a2 < Dh.length; a2++) Dh[a2]._workInProgressVersionPrimary = null;
Dh.length = 0;
}
-var Fh = ua.ReactCurrentDispatcher, Gh = ua.ReactCurrentBatchConfig, Hh = 0, M = null, N = null, O = null, Ih = false, Jh = false, Kh = 0, Lh = 0;
-function P() {
- throw Error(p(321));
+var Fh = ua.ReactCurrentDispatcher, Gh = ua.ReactCurrentBatchConfig, Hh = 0, M$1 = null, N$1 = null, O$1 = null, Ih = false, Jh = false, Kh = 0, Lh = 0;
+function P$1() {
+ throw Error(p$1(321));
}
-function Mh(a, b) {
- if (null === b) return false;
- for (var c = 0; c < b.length && c < a.length; c++) if (!He(a[c], b[c])) return false;
+function Mh(a2, b2) {
+ if (null === b2) return false;
+ for (var c2 = 0; c2 < b2.length && c2 < a2.length; c2++) if (!He$1(a2[c2], b2[c2])) return false;
return true;
}
-function Nh(a, b, c, d, e, f2) {
+function Nh(a2, b2, c2, d2, e2, f2) {
Hh = f2;
- M = b;
- b.memoizedState = null;
- b.updateQueue = null;
- b.lanes = 0;
- Fh.current = null === a || null === a.memoizedState ? Oh : Ph;
- a = c(d, e);
+ M$1 = b2;
+ b2.memoizedState = null;
+ b2.updateQueue = null;
+ b2.lanes = 0;
+ Fh.current = null === a2 || null === a2.memoizedState ? Oh : Ph;
+ a2 = c2(d2, e2);
if (Jh) {
f2 = 0;
do {
Jh = false;
Kh = 0;
- if (25 <= f2) throw Error(p(301));
+ if (25 <= f2) throw Error(p$1(301));
f2 += 1;
- O = N = null;
- b.updateQueue = null;
+ O$1 = N$1 = null;
+ b2.updateQueue = null;
Fh.current = Qh;
- a = c(d, e);
+ a2 = c2(d2, e2);
} while (Jh);
}
Fh.current = Rh;
- b = null !== N && null !== N.next;
+ b2 = null !== N$1 && null !== N$1.next;
Hh = 0;
- O = N = M = null;
+ O$1 = N$1 = M$1 = null;
Ih = false;
- if (b) throw Error(p(300));
- return a;
+ if (b2) throw Error(p$1(300));
+ return a2;
}
function Sh() {
- var a = 0 !== Kh;
+ var a2 = 0 !== Kh;
Kh = 0;
- return a;
+ return a2;
}
function Th() {
- var a = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
- null === O ? M.memoizedState = O = a : O = O.next = a;
- return O;
+ var a2 = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
+ null === O$1 ? M$1.memoizedState = O$1 = a2 : O$1 = O$1.next = a2;
+ return O$1;
}
function Uh() {
- if (null === N) {
- var a = M.alternate;
- a = null !== a ? a.memoizedState : null;
- } else a = N.next;
- var b = null === O ? M.memoizedState : O.next;
- if (null !== b) O = b, N = a;
+ if (null === N$1) {
+ var a2 = M$1.alternate;
+ a2 = null !== a2 ? a2.memoizedState : null;
+ } else a2 = N$1.next;
+ var b2 = null === O$1 ? M$1.memoizedState : O$1.next;
+ if (null !== b2) O$1 = b2, N$1 = a2;
else {
- if (null === a) throw Error(p(310));
- N = a;
- a = { memoizedState: N.memoizedState, baseState: N.baseState, baseQueue: N.baseQueue, queue: N.queue, next: null };
- null === O ? M.memoizedState = O = a : O = O.next = a;
+ if (null === a2) throw Error(p$1(310));
+ N$1 = a2;
+ a2 = { memoizedState: N$1.memoizedState, baseState: N$1.baseState, baseQueue: N$1.baseQueue, queue: N$1.queue, next: null };
+ null === O$1 ? M$1.memoizedState = O$1 = a2 : O$1 = O$1.next = a2;
}
- return O;
+ return O$1;
}
-function Vh(a, b) {
- return "function" === typeof b ? b(a) : b;
+function Vh(a2, b2) {
+ return "function" === typeof b2 ? b2(a2) : b2;
}
-function Wh(a) {
- var b = Uh(), c = b.queue;
- if (null === c) throw Error(p(311));
- c.lastRenderedReducer = a;
- var d = N, e = d.baseQueue, f2 = c.pending;
+function Wh(a2) {
+ var b2 = Uh(), c2 = b2.queue;
+ if (null === c2) throw Error(p$1(311));
+ c2.lastRenderedReducer = a2;
+ var d2 = N$1, e2 = d2.baseQueue, f2 = c2.pending;
if (null !== f2) {
- if (null !== e) {
- var g = e.next;
- e.next = f2.next;
- f2.next = g;
- }
- d.baseQueue = e = f2;
- c.pending = null;
- }
- if (null !== e) {
- f2 = e.next;
- d = d.baseState;
- var h = g = null, k2 = null, l2 = f2;
+ if (null !== e2) {
+ var g2 = e2.next;
+ e2.next = f2.next;
+ f2.next = g2;
+ }
+ d2.baseQueue = e2 = f2;
+ c2.pending = null;
+ }
+ if (null !== e2) {
+ f2 = e2.next;
+ d2 = d2.baseState;
+ var h2 = g2 = null, k2 = null, l2 = f2;
do {
var m2 = l2.lane;
- if ((Hh & m2) === m2) null !== k2 && (k2 = k2.next = { lane: 0, action: l2.action, hasEagerState: l2.hasEagerState, eagerState: l2.eagerState, next: null }), d = l2.hasEagerState ? l2.eagerState : a(d, l2.action);
+ if ((Hh & m2) === m2) null !== k2 && (k2 = k2.next = { lane: 0, action: l2.action, hasEagerState: l2.hasEagerState, eagerState: l2.eagerState, next: null }), d2 = l2.hasEagerState ? l2.eagerState : a2(d2, l2.action);
else {
var q2 = {
lane: m2,
@@ -3475,318 +3475,318 @@ function Wh(a) {
eagerState: l2.eagerState,
next: null
};
- null === k2 ? (h = k2 = q2, g = d) : k2 = k2.next = q2;
- M.lanes |= m2;
+ null === k2 ? (h2 = k2 = q2, g2 = d2) : k2 = k2.next = q2;
+ M$1.lanes |= m2;
rh |= m2;
}
l2 = l2.next;
} while (null !== l2 && l2 !== f2);
- null === k2 ? g = d : k2.next = h;
- He(d, b.memoizedState) || (dh = true);
- b.memoizedState = d;
- b.baseState = g;
- b.baseQueue = k2;
- c.lastRenderedState = d;
- }
- a = c.interleaved;
- if (null !== a) {
- e = a;
+ null === k2 ? g2 = d2 : k2.next = h2;
+ He$1(d2, b2.memoizedState) || (dh = true);
+ b2.memoizedState = d2;
+ b2.baseState = g2;
+ b2.baseQueue = k2;
+ c2.lastRenderedState = d2;
+ }
+ a2 = c2.interleaved;
+ if (null !== a2) {
+ e2 = a2;
do
- f2 = e.lane, M.lanes |= f2, rh |= f2, e = e.next;
- while (e !== a);
- } else null === e && (c.lanes = 0);
- return [b.memoizedState, c.dispatch];
-}
-function Xh(a) {
- var b = Uh(), c = b.queue;
- if (null === c) throw Error(p(311));
- c.lastRenderedReducer = a;
- var d = c.dispatch, e = c.pending, f2 = b.memoizedState;
- if (null !== e) {
- c.pending = null;
- var g = e = e.next;
+ f2 = e2.lane, M$1.lanes |= f2, rh |= f2, e2 = e2.next;
+ while (e2 !== a2);
+ } else null === e2 && (c2.lanes = 0);
+ return [b2.memoizedState, c2.dispatch];
+}
+function Xh(a2) {
+ var b2 = Uh(), c2 = b2.queue;
+ if (null === c2) throw Error(p$1(311));
+ c2.lastRenderedReducer = a2;
+ var d2 = c2.dispatch, e2 = c2.pending, f2 = b2.memoizedState;
+ if (null !== e2) {
+ c2.pending = null;
+ var g2 = e2 = e2.next;
do
- f2 = a(f2, g.action), g = g.next;
- while (g !== e);
- He(f2, b.memoizedState) || (dh = true);
- b.memoizedState = f2;
- null === b.baseQueue && (b.baseState = f2);
- c.lastRenderedState = f2;
- }
- return [f2, d];
+ f2 = a2(f2, g2.action), g2 = g2.next;
+ while (g2 !== e2);
+ He$1(f2, b2.memoizedState) || (dh = true);
+ b2.memoizedState = f2;
+ null === b2.baseQueue && (b2.baseState = f2);
+ c2.lastRenderedState = f2;
+ }
+ return [f2, d2];
}
function Yh() {
}
-function Zh(a, b) {
- var c = M, d = Uh(), e = b(), f2 = !He(d.memoizedState, e);
- f2 && (d.memoizedState = e, dh = true);
- d = d.queue;
- $h(ai.bind(null, c, d, a), [a]);
- if (d.getSnapshot !== b || f2 || null !== O && O.memoizedState.tag & 1) {
- c.flags |= 2048;
- bi(9, ci.bind(null, c, d, e, b), void 0, null);
- if (null === Q) throw Error(p(349));
- 0 !== (Hh & 30) || di(c, b, e);
- }
- return e;
-}
-function di(a, b, c) {
- a.flags |= 16384;
- a = { getSnapshot: b, value: c };
- b = M.updateQueue;
- null === b ? (b = { lastEffect: null, stores: null }, M.updateQueue = b, b.stores = [a]) : (c = b.stores, null === c ? b.stores = [a] : c.push(a));
-}
-function ci(a, b, c, d) {
- b.value = c;
- b.getSnapshot = d;
- ei(b) && fi(a);
-}
-function ai(a, b, c) {
- return c(function() {
- ei(b) && fi(a);
+function Zh(a2, b2) {
+ var c2 = M$1, d2 = Uh(), e2 = b2(), f2 = !He$1(d2.memoizedState, e2);
+ f2 && (d2.memoizedState = e2, dh = true);
+ d2 = d2.queue;
+ $h(ai.bind(null, c2, d2, a2), [a2]);
+ if (d2.getSnapshot !== b2 || f2 || null !== O$1 && O$1.memoizedState.tag & 1) {
+ c2.flags |= 2048;
+ bi(9, ci.bind(null, c2, d2, e2, b2), void 0, null);
+ if (null === Q$1) throw Error(p$1(349));
+ 0 !== (Hh & 30) || di(c2, b2, e2);
+ }
+ return e2;
+}
+function di(a2, b2, c2) {
+ a2.flags |= 16384;
+ a2 = { getSnapshot: b2, value: c2 };
+ b2 = M$1.updateQueue;
+ null === b2 ? (b2 = { lastEffect: null, stores: null }, M$1.updateQueue = b2, b2.stores = [a2]) : (c2 = b2.stores, null === c2 ? b2.stores = [a2] : c2.push(a2));
+}
+function ci(a2, b2, c2, d2) {
+ b2.value = c2;
+ b2.getSnapshot = d2;
+ ei(b2) && fi(a2);
+}
+function ai(a2, b2, c2) {
+ return c2(function() {
+ ei(b2) && fi(a2);
});
}
-function ei(a) {
- var b = a.getSnapshot;
- a = a.value;
+function ei(a2) {
+ var b2 = a2.getSnapshot;
+ a2 = a2.value;
try {
- var c = b();
- return !He(a, c);
- } catch (d) {
+ var c2 = b2();
+ return !He$1(a2, c2);
+ } catch (d2) {
return true;
}
}
-function fi(a) {
- var b = ih(a, 1);
- null !== b && gi(b, a, 1, -1);
+function fi(a2) {
+ var b2 = ih(a2, 1);
+ null !== b2 && gi(b2, a2, 1, -1);
}
-function hi(a) {
- var b = Th();
- "function" === typeof a && (a = a());
- b.memoizedState = b.baseState = a;
- a = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: Vh, lastRenderedState: a };
- b.queue = a;
- a = a.dispatch = ii.bind(null, M, a);
- return [b.memoizedState, a];
+function hi(a2) {
+ var b2 = Th();
+ "function" === typeof a2 && (a2 = a2());
+ b2.memoizedState = b2.baseState = a2;
+ a2 = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: Vh, lastRenderedState: a2 };
+ b2.queue = a2;
+ a2 = a2.dispatch = ii.bind(null, M$1, a2);
+ return [b2.memoizedState, a2];
}
-function bi(a, b, c, d) {
- a = { tag: a, create: b, destroy: c, deps: d, next: null };
- b = M.updateQueue;
- null === b ? (b = { lastEffect: null, stores: null }, M.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, null === c ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a));
- return a;
+function bi(a2, b2, c2, d2) {
+ a2 = { tag: a2, create: b2, destroy: c2, deps: d2, next: null };
+ b2 = M$1.updateQueue;
+ null === b2 ? (b2 = { lastEffect: null, stores: null }, M$1.updateQueue = b2, b2.lastEffect = a2.next = a2) : (c2 = b2.lastEffect, null === c2 ? b2.lastEffect = a2.next = a2 : (d2 = c2.next, c2.next = a2, a2.next = d2, b2.lastEffect = a2));
+ return a2;
}
function ji() {
return Uh().memoizedState;
}
-function ki(a, b, c, d) {
- var e = Th();
- M.flags |= a;
- e.memoizedState = bi(1 | b, c, void 0, void 0 === d ? null : d);
+function ki(a2, b2, c2, d2) {
+ var e2 = Th();
+ M$1.flags |= a2;
+ e2.memoizedState = bi(1 | b2, c2, void 0, void 0 === d2 ? null : d2);
}
-function li(a, b, c, d) {
- var e = Uh();
- d = void 0 === d ? null : d;
+function li(a2, b2, c2, d2) {
+ var e2 = Uh();
+ d2 = void 0 === d2 ? null : d2;
var f2 = void 0;
- if (null !== N) {
- var g = N.memoizedState;
- f2 = g.destroy;
- if (null !== d && Mh(d, g.deps)) {
- e.memoizedState = bi(b, c, f2, d);
+ if (null !== N$1) {
+ var g2 = N$1.memoizedState;
+ f2 = g2.destroy;
+ if (null !== d2 && Mh(d2, g2.deps)) {
+ e2.memoizedState = bi(b2, c2, f2, d2);
return;
}
}
- M.flags |= a;
- e.memoizedState = bi(1 | b, c, f2, d);
+ M$1.flags |= a2;
+ e2.memoizedState = bi(1 | b2, c2, f2, d2);
}
-function mi(a, b) {
- return ki(8390656, 8, a, b);
+function mi(a2, b2) {
+ return ki(8390656, 8, a2, b2);
}
-function $h(a, b) {
- return li(2048, 8, a, b);
+function $h(a2, b2) {
+ return li(2048, 8, a2, b2);
}
-function ni(a, b) {
- return li(4, 2, a, b);
+function ni(a2, b2) {
+ return li(4, 2, a2, b2);
}
-function oi(a, b) {
- return li(4, 4, a, b);
+function oi(a2, b2) {
+ return li(4, 4, a2, b2);
}
-function pi(a, b) {
- if ("function" === typeof b) return a = a(), b(a), function() {
- b(null);
+function pi(a2, b2) {
+ if ("function" === typeof b2) return a2 = a2(), b2(a2), function() {
+ b2(null);
};
- if (null !== b && void 0 !== b) return a = a(), b.current = a, function() {
- b.current = null;
+ if (null !== b2 && void 0 !== b2) return a2 = a2(), b2.current = a2, function() {
+ b2.current = null;
};
}
-function qi(a, b, c) {
- c = null !== c && void 0 !== c ? c.concat([a]) : null;
- return li(4, 4, pi.bind(null, b, a), c);
+function qi(a2, b2, c2) {
+ c2 = null !== c2 && void 0 !== c2 ? c2.concat([a2]) : null;
+ return li(4, 4, pi.bind(null, b2, a2), c2);
}
function ri() {
}
-function si(a, b) {
- var c = Uh();
- b = void 0 === b ? null : b;
- var d = c.memoizedState;
- if (null !== d && null !== b && Mh(b, d[1])) return d[0];
- c.memoizedState = [a, b];
- return a;
-}
-function ti(a, b) {
- var c = Uh();
- b = void 0 === b ? null : b;
- var d = c.memoizedState;
- if (null !== d && null !== b && Mh(b, d[1])) return d[0];
- a = a();
- c.memoizedState = [a, b];
- return a;
-}
-function ui(a, b, c) {
- if (0 === (Hh & 21)) return a.baseState && (a.baseState = false, dh = true), a.memoizedState = c;
- He(c, b) || (c = yc(), M.lanes |= c, rh |= c, a.baseState = true);
- return b;
+function si(a2, b2) {
+ var c2 = Uh();
+ b2 = void 0 === b2 ? null : b2;
+ var d2 = c2.memoizedState;
+ if (null !== d2 && null !== b2 && Mh(b2, d2[1])) return d2[0];
+ c2.memoizedState = [a2, b2];
+ return a2;
}
-function vi(a, b) {
- var c = C;
- C = 0 !== c && 4 > c ? c : 4;
- a(true);
- var d = Gh.transition;
+function ti(a2, b2) {
+ var c2 = Uh();
+ b2 = void 0 === b2 ? null : b2;
+ var d2 = c2.memoizedState;
+ if (null !== d2 && null !== b2 && Mh(b2, d2[1])) return d2[0];
+ a2 = a2();
+ c2.memoizedState = [a2, b2];
+ return a2;
+}
+function ui(a2, b2, c2) {
+ if (0 === (Hh & 21)) return a2.baseState && (a2.baseState = false, dh = true), a2.memoizedState = c2;
+ He$1(c2, b2) || (c2 = yc(), M$1.lanes |= c2, rh |= c2, a2.baseState = true);
+ return b2;
+}
+function vi(a2, b2) {
+ var c2 = C$1;
+ C$1 = 0 !== c2 && 4 > c2 ? c2 : 4;
+ a2(true);
+ var d2 = Gh.transition;
Gh.transition = {};
try {
- a(false), b();
+ a2(false), b2();
} finally {
- C = c, Gh.transition = d;
+ C$1 = c2, Gh.transition = d2;
}
}
function wi() {
return Uh().memoizedState;
}
-function xi(a, b, c) {
- var d = yi(a);
- c = { lane: d, action: c, hasEagerState: false, eagerState: null, next: null };
- if (zi(a)) Ai(b, c);
- else if (c = hh(a, b, c, d), null !== c) {
- var e = R();
- gi(c, a, d, e);
- Bi(c, b, d);
+function xi(a2, b2, c2) {
+ var d2 = yi(a2);
+ c2 = { lane: d2, action: c2, hasEagerState: false, eagerState: null, next: null };
+ if (zi(a2)) Ai(b2, c2);
+ else if (c2 = hh(a2, b2, c2, d2), null !== c2) {
+ var e2 = R$1();
+ gi(c2, a2, d2, e2);
+ Bi(c2, b2, d2);
}
}
-function ii(a, b, c) {
- var d = yi(a), e = { lane: d, action: c, hasEagerState: false, eagerState: null, next: null };
- if (zi(a)) Ai(b, e);
+function ii(a2, b2, c2) {
+ var d2 = yi(a2), e2 = { lane: d2, action: c2, hasEagerState: false, eagerState: null, next: null };
+ if (zi(a2)) Ai(b2, e2);
else {
- var f2 = a.alternate;
- if (0 === a.lanes && (null === f2 || 0 === f2.lanes) && (f2 = b.lastRenderedReducer, null !== f2)) try {
- var g = b.lastRenderedState, h = f2(g, c);
- e.hasEagerState = true;
- e.eagerState = h;
- if (He(h, g)) {
- var k2 = b.interleaved;
- null === k2 ? (e.next = e, gh(b)) : (e.next = k2.next, k2.next = e);
- b.interleaved = e;
+ var f2 = a2.alternate;
+ if (0 === a2.lanes && (null === f2 || 0 === f2.lanes) && (f2 = b2.lastRenderedReducer, null !== f2)) try {
+ var g2 = b2.lastRenderedState, h2 = f2(g2, c2);
+ e2.hasEagerState = true;
+ e2.eagerState = h2;
+ if (He$1(h2, g2)) {
+ var k2 = b2.interleaved;
+ null === k2 ? (e2.next = e2, gh(b2)) : (e2.next = k2.next, k2.next = e2);
+ b2.interleaved = e2;
return;
}
} catch (l2) {
} finally {
}
- c = hh(a, b, e, d);
- null !== c && (e = R(), gi(c, a, d, e), Bi(c, b, d));
+ c2 = hh(a2, b2, e2, d2);
+ null !== c2 && (e2 = R$1(), gi(c2, a2, d2, e2), Bi(c2, b2, d2));
}
}
-function zi(a) {
- var b = a.alternate;
- return a === M || null !== b && b === M;
+function zi(a2) {
+ var b2 = a2.alternate;
+ return a2 === M$1 || null !== b2 && b2 === M$1;
}
-function Ai(a, b) {
+function Ai(a2, b2) {
Jh = Ih = true;
- var c = a.pending;
- null === c ? b.next = b : (b.next = c.next, c.next = b);
- a.pending = b;
-}
-function Bi(a, b, c) {
- if (0 !== (c & 4194240)) {
- var d = b.lanes;
- d &= a.pendingLanes;
- c |= d;
- b.lanes = c;
- Cc(a, c);
- }
-}
-var Rh = { readContext: eh, useCallback: P, useContext: P, useEffect: P, useImperativeHandle: P, useInsertionEffect: P, useLayoutEffect: P, useMemo: P, useReducer: P, useRef: P, useState: P, useDebugValue: P, useDeferredValue: P, useTransition: P, useMutableSource: P, useSyncExternalStore: P, useId: P, unstable_isNewReconciler: false }, Oh = { readContext: eh, useCallback: function(a, b) {
- Th().memoizedState = [a, void 0 === b ? null : b];
- return a;
-}, useContext: eh, useEffect: mi, useImperativeHandle: function(a, b, c) {
- c = null !== c && void 0 !== c ? c.concat([a]) : null;
+ var c2 = a2.pending;
+ null === c2 ? b2.next = b2 : (b2.next = c2.next, c2.next = b2);
+ a2.pending = b2;
+}
+function Bi(a2, b2, c2) {
+ if (0 !== (c2 & 4194240)) {
+ var d2 = b2.lanes;
+ d2 &= a2.pendingLanes;
+ c2 |= d2;
+ b2.lanes = c2;
+ Cc(a2, c2);
+ }
+}
+var Rh = { readContext: eh, useCallback: P$1, useContext: P$1, useEffect: P$1, useImperativeHandle: P$1, useInsertionEffect: P$1, useLayoutEffect: P$1, useMemo: P$1, useReducer: P$1, useRef: P$1, useState: P$1, useDebugValue: P$1, useDeferredValue: P$1, useTransition: P$1, useMutableSource: P$1, useSyncExternalStore: P$1, useId: P$1, unstable_isNewReconciler: false }, Oh = { readContext: eh, useCallback: function(a2, b2) {
+ Th().memoizedState = [a2, void 0 === b2 ? null : b2];
+ return a2;
+}, useContext: eh, useEffect: mi, useImperativeHandle: function(a2, b2, c2) {
+ c2 = null !== c2 && void 0 !== c2 ? c2.concat([a2]) : null;
return ki(
4194308,
4,
- pi.bind(null, b, a),
- c
+ pi.bind(null, b2, a2),
+ c2
);
-}, useLayoutEffect: function(a, b) {
- return ki(4194308, 4, a, b);
-}, useInsertionEffect: function(a, b) {
- return ki(4, 2, a, b);
-}, useMemo: function(a, b) {
- var c = Th();
- b = void 0 === b ? null : b;
- a = a();
- c.memoizedState = [a, b];
- return a;
-}, useReducer: function(a, b, c) {
- var d = Th();
- b = void 0 !== c ? c(b) : b;
- d.memoizedState = d.baseState = b;
- a = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: a, lastRenderedState: b };
- d.queue = a;
- a = a.dispatch = xi.bind(null, M, a);
- return [d.memoizedState, a];
-}, useRef: function(a) {
- var b = Th();
- a = { current: a };
- return b.memoizedState = a;
-}, useState: hi, useDebugValue: ri, useDeferredValue: function(a) {
- return Th().memoizedState = a;
+}, useLayoutEffect: function(a2, b2) {
+ return ki(4194308, 4, a2, b2);
+}, useInsertionEffect: function(a2, b2) {
+ return ki(4, 2, a2, b2);
+}, useMemo: function(a2, b2) {
+ var c2 = Th();
+ b2 = void 0 === b2 ? null : b2;
+ a2 = a2();
+ c2.memoizedState = [a2, b2];
+ return a2;
+}, useReducer: function(a2, b2, c2) {
+ var d2 = Th();
+ b2 = void 0 !== c2 ? c2(b2) : b2;
+ d2.memoizedState = d2.baseState = b2;
+ a2 = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: a2, lastRenderedState: b2 };
+ d2.queue = a2;
+ a2 = a2.dispatch = xi.bind(null, M$1, a2);
+ return [d2.memoizedState, a2];
+}, useRef: function(a2) {
+ var b2 = Th();
+ a2 = { current: a2 };
+ return b2.memoizedState = a2;
+}, useState: hi, useDebugValue: ri, useDeferredValue: function(a2) {
+ return Th().memoizedState = a2;
}, useTransition: function() {
- var a = hi(false), b = a[0];
- a = vi.bind(null, a[1]);
- Th().memoizedState = a;
- return [b, a];
+ var a2 = hi(false), b2 = a2[0];
+ a2 = vi.bind(null, a2[1]);
+ Th().memoizedState = a2;
+ return [b2, a2];
}, useMutableSource: function() {
-}, useSyncExternalStore: function(a, b, c) {
- var d = M, e = Th();
- if (I) {
- if (void 0 === c) throw Error(p(407));
- c = c();
+}, useSyncExternalStore: function(a2, b2, c2) {
+ var d2 = M$1, e2 = Th();
+ if (I$1) {
+ if (void 0 === c2) throw Error(p$1(407));
+ c2 = c2();
} else {
- c = b();
- if (null === Q) throw Error(p(349));
- 0 !== (Hh & 30) || di(d, b, c);
+ c2 = b2();
+ if (null === Q$1) throw Error(p$1(349));
+ 0 !== (Hh & 30) || di(d2, b2, c2);
}
- e.memoizedState = c;
- var f2 = { value: c, getSnapshot: b };
- e.queue = f2;
+ e2.memoizedState = c2;
+ var f2 = { value: c2, getSnapshot: b2 };
+ e2.queue = f2;
mi(ai.bind(
null,
- d,
+ d2,
f2,
- a
- ), [a]);
- d.flags |= 2048;
- bi(9, ci.bind(null, d, f2, c, b), void 0, null);
- return c;
+ a2
+ ), [a2]);
+ d2.flags |= 2048;
+ bi(9, ci.bind(null, d2, f2, c2, b2), void 0, null);
+ return c2;
}, useId: function() {
- var a = Th(), b = Q.identifierPrefix;
- if (I) {
- var c = sg;
- var d = rg;
- c = (d & ~(1 << 32 - oc(d) - 1)).toString(32) + c;
- b = ":" + b + "R" + c;
- c = Kh++;
- 0 < c && (b += "H" + c.toString(32));
- b += ":";
- } else c = Lh++, b = ":" + b + "r" + c.toString(32) + ":";
- return a.memoizedState = b;
+ var a2 = Th(), b2 = Q$1.identifierPrefix;
+ if (I$1) {
+ var c2 = sg;
+ var d2 = rg;
+ c2 = (d2 & ~(1 << 32 - oc(d2) - 1)).toString(32) + c2;
+ b2 = ":" + b2 + "R" + c2;
+ c2 = Kh++;
+ 0 < c2 && (b2 += "H" + c2.toString(32));
+ b2 += ":";
+ } else c2 = Lh++, b2 = ":" + b2 + "r" + c2.toString(32) + ":";
+ return a2.memoizedState = b2;
}, unstable_isNewReconciler: false }, Ph = {
readContext: eh,
useCallback: si,
@@ -3802,13 +3802,13 @@ var Rh = { readContext: eh, useCallback: P, useContext: P, useEffect: P, useImpe
return Wh(Vh);
},
useDebugValue: ri,
- useDeferredValue: function(a) {
- var b = Uh();
- return ui(b, N.memoizedState, a);
+ useDeferredValue: function(a2) {
+ var b2 = Uh();
+ return ui(b2, N$1.memoizedState, a2);
},
useTransition: function() {
- var a = Wh(Vh)[0], b = Uh().memoizedState;
- return [a, b];
+ var a2 = Wh(Vh)[0], b2 = Uh().memoizedState;
+ return [a2, b2];
},
useMutableSource: Yh,
useSyncExternalStore: Zh,
@@ -3816,416 +3816,416 @@ var Rh = { readContext: eh, useCallback: P, useContext: P, useEffect: P, useImpe
unstable_isNewReconciler: false
}, Qh = { readContext: eh, useCallback: si, useContext: eh, useEffect: $h, useImperativeHandle: qi, useInsertionEffect: ni, useLayoutEffect: oi, useMemo: ti, useReducer: Xh, useRef: ji, useState: function() {
return Xh(Vh);
-}, useDebugValue: ri, useDeferredValue: function(a) {
- var b = Uh();
- return null === N ? b.memoizedState = a : ui(b, N.memoizedState, a);
+}, useDebugValue: ri, useDeferredValue: function(a2) {
+ var b2 = Uh();
+ return null === N$1 ? b2.memoizedState = a2 : ui(b2, N$1.memoizedState, a2);
}, useTransition: function() {
- var a = Xh(Vh)[0], b = Uh().memoizedState;
- return [a, b];
+ var a2 = Xh(Vh)[0], b2 = Uh().memoizedState;
+ return [a2, b2];
}, useMutableSource: Yh, useSyncExternalStore: Zh, useId: wi, unstable_isNewReconciler: false };
-function Ci(a, b) {
- if (a && a.defaultProps) {
- b = A({}, b);
- a = a.defaultProps;
- for (var c in a) void 0 === b[c] && (b[c] = a[c]);
- return b;
+function Ci(a2, b2) {
+ if (a2 && a2.defaultProps) {
+ b2 = A$1({}, b2);
+ a2 = a2.defaultProps;
+ for (var c2 in a2) void 0 === b2[c2] && (b2[c2] = a2[c2]);
+ return b2;
}
- return b;
+ return b2;
+}
+function Di(a2, b2, c2, d2) {
+ b2 = a2.memoizedState;
+ c2 = c2(d2, b2);
+ c2 = null === c2 || void 0 === c2 ? b2 : A$1({}, b2, c2);
+ a2.memoizedState = c2;
+ 0 === a2.lanes && (a2.updateQueue.baseState = c2);
}
-function Di(a, b, c, d) {
- b = a.memoizedState;
- c = c(d, b);
- c = null === c || void 0 === c ? b : A({}, b, c);
- a.memoizedState = c;
- 0 === a.lanes && (a.updateQueue.baseState = c);
-}
-var Ei = { isMounted: function(a) {
- return (a = a._reactInternals) ? Vb(a) === a : false;
-}, enqueueSetState: function(a, b, c) {
- a = a._reactInternals;
- var d = R(), e = yi(a), f2 = mh(d, e);
- f2.payload = b;
- void 0 !== c && null !== c && (f2.callback = c);
- b = nh(a, f2, e);
- null !== b && (gi(b, a, e, d), oh(b, a, e));
-}, enqueueReplaceState: function(a, b, c) {
- a = a._reactInternals;
- var d = R(), e = yi(a), f2 = mh(d, e);
+var Ei = { isMounted: function(a2) {
+ return (a2 = a2._reactInternals) ? Vb(a2) === a2 : false;
+}, enqueueSetState: function(a2, b2, c2) {
+ a2 = a2._reactInternals;
+ var d2 = R$1(), e2 = yi(a2), f2 = mh(d2, e2);
+ f2.payload = b2;
+ void 0 !== c2 && null !== c2 && (f2.callback = c2);
+ b2 = nh(a2, f2, e2);
+ null !== b2 && (gi(b2, a2, e2, d2), oh(b2, a2, e2));
+}, enqueueReplaceState: function(a2, b2, c2) {
+ a2 = a2._reactInternals;
+ var d2 = R$1(), e2 = yi(a2), f2 = mh(d2, e2);
f2.tag = 1;
- f2.payload = b;
- void 0 !== c && null !== c && (f2.callback = c);
- b = nh(a, f2, e);
- null !== b && (gi(b, a, e, d), oh(b, a, e));
-}, enqueueForceUpdate: function(a, b) {
- a = a._reactInternals;
- var c = R(), d = yi(a), e = mh(c, d);
- e.tag = 2;
- void 0 !== b && null !== b && (e.callback = b);
- b = nh(a, e, d);
- null !== b && (gi(b, a, d, c), oh(b, a, d));
+ f2.payload = b2;
+ void 0 !== c2 && null !== c2 && (f2.callback = c2);
+ b2 = nh(a2, f2, e2);
+ null !== b2 && (gi(b2, a2, e2, d2), oh(b2, a2, e2));
+}, enqueueForceUpdate: function(a2, b2) {
+ a2 = a2._reactInternals;
+ var c2 = R$1(), d2 = yi(a2), e2 = mh(c2, d2);
+ e2.tag = 2;
+ void 0 !== b2 && null !== b2 && (e2.callback = b2);
+ b2 = nh(a2, e2, d2);
+ null !== b2 && (gi(b2, a2, d2, c2), oh(b2, a2, d2));
} };
-function Fi(a, b, c, d, e, f2, g) {
- a = a.stateNode;
- return "function" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f2, g) : b.prototype && b.prototype.isPureReactComponent ? !Ie(c, d) || !Ie(e, f2) : true;
-}
-function Gi(a, b, c) {
- var d = false, e = Vf;
- var f2 = b.contextType;
- "object" === typeof f2 && null !== f2 ? f2 = eh(f2) : (e = Zf(b) ? Xf : H.current, d = b.contextTypes, f2 = (d = null !== d && void 0 !== d) ? Yf(a, e) : Vf);
- b = new b(c, f2);
- a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;
- b.updater = Ei;
- a.stateNode = b;
- b._reactInternals = a;
- d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f2);
- return b;
+function Fi(a2, b2, c2, d2, e2, f2, g2) {
+ a2 = a2.stateNode;
+ return "function" === typeof a2.shouldComponentUpdate ? a2.shouldComponentUpdate(d2, f2, g2) : b2.prototype && b2.prototype.isPureReactComponent ? !Ie$1(c2, d2) || !Ie$1(e2, f2) : true;
+}
+function Gi(a2, b2, c2) {
+ var d2 = false, e2 = Vf;
+ var f2 = b2.contextType;
+ "object" === typeof f2 && null !== f2 ? f2 = eh(f2) : (e2 = Zf(b2) ? Xf : H$1.current, d2 = b2.contextTypes, f2 = (d2 = null !== d2 && void 0 !== d2) ? Yf(a2, e2) : Vf);
+ b2 = new b2(c2, f2);
+ a2.memoizedState = null !== b2.state && void 0 !== b2.state ? b2.state : null;
+ b2.updater = Ei;
+ a2.stateNode = b2;
+ b2._reactInternals = a2;
+ d2 && (a2 = a2.stateNode, a2.__reactInternalMemoizedUnmaskedChildContext = e2, a2.__reactInternalMemoizedMaskedChildContext = f2);
+ return b2;
+}
+function Hi(a2, b2, c2, d2) {
+ a2 = b2.state;
+ "function" === typeof b2.componentWillReceiveProps && b2.componentWillReceiveProps(c2, d2);
+ "function" === typeof b2.UNSAFE_componentWillReceiveProps && b2.UNSAFE_componentWillReceiveProps(c2, d2);
+ b2.state !== a2 && Ei.enqueueReplaceState(b2, b2.state, null);
+}
+function Ii(a2, b2, c2, d2) {
+ var e2 = a2.stateNode;
+ e2.props = c2;
+ e2.state = a2.memoizedState;
+ e2.refs = {};
+ kh(a2);
+ var f2 = b2.contextType;
+ "object" === typeof f2 && null !== f2 ? e2.context = eh(f2) : (f2 = Zf(b2) ? Xf : H$1.current, e2.context = Yf(a2, f2));
+ e2.state = a2.memoizedState;
+ f2 = b2.getDerivedStateFromProps;
+ "function" === typeof f2 && (Di(a2, b2, f2, c2), e2.state = a2.memoizedState);
+ "function" === typeof b2.getDerivedStateFromProps || "function" === typeof e2.getSnapshotBeforeUpdate || "function" !== typeof e2.UNSAFE_componentWillMount && "function" !== typeof e2.componentWillMount || (b2 = e2.state, "function" === typeof e2.componentWillMount && e2.componentWillMount(), "function" === typeof e2.UNSAFE_componentWillMount && e2.UNSAFE_componentWillMount(), b2 !== e2.state && Ei.enqueueReplaceState(e2, e2.state, null), qh(a2, c2, e2, d2), e2.state = a2.memoizedState);
+ "function" === typeof e2.componentDidMount && (a2.flags |= 4194308);
}
-function Hi(a, b, c, d) {
- a = b.state;
- "function" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);
- "function" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);
- b.state !== a && Ei.enqueueReplaceState(b, b.state, null);
-}
-function Ii(a, b, c, d) {
- var e = a.stateNode;
- e.props = c;
- e.state = a.memoizedState;
- e.refs = {};
- kh(a);
- var f2 = b.contextType;
- "object" === typeof f2 && null !== f2 ? e.context = eh(f2) : (f2 = Zf(b) ? Xf : H.current, e.context = Yf(a, f2));
- e.state = a.memoizedState;
- f2 = b.getDerivedStateFromProps;
- "function" === typeof f2 && (Di(a, b, f2, c), e.state = a.memoizedState);
- "function" === typeof b.getDerivedStateFromProps || "function" === typeof e.getSnapshotBeforeUpdate || "function" !== typeof e.UNSAFE_componentWillMount && "function" !== typeof e.componentWillMount || (b = e.state, "function" === typeof e.componentWillMount && e.componentWillMount(), "function" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && Ei.enqueueReplaceState(e, e.state, null), qh(a, c, e, d), e.state = a.memoizedState);
- "function" === typeof e.componentDidMount && (a.flags |= 4194308);
-}
-function Ji(a, b) {
+function Ji(a2, b2) {
try {
- var c = "", d = b;
+ var c2 = "", d2 = b2;
do
- c += Pa(d), d = d.return;
- while (d);
- var e = c;
+ c2 += Pa(d2), d2 = d2.return;
+ while (d2);
+ var e2 = c2;
} catch (f2) {
- e = "\nError generating stack: " + f2.message + "\n" + f2.stack;
+ e2 = "\nError generating stack: " + f2.message + "\n" + f2.stack;
}
- return { value: a, source: b, stack: e, digest: null };
+ return { value: a2, source: b2, stack: e2, digest: null };
}
-function Ki(a, b, c) {
- return { value: a, source: null, stack: null != c ? c : null, digest: null != b ? b : null };
+function Ki(a2, b2, c2) {
+ return { value: a2, source: null, stack: null != c2 ? c2 : null, digest: null != b2 ? b2 : null };
}
-function Li(a, b) {
+function Li(a2, b2) {
try {
- console.error(b.value);
- } catch (c) {
+ console.error(b2.value);
+ } catch (c2) {
setTimeout(function() {
- throw c;
+ throw c2;
});
}
}
var Mi = "function" === typeof WeakMap ? WeakMap : Map;
-function Ni(a, b, c) {
- c = mh(-1, c);
- c.tag = 3;
- c.payload = { element: null };
- var d = b.value;
- c.callback = function() {
- Oi || (Oi = true, Pi = d);
- Li(a, b);
+function Ni(a2, b2, c2) {
+ c2 = mh(-1, c2);
+ c2.tag = 3;
+ c2.payload = { element: null };
+ var d2 = b2.value;
+ c2.callback = function() {
+ Oi || (Oi = true, Pi = d2);
+ Li(a2, b2);
};
- return c;
-}
-function Qi(a, b, c) {
- c = mh(-1, c);
- c.tag = 3;
- var d = a.type.getDerivedStateFromError;
- if ("function" === typeof d) {
- var e = b.value;
- c.payload = function() {
- return d(e);
+ return c2;
+}
+function Qi(a2, b2, c2) {
+ c2 = mh(-1, c2);
+ c2.tag = 3;
+ var d2 = a2.type.getDerivedStateFromError;
+ if ("function" === typeof d2) {
+ var e2 = b2.value;
+ c2.payload = function() {
+ return d2(e2);
};
- c.callback = function() {
- Li(a, b);
+ c2.callback = function() {
+ Li(a2, b2);
};
}
- var f2 = a.stateNode;
- null !== f2 && "function" === typeof f2.componentDidCatch && (c.callback = function() {
- Li(a, b);
- "function" !== typeof d && (null === Ri ? Ri = /* @__PURE__ */ new Set([this]) : Ri.add(this));
- var c2 = b.stack;
- this.componentDidCatch(b.value, { componentStack: null !== c2 ? c2 : "" });
+ var f2 = a2.stateNode;
+ null !== f2 && "function" === typeof f2.componentDidCatch && (c2.callback = function() {
+ Li(a2, b2);
+ "function" !== typeof d2 && (null === Ri ? Ri = /* @__PURE__ */ new Set([this]) : Ri.add(this));
+ var c3 = b2.stack;
+ this.componentDidCatch(b2.value, { componentStack: null !== c3 ? c3 : "" });
});
- return c;
-}
-function Si(a, b, c) {
- var d = a.pingCache;
- if (null === d) {
- d = a.pingCache = new Mi();
- var e = /* @__PURE__ */ new Set();
- d.set(b, e);
- } else e = d.get(b), void 0 === e && (e = /* @__PURE__ */ new Set(), d.set(b, e));
- e.has(c) || (e.add(c), a = Ti.bind(null, a, b, c), b.then(a, a));
-}
-function Ui(a) {
+ return c2;
+}
+function Si(a2, b2, c2) {
+ var d2 = a2.pingCache;
+ if (null === d2) {
+ d2 = a2.pingCache = new Mi();
+ var e2 = /* @__PURE__ */ new Set();
+ d2.set(b2, e2);
+ } else e2 = d2.get(b2), void 0 === e2 && (e2 = /* @__PURE__ */ new Set(), d2.set(b2, e2));
+ e2.has(c2) || (e2.add(c2), a2 = Ti.bind(null, a2, b2, c2), b2.then(a2, a2));
+}
+function Ui(a2) {
do {
- var b;
- if (b = 13 === a.tag) b = a.memoizedState, b = null !== b ? null !== b.dehydrated ? true : false : true;
- if (b) return a;
- a = a.return;
- } while (null !== a);
+ var b2;
+ if (b2 = 13 === a2.tag) b2 = a2.memoizedState, b2 = null !== b2 ? null !== b2.dehydrated ? true : false : true;
+ if (b2) return a2;
+ a2 = a2.return;
+ } while (null !== a2);
return null;
}
-function Vi(a, b, c, d, e) {
- if (0 === (a.mode & 1)) return a === b ? a.flags |= 65536 : (a.flags |= 128, c.flags |= 131072, c.flags &= -52805, 1 === c.tag && (null === c.alternate ? c.tag = 17 : (b = mh(-1, 1), b.tag = 2, nh(c, b, 1))), c.lanes |= 1), a;
- a.flags |= 65536;
- a.lanes = e;
- return a;
+function Vi(a2, b2, c2, d2, e2) {
+ if (0 === (a2.mode & 1)) return a2 === b2 ? a2.flags |= 65536 : (a2.flags |= 128, c2.flags |= 131072, c2.flags &= -52805, 1 === c2.tag && (null === c2.alternate ? c2.tag = 17 : (b2 = mh(-1, 1), b2.tag = 2, nh(c2, b2, 1))), c2.lanes |= 1), a2;
+ a2.flags |= 65536;
+ a2.lanes = e2;
+ return a2;
}
var Wi = ua.ReactCurrentOwner, dh = false;
-function Xi(a, b, c, d) {
- b.child = null === a ? Vg(b, null, c, d) : Ug(b, a.child, c, d);
-}
-function Yi(a, b, c, d, e) {
- c = c.render;
- var f2 = b.ref;
- ch(b, e);
- d = Nh(a, b, c, d, f2, e);
- c = Sh();
- if (null !== a && !dh) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, Zi(a, b, e);
- I && c && vg(b);
- b.flags |= 1;
- Xi(a, b, d, e);
- return b.child;
-}
-function $i(a, b, c, d, e) {
- if (null === a) {
- var f2 = c.type;
- if ("function" === typeof f2 && !aj(f2) && void 0 === f2.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = f2, bj(a, b, f2, d, e);
- a = Rg(c.type, null, d, b, b.mode, e);
- a.ref = b.ref;
- a.return = b;
- return b.child = a;
- }
- f2 = a.child;
- if (0 === (a.lanes & e)) {
- var g = f2.memoizedProps;
- c = c.compare;
- c = null !== c ? c : Ie;
- if (c(g, d) && a.ref === b.ref) return Zi(a, b, e);
- }
- b.flags |= 1;
- a = Pg(f2, d);
- a.ref = b.ref;
- a.return = b;
- return b.child = a;
-}
-function bj(a, b, c, d, e) {
- if (null !== a) {
- var f2 = a.memoizedProps;
- if (Ie(f2, d) && a.ref === b.ref) if (dh = false, b.pendingProps = d = f2, 0 !== (a.lanes & e)) 0 !== (a.flags & 131072) && (dh = true);
- else return b.lanes = a.lanes, Zi(a, b, e);
- }
- return cj(a, b, c, d, e);
-}
-function dj(a, b, c) {
- var d = b.pendingProps, e = d.children, f2 = null !== a ? a.memoizedState : null;
- if ("hidden" === d.mode) if (0 === (b.mode & 1)) b.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, G(ej, fj), fj |= c;
+function Xi(a2, b2, c2, d2) {
+ b2.child = null === a2 ? Vg(b2, null, c2, d2) : Ug(b2, a2.child, c2, d2);
+}
+function Yi(a2, b2, c2, d2, e2) {
+ c2 = c2.render;
+ var f2 = b2.ref;
+ ch(b2, e2);
+ d2 = Nh(a2, b2, c2, d2, f2, e2);
+ c2 = Sh();
+ if (null !== a2 && !dh) return b2.updateQueue = a2.updateQueue, b2.flags &= -2053, a2.lanes &= ~e2, Zi(a2, b2, e2);
+ I$1 && c2 && vg(b2);
+ b2.flags |= 1;
+ Xi(a2, b2, d2, e2);
+ return b2.child;
+}
+function $i(a2, b2, c2, d2, e2) {
+ if (null === a2) {
+ var f2 = c2.type;
+ if ("function" === typeof f2 && !aj(f2) && void 0 === f2.defaultProps && null === c2.compare && void 0 === c2.defaultProps) return b2.tag = 15, b2.type = f2, bj(a2, b2, f2, d2, e2);
+ a2 = Rg(c2.type, null, d2, b2, b2.mode, e2);
+ a2.ref = b2.ref;
+ a2.return = b2;
+ return b2.child = a2;
+ }
+ f2 = a2.child;
+ if (0 === (a2.lanes & e2)) {
+ var g2 = f2.memoizedProps;
+ c2 = c2.compare;
+ c2 = null !== c2 ? c2 : Ie$1;
+ if (c2(g2, d2) && a2.ref === b2.ref) return Zi(a2, b2, e2);
+ }
+ b2.flags |= 1;
+ a2 = Pg(f2, d2);
+ a2.ref = b2.ref;
+ a2.return = b2;
+ return b2.child = a2;
+}
+function bj(a2, b2, c2, d2, e2) {
+ if (null !== a2) {
+ var f2 = a2.memoizedProps;
+ if (Ie$1(f2, d2) && a2.ref === b2.ref) if (dh = false, b2.pendingProps = d2 = f2, 0 !== (a2.lanes & e2)) 0 !== (a2.flags & 131072) && (dh = true);
+ else return b2.lanes = a2.lanes, Zi(a2, b2, e2);
+ }
+ return cj(a2, b2, c2, d2, e2);
+}
+function dj(a2, b2, c2) {
+ var d2 = b2.pendingProps, e2 = d2.children, f2 = null !== a2 ? a2.memoizedState : null;
+ if ("hidden" === d2.mode) if (0 === (b2.mode & 1)) b2.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, G$1(ej, fj), fj |= c2;
else {
- if (0 === (c & 1073741824)) return a = null !== f2 ? f2.baseLanes | c : c, b.lanes = b.childLanes = 1073741824, b.memoizedState = { baseLanes: a, cachePool: null, transitions: null }, b.updateQueue = null, G(ej, fj), fj |= a, null;
- b.memoizedState = { baseLanes: 0, cachePool: null, transitions: null };
- d = null !== f2 ? f2.baseLanes : c;
- G(ej, fj);
- fj |= d;
- }
- else null !== f2 ? (d = f2.baseLanes | c, b.memoizedState = null) : d = c, G(ej, fj), fj |= d;
- Xi(a, b, e, c);
- return b.child;
-}
-function gj(a, b) {
- var c = b.ref;
- if (null === a && null !== c || null !== a && a.ref !== c) b.flags |= 512, b.flags |= 2097152;
-}
-function cj(a, b, c, d, e) {
- var f2 = Zf(c) ? Xf : H.current;
- f2 = Yf(b, f2);
- ch(b, e);
- c = Nh(a, b, c, d, f2, e);
- d = Sh();
- if (null !== a && !dh) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, Zi(a, b, e);
- I && d && vg(b);
- b.flags |= 1;
- Xi(a, b, c, e);
- return b.child;
-}
-function hj(a, b, c, d, e) {
- if (Zf(c)) {
+ if (0 === (c2 & 1073741824)) return a2 = null !== f2 ? f2.baseLanes | c2 : c2, b2.lanes = b2.childLanes = 1073741824, b2.memoizedState = { baseLanes: a2, cachePool: null, transitions: null }, b2.updateQueue = null, G$1(ej, fj), fj |= a2, null;
+ b2.memoizedState = { baseLanes: 0, cachePool: null, transitions: null };
+ d2 = null !== f2 ? f2.baseLanes : c2;
+ G$1(ej, fj);
+ fj |= d2;
+ }
+ else null !== f2 ? (d2 = f2.baseLanes | c2, b2.memoizedState = null) : d2 = c2, G$1(ej, fj), fj |= d2;
+ Xi(a2, b2, e2, c2);
+ return b2.child;
+}
+function gj(a2, b2) {
+ var c2 = b2.ref;
+ if (null === a2 && null !== c2 || null !== a2 && a2.ref !== c2) b2.flags |= 512, b2.flags |= 2097152;
+}
+function cj(a2, b2, c2, d2, e2) {
+ var f2 = Zf(c2) ? Xf : H$1.current;
+ f2 = Yf(b2, f2);
+ ch(b2, e2);
+ c2 = Nh(a2, b2, c2, d2, f2, e2);
+ d2 = Sh();
+ if (null !== a2 && !dh) return b2.updateQueue = a2.updateQueue, b2.flags &= -2053, a2.lanes &= ~e2, Zi(a2, b2, e2);
+ I$1 && d2 && vg(b2);
+ b2.flags |= 1;
+ Xi(a2, b2, c2, e2);
+ return b2.child;
+}
+function hj(a2, b2, c2, d2, e2) {
+ if (Zf(c2)) {
var f2 = true;
- cg(b);
+ cg(b2);
} else f2 = false;
- ch(b, e);
- if (null === b.stateNode) ij(a, b), Gi(b, c, d), Ii(b, c, d, e), d = true;
- else if (null === a) {
- var g = b.stateNode, h = b.memoizedProps;
- g.props = h;
- var k2 = g.context, l2 = c.contextType;
- "object" === typeof l2 && null !== l2 ? l2 = eh(l2) : (l2 = Zf(c) ? Xf : H.current, l2 = Yf(b, l2));
- var m2 = c.getDerivedStateFromProps, q2 = "function" === typeof m2 || "function" === typeof g.getSnapshotBeforeUpdate;
- q2 || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || k2 !== l2) && Hi(b, g, d, l2);
+ ch(b2, e2);
+ if (null === b2.stateNode) ij(a2, b2), Gi(b2, c2, d2), Ii(b2, c2, d2, e2), d2 = true;
+ else if (null === a2) {
+ var g2 = b2.stateNode, h2 = b2.memoizedProps;
+ g2.props = h2;
+ var k2 = g2.context, l2 = c2.contextType;
+ "object" === typeof l2 && null !== l2 ? l2 = eh(l2) : (l2 = Zf(c2) ? Xf : H$1.current, l2 = Yf(b2, l2));
+ var m2 = c2.getDerivedStateFromProps, q2 = "function" === typeof m2 || "function" === typeof g2.getSnapshotBeforeUpdate;
+ q2 || "function" !== typeof g2.UNSAFE_componentWillReceiveProps && "function" !== typeof g2.componentWillReceiveProps || (h2 !== d2 || k2 !== l2) && Hi(b2, g2, d2, l2);
jh = false;
- var r2 = b.memoizedState;
- g.state = r2;
- qh(b, d, g, e);
- k2 = b.memoizedState;
- h !== d || r2 !== k2 || Wf.current || jh ? ("function" === typeof m2 && (Di(b, c, m2, d), k2 = b.memoizedState), (h = jh || Fi(b, c, h, d, r2, k2, l2)) ? (q2 || "function" !== typeof g.UNSAFE_componentWillMount && "function" !== typeof g.componentWillMount || ("function" === typeof g.componentWillMount && g.componentWillMount(), "function" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), "function" === typeof g.componentDidMount && (b.flags |= 4194308)) : ("function" === typeof g.componentDidMount && (b.flags |= 4194308), b.memoizedProps = d, b.memoizedState = k2), g.props = d, g.state = k2, g.context = l2, d = h) : ("function" === typeof g.componentDidMount && (b.flags |= 4194308), d = false);
+ var r2 = b2.memoizedState;
+ g2.state = r2;
+ qh(b2, d2, g2, e2);
+ k2 = b2.memoizedState;
+ h2 !== d2 || r2 !== k2 || Wf.current || jh ? ("function" === typeof m2 && (Di(b2, c2, m2, d2), k2 = b2.memoizedState), (h2 = jh || Fi(b2, c2, h2, d2, r2, k2, l2)) ? (q2 || "function" !== typeof g2.UNSAFE_componentWillMount && "function" !== typeof g2.componentWillMount || ("function" === typeof g2.componentWillMount && g2.componentWillMount(), "function" === typeof g2.UNSAFE_componentWillMount && g2.UNSAFE_componentWillMount()), "function" === typeof g2.componentDidMount && (b2.flags |= 4194308)) : ("function" === typeof g2.componentDidMount && (b2.flags |= 4194308), b2.memoizedProps = d2, b2.memoizedState = k2), g2.props = d2, g2.state = k2, g2.context = l2, d2 = h2) : ("function" === typeof g2.componentDidMount && (b2.flags |= 4194308), d2 = false);
} else {
- g = b.stateNode;
- lh(a, b);
- h = b.memoizedProps;
- l2 = b.type === b.elementType ? h : Ci(b.type, h);
- g.props = l2;
- q2 = b.pendingProps;
- r2 = g.context;
- k2 = c.contextType;
- "object" === typeof k2 && null !== k2 ? k2 = eh(k2) : (k2 = Zf(c) ? Xf : H.current, k2 = Yf(b, k2));
- var y2 = c.getDerivedStateFromProps;
- (m2 = "function" === typeof y2 || "function" === typeof g.getSnapshotBeforeUpdate) || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== q2 || r2 !== k2) && Hi(b, g, d, k2);
+ g2 = b2.stateNode;
+ lh(a2, b2);
+ h2 = b2.memoizedProps;
+ l2 = b2.type === b2.elementType ? h2 : Ci(b2.type, h2);
+ g2.props = l2;
+ q2 = b2.pendingProps;
+ r2 = g2.context;
+ k2 = c2.contextType;
+ "object" === typeof k2 && null !== k2 ? k2 = eh(k2) : (k2 = Zf(c2) ? Xf : H$1.current, k2 = Yf(b2, k2));
+ var y2 = c2.getDerivedStateFromProps;
+ (m2 = "function" === typeof y2 || "function" === typeof g2.getSnapshotBeforeUpdate) || "function" !== typeof g2.UNSAFE_componentWillReceiveProps && "function" !== typeof g2.componentWillReceiveProps || (h2 !== q2 || r2 !== k2) && Hi(b2, g2, d2, k2);
jh = false;
- r2 = b.memoizedState;
- g.state = r2;
- qh(b, d, g, e);
- var n2 = b.memoizedState;
- h !== q2 || r2 !== n2 || Wf.current || jh ? ("function" === typeof y2 && (Di(b, c, y2, d), n2 = b.memoizedState), (l2 = jh || Fi(b, c, l2, d, r2, n2, k2) || false) ? (m2 || "function" !== typeof g.UNSAFE_componentWillUpdate && "function" !== typeof g.componentWillUpdate || ("function" === typeof g.componentWillUpdate && g.componentWillUpdate(d, n2, k2), "function" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, n2, k2)), "function" === typeof g.componentDidUpdate && (b.flags |= 4), "function" === typeof g.getSnapshotBeforeUpdate && (b.flags |= 1024)) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && r2 === a.memoizedState || (b.flags |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r2 === a.memoizedState || (b.flags |= 1024), b.memoizedProps = d, b.memoizedState = n2), g.props = d, g.state = n2, g.context = k2, d = l2) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && r2 === a.memoizedState || (b.flags |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r2 === a.memoizedState || (b.flags |= 1024), d = false);
- }
- return jj(a, b, c, d, f2, e);
-}
-function jj(a, b, c, d, e, f2) {
- gj(a, b);
- var g = 0 !== (b.flags & 128);
- if (!d && !g) return e && dg(b, c, false), Zi(a, b, f2);
- d = b.stateNode;
- Wi.current = b;
- var h = g && "function" !== typeof c.getDerivedStateFromError ? null : d.render();
- b.flags |= 1;
- null !== a && g ? (b.child = Ug(b, a.child, null, f2), b.child = Ug(b, null, h, f2)) : Xi(a, b, h, f2);
- b.memoizedState = d.state;
- e && dg(b, c, true);
- return b.child;
-}
-function kj(a) {
- var b = a.stateNode;
- b.pendingContext ? ag(a, b.pendingContext, b.pendingContext !== b.context) : b.context && ag(a, b.context, false);
- yh(a, b.containerInfo);
-}
-function lj(a, b, c, d, e) {
+ r2 = b2.memoizedState;
+ g2.state = r2;
+ qh(b2, d2, g2, e2);
+ var n2 = b2.memoizedState;
+ h2 !== q2 || r2 !== n2 || Wf.current || jh ? ("function" === typeof y2 && (Di(b2, c2, y2, d2), n2 = b2.memoizedState), (l2 = jh || Fi(b2, c2, l2, d2, r2, n2, k2) || false) ? (m2 || "function" !== typeof g2.UNSAFE_componentWillUpdate && "function" !== typeof g2.componentWillUpdate || ("function" === typeof g2.componentWillUpdate && g2.componentWillUpdate(d2, n2, k2), "function" === typeof g2.UNSAFE_componentWillUpdate && g2.UNSAFE_componentWillUpdate(d2, n2, k2)), "function" === typeof g2.componentDidUpdate && (b2.flags |= 4), "function" === typeof g2.getSnapshotBeforeUpdate && (b2.flags |= 1024)) : ("function" !== typeof g2.componentDidUpdate || h2 === a2.memoizedProps && r2 === a2.memoizedState || (b2.flags |= 4), "function" !== typeof g2.getSnapshotBeforeUpdate || h2 === a2.memoizedProps && r2 === a2.memoizedState || (b2.flags |= 1024), b2.memoizedProps = d2, b2.memoizedState = n2), g2.props = d2, g2.state = n2, g2.context = k2, d2 = l2) : ("function" !== typeof g2.componentDidUpdate || h2 === a2.memoizedProps && r2 === a2.memoizedState || (b2.flags |= 4), "function" !== typeof g2.getSnapshotBeforeUpdate || h2 === a2.memoizedProps && r2 === a2.memoizedState || (b2.flags |= 1024), d2 = false);
+ }
+ return jj(a2, b2, c2, d2, f2, e2);
+}
+function jj(a2, b2, c2, d2, e2, f2) {
+ gj(a2, b2);
+ var g2 = 0 !== (b2.flags & 128);
+ if (!d2 && !g2) return e2 && dg(b2, c2, false), Zi(a2, b2, f2);
+ d2 = b2.stateNode;
+ Wi.current = b2;
+ var h2 = g2 && "function" !== typeof c2.getDerivedStateFromError ? null : d2.render();
+ b2.flags |= 1;
+ null !== a2 && g2 ? (b2.child = Ug(b2, a2.child, null, f2), b2.child = Ug(b2, null, h2, f2)) : Xi(a2, b2, h2, f2);
+ b2.memoizedState = d2.state;
+ e2 && dg(b2, c2, true);
+ return b2.child;
+}
+function kj(a2) {
+ var b2 = a2.stateNode;
+ b2.pendingContext ? ag(a2, b2.pendingContext, b2.pendingContext !== b2.context) : b2.context && ag(a2, b2.context, false);
+ yh(a2, b2.containerInfo);
+}
+function lj(a2, b2, c2, d2, e2) {
Ig();
- Jg(e);
- b.flags |= 256;
- Xi(a, b, c, d);
- return b.child;
+ Jg(e2);
+ b2.flags |= 256;
+ Xi(a2, b2, c2, d2);
+ return b2.child;
}
var mj = { dehydrated: null, treeContext: null, retryLane: 0 };
-function nj(a) {
- return { baseLanes: a, cachePool: null, transitions: null };
-}
-function oj(a, b, c) {
- var d = b.pendingProps, e = L$2.current, f2 = false, g = 0 !== (b.flags & 128), h;
- (h = g) || (h = null !== a && null === a.memoizedState ? false : 0 !== (e & 2));
- if (h) f2 = true, b.flags &= -129;
- else if (null === a || null !== a.memoizedState) e |= 1;
- G(L$2, e & 1);
- if (null === a) {
- Eg(b);
- a = b.memoizedState;
- if (null !== a && (a = a.dehydrated, null !== a)) return 0 === (b.mode & 1) ? b.lanes = 1 : "$!" === a.data ? b.lanes = 8 : b.lanes = 1073741824, null;
- g = d.children;
- a = d.fallback;
- return f2 ? (d = b.mode, f2 = b.child, g = { mode: "hidden", children: g }, 0 === (d & 1) && null !== f2 ? (f2.childLanes = 0, f2.pendingProps = g) : f2 = pj(g, d, 0, null), a = Tg(a, d, c, null), f2.return = b, a.return = b, f2.sibling = a, b.child = f2, b.child.memoizedState = nj(c), b.memoizedState = mj, a) : qj(b, g);
- }
- e = a.memoizedState;
- if (null !== e && (h = e.dehydrated, null !== h)) return rj(a, b, g, d, h, e, c);
+function nj(a2) {
+ return { baseLanes: a2, cachePool: null, transitions: null };
+}
+function oj(a2, b2, c2) {
+ var d2 = b2.pendingProps, e2 = L$1.current, f2 = false, g2 = 0 !== (b2.flags & 128), h2;
+ (h2 = g2) || (h2 = null !== a2 && null === a2.memoizedState ? false : 0 !== (e2 & 2));
+ if (h2) f2 = true, b2.flags &= -129;
+ else if (null === a2 || null !== a2.memoizedState) e2 |= 1;
+ G$1(L$1, e2 & 1);
+ if (null === a2) {
+ Eg(b2);
+ a2 = b2.memoizedState;
+ if (null !== a2 && (a2 = a2.dehydrated, null !== a2)) return 0 === (b2.mode & 1) ? b2.lanes = 1 : "$!" === a2.data ? b2.lanes = 8 : b2.lanes = 1073741824, null;
+ g2 = d2.children;
+ a2 = d2.fallback;
+ return f2 ? (d2 = b2.mode, f2 = b2.child, g2 = { mode: "hidden", children: g2 }, 0 === (d2 & 1) && null !== f2 ? (f2.childLanes = 0, f2.pendingProps = g2) : f2 = pj(g2, d2, 0, null), a2 = Tg(a2, d2, c2, null), f2.return = b2, a2.return = b2, f2.sibling = a2, b2.child = f2, b2.child.memoizedState = nj(c2), b2.memoizedState = mj, a2) : qj(b2, g2);
+ }
+ e2 = a2.memoizedState;
+ if (null !== e2 && (h2 = e2.dehydrated, null !== h2)) return rj(a2, b2, g2, d2, h2, e2, c2);
if (f2) {
- f2 = d.fallback;
- g = b.mode;
- e = a.child;
- h = e.sibling;
- var k2 = { mode: "hidden", children: d.children };
- 0 === (g & 1) && b.child !== e ? (d = b.child, d.childLanes = 0, d.pendingProps = k2, b.deletions = null) : (d = Pg(e, k2), d.subtreeFlags = e.subtreeFlags & 14680064);
- null !== h ? f2 = Pg(h, f2) : (f2 = Tg(f2, g, c, null), f2.flags |= 2);
- f2.return = b;
- d.return = b;
- d.sibling = f2;
- b.child = d;
- d = f2;
- f2 = b.child;
- g = a.child.memoizedState;
- g = null === g ? nj(c) : { baseLanes: g.baseLanes | c, cachePool: null, transitions: g.transitions };
- f2.memoizedState = g;
- f2.childLanes = a.childLanes & ~c;
- b.memoizedState = mj;
- return d;
- }
- f2 = a.child;
- a = f2.sibling;
- d = Pg(f2, { mode: "visible", children: d.children });
- 0 === (b.mode & 1) && (d.lanes = c);
- d.return = b;
- d.sibling = null;
- null !== a && (c = b.deletions, null === c ? (b.deletions = [a], b.flags |= 16) : c.push(a));
- b.child = d;
- b.memoizedState = null;
- return d;
-}
-function qj(a, b) {
- b = pj({ mode: "visible", children: b }, a.mode, 0, null);
- b.return = a;
- return a.child = b;
-}
-function sj(a, b, c, d) {
- null !== d && Jg(d);
- Ug(b, a.child, null, c);
- a = qj(b, b.pendingProps.children);
- a.flags |= 2;
- b.memoizedState = null;
- return a;
-}
-function rj(a, b, c, d, e, f2, g) {
- if (c) {
- if (b.flags & 256) return b.flags &= -257, d = Ki(Error(p(422))), sj(a, b, g, d);
- if (null !== b.memoizedState) return b.child = a.child, b.flags |= 128, null;
- f2 = d.fallback;
- e = b.mode;
- d = pj({ mode: "visible", children: d.children }, e, 0, null);
- f2 = Tg(f2, e, g, null);
+ f2 = d2.fallback;
+ g2 = b2.mode;
+ e2 = a2.child;
+ h2 = e2.sibling;
+ var k2 = { mode: "hidden", children: d2.children };
+ 0 === (g2 & 1) && b2.child !== e2 ? (d2 = b2.child, d2.childLanes = 0, d2.pendingProps = k2, b2.deletions = null) : (d2 = Pg(e2, k2), d2.subtreeFlags = e2.subtreeFlags & 14680064);
+ null !== h2 ? f2 = Pg(h2, f2) : (f2 = Tg(f2, g2, c2, null), f2.flags |= 2);
+ f2.return = b2;
+ d2.return = b2;
+ d2.sibling = f2;
+ b2.child = d2;
+ d2 = f2;
+ f2 = b2.child;
+ g2 = a2.child.memoizedState;
+ g2 = null === g2 ? nj(c2) : { baseLanes: g2.baseLanes | c2, cachePool: null, transitions: g2.transitions };
+ f2.memoizedState = g2;
+ f2.childLanes = a2.childLanes & ~c2;
+ b2.memoizedState = mj;
+ return d2;
+ }
+ f2 = a2.child;
+ a2 = f2.sibling;
+ d2 = Pg(f2, { mode: "visible", children: d2.children });
+ 0 === (b2.mode & 1) && (d2.lanes = c2);
+ d2.return = b2;
+ d2.sibling = null;
+ null !== a2 && (c2 = b2.deletions, null === c2 ? (b2.deletions = [a2], b2.flags |= 16) : c2.push(a2));
+ b2.child = d2;
+ b2.memoizedState = null;
+ return d2;
+}
+function qj(a2, b2) {
+ b2 = pj({ mode: "visible", children: b2 }, a2.mode, 0, null);
+ b2.return = a2;
+ return a2.child = b2;
+}
+function sj(a2, b2, c2, d2) {
+ null !== d2 && Jg(d2);
+ Ug(b2, a2.child, null, c2);
+ a2 = qj(b2, b2.pendingProps.children);
+ a2.flags |= 2;
+ b2.memoizedState = null;
+ return a2;
+}
+function rj(a2, b2, c2, d2, e2, f2, g2) {
+ if (c2) {
+ if (b2.flags & 256) return b2.flags &= -257, d2 = Ki(Error(p$1(422))), sj(a2, b2, g2, d2);
+ if (null !== b2.memoizedState) return b2.child = a2.child, b2.flags |= 128, null;
+ f2 = d2.fallback;
+ e2 = b2.mode;
+ d2 = pj({ mode: "visible", children: d2.children }, e2, 0, null);
+ f2 = Tg(f2, e2, g2, null);
f2.flags |= 2;
- d.return = b;
- f2.return = b;
- d.sibling = f2;
- b.child = d;
- 0 !== (b.mode & 1) && Ug(b, a.child, null, g);
- b.child.memoizedState = nj(g);
- b.memoizedState = mj;
+ d2.return = b2;
+ f2.return = b2;
+ d2.sibling = f2;
+ b2.child = d2;
+ 0 !== (b2.mode & 1) && Ug(b2, a2.child, null, g2);
+ b2.child.memoizedState = nj(g2);
+ b2.memoizedState = mj;
return f2;
}
- if (0 === (b.mode & 1)) return sj(a, b, g, null);
- if ("$!" === e.data) {
- d = e.nextSibling && e.nextSibling.dataset;
- if (d) var h = d.dgst;
- d = h;
- f2 = Error(p(419));
- d = Ki(f2, d, void 0);
- return sj(a, b, g, d);
- }
- h = 0 !== (g & a.childLanes);
- if (dh || h) {
- d = Q;
- if (null !== d) {
- switch (g & -g) {
+ if (0 === (b2.mode & 1)) return sj(a2, b2, g2, null);
+ if ("$!" === e2.data) {
+ d2 = e2.nextSibling && e2.nextSibling.dataset;
+ if (d2) var h2 = d2.dgst;
+ d2 = h2;
+ f2 = Error(p$1(419));
+ d2 = Ki(f2, d2, void 0);
+ return sj(a2, b2, g2, d2);
+ }
+ h2 = 0 !== (g2 & a2.childLanes);
+ if (dh || h2) {
+ d2 = Q$1;
+ if (null !== d2) {
+ switch (g2 & -g2) {
case 4:
- e = 2;
+ e2 = 2;
break;
case 16:
- e = 8;
+ e2 = 8;
break;
case 64:
case 128:
@@ -4248,262 +4248,262 @@ function rj(a, b, c, d, e, f2, g) {
case 16777216:
case 33554432:
case 67108864:
- e = 32;
+ e2 = 32;
break;
case 536870912:
- e = 268435456;
+ e2 = 268435456;
break;
default:
- e = 0;
+ e2 = 0;
}
- e = 0 !== (e & (d.suspendedLanes | g)) ? 0 : e;
- 0 !== e && e !== f2.retryLane && (f2.retryLane = e, ih(a, e), gi(d, a, e, -1));
+ e2 = 0 !== (e2 & (d2.suspendedLanes | g2)) ? 0 : e2;
+ 0 !== e2 && e2 !== f2.retryLane && (f2.retryLane = e2, ih(a2, e2), gi(d2, a2, e2, -1));
}
tj();
- d = Ki(Error(p(421)));
- return sj(a, b, g, d);
- }
- if ("$?" === e.data) return b.flags |= 128, b.child = a.child, b = uj.bind(null, a), e._reactRetry = b, null;
- a = f2.treeContext;
- yg = Lf(e.nextSibling);
- xg = b;
- I = true;
+ d2 = Ki(Error(p$1(421)));
+ return sj(a2, b2, g2, d2);
+ }
+ if ("$?" === e2.data) return b2.flags |= 128, b2.child = a2.child, b2 = uj.bind(null, a2), e2._reactRetry = b2, null;
+ a2 = f2.treeContext;
+ yg = Lf(e2.nextSibling);
+ xg = b2;
+ I$1 = true;
zg = null;
- null !== a && (og[pg++] = rg, og[pg++] = sg, og[pg++] = qg, rg = a.id, sg = a.overflow, qg = b);
- b = qj(b, d.children);
- b.flags |= 4096;
- return b;
+ null !== a2 && (og[pg++] = rg, og[pg++] = sg, og[pg++] = qg, rg = a2.id, sg = a2.overflow, qg = b2);
+ b2 = qj(b2, d2.children);
+ b2.flags |= 4096;
+ return b2;
+}
+function vj(a2, b2, c2) {
+ a2.lanes |= b2;
+ var d2 = a2.alternate;
+ null !== d2 && (d2.lanes |= b2);
+ bh(a2.return, b2, c2);
+}
+function wj(a2, b2, c2, d2, e2) {
+ var f2 = a2.memoizedState;
+ null === f2 ? a2.memoizedState = { isBackwards: b2, rendering: null, renderingStartTime: 0, last: d2, tail: c2, tailMode: e2 } : (f2.isBackwards = b2, f2.rendering = null, f2.renderingStartTime = 0, f2.last = d2, f2.tail = c2, f2.tailMode = e2);
}
-function vj(a, b, c) {
- a.lanes |= b;
- var d = a.alternate;
- null !== d && (d.lanes |= b);
- bh(a.return, b, c);
-}
-function wj(a, b, c, d, e) {
- var f2 = a.memoizedState;
- null === f2 ? a.memoizedState = { isBackwards: b, rendering: null, renderingStartTime: 0, last: d, tail: c, tailMode: e } : (f2.isBackwards = b, f2.rendering = null, f2.renderingStartTime = 0, f2.last = d, f2.tail = c, f2.tailMode = e);
-}
-function xj(a, b, c) {
- var d = b.pendingProps, e = d.revealOrder, f2 = d.tail;
- Xi(a, b, d.children, c);
- d = L$2.current;
- if (0 !== (d & 2)) d = d & 1 | 2, b.flags |= 128;
+function xj(a2, b2, c2) {
+ var d2 = b2.pendingProps, e2 = d2.revealOrder, f2 = d2.tail;
+ Xi(a2, b2, d2.children, c2);
+ d2 = L$1.current;
+ if (0 !== (d2 & 2)) d2 = d2 & 1 | 2, b2.flags |= 128;
else {
- if (null !== a && 0 !== (a.flags & 128)) a: for (a = b.child; null !== a; ) {
- if (13 === a.tag) null !== a.memoizedState && vj(a, c, b);
- else if (19 === a.tag) vj(a, c, b);
- else if (null !== a.child) {
- a.child.return = a;
- a = a.child;
+ if (null !== a2 && 0 !== (a2.flags & 128)) a: for (a2 = b2.child; null !== a2; ) {
+ if (13 === a2.tag) null !== a2.memoizedState && vj(a2, c2, b2);
+ else if (19 === a2.tag) vj(a2, c2, b2);
+ else if (null !== a2.child) {
+ a2.child.return = a2;
+ a2 = a2.child;
continue;
}
- if (a === b) break a;
- for (; null === a.sibling; ) {
- if (null === a.return || a.return === b) break a;
- a = a.return;
+ if (a2 === b2) break a;
+ for (; null === a2.sibling; ) {
+ if (null === a2.return || a2.return === b2) break a;
+ a2 = a2.return;
}
- a.sibling.return = a.return;
- a = a.sibling;
+ a2.sibling.return = a2.return;
+ a2 = a2.sibling;
}
- d &= 1;
+ d2 &= 1;
}
- G(L$2, d);
- if (0 === (b.mode & 1)) b.memoizedState = null;
- else switch (e) {
+ G$1(L$1, d2);
+ if (0 === (b2.mode & 1)) b2.memoizedState = null;
+ else switch (e2) {
case "forwards":
- c = b.child;
- for (e = null; null !== c; ) a = c.alternate, null !== a && null === Ch(a) && (e = c), c = c.sibling;
- c = e;
- null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);
- wj(b, false, e, c, f2);
+ c2 = b2.child;
+ for (e2 = null; null !== c2; ) a2 = c2.alternate, null !== a2 && null === Ch(a2) && (e2 = c2), c2 = c2.sibling;
+ c2 = e2;
+ null === c2 ? (e2 = b2.child, b2.child = null) : (e2 = c2.sibling, c2.sibling = null);
+ wj(b2, false, e2, c2, f2);
break;
case "backwards":
- c = null;
- e = b.child;
- for (b.child = null; null !== e; ) {
- a = e.alternate;
- if (null !== a && null === Ch(a)) {
- b.child = e;
+ c2 = null;
+ e2 = b2.child;
+ for (b2.child = null; null !== e2; ) {
+ a2 = e2.alternate;
+ if (null !== a2 && null === Ch(a2)) {
+ b2.child = e2;
break;
}
- a = e.sibling;
- e.sibling = c;
- c = e;
- e = a;
+ a2 = e2.sibling;
+ e2.sibling = c2;
+ c2 = e2;
+ e2 = a2;
}
- wj(b, true, c, null, f2);
+ wj(b2, true, c2, null, f2);
break;
case "together":
- wj(b, false, null, null, void 0);
+ wj(b2, false, null, null, void 0);
break;
default:
- b.memoizedState = null;
+ b2.memoizedState = null;
}
- return b.child;
+ return b2.child;
}
-function ij(a, b) {
- 0 === (b.mode & 1) && null !== a && (a.alternate = null, b.alternate = null, b.flags |= 2);
+function ij(a2, b2) {
+ 0 === (b2.mode & 1) && null !== a2 && (a2.alternate = null, b2.alternate = null, b2.flags |= 2);
}
-function Zi(a, b, c) {
- null !== a && (b.dependencies = a.dependencies);
- rh |= b.lanes;
- if (0 === (c & b.childLanes)) return null;
- if (null !== a && b.child !== a.child) throw Error(p(153));
- if (null !== b.child) {
- a = b.child;
- c = Pg(a, a.pendingProps);
- b.child = c;
- for (c.return = b; null !== a.sibling; ) a = a.sibling, c = c.sibling = Pg(a, a.pendingProps), c.return = b;
- c.sibling = null;
- }
- return b.child;
+function Zi(a2, b2, c2) {
+ null !== a2 && (b2.dependencies = a2.dependencies);
+ rh |= b2.lanes;
+ if (0 === (c2 & b2.childLanes)) return null;
+ if (null !== a2 && b2.child !== a2.child) throw Error(p$1(153));
+ if (null !== b2.child) {
+ a2 = b2.child;
+ c2 = Pg(a2, a2.pendingProps);
+ b2.child = c2;
+ for (c2.return = b2; null !== a2.sibling; ) a2 = a2.sibling, c2 = c2.sibling = Pg(a2, a2.pendingProps), c2.return = b2;
+ c2.sibling = null;
+ }
+ return b2.child;
}
-function yj(a, b, c) {
- switch (b.tag) {
+function yj(a2, b2, c2) {
+ switch (b2.tag) {
case 3:
- kj(b);
+ kj(b2);
Ig();
break;
case 5:
- Ah(b);
+ Ah(b2);
break;
case 1:
- Zf(b.type) && cg(b);
+ Zf(b2.type) && cg(b2);
break;
case 4:
- yh(b, b.stateNode.containerInfo);
+ yh(b2, b2.stateNode.containerInfo);
break;
case 10:
- var d = b.type._context, e = b.memoizedProps.value;
- G(Wg, d._currentValue);
- d._currentValue = e;
+ var d2 = b2.type._context, e2 = b2.memoizedProps.value;
+ G$1(Wg, d2._currentValue);
+ d2._currentValue = e2;
break;
case 13:
- d = b.memoizedState;
- if (null !== d) {
- if (null !== d.dehydrated) return G(L$2, L$2.current & 1), b.flags |= 128, null;
- if (0 !== (c & b.child.childLanes)) return oj(a, b, c);
- G(L$2, L$2.current & 1);
- a = Zi(a, b, c);
- return null !== a ? a.sibling : null;
- }
- G(L$2, L$2.current & 1);
+ d2 = b2.memoizedState;
+ if (null !== d2) {
+ if (null !== d2.dehydrated) return G$1(L$1, L$1.current & 1), b2.flags |= 128, null;
+ if (0 !== (c2 & b2.child.childLanes)) return oj(a2, b2, c2);
+ G$1(L$1, L$1.current & 1);
+ a2 = Zi(a2, b2, c2);
+ return null !== a2 ? a2.sibling : null;
+ }
+ G$1(L$1, L$1.current & 1);
break;
case 19:
- d = 0 !== (c & b.childLanes);
- if (0 !== (a.flags & 128)) {
- if (d) return xj(a, b, c);
- b.flags |= 128;
- }
- e = b.memoizedState;
- null !== e && (e.rendering = null, e.tail = null, e.lastEffect = null);
- G(L$2, L$2.current);
- if (d) break;
+ d2 = 0 !== (c2 & b2.childLanes);
+ if (0 !== (a2.flags & 128)) {
+ if (d2) return xj(a2, b2, c2);
+ b2.flags |= 128;
+ }
+ e2 = b2.memoizedState;
+ null !== e2 && (e2.rendering = null, e2.tail = null, e2.lastEffect = null);
+ G$1(L$1, L$1.current);
+ if (d2) break;
else return null;
case 22:
case 23:
- return b.lanes = 0, dj(a, b, c);
+ return b2.lanes = 0, dj(a2, b2, c2);
}
- return Zi(a, b, c);
+ return Zi(a2, b2, c2);
}
var zj, Aj, Bj, Cj;
-zj = function(a, b) {
- for (var c = b.child; null !== c; ) {
- if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);
- else if (4 !== c.tag && null !== c.child) {
- c.child.return = c;
- c = c.child;
+zj = function(a2, b2) {
+ for (var c2 = b2.child; null !== c2; ) {
+ if (5 === c2.tag || 6 === c2.tag) a2.appendChild(c2.stateNode);
+ else if (4 !== c2.tag && null !== c2.child) {
+ c2.child.return = c2;
+ c2 = c2.child;
continue;
}
- if (c === b) break;
- for (; null === c.sibling; ) {
- if (null === c.return || c.return === b) return;
- c = c.return;
+ if (c2 === b2) break;
+ for (; null === c2.sibling; ) {
+ if (null === c2.return || c2.return === b2) return;
+ c2 = c2.return;
}
- c.sibling.return = c.return;
- c = c.sibling;
+ c2.sibling.return = c2.return;
+ c2 = c2.sibling;
}
};
Aj = function() {
};
-Bj = function(a, b, c, d) {
- var e = a.memoizedProps;
- if (e !== d) {
- a = b.stateNode;
+Bj = function(a2, b2, c2, d2) {
+ var e2 = a2.memoizedProps;
+ if (e2 !== d2) {
+ a2 = b2.stateNode;
xh(uh.current);
var f2 = null;
- switch (c) {
+ switch (c2) {
case "input":
- e = Ya(a, e);
- d = Ya(a, d);
+ e2 = Ya(a2, e2);
+ d2 = Ya(a2, d2);
f2 = [];
break;
case "select":
- e = A({}, e, { value: void 0 });
- d = A({}, d, { value: void 0 });
+ e2 = A$1({}, e2, { value: void 0 });
+ d2 = A$1({}, d2, { value: void 0 });
f2 = [];
break;
case "textarea":
- e = gb(a, e);
- d = gb(a, d);
+ e2 = gb(a2, e2);
+ d2 = gb(a2, d2);
f2 = [];
break;
default:
- "function" !== typeof e.onClick && "function" === typeof d.onClick && (a.onclick = Bf);
- }
- ub(c, d);
- var g;
- c = null;
- for (l2 in e) if (!d.hasOwnProperty(l2) && e.hasOwnProperty(l2) && null != e[l2]) if ("style" === l2) {
- var h = e[l2];
- for (g in h) h.hasOwnProperty(g) && (c || (c = {}), c[g] = "");
+ "function" !== typeof e2.onClick && "function" === typeof d2.onClick && (a2.onclick = Bf);
+ }
+ ub(c2, d2);
+ var g2;
+ c2 = null;
+ for (l2 in e2) if (!d2.hasOwnProperty(l2) && e2.hasOwnProperty(l2) && null != e2[l2]) if ("style" === l2) {
+ var h2 = e2[l2];
+ for (g2 in h2) h2.hasOwnProperty(g2) && (c2 || (c2 = {}), c2[g2] = "");
} else "dangerouslySetInnerHTML" !== l2 && "children" !== l2 && "suppressContentEditableWarning" !== l2 && "suppressHydrationWarning" !== l2 && "autoFocus" !== l2 && (ea.hasOwnProperty(l2) ? f2 || (f2 = []) : (f2 = f2 || []).push(l2, null));
- for (l2 in d) {
- var k2 = d[l2];
- h = null != e ? e[l2] : void 0;
- if (d.hasOwnProperty(l2) && k2 !== h && (null != k2 || null != h)) if ("style" === l2) if (h) {
- for (g in h) !h.hasOwnProperty(g) || k2 && k2.hasOwnProperty(g) || (c || (c = {}), c[g] = "");
- for (g in k2) k2.hasOwnProperty(g) && h[g] !== k2[g] && (c || (c = {}), c[g] = k2[g]);
- } else c || (f2 || (f2 = []), f2.push(
+ for (l2 in d2) {
+ var k2 = d2[l2];
+ h2 = null != e2 ? e2[l2] : void 0;
+ if (d2.hasOwnProperty(l2) && k2 !== h2 && (null != k2 || null != h2)) if ("style" === l2) if (h2) {
+ for (g2 in h2) !h2.hasOwnProperty(g2) || k2 && k2.hasOwnProperty(g2) || (c2 || (c2 = {}), c2[g2] = "");
+ for (g2 in k2) k2.hasOwnProperty(g2) && h2[g2] !== k2[g2] && (c2 || (c2 = {}), c2[g2] = k2[g2]);
+ } else c2 || (f2 || (f2 = []), f2.push(
l2,
- c
- )), c = k2;
- else "dangerouslySetInnerHTML" === l2 ? (k2 = k2 ? k2.__html : void 0, h = h ? h.__html : void 0, null != k2 && h !== k2 && (f2 = f2 || []).push(l2, k2)) : "children" === l2 ? "string" !== typeof k2 && "number" !== typeof k2 || (f2 = f2 || []).push(l2, "" + k2) : "suppressContentEditableWarning" !== l2 && "suppressHydrationWarning" !== l2 && (ea.hasOwnProperty(l2) ? (null != k2 && "onScroll" === l2 && D("scroll", a), f2 || h === k2 || (f2 = [])) : (f2 = f2 || []).push(l2, k2));
+ c2
+ )), c2 = k2;
+ else "dangerouslySetInnerHTML" === l2 ? (k2 = k2 ? k2.__html : void 0, h2 = h2 ? h2.__html : void 0, null != k2 && h2 !== k2 && (f2 = f2 || []).push(l2, k2)) : "children" === l2 ? "string" !== typeof k2 && "number" !== typeof k2 || (f2 = f2 || []).push(l2, "" + k2) : "suppressContentEditableWarning" !== l2 && "suppressHydrationWarning" !== l2 && (ea.hasOwnProperty(l2) ? (null != k2 && "onScroll" === l2 && D$1("scroll", a2), f2 || h2 === k2 || (f2 = [])) : (f2 = f2 || []).push(l2, k2));
}
- c && (f2 = f2 || []).push("style", c);
+ c2 && (f2 = f2 || []).push("style", c2);
var l2 = f2;
- if (b.updateQueue = l2) b.flags |= 4;
+ if (b2.updateQueue = l2) b2.flags |= 4;
}
};
-Cj = function(a, b, c, d) {
- c !== d && (b.flags |= 4);
+Cj = function(a2, b2, c2, d2) {
+ c2 !== d2 && (b2.flags |= 4);
};
-function Dj(a, b) {
- if (!I) switch (a.tailMode) {
+function Dj(a2, b2) {
+ if (!I$1) switch (a2.tailMode) {
case "hidden":
- b = a.tail;
- for (var c = null; null !== b; ) null !== b.alternate && (c = b), b = b.sibling;
- null === c ? a.tail = null : c.sibling = null;
+ b2 = a2.tail;
+ for (var c2 = null; null !== b2; ) null !== b2.alternate && (c2 = b2), b2 = b2.sibling;
+ null === c2 ? a2.tail = null : c2.sibling = null;
break;
case "collapsed":
- c = a.tail;
- for (var d = null; null !== c; ) null !== c.alternate && (d = c), c = c.sibling;
- null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;
+ c2 = a2.tail;
+ for (var d2 = null; null !== c2; ) null !== c2.alternate && (d2 = c2), c2 = c2.sibling;
+ null === d2 ? b2 || null === a2.tail ? a2.tail = null : a2.tail.sibling = null : d2.sibling = null;
}
}
-function S(a) {
- var b = null !== a.alternate && a.alternate.child === a.child, c = 0, d = 0;
- if (b) for (var e = a.child; null !== e; ) c |= e.lanes | e.childLanes, d |= e.subtreeFlags & 14680064, d |= e.flags & 14680064, e.return = a, e = e.sibling;
- else for (e = a.child; null !== e; ) c |= e.lanes | e.childLanes, d |= e.subtreeFlags, d |= e.flags, e.return = a, e = e.sibling;
- a.subtreeFlags |= d;
- a.childLanes = c;
- return b;
+function S$1(a2) {
+ var b2 = null !== a2.alternate && a2.alternate.child === a2.child, c2 = 0, d2 = 0;
+ if (b2) for (var e2 = a2.child; null !== e2; ) c2 |= e2.lanes | e2.childLanes, d2 |= e2.subtreeFlags & 14680064, d2 |= e2.flags & 14680064, e2.return = a2, e2 = e2.sibling;
+ else for (e2 = a2.child; null !== e2; ) c2 |= e2.lanes | e2.childLanes, d2 |= e2.subtreeFlags, d2 |= e2.flags, e2.return = a2, e2 = e2.sibling;
+ a2.subtreeFlags |= d2;
+ a2.childLanes = c2;
+ return b2;
}
-function Ej(a, b, c) {
- var d = b.pendingProps;
- wg(b);
- switch (b.tag) {
+function Ej(a2, b2, c2) {
+ var d2 = b2.pendingProps;
+ wg(b2);
+ switch (b2.tag) {
case 2:
case 16:
case 15:
@@ -4514,346 +4514,346 @@ function Ej(a, b, c) {
case 12:
case 9:
case 14:
- return S(b), null;
+ return S$1(b2), null;
case 1:
- return Zf(b.type) && $f(), S(b), null;
+ return Zf(b2.type) && $f(), S$1(b2), null;
case 3:
- d = b.stateNode;
+ d2 = b2.stateNode;
zh();
- E(Wf);
- E(H);
+ E$1(Wf);
+ E$1(H$1);
Eh();
- d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null);
- if (null === a || null === a.child) Gg(b) ? b.flags |= 4 : null === a || a.memoizedState.isDehydrated && 0 === (b.flags & 256) || (b.flags |= 1024, null !== zg && (Fj(zg), zg = null));
- Aj(a, b);
- S(b);
+ d2.pendingContext && (d2.context = d2.pendingContext, d2.pendingContext = null);
+ if (null === a2 || null === a2.child) Gg(b2) ? b2.flags |= 4 : null === a2 || a2.memoizedState.isDehydrated && 0 === (b2.flags & 256) || (b2.flags |= 1024, null !== zg && (Fj(zg), zg = null));
+ Aj(a2, b2);
+ S$1(b2);
return null;
case 5:
- Bh(b);
- var e = xh(wh.current);
- c = b.type;
- if (null !== a && null != b.stateNode) Bj(a, b, c, d, e), a.ref !== b.ref && (b.flags |= 512, b.flags |= 2097152);
+ Bh(b2);
+ var e2 = xh(wh.current);
+ c2 = b2.type;
+ if (null !== a2 && null != b2.stateNode) Bj(a2, b2, c2, d2, e2), a2.ref !== b2.ref && (b2.flags |= 512, b2.flags |= 2097152);
else {
- if (!d) {
- if (null === b.stateNode) throw Error(p(166));
- S(b);
+ if (!d2) {
+ if (null === b2.stateNode) throw Error(p$1(166));
+ S$1(b2);
return null;
}
- a = xh(uh.current);
- if (Gg(b)) {
- d = b.stateNode;
- c = b.type;
- var f2 = b.memoizedProps;
- d[Of] = b;
- d[Pf] = f2;
- a = 0 !== (b.mode & 1);
- switch (c) {
+ a2 = xh(uh.current);
+ if (Gg(b2)) {
+ d2 = b2.stateNode;
+ c2 = b2.type;
+ var f2 = b2.memoizedProps;
+ d2[Of] = b2;
+ d2[Pf] = f2;
+ a2 = 0 !== (b2.mode & 1);
+ switch (c2) {
case "dialog":
- D("cancel", d);
- D("close", d);
+ D$1("cancel", d2);
+ D$1("close", d2);
break;
case "iframe":
case "object":
case "embed":
- D("load", d);
+ D$1("load", d2);
break;
case "video":
case "audio":
- for (e = 0; e < lf.length; e++) D(lf[e], d);
+ for (e2 = 0; e2 < lf.length; e2++) D$1(lf[e2], d2);
break;
case "source":
- D("error", d);
+ D$1("error", d2);
break;
case "img":
case "image":
case "link":
- D(
+ D$1(
"error",
- d
+ d2
);
- D("load", d);
+ D$1("load", d2);
break;
case "details":
- D("toggle", d);
+ D$1("toggle", d2);
break;
case "input":
- Za(d, f2);
- D("invalid", d);
+ Za(d2, f2);
+ D$1("invalid", d2);
break;
case "select":
- d._wrapperState = { wasMultiple: !!f2.multiple };
- D("invalid", d);
+ d2._wrapperState = { wasMultiple: !!f2.multiple };
+ D$1("invalid", d2);
break;
case "textarea":
- hb(d, f2), D("invalid", d);
- }
- ub(c, f2);
- e = null;
- for (var g in f2) if (f2.hasOwnProperty(g)) {
- var h = f2[g];
- "children" === g ? "string" === typeof h ? d.textContent !== h && (true !== f2.suppressHydrationWarning && Af(d.textContent, h, a), e = ["children", h]) : "number" === typeof h && d.textContent !== "" + h && (true !== f2.suppressHydrationWarning && Af(
- d.textContent,
- h,
- a
- ), e = ["children", "" + h]) : ea.hasOwnProperty(g) && null != h && "onScroll" === g && D("scroll", d);
- }
- switch (c) {
+ hb(d2, f2), D$1("invalid", d2);
+ }
+ ub(c2, f2);
+ e2 = null;
+ for (var g2 in f2) if (f2.hasOwnProperty(g2)) {
+ var h2 = f2[g2];
+ "children" === g2 ? "string" === typeof h2 ? d2.textContent !== h2 && (true !== f2.suppressHydrationWarning && Af(d2.textContent, h2, a2), e2 = ["children", h2]) : "number" === typeof h2 && d2.textContent !== "" + h2 && (true !== f2.suppressHydrationWarning && Af(
+ d2.textContent,
+ h2,
+ a2
+ ), e2 = ["children", "" + h2]) : ea.hasOwnProperty(g2) && null != h2 && "onScroll" === g2 && D$1("scroll", d2);
+ }
+ switch (c2) {
case "input":
- Va(d);
- db(d, f2, true);
+ Va(d2);
+ db(d2, f2, true);
break;
case "textarea":
- Va(d);
- jb(d);
+ Va(d2);
+ jb(d2);
break;
case "select":
case "option":
break;
default:
- "function" === typeof f2.onClick && (d.onclick = Bf);
+ "function" === typeof f2.onClick && (d2.onclick = Bf);
}
- d = e;
- b.updateQueue = d;
- null !== d && (b.flags |= 4);
+ d2 = e2;
+ b2.updateQueue = d2;
+ null !== d2 && (b2.flags |= 4);
} else {
- g = 9 === e.nodeType ? e : e.ownerDocument;
- "http://www.w3.org/1999/xhtml" === a && (a = kb(c));
- "http://www.w3.org/1999/xhtml" === a ? "script" === c ? (a = g.createElement("div"), a.innerHTML = "