@vincentt-xr/sdk 2.0.0-alpha.8 → 2.0.0-alpha.9

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.
Files changed (517) hide show
  1. package/GROUNDING.md +4643 -170
  2. package/README.md +1 -0
  3. package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
  4. package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
  5. package/dist/DebuggerUI-7ngnJsBe.js +275 -0
  6. package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
  7. package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
  8. package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
  9. package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
  10. package/dist/FaceSurface-DmP9AEeC.js +27 -0
  11. package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
  12. package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
  13. package/dist/SkeletonUtils-C2r90MtN.js +21 -0
  14. package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
  15. package/dist/TextLabel-XE0rQSDn.cjs +2 -0
  16. package/dist/TextLabel-c9BCucOI.js +961 -0
  17. package/dist/assets/gltfLoader.d.ts +16 -0
  18. package/dist/assets/loaders.d.ts +16 -1
  19. package/dist/body-pose/index.d.ts +521 -0
  20. package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
  21. package/dist/body-trigger/frame.d.ts +88 -0
  22. package/dist/body-trigger/index.d.ts +6 -0
  23. package/dist/body-trigger/moves.d.ts +235 -0
  24. package/dist/body-trigger/trigger.d.ts +75 -0
  25. package/dist/calibration/calibration.d.ts +11 -6
  26. package/dist/canonicalFace-BHwyCx1c.js +9 -0
  27. package/dist/canonicalFace-C83I225R.cjs +1 -0
  28. package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
  29. package/dist/components/BodyInstruction/index.d.ts +69 -0
  30. package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
  31. package/dist/components/BodyTracker/index.d.ts +10 -2
  32. package/dist/components/BodyTrigger/index.d.ts +49 -0
  33. package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
  34. package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
  35. package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
  36. package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
  37. package/dist/components/FaceAtlas/constants.d.ts +8 -0
  38. package/dist/components/FaceAtlas/index.d.ts +7 -0
  39. package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
  40. package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
  41. package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
  42. package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
  43. package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
  44. package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
  45. package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
  46. package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
  47. package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
  48. package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
  49. package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
  50. package/dist/components/FaceCharacter/index.d.ts +18 -0
  51. package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
  52. package/dist/components/FaceInset/FaceInset.d.ts +68 -0
  53. package/dist/components/FaceInset/frame.d.ts +94 -0
  54. package/dist/components/FaceInset/index.d.ts +6 -0
  55. package/dist/components/FaceInset/material.d.ts +40 -0
  56. package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
  57. package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
  58. package/dist/components/FaceInstruction/index.d.ts +56 -0
  59. package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
  60. package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
  61. package/dist/components/FaceLiquify/debug.d.ts +37 -0
  62. package/dist/components/FaceLiquify/frame.d.ts +55 -0
  63. package/dist/components/FaceLiquify/index.d.ts +10 -0
  64. package/dist/components/FaceLiquify/material.d.ts +39 -0
  65. package/dist/components/FaceLiquify/pass.d.ts +49 -0
  66. package/dist/components/FaceLiquify/presence.d.ts +25 -0
  67. package/dist/components/FaceLiquify/presets.d.ts +82 -0
  68. package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
  69. package/dist/components/FaceLiquify/target.d.ts +85 -0
  70. package/dist/components/FaceLiquify/warp.d.ts +72 -0
  71. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +5 -3
  72. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
  73. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +9 -0
  74. package/dist/components/FaceMesh/index.d.ts +1 -1
  75. package/dist/components/FaceRetouch/Background.d.ts +3 -1
  76. package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
  77. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  78. package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
  79. package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
  80. package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
  81. package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
  82. package/dist/components/FaceSwap/index.d.ts +13 -0
  83. package/dist/components/FaceSwap/settings.d.ts +300 -0
  84. package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
  85. package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
  86. package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
  87. package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
  88. package/dist/components/FaceWarp3D/index.d.ts +2 -3
  89. package/dist/components/Faceless/Faceless.d.ts +51 -0
  90. package/dist/components/Faceless/index.d.ts +2 -0
  91. package/dist/components/HairLock/HairLock.d.ts +39 -0
  92. package/dist/components/HairLock/index.d.ts +2 -0
  93. package/dist/components/HairLock/lockGeometry.d.ts +15 -0
  94. package/dist/components/HandCutout/index.d.ts +35 -0
  95. package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
  96. package/dist/components/HandInstruction/index.d.ts +74 -0
  97. package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
  98. package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
  99. package/dist/components/HandRig/HandAttachment.d.ts +34 -0
  100. package/dist/components/HandRig/HandOccluder.d.ts +55 -0
  101. package/dist/components/HandRig/HandTattoo.d.ts +61 -0
  102. package/dist/components/HandRig/WristAttachment.d.ts +34 -0
  103. package/dist/components/HandRig/index.d.ts +101 -0
  104. package/dist/components/HandRig/useArmMask.d.ts +29 -0
  105. package/dist/components/HandRig/wristSolve.d.ts +69 -0
  106. package/dist/components/HandTouch/HandTouch.d.ts +62 -0
  107. package/dist/components/HandTouch/Touchable.d.ts +36 -0
  108. package/dist/components/HandTouch/index.d.ts +2 -0
  109. package/dist/components/HeadBinding/index.d.ts +14 -0
  110. package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
  111. package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
  112. package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
  113. package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
  114. package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
  115. package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
  116. package/dist/components/HeadOccluder/index.d.ts +57 -3
  117. package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
  118. package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
  119. package/dist/components/Instruction/HintStage.d.ts +29 -0
  120. package/dist/components/Instruction/InstructionCue.d.ts +126 -0
  121. package/dist/components/Instruction/gestureHold.d.ts +20 -0
  122. package/dist/components/Instruction/ghost.d.ts +129 -0
  123. package/dist/components/Instruction/hintBlend.d.ts +19 -0
  124. package/dist/components/Instruction/hintLook.d.ts +81 -0
  125. package/dist/components/Instruction/hintLoop.d.ts +36 -0
  126. package/dist/components/Instruction/index.d.ts +41 -0
  127. package/dist/components/Instruction/useGhostModel.d.ts +33 -0
  128. package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
  129. package/dist/components/LipEffect/LipEffect.d.ts +22 -2
  130. package/dist/components/LipEffect/LipEffectMaterial.d.ts +62 -10
  131. package/dist/components/LipEffect/LipEffects.d.ts +5 -2
  132. package/dist/components/LipEffect/defaults.d.ts +21 -2
  133. package/dist/components/LipEffect/index.d.ts +1 -1
  134. package/dist/components/LipEffect/lipShading.d.ts +73 -0
  135. package/dist/components/LipEffect/settings.d.ts +117 -13
  136. package/dist/components/LipEffect/shader.d.ts +39 -0
  137. package/dist/components/LipEffect/types.d.ts +82 -10
  138. package/dist/components/LipEffect/useLipDesignTextures.d.ts +6 -0
  139. package/dist/components/LipEffect/uvGuide.d.ts +31 -16
  140. package/dist/components/Makeup/Blush.d.ts +18 -0
  141. package/dist/components/Makeup/Brows.d.ts +20 -0
  142. package/dist/components/Makeup/Contour.d.ts +17 -0
  143. package/dist/components/Makeup/Eyeliner.d.ts +20 -0
  144. package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
  145. package/dist/components/Makeup/Highlighter.d.ts +18 -0
  146. package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
  147. package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
  148. package/dist/components/Makeup/constants.d.ts +44 -0
  149. package/dist/components/Makeup/design.d.ts +106 -0
  150. package/dist/components/Makeup/designSamples.d.ts +42 -0
  151. package/dist/components/Makeup/eyes.d.ts +114 -0
  152. package/dist/components/Makeup/fields.d.ts +10 -0
  153. package/dist/components/Makeup/geometry.d.ts +106 -0
  154. package/dist/components/Makeup/index.d.ts +26 -0
  155. package/dist/components/Makeup/looks.d.ts +28 -0
  156. package/dist/components/Makeup/material.d.ts +239 -0
  157. package/dist/components/Makeup/settings.d.ts +54 -0
  158. package/dist/components/Makeup/shades.d.ts +143 -0
  159. package/dist/components/Makeup/shapes.d.ts +27 -0
  160. package/dist/components/Makeup/skinTone.d.ts +135 -0
  161. package/dist/components/Makeup/types.d.ts +110 -0
  162. package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
  163. package/dist/components/Necklace/Necklace.d.ts +44 -0
  164. package/dist/components/Necklace/index.d.ts +1 -0
  165. package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
  166. package/dist/components/ParticleEmitter/index.d.ts +1 -0
  167. package/dist/components/ShoulderOccluder/index.d.ts +43 -0
  168. package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
  169. package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
  170. package/dist/components/SpringSwing/index.d.ts +1 -0
  171. package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
  172. package/dist/components/index.d.ts +8 -0
  173. package/dist/config/index.d.ts +0 -1
  174. package/dist/context-DTxSQvp4.js +13 -0
  175. package/dist/context-hA0Rb2Xa.cjs +1 -0
  176. package/dist/contexts-BH7PdKFS.cjs +1 -0
  177. package/dist/contexts-jak8-tND.js +667 -0
  178. package/dist/coordinates/index.d.ts +2 -0
  179. package/dist/coordinates/side.d.ts +40 -0
  180. package/dist/debug-ui/default-setting.cjs +2 -2
  181. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  182. package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
  183. package/dist/debug-ui/index.d.ts +4 -3
  184. package/dist/debug-ui/media-source/index.d.ts +1 -1
  185. package/dist/debug-ui/media-source/session.d.ts +30 -2
  186. package/dist/debug-ui/media-source.cjs +1 -1
  187. package/dist/debug-ui/media-source.js +1 -1
  188. package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
  189. package/dist/debug-ui/product-hotspots/index.d.ts +3 -2
  190. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
  191. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
  192. package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
  193. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
  194. package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
  195. package/dist/debug-ui/settings-panel/index.d.ts +6 -1
  196. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  197. package/dist/debug-ui/xr-diagnostics/index.d.ts +3 -2
  198. package/dist/debug-ui.cjs +3 -3
  199. package/dist/debug-ui.js +2250 -2472
  200. package/dist/entries/all.d.ts +3 -1
  201. package/dist/entries/core.d.ts +3 -2
  202. package/dist/entries/face-effects.d.ts +114 -8
  203. package/dist/entries/instructions.d.ts +48 -0
  204. package/dist/entries/internal.d.ts +2 -1
  205. package/dist/entries/low-level.d.ts +28 -1
  206. package/dist/entries/particles.d.ts +11 -0
  207. package/dist/entries/tracking.d.ts +37 -2
  208. package/dist/face-atlas/attributes.d.ts +30 -0
  209. package/dist/face-atlas/eyes.d.ts +272 -0
  210. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  211. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  212. package/dist/face-atlas/glsl/common.d.ts +55 -0
  213. package/dist/face-atlas/glsl/design.d.ts +49 -0
  214. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  215. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  216. package/dist/face-atlas/glsl/format.d.ts +4 -0
  217. package/dist/face-atlas/glsl/index.d.ts +59 -0
  218. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  219. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  220. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  221. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  222. package/dist/face-atlas/guide.d.ts +51 -0
  223. package/dist/face-atlas/index.d.ts +25 -0
  224. package/dist/face-atlas/lead.d.ts +117 -0
  225. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  226. package/dist/face-atlas/masks.d.ts +53 -0
  227. package/dist/face-atlas/obj.d.ts +69 -0
  228. package/dist/face-atlas/polylines.d.ts +63 -0
  229. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  230. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  231. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  232. package/dist/face-atlas/probe/constants.d.ts +137 -0
  233. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  234. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  235. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  236. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  237. package/dist/face-atlas/probe/stats.d.ts +143 -0
  238. package/dist/face-atlas/probe/targets.d.ts +70 -0
  239. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  240. package/dist/face-atlas/quality.d.ts +28 -0
  241. package/dist/face-atlas/regions.d.ts +31 -0
  242. package/dist/face-atlas/registry.d.ts +252 -0
  243. package/dist/face-atlas/renderState.d.ts +86 -0
  244. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  245. package/dist/face-atlas/shading.d.ts +406 -0
  246. package/dist/face-atlas/shapes.d.ts +86 -0
  247. package/dist/face-atlas/sides.d.ts +41 -0
  248. package/dist/face-atlas/skinMask.d.ts +35 -0
  249. package/dist/face-atlas/surface.d.ts +155 -0
  250. package/dist/face-atlas/topology.d.ts +44 -0
  251. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  252. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  253. package/dist/face-character/bindFaceModel.d.ts +106 -0
  254. package/dist/face-character/canonicalFace.d.ts +17 -0
  255. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  256. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  257. package/dist/face-character/driveFaceModel.d.ts +57 -0
  258. package/dist/face-character/expressionOutputs.d.ts +45 -0
  259. package/dist/face-character/faceExpressions.d.ts +104 -0
  260. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  261. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  262. package/dist/face-character/faceMorph.d.ts +77 -0
  263. package/dist/face-character/faceMorphs.d.ts +46 -0
  264. package/dist/face-character/facePhoto.d.ts +138 -0
  265. package/dist/face-character/facePiercings.d.ts +116 -0
  266. package/dist/face-character/facePin.d.ts +131 -0
  267. package/dist/face-character/faceReprojection.d.ts +273 -0
  268. package/dist/face-character/faceReprojector.d.ts +171 -0
  269. package/dist/face-character/faceRig.d.ts +176 -0
  270. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  271. package/dist/face-character/faceTexture.d.ts +169 -0
  272. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  273. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  274. package/dist/face-character/faceTextureStats.d.ts +298 -0
  275. package/dist/face-character/faceTransfer.d.ts +396 -0
  276. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  277. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  278. package/dist/face-character/faceWarp3D.d.ts +101 -0
  279. package/dist/face-character/faceless.d.ts +79 -0
  280. package/dist/face-character/featureWarp.d.ts +28 -0
  281. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  282. package/dist/face-character/liveValue.d.ts +12 -0
  283. package/dist/face-character/memo.d.ts +15 -0
  284. package/dist/face-effects.cjs +2252 -83
  285. package/dist/face-effects.js +14234 -1231
  286. package/dist/face-expression/index.d.ts +182 -0
  287. package/dist/face-info/landmarks.d.ts +17 -3
  288. package/dist/face-info/types.d.ts +20 -3
  289. package/dist/gestures/definitions.d.ts +15 -2
  290. package/dist/gestures/index.d.ts +1 -1
  291. package/dist/gestures/measures.d.ts +21 -8
  292. package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
  293. package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
  294. package/dist/hand/armFit.d.ts +46 -0
  295. package/dist/hand/armMask.d.ts +178 -0
  296. package/dist/hand/handCutout.d.ts +23 -0
  297. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  298. package/dist/hand/handGestures.d.ts +524 -0
  299. package/dist/hand/handPose.d.ts +98 -0
  300. package/dist/hand/handRigSolver.d.ts +159 -0
  301. package/dist/hand/handTattoo.d.ts +81 -0
  302. package/dist/hand/handTouch.d.ts +240 -0
  303. package/dist/hand/wrist.d.ts +44 -0
  304. package/dist/hand/wristFilter.d.ts +44 -0
  305. package/dist/hooks/selectors.d.ts +8 -0
  306. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  307. package/dist/hooks/useTrackerContext.d.ts +6 -0
  308. package/dist/index-B1_TzJaI.js +1104 -0
  309. package/dist/index-BavF06C6.js +190 -0
  310. package/dist/index-BfFmpddl.cjs +21 -0
  311. package/dist/index-BuBzneeW.cjs +46 -0
  312. package/dist/index-CGsQWodV.cjs +1 -0
  313. package/dist/index-CIe7eCMH.js +3200 -0
  314. package/dist/index-CfSF8LXa.cjs +1 -0
  315. package/dist/index-D5GTzOzD.cjs +1 -0
  316. package/dist/index-DBhQzvVa.js +314 -0
  317. package/dist/index-DE17y0ZI.cjs +1 -0
  318. package/dist/index-JII7huPk.js +442 -0
  319. package/dist/index-tpCr9CLj.cjs +1 -0
  320. package/dist/{renderPasses-NnKZVfBy.js → index-w1S7fI2B.js} +219 -247
  321. package/dist/index-zGaqrz_K.js +188 -0
  322. package/dist/instructions.cjs +30 -0
  323. package/dist/instructions.js +1507 -0
  324. package/dist/{internal-vsfNQycj.js → internal-B90P-clC.js} +138 -118
  325. package/dist/internal-Cjinca64.cjs +1 -0
  326. package/dist/internal.cjs +1 -1
  327. package/dist/internal.js +15 -10
  328. package/dist/iris/compute.d.ts +7 -5
  329. package/dist/iris/types.d.ts +6 -4
  330. package/dist/{landmarkMask-CbTFzBYG.js → landmarkMask-BFDyBnKM.js} +6 -6
  331. package/dist/landmarks-BlUqf5MZ.cjs +1 -0
  332. package/dist/landmarks-bftdwq6Z.js +76 -0
  333. package/dist/loaders-BGAUACsd.js +363 -0
  334. package/dist/loaders-BJ1_QCHt.cjs +1 -0
  335. package/dist/low-level.cjs +1 -1
  336. package/dist/low-level.js +666 -602
  337. package/dist/main.cjs +1 -1
  338. package/dist/main.js +866 -1182
  339. package/dist/models/Body/index.d.ts +2 -0
  340. package/dist/models/Face/constants.d.ts +8 -0
  341. package/dist/models/Face/index.d.ts +3 -11
  342. package/dist/models/Face/rotation.d.ts +18 -3
  343. package/dist/models/Hand/HandTracking.d.ts +17 -1
  344. package/dist/models/Segmentation/index.d.ts +2 -0
  345. package/dist/models/nodeSource.d.ts +9 -0
  346. package/dist/particles/emission.d.ts +24 -0
  347. package/dist/particles/eyes.d.ts +24 -0
  348. package/dist/particles/glsl.d.ts +14 -0
  349. package/dist/particles/index.d.ts +10 -0
  350. package/dist/particles/motion.d.ts +42 -0
  351. package/dist/particles/presets.d.ts +12 -0
  352. package/dist/particles/ring.d.ts +58 -0
  353. package/dist/particles/selfTest.d.ts +53 -0
  354. package/dist/particles/settings.d.ts +127 -0
  355. package/dist/particles/shapes.d.ts +29 -0
  356. package/dist/particles/spawner.d.ts +60 -0
  357. package/dist/particles/system.d.ts +64 -0
  358. package/dist/particles.cjs +122 -0
  359. package/dist/particles.js +774 -0
  360. package/dist/product.cjs +1 -1
  361. package/dist/product.js +29 -29
  362. package/dist/{providers-C0Dlhh9Z.js → providers-C8rE26Uf.js} +127 -126
  363. package/dist/providers-DHsrhDI2.cjs +62 -0
  364. package/dist/render/renderPasses.d.ts +8 -0
  365. package/dist/render/sceneBeforeRender.d.ts +12 -0
  366. package/dist/{renderGroups-CN1cGFUo.js → renderGroups-B38pUaX2.js} +1 -1
  367. package/dist/{renderGroups-O4KmaMl9.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
  368. package/dist/renderPasses-B6l8IpJv.js +1290 -0
  369. package/dist/renderPasses-dqmkft4P.cjs +158 -0
  370. package/dist/renderState-CJNmj5jz.js +39 -0
  371. package/dist/renderState-apSfg4eR.cjs +1 -0
  372. package/dist/scene-object.cjs +1 -1
  373. package/dist/scene-object.js +2 -2
  374. package/dist/segmentation-Cb3ouK6Z.js +1758 -0
  375. package/dist/segmentation-D9pYO6aR.cjs +1 -0
  376. package/dist/segmentation2d/types.d.ts +6 -0
  377. package/dist/select-Ck5LGz-J.cjs +1 -0
  378. package/dist/select-pYRo_win.js +233 -0
  379. package/dist/selectors-C4X71aoD.cjs +1 -0
  380. package/dist/selectors-DmNaKIwE.js +196 -0
  381. package/dist/session-BrH8G7iJ.cjs +31 -0
  382. package/dist/session-DgA_z6O1.js +418 -0
  383. package/dist/{settings-aQk845NJ.js → settings-BJ7FMBsO.js} +53 -15
  384. package/dist/settings-C63FMBlF.cjs +1 -0
  385. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  386. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  387. package/dist/spring/index.d.ts +2 -0
  388. package/dist/spring/spring.d.ts +69 -0
  389. package/dist/spring/swing.d.ts +54 -0
  390. package/dist/tracking.cjs +10 -1
  391. package/dist/tracking.js +1002 -855
  392. package/dist/trigger-D0Pm9noT.cjs +49 -0
  393. package/dist/trigger-IQeys0oS.js +2128 -0
  394. package/dist/types/face.d.ts +20 -1
  395. package/dist/types/hand-tracking.d.ts +9 -0
  396. package/dist/types/nodes.d.ts +20 -1
  397. package/dist/types/segmentation.d.ts +5 -0
  398. package/dist/updateThrottle-BseecYag.js +4 -0
  399. package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
  400. package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
  401. package/dist/useFaceInfo-J4x7LsqL.js +76 -0
  402. package/dist/useFaceResultReader-BvEo5REG.js +61 -0
  403. package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
  404. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  405. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  406. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  407. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  408. package/dist/{useXRCapabilities-B1R2ghy-.cjs → useXRCapabilities-Cr3RzuAW.cjs} +1 -1
  409. package/dist/{useXRCapabilities-C68v__wB.js → useXRCapabilities-Cxmlmpbd.js} +1 -1
  410. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  411. package/dist/utils/headOccluderFit.d.ts +42 -0
  412. package/dist/utils/integrity.d.ts +17 -0
  413. package/dist/utils/resolveNumFaces.d.ts +13 -0
  414. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  415. package/dist/utils/similarityFit.d.ts +23 -0
  416. package/dist/uv-BMFt19bg.cjs +1 -0
  417. package/dist/{index-CsUdQ-pn.js → uv-DJU_XfmN.js} +15 -249
  418. package/docs/SDK_DOCUMENTATION.md +1 -2
  419. package/docs/api/adaptive-quality.mdx +1 -1
  420. package/docs/api/body-instructions.mdx +285 -0
  421. package/docs/api/body-triggers.mdx +234 -0
  422. package/docs/api/camera-permission.mdx +1 -1
  423. package/docs/api/coordinate-spaces.mdx +7 -4
  424. package/docs/api/cross-camera.mdx +3 -2
  425. package/docs/api/debug-ui-scene-editor.mdx +23 -2
  426. package/docs/api/external-face-mesh.mdx +231 -0
  427. package/docs/api/face-actions.mdx +20 -16
  428. package/docs/api/face-attribute-expression.mdx +1 -1
  429. package/docs/api/face-binding-anchors.mdx +4 -2
  430. package/docs/api/face-character.mdx +157 -0
  431. package/docs/api/face-effects.mdx +3 -0
  432. package/docs/api/face-expression-controller.mdx +153 -0
  433. package/docs/api/face-info.mdx +17 -11
  434. package/docs/api/face-inset.mdx +204 -0
  435. package/docs/api/face-instructions.mdx +183 -0
  436. package/docs/api/face-liquify.mdx +196 -0
  437. package/docs/api/face-mesh.mdx +4 -7
  438. package/docs/api/face-morph.mdx +117 -0
  439. package/docs/api/face-painting.mdx +7 -0
  440. package/docs/api/face-reprojection.mdx +154 -0
  441. package/docs/api/face-retouching.mdx +18 -10
  442. package/docs/api/face-swap.mdx +350 -0
  443. package/docs/api/face-warp-3d.mdx +166 -0
  444. package/docs/api/faceless.mdx +143 -0
  445. package/docs/api/gestures.mdx +68 -32
  446. package/docs/api/hair.mdx +97 -0
  447. package/docs/api/hand-instructions.mdx +222 -0
  448. package/docs/api/hand-rig.mdx +535 -0
  449. package/docs/api/hand-touch.mdx +162 -0
  450. package/docs/api/head-occluder.mdx +563 -0
  451. package/docs/api/holistic-tracker.mdx +6 -1
  452. package/docs/api/instructions.mdx +323 -0
  453. package/docs/api/iris-tracking.mdx +24 -19
  454. package/docs/api/made-up-camera.mdx +131 -0
  455. package/docs/api/makeup-skin-tone.mdx +135 -0
  456. package/docs/api/makeup.mdx +353 -0
  457. package/docs/api/multi-subject.mdx +4 -1
  458. package/docs/api/particles.mdx +155 -0
  459. package/docs/api/person-cutout.mdx +1 -1
  460. package/docs/api/pin-to-face-mesh.mdx +274 -0
  461. package/docs/api/product-ar.mdx +5 -2
  462. package/docs/api/segmentation-overlay.mdx +1 -1
  463. package/docs/docs.json +29 -1
  464. package/docs/examples/lip-shaders.mdx +82 -33
  465. package/docs/guides/face-atlas-template.svg +1 -0
  466. package/docs/guides/face-atlas-textures.mdx +186 -0
  467. package/docs/guides/face-texture-template.svg +1 -0
  468. package/docs/guides/harness-debug-ui.mdx +4 -4
  469. package/docs/guides/lip-effect-textures.mdx +178 -102
  470. package/docs/guides/lip-uv-template.png +0 -0
  471. package/docs/guides/lip-uv-template.svg +1 -1
  472. package/docs/guides/makeup-design-textures.mdx +109 -0
  473. package/docs/introduction.mdx +1 -2
  474. package/package.json +11 -1
  475. package/dist/DebuggerUI-C-ldiozL.js +0 -269
  476. package/dist/DebuggerUI-CWX5EtQv.cjs +0 -1
  477. package/dist/FaceMeshRenderer-BEEXZwS6.cjs +0 -158
  478. package/dist/FaceMeshRenderer-UuH5sTXG.js +0 -1322
  479. package/dist/FaceRetouch-C7h7x9kd.js +0 -683
  480. package/dist/FaceRetouch-DqftT26Y.cjs +0 -134
  481. package/dist/GLTFLoader-C5q63sKO.js +0 -1633
  482. package/dist/GLTFLoader-Cb_CRwmG.cjs +0 -1
  483. package/dist/SegmentationOverlay-DQuW3dsc.js +0 -133
  484. package/dist/SegmentationOverlay-aWVod8Kl.cjs +0 -1
  485. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
  486. package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
  487. package/dist/components/FaceWarp3D/warp.d.ts +0 -13
  488. package/dist/contexts-CO0sd4JQ.cjs +0 -1
  489. package/dist/contexts-FzlnnMYD.js +0 -669
  490. package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
  491. package/dist/getFaceInfo-BkZfaQs-.js +0 -118
  492. package/dist/getFaceInfo-ahPxQFGu.cjs +0 -1
  493. package/dist/index--RgGzZ6X.cjs +0 -47
  494. package/dist/index-CHVbH0hz.js +0 -214
  495. package/dist/index-CeVkgsag.cjs +0 -1
  496. package/dist/index-CnGox6Xr.js +0 -3054
  497. package/dist/index-DKBAh6hV.cjs +0 -1
  498. package/dist/index-DsZwTfG0.cjs +0 -1
  499. package/dist/index-Dw6tj2Mi.js +0 -144
  500. package/dist/index-OCPjOaeP.cjs +0 -1
  501. package/dist/index-s9pF4zkG.js +0 -2053
  502. package/dist/internal-BYza1h8_.cjs +0 -1
  503. package/dist/measures-9dQPdw96.js +0 -154
  504. package/dist/measures-KfJzpvod.cjs +0 -1
  505. package/dist/providers-YNwkmNeK.cjs +0 -62
  506. package/dist/renderPasses-Cg-zqmEz.cjs +0 -21
  507. package/dist/screenTransform-BenfCtZt.js +0 -44
  508. package/dist/screenTransform-BiXdpVf0.cjs +0 -1
  509. package/dist/segmentation-9PhSvc-R.cjs +0 -1
  510. package/dist/segmentation-CeOTKemr.js +0 -5
  511. package/dist/selectors-C5G1PMYL.js +0 -195
  512. package/dist/selectors-Du_PsVnW.cjs +0 -1
  513. package/dist/session-BBr0yN8h.cjs +0 -31
  514. package/dist/session-Cy0m7l7-.js +0 -363
  515. package/dist/settings-DRR7-snV.cjs +0 -1
  516. package/dist/useFaceInfo-Blf7FCu3.js +0 -303
  517. package/dist/useFaceInfo-C5mO8NQY.cjs +0 -1
@@ -0,0 +1 @@
1
+ "use strict";const d=require("three"),J=require("./index-CfSF8LXa.cjs");var Y=function(){var f="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok: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;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",a="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;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:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;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:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",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]),i=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 n=WebAssembly.validate(e)?a:f,t,s=WebAssembly.instantiate(o(n),{}).then(function(g){t=g.instance,t.exports.__wasm_call_ctors()});function o(g){for(var h=new Uint8Array(g.length),A=0;A<g.length;++A){var m=g.charCodeAt(A);h[A]=m>96?m-97:m>64?m-39:m+4}for(var w=0,A=0;A<g.length;++A)h[w++]=h[A]<60?i[h[A]]:(h[A]-60)*64+h[++A];return h.buffer.slice(0,w)}function r(g,h,A,m,w,E){var S=t.exports.sbrk,M=A+3&-4,j=S(M*m),O=S(w.length),P=new Uint8Array(t.exports.memory.buffer);P.set(w,O);var _=g(j,A,m,O,w.length);if(_==0&&E&&E(j,M,m),h.set(P.subarray(j,j+A*m)),S(j-S(0)),_!=0)throw new Error("Malformed buffer data: "+_)}var c={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},b=[],p=0;function u(g){var h={object:new Worker(g),pending:0,requests:{}};return h.object.onmessage=function(A){var m=A.data;h.pending-=m.count,h.requests[m.id][m.action](m.value),delete h.requests[m.id]},h}function k(g){for(var h="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(o(n))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+r.toString()+x.toString(),A=new Blob([h],{type:"text/javascript"}),m=URL.createObjectURL(A),w=0;w<g;++w)b[w]=u(m);URL.revokeObjectURL(m)}function R(g,h,A,m,w){for(var E=b[0],S=1;S<b.length;++S)b[S].pending<E.pending&&(E=b[S]);return new Promise(function(M,j){var O=new Uint8Array(A),P=p++;E.pending+=g,E.requests[P]={resolve:M,reject:j},E.object.postMessage({id:P,count:g,size:h,source:O,mode:m,filter:w},[O.buffer])})}function x(g){s.then(function(){var h=g.data;try{var A=new Uint8Array(h.count*h.size);r(t.exports[h.mode],A,h.count,h.size,h.source,t.exports[h.filter]),self.postMessage({id:h.id,count:h.count,action:"resolve",value:A},[A.buffer])}catch(m){self.postMessage({id:h.id,count:h.count,action:"reject",value:m})}})}return{ready:s,supported:!0,useWorkers:function(g){k(g)},decodeVertexBuffer:function(g,h,A,m,w){r(t.exports.meshopt_decodeVertexBuffer,g,h,A,m,t.exports[c[w]])},decodeIndexBuffer:function(g,h,A,m){r(t.exports.meshopt_decodeIndexBuffer,g,h,A,m)},decodeIndexSequence:function(g,h,A,m){r(t.exports.meshopt_decodeIndexSequence,g,h,A,m)},decodeGltfBuffer:function(g,h,A,m,w,E){r(t.exports[l[w]],g,h,A,m,t.exports[c[E]])},decodeGltfBufferAsync:function(g,h,A,m,w){return b.length>0?R(g,h,A,l[m],c[w]):s.then(function(){var E=new Uint8Array(g*h);return r(t.exports[l[m]],E,g,h,A,t.exports[c[w]]),E})}}}();function I(f,a){if(a===d.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),f;if(a===d.TriangleFanDrawMode||a===d.TriangleStripDrawMode){let e=f.getIndex();if(e===null){const s=[],o=f.getAttribute("position");if(o!==void 0){for(let r=0;r<o.count;r++)s.push(r);f.setIndex(s),e=f.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),f}const i=e.count-2,n=[];if(a===d.TriangleFanDrawMode)for(let s=1;s<=i;s++)n.push(e.getX(0)),n.push(e.getX(s)),n.push(e.getX(s+1));else for(let s=0;s<i;s++)s%2===0?(n.push(e.getX(s)),n.push(e.getX(s+1)),n.push(e.getX(s+2))):(n.push(e.getX(s+2)),n.push(e.getX(s+1)),n.push(e.getX(s)));n.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const t=f.clone();return t.setIndex(n),t.clearGroups(),t}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",a),f}class Z extends d.Loader{constructor(a){super(a),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new te(e)}),this.register(function(e){return new se(e)}),this.register(function(e){return new pe(e)}),this.register(function(e){return new he(e)}),this.register(function(e){return new ue(e)}),this.register(function(e){return new re(e)}),this.register(function(e){return new oe(e)}),this.register(function(e){return new ce(e)}),this.register(function(e){return new be(e)}),this.register(function(e){return new ne(e)}),this.register(function(e){return new le(e)}),this.register(function(e){return new ie(e)}),this.register(function(e){return new fe(e)}),this.register(function(e){return new de(e)}),this.register(function(e){return new ee(e)}),this.register(function(e){return new ge(e)}),this.register(function(e){return new me(e)})}load(a,e,i,n){const t=this;let s;if(this.resourcePath!=="")s=this.resourcePath;else if(this.path!==""){const c=d.LoaderUtils.extractUrlBase(a);s=d.LoaderUtils.resolveURL(c,this.path)}else s=d.LoaderUtils.extractUrlBase(a);this.manager.itemStart(a);const o=function(c){n?n(c):console.error(c),t.manager.itemError(a),t.manager.itemEnd(a)},r=new d.FileLoader(this.manager);r.setPath(this.path),r.setResponseType("arraybuffer"),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(a,function(c){try{t.parse(c,s,function(l){e(l),t.manager.itemEnd(a)},o)}catch(l){o(l)}},i,o)}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,i,n){let t;const s={},o={},r=new TextDecoder;if(typeof a=="string")t=JSON.parse(a);else if(a instanceof ArrayBuffer)if(r.decode(new Uint8Array(a,0,4))===W){try{s[T.KHR_BINARY_GLTF]=new Ae(a)}catch(b){n&&n(b);return}t=JSON.parse(s[T.KHR_BINARY_GLTF].content)}else t=JSON.parse(r.decode(a));else t=a;if(t.asset===void 0||t.asset.version[0]<2){n&&n(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const c=new Ge(t,{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 l=0;l<this.pluginCallbacks.length;l++){const b=this.pluginCallbacks[l](c);b.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),o[b.name]=b,s[b.name]=!0}if(t.extensionsUsed)for(let l=0;l<t.extensionsUsed.length;++l){const b=t.extensionsUsed[l],p=t.extensionsRequired||[];switch(b){case T.KHR_MATERIALS_UNLIT:s[b]=new ae;break;case T.KHR_DRACO_MESH_COMPRESSION:s[b]=new xe(t,this.dracoLoader);break;case T.KHR_TEXTURE_TRANSFORM:s[b]=new ke;break;case T.KHR_MESH_QUANTIZATION:s[b]=new Te;break;default:p.indexOf(b)>=0&&o[b]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+b+'".')}}c.setExtensions(s),c.setPlugins(o),c.parse(i,n)}parseAsync(a,e){const i=this;return new Promise(function(n,t){i.parse(a,e,n,t)})}}function $(){let f={};return{get:function(a){return f[a]},add:function(a,e){f[a]=e},remove:function(a){delete f[a]},removeAll:function(){f={}}}}const T={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 ee{constructor(a){this.parser=a,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const a=this.parser,e=this.parser.json.nodes||[];for(let i=0,n=e.length;i<n;i++){const t=e[i];t.extensions&&t.extensions[this.name]&&t.extensions[this.name].light!==void 0&&a._addNodeRef(this.cache,t.extensions[this.name].light)}}_loadLight(a){const e=this.parser,i="light:"+a;let n=e.cache.get(i);if(n)return n;const t=e.json,r=((t.extensions&&t.extensions[this.name]||{}).lights||[])[a];let c;const l=new d.Color(16777215);r.color!==void 0&&l.setRGB(r.color[0],r.color[1],r.color[2],d.LinearSRGBColorSpace);const b=r.range!==void 0?r.range:0;switch(r.type){case"directional":c=new d.DirectionalLight(l),c.target.position.set(0,0,-1),c.add(c.target);break;case"point":c=new d.PointLight(l),c.distance=b;break;case"spot":c=new d.SpotLight(l),c.distance=b,r.spot=r.spot||{},r.spot.innerConeAngle=r.spot.innerConeAngle!==void 0?r.spot.innerConeAngle:0,r.spot.outerConeAngle=r.spot.outerConeAngle!==void 0?r.spot.outerConeAngle:Math.PI/4,c.angle=r.spot.outerConeAngle,c.penumbra=1-r.spot.innerConeAngle/r.spot.outerConeAngle,c.target.position.set(0,0,-1),c.add(c.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+r.type)}return c.position.set(0,0,0),L(c,r),r.intensity!==void 0&&(c.intensity=r.intensity),c.name=e.createUniqueName(r.name||"light_"+a),n=Promise.resolve(c),e.cache.add(i,n),n}getDependency(a,e){if(a==="light")return this._loadLight(e)}createNodeAttachment(a){const e=this,i=this.parser,t=i.json.nodes[a],o=(t.extensions&&t.extensions[this.name]||{}).light;return o===void 0?null:this._loadLight(o).then(function(r){return i._getNodeRef(e.cache,o,r)})}}class ae{constructor(){this.name=T.KHR_MATERIALS_UNLIT}getMaterialType(){return d.MeshBasicMaterial}extendParams(a,e,i){const n=[];a.color=new d.Color(1,1,1),a.opacity=1;const t=e.pbrMetallicRoughness;if(t){if(Array.isArray(t.baseColorFactor)){const s=t.baseColorFactor;a.color.setRGB(s[0],s[1],s[2],d.LinearSRGBColorSpace),a.opacity=s[3]}t.baseColorTexture!==void 0&&n.push(i.assignTexture(a,"map",t.baseColorTexture,d.SRGBColorSpace))}return Promise.all(n)}}class ne{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(a,e){const n=this.parser.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=n.extensions[this.name].emissiveStrength;return t!==void 0&&(e.emissiveIntensity=t),Promise.resolve()}}class te{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_CLEARCOAT}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const i=this.parser,n=i.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=[],s=n.extensions[this.name];if(s.clearcoatFactor!==void 0&&(e.clearcoat=s.clearcoatFactor),s.clearcoatTexture!==void 0&&t.push(i.assignTexture(e,"clearcoatMap",s.clearcoatTexture)),s.clearcoatRoughnessFactor!==void 0&&(e.clearcoatRoughness=s.clearcoatRoughnessFactor),s.clearcoatRoughnessTexture!==void 0&&t.push(i.assignTexture(e,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),s.clearcoatNormalTexture!==void 0&&(t.push(i.assignTexture(e,"clearcoatNormalMap",s.clearcoatNormalTexture)),s.clearcoatNormalTexture.scale!==void 0)){const o=s.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new d.Vector2(o,o)}return Promise.all(t)}}class se{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_DISPERSION}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const n=this.parser.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=n.extensions[this.name];return e.dispersion=t.dispersion!==void 0?t.dispersion:0,Promise.resolve()}}class ie{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_IRIDESCENCE}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const i=this.parser,n=i.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=[],s=n.extensions[this.name];return s.iridescenceFactor!==void 0&&(e.iridescence=s.iridescenceFactor),s.iridescenceTexture!==void 0&&t.push(i.assignTexture(e,"iridescenceMap",s.iridescenceTexture)),s.iridescenceIor!==void 0&&(e.iridescenceIOR=s.iridescenceIor),e.iridescenceThicknessRange===void 0&&(e.iridescenceThicknessRange=[100,400]),s.iridescenceThicknessMinimum!==void 0&&(e.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),s.iridescenceThicknessMaximum!==void 0&&(e.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),s.iridescenceThicknessTexture!==void 0&&t.push(i.assignTexture(e,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(t)}}class re{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_SHEEN}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const i=this.parser,n=i.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=[];e.sheenColor=new d.Color(0,0,0),e.sheenRoughness=0,e.sheen=1;const s=n.extensions[this.name];if(s.sheenColorFactor!==void 0){const o=s.sheenColorFactor;e.sheenColor.setRGB(o[0],o[1],o[2],d.LinearSRGBColorSpace)}return s.sheenRoughnessFactor!==void 0&&(e.sheenRoughness=s.sheenRoughnessFactor),s.sheenColorTexture!==void 0&&t.push(i.assignTexture(e,"sheenColorMap",s.sheenColorTexture,d.SRGBColorSpace)),s.sheenRoughnessTexture!==void 0&&t.push(i.assignTexture(e,"sheenRoughnessMap",s.sheenRoughnessTexture)),Promise.all(t)}}class oe{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_TRANSMISSION}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const i=this.parser,n=i.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=[],s=n.extensions[this.name];return s.transmissionFactor!==void 0&&(e.transmission=s.transmissionFactor),s.transmissionTexture!==void 0&&t.push(i.assignTexture(e,"transmissionMap",s.transmissionTexture)),Promise.all(t)}}class ce{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_VOLUME}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const i=this.parser,n=i.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=[],s=n.extensions[this.name];e.thickness=s.thicknessFactor!==void 0?s.thicknessFactor:0,s.thicknessTexture!==void 0&&t.push(i.assignTexture(e,"thicknessMap",s.thicknessTexture)),e.attenuationDistance=s.attenuationDistance||1/0;const o=s.attenuationColor||[1,1,1];return e.attenuationColor=new d.Color().setRGB(o[0],o[1],o[2],d.LinearSRGBColorSpace),Promise.all(t)}}class be{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_IOR}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const n=this.parser.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=n.extensions[this.name];return e.ior=t.ior!==void 0?t.ior:1.5,Promise.resolve()}}class le{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_SPECULAR}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const i=this.parser,n=i.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=[],s=n.extensions[this.name];e.specularIntensity=s.specularFactor!==void 0?s.specularFactor:1,s.specularTexture!==void 0&&t.push(i.assignTexture(e,"specularIntensityMap",s.specularTexture));const o=s.specularColorFactor||[1,1,1];return e.specularColor=new d.Color().setRGB(o[0],o[1],o[2],d.LinearSRGBColorSpace),s.specularColorTexture!==void 0&&t.push(i.assignTexture(e,"specularColorMap",s.specularColorTexture,d.SRGBColorSpace)),Promise.all(t)}}class de{constructor(a){this.parser=a,this.name=T.EXT_MATERIALS_BUMP}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const i=this.parser,n=i.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=[],s=n.extensions[this.name];return e.bumpScale=s.bumpFactor!==void 0?s.bumpFactor:1,s.bumpTexture!==void 0&&t.push(i.assignTexture(e,"bumpMap",s.bumpTexture)),Promise.all(t)}}class fe{constructor(a){this.parser=a,this.name=T.KHR_MATERIALS_ANISOTROPY}getMaterialType(a){const i=this.parser.json.materials[a];return!i.extensions||!i.extensions[this.name]?null:d.MeshPhysicalMaterial}extendMaterialParams(a,e){const i=this.parser,n=i.json.materials[a];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const t=[],s=n.extensions[this.name];return s.anisotropyStrength!==void 0&&(e.anisotropy=s.anisotropyStrength),s.anisotropyRotation!==void 0&&(e.anisotropyRotation=s.anisotropyRotation),s.anisotropyTexture!==void 0&&t.push(i.assignTexture(e,"anisotropyMap",s.anisotropyTexture)),Promise.all(t)}}class pe{constructor(a){this.parser=a,this.name=T.KHR_TEXTURE_BASISU}loadTexture(a){const e=this.parser,i=e.json,n=i.textures[a];if(!n.extensions||!n.extensions[this.name])return null;const t=n.extensions[this.name],s=e.options.ktx2Loader;if(!s){if(i.extensionsRequired&&i.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(a,t.source,s)}}class he{constructor(a){this.parser=a,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(a){const e=this.name,i=this.parser,n=i.json,t=n.textures[a];if(!t.extensions||!t.extensions[e])return null;const s=t.extensions[e],o=n.images[s.source];let r=i.textureLoader;if(o.uri){const c=i.options.manager.getHandler(o.uri);c!==null&&(r=c)}return this.detectSupport().then(function(c){if(c)return i.loadTextureImage(a,s.source,r);if(n.extensionsRequired&&n.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(a)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(a){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){a(e.height===1)}})),this.isSupported}}class ue{constructor(a){this.parser=a,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(a){const e=this.name,i=this.parser,n=i.json,t=n.textures[a];if(!t.extensions||!t.extensions[e])return null;const s=t.extensions[e],o=n.images[s.source];let r=i.textureLoader;if(o.uri){const c=i.options.manager.getHandler(o.uri);c!==null&&(r=c)}return this.detectSupport().then(function(c){if(c)return i.loadTextureImage(a,s.source,r);if(n.extensionsRequired&&n.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return i.loadTexture(a)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(a){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){a(e.height===1)}})),this.isSupported}}class ge{constructor(a){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=a}loadBufferView(a){const e=this.parser.json,i=e.bufferViews[a];if(i.extensions&&i.extensions[this.name]){const n=i.extensions[this.name],t=this.parser.getDependency("buffer",n.buffer),s=this.parser.options.meshoptDecoder;if(!s||!s.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 t.then(function(o){const r=n.byteOffset||0,c=n.byteLength||0,l=n.count,b=n.byteStride,p=new Uint8Array(o,r,c);return s.decodeGltfBufferAsync?s.decodeGltfBufferAsync(l,b,p,n.mode,n.filter).then(function(u){return u.buffer}):s.ready.then(function(){const u=new ArrayBuffer(l*b);return s.decodeGltfBuffer(new Uint8Array(u),l,b,p,n.mode,n.filter),u})})}else return null}}class me{constructor(a){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=a}createNodeMesh(a){const e=this.parser.json,i=e.nodes[a];if(!i.extensions||!i.extensions[this.name]||i.mesh===void 0)return null;const n=e.meshes[i.mesh];for(const c of n.primitives)if(c.mode!==F.TRIANGLES&&c.mode!==F.TRIANGLE_STRIP&&c.mode!==F.TRIANGLE_FAN&&c.mode!==void 0)return null;const s=i.extensions[this.name].attributes,o=[],r={};for(const c in s)o.push(this.parser.getDependency("accessor",s[c]).then(l=>(r[c]=l,r[c])));return o.length<1?null:(o.push(this.parser.createNodeMesh(a)),Promise.all(o).then(c=>{const l=c.pop(),b=l.isGroup?l.children:[l],p=c[0].count,u=[];for(const k of b){const R=new d.Matrix4,x=new d.Vector3,g=new d.Quaternion,h=new d.Vector3(1,1,1),A=new d.InstancedMesh(k.geometry,k.material,p);for(let m=0;m<p;m++)r.TRANSLATION&&x.fromBufferAttribute(r.TRANSLATION,m),r.ROTATION&&g.fromBufferAttribute(r.ROTATION,m),r.SCALE&&h.fromBufferAttribute(r.SCALE,m),A.setMatrixAt(m,R.compose(x,g,h));for(const m in r)if(m==="_COLOR_0"){const w=r[m];A.instanceColor=new d.InstancedBufferAttribute(w.array,w.itemSize,w.normalized)}else m!=="TRANSLATION"&&m!=="ROTATION"&&m!=="SCALE"&&k.geometry.setAttribute(m,r[m]);d.Object3D.prototype.copy.call(A,k),this.parser.assignFinalMaterial(A),u.push(A)}return l.isGroup?(l.clear(),l.add(...u),l):u[0]}))}}const W="glTF",C=12,q={JSON:1313821514,BIN:5130562};class Ae{constructor(a){this.name=T.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(a,0,C),i=new TextDecoder;if(this.header={magic:i.decode(new Uint8Array(a.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==W)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const n=this.header.length-C,t=new DataView(a,C);let s=0;for(;s<n;){const o=t.getUint32(s,!0);s+=4;const r=t.getUint32(s,!0);if(s+=4,r===q.JSON){const c=new Uint8Array(a,C+s,o);this.content=i.decode(c)}else if(r===q.BIN){const c=C+s;this.body=a.slice(c,c+o)}s+=o}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class xe{constructor(a,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=T.KHR_DRACO_MESH_COMPRESSION,this.json=a,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(a,e){const i=this.json,n=this.dracoLoader,t=a.extensions[this.name].bufferView,s=a.extensions[this.name].attributes,o={},r={},c={};for(const l in s){const b=B[l]||l.toLowerCase();o[b]=s[l]}for(const l in a.attributes){const b=B[l]||l.toLowerCase();if(s[l]!==void 0){const p=i.accessors[a.attributes[l]],u=y[p.componentType];c[b]=u.name,r[b]=p.normalized===!0}}return e.getDependency("bufferView",t).then(function(l){return new Promise(function(b,p){n.decodeDracoFile(l,function(u){for(const k in u.attributes){const R=u.attributes[k],x=r[k];x!==void 0&&(R.normalized=x)}b(u)},o,c,d.LinearSRGBColorSpace,p)})})}}class ke{constructor(){this.name=T.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 Te{constructor(){this.name=T.KHR_MESH_QUANTIZATION}}class V extends d.Interpolant{constructor(a,e,i,n){super(a,e,i,n)}copySampleValue_(a){const e=this.resultBuffer,i=this.sampleValues,n=this.valueSize,t=a*n*3+n;for(let s=0;s!==n;s++)e[s]=i[t+s];return e}interpolate_(a,e,i,n){const t=this.resultBuffer,s=this.sampleValues,o=this.valueSize,r=o*2,c=o*3,l=n-e,b=(i-e)/l,p=b*b,u=p*b,k=a*c,R=k-c,x=-2*u+3*p,g=u-p,h=1-x,A=g-p+b;for(let m=0;m!==o;m++){const w=s[R+m+o],E=s[R+m+r]*l,S=s[k+m+o],M=s[k+m]*l;t[m]=h*w+A*E+x*S+g*M}return t}}const Re=new d.Quaternion;class we extends V{interpolate_(a,e,i,n){const t=super.interpolate_(a,e,i,n);return Re.fromArray(t).normalize().toArray(t),t}}const F={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},y={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},z={9728:d.NearestFilter,9729:d.LinearFilter,9984:d.NearestMipmapNearestFilter,9985:d.LinearMipmapNearestFilter,9986:d.NearestMipmapLinearFilter,9987:d.LinearMipmapLinearFilter},U={33071:d.ClampToEdgeWrapping,33648:d.MirroredRepeatWrapping,10497:d.RepeatWrapping},D={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},B={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"},G={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Ee={CUBICSPLINE:void 0,LINEAR:d.InterpolateLinear,STEP:d.InterpolateDiscrete},N={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function Se(f){return f.DefaultMaterial===void 0&&(f.DefaultMaterial=new d.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:d.FrontSide})),f.DefaultMaterial}function v(f,a,e){for(const i in e.extensions)f[i]===void 0&&(a.userData.gltfExtensions=a.userData.gltfExtensions||{},a.userData.gltfExtensions[i]=e.extensions[i])}function L(f,a){a.extras!==void 0&&(typeof a.extras=="object"?Object.assign(f.userData,a.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+a.extras))}function je(f,a,e){let i=!1,n=!1,t=!1;for(let c=0,l=a.length;c<l;c++){const b=a[c];if(b.POSITION!==void 0&&(i=!0),b.NORMAL!==void 0&&(n=!0),b.COLOR_0!==void 0&&(t=!0),i&&n&&t)break}if(!i&&!n&&!t)return Promise.resolve(f);const s=[],o=[],r=[];for(let c=0,l=a.length;c<l;c++){const b=a[c];if(i){const p=b.POSITION!==void 0?e.getDependency("accessor",b.POSITION):f.attributes.position;s.push(p)}if(n){const p=b.NORMAL!==void 0?e.getDependency("accessor",b.NORMAL):f.attributes.normal;o.push(p)}if(t){const p=b.COLOR_0!==void 0?e.getDependency("accessor",b.COLOR_0):f.attributes.color;r.push(p)}}return Promise.all([Promise.all(s),Promise.all(o),Promise.all(r)]).then(function(c){const l=c[0],b=c[1],p=c[2];return i&&(f.morphAttributes.position=l),n&&(f.morphAttributes.normal=b),t&&(f.morphAttributes.color=p),f.morphTargetsRelative=!0,f})}function Fe(f,a){if(f.updateMorphTargets(),a.weights!==void 0)for(let e=0,i=a.weights.length;e<i;e++)f.morphTargetInfluences[e]=a.weights[e];if(a.extras&&Array.isArray(a.extras.targetNames)){const e=a.extras.targetNames;if(f.morphTargetInfluences.length===e.length){f.morphTargetDictionary={};for(let i=0,n=e.length;i<n;i++)f.morphTargetDictionary[e[i]]=i}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function Me(f){let a;const e=f.extensions&&f.extensions[T.KHR_DRACO_MESH_COMPRESSION];if(e?a="draco:"+e.bufferView+":"+e.indices+":"+H(e.attributes):a=f.indices+":"+H(f.attributes)+":"+f.mode,f.targets!==void 0)for(let i=0,n=f.targets.length;i<n;i++)a+=":"+H(f.targets[i]);return a}function H(f){let a="";const e=Object.keys(f).sort();for(let i=0,n=e.length;i<n;i++)a+=e[i]+":"+f[e[i]]+";";return a}function K(f){switch(f){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 Oe(f){return f.search(/\.jpe?g($|\?)/i)>0||f.search(/^data\:image\/jpeg/)===0?"image/jpeg":f.search(/\.webp($|\?)/i)>0||f.search(/^data\:image\/webp/)===0?"image/webp":f.search(/\.ktx2($|\?)/i)>0||f.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"}const Le=new d.Matrix4;class Ge{constructor(a={},e={}){this.json=a,this.extensions={},this.plugins={},this.options=e,this.cache=new $,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 i=!1,n=-1,t=!1,s=-1;if(typeof navigator<"u"){const o=navigator.userAgent;i=/^((?!chrome|android).)*safari/i.test(o)===!0;const r=o.match(/Version\/(\d+)/);n=i&&r?parseInt(r[1],10):-1,t=o.indexOf("Firefox")>-1,s=t?o.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||i&&n<17||t&&s<98?this.textureLoader=new d.TextureLoader(this.options.manager):this.textureLoader=new d.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new d.FileLoader(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 i=this,n=this.json,t=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(s){return s._markDefs&&s._markDefs()}),Promise.all(this._invokeAll(function(s){return s.beforeRoot&&s.beforeRoot()})).then(function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])}).then(function(s){const o={scene:s[0][n.scene||0],scenes:s[0],animations:s[1],cameras:s[2],asset:n.asset,parser:i,userData:{}};return v(t,o,n),L(o,n),Promise.all(i._invokeAll(function(r){return r.afterRoot&&r.afterRoot(o)})).then(function(){for(const r of o.scenes)r.updateMatrixWorld();a(o)})}).catch(e)}_markDefs(){const a=this.json.nodes||[],e=this.json.skins||[],i=this.json.meshes||[];for(let n=0,t=e.length;n<t;n++){const s=e[n].joints;for(let o=0,r=s.length;o<r;o++)a[s[o]].isBone=!0}for(let n=0,t=a.length;n<t;n++){const s=a[n];s.mesh!==void 0&&(this._addNodeRef(this.meshCache,s.mesh),s.skin!==void 0&&(i[s.mesh].isSkinnedMesh=!0)),s.camera!==void 0&&this._addNodeRef(this.cameraCache,s.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,i){if(a.refs[e]<=1)return i;const n=i.clone(),t=(s,o)=>{const r=this.associations.get(s);r!=null&&this.associations.set(o,r);for(const[c,l]of s.children.entries())t(l,o.children[c])};return t(i,n),n.name+="_instance_"+a.uses[e]++,n}_invokeOne(a){const e=Object.values(this.plugins);e.push(this);for(let i=0;i<e.length;i++){const n=a(e[i]);if(n)return n}return null}_invokeAll(a){const e=Object.values(this.plugins);e.unshift(this);const i=[];for(let n=0;n<e.length;n++){const t=a(e[n]);t&&i.push(t)}return i}getDependency(a,e){const i=a+":"+e;let n=this.cache.get(i);if(!n){switch(a){case"scene":n=this.loadScene(e);break;case"node":n=this._invokeOne(function(t){return t.loadNode&&t.loadNode(e)});break;case"mesh":n=this._invokeOne(function(t){return t.loadMesh&&t.loadMesh(e)});break;case"accessor":n=this.loadAccessor(e);break;case"bufferView":n=this._invokeOne(function(t){return t.loadBufferView&&t.loadBufferView(e)});break;case"buffer":n=this.loadBuffer(e);break;case"material":n=this._invokeOne(function(t){return t.loadMaterial&&t.loadMaterial(e)});break;case"texture":n=this._invokeOne(function(t){return t.loadTexture&&t.loadTexture(e)});break;case"skin":n=this.loadSkin(e);break;case"animation":n=this._invokeOne(function(t){return t.loadAnimation&&t.loadAnimation(e)});break;case"camera":n=this.loadCamera(e);break;default:if(n=this._invokeOne(function(t){return t!=this&&t.getDependency&&t.getDependency(a,e)}),!n)throw new Error("Unknown type: "+a);break}this.cache.add(i,n)}return n}getDependencies(a){let e=this.cache.get(a);if(!e){const i=this,n=this.json[a+(a==="mesh"?"es":"s")]||[];e=Promise.all(n.map(function(t,s){return i.getDependency(a,s)})),this.cache.add(a,e)}return e}loadBuffer(a){const e=this.json.buffers[a],i=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[T.KHR_BINARY_GLTF].body);const n=this.options;return new Promise(function(t,s){i.load(d.LoaderUtils.resolveURL(e.uri,n.path),t,void 0,function(){s(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(i){const n=e.byteLength||0,t=e.byteOffset||0;return i.slice(t,t+n)})}loadAccessor(a){const e=this,i=this.json,n=this.json.accessors[a];if(n.bufferView===void 0&&n.sparse===void 0){const s=D[n.type],o=y[n.componentType],r=n.normalized===!0,c=new o(n.count*s);return Promise.resolve(new d.BufferAttribute(c,s,r))}const t=[];return n.bufferView!==void 0?t.push(this.getDependency("bufferView",n.bufferView)):t.push(null),n.sparse!==void 0&&(t.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),t.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(t).then(function(s){const o=s[0],r=D[n.type],c=y[n.componentType],l=c.BYTES_PER_ELEMENT,b=l*r,p=n.byteOffset||0,u=n.bufferView!==void 0?i.bufferViews[n.bufferView].byteStride:void 0,k=n.normalized===!0;let R,x;if(u&&u!==b){const g=Math.floor(p/u),h="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+g+":"+n.count;let A=e.cache.get(h);A||(R=new c(o,g*u,n.count*u/l),A=new d.InterleavedBuffer(R,u/l),e.cache.add(h,A)),x=new d.InterleavedBufferAttribute(A,r,p%u/l,k)}else o===null?R=new c(n.count*r):R=new c(o,p,n.count*r),x=new d.BufferAttribute(R,r,k);if(n.sparse!==void 0){const g=D.SCALAR,h=y[n.sparse.indices.componentType],A=n.sparse.indices.byteOffset||0,m=n.sparse.values.byteOffset||0,w=new h(s[1],A,n.sparse.count*g),E=new c(s[2],m,n.sparse.count*r);o!==null&&(x=new d.BufferAttribute(x.array.slice(),x.itemSize,x.normalized)),x.normalized=!1;for(let S=0,M=w.length;S<M;S++){const j=w[S];if(x.setX(j,E[S*r]),r>=2&&x.setY(j,E[S*r+1]),r>=3&&x.setZ(j,E[S*r+2]),r>=4&&x.setW(j,E[S*r+3]),r>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}x.normalized=k}return x})}loadTexture(a){const e=this.json,i=this.options,t=e.textures[a].source,s=e.images[t];let o=this.textureLoader;if(s.uri){const r=i.manager.getHandler(s.uri);r!==null&&(o=r)}return this.loadTextureImage(a,t,o)}loadTextureImage(a,e,i){const n=this,t=this.json,s=t.textures[a],o=t.images[e],r=(o.uri||o.bufferView)+":"+s.sampler;if(this.textureCache[r])return this.textureCache[r];const c=this.loadImageSource(e,i).then(function(l){l.flipY=!1,l.name=s.name||o.name||"",l.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(l.name=o.uri);const p=(t.samplers||{})[s.sampler]||{};return l.magFilter=z[p.magFilter]||d.LinearFilter,l.minFilter=z[p.minFilter]||d.LinearMipmapLinearFilter,l.wrapS=U[p.wrapS]||d.RepeatWrapping,l.wrapT=U[p.wrapT]||d.RepeatWrapping,l.generateMipmaps=!l.isCompressedTexture&&l.minFilter!==d.NearestFilter&&l.minFilter!==d.LinearFilter,n.associations.set(l,{textures:a}),l}).catch(function(){return null});return this.textureCache[r]=c,c}loadImageSource(a,e){const i=this,n=this.json,t=this.options;if(this.sourceCache[a]!==void 0)return this.sourceCache[a].then(b=>b.clone());const s=n.images[a],o=self.URL||self.webkitURL;let r=s.uri||"",c=!1;if(s.bufferView!==void 0)r=i.getDependency("bufferView",s.bufferView).then(function(b){c=!0;const p=new Blob([b],{type:s.mimeType});return r=o.createObjectURL(p),r});else if(s.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+a+" is missing URI and bufferView");const l=Promise.resolve(r).then(function(b){return new Promise(function(p,u){let k=p;e.isImageBitmapLoader===!0&&(k=function(R){const x=new d.Texture(R);x.needsUpdate=!0,p(x)}),e.load(d.LoaderUtils.resolveURL(b,t.path),k,void 0,u)})}).then(function(b){return c===!0&&o.revokeObjectURL(r),L(b,s),b.userData.mimeType=s.mimeType||Oe(s.uri),b}).catch(function(b){throw console.error("THREE.GLTFLoader: Couldn't load texture",r),b});return this.sourceCache[a]=l,l}assignTexture(a,e,i,n){const t=this;return this.getDependency("texture",i.index).then(function(s){if(!s)return null;if(i.texCoord!==void 0&&i.texCoord>0&&(s=s.clone(),s.channel=i.texCoord),t.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=i.extensions!==void 0?i.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const r=t.associations.get(s);s=t.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(s,o),t.associations.set(s,r)}}return n!==void 0&&(s.colorSpace=n),a[e]=s,s})}assignFinalMaterial(a){const e=a.geometry;let i=a.material;const n=e.attributes.tangent===void 0,t=e.attributes.color!==void 0,s=e.attributes.normal===void 0;if(a.isPoints){const o="PointsMaterial:"+i.uuid;let r=this.cache.get(o);r||(r=new d.PointsMaterial,d.Material.prototype.copy.call(r,i),r.color.copy(i.color),r.map=i.map,r.sizeAttenuation=!1,this.cache.add(o,r)),i=r}else if(a.isLine){const o="LineBasicMaterial:"+i.uuid;let r=this.cache.get(o);r||(r=new d.LineBasicMaterial,d.Material.prototype.copy.call(r,i),r.color.copy(i.color),r.map=i.map,this.cache.add(o,r)),i=r}if(n||t||s){let o="ClonedMaterial:"+i.uuid+":";n&&(o+="derivative-tangents:"),t&&(o+="vertex-colors:"),s&&(o+="flat-shading:");let r=this.cache.get(o);r||(r=i.clone(),t&&(r.vertexColors=!0),s&&(r.flatShading=!0),n&&(r.normalScale&&(r.normalScale.y*=-1),r.clearcoatNormalScale&&(r.clearcoatNormalScale.y*=-1)),this.cache.add(o,r),this.associations.set(r,this.associations.get(i))),i=r}a.material=i}getMaterialType(){return d.MeshStandardMaterial}loadMaterial(a){const e=this,i=this.json,n=this.extensions,t=i.materials[a];let s;const o={},r=t.extensions||{},c=[];if(r[T.KHR_MATERIALS_UNLIT]){const b=n[T.KHR_MATERIALS_UNLIT];s=b.getMaterialType(),c.push(b.extendParams(o,t,e))}else{const b=t.pbrMetallicRoughness||{};if(o.color=new d.Color(1,1,1),o.opacity=1,Array.isArray(b.baseColorFactor)){const p=b.baseColorFactor;o.color.setRGB(p[0],p[1],p[2],d.LinearSRGBColorSpace),o.opacity=p[3]}b.baseColorTexture!==void 0&&c.push(e.assignTexture(o,"map",b.baseColorTexture,d.SRGBColorSpace)),o.metalness=b.metallicFactor!==void 0?b.metallicFactor:1,o.roughness=b.roughnessFactor!==void 0?b.roughnessFactor:1,b.metallicRoughnessTexture!==void 0&&(c.push(e.assignTexture(o,"metalnessMap",b.metallicRoughnessTexture)),c.push(e.assignTexture(o,"roughnessMap",b.metallicRoughnessTexture))),s=this._invokeOne(function(p){return p.getMaterialType&&p.getMaterialType(a)}),c.push(Promise.all(this._invokeAll(function(p){return p.extendMaterialParams&&p.extendMaterialParams(a,o)})))}t.doubleSided===!0&&(o.side=d.DoubleSide);const l=t.alphaMode||N.OPAQUE;if(l===N.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,l===N.MASK&&(o.alphaTest=t.alphaCutoff!==void 0?t.alphaCutoff:.5)),t.normalTexture!==void 0&&s!==d.MeshBasicMaterial&&(c.push(e.assignTexture(o,"normalMap",t.normalTexture)),o.normalScale=new d.Vector2(1,1),t.normalTexture.scale!==void 0)){const b=t.normalTexture.scale;o.normalScale.set(b,b)}if(t.occlusionTexture!==void 0&&s!==d.MeshBasicMaterial&&(c.push(e.assignTexture(o,"aoMap",t.occlusionTexture)),t.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=t.occlusionTexture.strength)),t.emissiveFactor!==void 0&&s!==d.MeshBasicMaterial){const b=t.emissiveFactor;o.emissive=new d.Color().setRGB(b[0],b[1],b[2],d.LinearSRGBColorSpace)}return t.emissiveTexture!==void 0&&s!==d.MeshBasicMaterial&&c.push(e.assignTexture(o,"emissiveMap",t.emissiveTexture,d.SRGBColorSpace)),Promise.all(c).then(function(){const b=new s(o);return t.name&&(b.name=t.name),L(b,t),e.associations.set(b,{materials:a}),t.extensions&&v(n,b,t),b})}createUniqueName(a){const e=d.PropertyBinding.sanitizeNodeName(a||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(a){const e=this,i=this.extensions,n=this.primitiveCache;function t(o){return i[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(r){return Q(r,o,e)})}const s=[];for(let o=0,r=a.length;o<r;o++){const c=a[o],l=Me(c),b=n[l];if(b)s.push(b.promise);else{let p;c.extensions&&c.extensions[T.KHR_DRACO_MESH_COMPRESSION]?p=t(c):p=Q(new d.BufferGeometry,c,e),n[l]={primitive:c,promise:p},s.push(p)}}return Promise.all(s)}loadMesh(a){const e=this,i=this.json,n=this.extensions,t=i.meshes[a],s=t.primitives,o=[];for(let r=0,c=s.length;r<c;r++){const l=s[r].material===void 0?Se(this.cache):this.getDependency("material",s[r].material);o.push(l)}return o.push(e.loadGeometries(s)),Promise.all(o).then(function(r){const c=r.slice(0,r.length-1),l=r[r.length-1],b=[];for(let u=0,k=l.length;u<k;u++){const R=l[u],x=s[u];let g;const h=c[u];if(x.mode===F.TRIANGLES||x.mode===F.TRIANGLE_STRIP||x.mode===F.TRIANGLE_FAN||x.mode===void 0)g=t.isSkinnedMesh===!0?new d.SkinnedMesh(R,h):new d.Mesh(R,h),g.isSkinnedMesh===!0&&g.normalizeSkinWeights(),x.mode===F.TRIANGLE_STRIP?g.geometry=I(g.geometry,d.TriangleStripDrawMode):x.mode===F.TRIANGLE_FAN&&(g.geometry=I(g.geometry,d.TriangleFanDrawMode));else if(x.mode===F.LINES)g=new d.LineSegments(R,h);else if(x.mode===F.LINE_STRIP)g=new d.Line(R,h);else if(x.mode===F.LINE_LOOP)g=new d.LineLoop(R,h);else if(x.mode===F.POINTS)g=new d.Points(R,h);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+x.mode);Object.keys(g.geometry.morphAttributes).length>0&&Fe(g,t),g.name=e.createUniqueName(t.name||"mesh_"+a),L(g,t),x.extensions&&v(n,g,x),e.assignFinalMaterial(g),b.push(g)}for(let u=0,k=b.length;u<k;u++)e.associations.set(b[u],{meshes:a,primitives:u});if(b.length===1)return t.extensions&&v(n,b[0],t),b[0];const p=new d.Group;t.extensions&&v(n,p,t),e.associations.set(p,{meshes:a});for(let u=0,k=b.length;u<k;u++)p.add(b[u]);return p})}loadCamera(a){let e;const i=this.json.cameras[a],n=i[i.type];if(!n){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return i.type==="perspective"?e=new d.PerspectiveCamera(d.MathUtils.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):i.type==="orthographic"&&(e=new d.OrthographicCamera(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),i.name&&(e.name=this.createUniqueName(i.name)),L(e,i),Promise.resolve(e)}loadSkin(a){const e=this.json.skins[a],i=[];for(let n=0,t=e.joints.length;n<t;n++)i.push(this._loadNodeShallow(e.joints[n]));return e.inverseBindMatrices!==void 0?i.push(this.getDependency("accessor",e.inverseBindMatrices)):i.push(null),Promise.all(i).then(function(n){const t=n.pop(),s=n,o=[],r=[];for(let c=0,l=s.length;c<l;c++){const b=s[c];if(b){o.push(b);const p=new d.Matrix4;t!==null&&p.fromArray(t.array,c*16),r.push(p)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[c])}return new d.Skeleton(o,r)})}loadAnimation(a){const e=this.json,i=this,n=e.animations[a],t=n.name?n.name:"animation_"+a,s=[],o=[],r=[],c=[],l=[];for(let b=0,p=n.channels.length;b<p;b++){const u=n.channels[b],k=n.samplers[u.sampler],R=u.target,x=R.node,g=n.parameters!==void 0?n.parameters[k.input]:k.input,h=n.parameters!==void 0?n.parameters[k.output]:k.output;R.node!==void 0&&(s.push(this.getDependency("node",x)),o.push(this.getDependency("accessor",g)),r.push(this.getDependency("accessor",h)),c.push(k),l.push(R))}return Promise.all([Promise.all(s),Promise.all(o),Promise.all(r),Promise.all(c),Promise.all(l)]).then(function(b){const p=b[0],u=b[1],k=b[2],R=b[3],x=b[4],g=[];for(let h=0,A=p.length;h<A;h++){const m=p[h],w=u[h],E=k[h],S=R[h],M=x[h];if(m===void 0)continue;m.updateMatrix&&m.updateMatrix();const j=i._createAnimationTracks(m,w,E,S,M);if(j)for(let O=0;O<j.length;O++)g.push(j[O])}return new d.AnimationClip(t,void 0,g)})}createNodeMesh(a){const e=this.json,i=this,n=e.nodes[a];return n.mesh===void 0?null:i.getDependency("mesh",n.mesh).then(function(t){const s=i._getNodeRef(i.meshCache,n.mesh,t);return n.weights!==void 0&&s.traverse(function(o){if(o.isMesh)for(let r=0,c=n.weights.length;r<c;r++)o.morphTargetInfluences[r]=n.weights[r]}),s})}loadNode(a){const e=this.json,i=this,n=e.nodes[a],t=i._loadNodeShallow(a),s=[],o=n.children||[];for(let c=0,l=o.length;c<l;c++)s.push(i.getDependency("node",o[c]));const r=n.skin===void 0?Promise.resolve(null):i.getDependency("skin",n.skin);return Promise.all([t,Promise.all(s),r]).then(function(c){const l=c[0],b=c[1],p=c[2];p!==null&&l.traverse(function(u){u.isSkinnedMesh&&u.bind(p,Le)});for(let u=0,k=b.length;u<k;u++)l.add(b[u]);return l})}_loadNodeShallow(a){const e=this.json,i=this.extensions,n=this;if(this.nodeCache[a]!==void 0)return this.nodeCache[a];const t=e.nodes[a],s=t.name?n.createUniqueName(t.name):"",o=[],r=n._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(a)});return r&&o.push(r),t.camera!==void 0&&o.push(n.getDependency("camera",t.camera).then(function(c){return n._getNodeRef(n.cameraCache,t.camera,c)})),n._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(a)}).forEach(function(c){o.push(c)}),this.nodeCache[a]=Promise.all(o).then(function(c){let l;if(t.isBone===!0?l=new d.Bone:c.length>1?l=new d.Group:c.length===1?l=c[0]:l=new d.Object3D,l!==c[0])for(let b=0,p=c.length;b<p;b++)l.add(c[b]);if(t.name&&(l.userData.name=t.name,l.name=s),L(l,t),t.extensions&&v(i,l,t),t.matrix!==void 0){const b=new d.Matrix4;b.fromArray(t.matrix),l.applyMatrix4(b)}else t.translation!==void 0&&l.position.fromArray(t.translation),t.rotation!==void 0&&l.quaternion.fromArray(t.rotation),t.scale!==void 0&&l.scale.fromArray(t.scale);return n.associations.has(l)||n.associations.set(l,{}),n.associations.get(l).nodes=a,l}),this.nodeCache[a]}loadScene(a){const e=this.extensions,i=this.json.scenes[a],n=this,t=new d.Group;i.name&&(t.name=n.createUniqueName(i.name)),L(t,i),i.extensions&&v(e,t,i);const s=i.nodes||[],o=[];for(let r=0,c=s.length;r<c;r++)o.push(n.getDependency("node",s[r]));return Promise.all(o).then(function(r){for(let l=0,b=r.length;l<b;l++)t.add(r[l]);const c=l=>{const b=new Map;for(const[p,u]of n.associations)(p instanceof d.Material||p instanceof d.Texture)&&b.set(p,u);return l.traverse(p=>{const u=n.associations.get(p);u!=null&&b.set(p,u)}),b};return n.associations=c(t),t})}_createAnimationTracks(a,e,i,n,t){const s=[],o=a.name?a.name:a.uuid,r=[];G[t.path]===G.weights?a.traverse(function(p){p.morphTargetInfluences&&r.push(p.name?p.name:p.uuid)}):r.push(o);let c;switch(G[t.path]){case G.weights:c=d.NumberKeyframeTrack;break;case G.rotation:c=d.QuaternionKeyframeTrack;break;case G.position:case G.scale:c=d.VectorKeyframeTrack;break;default:switch(i.itemSize){case 1:c=d.NumberKeyframeTrack;break;case 2:case 3:default:c=d.VectorKeyframeTrack;break}break}const l=n.interpolation!==void 0?Ee[n.interpolation]:d.InterpolateLinear,b=this._getArrayFromAccessor(i);for(let p=0,u=r.length;p<u;p++){const k=new c(r[p]+"."+G[t.path],e.array,b,l);n.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(k),s.push(k)}return s}_getArrayFromAccessor(a){let e=a.array;if(a.normalized){const i=K(e.constructor),n=new Float32Array(e.length);for(let t=0,s=e.length;t<s;t++)n[t]=e[t]*i;e=n}return e}_createCubicSplineTrackInterpolant(a){a.createInterpolant=function(i){const n=this instanceof d.QuaternionKeyframeTrack?we:V;return new n(this.times,this.values,this.getValueSize()/3,i)},a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function ve(f,a,e){const i=a.attributes,n=new d.Box3;if(i.POSITION!==void 0){const o=e.json.accessors[i.POSITION],r=o.min,c=o.max;if(r!==void 0&&c!==void 0){if(n.set(new d.Vector3(r[0],r[1],r[2]),new d.Vector3(c[0],c[1],c[2])),o.normalized){const l=K(y[o.componentType]);n.min.multiplyScalar(l),n.max.multiplyScalar(l)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const t=a.targets;if(t!==void 0){const o=new d.Vector3,r=new d.Vector3;for(let c=0,l=t.length;c<l;c++){const b=t[c];if(b.POSITION!==void 0){const p=e.json.accessors[b.POSITION],u=p.min,k=p.max;if(u!==void 0&&k!==void 0){if(r.setX(Math.max(Math.abs(u[0]),Math.abs(k[0]))),r.setY(Math.max(Math.abs(u[1]),Math.abs(k[1]))),r.setZ(Math.max(Math.abs(u[2]),Math.abs(k[2]))),p.normalized){const R=K(y[p.componentType]);r.multiplyScalar(R)}o.max(r)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}n.expandByVector(o)}f.boundingBox=n;const s=new d.Sphere;n.getCenter(s.center),s.radius=n.min.distanceTo(n.max)/2,f.boundingSphere=s}function Q(f,a,e){const i=a.attributes,n=[];function t(s,o){return e.getDependency("accessor",s).then(function(r){f.setAttribute(o,r)})}for(const s in i){const o=B[s]||s.toLowerCase();o in f.attributes||n.push(t(i[s],o))}if(a.indices!==void 0&&!f.index){const s=e.getDependency("accessor",a.indices).then(function(o){f.setIndex(o)});n.push(s)}return d.ColorManagement.workingColorSpace!==d.LinearSRGBColorSpace&&"COLOR_0"in i&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${d.ColorManagement.workingColorSpace}" not supported.`),L(f,a),ve(f,a,e),Promise.all(n).then(function(){return a.targets!==void 0?je(f,a.targets,e):f})}const ye=()=>new Z().setMeshoptDecoder(Y),Pe=[[/DRACOLoader/,"Draco (KHR_draco_mesh_compression)"],[/KTX2/,"KTX2 (KHR_texture_basisu)"]],Ce=(f,a)=>{const e=f instanceof Error?f.message:String(f),i=Pe.find(([n])=>n.test(e));return i?new Error(`[xr-sdk] ${a} uses ${i[1]}, which the SDK does not load. Compress models with meshopt and textures with WebP (gltf-transform meshopt / webp). (${e})`):f},X=async(f,a="",e="model")=>{try{return await ye().parseAsync(f,a)}catch(i){throw Ce(i,e)}},_e=()=>{const f=new Map;return a=>{const e=f.get(a);if(e)return e;const i=J.fetchAndVerify(a).then(n=>X(n,"",a)).catch(n=>{throw f.delete(a),n});return f.set(a,i),i}},De=["portrait"],Ne=["hair","multiclass"];exports.SEGMENTATION_TYPES=De;exports.SEMANTIC_SEGMENTATION_PRESETS=Ne;exports.createVerifiedGltfLoader=_e;exports.parseGltf=X;
@@ -23,6 +23,12 @@ export type SemanticMask = {
23
23
  * `0` means "no data yet"; overlays draw nothing until the first bump.
24
24
  */
25
25
  version: number;
26
+ /**
27
+ * `performance.now()` of the frame the mask was computed from, when the
28
+ * producer knows it (the SDK's segmenters do): pair it with tracking from
29
+ * the same moment, since a mask arrives later than the frame it shows.
30
+ */
31
+ timestampMs?: number;
26
32
  };
27
33
  export type SemanticMaskSpace = "feed" | "source";
28
34
  /**
@@ -0,0 +1 @@
1
+ "use strict";const f=require("three"),o=require("./index-D5GTzOzD.cjs"),F=require("./index-CfSF8LXa.cjs"),x=(e,n)=>{if(!Number.isFinite(e)||e<=0)throw new RangeError(`${n} must be positive`);return e},C=(e,n)=>{const t=x(n.width,"root.width"),i=x(n.height,"root.height");return!Number.isFinite(e.width)||!Number.isFinite(e.height)||e.width<=0||e.height<=0?0:Math.min(e.width/t,e.height/i)},R=(e,n,t,i)=>n.width<=0||n.height<=0?Object.assign(i,{x:0,y:0}):(x(t.width,"root.width"),x(t.height,"root.height"),i.x=(e.x/n.width-.5)*t.width,i.y=(.5-e.y/n.height)*t.height,i),a=(e,n,t,i)=>n.width<=0||n.height<=0?Object.assign(i,{x:0,y:0}):(x(t.width,"root.width"),x(t.height,"root.height"),i.x=(e.x/t.width+.5)*n.width,i.y=(.5-e.y/t.height)*n.height,i),O=({parentSize:e,referencePixelsPerUnit:n=o.DEFAULT_REFERENCE_PIXELS_PER_UNIT,root:t=o.DEFAULT_SCREEN_TRANSFORM_ROOT})=>C(e,t)*(o.DEFAULT_REFERENCE_PIXELS_PER_UNIT/x(n,"referencePixelsPerUnit")),L=(e,n)=>e*O(n),I=(e,n)=>{const t=O(n);return t===0?0:e/t},b=({point:e,parentSize:n,referencePixelsPerUnit:t=o.DEFAULT_REFERENCE_PIXELS_PER_UNIT,root:i=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:s={x:0,y:0}})=>{if(n.width<=0||n.height<=0)return Object.assign(s,{x:0,y:0});const c=o.DEFAULT_REFERENCE_PIXELS_PER_UNIT/x(t,"referencePixelsPerUnit");return s.x=e.x*(n.width/x(i.width,"root.width"))*c,s.y=e.y*(n.height/x(i.height,"root.height"))*c,s},M=({point:e,parentSize:n,referencePixelsPerUnit:t=o.DEFAULT_REFERENCE_PIXELS_PER_UNIT,root:i=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:s={x:0,y:0}})=>{if(n.width<=0||n.height<=0)return Object.assign(s,{x:0,y:0});const c=o.DEFAULT_REFERENCE_PIXELS_PER_UNIT/x(t,"referencePixelsPerUnit");return s.x=e.x/(n.width/x(i.width,"root.width")*c),s.y=e.y/(n.height/x(i.height,"root.height")*c),s},D=({point:e,rect:n,root:t=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:i={x:0,y:0}})=>R({x:e.x-n.left,y:e.y-n.top},n,t,i),g=({point:e,rect:n,root:t=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:i={x:0,y:0}})=>(a(e,n,t,i),i.x+=n.left,i.y+=n.top,i),_=({point:e,root:n=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:t={x:0,y:0},viewportSize:i})=>R({x:e.x*i.width,y:e.y*i.height},i,n,t),N=({point:e,root:n=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:t={x:0,y:0},viewportSize:i})=>i.width<=0||i.height<=0?Object.assign(t,{x:0,y:0}):(a(e,i,n,t),t.x/=i.width,t.y/=i.height,t),X=({point:e,root:n=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:t={x:0,y:0},viewportSize:i})=>_({point:{x:(e.x+1)/2,y:(1-e.y)/2},viewportSize:i,root:n,target:t}),j=({layout:e,mirrored:n=!1,point:t,root:i=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:s={x:0,y:0}})=>{if(e.scale<=0)return Object.assign(s,{x:0,y:0});const c=e.offsetX+t.x*e.scale;return R({x:n?e.destination.width-c:c,y:e.offsetY+t.y*e.scale},e.destination,i,s)},k=({layout:e,mirrored:n=!1,point:t,root:i=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:s={x:0,y:0}})=>{if(e.scale<=0)return Object.assign(s,{x:0,y:0});a(t,e.destination,i,s);const c=n?e.destination.width-s.x:s.x;return s.x=(c-e.offsetX)/e.scale,s.y=(s.y-e.offsetY)/e.scale,s},y=new f.Vector3,u=new f.Vector2,P=new f.Raycaster,Y=({camera:e,point:n,root:t=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:i={x:0,y:0,depth:0},viewportSize:s})=>(x(t.width,"root.width"),x(t.height,"root.height"),y.set(n.x,n.y,n.z).project(e),i.x=y.x*t.width/2,i.y=y.y*t.height/2,i.depth=y.z,i),B=({camera:e,point:n,root:t=o.DEFAULT_SCREEN_TRANSFORM_ROOT,target:i=new f.Ray,viewportSize:s})=>(x(t.width,"root.width"),x(t.height,"root.height"),u.set(n.x*2/t.width,n.y*2/t.height),P.setFromCamera(u,e),i.copy(P.ray)),J=(e,n)=>F.normalizedTrackerPointToTrackerPoint({x:e.x,y:e.y,z:e.z??0},n),w=(e,n={x:0,y:0})=>{const t=F.trackerPointToNormalizedTrackerPoint(e);return n.x=t.x,n.y=t.y,n.z=t.z,n},V=(e,n,t={x:0,y:0})=>(t.x=e.x*n.width,t.y=e.y*n.height,t),q=(e,n,t={x:0,y:0})=>n.width<=0||n.height<=0?Object.assign(t,{x:0,y:0}):(t.x=e.x/n.width,t.y=e.y/n.height,t),H=(e,n,t={})=>_({point:e,viewportSize:n,root:t.root,target:t.target}),$=(e,n,t={})=>{const i=t.target??{x:0,y:0};return N({point:e,viewportSize:n,root:t.root,target:i}),i},U={selection:"index",index:0},W=Object.freeze({face:{max:10,default:1,option:"numFaces"},hand:{max:2,default:2,option:null},gesture:{max:1,default:1,option:null},body:{max:1,default:1,option:null},holistic:{max:1,default:1,option:null}}),m={center:null},T=(e,n)=>Math.hypot(e.x-n.x,e.y-n.y),S=(e,n,t)=>{if(!e.length)return null;switch(n){case"largest":return e.reduce((i,s)=>s.size>i.size?s:i);case"nearest-center":return e.reduce((i,s)=>T(s.center,{x:.5,y:.5})<T(i.center,{x:.5,y:.5})?s:i);case"leftmost":return e.reduce((i,s)=>s.center.x<i.center.x?s:i);case"rightmost":return e.reduce((i,s)=>s.center.x>i.center.x?s:i);default:return e.find(i=>i.index===t)??null}},G=(e,n=U,t=m)=>{const i=n.index??0;if(n.selection!=="sticky"){const r=S(e,n.selection,i);return{index:(r==null?void 0:r.index)??null,reason:r?n.selection:"none",memory:r?{center:{...r.center},label:r.label}:t}}const s=n.stickyRadius??.2;if(t.center){const r=t.center,h=e.filter(E=>T(E.center,r)<=s).sort((E,A)=>T(E.center,r)-T(A.center,r)),l=(t.label?h.find(E=>E.label===t.label):void 0)??h[0];if(l)return{index:l.index,reason:"sticky",memory:{center:{...l.center},label:l.label}}}const c=S(e,n.fallback??"largest",i);return{index:(c==null?void 0:c.index)??null,reason:c?"sticky-fallback":"none",memory:c?{center:{...c.center},label:c.label}:t}},K=e=>e.map((n,t)=>{let i=1/0,s=-1/0,c=1/0,r=-1/0;for(const d of n)d.x<i&&(i=d.x),d.x>s&&(s=d.x),d.y<c&&(c=d.y),d.y>r&&(r=d.y);const h=n.length>0&&Number.isFinite(i);return{index:t,center:h?{x:(i+s)/2,y:(c+r)/2}:{x:.5,y:.5},size:h?s-i:0}}),Q=e=>e.map((n,t)=>{const i=(n.coordinates??[]).map(l=>w(l));let s=1/0,c=-1/0,r=1/0,h=-1/0;for(const l of i)l.x<s&&(s=l.x),l.x>c&&(c=l.x),l.y<r&&(r=l.y),l.y>h&&(h=l.y);const d=i.length>0;return{index:t,center:d?{x:(s+c)/2,y:(r+h)/2}:{x:.5,y:.5},size:d?Math.max(c-s,h-r):0,...n.label?{label:n.label}:{}}}),Z=(e,n,t=.35)=>{const i=[];for(const r of e)for(const h of n){const d=T(r.center,h.center);d<=t&&i.push({primaryIndex:r.index,secondaryIndex:h.index,distance:d})}i.sort((r,h)=>r.distance-h.distance);const s=new Set,c=new Set;return i.filter(r=>s.has(r.primaryIndex)||c.has(r.secondaryIndex)?!1:(s.add(r.primaryIndex),c.add(r.secondaryIndex),!0))};exports.DEFAULT_SUBJECT_POLICY=U;exports.EMPTY_SUBJECT_MEMORY=m;exports.XR_MAX_SUBJECTS=W;exports.associateSubjects=Z;exports.clientToScreenPixels=D;exports.faceCandidates=K;exports.feedToScreenPixels=H;exports.feedToTracker=J;exports.feedToViewport=V;exports.jointCandidates=Q;exports.mediaToScreenPixels=j;exports.normalizedToScreenPixels=_;exports.screenPixelsToClient=g;exports.screenPixelsToFeed=$;exports.screenPixelsToMedia=k;exports.screenPixelsToNormalized=N;exports.screenPixelsToScreenSpace=b;exports.screenPixelsToUnits=L;exports.screenPointToRay=B;exports.screenSpaceToScreenPixels=M;exports.screenUnitsToPixels=I;exports.selectSubject=G;exports.trackerPointToScreenPixels=X;exports.trackerToFeed=w;exports.viewportToFeed=q;exports.worldToScreenPixels=Y;
@@ -0,0 +1,233 @@
1
+ import { Vector2 as F, Raycaster as O, Ray as R, Vector3 as j } from "three";
2
+ import { D as l, a as y } from "./index-DBhQzvVa.js";
3
+ import { n as k, b as U } from "./index-CIe7eCMH.js";
4
+ const o = (e, n) => {
5
+ if (!Number.isFinite(e) || e <= 0) throw new RangeError(`${n} must be positive`);
6
+ return e;
7
+ }, _ = (e, n) => {
8
+ const t = o(n.width, "root.width"), s = o(n.height, "root.height");
9
+ return !Number.isFinite(e.width) || !Number.isFinite(e.height) || e.width <= 0 || e.height <= 0 ? 0 : Math.min(e.width / t, e.height / s);
10
+ }, m = (e, n, t, s) => n.width <= 0 || n.height <= 0 ? Object.assign(s, { x: 0, y: 0 }) : (o(t.width, "root.width"), o(t.height, "root.height"), s.x = (e.x / n.width - 0.5) * t.width, s.y = (0.5 - e.y / n.height) * t.height, s), w = (e, n, t, s) => n.width <= 0 || n.height <= 0 ? Object.assign(s, { x: 0, y: 0 }) : (o(t.width, "root.width"), o(t.height, "root.height"), s.x = (e.x / t.width + 0.5) * n.width, s.y = (0.5 - e.y / t.height) * n.height, s), g = ({
11
+ parentSize: e,
12
+ referencePixelsPerUnit: n = y,
13
+ root: t = l
14
+ }) => _(e, t) * (y / o(n, "referencePixelsPerUnit")), A = (e, n) => e * g(n), D = (e, n) => {
15
+ const t = g(n);
16
+ return t === 0 ? 0 : e / t;
17
+ }, B = ({
18
+ point: e,
19
+ parentSize: n,
20
+ referencePixelsPerUnit: t = y,
21
+ root: s = l,
22
+ target: i = { x: 0, y: 0 }
23
+ }) => {
24
+ if (n.width <= 0 || n.height <= 0) return Object.assign(i, { x: 0, y: 0 });
25
+ const r = y / o(t, "referencePixelsPerUnit");
26
+ return i.x = e.x * (n.width / o(s.width, "root.width")) * r, i.y = e.y * (n.height / o(s.height, "root.height")) * r, i;
27
+ }, V = ({
28
+ point: e,
29
+ parentSize: n,
30
+ referencePixelsPerUnit: t = y,
31
+ root: s = l,
32
+ target: i = { x: 0, y: 0 }
33
+ }) => {
34
+ if (n.width <= 0 || n.height <= 0) return Object.assign(i, { x: 0, y: 0 });
35
+ const r = y / o(t, "referencePixelsPerUnit");
36
+ return i.x = e.x / (n.width / o(s.width, "root.width") * r), i.y = e.y / (n.height / o(s.height, "root.height") * r), i;
37
+ }, J = ({
38
+ point: e,
39
+ rect: n,
40
+ root: t = l,
41
+ target: s = { x: 0, y: 0 }
42
+ }) => m({ x: e.x - n.left, y: e.y - n.top }, n, t, s), q = ({
43
+ point: e,
44
+ rect: n,
45
+ root: t = l,
46
+ target: s = { x: 0, y: 0 }
47
+ }) => (w(e, n, t, s), s.x += n.left, s.y += n.top, s), E = ({
48
+ point: e,
49
+ root: n = l,
50
+ target: t = { x: 0, y: 0 },
51
+ viewportSize: s
52
+ }) => m(
53
+ { x: e.x * s.width, y: e.y * s.height },
54
+ s,
55
+ n,
56
+ t
57
+ ), S = ({
58
+ point: e,
59
+ root: n = l,
60
+ target: t = { x: 0, y: 0 },
61
+ viewportSize: s
62
+ }) => s.width <= 0 || s.height <= 0 ? Object.assign(t, { x: 0, y: 0 }) : (w(e, s, n, t), t.x /= s.width, t.y /= s.height, t), H = ({
63
+ point: e,
64
+ root: n = l,
65
+ target: t = { x: 0, y: 0 },
66
+ viewportSize: s
67
+ }) => E({
68
+ point: { x: (e.x + 1) / 2, y: (1 - e.y) / 2 },
69
+ viewportSize: s,
70
+ root: n,
71
+ target: t
72
+ }), W = ({
73
+ layout: e,
74
+ mirrored: n = !1,
75
+ point: t,
76
+ root: s = l,
77
+ target: i = { x: 0, y: 0 }
78
+ }) => {
79
+ if (e.scale <= 0) return Object.assign(i, { x: 0, y: 0 });
80
+ const r = e.offsetX + t.x * e.scale;
81
+ return m(
82
+ {
83
+ x: n ? e.destination.width - r : r,
84
+ y: e.offsetY + t.y * e.scale
85
+ },
86
+ e.destination,
87
+ s,
88
+ i
89
+ );
90
+ }, $ = ({
91
+ layout: e,
92
+ mirrored: n = !1,
93
+ point: t,
94
+ root: s = l,
95
+ target: i = { x: 0, y: 0 }
96
+ }) => {
97
+ if (e.scale <= 0) return Object.assign(i, { x: 0, y: 0 });
98
+ w(t, e.destination, s, i);
99
+ const r = n ? e.destination.width - i.x : i.x;
100
+ return i.x = (r - e.offsetX) / e.scale, i.y = (i.y - e.offsetY) / e.scale, i;
101
+ }, u = new j(), T = new F(), P = new O(), G = ({
102
+ camera: e,
103
+ point: n,
104
+ root: t = l,
105
+ target: s = { x: 0, y: 0, depth: 0 },
106
+ viewportSize: i
107
+ }) => (o(t.width, "root.width"), o(t.height, "root.height"), u.set(n.x, n.y, n.z).project(e), s.x = u.x * t.width / 2, s.y = u.y * t.height / 2, s.depth = u.z, s), K = ({
108
+ camera: e,
109
+ point: n,
110
+ root: t = l,
111
+ target: s = new R(),
112
+ viewportSize: i
113
+ }) => (o(t.width, "root.width"), o(t.height, "root.height"), T.set(n.x * 2 / t.width, n.y * 2 / t.height), P.setFromCamera(T, e), s.copy(P.ray)), Q = (e, n) => k({ x: e.x, y: e.y, z: e.z ?? 0 }, n), C = (e, n = { x: 0, y: 0 }) => {
114
+ const t = U(e);
115
+ return n.x = t.x, n.y = t.y, n.z = t.z, n;
116
+ }, Z = (e, n, t = { x: 0, y: 0 }) => (t.x = e.x * n.width, t.y = e.y * n.height, t), p = (e, n, t = { x: 0, y: 0 }) => n.width <= 0 || n.height <= 0 ? Object.assign(t, { x: 0, y: 0 }) : (t.x = e.x / n.width, t.y = e.y / n.height, t), z = (e, n, t = {}) => E({
117
+ point: e,
118
+ viewportSize: n,
119
+ root: t.root,
120
+ target: t.target
121
+ }), v = (e, n, t = {}) => {
122
+ const s = t.target ?? { x: 0, y: 0 };
123
+ return S({ point: e, viewportSize: n, root: t.root, target: s }), s;
124
+ }, N = { selection: "index", index: 0 }, ee = Object.freeze({
125
+ face: { max: 10, default: 1, option: "numFaces" },
126
+ hand: { max: 2, default: 2, option: null },
127
+ gesture: { max: 1, default: 1, option: null },
128
+ body: { max: 1, default: 1, option: null },
129
+ holistic: { max: 1, default: 1, option: null }
130
+ }), X = { center: null }, a = (e, n) => Math.hypot(e.x - n.x, e.y - n.y), b = (e, n, t) => {
131
+ if (!e.length) return null;
132
+ switch (n) {
133
+ case "largest":
134
+ return e.reduce((s, i) => i.size > s.size ? i : s);
135
+ case "nearest-center":
136
+ return e.reduce(
137
+ (s, i) => a(i.center, { x: 0.5, y: 0.5 }) < a(s.center, { x: 0.5, y: 0.5 }) ? i : s
138
+ );
139
+ case "leftmost":
140
+ return e.reduce((s, i) => i.center.x < s.center.x ? i : s);
141
+ case "rightmost":
142
+ return e.reduce((s, i) => i.center.x > s.center.x ? i : s);
143
+ default:
144
+ return e.find((s) => s.index === t) ?? null;
145
+ }
146
+ }, ne = (e, n = N, t = X) => {
147
+ const s = n.index ?? 0;
148
+ if (n.selection !== "sticky") {
149
+ const c = b(e, n.selection, s);
150
+ return {
151
+ index: (c == null ? void 0 : c.index) ?? null,
152
+ reason: c ? n.selection : "none",
153
+ memory: c ? { center: { ...c.center }, label: c.label } : t
154
+ };
155
+ }
156
+ const i = n.stickyRadius ?? 0.2;
157
+ if (t.center) {
158
+ const c = t.center, h = e.filter((f) => a(f.center, c) <= i).sort((f, I) => a(f.center, c) - a(I.center, c)), d = (t.label ? h.find((f) => f.label === t.label) : void 0) ?? h[0];
159
+ if (d)
160
+ return {
161
+ index: d.index,
162
+ reason: "sticky",
163
+ memory: { center: { ...d.center }, label: d.label }
164
+ };
165
+ }
166
+ const r = b(e, n.fallback ?? "largest", s);
167
+ return {
168
+ index: (r == null ? void 0 : r.index) ?? null,
169
+ reason: r ? "sticky-fallback" : "none",
170
+ // Keep the old memory on a miss so a brief dropout does not forget the subject.
171
+ memory: r ? { center: { ...r.center }, label: r.label } : t
172
+ };
173
+ }, te = (e) => e.map((n, t) => {
174
+ let s = 1 / 0, i = -1 / 0, r = 1 / 0, c = -1 / 0;
175
+ for (const x of n)
176
+ x.x < s && (s = x.x), x.x > i && (i = x.x), x.y < r && (r = x.y), x.y > c && (c = x.y);
177
+ const h = n.length > 0 && Number.isFinite(s);
178
+ return {
179
+ index: t,
180
+ center: h ? { x: (s + i) / 2, y: (r + c) / 2 } : { x: 0.5, y: 0.5 },
181
+ size: h ? i - s : 0
182
+ };
183
+ }), se = (e) => e.map((n, t) => {
184
+ const s = (n.coordinates ?? []).map((d) => C(d));
185
+ let i = 1 / 0, r = -1 / 0, c = 1 / 0, h = -1 / 0;
186
+ for (const d of s)
187
+ d.x < i && (i = d.x), d.x > r && (r = d.x), d.y < c && (c = d.y), d.y > h && (h = d.y);
188
+ const x = s.length > 0;
189
+ return {
190
+ index: t,
191
+ center: x ? { x: (i + r) / 2, y: (c + h) / 2 } : { x: 0.5, y: 0.5 },
192
+ size: x ? Math.max(r - i, h - c) : 0,
193
+ ...n.label ? { label: n.label } : {}
194
+ };
195
+ }), ie = (e, n, t = 0.35) => {
196
+ const s = [];
197
+ for (const c of e)
198
+ for (const h of n) {
199
+ const x = a(c.center, h.center);
200
+ x <= t && s.push({ primaryIndex: c.index, secondaryIndex: h.index, distance: x });
201
+ }
202
+ s.sort((c, h) => c.distance - h.distance);
203
+ const i = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
204
+ return s.filter((c) => i.has(c.primaryIndex) || r.has(c.secondaryIndex) ? !1 : (i.add(c.primaryIndex), r.add(c.secondaryIndex), !0));
205
+ };
206
+ export {
207
+ N as D,
208
+ X as E,
209
+ ee as X,
210
+ A as a,
211
+ q as b,
212
+ J as c,
213
+ $ as d,
214
+ S as e,
215
+ B as f,
216
+ K as g,
217
+ V as h,
218
+ D as i,
219
+ z as j,
220
+ Q as k,
221
+ Z as l,
222
+ W as m,
223
+ E as n,
224
+ v as o,
225
+ C as p,
226
+ ie as q,
227
+ te as r,
228
+ ne as s,
229
+ H as t,
230
+ se as u,
231
+ p as v,
232
+ G as w
233
+ };
@@ -0,0 +1 @@
1
+ "use strict";const t=require("react"),c=require("./index-CfSF8LXa.cjs"),o=()=>c.useXRContext().session.store,s=e=>r=>e.subscribe(r),g=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().ready,()=>!1)},S=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().error,()=>{})},d=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().lifecycle,()=>"idle")},h=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().modelErrors,()=>p)},p=new Map,R=()=>{const e=o(),r=t.useSyncExternalStore(s(e),()=>e.getSnapshot().sourceKind,()=>{});return c.isMirroredSourceKind(r)},y=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().orientation,()=>E)},E={type:"portrait",angle:0},X=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().cameraDeviceId,()=>null)},x=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().qualityConfig,()=>null)},m=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().quality,()=>null)},f=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().cameraFacing,()=>null)},M=()=>{const e=o(),r=t.useSyncExternalStore(s(e),()=>e.getSnapshot().cameraPermission,()=>"unknown"),n=t.useSyncExternalStore(s(e),()=>e.getSnapshot().cameraPermissionReason,()=>null);return t.useMemo(()=>({state:r,reason:n}),[r,n])},C=e=>{const r=o(),{session:n}=c.useXRContext(),u=S(),a=t.useSyncExternalStore(s(r),()=>r.getSnapshot().pipeline.get(e)??null,()=>null),i=t.useSyncExternalStore(s(r),()=>r.getSnapshot().modelErrors.get(e)??null,()=>null),l=d();return t.useMemo(()=>i?{status:"error",fallback:c.mapModelErrorToReason(i.error)}:u?{status:"blocked",fallback:c.sessionReasonToFallback(u.reason)}:a?{status:"ready",fallback:null}:{status:n.registry.getState(e)==="initializing"?"loading":"unavailable",fallback:null},[i,u,a,n,e,l])},b=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>e.getSnapshot().cameraTexture,()=>{})},k=()=>{const e=o(),r=t.useSyncExternalStore(s(e),()=>e.getSnapshot().renderWidth,()=>0),n=t.useSyncExternalStore(s(e),()=>e.getSnapshot().renderHeight,()=>0);return t.useMemo(()=>({width:r,height:n}),[r,n])},T=()=>{const e=o();return t.useSyncExternalStore(s(e),()=>{const{renderWidth:r,renderHeight:n,sourceWidth:u,sourceHeight:a}=e.getSnapshot();return r>0&&n>0?r/n:u>0&&a>0?u/a:1},()=>1)},F=()=>{const e=o(),r=t.useSyncExternalStore(s(e),()=>e.getSnapshot().sourceWidth,()=>0),n=t.useSyncExternalStore(s(e),()=>e.getSnapshot().sourceHeight,()=>0),u=t.useSyncExternalStore(s(e),()=>e.getSnapshot().renderWidth,()=>0),a=t.useSyncExternalStore(s(e),()=>e.getSnapshot().renderHeight,()=>0),i=t.useSyncExternalStore(s(e),()=>e.getSnapshot().cameraZoom,()=>1.2),l=t.useSyncExternalStore(s(e),()=>e.getSnapshot().sourceKind,()=>{});return t.useMemo(()=>c.computeFeedCrop({source:{width:r,height:n},feed:{width:u,height:a},zoom:i,mirrored:c.isMirroredSourceKind(l)}),[r,n,u,a,i,l])},v=e=>{const r=o(),n=t.useSyncExternalStore(s(r),()=>r.getSnapshot().pipeline.get(e)??null,()=>null);return t.useMemo(()=>n?n.getModelNode():null,[n])},H=()=>{const e=o(),r=t.useSyncExternalStore(s(e),()=>e.getSnapshot().pipeline,()=>e.getSnapshot().pipeline);return t.useMemo(()=>Array.from(r.keys()),[r])};exports.useXRCameraDeviceId=X;exports.useXRCameraFacing=f;exports.useXRCameraTexture=b;exports.useXRError=S;exports.useXRFeedAspect=T;exports.useXRFeedCrop=F;exports.useXRLifecycle=d;exports.useXRMirrored=R;exports.useXRModelErrors=h;exports.useXRModelNode=v;exports.useXROrientation=y;exports.useXRPipelineSnapshot=H;exports.useXRQualityConfig=x;exports.useXRQualityState=m;exports.useXRReady=g;exports.useXRRenderSize=k;exports.useXRSessionCameraPermission=M;exports.useXRTrackerStatus=C;
@@ -0,0 +1,196 @@
1
+ import { useSyncExternalStore as s, useMemo as u } from "react";
2
+ import { u as d, m as g, s as p, i as h, c as S } from "./index-CIe7eCMH.js";
3
+ const r = () => d().session.store, o = (e) => (t) => e.subscribe(t), k = () => {
4
+ const e = r();
5
+ return s(
6
+ o(e),
7
+ () => e.getSnapshot().ready,
8
+ () => !1
9
+ );
10
+ }, R = () => {
11
+ const e = r();
12
+ return s(
13
+ o(e),
14
+ () => e.getSnapshot().error,
15
+ () => {
16
+ }
17
+ );
18
+ }, m = () => {
19
+ const e = r();
20
+ return s(
21
+ o(e),
22
+ () => e.getSnapshot().lifecycle,
23
+ () => "idle"
24
+ );
25
+ }, M = () => {
26
+ const e = r();
27
+ return s(
28
+ o(e),
29
+ () => e.getSnapshot().modelErrors,
30
+ () => f
31
+ );
32
+ }, f = /* @__PURE__ */ new Map(), C = () => {
33
+ const e = r(), t = s(
34
+ o(e),
35
+ () => e.getSnapshot().sourceKind,
36
+ () => {
37
+ }
38
+ );
39
+ return h(t);
40
+ }, T = () => {
41
+ const e = r();
42
+ return s(
43
+ o(e),
44
+ () => e.getSnapshot().orientation,
45
+ () => X
46
+ );
47
+ }, X = { type: "portrait", angle: 0 }, v = () => {
48
+ const e = r();
49
+ return s(
50
+ o(e),
51
+ () => e.getSnapshot().cameraDeviceId,
52
+ () => null
53
+ );
54
+ }, F = () => {
55
+ const e = r();
56
+ return s(
57
+ o(e),
58
+ () => e.getSnapshot().qualityConfig,
59
+ () => null
60
+ );
61
+ }, H = () => {
62
+ const e = r();
63
+ return s(
64
+ o(e),
65
+ () => e.getSnapshot().quality,
66
+ () => null
67
+ );
68
+ }, W = () => {
69
+ const e = r();
70
+ return s(
71
+ o(e),
72
+ () => e.getSnapshot().cameraFacing,
73
+ () => null
74
+ );
75
+ }, w = () => {
76
+ const e = r(), t = s(
77
+ o(e),
78
+ () => e.getSnapshot().cameraPermission,
79
+ () => "unknown"
80
+ ), n = s(
81
+ o(e),
82
+ () => e.getSnapshot().cameraPermissionReason,
83
+ () => null
84
+ );
85
+ return u(() => ({ state: t, reason: n }), [t, n]);
86
+ }, x = (e) => {
87
+ const t = r(), { session: n } = d(), a = R(), c = s(
88
+ o(t),
89
+ () => t.getSnapshot().pipeline.get(e) ?? null,
90
+ () => null
91
+ ), i = s(
92
+ o(t),
93
+ () => t.getSnapshot().modelErrors.get(e) ?? null,
94
+ () => null
95
+ ), l = m();
96
+ return u(() => i ? { status: "error", fallback: g(i.error) } : a ? { status: "blocked", fallback: p(a.reason) } : c ? { status: "ready", fallback: null } : { status: n.registry.getState(e) === "initializing" ? "loading" : "unavailable", fallback: null }, [i, a, c, n, e, l]);
97
+ }, O = () => {
98
+ const e = r();
99
+ return s(
100
+ o(e),
101
+ () => e.getSnapshot().cameraTexture,
102
+ () => {
103
+ }
104
+ );
105
+ }, P = () => {
106
+ const e = r(), t = s(
107
+ o(e),
108
+ () => e.getSnapshot().renderWidth,
109
+ () => 0
110
+ ), n = s(
111
+ o(e),
112
+ () => e.getSnapshot().renderHeight,
113
+ () => 0
114
+ );
115
+ return u(() => ({ width: t, height: n }), [t, n]);
116
+ }, A = () => {
117
+ const e = r();
118
+ return s(
119
+ o(e),
120
+ () => {
121
+ const { renderWidth: t, renderHeight: n, sourceWidth: a, sourceHeight: c } = e.getSnapshot();
122
+ return t > 0 && n > 0 ? t / n : a > 0 && c > 0 ? a / c : 1;
123
+ },
124
+ () => 1
125
+ );
126
+ }, D = () => {
127
+ const e = r(), t = s(
128
+ o(e),
129
+ () => e.getSnapshot().sourceWidth,
130
+ () => 0
131
+ ), n = s(
132
+ o(e),
133
+ () => e.getSnapshot().sourceHeight,
134
+ () => 0
135
+ ), a = s(
136
+ o(e),
137
+ () => e.getSnapshot().renderWidth,
138
+ () => 0
139
+ ), c = s(
140
+ o(e),
141
+ () => e.getSnapshot().renderHeight,
142
+ () => 0
143
+ ), i = s(
144
+ o(e),
145
+ () => e.getSnapshot().cameraZoom,
146
+ () => 1.2
147
+ ), l = s(
148
+ o(e),
149
+ () => e.getSnapshot().sourceKind,
150
+ () => {
151
+ }
152
+ );
153
+ return u(
154
+ () => S({
155
+ source: { width: t, height: n },
156
+ feed: { width: a, height: c },
157
+ zoom: i,
158
+ mirrored: h(l)
159
+ }),
160
+ [t, n, a, c, i, l]
161
+ );
162
+ }, I = (e) => {
163
+ const t = r(), n = s(
164
+ o(t),
165
+ () => t.getSnapshot().pipeline.get(e) ?? null,
166
+ () => null
167
+ );
168
+ return u(() => n ? n.getModelNode() : null, [n]);
169
+ }, K = () => {
170
+ const e = r(), t = s(
171
+ o(e),
172
+ () => e.getSnapshot().pipeline,
173
+ () => e.getSnapshot().pipeline
174
+ );
175
+ return u(() => Array.from(t.keys()), [t]);
176
+ };
177
+ export {
178
+ F as a,
179
+ I as b,
180
+ O as c,
181
+ k as d,
182
+ C as e,
183
+ R as f,
184
+ A as g,
185
+ m as h,
186
+ M as i,
187
+ x as j,
188
+ w as k,
189
+ W as l,
190
+ v as m,
191
+ T as n,
192
+ P as o,
193
+ D as p,
194
+ K as q,
195
+ H as u
196
+ };