From 9345c5d81ce1bc23689cb4c1dc5bc07df64bb1b3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 2 Oct 2026 15:43:27 +0000 Subject: [PATCH 1/7] Add implementation plan for model ghost preview extension (VIZ-3444) Co-authored-by: mat --- extensions/model_ghost_preview/PLAN.md | 180 +++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 extensions/model_ghost_preview/PLAN.md diff --git a/extensions/model_ghost_preview/PLAN.md b/extensions/model_ghost_preview/PLAN.md new file mode 100644 index 0000000..0c334c5 --- /dev/null +++ b/extensions/model_ghost_preview/PLAN.md @@ -0,0 +1,180 @@ +# Model Ghost Preview extension — implementation plan + +Source request: Linear VIZ-3444, "Preview topic visualization (e.g. 3D model) at hovered timeline +position while paused". Community ask: while hovering/skimming the playback timeline, render a +"ghost" of a topic's 3D model at the hovered time, alongside the normal render at the current time +(like the Map panel's GNSS hover preview). Reference screenshot: a textured haul truck at the current +time, plus a blue/cyan wireframe copy of the same truck further along its blue path, at the hovered +time. Proposed UX: per-topic "Preview ON | OFF" plus style overrides (wireframe, color, opacity). + +## Feasibility findings (already verified against `@foxglove/extension` 3.3.0 types) + +- `RenderState.previewTime?: number` — "set when a user hovers over the seek bar or when a panel sets + the preview time explicitly". It is a seconds value. In Foxglove it is absolute seconds + (`toSec(startTime) + hoverOffset`), but be defensive: if `previewTime < toSec(startTime) - 1` and + `startTime` is non-trivial, treat it as relative and add `toSec(startTime)`. Requires + `context.watch("previewTime")`. +- `context.setPreviewTime(sec | undefined)` and `context.seekPlayback?.(time)` exist, so the panel can + also drive the preview/seek itself. +- `context.subscribeMessageRange({ topic, onNewRangeIterator })` gives the whole recording's messages + for a topic (batches in log-time order, best effort). This is what lets us look up a pose at an + arbitrary hovered time while playback is paused. (`preload`/`allFrames` is deprecated; do not use.) +- Why not a message converter feeding the built-in 3D panel: topic converters only run when a new + input message arrives, and "global variables do not cause re-processing of current frame data". + While paused nothing arrives, so a converter cannot move a ghost as the user hovers. Built-in 3D + panel internals are not extensible. Therefore: a **custom panel** that renders its own 3D scene with + three.js. Document this trade-off in the README (and that native support in the 3D panel is what + VIZ-3444 ultimately asks for; this extension is a working stop-gap / prototype of the UX). + +## Deliverables (all under `extensions/model_ghost_preview/`) + +``` +extensions/model_ghost_preview/ + README.md # with YAML front-matter (title, short_description) — see CONTRIBUTING + PLAN.md # this file + extension/ # the Foxglove extension (scaffolded with create-foxglove-extension) + package.json, package-lock.json, tsconfig.json, eslint.config.js, .prettierrc.yaml, .gitignore, + LICENSE (MIT), CHANGELOG.md, README.md (short, extension-marketplace style) + src/index.ts # activate(): registerPanel({ name: "Model Ghost Preview", initPanel }) + src/GhostPreviewPanel.tsx # React panel: context wiring, settings tree, render loop glue + src/scene/GhostScene.ts # three.js scene/camera/renderer/controls; no Foxglove imports + src/scene/truckModel.ts # procedural haul-truck model (default model; no external asset) + src/scene/ghostMaterial.ts # apply ghost style (wireframe / transparent / solid) to an Object3D clone + src/poses/extractPose.ts # message -> {position, orientation, frameId} for supported schemas + src/poses/PoseTimeline.ts # sorted timestamps + poses; binary search; lerp/slerp interpolation + src/settings.ts # config type, defaults, settings-tree builder, action reducer + src/time.ts # Time <-> seconds helpers, previewTime normalization + src/*.test.ts # unit tests (see Testing) + dev/ # standalone browser harness (see Testing) — NOT part of extension bundle + demo/ + generate_demo_mcap.py # writes demo.mcap with foxglove SDK (pip `foxglove-sdk`) + requirements.txt + foxglove_layouts/model_ghost_preview.json # layout: Ghost panel + built-in 3D + Raw Messages + media/ # screenshot(s) from the harness for the README +``` + +Also: add `"extensions": "Foxglove Extensions"` to `CATEGORY_NAMES` in `.utils/generate_readme.py` +and regenerate the root `README.md` (`pip install -r .utils/requirements.txt && python +.utils/generate_readme.py` from repo root). Do not commit `node_modules/`, `dist/`, `*.foxe`, or +`demo.mcap` (add to `.gitignore`). + +## Extension behaviour + +### Data / poses +- Settings pick a **pose topic** (dropdown of topics whose schema is supported). Supported schemas: + - `foxglove.PoseInFrame` (`timestamp`, `frame_id`, `pose`) + - `foxglove.PosesInFrame` (use first pose) + - `foxglove.FrameTransform` and `foxglove.FrameTransforms` (`transforms[]`), filtered by a + **child frame id** setting (`translation`/`rotation`) + - `geometry_msgs/PoseStamped`, `geometry_msgs/msg/PoseStamped` + - `nav_msgs/Odometry`, `nav_msgs/msg/Odometry` (`pose.pose`) + - `tf2_msgs/TFMessage`, `tf2_msgs/msg/TFMessage` (`transforms[].transform`, `child_frame_id`) + - `geometry_msgs/TransformStamped` (+ `/msg/`) + Use the message `receiveTime` (log time) as the timeline key, because that is what the playback + bar and `currentTime` use. No TF-tree resolution: poses are drawn in the topic's own frame, which + becomes the panel's fixed/world frame. Document this. +- Loading: when the topic changes, cancel the previous range subscription (the returned unsubscribe + fn) and start `subscribeMessageRange`. Accumulate extracted poses (not raw messages — keep memory + small) into `PoseTimeline`; re-render as batches arrive; show a small "loading N poses…" overlay. + Messages can arrive out of order across batches: insert sorted or sort once per batch. +- `PoseTimeline.sample(tSec, mode)`: binary search; `mode = "interpolate"` (lerp position, slerp + quaternion, normalize) or `"previous"` (latest pose at or before t). Before the first sample → + undefined (hide model); after last → clamp to last. Provide `path(): Float32Array` for the trail. + +### Rendering (three.js, `GhostScene`) +- WebGLRenderer sized to the panel via ResizeObserver; `OrbitControls` (from + `three/examples/jsm/controls/OrbitControls.js`); hemisphere + directional light; ground grid + (toggleable); background follows `renderState.colorScheme`. +- **Current model**: rendered at `sample(currentTime)`. Default model is the procedural haul truck + (yellow dump body, cab, 6 dark wheels; roughly 9 m × 5 m × 4.5 m, +X forward, Z up — Foxglove/ROS + convention, so set `camera.up = (0,0,1)`). Optional: **model URL** setting (`.glb`/`.gltf` via + `GLTFLoader`, also from `three/examples/jsm`) with scale + yaw/pitch/roll offset (glTF is Y-up: + apply a default +90° X rotation, documented, user-overridable). On load failure show the error in + the overlay and fall back to the truck. +- **Ghost model**: a deep clone of the current model with ghost materials, rendered at + `sample(previewTimeSec)` **only when** ghost is enabled, `previewTime` is defined, and the ghost + pose differs from the current pose. Hidden otherwise. Ghost style settings: + - style: `wireframe` (default, like the screenshot: `EdgesGeometry`+`LineSegments` overlay plus a + faint transparent fill so it reads as a holographic model), `transparent`, or `solid` + - color (default `#4fc3f7`-ish light blue), opacity (0–1, default 0.6) + - Materials: `depthWrite=false` for transparent parts, `renderOrder` above the current model. + - Dispose cloned geometries/materials when the model is replaced. +- **Path**: optional line of all poses (default on, color `#2b3cff`-ish blue, as in screenshot). Also + optionally highlight the segment between current and preview time (brighter / thicker). Use + `Line2`/`LineMaterial` from three/examples for width > 1 if straightforward; plain `Line` is fine. +- Optional **ghost label**: small HTML overlay or sprite showing `+Δt s` relative to current time. +- **Camera follow** setting: `off` | `current` | `ghost`. `current` keeps the orbit target on the + current model (preserving user orbit offset). On first data load, frame the whole path. +- Render on demand (only when state/camera changes), not a continuous rAF loop; but do run a rAF when + OrbitControls are damping/active. + +### Panel-driven preview (nice-to-have, implement if cheap) +- Hovering the path in the panel sets `context.setPreviewTime(t)` (raycast to nearest path vertex → + its timestamp); mouse leave clears it. Click on the path → `context.seekPlayback?.(t)`. This makes + the ghost previewable from inside the panel too and syncs other panels (Map/Plot) to the same time. + Must not fight with orbit dragging (only on hover without buttons pressed; seek only on click + without drag). + +### Settings tree (`context.updatePanelSettingsEditor`) and persisted state +- Persist config with `context.saveState`; read `context.initialState` merged over defaults. +- Nodes: + - `general`: pose topic (select), child frame id (string, shown for TF-like schemas), + interpolation (`interpolate` | `previous`) + - `model`: source (`truck` | `url`), url, scale, yaw/pitch/roll offsets (deg), color for truck body + - `ghost`: **Preview** toggle (`visible` on node — matches the "Preview ON | OFF" ask), style, + color, opacity, show time label + - `path`: visible toggle, color, highlight preview segment + - `view`: follow mode, show grid +- Handle `actionHandler` for `update` (and `perform-node-action` if any) using a pure reducer in + `settings.ts` (unit-testable). +- Use `context.watch` for `currentTime`, `previewTime`, `topics`, `colorScheme`, `startTime`, + `endTime`. Always call `done()` at the end of `onRender`. + +### Code quality +- TypeScript strict as configured by the scaffold; must pass `npm run build`, `npm run lint` + (scaffold ESLint config `@foxglove/eslint-plugin`), and `tsc --noEmit`. Use `@foxglove/extension` + latest 3.x if it builds with the scaffold tooling; otherwise the scaffold default. +- Keep Foxglove-API-specific code in `GhostPreviewPanel.tsx`; scene/pose logic pure and testable. +- No narrating comments. Comments only for non-obvious constraints. + +## Demo data (`demo/generate_demo_mcap.py`) +- Uses `foxglove-sdk` Python (`foxglove.open_mcap`, `foxglove.channels`, `foxglove.schemas`). +- ~60 s at 20 Hz, log time = simulated time from a fixed epoch. A truck drives a smooth winding haul + road (e.g. a spline / sum of sines, a few hundred meters), with heading from the path tangent, + slight Z from a gentle grade. +- Topics: + - `/truck/pose` — `foxglove.PoseInFrame`, `frame_id = "map"` (the ghost panel's input) + - `/tf` — `foxglove.FrameTransforms` map→truck (so the built-in 3D panel can show it too) + - `/scene/road` — `foxglove.SceneUpdate` once (road ribbon as triangles/line + a few berm cubes) so + the built-in 3D panel has context +- CLI args: `--output demo.mcap`, `--duration`, `--rate`. + +## Testing +1. **Unit tests** (vitest or jest, whichever is simpler with ESM + TS; add `npm test`): + - `extractPose` for every supported schema, incl. TF child-frame filtering and invalid messages. + - `PoseTimeline`: ordering with out-of-order inserts, before-first/after-last, exact hits, + lerp midpoint, slerp normalization and shortest-path (q vs −q), `previous` mode. + - `time.ts`: previewTime normalization (absolute vs relative). + - `settings.ts`: reducer updates nested paths, defaults merge with partial saved state. +2. **Build**: `npm run build` and `npm run package` produce a `.foxe`. +3. **Browser harness** (`extension/dev/`, served with Vite or esbuild — dev-only deps): mounts the + real `initPanel` with a mock `PanelExtensionContext` implementing `watch`, `onRender`, + `subscribeMessageRange` (feeds synthetic truck poses in batches via an async iterator), + `saveState`, `updatePanelSettingsEditor` (renders a minimal debug view or logs), `setPreviewTime`, + `seekPlayback`. Below the panel, a fake timeline bar: click = seek (sets `currentTime`), hover = + sets `previewTime` (absolute seconds), mouse-leave clears it, plus a play/pause button. Add + `npm run dev:harness`. Use it to take screenshots (headless Chrome at `/usr/local/bin/google-chrome` + is available, e.g. via puppeteer-core or `google-chrome --headless --screenshot`) showing: (a) no + hover → only current truck; (b) hover later in timeline → wireframe ghost further along the path. + Save to `media/` and reference them from the README. +4. **Demo generator**: run it, then verify with the `mcap` CLI or python `mcap` reader that topics, + schemas and message counts are as expected. + +## README (`extensions/model_ghost_preview/README.md`) +Front-matter: `title: "Model Ghost Preview extension"`, `short_description: "Preview a 3D model as a +ghost at the hovered timeline time, even while paused"`. Sections: what it does (screenshot), why a +custom panel (limitations of converters / built-in 3D), install (`npm ci && npm run local-install` +for desktop, or `npm run package` and drag the `.foxe` into Foxglove), generate demo data, import the +layout, settings reference, supported schemas, limitations (single fixed frame, no TF tree, range +loading is best-effort / memory, preview only on recorded data — live sources have no future data), +development (tests, harness). From 1bd1b92ea57d29e140edcef45671a5ed2868e5a3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 2 Oct 2026 16:36:23 +0000 Subject: [PATCH 2/7] Add Model Ghost Preview extension, demo data generator, and layout Co-authored-by: mat --- .gitignore | 6 +- .utils/generate_readme.py | 2 + README.md | 4 + extensions/model_ghost_preview/README.md | 109 + .../demo/generate_demo_mcap.py | 218 + .../model_ghost_preview/demo/requirements.txt | 2 + .../model_ghost_preview/extension/.gitignore | 110 + .../extension/.prettierrc.yaml | 5 + .../extension/CHANGELOG.md | 5 + .../model_ghost_preview/extension/LICENSE | 21 + .../model_ghost_preview/extension/README.md | 28 + .../extension/dev/capture.mjs | 77 + .../extension/dev/index.html | 110 + .../model_ghost_preview/extension/dev/main.ts | 300 + .../extension/dev/vite.config.ts | 18 + .../extension/eslint.config.js | 23 + .../extension/package-lock.json | 8090 +++++++++++++++++ .../extension/package.json | 46 + .../extension/src/GhostPreviewPanel.tsx | 471 + .../extension/src/index.ts | 10 + .../extension/src/poses/PoseTimeline.test.ts | 96 + .../extension/src/poses/PoseTimeline.ts | 251 + .../extension/src/poses/extractPose.test.ts | 136 + .../extension/src/poses/extractPose.ts | 259 + .../extension/src/scene/GhostScene.ts | 696 ++ .../extension/src/scene/ghostMaterial.ts | 154 + .../extension/src/scene/placeModel.ts | 42 + .../extension/src/scene/truckModel.ts | 183 + .../extension/src/settings.test.ts | 117 + .../extension/src/settings.ts | 503 + .../extension/src/time.test.ts | 39 + .../model_ghost_preview/extension/src/time.ts | 31 + .../extension/tsconfig.json | 26 + .../extension/vitest.config.ts | 8 + .../foxglove_layouts/model_ghost_preview.json | 97 + .../media/current-truck.png | Bin 0 -> 50673 bytes .../media/ghost-preview.png | Bin 0 -> 59026 bytes 37 files changed, 12292 insertions(+), 1 deletion(-) create mode 100644 extensions/model_ghost_preview/README.md create mode 100644 extensions/model_ghost_preview/demo/generate_demo_mcap.py create mode 100644 extensions/model_ghost_preview/demo/requirements.txt create mode 100644 extensions/model_ghost_preview/extension/.gitignore create mode 100644 extensions/model_ghost_preview/extension/.prettierrc.yaml create mode 100644 extensions/model_ghost_preview/extension/CHANGELOG.md create mode 100644 extensions/model_ghost_preview/extension/LICENSE create mode 100644 extensions/model_ghost_preview/extension/README.md create mode 100644 extensions/model_ghost_preview/extension/dev/capture.mjs create mode 100644 extensions/model_ghost_preview/extension/dev/index.html create mode 100644 extensions/model_ghost_preview/extension/dev/main.ts create mode 100644 extensions/model_ghost_preview/extension/dev/vite.config.ts create mode 100644 extensions/model_ghost_preview/extension/eslint.config.js create mode 100644 extensions/model_ghost_preview/extension/package-lock.json create mode 100644 extensions/model_ghost_preview/extension/package.json create mode 100644 extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx create mode 100644 extensions/model_ghost_preview/extension/src/index.ts create mode 100644 extensions/model_ghost_preview/extension/src/poses/PoseTimeline.test.ts create mode 100644 extensions/model_ghost_preview/extension/src/poses/PoseTimeline.ts create mode 100644 extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts create mode 100644 extensions/model_ghost_preview/extension/src/poses/extractPose.ts create mode 100644 extensions/model_ghost_preview/extension/src/scene/GhostScene.ts create mode 100644 extensions/model_ghost_preview/extension/src/scene/ghostMaterial.ts create mode 100644 extensions/model_ghost_preview/extension/src/scene/placeModel.ts create mode 100644 extensions/model_ghost_preview/extension/src/scene/truckModel.ts create mode 100644 extensions/model_ghost_preview/extension/src/settings.test.ts create mode 100644 extensions/model_ghost_preview/extension/src/settings.ts create mode 100644 extensions/model_ghost_preview/extension/src/time.test.ts create mode 100644 extensions/model_ghost_preview/extension/src/time.ts create mode 100644 extensions/model_ghost_preview/extension/tsconfig.json create mode 100644 extensions/model_ghost_preview/extension/vitest.config.ts create mode 100644 extensions/model_ghost_preview/foxglove_layouts/model_ghost_preview.json create mode 100644 extensions/model_ghost_preview/media/current-truck.png create mode 100644 extensions/model_ghost_preview/media/ghost-preview.png diff --git a/.gitignore b/.gitignore index 75ec3f0..ac008fe 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ -.vscode/* \ No newline at end of file +.vscode/* +node_modules/ +dist/ +*.foxe +demo.mcap \ No newline at end of file diff --git a/.utils/generate_readme.py b/.utils/generate_readme.py index 404df0b..2edacb0 100644 --- a/.utils/generate_readme.py +++ b/.utils/generate_readme.py @@ -14,6 +14,7 @@ CATEGORY_NAMES = { "datasets": "Datasets", + "extensions": "Foxglove Extensions", "foxglove_sdk": "Foxglove SDK", "integrations": "Integrations", "jupyter_notebooks": "Jupyter Notebooks" @@ -43,6 +44,7 @@ def extract_metadata(readme_path): def scan_tutorials(): tutorials = [] for root, dirs, files in os.walk(ROOT_DIR): + dirs[:] = [name for name in dirs if name not in {"node_modules", "dist", ".git"}] if "README.md" in files and root != ROOT_DIR: readme_path = os.path.join(root, "README.md") rel_path = os.path.relpath(readme_path, ROOT_DIR) diff --git a/README.md b/README.md index d086a04..115bf49 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,10 @@ Below is a list of all tutorials available in this repository: - 🎥 [Video](https://youtu.be/jJej6aT1jKg) - 📊 [Visualize](https://app.foxglove.dev/~/view?ds=foxglove-sample-stream&ds.recordingId=vqKKQcot421Kwg84&ds.overrideLayoutId=b7513959-1d46-4a89-bc24-1584d9677ca1&ds.start=2023-09-01T13:19:45.047438263Z&ds.end=2023-09-01T13:20:15.047438263Z) +## Foxglove Extensions +### [Model Ghost Preview extension](extensions/model_ghost_preview/README.md) +- 📝 Preview a 3D model as a ghost at the hovered timeline time, even while paused + ## Foxglove SDK ### [Using Foxglove to Visualize Ethernet/IP data](foxglove_sdk/ethernet_ip_integration/README.md) - 📝 Using Foxglove data, it's easier than ever to stream time series data. In this project, we show you how. diff --git a/extensions/model_ghost_preview/README.md b/extensions/model_ghost_preview/README.md new file mode 100644 index 0000000..fc68984 --- /dev/null +++ b/extensions/model_ghost_preview/README.md @@ -0,0 +1,109 @@ +--- +title: "Model Ghost Preview extension" +short_description: "Preview a 3D model as a ghost at the hovered timeline time, even while paused" +--- + +# Model Ghost Preview extension + +While you hover the playback bar, this panel keeps the model at the current time and draws a second copy — by default a light-blue wireframe — at the hovered time. A path through every pose shows where the ghost sits along the trajectory. + +![Solid haul truck at the current time](media/current-truck.png) + +![Wireframe ghost further along the path](media/ghost-preview.png) + +The ghost only appears when preview is enabled, a preview time is set, and that pose is different from the current one. Hovering the path inside the panel also sets the preview time (so Map and Plot can follow it); clicking the path seeks playback. + +## Why a custom panel + +VIZ-3444 asks for this on the built-in 3D panel, the way the Map panel already previews GNSS while you skim the timeline. A message converter cannot do it: converters run when a new input message arrives, and global variables do not reprocess the current frame. While playback is paused, nothing arrives, so the ghost cannot move with the hover. Built-in 3D panel internals are not extensible either. This extension is a working prototype of the interaction — its own three.js scene — until the 3D panel supports preview natively. + +## Install + +From `extensions/model_ghost_preview/extension`: + +```sh +npm ci && npm run local-install +``` + +That installs the extension into Foxglove desktop. Refresh the app (`Ctrl-R`) and add a **Model Ghost Preview** panel. + +To share a build instead, package it and drag the `.foxe` into Foxglove: + +```sh +npm run package +``` + +## Demo data + +```sh +cd extensions/model_ghost_preview/demo +pip install -r requirements.txt +python generate_demo_mcap.py --output demo.mcap +``` + +The file is about 60 seconds at 20 Hz. A truck drives a winding haul road a few hundred meters long. + +| Topic | Schema | What it is | +| --- | --- | --- | +| `/truck/pose` | `foxglove.PoseInFrame` | Pose in the `map` frame. This is the ghost panel input. | +| `/tf` | `foxglove.FrameTransforms` | `map` → `truck`, so the built-in 3D panel can follow the same motion. | +| `/scene/road` | `foxglove.SceneUpdate` | Road ribbon, center line, and a few berms, published once. | + +Open the MCAP in Foxglove, then import [`foxglove_layouts/model_ghost_preview.json`](foxglove_layouts/model_ghost_preview.json) from the layout menu. The layout places this panel next to a 3D panel and a Raw Messages panel on `/truck/pose`. + +Poses are drawn in the topic's own frame. That frame is the panel's fixed world frame — there is no TF tree. The message **receive time** (log time) is the timeline key, because that is what the playback bar and `currentTime` use. + +## Settings + +| Group | Setting | Notes | +| --- | --- | --- | +| General | Pose topic | Supported schemas only. | +| General | Child frame | Shown for TF-like schemas. Empty uses the first transform. | +| General | Interpolation | `interpolate` (lerp position, slerp rotation) or `previous`. | +| Model | Source | Procedural haul truck, or a `.glb` / `.gltf` URL. | +| Model | Scale, yaw, pitch, roll | Degrees, Euler ZYX. | +| Model | Truck color | Body color of the procedural truck. | +| Preview | Visibility | The Preview ON / OFF toggle. | +| Preview | Style | `wireframe` (default), `transparent`, or `solid`. | +| Preview | Color, opacity | Wireframe uses an edge overlay plus a faint fill. | +| Preview | Time label | `+Δt s` relative to the current time. | +| Path | Visibility, color | Polyline of every pose. | +| Path | Highlight segment | Brighter, thicker span between current and preview time. | +| View | Follow | `off`, `current`, or `ghost`. Orbit offset is kept. | +| View | Grid | Ground grid. The scene is Z-up. | + +glTF assets are Y-up. The loader applies +90° about X before the yaw/pitch/roll offsets so the model stands Z-up. Set roll to -90 to cancel that correction. If the URL fails to load, the panel shows the error and falls back to the truck. + +Once the pose range has loaded, the camera frames the path from a rear three-quarter view. Hovering a path vertex sets the preview time; a click without a drag seeks. Orbit dragging is left alone. + +## Supported schemas + +- `foxglove.PoseInFrame` +- `foxglove.PosesInFrame` (first pose) +- `foxglove.FrameTransform` and `foxglove.FrameTransforms` +- `geometry_msgs/PoseStamped`, `geometry_msgs/msg/PoseStamped` +- `nav_msgs/Odometry`, `nav_msgs/msg/Odometry` (`pose.pose`) +- `tf2_msgs/TFMessage`, `tf2_msgs/msg/TFMessage` +- `geometry_msgs/TransformStamped`, `geometry_msgs/msg/TransformStamped` + +## Limitations + +- One fixed frame. Transforms are not composed through a TF tree. +- `subscribeMessageRange` is best-effort. Very large recordings can be truncated by memory limits, and only the extracted poses are kept. +- Live sources (Foxglove WebSocket, rosbridge, native ROS) do not provide a future range, so there is nothing to preview ahead of the current time. Recorded data is required. +- The built-in 3D panel does not show this ghost. Native preview there is what VIZ-3444 asks for; this panel is the stop-gap. + +## Development + +From `extensions/model_ghost_preview/extension`: + +```sh +npm ci +npm test +npm run build +npm run lint +npx tsc --noEmit +npm run dev:harness +``` + +`npm test` covers pose extraction, timeline interpolation, preview-time normalization, and the settings reducer. `npm run dev:harness` mounts the real panel on synthetic truck poses with a fake playback bar: click seeks, hover sets an absolute preview time, and Play/Pause runs the clock. Screenshots in `media/` were captured from that harness. diff --git a/extensions/model_ghost_preview/demo/generate_demo_mcap.py b/extensions/model_ghost_preview/demo/generate_demo_mcap.py new file mode 100644 index 0000000..49866e1 --- /dev/null +++ b/extensions/model_ghost_preview/demo/generate_demo_mcap.py @@ -0,0 +1,218 @@ +#!/usr/bin/env python3 +"""Write a short haul-road MCAP for the Model Ghost Preview panel. + +foxglove-sdk 0.28 deprecates ``foxglove.schemas`` in favor of ``foxglove.messages``. +The names below are the same classes; the schemas import is what this tutorial documents. +""" + +import argparse +import math +import warnings +from pathlib import Path + +warnings.filterwarnings("ignore", message="foxglove.schemas is deprecated") + +import foxglove +from foxglove.channels import FrameTransformsChannel, PoseInFrameChannel, SceneUpdateChannel +from foxglove.schemas import ( + Color, + CubePrimitive, + FrameTransform, + FrameTransforms, + LinePrimitive, + LinePrimitiveLineType, + Point3, + Pose, + PoseInFrame, + Quaternion, + SceneEntity, + SceneUpdate, + Timestamp, + TriangleListPrimitive, + Vector3, +) + +EPOCH_SEC = 1_700_000_000 + + +def main() -> None: + parser = argparse.ArgumentParser(description="Generate a haul-truck ghost-preview demo MCAP") + parser.add_argument("--output", default="demo.mcap", help="Output .mcap path") + parser.add_argument("--duration", type=float, default=60.0, help="Recording length in seconds") + parser.add_argument("--rate", type=float, default=20.0, help="Pose sample rate in Hz") + args = parser.parse_args() + if args.duration <= 0 or args.rate <= 0: + raise SystemExit("--duration and --rate must be positive") + + output = Path(args.output) + samples = [sample_pose(index / args.rate, args.duration) for index in range(int(args.duration * args.rate))] + with foxglove.open_mcap(output, allow_overwrite=True): + pose_channel = PoseInFrameChannel("/truck/pose") + tf_channel = FrameTransformsChannel("/tf") + scene_channel = SceneUpdateChannel("/scene/road") + for sample in samples: + log_time = int(round(sample["time_sec"] * 1e9)) + stamp = timestamp(sample["time_sec"]) + pose = Pose( + position=Vector3(x=sample["x"], y=sample["y"], z=sample["z"]), + orientation=Quaternion(x=sample["qx"], y=sample["qy"], z=sample["qz"], w=sample["qw"]), + ) + pose_channel.log( + PoseInFrame(timestamp=stamp, frame_id="map", pose=pose), + log_time=log_time, + ) + tf_channel.log( + FrameTransforms( + transforms=[ + FrameTransform( + timestamp=stamp, + parent_frame_id="map", + child_frame_id="truck", + translation=Vector3(x=sample["x"], y=sample["y"], z=sample["z"]), + rotation=Quaternion( + x=sample["qx"], y=sample["qy"], z=sample["qz"], w=sample["qw"] + ), + ) + ] + ), + log_time=log_time, + ) + scene_channel.log(road_scene(samples), log_time=int(EPOCH_SEC * 1e9)) + print(f"wrote {output} ({len(samples)} poses)") + + +def sample_pose(t_sec: float, duration: float) -> dict[str, float]: + length = 280.0 + s = 0.0 if duration == 0 else t_sec / duration + x = s * length + y = 35.0 * math.sin(s * math.pi * 1.5) + 8.0 * math.sin(s * math.pi * 4.0) + z = 6.0 * s + 1.5 * math.sin(s * math.pi * 2.0) + ds = 1.0 / duration + dx = length * ds + dy = ( + 35.0 * math.pi * 1.5 * ds * math.cos(s * math.pi * 1.5) + + 8.0 * math.pi * 4.0 * ds * math.cos(s * math.pi * 4.0) + ) + dz = 6.0 * ds + 1.5 * math.pi * 2.0 * ds * math.cos(s * math.pi * 2.0) + yaw = math.atan2(dy, dx) + pitch = math.atan2(dz, math.hypot(dx, dy)) + qx, qy, qz, qw = heading_quaternion(yaw, pitch) + return { + "time_sec": EPOCH_SEC + t_sec, + "x": x, + "y": y, + "z": z, + "qx": qx, + "qy": qy, + "qz": qz, + "qw": qw, + "yaw": yaw, + } + + +def heading_quaternion(yaw: float, pitch: float) -> tuple[float, float, float, float]: + half_yaw = yaw * 0.5 + half_pitch = pitch * 0.5 + q_yaw = (0.0, 0.0, math.sin(half_yaw), math.cos(half_yaw)) + q_pitch = (0.0, math.sin(half_pitch), 0.0, math.cos(half_pitch)) + return multiply_quat(q_yaw, q_pitch) + + +def multiply_quat( + a: tuple[float, float, float, float], b: tuple[float, float, float, float] +) -> tuple[float, float, float, float]: + ax, ay, az, aw = a + bx, by, bz, bw = b + return ( + aw * bx + ax * bw + ay * bz - az * by, + aw * by - ax * bz + ay * bw + az * bx, + aw * bz + ax * by - ay * bx + az * bw, + aw * bw - ax * bx - ay * by - az * bz, + ) + + +def timestamp(time_sec: float) -> Timestamp: + sec = int(math.floor(time_sec)) + nsec = int(round((time_sec - sec) * 1e9)) + if nsec >= 1_000_000_000: + sec += 1 + nsec -= 1_000_000_000 + return Timestamp(sec=sec, nsec=nsec) + + +def road_scene(samples: list[dict[str, float]]) -> SceneUpdate: + stride = 5 + center = samples[::stride] + if len(center) < 2: + center = samples + half_width = 7.0 + points: list[Point3] = [] + for index, sample in enumerate(center): + if index + 1 < len(center): + nxt = center[index + 1] + dx = nxt["x"] - sample["x"] + dy = nxt["y"] - sample["y"] + else: + prev = center[index - 1] + dx = sample["x"] - prev["x"] + dy = sample["y"] - prev["y"] + norm = math.hypot(dx, dy) or 1.0 + px = -dy / norm + py = dx / norm + points.append( + Point3(x=sample["x"] + px * half_width, y=sample["y"] + py * half_width, z=sample["z"]) + ) + points.append( + Point3(x=sample["x"] - px * half_width, y=sample["y"] - py * half_width, z=sample["z"]) + ) + indices: list[int] = [] + rows = len(center) + for index in range(rows - 1): + base = index * 2 + indices.extend([base, base + 1, base + 2, base + 1, base + 3, base + 2]) + line_points = [Point3(x=sample["x"], y=sample["y"], z=sample["z"] + 0.05) for sample in center] + berms: list[CubePrimitive] = [] + for index, sample in enumerate(center[::8]): + side = -1.0 if index % 2 == 0 else 1.0 + berms.append( + CubePrimitive( + pose=Pose( + position=Vector3( + x=sample["x"] + math.cos(sample["yaw"] + math.pi / 2.0) * 9.0 * side, + y=sample["y"] + math.sin(sample["yaw"] + math.pi / 2.0) * 9.0 * side, + z=sample["z"] + 0.6, + ), + orientation=Quaternion(x=0.0, y=0.0, z=0.0, w=1.0), + ), + size=Vector3(x=3.2, y=1.4, z=1.2), + color=Color(r=0.55, g=0.48, b=0.32, a=1.0), + ) + ) + stamp = timestamp(samples[0]["time_sec"] if samples else EPOCH_SEC) + entity = SceneEntity( + timestamp=stamp, + frame_id="map", + id="haul-road", + frame_locked=False, + triangles=[ + TriangleListPrimitive( + points=points, + indices=indices, + color=Color(r=0.35, g=0.37, b=0.4, a=1.0), + ) + ], + lines=[ + LinePrimitive( + type=LinePrimitiveLineType.LineStrip, + thickness=0.35, + points=line_points, + color=Color(r=0.17, g=0.28, b=0.95, a=1.0), + ) + ], + cubes=berms, + ) + return SceneUpdate(entities=[entity]) + + +if __name__ == "__main__": + main() diff --git a/extensions/model_ghost_preview/demo/requirements.txt b/extensions/model_ghost_preview/demo/requirements.txt new file mode 100644 index 0000000..bd7fb99 --- /dev/null +++ b/extensions/model_ghost_preview/demo/requirements.txt @@ -0,0 +1,2 @@ +foxglove-sdk>=0.28.0 +mcap>=1.2.0 diff --git a/extensions/model_ghost_preview/extension/.gitignore b/extensions/model_ghost_preview/extension/.gitignore new file mode 100644 index 0000000..bc991a1 --- /dev/null +++ b/extensions/model_ghost_preview/extension/.gitignore @@ -0,0 +1,110 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Build output +www/js/* + +# MacOS +.DS_Store + +# Packaged extension +*.foxe diff --git a/extensions/model_ghost_preview/extension/.prettierrc.yaml b/extensions/model_ghost_preview/extension/.prettierrc.yaml new file mode 100644 index 0000000..e57cc20 --- /dev/null +++ b/extensions/model_ghost_preview/extension/.prettierrc.yaml @@ -0,0 +1,5 @@ +arrowParens: always +printWidth: 100 +trailingComma: "all" +tabWidth: 2 +semi: true diff --git a/extensions/model_ghost_preview/extension/CHANGELOG.md b/extensions/model_ghost_preview/extension/CHANGELOG.md new file mode 100644 index 0000000..db76fd6 --- /dev/null +++ b/extensions/model_ghost_preview/extension/CHANGELOG.md @@ -0,0 +1,5 @@ +# model-ghost-preview version history + +## 0.1.0 + +- Initial release of the Model Ghost Preview panel. diff --git a/extensions/model_ghost_preview/extension/LICENSE b/extensions/model_ghost_preview/extension/LICENSE new file mode 100644 index 0000000..a71b025 --- /dev/null +++ b/extensions/model_ghost_preview/extension/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Foxglove Technologies Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/extensions/model_ghost_preview/extension/README.md b/extensions/model_ghost_preview/extension/README.md new file mode 100644 index 0000000..e0d089f --- /dev/null +++ b/extensions/model_ghost_preview/extension/README.md @@ -0,0 +1,28 @@ +# Model Ghost Preview + +Preview a topic's 3D model at the hovered playback time while the solid model stays at the current time. + +The panel subscribes to the full message range of a pose topic, so the ghost still moves while playback is paused. The default model is a procedural haul truck. A glTF/GLB URL can be used instead. + +## Develop + +```sh +npm install +npm test +npm run build +npm run dev:harness +``` + +## Install + +Install into Foxglove desktop: + +```sh +npm run local-install +``` + +Or package a `.foxe` and drag it into Foxglove: + +```sh +npm run package +``` diff --git a/extensions/model_ghost_preview/extension/dev/capture.mjs b/extensions/model_ghost_preview/extension/dev/capture.mjs new file mode 100644 index 0000000..d61a09d --- /dev/null +++ b/extensions/model_ghost_preview/extension/dev/capture.mjs @@ -0,0 +1,77 @@ +import { mkdir } from "node:fs/promises"; +import path from "node:path"; + +import puppeteer from "puppeteer-core"; + +const url = process.argv[2] ?? "http://127.0.0.1:5173/"; +const mediaDir = path.resolve(process.argv[3] ?? "../../media"); + +const browser = await puppeteer.launch({ + executablePath: "/usr/local/bin/google-chrome", + headless: true, + args: [ + "--no-sandbox", + "--disable-dev-shm-usage", + "--use-gl=angle", + "--use-angle=swiftshader", + "--enable-webgl", + "--ignore-gpu-blocklist", + "--window-size=1400,900", + ], + defaultViewport: { width: 1400, height: 900, deviceScaleFactor: 1 }, +}); + +try { + const page = await browser.newPage(); + page.on("console", (message) => { + console.log(`PAGE ${message.type()}: ${message.text()}`); + }); + page.on("pageerror", (error) => { + console.log(`PAGEERROR ${error.message}`); + }); + await page.goto(url, { waitUntil: "networkidle0", timeout: 60000 }); + await page.waitForSelector("canvas", { timeout: 20000 }); + await page.waitForFunction( + () => { + const root = document.querySelector("[data-pose-count]"); + if (!root) { + return false; + } + return ( + root.getAttribute("data-loading") === "false" && + Number(root.getAttribute("data-pose-count")) > 50 + ); + }, + { timeout: 20000 }, + ); + await new Promise((resolve) => setTimeout(resolve, 400)); + + const panel = await page.$("#panel"); + if (!panel) { + throw new Error("Panel element missing"); + } + await mkdir(mediaDir, { recursive: true }); + + const header = await page.$("#header"); + const headerBox = await header?.boundingBox(); + if (headerBox) { + await page.mouse.move(headerBox.x + 20, headerBox.y + 10); + } + await new Promise((resolve) => setTimeout(resolve, 250)); + const currentPath = path.join(mediaDir, "current-truck.png"); + await panel.screenshot({ path: currentPath }); + console.log("wrote", currentPath); + + const timeline = await page.$("#timeline"); + const box = await timeline?.boundingBox(); + if (!box) { + throw new Error("Timeline element missing"); + } + await page.mouse.move(box.x + box.width * 0.42, box.y + box.height / 2); + await new Promise((resolve) => setTimeout(resolve, 500)); + const ghostPath = path.join(mediaDir, "ghost-preview.png"); + await panel.screenshot({ path: ghostPath }); + console.log("wrote", ghostPath); +} finally { + await browser.close(); +} diff --git a/extensions/model_ghost_preview/extension/dev/index.html b/extensions/model_ghost_preview/extension/dev/index.html new file mode 100644 index 0000000..61b8459 --- /dev/null +++ b/extensions/model_ghost_preview/extension/dev/index.html @@ -0,0 +1,110 @@ + + + + + + Model Ghost Preview harness + + + +
+ +
+
+ +
+
+
+
+
+
+
+
+ + + diff --git a/extensions/model_ghost_preview/extension/dev/main.ts b/extensions/model_ghost_preview/extension/dev/main.ts new file mode 100644 index 0000000..166d9c2 --- /dev/null +++ b/extensions/model_ghost_preview/extension/dev/main.ts @@ -0,0 +1,300 @@ +import type { PanelExtensionContext } from "@foxglove/extension"; + +import { initGhostPreviewPanel } from "../src/GhostPreviewPanel"; + +const EPOCH = 1_700_000_000; +const DURATION = 40; +const RATE = 10; + +type Vec3 = { x: number; y: number; z: number }; +type Quat = { x: number; y: number; z: number; w: number }; + +type PoseMessage = { + topic: string; + schemaName: string; + receiveTime: { sec: number; nsec: number }; + message: Record; + sizeInBytes: number; +}; + +function samplePath(t: number): { position: Vec3; orientation: Quat } { + const length = 96; + const s = t / DURATION; + const x = s * length; + const y = 18 * s * s; + const z = 1.5 * s; + const ds = 1 / DURATION; + const dx = length * ds; + const dy = 36 * s * ds; + const yaw = Math.atan2(dy, dx); + return { + position: { x, y, z }, + orientation: { x: 0, y: 0, z: Math.sin(yaw / 2), w: Math.cos(yaw / 2) }, + }; +} + +function toTime(seconds: number): { sec: number; nsec: number } { + const sec = Math.floor(seconds); + let nsec = Math.round((seconds - sec) * 1e9); + if (nsec >= 1e9) { + return { sec: sec + 1, nsec: 0 }; + } + return { sec, nsec }; +} + +function buildMessages(): { pose: PoseMessage[]; tf: PoseMessage[] } { + const pose: PoseMessage[] = []; + const tf: PoseMessage[] = []; + const count = DURATION * RATE; + for (let index = 0; index < count; index += 1) { + const t = index / RATE; + const absolute = EPOCH + t; + const { position, orientation } = samplePath(t); + const receiveTime = toTime(absolute); + pose.push({ + topic: "/truck/pose", + schemaName: "foxglove.PoseInFrame", + receiveTime, + sizeInBytes: 128, + message: { + timestamp: receiveTime, + frame_id: "map", + pose: { position, orientation }, + }, + }); + tf.push({ + topic: "/tf", + schemaName: "foxglove.FrameTransforms", + receiveTime, + sizeInBytes: 160, + message: { + transforms: [ + { + timestamp: receiveTime, + parent_frame_id: "map", + child_frame_id: "truck", + translation: position, + rotation: orientation, + }, + ], + }, + }); + } + return { pose, tf }; +} + +const messages = buildMessages(); + +function createContext(panelElement: HTMLDivElement): PanelExtensionContext { + const start = { sec: EPOCH, nsec: 0 }; + const end = { sec: EPOCH + DURATION, nsec: 0 }; + let current = EPOCH + 8; + let preview: number | undefined; + let playing = false; + let rendering = false; + let pending = false; + let rangeToken = 0; + + const context = { + panelElement, + initialState: { + general: { poseTopic: "/truck/pose", childFrameId: "truck" }, + ghost: { showTimeLabel: false }, + }, + dataSourceProfile: "foxglove", + layout: { + addPanel: () => undefined, + }, + watch: () => undefined, + saveState: (state: unknown) => { + console.log("saveState", state); + }, + setParameter: () => undefined, + setSharedPanelState: () => undefined, + setVariable: () => undefined, + setPreviewTime: (time: number | undefined) => { + preview = time; + emit(); + }, + seekPlayback: (time: number) => { + current = time; + emit(); + }, + subscribe: () => undefined, + unsubscribeAll: () => undefined, + subscribeAppSettings: () => undefined, + updatePanelSettingsEditor: () => undefined, + setDefaultPanelTitle: () => undefined, + subscribeMessageRange: (args: { + topic: string; + onNewRangeIterator: (batches: AsyncIterable) => Promise; + }) => { + rangeToken += 1; + const token = rangeToken; + const data = args.topic === "/tf" ? messages.tf : messages.pose; + void args.onNewRangeIterator(iterateBatches(data, () => token === rangeToken)); + return () => { + rangeToken += 1; + }; + }, + }; + + function emit(): void { + paintTransport(); + if (!context.onRender) { + return; + } + if (rendering) { + pending = true; + return; + } + rendering = true; + context.onRender( + { + currentTime: toTime(current), + startTime: start, + endTime: end, + previewTime: preview, + colorScheme: "light", + topics: [ + { + name: "/truck/pose", + datatype: "foxglove.PoseInFrame", + schemaName: "foxglove.PoseInFrame", + }, + { + name: "/tf", + datatype: "foxglove.FrameTransforms", + schemaName: "foxglove.FrameTransforms", + }, + { name: "/notes", datatype: "std_msgs/String", schemaName: "std_msgs/String" }, + ], + }, + () => { + rendering = false; + if (pending) { + pending = false; + emit(); + } + }, + ); + } + + let last = performance.now(); + const tick = (now: number) => { + if (playing) { + const dt = (now - last) / 1000; + current = Math.min(EPOCH + DURATION, current + dt); + if (current >= EPOCH + DURATION) { + playing = false; + const button = document.querySelector("#play"); + if (button) { + button.textContent = "Play"; + } + } + emit(); + } + last = now; + requestAnimationFrame(tick); + }; + requestAnimationFrame(tick); + + const timeline = document.querySelector("#timeline"); + const play = document.querySelector("#play"); + play?.addEventListener("click", () => { + playing = !playing; + if (play) { + play.textContent = playing ? "Pause" : "Play"; + } + last = performance.now(); + }); + timeline?.addEventListener("mousemove", (event) => { + if (!(event instanceof MouseEvent) || !timeline) { + return; + } + preview = EPOCH + fractionOf(timeline, event.clientX) * DURATION; + emit(); + }); + timeline?.addEventListener("mouseleave", () => { + preview = undefined; + emit(); + }); + timeline?.addEventListener("click", (event) => { + if (!(event instanceof MouseEvent) || !timeline) { + return; + } + current = EPOCH + fractionOf(timeline, event.clientX) * DURATION; + preview = undefined; + emit(); + }); + + const tryEmit = () => { + if (context.onRender) { + emit(); + return; + } + requestAnimationFrame(tryEmit); + }; + requestAnimationFrame(tryEmit); + + return context as unknown as PanelExtensionContext; + + function paintTransport(): void { + const played = document.querySelector("#played"); + const currentMark = document.querySelector("#current-mark"); + const previewMark = document.querySelector("#preview-mark"); + const readout = document.querySelector("#readout"); + const currentFraction = (current - EPOCH) / DURATION; + if (played instanceof HTMLElement) { + played.style.width = `${currentFraction * 100}%`; + } + if (currentMark instanceof HTMLElement) { + currentMark.style.left = `${currentFraction * 100}%`; + } + if (previewMark instanceof HTMLElement) { + if (preview === undefined) { + previewMark.style.display = "none"; + } else { + previewMark.style.display = "block"; + previewMark.style.left = `${((preview - EPOCH) / DURATION) * 100}%`; + } + } + if (readout) { + const previewText = preview === undefined ? "—" : (preview - EPOCH).toFixed(2); + readout.textContent = `t=${(current - EPOCH).toFixed(2)}s hover=${previewText}s`; + } + } +} + +function fractionOf(element: Element, clientX: number): number { + const rect = element.getBoundingClientRect(); + if (rect.width <= 0) { + return 0; + } + return Math.min(1, Math.max(0, (clientX - rect.left) / rect.width)); +} + +async function* iterateBatches( + data: PoseMessage[], + active: () => boolean, +): AsyncGenerator { + const batchSize = 40; + for (let index = 0; index < data.length; index += batchSize) { + if (!active()) { + return; + } + await new Promise((resolve) => { + setTimeout(resolve, 12); + }); + if (!active()) { + return; + } + yield data.slice(index, index + batchSize); + } +} + +const panel = document.querySelector("#panel"); +if (!(panel instanceof HTMLDivElement)) { + throw new Error("Missing #panel"); +} +initGhostPreviewPanel(createContext(panel)); diff --git a/extensions/model_ghost_preview/extension/dev/vite.config.ts b/extensions/model_ghost_preview/extension/dev/vite.config.ts new file mode 100644 index 0000000..d944af1 --- /dev/null +++ b/extensions/model_ghost_preview/extension/dev/vite.config.ts @@ -0,0 +1,18 @@ +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +import { defineConfig } from "vite"; + +const root = path.dirname(fileURLToPath(import.meta.url)); + +export default defineConfig({ + root, + server: { + host: "127.0.0.1", + port: 5173, + strictPort: true, + }, + esbuild: { + jsx: "automatic", + }, +}); diff --git a/extensions/model_ghost_preview/extension/eslint.config.js b/extensions/model_ghost_preview/extension/eslint.config.js new file mode 100644 index 0000000..63cc3a2 --- /dev/null +++ b/extensions/model_ghost_preview/extension/eslint.config.js @@ -0,0 +1,23 @@ +// @ts-check + +const foxglove = require("@foxglove/eslint-plugin"); +const globals = require("globals"); +const tseslint = require("typescript-eslint"); + +module.exports = tseslint.config({ + files: ["src/**/*.ts", "src/**/*.tsx"], + extends: [foxglove.configs.base, foxglove.configs.react, foxglove.configs.typescript], + languageOptions: { + globals: { + ...globals.es2020, + ...globals.browser, + }, + parserOptions: { + project: "tsconfig.json", + tsconfigRootDir: __dirname, + }, + }, + rules: { + "react-hooks/exhaustive-deps": "error", + }, +}); diff --git a/extensions/model_ghost_preview/extension/package-lock.json b/extensions/model_ghost_preview/extension/package-lock.json new file mode 100644 index 0000000..74e33e2 --- /dev/null +++ b/extensions/model_ghost_preview/extension/package-lock.json @@ -0,0 +1,8090 @@ +{ + "name": "model-ghost-preview", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "model-ghost-preview", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "three": "0.170.0" + }, + "devDependencies": { + "@foxglove/eslint-plugin": "2.1.2", + "@foxglove/extension": "3.3.0", + "@types/react": "18.3.31", + "@types/react-dom": "18.3.7", + "@types/three": "^0.170.0", + "create-foxglove-extension": "1.3.2", + "eslint": "9.39.5", + "prettier": "3.9.9", + "puppeteer-core": "24.15.0", + "react": "18.3.1", + "react-dom": "18.3.1", + "typescript": "5.9.3", + "vite": "6.3.6", + "vitest": "3.2.4" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/compat": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.4.1.tgz", + "integrity": "sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^8.40 || 9" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/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/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.7.tgz", + "integrity": "sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.3.2", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", + "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@foxglove/eslint-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@foxglove/eslint-plugin/-/eslint-plugin-2.1.2.tgz", + "integrity": "sha512-E5h/q+2pojyMGx1ECGY+9vIzDFE8t3QNbdb8fczlMLvsWwPMGqcOCm0hZeb+ZXe+l8UOQewJek4FUfp8KpOR+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/compat": "^1", + "@eslint/js": "^9", + "@typescript-eslint/utils": "^8", + "eslint-config-prettier": "^10", + "eslint-plugin-es": "^4", + "eslint-plugin-filenames": "^1", + "eslint-plugin-import": "^2", + "eslint-plugin-jest": "^28", + "eslint-plugin-react": "^7", + "eslint-plugin-react-hooks": "^5", + "tsutils": "^3", + "typescript-eslint": "^8" + }, + "peerDependencies": { + "eslint": "^9.27.0" + } + }, + "node_modules/@foxglove/extension": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@foxglove/extension/-/extension-3.3.0.tgz", + "integrity": "sha512-yoJGC4R0Z1wNeGweM3sX3qTdQ5nlGJJHXhjnArMhMkN6iKDGUZRuvolmei5sULLLTuVuXSM3b4RVx3tpsiW/2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", + "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^22.20 || ^24.12 || >=25" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.6.tgz", + "integrity": "sha512-pHUn6ZRt39bP3698HFQlu2ZHCkS/lPcpv7fVQcGBSzNNygw171UXAKrCUhy+TEMw4lEttOKDgNpb04hwUAJeiQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.4.1", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.2", + "tar-fs": "^3.1.0", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.0.tgz", + "integrity": "sha512-FLLpX941CD/7aBvX3GqLGBM9OvY5PGXTryPJkG5r5/OuBpZpV5k45Uo3RxAvqd35tsyc3hH1bhtz921IKzoIzg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.0.tgz", + "integrity": "sha512-iI32XM/jnDYJsvx5ai/za/7gWO9XoSeFFtU06/ZCaRgyilfJOjaopD3nOpk2WrTCGOyeDt4hleUiGOAnd5tHNg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.0.tgz", + "integrity": "sha512-dRBZlbt2sEtF8Mn4MODThze9fIPdDoOhVSlXMAKy5dQbOYK9pOOoPY4Fat3OTtr0+8zbJo5TTZwlsfxY/kDNJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.0.tgz", + "integrity": "sha512-Y3whrJOMucfkhgNkvcM93M6j8C53iEAMmPMYD99C6G1kUy4ELigLWk9ar2/4aCBSRgsql0zdlOemLgW2m5GZgQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.0.tgz", + "integrity": "sha512-S6S1GEzPjFF6IONYJX3AKt/799+8RgBgCcwRnUo+Ep1IvBxUbw5M51iU0TDdK2NWWVnSvCQ8yi6Em0fGASMOng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.0.tgz", + "integrity": "sha512-Ed1DPoFENkXj4IGzSB12SesV40iP6LxCCrbTIkSGIQBpOOxpBM+0kj62lmaeIHfMWTDoddqTOtqc7s8LYfn+Pw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.0.tgz", + "integrity": "sha512-J/6xhutJPtFyIkmHdf4olOdHHKH5kOJNumojdWn+Elv5ICEYTVOa362Vw27TxsK0BLzb1le3EDlO3UbvFK1lnQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.0.tgz", + "integrity": "sha512-G4L/Nnx59d2LvDoV/P4S5lZ7oVLT6hodOHMacqjiq2LL2gts86KbkEBTYL53+fBt0odhf7XPIbIATGoYiJctxg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.0.tgz", + "integrity": "sha512-zF16pvJDEUksGYRbfnXne7pdklAyj2XDmJeYKgP93oq0cUyX9Y8O7lUo1R+IY1GagP/YBvCEDCe7eEcAKpw//g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.0.tgz", + "integrity": "sha512-nIggWn8n+w12+R5lsV+PYYoUY8vuObxPAQqJI7WES+9v0qspYuAHoZMfYM0yLxlipasT5BY9ht5W8t5c/rSCkg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.0.tgz", + "integrity": "sha512-WLOTiHPzszP0dxIMsHpFeDSOSB5I49Mj8K4+yKE3H1X/D0JRG5XZ5jrctJLMjnUc/LUzaKiwq6EHWNJ8pup8PA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.0.tgz", + "integrity": "sha512-35RK9aRhh7g7Pmeu5gQ01aCvrhXzj9LoBE6xtUcEH1ns+nyTaSzxSpADmBQINu4QiTDGvmQYwo1j5hlg1rRXFw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.0.tgz", + "integrity": "sha512-RqTfnpoTjuWfPAmqK5p2edt2AMCDJWm6oTn7sKfmyx+6tRga0ip05SJ977o6udTcIiDeF/CJMUfkaN4gtWt6Aw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.0.tgz", + "integrity": "sha512-RQjZPigjxFvFZDijG6rjlSXxhRaTf9zLYVpGK+lVcga64oMqP1GbgVqCb46eHTTceSIgp89Ja0y5aPe3GFBYHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.0.tgz", + "integrity": "sha512-tjL58mgQcTRnDRpeky+Sth1MKQeYi2Ct6r3Luq9E5aTSjnM/i/JbozqZkKqp9thM5+oDSZxo+05f9kdQedfTGA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.0.tgz", + "integrity": "sha512-ictoRyVaoZ8C67myHef+8hhCa6IplXJJ/xUCkVCxziV4zxMZh+jvhkhGsPBLqj1S72fnqD0QH5zL4lcaa4X7DQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.0.tgz", + "integrity": "sha512-8aVvZ2hfr9RLFzBQkQNmYeHLDja8fLeQAmLt757zdKN/B+8L809KlLJKctQjS22wZotptV8G6o7fVPuAs8S1tQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.0.tgz", + "integrity": "sha512-2dEF8GAcDKwshUfydD+GhosppNyBzhVUHkdFF3CXd3FpOkzj/RZzF5aoEtzklujklT5qFVRU2GK/cFeLaTNKVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.0.tgz", + "integrity": "sha512-3XHTvoo2hKkh0MiOfS7SkhHjMaaWF7P4F3drocZZaho/Z8w7h/jpnuBHm91BOQLfvrKHs1yR+zir4E8RI3XzTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.0.tgz", + "integrity": "sha512-HKtkzodL4a3KFWDXDoO61cRynAWTR3LnAE0oGtfG9lcNFpNuVYUFOByxDgNqEvic9rvaQbAj+SFwTEWDptRaIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.0.tgz", + "integrity": "sha512-JBsxqiY16uyyCujtoC3s7zL+SrYyNElptD7K4V+KUoJ2V8/XG3hPWpheK+SuPwNh1cikJvIZmIdsrYXvD6PLJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.0.tgz", + "integrity": "sha512-S5Qrijh37qhnUYQ0ay8WN3LuWeKjow7wTUyCOPMZtnXiBXYXdsZETI6ZLfYnQAKovltckPLBFdNeD61P2rJc7g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.0.tgz", + "integrity": "sha512-zbZ6iMmLFEsCtTdc2/y1F/cDFVNNCPF7Ae8PCT/wdPE//hGwYp6r+MyCLMFX+kOeIe09Pz6ASfnnfpSTN1FJQQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.0.tgz", + "integrity": "sha512-L6Hw69oNpuYaOr1zCG30v0/DqKYCSRwodPGwIcVZ/6f8SOzq9rxtL/xNVI5MO4wjli+Ko0ErK9uHJL3mNPt8wQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.0.tgz", + "integrity": "sha512-nl+CTWIgOGszQmUz/kanfgrfFZ4qiwxKIfT/ryl3N3Ewk5tqizmYtNXiqb7Bu/fDtNgu1kyxdFiAUJNur3iysg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tweenjs/tween.js": { + "version": "23.1.3", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", + "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", + "dev": true, + "license": "MIT" + }, + "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/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/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.4.tgz", + "integrity": "sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.9.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.31", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.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/stats.js": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz", + "integrity": "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/three": { + "version": "0.170.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.170.0.tgz", + "integrity": "sha512-CUm2uckq+zkCY7ZbFpviRttY+6f9fvwm6YqSqPfA5K22s9w7R4VnA3rzJse8kHVvuzLcTx+CjNCs2NYe0QFAyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tweenjs/tween.js": "~23.1.3", + "@types/stats.js": "*", + "@types/webxr": "*", + "@webgpu/types": "*", + "fflate": "~0.8.2", + "meshoptimizer": "~0.18.1" + } + }, + "node_modules/@types/webxr": { + "version": "0.5.24", + "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz", + "integrity": "sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.0.tgz", + "integrity": "sha512-pqcS9c1HxZTHt7End4nXqd0s5lJrrFzrgCkKFJrsbUnaL6M3+6oBFZaslg6Gjsl3argl2DDRFROnXARaZ2e4Nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.71.0", + "@typescript-eslint/type-utils": "8.71.0", + "@typescript-eslint/utils": "8.71.0", + "@typescript-eslint/visitor-keys": "8.71.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.71.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.12.tgz", + "integrity": "sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.71.0.tgz", + "integrity": "sha512-CG4nPk1f2zc8yw4pALqHsFYH2hdo+h1T9daSp21+Hnxi9LOE3GT9hAfTKJCBXVNM2GmYs1eMEP615wPoeOgk3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.71.0", + "@typescript-eslint/types": "8.71.0", + "@typescript-eslint/typescript-estree": "8.71.0", + "@typescript-eslint/visitor-keys": "8.71.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.0.tgz", + "integrity": "sha512-aABjw5rjBacYONVPaPiWOCjJu0vEF4a25iQuodlmQYL1trtLZ0X/y+2Vzl3BKI1odM4LnwLE1oUDXYp1wzx1TQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.71.0", + "@typescript-eslint/types": "^8.71.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.0.tgz", + "integrity": "sha512-gWF0BhUcnjZxSpLE8ngS/59n2SB0J3YqRxvX1+2aoRJk9hNtHSLOV+TcarFiOr5ipXm3yc1QrI4c9YZc8zyCxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.71.0", + "@typescript-eslint/visitor-keys": "8.71.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.0.tgz", + "integrity": "sha512-Z1UlWHADEK2Mlb9NpWfDeSjqoZ5EyrOv4R3eQpbkzqn/EwaIdOpXXupEA1+0ZIOSJSZZDBHG0BrQyN8zUG6Pwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.71.0.tgz", + "integrity": "sha512-i8uO1qbdxeKgRnS5sCRt6On3/nfo2d2DwQe3Yvjx543zLy7r8ySqRuPPiIIXAhS03U0v5NfAFx+rUgxFzKKwNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.71.0", + "@typescript-eslint/typescript-estree": "8.71.0", + "@typescript-eslint/utils": "8.71.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.0.tgz", + "integrity": "sha512-cJ4OoxPGWvFnBTnSZyaU+qJzGTqPTGJY+gDchj6cRyLRdmIdt4rcsE4twj+zPfrNiWuVi38wijHzShL++Z9atQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.0.tgz", + "integrity": "sha512-PEEF4G5sLLWAS5BpPrUvms4ySZkiBQQZM4z+3ReI46axK5Vqr/vXBQatJQIZZOYdGyPUAKTtsrWzpqKuU+3DEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.71.0", + "@typescript-eslint/tsconfig-utils": "8.71.0", + "@typescript-eslint/types": "8.71.0", + "@typescript-eslint/visitor-keys": "8.71.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.0.tgz", + "integrity": "sha512-pKR/tEMVrXZG23UFKUn5BQf3zfmfk7KQceI2cGzywZ5nxM5Eu3hEJU1utjWzydtzBbcJAQhHN8iPCxobHpPcZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.71.0", + "@typescript-eslint/types": "8.71.0", + "@typescript-eslint/typescript-estree": "8.71.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.0.tgz", + "integrity": "sha512-8eQ9R218XORK+KLosnf4bu/QsUXvUyVwTbArg7/0NMB1Pu87OJKvj4nhFblkYE8gQV73mW1dx1ptlPCkwRGa7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.71.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.7.tgz", + "integrity": "sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==", + "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/snapshot/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/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/@vitest/utils/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/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webgpu/types": { + "version": "0.1.74", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.74.tgz", + "integrity": "sha512-lgiI4hbuLcI9unnm2cL/tvCaQU45dp0xcLWJh5uB/9MBGvIA4F8XIk7nSiBeg+K4xWGYwgZKn80LmERI5CxoTA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "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.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "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/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.2.0.tgz", + "integrity": "sha512-VXY5eFRarnXcYxwBjJzPmEhH55+rmP79/+ueDhi0F+TuqfHCItagIHqxeUZrmgrOPa31QTh9H85DjX3FfJ0FTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "es-shim-unscopables": "^1.1.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/bare-events": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.9.2.tgz", + "integrity": "sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.8.2.tgz", + "integrity": "sha512-+ZI68KHMUvosXfKbg/UOHK0tbCdRnegbvPEdEcZ3Nd6TetieQsJPRXBRXPdLyy8+3VSEbPXtsumTpEtt78xv9w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.28.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-path": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.1.2.tgz", + "integrity": "sha512-ZyKbsuuqK6Ag0K8pX6V5Txq6XeJRvY+wXucnFGRjiyVYP9YWDpIQugk/b+enRYrEYBJaqLzghRQpXPMR7341Nw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bare-stream": { + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.4.tgz", + "integrity": "sha512-PcrQ8lVLbiJscNm1Kez+Yp4Gy4AHGcN1lzwjvf5NybWen7VvEgUfyfnXYJ2zNqWnzOfCb1Abq6lH8ti0syQszA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.8.1", + "streamx": "^2.25.0", + "teex": "^1.0.1" + }, + "peerDependencies": { + "bare-abort-controller": "*", + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + }, + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-stream/node_modules/b4a": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.9.0.tgz", + "integrity": "sha512-dpfcF9fDNR6++cthXR67iyhgqWy9CBouAvIWhIntzBG6cvK/cnIPiZQjBwi/ZqjjBEDGfoNDtmB0kTjroOJ3pQ==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.5.4.tgz", + "integrity": "sha512-Gxa7UVWBr0/edU1b+TJhn/AZvMQUj9OGspvYsaTYQrAbZA4BOTZGL3LiZxvD+CeMlDH4juwD84+eTAp/bLYW5g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-path": "^3.0.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.27", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.27.tgz", + "integrity": "sha512-ElY12DaROGuan+lMmZ8Cvo/ZUbXPe7Enc/9VU/b1T3Kp4dwytRcNdR8DoSJN5SNJT/CuvcCA0DHDVmMOCePdRQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/basic-ftp": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.3.1.tgz", + "integrity": "sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "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.29.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.3.tgz", + "integrity": "sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==", + "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": { + "baseline-browser-mapping": "^2.11.26", + "caniuse-lite": "^1.0.30001813", + "electron-to-chromium": "^1.5.439", + "node-releases": "^2.0.57", + "update-browserslist-db": "^1.3.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.30001814", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001814.tgz", + "integrity": "sha512-/Uaf1lAzr59XcMpW0o96WoEfr+VXK2OX4U9AgFoiSHsVJ4HppnIFUjtYzsyDH2+tgANaQb2/oxYGwCPapN1FpA==", + "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/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==", + "dev": true, + "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/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chromium-bidi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-7.2.0.tgz", + "integrity": "sha512-gREyhyBstermK+0RbcJLbFhcQctg92AGgDe/h/taMJEOLRdtSswBAO9KmvltFSQWgM2LrwWu5SIuEUbdm3JsyQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "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/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-foxglove-extension": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/create-foxglove-extension/-/create-foxglove-extension-1.3.2.tgz", + "integrity": "sha512-JR1CwWdNQS/NpAJ5kB7LOIdEtH6WR8OFto/2OYS3xGgeCcf0MhNHhmaA3aIyv4qQO1iCzFmh4Yo3e30vAlc/mQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "12.1.0", + "jszip": "3.10.1", + "mkdirp": "3.0.1", + "ncp": "2.0.0", + "node-fetch": "2.7.0", + "path-browserify": "1.0.1", + "rimraf": "6.1.2", + "sanitize-filename": "1.6.3", + "tar": "7.5.8", + "ts-loader": "9.5.1", + "webpack": "5.96.1" + }, + "bin": { + "create-foxglove-extension": "dist/bin/create-foxglove-extension.js", + "foxglove-extension": "dist/bin/foxglove-extension.js" + }, + "engines": { + "node": ">= 14" + } + }, + "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/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1464554", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1464554.tgz", + "integrity": "sha512-CAoP3lYfwAGQTaAXYvA6JZR0fjGUb7qec1qf4mToyoH2TZgUFeIqYcjh6f9jNuhHfuZiEdH+PONHYrLhRQX6aw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.444", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.444.tgz", + "integrity": "sha512-5ss/uJfoDYDHT0lfJzT6FbcskIzROIOPf0BbbFkGcvDzoJU7i//9GDrwwIHQVmIsrAGiF3ihpADBRIsrEFt1rQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.26.0.tgz", + "integrity": "sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.4.0.tgz", + "integrity": "sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", + "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "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==", + "dev": true, + "license": "BSD-2-Clause", + "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": "9.39.5", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.5.tgz", + "integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==", + "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.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.6", + "@eslint/js": "9.39.5", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz", + "integrity": "sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-filenames": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz", + "integrity": "sha512-tqxJTiEM5a0JmRCUYQmxw23vtTxrb2+a3Q2mMOPhFxvt7ZQQJmdiuMby9B/vUAuVMghyP7oET+nIf6EO6CBd/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.camelcase": "4.3.0", + "lodash.kebabcase": "4.1.1", + "lodash.snakecase": "4.1.1", + "lodash.upperfirst": "4.3.1" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/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/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "28.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.14.0.tgz", + "integrity": "sha512-P9s/qXSMTpRTerE2FQ0qJet2gKbcGyFTPAJipoKxmWqR6uuFqIqk8FuEfg5yBieOezVrEfAMZrEwJ6yEp+1MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "engines": { + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "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 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/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/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "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/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/eslint/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.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==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "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==", + "dev": true, + "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==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.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==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, + "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/fast-uri": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "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": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.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-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": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": [ + "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==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "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-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "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": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "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": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true, + "license": "MIT" + }, + "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": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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", + "engines": { + "node": ">=0.8.19" + } + }, + "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/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip-address": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.3.tgz", + "integrity": "sha512-A1kdq/tSb5QjvKvAMgIoEvDBIgL7qaqVP/jkvSwYYRZ9iEzvPpopxp2wQfu3SuZRHtpHNxMn8Fs0bS+gf5Xmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.17.0.tgz", + "integrity": "sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "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/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "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/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/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "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", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/loader-runner": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "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": "MIT" + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "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", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/meshoptimizer": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", + "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", + "dev": true, + "license": "MIT" + }, + "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": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "dev": true, + "license": "MIT", + "bin": { + "ncp": "bin/ncp" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/netmask": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.1.1.tgz", + "integrity": "sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/node-exports-info": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", + "integrity": "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-exports-info/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz", + "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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": { + "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": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", + "integrity": "sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": { + "yocto-queue": "^0.1.0" + }, + "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, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true, + "license": "(MIT AND Zlib)" + }, + "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": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "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": "MIT", + "engines": { + "node": ">=8" + } + }, + "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": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "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/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "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": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", + "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": { + "nanoid": "^3.3.18", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "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": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.9.tgz", + "integrity": "sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=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==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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": ">=6" + } + }, + "node_modules/puppeteer-core": { + "version": "24.15.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.15.0.tgz", + "integrity": "sha512-2iy0iBeWbNyhgiCGd/wvGrDSo73emNFjSxYOcyAqYiagkYt5q4cPfVXaVDKBsukgc2fIIfLAalBZlaxldxdDYg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.10.6", + "chromium-bidi": "7.2.0", + "debug": "^4.4.1", + "devtools-protocol": "0.0.1464554", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.3" + }, + "engines": { + "node": ">=18" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "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/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.2.tgz", + "integrity": "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.0", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.64.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.64.0.tgz", + "integrity": "sha512-gjA/kFeDfffII8COoPsvLPvE16hWDTEc1+0QKQNKUkuV8iJjqsC4xXs8/FzuL0v9EV39kuxTbAgcFoTRyy2TGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "@rollup/rollup-android-arm-eabi": "4.64.0", + "@rollup/rollup-android-arm64": "4.64.0", + "@rollup/rollup-darwin-arm64": "4.64.0", + "@rollup/rollup-darwin-x64": "4.64.0", + "@rollup/rollup-freebsd-arm64": "4.64.0", + "@rollup/rollup-freebsd-x64": "4.64.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.64.0", + "@rollup/rollup-linux-arm-musleabihf": "4.64.0", + "@rollup/rollup-linux-arm64-gnu": "4.64.0", + "@rollup/rollup-linux-arm64-musl": "4.64.0", + "@rollup/rollup-linux-loong64-gnu": "4.64.0", + "@rollup/rollup-linux-loong64-musl": "4.64.0", + "@rollup/rollup-linux-ppc64-gnu": "4.64.0", + "@rollup/rollup-linux-ppc64-musl": "4.64.0", + "@rollup/rollup-linux-riscv64-gnu": "4.64.0", + "@rollup/rollup-linux-riscv64-musl": "4.64.0", + "@rollup/rollup-linux-s390x-gnu": "4.64.0", + "@rollup/rollup-linux-x64-gnu": "4.64.0", + "@rollup/rollup-linux-x64-musl": "4.64.0", + "@rollup/rollup-openbsd-x64": "4.64.0", + "@rollup/rollup-openharmony-arm64": "4.64.0", + "@rollup/rollup-win32-arm64-msvc": "4.64.0", + "@rollup/rollup-win32-ia32-msvc": "4.64.0", + "@rollup/rollup-win32-x64-gnu": "4.64.0", + "@rollup/rollup-win32-x64-msvc": "4.64.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, + "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": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.10.tgz", + "integrity": "sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.1.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "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==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/streamx": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.28.1.tgz", + "integrity": "sha512-zEzXb0s5Cds7tqMH6rhZ05lcJydCWiQPEwiNngVqzsxCc962vLY4Uw+mW7od8kDH258k2Uz/JrOkdIAAhSh9VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.1.0.tgz", + "integrity": "sha512-tHNHTxInrYLCga9O9YGxWA3G9/nnzQw8UGAyqGx3Ar1pSTTzIuM4woFSq4SowkXCjJIwq5sIiQvEfRI9tCH1qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "get-intrinsic": "^1.3.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.4", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "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/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.8.tgz", + "integrity": "sha512-SYkBtK99u0yXa+IWL0JRzzcl7RxNpvX/U08Z+8DKnysfno7M+uExnTZH8K+VGgShf2qFPKtbNr9QBl8n7WBP6Q==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar-fs": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.3.tgz", + "integrity": "sha512-/hU4AXnIdZu+Gvl1pk0oI5f5HxWsCJRtY2aFaJdk9VvyL48DWU6iU5WAIPG+wIi1YvWA6eTJvIviP/tMAZZNwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.2.1.tgz", + "integrity": "sha512-nqsEO8zLZJvrOMdEwkA0QdCLFbetHMn95Zqu4fKwX+hkaTWJPZZOrxx/PwtxoK0MMGQmBQNRW3CPs8IFYQz4cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "bare-fs": "^4.5.5", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar-stream/node_modules/b4a": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.9.0.tgz", + "integrity": "sha512-dpfcF9fDNR6++cthXR67iyhgqWy9CBouAvIWhIntzBG6cvK/cnIPiZQjBwi/ZqjjBEDGfoNDtmB0kTjroOJ3pQ==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "streamx": "^2.12.5" + } + }, + "node_modules/terser": { + "version": "5.51.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz", + "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.5.0.tgz", + "integrity": "sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.15", + "ajv": "^8.20.0", + "ajv-formats": "^3.0.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/text-decoder": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", + "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/text-decoder/node_modules/b4a": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.9.0.tgz", + "integrity": "sha512-dpfcF9fDNR6++cthXR67iyhgqWy9CBouAvIWhIntzBG6cvK/cnIPiZQjBwi/ZqjjBEDGfoNDtmB0kTjroOJ3pQ==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/three": { + "version": "0.170.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.170.0.tgz", + "integrity": "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ==", + "license": "MIT" + }, + "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/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.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "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": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "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", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.6.tgz", + "integrity": "sha512-u8KszXvGfU68hVcZpRHKG28T0krMuv2G5nDhiHaMLen/gIuFEgIJhaJuO69qjnXg5paSrbPMFfx3brNuN8eVSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.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==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.5.tgz", + "integrity": "sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-query-selector": { + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.3.tgz", + "integrity": "sha512-/dtuMZyutHLlrxWhhC1uib00ELUr2dZ8C9B8YzZYsJmeE3V56OxRblrSM2UaF142pcMtak7ehZ6+poWGeehNIg==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.71.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.71.0.tgz", + "integrity": "sha512-fBdHYiqQ14RW6mOMXD14Svn82ZsCYAoQSzGRzyEjR59S5A2Krh/l7fGTOQ7iCr8gGy/mHVXtEF7s5fgjEdV0Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.71.0", + "@typescript-eslint/parser": "8.71.0", + "@typescript-eslint/typescript-estree": "8.71.0", + "@typescript-eslint/utils": "8.71.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", + "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": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "6.3.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz", + "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "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/watchpack": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.6.0.tgz", + "integrity": "sha512-EIMmPVvNI0CYXyRPp34F2Qk7W37/BZVZIofS6LAUnrNjCVahS+hO4mxwFJDjQjODTGZDtVzLYoN2+1dYkhk9qA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.24", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.24.tgz", + "integrity": "sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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.22.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz", + "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==", + "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/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/yargs": { + "version": "17.7.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/extensions/model_ghost_preview/extension/package.json b/extensions/model_ghost_preview/extension/package.json new file mode 100644 index 0000000..00218c7 --- /dev/null +++ b/extensions/model_ghost_preview/extension/package.json @@ -0,0 +1,46 @@ +{ + "name": "model-ghost-preview", + "displayName": "Model Ghost Preview", + "description": "Preview a topic's 3D model as a ghost at the hovered timeline time, even while playback is paused.", + "publisher": "Foxglove", + "homepage": "https://github.com/foxglove/tutorials", + "version": "0.1.0", + "license": "MIT", + "main": "./dist/extension.js", + "keywords": [ + "foxglove", + "3d", + "preview", + "timeline" + ], + "scripts": { + "build": "foxglove-extension build", + "foxglove:prepublish": "foxglove-extension build --mode production", + "lint": "eslint .", + "lint:ci": "eslint .", + "lint:fix": "eslint --fix .", + "local-install": "foxglove-extension install", + "package": "foxglove-extension package", + "test": "vitest run", + "dev:harness": "vite --config dev/vite.config.ts --host 127.0.0.1 --port 5173 --strictPort" + }, + "dependencies": { + "three": "0.170.0" + }, + "devDependencies": { + "@foxglove/eslint-plugin": "2.1.2", + "@foxglove/extension": "3.3.0", + "@types/react": "18.3.31", + "@types/react-dom": "18.3.7", + "@types/three": "^0.170.0", + "create-foxglove-extension": "1.3.2", + "eslint": "9.39.5", + "prettier": "3.9.9", + "puppeteer-core": "24.15.0", + "react": "18.3.1", + "react-dom": "18.3.1", + "typescript": "5.9.3", + "vite": "6.3.6", + "vitest": "3.2.4" + } +} diff --git a/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx b/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx new file mode 100644 index 0000000..455c78a --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx @@ -0,0 +1,471 @@ +import type { PanelExtensionContext } from "@foxglove/extension"; +import { useEffect, useLayoutEffect, useRef, useState, type CSSProperties, type ReactElement } from "react"; +import { createRoot } from "react-dom/client"; + +import { PoseTimeline, type TimedPose } from "./poses/PoseTimeline"; +import { extractPose } from "./poses/extractPose"; +import { GhostScene, type ScenePose } from "./scene/GhostScene"; +import { loadGltfScene, placeModel } from "./scene/placeModel"; +import { createTruckModel } from "./scene/truckModel"; +import { + buildSettingsTree, + mergeConfig, + reduceConfig, + type GhostPreviewConfig, + type TopicInfo, +} from "./settings"; +import { normalizePreviewTime, toSec, type TimeLike } from "./time"; + +const EMPTY_POINTS = new Float32Array(); +const EMPTY_TIMES = new Float64Array(); + +type Playback = { + currentSec: number | undefined; + previewSec: number | undefined; + startTime: TimeLike | undefined; +}; + +type GhostLabel = { + text: string; + x: number; + y: number; +}; + +export function GhostPreviewPanel({ context }: { context: PanelExtensionContext }): ReactElement { + const [config, setConfig] = useState(() => mergeConfig(context.initialState)); + const [topics, setTopics] = useState([]); + const [colorScheme, setColorScheme] = useState<"dark" | "light">("dark"); + const [playback, setPlayback] = useState({ + currentSec: undefined, + previewSec: undefined, + startTime: undefined, + }); + const [poseCount, setPoseCount] = useState(0); + const [poseRevision, setPoseRevision] = useState(0); + const [loading, setLoading] = useState(false); + const [loadError, setLoadError] = useState(); + const [modelError, setModelError] = useState(); + const [ghostLabel, setGhostLabel] = useState(); + const [renderDone, setRenderDone] = useState<(() => void) | undefined>(); + + const sceneHostRef = useRef(null); + const sceneRef = useRef(undefined); + const timelineRef = useRef(new PoseTimeline()); + const framedRef = useRef(false); + + useLayoutEffect(() => { + const host = sceneHostRef.current; + if (!host) { + return undefined; + } + const scene = new GhostScene(host, { + onPreviewTime: (timeSec) => { + context.setPreviewTime(timeSec); + }, + onSeek: (timeSec) => { + context.seekPlayback?.(timeSec); + }, + }); + sceneRef.current = scene; + return () => { + scene.dispose(); + sceneRef.current = undefined; + }; + }, [context]); + + useLayoutEffect(() => { + context.onRender = (renderState, done) => { + setRenderDone(() => done); + if (renderState.topics) { + setTopics(renderState.topics); + } + if (renderState.colorScheme) { + setColorScheme(renderState.colorScheme); + } + const currentSec = renderState.currentTime ? toSec(renderState.currentTime) : undefined; + const startTime = renderState.startTime ? toTimeLike(renderState.startTime) : undefined; + setPlayback((previous) => { + if ( + previous.currentSec === currentSec && + previous.previewSec === renderState.previewTime && + sameTime(previous.startTime, startTime) + ) { + return previous; + } + return { currentSec, previewSec: renderState.previewTime, startTime }; + }); + }; + context.watch("currentTime"); + context.watch("previewTime"); + context.watch("topics"); + context.watch("colorScheme"); + context.watch("startTime"); + context.watch("endTime"); + }, [context]); + + useEffect(() => { + renderDone?.(); + }, [renderDone]); + + useEffect(() => { + const topic = config.general.poseTopic; + context.setDefaultPanelTitle(topic.length > 0 ? `Ghost: ${topic}` : "Model Ghost Preview"); + }, [context, config.general.poseTopic]); + + useEffect(() => { + context.updatePanelSettingsEditor( + buildSettingsTree({ + config, + topics, + actionHandler: (action) => { + setConfig((previous) => { + const next = reduceConfig(previous, action); + if (next !== previous) { + context.saveState(next); + } + return next; + }); + }, + }), + ); + }, [context, config, topics]); + + useEffect(() => { + const topic = config.general.poseTopic; + const childFrameId = config.general.childFrameId; + const subscribe = context.subscribeMessageRange; + framedRef.current = false; + if (topic.length === 0 || !subscribe) { + timelineRef.current = new PoseTimeline(); + setPoseCount(0); + setPoseRevision((value) => value + 1); + setLoading(false); + setLoadError( + topic.length > 0 && !subscribe + ? "Range loading is not available for this data source." + : undefined, + ); + return undefined; + } + + let cancelled = false; + const timeline = new PoseTimeline(); + timelineRef.current = timeline; + setLoading(true); + setLoadError(undefined); + setPoseCount(0); + + const unsubscribe = subscribe({ + topic, + onNewRangeIterator: async (batchIterator) => { + timeline.clear(); + if (!cancelled) { + setPoseCount(0); + setPoseRevision((value) => value + 1); + } + try { + for await (const batch of batchIterator) { + if (cancelled) { + return; + } + const extracted: TimedPose[] = []; + for (const event of batch) { + const sample = extractPose(event.schemaName, event.message, { childFrameId }); + if (!sample) { + continue; + } + extracted.push({ + tSec: toSec(event.receiveTime), + position: sample.position, + orientation: sample.orientation, + frameId: sample.frameId, + }); + } + timeline.insertMany(extracted); + setPoseCount(timeline.size()); + setPoseRevision((value) => value + 1); + } + } catch (error: unknown) { + if (!cancelled) { + setLoadError(error instanceof Error ? error.message : "Failed to load poses"); + } + } finally { + if (!cancelled) { + setLoading(false); + } + } + }, + }); + + return () => { + cancelled = true; + unsubscribe(); + }; + }, [context, config.general.poseTopic, config.general.childFrameId]); + + useEffect(() => { + const scene = sceneRef.current; + if (!scene) { + return undefined; + } + let cancelled = false; + const placement = { + scale: config.model.scale, + yawDeg: config.model.yaw, + pitchDeg: config.model.pitch, + rollDeg: config.model.roll, + yUpCorrection: config.model.source === "url" ? ("apply" as const) : ("skip" as const), + }; + const run = async (): Promise => { + try { + const contents = + config.model.source === "url" + ? await loadGltfScene(config.model.url) + : createTruckModel(config.model.truckColor); + if (cancelled) { + return; + } + scene.setModel(placeModel(contents, placement)); + setModelError(undefined); + } catch (error: unknown) { + if (cancelled) { + return; + } + setModelError(error instanceof Error ? error.message : "Failed to load model"); + scene.setModel( + placeModel(createTruckModel(config.model.truckColor), { + ...placement, + yUpCorrection: "skip", + }), + ); + } + }; + void run(); + return () => { + cancelled = true; + }; + }, [ + config.model.source, + config.model.url, + config.model.scale, + config.model.yaw, + config.model.pitch, + config.model.roll, + config.model.truckColor, + context, + ]); + + useLayoutEffect(() => { + const scene = sceneRef.current; + if (!scene) { + return; + } + const timeline = timelineRef.current; + scene.setColorScheme(colorScheme); + scene.setGridVisibility(config.view.showGrid ? "shown" : "hidden"); + scene.setGhostAppearance({ + style: config.ghost.style, + color: config.ghost.color, + opacity: config.ghost.opacity, + }); + scene.setPath({ + points: config.path.visible ? timeline.path() : EMPTY_POINTS, + times: config.path.visible ? timeline.times() : EMPTY_TIMES, + color: config.path.color, + visibility: config.path.visible ? "shown" : "hidden", + }); + + const currentPose = + playback.currentSec == undefined + ? undefined + : toScenePose(timeline.sample(playback.currentSec, config.general.interpolation)); + const previewSec = normalizePreviewTime(playback.previewSec, playback.startTime); + let ghostPose = + config.ghost.visible && previewSec != undefined + ? toScenePose(timeline.sample(previewSec, config.general.interpolation)) + : undefined; + if (ghostPose && currentPose && posesNearlyEqual(ghostPose, currentPose)) { + ghostPose = undefined; + } + if ( + config.path.visible && + config.path.highlightSegment && + playback.currentSec != undefined && + previewSec != undefined && + ghostPose + ) { + scene.setHighlight({ + points: timeline.pathSlice(playback.currentSec, previewSec), + color: config.path.color, + }); + } else { + scene.setHighlight(undefined); + } + scene.setCurrentPose(currentPose); + scene.setGhostPose(ghostPose); + if (!framedRef.current && !loading && timeline.size() > 1) { + scene.framePath(); + framedRef.current = true; + } + scene.setFollowMode(config.view.follow); + + const label = + config.ghost.showTimeLabel && + ghostPose && + playback.currentSec != undefined && + previewSec != undefined + ? projectLabel(scene, ghostPose, previewSec - playback.currentSec) + : undefined; + setGhostLabel((previous) => (sameLabel(previous, label) ? previous : label)); + }, [colorScheme, config, loading, playback, poseRevision]); + + const status = statusMessage({ + topic: config.general.poseTopic, + loading, + poseCount, + loadError, + modelError, + }); + + return ( +
+
+ {status &&
{status.text}
} + {ghostLabel && ( +
{ghostLabel.text}
+ )} +
+ ); +} + +export function initGhostPreviewPanel(context: PanelExtensionContext): () => void { + context.panelElement.style.height = "100%"; + context.panelElement.style.width = "100%"; + context.panelElement.style.overflow = "hidden"; + const root = createRoot(context.panelElement); + root.render(); + return () => { + root.unmount(); + }; +} + +function toScenePose(sample: TimedPose | undefined): ScenePose | undefined { + if (!sample) { + return undefined; + } + return { position: sample.position, orientation: sample.orientation }; +} + +function posesNearlyEqual(a: ScenePose, b: ScenePose): boolean { + const dx = a.position[0] - b.position[0]; + const dy = a.position[1] - b.position[1]; + const dz = a.position[2] - b.position[2]; + if (dx * dx + dy * dy + dz * dz > 0.0025) { + return false; + } + const dot = Math.abs( + a.orientation[0] * b.orientation[0] + + a.orientation[1] * b.orientation[1] + + a.orientation[2] * b.orientation[2] + + a.orientation[3] * b.orientation[3], + ); + return dot > 0.9995; +} + +function projectLabel(scene: GhostScene, pose: ScenePose, deltaSec: number): GhostLabel | undefined { + const point = scene.projectToOverlay(pose.position, 4.6); + if (!point) { + return undefined; + } + const sign = deltaSec >= 0 ? "+" : ""; + return { text: `${sign}${deltaSec.toFixed(2)} s`, x: point.x, y: point.y }; +} + +function sameLabel(previous: GhostLabel | undefined, next: GhostLabel | undefined): boolean { + if (previous == undefined || next == undefined) { + return previous === next; + } + return ( + previous.text === next.text && + Math.round(previous.x) === Math.round(next.x) && + Math.round(previous.y) === Math.round(next.y) + ); +} + +function statusMessage(args: { + topic: string; + loading: boolean; + poseCount: number; + loadError: string | undefined; + modelError: string | undefined; +}): { text: string; tone: "info" | "error" } | undefined { + if (args.modelError) { + return { text: args.modelError, tone: "error" }; + } + if (args.loadError) { + return { text: args.loadError, tone: "error" }; + } + if (args.topic.length === 0) { + return { text: "Select a pose topic", tone: "info" }; + } + if (args.loading) { + return { text: `loading ${args.poseCount} poses…`, tone: "info" }; + } + return undefined; +} + +function toTimeLike(time: TimeLike): TimeLike { + return { sec: time.sec, nsec: time.nsec }; +} + +function sameTime(a: TimeLike | undefined, b: TimeLike | undefined): boolean { + if (a == undefined || b == undefined) { + return a === b; + } + return a.sec === b.sec && a.nsec === b.nsec; +} + +const rootStyle: CSSProperties = { + position: "relative", + width: "100%", + height: "100%", + overflow: "hidden", + fontFamily: "system-ui, sans-serif", +}; + +const hostStyle: CSSProperties = { position: "absolute", inset: 0 }; + +const overlayStyle: CSSProperties = { + position: "absolute", + left: 8, + top: 8, + padding: "4px 8px", + borderRadius: 4, + background: "rgba(20, 24, 28, 0.72)", + color: "#f2f5f8", + fontSize: 12, + pointerEvents: "none", +}; + +const errorStyle: CSSProperties = { + ...overlayStyle, + background: "rgba(120, 32, 32, 0.88)", + maxWidth: "70%", +}; + +const labelStyle: CSSProperties = { + position: "absolute", + transform: "translate(-50%, -130%)", + padding: "2px 6px", + borderRadius: 4, + background: "rgba(12, 32, 48, 0.8)", + color: "#d7f3ff", + fontSize: 12, + pointerEvents: "none", + whiteSpace: "nowrap", +}; diff --git a/extensions/model_ghost_preview/extension/src/index.ts b/extensions/model_ghost_preview/extension/src/index.ts new file mode 100644 index 0000000..b715916 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/index.ts @@ -0,0 +1,10 @@ +import type { ExtensionContext } from "@foxglove/extension"; + +import { initGhostPreviewPanel } from "./GhostPreviewPanel"; + +export function activate(extensionContext: ExtensionContext): void { + extensionContext.registerPanel({ + name: "Model Ghost Preview", + initPanel: initGhostPreviewPanel, + }); +} diff --git a/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.test.ts b/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.test.ts new file mode 100644 index 0000000..a7dd706 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.test.ts @@ -0,0 +1,96 @@ +import { describe, expect, it } from "vitest"; + +import { PoseTimeline, type TimedPose } from "./PoseTimeline"; +import type { Quat } from "./extractPose"; + +function pose(tSec: number, position: readonly [number, number, number], orientation?: Quat): TimedPose { + return { + tSec, + position, + orientation: orientation ?? [0, 0, 0, 1], + frameId: "map", + }; +} + +function quatDot(a: Quat, b: Quat): number { + return Math.abs(a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]); +} + +describe("PoseTimeline", () => { + it("orders out-of-order inserts and replaces duplicate timestamps", () => { + const timeline = new PoseTimeline(); + timeline.insert(pose(5, [5, 0, 0])); + timeline.insert(pose(1, [1, 0, 0])); + timeline.insertMany([pose(3, [3, 0, 0]), pose(1, [9, 0, 0]), pose(0, [0, 0, 0])]); + const path = timeline.path(); + expect(Array.from(path)).toEqual([0, 0, 0, 9, 0, 0, 3, 0, 0, 5, 0, 0]); + expect(Array.from(timeline.times())).toEqual([0, 1, 3, 5]); + }); + + it("returns undefined before the first sample and clamps after the last", () => { + const timeline = new PoseTimeline(); + timeline.insert(pose(2, [2, 0, 0])); + timeline.insert(pose(4, [4, 0, 0])); + expect(timeline.sample(1.9, "interpolate")).toBeUndefined(); + expect(timeline.sample(1.9, "previous")).toBeUndefined(); + expect(timeline.sample(10, "interpolate")?.position).toEqual([4, 0, 0]); + expect(timeline.sample(10, "previous")?.position).toEqual([4, 0, 0]); + expect(timeline.sample(0, "interpolate")).toBeUndefined(); + }); + + it("returns the exact sample on a timestamp hit", () => { + const timeline = new PoseTimeline(); + timeline.insert(pose(0, [0, 0, 0])); + timeline.insert(pose(10, [10, 2, 0])); + expect(timeline.sample(10, "interpolate")?.position).toEqual([10, 2, 0]); + expect(timeline.sample(0, "previous")?.position).toEqual([0, 0, 0]); + }); + + it("lerps position at the midpoint", () => { + const timeline = new PoseTimeline(); + timeline.insert(pose(0, [0, 0, 0])); + timeline.insert(pose(10, [10, 4, -2])); + expect(timeline.sample(5, "interpolate")?.position).toEqual([5, 2, -1]); + }); + + it("uses the previous sample without interpolating", () => { + const timeline = new PoseTimeline(); + timeline.insert(pose(0, [0, 0, 0])); + timeline.insert(pose(10, [10, 0, 0])); + timeline.insert(pose(20, [20, 0, 0])); + expect(timeline.sample(5, "previous")?.position).toEqual([0, 0, 0]); + expect(timeline.sample(10, "previous")?.position).toEqual([10, 0, 0]); + expect(timeline.sample(19.9, "previous")?.position).toEqual([10, 0, 0]); + }); + + it("slerps quaternions on the short path and stays normalized", () => { + const q90: Quat = [0, 0, Math.sin(Math.PI / 4), Math.cos(Math.PI / 4)]; + const q90Neg: Quat = [0, 0, -q90[2], -q90[3]]; + const direct = new PoseTimeline(); + direct.insert(pose(0, [0, 0, 0])); + direct.insert(pose(1, [0, 0, 0], q90)); + const flipped = new PoseTimeline(); + flipped.insert(pose(0, [0, 0, 0])); + flipped.insert(pose(1, [0, 0, 0], q90Neg)); + const a = direct.sample(0.5, "interpolate"); + const b = flipped.sample(0.5, "interpolate"); + expect(a).toBeDefined(); + expect(b).toBeDefined(); + if (!a || !b) { + return; + } + expect(quatDot(a.orientation, b.orientation)).toBeGreaterThan(0.999); + expect(a.orientation[3]).toBeCloseTo(Math.cos(Math.PI / 8), 5); + expect(a.orientation[2]).toBeCloseTo(Math.sin(Math.PI / 8), 5); + expect(Math.hypot(...a.orientation)).toBeCloseTo(1, 6); + }); + + it("slices the path between two times, including interpolated endpoints", () => { + const timeline = new PoseTimeline(); + timeline.insert(pose(0, [0, 0, 0])); + timeline.insert(pose(10, [10, 0, 0])); + timeline.insert(pose(20, [20, 0, 0])); + expect(Array.from(timeline.pathSlice(5, 15))).toEqual([5, 0, 0, 10, 0, 0, 15, 0, 0]); + expect(timeline.pathSlice(-5, -1).length).toBe(0); + }); +}); diff --git a/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.ts b/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.ts new file mode 100644 index 0000000..e84d849 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.ts @@ -0,0 +1,251 @@ +import type { Quat, Vec3 } from "./extractPose"; + +export type InterpolationMode = "interpolate" | "previous"; + +export type TimedPose = { + tSec: number; + position: Vec3; + orientation: Quat; + frameId: string | undefined; +}; + +export class PoseTimeline { + #samples: TimedPose[] = []; + + size(): number { + return this.#samples.length; + } + + clear(): void { + this.#samples = []; + } + + insert(sample: TimedPose): void { + this.insertMany([sample]); + } + + insertMany(incoming: readonly TimedPose[]): void { + if (incoming.length === 0) { + return; + } + const compact = compactSorted(incoming); + if (this.#samples.length === 0) { + this.#samples = compact; + return; + } + this.#samples = mergeSamples(this.#samples, compact); + } + + sample(tSec: number, mode: InterpolationMode): TimedPose | undefined { + const count = this.#samples.length; + if (count === 0) { + return undefined; + } + const first = this.#samples[0]; + const last = this.#samples[count - 1]; + if (!first || !last) { + return undefined; + } + if (tSec < first.tSec) { + return undefined; + } + if (tSec >= last.tSec) { + return last; + } + const index = lowerBound(this.#samples, tSec); + const at = this.#samples[index]; + if (!at) { + return last; + } + if (at.tSec === tSec || mode === "previous") { + if (at.tSec === tSec) { + return at; + } + return this.#samples[index - 1]; + } + const previous = this.#samples[index - 1]; + if (!previous) { + return undefined; + } + const span = at.tSec - previous.tSec; + const alpha = span === 0 ? 0 : (tSec - previous.tSec) / span; + return { + tSec, + position: lerpVec3(previous.position, at.position, alpha), + orientation: slerpQuat(previous.orientation, at.orientation, alpha), + frameId: previous.frameId, + }; + } + + path(): Float32Array { + const out = new Float32Array(this.#samples.length * 3); + for (let index = 0; index < this.#samples.length; index += 1) { + const sample = this.#samples[index]; + if (!sample) { + continue; + } + out[index * 3] = sample.position[0]; + out[index * 3 + 1] = sample.position[1]; + out[index * 3 + 2] = sample.position[2]; + } + return out; + } + + times(): Float64Array { + const out = new Float64Array(this.#samples.length); + for (let index = 0; index < this.#samples.length; index += 1) { + const sample = this.#samples[index]; + if (sample) { + out[index] = sample.tSec; + } + } + return out; + } + + pathSlice(tStart: number, tEnd: number): Float32Array { + const from = Math.min(tStart, tEnd); + const to = Math.max(tStart, tEnd); + const startPose = this.sample(from, "interpolate"); + const endPose = this.sample(to, "interpolate"); + if (!startPose || !endPose) { + return new Float32Array(); + } + const points: number[] = [...startPose.position]; + for (const sample of this.#samples) { + if (sample.tSec > from && sample.tSec < to) { + points.push(sample.position[0], sample.position[1], sample.position[2]); + } + } + const end = endPose.position; + const tail = points.length; + const sameEnd = + tail >= 3 && + points[tail - 3] === end[0] && + points[tail - 2] === end[1] && + points[tail - 1] === end[2]; + if (!sameEnd) { + points.push(end[0], end[1], end[2]); + } + return Float32Array.from(points); + } +} + +function compactSorted(incoming: readonly TimedPose[]): TimedPose[] { + const sorted = [...incoming].sort((a, b) => a.tSec - b.tSec); + const compact: TimedPose[] = []; + for (const sample of sorted) { + const last = compact[compact.length - 1]; + if (last?.tSec === sample.tSec) { + compact[compact.length - 1] = sample; + } else { + compact.push(sample); + } + } + return compact; +} + +function mergeSamples(current: readonly TimedPose[], incoming: readonly TimedPose[]): TimedPose[] { + const merged: TimedPose[] = []; + let left = 0; + let right = 0; + while (left < current.length && right < incoming.length) { + const a = current[left]; + const b = incoming[right]; + if (!a || !b) { + break; + } + if (a.tSec < b.tSec) { + merged.push(a); + left += 1; + } else if (b.tSec < a.tSec) { + merged.push(b); + right += 1; + } else { + merged.push(b); + left += 1; + right += 1; + } + } + while (left < current.length) { + const sample = current[left]; + if (sample) { + merged.push(sample); + } + left += 1; + } + while (right < incoming.length) { + const sample = incoming[right]; + if (sample) { + merged.push(sample); + } + right += 1; + } + return merged; +} + +function lowerBound(samples: readonly TimedPose[], tSec: number): number { + let lo = 0; + let hi = samples.length; + while (lo < hi) { + const mid = (lo + hi) >> 1; + const sample = samples[mid]; + if (sample && sample.tSec < tSec) { + lo = mid + 1; + } else { + hi = mid; + } + } + return lo; +} + +function lerpVec3(a: Vec3, b: Vec3, alpha: number): Vec3 { + return [ + a[0] + (b[0] - a[0]) * alpha, + a[1] + (b[1] - a[1]) * alpha, + a[2] + (b[2] - a[2]) * alpha, + ]; +} + +function slerpQuat(a: Quat, b: Quat, alpha: number): Quat { + let bx = b[0]; + let by = b[1]; + let bz = b[2]; + let bw = b[3]; + let dot = a[0] * bx + a[1] * by + a[2] * bz + a[3] * bw; + if (dot < 0) { + dot = -dot; + bx = -bx; + by = -by; + bz = -bz; + bw = -bw; + } + dot = Math.min(1, dot); + if (dot > 0.9995) { + return normalizeQuat([ + a[0] + (bx - a[0]) * alpha, + a[1] + (by - a[1]) * alpha, + a[2] + (bz - a[2]) * alpha, + a[3] + (bw - a[3]) * alpha, + ]); + } + const theta0 = Math.acos(dot); + const theta = theta0 * alpha; + const sinTheta = Math.sin(theta); + const sinTheta0 = Math.sin(theta0); + const scale0 = Math.cos(theta) - (dot * sinTheta) / sinTheta0; + const scale1 = sinTheta / sinTheta0; + return normalizeQuat([ + scale0 * a[0] + scale1 * bx, + scale0 * a[1] + scale1 * by, + scale0 * a[2] + scale1 * bz, + scale0 * a[3] + scale1 * bw, + ]); +} + +function normalizeQuat(q: readonly [number, number, number, number]): Quat { + const length = Math.hypot(q[0], q[1], q[2], q[3]); + if (length < 1e-12) { + return [0, 0, 0, 1]; + } + return [q[0] / length, q[1] / length, q[2] / length, q[3] / length]; +} diff --git a/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts b/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts new file mode 100644 index 0000000..d2b00e6 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts @@ -0,0 +1,136 @@ +import { describe, expect, it } from "vitest"; + +import { extractPose, isSupportedSchema, schemaUsesChildFrame } from "./extractPose"; + +const position = { x: 1, y: 2, z: 3 }; +const orientation = { x: 0, y: 0, z: 0, w: 1 }; +const pose = { position, orientation }; + +describe("extractPose", () => { + it("reads foxglove.PoseInFrame", () => { + const sample = extractPose("foxglove.PoseInFrame", { + frame_id: "map", + pose, + }); + expect(sample).toEqual({ + position: [1, 2, 3], + orientation: [0, 0, 0, 1], + frameId: "map", + }); + }); + + it("uses the first pose of foxglove.PosesInFrame", () => { + const sample = extractPose("foxglove.PosesInFrame", { + frame_id: "map", + poses: [pose, { position: { x: 9, y: 9, z: 9 }, orientation }], + }); + expect(sample?.position).toEqual([1, 2, 3]); + }); + + it("filters foxglove frame transforms by child frame", () => { + const transforms = { + transforms: [ + { + parent_frame_id: "map", + child_frame_id: "base", + translation: { x: 4, y: 0, z: 0 }, + rotation: orientation, + }, + { + parent_frame_id: "map", + child_frame_id: "truck", + translation: position, + rotation: orientation, + }, + ], + }; + expect(extractPose("foxglove.FrameTransforms", transforms, { childFrameId: "truck" })?.position).toEqual([ + 1, 2, 3, + ]); + expect(extractPose("foxglove.FrameTransforms", transforms, { childFrameId: "missing" })).toBeUndefined(); + expect(extractPose("foxglove.FrameTransforms", transforms)?.position).toEqual([4, 0, 0]); + expect( + extractPose("foxglove.FrameTransform", transforms.transforms[0], { childFrameId: "truck" }), + ).toBeUndefined(); + expect(extractPose("foxglove.FrameTransform", transforms.transforms[1])?.frameId).toBe("map"); + }); + + it("reads geometry_msgs PoseStamped, including the /msg form", () => { + const message = { header: { frame_id: "odom" }, pose }; + expect(extractPose("geometry_msgs/PoseStamped", message)?.frameId).toBe("odom"); + expect(extractPose("geometry_msgs/msg/PoseStamped", message)?.position).toEqual([1, 2, 3]); + }); + + it("reads nav_msgs Odometry pose.pose", () => { + const message = { + header: { frame_id: "map" }, + child_frame_id: "base", + pose: { pose }, + }; + expect(extractPose("nav_msgs/Odometry", message)?.position).toEqual([1, 2, 3]); + expect(extractPose("nav_msgs/msg/Odometry", message)?.frameId).toBe("map"); + }); + + it("filters tf2 TFMessage transforms by child_frame_id", () => { + const message = { + transforms: [ + { + header: { frame_id: "map" }, + child_frame_id: "sensor", + transform: { translation: { x: 8, y: 0, z: 0 }, rotation: orientation }, + }, + { + header: { frame_id: "map" }, + child_frame_id: "truck", + transform: { translation: position, rotation: orientation }, + }, + ], + }; + expect(extractPose("tf2_msgs/TFMessage", message, { childFrameId: "truck" })?.position).toEqual([ + 1, 2, 3, + ]); + expect(extractPose("tf2_msgs/msg/TFMessage", message, { childFrameId: "sensor" })?.position).toEqual([ + 8, 0, 0, + ]); + }); + + it("reads geometry_msgs TransformStamped", () => { + const message = { + header: { frame_id: "map" }, + child_frame_id: "truck", + transform: { translation: position, rotation: orientation }, + }; + expect(extractPose("geometry_msgs/TransformStamped", message)?.position).toEqual([1, 2, 3]); + expect( + extractPose("geometry_msgs/msg/TransformStamped", message, { childFrameId: "other" }), + ).toBeUndefined(); + }); + + it("normalizes quaternions and rejects invalid messages", () => { + const sample = extractPose("foxglove.PoseInFrame", { + frame_id: "map", + pose: { position, orientation: { x: 0, y: 0, z: 0, w: 2 } }, + }); + expect(sample?.orientation).toEqual([0, 0, 0, 1]); + expect(extractPose("foxglove.PoseInFrame", null)).toBeUndefined(); + expect(extractPose("foxglove.PoseInFrame", { pose: { position } })).toBeUndefined(); + expect(extractPose("foxglove.PosesInFrame", { poses: [] })).toBeUndefined(); + expect(extractPose("foxglove.FrameTransforms", { transforms: "nope" })).toBeUndefined(); + expect(extractPose("sensor_msgs/Imu", pose)).toBeUndefined(); + expect( + extractPose("foxglove.PoseInFrame", { + pose: { position, orientation: { x: 0, y: 0, z: 0, w: 0 } }, + }), + ).toBeUndefined(); + }); +}); + +describe("schema helpers", () => { + it("recognizes supported schemas and which ones need a child frame", () => { + expect(isSupportedSchema("foxglove.PoseInFrame")).toBe(true); + expect(isSupportedSchema("std_msgs/String")).toBe(false); + expect(schemaUsesChildFrame("tf2_msgs/msg/TFMessage")).toBe(true); + expect(schemaUsesChildFrame("nav_msgs/Odometry")).toBe(false); + expect(schemaUsesChildFrame("geometry_msgs/msg/TransformStamped")).toBe(true); + }); +}); diff --git a/extensions/model_ghost_preview/extension/src/poses/extractPose.ts b/extensions/model_ghost_preview/extension/src/poses/extractPose.ts new file mode 100644 index 0000000..b778161 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/poses/extractPose.ts @@ -0,0 +1,259 @@ +export type Vec3 = readonly [number, number, number]; +export type Quat = readonly [number, number, number, number]; + +export type PoseSample = { + position: Vec3; + orientation: Quat; + frameId: string | undefined; +}; + +export type ExtractPoseOptions = { + childFrameId?: string; +}; + +const POSE_IN_FRAME = "foxglove.PoseInFrame"; +const POSES_IN_FRAME = "foxglove.PosesInFrame"; +const FRAME_TRANSFORM = "foxglove.FrameTransform"; +const FRAME_TRANSFORMS = "foxglove.FrameTransforms"; + +const POSE_STAMPED = new Set([ + "geometry_msgs/PoseStamped", + "geometry_msgs/msg/PoseStamped", +]); + +const ODOMETRY = new Set(["nav_msgs/Odometry", "nav_msgs/msg/Odometry"]); + +const TF_MESSAGE = new Set(["tf2_msgs/TFMessage", "tf2_msgs/msg/TFMessage"]); + +const TRANSFORM_STAMPED = new Set([ + "geometry_msgs/TransformStamped", + "geometry_msgs/msg/TransformStamped", +]); + +const CHILD_FRAME_SCHEMAS = new Set([ + FRAME_TRANSFORM, + FRAME_TRANSFORMS, + ...TF_MESSAGE, + ...TRANSFORM_STAMPED, +]); + +export const SUPPORTED_SCHEMAS: readonly string[] = [ + POSE_IN_FRAME, + POSES_IN_FRAME, + FRAME_TRANSFORM, + FRAME_TRANSFORMS, + ...POSE_STAMPED, + ...ODOMETRY, + ...TF_MESSAGE, + ...TRANSFORM_STAMPED, +]; + +export function isSupportedSchema(schemaName: string): boolean { + return SUPPORTED_SCHEMAS.includes(schemaName); +} + +export function schemaUsesChildFrame(schemaName: string): boolean { + return CHILD_FRAME_SCHEMAS.has(schemaName); +} + +export function extractPose( + schemaName: string, + message: unknown, + options?: ExtractPoseOptions, +): PoseSample | undefined { + const record = asRecord(message); + if (!record) { + return undefined; + } + const childFrameId = options?.childFrameId; + switch (schemaName) { + case POSE_IN_FRAME: + return poseSample(parsePose(record["pose"]), readString(record["frame_id"])); + case POSES_IN_FRAME: { + const poses = asArray(record["poses"]); + const first = poses?.[0]; + return poseSample(parsePose(first), readString(record["frame_id"])); + } + case FRAME_TRANSFORM: + return fromFoxgloveTransform(record, childFrameId); + case FRAME_TRANSFORMS: + return firstMatching(asArray(record["transforms"]), childFrameId, fromFoxgloveTransform); + default: + break; + } + if (POSE_STAMPED.has(schemaName)) { + return poseSample(parsePose(record["pose"]), headerFrameId(record["header"])); + } + if (ODOMETRY.has(schemaName)) { + const poseWithCov = asRecord(record["pose"]); + return poseSample(parsePose(poseWithCov?.["pose"]), headerFrameId(record["header"])); + } + if (TF_MESSAGE.has(schemaName)) { + return firstMatching(asArray(record["transforms"]), childFrameId, fromRosTransform); + } + if (TRANSFORM_STAMPED.has(schemaName)) { + return fromRosTransform(record, childFrameId); + } + return undefined; +} + +function poseSample( + pose: { position: Vec3; orientation: Quat } | undefined, + frameId: string | undefined, +): PoseSample | undefined { + if (!pose) { + return undefined; + } + return { position: pose.position, orientation: pose.orientation, frameId }; +} + +function fromFoxgloveTransform( + message: unknown, + childFrameId: string | undefined, +): PoseSample | undefined { + const record = asRecord(message); + if (!record) { + return undefined; + } + const child = readString(record["child_frame_id"]); + if (!childFrameMatches(child, childFrameId)) { + return undefined; + } + const position = parseVec3(record["translation"]); + const orientation = parseQuat(record["rotation"]); + if (!position || !orientation) { + return undefined; + } + return { position, orientation, frameId: readString(record["parent_frame_id"]) }; +} + +function fromRosTransform(message: unknown, childFrameId: string | undefined): PoseSample | undefined { + const record = asRecord(message); + if (!record) { + return undefined; + } + const child = readString(record["child_frame_id"]); + if (!childFrameMatches(child, childFrameId)) { + return undefined; + } + const transform = asRecord(record["transform"]); + if (!transform) { + return undefined; + } + const position = parseVec3(transform["translation"]); + const orientation = parseQuat(transform["rotation"]); + if (!position || !orientation) { + return undefined; + } + return { position, orientation, frameId: headerFrameId(record["header"]) }; +} + +function firstMatching( + items: readonly unknown[] | undefined, + childFrameId: string | undefined, + read: (message: unknown, childFrameId: string | undefined) => PoseSample | undefined, +): PoseSample | undefined { + if (!items) { + return undefined; + } + for (const item of items) { + const pose = read(item, childFrameId); + if (pose) { + return pose; + } + } + return undefined; +} + +function childFrameMatches(actual: string | undefined, wanted: string | undefined): boolean { + if (wanted == undefined || wanted.length === 0) { + return true; + } + return actual === wanted; +} + +function headerFrameId(header: unknown): string | undefined { + const record = asRecord(header); + if (!record) { + return undefined; + } + return readString(record["frame_id"]); +} + +function parsePose(value: unknown): { position: Vec3; orientation: Quat } | undefined { + const record = asRecord(value); + if (!record) { + return undefined; + } + const position = parseVec3(record["position"]); + const orientation = parseQuat(record["orientation"]); + if (!position || !orientation) { + return undefined; + } + return { position, orientation }; +} + +function parseVec3(value: unknown): Vec3 | undefined { + const record = asRecord(value); + if (!record) { + return undefined; + } + const x = finiteNumber(record["x"]); + const y = finiteNumber(record["y"]); + const z = finiteNumber(record["z"]); + if (x == undefined || y == undefined || z == undefined) { + return undefined; + } + return [x, y, z]; +} + +function parseQuat(value: unknown): Quat | undefined { + const record = asRecord(value); + if (!record) { + return undefined; + } + const x = finiteNumber(record["x"]); + const y = finiteNumber(record["y"]); + const z = finiteNumber(record["z"]); + const w = finiteNumber(record["w"]); + if (x == undefined || y == undefined || z == undefined || w == undefined) { + return undefined; + } + const length = Math.hypot(x, y, z, w); + if (length < 1e-8) { + return undefined; + } + return [x / length, y / length, z / length, w / length]; +} + +function finiteNumber(value: unknown): number | undefined { + if (typeof value !== "number" || !Number.isFinite(value)) { + return undefined; + } + return value; +} + +function readString(value: unknown): string | undefined { + if (typeof value !== "string") { + return undefined; + } + return value; +} + +function asRecord(value: unknown): Record | undefined { + if (typeof value !== "object" || value == null) { + return undefined; + } + return value as Record; +} + +function asArray(value: unknown): readonly unknown[] | undefined { + if (!Array.isArray(value)) { + return undefined; + } + const items: unknown[] = []; + for (const item of value as readonly unknown[]) { + items.push(item); + } + return items; +} diff --git a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts new file mode 100644 index 0000000..cbf8c56 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts @@ -0,0 +1,696 @@ +import { + ACESFilmicToneMapping, + BufferGeometry, + Color, + DirectionalLight, + GridHelper, + HemisphereLight, + Material, + Mesh, + MeshBasicMaterial, + MeshStandardMaterial, + Object3D, + PerspectiveCamera, + PlaneGeometry, + Scene, + SRGBColorSpace, + Vector2, + Vector3, + WebGLRenderer, +} from "three"; +import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"; +import { Line2 } from "three/examples/jsm/lines/Line2.js"; +import { LineGeometry } from "three/examples/jsm/lines/LineGeometry.js"; +import { LineMaterial } from "three/examples/jsm/lines/LineMaterial.js"; + +import type { Quat, Vec3 } from "../poses/extractPose"; +import type { FollowMode } from "../settings"; +import { buildGhostObject, type GhostAppearance, type GhostObject } from "./ghostMaterial"; + +export type ScenePose = { + position: Vec3; + orientation: Quat; +}; + +export type GhostSceneHandlers = { + onPreviewTime: (timeSec: number | undefined) => void; + onSeek: (timeSec: number) => void; +}; + +type FatLine = { + line: Line2; + geometry: LineGeometry; + material: LineMaterial; +}; + +export class GhostScene { + #container: HTMLElement; + #handlers: GhostSceneHandlers; + #renderer: WebGLRenderer; + #scene: Scene; + #camera: PerspectiveCamera; + #controls: OrbitControls; + #resizeObserver: ResizeObserver; + #hemi: HemisphereLight; + #sun: DirectionalLight; + #ground: Mesh; + #groundMaterial: MeshStandardMaterial; + #grid: GridHelper | undefined; + #currentRoot = new Object3D(); + #ghostRoot = new Object3D(); + #model: Object3D | undefined; + #ghost: GhostObject | undefined; + #appearance: GhostAppearance = { style: "wireframe", color: "#4fc3f7", opacity: 0.6 }; + #pathLine: FatLine | undefined; + #highlightLine: FatLine | undefined; + #pathPoints: Vector3[] = []; + #pathTimes: number[] = []; + #pathKey = ""; + #highlightKey = ""; + #scheme: "dark" | "light" = "dark"; + #gridVisibility: "shown" | "hidden" = "shown"; + #follow: FollowMode = "off"; + #followOffset = new Vector3(-18, -24, 14); + #currentPose: ScenePose | undefined; + #ghostPose: ScenePose | undefined; + #ghostVisible = false; + #width = 1; + #height = 1; + #raf = 0; + #dirty = true; + #interacting = false; + #hoverTime: number | undefined; + #downX = 0; + #downY = 0; + #downButton = -1; + #scratch = new Vector3(); + #scratchB = new Vector3(); + #forward = new Vector3(); + + constructor(container: HTMLElement, handlers: GhostSceneHandlers) { + this.#container = container; + this.#handlers = handlers; + this.#renderer = new WebGLRenderer({ antialias: true, alpha: false }); + this.#renderer.outputColorSpace = SRGBColorSpace; + this.#renderer.toneMapping = ACESFilmicToneMapping; + this.#renderer.toneMappingExposure = 1.08; + this.#renderer.domElement.style.width = "100%"; + this.#renderer.domElement.style.height = "100%"; + this.#renderer.domElement.style.display = "block"; + this.#renderer.domElement.style.touchAction = "none"; + container.appendChild(this.#renderer.domElement); + + this.#scene = new Scene(); + this.#camera = new PerspectiveCamera(42, 1, 0.2, 4000); + this.#camera.up.set(0, 0, 1); + this.#camera.position.set(-22, -28, 16); + + this.#controls = new OrbitControls(this.#camera, this.#renderer.domElement); + this.#controls.enableDamping = true; + this.#controls.dampingFactor = 0.12; + this.#controls.target.set(12, 0, 1); + this.#controls.update(); + this.#followOffset.copy(this.#camera.position).sub(this.#controls.target); + this.#controls.addEventListener("start", this.#onControlStart); + this.#controls.addEventListener("end", this.#onControlEnd); + this.#controls.addEventListener("change", this.#onControlChange); + + this.#hemi = new HemisphereLight(0xf4f7fb, 0x8a8178, 0.9); + this.#sun = new DirectionalLight(0xfff4e0, 1.25); + this.#sun.position.set(36, -48, 72); + this.#scene.add(this.#hemi); + this.#scene.add(this.#sun); + this.#scene.add(this.#sun.target); + + this.#groundMaterial = new MeshStandardMaterial({ color: 0xc5ced6, roughness: 1, metalness: 0 }); + this.#ground = new Mesh(new PlaneGeometry(400, 400), this.#groundMaterial); + this.#ground.receiveShadow = true; + this.#scene.add(this.#ground); + this.#scene.add(this.#currentRoot); + this.#scene.add(this.#ghostRoot); + this.#ghostRoot.visible = false; + + this.#applyScheme(); + this.#resizeObserver = new ResizeObserver(() => { + this.#resize(); + }); + this.#resizeObserver.observe(container); + this.#resize(); + + const canvas = this.#renderer.domElement; + canvas.addEventListener("pointermove", this.#onPointerMove); + canvas.addEventListener("pointerdown", this.#onPointerDown); + canvas.addEventListener("pointerup", this.#onPointerUp); + canvas.addEventListener("pointerleave", this.#onPointerLeave); + } + + dispose(): void { + cancelAnimationFrame(this.#raf); + this.#raf = 0; + this.#resizeObserver.disconnect(); + const canvas = this.#renderer.domElement; + canvas.removeEventListener("pointermove", this.#onPointerMove); + canvas.removeEventListener("pointerdown", this.#onPointerDown); + canvas.removeEventListener("pointerup", this.#onPointerUp); + canvas.removeEventListener("pointerleave", this.#onPointerLeave); + this.#controls.removeEventListener("start", this.#onControlStart); + this.#controls.removeEventListener("end", this.#onControlEnd); + this.#controls.removeEventListener("change", this.#onControlChange); + this.#controls.dispose(); + this.#clearGhost(); + if (this.#model) { + disposeObjectTree(this.#model); + } + this.#removeFatLine(this.#pathLine); + this.#removeFatLine(this.#highlightLine); + this.#dropGrid(); + this.#ground.geometry.dispose(); + this.#groundMaterial.dispose(); + this.#renderer.dispose(); + canvas.remove(); + } + + setColorScheme(scheme: "dark" | "light"): void { + if (this.#scheme === scheme) { + return; + } + this.#scheme = scheme; + this.#applyScheme(); + this.#requestRender(); + } + + setGridVisibility(visibility: "shown" | "hidden"): void { + if (this.#gridVisibility === visibility) { + return; + } + this.#gridVisibility = visibility; + this.#rebuildGrid(); + this.#requestRender(); + } + + setFollowMode(mode: FollowMode): void { + this.#follow = mode; + this.#applyFollow(); + this.#requestRender(); + } + + setModel(model: Object3D): void { + this.#clearGhost(); + if (this.#model) { + this.#currentRoot.remove(this.#model); + disposeObjectTree(this.#model); + } + this.#model = model; + this.#currentRoot.add(model); + this.#rebuildGhost(); + } + + setGhostAppearance(appearance: GhostAppearance): void { + if ( + this.#appearance.style === appearance.style && + this.#appearance.color === appearance.color && + this.#appearance.opacity === appearance.opacity + ) { + return; + } + this.#appearance = appearance; + this.#rebuildGhost(); + } + + setCurrentPose(pose: ScenePose | undefined): void { + this.#currentPose = pose; + this.#currentRoot.visible = pose != undefined; + if (pose) { + applyPose(this.#currentRoot, pose); + } + this.#applyFollow(); + this.#requestRender(); + } + + setGhostPose(pose: ScenePose | undefined): void { + this.#ghostPose = pose; + this.#ghostVisible = pose != undefined; + this.#ghostRoot.visible = this.#ghostVisible; + if (pose) { + applyPose(this.#ghostRoot, pose); + } + this.#applyFollow(); + this.#requestRender(); + } + + setPath(path: { + points: Float32Array; + times: Float64Array; + color: string; + visibility: "shown" | "hidden"; + }): void { + const count = Math.min(path.times.length, Math.floor(path.points.length / 3)); + const first = path.points[0] ?? 0; + const last = path.points[Math.max(0, path.points.length - 1)] ?? 0; + const key = `${path.visibility}:${path.color}:${count}:${first}:${last}`; + if (key === this.#pathKey) { + return; + } + this.#pathKey = key; + this.#pathPoints = []; + this.#pathTimes = []; + if (path.visibility === "shown") { + for (let index = 0; index < count; index += 1) { + const time = path.times[index]; + if (time == undefined) { + continue; + } + this.#pathPoints.push( + new Vector3( + path.points[index * 3] ?? 0, + path.points[index * 3 + 1] ?? 0, + path.points[index * 3 + 2] ?? 0, + ), + ); + this.#pathTimes.push(time); + } + } + this.#pathLine = this.#replaceFatLine(this.#pathLine, this.#pathPoints, path.color, 8, 0.15); + this.#requestRender(); + } + + setHighlight(highlight: { points: Float32Array; color: string } | undefined): void { + if (!highlight || highlight.points.length < 6) { + if (this.#highlightKey === "") { + return; + } + this.#highlightKey = ""; + this.#highlightLine = this.#replaceFatLine(this.#highlightLine, [], highlight?.color ?? "#ffffff", 8, 0.2); + this.#requestRender(); + return; + } + const first = highlight.points[0] ?? 0; + const last = highlight.points[highlight.points.length - 1] ?? 0; + const key = `${highlight.color}:${highlight.points.length}:${first}:${last}`; + if (key === this.#highlightKey) { + return; + } + this.#highlightKey = key; + const points: Vector3[] = []; + for (let index = 0; index < highlight.points.length; index += 3) { + points.push( + new Vector3( + highlight.points[index] ?? 0, + highlight.points[index + 1] ?? 0, + highlight.points[index + 2] ?? 0, + ), + ); + } + const color = lighten(highlight.color); + this.#highlightLine = this.#replaceFatLine(this.#highlightLine, points, color, 8, 0.22); + this.#requestRender(); + } + + framePath(): void { + const start = this.#pathPoints[0]; + const near = + this.#pathPoints[Math.min(this.#pathPoints.length - 1, Math.floor(this.#pathPoints.length * 0.2))] ?? + start; + const focusPoint = + this.#pathPoints[Math.min(this.#pathPoints.length - 1, Math.floor(this.#pathPoints.length * 0.4))] ?? + near; + const end = this.#pathPoints[this.#pathPoints.length - 1]; + if (!start || !near || !focusPoint || !end) { + return; + } + const direction = new Vector3().subVectors(focusPoint, start); + if (direction.lengthSq() < 1e-6) { + direction.set(1, 0, 0); + } + direction.normalize(); + const side = new Vector3().crossVectors(direction, new Vector3(0, 0, 1)); + if (side.lengthSq() < 1e-6) { + side.set(0, 1, 0); + } + side.normalize(); + const span = Math.max(start.distanceTo(end), 20); + const focus = near.clone().lerp(focusPoint, 0.4); + focus.z += 1.4; + const back = Math.max(12, Math.min(span * 0.09, 16)); + const lateral = Math.max(14, Math.min(span * 0.13, 18)); + const height = Math.max(4.2, Math.min(span * 0.04, 6)); + this.#camera.position + .copy(near) + .addScaledVector(direction, -back) + .addScaledVector(side, -lateral) + .setZ(near.z + height); + this.#controls.target.copy(focus); + this.#controls.update(); + this.#followOffset.copy(this.#camera.position).sub(this.#controls.target); + this.#requestRender(); + } + + projectToOverlay(position: Vec3, zOffset: number): { x: number; y: number } | undefined { + const rect = this.#renderer.domElement.getBoundingClientRect(); + if (rect.width <= 0 || rect.height <= 0) { + return undefined; + } + this.#scratch.set(position[0], position[1], position[2] + zOffset); + this.#camera.getWorldDirection(this.#forward); + this.#scratchB.copy(this.#scratch).sub(this.#camera.position); + if (this.#scratchB.dot(this.#forward) <= 0) { + return undefined; + } + this.#scratch.project(this.#camera); + return { + x: (this.#scratch.x * 0.5 + 0.5) * rect.width, + y: (-this.#scratch.y * 0.5 + 0.5) * rect.height, + }; + } + + #applyScheme(): void { + const dark = this.#scheme === "dark"; + this.#scene.background = new Color(dark ? 0x1c1f24 : 0xd5dbe1); + this.#groundMaterial.color.set(dark ? 0x2a3036 : 0xc5ced6); + this.#hemi.color.set(dark ? 0x8aa0b8 : 0xf4f7fb); + this.#hemi.groundColor.set(dark ? 0x3a332c : 0x8a8178); + this.#hemi.intensity = dark ? 0.65 : 0.92; + this.#rebuildGrid(); + } + + #rebuildGrid(): void { + this.#dropGrid(); + if (this.#gridVisibility !== "shown") { + return; + } + const dark = this.#scheme === "dark"; + const grid = new GridHelper(180, 36, dark ? 0x3d4852 : 0xb7c2cc, dark ? 0x2a3138 : 0xc9d1d8); + grid.rotation.x = Math.PI / 2; + grid.position.z = 0.02; + this.#scene.add(grid); + this.#grid = grid; + } + + #dropGrid(): void { + if (!this.#grid) { + return; + } + const grid = this.#grid; + this.#scene.remove(grid); + grid.geometry.dispose(); + disposeMaterial(grid.material); + this.#grid = undefined; + } + + #rebuildGhost(): void { + this.#clearGhost(); + if (!this.#model) { + return; + } + const ghost = buildGhostObject(this.#model, this.#appearance, { + width: this.#width, + height: this.#height, + }); + this.#ghost = ghost; + this.#ghostRoot.add(ghost.object); + this.#ghostRoot.visible = this.#ghostVisible; + this.#requestRender(); + } + + #clearGhost(): void { + if (!this.#ghost) { + return; + } + this.#ghostRoot.remove(this.#ghost.object); + this.#ghost.dispose(); + this.#ghost = undefined; + } + + #applyFollow(): void { + if (this.#interacting || this.#follow === "off") { + return; + } + const pose = this.#follow === "current" ? this.#currentPose : this.#ghostPose; + if (!pose) { + return; + } + this.#controls.target.set(pose.position[0], pose.position[1], pose.position[2] + 1.2); + this.#camera.position.copy(this.#controls.target).add(this.#followOffset); + this.#controls.update(); + } + + #replaceFatLine( + current: FatLine | undefined, + points: readonly Vector3[], + color: string, + width: number, + lift: number, + ): FatLine | undefined { + this.#removeFatLine(current); + if (points.length < 2) { + return undefined; + } + const positions = new Float32Array(points.length * 3); + for (let index = 0; index < points.length; index += 1) { + const point = points[index]; + if (!point) { + continue; + } + positions[index * 3] = point.x; + positions[index * 3 + 1] = point.y; + positions[index * 3 + 2] = point.z + lift; + } + const geometry = new LineGeometry(); + geometry.setPositions(positions); + const material = new LineMaterial({ + color: safeHex(color), + linewidth: width, + transparent: true, + opacity: 1, + depthWrite: false, + depthTest: true, + resolution: new Vector2(Math.max(this.#width, 1), Math.max(this.#height, 1)), + }); + const line = new Line2(geometry, material); + line.frustumCulled = false; + line.renderOrder = 1; + this.#scene.add(line); + return { line, geometry, material }; + } + + #removeFatLine(line: FatLine | undefined): void { + if (!line) { + return; + } + this.#scene.remove(line.line); + line.geometry.dispose(); + line.material.dispose(); + } + + #applyResolution(): void { + const resolution = new Vector2(Math.max(this.#width, 1), Math.max(this.#height, 1)); + this.#pathLine?.material.resolution.copy(resolution); + this.#highlightLine?.material.resolution.copy(resolution); + if (this.#ghost) { + for (const material of this.#ghost.lineMaterials) { + material.resolution.copy(resolution); + } + } + } + + #resize(): void { + const width = this.#container.clientWidth; + const height = this.#container.clientHeight; + this.#width = width; + this.#height = height; + if (width <= 0 || height <= 0) { + return; + } + const ratio = window.devicePixelRatio; + this.#renderer.setPixelRatio(ratio > 0 ? Math.min(ratio, 2) : 1); + this.#renderer.setSize(width, height, false); + this.#camera.aspect = width / height; + this.#camera.updateProjectionMatrix(); + this.#applyResolution(); + this.#requestRender(); + } + + #requestRender(): void { + this.#dirty = true; + if (this.#raf !== 0) { + return; + } + this.#raf = requestAnimationFrame(this.#frame); + } + + #frame = (): void => { + this.#raf = 0; + const moving = this.#controls.update(); + if (this.#dirty || moving) { + this.#renderer.render(this.#scene, this.#camera); + this.#dirty = false; + } + if (moving || this.#interacting) { + this.#requestRender(); + } + }; + + #onControlStart = (): void => { + this.#interacting = true; + this.#requestRender(); + }; + + #onControlEnd = (): void => { + this.#interacting = false; + this.#followOffset.copy(this.#camera.position).sub(this.#controls.target); + this.#requestRender(); + }; + + #onControlChange = (): void => { + this.#requestRender(); + }; + + #onPointerDown = (event: PointerEvent): void => { + this.#downX = event.clientX; + this.#downY = event.clientY; + this.#downButton = event.button; + }; + + #onPointerUp = (event: PointerEvent): void => { + const moved = Math.hypot(event.clientX - this.#downX, event.clientY - this.#downY); + const button = this.#downButton; + this.#downButton = -1; + if (event.button !== 0 || button !== 0 || moved > 5) { + return; + } + const time = this.#pickTime(event.clientX, event.clientY); + if (time != undefined) { + this.#handlers.onSeek(time); + } + }; + + #onPointerMove = (event: PointerEvent): void => { + if (event.buttons !== 0) { + return; + } + this.#emitHover(this.#pickTime(event.clientX, event.clientY)); + }; + + #onPointerLeave = (): void => { + this.#emitHover(undefined); + }; + + #emitHover(time: number | undefined): void { + if (time === this.#hoverTime) { + return; + } + this.#hoverTime = time; + this.#handlers.onPreviewTime(time); + } + + #pickTime(clientX: number, clientY: number): number | undefined { + const rect = this.#renderer.domElement.getBoundingClientRect(); + if (rect.width <= 0 || rect.height <= 0 || this.#pathPoints.length === 0) { + return undefined; + } + const x = clientX - rect.left; + const y = clientY - rect.top; + this.#camera.getWorldDirection(this.#forward); + let best = 20; + let bestTime: number | undefined; + for (let index = 0; index < this.#pathPoints.length; index += 1) { + const point = this.#pathPoints[index]; + const time = this.#pathTimes[index]; + if (!point || time == undefined) { + continue; + } + this.#scratch.copy(point).sub(this.#camera.position); + if (this.#scratch.dot(this.#forward) <= 0) { + continue; + } + this.#scratch.copy(point).project(this.#camera); + const sx = (this.#scratch.x * 0.5 + 0.5) * rect.width; + const sy = (-this.#scratch.y * 0.5 + 0.5) * rect.height; + const distance = Math.hypot(sx - x, sy - y); + if (distance < best) { + best = distance; + bestTime = time; + } + } + return bestTime; + } +} + +function applyPose(object: Object3D, pose: ScenePose): void { + object.position.set(pose.position[0], pose.position[1], pose.position[2]); + object.quaternion.set(pose.orientation[0], pose.orientation[1], pose.orientation[2], pose.orientation[3]); +} + +function disposeObjectTree(root: Object3D): void { + const geometries = new Set(); + const materials = new Set(); + root.traverse((obj) => { + const mesh = concreteMesh(obj); + if (!mesh) { + return; + } + geometries.add(mesh.geometry); + collectMaterials(mesh.material, materials); + }); + for (const geometry of geometries) { + geometry.dispose(); + } + for (const material of materials) { + if ( + (material instanceof MeshStandardMaterial || material instanceof MeshBasicMaterial) && + material.map + ) { + material.map.dispose(); + } + material.dispose(); + } +} + +function concreteMesh(obj: Object3D): Mesh | undefined { + if (!(obj instanceof Mesh)) { + return undefined; + } + return obj as Mesh; +} + +function collectMaterials(material: Material | Material[], into: Set): void { + if (isMaterialList(material)) { + for (const entry of material) { + into.add(entry); + } + return; + } + into.add(material); +} + +function disposeMaterial(material: Material | readonly Material[]): void { + if (isMaterialList(material)) { + for (const entry of material) { + entry.dispose(); + } + return; + } + material.dispose(); +} + +function isMaterialList(value: Material | readonly Material[]): value is readonly Material[] { + return Object.prototype.toString.call(value) === "[object Array]"; +} + +function lighten(color: string): string { + try { + const next = new Color(color); + next.lerp(new Color("#ffffff"), 0.5); + return `#${next.getHexString()}`; + } catch { + return "#9ecbff"; + } +} + +function safeHex(color: string): number { + try { + return new Color(color).getHex(); + } catch { + return 0x2b3cff; + } +} diff --git a/extensions/model_ghost_preview/extension/src/scene/ghostMaterial.ts b/extensions/model_ghost_preview/extension/src/scene/ghostMaterial.ts new file mode 100644 index 0000000..ffee89c --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/scene/ghostMaterial.ts @@ -0,0 +1,154 @@ +import { + BufferGeometry, + Color, + DoubleSide, + EdgesGeometry, + FrontSide, + Material, + Mesh, + MeshBasicMaterial, + MeshStandardMaterial, + Object3D, + Vector2, +} from "three"; +import { LineMaterial } from "three/examples/jsm/lines/LineMaterial.js"; +import { LineSegments2 } from "three/examples/jsm/lines/LineSegments2.js"; +import { LineSegmentsGeometry } from "three/examples/jsm/lines/LineSegmentsGeometry.js"; + +import type { GhostStyle } from "../settings"; + +export type GhostAppearance = { + style: GhostStyle; + color: string; + opacity: number; +}; + +export type GhostObject = { + object: Object3D; + lineMaterials: LineMaterial[]; + dispose: () => void; +}; + +export function buildGhostObject( + source: Object3D, + appearance: GhostAppearance, + resolution: { width: number; height: number }, +): GhostObject { + const clone = source.clone(true); + const materials: Material[] = []; + const geometries: BufferGeometry[] = []; + const lineMaterials: LineMaterial[] = []; + const color = safeColor(appearance.color); + const opacity = clamp(appearance.opacity, 0, 1); + const width = Math.max(resolution.width, 1); + const height = Math.max(resolution.height, 1); + const meshes: Mesh[] = []; + clone.traverse((obj) => { + const mesh = concreteMesh(obj); + if (mesh) { + meshes.push(mesh); + } + }); + + for (const mesh of meshes) { + const position = mesh.geometry.getAttribute("position"); + if (position.count === 0) { + continue; + } + const fill = fillMaterial(appearance.style, color, opacity); + mesh.material = fill; + mesh.renderOrder = 2; + mesh.castShadow = false; + materials.push(fill); + if (appearance.style !== "wireframe") { + continue; + } + const edges = new EdgesGeometry(mesh.geometry, 20); + const edgePosition = edges.getAttribute("position"); + if (edgePosition.count < 2) { + edges.dispose(); + continue; + } + const positions = new Float32Array(edgePosition.array.length); + for (let index = 0; index < edgePosition.array.length; index += 1) { + positions[index] = edgePosition.array[index] ?? 0; + } + edges.dispose(); + const segments = new LineSegmentsGeometry(); + segments.setPositions(positions); + const lineMaterial = new LineMaterial({ + color: color.getHex(), + linewidth: 0.12, + worldUnits: true, + transparent: true, + opacity: Math.min(1, opacity + 0.45), + depthWrite: false, + depthTest: true, + resolution: new Vector2(width, height), + }); + const lines = new LineSegments2(segments, lineMaterial); + lines.renderOrder = 3; + lines.computeLineDistances(); + mesh.add(lines); + geometries.push(segments); + materials.push(lineMaterial); + lineMaterials.push(lineMaterial); + } + + return { + object: clone, + lineMaterials, + dispose: () => { + for (const geometry of geometries) { + geometry.dispose(); + } + for (const material of materials) { + material.dispose(); + } + }, + }; +} + +function fillMaterial(style: GhostStyle, color: Color, opacity: number): Material { + if (style === "solid") { + const transparent = opacity < 0.999; + return new MeshStandardMaterial({ + color, + transparent, + opacity, + depthWrite: !transparent, + depthTest: true, + roughness: 0.45, + metalness: 0.1, + side: FrontSide, + }); + } + const fillOpacity = style === "wireframe" ? Math.min(0.16, opacity * 0.22) : opacity; + return new MeshBasicMaterial({ + color, + transparent: true, + opacity: fillOpacity, + depthWrite: false, + depthTest: true, + side: DoubleSide, + }); +} + +function safeColor(color: string): Color { + try { + return new Color(color); + } catch { + return new Color("#4fc3f7"); + } +} + +function clamp(value: number, min: number, max: number): number { + return Math.min(max, Math.max(min, value)); +} + +function concreteMesh(obj: Object3D): Mesh | undefined { + if (!(obj instanceof Mesh)) { + return undefined; + } + return obj as Mesh; +} diff --git a/extensions/model_ghost_preview/extension/src/scene/placeModel.ts b/extensions/model_ghost_preview/extension/src/scene/placeModel.ts new file mode 100644 index 0000000..0d25da1 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/scene/placeModel.ts @@ -0,0 +1,42 @@ +import type { Object3D } from "three"; +import { Group } from "three"; +import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js"; + +export type ModelPlacement = { + scale: number; + yawDeg: number; + pitchDeg: number; + rollDeg: number; + /** glTF assets are Y-up. "apply" rotates +90° about X before the user offsets. */ + yUpCorrection: "apply" | "skip"; +}; + +export function placeModel(contents: Object3D, placement: ModelPlacement): Group { + const root = new Group(); + const scale = placement.scale > 0 ? placement.scale : 1; + root.scale.setScalar(scale); + root.rotation.set( + (placement.rollDeg * Math.PI) / 180, + (placement.pitchDeg * Math.PI) / 180, + (placement.yawDeg * Math.PI) / 180, + "ZYX", + ); + if (placement.yUpCorrection === "apply") { + const correction = new Group(); + correction.rotation.x = Math.PI / 2; + correction.add(contents); + root.add(correction); + } else { + root.add(contents); + } + return root; +} + +export async function loadGltfScene(url: string): Promise { + if (url.trim().length === 0) { + throw new Error("Model URL is empty"); + } + const loader = new GLTFLoader(); + const gltf = await loader.loadAsync(url); + return gltf.scene; +} diff --git a/extensions/model_ghost_preview/extension/src/scene/truckModel.ts b/extensions/model_ghost_preview/extension/src/scene/truckModel.ts new file mode 100644 index 0000000..00357b0 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/scene/truckModel.ts @@ -0,0 +1,183 @@ +import { + BoxGeometry, + CanvasTexture, + Color, + CylinderGeometry, + Group, + Mesh, + MeshStandardMaterial, + SRGBColorSpace, + type BufferGeometry, + type Material, +} from "three"; + +import type { Vec3 } from "../poses/extractPose"; + +type Part = { + geometry: BufferGeometry; + material: Material; + position: Vec3; + rotation?: Vec3; +}; + +const DEFAULT_BODY = "#e6b422"; + +export function createTruckModel(bodyColor: string): Group { + const color = cssColor(bodyColor, DEFAULT_BODY); + const body = new MeshStandardMaterial({ + color: "#ffffff", + map: paintBody(color), + roughness: 0.55, + metalness: 0.12, + }); + const bed = new MeshStandardMaterial({ color: "#f0c14a", roughness: 0.72, metalness: 0.06 }); + const dark = new MeshStandardMaterial({ color: "#24282c", roughness: 0.55, metalness: 0.35 }); + const tire = new MeshStandardMaterial({ color: "#141414", roughness: 0.92, metalness: 0.02 }); + const hub = new MeshStandardMaterial({ color: "#6a7178", roughness: 0.45, metalness: 0.55 }); + const glass = new MeshStandardMaterial({ + color: "#1b2836", + roughness: 0.12, + metalness: 0.7, + }); + const lamp = new MeshStandardMaterial({ + color: "#ffe7a3", + emissive: "#ffcc66", + emissiveIntensity: 0.7, + roughness: 0.4, + }); + + const root = new Group(); + const wheelGeo = new CylinderGeometry(1.05, 1.05, 0.78, 16); + const hubGeo = new CylinderGeometry(0.42, 0.42, 0.92, 12); + const axle = Math.PI / 2; + + add(root, { geometry: box(6.2, 2.05, 0.48), material: dark, position: [0.15, 0, 1.42] }); + add(root, { geometry: box(5.9, 3.55, 0.22), material: body, position: [-1.05, 0, 1.95] }); + add(root, { geometry: box(5.45, 3.2, 0.08), material: bed, position: [-1.05, 0, 2.1] }); + add(root, { geometry: box(5.9, 0.14, 1.75), material: body, position: [-1.05, 1.84, 2.95] }); + add(root, { geometry: box(5.9, 0.14, 1.75), material: body, position: [-1.05, -1.84, 2.95] }); + add(root, { geometry: box(0.16, 3.55, 1.5), material: body, position: [-3.95, 0, 2.8] }); + add(root, { geometry: box(0.18, 3.55, 2.45), material: body, position: [1.85, 0, 3.3] }); + add(root, { geometry: box(5.4, 0.12, 0.1), material: dark, position: [-1.05, 1.84, 3.88] }); + add(root, { geometry: box(5.4, 0.12, 0.1), material: dark, position: [-1.05, -1.84, 3.88] }); + + add(root, { geometry: box(1.9, 2.45, 1.95), material: body, position: [2.85, 0, 2.78] }); + add(root, { geometry: box(2.1, 2.7, 0.14), material: body, position: [2.75, 0, 3.82] }); + add(root, { geometry: box(1.2, 2.15, 1.15), material: body, position: [4.1, 0, 2.15] }); + add(root, { geometry: box(0.38, 2.55, 0.58), material: dark, position: [4.72, 0, 1.12] }); + add(root, { geometry: box(0.08, 1.45, 0.72), material: dark, position: [4.9, 0, 1.85] }); + add(root, { + geometry: box(0.08, 2.05, 0.78), + material: glass, + position: [3.62, 0, 3.15], + rotation: [0, -0.35, 0], + }); + add(root, { geometry: box(0.72, 0.06, 0.48), material: glass, position: [2.7, 1.26, 3.22] }); + add(root, { geometry: box(0.72, 0.06, 0.48), material: glass, position: [2.7, -1.26, 3.22] }); + add(root, { geometry: box(0.16, 0.4, 0.22), material: lamp, position: [4.88, 0.7, 1.35] }); + add(root, { geometry: box(0.16, 0.4, 0.22), material: lamp, position: [4.88, -0.7, 1.35] }); + + add(root, { + geometry: new CylinderGeometry(0.11, 0.13, 1.55, 10), + material: dark, + position: [1.95, 1.2, 3.55], + rotation: [axle, 0, 0], + }); + add(root, { + geometry: new CylinderGeometry(0.38, 0.38, 1.7, 14), + material: dark, + position: [0.3, 1.4, 1.55], + rotation: [0, 0, axle], + }); + + const wheels: Vec3[] = [ + [2.55, 1.7, 1.05], + [2.55, -1.7, 1.05], + [-1.45, 1.15, 1.05], + [-1.45, -1.15, 1.05], + [-1.45, 2.05, 1.05], + [-1.45, -2.05, 1.05], + ]; + for (const position of wheels) { + add(root, { geometry: wheelGeo, material: tire, position, rotation: [0, 0, axle] }); + add(root, { geometry: hubGeo, material: hub, position, rotation: [0, 0, axle] }); + } + + add(root, { geometry: box(0.07, 0.07, 1.9), material: dark, position: [2.15, -1.4, 1.85] }); + add(root, { geometry: box(0.07, 0.07, 1.9), material: dark, position: [2.58, -1.4, 1.85] }); + for (let step = 0; step < 5; step += 1) { + add(root, { + geometry: box(0.5, 0.05, 0.05), + material: dark, + position: [2.36, -1.4, 1.15 + step * 0.32], + }); + } + add(root, { geometry: box(0.45, 0.7, 0.08), material: dark, position: [3.55, -1.15, 0.7] }); + add(root, { geometry: box(0.45, 0.7, 0.08), material: dark, position: [3.55, -1.15, 1.05] }); + + root.traverse((obj) => { + if (obj instanceof Mesh) { + obj.castShadow = true; + obj.receiveShadow = true; + } + }); + return root; +} + +function add(parent: Group, part: Part): void { + const mesh = new Mesh(part.geometry, part.material); + mesh.position.set(part.position[0], part.position[1], part.position[2]); + if (part.rotation) { + mesh.rotation.set(part.rotation[0], part.rotation[1], part.rotation[2]); + } + parent.add(mesh); +} + +function box(width: number, depth: number, height: number): BufferGeometry { + return new BoxGeometry(width, depth, height); +} + +function cssColor(color: string, fallback: string): string { + try { + return `#${new Color(color).getHexString()}`; + } catch { + return fallback; + } +} + +function paintBody(css: string): CanvasTexture { + const canvas = document.createElement("canvas"); + canvas.width = 256; + canvas.height = 256; + const texture = new CanvasTexture(canvas); + texture.colorSpace = SRGBColorSpace; + texture.anisotropy = 8; + const ctx = canvas.getContext("2d"); + if (!ctx) { + return texture; + } + ctx.fillStyle = css; + ctx.fillRect(0, 0, 256, 256); + ctx.fillStyle = "rgba(255,255,255,0.16)"; + ctx.fillRect(0, 0, 256, 48); + ctx.fillStyle = "rgba(60, 42, 8, 0.28)"; + ctx.fillRect(0, 168, 256, 18); + ctx.strokeStyle = "rgba(90, 60, 10, 0.35)"; + ctx.lineWidth = 3; + ctx.beginPath(); + ctx.moveTo(0, 118); + ctx.lineTo(256, 118); + ctx.stroke(); + ctx.fillStyle = "rgba(120, 80, 20, 0.14)"; + for (let i = 0; i < 8; i += 1) { + ctx.fillRect((i * 53) % 220, 40 + ((i * 37) % 100), 36, 3); + } + const fade = ctx.createLinearGradient(0, 0, 0, 256); + fade.addColorStop(0, "rgba(255,255,255,0.18)"); + fade.addColorStop(0.7, "rgba(255,255,255,0)"); + fade.addColorStop(1, "rgba(90, 60, 0, 0.16)"); + ctx.fillStyle = fade; + ctx.fillRect(0, 0, 256, 256); + texture.needsUpdate = true; + return texture; +} diff --git a/extensions/model_ghost_preview/extension/src/settings.test.ts b/extensions/model_ghost_preview/extension/src/settings.test.ts new file mode 100644 index 0000000..5951627 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/settings.test.ts @@ -0,0 +1,117 @@ +import type { SettingsTreeAction } from "@foxglove/extension"; +import { describe, expect, it } from "vitest"; + +import { buildSettingsTree, DEFAULT_CONFIG, mergeConfig, reduceConfig } from "./settings"; + +describe("mergeConfig", () => { + it("returns defaults for empty or invalid saved state", () => { + expect(mergeConfig(undefined)).toEqual(DEFAULT_CONFIG); + expect(mergeConfig(null)).toEqual(DEFAULT_CONFIG); + expect(mergeConfig("nope")).toEqual(DEFAULT_CONFIG); + }); + + it("overlays partial saved state without dropping sibling defaults", () => { + const merged = mergeConfig({ + model: { scale: 2.5 }, + ghost: { color: "#ffffff" }, + general: { interpolation: "nope" }, + }); + expect(merged.model.scale).toBe(2.5); + expect(merged.model.truckColor).toBe(DEFAULT_CONFIG.model.truckColor); + expect(merged.model.source).toBe("truck"); + expect(merged.ghost.color).toBe("#ffffff"); + expect(merged.ghost.style).toBe("wireframe"); + expect(merged.ghost.visible).toBe(true); + expect(merged.general.interpolation).toBe("interpolate"); + expect(merged.path.visible).toBe(true); + expect(merged.view.follow).toBe("off"); + }); + + it("does not mutate the default config", () => { + const merged = mergeConfig({ ghost: { opacity: 0.2 } }); + merged.ghost.opacity = 1; + merged.model.scale = 4; + expect(DEFAULT_CONFIG.ghost.opacity).toBe(0.6); + expect(DEFAULT_CONFIG.model.scale).toBe(1); + }); +}); + +describe("reduceConfig", () => { + it("updates nested fields immutably", () => { + const next = reduceConfig(DEFAULT_CONFIG, { + action: "update", + payload: { path: ["model", "yaw"], input: "number", value: 15 }, + }); + expect(next.model.yaw).toBe(15); + expect(next.model).not.toBe(DEFAULT_CONFIG.model); + expect(DEFAULT_CONFIG.model.yaw).toBe(0); + expect(next.general).toBe(DEFAULT_CONFIG.general); + }); + + it("toggles node visibility from the visibility path", () => { + const hidden = reduceConfig(DEFAULT_CONFIG, { + action: "update", + payload: { path: ["ghost", "visibility"], input: "boolean", value: false }, + }); + expect(hidden.ghost.visible).toBe(false); + const shown = reduceConfig(hidden, { + action: "update", + payload: { path: ["path", "visible"], input: "boolean", value: false }, + }); + expect(shown.path.visible).toBe(false); + expect(shown.ghost.visible).toBe(false); + }); + + it("ignores unknown actions and paths", () => { + const action: SettingsTreeAction = { + action: "perform-node-action", + payload: { id: "reset", path: ["general"] }, + }; + expect(reduceConfig(DEFAULT_CONFIG, action)).toBe(DEFAULT_CONFIG); + expect( + reduceConfig(DEFAULT_CONFIG, { + action: "update", + payload: { path: ["missing", "field"], input: "string", value: "x" }, + }), + ).toBe(DEFAULT_CONFIG); + }); + + it("clamps opacity and rejects invalid enums", () => { + const next = reduceConfig(DEFAULT_CONFIG, { + action: "update", + payload: { path: ["ghost", "opacity"], input: "number", value: 4 }, + }); + expect(next.ghost.opacity).toBe(1); + expect( + reduceConfig(DEFAULT_CONFIG, { + action: "update", + payload: { path: ["view", "follow"], input: "select", value: "sideways" }, + }).view.follow, + ).toBe("off"); + }); +}); + +describe("buildSettingsTree", () => { + it("lists supported topics and shows the child frame field for TF schemas", () => { + const tree = buildSettingsTree({ + config: mergeConfig({ general: { poseTopic: "/tf" } }), + topics: [ + { name: "/truck/pose", schemaName: "foxglove.PoseInFrame" }, + { name: "/tf", schemaName: "foxglove.FrameTransforms" }, + { name: "/notes", schemaName: "std_msgs/String" }, + ], + actionHandler: () => undefined, + }); + const general = tree.nodes["general"]; + const poseField = general?.fields?.["poseTopic"]; + expect(poseField?.input).toBe("select"); + if (poseField?.input !== "select") { + return; + } + const labels = poseField.options.map((option) => option.label); + expect(labels).toEqual(["/truck/pose", "/tf"]); + expect(general?.fields?.["childFrameId"]).toBeDefined(); + expect(tree.nodes["ghost"]?.visible).toBe(true); + expect(tree.nodes["ghost"]?.label).toBe("Preview"); + }); +}); diff --git a/extensions/model_ghost_preview/extension/src/settings.ts b/extensions/model_ghost_preview/extension/src/settings.ts new file mode 100644 index 0000000..daa39a4 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/settings.ts @@ -0,0 +1,503 @@ +import type { SettingsTree, SettingsTreeAction, SettingsTreeNode } from "@foxglove/extension"; + +import { isSupportedSchema, schemaUsesChildFrame } from "./poses/extractPose"; + +export type InterpolationMode = "interpolate" | "previous"; +export type ModelSource = "truck" | "url"; +export type GhostStyle = "wireframe" | "transparent" | "solid"; +export type FollowMode = "off" | "current" | "ghost"; + +export type GhostPreviewConfig = { + general: { + poseTopic: string; + childFrameId: string; + interpolation: InterpolationMode; + }; + model: { + source: ModelSource; + url: string; + scale: number; + yaw: number; + pitch: number; + roll: number; + truckColor: string; + }; + ghost: { + visible: boolean; + style: GhostStyle; + color: string; + opacity: number; + showTimeLabel: boolean; + }; + path: { + visible: boolean; + color: string; + highlightSegment: boolean; + }; + view: { + follow: FollowMode; + showGrid: boolean; + }; +}; + +export type TopicInfo = { + name: string; + schemaName: string; +}; + +export const DEFAULT_CONFIG: GhostPreviewConfig = { + general: { + poseTopic: "", + childFrameId: "", + interpolation: "interpolate", + }, + model: { + source: "truck", + url: "", + scale: 1, + yaw: 0, + pitch: 0, + roll: 0, + truckColor: "#e6b422", + }, + ghost: { + visible: true, + style: "wireframe", + color: "#4fc3f7", + opacity: 0.6, + showTimeLabel: true, + }, + path: { + visible: true, + color: "#2b3cff", + highlightSegment: true, + }, + view: { + follow: "off", + showGrid: true, + }, +}; + +const INTERPOLATION_MODES = ["interpolate", "previous"] as const; +const MODEL_SOURCES = ["truck", "url"] as const; +const GHOST_STYLES = ["wireframe", "transparent", "solid"] as const; +const FOLLOW_MODES = ["off", "current", "ghost"] as const; + +export function mergeConfig(saved: unknown): GhostPreviewConfig { + const record = asRecord(saved); + return { + general: mergeGeneral(record?.["general"]), + model: mergeModel(record?.["model"]), + ghost: mergeGhost(record?.["ghost"]), + path: mergePath(record?.["path"]), + view: mergeView(record?.["view"]), + }; +} + +export function reduceConfig(config: GhostPreviewConfig, action: SettingsTreeAction): GhostPreviewConfig { + switch (action.action) { + case "update": + return applyUpdate(config, action.payload.path, action.payload.value); + case "perform-node-action": + case "reorder-children": + return config; + default: { + const unexpected: never = action; + return unexpected; + } + } +} + +export function buildSettingsTree(args: { + config: GhostPreviewConfig; + topics: readonly TopicInfo[]; + actionHandler: (action: SettingsTreeAction) => void; +}): SettingsTree { + const { config, topics, actionHandler } = args; + const supported = topics.filter((topic) => isSupportedSchema(topic.schemaName)); + const options = supported.map((topic) => ({ label: topic.name, value: topic.name })); + if (config.general.poseTopic.length > 0 && !options.some((option) => option.value === config.general.poseTopic)) { + options.unshift({ label: config.general.poseTopic, value: config.general.poseTopic }); + } + if (options.length === 0) { + options.push({ label: "No pose topics", value: "" }); + } + const selected = topics.find((topic) => topic.name === config.general.poseTopic); + const showChildFrame = selected ? schemaUsesChildFrame(selected.schemaName) : false; + + const general: SettingsTreeNode = { + label: "General", + icon: "Topic", + order: 0, + fields: { + poseTopic: { + label: "Pose topic", + input: "select", + value: options.some((option) => option.value === config.general.poseTopic) + ? config.general.poseTopic + : "", + options, + help: "Poses are taken in this topic's frame. Receive time is the timeline key.", + }, + interpolation: { + label: "Interpolation", + input: "toggle", + value: config.general.interpolation, + options: [ + { label: "Interpolate", value: "interpolate" }, + { label: "Previous", value: "previous" }, + ], + }, + ...(showChildFrame + ? { + childFrameId: { + label: "Child frame", + input: "string" as const, + value: config.general.childFrameId, + placeholder: "first transform", + help: "Matches child_frame_id. Leave empty to use the first transform.", + }, + } + : {}), + }, + }; + + const model: SettingsTreeNode = { + label: "Model", + icon: "PrecisionManufacturing", + order: 1, + fields: { + source: { + label: "Source", + input: "toggle", + value: config.model.source, + options: [ + { label: "Truck", value: "truck" }, + { label: "URL", value: "url" }, + ], + }, + url: { + label: "Model URL", + input: "string", + value: config.model.url, + placeholder: "https://example.com/robot.glb", + disabled: config.model.source !== "url", + help: "glTF is Y-up. A +90° X rotation is applied before the offsets below; set roll to -90 to cancel it.", + }, + scale: { + label: "Scale", + input: "number", + value: config.model.scale, + min: 0.01, + step: 0.1, + precision: 3, + }, + yaw: numberField("Yaw", config.model.yaw, "deg"), + pitch: numberField("Pitch", config.model.pitch, "deg"), + roll: numberField("Roll", config.model.roll, "deg"), + truckColor: { + label: "Truck color", + input: "rgb", + value: config.model.truckColor, + disabled: config.model.source !== "truck", + }, + }, + }; + + const ghost: SettingsTreeNode = { + label: "Preview", + icon: "Shapes", + order: 2, + visible: config.ghost.visible, + help: "Ghost of the model at the hovered timeline time.", + fields: { + style: { + label: "Style", + input: "select", + value: config.ghost.style, + options: [ + { label: "Wireframe", value: "wireframe" }, + { label: "Transparent", value: "transparent" }, + { label: "Solid", value: "solid" }, + ], + }, + color: { label: "Color", input: "rgb", value: config.ghost.color }, + opacity: { + label: "Opacity", + input: "number", + value: config.ghost.opacity, + min: 0, + max: 1, + step: 0.05, + precision: 2, + }, + showTimeLabel: { + label: "Time label", + input: "boolean", + value: config.ghost.showTimeLabel, + }, + }, + }; + + const path: SettingsTreeNode = { + label: "Path", + icon: "Timeline", + order: 3, + visible: config.path.visible, + fields: { + color: { label: "Color", input: "rgb", value: config.path.color }, + highlightSegment: { + label: "Highlight segment", + input: "boolean", + value: config.path.highlightSegment, + help: "Brighten the path between the current time and the preview time.", + }, + }, + }; + + const view: SettingsTreeNode = { + label: "View", + icon: "World", + order: 4, + fields: { + follow: { + label: "Follow", + input: "select", + value: config.view.follow, + options: [ + { label: "Off", value: "off" }, + { label: "Current", value: "current" }, + { label: "Ghost", value: "ghost" }, + ], + }, + showGrid: { + label: "Grid", + input: "boolean", + value: config.view.showGrid, + }, + }, + }; + + return { + actionHandler, + enableFilter: false, + nodes: { general, model, ghost, path, view }, + }; +} + +function numberField(label: string, value: number, suffix: string): { + label: string; + input: "number"; + value: number; + step: number; + precision: number; + placeholder: string; +} { + return { label, input: "number", value, step: 1, precision: 1, placeholder: suffix }; +} + +function applyUpdate( + config: GhostPreviewConfig, + path: readonly string[], + value: unknown, +): GhostPreviewConfig { + const section = path[0]; + const key = path[1]; + if (!section || !key) { + return config; + } + if ((key === "visible" || key === "visibility") && typeof value === "boolean") { + if (section === "ghost") { + return { ...config, ghost: { ...config.ghost, visible: value } }; + } + if (section === "path") { + return { ...config, path: { ...config.path, visible: value } }; + } + } + if (section === "general") { + if (key === "poseTopic" && typeof value === "string") { + return { ...config, general: { ...config.general, poseTopic: value } }; + } + if (key === "childFrameId" && typeof value === "string") { + return { ...config, general: { ...config.general, childFrameId: value } }; + } + if (key === "interpolation" && isOneOf(value, INTERPOLATION_MODES)) { + return { ...config, general: { ...config.general, interpolation: value } }; + } + } + if (section === "model") { + if (key === "source" && isOneOf(value, MODEL_SOURCES)) { + return { ...config, model: { ...config.model, source: value } }; + } + if (key === "url" && typeof value === "string") { + return { ...config, model: { ...config.model, url: value } }; + } + if (key === "scale" && isFiniteNumber(value)) { + return { ...config, model: { ...config.model, scale: value } }; + } + if (key === "yaw" && isFiniteNumber(value)) { + return { ...config, model: { ...config.model, yaw: value } }; + } + if (key === "pitch" && isFiniteNumber(value)) { + return { ...config, model: { ...config.model, pitch: value } }; + } + if (key === "roll" && isFiniteNumber(value)) { + return { ...config, model: { ...config.model, roll: value } }; + } + if (key === "truckColor" && typeof value === "string") { + return { ...config, model: { ...config.model, truckColor: value } }; + } + } + if (section === "ghost") { + if (key === "style" && isOneOf(value, GHOST_STYLES)) { + return { ...config, ghost: { ...config.ghost, style: value } }; + } + if (key === "color" && typeof value === "string") { + return { ...config, ghost: { ...config.ghost, color: value } }; + } + if (key === "opacity" && isFiniteNumber(value)) { + return { ...config, ghost: { ...config.ghost, opacity: clamp(value, 0, 1) } }; + } + if (key === "showTimeLabel" && typeof value === "boolean") { + return { ...config, ghost: { ...config.ghost, showTimeLabel: value } }; + } + } + if (section === "path") { + if (key === "color" && typeof value === "string") { + return { ...config, path: { ...config.path, color: value } }; + } + if (key === "highlightSegment" && typeof value === "boolean") { + return { ...config, path: { ...config.path, highlightSegment: value } }; + } + } + if (section === "view") { + if (key === "follow" && isOneOf(value, FOLLOW_MODES)) { + return { ...config, view: { ...config.view, follow: value } }; + } + if (key === "showGrid" && typeof value === "boolean") { + return { ...config, view: { ...config.view, showGrid: value } }; + } + } + return config; +} + +function mergeGeneral(value: unknown): GhostPreviewConfig["general"] { + const record = asRecord(value); + const fallback = DEFAULT_CONFIG.general; + if (!record) { + return { ...fallback }; + } + return { + poseTopic: pickString(record["poseTopic"], fallback.poseTopic), + childFrameId: pickString(record["childFrameId"], fallback.childFrameId), + interpolation: pickEnum(record["interpolation"], INTERPOLATION_MODES, fallback.interpolation), + }; +} + +function mergeModel(value: unknown): GhostPreviewConfig["model"] { + const record = asRecord(value); + const fallback = DEFAULT_CONFIG.model; + if (!record) { + return { ...fallback }; + } + return { + source: pickEnum(record["source"], MODEL_SOURCES, fallback.source), + url: pickString(record["url"], fallback.url), + scale: pickNumber(record["scale"], fallback.scale), + yaw: pickNumber(record["yaw"], fallback.yaw), + pitch: pickNumber(record["pitch"], fallback.pitch), + roll: pickNumber(record["roll"], fallback.roll), + truckColor: pickString(record["truckColor"], fallback.truckColor), + }; +} + +function mergeGhost(value: unknown): GhostPreviewConfig["ghost"] { + const record = asRecord(value); + const fallback = DEFAULT_CONFIG.ghost; + if (!record) { + return { ...fallback }; + } + return { + visible: typeof record["visible"] === "boolean" ? record["visible"] : fallback.visible, + style: pickEnum(record["style"], GHOST_STYLES, fallback.style), + color: pickString(record["color"], fallback.color), + opacity: clamp(pickNumber(record["opacity"], fallback.opacity), 0, 1), + showTimeLabel: + typeof record["showTimeLabel"] === "boolean" ? record["showTimeLabel"] : fallback.showTimeLabel, + }; +} + +function mergePath(value: unknown): GhostPreviewConfig["path"] { + const record = asRecord(value); + const fallback = DEFAULT_CONFIG.path; + if (!record) { + return { ...fallback }; + } + return { + visible: typeof record["visible"] === "boolean" ? record["visible"] : fallback.visible, + color: pickString(record["color"], fallback.color), + highlightSegment: + typeof record["highlightSegment"] === "boolean" + ? record["highlightSegment"] + : fallback.highlightSegment, + }; +} + +function mergeView(value: unknown): GhostPreviewConfig["view"] { + const record = asRecord(value); + const fallback = DEFAULT_CONFIG.view; + if (!record) { + return { ...fallback }; + } + return { + follow: pickEnum(record["follow"], FOLLOW_MODES, fallback.follow), + showGrid: typeof record["showGrid"] === "boolean" ? record["showGrid"] : fallback.showGrid, + }; +} + +function pickString(value: unknown, fallback: string): string { + return typeof value === "string" ? value : fallback; +} + +function pickNumber(value: unknown, fallback: number): number { + return isFiniteNumber(value) ? value : fallback; +} + +function pickEnum(value: unknown, allowed: readonly T[], fallback: T): T { + if (typeof value !== "string") { + return fallback; + } + for (const option of allowed) { + if (option === value) { + return option; + } + } + return fallback; +} + +function isOneOf(value: unknown, allowed: readonly T[]): value is T { + if (typeof value !== "string") { + return false; + } + for (const option of allowed) { + if (option === value) { + return true; + } + } + return false; +} + +function isFiniteNumber(value: unknown): value is number { + return typeof value === "number" && Number.isFinite(value); +} + +function clamp(value: number, min: number, max: number): number { + return Math.min(max, Math.max(min, value)); +} + +function asRecord(value: unknown): Record | undefined { + if (typeof value !== "object" || value == null) { + return undefined; + } + return value as Record; +} diff --git a/extensions/model_ghost_preview/extension/src/time.test.ts b/extensions/model_ghost_preview/extension/src/time.test.ts new file mode 100644 index 0000000..7649d4c --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/time.test.ts @@ -0,0 +1,39 @@ +import { describe, expect, it } from "vitest"; + +import { normalizePreviewTime, toSec } from "./time"; + +describe("toSec", () => { + it("combines seconds and nanoseconds", () => { + expect(toSec({ sec: 10, nsec: 500_000_000 })).toBeCloseTo(10.5); + expect(toSec({ sec: 0, nsec: 0 })).toBe(0); + }); +}); + +describe("normalizePreviewTime", () => { + const start = { sec: 1_700_000_000, nsec: 0 }; + + it("returns undefined when preview time is unset", () => { + expect(normalizePreviewTime(undefined, start)).toBeUndefined(); + }); + + it("keeps absolute preview times that already include the start", () => { + expect(normalizePreviewTime(1_700_000_010, start)).toBe(1_700_000_010); + }); + + it("adds start time when the preview value looks relative", () => { + expect(normalizePreviewTime(10, start)).toBe(1_700_000_010); + }); + + it("leaves values within one second before the start unchanged", () => { + expect(normalizePreviewTime(start.sec - 0.5, start)).toBe(start.sec - 0.5); + }); + + it("does not treat the value as relative when the recording starts near zero", () => { + expect(normalizePreviewTime(5, { sec: 0, nsec: 0 })).toBe(5); + expect(normalizePreviewTime(0.25, { sec: 1, nsec: 0 })).toBe(0.25); + }); + + it("returns the raw value when start time is missing", () => { + expect(normalizePreviewTime(12, undefined)).toBe(12); + }); +}); diff --git a/extensions/model_ghost_preview/extension/src/time.ts b/extensions/model_ghost_preview/extension/src/time.ts new file mode 100644 index 0000000..3c413e2 --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/time.ts @@ -0,0 +1,31 @@ +export type TimeLike = { + sec: number; + nsec: number; +}; + +export function toSec(time: TimeLike): number { + return time.sec + time.nsec / 1e9; +} + +/** + * Foxglove's `previewTime` is absolute seconds (`toSec(startTime) + hoverOffset`). + * Some callers pass a small offset instead. When `startTime` is far from the epoch + * and `previewTime` falls more than one second before it, treat the value as relative. + */ +export function normalizePreviewTime( + previewTime: number | undefined, + startTime: TimeLike | undefined, +): number | undefined { + if (previewTime == undefined) { + return undefined; + } + if (startTime == undefined) { + return previewTime; + } + const startSec = toSec(startTime); + const startIsNonTrivial = Math.abs(startSec) > 1; + if (startIsNonTrivial && previewTime < startSec - 1) { + return previewTime + startSec; + } + return previewTime; +} diff --git a/extensions/model_ghost_preview/extension/tsconfig.json b/extensions/model_ghost_preview/extension/tsconfig.json new file mode 100644 index 0000000..f55872b --- /dev/null +++ b/extensions/model_ghost_preview/extension/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "create-foxglove-extension/tsconfig/tsconfig.json", + + "include": ["./src/**/*"], + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "lib": ["es2022", "dom"], + + // These two settings prevent typescript from emitting .d.ts files we don't need in + // the compiled extension. + "composite": false, + "declaration": false, + + // Additional TypeScript error reporting checks are enabled by default to improve code quality. + // Enable/disable these checks as necessary to suit your coding preferences or work with + // existing code + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/extensions/model_ghost_preview/extension/vitest.config.ts b/extensions/model_ghost_preview/extension/vitest.config.ts new file mode 100644 index 0000000..c1433e6 --- /dev/null +++ b/extensions/model_ghost_preview/extension/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + environment: "node", + include: ["src/**/*.test.ts"], + }, +}); diff --git a/extensions/model_ghost_preview/foxglove_layouts/model_ghost_preview.json b/extensions/model_ghost_preview/foxglove_layouts/model_ghost_preview.json new file mode 100644 index 0000000..c8eae2a --- /dev/null +++ b/extensions/model_ghost_preview/foxglove_layouts/model_ghost_preview.json @@ -0,0 +1,97 @@ +{ + "configById": { + "model-ghost-preview.Model Ghost Preview!ghost": { + "general": { + "poseTopic": "/truck/pose", + "childFrameId": "", + "interpolation": "interpolate" + }, + "model": { + "source": "truck", + "url": "", + "scale": 1, + "yaw": 0, + "pitch": 0, + "roll": 0, + "truckColor": "#e6b422" + }, + "ghost": { + "visible": true, + "style": "wireframe", + "color": "#4fc3f7", + "opacity": 0.6, + "showTimeLabel": true + }, + "path": { + "visible": true, + "color": "#2b3cff", + "highlightSegment": true + }, + "view": { + "follow": "off", + "showGrid": true + } + }, + "3D!scene": { + "followTf": "truck", + "followMode": "follow-pose", + "scene": { + "meshUpAxis": "z_up", + "transforms": { + "labelSize": 0 + } + }, + "topics": { + "/scene/road": { + "visible": true + }, + "/tf": { + "visible": true + } + }, + "layers": { + "grid": { + "visible": true, + "layerId": "foxglove.Grid", + "size": 20, + "divisions": 20, + "color": "#248eff" + } + }, + "cameraState": { + "perspective": true, + "distance": 40, + "phi": 55, + "thetaOffset": 30, + "target": [0, 0, 0], + "targetOffset": [0, 0, 0], + "targetOrientation": [0, 0, 0, 1], + "fovy": 45, + "near": 0.5, + "far": 5000 + } + }, + "RawMessages!pose": { + "topicPath": "/truck/pose", + "diffEnabled": false, + "showFullMessageForDiff": false, + "fontSize": 12 + } + }, + "globalVariables": {}, + "userNodes": {}, + "playbackConfig": { + "speed": 1 + }, + "layout": { + "direction": "row", + "first": "model-ghost-preview.Model Ghost Preview!ghost", + "second": { + "direction": "column", + "first": "3D!scene", + "second": "RawMessages!pose", + "splitPercentage": 68 + }, + "splitPercentage": 58 + } +} diff --git a/extensions/model_ghost_preview/media/current-truck.png b/extensions/model_ghost_preview/media/current-truck.png new file mode 100644 index 0000000000000000000000000000000000000000..f0490aab6e2675643341b85d9603f607508fcaca GIT binary patch literal 50673 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

DP5Yv-Fx9}TRXa{9*vxBf5 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 k{{2#5BpxPs5Le9!VjVV`dW(+2wG#j~7W? Date: Fri, 2 Oct 2026 17:06:15 +0000 Subject: [PATCH 3/7] Address review: fix truck wheels, layout panel id, TF child-frame lock, perf and resource leaks Co-authored-by: mat --- .gitignore | 2 +- extensions/model_ghost_preview/PLAN.md | 180 ------------ extensions/model_ghost_preview/README.md | 4 +- .../demo/generate_demo_mcap.py | 13 +- .../model_ghost_preview/demo/requirements.txt | 2 +- .../model_ghost_preview/extension/dev/main.ts | 5 +- .../extension/src/GhostPreviewPanel.tsx | 156 ++++++----- .../extension/src/poses/PoseTimeline.test.ts | 24 ++ .../extension/src/poses/PoseTimeline.ts | 71 ++++- .../extension/src/poses/extractPose.test.ts | 48 +++- .../extension/src/poses/extractPose.ts | 70 ++++- .../extension/src/scene/GhostScene.ts | 261 +++++++++++++++--- .../extension/src/scene/ghostMaterial.ts | 3 +- .../extension/src/scene/truckModel.test.ts | 44 +++ .../extension/src/scene/truckModel.ts | 189 +++++-------- .../extension/src/settings.test.ts | 7 +- .../extension/src/settings.ts | 26 +- .../foxglove_layouts/model_ghost_preview.json | 4 +- .../media/current-truck.png | Bin 50673 -> 32487 bytes .../media/ghost-preview.png | Bin 59026 -> 42795 bytes 20 files changed, 649 insertions(+), 460 deletions(-) delete mode 100644 extensions/model_ghost_preview/PLAN.md create mode 100644 extensions/model_ghost_preview/extension/src/scene/truckModel.test.ts diff --git a/.gitignore b/.gitignore index ac008fe..3b4942a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ node_modules/ dist/ *.foxe -demo.mcap \ No newline at end of file +demo.mcap diff --git a/extensions/model_ghost_preview/PLAN.md b/extensions/model_ghost_preview/PLAN.md deleted file mode 100644 index 0c334c5..0000000 --- a/extensions/model_ghost_preview/PLAN.md +++ /dev/null @@ -1,180 +0,0 @@ -# Model Ghost Preview extension — implementation plan - -Source request: Linear VIZ-3444, "Preview topic visualization (e.g. 3D model) at hovered timeline -position while paused". Community ask: while hovering/skimming the playback timeline, render a -"ghost" of a topic's 3D model at the hovered time, alongside the normal render at the current time -(like the Map panel's GNSS hover preview). Reference screenshot: a textured haul truck at the current -time, plus a blue/cyan wireframe copy of the same truck further along its blue path, at the hovered -time. Proposed UX: per-topic "Preview ON | OFF" plus style overrides (wireframe, color, opacity). - -## Feasibility findings (already verified against `@foxglove/extension` 3.3.0 types) - -- `RenderState.previewTime?: number` — "set when a user hovers over the seek bar or when a panel sets - the preview time explicitly". It is a seconds value. In Foxglove it is absolute seconds - (`toSec(startTime) + hoverOffset`), but be defensive: if `previewTime < toSec(startTime) - 1` and - `startTime` is non-trivial, treat it as relative and add `toSec(startTime)`. Requires - `context.watch("previewTime")`. -- `context.setPreviewTime(sec | undefined)` and `context.seekPlayback?.(time)` exist, so the panel can - also drive the preview/seek itself. -- `context.subscribeMessageRange({ topic, onNewRangeIterator })` gives the whole recording's messages - for a topic (batches in log-time order, best effort). This is what lets us look up a pose at an - arbitrary hovered time while playback is paused. (`preload`/`allFrames` is deprecated; do not use.) -- Why not a message converter feeding the built-in 3D panel: topic converters only run when a new - input message arrives, and "global variables do not cause re-processing of current frame data". - While paused nothing arrives, so a converter cannot move a ghost as the user hovers. Built-in 3D - panel internals are not extensible. Therefore: a **custom panel** that renders its own 3D scene with - three.js. Document this trade-off in the README (and that native support in the 3D panel is what - VIZ-3444 ultimately asks for; this extension is a working stop-gap / prototype of the UX). - -## Deliverables (all under `extensions/model_ghost_preview/`) - -``` -extensions/model_ghost_preview/ - README.md # with YAML front-matter (title, short_description) — see CONTRIBUTING - PLAN.md # this file - extension/ # the Foxglove extension (scaffolded with create-foxglove-extension) - package.json, package-lock.json, tsconfig.json, eslint.config.js, .prettierrc.yaml, .gitignore, - LICENSE (MIT), CHANGELOG.md, README.md (short, extension-marketplace style) - src/index.ts # activate(): registerPanel({ name: "Model Ghost Preview", initPanel }) - src/GhostPreviewPanel.tsx # React panel: context wiring, settings tree, render loop glue - src/scene/GhostScene.ts # three.js scene/camera/renderer/controls; no Foxglove imports - src/scene/truckModel.ts # procedural haul-truck model (default model; no external asset) - src/scene/ghostMaterial.ts # apply ghost style (wireframe / transparent / solid) to an Object3D clone - src/poses/extractPose.ts # message -> {position, orientation, frameId} for supported schemas - src/poses/PoseTimeline.ts # sorted timestamps + poses; binary search; lerp/slerp interpolation - src/settings.ts # config type, defaults, settings-tree builder, action reducer - src/time.ts # Time <-> seconds helpers, previewTime normalization - src/*.test.ts # unit tests (see Testing) - dev/ # standalone browser harness (see Testing) — NOT part of extension bundle - demo/ - generate_demo_mcap.py # writes demo.mcap with foxglove SDK (pip `foxglove-sdk`) - requirements.txt - foxglove_layouts/model_ghost_preview.json # layout: Ghost panel + built-in 3D + Raw Messages - media/ # screenshot(s) from the harness for the README -``` - -Also: add `"extensions": "Foxglove Extensions"` to `CATEGORY_NAMES` in `.utils/generate_readme.py` -and regenerate the root `README.md` (`pip install -r .utils/requirements.txt && python -.utils/generate_readme.py` from repo root). Do not commit `node_modules/`, `dist/`, `*.foxe`, or -`demo.mcap` (add to `.gitignore`). - -## Extension behaviour - -### Data / poses -- Settings pick a **pose topic** (dropdown of topics whose schema is supported). Supported schemas: - - `foxglove.PoseInFrame` (`timestamp`, `frame_id`, `pose`) - - `foxglove.PosesInFrame` (use first pose) - - `foxglove.FrameTransform` and `foxglove.FrameTransforms` (`transforms[]`), filtered by a - **child frame id** setting (`translation`/`rotation`) - - `geometry_msgs/PoseStamped`, `geometry_msgs/msg/PoseStamped` - - `nav_msgs/Odometry`, `nav_msgs/msg/Odometry` (`pose.pose`) - - `tf2_msgs/TFMessage`, `tf2_msgs/msg/TFMessage` (`transforms[].transform`, `child_frame_id`) - - `geometry_msgs/TransformStamped` (+ `/msg/`) - Use the message `receiveTime` (log time) as the timeline key, because that is what the playback - bar and `currentTime` use. No TF-tree resolution: poses are drawn in the topic's own frame, which - becomes the panel's fixed/world frame. Document this. -- Loading: when the topic changes, cancel the previous range subscription (the returned unsubscribe - fn) and start `subscribeMessageRange`. Accumulate extracted poses (not raw messages — keep memory - small) into `PoseTimeline`; re-render as batches arrive; show a small "loading N poses…" overlay. - Messages can arrive out of order across batches: insert sorted or sort once per batch. -- `PoseTimeline.sample(tSec, mode)`: binary search; `mode = "interpolate"` (lerp position, slerp - quaternion, normalize) or `"previous"` (latest pose at or before t). Before the first sample → - undefined (hide model); after last → clamp to last. Provide `path(): Float32Array` for the trail. - -### Rendering (three.js, `GhostScene`) -- WebGLRenderer sized to the panel via ResizeObserver; `OrbitControls` (from - `three/examples/jsm/controls/OrbitControls.js`); hemisphere + directional light; ground grid - (toggleable); background follows `renderState.colorScheme`. -- **Current model**: rendered at `sample(currentTime)`. Default model is the procedural haul truck - (yellow dump body, cab, 6 dark wheels; roughly 9 m × 5 m × 4.5 m, +X forward, Z up — Foxglove/ROS - convention, so set `camera.up = (0,0,1)`). Optional: **model URL** setting (`.glb`/`.gltf` via - `GLTFLoader`, also from `three/examples/jsm`) with scale + yaw/pitch/roll offset (glTF is Y-up: - apply a default +90° X rotation, documented, user-overridable). On load failure show the error in - the overlay and fall back to the truck. -- **Ghost model**: a deep clone of the current model with ghost materials, rendered at - `sample(previewTimeSec)` **only when** ghost is enabled, `previewTime` is defined, and the ghost - pose differs from the current pose. Hidden otherwise. Ghost style settings: - - style: `wireframe` (default, like the screenshot: `EdgesGeometry`+`LineSegments` overlay plus a - faint transparent fill so it reads as a holographic model), `transparent`, or `solid` - - color (default `#4fc3f7`-ish light blue), opacity (0–1, default 0.6) - - Materials: `depthWrite=false` for transparent parts, `renderOrder` above the current model. - - Dispose cloned geometries/materials when the model is replaced. -- **Path**: optional line of all poses (default on, color `#2b3cff`-ish blue, as in screenshot). Also - optionally highlight the segment between current and preview time (brighter / thicker). Use - `Line2`/`LineMaterial` from three/examples for width > 1 if straightforward; plain `Line` is fine. -- Optional **ghost label**: small HTML overlay or sprite showing `+Δt s` relative to current time. -- **Camera follow** setting: `off` | `current` | `ghost`. `current` keeps the orbit target on the - current model (preserving user orbit offset). On first data load, frame the whole path. -- Render on demand (only when state/camera changes), not a continuous rAF loop; but do run a rAF when - OrbitControls are damping/active. - -### Panel-driven preview (nice-to-have, implement if cheap) -- Hovering the path in the panel sets `context.setPreviewTime(t)` (raycast to nearest path vertex → - its timestamp); mouse leave clears it. Click on the path → `context.seekPlayback?.(t)`. This makes - the ghost previewable from inside the panel too and syncs other panels (Map/Plot) to the same time. - Must not fight with orbit dragging (only on hover without buttons pressed; seek only on click - without drag). - -### Settings tree (`context.updatePanelSettingsEditor`) and persisted state -- Persist config with `context.saveState`; read `context.initialState` merged over defaults. -- Nodes: - - `general`: pose topic (select), child frame id (string, shown for TF-like schemas), - interpolation (`interpolate` | `previous`) - - `model`: source (`truck` | `url`), url, scale, yaw/pitch/roll offsets (deg), color for truck body - - `ghost`: **Preview** toggle (`visible` on node — matches the "Preview ON | OFF" ask), style, - color, opacity, show time label - - `path`: visible toggle, color, highlight preview segment - - `view`: follow mode, show grid -- Handle `actionHandler` for `update` (and `perform-node-action` if any) using a pure reducer in - `settings.ts` (unit-testable). -- Use `context.watch` for `currentTime`, `previewTime`, `topics`, `colorScheme`, `startTime`, - `endTime`. Always call `done()` at the end of `onRender`. - -### Code quality -- TypeScript strict as configured by the scaffold; must pass `npm run build`, `npm run lint` - (scaffold ESLint config `@foxglove/eslint-plugin`), and `tsc --noEmit`. Use `@foxglove/extension` - latest 3.x if it builds with the scaffold tooling; otherwise the scaffold default. -- Keep Foxglove-API-specific code in `GhostPreviewPanel.tsx`; scene/pose logic pure and testable. -- No narrating comments. Comments only for non-obvious constraints. - -## Demo data (`demo/generate_demo_mcap.py`) -- Uses `foxglove-sdk` Python (`foxglove.open_mcap`, `foxglove.channels`, `foxglove.schemas`). -- ~60 s at 20 Hz, log time = simulated time from a fixed epoch. A truck drives a smooth winding haul - road (e.g. a spline / sum of sines, a few hundred meters), with heading from the path tangent, - slight Z from a gentle grade. -- Topics: - - `/truck/pose` — `foxglove.PoseInFrame`, `frame_id = "map"` (the ghost panel's input) - - `/tf` — `foxglove.FrameTransforms` map→truck (so the built-in 3D panel can show it too) - - `/scene/road` — `foxglove.SceneUpdate` once (road ribbon as triangles/line + a few berm cubes) so - the built-in 3D panel has context -- CLI args: `--output demo.mcap`, `--duration`, `--rate`. - -## Testing -1. **Unit tests** (vitest or jest, whichever is simpler with ESM + TS; add `npm test`): - - `extractPose` for every supported schema, incl. TF child-frame filtering and invalid messages. - - `PoseTimeline`: ordering with out-of-order inserts, before-first/after-last, exact hits, - lerp midpoint, slerp normalization and shortest-path (q vs −q), `previous` mode. - - `time.ts`: previewTime normalization (absolute vs relative). - - `settings.ts`: reducer updates nested paths, defaults merge with partial saved state. -2. **Build**: `npm run build` and `npm run package` produce a `.foxe`. -3. **Browser harness** (`extension/dev/`, served with Vite or esbuild — dev-only deps): mounts the - real `initPanel` with a mock `PanelExtensionContext` implementing `watch`, `onRender`, - `subscribeMessageRange` (feeds synthetic truck poses in batches via an async iterator), - `saveState`, `updatePanelSettingsEditor` (renders a minimal debug view or logs), `setPreviewTime`, - `seekPlayback`. Below the panel, a fake timeline bar: click = seek (sets `currentTime`), hover = - sets `previewTime` (absolute seconds), mouse-leave clears it, plus a play/pause button. Add - `npm run dev:harness`. Use it to take screenshots (headless Chrome at `/usr/local/bin/google-chrome` - is available, e.g. via puppeteer-core or `google-chrome --headless --screenshot`) showing: (a) no - hover → only current truck; (b) hover later in timeline → wireframe ghost further along the path. - Save to `media/` and reference them from the README. -4. **Demo generator**: run it, then verify with the `mcap` CLI or python `mcap` reader that topics, - schemas and message counts are as expected. - -## README (`extensions/model_ghost_preview/README.md`) -Front-matter: `title: "Model Ghost Preview extension"`, `short_description: "Preview a 3D model as a -ghost at the hovered timeline time, even while paused"`. Sections: what it does (screenshot), why a -custom panel (limitations of converters / built-in 3D), install (`npm ci && npm run local-install` -for desktop, or `npm run package` and drag the `.foxe` into Foxglove), generate demo data, import the -layout, settings reference, supported schemas, limitations (single fixed frame, no TF tree, range -loading is best-effort / memory, preview only on recorded data — live sources have no future data), -development (tests, harness). diff --git a/extensions/model_ghost_preview/README.md b/extensions/model_ghost_preview/README.md index fc68984..762eec1 100644 --- a/extensions/model_ghost_preview/README.md +++ b/extensions/model_ghost_preview/README.md @@ -49,7 +49,7 @@ The file is about 60 seconds at 20 Hz. A truck drives a winding haul road a few | `/tf` | `foxglove.FrameTransforms` | `map` → `truck`, so the built-in 3D panel can follow the same motion. | | `/scene/road` | `foxglove.SceneUpdate` | Road ribbon, center line, and a few berms, published once. | -Open the MCAP in Foxglove, then import [`foxglove_layouts/model_ghost_preview.json`](foxglove_layouts/model_ghost_preview.json) from the layout menu. The layout places this panel next to a 3D panel and a Raw Messages panel on `/truck/pose`. +Open the MCAP in Foxglove, then import [`foxglove_layouts/model_ghost_preview.json`](foxglove_layouts/model_ghost_preview.json) from the layout menu. The layout places this panel next to a 3D panel and a Raw Messages panel on `/truck/pose`. If a panel shows up as unknown after import, add **Model Ghost Preview** from the panel list and pick the pose topic (or add the panel yourself, then export a layout). Poses are drawn in the topic's own frame. That frame is the panel's fixed world frame — there is no TF tree. The message **receive time** (log time) is the timeline key, because that is what the playback bar and `currentTime` use. @@ -58,7 +58,7 @@ Poses are drawn in the topic's own frame. That frame is the panel's fixed world | Group | Setting | Notes | | --- | --- | --- | | General | Pose topic | Supported schemas only. | -| General | Child frame | Shown for TF-like schemas. Empty uses the first transform. | +| General | Child frame | Shown for TF-like schemas. Empty locks onto the first `child_frame_id` seen in the range; the field suggests frames observed on the topic. | | General | Interpolation | `interpolate` (lerp position, slerp rotation) or `previous`. | | Model | Source | Procedural haul truck, or a `.glb` / `.gltf` URL. | | Model | Scale, yaw, pitch, roll | Degrees, Euler ZYX. | diff --git a/extensions/model_ghost_preview/demo/generate_demo_mcap.py b/extensions/model_ghost_preview/demo/generate_demo_mcap.py index 49866e1..ff9a45f 100644 --- a/extensions/model_ghost_preview/demo/generate_demo_mcap.py +++ b/extensions/model_ghost_preview/demo/generate_demo_mcap.py @@ -1,20 +1,13 @@ #!/usr/bin/env python3 -"""Write a short haul-road MCAP for the Model Ghost Preview panel. - -foxglove-sdk 0.28 deprecates ``foxglove.schemas`` in favor of ``foxglove.messages``. -The names below are the same classes; the schemas import is what this tutorial documents. -""" +"""Write a short haul-road MCAP for the Model Ghost Preview panel.""" import argparse import math -import warnings from pathlib import Path -warnings.filterwarnings("ignore", message="foxglove.schemas is deprecated") - import foxglove from foxglove.channels import FrameTransformsChannel, PoseInFrameChannel, SceneUpdateChannel -from foxglove.schemas import ( +from foxglove.messages import ( Color, CubePrimitive, FrameTransform, @@ -96,7 +89,7 @@ def sample_pose(t_sec: float, duration: float) -> dict[str, float]: dz = 6.0 * ds + 1.5 * math.pi * 2.0 * ds * math.cos(s * math.pi * 2.0) yaw = math.atan2(dy, dx) pitch = math.atan2(dz, math.hypot(dx, dy)) - qx, qy, qz, qw = heading_quaternion(yaw, pitch) + qx, qy, qz, qw = heading_quaternion(yaw, -pitch) return { "time_sec": EPOCH_SEC + t_sec, "x": x, diff --git a/extensions/model_ghost_preview/demo/requirements.txt b/extensions/model_ghost_preview/demo/requirements.txt index bd7fb99..63a04f6 100644 --- a/extensions/model_ghost_preview/demo/requirements.txt +++ b/extensions/model_ghost_preview/demo/requirements.txt @@ -1,2 +1,2 @@ -foxglove-sdk>=0.28.0 +foxglove-sdk>=0.28,<0.29 mcap>=1.2.0 diff --git a/extensions/model_ghost_preview/extension/dev/main.ts b/extensions/model_ghost_preview/extension/dev/main.ts index 166d9c2..0638061 100644 --- a/extensions/model_ghost_preview/extension/dev/main.ts +++ b/extensions/model_ghost_preview/extension/dev/main.ts @@ -99,7 +99,6 @@ function createContext(panelElement: HTMLDivElement): PanelExtensionContext { panelElement, initialState: { general: { poseTopic: "/truck/pose", childFrameId: "truck" }, - ghost: { showTimeLabel: false }, }, dataSourceProfile: "foxglove", layout: { @@ -116,8 +115,8 @@ function createContext(panelElement: HTMLDivElement): PanelExtensionContext { preview = time; emit(); }, - seekPlayback: (time: number) => { - current = time; + seekPlayback: (time: number | { sec: number; nsec: number }) => { + current = typeof time === "number" ? time : time.sec + time.nsec * 1e-9; emit(); }, subscribe: () => undefined, diff --git a/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx b/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx index 455c78a..b58c045 100644 --- a/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx +++ b/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx @@ -2,9 +2,9 @@ import type { PanelExtensionContext } from "@foxglove/extension"; import { useEffect, useLayoutEffect, useRef, useState, type CSSProperties, type ReactElement } from "react"; import { createRoot } from "react-dom/client"; -import { PoseTimeline, type TimedPose } from "./poses/PoseTimeline"; -import { extractPose } from "./poses/extractPose"; -import { GhostScene, type ScenePose } from "./scene/GhostScene"; +import { PoseTimeline, type ReceiveTime, type TimedPose } from "./poses/PoseTimeline"; +import { ChildFrameLock, extractPose } from "./poses/extractPose"; +import { disposeObjectTree, GhostScene, type ScenePose } from "./scene/GhostScene"; import { loadGltfScene, placeModel } from "./scene/placeModel"; import { createTruckModel } from "./scene/truckModel"; import { @@ -18,6 +18,13 @@ import { normalizePreviewTime, toSec, type TimeLike } from "./time"; const EMPTY_POINTS = new Float32Array(); const EMPTY_TIMES = new Float64Array(); +const EMPTY_RECEIVE: readonly ReceiveTime[] = []; + +type Trail = { + points: Float32Array; + times: Float64Array; + receiveTimes: readonly ReceiveTime[]; +}; type Playback = { currentSec: number | undefined; @@ -25,12 +32,6 @@ type Playback = { startTime: TimeLike | undefined; }; -type GhostLabel = { - text: string; - x: number; - y: number; -}; - export function GhostPreviewPanel({ context }: { context: PanelExtensionContext }): ReactElement { const [config, setConfig] = useState(() => mergeConfig(context.initialState)); const [topics, setTopics] = useState([]); @@ -45,13 +46,16 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext const [loading, setLoading] = useState(false); const [loadError, setLoadError] = useState(); const [modelError, setModelError] = useState(); - const [ghostLabel, setGhostLabel] = useState(); + const [childFrames, setChildFrames] = useState([]); const [renderDone, setRenderDone] = useState<(() => void) | undefined>(); const sceneHostRef = useRef(null); const sceneRef = useRef(undefined); const timelineRef = useRef(new PoseTimeline()); const framedRef = useRef(false); + const savedConfig = useRef(false); + const trailRef = useRef({ points: EMPTY_POINTS, times: EMPTY_TIMES, receiveTimes: EMPTY_RECEIVE }); + const trailKeyRef = useRef(""); useLayoutEffect(() => { const host = sceneHostRef.current; @@ -62,8 +66,8 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext onPreviewTime: (timeSec) => { context.setPreviewTime(timeSec); }, - onSeek: (timeSec) => { - context.seekPlayback?.(timeSec); + onSeek: (time) => { + context.seekPlayback?.(time); }, }); sceneRef.current = scene; @@ -100,7 +104,6 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext context.watch("topics"); context.watch("colorScheme"); context.watch("startTime"); - context.watch("endTime"); }, [context]); useEffect(() => { @@ -112,23 +115,26 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext context.setDefaultPanelTitle(topic.length > 0 ? `Ghost: ${topic}` : "Model Ghost Preview"); }, [context, config.general.poseTopic]); + useEffect(() => { + if (!savedConfig.current) { + savedConfig.current = true; + return; + } + context.saveState(config); + }, [config, context]); + useEffect(() => { context.updatePanelSettingsEditor( buildSettingsTree({ config, topics, + childFrameIds: childFrames, actionHandler: (action) => { - setConfig((previous) => { - const next = reduceConfig(previous, action); - if (next !== previous) { - context.saveState(next); - } - return next; - }); + setConfig((previous) => reduceConfig(previous, action)); }, }), ); - }, [context, config, topics]); + }, [context, config, topics, childFrames]); useEffect(() => { const topic = config.general.poseTopic; @@ -150,18 +156,25 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext let cancelled = false; const timeline = new PoseTimeline(); + const childFrameLock = new ChildFrameLock(); timelineRef.current = timeline; setLoading(true); setLoadError(undefined); setPoseCount(0); + setChildFrames([]); const unsubscribe = subscribe({ topic, onNewRangeIterator: async (batchIterator) => { timeline.clear(); + childFrameLock.reset(); + framedRef.current = false; if (!cancelled) { + setLoading(true); + setLoadError(undefined); setPoseCount(0); setPoseRevision((value) => value + 1); + setChildFrames([]); } try { for await (const batch of batchIterator) { @@ -170,18 +183,24 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext } const extracted: TimedPose[] = []; for (const event of batch) { - const sample = extractPose(event.schemaName, event.message, { childFrameId }); + const sample = extractPose(event.schemaName, event.message, { + childFrameId, + childFrameLock, + }); if (!sample) { continue; } extracted.push({ tSec: toSec(event.receiveTime), + receiveTime: { sec: event.receiveTime.sec, nsec: event.receiveTime.nsec }, position: sample.position, orientation: sample.orientation, frameId: sample.frameId, }); } timeline.insertMany(extracted); + const observed = childFrameLock.observed(); + setChildFrames((previous) => (sameIds(previous, observed) ? previous : observed)); setPoseCount(timeline.size()); setPoseRevision((value) => value + 1); } @@ -223,6 +242,7 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext ? await loadGltfScene(config.model.url) : createTruckModel(config.model.truckColor); if (cancelled) { + disposeObjectTree(contents); return; } scene.setModel(placeModel(contents, placement)); @@ -240,9 +260,13 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext ); } }; - void run(); + const delay = config.model.source === "url" ? 400 : 0; + const timer = window.setTimeout(() => { + void run(); + }, delay); return () => { cancelled = true; + window.clearTimeout(timer); }; }, [ config.model.source, @@ -252,7 +276,6 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext config.model.pitch, config.model.roll, config.model.truckColor, - context, ]); useLayoutEffect(() => { @@ -261,6 +284,18 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext return; } const timeline = timelineRef.current; + const trailKey = `${poseRevision}:${config.path.visible ? "shown" : "hidden"}`; + if (trailKeyRef.current !== trailKey) { + trailKeyRef.current = trailKey; + trailRef.current = config.path.visible + ? { + points: timeline.path(), + times: timeline.times(), + receiveTimes: timeline.receiveTimes(), + } + : { points: EMPTY_POINTS, times: EMPTY_TIMES, receiveTimes: EMPTY_RECEIVE }; + } + const trail = trailRef.current; scene.setColorScheme(colorScheme); scene.setGridVisibility(config.view.showGrid ? "shown" : "hidden"); scene.setGhostAppearance({ @@ -269,8 +304,9 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext opacity: config.ghost.opacity, }); scene.setPath({ - points: config.path.visible ? timeline.path() : EMPTY_POINTS, - times: config.path.visible ? timeline.times() : EMPTY_TIMES, + points: trail.points, + times: trail.times, + receiveTimes: trail.receiveTimes, color: config.path.color, visibility: config.path.visible ? "shown" : "hidden", }); @@ -278,11 +314,11 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext const currentPose = playback.currentSec == undefined ? undefined - : toScenePose(timeline.sample(playback.currentSec, config.general.interpolation)); + : toScenePose(timeline, timeline.sample(playback.currentSec, config.general.interpolation)); const previewSec = normalizePreviewTime(playback.previewSec, playback.startTime); let ghostPose = config.ghost.visible && previewSec != undefined - ? toScenePose(timeline.sample(previewSec, config.general.interpolation)) + ? toScenePose(timeline, timeline.sample(previewSec, config.general.interpolation)) : undefined; if (ghostPose && currentPose && posesNearlyEqual(ghostPose, currentPose)) { ghostPose = undefined; @@ -295,7 +331,7 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext ghostPose ) { scene.setHighlight({ - points: timeline.pathSlice(playback.currentSec, previewSec), + points: timeline.pathSlice(playback.currentSec, previewSec, config.general.interpolation), color: config.path.color, }); } else { @@ -308,15 +344,21 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext framedRef.current = true; } scene.setFollowMode(config.view.follow); - - const label = + if ( config.ghost.showTimeLabel && ghostPose && playback.currentSec != undefined && previewSec != undefined - ? projectLabel(scene, ghostPose, previewSec - playback.currentSec) - : undefined; - setGhostLabel((previous) => (sameLabel(previous, label) ? previous : label)); + ) { + const delta = previewSec - playback.currentSec; + const sign = delta >= 0 ? "+" : ""; + scene.setTimeLabel({ + text: `${sign}${delta.toFixed(2)} s`, + position: ghostPose.position, + }); + } else { + scene.setTimeLabel(undefined); + } }, [colorScheme, config, loading, playback, poseRevision]); const status = statusMessage({ @@ -336,9 +378,6 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext >

{status &&
{status.text}
} - {ghostLabel && ( -
{ghostLabel.text}
- )}
); } @@ -354,11 +393,11 @@ export function initGhostPreviewPanel(context: PanelExtensionContext): () => voi }; } -function toScenePose(sample: TimedPose | undefined): ScenePose | undefined { +function toScenePose(timeline: PoseTimeline, sample: TimedPose | undefined): ScenePose | undefined { if (!sample) { return undefined; } - return { position: sample.position, orientation: sample.orientation }; + return { position: timeline.rebase(sample.position), orientation: sample.orientation }; } function posesNearlyEqual(a: ScenePose, b: ScenePose): boolean { @@ -377,24 +416,16 @@ function posesNearlyEqual(a: ScenePose, b: ScenePose): boolean { return dot > 0.9995; } -function projectLabel(scene: GhostScene, pose: ScenePose, deltaSec: number): GhostLabel | undefined { - const point = scene.projectToOverlay(pose.position, 4.6); - if (!point) { - return undefined; +function sameIds(previous: readonly string[], next: readonly string[]): boolean { + if (previous.length !== next.length) { + return false; } - const sign = deltaSec >= 0 ? "+" : ""; - return { text: `${sign}${deltaSec.toFixed(2)} s`, x: point.x, y: point.y }; -} - -function sameLabel(previous: GhostLabel | undefined, next: GhostLabel | undefined): boolean { - if (previous == undefined || next == undefined) { - return previous === next; + for (let index = 0; index < previous.length; index += 1) { + if (previous[index] !== next[index]) { + return false; + } } - return ( - previous.text === next.text && - Math.round(previous.x) === Math.round(next.x) && - Math.round(previous.y) === Math.round(next.y) - ); + return true; } function statusMessage(args: { @@ -416,6 +447,9 @@ function statusMessage(args: { if (args.loading) { return { text: `loading ${args.poseCount} poses…`, tone: "info" }; } + if (args.poseCount === 0) { + return { text: "No poses on topic", tone: "info" }; + } return undefined; } @@ -457,15 +491,3 @@ const errorStyle: CSSProperties = { background: "rgba(120, 32, 32, 0.88)", maxWidth: "70%", }; - -const labelStyle: CSSProperties = { - position: "absolute", - transform: "translate(-50%, -130%)", - padding: "2px 6px", - borderRadius: 4, - background: "rgba(12, 32, 48, 0.8)", - color: "#d7f3ff", - fontSize: 12, - pointerEvents: "none", - whiteSpace: "nowrap", -}; diff --git a/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.test.ts b/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.test.ts index a7dd706..8da1b2e 100644 --- a/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.test.ts +++ b/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.test.ts @@ -93,4 +93,28 @@ describe("PoseTimeline", () => { expect(Array.from(timeline.pathSlice(5, 15))).toEqual([5, 0, 0, 10, 0, 0, 15, 0, 0]); expect(timeline.pathSlice(-5, -1).length).toBe(0); }); + + it("ends a previous-mode slice on the previous sample", () => { + const timeline = new PoseTimeline(); + timeline.insert(pose(0, [0, 0, 0])); + timeline.insert(pose(10, [10, 0, 0])); + timeline.insert(pose(20, [20, 0, 0])); + expect(Array.from(timeline.pathSlice(5, 15, "previous"))).toEqual([0, 0, 0, 10, 0, 0]); + }); + + it("rebases the path to the first pose before narrowing to float32", () => { + const timeline = new PoseTimeline(); + const easting = 500_000.25; + const northing = 4_000_000.5; + timeline.insert(pose(0, [easting, northing, 12])); + timeline.insert(pose(1, [easting + 4, northing - 2, 12.5])); + const path = timeline.path(); + expect(path[0]).toBe(0); + expect(path[1]).toBe(0); + expect(path[2]).toBe(0); + expect(path[3]).toBeCloseTo(4, 4); + expect(path[4]).toBeCloseTo(-2, 4); + expect(path[5]).toBeCloseTo(0.5, 4); + expect(timeline.sample(1, "previous")?.position[0]).toBe(easting + 4); + }); }); diff --git a/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.ts b/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.ts index e84d849..3dfa1b8 100644 --- a/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.ts +++ b/extensions/model_ghost_preview/extension/src/poses/PoseTimeline.ts @@ -2,8 +2,14 @@ import type { Quat, Vec3 } from "./extractPose"; export type InterpolationMode = "interpolate" | "previous"; +export type ReceiveTime = { + sec: number; + nsec: number; +}; + export type TimedPose = { tSec: number; + receiveTime?: ReceiveTime; position: Vec3; orientation: Quat; frameId: string | undefined; @@ -77,6 +83,14 @@ export class PoseTimeline { }; } + rebase(position: Vec3): Vec3 { + const origin = this.#samples[0]?.position; + if (!origin) { + return position; + } + return [position[0] - origin[0], position[1] - origin[1], position[2] - origin[2]]; + } + path(): Float32Array { const out = new Float32Array(this.#samples.length * 3); for (let index = 0; index < this.#samples.length; index += 1) { @@ -84,9 +98,10 @@ export class PoseTimeline { if (!sample) { continue; } - out[index * 3] = sample.position[0]; - out[index * 3 + 1] = sample.position[1]; - out[index * 3 + 2] = sample.position[2]; + const position = this.rebase(sample.position); + out[index * 3] = position[0]; + out[index * 3 + 1] = position[1]; + out[index * 3 + 2] = position[2]; } return out; } @@ -102,21 +117,34 @@ export class PoseTimeline { return out; } - pathSlice(tStart: number, tEnd: number): Float32Array { + receiveTimes(): ReceiveTime[] { + const out: ReceiveTime[] = []; + for (const sample of this.#samples) { + out.push(sample.receiveTime ?? timeFromSec(sample.tSec)); + } + return out; + } + + pathSlice(tStart: number, tEnd: number, mode: InterpolationMode = "interpolate"): Float32Array { const from = Math.min(tStart, tEnd); const to = Math.max(tStart, tEnd); - const startPose = this.sample(from, "interpolate"); - const endPose = this.sample(to, "interpolate"); + const startPose = this.sample(from, mode); + const endPose = this.sample(to, mode); if (!startPose || !endPose) { return new Float32Array(); } - const points: number[] = [...startPose.position]; - for (const sample of this.#samples) { - if (sample.tSec > from && sample.tSec < to) { - points.push(sample.position[0], sample.position[1], sample.position[2]); + const points: number[] = [...this.rebase(startPose.position)]; + const firstInterior = firstAfter(this.#samples, from); + const endExclusive = lowerBound(this.#samples, to); + for (let index = firstInterior; index < endExclusive; index += 1) { + const sample = this.#samples[index]; + if (!sample) { + continue; } + const position = this.rebase(sample.position); + points.push(position[0], position[1], position[2]); } - const end = endPose.position; + const end = this.rebase(endPose.position); const tail = points.length; const sameEnd = tail >= 3 && @@ -183,6 +211,27 @@ function mergeSamples(current: readonly TimedPose[], incoming: readonly TimedPos return merged; } +function firstAfter(samples: readonly TimedPose[], tSec: number): number { + const index = lowerBound(samples, tSec); + const sample = samples[index]; + if (sample?.tSec === tSec) { + return index + 1; + } + return index; +} + +function timeFromSec(tSec: number): ReceiveTime { + const sec = Math.floor(tSec); + const nsec = Math.round((tSec - sec) * 1e9); + if (nsec >= 1e9) { + return { sec: sec + 1, nsec: 0 }; + } + if (nsec < 0) { + return { sec: sec - 1, nsec: 1e9 + nsec }; + } + return { sec, nsec }; +} + function lowerBound(samples: readonly TimedPose[], tSec: number): number { let lo = 0; let hi = samples.length; diff --git a/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts b/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts index d2b00e6..d520efb 100644 --- a/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts +++ b/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { extractPose, isSupportedSchema, schemaUsesChildFrame } from "./extractPose"; +import { ChildFrameLock, extractPose, isSupportedSchema, schemaUsesChildFrame } from "./extractPose"; const position = { x: 1, y: 2, z: 3 }; const orientation = { x: 0, y: 0, z: 0, w: 1 }; @@ -55,6 +55,52 @@ describe("extractPose", () => { expect(extractPose("foxglove.FrameTransform", transforms.transforms[1])?.frameId).toBe("map"); }); + it("locks an empty child frame filter onto the first child id in the range", () => { + const lock = new ChildFrameLock(); + const base = { + parent_frame_id: "map", + child_frame_id: "base", + translation: { x: 4, y: 0, z: 0 }, + rotation: orientation, + }; + const truck = { + parent_frame_id: "map", + child_frame_id: "truck", + translation: position, + rotation: orientation, + }; + expect( + extractPose("foxglove.FrameTransforms", { transforms: [base, truck] }, { childFrameLock: lock }) + ?.position, + ).toEqual([4, 0, 0]); + expect( + extractPose("foxglove.FrameTransforms", { transforms: [truck, base] }, { childFrameLock: lock }) + ?.position, + ).toEqual([4, 0, 0]); + expect(lock.observed()).toEqual(["base", "truck"]); + lock.reset(); + expect(lock.observed()).toEqual([]); + expect( + extractPose("foxglove.FrameTransforms", { transforms: [truck, base] }, { childFrameLock: lock }) + ?.position, + ).toEqual([1, 2, 3]); + expect( + extractPose( + "tf2_msgs/TFMessage", + { + transforms: [ + { + header: { frame_id: "map" }, + child_frame_id: "base", + transform: { translation: { x: 8, y: 0, z: 0 }, rotation: orientation }, + }, + ], + }, + { childFrameLock: lock }, + ), + ).toBeUndefined(); + }); + it("reads geometry_msgs PoseStamped, including the /msg form", () => { const message = { header: { frame_id: "odom" }, pose }; expect(extractPose("geometry_msgs/PoseStamped", message)?.frameId).toBe("odom"); diff --git a/extensions/model_ghost_preview/extension/src/poses/extractPose.ts b/extensions/model_ghost_preview/extension/src/poses/extractPose.ts index b778161..a94b802 100644 --- a/extensions/model_ghost_preview/extension/src/poses/extractPose.ts +++ b/extensions/model_ghost_preview/extension/src/poses/extractPose.ts @@ -9,8 +9,40 @@ export type PoseSample = { export type ExtractPoseOptions = { childFrameId?: string; + childFrameLock?: ChildFrameLock; }; +export class ChildFrameLock { + #locked: string | undefined; + #seen: string[] = []; + + reset(): void { + this.#locked = undefined; + this.#seen = []; + } + + observed(): readonly string[] { + return this.#seen; + } + + accept(actual: string | undefined, wanted: string | undefined): boolean { + if (actual != undefined && actual.length > 0 && !this.#seen.includes(actual)) { + this.#seen.push(actual); + } + if (wanted != undefined && wanted.length > 0) { + return actual === wanted; + } + if (this.#locked == undefined) { + if (actual == undefined || actual.length === 0) { + return true; + } + this.#locked = actual; + return true; + } + return actual === this.#locked; + } +} + const POSE_IN_FRAME = "foxglove.PoseInFrame"; const POSES_IN_FRAME = "foxglove.PosesInFrame"; const FRAME_TRANSFORM = "foxglove.FrameTransform"; @@ -66,6 +98,7 @@ export function extractPose( return undefined; } const childFrameId = options?.childFrameId; + const childFrameLock = options?.childFrameLock; switch (schemaName) { case POSE_IN_FRAME: return poseSample(parsePose(record["pose"]), readString(record["frame_id"])); @@ -75,9 +108,9 @@ export function extractPose( return poseSample(parsePose(first), readString(record["frame_id"])); } case FRAME_TRANSFORM: - return fromFoxgloveTransform(record, childFrameId); + return fromFoxgloveTransform(record, childFrameId, childFrameLock); case FRAME_TRANSFORMS: - return firstMatching(asArray(record["transforms"]), childFrameId, fromFoxgloveTransform); + return firstMatching(asArray(record["transforms"]), childFrameId, childFrameLock, fromFoxgloveTransform); default: break; } @@ -89,10 +122,10 @@ export function extractPose( return poseSample(parsePose(poseWithCov?.["pose"]), headerFrameId(record["header"])); } if (TF_MESSAGE.has(schemaName)) { - return firstMatching(asArray(record["transforms"]), childFrameId, fromRosTransform); + return firstMatching(asArray(record["transforms"]), childFrameId, childFrameLock, fromRosTransform); } if (TRANSFORM_STAMPED.has(schemaName)) { - return fromRosTransform(record, childFrameId); + return fromRosTransform(record, childFrameId, childFrameLock); } return undefined; } @@ -110,13 +143,14 @@ function poseSample( function fromFoxgloveTransform( message: unknown, childFrameId: string | undefined, + childFrameLock: ChildFrameLock | undefined, ): PoseSample | undefined { const record = asRecord(message); if (!record) { return undefined; } const child = readString(record["child_frame_id"]); - if (!childFrameMatches(child, childFrameId)) { + if (!childFrameMatches(child, childFrameId, childFrameLock)) { return undefined; } const position = parseVec3(record["translation"]); @@ -127,13 +161,17 @@ function fromFoxgloveTransform( return { position, orientation, frameId: readString(record["parent_frame_id"]) }; } -function fromRosTransform(message: unknown, childFrameId: string | undefined): PoseSample | undefined { +function fromRosTransform( + message: unknown, + childFrameId: string | undefined, + childFrameLock: ChildFrameLock | undefined, +): PoseSample | undefined { const record = asRecord(message); if (!record) { return undefined; } const child = readString(record["child_frame_id"]); - if (!childFrameMatches(child, childFrameId)) { + if (!childFrameMatches(child, childFrameId, childFrameLock)) { return undefined; } const transform = asRecord(record["transform"]); @@ -151,13 +189,18 @@ function fromRosTransform(message: unknown, childFrameId: string | undefined): P function firstMatching( items: readonly unknown[] | undefined, childFrameId: string | undefined, - read: (message: unknown, childFrameId: string | undefined) => PoseSample | undefined, + childFrameLock: ChildFrameLock | undefined, + read: ( + message: unknown, + childFrameId: string | undefined, + childFrameLock: ChildFrameLock | undefined, + ) => PoseSample | undefined, ): PoseSample | undefined { if (!items) { return undefined; } for (const item of items) { - const pose = read(item, childFrameId); + const pose = read(item, childFrameId, childFrameLock); if (pose) { return pose; } @@ -165,7 +208,14 @@ function firstMatching( return undefined; } -function childFrameMatches(actual: string | undefined, wanted: string | undefined): boolean { +function childFrameMatches( + actual: string | undefined, + wanted: string | undefined, + childFrameLock: ChildFrameLock | undefined, +): boolean { + if (childFrameLock) { + return childFrameLock.accept(actual, wanted); + } if (wanted == undefined || wanted.length === 0) { return true; } diff --git a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts index cbf8c56..40b53f4 100644 --- a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts +++ b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts @@ -1,19 +1,22 @@ import { ACESFilmicToneMapping, + Box3, BufferGeometry, Color, DirectionalLight, GridHelper, HemisphereLight, + Line, Material, Mesh, - MeshBasicMaterial, MeshStandardMaterial, Object3D, PerspectiveCamera, PlaneGeometry, + Points, Scene, SRGBColorSpace, + Texture, Vector2, Vector3, WebGLRenderer, @@ -23,6 +26,7 @@ import { Line2 } from "three/examples/jsm/lines/Line2.js"; import { LineGeometry } from "three/examples/jsm/lines/LineGeometry.js"; import { LineMaterial } from "three/examples/jsm/lines/LineMaterial.js"; +import type { ReceiveTime } from "../poses/PoseTimeline"; import type { Quat, Vec3 } from "../poses/extractPose"; import type { FollowMode } from "../settings"; import { buildGhostObject, type GhostAppearance, type GhostObject } from "./ghostMaterial"; @@ -34,7 +38,7 @@ export type ScenePose = { export type GhostSceneHandlers = { onPreviewTime: (timeSec: number | undefined) => void; - onSeek: (timeSec: number) => void; + onSeek: (time: ReceiveTime) => void; }; type FatLine = { @@ -65,7 +69,15 @@ export class GhostScene { #highlightLine: FatLine | undefined; #pathPoints: Vector3[] = []; #pathTimes: number[] = []; + #receiveTimes: ReceiveTime[] = []; #pathKey = ""; + #anchor = new Vector3(); + #gridSize = 180; + #label: HTMLDivElement; + #labelText = ""; + #labelAnchor = new Vector3(); + #labelActive = false; + #labelZOffset = 4.6; #highlightKey = ""; #scheme: "dark" | "light" = "dark"; #gridVisibility: "shown" | "hidden" = "shown"; @@ -99,6 +111,19 @@ export class GhostScene { this.#renderer.domElement.style.display = "block"; this.#renderer.domElement.style.touchAction = "none"; container.appendChild(this.#renderer.domElement); + this.#label = document.createElement("div"); + this.#label.style.position = "absolute"; + this.#label.style.transform = "translate(-50%, -130%)"; + this.#label.style.padding = "2px 6px"; + this.#label.style.borderRadius = "4px"; + this.#label.style.background = "rgba(12, 32, 48, 0.8)"; + this.#label.style.color = "#d7f3ff"; + this.#label.style.fontSize = "12px"; + this.#label.style.fontFamily = "system-ui, sans-serif"; + this.#label.style.pointerEvents = "none"; + this.#label.style.whiteSpace = "nowrap"; + this.#label.style.display = "none"; + container.appendChild(this.#label); this.#scene = new Scene(); this.#camera = new PerspectiveCamera(42, 1, 0.2, 4000); @@ -167,6 +192,7 @@ export class GhostScene { this.#ground.geometry.dispose(); this.#groundMaterial.dispose(); this.#renderer.dispose(); + this.#label.remove(); canvas.remove(); } @@ -202,9 +228,22 @@ export class GhostScene { } this.#model = model; this.#currentRoot.add(model); + this.#measureLabelOffset(); this.#rebuildGhost(); } + setTimeLabel(label: { text: string; position: Vec3 } | undefined): void { + if (!label) { + this.#labelActive = false; + this.#syncLabel(); + return; + } + this.#labelActive = true; + this.#labelText = label.text; + this.#labelAnchor.set(label.position[0], label.position[1], label.position[2]); + this.#syncLabel(); + } + setGhostAppearance(appearance: GhostAppearance): void { if ( this.#appearance.style === appearance.style && @@ -241,6 +280,7 @@ export class GhostScene { setPath(path: { points: Float32Array; times: Float64Array; + receiveTimes: readonly ReceiveTime[]; color: string; visibility: "shown" | "hidden"; }): void { @@ -254,10 +294,12 @@ export class GhostScene { this.#pathKey = key; this.#pathPoints = []; this.#pathTimes = []; + this.#receiveTimes = []; if (path.visibility === "shown") { for (let index = 0; index < count; index += 1) { const time = path.times[index]; - if (time == undefined) { + const receiveTime = path.receiveTimes[index]; + if (time == undefined || !receiveTime) { continue; } this.#pathPoints.push( @@ -268,9 +310,11 @@ export class GhostScene { ), ); this.#pathTimes.push(time); + this.#receiveTimes.push(receiveTime); } } - this.#pathLine = this.#replaceFatLine(this.#pathLine, this.#pathPoints, path.color, 8, 0.15); + this.#fitGround(this.#pathPoints); + this.#pathLine = this.#syncFatLine(this.#pathLine, this.#pathPoints, path.color, 8, 0.15); this.#requestRender(); } @@ -280,7 +324,7 @@ export class GhostScene { return; } this.#highlightKey = ""; - this.#highlightLine = this.#replaceFatLine(this.#highlightLine, [], highlight?.color ?? "#ffffff", 8, 0.2); + this.#highlightLine = this.#syncFatLine(this.#highlightLine, [], highlight?.color ?? "#ffffff", 11, 0.22); this.#requestRender(); return; } @@ -302,7 +346,7 @@ export class GhostScene { ); } const color = lighten(highlight.color); - this.#highlightLine = this.#replaceFatLine(this.#highlightLine, points, color, 8, 0.22); + this.#highlightLine = this.#syncFatLine(this.#highlightLine, points, color, 11, 0.22); this.#requestRender(); } @@ -369,7 +413,8 @@ export class GhostScene { this.#groundMaterial.color.set(dark ? 0x2a3036 : 0xc5ced6); this.#hemi.color.set(dark ? 0x8aa0b8 : 0xf4f7fb); this.#hemi.groundColor.set(dark ? 0x3a332c : 0x8a8178); - this.#hemi.intensity = dark ? 0.65 : 0.92; + this.#hemi.intensity = dark ? 1.35 : 0.92; + this.#sun.intensity = dark ? 2.15 : 1.35; this.#rebuildGrid(); } @@ -379,9 +424,14 @@ export class GhostScene { return; } const dark = this.#scheme === "dark"; - const grid = new GridHelper(180, 36, dark ? 0x3d4852 : 0xb7c2cc, dark ? 0x2a3138 : 0xc9d1d8); + const grid = new GridHelper( + this.#gridSize, + 36, + dark ? 0x51606c : 0xb7c2cc, + dark ? 0x3a444e : 0xc9d1d8, + ); grid.rotation.x = Math.PI / 2; - grid.position.z = 0.02; + grid.position.set(this.#anchor.x, this.#anchor.y, this.#anchor.z + 0.02); this.#scene.add(grid); this.#grid = grid; } @@ -434,31 +484,88 @@ export class GhostScene { this.#controls.update(); } - #replaceFatLine( + #fitGround(points: readonly Vector3[]): void { + if (points.length === 0) { + return; + } + let minX = Infinity; + let minY = Infinity; + let minZ = Infinity; + let maxX = -Infinity; + let maxY = -Infinity; + for (const point of points) { + minX = Math.min(minX, point.x); + minY = Math.min(minY, point.y); + minZ = Math.min(minZ, point.z); + maxX = Math.max(maxX, point.x); + maxY = Math.max(maxY, point.y); + } + const span = Math.max(maxX - minX, maxY - minY, 40); + this.#gridSize = Math.max(span * 1.5, 80); + this.#anchor.set((minX + maxX) / 2, (minY + maxY) / 2, minZ); + this.#ground.geometry.dispose(); + this.#ground.geometry = new PlaneGeometry(this.#gridSize, this.#gridSize); + this.#ground.position.set(this.#anchor.x, this.#anchor.y, minZ - 0.02); + this.#rebuildGrid(); + } + + #measureLabelOffset(): void { + if (!this.#model) { + this.#labelZOffset = 1; + return; + } + const bounds = new Box3().setFromObject(this.#model); + const height = bounds.max.z - bounds.min.z; + this.#labelZOffset = (Number.isFinite(height) && height > 0 ? height : 1) + 0.35; + } + + #syncLabel(): void { + if (!this.#labelActive) { + this.#label.style.display = "none"; + return; + } + const point = this.projectToOverlay( + [this.#labelAnchor.x, this.#labelAnchor.y, this.#labelAnchor.z], + this.#labelZOffset, + ); + if (!point) { + this.#label.style.display = "none"; + return; + } + this.#label.style.display = "block"; + this.#label.style.left = `${point.x}px`; + this.#label.style.top = `${point.y}px`; + this.#label.textContent = this.#labelText; + } + + #syncFatLine( current: FatLine | undefined, points: readonly Vector3[], color: string, width: number, lift: number, ): FatLine | undefined { - this.#removeFatLine(current); if (points.length < 2) { + this.#removeFatLine(current); return undefined; } - const positions = new Float32Array(points.length * 3); - for (let index = 0; index < points.length; index += 1) { - const point = points[index]; - if (!point) { - continue; - } - positions[index * 3] = point.x; - positions[index * 3 + 1] = point.y; - positions[index * 3 + 2] = point.z + lift; + const positions = linePositions(points, lift); + const hex = safeHex(color); + if (current && writeLinePositions(current.geometry, positions)) { + current.material.color.set(hex); + current.material.linewidth = width; + return current; + } + if (current) { + current.geometry.setPositions(positions); + current.material.color.set(hex); + current.material.linewidth = width; + return current; } const geometry = new LineGeometry(); geometry.setPositions(positions); const material = new LineMaterial({ - color: safeHex(color), + color: hex, linewidth: width, transparent: true, opacity: 1, @@ -523,6 +630,7 @@ export class GhostScene { const moving = this.#controls.update(); if (this.#dirty || moving) { this.#renderer.render(this.#scene, this.#camera); + this.#syncLabel(); this.#dirty = false; } if (moving || this.#interacting) { @@ -558,9 +666,10 @@ export class GhostScene { if (event.button !== 0 || button !== 0 || moved > 5) { return; } - const time = this.#pickTime(event.clientX, event.clientY); - if (time != undefined) { - this.#handlers.onSeek(time); + const index = this.#pickIndex(event.clientX, event.clientY); + const receiveTime = index == undefined ? undefined : this.#receiveTimes[index]; + if (receiveTime) { + this.#handlers.onSeek(receiveTime); } }; @@ -568,7 +677,8 @@ export class GhostScene { if (event.buttons !== 0) { return; } - this.#emitHover(this.#pickTime(event.clientX, event.clientY)); + const index = this.#pickIndex(event.clientX, event.clientY); + this.#emitHover(index == undefined ? undefined : this.#pathTimes[index]); }; #onPointerLeave = (): void => { @@ -583,7 +693,7 @@ export class GhostScene { this.#handlers.onPreviewTime(time); } - #pickTime(clientX: number, clientY: number): number | undefined { + #pickIndex(clientX: number, clientY: number): number | undefined { const rect = this.#renderer.domElement.getBoundingClientRect(); if (rect.width <= 0 || rect.height <= 0 || this.#pathPoints.length === 0) { return undefined; @@ -592,11 +702,10 @@ export class GhostScene { const y = clientY - rect.top; this.#camera.getWorldDirection(this.#forward); let best = 20; - let bestTime: number | undefined; + let bestIndex: number | undefined; for (let index = 0; index < this.#pathPoints.length; index += 1) { const point = this.#pathPoints[index]; - const time = this.#pathTimes[index]; - if (!point || time == undefined) { + if (!point) { continue; } this.#scratch.copy(point).sub(this.#camera.position); @@ -609,10 +718,10 @@ export class GhostScene { const distance = Math.hypot(sx - x, sy - y); if (distance < best) { best = distance; - bestTime = time; + bestIndex = index; } } - return bestTime; + return bestIndex; } } @@ -621,36 +730,53 @@ function applyPose(object: Object3D, pose: ScenePose): void { object.quaternion.set(pose.orientation[0], pose.orientation[1], pose.orientation[2], pose.orientation[3]); } -function disposeObjectTree(root: Object3D): void { +export function disposeObjectTree(root: Object3D): void { const geometries = new Set(); const materials = new Set(); + const textures = new Set(); root.traverse((obj) => { - const mesh = concreteMesh(obj); - if (!mesh) { + const drawable = drawableObject(obj); + if (!drawable) { return; } - geometries.add(mesh.geometry); - collectMaterials(mesh.material, materials); + geometries.add(drawable.geometry); + collectMaterials(drawable.material, materials); }); for (const geometry of geometries) { geometry.dispose(); } for (const material of materials) { - if ( - (material instanceof MeshStandardMaterial || material instanceof MeshBasicMaterial) && - material.map - ) { - material.map.dispose(); - } + collectTextures(material, textures); material.dispose(); } + for (const texture of textures) { + texture.dispose(); + } } -function concreteMesh(obj: Object3D): Mesh | undefined { - if (!(obj instanceof Mesh)) { - return undefined; +function drawableObject( + obj: Object3D, +): { geometry: BufferGeometry; material: Material | Material[] } | undefined { + if (obj instanceof Mesh) { + return obj as Mesh; + } + if (obj instanceof Line) { + return obj as Line; + } + if (obj instanceof Points) { + return obj as Points; + } + return undefined; +} + +function collectTextures(material: Material, into: Set): void { + const record = material as unknown as Record; + for (const key of Object.keys(record)) { + const value = record[key]; + if (value instanceof Texture) { + into.add(value); + } } - return obj as Mesh; } function collectMaterials(material: Material | Material[], into: Set): void { @@ -677,6 +803,49 @@ function isMaterialList(value: Material | readonly Material[]): value is readonl return Object.prototype.toString.call(value) === "[object Array]"; } +function linePositions(points: readonly Vector3[], lift: number): Float32Array { + const positions = new Float32Array(points.length * 3); + for (let index = 0; index < points.length; index += 1) { + const point = points[index]; + if (!point) { + continue; + } + positions[index * 3] = point.x; + positions[index * 3 + 1] = point.y; + positions[index * 3 + 2] = point.z + lift; + } + return positions; +} + +function writeLinePositions(geometry: LineGeometry, positions: Float32Array): boolean { + const attribute = geometry.getAttribute("instanceStart"); + if (positions.length < 6) { + return false; + } + const segments = positions.length / 3 - 1; + if (attribute.count !== segments) { + return false; + } + const array = attribute.array; + if (!(array instanceof Float32Array) || array.length < segments * 6) { + return false; + } + let write = 0; + for (let index = 0; index < positions.length - 3; index += 3) { + array[write] = positions[index] ?? 0; + array[write + 1] = positions[index + 1] ?? 0; + array[write + 2] = positions[index + 2] ?? 0; + array[write + 3] = positions[index + 3] ?? 0; + array[write + 4] = positions[index + 4] ?? 0; + array[write + 5] = positions[index + 5] ?? 0; + write += 6; + } + attribute.needsUpdate = true; + geometry.computeBoundingBox(); + geometry.computeBoundingSphere(); + return true; +} + function lighten(color: string): string { try { const next = new Color(color); diff --git a/extensions/model_ghost_preview/extension/src/scene/ghostMaterial.ts b/extensions/model_ghost_preview/extension/src/scene/ghostMaterial.ts index ffee89c..90bfd71 100644 --- a/extensions/model_ghost_preview/extension/src/scene/ghostMaterial.ts +++ b/extensions/model_ghost_preview/extension/src/scene/ghostMaterial.ts @@ -14,6 +14,7 @@ import { import { LineMaterial } from "three/examples/jsm/lines/LineMaterial.js"; import { LineSegments2 } from "three/examples/jsm/lines/LineSegments2.js"; import { LineSegmentsGeometry } from "three/examples/jsm/lines/LineSegmentsGeometry.js"; +import { clone as cloneSkinned } from "three/examples/jsm/utils/SkeletonUtils.js"; import type { GhostStyle } from "../settings"; @@ -34,7 +35,7 @@ export function buildGhostObject( appearance: GhostAppearance, resolution: { width: number; height: number }, ): GhostObject { - const clone = source.clone(true); + const clone = cloneSkinned(source); const materials: Material[] = []; const geometries: BufferGeometry[] = []; const lineMaterials: LineMaterial[] = []; diff --git a/extensions/model_ghost_preview/extension/src/scene/truckModel.test.ts b/extensions/model_ghost_preview/extension/src/scene/truckModel.test.ts new file mode 100644 index 0000000..9aa411e --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/scene/truckModel.test.ts @@ -0,0 +1,44 @@ +import { Box3, Mesh, Object3D, Vector3 } from "three"; +import { describe, expect, it } from "vitest"; + +import { createTruckModel } from "./truckModel"; + +describe("createTruckModel", () => { + it("keeps wheel axles lateral and clear of the chassis and fuel tank", () => { + const root = createTruckModel("#e6b422"); + root.updateMatrixWorld(true); + const meshes = collectMeshes(root); + const wheels = meshes.filter((mesh) => mesh.name === "wheel"); + const chassis = meshes.find((mesh) => mesh.name === "chassis"); + const tank = meshes.find((mesh) => mesh.name === "tank"); + expect(wheels).toHaveLength(6); + expect(chassis).toBeDefined(); + expect(tank).toBeDefined(); + if (!chassis || !tank) { + return; + } + const chassisBox = new Box3().setFromObject(chassis).expandByScalar(0.02); + const tankBox = new Box3().setFromObject(tank).expandByScalar(0.02); + for (const wheel of wheels) { + expect(wheel.quaternion.x).toBeCloseTo(0, 5); + expect(wheel.quaternion.y).toBeCloseTo(0, 5); + expect(wheel.quaternion.z).toBeCloseTo(0, 5); + const bounds = new Box3().setFromObject(wheel); + const size = bounds.getSize(new Vector3()); + expect(size.y).toBeLessThan(size.x); + expect(size.y).toBeLessThan(size.z); + expect(chassisBox.intersectsBox(bounds)).toBe(false); + expect(tankBox.intersectsBox(bounds)).toBe(false); + } + }); +}); + +function collectMeshes(root: Object3D): Mesh[] { + const meshes: Mesh[] = []; + root.traverse((obj) => { + if (obj instanceof Mesh) { + meshes.push(obj as Mesh); + } + }); + return meshes; +} diff --git a/extensions/model_ghost_preview/extension/src/scene/truckModel.ts b/extensions/model_ghost_preview/extension/src/scene/truckModel.ts index 00357b0..266d423 100644 --- a/extensions/model_ghost_preview/extension/src/scene/truckModel.ts +++ b/extensions/model_ghost_preview/extension/src/scene/truckModel.ts @@ -1,19 +1,9 @@ -import { - BoxGeometry, - CanvasTexture, - Color, - CylinderGeometry, - Group, - Mesh, - MeshStandardMaterial, - SRGBColorSpace, - type BufferGeometry, - type Material, -} from "three"; +import { BoxGeometry, Color, CylinderGeometry, Group, Mesh, MeshStandardMaterial, type BufferGeometry, type Material } from "three"; import type { Vec3 } from "../poses/extractPose"; type Part = { + name: string; geometry: BufferGeometry; material: Material; position: Vec3; @@ -23,97 +13,96 @@ type Part = { const DEFAULT_BODY = "#e6b422"; export function createTruckModel(bodyColor: string): Group { - const color = cssColor(bodyColor, DEFAULT_BODY); - const body = new MeshStandardMaterial({ - color: "#ffffff", - map: paintBody(color), - roughness: 0.55, - metalness: 0.12, - }); - const bed = new MeshStandardMaterial({ color: "#f0c14a", roughness: 0.72, metalness: 0.06 }); - const dark = new MeshStandardMaterial({ color: "#24282c", roughness: 0.55, metalness: 0.35 }); - const tire = new MeshStandardMaterial({ color: "#141414", roughness: 0.92, metalness: 0.02 }); - const hub = new MeshStandardMaterial({ color: "#6a7178", roughness: 0.45, metalness: 0.55 }); - const glass = new MeshStandardMaterial({ - color: "#1b2836", - roughness: 0.12, - metalness: 0.7, - }); + const paint = cssColor(bodyColor, DEFAULT_BODY); + const body = steel(paint, 0.46, 0.22); + const bed = steel(shade(paint, 0.82), 0.55, 0.16); + const dark = steel("#2a2e32", 0.5, 0.4); + const tire = steel("#141414", 0.92, 0.04); + const hub = steel("#6d747b", 0.4, 0.62); + const glass = steel("#1b2836", 0.12, 0.7); const lamp = new MeshStandardMaterial({ color: "#ffe7a3", emissive: "#ffcc66", emissiveIntensity: 0.7, - roughness: 0.4, + roughness: 0.35, + metalness: 0.15, }); const root = new Group(); - const wheelGeo = new CylinderGeometry(1.05, 1.05, 0.78, 16); - const hubGeo = new CylinderGeometry(0.42, 0.42, 0.92, 12); - const axle = Math.PI / 2; - - add(root, { geometry: box(6.2, 2.05, 0.48), material: dark, position: [0.15, 0, 1.42] }); - add(root, { geometry: box(5.9, 3.55, 0.22), material: body, position: [-1.05, 0, 1.95] }); - add(root, { geometry: box(5.45, 3.2, 0.08), material: bed, position: [-1.05, 0, 2.1] }); - add(root, { geometry: box(5.9, 0.14, 1.75), material: body, position: [-1.05, 1.84, 2.95] }); - add(root, { geometry: box(5.9, 0.14, 1.75), material: body, position: [-1.05, -1.84, 2.95] }); - add(root, { geometry: box(0.16, 3.55, 1.5), material: body, position: [-3.95, 0, 2.8] }); - add(root, { geometry: box(0.18, 3.55, 2.45), material: body, position: [1.85, 0, 3.3] }); - add(root, { geometry: box(5.4, 0.12, 0.1), material: dark, position: [-1.05, 1.84, 3.88] }); - add(root, { geometry: box(5.4, 0.12, 0.1), material: dark, position: [-1.05, -1.84, 3.88] }); - - add(root, { geometry: box(1.9, 2.45, 1.95), material: body, position: [2.85, 0, 2.78] }); - add(root, { geometry: box(2.1, 2.7, 0.14), material: body, position: [2.75, 0, 3.82] }); - add(root, { geometry: box(1.2, 2.15, 1.15), material: body, position: [4.1, 0, 2.15] }); - add(root, { geometry: box(0.38, 2.55, 0.58), material: dark, position: [4.72, 0, 1.12] }); - add(root, { geometry: box(0.08, 1.45, 0.72), material: dark, position: [4.9, 0, 1.85] }); + const wheelGeo = new CylinderGeometry(1.1, 1.1, 0.86, 20); + const hubGeo = new CylinderGeometry(0.42, 0.42, 0.98, 12); + + add(root, { name: "chassis", geometry: box(7.0, 1.5, 0.45), material: dark, position: [0.3, 0, 1.25] }); + add(root, { name: "deck", geometry: box(2.5, 3.3, 0.16), material: dark, position: [3.25, 0, 2.42] }); + add(root, { name: "bed-floor", geometry: box(5.5, 3.45, 0.16), material: bed, position: [-0.55, 0, 2.48] }); + add(root, { name: "bed-wall", geometry: box(5.5, 0.12, 1.35), material: body, position: [-0.55, 1.72, 3.22] }); + add(root, { name: "bed-wall", geometry: box(5.5, 0.12, 1.35), material: body, position: [-0.55, -1.72, 3.22] }); + add(root, { name: "tailgate", geometry: box(0.14, 3.45, 1.2), material: body, position: [-3.25, 0, 3.15] }); + add(root, { name: "headboard", geometry: box(0.16, 3.45, 1.9), material: body, position: [2.15, 0, 3.5] }); add(root, { - geometry: box(0.08, 2.05, 0.78), + name: "canopy", + geometry: box(2.15, 3.35, 0.12), + material: body, + position: [3.05, 0, 4.35], + rotation: [0, -0.55, 0], + }); + add(root, { name: "rail", geometry: box(5.2, 0.08, 0.08), material: dark, position: [-0.55, 1.72, 3.95] }); + add(root, { name: "rail", geometry: box(5.2, 0.08, 0.08), material: dark, position: [-0.55, -1.72, 3.95] }); + + add(root, { name: "cab", geometry: box(1.45, 1.25, 1.3), material: body, position: [3.15, 0.72, 3.15] }); + add(root, { name: "cab-roof", geometry: box(1.6, 1.4, 0.1), material: body, position: [3.1, 0.72, 3.85] }); + add(root, { name: "hood", geometry: box(1.15, 1.45, 0.55), material: body, position: [4.25, 0.15, 2.75] }); + add(root, { name: "bumper", geometry: box(0.28, 2.4, 0.42), material: dark, position: [4.85, 0, 1.55] }); + add(root, { name: "grill", geometry: box(0.08, 1.3, 0.55), material: dark, position: [4.72, 0.1, 2.15] }); + add(root, { + name: "windshield", + geometry: box(0.08, 1.15, 0.7), material: glass, - position: [3.62, 0, 3.15], - rotation: [0, -0.35, 0], + position: [3.72, 0.72, 3.35], + rotation: [0, -0.4, 0], }); - add(root, { geometry: box(0.72, 0.06, 0.48), material: glass, position: [2.7, 1.26, 3.22] }); - add(root, { geometry: box(0.72, 0.06, 0.48), material: glass, position: [2.7, -1.26, 3.22] }); - add(root, { geometry: box(0.16, 0.4, 0.22), material: lamp, position: [4.88, 0.7, 1.35] }); - add(root, { geometry: box(0.16, 0.4, 0.22), material: lamp, position: [4.88, -0.7, 1.35] }); + add(root, { name: "window", geometry: box(0.7, 0.06, 0.42), material: glass, position: [3.05, 1.36, 3.28] }); + add(root, { name: "lamp", geometry: box(0.12, 0.32, 0.18), material: lamp, position: [4.9, 0.7, 1.7] }); + add(root, { name: "lamp", geometry: box(0.12, 0.32, 0.18), material: lamp, position: [4.9, -0.55, 1.7] }); add(root, { - geometry: new CylinderGeometry(0.11, 0.13, 1.55, 10), + name: "exhaust", + geometry: new CylinderGeometry(0.1, 0.12, 1.35, 10), material: dark, - position: [1.95, 1.2, 3.55], - rotation: [axle, 0, 0], + position: [2.35, 1.35, 3.7], + rotation: [Math.PI / 2, 0, 0], }); add(root, { - geometry: new CylinderGeometry(0.38, 0.38, 1.7, 14), + name: "tank", + geometry: new CylinderGeometry(0.26, 0.26, 1.0, 14), material: dark, - position: [0.3, 1.4, 1.55], - rotation: [0, 0, axle], + position: [1.45, -1.05, 1.4], + rotation: [0, 0, Math.PI / 2], }); const wheels: Vec3[] = [ - [2.55, 1.7, 1.05], - [2.55, -1.7, 1.05], - [-1.45, 1.15, 1.05], - [-1.45, -1.15, 1.05], - [-1.45, 2.05, 1.05], - [-1.45, -2.05, 1.05], + [3.2, 1.85, 1.1], + [3.2, -1.85, 1.1], + [-1.3, 1.35, 1.1], + [-1.3, -1.35, 1.1], + [-1.3, 2.3, 1.1], + [-1.3, -2.3, 1.1], ]; for (const position of wheels) { - add(root, { geometry: wheelGeo, material: tire, position, rotation: [0, 0, axle] }); - add(root, { geometry: hubGeo, material: hub, position, rotation: [0, 0, axle] }); + add(root, { name: "wheel", geometry: wheelGeo, material: tire, position }); + add(root, { name: "hub", geometry: hubGeo, material: hub, position }); } - add(root, { geometry: box(0.07, 0.07, 1.9), material: dark, position: [2.15, -1.4, 1.85] }); - add(root, { geometry: box(0.07, 0.07, 1.9), material: dark, position: [2.58, -1.4, 1.85] }); - for (let step = 0; step < 5; step += 1) { + add(root, { name: "ladder", geometry: box(0.06, 0.06, 1.5), material: dark, position: [1.95, -0.95, 1.85] }); + add(root, { name: "ladder", geometry: box(0.06, 0.06, 1.5), material: dark, position: [2.35, -0.95, 1.85] }); + for (let step = 0; step < 4; step += 1) { add(root, { - geometry: box(0.5, 0.05, 0.05), + name: "ladder", + geometry: box(0.46, 0.05, 0.05), material: dark, - position: [2.36, -1.4, 1.15 + step * 0.32], + position: [2.15, -0.95, 1.25 + step * 0.32], }); } - add(root, { geometry: box(0.45, 0.7, 0.08), material: dark, position: [3.55, -1.15, 0.7] }); - add(root, { geometry: box(0.45, 0.7, 0.08), material: dark, position: [3.55, -1.15, 1.05] }); root.traverse((obj) => { if (obj instanceof Mesh) { @@ -126,6 +115,7 @@ export function createTruckModel(bodyColor: string): Group { function add(parent: Group, part: Part): void { const mesh = new Mesh(part.geometry, part.material); + mesh.name = part.name; mesh.position.set(part.position[0], part.position[1], part.position[2]); if (part.rotation) { mesh.rotation.set(part.rotation[0], part.rotation[1], part.rotation[2]); @@ -137,6 +127,16 @@ function box(width: number, depth: number, height: number): BufferGeometry { return new BoxGeometry(width, depth, height); } +function steel(color: string, roughness: number, metalness: number): MeshStandardMaterial { + return new MeshStandardMaterial({ color, roughness, metalness }); +} + +function shade(color: string, factor: number): string { + const next = new Color(color); + next.multiplyScalar(factor); + return `#${next.getHexString()}`; +} + function cssColor(color: string, fallback: string): string { try { return `#${new Color(color).getHexString()}`; @@ -144,40 +144,3 @@ function cssColor(color: string, fallback: string): string { return fallback; } } - -function paintBody(css: string): CanvasTexture { - const canvas = document.createElement("canvas"); - canvas.width = 256; - canvas.height = 256; - const texture = new CanvasTexture(canvas); - texture.colorSpace = SRGBColorSpace; - texture.anisotropy = 8; - const ctx = canvas.getContext("2d"); - if (!ctx) { - return texture; - } - ctx.fillStyle = css; - ctx.fillRect(0, 0, 256, 256); - ctx.fillStyle = "rgba(255,255,255,0.16)"; - ctx.fillRect(0, 0, 256, 48); - ctx.fillStyle = "rgba(60, 42, 8, 0.28)"; - ctx.fillRect(0, 168, 256, 18); - ctx.strokeStyle = "rgba(90, 60, 10, 0.35)"; - ctx.lineWidth = 3; - ctx.beginPath(); - ctx.moveTo(0, 118); - ctx.lineTo(256, 118); - ctx.stroke(); - ctx.fillStyle = "rgba(120, 80, 20, 0.14)"; - for (let i = 0; i < 8; i += 1) { - ctx.fillRect((i * 53) % 220, 40 + ((i * 37) % 100), 36, 3); - } - const fade = ctx.createLinearGradient(0, 0, 0, 256); - fade.addColorStop(0, "rgba(255,255,255,0.18)"); - fade.addColorStop(0.7, "rgba(255,255,255,0)"); - fade.addColorStop(1, "rgba(90, 60, 0, 0.16)"); - ctx.fillStyle = fade; - ctx.fillRect(0, 0, 256, 256); - texture.needsUpdate = true; - return texture; -} diff --git a/extensions/model_ghost_preview/extension/src/settings.test.ts b/extensions/model_ghost_preview/extension/src/settings.test.ts index 5951627..3d62966 100644 --- a/extensions/model_ghost_preview/extension/src/settings.test.ts +++ b/extensions/model_ghost_preview/extension/src/settings.test.ts @@ -100,6 +100,7 @@ describe("buildSettingsTree", () => { { name: "/tf", schemaName: "foxglove.FrameTransforms" }, { name: "/notes", schemaName: "std_msgs/String" }, ], + childFrameIds: ["base", "truck"], actionHandler: () => undefined, }); const general = tree.nodes["general"]; @@ -110,7 +111,11 @@ describe("buildSettingsTree", () => { } const labels = poseField.options.map((option) => option.label); expect(labels).toEqual(["/truck/pose", "/tf"]); - expect(general?.fields?.["childFrameId"]).toBeDefined(); + const childField = general?.fields?.["childFrameId"]; + expect(childField?.input).toBe("autocomplete"); + if (childField?.input === "autocomplete") { + expect(childField.items).toEqual(["base", "truck"]); + } expect(tree.nodes["ghost"]?.visible).toBe(true); expect(tree.nodes["ghost"]?.label).toBe("Preview"); }); diff --git a/extensions/model_ghost_preview/extension/src/settings.ts b/extensions/model_ghost_preview/extension/src/settings.ts index daa39a4..f7d5eeb 100644 --- a/extensions/model_ghost_preview/extension/src/settings.ts +++ b/extensions/model_ghost_preview/extension/src/settings.ts @@ -111,9 +111,10 @@ export function reduceConfig(config: GhostPreviewConfig, action: SettingsTreeAct export function buildSettingsTree(args: { config: GhostPreviewConfig; topics: readonly TopicInfo[]; + childFrameIds: readonly string[]; actionHandler: (action: SettingsTreeAction) => void; }): SettingsTree { - const { config, topics, actionHandler } = args; + const { config, topics, childFrameIds, actionHandler } = args; const supported = topics.filter((topic) => isSupportedSchema(topic.schemaName)); const options = supported.map((topic) => ({ label: topic.name, value: topic.name })); if (config.general.poseTopic.length > 0 && !options.some((option) => option.value === config.general.poseTopic)) { @@ -152,10 +153,11 @@ export function buildSettingsTree(args: { ? { childFrameId: { label: "Child frame", - input: "string" as const, + input: "autocomplete" as const, value: config.general.childFrameId, - placeholder: "first transform", - help: "Matches child_frame_id. Leave empty to use the first transform.", + items: [...childFrameIds], + placeholder: "first child frame", + help: "Matches child_frame_id. Empty locks onto the first child frame in the range.", }, } : {}), @@ -192,9 +194,9 @@ export function buildSettingsTree(args: { step: 0.1, precision: 3, }, - yaw: numberField("Yaw", config.model.yaw, "deg"), - pitch: numberField("Pitch", config.model.pitch, "deg"), - roll: numberField("Roll", config.model.roll, "deg"), + yaw: numberField("Yaw (deg)", config.model.yaw), + pitch: numberField("Pitch (deg)", config.model.pitch), + roll: numberField("Roll (deg)", config.model.roll), truckColor: { label: "Truck color", input: "rgb", @@ -250,7 +252,7 @@ export function buildSettingsTree(args: { label: "Highlight segment", input: "boolean", value: config.path.highlightSegment, - help: "Brighten the path between the current time and the preview time.", + help: "Draw a brighter, thicker path between the current time and the preview time.", }, }, }; @@ -285,15 +287,17 @@ export function buildSettingsTree(args: { }; } -function numberField(label: string, value: number, suffix: string): { +function numberField( + label: string, + value: number, +): { label: string; input: "number"; value: number; step: number; precision: number; - placeholder: string; } { - return { label, input: "number", value, step: 1, precision: 1, placeholder: suffix }; + return { label, input: "number", value, step: 1, precision: 1 }; } function applyUpdate( diff --git a/extensions/model_ghost_preview/foxglove_layouts/model_ghost_preview.json b/extensions/model_ghost_preview/foxglove_layouts/model_ghost_preview.json index c8eae2a..1ea6ca6 100644 --- a/extensions/model_ghost_preview/foxglove_layouts/model_ghost_preview.json +++ b/extensions/model_ghost_preview/foxglove_layouts/model_ghost_preview.json @@ -1,6 +1,6 @@ { "configById": { - "model-ghost-preview.Model Ghost Preview!ghost": { + "Model Ghost Preview.Model Ghost Preview!ghost": { "general": { "poseTopic": "/truck/pose", "childFrameId": "", @@ -85,7 +85,7 @@ }, "layout": { "direction": "row", - "first": "model-ghost-preview.Model Ghost Preview!ghost", + "first": "Model Ghost Preview.Model Ghost Preview!ghost", "second": { "direction": "column", "first": "3D!scene", diff --git a/extensions/model_ghost_preview/media/current-truck.png b/extensions/model_ghost_preview/media/current-truck.png index f0490aab6e2675643341b85d9603f607508fcaca..f0c39db2fdacf67ed7d5ee2229314547fd35dffc 100644 GIT binary patch literal 32487 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 literal 50673 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 literal 59026 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

DP5Yv-Fx9}TRXa{9*vxBf5 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 k{{2#5BpxPs5Le9!VjVV`dW(+2wG#j~7W? Date: Fri, 2 Oct 2026 17:28:01 +0000 Subject: [PATCH 4/7] Fix path truncation, improve haul truck proportions, fix child frame autocomplete Co-authored-by: mat --- .../extension/src/poses/extractPose.test.ts | 5 +- .../extension/src/poses/extractPose.ts | 21 ++++- .../extension/src/scene/GhostScene.ts | 81 +++++++++++------- .../extension/src/scene/fatLine.test.ts | 24 ++++++ .../extension/src/scene/truckModel.test.ts | 29 +++++++ .../extension/src/scene/truckModel.ts | 48 ++++++++--- .../media/current-truck.png | Bin 32487 -> 98094 bytes .../media/ghost-preview.png | Bin 42795 -> 104403 bytes 8 files changed, 163 insertions(+), 45 deletions(-) create mode 100644 extensions/model_ghost_preview/extension/src/scene/fatLine.test.ts diff --git a/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts b/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts index d520efb..479bb9e 100644 --- a/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts +++ b/extensions/model_ghost_preview/extension/src/poses/extractPose.test.ts @@ -73,11 +73,14 @@ describe("extractPose", () => { extractPose("foxglove.FrameTransforms", { transforms: [base, truck] }, { childFrameLock: lock }) ?.position, ).toEqual([4, 0, 0]); + expect(lock.observed()).toEqual(["base", "truck"]); expect( extractPose("foxglove.FrameTransforms", { transforms: [truck, base] }, { childFrameLock: lock }) ?.position, ).toEqual([4, 0, 0]); - expect(lock.observed()).toEqual(["base", "truck"]); + const seen = lock.observed(); + expect(seen).toEqual(["base", "truck"]); + expect(seen).not.toBe(lock.observed()); lock.reset(); expect(lock.observed()).toEqual([]); expect( diff --git a/extensions/model_ghost_preview/extension/src/poses/extractPose.ts b/extensions/model_ghost_preview/extension/src/poses/extractPose.ts index a94b802..c8b23a9 100644 --- a/extensions/model_ghost_preview/extension/src/poses/extractPose.ts +++ b/extensions/model_ghost_preview/extension/src/poses/extractPose.ts @@ -22,13 +22,17 @@ export class ChildFrameLock { } observed(): readonly string[] { - return this.#seen; + return this.#seen.slice(); } - accept(actual: string | undefined, wanted: string | undefined): boolean { + note(actual: string | undefined): void { if (actual != undefined && actual.length > 0 && !this.#seen.includes(actual)) { this.#seen.push(actual); } + } + + accept(actual: string | undefined, wanted: string | undefined): boolean { + this.note(actual); if (wanted != undefined && wanted.length > 0) { return actual === wanted; } @@ -199,6 +203,11 @@ function firstMatching( if (!items) { return undefined; } + if (childFrameLock) { + for (const item of items) { + childFrameLock.note(readChildFrameId(item)); + } + } for (const item of items) { const pose = read(item, childFrameId, childFrameLock); if (pose) { @@ -208,6 +217,14 @@ function firstMatching( return undefined; } +function readChildFrameId(message: unknown): string | undefined { + const record = asRecord(message); + if (!record) { + return undefined; + } + return readString(record["child_frame_id"]); +} + function childFrameMatches( actual: string | undefined, wanted: string | undefined, diff --git a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts index 40b53f4..354ba25 100644 --- a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts +++ b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts @@ -116,13 +116,12 @@ export class GhostScene { this.#label.style.transform = "translate(-50%, -130%)"; this.#label.style.padding = "2px 6px"; this.#label.style.borderRadius = "4px"; - this.#label.style.background = "rgba(12, 32, 48, 0.8)"; - this.#label.style.color = "#d7f3ff"; this.#label.style.fontSize = "12px"; this.#label.style.fontFamily = "system-ui, sans-serif"; this.#label.style.pointerEvents = "none"; this.#label.style.whiteSpace = "nowrap"; this.#label.style.display = "none"; + this.#styleLabel(); container.appendChild(this.#label); this.#scene = new Scene(); @@ -261,6 +260,10 @@ export class GhostScene { this.#currentRoot.visible = pose != undefined; if (pose) { applyPose(this.#currentRoot, pose); + this.#anchor.z = pose.position[2]; + if (this.#grid) { + this.#grid.position.z = pose.position[2] + 0.02; + } } this.#applyFollow(); this.#requestRender(); @@ -352,17 +355,24 @@ export class GhostScene { framePath(): void { const start = this.#pathPoints[0]; - const near = - this.#pathPoints[Math.min(this.#pathPoints.length - 1, Math.floor(this.#pathPoints.length * 0.2))] ?? - start; - const focusPoint = - this.#pathPoints[Math.min(this.#pathPoints.length - 1, Math.floor(this.#pathPoints.length * 0.4))] ?? - near; const end = this.#pathPoints[this.#pathPoints.length - 1]; - if (!start || !near || !focusPoint || !end) { + if (!start || !end) { return; } - const direction = new Vector3().subVectors(focusPoint, start); + const bounds = new Box3(); + for (const point of this.#pathPoints) { + bounds.expandByPoint(point); + } + const focus = bounds.getCenter(new Vector3()); + focus.z += 1.2; + const size = bounds.getSize(new Vector3()); + const radius = Math.max(0.5 * Math.hypot(size.x, size.y, size.z), 12); + const vertical = (this.#camera.fov * Math.PI) / 180; + const aspect = this.#width / Math.max(this.#height, 1); + const horizontal = 2 * Math.atan(Math.tan(vertical / 2) * Math.max(aspect, 0.5)); + const fitAngle = Math.min(vertical, horizontal) / 2; + const distance = (radius / Math.sin(fitAngle)) * 0.72; + const direction = new Vector3().subVectors(end, start); if (direction.lengthSq() < 1e-6) { direction.set(1, 0, 0); } @@ -372,17 +382,11 @@ export class GhostScene { side.set(0, 1, 0); } side.normalize(); - const span = Math.max(start.distanceTo(end), 20); - const focus = near.clone().lerp(focusPoint, 0.4); - focus.z += 1.4; - const back = Math.max(12, Math.min(span * 0.09, 16)); - const lateral = Math.max(14, Math.min(span * 0.13, 18)); - const height = Math.max(4.2, Math.min(span * 0.04, 6)); this.#camera.position - .copy(near) - .addScaledVector(direction, -back) - .addScaledVector(side, -lateral) - .setZ(near.z + height); + .copy(focus) + .addScaledVector(direction, -distance * 0.42) + .addScaledVector(side, -distance * 0.72) + .setZ(focus.z + distance * 0.38); this.#controls.target.copy(focus); this.#controls.update(); this.#followOffset.copy(this.#camera.position).sub(this.#controls.target); @@ -415,9 +419,17 @@ export class GhostScene { this.#hemi.groundColor.set(dark ? 0x3a332c : 0x8a8178); this.#hemi.intensity = dark ? 1.35 : 0.92; this.#sun.intensity = dark ? 2.15 : 1.35; + this.#styleLabel(); this.#rebuildGrid(); } + #styleLabel(): void { + const dark = this.#scheme === "dark"; + this.#label.style.background = dark ? "rgba(236, 246, 252, 0.94)" : "rgba(12, 32, 48, 0.8)"; + this.#label.style.color = dark ? "#102433" : "#d7f3ff"; + this.#label.style.border = dark ? "1px solid #ffffff" : "1px solid transparent"; + } + #rebuildGrid(): void { this.#dropGrid(); if (this.#gridVisibility !== "shown") { @@ -502,10 +514,11 @@ export class GhostScene { } const span = Math.max(maxX - minX, maxY - minY, 40); this.#gridSize = Math.max(span * 1.5, 80); - this.#anchor.set((minX + maxX) / 2, (minY + maxY) / 2, minZ); + const poseZ = this.#currentPose?.position[2]; + this.#anchor.set((minX + maxX) / 2, (minY + maxY) / 2, poseZ ?? minZ); this.#ground.geometry.dispose(); this.#ground.geometry = new PlaneGeometry(this.#gridSize, this.#gridSize); - this.#ground.position.set(this.#anchor.x, this.#anchor.y, minZ - 0.02); + this.#ground.position.set((minX + maxX) / 2, (minY + maxY) / 2, minZ - 0.02); this.#rebuildGrid(); } @@ -551,19 +564,13 @@ export class GhostScene { } const positions = linePositions(points, lift); const hex = safeHex(color); - if (current && writeLinePositions(current.geometry, positions)) { + const geometry = lineGeometryForPositions(current?.geometry, positions); + if (current?.geometry === geometry) { current.material.color.set(hex); current.material.linewidth = width; return current; } - if (current) { - current.geometry.setPositions(positions); - current.material.color.set(hex); - current.material.linewidth = width; - return current; - } - const geometry = new LineGeometry(); - geometry.setPositions(positions); + this.#removeFatLine(current); const material = new LineMaterial({ color: hex, linewidth: width, @@ -817,6 +824,18 @@ function linePositions(points: readonly Vector3[], lift: number): Float32Array { return positions; } +export function lineGeometryForPositions( + current: LineGeometry | undefined, + positions: Float32Array, +): LineGeometry { + if (current && writeLinePositions(current, positions)) { + return current; + } + const created = new LineGeometry(); + created.setPositions(positions); + return created; +} + function writeLinePositions(geometry: LineGeometry, positions: Float32Array): boolean { const attribute = geometry.getAttribute("instanceStart"); if (positions.length < 6) { diff --git a/extensions/model_ghost_preview/extension/src/scene/fatLine.test.ts b/extensions/model_ghost_preview/extension/src/scene/fatLine.test.ts new file mode 100644 index 0000000..74f574d --- /dev/null +++ b/extensions/model_ghost_preview/extension/src/scene/fatLine.test.ts @@ -0,0 +1,24 @@ +import { describe, expect, it } from "vitest"; + +import { lineGeometryForPositions } from "./GhostScene"; + +describe("lineGeometryForPositions", () => { + it("reuses the geometry when the vertex count stays the same and replaces it when the count changes", () => { + const first = lineGeometryForPositions(undefined, vertices(4)); + const sameCount = lineGeometryForPositions(first, vertices(4)); + expect(sameCount).toBe(first); + const grown = lineGeometryForPositions(first, vertices(12)); + expect(grown).not.toBe(first); + expect(lineGeometryForPositions(grown, vertices(12))).toBe(grown); + }); +}); + +function vertices(count: number): Float32Array { + const positions = new Float32Array(count * 3); + for (let index = 0; index < count; index += 1) { + positions[index * 3] = index; + positions[index * 3 + 1] = index * 0.1; + positions[index * 3 + 2] = 0; + } + return positions; +} diff --git a/extensions/model_ghost_preview/extension/src/scene/truckModel.test.ts b/extensions/model_ghost_preview/extension/src/scene/truckModel.test.ts index 9aa411e..aba6fd2 100644 --- a/extensions/model_ghost_preview/extension/src/scene/truckModel.test.ts +++ b/extensions/model_ghost_preview/extension/src/scene/truckModel.test.ts @@ -31,6 +31,35 @@ describe("createTruckModel", () => { expect(tankBox.intersectsBox(bounds)).toBe(false); } }); + + it("keeps the bed at least as wide as the outer duals and attaches the canopy to the headboard", () => { + const root = createTruckModel("#e6b422"); + root.updateMatrixWorld(true); + const meshes = collectMeshes(root); + const bed = new Box3(); + for (const mesh of meshes) { + if (mesh.name === "bed-floor" || mesh.name === "bed-wall" || mesh.name === "tailgate" || mesh.name === "headboard") { + bed.union(new Box3().setFromObject(mesh)); + } + } + const tires = new Box3(); + for (const mesh of meshes) { + if (mesh.name === "wheel") { + tires.union(new Box3().setFromObject(mesh)); + } + } + expect(bed.max.y).toBeGreaterThanOrEqual(tires.max.y); + expect(bed.min.y).toBeLessThanOrEqual(tires.min.y); + const canopy = meshes.find((mesh) => mesh.name === "canopy"); + const headboard = meshes.find((mesh) => mesh.name === "headboard"); + expect(canopy).toBeDefined(); + expect(headboard).toBeDefined(); + if (!canopy || !headboard) { + return; + } + expect(Math.abs(canopy.rotation.y)).toBeLessThanOrEqual(0.05); + expect(new Box3().setFromObject(canopy).intersectsBox(new Box3().setFromObject(headboard))).toBe(true); + }); }); function collectMeshes(root: Object3D): Mesh[] { diff --git a/extensions/model_ghost_preview/extension/src/scene/truckModel.ts b/extensions/model_ghost_preview/extension/src/scene/truckModel.ts index 266d423..6d1c3df 100644 --- a/extensions/model_ghost_preview/extension/src/scene/truckModel.ts +++ b/extensions/model_ghost_preview/extension/src/scene/truckModel.ts @@ -32,22 +32,48 @@ export function createTruckModel(bodyColor: string): Group { const wheelGeo = new CylinderGeometry(1.1, 1.1, 0.86, 20); const hubGeo = new CylinderGeometry(0.42, 0.42, 0.98, 12); - add(root, { name: "chassis", geometry: box(7.0, 1.5, 0.45), material: dark, position: [0.3, 0, 1.25] }); + add(root, { name: "chassis", geometry: box(7.0, 1.4, 0.42), material: dark, position: [0.3, 0, 1.15] }); + add(root, { name: "frame", geometry: box(6.4, 1.2, 1.22), material: dark, position: [0.15, 0, 1.7] }); + add(root, { + name: "axle", + geometry: new CylinderGeometry(0.35, 0.35, 2.76, 16), + material: dark, + position: [3.2, 0, 1.1], + }); + add(root, { + name: "axle", + geometry: new CylinderGeometry(0.35, 0.35, 1.76, 16), + material: dark, + position: [-1.3, 0, 1.1], + }); + add(root, { + name: "hoist", + geometry: new CylinderGeometry(0.16, 0.16, 0.4, 12), + material: dark, + position: [-0.35, 0.42, 2.28], + rotation: [Math.PI / 2, 0, 0], + }); + add(root, { + name: "hoist", + geometry: new CylinderGeometry(0.16, 0.16, 0.4, 12), + material: dark, + position: [-0.35, -0.42, 2.28], + rotation: [Math.PI / 2, 0, 0], + }); add(root, { name: "deck", geometry: box(2.5, 3.3, 0.16), material: dark, position: [3.25, 0, 2.42] }); - add(root, { name: "bed-floor", geometry: box(5.5, 3.45, 0.16), material: bed, position: [-0.55, 0, 2.48] }); - add(root, { name: "bed-wall", geometry: box(5.5, 0.12, 1.35), material: body, position: [-0.55, 1.72, 3.22] }); - add(root, { name: "bed-wall", geometry: box(5.5, 0.12, 1.35), material: body, position: [-0.55, -1.72, 3.22] }); - add(root, { name: "tailgate", geometry: box(0.14, 3.45, 1.2), material: body, position: [-3.25, 0, 3.15] }); - add(root, { name: "headboard", geometry: box(0.16, 3.45, 1.9), material: body, position: [2.15, 0, 3.5] }); + add(root, { name: "bed-floor", geometry: box(5.5, 5.6, 0.16), material: bed, position: [-0.55, 0, 2.48] }); + add(root, { name: "bed-wall", geometry: box(5.5, 0.16, 1.35), material: body, position: [-0.55, 2.72, 3.22] }); + add(root, { name: "bed-wall", geometry: box(5.5, 0.16, 1.35), material: body, position: [-0.55, -2.72, 3.22] }); + add(root, { name: "tailgate", geometry: box(0.14, 5.6, 1.25), material: body, position: [-3.25, 0, 3.15] }); + add(root, { name: "headboard", geometry: box(0.18, 5.6, 2.05), material: body, position: [2.16, 0, 3.48] }); add(root, { name: "canopy", - geometry: box(2.15, 3.35, 0.12), + geometry: box(2.3, 5.6, 0.14), material: body, - position: [3.05, 0, 4.35], - rotation: [0, -0.55, 0], + position: [3.25, 0, 4.42], }); - add(root, { name: "rail", geometry: box(5.2, 0.08, 0.08), material: dark, position: [-0.55, 1.72, 3.95] }); - add(root, { name: "rail", geometry: box(5.2, 0.08, 0.08), material: dark, position: [-0.55, -1.72, 3.95] }); + add(root, { name: "rail", geometry: box(5.2, 0.08, 0.08), material: dark, position: [-0.55, 2.72, 3.95] }); + add(root, { name: "rail", geometry: box(5.2, 0.08, 0.08), material: dark, position: [-0.55, -2.72, 3.95] }); add(root, { name: "cab", geometry: box(1.45, 1.25, 1.3), material: body, position: [3.15, 0.72, 3.15] }); add(root, { name: "cab-roof", geometry: box(1.6, 1.4, 0.1), material: body, position: [3.1, 0.72, 3.85] }); diff --git a/extensions/model_ghost_preview/media/current-truck.png b/extensions/model_ghost_preview/media/current-truck.png index f0c39db2fdacf67ed7d5ee2229314547fd35dffc..11ba8f6bd5d62b718f5ec5e9b44f2acc131188b6 100644 GIT binary patch literal 98094 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 literal 32487 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 diff --git a/extensions/model_ghost_preview/media/ghost-preview.png b/extensions/model_ghost_preview/media/ghost-preview.png index 46166ac01c1c084b8e9e6e3e5181c346c5b88e9d..fa4af8eb683eeb7e006796f4273ffdd8350bc2f2 100644 GIT binary patch literal 104403 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%0Acs-GTSa@ct+`s$HLJ2_{U;nC7eXpwj&iNv{%{ z;nVr$*Mwvy_bapR_|R=^NwZ~%*m+&S7c5Nc^cQeM91o`EQE%)$SKhCLPi%V?Fg6>7 zcP}uL>t3PwlojEC2m?P}F@#OuoMM{7Ki-}oIFavuKdj4cU^Yj@eAmp(O&z$rAi;-a}lP|V2&S8g-REgSK z(7y+^I9#=JThU8fw;xm z|1e!9sPRU9pOyU9X`(1^1Cx@3RLgkR=?j1{82Gy=xDAoW*>)oZO9op0y(}j3LM`hv z*Ybr}4vf2HDpT2`l6R^_3#vuifW>uXlD8{B^MVVR3^8FM=Xf4=j_v>9EJ3&f6CGAN z7@{uWL9DPNGa*U*+;4N}4EZ>+2mF`XIcNNI;rXipeUvCdAU9x)r>nM0AJaevtD)4M z)7e-sJ{fCTT@>K?<{3mQnf+DUwm5P~v>Lhs6YqOv+3Fu=fA61{&G$_2{<;lP`?=Sf zGBln5EWE^#81f^Dl3!6C9ll&+<3p)ps10$D+xiP^;Z7hd)QPEbkT9H(*D#Ly%=R2k zXz*^lBezMt(9ZdR$+&`8@tmrT79)igdyR9}nhhulg2hfE*o9Dal!;(tC>Q7MK?(5^ zlTR-6IaZxN$1h0(^X)^b7%`n(qy7o3wFPmrAF^e0Uc`^oE)~k==we{0k4fhMU5$Qy zlf(4EIcdMML-n}VoIdOb_>_C@`e_CN5IHR^!5_b|mWm}>T>N$`tt@+&&3c^pSd(*2 zVYxu$sSckQt~6eTvUEQ8<1tbe!~)e}DvEs|?{e2(8k`zxc{!0SDEjPjr;u~dJ!J7J z+tZ}8`;4JxyS$jUdo2m$X8K*vX(3N}%P45ef~pr2z+yk*TtW^CH8`*cMTh zTX&Tt4D0Nd^LZ8+ab{+8{>wPoD;+fRU;cI|&1t_SnE1S2lVzbcd)T&8FDn0V`*rwS zi7Fz%Hb0@|NJ%jL(iT1j)%||n*RT7RoB<0_=Cw2@erg~e&lncJm?kPnQM5`PhZp}7 zh5p%I$U0rnXxYUd=O-WL@)jAP3mx;%lg6hwNir-ogFJtNE?PTKDjUtgL*`M=? z)}+#Z%CvyWyA~yuFO;Sx3>3EV?$C8^^0L*O!s7IuMpE-ivS35zEffdyiyD8zHhPzJ zp6p2Q`(kVU3oF3aiTbC%`w(r7&pFF(bN-(x{}J=?kMY@OXdBb3_m(^`#o;|cJyR%nH*52=1IrhJhiqtbUXiL<^N z$`)KLDMDyo6NS$5=-|}6+wzz3Up_!fDzjizbwU}7oA*+YdvmYK-Mrr|9L_Fsktbvq z)MY1d0XT&XIVbsoq-V;{xoYO^*sTq{v2IvWOJ)W>U@!l>*GK!SU8b=z8rC!r|LX%8YMI!^DZusK*}My@PN1%tllbYG&7yM0Vm%y<*7(s}VAD&D_5eZOvgiU=#VR z+~H_l&ZUl*jc7;lL=OUbo=FT&z`kemmFH4uA8#avUlkJ5W0gSxL2H=g+`vens`&>@ z^-oYsj7UzC=jVO%0Pe-;sL0M3vPkjFoIH2pM(S}%PBEFL{lw>~!j^)RfjrSgx7z>D z1>_gwLAA>d%WLm_9e&rvCzwHI)^d-wJ45>Sme&r)%&O8@^#@t67a2~I>B{7^b(qA; z;=Al)WM2Uyr6y_`1F?3Fo75|@q*0Io%;b$ivW-b)-?Nw;@|db28&ld0Ok4^bL9}M4 z9{W|McxTkfcEn2w-IoX6K)3?)GjikT->N0_yam>!CuA+XMY>L9mCR`%PO70>tGxd5~ z(0P!#CzW`8t`s9^M6c?BqL zNIrwi)oQ<>@=AznZE02~zaTGgwk!?6H56ZqY@(h8Q%#r`s4G?{=?ZRwR3mYH(}t$- zVrEP@)Qt0v%g7MK}}ZTVz4ooZu6c2U^*=}ofLonT^ypD;zoEGf@iARHFagh`~z;Od$Ah6FX3e=n~&o? zCo5lnHLzw#AJ5BBg~a}y7z?oqt;fPp{$+@7sA4Z=7&DDw*L{;X0Dv3Xg(DF_CUmYO z7WIDGMj$ECE!fLfwIJ8)P_U__*JTz`w_qwEkfhqG2UKiFT8Fbm!fH}Y6W9f0@lK89 zYfPOz#HrCoWLP6w-&*MNhYNLK!(H8(j6Bv0iJ7nq?_&@-Ly78$YmkwNf*Grg@y+Ss zG-GsoJ(YuA_XLRD?Ci<2t1)7;|-ab`a2rNUmVcva?9kK8TSiD-5Xxr?DAX zjPLGw?#`kqtNRN5!DOG{QMs9WM~y$`5*$7h9KT>p85-}9o>q^ovVzbQ`n`rw?ku%4 z3djGc`KBdoIwoBvQf|5D66Feyu87@~ zHTQt1@C{wo7!PXfkSJW=8M=toHpxruFrnY6hFu@miX-djnRXT~7%IC+HZ8gkC`W%ybW>}wf3U5Q-O=np>U;~zC}<9nvHe&m{)sNJB$tu(n3+vwW;CG@YrBIDUg`4vPK zldAljrN2LppwceeaADxCIA(8@Ca&~HXYq$dpeusvjVv~P;0dJMsQ$lY6#<_=C2{}# zYo-D{Z{Ta~*sfSUF6qROAW7hpFEAQ>6HPRAR!qK?((}qm=_p1fdV8F7fQTUA8GF>u^&VRs-S2d-lD>0jGhZEurzU9U-zD~|M#vUuu zB8qfv;kNdALpAHFh(zQMeg%TgJh$?VDWG6%uBw*&zH8q>l4V5&L?#k)t zvW9%%EsB52^g)MkM(bU0RE8*S>pTyR(#gH;_hcI)0yRX#-|~AWc4)5-XcO1}P(q=P zDJ}VX7SfC1%Q&juMMOl}CvL6pq)M=bL-6;rb%d&N+XSe#cRWZNJIR_P=vxbnUQlKI zwmKowUa?aoa7p1aLLr_7-cCPBwNGxw7daz3wsK^T`U(^->LRC53iYvS~;eq=Vc zjv`#ZUg9^ocJ$JIo%io_OAIvnbYsEmru(H9-tb%;gu!%+fZ&=5T;#O+++0n{(ToY* zaRdR_8a6|hCi)^9DTWQ}mvR#yn9 zEw*Jotr}%^T<2l%T)~K1GyrISIc3^tA4R8*wxoglHJ>N^5{MmkbGn%$kJNkz_f_60 zo=Ia7c3$Z*Eelo@bv--o!G56vKU^Wr1z{p*)I*_vJTgE#g65r>mNktBhUuR-dgSVm z;;pfNjNX`8Z^J+M1Z%yefy|Lxo)i=w8kWaI^ve7HWQ~B+a$L#55SS_4G}EX(Tu1EW z-Xel;SaVY$qH~w5%{2iBpE`o!U5Ikn*54m~DR1-lm{c%aVpdVo^X{dIEv(@yLzbkB zFzp62lT>Ri2u2$#3d|muT4*$cX)4yg8~)KJ{))=JjnmHPeQXS>5RYG<5!LszBv6~R z=oLn7y5J^Hp8G>wnfzzGI*cpXwfG>;xtb+Y9Ts|$3|?Yu#><+igmqGtHBDG%VR9UK zwCW3)44dQobzuo!vh#Ej5&}?vac&dZF*AHhJsVcWZGnsZsjHRF4V!X{kf}mJDf%A% z+iHR+%}pbmi35x2Ce;RL-7;+ zAf_i?T1T*P(vhzx2g}%R(%R9}d`$}QcX%cN#eX5MoL6JJo zip_pcRRO4sMhlokm}^hBl){~rTM=9&_;3~m18!P-1ad5q9dLO?kR9n35c8@6fVqAO zDcupRG5pU)vI_$T=onNjTSsfpNy!8nA>gq-i(NP7I=f_<=WsrxnTw_4sIl<<0dNmVW5x%|0Se&>*-vw*|mwOATdw} zGlz1?HHo`E`n%LGS_baAy(?aK=Osd+dh$Z8n4gh{3ig(?25X}k(Z%o@U3(%&04V3Z zx5Is5*m^3CW}&OPk2{%9)QH)J-zpph>ddMm_NNGzSkwHkhe3>r0Zv7^WS`V ztAqm*72UDz-zU7Ce>R}uG0J^|9P1;E$RrjRB8RLW^a@^D6k2ViLl_gdIMfP6-~p zKNa*yK4z7ShRY?tRVqi)0`x8e2_u0Qi%(4MFTfH^_}ue3Eqw_at4?a{J?^kn z*3WnnPnF8Ya=b$!W^^-G^%GT89BI(BiuJ~d&X~d&IwZZXUbkijZ2=o%e`JE!l>`;t z2i7eBTPp{*i#j5gt5(qYXM%n{|zhumf4Oe|xC4aM{Tb@)I}suXjXZ@w(1 zH3fd2CV+FBJ%jb?@xAzI$T21S&b<_w0gAbaMd#~DpQRmElwCMzRz&Yd#ky5T2X=)l z3Y89;@Z?E!SvtIb0GA%SB!MhPjtim8!Ig6q?eC;?XHSum3cQpwK_8b$B-Fy)K!y|PXw!kuHV6eV8D@U(X5-w-K`fHKzNgGCssV=B_ zdy!~&6`j!aw+J?t_yyZ1X|X=l`c*>~vnZv?;9i9K94fGF#Q~Tm=91@(nr+ac*fCc$ zYas6z?Liful}V*&vhB*P{qJ(Q&Gl)<@KTMv8)sab(|9xwD#Ln5QoclHbeCa4NFb|4 z?$Bo(wM%wIXrj&(dB+Si=s#^5y*-c!OE=ak>6q2!3yFyCU6Rz;@Ikm(q7*dbw{(yX zZ2g3jWxFr#GzimXN)X6>kXZmM)`$Xa1n5Jj9h=i|CIlvGlvbs3KTH^(9O~qLY&f{3 zZcY9j`5wb<^Db%nz8xm~K9HEZwzg5KwM4z~BH`ib_;z&#^&y18Xlv{1YwPQ3^S-YN zkKVs^Adq(Rj}}sDKSOYOC6l$%D>ZxY>Fk+Ugtz4Y?o9D z`=YMi>rs^%EQaKA1P_=#!Y7Z?qRLU0(eFJwbT^)mNC)Ydb_rD}w^T0=m%M&@wAZfkw*)z1$ z1xTVQjq+B7odIwlPB*3*n82u8lk?1cQ=LDH zzceTI-)#bdO8gu*zBmoqP9~n}2#hFayeat1XQEXejxOnMBy}4VXuP&8x$~SOl?f@h+Ri~AoN#O&Jqb$Icui& z+{W6kU)5(x4XeIh1-H-?>ShJSU!J3v@_gPOU33d$>rN?59&`OR%aV z0ON*2FP+W_3Bv~RrTRD1LV>oj-<9B}VSmW7|1D5bGE78~oHCT~C2)uv(k9&2{rjY+ z(ncCu6ISb*LCoHP*6-!0Vak&Cl5VqPHD|ezYN%ICBexGkr8J}>y7^`L*}zZNW=)QH zaLK)9Wybj;Ey`Y6{Big(|CS;Qc*ri}p6PZ2IZ-Otw|Qe4kWTD8f~aSdU<}Pi^}p|) zFl?fzQJf9He3CAa30RLBrS1BX@u1v26`o~@xLlKngNE%E)>jZ@(YxK)619`quc<~@ zKtzs219-oYoN-ZrwZjOFPkn>IO%ytNe0vE4-wVH&5=aV$ML9Z#|9>t(va$9;n3k3m z@qKmqJ&pkSsDz}XuoOSkQMgK^t^bLm{-8i;5f8hcprG#PPr^`UIbaztfm2)uBKBMF~2gl5x9Ta;sk*Hnj7Nl}&;Gp8lh-fBwfC|xInt+)4= z6_-7A+vhTdBxz!)5_-CLKGY#6Rh1%AhWLGg6MmHKxy~ecE~*nh0%J`fc7^BB0(K3N zWl><{K}ufoq?>D70zUSyH^u)t)`lqH*^u7LW6t!4B#1RI^jD7}lde=Y>!2e_JM{0! z@99?{Tgv&TnTmh}#xH=-rUV!_oY`GUCPbuY30)uovTdAR;q8dwa=kwCnnm){N= zdgx`<2-NkRJ@)B8T)+4Q)OpE{@3}aK=(7dHA!b(oCJ&kFS8Q?=Vu_@?z)G~BXx3p2 zZi9`wKzB7`SHJKK9aeV~^Ch{Oh0?c0VfvI|k7ylZV>v$%QE!F~obuAENU_8A_suIP zSP=bIq2o`i`dhC-95nIh3|Jkw`)?VlXz<*< z-F{L?{*B&2{e|h?#F40A8GU6-*Gbks*mk#2)J-~*uy>MDKrQPbb-XxT&9hf_OD!}= zrs^3x2^XTD7u*|01`fdKn-7LhzP}%xlQTcUfZDrO8o|e>J@1naey7RwnnE|ZAGeSG zhr)b(daf$-(Pd$);%a5)1sV()~+fwlEmfzN+FIor-1qTYJjO(U7 zK>N$&UHc9mI%6=mSV^7B;b=qwFjf?vM4;auYO0j=&1lA_EPN_!ZUE=9#YY-To=R@) zs)frLmyYNTt5Q#l!Cjl$G`|(DN_ycXm_G~VuE!Vh{qVaPsA~*8{Cfo2WU{h^>-G%+ z^Eqd0`11We==itkv)C-#_UL~r+o4}K03&J%jt*!qCIe3smrrN_bwq~-ARW_9(S7hI99 zeJIW9!cMnmYtw_TSciQL({EAvF_@vKfd3nx()^P1h)ZTFXxz=aGz?egL9sZJh`f)W zZ#bKkyfcYBquB7}eyhRa68o~Tqsb}>Zf}lo{Bl(*a;cAiysJ~##uM701iA0ftPo-Z z*s|EL3+TudjMQP-8Asz}$CHC?Jl#%-x_9XfFM9lUQa6*E&uF~EmJ>Dwu)~&;L{y>r zc4Lfy)dA&t3xk3$sH+2GAJ5Yt&xbi)50?Hn)B`>5πg+U}dNxQ~%ICPwC-*V>PJ zMexb&gw|n^;FfYt~ss@$juBkMcZ8AwuTstFE&h9KiHEAbA zn6p{+z6!}n0Dwg3)D@S_XA047tgTeA!wbvZ=r?_}zCbMes(%z5`8$jbK5K?=h93t# z&pRaDkMFPG<+ZJMkDlX94-a>_kCEEvdGJg3E6EeWR>KU(H5l^t@fy_gU?co?xk*m~ zeg8{;>$>Y>Pq+IyQ~3EhPVi=_Md;zE(E59*7$U0PS4vM+kBHJ@6Ql?z#8253MCMp6 z$AYHZLOx?dRFlRMv2*QX2mDj8R8l%_%`dGzRWFeIhD^e0&hjS1iE=jOILJAa4(39u zRyuh6X>qsOo8N>i4OAze56b66uLB9%AWZ(YzdN_QeTm%g%#{SObX~BquWHB+%dRX@ z;wnx6yrJ5zra^T0*BC6yipdsHaU)t17dL1lD5!CeSci0Vj~D~c(+o8+H)ZJM$FgvP z*FzQLS~VB4w*{fU6!N%$7Pi zg%pzf0>6iH`)_W&FFCxqfKL?9&n`v~6tjiiHiWN&damY$-x7u2|D`h7ql!PtgZG(p zI&L=!f%NjsL*YaQ`)>rU6?v<|7`#p?_*$Oa*R)TyG<*Z*topsQ)X}C4c#R&MomT!N zKS9uAAuHcoIvP0GV5SE`XECsw++(+i#q!SKY|=xk0{l4V?tZPEsd^So;)O7S&k1VuyIvG~UOSo&!P~uI-6uBP z2ib;CAw4(mk8ii&m+6PcN1R+cH!t&hf{(e}l{DKuVx97C!O_avjUc z85oJ8yb4sx7o-1=793Juz<_-b;EO z?pJet*F5}}nIUJ>?-0cgj>&OCE^h9Rt;@IJttU6b$A!e)X8Zl_*NYEb@a1LKqa;|( zUP=l@G7RDE5qv)laT@lNbr*PimZrUTIJ^)CRz5gTyJ>!>=;6ey!0;NwOEcZsz$fb{ zhAY%l@uU?ZzoDZGlD3@4Px{ruwIv4BWiR<0VZHdF`D(f4Wxe)s$0iGFt>0|E_hyhe zce~B4Ro-$EaX?>*Nt3!n4f$< zf112^7$tnw8_)hb{pTN%zn!jx|7AIMNX_(KtRtdRMLcHP{ifP|#>q$XuCCVJv*Eou z36AhXd(cxYI7k3WL5~F~armDdZ~3u@(rg&l54?Dybv$}`Envc*l069MI!p4bnP@fM zDeVnpV3&#GFkE6_Wa4|dYB(PE1>s(LD*0|zqI50QwRE`nU7o}gC%?sHdc==6o&+tP z@&grbPUvePIm|Bw1|Th6-H!t1_k>~L`||hRkK^h0m96K6Qt&?Pl?zO`_N|&4WLm_9;sLnJ5N1@ zuynC))2|LMXx}rUMs6r<&lMzc_HG`$AN(deaOvj~RW5$u@zTBu%x5mJi%t_7bk)s3 zn96?anUF}FE}Td!-1=<_=Z9yByQ0(5_$1iIWF5S&3*X#`=DQo`4>pEG6SiU`2PD1f zvXSHV)bab&iHNA$!CkE!0$}Ly)m~aYt)!52#9Jk)E6Km=GNH0){>B?tsS`Ugd{ge0 z_&MHAZn&q10r+LVrPRvzW4FgwhrW+&Vh&{!Fa8XKjT84aRc?UwboQ0tP1x_j1F1T& zJ(FQ!FA*N#v>_9alvpRX$Gf`i#rVxdj7KauIf%v#z4Lg?WewMGqx}^1?eUeM)c>vP z;~}x^F^CSHq{Fp0}Q!D~JoUV|g4AKBkPgeC{QIly2SYzg;pj*D{balCKj^?3h>D6&;^t|`)!W=&&b3HT&tD;*?;D_&sGxnGv{@1XMRr01X zY86o4Grx>L$61=4s@_qOS9-&FuujDZ_jf`*3v3&}SC@Y<&cKohRr%GgxsBJW?>88H z-}sDm=5gf~Zr@r}3WW*?)bX^O^4$CKDk0 zg@uI%fHYwqoip^{0}?M!&(_WcXHO$$V~_}_Zs{2rzYXEGt(t9;xjav=Pvs;RS}~n$ z#_0L5y1il@&8j?oY76|*63F?QO4vXk;)%%`N?kW}aCNChFfi?xO^2WgNa?F-`|-hF zy-H}7Vi$zX2NVqa98+9|nGgH0kz;SS-ILGLmai3j@ol|Be^Q{l_)Ndj%U;`X1`A!= zSC(-@F)>%7kPZM1Va0|6giI0caJfuJ-dIlnUGW?B5l;%jUv}8}~7yu0AzlxK38O<9t z*^zeso@EF+0&`MxOn8$5?A4m=5=TG&ClEJq;`!Sl!6`>6UJsn1Kz`Vm(&}T8(YvDb zK@WAL2Us)9HCnt+d(2N0ZZy?4;IK)_<%{ftyyUBGj>HkvZM1mT4SD~T(iq&Dq-nB( z%mF6o63l!HnD~K3HFV|xhEkIYlYlDjGNR$&X1b^=kpkd%a~MpUa&Tj+SVUPdZZeGB z>Rbo=USxR(zOkO56ziba9S&=aanyzo6NjflVU?D0qGua}>S{bKs|89?P+l4j|nA7-wk8 zjx(MvsxgWA;k~L&`egNl2vl5;4Eh0Rq_Mi#Ry{*+Ka@>ji8ev)4uSpv4%h>DhnGS7 zPS+ig#&~1XxqCzI>8<+i+4IYDP-MTP@XKiKTbm)F-}|Y}uwsL+t7j8r)izZrzgN;^ z=7?%z>v^bFRduV%C+E?YL)9>4dz|75!>a>_;(5dE@DKIV(%9$E8EroraS0>Ze-NmZ zD5EI8%7saq5t za3xsx;Tc)&8>ch`m(2CpMe#ObLQ+?%#Vjue11+lnO1Y|^r`?ii+8!@+sm-5VAK zhQC(46M!Y*Ba{dS9&0;q#uOn>&|c`MbkdMtYooQksj32nJ`ADjqR!p#@I~kFJBOGo z%DhXaA*80|Bgdn25JK$^3{Gfs((@6O;YRpw-&Q(_|4F)qr?6>X<`a8BZO5iPW|9}q z)EcGU`BgeZ(mX!tHYcpufYh+~C&9<|Ew&zFYzX|AOBUwg^+E-5{HJKD7`@-IXRc#f zkr8Z!dqryZ^yNtk1%DqKLA@L!7Uk4u`GH#j6`PGGKC*xH#mwO` zV^!4FUrgp4oKq1YT!D0 zDmHEk0Tg3$22C1kC+J?ujCQDb1kpLzH2rB>AKMHIjqt2%a0l$=K02D9uz;18R zFSRGPJy(AYGr>YDZ4BaJSP^6yGi+fg^pO1xmw%ivFxrE(Bvx1Ub|-|YIv&bO$ZRx* zyOTbGL1uE>?6gAKl}D5jk&4Dp!Fs7do_9RZb!cJkJqEZk1vwLijY&Fs|2M!X+7$I$GVLm@2 zR=hk_EqSjjtn8C9-VmX82Z=Z-MTrDnY#`GE&W`m!bEiQ#dx>$rw3JwEJm`F)Ev}}A zLz5YS{13HNT~9?1$bczA1L410PFVbAgJ<$Q7)(Dg7l(2!JfB+U3vzQNh>fa%EvEobI^Yi2^513Os<0Jf#LyLP|rkm2ejx8iNYsWT3&WL zKh#{T4rZ$!?gu&lpqjKadk_r*mGihf7r({Kcg^j1PK{2P^If!+QSr$sF1V^>Y;i|{ zUh9xO_Mg80bInYf`Emz?g%u?nb~DJthm~^Zi?deUq0fT5ih*~y&r-ITUz7;Z}iVUDUG$iuMAi zq}sdF^c-4txC3$W$?%`|&#`Oq8EBm@o|===T7}_T_d<1Oos=M`Q%_Ap;D(A958Z5W zI!9{f7!Ked(eF(thE9W=8O{3S9dukPY%L>J)GwiAHBBzSWGTLVD}y^JeFJ2-TL#A@fe0Ti4gr+-a<5SV3 zYEESxG?peYV5!>&R*z1P)&|#(h5`NffE}vpc5N`)9vFZ%p;PQA7yfi z!ZK@d>)3uUU#nakX?Ih>x3=qZb9_K3GU_gi9g(DZ^ae7T!O2ub_1B__5v($HHu;~B`Sj^FwPKZdj%&ks) zk@ADbKV1K)tl5J(vM^gTh)6dRuuLp4EIrc$;{cdez`Yg7-&vM zKN)*6Cf1spm+zYlk8ULvBI6BndQ)ZRb@kq@&^^M*tlbxD zoc-&50?v(bZtBd9w@)cb0#;lTUTNfS;o^ez)!~E>C)`|JwPVV%C3q)?0=CGAilDtr zsSJP0QT#)63^*tdN1z)$)!cYqH=3UVL}6p)>zo}&1~lw674ET5U}3! zH3aD&&Z_9SEVB{?{B<}MK0tFx5S3QkG(?H;W&6>?LjoJYP4{B!*ez^y zsyHkaa8sNS9fRGhVlo|_Z9RPaM~BK$h2g*bciWkE!$HB;e4<&h_BV<_jqiYmGeOmQ ziTe7yh(SQ}P-=T{DB@a(*e=t|F%e;Ot6^UR%|WU&@VlETpy~kmeD4HPz7}sI7uyi} zCi4HI=`91I`o8aBx6C7np}VBJJD&Ub{-58Q znb-H8bI)0O?X}jf>I|XSRSSF|OG5~6brXN#1nWghGg&Ih7@!A>g+^0WP!iFf*FG0~ zAP9#EBY}C)w2cR7sDQ7`^m6lZY1eqpe?{=S94F{%?dr`*1Uj?oO7|p^sXSH?8hE2& z7pv9Gl_ftl~Cv&n!^HkG&-}eEC{Fa1bZ>E7{lKwlN2K zk56OQZ}nmb|Dk!IPkAA#yMn=?g&krYL;qq2SG&6-9^Njp8P%9&Jv9g-K;^1!Bpjfw z2?D6eJji327p6Dq>Y|SE-stT_Sdk_CgR{c_EGb3kJC>d1dl`*XcEm$z9-fWGV&zl?PP^&VFI4 z@Xcu-AzH*(VN9_sk|^fs_S}4B#00ciC7posLNGhw{4JA;D^vT;JNrW}drP0vNBRg4 ztx5q$4D3q!Ua7L|&*rcrK0~1=4eg}QSilIg4YE58+N3cS7sR%SJf9CYh#G8;yBFN0 zcU8BbmLA^0R(r1sI#km8Az#dJYtXP+Y`=yUr%Js(X78TNce*}} zKIg>{3Aex0zKRPv>(PMbgH2=>vm&U-Ta4>?Qr-%)k(A>)@7Yx*@f7uac1z~rl_=nK zPt_-UL3q6hao0w{zNDWvRM3BjUGq!PH?&Eg>pPGk`kCRSLdBw#`&Rfxg#suI;(Fgh zVwUrdHE*zg{JpsHDPyrU+-sTEHVnWT)?bH4Gz7jWTQbh3S30lLo+xsyr zI}NwYABpo5YdGM~idr<)5Vyw7`0KCo>yYK-<8Qs0_&3f?`MKN|jVjq6_%o%$leRwq z4Ps2@TD45Lbbo2lX+&VoJ-+S5!Fw3n`=>)bl1Ng=%y_VJv+}qaE_j@Q@DQP1T}zeu zI~y|R3()#^8pdYNcuKsDNJeRkt@!LP>Wj)!Mj%Nl+swWB9Wq;~pH!$FO2Fadw0o@L zre{8~6fQqpT^Hu{|MTE?%y$_C%`J}?(di#Jm*>|m=P>KfiGqMsKoz`yrJCI-`dxhEJY_^h?E^N0>bwP z#O>+sABjOjCq4`v`4TYGD`|F<1BF;L?3Y!)>9I;D1BRooj=eIS${Ej>`H)`Yy>h^0 zVcon&V1Izguvx}#XF+}{T%$CxLp+#|gFY;5L(M(!Lc?vqf z<;*-k609CS@Jabbi31J7UC)15u(20(Zmue$hPW5Ma(w1{W_wT_&qC34Rjz z2F7$Oj*HqXR%4!VgG%qXlQoH{nQmAvW-hD$CJAv91A|6_Sf|bUapK#z&qlj0Qbnhu zf_afo>I?r^wU+WE*w_5J5AVq}y*4qv4mJQr&j;Q#r7?Q*JBaeI;94tqQ$+$*$*v4^zObh7g}>HkOw{QqEWajUZc9O}`>}UE29&XA}Y@>L*$wi*H()+zCW?>n$bvRPKh?7z7}2=_VuNH5IR z-2Pq*N`PwPko0IagNf}sS*4l_>@8b&?h>>}Q+xm22QU8jQfMF2_Rb!H-hwfZ^xHyo zgh_HA#c3#sfaCt%je#@N(!31bV~*n_M~Jg?f(BGrY~PQ8q&+CNDci=aYAiF|S~rS& z3-oX~lLeAeP=uSq)t`ToSK~RQ7^ajSyrG4h6peB{PNA;81^4M{NLoj*8j<+^rMP7R z7_RL>bAxJKI*TV!7b$k;KB{Y-5>5HX)Te`e7O#Otg=w89wYh^_Gy{he3vG?5?L=Ze zF=ZbbAm>gNV0;uC-=&<^l+X(eO*PCL>T-gHTu{n2g0h9HPutsPff4IGeGh-Pb9t*% zQ7YaY-5R&CR_hO%VuXkw37!*B4t)~eVCJ?47=(DLO2;+5w+&bTr63%=YkF?iE*U(w z6uF<9+E5FrIW|_*m84TT5e>s(*F{Am(REdVpwqI?q22L&Oe@amOlsZwbfA-c7LlfX zkaj`Go}6Pe9{B5tZ_JO4!$;(zNW)+9_IIzdmK?w3%L;4Iw;!3lKfkOBQ$615T|V^e z98uI9={d9Q5ZCP^B#X6e`smTDL4=1^cE-&?cM07BhiG7|b=TBS`%Y>(`gp1`IvzEy{ArX}vV=NBHr6 z5mD<}o;`xAn&09_ERUEO%M)w;<5;+})Q7*R98FrLFIeSK-Lg=cRUTq4#_2ftEA2FO zHeVwjo<^sCdI>G*iCwORsnO%eZC(nf&m<^2a=3-Re~0r!uNRmjN{?SCP@ho$rItvb zz96h5WxwW()C6yQFK)b8Kpxz!F-l#CM8h3XeJCgQI67LO*6CHVX85DhM|=;@D&5gQ zbaKtwSuz;IF+4O3WU<%vv*qq-@nN8pcd$TQtj$IL2_YJ)F3_RO{5`?rcdX}2%dceo z#3qmE0{BOI4_j{z>IHYUe|s42K}j2}5UCP1@V_5S{;}e-2=MT_8|ZU!v0qE(P51fz z9$|f>TKZN<6BtjvZ#pucCVSF&-FdsPRoGZ*FPX9k&!RK3vFEKaJ1ARd&Ox~Tsxn4s z1wc*B>zx@kVe==hEE~zte|jn(*(!NqcXRy*{d7V-2?AKs05(>2MU)uH=?G#hlN^>aJ6_jJ4?NZcI-5>VEjd0j@&Ee zKha}(>0a(S8Ar_%wOs4MVKR!0P*8;R!jXh5&wRwmCS#5b<} zQ+JRMJ4z+MagpFn}AOyhR63ujh@8ctUK!ngAv6Zz&u8&fS2G`vU) znU+9Z%aLaw`JMTv*x@5jQB|ACGPtN zbgW1}I5W}s>%o$4cp7nF5Gk|9fnNgcXMdJF+I}C(4sxfWWU&dSv^wcP@;zBD>9ns^Zr z{S5309h&XCWhPVSuIP+c**;(aqkriqerq@@a`jE{;C^P8vu5iry-x1#+lb_wyfZ-@hX-7JcyPFnGtXyv$%`P#xk@*DDBuMyKmg+s%591$P(<`Dov4{{&P+AR>%~Q8Aaqh3r;~?{EK_irib>S+|q9mWnSFV5uus;M%PB;82;*cX(r~; zpVWLeh*??{DbUOef;!0rC{J4ZNzHn~ceSsHFdw5xeYT+cEW~`?M;JEkMRP>zJxiRV zV+@t|r=c%!qh338*vL;K+l<#IrWX5<75hm>=e*DGw4Rhs6Q5mw&=I5G)L~Oy&iO3< zlhk?AN3{j0bhs*MP1b1@KS#FLMIz_*Jzs4Z=OZ%GD1TgB+Q2he#n1w_?O_N7y8>@z z_f$8xSxHFzo;Yvi##sL@>dy^Ro)DDCUg345RFniB9QCJpPq%=tYwkX>83uj1=(&T- zQ4}?KO`nbBhdn;G?m^{OPxiy0I())s65cdD_BG?e19JdT3KC9W-d12k#TD*&tsP&0 zm-t2G!d`C1!8lH=SvSJt5?mCvCE)nOSiV1Ig;z;ep&EO*Tis>JvR~sP`UTLJ2E*&9!Jrh6HaZ_?q zt=ev5I^_F-G~mm%+dC6vYCszaEGHIlx_1U5f~xr{s;G8tI+mgSI*y)Ws3V1GPa$hr{)!M zT&fSyE*C2+td#P%z8J4zq7wq1fb-)SPPlMz81Ri$I6_`o4v4+L8`f^eP8P8lT&Pl4 zQHbMLq1Unh9B*#jjr?8~V7qu164jU$Mr(Z7l+`)@xlqi9@ngpv9u?9mV9o^vq<8O| zlHFWPR*7!c)C`(paQXWKeYl^YSU=TLAM>|3u&HMc0w}T~#PI0J_uXhSYoc&AN1Qgx z5c^D0B3j;rlBVV;3WZ_SUMY3Ge3A0-+t!7J%PY@~rhhPJLCw#Om5M)Gjo~Syks!|< zi2DU~cf7_t*+ZWNBC2VXRLz&BBca4&mYJ5(2(+{FqsHCZB)m5~lM1sCIP~<*1O?pl zVlk$UJt$SmoA%ScFN65(Le`A)1-JfzkGC?jzB?DuzZ-+59=gI@6#ytkS>dpEJ{Dzs z)AqeUi+%RCYEs#C{-eKyHg^IE7dLllO|dsG;trxzUBt3cft1XE2>8FH|T^wd|l8$pJM1Z z!hK`m0L|FSQs|g3Q;cVu$oXFQlmFTxOVVS*-aBkdy{W*=MC5gqIm`-T!coS4JB6do z9UfzO8m3@dpTHF#c1C&Q{Qe7Euj8ae2aSM zz5e_tXj)X?Wgw-q`n$&~#nh~U8uUxMj=Ps1;fY7vRT3o+A4%q!9c+>F| zB2*=*LlH7UZJcsf=-qts#-5{`7r1={$O``80?s2DMU@sNzH4Siad=E zbYb$ahp7sTm97g#>V-@el@Ws?TX0o=r@Lz|tI6+Y0rozdw;$T}I0X6h3BQxjbZ%v<9V4APU&3@{#7Vnfy`0!4s-|OoQ zsShh|GuOZu&@bB>~$lMU!xm+(7 zzx}~^_(!|gs#?+s^^*xG?#$O{qNS!aK{deKmr@=yct>jbgS}soWciNR4)nGLvEkRI z$?M|c!N|eL2znApy~wwpmdGf2AyGJzW_$g)E62J&eYS2_0Nv3vEwTnd{wxo)LSbXz zSNhheo;?`_FGHFm1v)C~YY(bKHNYTEP#t4Lnw~D|oZoF642*RDEFut?*MscCPDTzE zH@e-<-)lPKreX%E6zD=;bt_9YM((|J?80bLY1RbU#LSS`baymce{vYP*5aUHGaR4r zgzqbmFj2!|5Si2_FgfEU;aGGY-bowa7-+bfs4XtwyT#gcr%~AnzeRqR1qYVkQgKIR z`rN)=boo8sn$ZN+_MJSy(bt#VOX6lx^YEA1KNR^K9Ctw@mj7tdK&l|Sq98VSVUu)n z7t|w$6OdgEZ9qNh%F>e19i~^ z^^Mm1sXXql{nB<}1dxVG6L4Vr<@aN? zEJOV~9IUyL><`k^TE?vlgELp(#K?X(?Y$k)-0C$phL+ItZwbWy9>E3%BS(Hw{s`I^ zp)~L;W1QMyML;?LCtAs5YgR`VMQ&wB4~O~}$Lo7TwpHn6{&S;tt>tC)QSXI@U3Zj2 zB*Ak8AwJOEiRXWk9_s#|nQ*GB9D$R?<;G<9!gd$O%iIZ)2HF+k3z^jKsAk zhzkleio``m+gzBnlzr>H^0_Ib)~lw;-POtWUp+3FJRTd;g&=*_bwP7j1mdE+VZf8K zooABkD8Cp&rMZ;Pwynb7iAh)3ZDM~WE$a(5^KlAF%~o5IexN6{7G&-m&eiHMb4BO;IlBsrm)-DbSV%l*X6YT4Bw>ZXzW zZd#%L+K;w)7 zZ&XK-AD}rqj%r%em6K1Ks66D&Fp=KtX;#Bq__Ks@U|4Z3m27TSXBy_3+mXUR`C5dS ztj|uE`Ia}YKugng{%OUEbM-u*$(}2l0SVlR#Q7a^d`Gy4u8%Ms|9i4ZVSg95r-h9a2@rfvR5( z(>`fcW+&!TnL%Vzn#D9I_6Jd4U($J*^qeZ;ti~sGo}xK5*L?-u@Ye-k;O$Acx{jQm zMt)vEh6`+1f@8J#6KF^&(zErZyvxVsdREjLUs%1YJ;%qUu)WwyY++;%b4Rwgb{lSS zcsT-eNEEC;ORTI-b6wcSR#S8si&+ZZZ}oDuRai10gx6MgX1a`AFGaN=r1YDk67@Qy z67{(XcVD|{+>KwouKDzrdOtL5Unvh(fdK&wXy^Q_tdbVEHwn-DMN(S{(3&6TEtK4K z=C$(@QJ5WRwLY#jF1{1`A~bs0xsr4Is+AN*b6Y5>O`?y9$wma!pCYqVV0=YieFuTi zxc-PU3*OiEns)?#Jl?6g=Es#8L{uAi_NR=QjrC(E%tD}Y9_zbDYET5z7~Y6{4Af-Y z8^2n*1)ZJQv5Y9dB2&mL#|o)`QhwkIgykWKRLWXVT=*D;VYW%lnrs0<-{vqf!UuG1 z-$+Y+f~|MBZ9X#czjUilbMbO47bDnH34d`oS_35rKh4X8i#@E&afI7C7kj^c?wtN`a}>0w_9qKkg@YuU&er^5*Z3PAjws zjBieQg{cG|QXR$qP8h$^%k92vrXfJ>HuRucQ|P)@Q>K{6Z~2h*x^;(qn0IB&2a|BA z@jI}#P!Y{8aZQj!9G6DT(g7LdWhx2`=utQxKAdbUnm5Acw8LhCMM@RXq~(T%n|=y_ zW#Dl>_pz;1zqn{R#7F9_+&{%tcRwQH44Gjq&R(9;N;#Qjqdoz|C%< ze8uBuJ3pG)ku2Bx47rf72#9aFl(_<}nY(&XJ3tS5ZW^#j@w~BOFBQH~MhDahh@@4IB`~xY zX*Ji`fm2ap|IPg_UlyZW>J9WiN|bqrZ6_<&-nCz$0yBY+ZVP4vLld=C<>xvNWC4Fr zL1UAY@}ddw$xfXn_|5P&a~j`B<-O~amZLEhp$fi@dF79c}R$>ZBq`?E%M~bCJVk(CZT(OR8eqFV^eHLyz1E_|v z16Eogwx1=BYw!VeYLgeO63If*5b-;$YDY zD5n2tE;^_gy4#vkL=>KmdWLGLuFM=82+3knET)ry9-e((fRL26ipr{Q#+~)oJys&G zPP4|@mj8-SQNeT_xQje571OW#0}aoIQZ7;@d(P|6zLt%r@m)>Fjh&}5+&QCcHUck!bMxX8eYtnYT)EXCXPxIsHXi}&XtcQ&{)#gIr zFktE!h2)VL9Urm%n(wGjYhxV}-479bcy3T+!lkDa?Ori0{A4~!SnXT+pFiL8)GE)h zxvTW$rRYvuP9FNn#9GrzESojJO&e8qj)0awKw6jo{46JCMP*7WUo+c=Be;uF{A48k zl?4a8YCjh8iJOh`L@v)QYwyhBRMg;*NSQPQ3ia=Jn4H{ii_?0If7&}B_PKUetm{ZVFaoibKq;Fp=T zE)^zr3umZ7>enetp_%8IsiYlDW@{?09YWVsIj0n@A=LUrRF@}G~#+rn!;|NhE3yaeG|SLONs z9~VHWYV3Euv&Pbo13@!$af>#SLB%fLkmOXp$_la??0aSn_ZHR-h1Q6&X6?QDlsNXN zkoJSK<5fAe@Whqv(P9e^@nqn)MF@iTu9)BOmw!@At5;M+q48Jdlwl5t&*xoa?+K~? zhzI7$m=L$0Ms|YTW5dUq$Ws8FdQyq{L5YnWH2-B$0zx|u2;SgcA0YzNsZ>7wLmDk> z7Q%K{`QZq*AVCSma7zn13sa5^<1X2hB5=Ecx8bIC?DEHST{qvO1Y&u6KfawyiCVt% z(5w37W+qec!7^ zW#D%)=U8;xv#>Gv+GF>OX;u?@XH<9s^cU&;>Z5S%4#~e1pXAHHz*rt9#;a}aIs%IF zU6J`NVKl8DuMG&N+^z{je|m}z>-|`kfsbXPlgN;PXN1rOgdtP@ZVJ+8`5xg^!A39C z%+;gHk`M5Wh0$~pOAr|t&7wyyO&q~nGNhh=f8@ADm?K+1Ejqm=#~zaJ?aQ32t6|T0 zXn;6b_!>xGk?G|XDzb}r;tNlimSu>P-C#?gwmP5(BYMb!!+dEAbpqL31f4y~K{Z)} z0>sIbYCwDkIk~o}%>PRs5b&Do)iu^{y_lR7aTGr2y3c(>!Ox7=-(5&d*12B(20$I} zLs4MjU<_;)3BcliZ3lR2oHqN}v0q-#zOR(agdBeQw>QbnlU`~YV3fp&q7FGB< zbs-rNma*yTZ-q+aX~U`y23RVx%-=KW;x306|A&}a3V1SHqqTUSWl)<0G_|d%t)?V? z_hULZbV$P4KGIET0fi(7f6X2y*|P=6ZkuHreF@$co(z2{){;a}1U(LgVM>M-Y7?fj zKyi0!|6j^kIV+Aca5F;N6!6L974F*Xh;M(cc%M9UXgWi;P+;6(?Ea@Z52}w3r@Er| zr|C9WYB1C7vmM!qN(u)~`>Qo;h*axlO=A~bn1%Z@I#-@8O~#Qy++j8ey^M3lr@9YL zyo)T8mNdcSp9!FTu+9N>gh)sL#o4bzewcZRG6d0k9_L#)v!?5MgQdI#KIM=g-xQ_0 z4LA_%wmVs~Js+IfnHO;-zMd)6Xn-bOo42=ZtbGD`=9ricUN&trJx9(TaCoGkq#aM= zYKBGWE>#C62^<*I_g@x?#uRC63(jn#5JgJ#$~k*(1bP4jb1DkPCF zp3!qsmO6TPTD-Sy-#egCRvZ96Z)5plNuHWi+o@};sT6p4{I_FczMpP=LK>=Z?1ZqM z78Co`y%y(gKf3RCt^mJjCj|p%VhTZJ8ZJ}Lcbj=<5IEsXTYeS{|4;T2Pe#*Me;+SC z^AQ}dWsl4MZzfJsV@BMz>O*}z@WV29|)c?@*_U+^wm&?uXR;p_a4ULUT z{J)SZ^Mdeb>W0#Ds!Jr+PS|(x#2H&?O>9Z()#Cl^yzahS5Ia!h`SJcs+J5A$dRl$S zCXxb(mB_D8U{McV_NMQB_C(D1nnV@Hx26Z&t^o9@FC2hGl^#`}fdzj*k-EU+z z1=RGF{^~p}VS~!LnA9xZM<4)WUm_)bk&|cxB0npRE^8t_=rXJ6?(~myldc|4*YNR6 z;tvxmwZ8i^jPI84(OXKa_jJP2slL3VI>w(`s4J2Ge0Z%g_S|jd0v~0LIS`!+2|0{- zdfg{Xs$-Id`4!I@Kj;#RxY3enIpf}j#A5a_Sjq%E6{iuR9@@tj@gzV=9QO2e4Pk-w z-faGbE^8lm4=b5U0bJBx@}E==pmV27XgjZSdO{jHg0Sd+g+RI7KFCE(hJD~1hwVG8 z5N~rvBWbM55JHKyg^Fqk+^&&hp^^bfL|Cv4l`h8GxqukT)o+##n=K_(QQ5K62$^}to^PV=nY(&3Kot!0^TK+vz5H7!h$lGorD|rHWcJ_rB%Wp`@ z-{iHTzkXd&fg?+-Y|Q)#whXJQbx{0P`en9odb~$A0lP$nS~}l?NxTGsDJbKoluA!fh9lZ4sO;ahP~h zDzShq{GT#zFtIfcoooc16PgNl{kqcnA7+%eI|3<8vxnS8xAoF<~^P96GTm~`-yT6SUY{z<#M zT8fMlW43M-ACPT^Yhr*nQU7N3$D0E3JK{CZYkIJ=r`@TkDhG)MmSMeoIMs8!qeGs< ze&YSCU9tz|ypxeN9(It$JbbcU{>+acas?j923|%5=d$Pi><81^n&$_?n?yU(yZIla z@=sCdq7#+daOjue0x0l-A-YoD`=p~aewN>}u<)@jU$I}l?pnOrt%-EZ^>v--@F%+B ziZ$}6@Z-(5_X#-2Er+p4tw-rbu_4Mo4NV&#MhWb(itGWhHTa<8svY57E(Wr`1!Uv1+t_+a8_+Y z20mSq{j&p+wKaM&&wc4pL``kw8sfG&Myb{?Ifrq-ncs>ty@}VMI|HG+9!H-I*J>^n zc^x}|EpSGU8j4+A-*5MYP zTC`d$_J{($7v_tt_D~u^louW(;b%0INr}G&Zuv?eJw~|MGbZ=|xE)N6Q#oT1CSJOs ziODZ>(HvdStOFl{_ljLtj+!B^QvV9NER&pN@DTz|0az8~OWZ5J^{CO`jHZFbgS7I; zDEu&*6m8S=AysLvTKP6eTkg*uN`_lQ4mS?x+TzVl9BIo@sKvU#^I6_zBU*Jw_v%A_t5z#np zP1q10Pj_E$#DqO>xk<>=tL^=fhOqF)(!J^@==jY2ko;X%gF02KC}u0uBNI*YiWm=WG@W2#UaNT zIf<*}74j0;LS|%5Y0O24Ag<{mO|{}|${;tLfJsj>y8cT^2ISiN0xbK)J_^pykjps_ zBf;CoVeEJ-uORFBrzzfGg^j<>j=rX+4_ghPUt;Xmx8F+6L3!--f`&z!9GY6qr4b9> zzRUFAUI_iN1h?vIr$jf#NbHciltuSaI+{L9TvZD;G!lLj*qtti*1{F`m11(W_~7ez zK7!Mn-&jyu!hr~sUqz-l*6VDD-sf~w4|^SNy3|BCASm!tss*3&=}^^6xLPl96JpD` zKkDvguzb<&3zVs7^rN-D#8lq32c=3B$9 z4G+iA3O+YS#q~FMFl`DOtZxrxD5VQfS_xE+qc-O%{`#o`z4rv6GxJ~d@PZj@JBiPA zKNjkE%z01X8`3On2C z8AoAYhe!-`={Mg~$&0nQZzDY3?PMp??acfi7f_7IjgyG)7N3S%Qu3$N6d$So(~s@h zk%|@@-f4wfW(KY+ z;X%LI8{(N7gRs}acq#Tx_oZ{ibW%MlrG?|dl~g9MTQcHa5~4l0$LBb&S0{4esK6P+wJCj&263gC z4yMk`JbT!;Iajv$`7Sl)ayqW+pB5L9ISZv+ z*x>}Ya5DJWZCOzp?mUt$;8-E>N78`E_P*VO6leAOlbqj8y0^a(gJ~&S3=c}V_LJKP zR!C`T0a6kf5+|D!CTu8WXoNDp5HXK;BG(H8i~IhGxKmyR0qPRbSJciW$*Nn}zw^PX z4lm>_oSh#y)Y9%tlt4rgLI7NP1^N^Swue1m3I})l`Ju!Y5yoa%6i>HiZIo}~-eY6$ z(_K}7^tKg@zJqDvF)ZDLc}}?c5ZJZjis;=<8cx3CUhik{!2-AgPJjA8Y<+47!UT@Q zo$TTTOyNn1k?CPEVqZwKR-;o{d2B{ga6d$Ma(w>40{18P*KHYGK*hTT8702#IP&-Jbg~kO z<9+_rA9>s8XOQ|Vu~@ZT-ga|jsAv3h+3R_Bb7nlm{_&diwu1B9 zS|cnnnH#`>#5iMZ@@MXZG1i_g96o0wL-fap!&u{{BZAf8bJ3l!|ghXtlyI^138Hh(H@oN-El5Z3AyJ7qOfFO)p34oerD{ z>pKY^5GMePVIUm$#HKKxEo3rQ^CmBZ4=pGF`0+m9nQ3S;TC3H4L6HR=35t=A#vSuk znYz6mO*o6m!-y{fuR~Ekkn5oY>FqQwXwqGR0#y!-KTQz4MHqfzV$6s_alXlS3PvEV|(dMC>7l+XAqX|IS(A1z8k zR=t&mrym-W!_HKfkBNFB+~wk^G);}cbYjru^6!CffQM@mK>wcM``edot3n<&uZHcs z$X_WOUS%>2mOGQXZaBFYc6YKk{lahgEsL7col_;AQtT#~>Pg{72JE^g zGb+ZD+Bz=$n@DRX;S?!mvr^)YMxW`nG*k+M(HJ>0t4=${y_`rSjo+#)~y#Pl4?(5 zKGZ{jZQ!TGLZ;jggzHv*5vgr|{Zl^bQRRMxR+o*~`|FupI*gifKHAWZcAZeyn>Aj%pl8g!fPoyLf1Npg=CmWbpm`Ag|V{-}GC*dh9G>`(VPHR<~5+UhtW%0NqL!1kW5 zK$km9anJ!Hm(S`iPtLxZ+MeI0)O1ai3904jZd|CLumrrSkU?v0IyX*?$K61VtLKFG zYJcY)u)z6Q&H;M*a1ll(r@GyEyxAn7{l~KO8mHS@cO0QPV7~D6Vv}--B3O>H8mPIr z8O-lrihXKv7|7Owp9;V&5u_F2~2 z$;fDpFrlXiJo95&BnA61#<*L-%rvuv?md(NzHdw1=$R6Su~h zC%$u=I;z}5Yh%x3;ujXy5-A$u;TG0`i8!pRzn9rW_f2eRNJ)iw2d91M7|5`@yasrb z=O(_{gBJWs%_(DKusJ(@B)WOHK6umP>kjJXy~wE`CP^|FQMFa*tEsXt4*J5?vY7}lrd<~ z#ZN=+H2J+;L)O*riZk#pI9yK*#$1Di1qrj-w0nj7sp+mlzo(lti!E9HgpyO zDhu#e_iz=>Up$(8{fqde@X>x3r{j3>@5-ju#%Rs)Lu$jX=cnrze&hMufy;bsRUz$6 zL@YE?g1w(t!tGX+eM%FH=V*wa9(YKp7(|UI3GsG+_xsMeOK4oV<4ViJ!3^uOk7Bg* z`h0`?c^vU8$+vD2RC)8g1cRM*fgee{I6{$-F&?Li=r>=wKo^mU(=`iOW|wPjdSUxj z!->7`S|MDM857+*i_P+qqo$?u_)u-bpUC)O6Bx=A~;1%x$ENDYTzE8dg@E& z_F{6}X#{a9nP1GCf8a2+;%O#nP++*No#J6}T5-&8fzQ;#?0iUil(U|zo?(QURuDa4 zEFS3~h?Kx33QZ9mF5iHA#c{RXRSHVLALLGF8g*jf>UU2W52c_ajFLbpAfK08Eirp+ z?BDKq{4|mKOO-n(`QUeFlgn%B{_1I)vmZcY9I*oL0+rucJza@}#@@bvaq+&P0TU*V z+7+&r*zb_lwvc*V{Ao6i!h|ra8D;JOoiYvn2@e~Ayn%2oz3Y68<<=ESLwTf3RC<;z z#e)iA3l3=hp-{MO7-P#_^i_p^sz+mpZp{@wGA!i2k~myG=f1^HQ!dmvfhJycIgsEU zc~4l9(e>rc&Re)|1-!nmwtZBF__fh;5wHyf7&+^AjCz9LnElzCsEa)&VEsO9`k#zn zhf*4~YD0c?QWpItcG2bJg?hDy})cty~KjAm)h)5_X7UKE^ zbT}B3lUFeANEpNs^%R7aNEK8}z|E7zjfn!(&IL%+_j?p;U1WH&#dI|2NX7-dnUKRg z*`$0D{RFwDRxdy2Ill{nU;_UxUv8;_#8$?#Q#w`t8e;YViF$}rMFv!^r<0Jz9H+o4 zvJ*GL8M?gfSce6avjGJqrmMp)9Oh6{Qfe+3wNwI5-u;El&E~?cV@*7HVK1tG-Kapo z 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

P++4}*r1XH`QlMky;K2}F27Li^tK-V6B8#NuG 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 literal 42795 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 From 59485568cd206c721d8490f6243b0d8deef0e6c3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 2 Oct 2026 17:43:40 +0000 Subject: [PATCH 5/7] Polish: closer default framing, demo-matching harness road, ground follows pose Co-authored-by: mat --- extensions/model_ghost_preview/README.md | 2 +- .../extension/dev/capture.mjs | 15 +++++ .../model_ghost_preview/extension/dev/main.ts | 30 +++++++-- .../extension/src/scene/GhostScene.ts | 62 +++++++++++++----- .../extension/src/scene/truckModel.ts | 26 ++++---- .../media/current-truck.png | Bin 98094 -> 60973 bytes .../media/ghost-preview.png | Bin 104403 -> 71722 bytes 7 files changed, 98 insertions(+), 37 deletions(-) diff --git a/extensions/model_ghost_preview/README.md b/extensions/model_ghost_preview/README.md index 762eec1..fe24027 100644 --- a/extensions/model_ghost_preview/README.md +++ b/extensions/model_ghost_preview/README.md @@ -74,7 +74,7 @@ Poses are drawn in the topic's own frame. That frame is the panel's fixed world glTF assets are Y-up. The loader applies +90° about X before the yaw/pitch/roll offsets so the model stands Z-up. Set roll to -90 to cancel that correction. If the URL fails to load, the panel shows the error and falls back to the truck. -Once the pose range has loaded, the camera frames the path from a rear three-quarter view. Hovering a path vertex sets the preview time; a click without a drag seeks. Orbit dragging is left alone. +Once the pose range has loaded, the camera frames the road around the current pose from above and to one side, pulled in so a long haul road does not shrink the truck to a speck. Hovering a path vertex sets the preview time; a click without a drag seeks. Orbit dragging is left alone. ## Supported schemas diff --git a/extensions/model_ghost_preview/extension/dev/capture.mjs b/extensions/model_ghost_preview/extension/dev/capture.mjs index d61a09d..fb4c294 100644 --- a/extensions/model_ghost_preview/extension/dev/capture.mjs +++ b/extensions/model_ghost_preview/extension/dev/capture.mjs @@ -45,6 +45,7 @@ try { { timeout: 20000 }, ); await new Promise((resolve) => setTimeout(resolve, 400)); + await dollyTowardTruck(page); const panel = await page.$("#panel"); if (!panel) { @@ -75,3 +76,17 @@ try { } finally { await browser.close(); } + +async function dollyTowardTruck(page) { + const canvas = await page.$("#panel canvas"); + const box = await canvas?.boundingBox(); + if (!box) { + return; + } + await page.mouse.move(box.x + box.width * 0.5, box.y + 28); + for (let step = 0; step < 16; step += 1) { + await page.mouse.wheel({ deltaY: -100 }); + await new Promise((resolve) => setTimeout(resolve, 20)); + } + await new Promise((resolve) => setTimeout(resolve, 300)); +} diff --git a/extensions/model_ghost_preview/extension/dev/main.ts b/extensions/model_ghost_preview/extension/dev/main.ts index 0638061..6b0a1c1 100644 --- a/extensions/model_ghost_preview/extension/dev/main.ts +++ b/extensions/model_ghost_preview/extension/dev/main.ts @@ -19,17 +19,37 @@ type PoseMessage = { function samplePath(t: number): { position: Vec3; orientation: Quat } { const length = 96; + const scale = length / 280; const s = t / DURATION; const x = s * length; - const y = 18 * s * s; - const z = 1.5 * s; + const y = scale * (35 * Math.sin(s * Math.PI * 1.5) + 8 * Math.sin(s * Math.PI * 4)); + const z = scale * (6 * s + 1.5 * Math.sin(s * Math.PI * 2)); const ds = 1 / DURATION; const dx = length * ds; - const dy = 36 * s * ds; + const dy = + scale * + (35 * Math.PI * 1.5 * ds * Math.cos(s * Math.PI * 1.5) + + 8 * Math.PI * 4 * ds * Math.cos(s * Math.PI * 4)); + const dz = scale * (6 * ds + 1.5 * Math.PI * 2 * ds * Math.cos(s * Math.PI * 2)); const yaw = Math.atan2(dy, dx); + const pitch = Math.atan2(dz, Math.hypot(dx, dy)); + return { position: { x, y, z }, orientation: headingQuaternion(yaw, -pitch) }; +} + +function headingQuaternion(yaw: number, pitch: number): Quat { + const halfYaw = yaw * 0.5; + const halfPitch = pitch * 0.5; + const yawQ: Quat = { x: 0, y: 0, z: Math.sin(halfYaw), w: Math.cos(halfYaw) }; + const pitchQ: Quat = { x: 0, y: Math.sin(halfPitch), z: 0, w: Math.cos(halfPitch) }; + return multiplyQuat(yawQ, pitchQ); +} + +function multiplyQuat(a: Quat, b: Quat): Quat { return { - position: { x, y, z }, - orientation: { x: 0, y: 0, z: Math.sin(yaw / 2), w: Math.cos(yaw / 2) }, + x: a.w * b.x + a.x * b.w + a.y * b.z - a.z * b.y, + y: a.w * b.y - a.x * b.z + a.y * b.w + a.z * b.x, + z: a.w * b.z + a.x * b.y - a.y * b.x + a.z * b.w, + w: a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z, }; } diff --git a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts index 354ba25..e7447e4 100644 --- a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts +++ b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts @@ -31,6 +31,9 @@ import type { Quat, Vec3 } from "../poses/extractPose"; import type { FollowMode } from "../settings"; import { buildGhostObject, type GhostAppearance, type GhostObject } from "./ghostMaterial"; +const GRID_LIFT = 0.02; +const GROUND_DROP = 0.04; + export type ScenePose = { position: Vec3; orientation: Quat; @@ -260,10 +263,7 @@ export class GhostScene { this.#currentRoot.visible = pose != undefined; if (pose) { applyPose(this.#currentRoot, pose); - this.#anchor.z = pose.position[2]; - if (this.#grid) { - this.#grid.position.z = pose.position[2] + 0.02; - } + this.#setSupportZ(pose.position[2]); } this.#applyFollow(); this.#requestRender(); @@ -288,9 +288,7 @@ export class GhostScene { visibility: "shown" | "hidden"; }): void { const count = Math.min(path.times.length, Math.floor(path.points.length / 3)); - const first = path.points[0] ?? 0; - const last = path.points[Math.max(0, path.points.length - 1)] ?? 0; - const key = `${path.visibility}:${path.color}:${count}:${first}:${last}`; + const key = `${path.visibility}:${path.color}:${count}:${hashSeries(path.points)}:${hashSeries(path.times)}`; if (key === this.#pathKey) { return; } @@ -354,19 +352,35 @@ export class GhostScene { } framePath(): void { - const start = this.#pathPoints[0]; - const end = this.#pathPoints[this.#pathPoints.length - 1]; - if (!start || !end) { + const pose = this.#currentPose; + const anchor = pose + ? new Vector3(pose.position[0], pose.position[1], pose.position[2]) + : this.#pathPoints[0]; + if (!anchor) { return; } - const bounds = new Box3(); + const local: Vector3[] = []; for (const point of this.#pathPoints) { + if (Math.hypot(point.x - anchor.x, point.y - anchor.y) <= 50) { + local.push(point); + } + } + if (local.length === 0) { + local.push(anchor); + } + const bounds = new Box3(); + for (const point of local) { bounds.expandByPoint(point); } + bounds.expandByScalar(6); const focus = bounds.getCenter(new Vector3()); + focus.lerp(anchor, 0.4); focus.z += 1.2; const size = bounds.getSize(new Vector3()); - const radius = Math.max(0.5 * Math.hypot(size.x, size.y, size.z), 12); + const span = 0.5 * Math.hypot(size.x, size.y, size.z); + const radius = Math.min(Math.max(span, 14), 55); + const start = local[0] ?? anchor; + const end = local[local.length - 1] ?? anchor; const vertical = (this.#camera.fov * Math.PI) / 180; const aspect = this.#width / Math.max(this.#height, 1); const horizontal = 2 * Math.atan(Math.tan(vertical / 2) * Math.max(aspect, 0.5)); @@ -443,7 +457,7 @@ export class GhostScene { dark ? 0x3a444e : 0xc9d1d8, ); grid.rotation.x = Math.PI / 2; - grid.position.set(this.#anchor.x, this.#anchor.y, this.#anchor.z + 0.02); + grid.position.set(this.#anchor.x, this.#anchor.y, this.#anchor.z + GRID_LIFT); this.#scene.add(grid); this.#grid = grid; } @@ -514,14 +528,22 @@ export class GhostScene { } const span = Math.max(maxX - minX, maxY - minY, 40); this.#gridSize = Math.max(span * 1.5, 80); - const poseZ = this.#currentPose?.position[2]; - this.#anchor.set((minX + maxX) / 2, (minY + maxY) / 2, poseZ ?? minZ); + const supportZ = this.#currentPose?.position[2] ?? minZ; + this.#anchor.set((minX + maxX) / 2, (minY + maxY) / 2, supportZ); this.#ground.geometry.dispose(); this.#ground.geometry = new PlaneGeometry(this.#gridSize, this.#gridSize); - this.#ground.position.set((minX + maxX) / 2, (minY + maxY) / 2, minZ - 0.02); + this.#ground.position.set((minX + maxX) / 2, (minY + maxY) / 2, supportZ - GROUND_DROP); this.#rebuildGrid(); } + #setSupportZ(z: number): void { + this.#anchor.z = z; + this.#ground.position.z = z - GROUND_DROP; + if (this.#grid) { + this.#grid.position.z = z + GRID_LIFT; + } + } + #measureLabelOffset(): void { if (!this.#model) { this.#labelZOffset = 1; @@ -810,6 +832,14 @@ function isMaterialList(value: Material | readonly Material[]): value is readonl return Object.prototype.toString.call(value) === "[object Array]"; } +function hashSeries(values: Iterable): number { + let hash = 0; + for (const value of values) { + hash = (hash * 31 + Math.round(value * 1000)) % 1000000007; + } + return hash; +} + function linePositions(points: readonly Vector3[], lift: number): Float32Array { const positions = new Float32Array(points.length * 3); for (let index = 0; index < points.length; index += 1) { diff --git a/extensions/model_ghost_preview/extension/src/scene/truckModel.ts b/extensions/model_ghost_preview/extension/src/scene/truckModel.ts index 6d1c3df..ad996cb 100644 --- a/extensions/model_ghost_preview/extension/src/scene/truckModel.ts +++ b/extensions/model_ghost_preview/extension/src/scene/truckModel.ts @@ -1,4 +1,4 @@ -import { BoxGeometry, Color, CylinderGeometry, Group, Mesh, MeshStandardMaterial, type BufferGeometry, type Material } from "three"; +import { BoxGeometry, Color, CylinderGeometry, Euler, Group, Mesh, MeshStandardMaterial, Quaternion, Vector3, type BufferGeometry, type Material } from "three"; import type { Vec3 } from "../poses/extractPose"; @@ -31,6 +31,8 @@ export function createTruckModel(bodyColor: string): Group { const root = new Group(); const wheelGeo = new CylinderGeometry(1.1, 1.1, 0.86, 20); const hubGeo = new CylinderGeometry(0.42, 0.42, 0.98, 12); + const hoistGeo = new CylinderGeometry(0.12, 0.12, 1.15, 12); + const hoistTilt = tiltTowardBed(0.4); add(root, { name: "chassis", geometry: box(7.0, 1.4, 0.42), material: dark, position: [0.3, 0, 1.15] }); add(root, { name: "frame", geometry: box(6.4, 1.2, 1.22), material: dark, position: [0.15, 0, 1.7] }); @@ -46,20 +48,8 @@ export function createTruckModel(bodyColor: string): Group { material: dark, position: [-1.3, 0, 1.1], }); - add(root, { - name: "hoist", - geometry: new CylinderGeometry(0.16, 0.16, 0.4, 12), - material: dark, - position: [-0.35, 0.42, 2.28], - rotation: [Math.PI / 2, 0, 0], - }); - add(root, { - name: "hoist", - geometry: new CylinderGeometry(0.16, 0.16, 0.4, 12), - material: dark, - position: [-0.35, -0.42, 2.28], - rotation: [Math.PI / 2, 0, 0], - }); + add(root, { name: "hoist", geometry: hoistGeo, material: dark, position: [-0.15, 0.78, 1.9], rotation: hoistTilt }); + add(root, { name: "hoist", geometry: hoistGeo, material: dark, position: [-0.15, -0.78, 1.9], rotation: hoistTilt }); add(root, { name: "deck", geometry: box(2.5, 3.3, 0.16), material: dark, position: [3.25, 0, 2.42] }); add(root, { name: "bed-floor", geometry: box(5.5, 5.6, 0.16), material: bed, position: [-0.55, 0, 2.48] }); add(root, { name: "bed-wall", geometry: box(5.5, 0.16, 1.35), material: body, position: [-0.55, 2.72, 3.22] }); @@ -139,6 +129,12 @@ export function createTruckModel(bodyColor: string): Group { return root; } +function tiltTowardBed(radians: number): Vec3 { + const direction = new Vector3(Math.sin(radians), 0, Math.cos(radians)); + const euler = new Euler().setFromQuaternion(new Quaternion().setFromUnitVectors(new Vector3(0, 1, 0), direction)); + return [euler.x, euler.y, euler.z]; +} + function add(parent: Group, part: Part): void { const mesh = new Mesh(part.geometry, part.material); mesh.name = part.name; diff --git a/extensions/model_ghost_preview/media/current-truck.png b/extensions/model_ghost_preview/media/current-truck.png index 11ba8f6bd5d62b718f5ec5e9b44f2acc131188b6..7bafc59a06a92cb986496f06be710aef2603b0ce 100644 GIT binary patch literal 60973 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
lcxvTX~eSS7esFKO0;j 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

qi!2@Nm^e+J{ylm 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 z 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 z

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 diff --git a/extensions/model_ghost_preview/media/ghost-preview.png b/extensions/model_ghost_preview/media/ghost-preview.png index fa4af8eb683eeb7e006796f4273ffdd8350bc2f2..46732fb598462ff1403f7036ca39346cf90c1896 100644 GIT binary patch literal 71722 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%0Acs-GTSa@ct+`s$HLJ2_{U;nC7eXpwj&iNv{%{ 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πg+U}dNxQ~%ICPwC-*V>PJ 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 z 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

P++4}*r1XH`QlMky;K2}F27Li^tK-V6B8#NuG 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 From 55e8b322e030df1d2b24cdb86ee2c4da0e01a355 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 2 Oct 2026 17:52:43 +0000 Subject: [PATCH 6/7] Keep ground from occluding path and ghost; skip path rehash when unchanged Co-authored-by: mat --- .../extension/dev/capture.mjs | 30 ++++++++++++ .../model_ghost_preview/extension/dev/main.ts | 4 +- .../extension/src/scene/GhostScene.ts | 43 +++++++++++------- .../media/current-truck.png | Bin 60973 -> 60942 bytes .../media/ghost-preview.png | Bin 71722 -> 71682 bytes 5 files changed, 60 insertions(+), 17 deletions(-) diff --git a/extensions/model_ghost_preview/extension/dev/capture.mjs b/extensions/model_ghost_preview/extension/dev/capture.mjs index fb4c294..5d6d546 100644 --- a/extensions/model_ghost_preview/extension/dev/capture.mjs +++ b/extensions/model_ghost_preview/extension/dev/capture.mjs @@ -73,6 +73,36 @@ try { const ghostPath = path.join(mediaDir, "ghost-preview.png"); await panel.screenshot({ path: ghostPath }); console.log("wrote", ghostPath); + + const lateUrl = new URL(url); + lateUrl.searchParams.set("t", "34"); + await page.goto(lateUrl.toString(), { waitUntil: "networkidle0", timeout: 60000 }); + await page.waitForFunction( + () => { + const root = document.querySelector("[data-pose-count]"); + if (!root) { + return false; + } + return ( + root.getAttribute("data-loading") === "false" && + Number(root.getAttribute("data-pose-count")) > 50 + ); + }, + { timeout: 20000 }, + ); + await new Promise((resolve) => setTimeout(resolve, 400)); + await dollyTowardTruck(page); + const latePanel = await page.$("#panel"); + const lateTimeline = await page.$("#timeline"); + const lateBox = await lateTimeline?.boundingBox(); + if (!latePanel || !lateBox) { + throw new Error("Late-seek capture missing panel or timeline"); + } + await page.mouse.move(lateBox.x + lateBox.width * (24 / 40), lateBox.y + lateBox.height / 2); + await new Promise((resolve) => setTimeout(resolve, 500)); + const latePath = "/tmp/late-ghost.png"; + await latePanel.screenshot({ path: latePath }); + console.log("wrote", latePath); } finally { await browser.close(); } diff --git a/extensions/model_ghost_preview/extension/dev/main.ts b/extensions/model_ghost_preview/extension/dev/main.ts index 6b0a1c1..354c572 100644 --- a/extensions/model_ghost_preview/extension/dev/main.ts +++ b/extensions/model_ghost_preview/extension/dev/main.ts @@ -108,7 +108,9 @@ const messages = buildMessages(); function createContext(panelElement: HTMLDivElement): PanelExtensionContext { const start = { sec: EPOCH, nsec: 0 }; const end = { sec: EPOCH + DURATION, nsec: 0 }; - let current = EPOCH + 8; + const requestedText = new URLSearchParams(window.location.search).get("t"); + const requested = requestedText == null ? Number.NaN : Number(requestedText); + let current = EPOCH + (Number.isFinite(requested) ? Math.min(DURATION, Math.max(0, requested)) : 8); let preview: number | undefined; let playing = false; let rendering = false; diff --git a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts index e7447e4..4a241b7 100644 --- a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts +++ b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts @@ -73,7 +73,10 @@ export class GhostScene { #pathPoints: Vector3[] = []; #pathTimes: number[] = []; #receiveTimes: ReceiveTime[] = []; - #pathKey = ""; + #pathPointsRef: Float32Array | undefined; + #pathTimesRef: Float64Array | undefined; + #pathColor = ""; + #pathVisibility = ""; #anchor = new Vector3(); #gridSize = 180; #label: HTMLDivElement; @@ -149,8 +152,14 @@ export class GhostScene { this.#scene.add(this.#sun); this.#scene.add(this.#sun.target); - this.#groundMaterial = new MeshStandardMaterial({ color: 0xc5ced6, roughness: 1, metalness: 0 }); + this.#groundMaterial = new MeshStandardMaterial({ + color: 0xc5ced6, + roughness: 1, + metalness: 0, + depthWrite: false, + }); this.#ground = new Mesh(new PlaneGeometry(400, 400), this.#groundMaterial); + this.#ground.renderOrder = -1; this.#ground.receiveShadow = true; this.#scene.add(this.#ground); this.#scene.add(this.#currentRoot); @@ -287,12 +296,19 @@ export class GhostScene { color: string; visibility: "shown" | "hidden"; }): void { - const count = Math.min(path.times.length, Math.floor(path.points.length / 3)); - const key = `${path.visibility}:${path.color}:${count}:${hashSeries(path.points)}:${hashSeries(path.times)}`; - if (key === this.#pathKey) { + if ( + path.points === this.#pathPointsRef && + path.times === this.#pathTimesRef && + path.color === this.#pathColor && + path.visibility === this.#pathVisibility + ) { return; } - this.#pathKey = key; + this.#pathPointsRef = path.points; + this.#pathTimesRef = path.times; + this.#pathColor = path.color; + this.#pathVisibility = path.visibility; + const count = Math.min(path.times.length, Math.floor(path.points.length / 3)); this.#pathPoints = []; this.#pathTimes = []; this.#receiveTimes = []; @@ -567,9 +583,12 @@ export class GhostScene { this.#label.style.display = "none"; return; } + const pad = 28; + const x = Math.min(Math.max(point.x, pad), Math.max(this.#width - pad, pad)); + const y = Math.min(Math.max(point.y, pad), Math.max(this.#height - pad, pad)); this.#label.style.display = "block"; - this.#label.style.left = `${point.x}px`; - this.#label.style.top = `${point.y}px`; + this.#label.style.left = `${x}px`; + this.#label.style.top = `${y}px`; this.#label.textContent = this.#labelText; } @@ -832,14 +851,6 @@ function isMaterialList(value: Material | readonly Material[]): value is readonl return Object.prototype.toString.call(value) === "[object Array]"; } -function hashSeries(values: Iterable): number { - let hash = 0; - for (const value of values) { - hash = (hash * 31 + Math.round(value * 1000)) % 1000000007; - } - return hash; -} - function linePositions(points: readonly Vector3[], lift: number): Float32Array { const positions = new Float32Array(points.length * 3); for (let index = 0; index < points.length; index += 1) { diff --git a/extensions/model_ghost_preview/media/current-truck.png b/extensions/model_ghost_preview/media/current-truck.png index 7bafc59a06a92cb986496f06be710aef2603b0ce..cade4224a99fe15f3ba18e6a966095c300343e0f 100644 GIT binary patch literal 60942 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 E16lHP$N&HU literal 60973 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
lcxvTX~eSS7esFKO0;j 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

qi!2@Nm^e+J{ylm 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 z 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 z

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 delta 63285 zcmXtecOaYn_qHu&V$aH;HZ`L52r+BKs@2*QRn(>`w%8*mS}WAZQ$<^f)>fNRyQtmP zs=Y_wJkR&{=AZoaIp;q2xvq1rbM8-6Eg8O+Ed3v{g6!d0*{DpS z|99+zgc=jttNi?v6atAq0i94=lNNIOGsVt4J}I+8$Jse`hHxG zM1|zPgArtegG8pZpLi@~!gn@ZCS`R`6^Fn|pRa35zuW304xt$hOVUv&XjXiq{$6h|lGHgF8c})7>Q8+svCy|>>++*dkLvn6g-*JWRE~YjpZ>BR*X*T62ly&e;# zFp?qVX%uq*`lpx*`g1PAtkPQ-CZ+Nc=*G2K;7xJeEK;l@S@r4_Z9Zf|$hgfChjg-k zLsGj(uv1Jzct^f2m7Gq)ZXK2m-t%Y0RpDZKcEZ1yY5S}9XaW@2d#I0&8@i5qXEert z^6JrdqOSc@`UH=ZkE8jD`Tl!19(07Tc*gvdM}zAuK78sZ`~4b{0`y(*l9SDtKPFGV z;8tm>4EKAEjipdSzcj7o;>u`b6qSKEedDx0_1O-uJQOhVJiqGbN(dvnEHQL-_>FEB zc~R$g8VFF&#SHz5{XaiSq+>*Cl8ow+%%vQ+0+rLPR-?ndR&NP$WC$|&(a29G_@CRv z3WYMsf%A2~n3D1@qC&m|2a`3OARX^fo1d{-rRlezI}2xb=+f^W?XhJPzo8VlFQ%(1 z^ZWaMaR>qlam-dW^Dy#FrHR^!%6o^6W?}FbsBF_c>-|i#uuN;`nOI&%sm_qEvCz;L z(8UyHVEmh-#I7Z^KR~^!(Rm?8dTkv*%*axU5w;*G^*#vcHc#X8PW+XHU#>P_9i=*Oh z=W6Lf!v92ac`diWyCab(#(y8!O%_B~tm&pDt*{&Vo4tm<-C+(A2WVFAdZQZaWt+g_ zL8fDt4do?u<~A2R!U*2c8>Ny%TO!I!3t$cpTV9+uDFgrUL~Xhc^X)$nc$>Az9>OKc zXKGmun!`G*pNB((GN4FlJH5P_!ey>sJuT~O8%2{fB#E@Y%sD%!BZ%=voG&-yM zXWWc$!$0N>RGC?1u>a!0kYOlL-UPPm;01lRY__5h;_BT%Uz-`OyKZF`BHQOy&Kd7` z0>j@t;`l3Hn9JD&kzspdg z=gufvXs!Qfx+;twwnN1r{^yQ@;0~zY%rnDsQib2@sCBD&!)ORLffPNGGw`QiaepLn zheW!7M1GjYE!+zxmoA}g*!efV$T0Di?N4L2%?X|PPIRR}2-3BRc#^HW<}nYO@kuRX z5_l&D8B(;7My<&=l-4x_-r0o?KIEeGYIJdZDBBSvcfank}n1kSxq z?NB0r`Yr>#SxOq_vjKxSV3(;_(H7?GCIPpI`DCVZ1yt5-e2vAVb;JGRt_0zaUtAn& zJ4%~f&i^qEdSiWejh^?W^!X*Txeni<@h|$!i2tgEnm7R>QUs2VXiM||PEMoci^i*b zd?zFHm=4{HZw^!!@Xpd`HjzTR{Zv&}b0`WQKt{eu5J2GNo#sL;~I^lIxQAXj0!_IBZ3IE zQmG8`C#TZ=9_xp>#k<}Lyz-%k3;iC$I{HR^+~sONVEa_14i6WtyJ4XerYxWDhc+P+ zx>@s8;Zky<8W+ryMrb4OPOLiE`4YD^6X?Kv!H}@E5uXE*EWuu3l(MZP&`Sw+yk@BS zGIS{WYxSy9aj3tUp5rC!{{Wm%D7QYk=WpYOd<%x)G57}k`9(XEhG;h2``wAOAjk5RNl-Y#=!Y_6){9AG?@RKyyRw7#^}uO$Kl%Z1!gyJZH41 ze5E6GzR_Cbzdvq3ukOo`p@Zef7c4axtN)kpZ~~_6HOwCZ^So=Msor-(;KMJeU5spOXI*TnxAgw))ffzgBq4eR`F zM?onES!7}V77BZMB?ZQ#KCTRfy#Yg5!fuz#LfX4tWOs}8{ty;8)=}1pl9>CK z-hCvvl7L))<-PPy6XCMa>?E}(4F8OQ7T#D81A7Gt$U+ zKlH<0n!vImLaoFLZ%p3{GJKrsOA z;{U{s4$;`CB|&1%WV>kZt}#+X>d3RDmzidj4I}%Q2ebj)IY+ntLANG%zlc#aGStLT z7x?A@x}H?}2$Y>hoI90$n=F|A9C2mJI4uo!QkPCp$x7EQJ?6MHY%-*qd=KiWP7f96 z;~EuW2ls_ZdIY*x^fgj~Yr$e%My+%eH1o7lqYLj9?^H%;UmBtAf9#1hh3nz z170_F2b|ZZ$301wGu^r5z}^GGi0@*(fI%podtMs3tC8;xNY*Yg@;wvU=8@1}uto83 zhqxCstYcJLOKLy;6jb%-U~C$mL_{DWT_nP+>|;r~ilBz9OyKgjb7^-l;(i+37mVnM z<^y15K!U`gSX+=LaT>M^WJ0WsJq4kNb+9@N`e@2~u0Owgw30y9bFA2Xe9K(*b*Iwf zdT{OVpWxYnYg6v?<}?-Z><6{Q{{+|COxJ7sD%>;K(braH72^sxV)#$=+5?c$%J{dG zO}iO&4evxLMAHBI6J^x&#H$-n@5_<5#;jZ7(zOu*#!VtTm%CEi&KqC{o1I9BQD+gZ;?JgTB{z-~t(! zz9k)mQIQ(Wy?C%x=2FU<#`a!}n5Z~a4W68#m_MdF9o-b&cQuU*#qq7j^X6-l9(h04 z&j|;-${qFWKWXzAY{=X_fl(Rwzn3DRdQeT9srbP3$FIU13sDak{#f*t)SzwPLE@yk zGED+fH`XE2aLVe!zdfFM0L`ZOV!Gd205-Gr!cO;dqO_9=GhXgR>^iRX!h0BXbLG9z!@TEmoXeQmtgw)$KcS$(-n zbo9TCf9YjhQk>3I=+fFO?d_t}aMb`ywlP z_~DP~2iKS|vB77&20v@04z8N-X3zvK=GaM6MUS4XRuAg;lC87QPEKi~5ab$vZY(Lg zb|6&$4sIV3eqtyLrlTKJ*V%}F4*9lKq%iESb>Md}JBn~dvwj_sVu=llYy$Typw^3(cKJ;{I7#XVg@wxf=L>w1W&(pO+F^d%MG6#F;m13~DN&5Fw~;ANSGXpCF?K zgs9E{L~31?=pwh;KcRiqJu;eAiNWR4{0#!*LT;NTU~d;;eaf<;t?p;}{-UtGGkI`Fv4KM$SRr-9r#T!_~qVzq^lI$Po#K0P5P-* zTlzp%={6Vmh=YtXdnNCf-HIbIb4}dceMY&X=C>b+-`j45W8AG#(ixTVDRi-1p3ac? z-ulC<74qv(}*fw2B%42nK4q<9@3<9#MB!@F{&ZrtHaMEh2OmTQeG}%4jW|6#zjjA{=>^l zQJp@+J|I#^D(lj1+Rt_3GTQhI_Sfm8{}4SQDa!zFl@)d$h6MR>57IuJfV+{|3cw7! zEQ?VFwm&)nO={+84+X(gRnO$2JRaoC*O8`U}gyC^JK%#z0@K zf!td?l<`&(M;`+$@4ny*N{sC4^=ed(b9oPx+QO!W-fC>$VSn|!^fv9npP~Z;4hXUE zuLq*=_~}+!yg~!&ck#Yn=R-02q-heu3R*I4PW<#B0}AV3L6Z%%3x0llOfR+ zh2Pg4b*h&I`@B`9w{3Wu6$6vD__bAxnP7}&KIvo#U7}HbeN7E@!O=4}t){KW#5C6r zOrWV0;LT{!(fubz&48ep1k{sHk>S{HbEecPl*?gQz5F{^F!q35ka!u(#UVz_gVp7b zMyNVoUOs9eH!`y`7Q2Shc8gh5KT=Sonj9G#Ol-cxeDr9E z>7^N*4AFp`$v~{`rk#tmeAd+M|2y|)PbO@K-_hrrB3@tUx1L6Kg9I5zub{eNZ?T{> z$-@5nJ?Uo|4R2$v3qVr*sBv8m`Z`O!Xlq{HN<+mGv-cWf9!f1tl}}ZoDp|z1(A)&& zTg=GM6ME+G?)-~`2aNXD9Wu+e`lkNI+=h{1sqPc13}tT{sq<3PEo<&qR(%?n=91JV z6%62M4P(Y#-H%-~j$;X4ss6P==-7#SW5vdmH)U_wVmWUBH>0f;L=Y-ns9l4_7NbWtcch*BL`F5;|l=PJ(uts%|s( z2YI+@t)0J~^=nbpXR{Nt7vJSEfO_@3YN<4J zOEb>=>O_ZxNdIJ*K1fXyrpuu6tH>(mQNv?%Io{}1=K{cF&`%3dedN#k=r8FEf_Nn* z8Mlel`TMs#u*r}CZ!6e(c;yU#mi8)d{sJB{{xgTJ)AJtDQ0`e!+qKOK(~V83bn6MR zZfs61Fwd~0xWZ?#AS2{YL8XtP);VkPk?h2DzuA{h>GO3M$LK110PZU8cA!Py)xDo5 zs2og2!XqB&dB!bPQz(fiI-C6VIPuK|gRm@3o|~)5p5pIQ(iAY`TBwf0xv5&U{6y!dWE0LLFsA{SRpoiaq;_aSi7h?qh*;;uA5=Qp2{ z;;I@Q;kpNZS#w9dECVz2@59>D9}s6GmufG%sokIaG^Y!KYU{A#(4!LSdIbl^{_vhx zCAk*Kd}Vs|`Dv}B!(Ue{^x-j$kCe{o4bSCMr)ac(uikZEH*Uh{dRkuS(#{rSG&#I` zPqjscu`|b_uFD7eH=hIr;U?h~)+qeP$aSAm zI9@jthyPY!BG9b$Y*nNvDX8me+62^GY#h% zS26KN81Gbh)ZyOfu)Lh~1>^#ZuB;t6m<}yIPrwe`3cuZEa>fyy_*JwrOWRd*vqnhc zy+ig#p0bSTKkHnq{Z-!az9pkT>=Pa-^glXaG{i*g0`zlTIpe!^n-eF2cM*A*Dd)E@ z999&Mo<%=k&y$;@6EtGX?nh(^IQK?+ke;y&*Nr8(Isj7J3hvu#bjy=Qy$OXy>E;au zaKNmNB$dZAKGX*}dZSi7yx$48z4Uq{f`pld#-D zCcUL}7~5j_WmxJVYz;(Q~-w}QGFQPdxuRy(^VnA zg6O+FtTH&7Vp2_OMw^j3dvW+Jx`nEMbJafAB?=c9$JwkQp+mylS?AUlK+P{tZZr;l zqA+Z|E}yuN}JeK;Z?o?iWEVL+m)i|z@o+fFTw)> z2rZ0_H8%_N{Vnw!CU~4;OnyMR90wl)#dzFn3n#0Z>ka32DX1AtRwetcp$+G>c3sonfa+TK@Nh4iPw`T|z?L+FcXH z$j-;0tc62}Cnw+wD$<=7J6`J4h04db9KQ8A^tF-xz~x$$29YL4RKW%eLxMZaH~s`F z8-ASonV|mIFaH-r>4~jUi`dn`a%qsuj}nUoSV2^~ADUYXj?~>>&i2RSem8_vH;+59 z!Q5v@NtrUrABf`I&1JLy=(Veq`6imavNCdZqK*8n2Xm3BQi79kT~H? z9AcLl=^P;pYYAz2BO|0I9=_~+*twY-b{ksMI`~;*{ZWI6(1O9#s=gU2fg}x=H~F4hNSYQ{Br45%M11xJn$_6X_7Ly-!Y|WLSeLC z0tO}2^OgZAZ<=*&ob%00tFsx9Vw)371PF0{@azNJhVlfDVF)c&&T)kXeYV~#M=qRB zjtV!zT|H>&4?3v}q1UZsHCXWSZCLD`Yen}l5r?HH!`5|1JidBb)SnLBit#vv3E`;4 zl-v&%`ig7e=vz$-O22ZCkY;lc={))D3Evpw2d>T%+b+@pG8b#AnuNi_`w{AxckK^r zRPvI=cjEv8&6sC)SUvL6idR0x=5zhav1xs!n{ApaPH)L#;nYIdJ=Ngzjj|N9>KnMaLM#e@v`Feww_%+LHsYe<}O*-lzRG6XKKPbJqJN%`c70 z=UZ*UzTRnKr^q<-x=PfbW2k;OfSVj{iKHnl&Kho4FiEQ1OD%|yFj*32tJkR@kl9d&OqvIsw81v#l z{GLEX<85NG42))r1!(MXkms}XZa0hV`T8IyKe@R~-NXgDyeC%nA%hPt+iUvjxpnW9 z3;^kC5D`Qk{KD00JvNnkYJvkgl#hKT1nJXthJCixK{t2b;hPsee@mSbO)rv9Wli$W z2jt65CoGlS3z}rTA26c2(8#c?-|I%gFcu)*j&xItj-z<9RfQ%g;N+}rj7#MI;MsU{ z$sb1MvV+yX&0s#QMLY)4d6AEl7n_YN@&!xNY!g)QKIKy*V(YswcG7v>SGKG$C3M%I0DD|1l4kpEFGg`m{a#u;alcr1ibVD4oG zpzk43XKfr@;3kKT^G<^M{21R2kK&?gY$bjp!c<2C^8$UcaxOj08C4v%m32OtcOYYM zDDosKp^vl8xQ5>^;Ad~2s%iiZAj7s9eF0Te)9^+ zGmu~iu@q&AoavjYs8&5RYFNgw4giELy+1m$rR)@W-A6k5D_^f*UHFyIsyMU4C~P5F zN&YK~C+=%sMRT2gLj+f3MCA&n5_}Z%-f8(pCd-<`~tG@C4UVIFzO z5-()PIG|n~;vO&4YA;A%j=#$|V3&L{T*ZlOjSUOZ_Mr{&r%yn?{lwrXlzY zP*xDn%XzV*-&FGdn2dxR_qJ90n%kSSVjl>g(4n)Bht+iq-e;XIY&x(~v+U%NHS)tvW7N+|?%Wv_QQla#-QefM4U^w3>A4G$wNB%F`Gym;^cceX zt=P0H#skJzPffCEF`FJ_@!aO_=Oha32njeL4%bJ832OZ~*l_svlRZ^2#Gj@s=SrfOO=LE9zGEJ!7V^2Aoa=Maly`@z;pHv@?bu?rBIDK3?$p>8^sMGJz+0Gp$I&fcDO7`4XR$v<_xGfBBMq4E4B4P))cT}fuuS01Mx zP=eBUVg9NM()U#f^ER+tXm)^;^HgT6M@=s8WqxH$QsIx&BMFfr7kiRLi$hA_bmz1g z03IVhV-cq|OV~%pKv}2atlMgaT*%BDYw%pJ95vQ`>l_AbuU{6(ZD0LEa0nVL?A zIXJXb{WO(6JI1NLX7!Ea-JKaSIG#uy(?MCkjNbgty)EKLeS4Dux@;kO!cuReh3a6Y zvf6(8U3~n(gmzgC=qI{CVr=j1{hhKlHF0KM?kJru%Jv=7xe0Hj7JXhihKlIM%WAIe z0|IEl%D#D3@qooD#Rsn6&X3}cPHU2CpwWA$fxR|u#`O+=JDNAJta(i zv`)MzE}Le}t-LhkAsr=R6hz+fM~afalN;{FOmfdX*J-gz675UvBfDZ}5QcmoGz}SR zuSuYs@3$TmcdqZ+$g#ARlBQ-zi(U$ezx;zv!RLzWvP^DH?NfqFo}(MTf0rPEjWIKY zm{;vXvW=ofy`SW9&QRh@@5MbiTyd+%$bE6E%}d3oGm``aKxu>6I{fG&69maP;nc(& z4g)B`-+>le=zq50&7uj-#F3kAy$6rre4AaVA7IU0A4@v)?8I;37(qjd!P)eZ+C)d| zAFf_1e*|!L@1u>>3{zTHkH@%Uyq$$ujixA!F*r*% zfF+mu!zZ*Sme7H2SURjE>QCHe<2bj$BT=)5AI%oC(79vmhdl4C0@Swwt;M%kXjRry zbKW?Esfdkt_%H|GN^FW;_~joSJ7UX%xvY0Soyf7p^|63f3^dlFPosyQ`ZGpVj(GwM z%O6P0TQ43$q|lBP{7f(@1T#)BUs($zYXwm?!OS;vJ~|t>{KOTN+&AaM{MF%p(O9zF zP~sm+G~T~r_KtU+8dDhig% z9|~<-eUH?5d&Oa|=+&x819ecsD)c7{(_kOD#=HVRfFP_ZYfcPu&ZwahCv^EKXA2^5BCR}P_@deen&N*2}tZ`dWMT}5JbFZypk zHJuav=T4yy9g~d3PrE`dqWdYdTc7m@MvK(ly`W2N$Q{~F@bRrZ=T-hvj3=GBdZR+l z{Rt%RKB?&@-bc#WNkRrobhI_=LIMZ_2go^Q->|eh=|h8I2dBS>rTq&*=<4--J-8)$ zB7I|t^!1O@%V+t@EG_Rs_cm|+3E%1g-mFJHZQK&uV)kicfn|Q-AEt5V^j>qvTS@%= zd6j5G%@wDXkNnKA8w#9Fz{F280Pa6p{}qdsFiu>d-GSr-TSYRt<5D!0{;a?0-IF>2DVAIJ?`vFjJa+q~O)!${5gSVK(cYXd zB-1sL>zO{Olajzl^3;D~q4S1l!4JdrnAX8Z74Bg#4Soty1j-)VHSHFo$bTr%W|L^O z=+pVtKPI}C)EMv>birpY;Kwb(08$Bsg_SbG z%AU_A4&uXiHRlG1DIMr=peZ$tEaGQhIdcJz32gU&RzvQ`aj)=)Hcz~ryKP0>s=2@` z)PZPoMFLP$b`Hj}qNl)&{zjMg={o`UnO<4<3_ry(o&EngJ--|5@rYH>Y(o7GL{#rL zJ`^^P?j;F%-_`YCG5wXVU+xm8KQiKAsVvx=L4e<8te5u=`$K`BQ*%n(&JI$V$Z6^l*abiwaCWum|UmNz>~&s`yFf zz$98ZsDIW0UQK@G3!-Fnj$ySZ;1t)?X!#J896s1DcLt(RTuqDLJP_qG~l2r}J2T73PbEre9x^D7aNl zc)wEk(6JKMWrdgahOb;ZV&?a;l5L8~9t9Y65?rdt1D|hBZ1Z07>Y#N=C3Jk+LM5d! zK)_x$M_Z;cvsNIfww~)U_MY3e7ROMvs8K&_bkA;2@)Xt06n1)z>P&I0`HgCk;E0fC zwHrg2ppzf<1_k&Db73fT=S;ly%h;iX!r+X!S2y-``!d!7>fGshZO|_o#f^W1_efhi z^HKo_Ib!-wDvY`u@dDY~c66b>Ba0F0k5(=QmX)AsZ$vE`$SdPwM32<)dcL*c-@>%1 z=$%=ntXrxI{fvUnonHTJF8Ta;&zY4L4bOfLJicYAW>}BGZUCpa>}nPazYl5NmWGJl zwGC9LXV=uNJblw%=&w2EcQ%8~D-I6SoGpyXrJCC%Vp^u&Qr4ZxLo>2!$X3$FuXnG0 zZM8Rs-G9xqIoE;so+6<6)bXQq-s9lyx;fw7`x7$$tG4Xw=x?^$zZCLg+pW7pu1Z=9 z$g^Zv>qdKi;kgg2ikwIM%Lr@UQ`B8Ha{5k|{C>`?V@`o>eezKdeZuocQ;$NUTEo5k z*jokNMtwB%sEW@ch)2S-WT5b zcYF~yEtVWoU#~1a{Te3d^owkZ(n3I9rf&xsngrK6F1VvMyA9gbk1sPdj45y@hsS78 zlf(3~1r5NxxmE-!O2x@7q?3s84dQph`BOaAdiwir=l6zx+Z|elHn!P*RA&c3~ zOO+un6}&}4xtxyMVUM}4qTuX=#!{NwcHNjcdcjcgFYS4fDvfOr=2`u@sE+FmV|ZDA z0ctd}J*taNviS2-*S*EOft0&f*dkT)Pf*O7!VcpP750&*$sE``@}~WGYG8v7f&BT` zLc5kHo!Cy9Ui2O3t`}-zjJIV-pnzZPh(>Z_z%RJpi~9-+#F2oH?MOLFKaqvblZruy z^umDy`%UOINKgDO2hX+qUrN<;9s}SP)$?;xv)EBx)VSZx!7jh;D8D_hOgubs#ZmyL ze+88eF}7=3+7pV1@S#@+jYLNK7>)^&1-gspKh(|w7=`B}$C zT0Dd}@yc_%NM$&rR_zO0+!9CeH2R9lg8MsW22|Op*%# zTkfLGJyud>Sm-j+1SE`s!xA*N+2SlMbN{Y+x7i%mY)pzj@7CoUH9)zhmL4_%r^tRM z>=~4Ug*efbuW}U?A&{^LPz-Ph5|;kSf-3&;Q))MW=$1Y0g;W@U7t!}++?+0k==&lk)t(;xUQY|(<`6av(jMu2P3MLI>}tQ7iRU~9=yVp>f~q z)+%xi;ek+L2t+9o6eB>0CZaz}m%CnmsjNk{*86$7jYJpH(sZK0So1P)W&e>~W$FFm zF(HH$k5RgoDbJlk@PrfbiPmjpq1zgC?r@Q0ON+kj^jQPYzuaEO7ZJN z(X`%mu?0r{Kxkq1c{FJV^zXXgYaU@q8h5jjxU}oO_u8qVCOm;@uuhaNsh07#N@GkJ zZ-cn203x`_{+;fXUdfrp0^0;F1zC(htxvQnoSsBPE{pF(5Lxi+jyhT+m^@lo*+FH5 z=(0i3ffK&MLZ{NhWa&+njRI=2#Q~y)Cw%^1*DMD8eY`QJe9n-R0K6?E-76{V`wSK} z{9I5shEO=nV@2)LVy_e1ixg<|N4~8N$H?Fp2&)_(IY3PeM*V}g5G6f4#-jGwb!2UV z#gHaY=)^}92i3RlK(mA%7l%TOCk=(iAZhMFm@Y@z|JyTL=uLQCkV;UJbjq@8Zg6$$ zOZj|XK&Q9F8@Dx)YQFPE30zVzqh|uGuwo&o$EJYt`$`q1P)aK zX^djDWe7WD_YkA3-2_1NLOvT^It{Z=IqwRvH8KLA#6M9oi>oDvy(0SxoFmlb89q}_wN0wo<*49K!iJ{tU zREhQ4BI8$qr#9A_D!=Y0xpuhiij@S(ems$y8W|B3L)85T!YS#)V2mMh3zR}=$dPcu zh~gCU@*9f`;t_bf45ty^ba+^OJ*O&x6 z(b^@%fCdneA=yDu05t&R*im30pFq7b0*t(q*hFu!s;I;?E6_V07=LKKQvh|79q6%@O{4~!WC7nd(3Rxxo!pGlvzTfVYwvcn9 zZiMUbN_844n?xIpEoqoJkECICW`&%=YjreqDAi@e6_gzWg1UPGV6FWCA5e#c)hFWD z`AjJG__9%2&FvkjGie4Upz@WExsh(3jEn(PqYg%_bqT|7T+(-I%8 zkl4h87{&0PwFA8qmn;mWx7FS!+Z-t*uJRxRVw zw~#SHaWBQ#D*Je&o&%^>fRP01CBOaU;s&biS|FihU_?SmqVaMPEU98{EKGm@ELI@9 z$jqbqJ3%+)N@tMo3iDx%W##0>9B9+K^2XIn4wB!c4_^YBMrnzWt43Ijha{IE_HHnV zlQ^XItDgi7r1%a*$p;jPV1`MIf|ff}g4A=|YOf4q|LhRHsz29dz3G2DxP~Dpl0qhd zlXCB`ugI#X9kYa@MS2~KkVLd14k1?#PHXBHh}e*PdoW4#nMN=K(g2u2x24y8g+i1_ zDH+(2(9Y=RJUp~`cz1zYpVJ$_V%@#%pp(L$f6&~9a~f_@LwP)8Gt|mFQ2DB3vaYo7999# z(uc7Bs8~W+9DZt1%11vp90i597wbi8j}^md-g;2Hr;U~4)f4wvB8X!$&apk!>-nHp zua?uam64MKt!?gG^2eoiVJ3DU@;Lyw@+R}m-v6Jof!V0K2)C{I?&M>+r#auG^Cw}( zw3nnw{`X1X$lD((?sUC&+w)?5PWsDy7=rl5ye=`i)i~BOY{eeqS^l!b~$Xb+zVdCFM?wTz1H>b{y0IdOX@! z2*Ce&dQPumCNnM>ZV$#2D!JzsB^??yD+yJ4v7xXg4nukC(5k2Hky zSwjU6=fjnaT_mMa5`+&>*Nf4jHYG)?X9;O-s)vd$Z)J_;eQ!gkYmr?vYf%EPnA>sE zI9**VQM-znrp5~Jcv~+bq7oDX!FP@#?0;Pn854ZPRe~mq_4IcBy0D=y(faTS$G)gr zu|w*AKH~O+)NNrv&4x$+Fn`4&q9xOdhOE3{!cxy*Yj1PhEE@Y>mnYC-mo!X!#m(rq zHDY5@Rqewg$;gng5He$EoQuSO1Q^g(N`yVinECtg%Z=;=h{^737dMZf}m9|jDb%n{y9mp5l71U2nYeZwvl-+5w!sIwzrDZWFqXMBFtOu6P07U3?ap1-XX(a>-ZKP zZu3`>`|YG9y=ntHJnP{6WuvkQQ#Jn0l3?-Dec#BkI+{2j-D~gli8CQLBslWsNb$!h zB@qeE7le+gWR=4V5JH(Wp`jbAo$62c`gaV=_0Qn8wf6?>(*wIELk8ZWnY3BaHJI=d z&NQX;BJGL<>9ft3IvL@A@XuGaCpB1Yd^?n~jI;DC%#PuK#2xVilJ!7#j-?cTl2p`1 zoTlCN%F#0-Gja*N8vAyH89l%0{nXgF+Go_($LJi7bhq5XIZ5R?7x4CB)vTAuxV zn##s2tj)zriYpP}4l(7VH|>&DCAWTgGVw4?q{&wjbQk7Pq?C;S{+RxW1dTJHiu$xW z_o3wo+YLZXWo0)(V(M|2b6 zK-uYXr+lh37w4EK&sYhc8qQAW>lJq&G7D^$4dv&zuF}>WBO7lYp6Rz$SMAzdec(#` zyTQ~pdX80335IO~{%4ZvUz5h@tPDaICnaqDIvkSghdFV35`70hI?i*uX8OV+Mv`Q^ z`l8e1G*%Z-KS|AQ6gghKluV@y^#tUz;si0fObzhY@C^NWI z_s7nAYZ~MKl{996DBwQPC5Q^6+D%F@3?X9xHYG_FlS61ztjga1>8fWmLf(>zSzQ-v z3d(I;p4!+D;#B#GxN-qkLe$mpM0H{W}-V7s*= zWnJxx$d**se1*U;w{q#Lf;MzPFNgERnXwb(VaXmFSqgi8lF2tZ`d^BAWdZYP{F-4z8ee%+MZ;BUIp- z2y_I7ItJpXaZCbL;^pZxxD9^>aoq8#g!<#4d+bp$LG~}Wl(v_~72yG>*Zd>@%`q2? z!LhW3dgsqShk53`sj{LXOaP%~Q09~5C2xn@gz&j)fpw8*8lHsk38K`vBriIby)P?GIu{Z5pQMsfm0lVK?yZFAHVv~r>G*{t=X0T>@F$V~@D9eI^n4 zjl5J?jJjMe4@asNvpcB!OWu1kwtCKnyr)gqoU}juJh|pln|s+Dab>3T~NM zb`2REaQG2<>o)e0jxai7prP-dON|6B0f0(3)waf~|2yp1_#0A~-!6x?EoOXGoS^Qk z0O-7@Wsss79iGZ-3RK!v`Mk53S75lm^GkMN{Ejm}huhfK9W6 zZ*S9rmENV~9r13F&oQjsU>rFK%upin9iu*sDsC0H-$@1JH!V+i2oKI*Wv>VlY*Sbj zP}vWkRQ&>al&)L!bysYtDhE3H>mct__`UMd60F-ST%5J!FjwI(Ey1AuYs5FC&q zv!OyW(!+$UxneQK@R*`i%aR};xwxgXeWx_#K%1Ycnv9Q7{p8mc3F-wN<|+x4TLY<@ zfW*06#2(bu9_&c5ADI4< zs&yi|<8+x}u9U_pZlhnHCa37{*0we)ok<+huRnwNj&*bVY5RM8`R7@RdWH}i$(xcT zCj$ef@6s*b=*=23qL(z*+EtMBE5Hm=Vg_l3I0#_}Ld%U@>u%F|BsXTS+$(t(P1~Ze z^qS+J6zP~3G#4o)Zw96u)=DIu*r=ag<$1RpTvTQM5YBe;2n`LEmzJpyaB+H`@^^f5 zU}^G0U8~o@bAEmSFQvv^<=w{1pIr2eKGa93|9mFSoptyz%NMGH_5g1Qb&Y!%R=_Ml zy=?qn&bT@iYbh0#mA`yOYoL8|?5ymp=uOf086RQv#D70!3`qxjn*v?w+RpP9(Z}6F z2VLE3%xzN2%Fc6aBqEn8ZS~-xb)X+=W^~&cSHKDM{$hTl9zOZjTs=;n9Ncd1A`1G?z!pM=pshTDY7Oc*}IP*fP( zreO5T{ju+;%Em9_W-Lv=W|kqsy^a|p?!r2*8f2Gp*FE7? z3i#~g)~o+V(|3n8^*mn_f(b1lbO;1ON01^!>AfpTR1`$I2oV&J-Y*ckprJ}{BBCOo zsED*sM0yucI#Q(f-rnoy`~LppdGfIL?%kc4GiT21P5>lZv(SR9sKDCe=G`v#HJ<&_ zo<^lr&GkI9{qgI|TTT5`M|g=5DWUKEf@1e}L;00&vE~8k`hFU{`=zyms<)D3^+`E} zSO1&|vR52MbPrtXql*DKi>Tws^LxO<{0#?MBtL!hgio3gGa~2w298q*jh6kHw~GI5anBZ?Iv=IG|;R z-N&<&0*lT?sSSiTi(t`U{f;#>I5-M1gXI^whbywB>kRUvEM<-t?pG>n2gdt!Zu&$f z^mCetvg@O(@N;}mE%dIH#nBk1h&7w(|)`QomqOlEmMvL3gy z0O2iN>M5Rmksn)T2W{paq?V83NcGwNAabx)`la)UppKEYGK0d9(uE5hz-HoF*Rk2P z%sjW8n>4i!iiLlQJ=Nm7fa8Yg)0fAG_j3*gwt&qahevcfuH8x#J0R^gq3XBv-r;)A zY2(CM!@TOr!zVf3z>xPz$Ju6Go7IkgPT=1+BH8*A`|s-ZpBhue5%h_lxtyr7i@#AE z;n`6@5o5?XDrHSh5Oy;PyKB+hS2CC00F^F+&Wc;j?E|A@W=rnCzM+cintEezLfvjV z+{$05>g$yz&fgc<_g^CGtiuv7U4jagbi#zFOVJz^zKTxtsd90*y=e1W*A*jA;%7 zHoVhK(x<^9;;;);0F|KTZ4iIOwQze;!*4`9yb~O~cvUiPzbD<^xL`qM#5L*uqvBF? zb_5H^7?#$!xzCM_@14rM(Rlt1^)TM}=gaYQM_F|A>-0zy-55xBRPlXmbs(a7>!z)tJy z>`Jed-yO9?arRRD+mY$owbRw)OwuAxv)cHi<{GRYh|ZbtTi7 zfkF4iAa!S1V;Dfht5}6uMgK8upZDp1#dvm`)#!$uewru$V#CItAI4|f@n;hqZflQ^ z5Bq*To$t!_`1s8JQ;U)Jrz<+Q+wRSz5799Kg@o7*6Wv)uddSL$o4;W=c;S)b`5Njv6XzeTPQI zy><LBpVBu9 zTwOJ9{T)Qdb|K z3&Sqz_`-W9Uw06E+i?r0TUXLA{8sP_-k2n=-H3+$|4k%@<;Aem%IDLLcNyPI za1}7S9!@@77~icWrvT-d?};uQon6Pk_*Tj5oFMzP+LOI;|86PZto^KNWJP)183w_r+?PCZyI+#zpr5`YVaB!d%iLBl3Yd0x1 zuk?8Mp`!1l8Ds~q_ix?EssqoohfPtf+wkIEQgmf7VLbZRVd%fLGe9=P5lBy%ya@9# zG?|8#ST!%;c7K>~7wM|txQ4RV)a&bY8%&UM%SEQjuG>F5D>WRNbaw;2jJCb6J?g4G zI1K+a)^QM*Hu`!m(J z=DX%!dpxUVn{Q+9HFs3IMg;9{`|~WJWZ6VpQx{gIrEs+)ia-?Xf4_`f1Yk5qiF2kZ z5XMBoyD1RC#HzbjAx4RCGdl=x;v+LLj`gqUX81}+{*g>H99g#2RlLJFyi5b|o zRjCM=GFz5iwR2q~3otCVamo6Z?v^`T^hhc7NRiS~)TSHIk|iu^W<1VFj(Yo<6MNdj zu^lenl{s`S42v^V-mYS(xFuP%xJbb)B;l%>n|IMogDA3Q-N(szW~%pAwAwnP5)P(x z7Ce^w!Xc(1egygt*H+22bl^t9!2sptI0$9_MJ$y~UG;++eL?n)B}Wrxq4r5vu+DIw zJ@iJi60T6TL9*If=2!f&vgF0wdP<*2Gm4!a4sIB)HRA0#A*cK5$9V?e6eD)Su;~}j zeL9{78rZt0w47e@LC3@Y3M;i^;BXnUp|Cjb+^MKY%`C=?&piv=row^I)@P>$2Au6A z*m$1g-=EMa3FG&FV_y_c8;QjH{0%wk5nO+CnT9$_xVH?Y-LFk_ugv8$9j>=k*YYd8 zUm6INr{$||bn)o2nOeQ<5P1DZrkO9*+BDvm7d7s3@>ox@YQH z^Wlq|^XVKxNuXuR?#DW_&}amD8@q`Yu;oJG+4CP8{N>;8!OAS%9*#Vu%o>o!V$r&D z;z`rg8Ur_R>oMv4Bs#It>q*AZ5pW(K<8js+w&JUcsKhSn-Zh{sVDj&SatO)z9D-V^ zs3!{crTghFk%e+R&+?PD$|naONGJmWx|?SMuDdcgaD*5Y<4yGeU0jnCJ1(j?p!xA3>3vt)ko@5{_jCzC{&#G*{3^T zKkQXOd=(sFSCUmP$*UAJ@}kxU8wfArQe2DPq&KQ+~o&9H1r>J$Y0=<|ER3csY)AYvm&fy zhEm5BM3?`hyaXucsy`N^R>iRnM;3yF3$eHKca%s4n-4o;&MnUXAZXLPpi^$M`RLV5 zWT>5Qimq80IXj#Pn9W*SNO(Fc>jW>S2a7>#u|>z*wQH@J)sCrqa37GNYQ${{s}O)NyFBxE~5c0N$RGst9Q;`{NfYN=iAbII&Zu0 z&c*8GW065sR$031)%b>g9qK=|X+wWLYePoeTIIAhqmG2+E#>^x6b;kA}_Ro*! znC|pm*PLI{Er$^pocZO{)6~KQ#p8tT^-!L1MMkajmQ2Y6YX)h}cT9asD1L@Z@Wnjf zSJYzC8I7>=_fE>)ykDS^gXKp`=|M%ln457P!RGpZ%q3frSP(R5X0I~pOM>erk#K4$ zQ zupdDg+&nzPk2;(DXsDS}3ro$2^kWIU(#Lp4Dk>kq#^quVMy z0RGXq*rmLT60VjWx|hBpA+h$myQI{pJ3-00?r^U8H|-He!2HyMFaqG^wxX?-ZvCFk zMd<+1z+0yaMiv;Z9(qgVn3(twJalJZLQ1`|Ip-`z={_;`6D! zU#3=ZJxaKHIKg!Q)WTaSyb!&zF;~c`uJQ@eX%_2~&jnr9;sQOEkh;3GFwepCi}Oa3 zMTD7Ljq9J?G<1c~9BK#Tmn>m^D!mTRN82S4HI2({m(T;AN=^eiW&Rt6(w+}EmzvEW;e&WFA?6+txj~OM~ z??=!w1_`jPn$jZ%`5=UDV~<0SkZu+FH|D34I|gZJMbS(HgnT=`1@&`{$m=M+@L7u^ z#5D~w9Chjw(}iXJ`?zpF<8i)CR!QR2;^a(o2r=f95J9ZZYgh9!M|IH%#j@5_aBeEN zo9dzt04^zPrPxeA@@=yui>44d^ZCOvb)i(zJ8Rbb7y^sex?F|Pet5p4wO`=pDvyg# zURD<9<3$;zJ6}QBQT^q7HBfCW;Rn^kWi*qWE)VrAfw|s&j0qJ$pebWm0VlDGcY;h^ z#kB|)KoJv7#$Tnrn&(bciCc2q^2}ls-oFR{0PlvgFv1> zrJ~({z@g=Bjl5U5OCT-dW5L|@>@ub(ayNKV>uPWyfgwum6Rp-S?PS$4K5e3*Js)~* z;k(_!atJCaZ6 z0Kvqm2X`O^iSqWgH1jp#xwMZ(e8v-B+6x0Yw@#~{TA41tneSG*&EjP}pYnZYyz4-l zy>WXzOnLSo{7u|W+?&jyKjtnEzf=gST8w|ru_&y8=Ai1Gu1c!P8>+7Zwp`{fr_I$Q z-0lz6VweNR9W*3U`eNC(sENk~@1g=~7Y4;o4u4*Kc`wYaDLoybyHmY2v9%ntfBSg_ zP!Pv=Qox+O$7a1>%?vu^9_59ky=vy{Lq8^y{E+r@=-P~#+TfVy7L$D;&5666@`{X( zJ*W%Iq}6ONMeUM2FtD%9v{QUjVr%c|>*sklplvK9W^8eedN=%S0Z~*5TI#yM*7@-G zURUjf!wbW+&4-SO)mnLMG(U@;by)HM72@U*dM$*8H*1$e2DFswY1RirU)N@VmQ0@y z@P{`xBg2~)J7eZZ*i>?Ps{l33( z(dI$Z-(*-Rz^{ksN(D5OTLGj%f(YotiET`XDfZYXUkRu?%CU^RqTM>`ONsz9^78gy zv*Md^bJ4JCVIdLM*cwz@G!D1ZR=yQ*;leBI4T5 zKJ9ABph_=^ZgAj{gucorfbB-)I=kxBFBj$()ldHl6hcLWmdpjy)^baygTxvR}X9@Oi(t`Jbn-(yJ z%GXzSe=K80bvc-}y}DkH_@brIOhqxE1m!oyfL6v0m7}mpEjj=+4GGg@epvO>h;73k zmUj2i-|v=wt6m!j`=8&Uiv2*XWGAV7gO8>Ti^{K0=V(CAz256**+dFTyyEOr^4X!I z1Y3+zz64o3!(&)|WD4}C#~#S9o7&Kt~ZfFiF!Gosc%hENtlP{OJ1i zjjLjMw&ws^&aF3yYA*}47){_fpX+d5tQEeVrvdbkCvIH*V9jnqDfK8k?endQPyrVE+T1rNL0TxJ-Vs!+=n)NA1yEezipw$me5?ky> z%Qdc{!Rbv_kl&7bjY?f#z(C`M3ZMX;Eqo&~A&C{S5o@u2C9Drp!Y93XaeX+mx01kH zVDh!2Q)+#jwlS3$?k&peMZLf-b1{JWLA6#Y8w~=5nAP}2<4R9qoK5jVyrZdw@%lJwwyv-^G<~@Ef zmHzD}a_XL-aek+TRMXvAz$CUR2zf@fw`8i=_$=z#rjrI{TyEv!LFXHMi3f;#3qi%$ALMcb#w?8l@?iQe${O!Mu!4DT!|dU^g~b^iZnW zp24^^B5%i8x17t*W18_!i&Fl?Rs<*4$5T-6Lg*hF9P?@6)FtKl+@Iw>Z=9`%Pn5gb zmd+tv5voOH{tcAAAGJydq=l7CtDFUn2+VNuHabS=;vSt?^<@I}nl(@VaHZSh?86K$ zr{%-uLv&SxWUJc4UUgHzC!e;gP#DXSX-(yL{omt?qBkNXdV3Pmp54wft0w>C8Dwz6 zeuXhKNudib56Tr59(ek`r{zOm=qiHiOS&4Sgq4wNn|XzK0+(C8x;%<$d4WC~u*C}Ox4j4OeuY(} zK800ImZBIPQR3z)nX0LGzos-LTHzU+l~Sp*{#CJ+7bbg@?79Ym2~j9*9tyqNkC~K> zkJRgFsN^{)UbAgPM(fq?Kk(2s4)@WzYpIy}6;|xKfJ*cw*?MTU{^ZTXY7?u?!wvSr zXe;ukn!{ay8?W}WMblCp^L|8n2NR0UAG&Aw$o&%AuU9wyOGU4-4xzT@4aUCRCw6Y8 zkl`Oaa;G%#+kslE*7~7Nu6nD=`p%q&cL3^+?L#pm94VPFoSD9AWcZPxH}ppKCXpla zkJ7UB6b5WyGbygoa+weC3x#QGVOq^^F}n!eqZ&E#d%I&*J_8PKjsO7Hb^t`2BE4e-LaE$xzGX7 z$>!IXgdqI7czofvwe!lLtQ*LMd6xXV_}nfk8drS^&ZKlK1WAMaBYjHIix;7PMQp8x zX>#d2yb=@fChl{b&D~+2{d9I)>Q~v0k(W~SIKq-PYMAsm|Ep?uC}mD~U!CqkAtW^D z`GhmOskCx=)G4WW)hUPJBr^Xg0FHToc z;KnTP&v^>#6JJsa_Wa-lCHvm6KyA zPX0ThZ?cHup*62MI>;D2h!Yi`@Zd$=`bO42)!dO#)MZmr)q0p(Q$t!P$DN*m#Ct{U zm9UADslL1sgh^7_IvpS;=JHYhX++m%^1ZH;h3!Y)eqS%sf_f z?xSk|2F5G*$r|ZA+Sz=+FraSjq;^PQ&$0k4UOTjxB#K4VFFlGeGJXd zllYgSxVXt_bK%1F=)gMBQosAc2)p5M*#G5xuP+aFo=_eMXC(G#Bp%eW8L_+_*15Rs zYD!#Vi{1=-__5{q^w5{|Z+{|HCoyKRwbe}{O_!lN6f#r)|6vpYVAe&itp(fz+eFlY zj#FD(V49z7GRf_x*PWd^ip`mGN;sZ}wAeWx&{mD6rnR%M)r;a9dVZEg?4N|vPB05S z0FSDHtWg--J!5L}*H*_fs3Srd)Xyzz$p#Y$>>Zc5f#u7MN?LNH-!ki4D-O@AiM0I6 zl;Wqexf%^pcq%V4bLC5_Hh{rNnzvp(`<|fP@E_Y3AFd@`C~pv|hT=nhGZDyB5M%5< z1@0e*{9pEbS4&xZB@h28#QWyxNlM%x51&}Cbd}p!b<%9XZB60XlZJuj^mpO1zb+rG zR<>|YTMwx-J`Uqk;npbZ;h>uz&x{lq0ZJDB z%bpH4sg~2o6Gyvv(ck}sIzj7FrQ8Z1hZ|1s83i&sZ_x#;bbJn-)@s~7Y#aF9_ItEz zJrSc_OD+g$;J?B2RY$XwgNa23IYY=V&;oPzDU5y?W)ee2eNbo0E2BD}%M%P^3?MU7 z%7BWHFkoenW;ZD+lL=uYGf6|Z9G;I5T!5X9R15X-tp`Ws8}7=9T$VGRWp_KFv|4G{ zyO}aWCc4Uq2e6!Gg^gPOFCx%a>L7wG`O$#%Q?gmH)k`^$- z4_y8(OkybB(7~!@A(Y0+Say~aEIYSgiL`|$KchQ#`wlK1&KvOjv-4zB_J}Y>B;MPI zCH&wS2$|D;&eaj;l&CAohT4zD1%ZI4RFMbar%i%KqzCoR?<6V}>&6=FH(jrkgmXp{ z^eNUT4Ao~KGn6|NhU6!dZXtnXWKeaaeK9(b=2|{M+;m>C^y@KZWWmtS zR;c~#Uh8XR;bPZxl~*OFl$d%WI(|IB*i3dyqbO z@i!@%@wX|NT{HiFU_{6)jMG*xqSbo|&^Mk?5m`np67nvn_|-TzM=X_(B``)*=C!X^ zWQUs!;fuaV4dCMKKbJebD!&>ardA@u7~ywt4q>Q5Rth$k85(HHQ2Q5`I6}3~rBWPW zMa9un;F@r-5xM03{-^`jl8~K$-}i{1&0lfsH?SEyD;OcNwTYeqU=IDWX|hQF(~YEu z@q}307OHVbYB2wQ195~VFmd#CX?;&4km{*hnCIzJeAFgbs9SsH|Ja*w2@lR z-8rfYJ`QDgPofcT`St3Z0pjgG#l%%g;6&C`SFWW5Jk@tInTx&F zKms}r;Yi^0#nPw#XDbTwX2E=M6%3Z3s{aKtN?`y!@h#+*-h%4^x%c~t-W#fFO9U3( zXAqP~JNR?%nzM6}pHK&eN@|E%VFH$xi7k6g28fr{?$4VPE~3uw|YHlkF#8$FzD zGCuHJJ;0EiKMAf*7h_2k| z;Y4cYpT$M_LLxlDJ(g*TrfP5|216&D& zG2%+FH$^x(J)O*b?Qw8LEf)02xu}hiNJniVg@B;b70xkrp;+jv0%*93JwH355;zF3 zRDNpa{b+D<(XEwLNV#6*?s}~HT*~YCrw8WZHeV5G7-nup8-0d>4iCgb1l4yG!#Xk- z_0~N>R3L=b5C#cXUx%>piyh%V5J-%1@!$%DZ+;7@gq>>K5q!qEDTT>rMI0IiwJLrw zGu=_G{Lm~EC4JtnH<#99{bOAb;N4UDLnB6>sQ%NSK3ir#e81NR-Vg;Rof{mW(gD5K zf5Qts>Aqq zSrL@6q+&)PC~~Gno@BJ(y4zAyGo>B^$~TU>YW#Lvlv-rRmYyy(&a%$xuY!L`BSM;W1N06ufUW*f3!2b=?1(Pudt3JQx1^Gl-!qdMTH*- zKI0~l-v>qk7PuDcFgpp+Qm&S)C)n@YsE>+nV$rh8N_**FYjHs8QbdQC*&lZMhzHN# zB`$VcFno^`K3{@(S4^hv#p4D@9D~+1_*cQDC#}`QXo4uG!=& zND|EpclrxvG~*YI{zOMu2iYw7mzYnau7t%(3zBw14)pbXr55h-&5S~<*ohw$6m(!< zGI&rJ4VrOsEn{AU+5cR%PbOK3f>qudu}pf-9r}sVe!VfmbtX786>JZW0brclceI}| zkExf$K_5umNIBq1?3*nE8z-4-S=FC!YEwx3}_1C24p2&p*w>wUW}?eY|g*2ioB<%dEBhQbF%+z=lie9)y1~WD=r6p z%d2$dH;OqI?o$C;lR|>Uj9J2SS05D>svS!8dVk&dY|L41=C56*ZBvafPvpJi`l9-=@;JQ6gb4Nu;^IHO|PI@&MiWcs3P%Pgf|4> zU;HYvZnjx!41a=s*GyaUVDhg;qr@*0o<8;*i)o0q_q97bRREk#CcfS z=mI@=4Z&53KEWtmzaw>6tFuYQqI=jFm}SC zKZ5h}S-0WVA29{_=AgiOD*hjm+fC*UJ=X&5_iXssy(|PT9MXoKGch5Gzl<(;r}c--AQ&{@nNm9Xb^RJ8 z7Q``l9&H|V-+wOvDp>@u=uLyYJCp10spc(M3!)Ujg3y9g(k+IyEOb(7v3bDBVft4< z$VZ~!B>oFP&z(q6PY?6Zzu>a)yy;tpOu#SWAd3sxV$VeFOYN1$>SytaBwRYn7&93a z=Z%f^p=ge}B@-6II1ECv%wXvG>sT}`XlVMbN(u=Awn*7M%tD;oX1F%g0I_v=5ML#7 zXmZ3%Rh(+cn>k|CZ7#~<*b-(C8TaPlCWur%0tcD}wg=Il2&Aca&Wp4&r^)VNp1Cs4`U_>Xx4|0J#}EZH(pcwRkhzBcCjVv>fx8f3GDgd*d32x3}{fS(ar!} z^>?@zNY9u|n$m&???AtLsCR%$R?*1K<|%MrYUzzpk=MvE*OhF47~4Wm-mB5l zP8NjQRUK&R=xCJtMY_aSqD%_Z!kA-Dxa!rLYC1CBH;L9m$?gF>cIcnVEls(c4Zb?o z=k|~t^6Lzt-V|S~uU(s@O?paZr3O@e&gIt&MUT@SuM~$RGzx?h_S;07ui)*uhlLW6 z=s(z}5p5@-Bf1oG?Dls`S}Te>R|LJq30?H<$(OqOFFxp<^yG$C&{wwGv~3A*KcTWG^Ct?fB=tWTiLLX#(hW{jr`#PDAT6GxGJBa};4ziUBMn=+94Xe`X=nd66 zvIuf!?(9A}$D>DD1dw3hs}PJz7O4KBNs#W4Vrh6sAhkZqkMO4O0!g$2Aqg;+U_d*T zr&@%3J*Q_3UJj&Tkg4Bf)wVv<%pDUGv8PgYeMOiL6GrK(+6f{t+$vh%@#&-rqvZ<{ zX)2{&(ZME44a@^;EHUX9)HzfAz}GAxkN8cpao-?I0Mx32Anirpd#_%jgHJi_B3!E% zq*+s!B$CZLKX|PtSk?;N7#FcuIm~Fl6W(9>@(V}(b|wsiGa{@~iXwH0^bJVzKWrfp zrA$##Gyt8-rTikB7*O|rT)_;F@xbUG+Wb5}Y0ZyrGpSk@+C&k@-da8fQKk|bd%(0} zKcfL_9$}LKGqOoqcq@I^{%0aVKR7z!zhM;?OxdQWE{Q_UM)cP2k}=W5nDnD|+I&9A zf5TbU9d&PsyKv_OoP22QII3Q{&*lGo`}_r2r<%`c$a4jfeKv0HV^gkF6=0o!@a1ud z-2T0MgTho(7_AVR$vR)q6+r&O;`Z_2S7x4Zj}~PN5l6j(bUn0Nhvf6!1fL-mM)-$l zc1%jt&WA!li)M8-TMEFRd+5&c%xUKi%*QD!C zwOuyZb~VUcX?3L_+ad&_$*zYW7Rb+ofsjkTi>IaDN-5j(*L)^-^dhMQJ=2zU`Npw3eWM ziyd5HjF)=iIZ>lOHPCW;|DkLwx@p$$mLBXyVns1o$wyZWiK_b?dpNL;4BsI9kP$^|94zazMV`xv5H`FE`C+UF2U2qZC!AmwpPWJQIj881Tg*hLKl=^kr>7v(f@kMe6GD)Vi8e<s?Gkz zp0}*2qBP3!>qx-{_#Tx{Vjs7Ts4{f`eAsQyOtnOoV?h5mJ@8OU1N$a$4@kF=JFIDT-)7dw;K$+(3*|E{l{1reQp@rI_xG#`Ph((DaF@X*u74|ir4XzE z)Vz8+^FztwveDSr!#6YU55|}SZ#tlH81_w(d+tJ!;~@^b>J(uLLP_Cd=)YGPtcOQM zc!e+~L~uNNsGpOB%;l)vj9zGx(8L7*hjrB{Yx z6v7&xn@nOF`0Jd&z`YN~oBie)4kCdd6>TSTTHX4Wy)tQDV^dpel3FX&5a`7=7C`$E z$6B=(Y=~$*KM>}uw4sh*2EP6HV&scaWB5msM;dY?f9f{W`ADg zja4wHJt2M3)t9XMX!v_s%}DX@ixKO~Q;WyB-|jctI0kxtk(2ic^D|vpHd|QE_ad=L z#-{z8{cLl0n)al>*KA)({B$H%xAHys3Jn<|c%(hET^_lnaWH}H$mND_FM>>mdw34hcmiX?Uh?)MbF8 zf&OR##Bhi<6yLYWnBaCVr1dwm@H^Ju^+AV~?p4`9(7Ji1zq`XBGMot!TXFWPv*P3x zBIsnZp~*dmd*+M*gi$?tLZ|Tux1%FFUULA8x48J{K#&7swPLv9K-7P72kyjnukdOI zrt=)vGBtuEQ4Z2n%t9I*GF!;1u4AjLjRzMVSBZE;!`ymR_{LtBp0W|UK|!e6-!Ghv4UJ(Jck7 z9_oK7bpEPhL6t}ow&T@7V|cnY$hNK+$jvmE$F@}#X+tj%nftUR;|*Y{*5gx?eJ-At z*}tetNupZ@F0n8o?0QtAr4fkmP%tnV1h1JB)zwtQ9lfud($`OT z>nyUuROy7E{`y3IJr8=^53sAs?W}aq;_lL?3$Knlrnh{er%CnrI-f1uzsG$u8b&Ka zSN_GIN?O9`VDx+;5uZ`X`hd%GaGWt`pw!tJ-s|?=$K?y5j z=99nX!L7ur(e{w>#E;SG5WVtiF+>P(7W>}i%T8VQ>1n%2x4DYX3=bt^;+=N|CD4th z$Rw)8JYU1|3Jte5j1kAWMt+56kQC1u*As;S@}p3(ShBNGDa7Cn8;vvb@K|3-o}ip$ zfb5=X&FY;@o3f&iPks;lS`D>UkF(>lBF$?@E^*(J{`{e~P;_o3NVLv&^W`Nc!2P3? zNnB*+l0@fj%8bALY3@Bsf7+nDLc3al7ZY4lH9mhTAD)zFbtW#iHEG*EY+axYRZ(}8)M8|PHxB~$kz;H!tv(2v1Zj2p&ThP!vli~(*^>fF&$Qu;oD#Q+Ok zAaNSCj7s~CLhpYr7vEAUZ=_GjyI7Qd0p&#yYmj02UhSJ#=HvS7zKzzLchKf9*#;Tz zCXSZ$TcVrl`*H9q&>g(gmkDN(Sgl*^7pOMyFBucSNdDJzZ&N<_ZHQ(r;0<54(pe9& zaO7taHZ3iE^Q$Gy!{_v%UTSr7h1Ji;P@S1={l~$tG2B&m=1(8KDArYe{O~1(gzTVu zWZ2#2s6NPF>CTq=95wW-;-*S-*Cwl>4MF-aI>ATH*y-EJt;ivs1ZVs!Mst(x@3lD@ zIhLDM$_L8}r7HgE>RP>eJb<({(>_^S1%<4R>5*_b&jq(r)sSwYHn6GUS6FYl`NG&Q z{eFHc|Haw*^^Eq3CRfv3A8MTnE6c!s8k25%-5aZ_)dm~&uNv#$bS5tiReIz;$s;q< zqMfWEcZwfLn5vc!uIJIe$%tH15*rLO1PTpte`~`XO#`os#x$CZ7DP^S zcJBIJYQN?1;(Au);b({D3yt1q>u15ACGMRYl&8AQCmtkUYW-K6sLm3^9qUG66IE8B z$+Ae~gwKMv>b_DsifBM{m{ITv54XA|LJ)$F>kg*VyI6_Al@ZqYA*BjpDdRK#^6rJY zlzf;j!$;kf#+@FScbCq;?_}YMe0Vw}xR54K(jE^YLG{?w^CYZt=%nZWB@QAki$=x8mQ`+^xfETogUmkzqDK>xNml^k^(>3S zSa3TiyLDUbw{)W@&b2y7|EJ7ZzDJ2p6Q325zlL+dy;=(z+uCmC{Sflj!oTI?-zc>`Bz8=VPme~= z(@>mQ=i5m;kMBQn*fK8R1w_YHdQAoo(u1CEoZT9nw;yBv4hBI%y+ydncKC}X+Y}n` zCROHbsPKjoYG3yb1J%K$XIFc%WXiN$&Cobfl7&{QFJjZUq3PF-A^lLQ{(TAbzVvrc z^EQjwD$p%HO0D|)a&n-*zslvehYYLCV@{@kz@!9gCHyDyU&aL(@C-$3jw|w_K00-o zP$*;CzeL?Yj7~TO&DE-V1KPGg_ieh`x~M*jfbIOv?3Hh`9^EX1(uS_<&M7z;2Vyx) zEp+gYbcuYMqHqp4DplJ=c5R8dQM+YK!)N5G6|1LGx4>{^gp};$*;AdZhaUXNeIl7PE559t=xMW0Y_2*YxxgX%9%(UF#Avxud1|`em7Lm#CwZ|z zYASv|q<4lmLq&DQ%t#v>Azk@mF@$t_v?u}ngB{GE0D|<-kOjR-aP*0UaHcD4d{~i^ z^`&mnHF(|&Z7uW#6NuQ4ehtxi^zvYJ(jTZBdoxJ$O}d#*e`_fFqxC4Ej6Ur>gi;dS zaf^Pr3#?{+{#A17JV$55VFrsQe0{0rs|PrB&A6>?et+sB{YRY$50a|F87LC)JLS1= zc#M%i1JY}GvL$18N{>8CtFxVdQvS7D zfSIGWrnYD;S=zzgQ(@==^sfadedpdrKgf*->lM^%6t)!ca1<1QXGo5Q zLD*WTF5-j2><+2E>dFbm902(ujqRinl{~ZbkZxi@^<~<6P#SvQ&npn@u9!B!fzZO* zgy|w&HLvlQg5$352)-R%!!?Os(dd#59 zG0@S+-3fy@q-qF$TE}yj(-*w!0~IDqI$APGli-SVrotW+@mb-d+sTq@TP;uRn%~V= zO(|wUjcm4CLJf8TbKJV0dqfB4??) zbG73{cp`1ITG7wwI8bL>n-ZkrUX7YEMs)Nbro06J>g!w$$cjhG%0p^t)wkIlTi6kH z11fn5kiZ>w)|Kos6e4LvrCys@`M^5h;9jDO<@l+`5Ar3{7IN9&Q^|e#aHV3R-UBL! zTt{MqWPpqOn-mSq$$nABIBIKdbwShZJNwSd6~f+zL~cjYi;9lN>DKvqe>YRmeKs+l z2$Mj`%xI;B-m{+UF*#((Xu`>5vnbe8d18$AeI02mMqL@_k}p_JpLKfvO1BPJk1EpG z3kxCSF5?^P_CJ^2Vytzy>6Vp}d~^C)X%mT?!#u-q{f7TEX$2K)A>I_X^Q3myf1tw( zG6GdbaSqj(? zGVcFUfKyk+IeeiD|BEYVarp%qhCYa~4*zv?CAvY-$@%{A*2{SVlLpxnF^nTM77Z%N zCnSW>Jbp7uBHb)LL2Jrij6%7vsZ@s-yTGn`aI<)r~JfZ8IQ_RjxXPb1eQg815sbkG# znZIV`RF3b=cg>WLCqLdpfuB`C5c`?+&|c?Sz^;<+ct|AXTb6>?tHws8H+^*@Ty?*u z!1?1O=u&*ZLNHcL8AIA({^#mYtkF3CnaT{!F=m-?#q)(jCa(ug5UkLnu1z`P%7`Y0 zpHUGTrQZTQQ{M`8=WF19io!LvC|7bkq1Lrg_Y@W-PxeCgH(9vbGM>4c~k*3>UojymDM%1WV2?sqr|V8h?v#b zpxug3pn-tm>2mt9uBK~pGsTh}HH{WOobA*cCdRY6Yd^i>`Wo01xRvKUET_iNd|@6# zU(-1GEK|JQL~igzgDZ%Gm_L62NmIK0BvKoV5o?}%M>ZmIAnmKm1aQ{ zAfW|yl}q5wQ2v_CE%=i@SxmpR11ABC6du;glbRZz>bfu2m*UNFeDP$6f#LMgT^}Iw zK4`xyjVs@4pjF%fpT?AM%#!2-;qnYWR;(Xg~8H&&m6khTvTd<)5=c<6&l*gTO> z_MRZF1WY(VP!abORuA^0e5b1j+;2Rwz8I#p7(vfKhAX# z181LoR@`f?d#!EIQP>PRFD)74AY)7rlIJy&XTRt4JCOTSCRxE_e?BqS2vB-`JD%b~hh?{jk18XKIWw6=#qpQuXCJz#46Ubi-kJL?Flem)KigTcL7j(8?@s%pdiSZ- z?4L9sR?l@eDz158lGf7MY;B@(kSq?mc2Xj4<#(Vs3{E8eIEhyrpg+SXZz*QYKry6o z7Fv@tB*52NGP@SCoc9_P6nqRk5@H~X0YTTSz!{aUPl~>2PSC@A_y{ReYYe+t41KV0 z|F3@WSNL#g<{l{|73fBi+;~Ev{I%Morq74%8%3MNk{Fz>4@C6QgmRqFAdEF+jIDFv zf3C%zao{q7z>wwPfK-fAe~c}ohi&I{d7dCZ`=J)2vi9pa)IF{>9(|;;0i)Z6T22O) ze-Q=iJgr2b+*yc>@Wgi+FcBnX>0gNkdtxOlXN@EA~8{h=OS4kemF$ z*$cHK{*K?B29A zsSHXS@VBI>fXG3}$Ob=P0%ply`QR)eVBRYheY8KtDR2r}pz#hxWB4Z6&bqe-1(5>_ zSYxWB$gramjiG+l_Q)mFE+;56{N7r%yWw4VDLba7Fv=%zN@ZScTX_xe2c)32WB2lx zY9-ViI5n9dy<3x|AvC0GQ0`7Iq%%k zP1tZeFbmw&a1&IaBrSDg&xkd}H)k`IC({^_#(Xtw59W!dbmHfweTR*6%1>1a7|L@< z{}zTNe?Do~_kPKG5pna_6=JoZx&y5_`8R171B#C~gupZZh8AoK0g2hS3)KX}xOcC9 zFxV-i>`yYjR_AP-2i*Q&7K-?kI~X8+9czk0d|nWKY0ss@3!`#@&$e#%Ti$SFf3tjf zqalCeDskyd_1OH_7=c9+{An*Im_}9O?&EQ!(j|jp4ZeDIN^4gdZ*KQ3}Tro|j8*}>6Zo78jFH%mXeLghgX7NntmtroiFv3pWA zEYqMsnLiVrZKPn+Ed}QvE~jfFD54J6M~l#Xw#u{{u!|mk&AR69^uF0UkjWrQuRi(zv35X#LOc%To`#t{$sSC^rCJ`8CzW-Kgf5E~8HsIt-Y`rN9az-JM}y z@@|lb`9Y*QEmHE@Ka$g8IfS3o;1{|>*S{P6Cme)fI9d4j`R zr-k7tVChG-&<&uo#(^h{5)Et#zI(1sdH3?HLs98)$5V0vzFTHFX?NJ6Ncg2#$Ulbw zNpAg-*mV9KM&>ZAS)dz9{|8rkfBWXA*D$IHp`phW z;|6w-h^rIR&ictQF;E$$k|3LsGDjr)jR&QIIg!En?eO{^(7St|Y=9TS96B=`gBd}$ zga(Z>{ARl)wqdrq8 z#Es~6@Ie;aHnV?n1L~&3-}_2UVK9MgkM5Ms+SGJAiux{F80Ev&(4X8T;@_T<0p80F zHQ2Syr#b&E?|QJ9Vj5FUyMJGoqp)&IBzb9C~FYlU*qqbr@6Jt{qr+&MfT z14jHS^(G0Qc4RtuSltaCjxTiaxg>73kJ=sI&o+~;k+DIz={~V%Ai8Jp(rT@t6K)FwXxYHZc zK{6kKZ~o0YM-A{M79cKj#U)sn7(MHUw{R)Vc!q(cowef7wxEXtLAE{JY!+CjAvo!- zF=oa49>d*R^_n2e5q8AK@FW&zXynXn>;0!urQvxq(26x66NLHnyHLz;Xy$E(F9i$i zkPVolWBD$0ieZz)Lf5fEGl~!F@yO#ZdP*_5R-Q!j6RxY#(*|!`*-Vx5Iq7U#78$ajY#NIf6P$t7^J4YDw|wC| z10#v~4on2BYy#sAH4sGPV!nDaFsCTjj zm5BiXnIfZ>ey{@LF?d5tk~u~(v0}=bx`4)?2YFQv+UScTH=8!n>YzCJk0BO5Y&JDp zO+&1}c51~$V?MV+r3=bq0gpZLG)h)dCO(O1ltL*o$%1Q-;UQD`YxmYjn?v};Jgj9b zu|!(>slwT?>h_dbB_%t^8bUvNr=%tm_`2|Es1pyg7IXE(#a7)N!AMN{!oW-qz^WQ> z5Nfo&ii3iA62vlrTL)+VDdh!u4k`!lf)d|$3D`HV2<;yZ$GU^9BT0s-^*f4br`I(} zG{_|2KU3rz{Kgf}>Oq(LJ?#SG(y+8X5B>j@=cQg*EF_FFhBOkx&Iow`-aB<`>>=p{ zNYr@gI2UbiE&~YI=EMDwR)~0Hdi^Zg>$fptdLvxrcD?z@RsR)_K5;q({U=PBSP;dy z;<(qY(rboKT=%`$419<;H!hPJ_BrR7K;b00q76!B;QI&P%X9BG^UpxP=vG%;X~Qek zKlvW$rbD>4oDMP_A4R&iaq@W%K;4=RzQJqydO{B~$N!co zL38F6rXlg^{eK(&Ov9FI8XCwcp*|oc0X6NHSl(KEmsam}@lVqVV=Dlo6uPH9(1^~# zr^R^`GSk}+D{mh?qKyX5$y-}`WDUI*sYn3V%|f)yco1bc_Fn?@LhJ|h+YQj$kj2!9 z&36Ep--`5L!6&+AL3kRf*6O+(_!;3-+Z!43MuOLlup$D>xAG2R$4LzYVJCz1ab$eU z>Cn4KcdAUzpVdM-R|}`pI8jD1op-Y|5FznFh2=M?XhCS~?s@VWUB9{cNCxz#Z84*- zW7&Pc5*xHb3i^a9kmCbLYroH>tVAUTw5X{o7{9*B0shfW537plLj`bq0phP(9fe5a zn>X~ZAk?j!{_dC2C)&JyBns+$pzw&_DZ|uBezY-2)(C7%XP2PvC!vXbB+-!_`T!qP zjhUnoS|j$_RJvML%)NCKKp}Xqtri-eeKoVBov6costAvenxr^TQc<3ou)lh{=EnFzij~C5M=9p ziC_(|1x+WCEu4m45|?o#4JFWn+%1_OOAmT#5igb{sN`zb#oCe1@%F!sF%J&Om(}Uz zCzwEVYxiWXln&=Ia!xkoG5l9(RQ#|pFQEX4C~P*r@+$(}u)Z}pk<#_V@7)tWnIjK1 z{qyG!dXTrkoJr1YM*4le>jAd#**a11)+AfVzpfKoGYp54(o(`4{4nT!r9Z0R87WKR z+YH5_J~#~I2!~2{>~j$vR)%MpUBxi-^Hyj!V;VR!9c<5jL9S;M|G$|Sz=n!Ha`<5B zi)8XZnQVCz$bj}D!FF#h*RJN_jy>IYl3T{3qGDL^Ck@SH4d@y+rLA${)KIj$5%V_{WbfWbzmx3hu@<>%d5b#~} z-%MN*Kd)*yDaiRGP)kOi)hu-g4e9^DBg#mx8KknM-XzCJBW(k;R+}%B_VRkI$tvY{g!tf=`^o45m)#)R}+D1!@If{SdnKgEKyXH6cN~ zS+0`r>dbdz1+HZ80}|!DTaGOGc4v#btk)aPXLFZ&6BOu3)vbR*QWIUTUtoKDY?C;oES#V)tlXAy^U{E~op@C~}@}}}}rxG~x;Xm?>gmMko zTXOVmJA?EjJ>Rzb22z-qCjlYF`NqnX-<~emuoS8%e3kwf5BbRSQs<18iC$@XIwTe~ z(wv15?o5Bk2NGS{pO?|eu#p_c_mgxCWCRtb)rht&depnUOy|_dr9et7%aP5+ssaiD z!>1Q-^(kdOf=x5t4qsMi=+v9-HVqP{*lLv*HlIScWxOwG=15lF`@drH6)6SV%e?11 zq{${+U%b7n|Hrk0edDw#Cfh(;-6%FY^6fzc4mK&fUit5ECSY}*wfbE8>_p?_9NuP- zSW&ff7OJU&`=FJ{HF*$kIm)0SK~?ghgqj@4wm2gy*LW2&cr6eOAfpSM*?n6~|Z8dk0RtSGof4(+&44=1pJh&;OiJGqZDrW|^ZAsO7WFFazf9N;60 z=p}ediPXggV$b~cLyy~X0(RJ&5KWyOcEP=-rxPx`sMnI!3G0+3NyW-m5@W}{a)m@)q+O-agP?Q}R1%`)7X}E-StOST~Y&Qf);fb-1U9g`6-88Gllv?2VIEW>VEdmv=@+pQm|4UoWeT z6+!RIw9IjQc3`__FyAdBkpvm-J4OquWCqFXH)v7+zI;`gd%CQ+sABs8K#^5|%_UzX zV?uOe)_EkSf~H~594s#T_@>pG(O;3@N$3Up)dt6MG6!wc?h`iTxA?EW6uKFLVjE~EF6~B+?JWNb9E@qqNv3%h-#8)*RpH=A}u8!l@l;L zo-Kq#X_Vc1h0)fDV3ABa#rjSB%70qBce1nNz=i`pJgwQfa-4Ooi!pjkhbP+6d&#Qi z;!@T7kB7Kbz_3+ysL+p}G36d7RU47F5mS^sEbO;@-P1wHJ9}=x47cABIod8 z{+-cW!0h4BL$4oq^zwHeS|-%xMa{o@CGVHT)TO&N_AjA!L}biC|D!!whG>J%H;sr* z9&2hw;wk#li6bgCHE|>L?dE3tT)(ZgTA2DF>T=O1wLt{UDB{b54%4-PW1`||K1NA9 zFkSD^p#JzeB+J>>KERvrM~mIdoyUn;X?%aq5&&tG<-g)vV-U5ACZowST2-Gv2g905 zMGQiT4b-_Kja*^gTaLLSGs$431oe>af%KR56&`4JY4o7W0!mzF zQ%@(w)uuXNe9Ufy^!|rI*Ir)MCQwK{@Lpi&eR25cX}y%>T_5N9b7ldkJWJybrqP4c zza$;ED3n#RpEXsi|AxwLN^-SAhj(n&2z4%3!gT#M((`}A{3C863#+t=lBx^~Ag$mQ zZ{O7q6tpmtah{AjQx2Nx3Ye1QAl(=p&FpbI+Z^~tx=HFuiIMK?Q|?{&w$PnI)#ah1b8VlIhO^e(?H7YW z-@d&ul?>8|Xu)SM=!<`Efm_87biu3@!BL+XK0CvgwjEPvwm{i=uLv!+`sb_nL~+hC zhw!P3fajYR+cj(Aif8ZG2j|f+g9K+82hoKB7$Iaz7wy2YPDVs5q zs;T{}(ff(AY_N-E_r-CC-(JM6bM3?E=rME5ae>>$>=^6C0sSepFw%SJR7F@Vek}*h z_9H<8ts{gi1V-Ca{M+6Y^SY@evg{mAB~LTHPz}`@C;T}((+3CPZX-@x>a)J~5gMhD za({EK8s9;W4tew zX6O9&*k!_^8xo-C?CUae-+#hc6^VPiw1Qs4Q@(vbk0RhbM+>0;n)h$zAFAG8C6~$% zsY0mdF{M;m2;Xv5^C=yUm%hic(7$}BI*j)iKWEO(ee&c9s}9##Pha8!-HO2F&@R?4 z<=>?5qXn3%>n{4vR91cE^A!WnzV*MJ<0fs}w3nII@)^%Alw3GY#`>I<6Osvcp62?W zD<)_Fch>*O)`@Z-Xz70g4|2~}@iMG178Z>OmvXkr*R)#l4as`XIT&?$ zP{HKa{Wc<8=Ng1X_H!P49JAa}vAk=X9{b)p;9@CTAMm@j{<%>Gz8N3Di@%w~{G3xd5l)xp}01Jyplh25?h& zLzr?XVv!Yix<*h*pBZnxJFNUsng?CI07W>CJP91Wq{a>~ zzY58+&Ik^Q{jDhHvD-){>!-4}u7A3=`tR_w{-ep*B7&W7-%+bRZNB2BlKU!fdg6SL zkVnA#jLS<67~^9+O>h6-WHrVow;zdxJ}v@V<1}sFxh#@&Y%20BTo?Uw>(LdddluX! zU^Z>s{u@IrQ)5H%C0)78fa*+kCK>N8q?G zAS|A4DnAgoq=Si_U;h}C4+qMemI_pyt;JEt*d79$fq|Z!ZrsCHgxM8a6mpbsukDi~Tf=gCD9cc1UQOCt< z1=wdzB3}W5KM@eCwQ1iAP~p}UH+AHZjKklR;LYzL>J;?#)~td^*J1?j;vMV@Xznf^ z*c{c!J|*LLyO?m<(=jjBRY_uc&Z~nWDtfSeltgTQO zbjlq$b)y3tRsu}M2{}gh4JP$eHPil+7Awn2 z_g@>IM~)kvvm+>9tfmq&`J^=|=$mV5xd-q-^8^k&DRM1wOw5t!YG4IU&sN=C(^nRT z4en1a>pFdHo?+jO%LdL4tk5@d$~IQb(Nnwc^SSHW&HH&Kxf@PL2tO0{!LKJS#}p>l z3o_se@z+t_Zw6TCtz_Q8=;peUo}4LNYH!p`>}!`D8r<4E?+{x5*ZW3s-(iwf`U=qW zpdXWuW^8}><@XY_ijL!z05s71Zc&L?ddQBVy3{vn=t4MW>e-xXz1RLu?-`Hlp~glq zW%gsD?VXr%r-wKw?aI_f^rd0^{1pabR^p55bU%jQr%4yatLrM^lw-(ey@t|jrkB^>JA+82fa#BD8wPs01+=ngg+UQ+i1q{*pSv2O;)A!k1V7JJr zIW#tuKewjObOuYxTgR&02aMM1^`9t^)4+aSfuM=5wrb~5cSXQ;@}l9GJrxn?RT-VW zhHwe+o9)B$-Kt|Mj;Fm=mF}lvOxRPy==yMU-Q|q3wDwJ&fY0+kDOn<5#*ckl5FYi2 ztSST^Tu(Te?ei)cwXP>F6z9y!0mq3>^=I7)$%jW!jx1&8Tfj@gbSX^X{+EAE9@#xM zZ&?)B@<^KEq)|D;>qeiWz}oqHLSy~E{gwJ)N;gjfMwwTtF%Jnmq;I=>f#BimRgdz7 z5r~Z&@#1HBH7@F2P$X59AnmWkL`C9P8O$QIm5xKE#?1;0d33l)a0kByKl~Qs`&J3B z@?RJl8VWrV1fVu5$C2h;wy2zYE{aU6=7TXk>AV`NAx6D~Mmi3|RXxb=-0U4Z;<+M9 zg5w_^17_T!^9VCrZ#NHUHf^TlFqBvO%xTH#Rjm8Zi!_30uMbxPk{1U2ZOKr5uuc|m+ z-*ofd?H0NGS8(avhch8cWFm0=vH5TeYO|nlmJ+5Qs&8JVjw=Ec{jq}5;XsDx1V0Kn zh~td1^ZN##>-+kSt=m+7^F|`H9z(h8wzKZ`WF)<@{m~y<4vn)rjmyV_-4F`;eY?Yh zIQIL`H@&82LamvV@3a%|F`J7p3D2fm!P0Ql?=7%4prpEww6p=Dt=T#Y ztVT#7g=|bn_fga*T^0qiR_Ha%JVYj>(5bVVW21UbO#~%jSXa8YwyX*JZx=v)RX`OQ z*+iEL!&{#})?@{~ZN~?51T8)?3{F)X_VNJErNC^536g)*Es((fd zNq7W*CxMq0j(H@Fs$`&r+fBfa`M-P{ zOt~HReqIbowY^?@83vWS?kZrJWpl`C{cm%U8&$^AIvY;(TTa8Y+T;6Ea9oi(B1@Wk9x%r0tK4|ncG zBoz6nE2If6_f47-B^wC-Eo8|pm;J%~#E#yDB4<_1%qn|^&LS@4z54wST4rQjh}_oQAvQP2ql9nSt>M}+C3t+l?| zlk1Vcx3?~@kM`5Rx@Bpl(Gv56UDX4PXGVW-q6zrsEGUc%ua6_}su8wkD;{4orqD09 z+yV{sKovvB?(aHo=$DC7fT4iC1B{8sL(BS>YF+qZ44H1qSE}E*Dnkz9LXe_t<7FqwfJyL)IT+Qdynx~{2Ld|jakYRsSdA& z;Pw}v&AVI|Umb2rD=MCLWOAo~7F)VqHM2fBDJj9&WZZRnF<_;Qh|KhO66&35TfI>{ zi)Dc+>p((5jYbh&kKQM>(!ex8Gop-u6uCoS3Ur`6@3!oRL18}u=hMV0D2GCQWm-C1 zfS5yj*t|_n?<<`1Xta~PI`j9HDg=S?1_e}&73ArlVmGLMA6>(BJ+Zd3vI-M$D||$` z%q8RBhwhxNmi|Dn14K|%S7qcbee5?|oBhN~FRxam_A?H?C)kZcVUa?r*$CX5U6me! zo%_=-ctjj%se#elx+cW4|GfSSS%o^$U*$=4>F{v?z$dOoq*F@PcsV-ldu|w6b#zZM(?*?^`QD?f+{_-2doXKo@{wY07s{(<8Wg8FN zwMCwL^mTLwRMd}Myw+!tsmvLl*;*GyNua)Bc7Sp46fl(BkO(S=Ve{dz7txkTAxbwl zaY&DTS>XE4dxkogGJ11njG353gtS6C1cR|1a;WHfcTmZDRi%EwO`KXxQR(h3SN~9kk zsGUcE3kt1Kh{mU$={Mk;3!yNJ26^A1ZuF}82Wi;#Lf7Qarwr6o9R40IS02k_D(hJS znDCMhuCc=jjLI}zfvGxNfg2yVc@tBv;G$IzEKf`T|HF|+%p&_Y8dx$M!F3y>--2(} z$$UiM`5U7XOqur00^dC7?Qw7EdjgOE8jELIEHzf^EVJwi%y*D6Br|H8o1Bhony1_| z-V-tAy*&9Yn(_#NJxgj(SZRW>Y_W1A%JQ;I*U-Nnec%@;VU!(#|BoB-ZKH!lhK9CQ zKB8o0QRwdL$<kW%%m`wr^;RA9XzQ&s*5)*47p+?Rr$xr9orv ztLGkK9|8V*5U3ayMq2Y9^518FdcpwHO8Nx-lNp7rZ7##u>NpK-%uzw$stoF^?KUO7V(O3! zfv}R~s-!Wc!2#Occ`A;Fpusw7bY}@PayxuX42n$f{-J^SLg;6Ot`R*4 ztf$lQ7IAp^Ap+D>^(l?wWR}sr3O=r2>>%MG=@ID9j+oIdno<-{JO)d+jgU5vd0fo% zz9c)Ma$}TT?v>4Vp?e%rz|4%DXTZU@k7xG(WVby~>)+&=`` z45IOu1%ya`ND3ZP-#545MnOM&$u+g*o!`Iy8(wc^18@G7PB%Et&@UT%msybqT*Tgk zX_BM%gDXeOHZGy>IaiwJVhh4Fk~;UdPoU= z=HO%FF>60^FgyD&`R%ddEEycJQ;xuGUp?pEICl9#XgmsGSJ(@~nQRbfVCCAhTz~P+ zq`PDLXOZOevlThK{pohd1QU@BP;NRZ4ZECZs>rrgD`MN};TSCA?dByQ_3eoVuxV9pyOyEBMHR9j9H_>}&C6~&%XkYJCg~7!qm1q~gHJZy0qr1wS$6{y zaE_}QilE@U#zC>5qgZOF%GlWER9Guk$65X39_3aU`H5mIS!s+_Jd%4MtF+nSL$J-? zDVl@+VQRN|0gwhT$uImbrYe3##o_)-<+}YG`5BKJ$(3-g5c^9v&~Ni1J8iY-(#~I% z{A+AIZhp-7!(pr1#Tn4=F2%FRqG&i`Zubyo9+wQ*HLVna7$fb77WVT=6#e>``LbiOKqE$%8bi zFLFw!Yrh!+h)dNd>I$;P9wvs@`x)Ll^bs)^9h9SVoz7 zhHx@QW?K6zyrqYaL-e_>u*eIImc%mE4mLi1|1wkbc2d^Zgno{^-)@`9umOx zwG})U1e9k<3*o?Y(C;vwZ01pw@-5<2Um0qjjSZ*10CZA%MHCzgH`mx@&upSqF9!6* zZzf8WPA%!NM=mx*D!HOot)`YP-qRsFZhuk)#@&zwYdI)0`TZUT&-2;_0{r};9BW~v ze!&-cX~I4I;< zY^Jx?N`!{?8&1&;OZT}3UyS^lJP4F_aNW7jwf3>GoBb&qbNLaj0EE0^n|VmN4g*Ts z7<#H3NZ|<55qz_TG)lrr*CM<*!dj(-35)|KUqkzxvCzNb9amurX2ahh^u_0vFmuB6 zs4QHb4D2AS?;@MPsAhRE_T|t> zzpR}+dNMN^PQ_8k)CxUTCm5?8v>UwgR^#a{5!`YAPpv~QdxUjR&lc@(1EQ^_?JK#71N{fBM~f`p8HWf!|f z{g!NGkcO>S5k}&HR2&rt&ATfQ9vRTls?+vc;%BjOLN3m9Mzu@IS|;JmLaArXLTP81 zNHDBpQ9aBYxFPe@Ttcw@-;!=RQm|bcHERnxkOH{JPSFVWsi}CUpC!9_*Nj15xa#>FMu)h?p6r&<6%)g4_@bzXGGm0)bK>l>G3QBpX_ZzM1b z4>(LjADoD~BEQl74Uds_FtcgE=bP5MKKCd&MH8wpP}tu3kCH*f>W}bkIu2yYEqO(^ z&q%Sv<0cU>*KJ|SkW#4*IbZ#Xz@=4BDYZ`B@zUW(j@%Xa^yBm<=rZ>Vc+}Us0H*=_ zSdw7u0R9fV;D5V{Oi=cVCFE~B%2JQ|#4j~6Og!CSz%xTq4P!g58P`qeTKH0+HDe9l&|U|z<*MRVzD5U7;n%ISh)L_w=Et1)eC{pI(1Gx0zfM%6~Gim z-3kroMcxv>21z%1rJ*KU2NBuxB!Q1S~uS@Ub=_>s+VnawFhkzvqZ**8B6 zTyzFaW+mh#jPuHcZ#I3U%kz6PDg?f5a{4Wi41yiuta{%s+Z_Vpcqr@&IRtxk?YO4f zRBWPPc|>+Q_u@p5D5(yZsYt7k(>p9B4|gVBV}#P$XUJVa3xo5RL!meL1<+V%&lOyS zFRPr)BT7VmJCmf`s2fH*05MD&(-VpJG|EmVC4N^1`{|QF+ z!%NK6od5EoI5jGcX)qtU7rh|N zc+DvVDva7<;~fRjI0aPo;yF66z~yOlRScd9CJUI93mN%l(G`2hVBT(}xWuBncha~X zybOi<4SH6BF|zhogvU<|ivnGxI!+CanUL-G&+`m;xv}FhRk`NtIIuvs%$L;>4SIV2 ztU(x@thWClsYY-MK1_>HVqr&U0IH_Bk$)C`*t>-mO zKp>^Y%?N@W_@vXHm(%lsl^`o{wcIjtUF%w_Hj1`s-`C zEgz{cvfD@IR?H4x4oCl&ulT@@K#&dTwQj{q8A2knP1{d zkdkD6Qhbq`;};$Jh=l@`%e0F&K#c_%mL=nGgAfP)Nj_GEsah@i4`iCj3SD$!2CmgJ#|qzNhfhS%suwQnM6z-*Ipxje)vj?mJmZ8uJSh7N?(WI}p-V_L* zAOHL$I-YN1^W=YiC;SF5z66dVj~BX}-h{C$3=WD{zA0eLb!j>=$d?1whgjEdW8C`! zHd(Xo5dB0NLoflKvl~#0&=c1|H|j$dH+D3y1%|BD|cday#m>kyw;w3czAs9DYGd1t4C#Fz@+&2=#dj@GvHUPdG2GA`ae!-Lbt zrR5|w^vy5^2+(GTwkdb z)Q$Qs#`{eDjgO2n*?XO!pU@K&yVRRBe4qyDD)_vz&yOAghns5%w2ijlXSnGyPaer^9&QzZ2%36i_UcN|@iDAR zm(A|RQJyFWFf$tOcp1y?{IiFzlFzE^Q!t7xb&6k;apQrjJ(&OcBEu^05O8mUYVzaGcgw?@&JTQWQU(+)p1Zi zL9~sPnF+qRiBAzCpb_m}xjy|7rtq1oVS4G#&+*!dw;N3>HkUoC>*B!h>5Xq0q>1rB zlmMT09E^%11`JPl*tqXf?O(kH`Pgwb?jQf;%hrou76--powlmq3ZNT#AWF6!A>bV~ zImyWAP-^aAU{*Af63qsB(@sBNKkmxB)vTRHya&WlhKKi{Tc_wAR(I59Dpy=_#G`dSry}_%&?VV z$X9*;<9%fm4^k~-Eh^{=g!!@FAI8D$M5kGvJb^16HC0tUzg3$h%IPv!0Hwb&Ue@7? zA%uzsbYo!w!+P%bO1PEdH!v(I-lIblYOwmK~=pjQ^0NXR#}3)T}vC=e42q{ z-0lrkkB|@FO1||y|54&CT|ywLP>;g>HUmG4RX7H=L>*4%p3lZY|12L-baN=;+1nz1 z+k1PGxBhRgfbkq?egCo1xgv8GE6uv!k8G7B@Y)j#ogTK*>kFeQ+teT}j_cJv=i}oG z2e@xej=2aXm)etJv(2X`yJqT;k0vNxjg>AZPzfAT#aLSCb+n7(9bIoi2lUG1k%${T ztQpCTOgU%fe@*v|M{JPmxl`>tgs#?ygj%p%%beV^or@4#f>_km^( zkaiUjV67tsUn@bafr$Ai5fTmiiBj5B(t0G7h$ERKNK`ct0ucxe<)+bOp`o zVJ$EvjdDe&?%tu4I~EB;ihISR7+jBKRxDg0mx|zpQvLiXuTFImX29AnsdTMsYosWe z<(p^IW78Kw>}(*ECwQhk{%#_|V#8AE`vnme1U3AthU?Fz)enJE!9h}s)MaPq=OsezEcLM1>F%}-}u$Xhn*nrA5 zFs9i7MTBo4k~TPtE-1MQX)PK6MMlR2L-`B>l^Bewp$x6KeV*zF(;eS&q_OZ|NFObISL+oZ*;jwO73r26LCY}ImoiY9Z*ZD8wE#VoQUc9=DyTnAs$R|DF*ikoHGRAWIK&z zdaYTd3f;O~?jc;f%}?8bmmqUz=ks}e1)J8wNm~@Yv2lXw(Y~GZ3*(9*#Oc8XJ0~ZY zuBv`}esVUhe~m%<$;g{viL*^%U{>g@q1EFjto3_e#ee?1T}+3pqn2RQE&RviaI$tM9qaix9&IgcPX0{Ud*>VdT3Q@T zbI*tL7NTS)E4^oeTYi06V|yjj{G`FRZTDhmh~kqRIJpR{3+Ud2UdyUzy1l0c`8PN} z($sVfPuB8uWB^&{gi}5ze;HF&d3!wYHTOxrP75C=iFrYEUw5tPgq+;&`CmX-55pOVgl<}4Dk>JIfvKjWY4||!Rxob`TYi20h=>a5ShKcvaOP>zm$8p2ukLN z++X;?TocBdJchj-5W6ax`S$5)W7XT3&rSxM2uq-iNE{g(8#~z_!7gie=DUGWdZr5g z8ZKJpEa_P&6oh_t2cu$ZcpG|n|NG_3R4_?fljY~!~$=?B~*=qHB* z%?n)xHSU8cWmKAl06MV;KL5M zKE;bGG%a_P1`N4EG9|NKy1MFQWcK19l$0w`Z7ZD-^YKoz>GhF6D)@-c5?5SIt#U!v z)!zQ{FSuz!e@tt)smL7Dd{WSnGK>jgO z#I5j21`D*6v88_$*{jR9oK(n;9sB;oYn@|qObQ&~rq^301YPk04UPhu=#h@`se3c| z7~i}%*fHeX6#|tnj*r$A47#d7GEuZbu4m9rfAHH##*OU76#{#gDNl0RmK&j@7o^vN9CBdd}%a@?zkO!@}eZ!v?l8+E=wR1nl0bx=F=D&=!( zV!(e?(FHYPpcFrnq#OhS7Mqa4TGHRHVpfK;Bu3^?jyJDf<=9L_MS1EH5Ddyk(+GxC zd1<$u`PWe=8qdNp)#aQbPu2Gx%Z0KLr?Xh|2npd6j$bi6oKNA1B9I(X!sG>dZBjVd z^n;}76`>_%fJ7(I`HO7QjbuYERkt(m23n&*&dlbhtKna0IQ|wC2r7M>>DT6Vd!OH7 zGRyNI1bV*r7^D~3s+E^(*!;1Ky{=5X^RM8w{HCY}VS1hh7SgH0426?*3LMSQgpma&s1 z>nD^Xl8}aEOJq%!l90XM9esaZ{+QQ&p6A|s&OP_sbI*C7dz)VV*V>xm{^iIle_JJ7 zU*4CH+sXgA1o!z$0Uau91%x$Fk(A%h6TDxvaLc4U@qVpp<&w{!NMr!gqG`foGwuz& zuHn%=)o1Z4V?3D9JJGwbxAm#3Tc&?tKxJd8^GklJuKnEd*1XbR2qaXIu5p_!4R!u%-lg$5^*Sy{vOfB=Kt3P|$gsPw&n+?6O9v*6gY924HI# zWH7&_TAJa25qMCx{xVtW)3nQB80Yb6qdjtLhj>3Z&?YfkCuBM5w_dc+Ejo(s-CMrK=+zLt3x zK4)P@exI}kaBfRokHlgrh4b~VuyIF?^zL_NR);m(cSLm_N}Z^8SgUje=0OxNtYgux zG+%(1v^c)2KuPK%lb?r&hl?+7Hc?ITmN3r5=PYWuZ&k)p7uUwxWV^NfxKhr@i#tnd z+sISTr?pP~w#EIQX9K8T>sW@SQk z$aX=OHkB+l;*t`&d@wrq^>>D7^AVr9; zb1i2H1S}a>C%$A*-1+v1vZYpb)1h6$NM$z~BfC}rr;F8PRD%~9zr+??1c3~D0Tkkt zo{7eMpOKij-8*}QD8XF$$-u4`$v#eRmX|F8zu=aLDKYjMP46#DyRdVj**Q7SJv0?5 zd`fS?>3z|0V0BWJLn?sO#(Limx8A96Vx#hD5^7ClvxmRRGaJ3{lSZPb0LD85B@G4e zrW7Z=uf4-3d=uQ|;0RbZvw=u(m=ummHAD|TnAcH=f7ng)ee%j+IXy>g!BNq$QYZeB ze_aCHY_WatGisVTQ$D^3919-md_7qTNxv=76Vp`iH2n4^xGelFPbhBvFj5Bi31?Ez zbv-0fa1(?zd#Bo&1>rZYNA$mrFD_Rr?Bg7<%&@A4|FPaug-fBqg1a&wr<2&eoBW7d z@x{jbOytc^TMxK2qTo|To(Q^(#rAur7it~si@)(f;Lu~EpUwzxgvborcM`=oqbuRG3dDk{>yEq|FT`fM&K^MvilIjDr~{hB^n z+uEYT33vV{Ct)?!Z1?e*#nSqJogE>f=DoxkIj^kI%$lktPF&oZg@s?|MYtcm++8GX zt?1o4yROmBb(Qh=no%5TS=sk*0e{t_1b34`WUWTeqsb#q3bra#hu0f&?j` zXIw>G7%KZ`3gQeC_L zaPA*;?25O%I38D@C#!VqoKt zlo*@CZzegL>a;0SV5tX;TqtQ=FE-0Cr6?E#TY;=5-d_Stl zN^fr4XBeR1=T}TS;MQ`Lh*VtiIAJKr3;d;QeP~g?rE5l!2g{X3PjhUfD*du3vyDJY zafz`97&DxZ#OT{6t(TLe(U{=vZwlMKte>4+E9iH>EiQt80X~&VF7qxQ4Q1)%H)82J zJYkv}uWaTB>q5wd3L|BOKM%ZVQ9%k-7to_^0fro!^a0K0hmUrR*Iu2TTZ?=D@y6eR zsMAYCQSOn^EiBSM+&NhtseHopiZ$2X6yo=EP!KNTJR!Jb`e>EkqHYTPsp;@YC>ph{ zuBCA{Svc*nzu>?RF5S$PR5VkZL3aLQ)u7e$2@#20!&~^kwG?aKC}(dO4da9hmIv$f z(>B%SAr~$OEIiHWXzg>y=>lwo(Bfl(B6Z|0P)y1bN{ zFd4)VWTg;|b*WAus5RW8^3Hceo;uF##zn=uGEc74Nwi+$t*b{EaiHHbq&4)<>?C{^ z$m>otQreAcx>WM?r~930*@HIq;JK7+)6i|l%LoLBBlcwEt$t1QCwA`bU8*V5t*P<+ zdoN#3@CG%UlcwTs3H;+*EQ!DZLs04fC65ypBV?=XnJXn#@dnZ_D1m6zttw;R&Sd^W zSxY6{vZ#^LuYK*zCkUPe+Q(O}>}5CgZfCdsdFTQ*e0R#pcqFB;cXpCyE_B}Q9{RR( z0$~7)o`VXg6;zX`qO-puBZ^;oETlv>z;3?_ak@_`=%?m%#FpaAzklSqC~k>k14>mZ zF9E*c{Tcdy*8tM=Mnb5y#wn$}C4QZIcf3lOkmse-)}-Q|CjnTg#2kUspZQd$2b?V(vSE^SoO;wrARH2-{qPGl^qCIYn_^1)e!N^z+$ zcC;qxYP;7qK-Q)`IK)W^dlp31Hk#cyS5%zRSzAd&`AfY{*9o&WHKKH z23f@2cob~2iMz=k^7ne%4>EaV?k8EC6tVO}d9L%yFm%+9YC!`}4Bk zpZ%vhTXh8rG)|4Fb-tb;;SO8v+Fu@#!9U8EwBVCU8ps0HI;?x{65fC!_}Vk`@-P`d zE;8lhFs4_5TgFdH2eT;fnFlP(YC9f?4`X2sULEOZA`?=Xr1qj0UByAb zk@BPjKpf`6TN za3kRep zt)whe*oy>2c!=K%lDdbGa!P+&RWM(~0Sn&U{QefV|F_W%>nh;r^JE!@l=fPZ&+SO! zME_a6^JH-Q7Jw!h^mQmN2Fm-=2h<{EaG_hD2CW9N^0idAh6NGvk=%;q9#hKx1wz%# zT{Kv(QJT;+Px$yu3-;_=1C!wO0_3OQ{W_ZgzU zB+8rB5U9M594{Ph1hl?Ai2HPf*Fm=blZ@B+mEf=C+0Fp>p2D$ITPs^E;rPZ4hSTiw z(oF-<7L}JSG2dx>uWP}xVGO4(ps=oWc3SAu7q{zLS`^;B0Gc;?kXB`Uf!1Smbl4+XiqeQ&2#=cnF+KemPw*S}2xwIhaQSbA9 zXa6HV7%=heyFvvT%k{&GYNe1sWCjhUFXu}6)gSjBH1cpbBs!Aye_BU7K)`H%N0-v} zK6w9LyptVW9=Q6zXHrH{xx-ig4DIJ%8Y|s@B-po`epEA@u>5{)+w#`Cn7%$o3Hv(E z0HTJIwPCyLPTNV>yHsJ!x-o~RMXKRnLYxfRAJB}4)elv=V=N)5PD9+gun1be>a91v zrqp0(FXGW-%Y}gBz-0uNnO9bJ^*L^Ry4hrD#@Lahr2tQtmVY`7w={{mJ5;P+VtPR% z?r#5Q>5tcw+HY@K21xjmQZWy4zU%K1Q7=z8KN$F70alm`sd68!&oIdlgrVS9ukT{J zljS#sJ@~oU-!t_5R5{v_d-?0Zr>4MnEw{cpKh6PI*#OkYb$0(@NB3Mn&qe~^<(!@Lv)s=WKGE}? z{0~)fa))B$PKOWxKQoQ;kGky`O{v~27oMZK*|he&RYG>=eTe26>R86FJ^TGyzxQ_7 z-e*1`so@-8z*Xrc_jJ_7hgfJv#VuF9(r0D$@^;6;fci9L{binCz#gmqnEv%-fkwby z4VjsV_dw(O))?vNfH|sC)!20)GvUj_zgw(bUza^m2&%L2AT{J%-#=-kq4hJT!)B0_ zkjV9V%W`QZ*|BCxSnj`h$)o2lLZ)&|^`>!@8}TGwTeV0kDFiVMWKH;Wv{W#m_L4&< zv0V%UePu=gD-}wuOj>?4k8t&XlFksME2YbWjKXeQNKIk54C{HNjUF9D zPs6r_^a<|BWwZ=~C^VMPMbU#e)k6z_nj#+YcWr3+V#A$1o3$IwX^B=ZH%$g`m~D35 zu+K)HHJfZxjbU^F)>kr_9jfeJxT4(8mE|zW5V6$UuWumex@e#S-yfdiA7D1xvkbZh z2vkF9Q88^n#b1fHNy=wqN*iK{3$)>WRBiR|Kq6 zS;U>_4MU8aRy0;0(*p)nStIVn8GKIBD~g_z8I|jjubU&{d70iwxYb%*4!Iija@l&| z8okH5*}zwk5)-h)w=B?D>QYnOv<#iQxRIX^j(onGG^L>czZ6L-xEM(V9rF1?8Z;N2xj_&ts#>@+3G5XVxc zj{No{+vQIF8Fz?*4TOsvbkPLilI6#>79#13wN&3_ay#5UM^FBJ#kIWmwWD&c(EFY@ zZ;0sW@OioKkD=CeTJB=v&;J??q4<+v@qIbwk{?u5(e@HYdqsjk+v(g*_hUiA#chey z_v6b?lH5Q}wlUj&_{G~x9E#0g+w!9*fSy~I1OH=lf0gxoCt`G1K-g{x`0nx1#$Ta% zfN9{1eZR+b;l$_*QiCwZ-1l_g&X$QL4|jL>Ys6Aidi#FvPcJVo!?p3> zvnM4lMT%tjEYLPI2zCekC2YRUzNq_j7ljiEz_>tsnJc6SA_cY=Ou&u!E{eKK_1=!R zZmp6$i+$t)#>)>^5H4@yC(CFnQl`d?u#RzQESg{Oy6$*{YCET!v&d_x#^-~7Ifj` zP8j}C6)RJF)%91mVr52iqS zZh!bMy6Kf39qE%GOc6l69r$^*4-4@|liiAEWIx_5`}7vC-zUnH*vkn#)}EeTS6c(V zFQgSQ2js>?uLRrgR&18dY+DQsgbA5oV5O`Cg*d$r4dVi3*%Ka>d7 z>i6kr@=EJs1_1{M^K_M7H(LQY&j|28_p(Gd`NZ6OCNAKtpNEI7^)B?KJaK=x9JYwk z`7ssx$H+l7bd*lo>rTrl#ek*gC5m{9&;qy`oE)}*2|=>X&0UN#v?$brB%@2TPtpPK zqfh^yXkTAS3NegXO@SFXs+jo*_-N<=4*N**cE#txSQKZ&X?)gLK~&?Z+9g5qBr;~m zDTi-pLKkRdSuflIve4$I$HaD9K?4)C=K~zI zA_3&B-E-MF34b5n5QuO1G){5H=0wtU0z{+rb7S}dc@$d~+Y|Y*&i>le@F)!?X$>v9 z^h-_w0WLT6QnrBO_mb;a*`JWw$Qx!y;OI5u&l{?LjqR(L)0;Jr9|oC<>9O+LgH1=K z?UJKhP9f#~WycfyeBC94F>Q^fjYD)71;v*!Yqo@NTC!z>tF}PiY?@eHEENy}*Vz)Q z8ulu^U)-Fs{Jhaqd+?inZ4@j!-`<#2D*DC;re7XHVwkq~>l=Zgf9LjDz(b!9?{X{p zkuss2d?TXO+H5aDG29aH&RKm7BXx_S@~hn`8S&2{qV*3~LwE zKyWJPEY7tBX!hsQU~Elmt>{a^N_g?xqL`&V;!41;{(;jELfM_AXgkX-nXBD<%%?St zw-?2dR4VpM7gT=x4|=!!=k9jQStc&k?@v8IYo*wRs2^&%w0pnC34Y^hl>g8DIeaoWrCk{+6lYtv3v0mH4Ypu?` zt)_)Hh=gf!K;T*)NSkxD;_prq2$6N@vZqsHq@;-@Qb0-!a?qQ($(oqU7wP}G`qNT5 z&z5@nodA)x|?Jyg9Zj(?hZi? zs~-%6+NfwcKW$x}C8!0XPh=acXwJOFZsYhTsox0%-h5x{tz*ieMjOFmG6+F0mp&M* z(yJ>7QqbTLQVo(D$%M)gw=Z?BbSu9k6-GAMlx~|H<_Z1{Pl^B0 z=NYhje&VeulQz-FTn56j*F6_}HPOh}F2t$cpu?1YE8< z@~;uY)1`=WFcn7di31p>#6*OYG#_Y`$qoKy=yf^>xg>BP*TZ_ly|qs5=<#hH<^@L| zhHk|B6$ZkfJ+iEs*UTj65Q@)`Ke_^cGtuh@6NWos_D5CJr99eLZNAb_M=m1fPoB{s zK@j7$bQ~PzXLJ!lw5NIu^uefHNIy9_W^MH?10EGM^sFh}C4t8YGglQ}*EkipuYGW)35PY|Na5ugp{jZ2yR|U3 zlh=myvUt4P{b1|CYtKbiy?n*zma5&rj@9(^@bEv}TVCweZjv>w{v;rlE+t?#08X*P zx&NGMi_H4sb8F5+RDU_l&U+57p^<(m=C(gkFjftQWy*4TSlBzfi%SgP{%GzY-QMqd z+U|oUe^Ld(5I1vH^X#efLdz_F%#6ZJ2~66$u%kgm3P^ALR>jvP$_fl;eAHBqgSY3R z>+H3r;8gjY(cf~v59yWV<>YvD=wtr7DG}T}uj-{MwA<2Qi0tf8wraKz0=AO2kG% zAq5VSiiX9lV&t(^05OewClp6i0U)|xbRIp##2!J_!wRt~D3Zv|o8ZR>XcDV`s2}}M zjZZ5SU&ZT7y%xo@Lrm)iF0D?ry|eKG_3w5UC0?`_k#3q_r@&HuXMN#4Y5i2Ld)Vcc z3l||llx`u`Z9XBVN zv7ryBjB|Xbnn2OvD=+qpBLYQ@1%Tud;5A)pY*$ZVd@-8PM4$~O)t^2y#hDIAUuugt zU}t=`&6pDMh|CqGA~2^m1a!n%qp7ifH_tvblpW6avHFA^J)xD}RI0L;ss6{f9M^&T zjcYb!nu(hz&wc!&)$La3!ynbxDs_GUT?_4|#$?d=QDXG+PC8#L?V2bY==?Ok0}yO9 zEhsI6%giTMb~DtNW(ud5a8Kh~9(?8(IBE7FUh3MX6Oa&WU&uMo#UwXe(~nv`4RQuS zA)*9+K$0<9(W};K`A7J=S`x$pPl))SM88IVC#_B#@<9Dr8pn*pFa)31KaL^h+QYPomz zX2IQ-1|B(r6pOViocj4Q^`d@?L9%!f5*w8S62N;4HW=v!U%0S_f{OtDTC~6{7N|XC z7GdM1fva3bG-0I_#MBJ|;5@<^1OHG$6pAgL{cDON)IqJM2@np@qh4kqaN#-J*zb%@ z4c{9Wl2ro4U{2>Mi{QQWs2J`OH1h!gX{d-uoB#^@E}hp`SKf=L4@pk|J6}S-*2aoveZ>qcj!AxFoGvW_1r-A+egg0dE0b!| z1eK*zC-|tG)uO+{+gO*9z_uulAnY9N?}!GJ*~S>5Z+$63vYsjTxcfD7MIW=jM~eZ| zGYIghJ|4@<7S9E_FWA()E@cMr1{Uk)O|>{wngX7@yXs+~!DrAwwkMd8MDv3(`kJXk z%TMWAzaMd{-(Zk|bWz#rGvnXbm+v^H&z&H4t@74u60kE{20TmELcGALsl%8FNz(+iA66EHZA8t%+*-YnWl&O`SmMR z7uKVTkPygUBR=qWeb4%C?1gRGacvUBg06$rKZGHnHE`BNqlbf{l`W6?rkxA39uNka z7@Rdl3qZmXxk0w<`uuXW`_m+W5OOq^U@)Mwq z2y2QnVCeCNW2(^laLKdR%!3*R)SP%RK1(P^z6c_n0NGAU0+Z!zg>kxoZQuDVp@Ul0 zA_iL#s1Y1>KuV|tpcKwlO&mQhc&rB=?~&`1u&#k&*_3s3_tZ8?VE7p%9T6B60Tk2< zlEp|de;HH48I+sB7bc*gly6FzUo~Oa=i4(rt3r@Gf}3}oxdm)N7*5y02*M!eYbgmK zMX||ZcHVrv5bWt+k!zDI2Q_gg!0~y7Yt=p$!l6Ha+y`jZL-U-za7dNh0i)#mgw>jB zgP)F`8)8|g=HoGnFNEfpj8in=!mZ-3DHQAmiSvN@(TiQXxGN- z`!iFPhC)CTB>qC=Jj+*Q);hXD$xY;s5Nh=hMh0+U2i%GR9hlv{AL7(F#hw{MLm`SA zy8*3B&M>CrcI93Kh=n5EQ&4fA3W{OH33BK|hSWuVQ=I4Wz zzI&mTCte9Q;qH8y&;p{f-r4ezAfv52VfW4P@Egip2Ez?}V}5a66j)<$HwUIXKu0%( zCYjs_ufRztu_Jt+ZGZy@?Eq20L~lhE$aV3B(vo< zR{J}P9MYPa6P)$2(I%A%&nK zcX9{NR?aQ0_03OeK7Nh>s4T7&1VsHFx62Cv8h9*VTXaUu6v(4l1r$Pqd|nWV-ffn! zr;`S4oO#2T0uohpz=L;Cl9%E@J40Fz;P`OR_>vjyIb&q( zEWZterzKY-2o8cImFmleqgLoKfeQ$#gsK>o;lO^$n zXcYJLr!Wk&_Uj}GPt5a5=F6^IzuCh~c z(2`qlUi7X*_9spOXvPWV>fGv?C4Nie_Dn?0)hzKRi+deuMk{e>SdtYHiYk~9oNs{#s*AU zPRz%B4h%iU7O)-=IDgqP@|YOEx4Rwu;6S%7;8=ML9g0~4f zBG9^g+_FpU7t;>MK*+HhmW`!)^RHQBTVN9C(gH{mcU_|)xg!v{gONEG(Evt?u}HQ! z?j8Qe@F0#XXIbAM^d3C^bI>f-o|RDbQiPK{R(RYp!?a?rs(u6OP!1y-J!&8B5a2nS(9$<)() zV^Sz&>v8@Ir&I$b2~=MbmY(=2{S7dOlXfV&daq(qyC|rmfe8Z5#~PvoCeJCf<#&cb z?`oNm*CPyGk-fJNL7L2+KoZVb z%^Ksp?5b{lY^<+vENPx}puR#0L9b9hI9+M7D2m@ISZV`FR{*Iw zpkBEFm}}B1MX}dKUt%|fjn=-&K7_?IBZ0Z;1~VNe`@{3hr2b>)0M zSPzN`De!RQc#h#CTb?c*yL6Qn306yx4C$vV6=OzbDY!P!c(J z2jZBygzkS{<*{wP{%}DYbbm+_yn5d$!hlkXEMf$3Rs)2SGF&TNCR_gZm04TC_7sA8 z8206_?u;>DEj=X(db5xu*jbTF18cpwpXR%`3gG+wYRdQ(eXqG8j>Qfy=9o?cjk^h= z0BJtJ#0785+)YmmaZ0lgft*jBbbbwtGSDC#h-c5q4_(&-U3@L<8~Q|$v6=Zy6yll^ z`qnjt&Byd4zDk$x*$h`Kq#%EIitCtB1!I-w8!Xp+SS8?0cJMPBuj%D<#Fl_~bYvN<%#-G;~lW;O82To+vrR(eqIc{Mw^ z@QO(3AOBhuhHbS=4a6Khk6Xa`_&+mW|AoQZ0jOL6*b0H^#t&xB{3Ey7+T+E4{NbBe z3qer+HB))f-r53%RRNiVuw&X8*ed~pE;7aKkjRpbe`WWn$C10rKMRG?$=N@Dy(LkX z?1h5x;R>qk^X%MMLr+0en#UHvl!MaEd)di2h=vF{zWN?^JVmk2K(`pv=5Ck)9l=BP zok3VTauItCZ?pO=i37wVz^V-*PY_L~eO-xh<0p#aBHg4g{L6ncU{C>n;26*)O>lQP39hyq78(L4`;G3;qfOh2y74ievbV6_>NFYfaw8YUiu#tzb$8jGZ8*0tm+_1eEN56RV3Y_IFJdP%Ui_T?_qz0U%9bgS z9-_cj9X?)K5ZTBnA3El6j<1Bxhkjj1%k(}%3dAdbkXnI-jaUxCirI(u=xSzABt%Va z>dMtqJ;h{&2q6Fn9q$OHoODzIFqc6|Vt1g})!M*02%Nf~X;$A@MD`Vc7r)ubB{frE zd0lS)kHoZ?%CRh9?))12c++%p^jM+c>)pL8tnF>=>}`Ni2E4;JE~E_oj{!p5x$;ZR z*Zo3Nfw`0T_9{ktx9gt_o>|D79uNWi>M=wYd)^lOC1wQ{4nRM?9>gNBdIAmDv&VfS zk!O9%x&gYd*V^W|TkGB6yI%g+|Dzc1wW@H_kvmvlN&G!TU_2B=foLT7`ywy+4Cp!H zI?!26H(P*d3JPDbf!SazQozBituZpZ=GwM|)^na)l)M;R pJOaZ7{rx-s0oaPdRm5>HR{(Q{|~tWiq!xB From 6d9669eaefbb0a80ccae04d785bc690a08c1c4dc Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 2 Oct 2026 17:58:09 +0000 Subject: [PATCH 7/7] Draw highlight above path, clear trail on topic change, gate late capture behind flag Co-authored-by: mat --- .../extension/dev/capture.mjs | 64 ++++++++++-------- .../extension/src/GhostPreviewPanel.tsx | 1 + .../extension/src/scene/GhostScene.ts | 10 +-- .../media/ghost-preview.png | Bin 71682 -> 71680 bytes 4 files changed, 41 insertions(+), 34 deletions(-) diff --git a/extensions/model_ghost_preview/extension/dev/capture.mjs b/extensions/model_ghost_preview/extension/dev/capture.mjs index 5d6d546..add357e 100644 --- a/extensions/model_ghost_preview/extension/dev/capture.mjs +++ b/extensions/model_ghost_preview/extension/dev/capture.mjs @@ -3,8 +3,10 @@ import path from "node:path"; import puppeteer from "puppeteer-core"; -const url = process.argv[2] ?? "http://127.0.0.1:5173/"; -const mediaDir = path.resolve(process.argv[3] ?? "../../media"); +const late = process.argv.includes("--late"); +const args = process.argv.slice(2).filter((arg) => arg !== "--late"); +const url = args[0] ?? "http://127.0.0.1:5173/"; +const mediaDir = path.resolve(args[1] ?? "../../media"); const browser = await puppeteer.launch({ executablePath: "/usr/local/bin/google-chrome", @@ -74,35 +76,37 @@ try { await panel.screenshot({ path: ghostPath }); console.log("wrote", ghostPath); - const lateUrl = new URL(url); - lateUrl.searchParams.set("t", "34"); - await page.goto(lateUrl.toString(), { waitUntil: "networkidle0", timeout: 60000 }); - await page.waitForFunction( - () => { - const root = document.querySelector("[data-pose-count]"); - if (!root) { - return false; - } - return ( - root.getAttribute("data-loading") === "false" && - Number(root.getAttribute("data-pose-count")) > 50 - ); - }, - { timeout: 20000 }, - ); - await new Promise((resolve) => setTimeout(resolve, 400)); - await dollyTowardTruck(page); - const latePanel = await page.$("#panel"); - const lateTimeline = await page.$("#timeline"); - const lateBox = await lateTimeline?.boundingBox(); - if (!latePanel || !lateBox) { - throw new Error("Late-seek capture missing panel or timeline"); + if (late) { + const lateUrl = new URL(url); + lateUrl.searchParams.set("t", "34"); + await page.goto(lateUrl.toString(), { waitUntil: "networkidle0", timeout: 60000 }); + await page.waitForFunction( + () => { + const root = document.querySelector("[data-pose-count]"); + if (!root) { + return false; + } + return ( + root.getAttribute("data-loading") === "false" && + Number(root.getAttribute("data-pose-count")) > 50 + ); + }, + { timeout: 20000 }, + ); + await new Promise((resolve) => setTimeout(resolve, 400)); + await dollyTowardTruck(page); + const latePanel = await page.$("#panel"); + const lateTimeline = await page.$("#timeline"); + const lateBox = await lateTimeline?.boundingBox(); + if (!latePanel || !lateBox) { + throw new Error("Late-seek capture missing panel or timeline"); + } + await page.mouse.move(lateBox.x + lateBox.width * (24 / 40), lateBox.y + lateBox.height / 2); + await new Promise((resolve) => setTimeout(resolve, 500)); + const latePath = path.join(mediaDir, "late-ghost.png"); + await latePanel.screenshot({ path: latePath }); + console.log("wrote", latePath); } - await page.mouse.move(lateBox.x + lateBox.width * (24 / 40), lateBox.y + lateBox.height / 2); - await new Promise((resolve) => setTimeout(resolve, 500)); - const latePath = "/tmp/late-ghost.png"; - await latePanel.screenshot({ path: latePath }); - console.log("wrote", latePath); } finally { await browser.close(); } diff --git a/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx b/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx index b58c045..0e46179 100644 --- a/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx +++ b/extensions/model_ghost_preview/extension/src/GhostPreviewPanel.tsx @@ -161,6 +161,7 @@ export function GhostPreviewPanel({ context }: { context: PanelExtensionContext setLoading(true); setLoadError(undefined); setPoseCount(0); + setPoseRevision((value) => value + 1); setChildFrames([]); const unsubscribe = subscribe({ diff --git a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts index 4a241b7..c49e0c0 100644 --- a/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts +++ b/extensions/model_ghost_preview/extension/src/scene/GhostScene.ts @@ -331,7 +331,7 @@ export class GhostScene { } } this.#fitGround(this.#pathPoints); - this.#pathLine = this.#syncFatLine(this.#pathLine, this.#pathPoints, path.color, 8, 0.15); + this.#pathLine = this.#syncFatLine(this.#pathLine, this.#pathPoints, path.color, 8, 0.15, 1); this.#requestRender(); } @@ -341,7 +341,7 @@ export class GhostScene { return; } this.#highlightKey = ""; - this.#highlightLine = this.#syncFatLine(this.#highlightLine, [], highlight?.color ?? "#ffffff", 11, 0.22); + this.#highlightLine = this.#syncFatLine(this.#highlightLine, [], highlight?.color ?? "#ffffff", 11, 0.22, 2); this.#requestRender(); return; } @@ -363,7 +363,7 @@ export class GhostScene { ); } const color = lighten(highlight.color); - this.#highlightLine = this.#syncFatLine(this.#highlightLine, points, color, 11, 0.22); + this.#highlightLine = this.#syncFatLine(this.#highlightLine, points, color, 11, 0.22, 2); this.#requestRender(); } @@ -598,6 +598,7 @@ export class GhostScene { color: string, width: number, lift: number, + renderOrder: number, ): FatLine | undefined { if (points.length < 2) { this.#removeFatLine(current); @@ -609,6 +610,7 @@ export class GhostScene { if (current?.geometry === geometry) { current.material.color.set(hex); current.material.linewidth = width; + current.line.renderOrder = renderOrder; return current; } this.#removeFatLine(current); @@ -623,7 +625,7 @@ export class GhostScene { }); const line = new Line2(geometry, material); line.frustumCulled = false; - line.renderOrder = 1; + line.renderOrder = renderOrder; this.#scene.add(line); return { line, geometry, material }; } diff --git a/extensions/model_ghost_preview/media/ghost-preview.png b/extensions/model_ghost_preview/media/ghost-preview.png index 2237fd65b50a9c88d834f092e84cf2df5a5f5ddf..e7dfb6c90e7f351d108f2220d362e9215d6b60b2 100644 GIT binary patch delta 69359 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 delta 69349 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 ZGAJDnTk?Q4b$~07mWG~snW|mL{{b3J0?hyb