@volter/cyclotron 0.5.200 → 0.5.202
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUNDLED_NOTICES +12 -12
- package/dist/.vite/manifest.json +1186 -1186
- package/dist/assets/EntityModelDocument-CTv9neQl.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-DvAItQDN.js +1 -0
- package/dist/assets/InspectorObjectPreview-OFjo-0If.js +1 -0
- package/dist/assets/LiveModuleDocument-B9tzWNvZ.js +2 -0
- package/dist/assets/LutAssetDocument-Lkh76TK_.js +1 -0
- package/dist/assets/ModelAssetDocument-BglGVCWf.js +1 -0
- package/dist/assets/NonThreeAuthoringBootstrap-BKYj1ZrL.js +1 -0
- package/dist/assets/Object3DDocumentToolbar-BWlPaJaR.js +1 -0
- package/dist/assets/Object3DPreview-Dq9NnHY-.js +2 -0
- package/dist/assets/QuarksAssetDocument-DFzUXgdw.js +2 -0
- package/dist/assets/ShaderAssetDocument-BOH6xjVq.js +1 -0
- package/dist/assets/StageHost-CUsLgJ9L.js +1179 -0
- package/dist/assets/ToolObject3DPreview-BU1QqwGb.js +1 -0
- package/dist/assets/ViewportShadingMenu-D8-tD90k.js +1 -0
- package/dist/assets/animation-mixers.service-BHZrQ6o9.js +1 -0
- package/dist/assets/animation-timeline.utility-BskUV9h5.js +1 -0
- package/dist/assets/asset-preview-BIeLrVDi.js +4 -0
- package/dist/assets/blender-emscripten-engine-DnJ85_-l.js +2 -0
- package/dist/assets/blender-node-editor.document-BZ3tDB0q.js +1 -0
- package/dist/assets/blender-properties-model-BFVxUxVu.js +1 -0
- package/dist/assets/blender-properties-tab-B7i6JVHg.js +3 -0
- package/dist/assets/blender-runtime-host-DKtrkHfq.js +7221 -0
- package/dist/assets/blender-runtime.document-CAJqbDlw.js +13 -0
- package/dist/assets/blender-screenshot.menu-BX8Qhz1K.js +1 -0
- package/dist/assets/blender-timeline.document-C_-4SumN.js +1 -0
- package/dist/assets/blender-uv-editor.document-C3yFk1L3.js +1 -0
- package/dist/assets/blender-version.status-BHmvomjL.js +1 -0
- package/dist/assets/blender-wali-engine-x-OfFUGX.js +2 -0
- package/dist/assets/blender.command-D7cBLV--.js +1 -0
- package/dist/assets/blender.status-DBj_h-w4.js +1 -0
- package/dist/assets/model-inspection-B7nJafQh.js +1 -0
- package/dist/assets/models.finder-821wCb5Q.js +1 -0
- package/dist/assets/object3d-document-session-registry-8bXWdrtp.js +2 -0
- package/dist/assets/play-mode-Cyjf00rK.js +1 -0
- package/dist/assets/product-kevIo93n.js +14 -0
- package/dist/assets/properties-bone-constraints.inspector-DbVQ-Rhq.js +1 -0
- package/dist/assets/properties-bone.inspector-BC7RAwED.js +1 -0
- package/dist/assets/properties-collection.inspector-DxJ61nVT.js +1 -0
- package/dist/assets/properties-constraints.inspector-CPeEVT5H.js +1 -0
- package/dist/assets/properties-data.inspector-BJlOtPcJ.js +1 -0
- package/dist/assets/properties-material.inspector-W5GbcQkT.js +1 -0
- package/dist/assets/properties-modifiers.inspector-BC0A_0Hu.js +1 -0
- package/dist/assets/properties-object.inspector-1fljhcYU.js +1 -0
- package/dist/assets/properties-output.inspector-C6KX8AJp.js +1 -0
- package/dist/assets/properties-particles.inspector-C1sPoMG7.js +1 -0
- package/dist/assets/properties-physics.inspector-C6hw0Y6I.js +1 -0
- package/dist/assets/properties-render.inspector-BC0jynlC.js +1 -0
- package/dist/assets/properties-scene.inspector-BcUUDycu.js +1 -0
- package/dist/assets/properties-texture.inspector-2s_zlduK.js +1 -0
- package/dist/assets/properties-view-layer.inspector-D2JLsZ4Z.js +1 -0
- package/dist/assets/properties-world.inspector-B2J5kXoP.js +1 -0
- package/dist/assets/react-18-Ltq8GJhW.js +1 -0
- package/dist/assets/stage-keyboard-SPi6G9qU.js +1 -0
- package/dist/assets/stage-overlay-set-CSHPvCH_.js +1 -0
- package/dist/assets/stage-presence-markers-BfZdDdP7.js +1 -0
- package/dist/assets/stage-transform-tools-Bp2cs0uH.js +1 -0
- package/dist/assets/standard-viewport-dressing-BZJnDUxe.js +24 -0
- package/dist/assets/three-integration.service-BwAivmO0.js +2 -0
- package/dist/assets/volter-sdk-B7tf3Tvt.js +2363 -0
- package/dist/assets/volter-sdk-account-7JMtwi37.js +1 -0
- package/dist/assets/volter-sdk-client-5Byy2wXM.js +1 -0
- package/dist/assets/volter-sdk-contributions-CoJ92BxZ.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-BUYJamSU.js +1 -0
- package/dist/assets/volter-sdk-document-probe-BTBIWGZo.js +1 -0
- package/dist/assets/volter-sdk-editor-view-CjY8aK6t.js +1 -0
- package/dist/assets/volter-sdk-host-BMYTog8q.js +1 -0
- package/dist/assets/volter-sdk-http-transport.browser-DKzOsvwJ.js +1 -0
- package/dist/assets/volter-sdk-index-CmXVdz18.js +1 -0
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-DYZY_-Jp.js +1 -0
- package/dist/assets/volter-sdk-kit-account-client-C__9OqCx.js +1 -0
- package/dist/assets/volter-sdk-kit-action-registry-DbZnCZuD.js +1 -0
- package/dist/assets/volter-sdk-kit-active-product-CJSQPG7X.js +1 -0
- package/dist/assets/volter-sdk-kit-active-project-W_h5o_1g.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-editor-config-yf74Q9V6.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-observation-CjE-3maR.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-animation-clock-Bv4O7TzS.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-stage-transport-BWUPntky.js +1 -0
- package/dist/assets/volter-sdk-kit-api-assets-urr61ysI.js +1 -0
- package/dist/assets/volter-sdk-kit-api-base-Cg1jQjly.js +1 -0
- package/dist/assets/volter-sdk-kit-api-build-IPeA_Geg.js +1 -0
- package/dist/assets/volter-sdk-kit-api-logs-DgvCJi1X.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-identity-DcrwneAO.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-open-CY0GGANh.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-source-B-GKXtsq.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-state-DaYEbDnF.js +1 -0
- package/dist/assets/volter-sdk-kit-api-relay-DcClK0Tj.js +1 -0
- package/dist/assets/volter-sdk-kit-api-settings-DA_ISTVj.js +1 -0
- package/dist/assets/volter-sdk-kit-api-themes-DobwNqVL.js +1 -0
- package/dist/assets/volter-sdk-kit-api-worktrees-D-1w6p1x.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-capabilities-Cj7f9cJ_.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-compare-core-CRJzZ7e9.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-editor-context-6JuLCBP0.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-events-DJHjAkj3.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-Bh5wXH--.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-UnAt6KM3.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-CaWf9v47.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-thumbnails-22-5CSoT.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-viewers-BKOaJMpK.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-BrrsjJga.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-CPOE0jPj.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-CF5pN2yr.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-CGPLkaKF.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-B2uF8Qr8.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-DFkzAOq7.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-CqZ7yiLi.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-DT-6JRu-.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-Dvy_iNjM.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-DxbVn0I8.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-Biscg5zR.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-DWSHWGxX.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-nBo0GLzq.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-M1f4AEWS.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-Zs1I0AYY.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-DW5T67GM.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-Da6B0VFl.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-systems-SnFtnrEP.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-DYByZK5n.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-DrZybg65.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-DX1fctWY.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-CuqgZEK0.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-CFdzaVqi.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-DtKitXG1.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-CaIzvQGg.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-D2dItuZJ.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-DUkwNruT.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-CNICAAxN.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-DtvlG0_r.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-C0bBI0Oq.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-DHVc4KkH.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-CMJqvaBK.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-C-V0yrIR.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-DIduzzWr.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-CNg-xt_Y.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-C2JmvbH5.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-provenance-DBuV6m5Q.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-CZ9p6KTQ.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-DveQF6yR.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-BxCtoUSS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-BW409uVb.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-R4IwrpVA.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-BbCw867p.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-CGe1yE_M.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-three-root-KScMI_GK.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-f5MhQ3zW.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BQ-liZyN.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-D5N0XAiv.js +1 -0
- package/dist/assets/volter-sdk-kit-availability-tick-BtAIfjED.js +1 -0
- package/dist/assets/volter-sdk-kit-bitmap-label--Eayjv5n.js +1 -0
- package/dist/assets/volter-sdk-kit-boot-routing-DgMsFIM8.js +1 -0
- package/dist/assets/volter-sdk-kit-breakpoint-state-ey2AKHF6.js +1 -0
- package/dist/assets/volter-sdk-kit-build-identity-CWm0idao.js +1 -0
- package/dist/assets/volter-sdk-kit-bytes-codec-p9viZgYd.js +1 -0
- package/dist/assets/volter-sdk-kit-cancellation-reason-Dk5ap6A2.js +1 -0
- package/dist/assets/volter-sdk-kit-canvas-frames-C3bH5ML2.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-camera-pose-DTlrLT6B.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-size-DqEiUell.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-registry-Y03Z4rb5.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-B8Nkg0xB.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-client-Biffahna.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-presence-9Lcnxe9r.js +1 -0
- package/dist/assets/volter-sdk-kit-command-dispatch-DkUJztlv.js +1 -0
- package/dist/assets/volter-sdk-kit-command-listener-DkB3zAUV.js +1 -0
- package/dist/assets/volter-sdk-kit-command-registry-B9071ZJF.js +1 -0
- package/dist/assets/volter-sdk-kit-component-board-registry-BEz4eGpc.js +1 -0
- package/dist/assets/volter-sdk-kit-component-states-registry-DP-an_wd.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-CTX5J-vG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-DU8NUJX_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-BeqiCdMZ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-D5YC5ETL.js +1 -0
- package/dist/assets/volter-sdk-kit-components-BoardRulers-B5EEZQSQ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-C6NLGWP_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-3QIscqiA.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-B7w2qG_m.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CodeView-CVofKn39.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-Bn5OfN5M.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-s3S8S1aX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-DB4395_M.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-DTr-fCJV.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Inspector-DJLfY8ge.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-obOM7Ty1.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-BXcAoMVj.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-DkMLLYHP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-CMGWcxL8.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-DSvuMe8E.js +1 -0
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-HQxEJkEg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-MediaProperties-DZcpZz2u.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-Ja8C2i9Q.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-CLdJVqRO.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-CXANLMyp.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-Crl4GInv.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SaveStatus-DyKtgKyo.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-D65G-ZCf.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-CjgqxNBS.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-UIYJ6pRt.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolHost-t7FJ8H3j.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Toolbar-wLLQ2FJ4.js +1 -0
- package/dist/assets/volter-sdk-kit-components-TransientHint-CeXnqeIx.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-zKy-W9jH.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-D8JzeWZo.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VolterLogo-BIM5Edfl.js +1 -0
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-CLgJ0lLf.js +1 -0
- package/dist/assets/volter-sdk-kit-components-account-documents-B8uRgQHV.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-documents-7GuLsNE-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-BWVYMeG4.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-Mebq9lHP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-Dib7j3oD.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-CPLTItQo.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-BqXDfiHz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-9azpKAM-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-IZSkjpcC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-DlKQjgi9.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-DaNGqSDM.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-BYkcyvDG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-CLjRwu1I.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-CyH5Isos.js +1 -0
- package/dist/assets/volter-sdk-kit-components-board-guides-DMZ1ZnuQ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-BHv0V401.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-D8Eod2re.js +1 -0
- package/dist/assets/volter-sdk-kit-components-core-utilities-Pe_IexTD.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-CmkS3bex.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-Chi9d4Aa.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-selection-DC4icDNM.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-BSSAUmKe.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-Cs9QjKri.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-BWwn1qgP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-kind-documents-CxnOVstq.js +1 -0
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-CmDCEN7m.js +1 -0
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-BI7fumaL.js +1 -0
- package/dist/assets/volter-sdk-kit-components-scene-documents-CpmkIKtT.js +1 -0
- package/dist/assets/volter-sdk-kit-components-status-contributions-BOnfHdDr.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-documents-WqSl2RHn.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-CacYoCqS.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-after-paint-BHvqq3TS.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-BjPray2j.js +1 -0
- package/dist/assets/volter-sdk-kit-components-workspace-history-D4pkX1B3.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-documents-C0Nvz1by.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-CppGcboN.js +1 -0
- package/dist/assets/volter-sdk-kit-composite-screenshot-DQTSBE3R.js +1 -0
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-C_ftWlkd.js +1 -0
- package/dist/assets/volter-sdk-kit-contribution-surfaces-DEsx_k2Q.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-dzSdv9le.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-wU1j39Qh.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-BbgmWxhA.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-BHxJMOqH.js +1 -0
- package/dist/assets/volter-sdk-kit-creation-site-registry-tWO004ug.js +1 -0
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-D4xWCPzQ.js +1 -0
- package/dist/assets/volter-sdk-kit-document-areas-CgItwH3n.js +1 -0
- package/dist/assets/volter-sdk-kit-document-context-registry-DnUCJ2Ew.js +1 -0
- package/dist/assets/volter-sdk-kit-document-open-registry-CPN5zJat.js +1 -0
- package/dist/assets/volter-sdk-kit-document-play-extension-DGtADZMq.js +1 -0
- package/dist/assets/volter-sdk-kit-document-preview-source-Cfl4Dy_3.js +1 -0
- package/dist/assets/volter-sdk-kit-document-renderer-session-8cEDXPAr.js +1 -0
- package/dist/assets/volter-sdk-kit-document-stage-sessions-GRh2JjD_.js +1 -0
- package/dist/assets/volter-sdk-kit-document-viewports-HtvvtALx.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-api-8c_rSJ8R.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-TDV59iqa.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-commands-NSPJ3J69.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-console-CipG8ist.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-current-view-BNJuuGGe.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-document-probe-CqTl5xM-.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-git-client-Cvdqf4n8.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-hotkeys-BEG8vCFL.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-DCvaE09F.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-view-CvfqPRLe.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-mode-GoKwnpLK.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-notifications-8Dm2QeDZ.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presence-Cy6gEVnz.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-ynaasing.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-B1Xycry5.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-runtime-BwgmBJxX.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-server-response-CBtV7ekn.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-attribution-C8WSDC0Q.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-mode-Br-RYmCl.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-state-facets-DGTBNp4W.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-view-presentation-_J_UvKAW.js +1 -0
- package/dist/assets/volter-sdk-kit-environment-images-DbGMfma-.js +1 -0
- package/dist/assets/volter-sdk-kit-eyedropper-session-DczyBVkS.js +1 -0
- package/dist/assets/volter-sdk-kit-files-file-provider-BVOf7C-r.js +1 -0
- package/dist/assets/volter-sdk-kit-files-project-files-D7BYbDfP.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-index-CIMkEiLT.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-DH8ZBqft.js +1 -0
- package/dist/assets/volter-sdk-kit-frame-frame-parts-DIq7ll-Q.js +1 -0
- package/dist/assets/volter-sdk-kit-framed-document-capture-DnfuhB1m.js +1 -0
- package/dist/assets/volter-sdk-kit-game-surface-defaults-Bh3wv-mH.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-export-state-BEkckFjb.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-replay-DJHcbdV9.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-session-time-DElpE5Kt.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-sessions-vclLd3xX.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-Bg_SPc4t.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-internals-BsAcvB3k.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-BcwYgpZd.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-s2ts29Yt.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-efo0iJmc.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-CIefmxpn.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-projection-BYYDCYV5.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-DFZ55Eq0.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-UxgV-SkK.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-rows-Cz5ZihYm.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-walk-Dr2U8ZO9.js +1 -0
- package/dist/assets/volter-sdk-kit-history-editor-session-CWCXIv3b.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-commands-2DWQSTTt.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-delegate-C3rzMOlx.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-D3ix018P.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-service-7W-3kfYQ.js +1 -0
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-BK0qQ3tf.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-file-history-C4ttOKyT.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-CLkqF_Jr.js +1 -0
- package/dist/assets/volter-sdk-kit-history-resource-registry-DakXGHYK.js +1 -0
- package/dist/assets/volter-sdk-kit-history-snapshot-store-Bj4ZFRdu.js +1 -0
- package/dist/assets/volter-sdk-kit-history-source-history-backend-DOodlY__.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-registration-group-CSfQk9pL.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-DwDITjLJ.js +1 -0
- package/dist/assets/volter-sdk-kit-hotkeys-CPPWDBzh.js +1 -0
- package/dist/assets/volter-sdk-kit-inference-diagnostics-p4D6in15.js +1 -0
- package/dist/assets/volter-sdk-kit-initial-project-65zDAw6V.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-subject-7diSTvFh.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-surface-OqdBerRk.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-DOhkLalv.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-display-D-IZAoDx.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-document-subject-C-b5D9du.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-game-subject-CTK8YlLe.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-model-Cy5--YYe.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-node-media-Cl5Pv5Xr.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-null-subject-1B-hPkvb.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-serialize-ugnltzbu.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-BIbj_zQO.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-presentation-BvvnMkOs.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-Bm2wCxwq.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-section-registry-BqsYeqqP.js +1 -0
- package/dist/assets/volter-sdk-kit-instance-source-actions-B1HuqEzQ.js +1 -0
- package/dist/assets/volter-sdk-kit-js-heap-0ed9Ql3b.js +1 -0
- package/dist/assets/volter-sdk-kit-key-actions-C6egPduq.js +1 -0
- package/dist/assets/volter-sdk-kit-keymap-presets-5yZW1Ken.js +1 -0
- package/dist/assets/volter-sdk-kit-layout-policy-tGPe3EAK.js +1 -0
- package/dist/assets/volter-sdk-kit-light-explorer-model-26_jaThf.js +1 -0
- package/dist/assets/volter-sdk-kit-live-canvas-frame-DRVTsZ7f.js +1 -0
- package/dist/assets/volter-sdk-kit-live-document-DNOa16Bq.js +1 -0
- package/dist/assets/volter-sdk-kit-live-gesture-lock-BfI3fpoY.js +1 -0
- package/dist/assets/volter-sdk-kit-live-seam-evidence-C3oBBPWO.js +1 -0
- package/dist/assets/volter-sdk-kit-live-session-registry-Db_iC2RG.js +1 -0
- package/dist/assets/volter-sdk-kit-live-transition-BxWCL92B.js +1 -0
- package/dist/assets/volter-sdk-kit-manifest-project-Dkjmvlek.js +1 -0
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-UGFYVMJn.js +1 -0
- package/dist/assets/volter-sdk-kit-mount-failure-report-D0ZQ71nh.js +1 -0
- package/dist/assets/volter-sdk-kit-native-selection-style-DQknGdcs.js +1 -0
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-Ce1L0rFI.js +1 -0
- package/dist/assets/volter-sdk-kit-packaged-runtime-Du8V-ZH8.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-profiler-CxUavCgG.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-sources-C-eI5WtQ.js +1 -0
- package/dist/assets/volter-sdk-kit-photograph-notice-CMNz5W6m.js +1 -0
- package/dist/assets/volter-sdk-kit-play-boot-phase-CztnwCxE.js +1 -0
- package/dist/assets/volter-sdk-kit-play-camera-flight-CvYyVfqu.js +1 -0
- package/dist/assets/volter-sdk-kit-presentation-surface-CS4DYiUp.js +1 -0
- package/dist/assets/volter-sdk-kit-product-command-DaIFfFu_.js +1 -0
- package/dist/assets/volter-sdk-kit-project-adapter-0aFFtmfA.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-refresh-CJF0MSRU.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-roots-CV_EbPry.js +1 -0
- package/dist/assets/volter-sdk-kit-project-local-state-DQv0Qa0e.js +1 -0
- package/dist/assets/volter-sdk-kit-project-manager-BdmMB_D-.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-changes-CWsfJwzV.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-split-DLDH1hds.js +1 -0
- package/dist/assets/volter-sdk-kit-project-provenance-Bbq065iV.js +1 -0
- package/dist/assets/volter-sdk-kit-project-ready-D3OERGyu.js +1 -0
- package/dist/assets/volter-sdk-kit-project-shape-B7Ad2TLc.js +1 -0
- package/dist/assets/volter-sdk-kit-project-tools-Bh0ogpoJ.js +1 -0
- package/dist/assets/volter-sdk-kit-readiness-VIETGQBH.js +1 -0
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-hLvH-N1M.js +1 -0
- package/dist/assets/volter-sdk-kit-reported-play-state-FxN9UgrJ.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-Bq-D4Z-k.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BYz5ToiQ.js +1 -0
- package/dist/assets/volter-sdk-kit-retained-document-states-NHFeJEqz.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-document-plan-CfN37jSz.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-live-open-CUwi3scP.js +1 -0
- package/dist/assets/volter-sdk-kit-scoped-game-css-D-Zo7muz.js +1 -0
- package/dist/assets/volter-sdk-kit-served-url-CmQyUkUJ.js +1 -0
- package/dist/assets/volter-sdk-kit-session-close-CpeajdFt.js +1 -0
- package/dist/assets/volter-sdk-kit-session-tombstone-Qt6PTZUe.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-settings-provider-CxyCrZci.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-store-Bx1u09Ej.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-Boaqeol8.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-door-BIxg0K41.js +1 -0
- package/dist/assets/volter-sdk-kit-source-conflict-CA-dUA-W.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-context-OIqCRioe.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-invalidation-b0ChhDfp.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-store-registry-qwoXqP6n.js +1 -0
- package/dist/assets/volter-sdk-kit-startup-failure-CUj2L1tr.js +1 -0
- package/dist/assets/volter-sdk-kit-state-report-deferral-iZlfm4Nr.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-Bt8R1X9k.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-http-storage-9nE2FlO-.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-index-B-AuWuD7.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-mem-storage-5sJsrCQS.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-path-lock-DtvTYQo0.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-paths-D-YlCKPr.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-B8SFGFOE.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-xyAUh9br.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-8RXr-Y7Q.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-7iiFLhC-.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-a_qCa43Q.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-scope-Co0HbC12.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-capture-01sjOwEY.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-COdprqX6.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-discovery-Bb_5JF9r.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-DkQLVdlE.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-grouping-QZsmhYuS.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-presentation--DkLmQiN.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-registry-yiNoFm9N.js +1 -0
- package/dist/assets/volter-sdk-kit-story-document-openers-BflkfwTk.js +1 -0
- package/dist/assets/volter-sdk-kit-story-thumbnails-UKIziFdS.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-keyboard-AlFTfn8y.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-state-DrZCUwaU.js +1 -0
- package/dist/assets/volter-sdk-kit-system-seam-evidence-YrcyrxrN.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-census-Clg8Smeu.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-B5_REYPr.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-library-CWHbgmPi.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-preference-BgNnpwWG.js +1 -0
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-ZzLJ-bkx.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-contribution-play-C_uwb7tZ.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-loader-DXuCfS8l.js +1 -0
- package/dist/assets/volter-sdk-kit-transform-mode-request-7evEpaB_.js +1 -0
- package/dist/assets/volter-sdk-kit-transient-hint-IRjb64Tc.js +1 -0
- package/dist/assets/volter-sdk-kit-transport-strip-Dti982Ng.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-CwokT34s.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-inspect-DBuRG4dn.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-TNGLa62q.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-D8EbjlnJ.js +1 -0
- package/dist/assets/volter-sdk-kit-user-local-state-DeynFvcT.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-AaacB9oC.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-CwuBDya8.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-presentation-BQwt4yDO.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-surface-status-CSUer8US.js +1 -0
- package/dist/assets/volter-sdk-kit-wait-until-DMOQpGn1.js +1 -0
- package/dist/assets/volter-sdk-kit-worker-call-metrics-Ce4JSc9n.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-areas-babY5OR_.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-HzXopiDV.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-available-documents-BjoSdh5n.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-zryGnXGS.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-ids-BM84KEq4.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-registry-DpAQ4cr5.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-restore-DAg6SG0l.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-host-commands-BFt3wb1k.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-BJ6LHrOE.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-B_DKNtI4.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-presets-Dm7ciqEm.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-regions-D-9EZ8O8.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-static-panels-Dx_SxxnN.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-status-registry-B2icTxhq.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-storage-Dq0eDCYq.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-style-cU7H1sVx.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-DZOA5lmo.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-FNQX3Y4R.js +1 -0
- package/dist/assets/volter-sdk-kit-world-adoption-C4rdKYK1.js +1 -0
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-BBSDe3bt.js +1 -0
- package/dist/assets/volter-sdk-kit-world-document-routing-B_q3648G.js +1 -0
- package/dist/assets/volter-sdk-kit-world-pan-state-DM3zvrVp.js +1 -0
- package/dist/assets/volter-sdk-kit-write-pipe-DJr-GsL0.js +1 -0
- package/dist/assets/volter-sdk-layout-arrangements-Cq4DeXFd.js +1 -0
- package/dist/assets/volter-sdk-layouts-7zyUDSyl.js +1 -0
- package/dist/assets/volter-sdk-selection-DHab-84l.js +1 -0
- package/dist/assets/volter-sdk-session-command-table-CyyxFM5G.js +1 -0
- package/dist/assets/volter-sdk-session-editor-brand-CxqfUhRF.js +1 -0
- package/dist/assets/volter-sdk-session-editor-compatibility-Z7mDMTjo.js +1 -0
- package/dist/assets/volter-sdk-session-editor-control-protocol-DTCmhLv0.js +1 -0
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-MevBvB8r.js +1 -0
- package/dist/assets/volter-sdk-session-game-css-scope-DzK3tvc3.js +1 -0
- package/dist/assets/volter-sdk-session-project-module-url-B-bo0dz0.js +1 -0
- package/dist/assets/volter-sdk-session-relative-path-guard-CJu2RCoi.js +1 -0
- package/dist/assets/volter-sdk-session-tool-contribution-convention-D0i2YQZE.js +1 -0
- package/dist/assets/volter-sdk-types-CPqdxTgy.js +1 -0
- package/dist/assets/volter-sdk-views-Dv3YiPOm.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-Bdjsniuv.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-BhhpmKy1.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-2FBr5lSj.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-thqLOOyG.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-COke1bt3.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-CH8wRoBz.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-BjKYd_LI.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-BRN5ojt0.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-CnsZZe_0.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-DauQ8QpW.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-GW-C4yt6.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-Bp6vbE2c.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-CZ78otUw.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-DFMHVcVT.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-LgPyLSuK.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BnYH_LVT.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-pSErBwub.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-DIeXEpof.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-0re9z-H8.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-TMS6NO4j.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-DZHXUa5e.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-B7tBrFKE.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List-vYi3mFKO.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-BPLk-0YV.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-CW_2xPhI.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-Bd4tK22G.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-BGtgAnQo.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-JJFaoxYv.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-CH2e0Jdr.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-dXXgw22L.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-BsnPOVLx.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-BLjhV7zr.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-6GCeaLqM.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-CK6Ta6O9.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-i5kg_jsv.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-DOVZVHEY.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-XbFM9D5P.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-CEQbALgk.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-384Py7qi.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-pkq7sDwN.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-B0NCiED-.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-Dy0bMngl.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-D3jG_L8o.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-CMR4Hwx8.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-B_iWAEAR.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-C4DT_pTU.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-D04u0tdg.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-aAC5b9eb.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BWwyhCy5.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-BkZMsIeV.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-D1vkf5W4.js +1 -0
- package/dist/assets/volter-shared-fontawesome-BrxDGD11.js +1 -0
- package/dist/assets/volter-shared-jsx-dev-runtime-BpKOeLvd.js +1 -0
- package/dist/assets/volter-shared-jsx-runtime-CKkkxaUm.js +1 -0
- package/dist/assets/volter-shared-react-dom-DG63TACt.js +1 -0
- package/dist/assets/volter-shared-react-dom-client-V0luXxIF.js +1 -0
- package/dist/assets/volter-shared-react-pbR4BgAx.js +1 -0
- package/dist/assets/worker-C7WcdPfy.js +8 -0
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-sdk.json +461 -461
- package/dist-node/cli.js +8 -8
- package/dist-node/create.js +8 -8
- package/package.json +8 -8
- package/dist/assets/EntityModelDocument-D465QWjK.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-Cp51HwV5.js +0 -1
- package/dist/assets/InspectorObjectPreview-b-EpRnaO.js +0 -1
- package/dist/assets/LiveModuleDocument-CUMgSamu.js +0 -2
- package/dist/assets/LutAssetDocument-BMkwuCz0.js +0 -1
- package/dist/assets/ModelAssetDocument-zz03Q5Mw.js +0 -1
- package/dist/assets/NonThreeAuthoringBootstrap-O2cCAXoI.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-BjdoU4q6.js +0 -1
- package/dist/assets/Object3DPreview-C20fpG4X.js +0 -2
- package/dist/assets/QuarksAssetDocument-nv2oiyxs.js +0 -2
- package/dist/assets/ShaderAssetDocument-S1zu_hiu.js +0 -1
- package/dist/assets/StageHost-C8SVvU-x.js +0 -1179
- package/dist/assets/ToolObject3DPreview-B0vIeLWI.js +0 -1
- package/dist/assets/ViewportShadingMenu-DkoWxHta.js +0 -1
- package/dist/assets/animation-mixers.service-DUfYWdkl.js +0 -1
- package/dist/assets/animation-timeline.utility-BWHpuC8q.js +0 -1
- package/dist/assets/asset-preview-B6asDa-u.js +0 -4
- package/dist/assets/blender-emscripten-engine-gYkSi0h8.js +0 -2
- package/dist/assets/blender-node-editor.document-Cp-bYEvj.js +0 -1
- package/dist/assets/blender-properties-model-DteATa1d.js +0 -1
- package/dist/assets/blender-properties-tab-BD4mvjoH.js +0 -3
- package/dist/assets/blender-runtime-host-B6SgPQuc.js +0 -7221
- package/dist/assets/blender-runtime.document-BH05eeu8.js +0 -13
- package/dist/assets/blender-screenshot.menu-D6oAJKtR.js +0 -1
- package/dist/assets/blender-timeline.document-hYTf8AAS.js +0 -1
- package/dist/assets/blender-uv-editor.document-Di5MxxEm.js +0 -1
- package/dist/assets/blender-version.status-C9rIfaX5.js +0 -1
- package/dist/assets/blender-wali-engine-2mTM2Jd8.js +0 -2
- package/dist/assets/blender.command-B1qfJedu.js +0 -1
- package/dist/assets/blender.status-B5f4EZy-.js +0 -1
- package/dist/assets/model-inspection-BwtXGYdV.js +0 -1
- package/dist/assets/models.finder-Ds4doP18.js +0 -1
- package/dist/assets/object3d-document-session-registry-DAq94R6M.js +0 -2
- package/dist/assets/play-mode-7vBUVmGo.js +0 -1
- package/dist/assets/product-CcGp-b0F.js +0 -14
- package/dist/assets/properties-bone-constraints.inspector-DaAmYvjy.js +0 -1
- package/dist/assets/properties-bone.inspector-C89VXAS8.js +0 -1
- package/dist/assets/properties-collection.inspector-BeixUBQg.js +0 -1
- package/dist/assets/properties-constraints.inspector-YN-xd0Ni.js +0 -1
- package/dist/assets/properties-data.inspector-DO7YZ6fF.js +0 -1
- package/dist/assets/properties-material.inspector-B7wPvQdu.js +0 -1
- package/dist/assets/properties-modifiers.inspector-cL8jHXB-.js +0 -1
- package/dist/assets/properties-object.inspector-CdW2c8ww.js +0 -1
- package/dist/assets/properties-output.inspector-8Z5F-aTz.js +0 -1
- package/dist/assets/properties-particles.inspector-B3MTQ8U-.js +0 -1
- package/dist/assets/properties-physics.inspector-DSz1NQPX.js +0 -1
- package/dist/assets/properties-render.inspector-1xu_jlIs.js +0 -1
- package/dist/assets/properties-scene.inspector-CAJMiVef.js +0 -1
- package/dist/assets/properties-texture.inspector-KTIk1wgM.js +0 -1
- package/dist/assets/properties-view-layer.inspector-D7-_1HFv.js +0 -1
- package/dist/assets/properties-world.inspector-BNLjWr4H.js +0 -1
- package/dist/assets/react-18-D2H58OJh.js +0 -1
- package/dist/assets/stage-keyboard-C64ei-yt.js +0 -1
- package/dist/assets/stage-overlay-set-Wm2XVilL.js +0 -1
- package/dist/assets/stage-presence-markers-BMUAL394.js +0 -1
- package/dist/assets/stage-transform-tools-CCFsoLyA.js +0 -1
- package/dist/assets/standard-viewport-dressing-B5tSVNYs.js +0 -24
- package/dist/assets/three-integration.service-D9vFRTB0.js +0 -2
- package/dist/assets/volter-sdk-B8Rwqxtb.js +0 -2363
- package/dist/assets/volter-sdk-account-CEsnB-GQ.js +0 -1
- package/dist/assets/volter-sdk-client-CgYenF_p.js +0 -1
- package/dist/assets/volter-sdk-contributions-DBICWtIp.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-DP--pl76.js +0 -1
- package/dist/assets/volter-sdk-document-probe-D-HgvWNe.js +0 -1
- package/dist/assets/volter-sdk-editor-view-CLWqoE8s.js +0 -1
- package/dist/assets/volter-sdk-host-DajbvEYU.js +0 -1
- package/dist/assets/volter-sdk-http-transport.browser-eWZT46Hh.js +0 -1
- package/dist/assets/volter-sdk-index-CVDxS-Yj.js +0 -1
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-BWLKVbKy.js +0 -1
- package/dist/assets/volter-sdk-kit-account-client-DmqDpV_K.js +0 -1
- package/dist/assets/volter-sdk-kit-action-registry-DqB3jgqp.js +0 -1
- package/dist/assets/volter-sdk-kit-active-product-CmPT0jqs.js +0 -1
- package/dist/assets/volter-sdk-kit-active-project-1BkVKFgx.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-editor-config-CkmAf3Mh.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-observation-Vbo36i-3.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-animation-clock-DF2sk7Ka.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-stage-transport-D-NnH-bA.js +0 -1
- package/dist/assets/volter-sdk-kit-api-assets-B-iayRUa.js +0 -1
- package/dist/assets/volter-sdk-kit-api-base-BPQOhhja.js +0 -1
- package/dist/assets/volter-sdk-kit-api-build-eh1Aq6X3.js +0 -1
- package/dist/assets/volter-sdk-kit-api-logs-xTxzpnmd.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-identity-5wrwQ-LA.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-open-D7GcMRXt.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-source-CD5RSsDn.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-state-BgJuV7os.js +0 -1
- package/dist/assets/volter-sdk-kit-api-relay-_jZd729g.js +0 -1
- package/dist/assets/volter-sdk-kit-api-settings-BSR3IZhk.js +0 -1
- package/dist/assets/volter-sdk-kit-api-themes-DNu86XBn.js +0 -1
- package/dist/assets/volter-sdk-kit-api-worktrees--28dN-6w.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-capabilities-BGjpO_pR.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-compare-core-HBGVLwQm.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-editor-context-4Do6m1fw.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-events-CPqE9JLP.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-DyTiVhco.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-Dba6pRr_.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-BVi34T6C.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-thumbnails-B8E9bEhw.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-viewers-Cv0KKRfv.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-BH8InRE4.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-C2dRn6EC.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-_d6RJRrN.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-p7GGHqZT.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-DzRwlpF0.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-CH1Mewq5.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-CEfZU9wX.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-BgRRKaec.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-DAaQtSTX.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-DXIlcTAe.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-BgSy08Dn.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-DurI2tYg.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-BHdaoLah.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-D1hr1N9N.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-NBr286EV.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-B2cvqmQk.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-BNLJHRw6.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-systems-DMMI5-p6.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-DZ33NFIB.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-CzEXMwmu.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-Cqiz4Ndd.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-ChOcWeRq.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-DGh7N8TV.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-7rQ1TKun.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-CMMSC2An.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-T4GblLJp.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-9BDI4Q92.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-DLiKm6Bo.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-B0pIdhLa.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-Bt7OWA89.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-CYSC-DmR.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-CJ0zrxJ3.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-BV8onMr-.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-DjdiBKsb.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-CEma0P_1.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-BJ8dkWQ5.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-provenance-mdzdEfew.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-BvYKpYne.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-CB5vxqyF.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-56qbLwf6.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-CSnhk-JY.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-C23p9xKY.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-B_BAgKcp.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-Bv_HI4aQ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-three-root-BtnXUdx8.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-Xmv-jLSa.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-UroAJjOl.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-DDtowyAR.js +0 -1
- package/dist/assets/volter-sdk-kit-availability-tick-BY3q60z2.js +0 -1
- package/dist/assets/volter-sdk-kit-bitmap-label-BqKxg60g.js +0 -1
- package/dist/assets/volter-sdk-kit-boot-routing-CDs0PzoF.js +0 -1
- package/dist/assets/volter-sdk-kit-breakpoint-state-ByMUrJ8Q.js +0 -1
- package/dist/assets/volter-sdk-kit-build-identity-DZ0vF7U8.js +0 -1
- package/dist/assets/volter-sdk-kit-bytes-codec-DL8bojSD.js +0 -1
- package/dist/assets/volter-sdk-kit-cancellation-reason-DpARPW-b.js +0 -1
- package/dist/assets/volter-sdk-kit-canvas-frames-D-Q9t6fq.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-camera-pose-BjRnp_82.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-size-Bas38_6u.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-registry-BM5qs2PO.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-DKmDjyA_.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-client-RqZq0HfW.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-presence-DcwItrhx.js +0 -1
- package/dist/assets/volter-sdk-kit-command-dispatch-CntQcBjX.js +0 -1
- package/dist/assets/volter-sdk-kit-command-listener-CN8fkYBj.js +0 -1
- package/dist/assets/volter-sdk-kit-command-registry-ALsm4C99.js +0 -1
- package/dist/assets/volter-sdk-kit-component-board-registry-BCGSffvx.js +0 -1
- package/dist/assets/volter-sdk-kit-component-states-registry-BfWOPAhp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-oVYNNWbs.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-afPf0GhL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-BbtPJ78t.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-D8hQkzbC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-BoardRulers-CKBWl-G_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-BBUhV8zD.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-Bi13OsK7.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-MFGy6cdN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CodeView-Dq6hdQmB.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-wWprauPj.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-DNbntOJ9.js +0 -1
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-QvHKJgYY.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-Dmhq-rh7.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Inspector-vHc5w8XE.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-DQEvmwNw.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-CSMgFMRD.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-Dp92-49N.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-CQqPuM0n.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-CS4iV65L.js +0 -1
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-hsmDZ1OX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-MediaProperties-BSsX4YiM.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CqOVWsJb.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-UN3DnaMq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-CEmlyOkL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-CDMGVPlI.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SaveStatus-Bt1pwKqU.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-FoizsyiK.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-DofVndRf.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-CQCoVFys.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolHost-D3N20Jrb.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Toolbar-CWdh1Dic.js +0 -1
- package/dist/assets/volter-sdk-kit-components-TransientHint-Cm6XZq2-.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-Cj9qJEkD.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-FODa_ooq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VolterLogo-C6TiRRQO.js +0 -1
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-CSLYvtHl.js +0 -1
- package/dist/assets/volter-sdk-kit-components-account-documents-DKZd_T_J.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-documents-CEdDz7ZI.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DpaD1bVu.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-CgwenH7v.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-yb7FVkaB.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-BkDiOaEP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-Di0YTkUe.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-CMkstfhy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-rWh4vR5n.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-BPZePbM5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-BBs2P41E.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-iXkYLN_8.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-Bt_PWzPM.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-YIQFfPeB.js +0 -1
- package/dist/assets/volter-sdk-kit-components-board-guides-C6riD7Pe.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-C06rNftX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-B1r4L3UP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-core-utilities-D4O7rrOv.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-fKPvZP9x.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-C8auA3Sf.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-selection-C8UUOlXh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-B5B7lMnP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-p7w6gUs3.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-Bl92tB-c.js +0 -1
- package/dist/assets/volter-sdk-kit-components-kind-documents-CQ27s1sh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-fsLqxJvY.js +0 -1
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-CpYk2HTr.js +0 -1
- package/dist/assets/volter-sdk-kit-components-scene-documents-B0SUvUtB.js +0 -1
- package/dist/assets/volter-sdk-kit-components-status-contributions-CyAM6A5w.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-documents-U1cs7039.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-CYTAEvbV.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-after-paint-B5l_q1eM.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-De_KDa-y.js +0 -1
- package/dist/assets/volter-sdk-kit-components-workspace-history-kIQfF6rW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-documents-IbYv61lo.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-5lEjq29U.js +0 -1
- package/dist/assets/volter-sdk-kit-composite-screenshot-CuH0lFwR.js +0 -1
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-DS-o1d1M.js +0 -1
- package/dist/assets/volter-sdk-kit-contribution-surfaces-CBG22T88.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-DyPu00wo.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-tKOFcG9-.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-C7D4O-Uj.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-Ba17GxLS.js +0 -1
- package/dist/assets/volter-sdk-kit-creation-site-registry-_6LVA5R2.js +0 -1
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-DeXcii8U.js +0 -1
- package/dist/assets/volter-sdk-kit-document-areas-BKW9_1x-.js +0 -1
- package/dist/assets/volter-sdk-kit-document-context-registry-D7EaJOlP.js +0 -1
- package/dist/assets/volter-sdk-kit-document-open-registry-cPyH-exm.js +0 -1
- package/dist/assets/volter-sdk-kit-document-play-extension-CXIkz9Vj.js +0 -1
- package/dist/assets/volter-sdk-kit-document-preview-source-CT6WFbkN.js +0 -1
- package/dist/assets/volter-sdk-kit-document-renderer-session-LJjvlE8K.js +0 -1
- package/dist/assets/volter-sdk-kit-document-stage-sessions-DQVYeV6L.js +0 -1
- package/dist/assets/volter-sdk-kit-document-viewports-6Zqe2xHe.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-api-BhWKXQVz.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-CEJHLILS.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-commands-dicRaOtp.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-console-BMKL4r0Y.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-current-view-BGPvpQxb.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-document-probe-H7wXBdpg.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-git-client-Bn2tfQXw.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-hotkeys-RQU84mwh.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-D_3Cnl8b.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-view-BkwHmYDV.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-mode-RkVPWhaw.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-notifications-CA6l8e7o.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presence-55w1onUE.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-BwuM9Ctk.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-NUiwDZPZ.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-runtime-Cg_-5QdO.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-server-response-pAmQk_fT.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-attribution-D1wLv8mb.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-mode-Bo1wIn4H.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-state-facets-DyUaq-6i.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-view-presentation-Br8pezmq.js +0 -1
- package/dist/assets/volter-sdk-kit-environment-images-7YqVE22n.js +0 -1
- package/dist/assets/volter-sdk-kit-eyedropper-session-CummiXaH.js +0 -1
- package/dist/assets/volter-sdk-kit-files-file-provider-neM2fsVc.js +0 -1
- package/dist/assets/volter-sdk-kit-files-project-files-OL3gE8En.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-index-BeM0fqAj.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-BVrDuBPg.js +0 -1
- package/dist/assets/volter-sdk-kit-frame-frame-parts-CYT7h-y8.js +0 -1
- package/dist/assets/volter-sdk-kit-framed-document-capture-CHWlCvU2.js +0 -1
- package/dist/assets/volter-sdk-kit-game-surface-defaults-CdOQiRwH.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-export-state-Dpa3LagJ.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-replay-6igEoUGn.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-session-time-sa2mb0cW.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-sessions-DA2EFCbi.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-CUbdcwDI.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-internals-BLlXEqnm.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-PEYPfWhP.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-DgetaoVo.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-C0r1XaHN.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-E12-ZYhq.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-projection-DeChNZ3L.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-DTLKYgyv.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-CsS5IAae.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-rows-41aqeuMq.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-walk-QjwuleuU.js +0 -1
- package/dist/assets/volter-sdk-kit-history-editor-session-4zKlideo.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-commands-Br1s7ne7.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-delegate-Ct1H-8Bw.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-BKTdWc_F.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-service-BkKy_2_C.js +0 -1
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-9XKt-bFc.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-file-history-BrOPcHKo.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-BVce9HMd.js +0 -1
- package/dist/assets/volter-sdk-kit-history-resource-registry-BAufj9R5.js +0 -1
- package/dist/assets/volter-sdk-kit-history-snapshot-store-L9VZ1zy2.js +0 -1
- package/dist/assets/volter-sdk-kit-history-source-history-backend-Beq_ZanK.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-registration-group-DPWlaerj.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-geSUkcIk.js +0 -1
- package/dist/assets/volter-sdk-kit-hotkeys-BAJRSpZb.js +0 -1
- package/dist/assets/volter-sdk-kit-inference-diagnostics-BfBFf9CP.js +0 -1
- package/dist/assets/volter-sdk-kit-initial-project-J318ShHU.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-subject-CQLevuEN.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-surface-Dhra93Zz.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-DkGw2_am.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-display-DdMfX2Cn.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-document-subject-DPHwBfmK.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-game-subject-BeRLqx0E.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-model-CzHzcWO1.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-node-media-CPlVtU15.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-null-subject-BpkUCDq8.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-serialize-6DOgcbwz.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-27XOz-Gw.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-presentation-B4nhYe6o.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-wEw8VIaT.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-section-registry-DVJyvFnv.js +0 -1
- package/dist/assets/volter-sdk-kit-instance-source-actions-DGxTr7V0.js +0 -1
- package/dist/assets/volter-sdk-kit-js-heap-Do-rmDCC.js +0 -1
- package/dist/assets/volter-sdk-kit-key-actions-DFQXHi7s.js +0 -1
- package/dist/assets/volter-sdk-kit-keymap-presets-B9Ns-YWV.js +0 -1
- package/dist/assets/volter-sdk-kit-layout-policy-Brt0ixKJ.js +0 -1
- package/dist/assets/volter-sdk-kit-light-explorer-model-DQqWhOfs.js +0 -1
- package/dist/assets/volter-sdk-kit-live-canvas-frame-2t-vI5kC.js +0 -1
- package/dist/assets/volter-sdk-kit-live-document-BBTgA1YI.js +0 -1
- package/dist/assets/volter-sdk-kit-live-gesture-lock-L07tJ0XD.js +0 -1
- package/dist/assets/volter-sdk-kit-live-seam-evidence-D48yUGex.js +0 -1
- package/dist/assets/volter-sdk-kit-live-session-registry-BHLdX-rN.js +0 -1
- package/dist/assets/volter-sdk-kit-live-transition-CbRygG8S.js +0 -1
- package/dist/assets/volter-sdk-kit-manifest-project-uZbagBvl.js +0 -1
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-DOvMO6gD.js +0 -1
- package/dist/assets/volter-sdk-kit-mount-failure-report-CYxzsFRn.js +0 -1
- package/dist/assets/volter-sdk-kit-native-selection-style-qZbL9Z3c.js +0 -1
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-CWhTmqDA.js +0 -1
- package/dist/assets/volter-sdk-kit-packaged-runtime-BhIUPTr9.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-profiler-icZNSlTJ.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-sources-ce9O0yl5.js +0 -1
- package/dist/assets/volter-sdk-kit-photograph-notice-BMB4H1dQ.js +0 -1
- package/dist/assets/volter-sdk-kit-play-boot-phase-C0ndktYe.js +0 -1
- package/dist/assets/volter-sdk-kit-play-camera-flight-Bt6txYSy.js +0 -1
- package/dist/assets/volter-sdk-kit-presentation-surface-DG9VbPIb.js +0 -1
- package/dist/assets/volter-sdk-kit-product-command-Dj94iclf.js +0 -1
- package/dist/assets/volter-sdk-kit-project-adapter-B78r5irI.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-refresh-GgYB7e9V.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-roots-C7wWCB6a.js +0 -1
- package/dist/assets/volter-sdk-kit-project-local-state-ChyrnZ5K.js +0 -1
- package/dist/assets/volter-sdk-kit-project-manager-DR_6_K89.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-changes-B-E6y7LR.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-split-vEDExnWu.js +0 -1
- package/dist/assets/volter-sdk-kit-project-provenance-DA8sAsKs.js +0 -1
- package/dist/assets/volter-sdk-kit-project-ready-CqG1Nk4N.js +0 -1
- package/dist/assets/volter-sdk-kit-project-shape-BkThMnbt.js +0 -1
- package/dist/assets/volter-sdk-kit-project-tools-eLeOUZWx.js +0 -1
- package/dist/assets/volter-sdk-kit-readiness-hoRAumXO.js +0 -1
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-D90yPx3L.js +0 -1
- package/dist/assets/volter-sdk-kit-reported-play-state-DfTZx0KA.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-jtWYC0fN.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-CFm98eKm.js +0 -1
- package/dist/assets/volter-sdk-kit-retained-document-states-CsXAzeWn.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-document-plan-D4ji5oNW.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-live-open-DThgnjwB.js +0 -1
- package/dist/assets/volter-sdk-kit-scoped-game-css-ulz2GEoH.js +0 -1
- package/dist/assets/volter-sdk-kit-served-url-CEdyvOHP.js +0 -1
- package/dist/assets/volter-sdk-kit-session-close-c_tXm0yv.js +0 -1
- package/dist/assets/volter-sdk-kit-session-tombstone-BaycRwPJ.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-settings-provider-C3MtJFaP.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-store-DBhr8n9O.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-CDh0hcdQ.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-door-CaXNboIa.js +0 -1
- package/dist/assets/volter-sdk-kit-source-conflict-BipQkSc8.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-context-CzC2nfO1.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-invalidation-Ct7P1Vlq.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-store-registry-BqmJWVfh.js +0 -1
- package/dist/assets/volter-sdk-kit-startup-failure-BWeeQbjO.js +0 -1
- package/dist/assets/volter-sdk-kit-state-report-deferral-BcitpV45.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-C-KYpWJm.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-http-storage-CJ2LVmJ7.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-index-CFPP1w63.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-mem-storage-B0qbOgV9.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-path-lock-GcxLIACf.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-paths-entxMfsE.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-C5IeJ_ej.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Csgl5f39.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-OJDQCYwu.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-DbQPODnS.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-EIwjHxKF.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-scope-B1oDxLh9.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-capture-cM0MN5Hj.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-D9H4W2Zq.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-discovery-llun3eDh.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-BmQMkDTT.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-grouping-B0RRxA3V.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-presentation-TNCPmEZL.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-registry-Di8T7vKS.js +0 -1
- package/dist/assets/volter-sdk-kit-story-document-openers-CKdGS6VR.js +0 -1
- package/dist/assets/volter-sdk-kit-story-thumbnails-CGoNnw_P.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-keyboard-CJCQ58RD.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-state-CIZL-DWn.js +0 -1
- package/dist/assets/volter-sdk-kit-system-seam-evidence-DJ7GW5iR.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-census-2lZJGZ4O.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-CWpTwgo0.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-library-B5K62lp4.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-preference-CL-si2X2.js +0 -1
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-BLS41eYD.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-contribution-play-CbyGElun.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-loader-BQECKA7L.js +0 -1
- package/dist/assets/volter-sdk-kit-transform-mode-request-CJLzmJG6.js +0 -1
- package/dist/assets/volter-sdk-kit-transient-hint-nZKRkvJP.js +0 -1
- package/dist/assets/volter-sdk-kit-transport-strip-C2m0db-M.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-CqzGxN2S.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-inspect-CT7zE-80.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-xORoxAc2.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-cKNRjG_D.js +0 -1
- package/dist/assets/volter-sdk-kit-user-local-state-D6mZrTdt.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-CUcsNiZy.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-BfgnhuCR.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-presentation-DpPatWKS.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-surface-status-C-MXFCiy.js +0 -1
- package/dist/assets/volter-sdk-kit-wait-until-h7605f2j.js +0 -1
- package/dist/assets/volter-sdk-kit-worker-call-metrics-DR5D5P-B.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-areas-BXJ5EgBy.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-D7CNFZlP.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-available-documents-ro38UvcS.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-6QkFq5G3.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-ids-CGsv1_Sj.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-registry-BDPeN4rQ.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-restore-BGUqz5CK.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-host-commands-C1u-NnXP.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-BhbjYY9n.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-DNvUJU2P.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-presets-DFyicey_.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-regions-CzsR7vCV.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-static-panels-DlwY9Qfx.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-status-registry-B8i6cOVF.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-storage-CAoDkXeS.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-style-BA8rkAFG.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-NL9ibGhS.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-BHG5iriD.js +0 -1
- package/dist/assets/volter-sdk-kit-world-adoption-o1zRjlqy.js +0 -1
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-Bcvf7gGq.js +0 -1
- package/dist/assets/volter-sdk-kit-world-document-routing-CVCLaTPz.js +0 -1
- package/dist/assets/volter-sdk-kit-world-pan-state-B36szaq4.js +0 -1
- package/dist/assets/volter-sdk-kit-write-pipe-BSkOQp8L.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-BdmRP-8s.js +0 -1
- package/dist/assets/volter-sdk-layouts-FzGTW0su.js +0 -1
- package/dist/assets/volter-sdk-selection-BDaAiyC1.js +0 -1
- package/dist/assets/volter-sdk-session-command-table-CF3EP072.js +0 -1
- package/dist/assets/volter-sdk-session-editor-brand-aQeR02sX.js +0 -1
- package/dist/assets/volter-sdk-session-editor-compatibility-Y1GniA9A.js +0 -1
- package/dist/assets/volter-sdk-session-editor-control-protocol-Cer3FpME.js +0 -1
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-xpV2uSY0.js +0 -1
- package/dist/assets/volter-sdk-session-game-css-scope-DC-lT8H9.js +0 -1
- package/dist/assets/volter-sdk-session-project-module-url-8GpGhLIh.js +0 -1
- package/dist/assets/volter-sdk-session-relative-path-guard-nWZ1WkJV.js +0 -1
- package/dist/assets/volter-sdk-session-tool-contribution-convention-Cl2r9fhk.js +0 -1
- package/dist/assets/volter-sdk-types-BAFDmIQo.js +0 -1
- package/dist/assets/volter-sdk-views-BM-jtorN.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-DNlKksDB.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-DA2KKg_H.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-BIbi4p_J.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-B2H8dQFd.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-D-H3wlMY.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-oAwc2Gk-.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-BLc6c0Q2.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-F8jLiRKV.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-DGVk6X-P.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-DmhyRKZH.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-CM4daloU.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-C4CAJwQQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-CCA2eZPc.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-CwMS6SP9.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-BEjAkuXu.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-kt4-UBxR.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-BWtlRQ2g.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-q1MXovMr.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-XS12DaKV.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-C6tPKNHA.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-hZzWb351.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-DxOkA3ML.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-DkIQTBkJ.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-l0U7h22a.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-hrCUn7s-.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-B6i3FmUZ.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-D4ao9Dxa.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-DsS8MaHT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-BHLFRqwA.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-Cp9CbYgn.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-DefP3kWK.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-jV7zmLuV.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-BMKFQe3B.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-BoQwN1PF.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-BEZzaeip.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput--qAjlqhh.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-GxZOdBdD.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-DqJdxXzP.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-C9Q4Oa8-.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-DrVwiDVC.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CiNeVdj1.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-aPVjzYI6.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-DxlOpyOW.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-AEIv6Idn.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-Cx0y3pdT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-zx_mj4PE.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-BUhQHoAK.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-BpXMycUa.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-j1n22OCO.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-gPL-S1U6.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-oMcdrYOB.js +0 -1
- package/dist/assets/volter-shared-fontawesome-BTnT81-w.js +0 -1
- package/dist/assets/volter-shared-jsx-dev-runtime-CRAyhlf7.js +0 -1
- package/dist/assets/volter-shared-jsx-runtime-ED2HYlv-.js +0 -1
- package/dist/assets/volter-shared-react-BdcC8BcR.js +0 -1
- package/dist/assets/volter-shared-react-dom-BxUIF4xX.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-BkIwIHfU.js +0 -1
- package/dist/assets/worker-v_i-UQtQ.js +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./volter-sdk-B7tf3Tvt.js";import{Object3DPreview as d}from"./Object3DPreview-Dq9NnHY-.js";import"./three.module-CtVjCPcj.js";import"./OrbitControls-DrHRrSFA.js";import"./asset-preview-BIeLrVDi.js";import"./output-pass-j4dAGrPY.js";import"./three-integration.service-BwAivmO0.js";import"./object3d-document-session-registry-8bXWdrtp.js";function g({build:r,displayName:e="Object3D preview",height:m=360,background:s,showSkeleton:n=!1,cameraDirection:p,showGrid:c,useDefaultLighting:j,exposure:u,setupPreview:t,active:a=!0}){const i=t!==void 0;return o.jsx("div",{style:{width:"100%",height:m,minHeight:240},children:o.jsx(d,{sourceFactory:r,displayName:e,active:a,showSkeleton:n,background:s,cameraDirection:p,showGrid:c??!i,useDefaultLighting:j??!i,exposure:u,setupPreview:t})})}export{g as ToolObject3DPreview};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as x,j as e,im as g,dN as w,bO as h,bQ as j,t as y,ik as b,eE as m,ct as f,cv as v,B as S}from"./volter-sdk-B7tf3Tvt.js";const M=[{mode:"solid",label:"Material",description:"Authored materials and lighting"},{mode:"clay",label:"Solid",description:"Neutral flat-shaded geometry"},{mode:"unlit",label:"Unlit",description:"Base color without scene lighting"},{mode:"wireframe",label:"Wireframe",description:"Renderable triangle edges"},{mode:"matcap",label:"Matcap",description:"Neutral clay sphere — form without color"},{mode:"normals",label:"Normals",description:"Surface-normal direction colors"},{mode:"overdraw",label:"Overdraw",description:"Additive overlap visualization"}],V={preview:"Material Preview",rendered:"Rendered",uv:"UV","vertex-colors":"Vertex Colors"},z=[{mode:"wireframe",glyph:"wireframe",label:"Wireframe"},{mode:"clay",glyph:"sphere",label:"Solid"},{mode:"solid",glyph:"preview",label:"Material"}];function W(r){return[{mode:"wireframe",glyph:"wireframe",label:"Wireframe"},{mode:"solid",glyph:"sphere",label:"Solid"},...r.has("preview")?[{mode:"preview",glyph:"preview",label:"Material Preview"}]:[],...r.has("rendered")?[{mode:"rendered",glyph:"rendered",label:"Rendered"}]:[]]}function k({glyph:r}){return e.jsxs("svg",{viewBox:"0 0 16 16",className:"volter-viewport-shading-glyph","aria-hidden":"true",focusable:"false",children:[r==="sphere"||r==="rendered"?e.jsx("circle",{cx:"8",cy:"8",r:"7.3",fill:"currentColor"}):e.jsx("circle",{cx:"8",cy:"8",r:"7.3",fill:"none",stroke:"currentColor",strokeWidth:"1.05"}),r==="wireframe"?e.jsxs("g",{stroke:"currentColor",strokeWidth:"1.05",children:[e.jsx("line",{x1:"1.7",y1:"5.4",x2:"14.3",y2:"5.4"}),e.jsx("line",{x1:"1.7",y1:"10.6",x2:"14.3",y2:"10.6"}),e.jsx("line",{x1:"5.4",y1:"1.7",x2:"5.4",y2:"14.3"})]}):null,r==="rendered"?e.jsx("circle",{cx:"5.6",cy:"5.6",r:"2.3",fill:"var(--volter-surface-overlay, #ffffff)",fillOpacity:"0.7"}):null,r==="preview"?e.jsx("path",{d:"M7.73 1.23 L7.73 10.43 L1.22 8.04 A6.78 6.78 0 0 1 7.73 1.23 Z",fill:"currentColor"}):null]})}function C({mode:r,onChange:t,choices:n,disabled:l=!1,segments:d,children:o}){const[s,a]=x.useState(!1),p=x.useRef(null),c=n.find(i=>i.mode===r)??n[0];if(!c)return null;const u=s&&!l?e.jsxs(g,{id:"volter-viewport-shading-menu",anchorRef:p,"aria-label":"Viewport shading modes",onDismiss:()=>a(!1),style:{minWidth:230},children:[n.map(i=>e.jsxs(w,{role:"menuitemradio","aria-checked":i.mode===r,onSelect:()=>{t(i.mode),a(!1)},style:{display:"grid",gridTemplateColumns:"14px 1fr",gap:7},children:[e.jsx("span",{style:{opacity:i.mode===r?1:0},children:e.jsx(h,{icon:j,size:"xs"})}),e.jsxs("span",{children:[e.jsx("span",{style:{display:"block"},children:i.label}),e.jsx("span",{style:{display:"block",color:y.content.dim,fontSize:10},children:i.description})]})]},i.mode)),o?e.jsxs(e.Fragment,{children:[e.jsx(b,{}),e.jsx("div",{className:"volter-viewport-shading-options",children:o})]}):null]}):null;return d?e.jsxs("div",{className:"volter-viewport-popover-anchor",children:[e.jsxs("span",{className:"volter-viewport-shading-segments",role:"group","aria-label":"Viewport shading",children:[d.map(i=>e.jsx(m,{text:`Viewport shading: ${i.label}`,children:e.jsx(f,{size:"compact",shape:"segment",variant:"secondary","aria-pressed":i.mode===r,"aria-label":`Viewport shading: ${i.label}`,disabled:l,onClick:()=>t(i.mode),children:e.jsx(k,{glyph:i.glyph})})},i.mode)),e.jsx(m,{text:"Shading options",children:e.jsx(f,{ref:p,size:"compact",shape:"segment",variant:"secondary","aria-label":"Shading options","aria-haspopup":"menu","aria-expanded":s,"aria-controls":s?"volter-viewport-shading-menu":void 0,disabled:l,onClick:()=>a(i=>!i),children:e.jsx(h,{icon:v,size:"xs"})})})]}),u]}):e.jsxs("div",{style:{position:"relative"},children:[e.jsx(m,{text:`Viewport shading: ${c.label}`,children:e.jsxs(S,{ref:p,type:"button",size:"compact",variant:"secondary","aria-label":`Viewport shading: ${c.label}`,"aria-haspopup":"menu","aria-expanded":s,"aria-controls":s?"volter-viewport-shading-menu":void 0,disabled:l,onClick:()=>a(i=>!i),style:{display:"inline-flex",alignItems:"center",gap:5,minWidth:66},children:[e.jsx("span",{children:c.label}),e.jsx(h,{icon:v,size:"xs"})]})}),u]})}function E({mode:r,onChange:t,disabled:n=!1,words:l}){const d=x.useMemo(()=>{const o=M.map(a=>({...a,label:l?.[a.mode]??a.label}));if(o.some(a=>a.mode===r))return o;const s=l?.[r]??V[r]??r;return[...o,{mode:r,label:s,description:"The mode this view is drawn in"}]},[l,r]);return e.jsx(C,{mode:r,onChange:t,choices:d,disabled:n})}export{C as V,z as a,E as b,W as p,M as v};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h2 as i}from"./volter-sdk-B7tf3Tvt.js";import{l as o}from"./live-mixers-B-bwLZ7c.js";const a="workspace.service";function p(){return i().session.reportFacet(()=>({liveMixers:o().map(s=>({site:s.key,clips:[...s.clips.keys()],animates:[...s.roots].map(e=>e.name||"(unnamed)")}))}))}export{a as point,p as start};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h2 as c,n as a,j as i,T as l,jf as u}from"./volter-sdk-B7tf3Tvt.js";const d="workspace.utility",m="Animation";function v(){const{documents:n,transport:s}=c(),e=a.useSyncExternalStore(n.subscribe,n.activeId,n.activeId),t=a.useSyncExternalStore(s.subscribe,a.useCallback(()=>e?s.for(e):null,[e,s])),o=a.useSyncExternalStore(a.useCallback(r=>t?t.subscribe(r):()=>{},[t]),a.useCallback(()=>t?.snapshot()??null,[t]));return!t||!o||o.activeSubject===null?i.jsx(l,{as:"p",variant:"caption","data-testid":"animation-timeline-empty","data-document":e??"","data-transport":t?"yes":"no",style:{padding:"var(--volter-space-2) var(--volter-space-3)"},children:t?"Nothing in the active document plays an animation.":"The active document has no stage to animate."}):i.jsx(u,{transport:t})}export{v as default,d as point,m as title};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/spark.module-CTTm62aa.js","assets/three.module-CtVjCPcj.js","assets/output-pass-j4dAGrPY.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{g as it,jd as tA,j5 as Ua,j1 as ot,je as rt}from"./volter-sdk-B7tf3Tvt.js";import{c as Na,m as DA}from"./output-pass-j4dAGrPY.js";import{b2 as ue,b3 as eA,n as L,w as H,B as ct,t as fA,m as K,aF as HA,b4 as _a,b5 as ce,b6 as gt,b7 as pA,a6 as O,r as It,I as Ha,P as va,v as NA,g as aA,V as y,am as lt,Q as bt,b8 as qa,O as Qe,b9 as Bt,ba as Oa,bb as ja,at as KA,bc as Pa,bd as Ka,be as dt,L as sA,N as vA,a8 as ge,a9 as Ja,C as Ya,aW as Wa,ab as zA,ag as Va,az as ht,$ as za,l as hA,bf as Xa,p as Ct,j as JA,af as Et,bg as ft,bh as pt,aV as ut,f as uA,ay as Qt,u as rA,a0 as mt,q as Za,bi as $a,o as wt,bj as As,bk as yt,aS as es,aa as Ie,bl as Me,bm as Ue,bn as Ne,i as ts,bo as as,X as me,a3 as ss,bp as ns,bq as is,br as Dt,aq as _e,bs as He,bt as le,bu as be,bv as os,bw as rs,bx as cs,by as gs,bz as ve,bA as qe,bB as Be,bC as XA,bD as _A,bE as Rt,bF as St,b as de,R as CA,aB as EA,e as iA,av as S,H as Z,bG as kt,bH as Ft,F as QA,a as Is,D as ls,bI as bs,bJ as Bs,bK as ds,bL as hs,bM as Cs,a4 as Es,bN as fs,bO as ps,aK as RA,aD as SA,bP as us,Y as Qs,bQ as ms}from"./three.module-CtVjCPcj.js";const we={editorHelperType:"editorHelperType",skeletonVisible:"skeletonVisible",skeletonEnabled:"skeletonEnabled",engineInternal:"engineInternal",editorHelper:"editorHelper",volterComponentRoot:"volterComponentRoot",volterBuiltInternal:"volterBuiltInternal"};function qA(n,A){return n?n.userData[we[A]]:void 0}function Ci(n,A,e){n.userData[we[A]]=e}const ye={...we,entityId:"entityId",forward:"forward",tags:"tags",attributes:"attributes",navRole:"navRole",pivot:"pivot",splineCurve:"splineCurve",splineControlPoint:"splineControlPoint",_camera:"_camera",_particleSystem:"_particleSystem",gaussianSplat:"gaussianSplat",__sharedGeometry:"__sharedGeometry",__shadeOrig:"__shadeOrig",__shadeUnlit:"__shadeUnlit",__ingest:"__ingest",__ingestNextId:"__ingestNextId",authoringRoot:"authoringRoot",authoringInstance:"authoringInstance",authoringLabel:"authoringLabel",authoringComponent:"authoringComponent",authoringDocument:"authoringDocument",authoringHierarchyId:"authoringHierarchyId",authoringHierarchyParentId:"authoringHierarchyParentId",authoringHierarchyOrder:"authoringHierarchyOrder",editorIcon:"editorIcon",envObject:"envObject",constraints:"constraints",authoringSubject:"authoringSubject",reflectionProbe:"reflectionProbe",triggerVolume:"triggerVolume",vcDirIdx:"vcDirIdx"};function Ei(n,A){return n?n.userData[ye[A]]:void 0}function Oe(n,A,e){n.userData[ye[A]]=e}function kA(n,A){return n?n.userData[ye[A]]!==void 0:!1}var ws=(function(){var n="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb",A="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),a=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var t=WebAssembly.validate(e)?r(A):r(n),s,i=WebAssembly.instantiate(t,{}).then(function(C){s=C.instance,s.exports.__wasm_call_ctors()});function r(C){for(var E=new Uint8Array(C.length),p=0;p<C.length;++p){var B=C.charCodeAt(p);E[p]=B>96?B-97:B>64?B-39:B+4}for(var f=0,p=0;p<C.length;++p)E[f++]=E[p]<60?a[E[p]]:(E[p]-60)*64+E[++p];return E.buffer.slice(0,f)}function o(C,E,p,B,f,Q,m){var w=C.exports.sbrk,R=B+3&-4,k=w(R*f),G=w(Q.length),J=new Uint8Array(C.exports.memory.buffer);J.set(Q,G);var j=E(k,B,f,G,Q.length);if(j==0&&m&&m(k,R,f),p.set(J.subarray(k,k+B*f)),w(k-w(0)),j!=0)throw new Error("Malformed buffer data: "+j)}var c={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},g={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},I=[],l=0;function b(C){var E={object:new Worker(C),pending:0,requests:{}};return E.object.onmessage=function(p){var B=p.data;E.pending-=B.count,E.requests[B.id][B.action](B.value),delete E.requests[B.id]},E}function d(C){for(var E="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(t)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+u.name+";"+o.toString()+u.toString(),p=new Blob([E],{type:"text/javascript"}),B=URL.createObjectURL(p),f=I.length;f<C;++f)I[f]=b(B);for(var f=C;f<I.length;++f)I[f].object.postMessage({});I.length=C,URL.revokeObjectURL(B)}function h(C,E,p,B,f){for(var Q=I[0],m=1;m<I.length;++m)I[m].pending<Q.pending&&(Q=I[m]);return new Promise(function(w,R){var k=new Uint8Array(p),G=++l;Q.pending+=C,Q.requests[G]={resolve:w,reject:R},Q.object.postMessage({id:G,count:C,size:E,source:k,mode:B,filter:f},[k.buffer])})}function u(C){var E=C.data;if(!E.id)return self.close();self.ready.then(function(p){try{var B=new Uint8Array(E.count*E.size);o(p,p.exports[E.mode],B,E.count,E.size,E.source,p.exports[E.filter]),self.postMessage({id:E.id,count:E.count,action:"resolve",value:B},[B.buffer])}catch(f){self.postMessage({id:E.id,count:E.count,action:"reject",value:f})}})}return{ready:i,supported:!0,useWorkers:function(C){d(C)},decodeVertexBuffer:function(C,E,p,B,f){o(s,s.exports.meshopt_decodeVertexBuffer,C,E,p,B,s.exports[c[f]])},decodeIndexBuffer:function(C,E,p,B){o(s,s.exports.meshopt_decodeIndexBuffer,C,E,p,B)},decodeIndexSequence:function(C,E,p,B){o(s,s.exports.meshopt_decodeIndexSequence,C,E,p,B)},decodeGltfBuffer:function(C,E,p,B,f,Q){o(s,s.exports[g[f]],C,E,p,B,s.exports[c[Q]])},decodeGltfBufferAsync:function(C,E,p,B,f){return I.length>0?h(C,E,p,g[B],c[f]):i.then(function(){var Q=new Uint8Array(C*E);return o(s,s.exports[g[B]],Q,C,E,p,s.exports[c[f]]),Q})}}})();const ZA=new WeakMap;class ys extends ue{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,e,a,t){const s=new eA(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(A,i=>{this.parse(i,e,t)},a,t)}parse(A,e,a=()=>{}){this.decodeDracoFile(A,e,null,null,L,a).catch(a)}decodeDracoFile(A,e,a,t,s=H,i=()=>{}){const r={attributeIDs:a||this.defaultAttributeIDs,attributeTypes:t||this.defaultAttributeTypes,useUniqueIDs:!!a,vertexColorSpace:s};return this.decodeGeometry(A,r).then(e).catch(i)}decodeGeometry(A,e){const a=JSON.stringify(e);if(ZA.has(A)){const o=ZA.get(A);if(o.key===a)return o.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let t;const s=this.workerNextTaskID++,i=A.byteLength,r=this._getWorker(s,i).then(o=>(t=o,new Promise((c,g)=>{t._callbacks[s]={resolve:c,reject:g},t.postMessage({type:"decode",id:s,taskConfig:e,buffer:A},[A])}))).then(o=>this._createGeometry(o.geometry));return r.catch(()=>!0).then(()=>{t&&s&&this._releaseTask(t,s)}),ZA.set(A,{key:a,promise:r}),r}_createGeometry(A){const e=new ct;A.index&&e.setIndex(new fA(A.index.array,1));for(let a=0;a<A.attributes.length;a++){const t=A.attributes[a],s=t.name,i=t.array,r=t.itemSize,o=new fA(i,r);s==="color"&&(this._assignVertexColorSpace(o,t.vertexColorSpace),o.normalized=!(i instanceof Float32Array)),e.setAttribute(s,o)}return e}_assignVertexColorSpace(A,e){if(e!==L)return;const a=new K;for(let t=0,s=A.count;t<s;t++)a.fromBufferAttribute(A,t),HA.colorSpaceToWorking(a,L),A.setXYZ(t,a.r,a.g,a.b)}_loadLibrary(A,e){const a=new eA(this.manager);return a.setPath(this.decoderPath),a.setResponseType(e),a.setWithCredentials(this.withCredentials),new Promise((t,s)=>{a.load(A,t,void 0,s)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return A?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(a=>{const t=a[0];A||(this.decoderConfig.wasmBinary=a[1]);const s=Ds.toString(),i=["/* draco decoder */",t,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join(`
|
|
3
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(A,e){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const t=new Worker(this.workerSourceURL);t._callbacks={},t._taskCosts={},t._taskLoad=0,t.postMessage({type:"init",decoderConfig:this.decoderConfig}),t.onmessage=function(s){const i=s.data;switch(i.type){case"decode":t._callbacks[i.id].resolve(i);break;case"error":t._callbacks[i.id].reject(i);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+i.type+'"')}},this.workerPool.push(t)}else this.workerPool.sort(function(t,s){return t._taskLoad>s._taskLoad?-1:1});const a=this.workerPool[this.workerPool.length-1];return a._taskCosts[A]=e,a._taskLoad+=e,a})}_releaseTask(A,e){A._taskLoad-=A._taskCosts[e],delete A._callbacks[e],delete A._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function Ds(){let n,A;onmessage=function(i){const r=i.data;switch(r.type){case"init":n=r.decoderConfig,A=new Promise(function(g){n.onModuleLoaded=function(I){g({draco:I})},DracoDecoderModule(n)});break;case"decode":const o=r.buffer,c=r.taskConfig;A.then(g=>{const I=g.draco,l=new I.Decoder;try{const b=e(I,l,new Int8Array(o),c),d=b.attributes.map(h=>h.array.buffer);b.index&&d.push(b.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:b},d)}catch(b){console.error(b),self.postMessage({type:"error",id:r.id,error:b.message})}finally{I.destroy(l)}});break}};function e(i,r,o,c){const g=c.attributeIDs,I=c.attributeTypes;let l,b;const d=r.GetEncodedGeometryType(o);if(d===i.TRIANGULAR_MESH)l=new i.Mesh,b=r.DecodeArrayToMesh(o,o.byteLength,l);else if(d===i.POINT_CLOUD)l=new i.PointCloud,b=r.DecodeArrayToPointCloud(o,o.byteLength,l);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!b.ok()||l.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+b.error_msg());const h={index:null,attributes:[]};for(const u in g){const C=self[I[u]];let E,p;if(c.useUniqueIDs)p=g[u],E=r.GetAttributeByUniqueId(l,p);else{if(p=r.GetAttributeId(l,i[g[u]]),p===-1)continue;E=r.GetAttribute(l,p)}const B=t(i,r,l,u,C,E);u==="color"&&(B.vertexColorSpace=c.vertexColorSpace),h.attributes.push(B)}return d===i.TRIANGULAR_MESH&&(h.index=a(i,r,l)),i.destroy(l),h}function a(i,r,o){const g=o.num_faces()*3,I=g*4,l=i._malloc(I);r.GetTrianglesUInt32Array(o,I,l);const b=new Uint32Array(i.HEAPF32.buffer,l,g).slice();return i._free(l),{array:b,itemSize:1}}function t(i,r,o,c,g,I){const l=I.num_components(),d=o.num_points()*l,h=d*g.BYTES_PER_ELEMENT,u=s(i,g),C=i._malloc(h);r.GetAttributeDataArrayForAllPoints(o,I,u,h,C);const E=new g(i.HEAPF32.buffer,C,d).slice();return i._free(C),{name:c,array:E,itemSize:l}}function s(i,r){switch(r){case Float32Array:return i.DT_FLOAT32;case Int8Array:return i.DT_INT8;case Int16Array:return i.DT_INT16;case Int32Array:return i.DT_INT32;case Uint8Array:return i.DT_UINT8;case Uint16Array:return i.DT_UINT16;case Uint32Array:return i.DT_UINT32}}}function je(n,A){if(A===_a)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),n;if(A===ce||A===gt){let e=n.getIndex();if(e===null){const i=[],r=n.getAttribute("position");if(r!==void 0){for(let o=0;o<r.count;o++)i.push(o);n.setIndex(i),e=n.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),n}const a=e.count-2,t=[];if(A===ce)for(let i=1;i<=a;i++)t.push(e.getX(0)),t.push(e.getX(i)),t.push(e.getX(i+1));else for(let i=0;i<a;i++)i%2===0?(t.push(e.getX(i)),t.push(e.getX(i+1)),t.push(e.getX(i+2))):(t.push(e.getX(i+2)),t.push(e.getX(i+1)),t.push(e.getX(i)));t.length/3!==a&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const s=n.clone();return s.setIndex(t),s.clearGroups(),s}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),n}class Rs extends ue{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new Gs(e)}),this.register(function(e){return new Ts(e)}),this.register(function(e){return new Os(e)}),this.register(function(e){return new js(e)}),this.register(function(e){return new Ps(e)}),this.register(function(e){return new Ms(e)}),this.register(function(e){return new Us(e)}),this.register(function(e){return new Ns(e)}),this.register(function(e){return new _s(e)}),this.register(function(e){return new xs(e)}),this.register(function(e){return new Hs(e)}),this.register(function(e){return new Ls(e)}),this.register(function(e){return new qs(e)}),this.register(function(e){return new vs(e)}),this.register(function(e){return new ks(e)}),this.register(function(e){return new Ks(e)}),this.register(function(e){return new Js(e)})}load(A,e,a,t){const s=this;let i;if(this.resourcePath!=="")i=this.resourcePath;else if(this.path!==""){const c=pA.extractUrlBase(A);i=pA.resolveURL(c,this.path)}else i=pA.extractUrlBase(A);this.manager.itemStart(A);const r=function(c){t?t(c):console.error(c),s.manager.itemError(A),s.manager.itemEnd(A)},o=new eA(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(A,function(c){try{s.parse(c,i,function(g){e(g),s.manager.itemEnd(A)},r)}catch(g){r(g)}},a,r)}setDRACOLoader(A){return this.dracoLoader=A,this}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,e,a,t){let s;const i={},r={},o=new TextDecoder;if(typeof A=="string")s=JSON.parse(A);else if(A instanceof ArrayBuffer)if(o.decode(new Uint8Array(A,0,4))===xt){try{i[D.KHR_BINARY_GLTF]=new Ys(A)}catch(I){t&&t(I);return}s=JSON.parse(i[D.KHR_BINARY_GLTF].content)}else s=JSON.parse(o.decode(A));else s=A;if(s.asset===void 0||s.asset.version[0]<2){t&&t(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const c=new on(s,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let g=0;g<this.pluginCallbacks.length;g++){const I=this.pluginCallbacks[g](c);I.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),r[I.name]=I,i[I.name]=!0}if(s.extensionsUsed)for(let g=0;g<s.extensionsUsed.length;++g){const I=s.extensionsUsed[g],l=s.extensionsRequired||[];switch(I){case D.KHR_MATERIALS_UNLIT:i[I]=new Fs;break;case D.KHR_DRACO_MESH_COMPRESSION:i[I]=new Ws(s,this.dracoLoader);break;case D.KHR_TEXTURE_TRANSFORM:i[I]=new Vs;break;case D.KHR_MESH_QUANTIZATION:i[I]=new zs;break;default:l.indexOf(I)>=0&&r[I]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+I+'".')}}c.setExtensions(i),c.setPlugins(r),c.parse(a,t)}parseAsync(A,e){const a=this;return new Promise(function(t,s){a.parse(A,e,t,s)})}}function Ss(){let n={};return{get:function(A){return n[A]},add:function(A,e){n[A]=e},remove:function(A){delete n[A]},removeAll:function(){n={}}}}const D={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class ks{constructor(A){this.parser=A,this.name=D.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,e=this.parser.json.nodes||[];for(let a=0,t=e.length;a<t;a++){const s=e[a];s.extensions&&s.extensions[this.name]&&s.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,s.extensions[this.name].light)}}_loadLight(A){const e=this.parser,a="light:"+A;let t=e.cache.get(a);if(t)return t;const s=e.json,o=((s.extensions&&s.extensions[this.name]||{}).lights||[])[A];let c;const g=new K(16777215);o.color!==void 0&&g.setRGB(o.color[0],o.color[1],o.color[2],H);const I=o.range!==void 0?o.range:0;switch(o.type){case"directional":c=new NA(g),c.target.position.set(0,0,-1),c.add(c.target);break;case"point":c=new va(g),c.distance=I;break;case"spot":c=new Ha(g),c.distance=I,o.spot=o.spot||{},o.spot.innerConeAngle=o.spot.innerConeAngle!==void 0?o.spot.innerConeAngle:0,o.spot.outerConeAngle=o.spot.outerConeAngle!==void 0?o.spot.outerConeAngle:Math.PI/4,c.angle=o.spot.outerConeAngle,c.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,c.target.position.set(0,0,-1),c.add(c.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return c.position.set(0,0,0),v(c,o),o.intensity!==void 0&&(c.intensity=o.intensity),c.name=e.createUniqueName(o.name||"light_"+A),t=Promise.resolve(c),e.cache.add(a,t),t}getDependency(A,e){if(A==="light")return this._loadLight(e)}createNodeAttachment(A){const e=this,a=this.parser,s=a.json.nodes[A],r=(s.extensions&&s.extensions[this.name]||{}).light;return r===void 0?null:this._loadLight(r).then(function(o){return a._getNodeRef(e.cache,r,o)})}}class Fs{constructor(){this.name=D.KHR_MATERIALS_UNLIT}getMaterialType(){return hA}extendParams(A,e,a){const t=[];A.color=new K(1,1,1),A.opacity=1;const s=e.pbrMetallicRoughness;if(s){if(Array.isArray(s.baseColorFactor)){const i=s.baseColorFactor;A.color.setRGB(i[0],i[1],i[2],H),A.opacity=i[3]}s.baseColorTexture!==void 0&&t.push(a.assignTexture(A,"map",s.baseColorTexture,L))}return Promise.all(t)}}class xs{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,e){const t=this.parser.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=t.extensions[this.name].emissiveStrength;return s!==void 0&&(e.emissiveIntensity=s),Promise.resolve()}}class Gs{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];if(i.clearcoatFactor!==void 0&&(e.clearcoat=i.clearcoatFactor),i.clearcoatTexture!==void 0&&s.push(a.assignTexture(e,"clearcoatMap",i.clearcoatTexture)),i.clearcoatRoughnessFactor!==void 0&&(e.clearcoatRoughness=i.clearcoatRoughnessFactor),i.clearcoatRoughnessTexture!==void 0&&s.push(a.assignTexture(e,"clearcoatRoughnessMap",i.clearcoatRoughnessTexture)),i.clearcoatNormalTexture!==void 0&&(s.push(a.assignTexture(e,"clearcoatNormalMap",i.clearcoatNormalTexture)),i.clearcoatNormalTexture.scale!==void 0)){const r=i.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new It(r,r)}return Promise.all(s)}}class Ts{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_DISPERSION}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const t=this.parser.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=t.extensions[this.name];return e.dispersion=s.dispersion!==void 0?s.dispersion:0,Promise.resolve()}}class Ls{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];return i.iridescenceFactor!==void 0&&(e.iridescence=i.iridescenceFactor),i.iridescenceTexture!==void 0&&s.push(a.assignTexture(e,"iridescenceMap",i.iridescenceTexture)),i.iridescenceIor!==void 0&&(e.iridescenceIOR=i.iridescenceIor),e.iridescenceThicknessRange===void 0&&(e.iridescenceThicknessRange=[100,400]),i.iridescenceThicknessMinimum!==void 0&&(e.iridescenceThicknessRange[0]=i.iridescenceThicknessMinimum),i.iridescenceThicknessMaximum!==void 0&&(e.iridescenceThicknessRange[1]=i.iridescenceThicknessMaximum),i.iridescenceThicknessTexture!==void 0&&s.push(a.assignTexture(e,"iridescenceThicknessMap",i.iridescenceThicknessTexture)),Promise.all(s)}}class Ms{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_SHEEN}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[];e.sheenColor=new K(0,0,0),e.sheenRoughness=0,e.sheen=1;const i=t.extensions[this.name];if(i.sheenColorFactor!==void 0){const r=i.sheenColorFactor;e.sheenColor.setRGB(r[0],r[1],r[2],H)}return i.sheenRoughnessFactor!==void 0&&(e.sheenRoughness=i.sheenRoughnessFactor),i.sheenColorTexture!==void 0&&s.push(a.assignTexture(e,"sheenColorMap",i.sheenColorTexture,L)),i.sheenRoughnessTexture!==void 0&&s.push(a.assignTexture(e,"sheenRoughnessMap",i.sheenRoughnessTexture)),Promise.all(s)}}class Us{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];return i.transmissionFactor!==void 0&&(e.transmission=i.transmissionFactor),i.transmissionTexture!==void 0&&s.push(a.assignTexture(e,"transmissionMap",i.transmissionTexture)),Promise.all(s)}}class Ns{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_VOLUME}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];e.thickness=i.thicknessFactor!==void 0?i.thicknessFactor:0,i.thicknessTexture!==void 0&&s.push(a.assignTexture(e,"thicknessMap",i.thicknessTexture)),e.attenuationDistance=i.attenuationDistance||1/0;const r=i.attenuationColor||[1,1,1];return e.attenuationColor=new K().setRGB(r[0],r[1],r[2],H),Promise.all(s)}}class _s{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_IOR}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const t=this.parser.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=t.extensions[this.name];return e.ior=s.ior!==void 0?s.ior:1.5,Promise.resolve()}}class Hs{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_SPECULAR}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];e.specularIntensity=i.specularFactor!==void 0?i.specularFactor:1,i.specularTexture!==void 0&&s.push(a.assignTexture(e,"specularIntensityMap",i.specularTexture));const r=i.specularColorFactor||[1,1,1];return e.specularColor=new K().setRGB(r[0],r[1],r[2],H),i.specularColorTexture!==void 0&&s.push(a.assignTexture(e,"specularColorMap",i.specularColorTexture,L)),Promise.all(s)}}class vs{constructor(A){this.parser=A,this.name=D.EXT_MATERIALS_BUMP}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];return e.bumpScale=i.bumpFactor!==void 0?i.bumpFactor:1,i.bumpTexture!==void 0&&s.push(a.assignTexture(e,"bumpMap",i.bumpTexture)),Promise.all(s)}}class qs{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];return i.anisotropyStrength!==void 0&&(e.anisotropy=i.anisotropyStrength),i.anisotropyRotation!==void 0&&(e.anisotropyRotation=i.anisotropyRotation),i.anisotropyTexture!==void 0&&s.push(a.assignTexture(e,"anisotropyMap",i.anisotropyTexture)),Promise.all(s)}}class Os{constructor(A){this.parser=A,this.name=D.KHR_TEXTURE_BASISU}loadTexture(A){const e=this.parser,a=e.json,t=a.textures[A];if(!t.extensions||!t.extensions[this.name])return null;const s=t.extensions[this.name],i=e.options.ktx2Loader;if(!i){if(a.extensionsRequired&&a.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(A,s.source,i)}}class js{constructor(A){this.parser=A,this.name=D.EXT_TEXTURE_WEBP}loadTexture(A){const e=this.name,a=this.parser,t=a.json,s=t.textures[A];if(!s.extensions||!s.extensions[e])return null;const i=s.extensions[e],r=t.images[i.source];let o=a.textureLoader;if(r.uri){const c=a.options.manager.getHandler(r.uri);c!==null&&(o=c)}return a.loadTextureImage(A,i.source,o)}}class Ps{constructor(A){this.parser=A,this.name=D.EXT_TEXTURE_AVIF}loadTexture(A){const e=this.name,a=this.parser,t=a.json,s=t.textures[A];if(!s.extensions||!s.extensions[e])return null;const i=s.extensions[e],r=t.images[i.source];let o=a.textureLoader;if(r.uri){const c=a.options.manager.getHandler(r.uri);c!==null&&(o=c)}return a.loadTextureImage(A,i.source,o)}}class Ks{constructor(A){this.name=D.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const e=this.parser.json,a=e.bufferViews[A];if(a.extensions&&a.extensions[this.name]){const t=a.extensions[this.name],s=this.parser.getDependency("buffer",t.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return s.then(function(r){const o=t.byteOffset||0,c=t.byteLength||0,g=t.count,I=t.byteStride,l=new Uint8Array(r,o,c);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(g,I,l,t.mode,t.filter).then(function(b){return b.buffer}):i.ready.then(function(){const b=new ArrayBuffer(g*I);return i.decodeGltfBuffer(new Uint8Array(b),g,I,l,t.mode,t.filter),b})})}else return null}}class Js{constructor(A){this.name=D.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const e=this.parser.json,a=e.nodes[A];if(!a.extensions||!a.extensions[this.name]||a.mesh===void 0)return null;const t=e.meshes[a.mesh];for(const c of t.primitives)if(c.mode!==M.TRIANGLES&&c.mode!==M.TRIANGLE_STRIP&&c.mode!==M.TRIANGLE_FAN&&c.mode!==void 0)return null;const i=a.extensions[this.name].attributes,r=[],o={};for(const c in i)r.push(this.parser.getDependency("accessor",i[c]).then(g=>(o[c]=g,o[c])));return r.length<1?null:(r.push(this.parser.createNodeMesh(A)),Promise.all(r).then(c=>{const g=c.pop(),I=g.isGroup?g.children:[g],l=c[0].count,b=[];for(const d of I){const h=new aA,u=new y,C=new bt,E=new y(1,1,1),p=new lt(d.geometry,d.material,l);for(let B=0;B<l;B++)o.TRANSLATION&&u.fromBufferAttribute(o.TRANSLATION,B),o.ROTATION&&C.fromBufferAttribute(o.ROTATION,B),o.SCALE&&E.fromBufferAttribute(o.SCALE,B),p.setMatrixAt(B,h.compose(u,C,E));for(const B in o)if(B==="_COLOR_0"){const f=o[B];p.instanceColor=new qa(f.array,f.itemSize,f.normalized)}else B!=="TRANSLATION"&&B!=="ROTATION"&&B!=="SCALE"&&d.geometry.setAttribute(B,o[B]);Qe.prototype.copy.call(p,d),this.parser.assignFinalMaterial(p),b.push(p)}return g.isGroup?(g.clear(),g.add(...b),g):b[0]}))}}const xt="glTF",BA=12,Pe={JSON:1313821514,BIN:5130562};class Ys{constructor(A){this.name=D.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(A,0,BA),a=new TextDecoder;if(this.header={magic:a.decode(new Uint8Array(A.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==xt)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const t=this.header.length-BA,s=new DataView(A,BA);let i=0;for(;i<t;){const r=s.getUint32(i,!0);i+=4;const o=s.getUint32(i,!0);if(i+=4,o===Pe.JSON){const c=new Uint8Array(A,BA+i,r);this.content=a.decode(c)}else if(o===Pe.BIN){const c=BA+i;this.body=A.slice(c,c+r)}i+=r}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class Ws{constructor(A,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=D.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(A,e){const a=this.json,t=this.dracoLoader,s=A.extensions[this.name].bufferView,i=A.extensions[this.name].attributes,r={},o={},c={};for(const g in i){const I=he[g]||g.toLowerCase();r[I]=i[g]}for(const g in A.attributes){const I=he[g]||g.toLowerCase();if(i[g]!==void 0){const l=a.accessors[A.attributes[g]],b=oA[l.componentType];c[I]=b.name,o[I]=l.normalized===!0}}return e.getDependency("bufferView",s).then(function(g){return new Promise(function(I,l){t.decodeDracoFile(g,function(b){for(const d in b.attributes){const h=b.attributes[d],u=o[d];u!==void 0&&(h.normalized=u)}I(b)},r,c,H,l)})})}}class Vs{constructor(){this.name=D.KHR_TEXTURE_TRANSFORM}extendTexture(A,e){return(e.texCoord===void 0||e.texCoord===A.channel)&&e.offset===void 0&&e.rotation===void 0&&e.scale===void 0||(A=A.clone(),e.texCoord!==void 0&&(A.channel=e.texCoord),e.offset!==void 0&&A.offset.fromArray(e.offset),e.rotation!==void 0&&(A.rotation=e.rotation),e.scale!==void 0&&A.repeat.fromArray(e.scale),A.needsUpdate=!0),A}}class zs{constructor(){this.name=D.KHR_MESH_QUANTIZATION}}class Gt extends as{constructor(A,e,a,t){super(A,e,a,t)}copySampleValue_(A){const e=this.resultBuffer,a=this.sampleValues,t=this.valueSize,s=A*t*3+t;for(let i=0;i!==t;i++)e[i]=a[s+i];return e}interpolate_(A,e,a,t){const s=this.resultBuffer,i=this.sampleValues,r=this.valueSize,o=r*2,c=r*3,g=t-e,I=(a-e)/g,l=I*I,b=l*I,d=A*c,h=d-c,u=-2*b+3*l,C=b-l,E=1-u,p=C-l+I;for(let B=0;B!==r;B++){const f=i[h+B+r],Q=i[h+B+o]*g,m=i[d+B+r],w=i[d+B]*g;s[B]=E*f+p*Q+u*m+C*w}return s}}const Xs=new bt;class Zs extends Gt{interpolate_(A,e,a,t){const s=super.interpolate_(A,e,a,t);return Xs.fromArray(s).normalize().toArray(s),s}}const M={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},oA={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Ke={9728:vA,9729:sA,9984:dt,9985:Ka,9986:Pa,9987:KA},Je={33071:Ya,33648:Ja,10497:ge},$A={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},he={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},V={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},$s={CUBICSPLINE:void 0,LINEAR:yt,STEP:As},Ae={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function An(n){return n.DefaultMaterial===void 0&&(n.DefaultMaterial=new ht({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:ts})),n.DefaultMaterial}function X(n,A,e){for(const a in e.extensions)n[a]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[a]=e.extensions[a])}function v(n,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(n.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function en(n,A,e){let a=!1,t=!1,s=!1;for(let c=0,g=A.length;c<g;c++){const I=A[c];if(I.POSITION!==void 0&&(a=!0),I.NORMAL!==void 0&&(t=!0),I.COLOR_0!==void 0&&(s=!0),a&&t&&s)break}if(!a&&!t&&!s)return Promise.resolve(n);const i=[],r=[],o=[];for(let c=0,g=A.length;c<g;c++){const I=A[c];if(a){const l=I.POSITION!==void 0?e.getDependency("accessor",I.POSITION):n.attributes.position;i.push(l)}if(t){const l=I.NORMAL!==void 0?e.getDependency("accessor",I.NORMAL):n.attributes.normal;r.push(l)}if(s){const l=I.COLOR_0!==void 0?e.getDependency("accessor",I.COLOR_0):n.attributes.color;o.push(l)}}return Promise.all([Promise.all(i),Promise.all(r),Promise.all(o)]).then(function(c){const g=c[0],I=c[1],l=c[2];return a&&(n.morphAttributes.position=g),t&&(n.morphAttributes.normal=I),s&&(n.morphAttributes.color=l),n.morphTargetsRelative=!0,n})}function tn(n,A){if(n.updateMorphTargets(),A.weights!==void 0)for(let e=0,a=A.weights.length;e<a;e++)n.morphTargetInfluences[e]=A.weights[e];if(A.extras&&Array.isArray(A.extras.targetNames)){const e=A.extras.targetNames;if(n.morphTargetInfluences.length===e.length){n.morphTargetDictionary={};for(let a=0,t=e.length;a<t;a++)n.morphTargetDictionary[e[a]]=a}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function an(n){let A;const e=n.extensions&&n.extensions[D.KHR_DRACO_MESH_COMPRESSION];if(e?A="draco:"+e.bufferView+":"+e.indices+":"+ee(e.attributes):A=n.indices+":"+ee(n.attributes)+":"+n.mode,n.targets!==void 0)for(let a=0,t=n.targets.length;a<t;a++)A+=":"+ee(n.targets[a]);return A}function ee(n){let A="";const e=Object.keys(n).sort();for(let a=0,t=e.length;a<t;a++)A+=e[a]+":"+n[e[a]]+";";return A}function Ce(n){switch(n){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function sn(n){return n.search(/\.jpe?g($|\?)/i)>0||n.search(/^data\:image\/jpeg/)===0?"image/jpeg":n.search(/\.webp($|\?)/i)>0||n.search(/^data\:image\/webp/)===0?"image/webp":n.search(/\.ktx2($|\?)/i)>0||n.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"}const nn=new aA;class on{constructor(A={},e={}){this.json=A,this.extensions={},this.plugins={},this.options=e,this.cache=new Ss,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let a=!1,t=-1,s=!1,i=-1;if(typeof navigator<"u"){const r=navigator.userAgent;a=/^((?!chrome|android).)*safari/i.test(r)===!0;const o=r.match(/Version\/(\d+)/);t=a&&o?parseInt(o[1],10):-1,s=r.indexOf("Firefox")>-1,i=s?r.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||a&&t<17||s&&i<98?this.textureLoader=new Bt(this.options.manager):this.textureLoader=new Oa(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new eA(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,e){const a=this,t=this.json,s=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(i){return i._markDefs&&i._markDefs()}),Promise.all(this._invokeAll(function(i){return i.beforeRoot&&i.beforeRoot()})).then(function(){return Promise.all([a.getDependencies("scene"),a.getDependencies("animation"),a.getDependencies("camera")])}).then(function(i){const r={scene:i[0][t.scene||0],scenes:i[0],animations:i[1],cameras:i[2],asset:t.asset,parser:a,userData:{}};return X(s,r,t),v(r,t),Promise.all(a._invokeAll(function(o){return o.afterRoot&&o.afterRoot(r)})).then(function(){for(const o of r.scenes)o.updateMatrixWorld();A(r)})}).catch(e)}_markDefs(){const A=this.json.nodes||[],e=this.json.skins||[],a=this.json.meshes||[];for(let t=0,s=e.length;t<s;t++){const i=e[t].joints;for(let r=0,o=i.length;r<o;r++)A[i[r]].isBone=!0}for(let t=0,s=A.length;t<s;t++){const i=A[t];i.mesh!==void 0&&(this._addNodeRef(this.meshCache,i.mesh),i.skin!==void 0&&(a[i.mesh].isSkinnedMesh=!0)),i.camera!==void 0&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(A,e){e!==void 0&&(A.refs[e]===void 0&&(A.refs[e]=A.uses[e]=0),A.refs[e]++)}_getNodeRef(A,e,a){if(A.refs[e]<=1)return a;const t=a.clone(),s=(i,r)=>{const o=this.associations.get(i);o!=null&&this.associations.set(r,o);for(const[c,g]of i.children.entries())s(g,r.children[c])};return s(a,t),t.name+="_instance_"+A.uses[e]++,t}_invokeOne(A){const e=Object.values(this.plugins);e.push(this);for(let a=0;a<e.length;a++){const t=A(e[a]);if(t)return t}return null}_invokeAll(A){const e=Object.values(this.plugins);e.unshift(this);const a=[];for(let t=0;t<e.length;t++){const s=A(e[t]);s&&a.push(s)}return a}getDependency(A,e){const a=A+":"+e;let t=this.cache.get(a);if(!t){switch(A){case"scene":t=this.loadScene(e);break;case"node":t=this._invokeOne(function(s){return s.loadNode&&s.loadNode(e)});break;case"mesh":t=this._invokeOne(function(s){return s.loadMesh&&s.loadMesh(e)});break;case"accessor":t=this.loadAccessor(e);break;case"bufferView":t=this._invokeOne(function(s){return s.loadBufferView&&s.loadBufferView(e)});break;case"buffer":t=this.loadBuffer(e);break;case"material":t=this._invokeOne(function(s){return s.loadMaterial&&s.loadMaterial(e)});break;case"texture":t=this._invokeOne(function(s){return s.loadTexture&&s.loadTexture(e)});break;case"skin":t=this.loadSkin(e);break;case"animation":t=this._invokeOne(function(s){return s.loadAnimation&&s.loadAnimation(e)});break;case"camera":t=this.loadCamera(e);break;default:if(t=this._invokeOne(function(s){return s!=this&&s.getDependency&&s.getDependency(A,e)}),!t)throw new Error("Unknown type: "+A);break}this.cache.add(a,t)}return t}getDependencies(A){let e=this.cache.get(A);if(!e){const a=this,t=this.json[A+(A==="mesh"?"es":"s")]||[];e=Promise.all(t.map(function(s,i){return a.getDependency(A,i)})),this.cache.add(A,e)}return e}loadBuffer(A){const e=this.json.buffers[A],a=this.fileLoader;if(e.type&&e.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(e.uri===void 0&&A===0)return Promise.resolve(this.extensions[D.KHR_BINARY_GLTF].body);const t=this.options;return new Promise(function(s,i){a.load(pA.resolveURL(e.uri,t.path),s,void 0,function(){i(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(A){const e=this.json.bufferViews[A];return this.getDependency("buffer",e.buffer).then(function(a){const t=e.byteLength||0,s=e.byteOffset||0;return a.slice(s,s+t)})}loadAccessor(A){const e=this,a=this.json,t=this.json.accessors[A];if(t.bufferView===void 0&&t.sparse===void 0){const i=$A[t.type],r=oA[t.componentType],o=t.normalized===!0,c=new r(t.count*i);return Promise.resolve(new fA(c,i,o))}const s=[];return t.bufferView!==void 0?s.push(this.getDependency("bufferView",t.bufferView)):s.push(null),t.sparse!==void 0&&(s.push(this.getDependency("bufferView",t.sparse.indices.bufferView)),s.push(this.getDependency("bufferView",t.sparse.values.bufferView))),Promise.all(s).then(function(i){const r=i[0],o=$A[t.type],c=oA[t.componentType],g=c.BYTES_PER_ELEMENT,I=g*o,l=t.byteOffset||0,b=t.bufferView!==void 0?a.bufferViews[t.bufferView].byteStride:void 0,d=t.normalized===!0;let h,u;if(b&&b!==I){const C=Math.floor(l/b),E="InterleavedBuffer:"+t.bufferView+":"+t.componentType+":"+C+":"+t.count;let p=e.cache.get(E);p||(h=new c(r,C*b,t.count*b/g),p=new ja(h,b/g),e.cache.add(E,p)),u=new es(p,o,l%b/g,d)}else r===null?h=new c(t.count*o):h=new c(r,l,t.count*o),u=new fA(h,o,d);if(t.sparse!==void 0){const C=$A.SCALAR,E=oA[t.sparse.indices.componentType],p=t.sparse.indices.byteOffset||0,B=t.sparse.values.byteOffset||0,f=new E(i[1],p,t.sparse.count*C),Q=new c(i[2],B,t.sparse.count*o);r!==null&&(u=new fA(u.array.slice(),u.itemSize,u.normalized)),u.normalized=!1;for(let m=0,w=f.length;m<w;m++){const R=f[m];if(u.setX(R,Q[m*o]),o>=2&&u.setY(R,Q[m*o+1]),o>=3&&u.setZ(R,Q[m*o+2]),o>=4&&u.setW(R,Q[m*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}u.normalized=d}return u})}loadTexture(A){const e=this.json,a=this.options,s=e.textures[A].source,i=e.images[s];let r=this.textureLoader;if(i.uri){const o=a.manager.getHandler(i.uri);o!==null&&(r=o)}return this.loadTextureImage(A,s,r)}loadTextureImage(A,e,a){const t=this,s=this.json,i=s.textures[A],r=s.images[e],o=(r.uri||r.bufferView)+":"+i.sampler;if(this.textureCache[o])return this.textureCache[o];const c=this.loadImageSource(e,a).then(function(g){g.flipY=!1,g.name=i.name||r.name||"",g.name===""&&typeof r.uri=="string"&&r.uri.startsWith("data:image/")===!1&&(g.name=r.uri);const l=(s.samplers||{})[i.sampler]||{};return g.magFilter=Ke[l.magFilter]||sA,g.minFilter=Ke[l.minFilter]||KA,g.wrapS=Je[l.wrapS]||ge,g.wrapT=Je[l.wrapT]||ge,g.generateMipmaps=!g.isCompressedTexture&&g.minFilter!==vA&&g.minFilter!==sA,t.associations.set(g,{textures:A}),g}).catch(function(){return null});return this.textureCache[o]=c,c}loadImageSource(A,e){const a=this,t=this.json,s=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(I=>I.clone());const i=t.images[A],r=self.URL||self.webkitURL;let o=i.uri||"",c=!1;if(i.bufferView!==void 0)o=a.getDependency("bufferView",i.bufferView).then(function(I){c=!0;const l=new Blob([I],{type:i.mimeType});return o=r.createObjectURL(l),o});else if(i.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const g=Promise.resolve(o).then(function(I){return new Promise(function(l,b){let d=l;e.isImageBitmapLoader===!0&&(d=function(h){const u=new Ie(h);u.needsUpdate=!0,l(u)}),e.load(pA.resolveURL(I,s.path),d,void 0,b)})}).then(function(I){return c===!0&&r.revokeObjectURL(o),v(I,i),I.userData.mimeType=i.mimeType||sn(i.uri),I}).catch(function(I){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),I});return this.sourceCache[A]=g,g}assignTexture(A,e,a,t){const s=this;return this.getDependency("texture",a.index).then(function(i){if(!i)return null;if(a.texCoord!==void 0&&a.texCoord>0&&(i=i.clone(),i.channel=a.texCoord),s.extensions[D.KHR_TEXTURE_TRANSFORM]){const r=a.extensions!==void 0?a.extensions[D.KHR_TEXTURE_TRANSFORM]:void 0;if(r){const o=s.associations.get(i);i=s.extensions[D.KHR_TEXTURE_TRANSFORM].extendTexture(i,r),s.associations.set(i,o)}}return t!==void 0&&(i.colorSpace=t),A[e]=i,i})}assignFinalMaterial(A){const e=A.geometry;let a=A.material;const t=e.attributes.tangent===void 0,s=e.attributes.color!==void 0,i=e.attributes.normal===void 0;if(A.isPoints){const r="PointsMaterial:"+a.uuid;let o=this.cache.get(r);o||(o=new Wa,zA.prototype.copy.call(o,a),o.color.copy(a.color),o.map=a.map,o.sizeAttenuation=!1,this.cache.add(r,o)),a=o}else if(A.isLine){const r="LineBasicMaterial:"+a.uuid;let o=this.cache.get(r);o||(o=new Va,zA.prototype.copy.call(o,a),o.color.copy(a.color),o.map=a.map,this.cache.add(r,o)),a=o}if(t||s||i){let r="ClonedMaterial:"+a.uuid+":";t&&(r+="derivative-tangents:"),s&&(r+="vertex-colors:"),i&&(r+="flat-shading:");let o=this.cache.get(r);o||(o=a.clone(),s&&(o.vertexColors=!0),i&&(o.flatShading=!0),t&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),this.cache.add(r,o),this.associations.set(o,this.associations.get(a))),a=o}A.material=a}getMaterialType(){return ht}loadMaterial(A){const e=this,a=this.json,t=this.extensions,s=a.materials[A];let i;const r={},o=s.extensions||{},c=[];if(o[D.KHR_MATERIALS_UNLIT]){const I=t[D.KHR_MATERIALS_UNLIT];i=I.getMaterialType(),c.push(I.extendParams(r,s,e))}else{const I=s.pbrMetallicRoughness||{};if(r.color=new K(1,1,1),r.opacity=1,Array.isArray(I.baseColorFactor)){const l=I.baseColorFactor;r.color.setRGB(l[0],l[1],l[2],H),r.opacity=l[3]}I.baseColorTexture!==void 0&&c.push(e.assignTexture(r,"map",I.baseColorTexture,L)),r.metalness=I.metallicFactor!==void 0?I.metallicFactor:1,r.roughness=I.roughnessFactor!==void 0?I.roughnessFactor:1,I.metallicRoughnessTexture!==void 0&&(c.push(e.assignTexture(r,"metalnessMap",I.metallicRoughnessTexture)),c.push(e.assignTexture(r,"roughnessMap",I.metallicRoughnessTexture))),i=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(A)}),c.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(A,r)})))}s.doubleSided===!0&&(r.side=za);const g=s.alphaMode||Ae.OPAQUE;if(g===Ae.BLEND?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,g===Ae.MASK&&(r.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5)),s.normalTexture!==void 0&&i!==hA&&(c.push(e.assignTexture(r,"normalMap",s.normalTexture)),r.normalScale=new It(1,1),s.normalTexture.scale!==void 0)){const I=s.normalTexture.scale;r.normalScale.set(I,I)}if(s.occlusionTexture!==void 0&&i!==hA&&(c.push(e.assignTexture(r,"aoMap",s.occlusionTexture)),s.occlusionTexture.strength!==void 0&&(r.aoMapIntensity=s.occlusionTexture.strength)),s.emissiveFactor!==void 0&&i!==hA){const I=s.emissiveFactor;r.emissive=new K().setRGB(I[0],I[1],I[2],H)}return s.emissiveTexture!==void 0&&i!==hA&&c.push(e.assignTexture(r,"emissiveMap",s.emissiveTexture,L)),Promise.all(c).then(function(){const I=new i(r);return s.name&&(I.name=s.name),v(I,s),e.associations.set(I,{materials:A}),s.extensions&&X(t,I,s),I})}createUniqueName(A){const e=Xa.sanitizeNodeName(A||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(A){const e=this,a=this.extensions,t=this.primitiveCache;function s(r){return a[D.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(r,e).then(function(o){return Ye(o,r,e)})}const i=[];for(let r=0,o=A.length;r<o;r++){const c=A[r],g=an(c),I=t[g];if(I)i.push(I.promise);else{let l;c.extensions&&c.extensions[D.KHR_DRACO_MESH_COMPRESSION]?l=s(c):l=Ye(new ct,c,e),t[g]={primitive:c,promise:l},i.push(l)}}return Promise.all(i)}loadMesh(A){const e=this,a=this.json,t=this.extensions,s=a.meshes[A],i=s.primitives,r=[];for(let o=0,c=i.length;o<c;o++){const g=i[o].material===void 0?An(this.cache):this.getDependency("material",i[o].material);r.push(g)}return r.push(e.loadGeometries(i)),Promise.all(r).then(function(o){const c=o.slice(0,o.length-1),g=o[o.length-1],I=[];for(let b=0,d=g.length;b<d;b++){const h=g[b],u=i[b];let C;const E=c[b];if(u.mode===M.TRIANGLES||u.mode===M.TRIANGLE_STRIP||u.mode===M.TRIANGLE_FAN||u.mode===void 0)C=s.isSkinnedMesh===!0?new Ct(h,E):new JA(h,E),C.isSkinnedMesh===!0&&C.normalizeSkinWeights(),u.mode===M.TRIANGLE_STRIP?C.geometry=je(C.geometry,gt):u.mode===M.TRIANGLE_FAN&&(C.geometry=je(C.geometry,ce));else if(u.mode===M.LINES)C=new Et(h,E);else if(u.mode===M.LINE_STRIP)C=new ft(h,E);else if(u.mode===M.LINE_LOOP)C=new pt(h,E);else if(u.mode===M.POINTS)C=new ut(h,E);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+u.mode);Object.keys(C.geometry.morphAttributes).length>0&&tn(C,s),C.name=e.createUniqueName(s.name||"mesh_"+A),v(C,s),u.extensions&&X(t,C,u),e.assignFinalMaterial(C),I.push(C)}for(let b=0,d=I.length;b<d;b++)e.associations.set(I[b],{meshes:A,primitives:b});if(I.length===1)return s.extensions&&X(t,I[0],s),I[0];const l=new uA;s.extensions&&X(t,l,s),e.associations.set(l,{meshes:A});for(let b=0,d=I.length;b<d;b++)l.add(I[b]);return l})}loadCamera(A){let e;const a=this.json.cameras[A],t=a[a.type];if(!t){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return a.type==="perspective"?e=new Qt(rA.radToDeg(t.yfov),t.aspectRatio||1,t.znear||1,t.zfar||2e6):a.type==="orthographic"&&(e=new mt(-t.xmag,t.xmag,t.ymag,-t.ymag,t.znear,t.zfar)),a.name&&(e.name=this.createUniqueName(a.name)),v(e,a),Promise.resolve(e)}loadSkin(A){const e=this.json.skins[A],a=[];for(let t=0,s=e.joints.length;t<s;t++)a.push(this._loadNodeShallow(e.joints[t]));return e.inverseBindMatrices!==void 0?a.push(this.getDependency("accessor",e.inverseBindMatrices)):a.push(null),Promise.all(a).then(function(t){const s=t.pop(),i=t,r=[],o=[];for(let c=0,g=i.length;c<g;c++){const I=i[c];if(I){r.push(I);const l=new aA;s!==null&&l.fromArray(s.array,c*16),o.push(l)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[c])}return new Za(r,o)})}loadAnimation(A){const e=this.json,a=this,t=e.animations[A],s=t.name?t.name:"animation_"+A,i=[],r=[],o=[],c=[],g=[];for(let I=0,l=t.channels.length;I<l;I++){const b=t.channels[I],d=t.samplers[b.sampler],h=b.target,u=h.node,C=t.parameters!==void 0?t.parameters[d.input]:d.input,E=t.parameters!==void 0?t.parameters[d.output]:d.output;h.node!==void 0&&(i.push(this.getDependency("node",u)),r.push(this.getDependency("accessor",C)),o.push(this.getDependency("accessor",E)),c.push(d),g.push(h))}return Promise.all([Promise.all(i),Promise.all(r),Promise.all(o),Promise.all(c),Promise.all(g)]).then(function(I){const l=I[0],b=I[1],d=I[2],h=I[3],u=I[4],C=[];for(let p=0,B=l.length;p<B;p++){const f=l[p],Q=b[p],m=d[p],w=h[p],R=u[p];if(f===void 0)continue;f.updateMatrix&&f.updateMatrix();const k=a._createAnimationTracks(f,Q,m,w,R);if(k)for(let G=0;G<k.length;G++)C.push(k[G])}const E=new $a(s,void 0,C);return v(E,t),E})}createNodeMesh(A){const e=this.json,a=this,t=e.nodes[A];return t.mesh===void 0?null:a.getDependency("mesh",t.mesh).then(function(s){const i=a._getNodeRef(a.meshCache,t.mesh,s);return t.weights!==void 0&&i.traverse(function(r){if(r.isMesh)for(let o=0,c=t.weights.length;o<c;o++)r.morphTargetInfluences[o]=t.weights[o]}),i})}loadNode(A){const e=this.json,a=this,t=e.nodes[A],s=a._loadNodeShallow(A),i=[],r=t.children||[];for(let c=0,g=r.length;c<g;c++)i.push(a.getDependency("node",r[c]));const o=t.skin===void 0?Promise.resolve(null):a.getDependency("skin",t.skin);return Promise.all([s,Promise.all(i),o]).then(function(c){const g=c[0],I=c[1],l=c[2];l!==null&&g.traverse(function(b){b.isSkinnedMesh&&b.bind(l,nn)});for(let b=0,d=I.length;b<d;b++)g.add(I[b]);return g})}_loadNodeShallow(A){const e=this.json,a=this.extensions,t=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const s=e.nodes[A],i=s.name?t.createUniqueName(s.name):"",r=[],o=t._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(A)});return o&&r.push(o),s.camera!==void 0&&r.push(t.getDependency("camera",s.camera).then(function(c){return t._getNodeRef(t.cameraCache,s.camera,c)})),t._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(A)}).forEach(function(c){r.push(c)}),this.nodeCache[A]=Promise.all(r).then(function(c){let g;if(s.isBone===!0?g=new wt:c.length>1?g=new uA:c.length===1?g=c[0]:g=new Qe,g!==c[0])for(let I=0,l=c.length;I<l;I++)g.add(c[I]);if(s.name&&(g.userData.name=s.name,g.name=i),v(g,s),s.extensions&&X(a,g,s),s.matrix!==void 0){const I=new aA;I.fromArray(s.matrix),g.applyMatrix4(I)}else s.translation!==void 0&&g.position.fromArray(s.translation),s.rotation!==void 0&&g.quaternion.fromArray(s.rotation),s.scale!==void 0&&g.scale.fromArray(s.scale);if(!t.associations.has(g))t.associations.set(g,{});else if(s.mesh!==void 0&&t.meshCache.refs[s.mesh]>1){const I=t.associations.get(g);t.associations.set(g,{...I})}return t.associations.get(g).nodes=A,g}),this.nodeCache[A]}loadScene(A){const e=this.extensions,a=this.json.scenes[A],t=this,s=new uA;a.name&&(s.name=t.createUniqueName(a.name)),v(s,a),a.extensions&&X(e,s,a);const i=a.nodes||[],r=[];for(let o=0,c=i.length;o<c;o++)r.push(t.getDependency("node",i[o]));return Promise.all(r).then(function(o){for(let g=0,I=o.length;g<I;g++)s.add(o[g]);const c=g=>{const I=new Map;for(const[l,b]of t.associations)(l instanceof zA||l instanceof Ie)&&I.set(l,b);return g.traverse(l=>{const b=t.associations.get(l);b!=null&&I.set(l,b)}),I};return t.associations=c(s),s})}_createAnimationTracks(A,e,a,t,s){const i=[],r=A.name?A.name:A.uuid,o=[];V[s.path]===V.weights?A.traverse(function(l){l.morphTargetInfluences&&o.push(l.name?l.name:l.uuid)}):o.push(r);let c;switch(V[s.path]){case V.weights:c=Ue;break;case V.rotation:c=Ne;break;case V.translation:case V.scale:c=Me;break;default:switch(a.itemSize){case 1:c=Ue;break;case 2:case 3:default:c=Me;break}break}const g=t.interpolation!==void 0?$s[t.interpolation]:yt,I=this._getArrayFromAccessor(a);for(let l=0,b=o.length;l<b;l++){const d=new c(o[l]+"."+V[s.path],e.array,I,g);t.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(d),i.push(d)}return i}_getArrayFromAccessor(A){let e=A.array;if(A.normalized){const a=Ce(e.constructor),t=new Float32Array(e.length);for(let s=0,i=e.length;s<i;s++)t[s]=e[s]*a;e=t}return e}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(a){const t=this instanceof Ne?Zs:Gt;return new t(this.times,this.values,this.getValueSize()/3,a)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function rn(n,A,e){const a=A.attributes,t=new me;if(a.POSITION!==void 0){const r=e.json.accessors[a.POSITION],o=r.min,c=r.max;if(o!==void 0&&c!==void 0){if(t.set(new y(o[0],o[1],o[2]),new y(c[0],c[1],c[2])),r.normalized){const g=Ce(oA[r.componentType]);t.min.multiplyScalar(g),t.max.multiplyScalar(g)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const s=A.targets;if(s!==void 0){const r=new y,o=new y;for(let c=0,g=s.length;c<g;c++){const I=s[c];if(I.POSITION!==void 0){const l=e.json.accessors[I.POSITION],b=l.min,d=l.max;if(b!==void 0&&d!==void 0){if(o.setX(Math.max(Math.abs(b[0]),Math.abs(d[0]))),o.setY(Math.max(Math.abs(b[1]),Math.abs(d[1]))),o.setZ(Math.max(Math.abs(b[2]),Math.abs(d[2]))),l.normalized){const h=Ce(oA[l.componentType]);o.multiplyScalar(h)}r.max(o)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}t.expandByVector(r)}n.boundingBox=t;const i=new ss;t.getCenter(i.center),i.radius=t.min.distanceTo(t.max)/2,n.boundingSphere=i}function Ye(n,A,e){const a=A.attributes,t=[];function s(i,r){return e.getDependency("accessor",i).then(function(o){n.setAttribute(r,o)})}for(const i in a){const r=he[i]||i.toLowerCase();r in n.attributes||t.push(s(a[i],r))}if(A.indices!==void 0&&!n.index){const i=e.getDependency("accessor",A.indices).then(function(r){n.setIndex(r)});t.push(i)}return HA.workingColorSpace!==H&&"COLOR_0"in a&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${HA.workingColorSpace}" not supported.`),v(n,A),rn(n,A,e),Promise.all(t).then(function(){return A.targets!==void 0?en(n,A.targets,e):n})}class cn{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const e=this.workerCreator();e.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=e}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,e){const a=this.workersResolve[A];if(a&&a(e),this.queue.length){const{resolve:t,msg:s,transfer:i}=this.queue.shift();this.workersResolve[A]=t,this.workers[A].postMessage(s,i)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,e){return new Promise(a=>{const t=this._getIdleWorker();t!==-1?(this._initWorker(t),this.workerStatus|=1<<t,this.workersResolve[t]=a,this.workers[t].postMessage(A,e)):this.queue.push({resolve:a,msg:A,transfer:e})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const gn=0,We=2,In=1,Ve=2,ln=0,bn=1,Bn=10,dn=0,Tt=9,Lt=15,Mt=16,Ut=22,Nt=37,_t=43,Ht=76,vt=83,qt=97,Ot=100,jt=103,Pt=109,Kt=122,Jt=123,Yt=131,Wt=132,Vt=133,zt=134,Xt=137,Zt=138,$t=139,Aa=140,ea=141,ta=142,aa=145,sa=146,na=148,ia=152,oa=157,ra=158,ca=165,ga=166,Ia=1000054e3,la=1000054001,ba=1000054004,Ba=1000054005,De=1000066e3,da=1000066004;class dA{constructor(A,e,a,t){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+e,a),this._littleEndian=t,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const e=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,e}_skip(A){return this._offset+=A,this}_scan(A,e=0){const a=this._offset;let t=0;for(;this._dataView.getUint8(this._offset)!==e&&t<A;)t++,this._offset++;return t<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+a,t)}}const T=[171,75,84,88,32,50,48,187,13,10,26,10];function ze(n){return new TextDecoder().decode(n)}function hn(n){const A=new Uint8Array(n.buffer,n.byteOffset,T.length);if(A[0]!==T[0]||A[1]!==T[1]||A[2]!==T[2]||A[3]!==T[3]||A[4]!==T[4]||A[5]!==T[5]||A[6]!==T[6]||A[7]!==T[7]||A[8]!==T[8]||A[9]!==T[9]||A[10]!==T[10]||A[11]!==T[11])throw new Error("Missing KTX 2.0 identifier.");const e={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},a=17*Uint32Array.BYTES_PER_ELEMENT,t=new dA(n,T.length,a,!0);e.vkFormat=t._nextUint32(),e.typeSize=t._nextUint32(),e.pixelWidth=t._nextUint32(),e.pixelHeight=t._nextUint32(),e.pixelDepth=t._nextUint32(),e.layerCount=t._nextUint32(),e.faceCount=t._nextUint32(),e.levelCount=t._nextUint32(),e.supercompressionScheme=t._nextUint32();const s=t._nextUint32(),i=t._nextUint32(),r=t._nextUint32(),o=t._nextUint32(),c=t._nextUint64(),g=t._nextUint64(),I=3*Math.max(e.levelCount,1)*8,l=new dA(n,T.length+a,I,!0);for(let F=0,x=Math.max(e.levelCount,1);F<x;F++)e.levels.push({levelData:new Uint8Array(n.buffer,n.byteOffset+l._nextUint64(),l._nextUint64()),uncompressedByteLength:l._nextUint64()});const b=new dA(n,s,i,!0);b._skip(4);const d=b._nextUint16(),h=b._nextUint16(),u=b._nextUint16(),C=b._nextUint16(),E={vendorId:d,descriptorType:h,versionNumber:u,colorModel:b._nextUint8(),colorPrimaries:b._nextUint8(),transferFunction:b._nextUint8(),flags:b._nextUint8(),texelBlockDimension:[b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8()],bytesPlane:[b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8()],samples:[]},p=(C/4-6)/4;for(let F=0;F<p;F++){const x={bitOffset:b._nextUint16(),bitLength:b._nextUint8(),channelType:b._nextUint8(),samplePosition:[b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&x.channelType?(x.sampleLower=b._nextInt32(),x.sampleUpper=b._nextInt32()):(x.sampleLower=b._nextUint32(),x.sampleUpper=b._nextUint32()),E.samples[F]=x}e.dataFormatDescriptor.length=0,e.dataFormatDescriptor.push(E);const B=new dA(n,r,o,!0);for(;B._offset<o;){const F=B._nextUint32(),x=B._scan(F),N=ze(x);if(e.keyValue[N]=B._nextUint8Array(F-x.byteLength-1),N.match(/^ktx/i)){const MA=ze(e.keyValue[N]);e.keyValue[N]=MA.substring(0,MA.lastIndexOf("\0"))}B._skip(F%4?4-F%4:0)}if(g<=0)return e;const f=new dA(n,c,g,!0),Q=f._nextUint16(),m=f._nextUint16(),w=f._nextUint32(),R=f._nextUint32(),k=f._nextUint32(),G=f._nextUint32(),J=[];for(let F=0,x=Math.max(e.levelCount,1);F<x;F++)J.push({imageFlags:f._nextUint32(),rgbSliceByteOffset:f._nextUint32(),rgbSliceByteLength:f._nextUint32(),alphaSliceByteOffset:f._nextUint32(),alphaSliceByteLength:f._nextUint32()});const j=c+f._offset,Y=j+w,IA=Y+R,W=IA+k,TA=new Uint8Array(n.buffer,n.byteOffset+j,w),lA=new Uint8Array(n.buffer,n.byteOffset+Y,R),bA=new Uint8Array(n.buffer,n.byteOffset+IA,k),LA=new Uint8Array(n.buffer,n.byteOffset+W,G);return e.globalData={endpointCount:Q,selectorCount:m,imageDescs:J,endpointsData:TA,selectorsData:lA,tablesData:bA,extendedData:LA},e}let te,P,Ee;const ae={env:{emscripten_notify_memory_growth:function(n){Ee=new Uint8Array(P.exports.memory.buffer)}}};class Cn{init(){return te||(te=typeof fetch<"u"?fetch("data:application/wasm;base64,"+Xe).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,ae)).then(this._init):WebAssembly.instantiate(Buffer.from(Xe,"base64"),ae).then(this._init),te)}_init(A){P=A.instance,ae.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!P)throw new Error("ZSTDDecoder: Await .init() before decoding.");const a=A.byteLength,t=P.exports.malloc(a);Ee.set(A,t),e=e||Number(P.exports.ZSTD_findDecompressedSize(t,a));const s=P.exports.malloc(e),i=P.exports.ZSTD_decompress(s,e,t,a),r=Ee.slice(s,s+i);return P.exports.free(t),P.exports.free(s),r}}const Xe="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",En="display-p3",fn="display-p3-linear";({...HA.spaces[L]});const se=new WeakMap;let ne=0,ie;class U extends ue{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new cn,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return this.workerConfig={astcSupported:await A.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await A.hasFeatureAsync("texture-compression-etc2"),etc2Supported:await A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await A.hasFeatureAsync("texture-compression-bc"),bptcSupported:await A.hasFeatureAsync("texture-compression-bc"),pvrtcSupported:await A.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(A){return A.isWebGPURenderer===!0?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc2"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const A=new eA(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const e=A.loadAsync("basis_transcoder.js"),a=new eA(this.manager);a.setPath(this.transcoderPath),a.setResponseType("arraybuffer"),a.setWithCredentials(this.withCredentials);const t=a.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([e,t]).then(([s,i])=>{const r=U.BasisWorker.toString(),o=["/* constants */","let _EngineFormat = "+JSON.stringify(U.EngineFormat),"let _EngineType = "+JSON.stringify(U.EngineType),"let _TranscoderFormat = "+JSON.stringify(U.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(U.BasisFormat),"/* basis_transcoder.js */",s,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join(`
|
|
4
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([o])),this.transcoderBinary=i,this.workerPool.setWorkerCreator(()=>{const c=new Worker(this.workerSourceURL),g=this.transcoderBinary.slice(0);return c.postMessage({type:"init",config:this.workerConfig,transcoderBinary:g},[g]),c})}),ne>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),ne++}return this.transcoderPending}load(A,e,a,t){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const s=new eA(this.manager);s.setPath(this.path),s.setCrossOrigin(this.crossOrigin),s.setWithCredentials(this.withCredentials),s.setResponseType("arraybuffer"),s.load(A,i=>{this.parse(i,e,t)},a,t)}parse(A,e,a){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(se.has(A))return se.get(A).promise.then(e).catch(a);this._createTexture(A).then(t=>e?e(t):null).catch(a)}_createTextureFrom(A,e){const{type:a,error:t,data:{faces:s,width:i,height:r,format:o,type:c,dfdFlags:g}}=A;if(a==="error")return Promise.reject(t);let I;if(e.faceCount===6)I=new ns(s,o,c);else{const l=s[0].mipmaps;I=e.layerCount>1?new is(l,i,r,e.layerCount,o,c):new Dt(l,i,r,o,c)}return I.minFilter=s[0].mipmaps.length===1?sA:KA,I.magFilter=sA,I.generateMipmaps=!1,I.needsUpdate=!0,I.colorSpace=ha(e),I.premultiplyAlpha=!!(g&In),I}async _createTexture(A,e={}){const a=hn(new Uint8Array(A)),t=a.vkFormat===De&&a.dataFormatDescriptor[0].colorModel===167;if(!(a.vkFormat===dn||t&&!this.workerConfig.astcHDRSupported))return un(a);const i=e,r=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:i},[A])).then(o=>this._createTextureFrom(o.data,a));return se.set(A,{promise:r}),r}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),ne--}}U.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2};U.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25};U.EngineFormat={RGBAFormat:iA,RGBA_ASTC_4x4_Format:_A,RGB_BPTC_UNSIGNED_Format:hs,RGBA_BPTC_Format:be,RGBA_ETC2_EAC_Format:St,RGBA_PVRTC_4BPPV1_Format:le,RGBA_S3TC_DXT5_Format:ds,RGB_ETC1_Format:Bs,RGB_ETC2_Format:Rt,RGB_PVRTC_4BPPV1_Format:bs,RGBA_S3TC_DXT1_Format:Be};U.EngineType={UnsignedByteType:S,HalfFloatType:Z,FloatType:QA};U.BasisWorker=function(){let n,A,e;const a=_EngineFormat,t=_EngineType,s=_TranscoderFormat,i=_BasisFormat;self.addEventListener("message",function(d){const h=d.data;switch(h.type){case"init":n=h.config,r(h.transcoderBinary);break;case"transcode":A.then(()=>{try{const{faces:u,buffers:C,width:E,height:p,hasAlpha:B,format:f,type:Q,dfdFlags:m}=o(h.buffer);self.postMessage({type:"transcode",id:h.id,data:{faces:u,width:E,height:p,hasAlpha:B,format:f,type:Q,dfdFlags:m}},C)}catch(u){console.error(u),self.postMessage({type:"error",id:h.id,error:u.message})}});break}});function r(d){A=new Promise(h=>{e={wasmBinary:d,onRuntimeInitialized:h},BASIS(e)}).then(()=>{e.initializeBasis(),e.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")})}function o(d){const h=new e.KTX2File(new Uint8Array(d));function u(){h.close(),h.delete()}if(!h.isValid())throw u(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let C;if(h.isUASTC())C=i.UASTC;else if(h.isETC1S())C=i.ETC1S;else if(h.isHDR())C=i.UASTC_HDR;else throw new Error("THREE.KTX2Loader: Unknown Basis encoding");const E=h.getWidth(),p=h.getHeight(),B=h.getLayers()||1,f=h.getLevels(),Q=h.getFaces(),m=h.getHasAlpha(),w=h.getDFDFlags(),{transcoderFormat:R,engineFormat:k,engineType:G}=I(C,E,p,m);if(!E||!p||!f)throw u(),new Error("THREE.KTX2Loader: Invalid texture");if(!h.startTranscoding())throw u(),new Error("THREE.KTX2Loader: .startTranscoding failed");const J=[],j=[];for(let Y=0;Y<Q;Y++){const IA=[];for(let W=0;W<f;W++){const TA=[];let lA,bA;for(let F=0;F<B;F++){const x=h.getImageLevelInfo(W,F,Y);Y===0&&W===0&&F===0&&(x.origWidth%4!==0||x.origHeight%4!==0)&&console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),f>1?(lA=x.origWidth,bA=x.origHeight):(lA=x.width,bA=x.height);let N=new Uint8Array(h.getImageTranscodedSizeInBytes(W,F,0,R));const MA=h.transcodeImage(N,W,F,Y,R,0,-1,-1);if(G===t.HalfFloatType&&(N=new Uint16Array(N.buffer,N.byteOffset,N.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!MA)throw u(),new Error("THREE.KTX2Loader: .transcodeImage failed.");TA.push(N)}const LA=b(TA);IA.push({data:LA,width:lA,height:bA}),j.push(LA.buffer)}J.push({mipmaps:IA,width:E,height:p,format:k,type:G})}return u(),{faces:J,buffers:j,width:E,height:p,hasAlpha:m,dfdFlags:w,format:k,type:G}}const c=[{if:"astcSupported",basisFormat:[i.UASTC],transcoderFormat:[s.ASTC_4x4,s.ASTC_4x4],engineFormat:[a.RGBA_ASTC_4x4_Format,a.RGBA_ASTC_4x4_Format],engineType:[t.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.BC7_M5,s.BC7_M5],engineFormat:[a.RGBA_BPTC_Format,a.RGBA_BPTC_Format],engineType:[t.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.BC1,s.BC3],engineFormat:[a.RGBA_S3TC_DXT1_Format,a.RGBA_S3TC_DXT5_Format],engineType:[t.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.ETC1,s.ETC2],engineFormat:[a.RGB_ETC2_Format,a.RGBA_ETC2_EAC_Format],engineType:[t.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.ETC1],engineFormat:[a.RGB_ETC1_Format],engineType:[t.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.PVRTC1_4_RGB,s.PVRTC1_4_RGBA],engineFormat:[a.RGB_PVRTC_4BPPV1_Format,a.RGBA_PVRTC_4BPPV1_Format],engineType:[t.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[i.UASTC_HDR],transcoderFormat:[s.BC6H],engineFormat:[a.RGB_BPTC_UNSIGNED_Format],engineType:[t.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.RGBA32,s.RGBA32],engineFormat:[a.RGBAFormat,a.RGBAFormat],engineType:[t.UnsignedByteType,t.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[i.UASTC_HDR],transcoderFormat:[s.RGBA_HALF],engineFormat:[a.RGBAFormat],engineType:[t.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],g={[i.ETC1S]:c.filter(d=>d.basisFormat.includes(i.ETC1S)).sort((d,h)=>d.priorityUASTC-h.priorityUASTC),[i.UASTC]:c.filter(d=>d.basisFormat.includes(i.UASTC)).sort((d,h)=>d.priorityUASTC-h.priorityUASTC),[i.UASTC_HDR]:c.filter(d=>d.basisFormat.includes(i.UASTC_HDR)).sort((d,h)=>d.priorityHDR-h.priorityHDR)};function I(d,h,u,C){const E=g[d];for(let p=0;p<E.length;p++){const B=E[p];if(B.if&&!n[B.if]||!B.basisFormat.includes(d)||C&&B.transcoderFormat.length<2||B.needsPowerOfTwo&&!(l(h)&&l(u)))continue;const f=B.transcoderFormat[C?1:0],Q=B.engineFormat[C?1:0],m=B.engineType[0];return{transcoderFormat:f,engineFormat:Q,engineType:m}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}function l(d){return d<=2?!0:(d&d-1)===0&&d!==0}function b(d){if(d.length===1)return d[0];let h=0;for(let E=0;E<d.length;E++){const p=d[E];h+=p.byteLength}const u=new Uint8Array(h);let C=0;for(let E=0;E<d.length;E++){const p=d[E];u.set(p,C),C+=p.byteLength}return u}};const pn=new Set([iA,de,EA,CA]),oe={[Pt]:iA,[jt]:EA,[Ot]:CA,[qt]:iA,[vt]:EA,[Ht]:CA,[_t]:iA,[Nt]:iA,[Ut]:EA,[Mt]:EA,[Lt]:CA,[Tt]:CA,[Jt]:de,[Kt]:de,[ia]:St,[na]:Rt,[De]:_A,[ra]:_A,[oa]:_A,[da]:XA,[ga]:XA,[ca]:XA,[zt]:Be,[Vt]:Be,[Wt]:qe,[Yt]:qe,[Zt]:ve,[Xt]:ve,[Aa]:gs,[$t]:cs,[ta]:rs,[ea]:os,[sa]:be,[aa]:be,[Ba]:le,[la]:le,[ba]:He,[Ia]:He},nA={[Pt]:QA,[jt]:QA,[Ot]:QA,[qt]:Z,[vt]:Z,[Ht]:Z,[_t]:S,[Nt]:S,[Ut]:S,[Mt]:S,[Lt]:S,[Tt]:S,[Jt]:Ft,[Kt]:kt,[ia]:S,[na]:S,[De]:Z,[ra]:S,[oa]:S,[da]:Z,[ga]:S,[ca]:S,[zt]:S,[Vt]:S,[Wt]:S,[Yt]:S,[Zt]:S,[Xt]:S,[Aa]:S,[$t]:S,[ta]:S,[ea]:S,[sa]:S,[aa]:S,[Ba]:S,[la]:S,[ba]:S,[Ia]:S};async function un(n){const{vkFormat:A}=n;if(oe[A]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+A);nA[A]===void 0&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+A);let e;n.supercompressionScheme===We&&(ie||(ie=new Promise(async i=>{const r=new Cn;await r.init(),i(r)})),e=await ie);const a=[];for(let i=0;i<n.levels.length;i++){const r=Math.max(1,n.pixelWidth>>i),o=Math.max(1,n.pixelHeight>>i),c=n.pixelDepth?Math.max(1,n.pixelDepth>>i):0,g=n.levels[i];let I;if(n.supercompressionScheme===gn)I=g.levelData;else if(n.supercompressionScheme===We)I=e.decode(g.levelData,g.uncompressedByteLength);else throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");let l;nA[A]===QA?l=new Float32Array(I.buffer,I.byteOffset,I.byteLength/Float32Array.BYTES_PER_ELEMENT):nA[A]===Z?l=new Uint16Array(I.buffer,I.byteOffset,I.byteLength/Uint16Array.BYTES_PER_ELEMENT):nA[A]===Ft||nA[A]===kt?l=new Uint32Array(I.buffer,I.byteOffset,I.byteLength/Uint32Array.BYTES_PER_ELEMENT):l=I,a.push({data:l,width:r,height:o,depth:c})}const t=n.levelCount===0||a.length>1;let s;if(pn.has(oe[A]))s=n.pixelDepth===0?new Is(a[0].data,n.pixelWidth,n.pixelHeight):new ls(a[0].data,n.pixelWidth,n.pixelHeight,n.pixelDepth),s.minFilter=t?dt:vA,s.magFilter=vA,s.generateMipmaps=n.levelCount===0;else{if(n.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");s=new Dt(a,n.pixelWidth,n.pixelHeight),s.minFilter=t?KA:sA,s.magFilter=sA}return s.mipmaps=a,s.type=nA[A],s.format=oe[A],s.colorSpace=ha(n),s.needsUpdate=!0,Promise.resolve(s)}function ha(n){const A=n.dataFormatDescriptor[0];return A.colorPrimaries===bn?A.transferFunction===Ve?L:H:A.colorPrimaries===Bn?A.transferFunction===Ve?En:fn:A.colorPrimaries===ln?_e:(console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),_e)}let Qn="/";function Ca(n){return n.startsWith("/")||n.startsWith("http")||n.startsWith("data:")||n.startsWith("blob:")?n:Qn+n}const FA=new Cs;FA.setURLModifier(Ca);new Bt(FA);const Ea=new ys(FA);Ea.setDecoderPath("/jsm/libs/draco/gltf/");const fa=new U(FA);fa.setTranscoderPath("/jsm/libs/basis/");const xA=new Rs(FA);xA.setDRACOLoader(Ea);xA.setKTX2Loader(fa);xA.setMeshoptDecoder(ws);function mn(n){return Ca(n)}const UA=new Map;async function wn(n,A){let e=UA.get(n);!e&&A&&(e=Promise.resolve(A),UA.set(n,e)),e||(e=fetch(mn(n)).then(async a=>{if(!a.ok)throw new Error(`Failed to load Gaussian splat: ${n} (${a.status} ${a.statusText})`);return new Uint8Array(await a.arrayBuffer())}),UA.set(n,e));try{const[{SplatMesh:a},t]=await Promise.all([it(()=>import("./spark.module-CTTm62aa.js"),__vite__mapDeps([0,1,2])),e]),s=new a({fileBytes:t,fileName:n,raycastable:!0});await s.initialized,Oe(s,"gaussianSplat",{src:n,numSplats:s.numSplats});const i=s.getBoundingBox();if(!i.isEmpty()){const r=i.getSize(new y).multiplyScalar(1.5),o=i.getCenter(new y),c=new JA(new Es(r.x,r.y,r.z));c.name="__volter_splat_bounds",c.position.copy(o),c.visible=!1,c.raycast=()=>{},Oe(c,"engineInternal",!0),s.add(c)}return s}catch(a){throw UA.delete(n),a}}const yn=.45,Dn=.25,OA=new WeakMap;function YA(n,A){let e=OA.get(A);e||(e=Na(A),OA.set(A,e)),n.environment=e.texture,n.environmentIntensity=yn}function WA(n){const A=OA.get(n);A&&(OA.delete(n),A.dispose())}const Re=31,fi=30;function pa(n){return(n.layers.mask&1<<Re)!==0||!!qA(n,"editorHelper")||!!qA(n,"engineInternal")}function pi(n){let A=n;for(;A;){if(pa(A))return!0;A=A.parent}return!1}function ui(n){const A=qA(n,"volterComponentRoot");return typeof A=="string"&&A?A:void 0}function Rn(n){return qA(n,"volterBuiltInternal")===!0}const jA=1.2,ua=.001;function fe(n){const A=new y(Math.sin(n),0,Math.cos(n)),a=new y(0,1,0).clone().cross(A).normalize(),t=A.clone().cross(a).normalize();return{direction:A,right:a,up:t}}function Qa(){return{minRight:Number.POSITIVE_INFINITY,maxRight:Number.NEGATIVE_INFINITY,minUp:Number.POSITIVE_INFINITY,maxUp:Number.NEGATIVE_INFINITY,minDepth:Number.POSITIVE_INFINITY,maxDepth:Number.NEGATIVE_INFINITY}}function Se(n){return n.maxRight<n.minRight}function Sn(n){n.minRight=Number.POSITIVE_INFINITY,n.maxRight=Number.NEGATIVE_INFINITY,n.minUp=Number.POSITIVE_INFINITY,n.maxUp=Number.NEGATIVE_INFINITY,n.minDepth=Number.POSITIVE_INFINITY,n.maxDepth=Number.NEGATIVE_INFINITY}function ma(n,A,e){const a=A.dot(e.right),t=A.dot(e.up),s=A.dot(e.direction);a<n.minRight&&(n.minRight=a),a>n.maxRight&&(n.maxRight=a),t<n.minUp&&(n.minUp=t),t>n.maxUp&&(n.maxUp=t),s<n.minDepth&&(n.minDepth=s),s>n.maxDepth&&(n.maxDepth=s)}function kn(n,A){if(Se(n))throw new Error("Asset preview cannot frame an empty projected span.");return new y().addScaledVector(A.right,(n.minRight+n.maxRight)/2).addScaledVector(A.up,(n.minUp+n.maxUp)/2).addScaledVector(A.direction,(n.minDepth+n.maxDepth)/2)}function wa(n,A,e,a=jA){const t=Math.max(A,n/e,ua)*a;return{halfHeight:t,halfWidth:t*e}}function Fn(n,A,e=jA){if(Se(n))throw new Error("Asset preview cannot frame an empty projected span.");return wa((n.maxRight-n.minRight)/2,(n.maxUp-n.minUp)/2,A,e)}function xn(n){if(n.length===0)throw new Error("Asset preview cannot union an empty set of frames.");let A=0,e=0;for(const a of n)A=Math.max(A,a.halfWidth),e=Math.max(e,a.halfHeight);return{halfWidth:A,halfHeight:e}}function Gn(n,A,e,a,t,s){const i=Math.max(a*t,ua);let r=i,o=i;const c=new y;for(const g of n)c.copy(g).sub(A),r=Math.max(r,Math.abs(c.dot(e.right))+i),o=Math.max(o,Math.abs(c.dot(e.up))+i);return r=Math.max(r,o*s),o=Math.max(o,r/s),{halfWidth:r,halfHeight:o}}function Tn(n){if(n.length===0)throw new Error("Asset preview cannot centre a bone-zoom crop on zero anchors.");const A=new y;for(const e of n)A.add(e);return A.multiplyScalar(1/n.length)}function Ln(n,A){const e=n.position.dot(A.right),a=n.position.dot(A.up),t=n.position.dot(A.direction),s=n.zoom||1;return{minRight:e+n.left/s,maxRight:e+n.right/s,minUp:a+n.bottom/s,maxUp:a+n.top/s,minDepth:t-n.far,maxDepth:t-n.near}}function Mn(n,A){return Se(n)?!1:n.maxRight>=A.minRight&&n.minRight<=A.maxRight&&n.maxUp>=A.minUp&&n.minUp<=A.maxUp&&n.maxDepth>=A.minDepth&&n.minDepth<=A.maxDepth}function ke(n,A,e,a,t){const s=new mt(-e.halfWidth,e.halfWidth,e.halfHeight,-e.halfHeight,.01,t);return s.position.copy(n).addScaledVector(A.direction,a),s.up.copy(A.up),s.lookAt(n),s.updateProjectionMatrix(),s.updateMatrixWorld(!0),s}const mA=["front","right","top","perspective"],Ze=24;function ya(n){const A=n;return typeof A=="object"&&A!==null&&typeof A.bone=="string"&&A.bone.length>0&&(A.axis==="x"||A.axis==="y"||A.axis==="z")&&typeof A.radians=="number"&&Number.isFinite(A.radians)}function Da(n){const A=n;return typeof A=="object"&&A!==null&&typeof A.morph=="string"&&A.morph.length>0&&typeof A.influence=="number"&&Number.isFinite(A.influence)}function Ra(n){const A=n;return typeof A=="object"&&A!==null&&typeof A.bone=="string"&&A.bone.length>0&&(A.axis==="x"||A.axis==="y"||A.axis==="z")&&typeof A.meters=="number"&&Number.isFinite(A.meters)}function Un(n){return ya(n)||Da(n)||Ra(n)}function Nn(n,A){const e=n;if(typeof e!="object"||e===null||typeof e.label!="string"||!/^[a-z0-9][a-z0-9-]*$/i.test(e.label)||e.pose!==void 0&&(typeof e.pose!="string"||!A.has(e.pose)))return!1;if(e.view==="turntable")return typeof e.yaw=="number"&&Number.isFinite(e.yaw);if(e.view==="bone-zoom"){const a=e;return a.yaw!==void 0&&(typeof a.yaw!="number"||!Number.isFinite(a.yaw))?!1:Array.isArray(a.bones)&&a.bones.length>0&&a.bones.every(t=>typeof t=="string"&&t.length>0)&&typeof a.spanFraction=="number"&&Number.isFinite(a.spanFraction)&&a.spanFraction>0&&a.spanFraction<=2}return!1}function Qi(n){const A=o=>{throw new Error(`Asset preview shot-set definition is invalid: ${o}`)},e=n;(typeof e!="object"||e===null)&&A("expected an object.");const a=e;(typeof a.name!="string"||!/^[a-z0-9][a-z0-9-]*$/i.test(a.name))&&A("`name` must be a short alphanumeric/dash identifier."),a.requiredBones!==void 0&&(!Array.isArray(a.requiredBones)||a.requiredBones.some(o=>typeof o!="string"||o.length===0))&&A("`requiredBones` must be an array of non-empty bone names."),a.rigRequirementHint!==void 0&&typeof a.rigRequirementHint!="string"&&A("`rigRequirementHint` must be a string.");const t=a.poses??{};(typeof t!="object"||t===null||Array.isArray(t))&&A("`poses` must be an object of named pose-step lists.");for(const[o,c]of Object.entries(t))(!Array.isArray(c)||!c.every(Un))&&A(`pose ${JSON.stringify(o)} must be an array of {bone, axis, radians} and/or {morph, influence}.`);const s=new Set(Object.keys(t));(!Array.isArray(a.shots)||a.shots.length===0||a.shots.length>Ze)&&A(`\`shots\` must list 1-${Ze} shots.`);const i=a.shots,r=new Set;for(const o of i){Nn(o,s)||A('every shot needs a label plus either {view:"turntable", yaw} or {view:"bone-zoom", bones, spanFraction, yaw?}, with every `yaw` a finite number of radians and `pose` naming a declared pose.');const{label:c}=o;r.has(c)&&A(`duplicate shot label ${JSON.stringify(c)}.`),r.add(c)}return a}const _n=512,$e=64,At=1024,cA=2106410,Hn=25e3,AA=64*1024*1024;function q(n){const A=n??_n;if(!Number.isInteger(A)||A<$e||A>At)throw new Error(`Asset preview dimensions must be integers from ${$e} to ${At}.`);return A}function _(n){const A=n.toDataURL("image/png"),e=A.indexOf(",");return e>=0?A.slice(e+1):A}function mi(n){const A=new Set;n.traverse(a=>A.add(a));let e=n;return n.traverse(a=>{const t=a;if(!(!t.isSkinnedMesh||!t.skeleton))for(const s of t.skeleton.bones){if(!s||A.has(s))continue;const i=new Set;for(let o=e;o;o=o.parent)i.add(o);let r=null;for(let o=s;o;o=o.parent)if(i.has(o)){r=o;break}r&&r!==e&&(e=r,e.traverse(o=>A.add(o)))}}),e}function wA(n){const A=new Set;n.traverse(i=>{A.add(i)});const e=qn(n,A),a=On(n,e),t=vn(n);a.matrix.copy(t),a.matrix.decompose(a.position,a.quaternion,a.scale),a.matrixAutoUpdate=!1,a.matrixWorld.copy(t),a.matrixWorldAutoUpdate=n.matrixWorldAutoUpdate,a.visible=!0;const s=[];a.traverse(i=>{i!==a&&i.userData.editorHelper&&s.push(i)});for(const i of s)i.parent?.remove(i);return a}function vn(n){const A=[];let e=n;for(;e;)A.push(e),e=e.parent;const a=A.findIndex(r=>!r.matrixWorldAutoUpdate),t=a>=0?A[a].matrixWorld.clone():new aA,s=new aA,i=a>=0?a-1:A.length-1;for(let r=i;r>=0;r--){const o=A[r];o.matrixAutoUpdate?s.compose(o.position,o.quaternion,o.scale):s.copy(o.matrix),t.multiply(s)}return t}function qn(n,A){const e=new Map,a=new Map;let t=null;const s=()=>{if(t)return t;const i=new Map;for(const r of A){const o=r;if(!o.isBone||o.name==="")continue;const c=i.get(o.name);c?c.push(o):i.set(o.name,[o])}return t=i,i};if(n.traverse(i=>{const r=i;if(!r.isSkinnedMesh)return;const o=r.name||r.uuid;for(const c of r.skeleton.bones){if(c&&A.has(c)||c&&e.has(c))continue;const g=c?s().get(c.name)??[]:[];if(g.length===1){e.set(c,g[0]);continue}const I=c?.name||"(unnamed bone)";a.set(`${o} -> ${I}`,{mesh:o,bone:I,sameNamed:g.length})}}),a.size>0){const i=[...a.values()].map(({mesh:r,bone:o,sameNamed:c})=>c>1?`${r} -> ${o} (${c} bones inside the selection share that name — which one is meant is ambiguous)`:`${r} -> ${o} (no bone of that name inside the selection)`).join("; ");throw new Error(`Asset preview selection references bones outside its hierarchy that it cannot bind to: ${i}. Select the complete skeleton root — the node that owns both the skinned mesh and its bones.`)}return e}function On(n,A=new Map){const e=new Map,a=[],t=i=>{const r=jn(i);e.set(i,r),Pn(i,r),i.isSkinnedMesh&&a.push([i,r]);const o=i;if(o.isLOD){const c=r,g=o.levels.filter(b=>b.object.visible),I=g.length===1?g[0]:o.levels[0];c.autoUpdate=!1;const l=new Set(o.levels.map(b=>b.object));for(const b of o.levels){if(re(b.object))continue;const d=t(b.object);d.visible=o.autoUpdate?b===I:b.object.visible,c.addLevel(d,b.distance,b.hysteresis)}for(const b of i.children)!l.has(b)&&!re(b)&&r.add(t(b))}else for(const c of i.children)re(c)||r.add(t(c));return r},s=t(n);for(const[i,r]of a){const o=i.skeleton.clone();o.bones=i.skeleton.bones.map(c=>{const g=e.get(A.get(c)??c);if(!g?.isBone)throw new Error(`Asset preview could not map skeleton bone: ${c.name||c.uuid}`);return g}),r.skeleton=o,r.bindMode=i.bindMode,r.bindMatrix.copy(i.bindMatrix),r.bindMatrixInverse.copy(i.bindMatrixInverse)}return s}function jn(n){const A=n;if(A.isSkinnedMesh)return new Ct(A.geometry,A.material);const e=n;if(e.isInstancedMesh){const r=new lt(e.geometry,e.material,e.count);return r.instanceMatrix.copy(e.instanceMatrix),r.instanceColor=e.instanceColor?e.instanceColor.clone():null,r.morphTexture=e.morphTexture,r}const a=n;if(a.isMesh)return new JA(a.geometry,a.material);const t=n;if(n.isLineSegments)return new Et(t.geometry,t.material);if(n.isLineLoop)return new pt(t.geometry,t.material);if(t.isLine)return new ft(t.geometry,t.material);const s=n;if(s.isPoints)return new ut(s.geometry,s.material);const i=n;return i.isSprite?new fs(i.material):n.isLOD?new ps:n.isBone?new wt:n.isGroup?new uA:new Qe}function Pn(n,A){A.name=n.name,A.up.copy(n.up),A.position.copy(n.position),A.quaternion.copy(n.quaternion),A.scale.copy(n.scale),A.matrix.copy(n.matrix),A.matrixWorld.copy(n.matrixWorld),A.matrixAutoUpdate=n.matrixAutoUpdate,A.matrixWorldAutoUpdate=n.matrixWorldAutoUpdate,A.visible=n.visible,A.castShadow=n.castShadow,A.receiveShadow=n.receiveShadow,A.frustumCulled=!1,A.renderOrder=n.renderOrder,A.layers.set(0),A.animations=[...n.animations];const e=n,a=A;e.morphTargetInfluences&&(e.morphTargetDictionary&&(a.morphTargetDictionary={...e.morphTargetDictionary}),a.morphTargetInfluences=[...e.morphTargetInfluences]);const t=n;t.isSprite&&A.center.copy(t.center)}function re(n){const A=1<<Re;return!!(n.userData.editorHelper||n.userData.editorIcon||(n.layers.mask&A)!==0)}function GA(n){const A=new Set;n.traverse(e=>{const a=e;a.isSkinnedMesh&&A.add(a.skeleton);const t=e;if(t.isInstancedMesh){const s=t.morphTexture;t.morphTexture=null,t.dispose(),t.morphTexture=s}});for(const e of A)e.dispose()}function wi(n){const A=n();let e;try{e=wA(A.root),e.animations=[...A.animations??A.root.animations]}catch(t){try{A.dispose()}catch(s){throw new AggregateError([t,s],"Object3D preview snapshot creation and source cleanup both failed.")}throw t}let a=!1;return{root:e,dispose(){if(a)return;a=!0;const t=[];try{GA(e)}catch(s){t.push(s)}try{A.dispose()}catch(s){t.push(s)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Object3D preview snapshot cleanup failed.")}}}function z(n,A="front"){Fe(n);const e=Kn(n,A);if(e.isEmpty())throw new Error("Asset preview source has no renderable bounds.");const a=e.getCenter(new y),t=e.getSize(new y);return{center:a,size:t,radius:Math.max(t.length()/2,.001)}}function Fe(n){n.parent?.updateWorldMatrix(!0,!1),n.updateMatrixWorld(!0)}function Kn(n,A){const e=new me;return xe(n,VA(A),A==="perspective",a=>e.expandByPoint(a)),e}function Jn(n,A){const e=A.map(()=>Qa());return A.length===0||(Fe(n),xe(n,A[0],!1,a=>{for(let t=0;t<A.length;t++)ma(e[t],a,A[t])})),e}function Yn(n,A){const e=A.map(()=>0);let a=0;if(A.length===0)return{framed:e,total:a};Fe(n);const t=A.map(()=>Qa());let s=-1;const i=()=>{if(!(s<0)){a++;for(let r=0;r<A.length;r++)Mn(t[r],A[r].window)&&e[r]++,Sn(t[r])}};return xe(n,A[0].basis,!1,(r,o)=>{o!==s&&(i(),s=o);for(let c=0;c<A.length;c++)ma(t[c],r,A[c].basis)}),i(),{framed:e,total:a}}function xe(n,A,e,a){const t=new me,s=new y,i=new y,r=new aA;let o=0;const c=g=>{if(!g.visible||g!==n&&Rn(g))return;if(kA(g,"gaussianSplat")){t.copy(g.getBoundingBox()).applyMatrix4(g.matrixWorld);const d=o++;for(const h of[t.min.x,t.max.x])for(const u of[t.min.y,t.max.y])for(const C of[t.min.z,t.max.z])a(s.set(h,u,C),d)}const I=g;if(I.isLOD&&I.levels.length>0){const d=new Set(I.levels.map(h=>h.object));for(const h of I.levels)c(h.object);for(const h of g.children)d.has(h)||c(h);return}const l=g;if(l.isSprite&&l.material.visible){if(e&&!l.material.sizeAttenuation)throw new Error("Asset preview cannot deterministically frame a perspective Sprite with sizeAttenuation disabled.");const d=new y().setFromMatrixPosition(l.matrixWorld),h=new y().setFromMatrixScale(l.matrixWorld),u=Math.cos(l.material.rotation),C=Math.sin(l.material.rotation),E=o++;for(const p of[-l.center.x,1-l.center.x])for(const B of[-l.center.y,1-l.center.y]){const f=p*Math.abs(h.x),Q=B*Math.abs(h.y),m=u*f-C*Q,w=C*f+u*Q;a(d.clone().addScaledVector(A.right,m).addScaledVector(A.up,w),E)}}const b=l.isSprite?void 0:g.geometry;if(b){const d=b.getAttribute("position");if(d){const h=Wn(g,b,d.count),u=Vn(g,h.length),C=Math.ceil(h.length/u),E=g;if(E.isInstancedMesh){const p=new JA(E.geometry,E.material);for(let B=0;B<E.count;B++)E.getMatrixAt(B,r),E.morphTexture&&E.getMorphAt(B,p),h.forEach((f,Q)=>{p.getVertexPosition(f,i),i.applyMatrix4(r).applyMatrix4(E.matrixWorld),a(i,o+Math.floor(Q/u))}),o+=C}else{const p=g;h.forEach((B,f)=>{p.isMesh?p.getVertexPosition(B,i):Xn(g,b,B,i),i.applyMatrix4(g.matrixWorld),a(i,o+Math.floor(f/u))}),o+=C}}}for(const d of g.children)c(d)};c(n)}function Wn(n,A,e){const a=n.material;if(!a)return[];const t=A.index?.count??e,s=Math.max(0,A.drawRange.start),i=Math.min(t,Number.isFinite(A.drawRange.count)?s+A.drawRange.count:t),r=[];if(Array.isArray(a))for(const c of A.groups){const g=c.materialIndex??0;if(!a[g]?.visible)continue;const I=Math.max(s,c.start),l=Math.min(i,c.start+c.count);l>I&&r.push([I,l])}else a.visible&&i>s&&r.push([s,i]);const o=[];for(const[c,g]of r){const I=zn(n,g-c);for(let l=c;l<c+I;l++)o.push(A.index?A.index.getX(l):l)}return o}function Vn(n,A){return n.isMesh?3:n.isLineSegments?2:n.isLine?Math.max(A,1):1}function zn(n,A){return n.isMesh?A-A%3:n.isLineSegments?A-A%2:n.isLine?A>=2?A:0:A}function Xn(n,A,e,a){const t=A.getAttribute("position");a.fromBufferAttribute(t,e);const s=A.morphAttributes.position,i=n.morphTargetInfluences;if(!s||!i)return a;const r=a.clone(),o=new y,c=new y;for(let g=0;g<s.length;g++){const I=i[g]??0;I!==0&&(c.fromBufferAttribute(s[g],e),A.morphTargetsRelative||c.sub(r),o.addScaledVector(c,I))}return a.add(o)}function Zn(n,A,e){const{center:a,size:t,radius:s}=A;let i=t.x,r=t.y;const o=VA(n),{direction:c,up:g}=o;n==="right"?i=t.z:n==="top"&&(i=t.x,r=t.z);const I=wa(i/2,r/2,e);return ke(a,{direction:c,right:o.right,up:g},I,s*3+1,s*10+10)}function PA(n,A,e,a){const t=new Qt(35,A,.01,n.radius*20+20),s=rA.degToRad(t.fov/2),i=Math.atan(Math.tan(s)*A),r=VA("perspective"),o=e?.clone().normalize()??r.direction,c=Math.abs(o.y)>.999?new y(0,0,1):new y(0,1,0),g=e?c.clone().cross(o).normalize():r.right,I=e?o.clone().cross(g).normalize():r.up,l=n.size.clone().multiplyScalar(.5);let b=0;for(const d of[-1,1])for(const h of[-1,1])for(const u of[-1,1]){const C=new y(d*l.x,h*l.y,u*l.z),E=C.dot(o);b=Math.max(b,E+Math.abs(C.dot(g))*jA/Math.tan(i),E+Math.abs(C.dot(I))*jA/Math.tan(s))}return t.position.copy(n.center).addScaledVector(o,Math.max(a??b,.01)),t.lookAt(n.center),t.updateProjectionMatrix(),t.updateMatrixWorld(!0),t}function VA(n){const A=n==="front"?new y(0,0,1):n==="right"?new y(1,0,0):n==="top"?new y(0,1,0):new y(1,.72,1).normalize(),a=(n==="top"?new y(0,0,-1):new y(0,1,0)).clone().cross(A).normalize(),t=A.clone().cross(a).normalize();return{direction:A,right:a,up:t}}function Ge(n,A,e){return n==="perspective"?PA(A,e):Zn(n,A,e)}function et(n,A,e){return PA(n,A,e)}function Sa(n,A,e,a){const t=e.map(fe),s=Jn(n,t),i=xn(s.map(o=>Fn(o,a))),r=new Map;return e.forEach((o,c)=>{r.set(o,ke(kn(s[c],t[c]),t[c],i,A.radius*3+1,A.radius*10+10))}),r}function $n(n,A,e={}){const a=q(e.width),t=q(e.height),s=e.background??"neutral",i=wA(n);let r=null;try{const o=z(i,"perspective"),c=yA(i,o),g=DA(new SA({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}));r=g,g.setPixelRatio(1),g.outputColorSpace=L,g.toneMapping=RA,g.toneMappingExposure=1,g.setClearColor(cA,s==="transparent"?0:1),g.setSize(a,t,!1),YA(c,g);const I=Math.atan2(A[0],A[2]),l=a/t,b=Q=>new y(Math.sin(Q),.72,Math.cos(Q)).normalize(),d=[I,I+Math.PI,I-Math.PI/2,I+Math.PI/2],h=Sa(i,o,d,l),u=[{label:"front",camera:h.get(d[0])},{label:"back",camera:h.get(d[1])},{label:"left",camera:h.get(d[2])},{label:"right",camera:h.get(d[3])},{label:"quarter-left",camera:et(o,l,b(I-Math.PI/4))},{label:"quarter-right",camera:et(o,l,b(I+Math.PI/4))}],C=[],E=2,p=3,B=document.createElement("canvas");B.width=a*E,B.height=t*p;const f=B.getContext("2d");if(!f)throw new Error("Unable to create the source-review contact sheet.");return u.forEach(({label:Q,camera:m},w)=>{g.render(c,m),C.push({label:Q,base64:_(g.domElement),mimeType:"image/png"});const R=w%E*a,k=Math.floor(w/E)*t;f.drawImage(g.domElement,R,k,a,t);const G=Q==="quarter-left"?"3/4-L":Q==="quarter-right"?"3/4-R":Q.toUpperCase();tA(f,G,R,k,a,t)}),{width:a,height:t,shots:C,contactSheet:{width:a*E,height:t*p,base64:_(B),mimeType:"image/png"}}}finally{r&&WA(r),r?.dispose(),r?.forceContextLoss(),GA(i)}}function Ai(n,A,e,a,t){const s=Tn(n),i=Gn(n,s,A,e,a,t),r=e*3+1;return ke(s,A,i,r,r+e*4+1)}function tt(n,A){const e=new Map;n.traverse(i=>{const r=i;r.isBone&&i.name&&e.set(i.name,r)});const a=A.requiredBones??[],t=a.filter(i=>!e.has(i)),s=A.rigRequirementHint?` (${A.rigRequirementHint})`:"";if(a.length>0&&e.size===0)throw new Error(`Asset preview '--shots ${A.name}' requires a rigged GLB${s}, but this model has no skeleton at all. Required joints: ${a.join(", ")}.`);if(t.length>0)throw new Error(`Asset preview '--shots ${A.name}' requires joints this GLB's skeleton does not have${s}. Missing joint(s): ${t.join(", ")}.`);return e}function ei(n,A,e){const a=e.filter(Da);for(const t of e)if(ya(t)){const s=A.get(t.bone);if(!s)continue;t.axis==="x"?s.rotateX(t.radians):t.axis==="y"?s.rotateY(t.radians):s.rotateZ(t.radians)}else if(Ra(t)){const s=A.get(t.bone);if(!s)continue;t.axis==="x"?s.translateX(t.meters):t.axis==="y"?s.translateY(t.meters):s.translateZ(t.meters)}a.length!==0&&n.traverse(t=>{const s=t,i=s.morphTargetDictionary,r=s.morphTargetInfluences;if(!(!i||!r))for(const{morph:o,influence:c}of a){const g=i[o];g!==void 0&&(r[g]=c)}})}function ka(n){let A=null;return n.traverse(e=>{A||(A=Ua(e.userData.forward))}),A??[0,0,1]}function pe(n,A){const e=new uA;return e.rotation.y=ot(A),e.add(n),e.updateMatrixWorld(!0),e}function yA(n,A){const e=new Qs;e.add(n),e.add(new ms(16777215,3489874,1.8*Dn));const a=new NA(16777215,2.2);a.position.copy(A.center).addScaledVector(new y(1,1.5,1),A.radius*3),e.add(a);const t=new NA(12572671,.8);t.position.copy(A.center).addScaledVector(new y(-1,.5,-.7),A.radius*2),e.add(t);const s=new NA(16773596,.45);return s.position.copy(A.center).addScaledVector(new y(.3,-1,.4),A.radius*2),e.add(s),e}let $=null;function at(){const n=$;$=null,n&&(WA(n),n.dispose(),n.forceContextLoss())}function ti(){if($?.getContext().isContextLost()&&at(),!$){const n=DA(new SA({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}));$=n,n.domElement.addEventListener("webglcontextlost",()=>{$===n&&at()})}return $}function Fa(n,A={}){let e=!1;if(n.traverse(r=>{kA(r,"gaussianSplat")&&(e=!0)}),e)throw new Error("Gaussian-splat capture requires the async project-asset capture path so Spark can sort each view.");const a=q(A.width),t=q(A.height),s=A.background??"neutral",i=wA(n);try{const r=ka(n);A.pose&&si(i,A.pose);const o=pe(i,r),c=Te(r),g=z(o,"perspective"),I=yA(o,g),l=ti();if(l.setPixelRatio(1),l.outputColorSpace=L,l.toneMapping=RA,l.toneMappingExposure=1,l.setClearColor(cA,s==="transparent"?0:1),YA(I,l),A.camera)return ni(l,I,PA(g,a/t,st(A.camera),A.camera.distance),a,t,A.camera,c);const b=new Map;for(const h of mA)b.set(h,Ge(h,z(o,h),a/t));const d=PA(g,a/t,st({azimuthDegrees:30,elevationDegrees:-60}));return Ga(l,I,b,a,t,c,d)}finally{GA(i)}}function ai(n,A,e){const a=xa(A,e.yawDegrees);if(!a)return n;const t=document.createElement("canvas");t.width=n.width,t.height=n.height;const s=t.getContext("2d");if(!s)return n;s.drawImage(n,0,0);const i=rt(a.text,n.width,n.height),r=a.edge==="left"?0:n.width-i.width;return tA(s,a.text,r,n.height-i.height,n.width,n.height),t}function Te(n){const A=ot(n);return{forward:[n[0],n[1],n[2]],yawDegrees:Math.round(rA.radToDeg(A))}}function si(n,A){if(!Number.isFinite(A.timeSeconds)||A.timeSeconds<0)throw new Error(`Asset preview pose time must be a finite number of seconds >= 0, got ${A.timeSeconds}.`);const e=n.animations??[],a=e.find(s=>s.name===A.clip);if(!a){const s=e.map(i=>`'${i.name}'`).join(", ");throw new Error(`Asset preview pose clip '${A.clip}' not found on the subject. `+(s?`Its clips are: ${s}.`:"The subject carries no animation clips at all — clips live on the model root (GLB animations, or a builder module’s `root.animations`)."))}const t=new us(n);t.clipAction(a).play(),t.update(A.timeSeconds),n.updateMatrixWorld(!0)}function st(n){const A=rA.degToRad(n.azimuthDegrees),e=rA.degToRad(n.elevationDegrees);return new y(Math.sin(A)*Math.cos(e),Math.sin(e),Math.cos(A)*Math.cos(e)).normalize()}function ni(n,A,e,a,t,s,i){n.setSize(a,t,!1),n.render(A,e);const r={view:"perspective",base64:_(n.domElement),mimeType:"image/png"},o=document.createElement("canvas");o.width=a,o.height=t;const c=o.getContext("2d");if(!c)throw new Error("Unable to create the asset preview contact sheet.");c.drawImage(n.domElement,0,0,a,t);const g=`AZ ${Math.round(s.azimuthDegrees)} EL ${Math.round(s.elevationDegrees)}`+(s.distance===void 0?"":` D ${Math.round(s.distance)}`);return tA(c,g,0,0,a,t),{width:a,height:t,orientation:i,views:[r],contactSheet:{width:a,height:t,base64:_(o),mimeType:"image/png"}}}function xa(n,A){if(n==="perspective")return null;const e=rA.degToRad(A),a=VA(n).right.applyAxisAngle(new y(0,1,0),-e),t=[["X",new y(1,0,0)],["Y",new y(0,1,0)],["Z",new y(0,0,1)]];for(const[s,i]of t){const r=a.dot(i);if(r>.99)return{text:`+${s}>`,edge:"right"};if(r<-.99)return{text:`<+${s}`,edge:"left"}}return{text:`YAW ${A}`,edge:"left"}}function Ga(n,A,e,a,t,s,i){const r=[],o=i?[...mA,"below"]:[...mA],c=i?3:2,g=a*c,I=t*2,l=document.createElement("canvas");l.width=g,l.height=I;const b=l.getContext("2d");if(!b)throw new Error("Unable to create the asset preview contact sheet.");n.getClearAlpha()>0&&(b.fillStyle=`#${new K(cA).getHexString()}`,b.fillRect(0,0,g,I)),n.setSize(a,t,!1),o.forEach((h,u)=>{const C=h==="below"?i:e.get(h);if(!C)return;n.render(A,C),r.push({view:h,base64:_(h==="below"?n.domElement:ai(n.domElement,h,s)),mimeType:"image/png"});const E=u%c,p=Math.floor(u/c),B=E*a,f=p*t;b.drawImage(n.domElement,B,f,a,t);const Q=h==="perspective"?"3/4":h.toUpperCase();if(tA(b,Q,B,f,a,t),h==="below")return;const m=xa(h,s.yawDegrees);if(m){const w=rt(m.text,a,t),R=m.edge==="left"?B:B+a-w.width;tA(b,m.text,R,f+t-w.height,a,t)}});const d={width:g,height:I,base64:_(l),mimeType:"image/png"};return{width:a,height:t,orientation:s,views:r,contactSheet:d}}function yi(n,A,e={}){let a=!1;if(n.traverse(c=>{kA(c,"gaussianSplat")&&(a=!0)}),a)throw new Error("Gaussian-splat capture requires the async project-asset capture path so Spark can sort each view.");const t=q(e.width),s=q(e.height),i=e.background??"neutral",r=[];let o=null;try{A.traverse(I=>{I.visible&&pa(I)&&(I.visible=!1,r.push(I))});const c=new Map;for(const I of mA){const l=Ge(I,z(n,I),t/s);l.layers.enableAll(),l.layers.disable(Re),c.set(I,l)}const g=DA(new SA({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}));return o=g,g.setPixelRatio(1),g.outputColorSpace=L,g.toneMapping=RA,g.toneMappingExposure=1,g.setClearColor(cA,i==="transparent"?0:1),Ga(g,A,c,t,s,Te([0,0,1]))}finally{for(const c of r)c.visible=!0;o?.dispose(),o?.forceContextLoss()}}function ii(n,A,e){const a=n.pose===void 0?"":` under pose '${n.pose}'`,t=n.view==="bone-zoom"?`bone-zoom on ${n.bones.join(", ")} at yaw ${(n.yaw??0).toFixed(3)}`:`turntable at yaw ${n.yaw.toFixed(3)}`,s=n.view==="bone-zoom"?"Zoom anchors are read from the REST skeleton for every shot, so a pose that MOVES the anchor leaves the crop behind where the joint used to be: re-aim the shot (another joint or yaw), widen its spanFraction, or drop it.":"Check the shot yaw and the pose it renders under.";return{label:n.label,reason:"empty-frame",...n.view==="bone-zoom"?{bones:[...n.bones]}:{},...n.pose===void 0?{}:{pose:n.pose},message:`Asset preview '--shots ${A}' shot ${JSON.stringify(n.label)} (${t}${a}) framed NONE of the subject's ${e} rendered faces: the image is background only and proves nothing about the asset. ${s}`}}function oi(n,A,e){const a=[],t=()=>{for(const s of a)GA(s);a.length=0};try{const s=wA(n);a.push(s);const i=tt(s,A),r=ka(n),o=pe(s,r),c=z(o,"perspective"),g=yA(o,c),I={subject:o,scene:g,framing:c},l=new Map;for(const B of A.shots){if(B.pose===void 0||l.has(B.pose))continue;const f=A.poses?.[B.pose]??[],Q=wA(n);a.push(Q);const m=tt(Q,A);ei(Q,m,f),Q.updateMatrixWorld(!0);const w=pe(Q,r),R=z(w,"perspective");l.set(B.pose,{subject:w,scene:yA(w,R),framing:R})}const b=B=>B===void 0?I:l.get(B),d=B=>new y().setFromMatrixPosition(i.get(B).matrixWorld),h=new Map;for(const B of new Set(A.shots.filter(f=>f.view==="turntable").map(f=>f.pose??void 0))){const f=b(B),Q=[...new Set(A.shots.filter(m=>m.view==="turntable"&&(m.pose??void 0)===B).map(m=>m.yaw))];h.set(B,Sa(f.subject,f.framing,Q,e))}const u=A.shots.map(B=>{const f=b(B.pose);if(B.view==="turntable")return{label:B.label,camera:h.get(B.pose??void 0).get(B.yaw),scene:f.scene,stage:f,basis:fe(B.yaw)};const Q=B.bones.find(w=>!i.has(w));if(Q!==void 0)throw new Error(`Asset preview '--shots ${A.name}' shot ${JSON.stringify(B.label)} zooms on a joint this GLB's skeleton does not have: ${Q}. List it in the definition's requiredBones or fix the rig.`);const m=fe(B.yaw??0);return{label:B.label,camera:Ai(B.bones.map(d),m,c.radius,B.spanFraction,e),scene:f.scene,stage:f,basis:m}}),C=[],E=new Map,p=new Map;u.forEach(({stage:B},f)=>{const Q=p.get(B);Q?Q.push(f):p.set(B,[f])});for(const[B,f]of p){const{framed:Q,total:m}=Yn(B.subject,f.map(w=>{const R=u[w];return{basis:R.basis,window:Ln(R.camera,R.basis)}}));f.forEach((w,R)=>{if(Q[R]!==0)return;const k=ii(A.shots[w],A.name,m);E.set(w,k),C.push(k)})}return{shots:u.map(({label:B,camera:f,scene:Q},m)=>{const w=E.get(m);return{label:B,camera:f,scene:Q,...w?{warning:w}:{}}}),warnings:C,dispose:t}}catch(s){throw t(),s}}function Ta(n,A,e={}){const a=q(e.width),t=q(e.height),s=e.background??"neutral",i=oi(n,A,a/t);let r=null;try{const o=DA(new SA({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}));r=o,o.setPixelRatio(1),o.outputColorSpace=L,o.toneMapping=RA,o.toneMappingExposure=1,o.setClearColor(cA,s==="transparent"?0:1),o.setSize(a,t,!1);for(const C of i.shots)YA(C.scene,o);const c=[],g=2,I=Math.ceil(i.shots.length/g),l=a*g,b=t*I,d=document.createElement("canvas");d.width=l,d.height=b;const h=d.getContext("2d");if(!h)throw new Error("Unable to create the asset preview contact sheet.");i.shots.forEach(({label:C,camera:E,scene:p,warning:B},f)=>{o.render(p,E),c.push({label:C,base64:_(o.domElement),mimeType:"image/png"});const Q=f%g,m=Math.floor(f/g),w=Q*a,R=m*t;h.drawImage(o.domElement,w,R,a,t),tA(h,B?`${C.toUpperCase()} - EMPTY`:C.toUpperCase(),w,R,a,t,B?"warning":"normal")});const u={width:l,height:b,base64:_(d),mimeType:"image/png"};return{width:a,height:t,shots:c,warnings:i.warnings,contactSheet:u}}finally{r&&WA(r),r?.dispose(),r?.forceContextLoss(),i.dispose()}}function ri(n){const A=n.replace(/^\/?public(\/|$)/,"/");if(!A.startsWith("/")||A.startsWith("//")||A.includes("\\")||A.includes("?")||A.includes("#"))throw new Error("Model asset paths must be the served web path (project-root absolute, with public/ stripped): e.g. /models/generated/hero.glb");let e;try{e=decodeURIComponent(A)}catch{throw new Error("Asset Editor model path contains invalid URL encoding.")}if(e.split("/").some(s=>s==="."||s===".."))throw new Error("Asset Editor model paths cannot traverse outside the project root.");const a=globalThis.location?.origin??"http://localhost",t=new URL(A,a);if(t.origin!==a||!t.pathname.toLowerCase().match(/\.(?:glb|gltf|spz)$/))throw new Error("Asset Editor loads bounded, same-origin project .glb, .gltf, or .spz files only.");return t}async function La(n,A,e=AA){const a=await fetch(n,{signal:A});if(!a.ok)throw new Error(`Unable to load project model (${a.status} ${a.statusText}).`);const t=Number(a.headers.get("content-length"));if(Number.isFinite(t)&&t>e)throw new Error(`Asset Editor project models must be ${AA/1024/1024} MiB or less.`);if(!a.body){const g=await a.arrayBuffer();if(g.byteLength>e)throw new Error(`Asset Editor project models must be ${AA/1024/1024} MiB or less.`);return g}const s=a.body.getReader(),i=[];let r=0;try{for(;;){const{done:g,value:I}=await s.read();if(g)break;if(r+=I.byteLength,r>e)throw await s.cancel(),new Error(`Asset Editor project models must be ${AA/1024/1024} MiB or less.`);i.push(I)}}finally{s.releaseLock()}const o=new Uint8Array(r);let c=0;for(const g of i)o.set(g,c),c+=g.byteLength;return o.buffer}function nt(n,A,e){return new Promise((a,t)=>{let s=!1;const i=o=>s?!1:(s=!0,e.removeEventListener("abort",r),o(),!0),r=()=>i(()=>t(e.reason));if(e.addEventListener("abort",r,{once:!0}),e.aborted){r();return}xA.parse(n,new URL(".",A).href,o=>{o.scene.animations=[...o.animations],i(()=>a(o.scene))||gA(o.scene)},o=>i(()=>t(o)))})}function ci(n,A){if(n.includes("\\")||n.includes("?")||n.includes("#"))throw new Error("Asset Editor .gltf dependencies must be plain same-origin project paths.");const e=new URL(n,A);if(e.origin!==A.origin)throw new Error("Asset Editor .gltf dependencies must stay on the project origin.");return e}function gi(n,A){if(typeof n.mimeType=="string")return n.mimeType;const e=A.pathname.split(".").pop()?.toLowerCase();return e==="png"?"image/png":e==="jpg"||e==="jpeg"?"image/jpeg":e==="webp"?"image/webp":"application/octet-stream"}async function Ii(n,A,e){let a;try{a=JSON.parse(new TextDecoder().decode(n))}catch{throw new Error("Asset Editor could not parse the project .gltf JSON document.")}const t=[...Array.isArray(a.buffers)?a.buffers:[],...Array.isArray(a.images)?a.images:[]];let s=n.byteLength;for(const i of t){if(typeof i.uri!="string"||i.uri.startsWith("data:"))continue;const r=ci(i.uri,A),o=await La(r,e,AA-s);s+=o.byteLength;const c=new Uint8Array(o);let g="";for(let I=0;I<c.length;I+=32768)g+=String.fromCharCode(...c.subarray(I,I+32768));i.uri=`data:${gi(i,r)};base64,${btoa(g)}`}return JSON.stringify(a)}function Ma(n,A){let e;try{const a=atob(n);e=new Uint8Array(a.length);for(let t=0;t<a.length;t++)e[t]=a.charCodeAt(t)}catch{throw new Error(`${A} is not valid base64.`)}if(e.byteLength===0||e.byteLength>AA)throw new Error(`${A} must be non-empty and at most ${AA/1024/1024} MiB.`);return new Promise((a,t)=>{xA.parse(e.buffer,"",s=>{s.scene.animations=[...s.animations],a(s.scene)},s=>t(s instanceof Error?s:new Error(String(s))))})}async function Di(n,A={}){const e=await Ma(n,"Asset preview GLB bytes");try{return Fa(e,A)}finally{gA(e)}}async function Ri(n,A,e={}){const a=await Ma(n,"Asset preview GLB bytes");try{return Ta(a,A,e)}finally{gA(a)}}async function li(n,A){const e=ri(n),a=new AbortController,t=()=>a.abort(A?.reason);A?.aborted?t():A?.addEventListener("abort",t,{once:!0});const s=globalThis.setTimeout(()=>a.abort(new Error("Asset Editor project model load timed out after 25 seconds.")),Hn);try{const i=await La(e,a.signal);if(a.signal.throwIfAborted(),e.pathname.toLowerCase().endsWith(".spz"))return{root:await wn(n,new Uint8Array(i)),sourceBytes:null};if(e.pathname.toLowerCase().endsWith(".glb")){const o=new Uint8Array(i.slice(0));return{root:await nt(i,e,a.signal),sourceBytes:o}}const r=await Ii(i,e,a.signal);return{root:await nt(r,e,a.signal),sourceBytes:null}}finally{globalThis.clearTimeout(s),A?.removeEventListener("abort",t)}}async function Le(n,A){return(await li(n,A)).root}function gA(n){kA(n,"gaussianSplat")&&n.dispose(),GA(n),n.traverse(A=>{const e=A;e.isInstancedMesh&&e.morphTexture?.dispose();const a=A;if(a.geometry?.dispose(),!a.material)return;const t=Array.isArray(a.material)?a.material:[a.material];for(const s of t){for(const i of Object.values(s))i instanceof Ie&&i.dispose();s.dispose()}})}async function Si(n,A={}){const e=await Le(n);try{return kA(e,"gaussianSplat")?await bi(e,A):Fa(e,A)}finally{gA(e)}}async function ki(n,A,e={}){const a=await Le(n);try{return $n(a,A,e)}finally{gA(a)}}async function bi(n,A){const e=q(A.width),a=q(A.height),t=A.background??"neutral",s=z(n,"perspective"),i=yA(n,s),r=DA(new SA({antialias:!1,alpha:!0,preserveDrawingBuffer:!0}));let o=null;try{const c=await it(()=>import("./spark.module-CTTm62aa.js"),__vite__mapDeps([0,1,2]));o=new c.SparkRenderer({renderer:r,autoUpdate:!1,enableLod:!1}),i.add(o),r.setPixelRatio(1),r.outputColorSpace=L,r.toneMapping=RA,r.toneMappingExposure=1,r.setClearColor(cA,t==="transparent"?0:1),r.setSize(e,a,!1),YA(i,r);const g=[],I=document.createElement("canvas");I.width=e*2,I.height=a*2;const l=I.getContext("2d");if(!l)throw new Error("Unable to create the asset preview contact sheet.");for(const[b,d]of mA.entries()){const h=Ge(d,z(n,d),e/a);await o.update({scene:i,camera:h}),r.render(i,h),g.push({view:d,base64:_(r.domElement),mimeType:"image/png"});const u=b%2*e,C=Math.floor(b/2)*a;l.drawImage(r.domElement,u,C,e,a),tA(l,d==="perspective"?"3/4":d.toUpperCase(),u,C,e,a)}return{width:e,height:a,orientation:Te([0,0,1]),views:g,contactSheet:{width:e*2,height:a*2,base64:_(I),mimeType:"image/png"}}}finally{o?.removeFromParent(),n.removeFromParent(),o?.dispose(),WA(r),r.dispose(),r.forceContextLoss()}}async function Fi(n,A,e={}){const a=await Le(n);try{return Ta(a,A,e)}finally{gA(a)}}export{Si as A,Fa as B,wi as C,et as D,Re as E,pi as F,fi as G,Ci as H,li as I,mi as J,mn as K,Dn as S,YA as a,xA as b,Rn as c,ui as d,Le as e,gA as f,Ei as g,kA as h,pa as i,q as j,_ as k,wn as l,wA as m,z as n,GA as o,Ma as p,Qi as q,ka as r,Oe as s,Ri as t,Fi as u,Ta as v,ki as w,$n as x,yi as y,Di as z};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as E,d as f,S,P as B,b as N,s as D,c as C,o as H,e as W}from"./worker-C7WcdPfy.js";import{s as j}from"./session-rpZf0raD.js";async function Y(t,a,s,r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`${a}: invalid file size ${r}`);const o=`${a}.volter-stage-${crypto.randomUUID()}`,c=s.getReader();let l,u=!1;try{l=t.open(o,"w"),t.truncate(o,r);let y=0;for(;;){const{done:m,value:d}=await c.read();if(m)break;if(y+d.byteLength>r)throw new Error(`${a}: file grew during import`);for(let n=0;n<d.byteLength;){const b=Math.min(1048576,d.byteLength-n),h=t.write(l,d,n,b,y);if(h<=0||h>b)throw new Error(`${a}: invalid file write (${h})`);n+=h,y+=h}}if(y!==r)throw new Error(`${a}: expected ${r} bytes, received ${y}`);t.close(l),l=void 0,t.rename(o,a),u=!0}finally{if(u||await c.cancel().catch(()=>{}),c.releaseLock(),l&&t.close(l),!u)try{t.unlink(o)}catch{}}}async function U(t){const a=await f(t,"fetch glue",()=>fetch(t));if(!a.ok)throw new Error(`${t}: HTTP ${a.status}`);const s=await f(t,"read glue body",()=>a.text()),r={exports:{}},o=await f(t,"compile glue",()=>new Function("module","exports","define",`${s}
|
|
2
|
+
return typeof createBlenderModule === 'function' ? createBlenderModule : module.exports;`)),c=await f(t,"evaluate glue",()=>o(r,r.exports,void 0));if(typeof c!="function")throw new Error(`${t}: blender_browser.js did not produce a module factory`);return c}const V=new TextEncoder;function J(t,a){let s="";for(const r of a.split("/").filter(Boolean))t.FS_createPath(s||"/",r,!0,!0),s+=`/${r}`}function q(t){const a=t.FS;return{readFile:async s=>a.readFile(s),writeFile:(s,r)=>(a.writeFile(s,r),Promise.resolve()),writeFileStream:(s,r,o)=>Y(a,s,r,o),mkdirTree:async s=>a.mkdirTree(s),readdir:async s=>a.readdir(s),stat:async s=>{let r;try{r=a.stat(s)}catch{return null}const o=r.mtime;return{size:r.size,mode:r.mode??0,mtimeMs:typeof o=="number"?o:o?.getTime()??0}},unlink:async s=>a.unlink(s)}}const A="volter-blender-artifacts";function G(t){typeof caches>"u"||caches.delete(A).then(a=>{a&&t("Released Blender's artifact cache in this origin: this editor's server runs on this machine, so the browser's HTTP cache keeps the engine instead.")},a=>t(`Blender's artifact cache in this origin could not be released (${a instanceof Error?a.message:String(a)}); Chrome may still evict it.`))}async function v(t,a,s,r){const o=i=>i.ok&&i.body?new Response(W(i.body,s),{status:i.status,headers:i.headers}):i,c=E(t),l=()=>f(c,"fetch artifact",()=>fetch(c));if(!a||typeof caches>"u")return o(await l());const u=`${c}?sha256=${a}`,y=i=>i instanceof Error?i.message:String(i),m=await f(c,"open artifact cache",()=>caches.open(A)).then(async i=>({cache:i,hit:await f(c,"read artifact cache",()=>i.match(u))})).catch(i=>(r(`Blender's artifact cache is unavailable (${y(i)}); ${t} is fetched from the editor instead.`),null));if(!m)return o(await l());if(m.hit)return o(m.hit);const{cache:d}=m,n=o(await l());if(!n.ok)return n;const b=await f(c,"read artifact body for cache",()=>n.blob()),h=new Response(b,{headers:{"content-type":n.headers.get("content-type")??"application/octet-stream"}});try{await f(c,"prune previous artifact cache entries",async()=>{for(const i of await d.keys())i.url.startsWith(`${c}?sha256=`)&&i.url!==u&&await d.delete(i)}),await f(c,"write artifact cache",()=>d.put(u,h.clone()))}catch(i){r(`Blender's artifact cache could not keep ${t} (${y(i)}); the next open fetches it again.`)}return h}async function X(t,a){if(!self.crossOriginIsolated)throw new Error("Headless Blender needs SharedArrayBuffer, so the editor page has to be cross-origin isolated (Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy on every response). This worker reports crossOriginIsolated=false.");const s=E("blender_browser.js"),r=e=>t.log("log",e),o=a.inTab===!0;o||G(r);const c=o?a.digests??{}:{},l=async e=>{await t.ask({checkpoint:e})},u=e=>v(e,c[e],()=>l(`artifact/${e}`),r),[y,m]=await Promise.all([U(s),u("blender_browser.data").then(async e=>{const w=E("blender_browser.data");if(!e.ok)throw new Error(`${w}: HTTP ${e.status}`);return f(w,"read data package body",()=>e.arrayBuffer())})]);await l("runtime-package-ready");let d=null;const n=performance.now();let b=null;const h=(e,w)=>{w.startsWith("@@VOLTER-READY ")&&(b=w.slice(15)),t.log(C(w),w)},i=WebAssembly.Memory;let $=null;WebAssembly.Memory=function(e){const w=new i(e);return $??=w,w};const T=()=>$?new Uint8Array($.buffer):p.HEAPU8,p=await f(s,"initialize glue runtime",()=>y({arguments:["--background","--factory-startup","--python",N],locateFile:e=>E(e),getPreloadedPackage:()=>m,instantiateWasm:(e,w)=>((async()=>{const g=await u("blender_browser.wasm"),R=E("blender_browser.wasm");if(!g.ok)throw new Error(`${R}: HTTP ${g.status}`);const{instance:x,module:L}=await f(R,"read and instantiate Wasm stream",()=>WebAssembly.instantiateStreaming(g,e));await l("wasm-instantiated"),w(x,L)})().catch(g=>{d=g}),{}),mainScriptUrlOrBlob:s,print:e=>h("log",e),printErr:e=>h("error",e),preRun:[e=>{e.ENV??={},Object.assign(e.ENV,{BLENDER_SYSTEM_RESOURCES:"/bw",BLENDER_SYSTEM_PYTHON:"/bw/python",BLENDER_SYSTEM_SCRIPTS:"/bw/scripts",BLENDER_SYSTEM_DATAFILES:"/bw/datafiles",VOLTER_SESSION_ROOT:S,HOME:"/root",TMPDIR:"/tmp"});for(const w of["/tmp","/root","/work",S,...B,t.project])J(e,w);e.FS_createDataFile(S,"session.py",V.encode(j),!0,!0,!0)}]}).finally(()=>{WebAssembly.Memory=i}));for(await l("runtime-initialized");b===null;){if(d)throw d instanceof Error?d:new Error(String(d));await D(5)}const F=performance.now()-n,I=JSON.parse(b);let O=null;if(typeof p.releasePreloadedFileData=="function"){const e=p.releasePreloadedFileData();O=e.bytes,t.log("log",`blender: released the preloaded ${(e.bytes/1048576).toFixed(0)} MB payload (${e.files} files); WasmFS already holds it`)}else t.log("error","blender: this bundle has no releasePreloadedFileData, so the ~55 MB packed .data payload stays resident beside the copy WasmFS made of it — relink with the recipe's --post-js (recipe/release-preloaded-file-data.js).");const k=p.FS;let P="";for(const e of`${t.project}`.split("/").filter(Boolean)){P+=`/${e}`;try{k.chmod(P,511)}catch{}}for(const e of["/work","/tmp","/root",S,...B])try{k.chmod(e,511)}catch{}const _=q(p);k.chmod("/bw/datafiles",493),await l("python-ready"),await z(_,c["essentials.bin"],l,r);const{request:M}=H(_,t);return{skew:"emscripten",banner:I,files:_,request:M,readArena:async()=>{const e=p._blender_web_export_buffer();return e===0?T():T().subarray(e,e+p._blender_web_export_buffer_size())},bootMs:F,memoryBytes:()=>T().length,releasedPayloadBytes:O}}async function z(t,a,s,r){const o=E("essentials.json"),c=E("essentials.bin"),[l,u]=await Promise.all([f(o,"fetch Essentials index",()=>fetch(o)),v("essentials.bin",a,()=>s("artifact/essentials.bin"),r)]);if(!l.ok||!u.ok)throw new Error(`Blender Essentials assets are missing (${o}: HTTP ${l.status}; ${c}: HTTP ${u.status})`);const y=await f(o,"decode Essentials index JSON",()=>l.json()),m=await f(c,"read Essentials payload body",()=>u.arrayBuffer()),d=Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",m)),n=>n.toString(16).padStart(2,"0")).join("");if(m.byteLength!==y.bytes||d!==y.sha256)throw new Error("Blender Essentials payload does not match its source manifest");for(const n of y.files){if(await s("essentials-file"),!n.path||n.path.includes("\\")||n.path.split("/").some(h=>!h||h==="."||h==="..")||!Number.isInteger(n.offset)||!Number.isInteger(n.bytes)||n.offset<0||n.bytes<0||n.offset+n.bytes>m.byteLength)throw new Error(`Invalid Blender Essentials file: ${n.path}`);const b=`/bw/datafiles/assets/${n.path}`;await t.mkdirTree(b.slice(0,b.lastIndexOf("/"))),await t.writeFile(b,new Uint8Array(m,n.offset,n.bytes))}}export{X as startEmscriptenBlenderEngine};
|