@realsee/dnalogel 3.69.13 → 3.69.14

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 (581) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/index.cjs.js +34 -34
  3. package/dist/index.js +948 -950
  4. package/dist/index.umd.js +33 -33
  5. package/docs/classes/AreaMakerPluginType.AreaMakerController.html +2 -2
  6. package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +2 -2
  7. package/docs/classes/CSS3DRender.html +2 -2
  8. package/docs/classes/GuideLineItem.GuideLineItem.html +2 -2
  9. package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +2 -2
  10. package/docs/classes/ModelMakerPluginInstance.html +2 -2
  11. package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +2 -2
  12. package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +2 -2
  13. package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +2 -2
  14. package/docs/classes/ModelRoomLabelController.html +2 -2
  15. package/docs/classes/MoveController.html +2 -2
  16. package/docs/classes/Object3DHelperController.html +2 -2
  17. package/docs/classes/PaintBrush.html +2 -2
  18. package/docs/classes/PanoMeasurePluginLine.html +2 -2
  19. package/docs/classes/PanoMeasurePluginModel.html +2 -2
  20. package/docs/classes/PanoMeasurePluginPoint.html +2 -2
  21. package/docs/classes/PanoMeasurePluginPolyline.html +2 -2
  22. package/docs/classes/PanoTagPluginController.html +2 -2
  23. package/docs/classes/Sculpt.html +2 -2
  24. package/docs/classes/Util.BetterTween.html +2 -2
  25. package/docs/classes/Util.FiveDomEvents.html +2 -2
  26. package/docs/classes/Util.FivePuppet.html +2 -2
  27. package/docs/classes/Util.Interval.html +2 -2
  28. package/docs/classes/Util.LegacyPointHelper.html +2 -2
  29. package/docs/classes/Util.LightTag.html +2 -2
  30. package/docs/classes/Util.LineSegments.html +2 -2
  31. package/docs/classes/Util.Magnifier.html +2 -2
  32. package/docs/classes/Util.Object3D.html +2 -2
  33. package/docs/classes/Util.PointDomHelper.html +2 -2
  34. package/docs/classes/Util.PointHelper.html +2 -2
  35. package/docs/classes/Util.PointSelector.html +2 -2
  36. package/docs/classes/Util.PointSelectorHelper.html +2 -2
  37. package/docs/classes/Util.Rectangle.html +2 -2
  38. package/docs/classes/Util.sculpt.BaseEditor.html +2 -2
  39. package/docs/classes/Util.sculpt.BoxMesh.html +2 -2
  40. package/docs/classes/Util.sculpt.BoxMeshEditor.html +2 -2
  41. package/docs/classes/Util.sculpt.CircleMesh.html +2 -2
  42. package/docs/classes/Util.sculpt.CircleMeshEditor.html +2 -2
  43. package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +2 -2
  44. package/docs/classes/Util.sculpt.CylinderMesh.html +2 -2
  45. package/docs/classes/Util.sculpt.CylinderMeshEditor.html +2 -2
  46. package/docs/classes/Util.sculpt.LineMesh.html +2 -2
  47. package/docs/classes/Util.sculpt.PointMesh.html +2 -2
  48. package/docs/classes/Util.sculpt.PolygonMesh.html +2 -2
  49. package/docs/classes/Util.sculpt.PrismMesh.html +2 -2
  50. package/docs/classes/Util.sculpt.PrismMeshEditor.html +2 -2
  51. package/docs/classes/Util.sculpt.RectangleMesh.html +2 -2
  52. package/docs/classes/Util.sculpt.RectangleMeshEditor.html +2 -2
  53. package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +2 -2
  54. package/docs/classes/WalkController.html +2 -2
  55. package/docs/enums/CameraMovementEffect.html +2 -2
  56. package/docs/enums/ContentType.html +2 -2
  57. package/docs/enums/DIRECTION.html +2 -2
  58. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +2 -2
  59. package/docs/enums/DimensionType.html +2 -2
  60. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +2 -2
  61. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +2 -2
  62. package/docs/enums/PaintBrushTypeEnum.html +2 -2
  63. package/docs/enums/PointType.html +2 -2
  64. package/docs/enums/Rotation.html +2 -2
  65. package/docs/functions/AreaMakerPlugin.html +1 -1
  66. package/docs/functions/CSS3DRenderPlugin.html +1 -1
  67. package/docs/functions/CameraMovementPlugin.html +2 -2
  68. package/docs/functions/CruisePlugin.html +1 -1
  69. package/docs/functions/CurrentPanoImagePlugin.html +1 -1
  70. package/docs/functions/FloorplanGuidePlugin.html +1 -1
  71. package/docs/functions/GuideLinePlugin.html +1 -1
  72. package/docs/functions/ItemLabelPlugin.html +1 -1
  73. package/docs/functions/MapviewFloorplanPlugin.html +1 -1
  74. package/docs/functions/MeasurePlugin.html +1 -1
  75. package/docs/functions/ModelChassisCompassPlugin.html +2 -2
  76. package/docs/functions/ModelEntryDoorGuidePlugin.html +2 -2
  77. package/docs/functions/ModelFloorplanPlugin.html +1 -1
  78. package/docs/functions/ModelItemLabelPlugin.html +1 -1
  79. package/docs/functions/ModelMakerPlugin.html +1 -1
  80. package/docs/functions/ModelRoomLabelPlugin.html +1 -1
  81. package/docs/functions/ModelTVVideoPlugin.html +1 -1
  82. package/docs/functions/ModelViewPlugin.html +2 -2
  83. package/docs/functions/MovePlugin.html +1 -1
  84. package/docs/functions/Object3DHelperPlugin.html +1 -1
  85. package/docs/functions/PanoCompassPlugin.html +1 -1
  86. package/docs/functions/PanoCursorRaycasterPlugin.html +2 -2
  87. package/docs/functions/PanoDoorLabelPlugin.html +1 -1
  88. package/docs/functions/PanoFloorplanRadarPlugin.html +1 -1
  89. package/docs/functions/PanoMeasurePlugin.html +1 -1
  90. package/docs/functions/PanoRulerPlugin.html +2 -2
  91. package/docs/functions/PanoRulerProPlugin.html +2 -2
  92. package/docs/functions/PanoSpatialTagPlugin.html +2 -2
  93. package/docs/functions/PanoTagPlugin.html +1 -1
  94. package/docs/functions/PanoVideoPlugin.html +2 -2
  95. package/docs/functions/PipelinePlugin.html +1 -1
  96. package/docs/functions/SculptPlugin.html +2 -2
  97. package/docs/functions/SculptPluginForFive.html +2 -2
  98. package/docs/functions/TopviewFloorplanPlugin.html +1 -1
  99. package/docs/functions/Util.awaitNextFrame.html +1 -1
  100. package/docs/functions/Util.blink.html +2 -2
  101. package/docs/functions/Util.blinkWithPreset.html +2 -2
  102. package/docs/functions/Util.bounding.html +1 -1
  103. package/docs/functions/Util.boundingBox.html +1 -1
  104. package/docs/functions/Util.boundingSphere.html +1 -1
  105. package/docs/functions/Util.boxVertex.html +2 -2
  106. package/docs/functions/Util.boxVertexes.html +1 -1
  107. package/docs/functions/Util.checkFiveModelLoaded.html +2 -2
  108. package/docs/functions/Util.cleanup.html +2 -2
  109. package/docs/functions/Util.convexHull.html +2 -2
  110. package/docs/functions/Util.equal.html +2 -2
  111. package/docs/functions/Util.fiveModelIsLoaded.html +2 -2
  112. package/docs/functions/Util.getCoordsFromClient.html +1 -1
  113. package/docs/functions/Util.getCoordsFromElement.html +1 -1
  114. package/docs/functions/Util.getFrameTime.html +2 -2
  115. package/docs/functions/Util.getIntersectFromRelativePosition.html +1 -1
  116. package/docs/functions/Util.getRaycasterFromFivePointer.html +1 -1
  117. package/docs/functions/Util.initialCSS3DRender.html +1 -1
  118. package/docs/functions/Util.inside.html +1 -1
  119. package/docs/functions/Util.isModelLike.html +1 -1
  120. package/docs/functions/Util.isNil.html +2 -2
  121. package/docs/functions/Util.isPanoramaLike.html +1 -1
  122. package/docs/functions/Util.lookObject.html +2 -2
  123. package/docs/functions/Util.lookPoint.html +2 -2
  124. package/docs/functions/Util.nextFrame.html +1 -1
  125. package/docs/functions/Util.notNil.html +2 -2
  126. package/docs/functions/Util.reblink.html +2 -2
  127. package/docs/functions/Util.replaceStaticPrefix.html +2 -2
  128. package/docs/functions/Util.requestAnimationFrameInterval.html +2 -2
  129. package/docs/functions/Util.sculpt.createBox.html +1 -1
  130. package/docs/functions/Util.sculpt.createCircle.html +1 -1
  131. package/docs/functions/Util.sculpt.createCylinder.html +1 -1
  132. package/docs/functions/Util.sculpt.createLine.html +2 -2
  133. package/docs/functions/Util.sculpt.createPoint.html +1 -1
  134. package/docs/functions/Util.sculpt.createPolygon.html +1 -1
  135. package/docs/functions/Util.sculpt.createPrism.html +1 -1
  136. package/docs/functions/Util.sculpt.createRectangle.html +2 -2
  137. package/docs/functions/Util.tag.html +1 -1
  138. package/docs/functions/Util.tweenProgress.html +1 -1
  139. package/docs/functions/Util.uuid.html +2 -2
  140. package/docs/functions/Util.waitFiveModelLoaded.html +2 -2
  141. package/docs/functions/Util.worldBounding.html +1 -1
  142. package/docs/functions/Util.worldBoundingBox.html +1 -1
  143. package/docs/functions/Util.worldBoundingSphere.html +1 -1
  144. package/docs/functions/createPolyline.html +2 -2
  145. package/docs/functions/pluginFlag.html +1 -1
  146. package/docs/hierarchy.html +1 -1
  147. package/docs/index.html +2 -2
  148. package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +2 -2
  149. package/docs/interfaces/AreaMakerPluginType.Config.html +2 -2
  150. package/docs/interfaces/AreaMakerPluginType.EventMap.html +2 -2
  151. package/docs/interfaces/AreaMakerPluginType.Params.html +2 -2
  152. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +2 -2
  153. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +2 -2
  154. package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +2 -2
  155. package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +2 -2
  156. package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +2 -2
  157. package/docs/interfaces/AreaMakerPluginType.State.html +2 -2
  158. package/docs/interfaces/CSS3DRenderPluginEventMap.html +2 -2
  159. package/docs/interfaces/CSS3DRenderPluginState.html +2 -2
  160. package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
  161. package/docs/interfaces/ContentTypeMapInterface.html +2 -2
  162. package/docs/interfaces/CruisePluginTypes.Config.html +2 -2
  163. package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +2 -2
  164. package/docs/interfaces/CruisePluginTypes.EventMap.html +2 -2
  165. package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +2 -2
  166. package/docs/interfaces/CruisePluginTypes.MoveAction.html +2 -2
  167. package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +2 -2
  168. package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +2 -2
  169. package/docs/interfaces/CruisePluginTypes.PluginData.html +2 -2
  170. package/docs/interfaces/CruisePluginTypes.PluginServerData.html +2 -2
  171. package/docs/interfaces/CruisePluginTypes.PluginState.html +2 -2
  172. package/docs/interfaces/CurrentPanoImagePluginType.Config.html +2 -2
  173. package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +2 -2
  174. package/docs/interfaces/CurrentPanoImagePluginType.Params.html +2 -2
  175. package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +2 -2
  176. package/docs/interfaces/CurrentPanoImagePluginType.State.html +2 -2
  177. package/docs/interfaces/FloorplanBounding.html +2 -2
  178. package/docs/interfaces/FloorplanData.html +2 -2
  179. package/docs/interfaces/FloorplanEntrance.html +2 -2
  180. package/docs/interfaces/FloorplanExtraObject.html +2 -2
  181. package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
  182. package/docs/interfaces/FloorplanFloorData.html +2 -2
  183. package/docs/interfaces/FloorplanImagePosition.html +2 -2
  184. package/docs/interfaces/FloorplanObserver.html +2 -2
  185. package/docs/interfaces/FloorplanOutlineItem.html +2 -2
  186. package/docs/interfaces/FloorplanPosition.html +2 -2
  187. package/docs/interfaces/FloorplanRoomItem.html +2 -2
  188. package/docs/interfaces/FloorplanRoomLabelItem.html +2 -2
  189. package/docs/interfaces/FloorplanServerBounding.html +2 -2
  190. package/docs/interfaces/FloorplanServerComputedData.html +2 -2
  191. package/docs/interfaces/FloorplanServerData.html +2 -2
  192. package/docs/interfaces/FloorplanServerDoorItem.html +2 -2
  193. package/docs/interfaces/FloorplanServerDoorPosition.html +2 -2
  194. package/docs/interfaces/FloorplanServerEntrance.html +2 -2
  195. package/docs/interfaces/FloorplanServerFloorData.html +2 -2
  196. package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
  197. package/docs/interfaces/FloorplanServerObserver.html +2 -2
  198. package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
  199. package/docs/interfaces/FloorplanServerPosition.html +2 -2
  200. package/docs/interfaces/FloorplanServerRoomItem.html +2 -2
  201. package/docs/interfaces/FloorplanServerRoomLabelItem.html +2 -2
  202. package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +2 -2
  203. package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +2 -2
  204. package/docs/interfaces/GuideLinePluginType.EventMap.html +2 -2
  205. package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +2 -2
  206. package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +2 -2
  207. package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +2 -2
  208. package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +2 -2
  209. package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +2 -2
  210. package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +2 -2
  211. package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +2 -2
  212. package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +2 -2
  213. package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +2 -2
  214. package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +1 -1
  215. package/docs/interfaces/GuideLinePluginType.PluginServerData.html +2 -2
  216. package/docs/interfaces/GuideLinePluginType.PluginState.html +2 -2
  217. package/docs/interfaces/GuideLinePluginType.Route.html +2 -2
  218. package/docs/interfaces/HelperOffset.html +2 -2
  219. package/docs/interfaces/ImagePlaneGroup.html +2 -2
  220. package/docs/interfaces/ItemLabelPluginData.html +2 -2
  221. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +2 -2
  222. package/docs/interfaces/ItemLabelPluginParametersType.html +2 -2
  223. package/docs/interfaces/MinMax.html +2 -2
  224. package/docs/interfaces/ModelChassisCompassPluginData.html +2 -2
  225. package/docs/interfaces/ModelChassisCompassPluginExportType.html +2 -2
  226. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +2 -2
  227. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +2 -2
  228. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +2 -2
  229. package/docs/interfaces/ModelItemLabelPluginData.html +2 -2
  230. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +2 -2
  231. package/docs/interfaces/ModelItemLabelPluginParametersType.html +2 -2
  232. package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +2 -2
  233. package/docs/interfaces/ModelMakerPluginType.EventMap.html +2 -2
  234. package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +2 -2
  235. package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +2 -2
  236. package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +2 -2
  237. package/docs/interfaces/ModelMakerPluginType.ServerData.html +2 -2
  238. package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +2 -2
  239. package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +2 -2
  240. package/docs/interfaces/ModelMakerPluginType.State.html +2 -2
  241. package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +2 -2
  242. package/docs/interfaces/ModelRoomLabelPluginData.html +2 -2
  243. package/docs/interfaces/ModelTVVideoPluginData.html +2 -2
  244. package/docs/interfaces/ModelTVVideoPluginExportType.html +2 -2
  245. package/docs/interfaces/ModelTVVideoPluginParameterType.html +2 -2
  246. package/docs/interfaces/ModelViewPluginExportType.html +2 -2
  247. package/docs/interfaces/Object3DHelperState.html +2 -2
  248. package/docs/interfaces/ObjectHelperControllers.html +2 -2
  249. package/docs/interfaces/PaintBrushAction.html +2 -2
  250. package/docs/interfaces/PaintBrushConfigs.html +2 -2
  251. package/docs/interfaces/PaintBrushState.html +2 -2
  252. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +2 -2
  253. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
  254. package/docs/interfaces/PanoMeasureParameterType.html +2 -2
  255. package/docs/interfaces/PanoMeasurePluginLineJson.html +2 -2
  256. package/docs/interfaces/PanoMeasurePluginOpenParameter.html +2 -2
  257. package/docs/interfaces/PanoMeasurePluginPointJson.html +2 -2
  258. package/docs/interfaces/PanoMeasurePluginPolylineJson.html +2 -2
  259. package/docs/interfaces/PanoRulerPluginExportType.html +2 -2
  260. package/docs/interfaces/PanoRulerPluginOptions.html +2 -2
  261. package/docs/interfaces/PanoRulerPluginParameterType.html +2 -2
  262. package/docs/interfaces/PanoRulerProPluginExportType.html +2 -2
  263. package/docs/interfaces/PanoRulerProPluginOptions.html +2 -2
  264. package/docs/interfaces/PanoRulerProPluginParameterType.html +2 -2
  265. package/docs/interfaces/PanoRulerProPluginState.html +2 -2
  266. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
  267. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
  268. package/docs/interfaces/PanoSpatialTagPluginData.html +2 -2
  269. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +2 -2
  270. package/docs/interfaces/PanoSpatialTagPluginExportType.html +2 -2
  271. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +2 -2
  272. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +2 -2
  273. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +2 -2
  274. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +2 -2
  275. package/docs/interfaces/PanoVideoPluginType.LoadParams.html +2 -2
  276. package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +2 -2
  277. package/docs/interfaces/PanoVideoPluginType.PluginData.html +2 -2
  278. package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +2 -2
  279. package/docs/interfaces/PanoVideoPluginType.PluginState.html +2 -2
  280. package/docs/interfaces/PanoVideoPluginType.VideoItem.html +2 -2
  281. package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +2 -2
  282. package/docs/interfaces/PluginEventMap.html +2 -2
  283. package/docs/interfaces/Point.html +2 -2
  284. package/docs/interfaces/Room.html +2 -2
  285. package/docs/interfaces/RoomInfo.html +2 -2
  286. package/docs/interfaces/RoomLabel.html +2 -2
  287. package/docs/interfaces/RoomRules.html +1 -1
  288. package/docs/interfaces/Rooms.html +1 -1
  289. package/docs/interfaces/Scissor.html +2 -2
  290. package/docs/interfaces/SculptConfig.html +2 -2
  291. package/docs/interfaces/State.html +2 -2
  292. package/docs/interfaces/TagCacheInterface.html +2 -2
  293. package/docs/interfaces/TagConfig.html +2 -2
  294. package/docs/interfaces/TagGLTFObjectGroup.html +2 -2
  295. package/docs/interfaces/TagIconUrl.html +2 -2
  296. package/docs/interfaces/TagObjectGroup.html +2 -2
  297. package/docs/interfaces/TagState.html +2 -2
  298. package/docs/interfaces/TagStyle.html +2 -2
  299. package/docs/interfaces/Tags.html +2 -2
  300. package/docs/interfaces/TemporaryState.html +2 -2
  301. package/docs/interfaces/Util.AnimeInstance.html +2 -2
  302. package/docs/interfaces/Util.BlinkAnimeOptions.html +2 -2
  303. package/docs/interfaces/Util.EventHandlerConfig.html +2 -2
  304. package/docs/interfaces/Util.FiveDomEvent.html +2 -2
  305. package/docs/interfaces/Util.FiveDomEventMap.html +2 -2
  306. package/docs/interfaces/Util.LegacyMouseGroupParameter.html +2 -2
  307. package/docs/interfaces/Util.MagnifierParameter.html +2 -2
  308. package/docs/interfaces/Util.MouseGroupParameter.html +2 -2
  309. package/docs/interfaces/Util.ObjectInitialState.html +2 -2
  310. package/docs/interfaces/Util.PointIntersection.html +2 -2
  311. package/docs/interfaces/Util.PointSelectorHelperConfig.html +2 -2
  312. package/docs/interfaces/Util.ReBlinkAnimeOptions.html +2 -2
  313. package/docs/modules/AreaMakerPluginType.html +2 -2
  314. package/docs/modules/CruisePluginTypes.html +2 -2
  315. package/docs/modules/CurrentPanoImagePluginType.html +2 -2
  316. package/docs/modules/GuideLineItem.html +2 -2
  317. package/docs/modules/GuideLineModeItem.html +2 -2
  318. package/docs/modules/GuideLinePluginType.html +2 -2
  319. package/docs/modules/ModelMakerPluginType.html +2 -2
  320. package/docs/modules/PanoVideoPluginType.html +2 -2
  321. package/docs/modules/SculptData.html +2 -2
  322. package/docs/modules/SculptType.html +2 -2
  323. package/docs/modules/Util.html +2 -2
  324. package/docs/modules/Util.sculpt.html +2 -2
  325. package/docs/modules.html +2 -2
  326. package/docs/types/AddObject3DHelperConfig.html +2 -2
  327. package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +2 -2
  328. package/docs/types/AreaMakerPluginType.ItemRenderer.html +1 -1
  329. package/docs/types/AreaMakerPluginType.PluginData.html +2 -2
  330. package/docs/types/AreaMakerPluginType.ServerData.html +2 -2
  331. package/docs/types/ArrayPosition.html +1 -1
  332. package/docs/types/AudioAppearance.html +1 -1
  333. package/docs/types/CSS3DRenderExportType.html +1 -1
  334. package/docs/types/CSS3DRenderPluginExportType.html +1 -1
  335. package/docs/types/CSS3DRenderPluginParameterType.html +1 -1
  336. package/docs/types/ClassFunctionParameters.html +1 -1
  337. package/docs/types/Color.html +1 -1
  338. package/docs/types/ContentTypeConfigKey.html +1 -1
  339. package/docs/types/ContentTypeConfigKeySplit.html +1 -1
  340. package/docs/types/ContentTypeMap.html +1 -1
  341. package/docs/types/Create3DDomContainerReturnType.html +1 -1
  342. package/docs/types/Create3DElementReturnType.html +1 -1
  343. package/docs/types/CruisePluginExportType.html +1 -1
  344. package/docs/types/CruisePluginTypes.CruiseData.html +2 -2
  345. package/docs/types/CruisePluginTypes.MoveEffect.html +1 -1
  346. package/docs/types/CurrentPanoImagePluginExportType.html +1 -1
  347. package/docs/types/DeprecatedMediaPlaneProperty.html +2 -2
  348. package/docs/types/DeprecatedTagProperty.html +2 -2
  349. package/docs/types/Direction-1.html +1 -1
  350. package/docs/types/Direction4.html +1 -1
  351. package/docs/types/ElementRenderer.html +2 -2
  352. package/docs/types/FloorplanGuidePluginParameterType.html +1 -1
  353. package/docs/types/FloorplanGuidePluginReturnType.html +1 -1
  354. package/docs/types/FloorplanRuleLabels.html +2 -2
  355. package/docs/types/FloorplanServerRuleLabels.html +1 -1
  356. package/docs/types/GuideLinePluginExportType.html +1 -1
  357. package/docs/types/GuideLinePluginType.GuideLineItem.html +2 -2
  358. package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +1 -1
  359. package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +1 -1
  360. package/docs/types/GuideLinePluginType.GuideLineStyle.html +2 -2
  361. package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +2 -2
  362. package/docs/types/GuideLinePluginType.PathItem.html +2 -2
  363. package/docs/types/GuideLinePluginType.PluginData.html +2 -2
  364. package/docs/types/GuideLinePluginType.RouteConfig.html +2 -2
  365. package/docs/types/HelperEventMap.html +1 -1
  366. package/docs/types/InternalHelperEventMap.html +1 -1
  367. package/docs/types/MapviewFloorplanPluginParameterType.html +1 -1
  368. package/docs/types/MapviewFloorplanPluginReturnType.html +1 -1
  369. package/docs/types/MeasureEndReason.html +1 -1
  370. package/docs/types/MeasurePluginConfig.html +2 -2
  371. package/docs/types/MediaData.html +2 -2
  372. package/docs/types/MediaStore.html +1 -1
  373. package/docs/types/ModelEntryDoorGuidePluginParameterType.html +1 -1
  374. package/docs/types/ModelFloorplanPluginParameterType.html +1 -1
  375. package/docs/types/ModelFloorplanPluginReturnType.html +1 -1
  376. package/docs/types/ModelId.html +1 -1
  377. package/docs/types/ModelMakerPluginType.ElementRenderer.html +1 -1
  378. package/docs/types/ModelMakerPluginType.ItemType.html +2 -2
  379. package/docs/types/ModelMakerPluginType.MarkerItem.html +1 -1
  380. package/docs/types/ModelMakerPluginType.ServerItem.html +2 -2
  381. package/docs/types/ModelRoomLabelPluginParameters.html +1 -1
  382. package/docs/types/ModelRoomLabelPluginReturnType.html +1 -1
  383. package/docs/types/MoveArgs.html +2 -2
  384. package/docs/types/MoveOpts.html +2 -2
  385. package/docs/types/Object3DHelperEventMap.html +1 -1
  386. package/docs/types/ObjectFit.html +1 -1
  387. package/docs/types/PaintBrushEventMap.html +1 -1
  388. package/docs/types/PanoCompassPluginData.html +1 -1
  389. package/docs/types/PanoCompassPluginExportType.html +1 -1
  390. package/docs/types/PanoCompassPluginParameterType.html +1 -1
  391. package/docs/types/PanoFloorplanRadarPluginParameterType.html +1 -1
  392. package/docs/types/PanoFloorplanRadarPluginReturnType.html +1 -1
  393. package/docs/types/PanoIndex.html +1 -1
  394. package/docs/types/PanoMeasurePluginEvent.html +1 -1
  395. package/docs/types/PanoMeasureReturnType.html +1 -1
  396. package/docs/types/PanoSpatialTagPluginId.html +1 -1
  397. package/docs/types/PanoTagPluginExportInterface.html +1 -1
  398. package/docs/types/PanoTagPluginParamsInterface.html +1 -1
  399. package/docs/types/PanoVideoPluginParameterType.html +1 -1
  400. package/docs/types/PanoVideoPluginReturnType.html +1 -1
  401. package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +2 -2
  402. package/docs/types/PipelinePluginParameterType.html +1 -1
  403. package/docs/types/PipelinePluginReturnType.html +1 -1
  404. package/docs/types/PlaneTag.html +2 -2
  405. package/docs/types/Point2DTag.html +2 -2
  406. package/docs/types/Point3DTag.html +2 -2
  407. package/docs/types/PointTagInstance.html +1 -1
  408. package/docs/types/Position.html +1 -1
  409. package/docs/types/PositionFrom.html +1 -1
  410. package/docs/types/RotateArgs.html +2 -2
  411. package/docs/types/RotateOpts.html +2 -2
  412. package/docs/types/RuleLabelsKey.html +1 -1
  413. package/docs/types/RuleLabelsValue.html +1 -1
  414. package/docs/types/ScaleCallback.html +1 -1
  415. package/docs/types/ScalePosition.html +2 -2
  416. package/docs/types/SculptData.BoxData.html +1 -1
  417. package/docs/types/SculptData.CircleData.html +1 -1
  418. package/docs/types/SculptData.CylinderData.html +1 -1
  419. package/docs/types/SculptData.PointData.html +1 -1
  420. package/docs/types/SculptData.PolygonData.html +1 -1
  421. package/docs/types/SculptData.PolylineData.html +1 -1
  422. package/docs/types/SculptData.PrismData.html +1 -1
  423. package/docs/types/SculptData.RectangleData.html +1 -1
  424. package/docs/types/SculptType.Theme.html +2 -2
  425. package/docs/types/StickType.html +1 -1
  426. package/docs/types/Tag.html +2 -2
  427. package/docs/types/Tag2D.html +2 -2
  428. package/docs/types/Tag3D.html +2 -2
  429. package/docs/types/TagClickParams.html +1 -1
  430. package/docs/types/TagConfigByKey.html +1 -1
  431. package/docs/types/TagContentType.html +1 -1
  432. package/docs/types/TagContentTypeMapping.html +1 -1
  433. package/docs/types/TagDimensionType.html +1 -1
  434. package/docs/types/TagElement.html +2 -2
  435. package/docs/types/TagEvents.html +1 -1
  436. package/docs/types/TagGLTFObject.html +1 -1
  437. package/docs/types/TagHooks.html +1 -1
  438. package/docs/types/TagId.html +1 -1
  439. package/docs/types/TagInstance.html +1 -1
  440. package/docs/types/TagPlacement.html +2 -2
  441. package/docs/types/TagPointType.html +2 -2
  442. package/docs/types/TagRendererMap.html +1 -1
  443. package/docs/types/TopviewFloorplanPluginParameterType.html +1 -1
  444. package/docs/types/TopviewFloorplanPluginReturnType.html +1 -1
  445. package/docs/types/Util.ActionIfNoIntersection.html +1 -1
  446. package/docs/types/Util.AdherePoint.html +2 -2
  447. package/docs/types/Util.PointSelectorConfig.html +1 -1
  448. package/docs/types/Util.SupportedTarget.html +2 -2
  449. package/docs/types/Util.Target.html +2 -2
  450. package/docs/types/Util.ThreeObject.html +2 -2
  451. package/docs/types/WorkCode.html +1 -1
  452. package/docs/variables/FLOOR_TYPE_MAP.html +2 -2
  453. package/docs/variables/PLUGIN.html +1 -1
  454. package/docs/variables/ROOM_FETILE_TYPE_MAP.html +2 -2
  455. package/docs/variables/ROOM_TYPE_MAP.html +2 -2
  456. package/docs/variables/Util.ANIME_PRESETS.html +2 -2
  457. package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +2 -2
  458. package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +2 -2
  459. package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +2 -2
  460. package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +2 -2
  461. package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +2 -2
  462. package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +2 -2
  463. package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +2 -2
  464. package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +2 -2
  465. package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +2 -2
  466. package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +2 -2
  467. package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +2 -2
  468. package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +2 -2
  469. package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +2 -2
  470. package/docs/variables/defaultGlobalConfig.html +1 -1
  471. package/docs/variables/itemLabelPluginServerParams.html +1 -1
  472. package/docs/variables/modelItemLabelPluginServerParams.html +1 -1
  473. package/docs/variables/modelRoomLabelPluginServerParams.html +1 -1
  474. package/libs/AreaMakerPlugin/Controller.js +2 -2
  475. package/libs/AreaMakerPlugin/index.js +7 -7
  476. package/libs/AreaMakerPlugin/utils/Item.js +2 -2
  477. package/libs/CSS3DRenderPlugin/utils/three/CSS3DObject.js +2 -2
  478. package/libs/CSS3DRenderPlugin/utils/three/CSS3DRender.js +1 -1
  479. package/libs/CruisePlugin/BaseController.js +2 -2
  480. package/libs/CruisePlugin/Move.js +2 -2
  481. package/libs/CruisePlugin/Work.js +1 -1
  482. package/libs/CruisePlugin/index.js +8 -8
  483. package/libs/CurrentPanoImagePlugin/Controller.js +2 -2
  484. package/libs/CurrentPanoImagePlugin/index.js +8 -8
  485. package/libs/GuideLinePlugin/Controller.js +2 -2
  486. package/libs/GuideLinePlugin/GuideLineItem.js +8 -8
  487. package/libs/GuideLinePlugin/GuideLineModeItem/index.js +1 -1
  488. package/libs/GuideLinePlugin/GuideLineModeItem.js +2 -2
  489. package/libs/GuideLinePlugin/index.js +8 -8
  490. package/libs/MeasurePlugin/Controller.js +2 -2
  491. package/libs/MeasurePlugin/index.js +8 -8
  492. package/libs/MeasurePlugin/utils/MeasureMesh.js +8 -8
  493. package/libs/ModelChassisCompassPlugin/Plugin.js +2 -2
  494. package/libs/ModelChassisCompassPlugin/index.js +8 -8
  495. package/libs/ModelEntryDoorGuidePlugin/Plugin.js +2 -2
  496. package/libs/ModelEntryDoorGuidePlugin/index.js +8 -8
  497. package/libs/ModelMakerPlugin/Controller.js +2 -2
  498. package/libs/ModelMakerPlugin/index.js +8 -8
  499. package/libs/ModelMakerPlugin/item/baseItem.js +8 -8
  500. package/libs/ModelMakerPlugin/item/boxItem.js +8 -8
  501. package/libs/ModelMakerPlugin/item/polygonItem.js +8 -8
  502. package/libs/ModelMakerPlugin/item/prismItem.js +2 -2
  503. package/libs/ModelViewPlugin/Plugin.js +2 -2
  504. package/libs/ModelViewPlugin/index.js +8 -8
  505. package/libs/Object3DHelperPlugin/index.js +8 -8
  506. package/libs/PanoCompassPlugin/Controller.js +8 -8
  507. package/libs/PanoCompassPlugin/index.js +8 -8
  508. package/libs/PanoDoorLabelPlugin/Controller.js +2 -2
  509. package/libs/PanoDoorLabelPlugin/index.js +8 -8
  510. package/libs/PanoMeasurePlugin/Components/Controller0.js +7 -7
  511. package/libs/PanoMeasurePlugin/Components/Controller1.js +7 -7
  512. package/libs/PanoMeasurePlugin/Controller/EditController.js +2 -2
  513. package/libs/PanoMeasurePlugin/Controller/WatchController.js +7 -7
  514. package/libs/PanoMeasurePlugin/Controller/index.js +2 -2
  515. package/libs/PanoMeasurePlugin/Model/area.js +7 -7
  516. package/libs/PanoMeasurePlugin/Modules/Magnifier.js +2 -2
  517. package/libs/PanoMeasurePlugin/Modules/UIController/index.js +7 -7
  518. package/libs/PanoMeasurePlugin/index.js +2 -2
  519. package/libs/PanoMeasurePlugin/utils/dom/areaDom.js +2 -2
  520. package/libs/PanoRulerProPlugin/Controller.js +7 -7
  521. package/libs/PanoRulerProPlugin/RulerItems.js +2 -2
  522. package/libs/PanoRulerProPlugin/index.js +7 -7
  523. package/libs/PanoSpatialTagPlugin/Plugin.js +4 -4
  524. package/libs/PanoTagPlugin/Components/Common/TagPoint.js +2 -2
  525. package/libs/PanoTagPlugin/Components/Common/TagPopover/PopoverContent.js +8 -8
  526. package/libs/PanoTagPlugin/Components/Common/TagPopover/TagPopoverToolBar.js +2 -2
  527. package/libs/PanoTagPlugin/Components/Common/TagPopover/index.js +2 -2
  528. package/libs/PanoTagPlugin/Components/Tag/MarketingTag.js +2 -2
  529. package/libs/PanoTagPlugin/Components/Tag/index.js +1 -1
  530. package/libs/PanoTagPlugin/Components/TagContainer.js +6 -6
  531. package/libs/PanoTagPlugin/Components/TagItem.js +1 -1
  532. package/libs/PanoTagPlugin/controller/Tag/BaseTag.js +2 -2
  533. package/libs/PanoTagPlugin/controller/Tag/PointTag.js +8 -8
  534. package/libs/PanoTagPlugin/controller/TagRender.js +8 -8
  535. package/libs/PanoTagPlugin/controller/TagUtil.js +2 -2
  536. package/libs/PanoTagPlugin/controller/index.js +2 -2
  537. package/libs/PanoTagPlugin/index.js +8 -8
  538. package/libs/PanoTagPlugin/utils/tag/calculateTagConfig.js +2 -2
  539. package/libs/PanoTagPlugin/utils/tag/format.js +2 -2
  540. package/libs/PanoVideoPlugin/Controller.js +8 -8
  541. package/libs/PanoVideoPlugin/VideoMeshController.js +1 -1
  542. package/libs/PanoVideoPlugin/index.js +8 -8
  543. package/libs/PipelinePlugin/Controller.js +2 -2
  544. package/libs/PipelinePlugin/index.js +8 -8
  545. package/libs/PipelinePlugin/utils/Objects/FlowPipe.js +2 -2
  546. package/libs/PipelinePlugin/utils/Objects/HighlightPipe.js +2 -2
  547. package/libs/PipelinePlugin/utils/Objects/Pipe.js +2 -2
  548. package/libs/Sculpt/Meshes/Circle.js +1 -1
  549. package/libs/Sculpt/Meshes/Cylinder.js +1 -1
  550. package/libs/Sculpt/Meshes/Line.js +1 -1
  551. package/libs/Sculpt/Meshes/LineWithDots.js +1 -1
  552. package/libs/Sculpt/Meshes/Point.js +1 -1
  553. package/libs/Sculpt/Meshes/Rectangle.js +1 -1
  554. package/libs/Sculpt/Objects/Base/index.js +1 -1
  555. package/libs/Sculpt/Objects/Line/Editor.js +1 -1
  556. package/libs/Sculpt/index.js +1 -1
  557. package/libs/Sculpt/utils/three/ColoredMesh.js +1 -1
  558. package/libs/base/BasePlugin.js +2 -2
  559. package/libs/floorplan/FloorplanGuidePlugin/Controller.js +2 -2
  560. package/libs/floorplan/FloorplanGuidePlugin/index.js +8 -8
  561. package/libs/floorplan/MapviewFloorplanPlugin/Controller.js +2 -2
  562. package/libs/floorplan/MapviewFloorplanPlugin/index.js +8 -8
  563. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +2 -2
  564. package/libs/floorplan/ModelFloorplanPlugin/index.js +8 -8
  565. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +2 -2
  566. package/libs/floorplan/PanoFloorplanRadarPlugin/index.js +8 -8
  567. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +2 -2
  568. package/libs/floorplan/TopviewFloorplanPlugin/index.js +8 -8
  569. package/libs/floorplan/index.js +1 -1
  570. package/libs/shared-utils/CSS3DRender/CSS3DObject.js +1 -1
  571. package/libs/shared-utils/CSS3DRender/index.js +21 -20
  572. package/libs/shared-utils/five/index.js +1 -1
  573. package/libs/shared-utils/five/initialCSS3DRender.js +1 -0
  574. package/libs/shared-utils/five/lookObject.js +1 -1
  575. package/libs/shared-utils/index.js +1 -1
  576. package/libs/shared-utils/logger.js +1 -1
  577. package/libs/shared-utils/tag.js +1 -1
  578. package/libs/shared-utils/three/PointDomHelper.js +3 -2
  579. package/libs/shared-utils/three/PointSelector/utils/PointSelectorHelper.js +1 -1
  580. package/libs/shared-utils/three/index.js +1 -1
  581. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -43,7 +43,7 @@ import { LineGeometry as JA, LineMaterial as KA, THREE_Line2 as $A, Line as eb }
43
43
  import { GLTFLoader as tb } from "@realsee/five/gltf-loader";
44
44
  function ib() {
45
45
  console.debug(
46
- "%c %c@realsee/dnalogel %cv3.69.13",
46
+ "%c %c@realsee/dnalogel %cv3.69.14",
47
47
  [
48
48
  "background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAMAAACHgmeRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABLFBMVEUAAAAapPoap/oaqvkbrfkbr/gZnfwZoPsaqfnD4v/E4/8Ylv0clPm93/+/4P/B4f8Yj/683/8Wif+33P8Uhv+x2f8ShP+s1v8Pgf+n0/8Nf/+h0f8Lff8Lff8Nf/9dl/+czv8KfP8KfP+Lxf+Uyv+Xy/+Hwv+Jw/+Mxf+Oxv+RyP8aovsapfoap/oZmfwZm/wZnvsYnPsYkf4YlP0NePsDYfgYcfi43f+63v8Xiv8Xjf4EWfwCV/sWZ/qz2v+02/8Vh/8WiP8EUf8CTf4WXv2u1/+v2P8Thf8Thv8ETf8CR/8VV/+o1f+q1f8Qgv8Rg/8DSv8BRf8UVP+j0v+k0v8OgP8Pgf8DR/8DQv9Nhf+dzv+fz/+Kv/+Vyv+Xy/+azf+Oxv+Qx/+SyP////8MUhLdAAAAK3RSTlMACEWQ2bd98uQECPXxqO7c+Pb49vj2+Pb49vj23Oul8fMHA+TwerXXjEIG2P+bHgAAAAFiS0dEY1y+LaoAAAB+SURBVAjXY2BgZGJmYWVgYGBgY9fW0eVg4ORi4NbTNzDk4eXjZxAwMjYxNTO3EGQQsrSytrG1sxdmEHFwdHJ2cXUTZRBz9/D08vbxFWeQ8PMPCAwKDpFkkAoNC4+IjIqWZpCRlZOPiY2LV2BQVGJQTkhMUlEFWaOmrqGpxQAAyg0S9Dq+VPYAAAAASUVORK5CYII=')",
49
49
  "background-repeat: no-repeat",
@@ -1069,7 +1069,7 @@ function ya(n) {
1069
1069
  function bb(n) {
1070
1070
  n[yr] && delete n[yr];
1071
1071
  }
1072
- class Mt {
1072
+ class kt {
1073
1073
  /**
1074
1074
  * 判断是否注册了事件
1075
1075
  * @param name - 事件类型
@@ -1225,7 +1225,7 @@ function wi(n) {
1225
1225
  var e;
1226
1226
  return ((e = n.models) == null ? void 0 : e.filter((i) => i.name === n.state.workCode)[0]) || n.model;
1227
1227
  }
1228
- class l0 extends Mt {
1228
+ class l0 extends kt {
1229
1229
  constructor(e) {
1230
1230
  super();
1231
1231
  f(this, "five");
@@ -1731,8 +1731,8 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
1731
1731
  var Qe = W ? B[Oe][W] : B[Oe];
1732
1732
  C(be, Qe) < 0 && ne.push(B[Oe]), be[Oe] = Qe, Oe++;
1733
1733
  }
1734
- return q && (W ? ne = ne.sort(function(Et, Lt) {
1735
- return Et[W] > Lt[W];
1734
+ return q && (W ? ne = ne.sort(function(Mt, Lt) {
1735
+ return Mt[W] > Lt[W];
1736
1736
  }) : ne = ne.sort()), ne;
1737
1737
  }
1738
1738
  function S(B, W) {
@@ -1789,8 +1789,8 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
1789
1789
  function ot(B, W) {
1790
1790
  var q = B.session, ne = W.pointers, be = ne.length;
1791
1791
  q.firstInput || (q.firstInput = Gt(W)), be > 1 && !q.firstMultiple ? q.firstMultiple = Gt(W) : be === 1 && (q.firstMultiple = !1);
1792
- var Oe = q.firstInput, Qe = q.firstMultiple, wt = Qe ? Qe.center : Oe.center, Et = W.center = ci(ne);
1793
- W.timeStamp = h(), W.deltaTime = W.timeStamp - Oe.timeStamp, W.angle = Ut(wt, Et), W.distance = Wt(wt, Et), jt(q, W), W.offsetDirection = rt(W.deltaX, W.deltaY);
1792
+ var Oe = q.firstInput, Qe = q.firstMultiple, Pt = Qe ? Qe.center : Oe.center, Mt = W.center = ci(ne);
1793
+ W.timeStamp = h(), W.deltaTime = W.timeStamp - Oe.timeStamp, W.angle = Ut(Pt, Mt), W.distance = Wt(Pt, Mt), jt(q, W), W.offsetDirection = rt(W.deltaX, W.deltaY);
1794
1794
  var Lt = pi(W.deltaTime, W.deltaX, W.deltaY);
1795
1795
  W.overallVelocityX = Lt.x, W.overallVelocityY = Lt.y, W.overallVelocity = c(Lt.x) > c(Lt.y) ? Lt.x : Lt.y, W.scale = Qe ? ps(Qe.pointers, ne) : 1, W.rotation = Qe ? qo(Qe.pointers, ne) : 0, W.maxPointers = q.prevInput ? W.pointers.length > q.prevInput.maxPointers ? W.pointers.length : q.prevInput.maxPointers : W.pointers.length, Ni(q, W);
1796
1796
  var ei = B.element;
@@ -1807,13 +1807,13 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
1807
1807
  }), W.deltaX = be.x + (q.x - ne.x), W.deltaY = be.y + (q.y - ne.y);
1808
1808
  }
1809
1809
  function Ni(B, W) {
1810
- var q = B.lastInterval || W, ne = W.timeStamp - q.timeStamp, be, Oe, Qe, wt;
1810
+ var q = B.lastInterval || W, ne = W.timeStamp - q.timeStamp, be, Oe, Qe, Pt;
1811
1811
  if (W.eventType != ee && (ne > De || q.velocity === s)) {
1812
- var Et = W.deltaX - q.deltaX, Lt = W.deltaY - q.deltaY, ei = pi(ne, Et, Lt);
1813
- Oe = ei.x, Qe = ei.y, be = c(ei.x) > c(ei.y) ? ei.x : ei.y, wt = rt(Et, Lt), B.lastInterval = W;
1812
+ var Mt = W.deltaX - q.deltaX, Lt = W.deltaY - q.deltaY, ei = pi(ne, Mt, Lt);
1813
+ Oe = ei.x, Qe = ei.y, be = c(ei.x) > c(ei.y) ? ei.x : ei.y, Pt = rt(Mt, Lt), B.lastInterval = W;
1814
1814
  } else
1815
- be = q.velocity, Oe = q.velocityX, Qe = q.velocityY, wt = q.direction;
1816
- W.velocity = be, W.velocityX = Oe, W.velocityY = Qe, W.direction = wt;
1815
+ be = q.velocity, Oe = q.velocityX, Qe = q.velocityY, Pt = q.direction;
1816
+ W.velocity = be, W.velocityX = Oe, W.velocityY = Qe, W.direction = Pt;
1817
1817
  }
1818
1818
  function Gt(B) {
1819
1819
  for (var W = [], q = 0; q < B.pointers.length; )
@@ -1914,13 +1914,13 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
1914
1914
  * @param {Object} ev
1915
1915
  */
1916
1916
  handler: function(W) {
1917
- var q = this.store, ne = !1, be = W.type.toLowerCase().replace("ms", ""), Oe = vi[be], Qe = On[W.pointerType] || W.pointerType, wt = Qe == Z, Et = C(q, W.pointerId, "pointerId");
1918
- Oe & de && (W.button === 0 || wt) ? Et < 0 && (q.push(W), Et = q.length - 1) : Oe & (Le | ee) && (ne = !0), !(Et < 0) && (q[Et] = W, this.callback(this.manager, Oe, {
1917
+ var q = this.store, ne = !1, be = W.type.toLowerCase().replace("ms", ""), Oe = vi[be], Qe = On[W.pointerType] || W.pointerType, Pt = Qe == Z, Mt = C(q, W.pointerId, "pointerId");
1918
+ Oe & de && (W.button === 0 || Pt) ? Mt < 0 && (q.push(W), Mt = q.length - 1) : Oe & (Le | ee) && (ne = !0), !(Mt < 0) && (q[Mt] = W, this.callback(this.manager, Oe, {
1919
1919
  pointers: q,
1920
1920
  changedPointers: [W],
1921
1921
  pointerType: Qe,
1922
1922
  srcEvent: W
1923
- }), ne && q.splice(Et, 1));
1923
+ }), ne && q.splice(Mt, 1));
1924
1924
  }
1925
1925
  });
1926
1926
  var cn = {
@@ -1974,19 +1974,19 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
1974
1974
  var q = I(B.touches), ne = this.targetIds;
1975
1975
  if (W & (de | he) && q.length === 1)
1976
1976
  return ne[q[0].identifier] = !0, [q, q];
1977
- var be, Oe, Qe = I(B.changedTouches), wt = [], Et = this.target;
1977
+ var be, Oe, Qe = I(B.changedTouches), Pt = [], Mt = this.target;
1978
1978
  if (Oe = q.filter(function(Lt) {
1979
- return z(Lt.target, Et);
1979
+ return z(Lt.target, Mt);
1980
1980
  }), W === de)
1981
1981
  for (be = 0; be < Oe.length; )
1982
1982
  ne[Oe[be].identifier] = !0, be++;
1983
1983
  for (be = 0; be < Qe.length; )
1984
- ne[Qe[be].identifier] && wt.push(Qe[be]), W & (Le | ee) && delete ne[Qe[be].identifier], be++;
1985
- if (wt.length)
1984
+ ne[Qe[be].identifier] && Pt.push(Qe[be]), W & (Le | ee) && delete ne[Qe[be].identifier], be++;
1985
+ if (Pt.length)
1986
1986
  return [
1987
1987
  // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'
1988
- k(Oe.concat(wt), "identifier", !0),
1989
- wt
1988
+ k(Oe.concat(Pt), "identifier", !0),
1989
+ Pt
1990
1990
  ];
1991
1991
  }
1992
1992
  var Ko = 2500, bs = 25;
@@ -2082,8 +2082,8 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2082
2082
  }
2083
2083
  var ne = this.actions, be = O(ne, Oi) && !Bn[Oi], Oe = O(ne, dn) && !Bn[dn], Qe = O(ne, un) && !Bn[un];
2084
2084
  if (be) {
2085
- var wt = B.pointers.length === 1, Et = B.distance < 2, Lt = B.deltaTime < 250;
2086
- if (wt && Et && Lt)
2085
+ var Pt = B.pointers.length === 1, Mt = B.distance < 2, Lt = B.deltaTime < 250;
2086
+ if (Pt && Mt && Lt)
2087
2087
  return;
2088
2088
  }
2089
2089
  if (!(Qe && Oe) && (be || Oe && q & Ie || Qe && q & ze))
@@ -2111,7 +2111,7 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2111
2111
  B[q] = W ? t.CSS.supports("touch-action", q) : !0;
2112
2112
  }), B;
2113
2113
  }
2114
- var Vn = 1, Qt = 2, Ui = 4, Jt = 8, hi = Jt, Mi = 16, It = 32;
2114
+ var Vn = 1, Qt = 2, Ui = 4, Jt = 8, hi = Jt, Mi = 16, Et = 32;
2115
2115
  function Kt(B) {
2116
2116
  this.options = p({}, this.defaults, B || {}), this.id = G(), this.manager = null, this.options.enable = T(this.options.enable, !0), this.state = Vn, this.simultaneous = {}, this.requireFail = [];
2117
2117
  }
@@ -2207,7 +2207,7 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2207
2207
  tryEmit: function(B) {
2208
2208
  if (this.canEmit())
2209
2209
  return this.emit(B);
2210
- this.state = It;
2210
+ this.state = Et;
2211
2211
  },
2212
2212
  /**
2213
2213
  * can we emit?
@@ -2215,7 +2215,7 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2215
2215
  */
2216
2216
  canEmit: function() {
2217
2217
  for (var B = 0; B < this.requireFail.length; ) {
2218
- if (!(this.requireFail[B].state & (It | Vn)))
2218
+ if (!(this.requireFail[B].state & (Et | Vn)))
2219
2219
  return !1;
2220
2220
  B++;
2221
2221
  }
@@ -2228,10 +2228,10 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2228
2228
  recognize: function(B) {
2229
2229
  var W = p({}, B);
2230
2230
  if (!M(this.options.enable, [this, W])) {
2231
- this.reset(), this.state = It;
2231
+ this.reset(), this.state = Et;
2232
2232
  return;
2233
2233
  }
2234
- this.state & (hi | Mi | It) && (this.state = Vn), this.state = this.process(W), this.state & (Qt | Ui | Jt | Mi) && this.tryEmit(W);
2234
+ this.state & (hi | Mi | Et) && (this.state = Vn), this.state = this.process(W), this.state & (Qt | Ui | Jt | Mi) && this.tryEmit(W);
2235
2235
  },
2236
2236
  /**
2237
2237
  * return the state of the recognizer
@@ -2301,7 +2301,7 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2301
2301
  */
2302
2302
  process: function(B) {
2303
2303
  var W = this.state, q = B.eventType, ne = W & (Qt | Ui), be = this.attrTest(B);
2304
- return ne && (q & ee || !be) ? W | Mi : ne || be ? q & Le ? W | Jt : W & Qt ? W | Ui : Qt : It;
2304
+ return ne && (q & ee || !be) ? W | Mi : ne || be ? q & Le ? W | Jt : W & Qt ? W | Ui : Qt : Et;
2305
2305
  }
2306
2306
  });
2307
2307
  function Hn() {
@@ -2391,7 +2391,7 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2391
2391
  }, W.time, this);
2392
2392
  else if (B.eventType & Le)
2393
2393
  return hi;
2394
- return It;
2394
+ return Et;
2395
2395
  },
2396
2396
  reset: function() {
2397
2397
  clearTimeout(this._timer);
@@ -2480,18 +2480,18 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2480
2480
  return this.failTimeout();
2481
2481
  var Oe = this.pTime ? B.timeStamp - this.pTime < W.interval : !0, Qe = !this.pCenter || Wt(this.pCenter, B.center) < W.posThreshold;
2482
2482
  this.pTime = B.timeStamp, this.pCenter = B.center, !Qe || !Oe ? this.count = 1 : this.count += 1, this._input = B;
2483
- var wt = this.count % W.taps;
2484
- if (wt === 0)
2483
+ var Pt = this.count % W.taps;
2484
+ if (Pt === 0)
2485
2485
  return this.hasRequireFailures() ? (this._timer = u(function() {
2486
2486
  this.state = hi, this.tryEmit();
2487
2487
  }, W.interval, this), Qt) : hi;
2488
2488
  }
2489
- return It;
2489
+ return Et;
2490
2490
  },
2491
2491
  failTimeout: function() {
2492
2492
  return this._timer = u(function() {
2493
- this.state = It;
2494
- }, this.options.interval, this), It;
2493
+ this.state = Et;
2494
+ }, this.options.interval, this), Et;
2495
2495
  },
2496
2496
  reset: function() {
2497
2497
  clearTimeout(this._timer);
@@ -2757,7 +2757,7 @@ var Si = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
2757
2757
  STATE_ENDED: Jt,
2758
2758
  STATE_RECOGNIZED: hi,
2759
2759
  STATE_CANCELLED: Mi,
2760
- STATE_FAILED: It,
2760
+ STATE_FAILED: Et,
2761
2761
  DIRECTION_NONE: Te,
2762
2762
  DIRECTION_LEFT: _e,
2763
2763
  DIRECTION_RIGHT: ve,
@@ -2803,7 +2803,7 @@ class kh {
2803
2803
  f(this, "width");
2804
2804
  f(this, "height");
2805
2805
  f(this, "containerDom");
2806
- f(this, "hooks", new Mt());
2806
+ f(this, "hooks", new kt());
2807
2807
  f(this, "canvas", document.createElement("canvas"));
2808
2808
  f(this, "config");
2809
2809
  f(this, "state", { enabled: !1 });
@@ -3242,6 +3242,478 @@ function ic(n) {
3242
3242
  if (!(i !== "transparent" && i !== "rgba(0, 0, 0, 0)" && i !== "" || s !== "none" && s !== ""))
3243
3243
  return n;
3244
3244
  }
3245
+ class d0 extends P.Mesh {
3246
+ constructor(e, i) {
3247
+ const s = new P.MeshBasicMaterial({ opacity: 0, color: 0, transparent: !1, side: P.DoubleSide }), o = new P.PlaneGeometry(e, i);
3248
+ super(o, s);
3249
+ f(this, "name", "opacity-mesh");
3250
+ }
3251
+ removeFromParent() {
3252
+ const e = this.parent;
3253
+ return e !== null && e.remove(this), this;
3254
+ }
3255
+ }
3256
+ function oi(...n) {
3257
+ const t = new Ae();
3258
+ return n.forEach((e) => t.add(e)), t.divideScalar(n.length), t;
3259
+ }
3260
+ const Sh = (n) => n ? n.visible === !1 ? !1 : Sh(n.parent) : !0, f0 = 1, hd = `CSS3DObjectPlus@${f0}`, Lb = 216e-5, zb = 3e-3;
3261
+ let g0 = class extends kn {
3262
+ constructor(e) {
3263
+ var T, D, j, z, O;
3264
+ if (gi(e.cornerPoints) && gi(e.width))
3265
+ throw new Error("cornerPoints and width cannot be both empty");
3266
+ const i = (T = e.container) != null ? T : document.createElement("div"), s = (D = e.cornerPoints) != null ? D : (() => {
3267
+ const A = e.width / 2;
3268
+ return [
3269
+ new Ae(-A, A, 0),
3270
+ new Ae(-A, -A, 0),
3271
+ new Ae(A, -A, 0),
3272
+ new Ae(A, A, 0)
3273
+ ];
3274
+ })(), o = (j = e.ratio) != null ? j : zb, r = (z = e.dpr) != null ? z : 1, a = (O = e.pointerEvents) != null ? O : "auto", l = Math.max(Lb, o), c = s[0].distanceTo(s[1]), h = s[1].distanceTo(s[2]), u = So(c / o * r), d = So(h / o * r), m = oi(...s);
3275
+ let g;
3276
+ if (l === o)
3277
+ i.style.width = `${u}px`, i.style.height = `${d}px`, g = i;
3278
+ else {
3279
+ const A = document.createElement("div");
3280
+ A.style.width = `${u}px`, A.style.height = `${d}px`, A.style.pointerEvents = "none";
3281
+ const C = o / l;
3282
+ i.style.position = "absolute", i.style.left = "0", i.style.top = "0", i.style.width = `${C * u}px`, i.style.height = `${C * d}px`, A.appendChild(i), g = A;
3283
+ }
3284
+ super(g);
3285
+ f(this, "version", f0);
3286
+ f(this, "isCSS3DObjectPlus", !0);
3287
+ f(this, "isCSS3DObject", !0);
3288
+ f(this, "name", hd);
3289
+ f(this, "container");
3290
+ f(this, "width");
3291
+ f(this, "height");
3292
+ f(this, "domWidthPx");
3293
+ f(this, "domHeightPx");
3294
+ f(this, "cornerPoints");
3295
+ f(this, "centerPosition");
3296
+ f(this, "ratio");
3297
+ f(this, "mode", "front");
3298
+ f(this, "hooks", new kt());
3299
+ f(this, "opacityMesh");
3300
+ f(this, "selfVisible", !0);
3301
+ f(this, "setVisible", (e) => {
3302
+ this.selfVisible = e, this.visible = Sh(this.parent) && this.selfVisible, this.opacityMesh && (this.opacityMesh.visible = this.visible);
3303
+ });
3304
+ f(this, "updateVisible", () => {
3305
+ this.setVisible(this.selfVisible);
3306
+ });
3307
+ /**
3308
+ * @description: 生成透明Mesh
3309
+ */
3310
+ f(this, "createOpacityMesh", (e) => {
3311
+ const { domWidthPx: i, domHeightPx: s } = e, o = new d0(i, s);
3312
+ return o.position.copy(e.position), o.rotation.copy(e.rotation), o.scale.copy(e.scale), o;
3313
+ });
3314
+ if (i.style.pointerEvents = a, Object.assign(i.style, e.style), this.scale.set(l, l, l), this.cornerPoints = s, this.ratio = o, this.container = i, e.mode && (this.mode = e.mode), l === o)
3315
+ this.width = c, this.height = h, this.domWidthPx = u, this.domHeightPx = d, this.centerPosition = m;
3316
+ else {
3317
+ const A = o / l;
3318
+ this.width = A * c, this.height = A * h, this.domWidthPx = A * u, this.domHeightPx = A * d, this.centerPosition = new Ae().subVectors(m, s[0]).multiplyScalar(A).add(s[0]);
3319
+ }
3320
+ i.classList.add(`${hd}__container`);
3321
+ const p = new Ae().subVectors(s[1], s[0]), v = new Ae().subVectors(s[3], s[0]), b = new Ae().crossVectors(p, v).normalize();
3322
+ this.lookAt(b);
3323
+ const w = this.up.clone().applyQuaternion(this.quaternion), E = v.clone(), M = new Ae().crossVectors(w, E).normalize();
3324
+ this.rotateOnWorldAxis(M, w.angleTo(E)), this.position.copy(m), this.addEventListener("added", () => {
3325
+ var A;
3326
+ this.mode === "front" && ((A = this.opacityMesh) == null || A.removeFromParent());
3327
+ }), this.addEventListener("removed", () => {
3328
+ var A;
3329
+ (A = this.opacityMesh) == null || A.removeFromParent();
3330
+ });
3331
+ }
3332
+ removeFromParent() {
3333
+ var i;
3334
+ const e = this.parent;
3335
+ return e !== null && e.remove(this), (i = this.opacityMesh) == null || i.removeFromParent(), this;
3336
+ }
3337
+ removeOpacityMesh() {
3338
+ var e;
3339
+ return (e = this.opacityMesh) == null || e.removeFromParent(), this.opacityMesh = void 0, this;
3340
+ }
3341
+ dispose() {
3342
+ var e;
3343
+ this.container.remove(), this.removeFromParent(), (e = this.opacityMesh) == null || e.removeFromParent();
3344
+ }
3345
+ getOpacityMesh() {
3346
+ if (this.opacityMesh)
3347
+ return this.opacityMesh;
3348
+ {
3349
+ const e = this.createOpacityMesh(this);
3350
+ return this.opacityMesh = e, e;
3351
+ }
3352
+ }
3353
+ applyMatrix4(e) {
3354
+ var i;
3355
+ super.applyMatrix4(e), (i = this.opacityMesh) == null || i.applyMatrix4(e);
3356
+ }
3357
+ applyQuaternion(e) {
3358
+ var i;
3359
+ return super.applyQuaternion(e), (i = this.opacityMesh) == null || i.applyQuaternion(e), this;
3360
+ }
3361
+ applyScaleMatrix4(e) {
3362
+ var i;
3363
+ this.scale.applyMatrix4(e), (i = this.opacityMesh) == null || i.scale.applyMatrix4(e);
3364
+ }
3365
+ };
3366
+ function hs(n) {
3367
+ return arguments.length === 0 ? [] : Array.isArray(n) ? n : [n];
3368
+ }
3369
+ function Do(n) {
3370
+ const t = [];
3371
+ return hs(n).forEach((i) => {
3372
+ i.traverse((s) => {
3373
+ (s.isCSS3DObjectPlus || s.isCSS3DObject || s.isCSS3DSprite) && t.push(s);
3374
+ });
3375
+ }), t;
3376
+ }
3377
+ class Ob extends P.Scene {
3378
+ constructor() {
3379
+ super();
3380
+ }
3381
+ add(...t) {
3382
+ return super.add(...t), Do(t).forEach((e) => {
3383
+ e.mode = "front";
3384
+ }), this;
3385
+ }
3386
+ }
3387
+ class jb extends P.Scene {
3388
+ constructor(e) {
3389
+ super();
3390
+ f(this, "scene");
3391
+ if (!e)
3392
+ throw new Error("CSS3DBehindScene: scene is required");
3393
+ this.scene = e;
3394
+ }
3395
+ add(...e) {
3396
+ return super.add(...e), Do(e).forEach((i) => {
3397
+ i.mode = "behind", this.scene.add(i.getOpacityMesh());
3398
+ }), this;
3399
+ }
3400
+ remove(...e) {
3401
+ return Do(e).forEach((i) => {
3402
+ var s;
3403
+ (s = i.opacityMesh) == null || s.removeFromParent(), i.opacityMesh = null;
3404
+ }), super.remove(...e), this;
3405
+ }
3406
+ }
3407
+ class m0 extends P.Group {
3408
+ constructor(e) {
3409
+ super();
3410
+ f(this, "isCSS3DGroup", !0);
3411
+ f(this, "mode");
3412
+ f(this, "CSS3DObjectLength", 0);
3413
+ this.mode = e;
3414
+ }
3415
+ add(...e) {
3416
+ return Do(e).forEach((i) => {
3417
+ i.mode = this.mode;
3418
+ }), super.add(...e), this.updateLength(), this;
3419
+ }
3420
+ setVisible(e) {
3421
+ this.visible = e, this.traverse((i) => {
3422
+ i.isCSS3DObjectPlus && i.updateVisible();
3423
+ });
3424
+ }
3425
+ remove(...e) {
3426
+ return super.remove(...e), this.updateLength(), this;
3427
+ }
3428
+ updateLength() {
3429
+ this.CSS3DObjectLength = Do(this).length;
3430
+ }
3431
+ }
3432
+ class Rb extends m0 {
3433
+ constructor() {
3434
+ super("front");
3435
+ }
3436
+ }
3437
+ class _b extends m0 {
3438
+ constructor(e) {
3439
+ super("behind");
3440
+ f(this, "scene");
3441
+ if (!e)
3442
+ throw new Error("CSS3DBehindScene: scene is required");
3443
+ this.scene = e;
3444
+ }
3445
+ add(...e) {
3446
+ return Do(e).forEach((i) => {
3447
+ this.scene.add(i.getOpacityMesh());
3448
+ }), super.add(...e), this;
3449
+ }
3450
+ }
3451
+ const Bb = 3, Nc = "CSS3DRenderer", pr = `${Nc}@${Bb}`, ro = () => {
3452
+ console.error(`${pr} is disposed`);
3453
+ }, vt = {
3454
+ css3DObjects: [],
3455
+ frontModeStore: {
3456
+ css3DRenderer: new Xa()
3457
+ },
3458
+ behindModeStore: {
3459
+ css3DRenderer: new Xa()
3460
+ }
3461
+ };
3462
+ function ud(n) {
3463
+ return vt.css3DObjects.find((t) => t.id === n);
3464
+ }
3465
+ function Vb(n) {
3466
+ vt.frontModeStore.css3DRenderer.setWrapper(n);
3467
+ }
3468
+ function Fb(n) {
3469
+ vt.behindModeStore.css3DRenderer.setWrapper(n);
3470
+ }
3471
+ class Dr {
3472
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
3473
+ constructor(t) {
3474
+ f(this, "hooks", new kt());
3475
+ f(this, "state", {
3476
+ enabled: !0,
3477
+ visible: !0,
3478
+ disposed: !1
3479
+ });
3480
+ f(this, "_scene");
3481
+ f(this, "store", {
3482
+ frontModeGroup: new Rb()
3483
+ });
3484
+ /**
3485
+ * @description 根据传入的四个点位创建一个 3d dom容器,可以通过ReactDom.render()的方式将react组件放到容器中
3486
+ * @param { Vector3Position[] } points 矩形四个点坐标
3487
+ * @param params 均为可选值
3488
+ * @config_document `params` 均为可选值
3489
+ * | key | type | defaultValue | comment |
3490
+ * | - | - | - | - |
3491
+ * | `ratio` | *`number`* | `0.00216` | 1px对应多少米,默认为 0.00216,即1px对应2.16mm |
3492
+ * | `devicePixelRatio` | *`number`* | `1` | 设备的物理像素分辨率与CSS像素分辨率的比值 |
3493
+ * | `container` | *`HTMLElement`* | `undefined` | 自定义 return 中的 `container`
3494
+ * | `pointerEvents` | *`'none'\|'auto'`* | `'none'` | container 的 css属性:`pointer-events` 的值 |
3495
+ * | `autoRender` | *`boolean`* | `true` | 是否自动渲染,通常为true |
3496
+ * | `mode` | *`'front'\|'behind'`* | `front` | 两种模式:|
3497
+ * | | | | `front` 模式:DOM 处于 five Canvas 上方,所以无法模拟遮挡效果,需要手动检测是否可见去设置显隐 |
3498
+ * | | | | `behind` 模式:DOM 处于 five Canvas 下方,可以模拟真实的遮挡效果,但是 DOM 必须是非透明的 |
3499
+ * | `scene` | *`THREE.Scene`* | `undefined` | 如果 mode 为 `behind`,需要传入 |
3500
+ *
3501
+ * @return
3502
+ * ```typescript
3503
+ * {
3504
+ * id: string, // id
3505
+ * container: HTMLDIVElement // dom容器
3506
+ * dispose: () => void // 销毁
3507
+ * css3DObject: CSS3DObject // THREE.CSS3DObject 实例
3508
+ * render?: () => void // 渲染函数,当 config.autoRender = true || undefined 时为 undefined
3509
+ * setVisible: (visible: boolean) => void // 设置显隐, 同 setVisibleById(id, visible)
3510
+ * show: () => void // 同 setVisible(true)
3511
+ * hide: () => void // 同 setVisible(false)
3512
+ * setEnabled: (enabled: boolean) => void // 添加/移除 container, 同 setEnabledById(id, enabled)
3513
+ * enable: () => void // 同 setEnabled(true)
3514
+ * disable: () => void // 同 setEnabled(false)
3515
+ * } | void
3516
+ * ```
3517
+ */
3518
+ f(this, "create3DElement", (t, e, i) => {
3519
+ if (this.state.disposed)
3520
+ return ro();
3521
+ const s = (() => {
3522
+ const T = {
3523
+ ratio: 216e-5,
3524
+ devicePixelRatio: 1,
3525
+ mode: "front",
3526
+ autoRender: !0,
3527
+ container: document.createElement("div"),
3528
+ pointerEvents: "none",
3529
+ wrapperStyle: {}
3530
+ };
3531
+ return Object.assign(T, i);
3532
+ })(), o = e.map(Ue);
3533
+ if ((o == null ? void 0 : o.length) < 4)
3534
+ return console.error(`${pr}: requires 4 point but params may have fewer`);
3535
+ const { ratio: r, devicePixelRatio: a, mode: l, autoRender: c, container: h, pointerEvents: u, wrapperStyle: d } = s;
3536
+ let m = !1;
3537
+ const g = this.createObject(o, { ratio: r, dpr: a, container: h, mode: l, pointerEvents: u, wrapperStyle: d });
3538
+ vt.css3DObjects.push(g), s.scene && this.setScene(s.scene);
3539
+ const p = () => {
3540
+ if (m)
3541
+ return;
3542
+ const T = g.mode === "front" ? this.getFrontCSS3DObjectGroup() : this.getBehindCSS3DObjectGroup();
3543
+ T && T.add(g);
3544
+ }, v = () => {
3545
+ m || (p(), this.render(t), this.hooks.emit("render"));
3546
+ }, b = (T) => this.setVisibleById(g.id, T), w = (T) => this.setEnabledById(g.id, T), E = () => (m = !0, g.removeFromParent(), !0), M = l === "front" ? vt.frontModeStore.css3DRenderer : vt.behindModeStore.css3DRenderer;
3547
+ return c && v(), {
3548
+ id: g.uuid,
3549
+ container: h,
3550
+ css3DObject: g,
3551
+ render: c ? void 0 : v,
3552
+ show: () => b(!0),
3553
+ hide: () => b(!1),
3554
+ setVisible: b,
3555
+ enable: () => w(!0),
3556
+ disable: () => w(!1),
3557
+ setEnabled: w,
3558
+ dispose: E,
3559
+ appendToElement: (T) => M.setWrapper(T)
3560
+ };
3561
+ });
3562
+ f(this, "setVisibleById", (t, e) => {
3563
+ var i;
3564
+ (i = ud(t)) == null || i.setVisible(e);
3565
+ });
3566
+ f(this, "setEnabledById", (t, e) => {
3567
+ const i = ud(t);
3568
+ if (!i)
3569
+ return;
3570
+ const s = i.mode === "front" ? this.getFrontCSS3DObjectGroup({ addGroupIfNotExists: !1 }) : this.getBehindCSS3DObjectGroup({ addGroupIfNotExists: !1 });
3571
+ s && (e ? s.add(i) : s.remove(i));
3572
+ });
3573
+ f(this, "createObject", (t, e) => {
3574
+ const i = new g0(ce(F({ cornerPoints: t }, e), { style: e.wrapperStyle }));
3575
+ return i.element.classList.add(`${Nc}__container`), i.element.id = `${Nc}__container--${i.uuid}`, i;
3576
+ });
3577
+ t && this.setScene(t);
3578
+ }
3579
+ get scene() {
3580
+ return this._scene || console.error("scene doesn't exist!, please call setScene(scene) first"), this._scene;
3581
+ }
3582
+ static get frontModeCSS3DRenderer() {
3583
+ return vt.frontModeStore.css3DRenderer;
3584
+ }
3585
+ static get behindModeCSS3DRenderer() {
3586
+ return vt.behindModeStore.css3DRenderer;
3587
+ }
3588
+ get frontModeCSS3DRenderer() {
3589
+ return vt.frontModeStore.css3DRenderer;
3590
+ }
3591
+ get behindModeCSS3DRenderer() {
3592
+ return vt.behindModeStore.css3DRenderer;
3593
+ }
3594
+ setScene(t) {
3595
+ this._scene = t;
3596
+ }
3597
+ getCurrentState() {
3598
+ return this.state;
3599
+ }
3600
+ setState(t, e = { userAction: !0 }) {
3601
+ if (this.state.disposed)
3602
+ return ro();
3603
+ const i = F({}, this.state);
3604
+ this.state = Object.assign(this.state, t), i.visible !== this.state.visible && (t.visible ? this.handleShow() : this.handleHide()), i.enabled !== this.state.enabled && (t.enabled ? this.handleEnable() : this.handleDisable()), i.disposed !== this.state.disposed && this.handleDispose(), this.hooks.emit("stateChange", { state: this.state, prevState: i, userAction: e.userAction });
3605
+ }
3606
+ dispose() {
3607
+ this.setState({ disposed: !0 }), this.hooks.emit("dispose");
3608
+ }
3609
+ show() {
3610
+ return ie(this, arguments, function* ({ userAction: t } = { userAction: !0 }) {
3611
+ if (this.state.disposed)
3612
+ return ro();
3613
+ this.setState({ visible: !0 }, { userAction: t }), this.hooks.emit("show", { userAction: t });
3614
+ });
3615
+ }
3616
+ hide() {
3617
+ return ie(this, arguments, function* ({ userAction: t } = { userAction: !0 }) {
3618
+ if (this.state.disposed)
3619
+ return ro();
3620
+ this.setState({ visible: !1 }, { userAction: t }), this.hooks.emit("hide", { userAction: t });
3621
+ });
3622
+ }
3623
+ enable({ userAction: t } = { userAction: !0 }) {
3624
+ if (this.state.disposed)
3625
+ return ro();
3626
+ this.setState({ enabled: !0 }, { userAction: t }), this.hooks.emit("enable", { userAction: t });
3627
+ }
3628
+ disable({ userAction: t } = { userAction: !0 }) {
3629
+ if (this.state.disposed)
3630
+ return ro();
3631
+ this.setState({ enabled: !1 }, { userAction: t }), this.hooks.emit("disable", { userAction: t });
3632
+ }
3633
+ getFrontCSS3DScene({ createSceneIfNotExists: t = !1 } = {}) {
3634
+ var i;
3635
+ const e = (i = vt.frontModeStore) == null ? void 0 : i.css3DScene;
3636
+ if (e)
3637
+ return e;
3638
+ if (t) {
3639
+ const s = new Ob();
3640
+ vt.frontModeStore.css3DScene = s;
3641
+ }
3642
+ return vt.frontModeStore.css3DScene;
3643
+ }
3644
+ getBehindCSS3DScene({ createSceneIfNotExists: t = !1 } = {}) {
3645
+ var i, s;
3646
+ const e = (i = vt.behindModeStore) == null ? void 0 : i.css3DScene;
3647
+ if (e)
3648
+ return e;
3649
+ if (t) {
3650
+ const o = (s = vt.behindModeStore.scene) != null ? s : this.scene;
3651
+ if (!o) {
3652
+ console.error(`${pr}: scene is required when mode is behind`);
3653
+ return;
3654
+ }
3655
+ const r = new jb(o);
3656
+ vt.behindModeStore.css3DScene = r, vt.behindModeStore.scene = o;
3657
+ }
3658
+ return vt.behindModeStore.css3DScene;
3659
+ }
3660
+ getFrontCSS3DObjectGroup({ addGroupIfNotExists: t = !0 } = {}) {
3661
+ const e = this.getFrontCSS3DScene({ createSceneIfNotExists: t });
3662
+ return t && e && (e.getObjectById(this.store.frontModeGroup.id) || e.add(this.store.frontModeGroup)), this.store.frontModeGroup;
3663
+ }
3664
+ getBehindCSS3DObjectGroup({ addGroupIfNotExists: t = !0 } = {}) {
3665
+ var i;
3666
+ const e = this.getBehindCSS3DScene({ createSceneIfNotExists: t });
3667
+ if (t && e && this.scene) {
3668
+ const s = (i = this.store.behindModeGroup) != null ? i : new _b(this.scene);
3669
+ this.store.behindModeGroup = s, e.getObjectById(s.id) || e.add(s);
3670
+ }
3671
+ return this.store.behindModeGroup;
3672
+ }
3673
+ render(t) {
3674
+ var e, i;
3675
+ if (this.getFrontCSS3DObjectGroup({ addGroupIfNotExists: !1 }).CSS3DObjectLength > 0) {
3676
+ const s = this.getFrontCSS3DScene({ createSceneIfNotExists: !0 });
3677
+ if (!s)
3678
+ return console.error(`${pr}: css3DScene is required when mode is front`);
3679
+ vt.frontModeStore.css3DRenderer.renderEveryFrame(s, t);
3680
+ }
3681
+ if (((i = (e = this.getBehindCSS3DObjectGroup({ addGroupIfNotExists: !1 })) == null ? void 0 : e.CSS3DObjectLength) != null ? i : 0) > 0) {
3682
+ const s = this.getBehindCSS3DScene({ createSceneIfNotExists: !0 });
3683
+ if (!s)
3684
+ return console.error(`${pr}: css3DScene is required when mode is behind`);
3685
+ vt.behindModeStore.css3DRenderer.renderEveryFrame(s, t);
3686
+ }
3687
+ }
3688
+ handleShow() {
3689
+ return ie(this, null, function* () {
3690
+ var t;
3691
+ this.store.frontModeGroup.setVisible(!0), (t = this.store.behindModeGroup) == null || t.setVisible(!0);
3692
+ });
3693
+ }
3694
+ handleHide() {
3695
+ return ie(this, null, function* () {
3696
+ var t;
3697
+ this.store.frontModeGroup.setVisible(!1), (t = this.store.behindModeGroup) == null || t.setVisible(!1);
3698
+ });
3699
+ }
3700
+ handleEnable() {
3701
+ var t, e;
3702
+ (t = this.getFrontCSS3DScene()) == null || t.add(this.store.frontModeGroup), this.store.behindModeGroup && ((e = this.getBehindCSS3DScene()) == null || e.add(this.store.behindModeGroup));
3703
+ }
3704
+ handleDisable() {
3705
+ var t, e, i;
3706
+ this.store.frontModeGroup.children.forEach((s) => {
3707
+ s instanceof kn && s.element instanceof Element && s.element.parentNode !== null && s.element.remove();
3708
+ }), (t = this.store.behindModeGroup) == null || t.children.forEach((s) => {
3709
+ s instanceof kn && s.element instanceof Element && s.element.parentNode !== null && s.element.remove();
3710
+ }), (e = this.getFrontCSS3DScene()) == null || e.remove(this.store.frontModeGroup), this.store.behindModeGroup && ((i = this.getBehindCSS3DScene()) == null || i.remove(this.store.behindModeGroup));
3711
+ }
3712
+ handleDispose() {
3713
+ this.handleDisable();
3714
+ }
3715
+ }
3716
+ f(Dr, "setFrontModeContainer", Vb), f(Dr, "setBehindModeContainer", Fb);
3245
3717
  let lr = [null, null, () => null];
3246
3718
  function Zr(n) {
3247
3719
  var s;
@@ -3258,16 +3730,16 @@ function Zr(n) {
3258
3730
  const o = (a = n.getElement()) == null ? void 0 : a.parentElement, r = xh(n);
3259
3731
  if (!o)
3260
3732
  return console.error("initialCSS3DRender: five element is not exist"), () => null;
3261
- if (t.appendToElement(o), t.renderEveryFrame(n.scene, n.camera), !r)
3733
+ if (t.appendToElement(o), vt.frontModeStore.css3DScene && t.renderEveryFrame(vt.frontModeStore.css3DScene, n.camera), !r)
3262
3734
  return console.error("initialCSS3DRender: behindWrapper is not exist"), () => null;
3263
- e.appendToElement(r), e.renderEveryFrame(n.scene, n.camera);
3735
+ e.appendToElement(r), vt.behindModeStore.css3DScene && e.renderEveryFrame(vt.behindModeStore.css3DScene, n.camera);
3264
3736
  });
3265
3737
  const i = () => {
3266
3738
  t.dispose(), e.dispose();
3267
3739
  };
3268
3740
  return lr = [n, t, i], i;
3269
3741
  }
3270
- const Lb = 16777215, zb = 16777215, Ob = 1, jb = 0.5, Sh = 0.6;
3742
+ const Hb = 16777215, Nb = 16777215, Gb = 1, Wb = 0.5, Dh = 0.6;
3271
3743
  class mi extends wo {
3272
3744
  constructor() {
3273
3745
  super();
@@ -3299,11 +3771,7 @@ class mi extends wo {
3299
3771
  return e !== null && e.remove(this), this;
3300
3772
  }
3301
3773
  }
3302
- function oi(...n) {
3303
- const t = new Ae();
3304
- return n.forEach((e) => t.add(e)), t.divideScalar(n.length), t;
3305
- }
3306
- function Dh(n, t) {
3774
+ function Th(n, t) {
3307
3775
  if (!document.getElementById("LineLengthTagStyle")) {
3308
3776
  const o = document.createElement("style");
3309
3777
  o.id = "LineLengthTagStyle", document.head.appendChild(o), o.innerHTML = `
@@ -3371,14 +3839,11 @@ function Dh(n, t) {
3371
3839
  </div>
3372
3840
  `;
3373
3841
  }
3374
- function hs(n) {
3375
- return arguments.length === 0 ? [] : Array.isArray(n) ? n : [n];
3376
- }
3377
- function Dr(n, t) {
3842
+ function Tr(n, t) {
3378
3843
  const i = hs(t).map((s) => n.localToWorld(s.clone()));
3379
3844
  return Array.isArray(t) ? i : i[0];
3380
3845
  }
3381
- function Rb(n, t) {
3846
+ function Ub(n, t) {
3382
3847
  const i = hs(t).map((s) => n.worldToLocal(s.clone()));
3383
3848
  return Array.isArray(t) ? i : i[0];
3384
3849
  }
@@ -3409,7 +3874,7 @@ function gi(n) {
3409
3874
  function Ne(n) {
3410
3875
  return n != null;
3411
3876
  }
3412
- class _b extends KA {
3877
+ class Qb extends KA {
3413
3878
  constructor(e) {
3414
3879
  var i;
3415
3880
  super(e);
@@ -3441,7 +3906,7 @@ class _b extends KA {
3441
3906
  };
3442
3907
  }
3443
3908
  }
3444
- class hd extends $A {
3909
+ class dd extends $A {
3445
3910
  constructor(t, e) {
3446
3911
  super(t, e);
3447
3912
  }
@@ -3668,7 +4133,7 @@ const nc = {
3668
4133
  }
3669
4134
  `
3670
4135
  };
3671
- class d0 extends P.ShaderMaterial {
4136
+ class p0 extends P.ShaderMaterial {
3672
4137
  // to be set by renderer
3673
4138
  constructor(e) {
3674
4139
  super({
@@ -3751,8 +4216,8 @@ class d0 extends P.ShaderMaterial {
3751
4216
  }), this.setValues(e);
3752
4217
  }
3753
4218
  }
3754
- Object.assign(d0.prototype, { isLineMaterial: !0 });
3755
- class Bb extends d0 {
4219
+ Object.assign(p0.prototype, { isLineMaterial: !0 });
4220
+ class Xb extends p0 {
3756
4221
  constructor(e) {
3757
4222
  var i;
3758
4223
  super(e);
@@ -3784,7 +4249,7 @@ class Bb extends d0 {
3784
4249
  };
3785
4250
  }
3786
4251
  }
3787
- function Vb(n, t = "m", e = 2) {
4252
+ function Yb(n, t = "m", e = 2) {
3788
4253
  let i;
3789
4254
  if (t === "m")
3790
4255
  return i = n.toFixed(e), parseFloat(i) === 0 ? void 0 : i + "m";
@@ -3795,7 +4260,7 @@ function Vb(n, t = "m", e = 2) {
3795
4260
  return s === 0 && o === 0 ? void 0 : `${s}′${o}″`;
3796
4261
  }
3797
4262
  }
3798
- function Fb(n, t = "m") {
4263
+ function Zb(n, t = "m") {
3799
4264
  let e;
3800
4265
  if (t === "m")
3801
4266
  return e = n.toFixed(2), e === "0.00" ? void 0 : e + "m²";
@@ -3863,16 +4328,16 @@ class Ci extends mi {
3863
4328
  });
3864
4329
  this.paramsStyle = F({ dashed: !1, lineOpacity: 1 }, e), this.geometry = new _a();
3865
4330
  const i = {
3866
- color: new P.Color((r = e == null ? void 0 : e.lineColor) != null ? r : zb),
3867
- linewidth: (a = e == null ? void 0 : e.lineWidth) != null ? a : Ob,
4331
+ color: new P.Color((r = e == null ? void 0 : e.lineColor) != null ? r : Nb),
4332
+ linewidth: (a = e == null ? void 0 : e.lineWidth) != null ? a : Gb,
3868
4333
  dashScale: 1,
3869
4334
  dashSize: 0.02,
3870
4335
  gapSize: 0.02,
3871
4336
  opacity: (l = e == null ? void 0 : e.lineOpacity) != null ? l : 1,
3872
4337
  depthWrite: !1,
3873
4338
  transparent: !0
3874
- }, s = new _b(ce(F({}, i), { dashed: !1, depthTest: !0 })), o = new Bb(ce(F({}, i), { dashed: !0, depthTest: !1 }));
3875
- if (this.line1 = new hd(this.geometry, s), this.line2 = new hd(this.geometry, o), this.line1.renderOrder = 2, this.line2.renderOrder = 2, this.line1.name = "line1", this.line2.name = "line2", this.add(this.line1), this.five) {
4339
+ }, s = new Qb(ce(F({}, i), { dashed: !1, depthTest: !0 })), o = new Xb(ce(F({}, i), { dashed: !0, depthTest: !1 }));
4340
+ if (this.line1 = new dd(this.geometry, s), this.line2 = new dd(this.geometry, o), this.line1.renderOrder = 2, this.line2.renderOrder = 2, this.line1.name = "line1", this.line2.name = "line2", this.add(this.line1), this.five) {
3876
4341
  const h = (c = this.five.renderer) == null ? void 0 : c.getSize(new P.Vector2());
3877
4342
  h && this.setResolution(h.width, h.height), this.five.on("cameraUpdate", this.onCameraUpdate), this.five.on("cameraFovUpdate", this.onCameraUpdate), this.five.on("panoArrived", this.onPanoArrived);
3878
4343
  }
@@ -3930,7 +4395,7 @@ class Ci extends mi {
3930
4395
  updateMatrixWorld(e) {
3931
4396
  var i;
3932
4397
  if (super.updateMatrixWorld(e), this.points) {
3933
- const s = (i = Dr(this, this.points)) == null ? void 0 : i.map((o) => o.toArray().join(",")).join(",");
4398
+ const s = (i = Tr(this, this.points)) == null ? void 0 : i.map((o) => o.toArray().join(",")).join(",");
3934
4399
  s !== this.lastRenderDomItem && (this.updateDomItems(), this.lastRenderDomItem = s);
3935
4400
  }
3936
4401
  }
@@ -3974,7 +4439,7 @@ class Ci extends mi {
3974
4439
  this.colorBeforeHighlight = (i = this.colorBeforeHighlight) != null ? i : this.line1.material.three_color, this.line1.material.three_color = o, this.line2.material.three_color = o;
3975
4440
  } else {
3976
4441
  this.opacityBeforeHighlight = (s = this.opacityBeforeHighlight) != null ? s : this.line1.material.opacity;
3977
- const o = this.opacityBeforeHighlight * Sh;
4442
+ const o = this.opacityBeforeHighlight * Dh;
3978
4443
  this.line1.material.opacity = o, this.line2.material.opacity = o;
3979
4444
  }
3980
4445
  this.needsRender = !0;
@@ -3990,7 +4455,7 @@ class Ci extends mi {
3990
4455
  return i();
3991
4456
  if (!this.five)
3992
4457
  return console.error("Five not found");
3993
- const s = this.points.map((o, r) => r !== 0 ? [this.points[r - 1], o] : null).filter(Ne).map((o) => Dr(this, o));
4458
+ const s = this.points.map((o, r) => r !== 0 ? [this.points[r - 1], o] : null).filter(Ne).map((o) => Tr(this, o));
3994
4459
  s.forEach(([o, r], a) => {
3995
4460
  var h;
3996
4461
  const l = oi(o, r);
@@ -4028,7 +4493,7 @@ class Ci extends mi {
4028
4493
  };
4029
4494
  let z = 0;
4030
4495
  const O = j(u);
4031
- b > 0 && O > b && (z = -20), this.doms[a].container.innerHTML = Dh(u, {
4496
+ b > 0 && O > b && (z = -20), this.doms[a].container.innerHTML = Th(u, {
4032
4497
  style: `${D} ${this.paramsStyle.cssStyle || ""}`,
4033
4498
  offsetY: z
4034
4499
  });
@@ -4038,20 +4503,20 @@ class Ci extends mi {
4038
4503
  if (this.paramsStyle.tip)
4039
4504
  c(this.paramsStyle.tip, e);
4040
4505
  else {
4041
- const u = Vb(o.distanceTo(r), this.paramsStyle.lengthUnit, this.paramsStyle.precision);
4506
+ const u = Yb(o.distanceTo(r), this.paramsStyle.lengthUnit, this.paramsStyle.precision);
4042
4507
  c(u || null, e);
4043
4508
  }
4044
4509
  }), this.doms.length > s.length && (this.doms.slice(s.length).forEach((o) => o.destroy()), this.doms.length = s.length);
4045
4510
  }
4046
4511
  }
4047
- class Hb extends Qa {
4512
+ class qb extends Qa {
4048
4513
  constructor() {
4049
4514
  super(...arguments);
4050
4515
  f(this, "isCSS3DSprite", !0);
4051
4516
  f(this, "isCSS3DObject", !0);
4052
4517
  }
4053
4518
  }
4054
- const Nb = (
4519
+ const Jb = (
4055
4520
  /* glsl */
4056
4521
  `
4057
4522
  varying vec2 vUv;
@@ -4070,7 +4535,7 @@ void main() {
4070
4535
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1);
4071
4536
  }
4072
4537
  `
4073
- ), Gb = (
4538
+ ), Kb = (
4074
4539
  /* glsl */
4075
4540
  `
4076
4541
  varying vec2 vUv;
@@ -4092,15 +4557,15 @@ void main() {
4092
4557
  }
4093
4558
  `
4094
4559
  );
4095
- function Wb() {
4560
+ function $b() {
4096
4561
  const t = new P.CircleGeometry(0.2, 64), e = new P.ShaderMaterial({
4097
4562
  side: P.DoubleSide,
4098
4563
  uniforms: {
4099
4564
  borderWidth: { value: 0.01 },
4100
4565
  radius: { value: 0.2 }
4101
4566
  },
4102
- vertexShader: Nb,
4103
- fragmentShader: Gb,
4567
+ vertexShader: Jb,
4568
+ fragmentShader: Kb,
4104
4569
  depthTest: !1,
4105
4570
  transparent: !0,
4106
4571
  blending: P.CustomBlending,
@@ -4111,7 +4576,7 @@ function Wb() {
4111
4576
  });
4112
4577
  return new P.Mesh(t, e);
4113
4578
  }
4114
- function Ub() {
4579
+ function ey() {
4115
4580
  const t = new P.Group(), e = {
4116
4581
  lineWidth: 1,
4117
4582
  lineColor: 3407837,
@@ -4120,7 +4585,7 @@ function Ub() {
4120
4585
  }, i = new Ci(ce(F({ points: [{ x: -0.5 }, { x: 0.5 }] }, e), { lineColor: 3407837 })), s = new Ci(ce(F({ points: [{ y: -0.5 }, { y: 0.5 }] }, e), { lineColor: 3407837 }));
4121
4586
  return t.add(i, s), t;
4122
4587
  }
4123
- function Qb(n) {
4588
+ function ty(n) {
4124
4589
  const t = new P.CurvePath();
4125
4590
  t.add(new P.LineCurve3(new P.Vector3(0, 0, 0), new P.Vector3(0, 0, n)));
4126
4591
  const e = new P.TubeGeometry(t, 32, 3e-3), i = new P.MeshBasicMaterial({
@@ -4131,7 +4596,7 @@ function Qb(n) {
4131
4596
  });
4132
4597
  return new P.Mesh(e, i);
4133
4598
  }
4134
- function Xb() {
4599
+ function iy() {
4135
4600
  const n = new P.RingGeometry(0.03, 0.035, 64), t = new P.MeshBasicMaterial({
4136
4601
  color: 16777215,
4137
4602
  depthTest: !1,
@@ -4141,7 +4606,7 @@ function Xb() {
4141
4606
  });
4142
4607
  return new P.Mesh(n, t);
4143
4608
  }
4144
- function Yb() {
4609
+ function ny() {
4145
4610
  const n = new P.SphereGeometry(0.018, 32, 32), t = new P.MeshBasicMaterial({
4146
4611
  color: 5085183,
4147
4612
  depthTest: !1,
@@ -4150,13 +4615,13 @@ function Yb() {
4150
4615
  });
4151
4616
  return new P.Mesh(n, t);
4152
4617
  }
4153
- function Zb() {
4618
+ function sy() {
4154
4619
  const n = document.createElement("img");
4155
4620
  n.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAVCAMAAAB8FU7dAAAAw1BMVEUAAACDuuiAsu11q/x8r/+HxtKHxtKIx9J4ut6Hx9Jcn/uNwNlmmf+RuP9ppf9orel3ud2HxtJrpf9oremev/9ppP9orelQmP9ZoPWSuP92q/9cnv9prel4ut53qv9orelYoPWIxdJPmP+HxtGRuP9oo/+Suf9Qmf92q/+RuP+DsP9Pmv+FxdFtre2SyMiRuP9PmP+evv9ppf9cnv+rxf9orepZofV4ut52q/+Dsf+Esv+5y/93q/9aofbF0f93rP9qpf8IzZ1iAAAAL3RSTlMAEg4s3dK5nodgVQoF/Pf39vbt7evr39rV1NTOzs6srJ+fiIZ9fWlpW09ERCwcHMH8LhIAAADRSURBVBjTjdDHkoMwEIThBrzOm3POOQwSYCRhe/f9n2p75FD2zX/VXL5qOAjzkixLsFL6fOFF5PwpXUj/eEwx7Oh9Jq+FdV5MqZkXlU9K4KZsmqY02x/A8LSwv14o0ylJWkP087WVhDfcjmjj5b/E3+CEpDPdGY58C7tKfzSiiA9uB4dV/NIF7yVQ7AGuq0lOIzrvnLP2Et2aMzUqryge8FVX0Zjl5XkG3KsR593pM2zVEScjvbMU7IdGjF19IzZ43Ceyve4Ai5Jep93u9BJs3j/gXjHbRgy31AAAAABJRU5ErkJggg==";
4156
- const t = new Hb(n);
4621
+ const t = new qb(n);
4157
4622
  return n.style.pointerEvents = "none", t.scale.set(3e-3, 3e-3, 3e-3), t;
4158
4623
  }
4159
- class qb extends P.Object3D {
4624
+ class oy extends P.Object3D {
4160
4625
  constructor(e) {
4161
4626
  super();
4162
4627
  f(this, "disableGetPixel", !0);
@@ -4167,7 +4632,7 @@ class qb extends P.Object3D {
4167
4632
  f(this, "ballMesh");
4168
4633
  f(this, "cssBallMesh");
4169
4634
  const i = 0.18;
4170
- this.planeMesh = Wb(), this.ringMesh = Xb(), this.crossline = Ub(), this.lineMesh = Qb(i), this.ballMesh = Yb(), this.cssBallMesh = Zb(), this.ballMesh.position.setZ(i), this.cssBallMesh.position.setZ(i), this.planeMesh.renderOrder = 0, this.ringMesh.renderOrder = 1, this.crossline.renderOrder = 2, this.lineMesh.renderOrder = 3, this.ballMesh.renderOrder = 4, this.add(this.planeMesh, this.lineMesh, this.ballMesh, this.ringMesh, this.cssBallMesh), Zr(e);
4635
+ this.planeMesh = $b(), this.ringMesh = iy(), this.crossline = ey(), this.lineMesh = ty(i), this.ballMesh = ny(), this.cssBallMesh = sy(), this.ballMesh.position.setZ(i), this.cssBallMesh.position.setZ(i), this.planeMesh.renderOrder = 0, this.ringMesh.renderOrder = 1, this.crossline.renderOrder = 2, this.lineMesh.renderOrder = 3, this.ballMesh.renderOrder = 4, this.add(this.planeMesh, this.lineMesh, this.ballMesh, this.ringMesh, this.cssBallMesh), Zr(e);
4171
4636
  }
4172
4637
  updateWithIntersect(e) {
4173
4638
  if (!e.face)
@@ -4187,10 +4652,10 @@ class qb extends P.Object3D {
4187
4652
  dispose() {
4188
4653
  }
4189
4654
  }
4190
- class f0 {
4655
+ class v0 {
4191
4656
  constructor(t, e) {
4192
4657
  f(this, "five");
4193
- f(this, "hooks", new Mt());
4658
+ f(this, "hooks", new kt());
4194
4659
  f(this, "position", null);
4195
4660
  f(this, "magnifier", null);
4196
4661
  f(this, "pointHelper", null);
@@ -4220,7 +4685,7 @@ class f0 {
4220
4685
  var s, o, r, a, l;
4221
4686
  this.five = t, this.magnifier = (e == null ? void 0 : e.magnifier) !== void 0 ? e.magnifier : new kh(t, ce(F({ dragEnabled: !0 }, e == null ? void 0 : e.magnifierParams), { skipPanorama: (s = e == null ? void 0 : e.skipPanorama) != null ? s : !1 }));
4222
4687
  let i = null;
4223
- (e == null ? void 0 : e.pointHelper) === "default" || (e == null ? void 0 : e.pointHelper) === void 0 ? i = new w0(t) : (e == null ? void 0 : e.pointHelper) === "highlight" ? i = new qb(t) : (e == null ? void 0 : e.pointHelper) === null ? i = null : i = e.pointHelper, this.pointHelper = i, this.group.name = "five-point-selector", this.five.scene.add(this.group), (l = this.magnifier) == null || l.appendTo((a = (r = e.container) != null ? r : (o = t.getElement()) == null ? void 0 : o.parentElement) != null ? a : document.body);
4688
+ (e == null ? void 0 : e.pointHelper) === "default" || (e == null ? void 0 : e.pointHelper) === void 0 ? i = new P0(t) : (e == null ? void 0 : e.pointHelper) === "highlight" ? i = new oy(t) : (e == null ? void 0 : e.pointHelper) === null ? i = null : i = e.pointHelper, this.pointHelper = i, this.group.name = "five-point-selector", this.five.scene.add(this.group), (l = this.magnifier) == null || l.appendTo((a = (r = e.container) != null ? r : (o = t.getElement()) == null ? void 0 : o.parentElement) != null ? a : document.body);
4224
4689
  }
4225
4690
  enable() {
4226
4691
  var t;
@@ -4234,16 +4699,16 @@ class f0 {
4234
4699
  this.hooks.off(), this.disable(), this.magnifier = null, this.pointHelper = null;
4235
4700
  }
4236
4701
  }
4237
- const g0 = "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
4238
- function Jb(n, t) {
4702
+ const A0 = "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
4703
+ function ry(n, t) {
4239
4704
  const { x: e, y: i } = t, s = e * 2 - 1, o = i * 2 - 1, r = new P.Raycaster();
4240
4705
  return r.setFromCamera({ x: s, y: o }, n.camera), r.params.Points.threshold = 0.02, r;
4241
4706
  }
4242
4707
  function qr(n, t, e) {
4243
- const i = Kb(n, t);
4244
- return e != null && e.virtualPoint ? i != null ? i : m0(t) : i;
4708
+ const i = ay(n, t);
4709
+ return e != null && e.virtualPoint ? i != null ? i : b0(t) : i;
4245
4710
  }
4246
- function m0(n, t = 3) {
4711
+ function b0(n, t = 3) {
4247
4712
  const e = new P.Vector3().addVectors(
4248
4713
  n.ray.origin,
4249
4714
  n.ray.direction.clone().normalize().multiplyScalar(t)
@@ -4257,14 +4722,14 @@ function m0(n, t = 3) {
4257
4722
  isVirtual: !0
4258
4723
  };
4259
4724
  }
4260
- function Kb(n, t) {
4725
+ function ay(n, t) {
4261
4726
  const s = wi(n).intersectRaycaster(t)[0];
4262
4727
  if (s)
4263
4728
  return ce(F({}, s), { raycaster: t, isVirtual: !1 });
4264
4729
  }
4265
- const ud = `url("data:image/svg+xml,%3Csvg width='12px' height='12px' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cpath d='M6,12 C9.3137085,12 12,9.3137085 12,6 C12,2.6862915 9.3137085,0 6,0 C2.6862915,0 0,2.6862915 0,6 C0,9.3137085 2.6862915,12 6,12 Z' fill='%23FF5959'%3E%3C/path%3E%3Cg transform='translate(2, 2)' stroke='%23FFFFFF'%3E%3Ccircle cx='4' cy='4' r='4'%3E%3C/circle%3E%3Cline x1='1.07141075' y1='1.23997894' x2='6.64700843' y2='6.81557662'%3E%3C/line%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 6 6, auto`, $b = new P.Vector3();
4730
+ const fd = `url("data:image/svg+xml,%3Csvg width='12px' height='12px' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cpath d='M6,12 C9.3137085,12 12,9.3137085 12,6 C12,2.6862915 9.3137085,0 6,0 C2.6862915,0 0,2.6862915 0,6 C0,9.3137085 2.6862915,12 6,12 Z' fill='%23FF5959'%3E%3C/path%3E%3Cg transform='translate(2, 2)' stroke='%23FFFFFF'%3E%3Ccircle cx='4' cy='4' r='4'%3E%3C/circle%3E%3Cline x1='1.07141075' y1='1.23997894' x2='6.64700843' y2='6.81557662'%3E%3C/line%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 6 6, auto`, ly = new P.Vector3();
4266
4731
  function ns(n) {
4267
- const { raycaster: t, line: e, clampToLine: i = !0 } = n, s = new P.Plane().setFromNormalAndCoplanarPoint(t.ray.direction.clone().normalize(), new P.Vector3()), o = s.projectPoint(e.start, new P.Vector3()), r = s.projectPoint(e.end, new P.Vector3()), a = new P.Line3(o, r), l = a.closestPointToPoint(t.ray.origin, i, $b), c = l.distanceTo(r), h = l.distanceTo(o), u = a.distance();
4732
+ const { raycaster: t, line: e, clampToLine: i = !0 } = n, s = new P.Plane().setFromNormalAndCoplanarPoint(t.ray.direction.clone().normalize(), new P.Vector3()), o = s.projectPoint(e.start, new P.Vector3()), r = s.projectPoint(e.end, new P.Vector3()), a = new P.Line3(o, r), l = a.closestPointToPoint(t.ray.origin, i, ly), c = l.distanceTo(r), h = l.distanceTo(o), u = a.distance();
4268
4733
  if (c > h && c > u) {
4269
4734
  const d = -l.distanceTo(o) / u, m = e.start.clone().sub(e.end).normalize();
4270
4735
  return e.start.clone().sub(m.clone().multiplyScalar(d * e.distance()));
@@ -4273,8 +4738,8 @@ function ns(n) {
4273
4738
  return new P.Vector3().lerpVectors(e.start, e.end, d);
4274
4739
  }
4275
4740
  }
4276
- const dd = new P.Vector3(), ro = () => !1;
4277
- class Cl extends Mt {
4741
+ const gd = new P.Vector3(), ao = () => !1;
4742
+ class Cl extends kt {
4278
4743
  constructor(e, i) {
4279
4744
  var r, a, l, c, h;
4280
4745
  super();
@@ -4434,7 +4899,7 @@ class Cl extends Mt {
4434
4899
  */
4435
4900
  f(this, "updateByNdcPosition", (e) => {
4436
4901
  var o, r, a;
4437
- const i = Jb(this.five, e);
4902
+ const i = ry(this.five, e);
4438
4903
  let s = qr(this.five, i);
4439
4904
  if (s) {
4440
4905
  if (this.plane && this.planeMode === "vertical" && (s = ce(F({}, s), {
@@ -4442,7 +4907,7 @@ class Cl extends Mt {
4442
4907
  face: new P.Face3(0, 0, 0, this.plane.normal.clone()),
4443
4908
  originalPoint: s.point.clone()
4444
4909
  })), this.plane && this.planeMode === "onlyPlane") {
4445
- const l = i.ray.intersectPlane(this.plane, dd);
4910
+ const l = i.ray.intersectPlane(this.plane, gd);
4446
4911
  if (!l)
4447
4912
  return !1;
4448
4913
  s = {
@@ -4456,7 +4921,7 @@ class Cl extends Mt {
4456
4921
  return this.updatePointSelectorHelperIntersect(s), this.lastIntersection = s, !0;
4457
4922
  }
4458
4923
  if (this.plane) {
4459
- const l = i.ray.intersectPlane(this.plane, dd);
4924
+ const l = i.ray.intersectPlane(this.plane, gd);
4460
4925
  if (l) {
4461
4926
  const c = {
4462
4927
  distance: this.five.camera.position.distanceTo(l),
@@ -4472,7 +4937,7 @@ class Cl extends Mt {
4472
4937
  if (this.actionIfNoIntersection === "lastPoint")
4473
4938
  return this.updatePointSelectorHelperIntersect(this.lastIntersection), !0;
4474
4939
  if (this.actionIfNoIntersection === "virtualPoint") {
4475
- const l = m0(i, (o = this.lastIntersection) == null ? void 0 : o.distance);
4940
+ const l = b0(i, (o = this.lastIntersection) == null ? void 0 : o.distance);
4476
4941
  return l.face = new P.Face3(0, 0, 0, (a = (r = this.lastIntersection) == null ? void 0 : r.face) == null ? void 0 : a.normal), l.isVirtual = !0, this.lastIntersection = l, this.updatePointSelectorHelperIntersect(l), !0;
4477
4942
  } else if (this.actionIfNoIntersection === "disable")
4478
4943
  return this.updatePointSelectorHelperIntersect(null), !1;
@@ -4483,7 +4948,7 @@ class Cl extends Mt {
4483
4948
  f(this, "updatePointSelectorHelperIntersect", (e) => {
4484
4949
  var s, o, r, a, l, c, h, u;
4485
4950
  if (!e) {
4486
- this.pointSelectorHelper.hide(), this.pointSelectorHelper.position = e, this.emit("intersectionUpdate", e), this.five.getElement().style.cursor = ud;
4951
+ this.pointSelectorHelper.hide(), this.pointSelectorHelper.position = e, this.emit("intersectionUpdate", e), this.five.getElement().style.cursor = fd;
4487
4952
  return;
4488
4953
  }
4489
4954
  this.onEnter(), this.cursorError || (this.five.getElement().style.cursor = "");
@@ -4583,12 +5048,12 @@ class Cl extends Mt {
4583
5048
  });
4584
5049
  this.five = e, this.config = F(F({}, this.config), i), this.actionIfNoIntersection = (a = (r = i == null ? void 0 : i.actionIfNoIntersection) != null ? r : i == null ? void 0 : i.actionIfNoModelUnderMouse) != null ? a : "virtualPoint";
4585
5050
  const s = (l = i == null ? void 0 : i.mode) != null ? l : "auto";
4586
- s === "auto" ? this.mode = g0 ? "fixed" : "cursor" : this.mode = s;
5051
+ s === "auto" ? this.mode = A0 ? "fixed" : "cursor" : this.mode = s;
4587
5052
  const o = {
4588
5053
  autoFixPCPosition: this.mode === "cursor",
4589
5054
  initialPosition: this.mode === "fixed" ? { left: "35%", top: "20%" } : void 0
4590
5055
  };
4591
- this.pointSelectorHelper = new f0(this.five, ce(F({}, i == null ? void 0 : i.helper), {
5056
+ this.pointSelectorHelper = new v0(this.five, ce(F({}, i == null ? void 0 : i.helper), {
4592
5057
  magnifierParams: F(F({}, o), (c = i == null ? void 0 : i.helper) == null ? void 0 : c.magnifierParams),
4593
5058
  skipPanorama: (h = i == null ? void 0 : i.skipPanorama) != null ? h : !1
4594
5059
  })), this.pointSelectorHelper.hide();
@@ -4610,7 +5075,7 @@ class Cl extends Mt {
4610
5075
  return this._cursorError;
4611
5076
  }
4612
5077
  set cursorError(e) {
4613
- this._cursorError = e, this.five.getElement().style.cursor = e ? ud : "", e ? this.pointSelectorHelper.hide() : this.pointSelectorHelper.show();
5078
+ this._cursorError = e, this.five.getElement().style.cursor = e ? fd : "", e ? this.pointSelectorHelper.hide() : this.pointSelectorHelper.show();
4614
5079
  }
4615
5080
  set outOfFive(e) {
4616
5081
  this._outOfFive = e;
@@ -4628,14 +5093,14 @@ class Cl extends Mt {
4628
5093
  const e = this.five.getElement();
4629
5094
  if (!e)
4630
5095
  throw new Error("five element not found");
4631
- this.mode === "cursor" ? (this.five.on("wantsMoveToPano", ro), this.five.on("wantsChangeMode", ro), this.five.on("wantsTapGesture", ro), e.addEventListener("touchstart", this.onTouchStart, { passive: !0 }), e.addEventListener("touchmove", this.onTouchMove), e.addEventListener("touchend", this.onTouchEnd), e.addEventListener("mousedown", this.onMouseDown), e.addEventListener("mouseup", this.onMouseUp), e.addEventListener("mousemove", this.updateByMousePosition), e.addEventListener("wheel", this.onMouseWheel), e.addEventListener("mouseenter", this.onMouseEnter), e.addEventListener("mouseout", this.onMouseLeave), this.five.on("wantsPanGesture", this.onFiveWantsPanGesture)) : this.mode === "fixed" && (this.five.on("panoArrived", this.renderScreenCenter), this.five.on("panGesture", this.renderScreenCenter), this.five.on("interiaPan", this.renderScreenCenter), this.renderScreenCenter(), this.pointSelectorHelper.show()), document.addEventListener("keydown", this.onKeyDown), document.addEventListener("keyup", this.onKeyUp), this.pointSelectorHelper.hooks.on("intersectionUpdate", this.emitIntersectionUpdate), this.lastFiveHelperVisible = this.five.helperVisible, this.five.helperVisible = !1, this.emit("enable");
5096
+ this.mode === "cursor" ? (this.five.on("wantsMoveToPano", ao), this.five.on("wantsChangeMode", ao), this.five.on("wantsTapGesture", ao), e.addEventListener("touchstart", this.onTouchStart, { passive: !0 }), e.addEventListener("touchmove", this.onTouchMove), e.addEventListener("touchend", this.onTouchEnd), e.addEventListener("mousedown", this.onMouseDown), e.addEventListener("mouseup", this.onMouseUp), e.addEventListener("mousemove", this.updateByMousePosition), e.addEventListener("wheel", this.onMouseWheel), e.addEventListener("mouseenter", this.onMouseEnter), e.addEventListener("mouseout", this.onMouseLeave), this.five.on("wantsPanGesture", this.onFiveWantsPanGesture)) : this.mode === "fixed" && (this.five.on("panoArrived", this.renderScreenCenter), this.five.on("panGesture", this.renderScreenCenter), this.five.on("interiaPan", this.renderScreenCenter), this.renderScreenCenter(), this.pointSelectorHelper.show()), document.addEventListener("keydown", this.onKeyDown), document.addEventListener("keyup", this.onKeyUp), this.pointSelectorHelper.hooks.on("intersectionUpdate", this.emitIntersectionUpdate), this.lastFiveHelperVisible = this.five.helperVisible, this.five.helperVisible = !1, this.emit("enable");
4632
5097
  }
4633
5098
  disable() {
4634
5099
  if (!this.enabled)
4635
5100
  return;
4636
5101
  this.enabled = !1, this.adherePoints = null, this.adhereLine = [], this.adherePlane = [], this.plane = void 0, this.pointSelectorHelper.disable(), this.five.getElement().style.cursor = "";
4637
5102
  const e = this.five.getElement();
4638
- this.five.off("wantsPanGesture", this.onFiveWantsPanGesture), this.five.off("wantsMoveToPano", ro), this.five.off("wantsChangeMode", ro), this.five.off("wantsTapGesture", ro), this.five.helperVisible = this.lastFiveHelperVisible, e == null || e.removeEventListener("touchstart", this.onTouchStart), e == null || e.removeEventListener("touchmove", this.onTouchMove), e == null || e.removeEventListener("touchend", this.onTouchEnd), e == null || e.removeEventListener("mousedown", this.onMouseDown), e == null || e.removeEventListener("mouseup", this.onMouseUp), e == null || e.removeEventListener("mousemove", this.updateByMousePosition), e == null || e.removeEventListener("wheel", this.onMouseWheel), e == null || e.removeEventListener("mouseenter", this.onMouseEnter), e == null || e.removeEventListener("mouseout", this.onMouseLeave), this.five.off("panoArrived", this.renderScreenCenter), this.five.off("panGesture", this.renderScreenCenter), this.five.off("interiaPan", this.renderScreenCenter), document.removeEventListener("keydown", this.onKeyDown), document.removeEventListener("keyup", this.onKeyUp), this.pointSelectorHelper.hooks.off("intersectionUpdate", this.emitIntersectionUpdate), this.emit("disable");
5103
+ this.five.off("wantsPanGesture", this.onFiveWantsPanGesture), this.five.off("wantsMoveToPano", ao), this.five.off("wantsChangeMode", ao), this.five.off("wantsTapGesture", ao), this.five.helperVisible = this.lastFiveHelperVisible, e == null || e.removeEventListener("touchstart", this.onTouchStart), e == null || e.removeEventListener("touchmove", this.onTouchMove), e == null || e.removeEventListener("touchend", this.onTouchEnd), e == null || e.removeEventListener("mousedown", this.onMouseDown), e == null || e.removeEventListener("mouseup", this.onMouseUp), e == null || e.removeEventListener("mousemove", this.updateByMousePosition), e == null || e.removeEventListener("wheel", this.onMouseWheel), e == null || e.removeEventListener("mouseenter", this.onMouseEnter), e == null || e.removeEventListener("mouseout", this.onMouseLeave), this.five.off("panoArrived", this.renderScreenCenter), this.five.off("panGesture", this.renderScreenCenter), this.five.off("interiaPan", this.renderScreenCenter), document.removeEventListener("keydown", this.onKeyDown), document.removeEventListener("keyup", this.onKeyUp), this.pointSelectorHelper.hooks.off("intersectionUpdate", this.emitIntersectionUpdate), this.emit("disable");
4639
5104
  }
4640
5105
  dispose() {
4641
5106
  this.disable(), this.pointSelectorHelper.dispose();
@@ -4644,125 +5109,7 @@ class Cl extends Mt {
4644
5109
  e ? typeof e == "function" ? this.adherePoints = e : this.adherePoints = () => e : this.adherePoints = null;
4645
5110
  }
4646
5111
  }
4647
- const p0 = "data:image/png;base64,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";
4648
- class v0 extends P.Mesh {
4649
- constructor(e, i) {
4650
- const s = new P.MeshBasicMaterial({ opacity: 0, color: 0, transparent: !1, side: P.DoubleSide }), o = new P.PlaneGeometry(e, i);
4651
- super(o, s);
4652
- f(this, "name", "opacity-mesh");
4653
- }
4654
- removeFromParent() {
4655
- const e = this.parent;
4656
- return e !== null && e.remove(this), this;
4657
- }
4658
- }
4659
- const Th = (n) => n ? n.visible === !1 ? !1 : Th(n.parent) : !0, A0 = 1, fd = `CSS3DObjectPlus@${A0}`, ey = 216e-5, ty = 3e-3;
4660
- let b0 = class extends kn {
4661
- constructor(e) {
4662
- var T, D, j, z, O;
4663
- if (gi(e.cornerPoints) && gi(e.width))
4664
- throw new Error("cornerPoints and width cannot be both empty");
4665
- const i = (T = e.container) != null ? T : document.createElement("div"), s = (D = e.cornerPoints) != null ? D : (() => {
4666
- const A = e.width / 2;
4667
- return [
4668
- new Ae(-A, A, 0),
4669
- new Ae(-A, -A, 0),
4670
- new Ae(A, -A, 0),
4671
- new Ae(A, A, 0)
4672
- ];
4673
- })(), o = (j = e.ratio) != null ? j : ty, r = (z = e.dpr) != null ? z : 1, a = (O = e.pointerEvents) != null ? O : "auto", l = Math.max(ey, o), c = s[0].distanceTo(s[1]), h = s[1].distanceTo(s[2]), u = So(c / o * r), d = So(h / o * r), m = oi(...s);
4674
- let g;
4675
- if (l === o)
4676
- i.style.width = `${u}px`, i.style.height = `${d}px`, g = i;
4677
- else {
4678
- const A = document.createElement("div");
4679
- A.style.width = `${u}px`, A.style.height = `${d}px`, A.style.pointerEvents = "none";
4680
- const C = o / l;
4681
- i.style.position = "absolute", i.style.left = "0", i.style.top = "0", i.style.width = `${C * u}px`, i.style.height = `${C * d}px`, A.appendChild(i), g = A;
4682
- }
4683
- super(g);
4684
- f(this, "version", A0);
4685
- f(this, "isCSS3DObjectPlus", !0);
4686
- f(this, "isCSS3DObject", !0);
4687
- f(this, "name", fd);
4688
- f(this, "container");
4689
- f(this, "width");
4690
- f(this, "height");
4691
- f(this, "domWidthPx");
4692
- f(this, "domHeightPx");
4693
- f(this, "cornerPoints");
4694
- f(this, "centerPosition");
4695
- f(this, "ratio");
4696
- f(this, "mode", "front");
4697
- f(this, "hooks", new Mt());
4698
- f(this, "opacityMesh");
4699
- f(this, "selfVisible", !0);
4700
- f(this, "setVisible", (e) => {
4701
- this.selfVisible = e, this.visible = Th(this.parent) && this.selfVisible, this.opacityMesh && (this.opacityMesh.visible = this.visible);
4702
- });
4703
- f(this, "updateVisible", () => {
4704
- this.setVisible(this.selfVisible);
4705
- });
4706
- /**
4707
- * @description: 生成透明Mesh
4708
- */
4709
- f(this, "createOpacityMesh", (e) => {
4710
- const { domWidthPx: i, domHeightPx: s } = e, o = new v0(i, s);
4711
- return o.position.copy(e.position), o.rotation.copy(e.rotation), o.scale.copy(e.scale), o;
4712
- });
4713
- if (i.style.pointerEvents = a, Object.assign(i.style, e.style), this.scale.set(l, l, l), this.cornerPoints = s, this.ratio = o, this.container = i, e.mode && (this.mode = e.mode), l === o)
4714
- this.width = c, this.height = h, this.domWidthPx = u, this.domHeightPx = d, this.centerPosition = m;
4715
- else {
4716
- const A = o / l;
4717
- this.width = A * c, this.height = A * h, this.domWidthPx = A * u, this.domHeightPx = A * d, this.centerPosition = new Ae().subVectors(m, s[0]).multiplyScalar(A).add(s[0]);
4718
- }
4719
- i.classList.add(`${fd}__container`);
4720
- const p = new Ae().subVectors(s[1], s[0]), v = new Ae().subVectors(s[3], s[0]), b = new Ae().crossVectors(p, v).normalize();
4721
- this.lookAt(b);
4722
- const w = this.up.clone().applyQuaternion(this.quaternion), E = v.clone(), M = new Ae().crossVectors(w, E).normalize();
4723
- this.rotateOnWorldAxis(M, w.angleTo(E)), this.position.copy(m), this.addEventListener("added", () => {
4724
- var A;
4725
- this.mode === "front" && ((A = this.opacityMesh) == null || A.removeFromParent());
4726
- }), this.addEventListener("removed", () => {
4727
- var A;
4728
- (A = this.opacityMesh) == null || A.removeFromParent();
4729
- });
4730
- }
4731
- removeFromParent() {
4732
- var i;
4733
- const e = this.parent;
4734
- return e !== null && e.remove(this), (i = this.opacityMesh) == null || i.removeFromParent(), this;
4735
- }
4736
- removeOpacityMesh() {
4737
- var e;
4738
- return (e = this.opacityMesh) == null || e.removeFromParent(), this.opacityMesh = void 0, this;
4739
- }
4740
- dispose() {
4741
- var e;
4742
- this.container.remove(), this.removeFromParent(), (e = this.opacityMesh) == null || e.removeFromParent();
4743
- }
4744
- getOpacityMesh() {
4745
- if (this.opacityMesh)
4746
- return this.opacityMesh;
4747
- {
4748
- const e = this.createOpacityMesh(this);
4749
- return this.opacityMesh = e, e;
4750
- }
4751
- }
4752
- applyMatrix4(e) {
4753
- var i;
4754
- super.applyMatrix4(e), (i = this.opacityMesh) == null || i.applyMatrix4(e);
4755
- }
4756
- applyQuaternion(e) {
4757
- var i;
4758
- return super.applyQuaternion(e), (i = this.opacityMesh) == null || i.applyQuaternion(e), this;
4759
- }
4760
- applyScaleMatrix4(e) {
4761
- var i;
4762
- this.scale.applyMatrix4(e), (i = this.opacityMesh) == null || i.scale.applyMatrix4(e);
4763
- }
4764
- };
4765
- const y0 = "data:image/png;base64,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", iy = "data:image/png;base64,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", ny = `
5112
+ const y0 = "data:image/png;base64,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", w0 = "data:image/png;base64,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", cy = "data:image/png;base64,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", hy = `
4766
5113
  <style>
4767
5114
  .range-piece__container {
4768
5115
  position: absolute;
@@ -4780,7 +5127,7 @@ const y0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAYAAACJIC3tAA
4780
5127
  .range-piece__content {
4781
5128
  width: 100%;
4782
5129
  height: 100%;
4783
- background-image: url(${y0});
5130
+ background-image: url(${w0});
4784
5131
  opacity: 0.4;
4785
5132
  background-size: 100%;
4786
5133
  background-repeat: no-repeat;
@@ -4794,7 +5141,7 @@ const y0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAYAAACJIC3tAA
4794
5141
  height: 100%;
4795
5142
  opacity: 1;
4796
5143
  position: absolute;
4797
- background: url(${iy}) center / contain no-repeat;
5144
+ background: url(${cy}) center / contain no-repeat;
4798
5145
  }
4799
5146
  @keyframes dotting {
4800
5147
  0% {
@@ -4823,14 +5170,14 @@ const y0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAYAAACJIC3tAA
4823
5170
  <div class='range-piece__content'></div>
4824
5171
  <div class="range-piece__aim"></div>
4825
5172
  </div>
4826
- `, sy = `
5173
+ `, uy = `
4827
5174
  varying vec2 vUv;
4828
5175
  void main() {
4829
5176
  vUv = uv;
4830
5177
  vec4 mvPosition = modelViewMatrix * vec4(position, 1);
4831
5178
  gl_Position = projectionMatrix * mvPosition;
4832
5179
  }
4833
- `, oy = `
5180
+ `, dy = `
4834
5181
  varying vec2 vUv;
4835
5182
  void main() {
4836
5183
  vec2 uv = vec2(vUv.x, vUv.y);
@@ -4839,8 +5186,8 @@ void main() {
4839
5186
  gl_FragColor = vec4(1.0,1.0,1.0,match);
4840
5187
  }
4841
5188
  `;
4842
- function ry() {
4843
- const n = new P.PlaneGeometry(0.4, 0.4), t = p0, e = new P.TextureLoader().load(t);
5189
+ function fy() {
5190
+ const n = new P.PlaneGeometry(0.4, 0.4), t = y0, e = new P.TextureLoader().load(t);
4844
5191
  e.encoding = P.sRGBEncoding, e.minFilter = P.LinearFilter;
4845
5192
  const i = new P.MeshBasicMaterial({
4846
5193
  map: e,
@@ -4849,18 +5196,18 @@ function ry() {
4849
5196
  });
4850
5197
  return new P.Mesh(n, i);
4851
5198
  }
4852
- function ay() {
5199
+ function gy() {
4853
5200
  const n = new P.CurvePath();
4854
5201
  n.add(new P.LineCurve3(new P.Vector3(0, 0, 0), new P.Vector3(0, 0, 0.1)));
4855
5202
  const t = new P.TubeGeometry(n, 8, 3e-3), e = new P.ShaderMaterial({
4856
- vertexShader: sy,
4857
- fragmentShader: oy,
5203
+ vertexShader: uy,
5204
+ fragmentShader: dy,
4858
5205
  depthTest: !1,
4859
5206
  transparent: !0
4860
5207
  });
4861
5208
  return new P.Mesh(t, e);
4862
5209
  }
4863
- function ly() {
5210
+ function my() {
4864
5211
  const n = new P.SphereGeometry(0.01, 20, 20), t = new P.MeshBasicMaterial({
4865
5212
  color: 10349931,
4866
5213
  depthTest: !1,
@@ -4869,8 +5216,8 @@ function ly() {
4869
5216
  }), e = new P.Mesh(n, t);
4870
5217
  return e.position.set(0, 0, 0.1), e;
4871
5218
  }
4872
- function cy() {
4873
- const t = new b0({
5219
+ function py() {
5220
+ const t = new g0({
4874
5221
  pointerEvents: "none",
4875
5222
  cornerPoints: [
4876
5223
  new P.Vector3(-0.2, 0.2, 0),
@@ -4879,9 +5226,9 @@ function cy() {
4879
5226
  new P.Vector3(0.2, 0.2, 0)
4880
5227
  ]
4881
5228
  }), e = document.createElement("div");
4882
- return e.style.width = "100%", e.style.height = "100%", e.style.backgroundImage = `url(${y0})`, e.style.backgroundSize = "100%", e.style.backgroundRepeat = "no-repeat", t.container.appendChild(e), t;
5229
+ return e.style.width = "100%", e.style.height = "100%", e.style.backgroundImage = `url(${w0})`, e.style.backgroundSize = "100%", e.style.backgroundRepeat = "no-repeat", t.container.appendChild(e), t;
4883
5230
  }
4884
- class w0 extends P.Object3D {
5231
+ class P0 extends P.Object3D {
4885
5232
  constructor(e) {
4886
5233
  super();
4887
5234
  f(this, "planeMesh");
@@ -4889,7 +5236,7 @@ class w0 extends P.Object3D {
4889
5236
  f(this, "ballMesh");
4890
5237
  f(this, "borderMesh");
4891
5238
  f(this, "five");
4892
- this.planeMesh = ry(), this.lineMesh = ay(), this.ballMesh = ly(), this.borderMesh = cy(), this.addEventListener("added", () => {
5239
+ this.planeMesh = fy(), this.lineMesh = gy(), this.ballMesh = my(), this.borderMesh = py(), this.addEventListener("added", () => {
4893
5240
  this.add(this.planeMesh, this.lineMesh, this.ballMesh, this.borderMesh);
4894
5241
  }), this.addEventListener("removed", () => {
4895
5242
  this.remove(this.planeMesh, this.lineMesh, this.ballMesh, this.borderMesh);
@@ -4911,7 +5258,7 @@ class w0 extends P.Object3D {
4911
5258
  (e = this.planeMesh.material.map) == null || e.dispose();
4912
5259
  }
4913
5260
  }
4914
- class P0 extends P.Object3D {
5261
+ class C0 extends P.Object3D {
4915
5262
  constructor() {
4916
5263
  super(...arguments);
4917
5264
  f(this, "children", []);
@@ -4926,13 +5273,13 @@ class P0 extends P.Object3D {
4926
5273
  return this.getRaycastIntersects(e)[0];
4927
5274
  }
4928
5275
  }
4929
- class C0 extends yA {
5276
+ class I0 extends yA {
4930
5277
  constructor(t, e) {
4931
5278
  super(t, e);
4932
5279
  }
4933
5280
  }
4934
5281
  const sc = new P.Vector3();
4935
- class hy extends P.Sphere {
5282
+ class vy extends P.Sphere {
4936
5283
  expandByPoint(t) {
4937
5284
  if (this.isEmpty())
4938
5285
  return this.center.copy(t), this.radius = 0, this;
@@ -4945,7 +5292,7 @@ class hy extends P.Sphere {
4945
5292
  return this;
4946
5293
  }
4947
5294
  }
4948
- function uy(n) {
5295
+ function Ay(n) {
4949
5296
  const { max: t, min: e } = n;
4950
5297
  return [
4951
5298
  new P.Vector3(t.x, t.y, t.z),
@@ -4982,17 +5329,17 @@ function Kn(n, t) {
4982
5329
  function Us(n) {
4983
5330
  return Lh(n, "box3");
4984
5331
  }
4985
- function I0(n) {
5332
+ function E0(n) {
4986
5333
  return Lh(n, "sphere");
4987
5334
  }
4988
- function dy(n) {
5335
+ function by(n) {
4989
5336
  return Il(n, "box3");
4990
5337
  }
4991
- function E0(n) {
5338
+ function M0(n) {
4992
5339
  return Il(n, "sphere");
4993
5340
  }
4994
5341
  function Il(n, t) {
4995
- const e = t === "box3" ? new P.Box3() : new hy(), i = new P.Vector3();
5342
+ const e = t === "box3" ? new P.Box3() : new vy(), i = new P.Vector3();
4996
5343
  if (n.updateWorldMatrix(!1, !1), n.traverse((s) => {
4997
5344
  var r;
4998
5345
  if (s.name === "shadow" || s.type === "Line2")
@@ -5014,16 +5361,16 @@ function Il(n, t) {
5014
5361
  }
5015
5362
  function Lh(n, t) {
5016
5363
  const e = Il(n, t);
5017
- return e && e.applyMatrix4(fy(n.matrixWorld.clone())), e;
5364
+ return e && e.applyMatrix4(yy(n.matrixWorld.clone())), e;
5018
5365
  }
5019
- const fy = (n) => {
5366
+ const yy = (n) => {
5020
5367
  const t = n.elements, e = t[0], i = t[1], s = t[2], o = t[3], r = t[4], a = t[5], l = t[6], c = t[7], h = t[8], u = t[9], d = t[10], m = t[11], g = t[12], p = t[13], v = t[14], b = t[15], w = u * v * c - p * d * c + p * l * m - a * v * m - u * l * b + a * d * b, E = g * d * c - h * v * c - g * l * m + r * v * m + h * l * b - r * d * b, M = h * p * c - g * u * c + g * a * m - r * p * m - h * a * b + r * u * b, T = g * u * l - h * p * l - g * a * d + r * p * d + h * a * v - r * u * v, D = e * w + i * E + s * M + o * T;
5021
5368
  if (D === 0)
5022
5369
  return n.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
5023
5370
  const j = 1 / D;
5024
5371
  return t[0] = w * j, t[1] = (p * d * o - u * v * o - p * s * m + i * v * m + u * s * b - i * d * b) * j, t[2] = (a * v * o - p * l * o + p * s * c - i * v * c - a * s * b + i * l * b) * j, t[3] = (u * l * o - a * d * o - u * s * c + i * d * c + a * s * m - i * l * m) * j, t[4] = E * j, t[5] = (h * v * o - g * d * o + g * s * m - e * v * m - h * s * b + e * d * b) * j, t[6] = (g * l * o - r * v * o - g * s * c + e * v * c + r * s * b - e * l * b) * j, t[7] = (r * d * o - h * l * o + h * s * c - e * d * c - r * s * m + e * l * m) * j, t[8] = M * j, t[9] = (g * u * o - h * p * o - g * i * m + e * p * m + h * i * b - e * u * b) * j, t[10] = (r * p * o - g * a * o + g * i * c - e * p * c - r * i * b + e * a * b) * j, t[11] = (h * a * o - r * u * o - h * i * c + e * u * c + r * i * m - e * a * m) * j, t[12] = T * j, t[13] = (h * p * s - g * u * s + g * i * d - e * p * d - h * i * v + e * u * v) * j, t[14] = (g * a * s - r * p * s - g * i * l + e * p * l + r * i * v - e * a * v) * j, t[15] = (r * u * s - h * a * s + h * i * l - e * u * l - r * i * d + e * a * d) * j, n;
5025
5372
  };
5026
- var M0 = {
5373
+ var k0 = {
5027
5374
  update: null,
5028
5375
  begin: null,
5029
5376
  loopBegin: null,
@@ -5042,7 +5389,7 @@ var M0 = {
5042
5389
  endDelay: 0,
5043
5390
  easing: "easeOutElastic(1, .5)",
5044
5391
  round: 0
5045
- }, gy = ["translateX", "translateY", "translateZ", "rotate", "rotateX", "rotateY", "rotateZ", "scale", "scaleX", "scaleY", "scaleZ", "skew", "skewX", "skewY", "perspective", "matrix", "matrix3d"], Ya = {
5392
+ }, wy = ["translateX", "translateY", "translateZ", "rotate", "rotateX", "rotateY", "rotateZ", "scale", "scaleX", "scaleY", "scaleZ", "skew", "skewX", "skewY", "perspective", "matrix", "matrix3d"], Ya = {
5046
5393
  CSS: {},
5047
5394
  springs: {}
5048
5395
  };
@@ -5099,17 +5446,17 @@ var Ge = {
5099
5446
  return Ge.hex(n) || Ge.rgb(n) || Ge.hsl(n);
5100
5447
  },
5101
5448
  key: function(n) {
5102
- return !M0.hasOwnProperty(n) && !zh.hasOwnProperty(n) && n !== "targets" && n !== "keyframes";
5449
+ return !k0.hasOwnProperty(n) && !zh.hasOwnProperty(n) && n !== "targets" && n !== "keyframes";
5103
5450
  }
5104
5451
  };
5105
- function k0(n) {
5452
+ function x0(n) {
5106
5453
  var t = /\(([^)]+)\)/.exec(n);
5107
5454
  return t ? t[1].split(",").map(function(e) {
5108
5455
  return parseFloat(e);
5109
5456
  }) : [];
5110
5457
  }
5111
- function x0(n, t) {
5112
- var e = k0(n), i = Zi(Ge.und(e[0]) ? 1 : e[0], 0.1, 100), s = Zi(Ge.und(e[1]) ? 100 : e[1], 0.1, 100), o = Zi(Ge.und(e[2]) ? 10 : e[2], 0.1, 100), r = Zi(Ge.und(e[3]) ? 0 : e[3], 0.1, 100), a = Math.sqrt(s / i), l = o / (2 * Math.sqrt(s * i)), c = l < 1 ? a * Math.sqrt(1 - l * l) : 0, h = 1, u = l < 1 ? (l * a + -r) / c : -r + a;
5458
+ function S0(n, t) {
5459
+ var e = x0(n), i = Zi(Ge.und(e[0]) ? 1 : e[0], 0.1, 100), s = Zi(Ge.und(e[1]) ? 100 : e[1], 0.1, 100), o = Zi(Ge.und(e[2]) ? 10 : e[2], 0.1, 100), r = Zi(Ge.und(e[3]) ? 0 : e[3], 0.1, 100), a = Math.sqrt(s / i), l = o / (2 * Math.sqrt(s * i)), c = l < 1 ? a * Math.sqrt(1 - l * l) : 0, h = 1, u = l < 1 ? (l * a + -r) / c : -r + a;
5113
5460
  function d(g) {
5114
5461
  var p = t ? t * g / 1e3 : g;
5115
5462
  return l < 1 ? p = Math.exp(-p * l * a) * (h * Math.cos(c * p) + u * Math.sin(c * p)) : p = (h + u * p) * Math.exp(-p * a), g === 0 || g === 1 ? g : 1 - p;
@@ -5129,12 +5476,12 @@ function x0(n, t) {
5129
5476
  }
5130
5477
  return t ? d : m;
5131
5478
  }
5132
- function my(n) {
5479
+ function Py(n) {
5133
5480
  return n === void 0 && (n = 10), function(t) {
5134
5481
  return Math.ceil(Zi(t, 1e-6, 1) * n) * (1 / n);
5135
5482
  };
5136
5483
  }
5137
- var py = function() {
5484
+ var Cy = function() {
5138
5485
  var n = 11, t = 1 / (n - 1);
5139
5486
  function e(h, u) {
5140
5487
  return 1 - 3 * u + 3 * h;
@@ -5187,7 +5534,7 @@ var py = function() {
5187
5534
  };
5188
5535
  }
5189
5536
  return c;
5190
- }(), S0 = function() {
5537
+ }(), D0 = function() {
5191
5538
  var n = { linear: function() {
5192
5539
  return function(i) {
5193
5540
  return i;
@@ -5254,19 +5601,19 @@ var py = function() {
5254
5601
  function Oh(n, t) {
5255
5602
  if (Ge.fnc(n))
5256
5603
  return n;
5257
- var e = n.split("(")[0], i = S0[e], s = k0(n);
5604
+ var e = n.split("(")[0], i = D0[e], s = x0(n);
5258
5605
  switch (e) {
5259
5606
  case "spring":
5260
- return x0(n, t);
5607
+ return S0(n, t);
5261
5608
  case "cubicBezier":
5262
- return oc(py, s);
5609
+ return oc(Cy, s);
5263
5610
  case "steps":
5264
- return oc(my, s);
5611
+ return oc(Py, s);
5265
5612
  default:
5266
5613
  return oc(i, s);
5267
5614
  }
5268
5615
  }
5269
- function D0(n) {
5616
+ function T0(n) {
5270
5617
  try {
5271
5618
  var t = document.querySelectorAll(n);
5272
5619
  return t;
@@ -5287,8 +5634,8 @@ function Ml(n) {
5287
5634
  return t.concat(Ge.arr(e) ? Ml(e) : e);
5288
5635
  }, []);
5289
5636
  }
5290
- function gd(n) {
5291
- return Ge.arr(n) ? n : (Ge.str(n) && (n = D0(n) || n), n instanceof NodeList || n instanceof HTMLCollection ? [].slice.call(n) : [n]);
5637
+ function md(n) {
5638
+ return Ge.arr(n) ? n : (Ge.str(n) && (n = T0(n) || n), n instanceof NodeList || n instanceof HTMLCollection ? [].slice.call(n) : [n]);
5292
5639
  }
5293
5640
  function jh(n, t) {
5294
5641
  return n.some(function(e) {
@@ -5301,7 +5648,7 @@ function Rh(n) {
5301
5648
  t[e] = n[e];
5302
5649
  return t;
5303
5650
  }
5304
- function Nc(n, t) {
5651
+ function Gc(n, t) {
5305
5652
  var e = Rh(n);
5306
5653
  for (var i in n)
5307
5654
  e[i] = t.hasOwnProperty(i) ? t[i] : n[i];
@@ -5313,17 +5660,17 @@ function kl(n, t) {
5313
5660
  e[i] = Ge.und(n[i]) ? t[i] : n[i];
5314
5661
  return e;
5315
5662
  }
5316
- function vy(n) {
5663
+ function Iy(n) {
5317
5664
  var t = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(n);
5318
5665
  return t ? "rgba(" + t[1] + ",1)" : n;
5319
5666
  }
5320
- function Ay(n) {
5667
+ function Ey(n) {
5321
5668
  var t = /^#?([a-f\d])([a-f\d])([a-f\d])$/i, e = n.replace(t, function(a, l, c, h) {
5322
5669
  return l + l + c + c + h + h;
5323
5670
  }), i = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e), s = parseInt(i[1], 16), o = parseInt(i[2], 16), r = parseInt(i[3], 16);
5324
5671
  return "rgba(" + s + "," + o + "," + r + ",1)";
5325
5672
  }
5326
- function by(n) {
5673
+ function My(n) {
5327
5674
  var t = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(n) || /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(n), e = parseInt(t[1], 10) / 360, i = parseInt(t[2], 10) / 100, s = parseInt(t[3], 10) / 100, o = t[4] || 1;
5328
5675
  function r(d, m, g) {
5329
5676
  return g < 0 && (g += 1), g > 1 && (g -= 1), g < 1 / 6 ? d + (m - d) * 6 * g : g < 1 / 2 ? m : g < 2 / 3 ? d + (m - d) * (2 / 3 - g) * 6 : d;
@@ -5337,26 +5684,26 @@ function by(n) {
5337
5684
  }
5338
5685
  return "rgba(" + a * 255 + "," + l * 255 + "," + c * 255 + "," + o + ")";
5339
5686
  }
5340
- function yy(n) {
5687
+ function ky(n) {
5341
5688
  if (Ge.rgb(n))
5342
- return vy(n);
5689
+ return Iy(n);
5343
5690
  if (Ge.hex(n))
5344
- return Ay(n);
5691
+ return Ey(n);
5345
5692
  if (Ge.hsl(n))
5346
- return by(n);
5693
+ return My(n);
5347
5694
  }
5348
5695
  function En(n) {
5349
5696
  var t = /[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(n);
5350
5697
  if (t)
5351
5698
  return t[1];
5352
5699
  }
5353
- function wy(n) {
5700
+ function xy(n) {
5354
5701
  if (wr(n, "translate") || n === "perspective")
5355
5702
  return "px";
5356
5703
  if (wr(n, "rotate") || wr(n, "skew"))
5357
5704
  return "deg";
5358
5705
  }
5359
- function Gc(n, t) {
5706
+ function Wc(n, t) {
5360
5707
  return Ge.fnc(n) ? n(t.target, t.id, t.total) : n;
5361
5708
  }
5362
5709
  function qi(n, t) {
@@ -5376,7 +5723,7 @@ function _h(n, t, e) {
5376
5723
  var c = l * parseFloat(t);
5377
5724
  return Ya.CSS[t + e] = c, c;
5378
5725
  }
5379
- function T0(n, t, e) {
5726
+ function L0(n, t, e) {
5380
5727
  if (t in n.style) {
5381
5728
  var i = t.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(), s = n.style[t] || getComputedStyle(n).getPropertyValue(i) || "0";
5382
5729
  return e ? _h(n, s, e) : s;
@@ -5385,30 +5732,30 @@ function T0(n, t, e) {
5385
5732
  function Bh(n, t) {
5386
5733
  if (Ge.dom(n) && !Ge.inp(n) && (!Ge.nil(qi(n, t)) || Ge.svg(n) && n[t]))
5387
5734
  return "attribute";
5388
- if (Ge.dom(n) && jh(gy, t))
5735
+ if (Ge.dom(n) && jh(wy, t))
5389
5736
  return "transform";
5390
- if (Ge.dom(n) && t !== "transform" && T0(n, t))
5737
+ if (Ge.dom(n) && t !== "transform" && L0(n, t))
5391
5738
  return "css";
5392
5739
  if (n[t] != null)
5393
5740
  return "object";
5394
5741
  }
5395
- function L0(n) {
5742
+ function z0(n) {
5396
5743
  if (Ge.dom(n)) {
5397
5744
  for (var t = n.style.transform || "", e = /(\w+)\(([^)]*)\)/g, i = /* @__PURE__ */ new Map(), s; s = e.exec(t); )
5398
5745
  i.set(s[1], s[2]);
5399
5746
  return i;
5400
5747
  }
5401
5748
  }
5402
- function Py(n, t, e, i) {
5403
- var s = wr(t, "scale") ? 1 : 0 + wy(t), o = L0(n).get(t) || s;
5749
+ function Sy(n, t, e, i) {
5750
+ var s = wr(t, "scale") ? 1 : 0 + xy(t), o = z0(n).get(t) || s;
5404
5751
  return e && (e.transforms.list.set(t, o), e.transforms.last = t), i ? _h(n, o, i) : o;
5405
5752
  }
5406
5753
  function Vh(n, t, e, i) {
5407
5754
  switch (Bh(n, t)) {
5408
5755
  case "transform":
5409
- return Py(n, t, i, e);
5756
+ return Sy(n, t, i, e);
5410
5757
  case "css":
5411
- return T0(n, t, e);
5758
+ return L0(n, t, e);
5412
5759
  case "attribute":
5413
5760
  return qi(n, t);
5414
5761
  default:
@@ -5429,9 +5776,9 @@ function Fh(n, t) {
5429
5776
  return s * o + i;
5430
5777
  }
5431
5778
  }
5432
- function z0(n, t) {
5779
+ function O0(n, t) {
5433
5780
  if (Ge.col(n))
5434
- return yy(n);
5781
+ return ky(n);
5435
5782
  if (/\s/g.test(n))
5436
5783
  return n;
5437
5784
  var e = En(n), i = e ? n.substr(0, n.length - e.length) : n;
@@ -5440,56 +5787,56 @@ function z0(n, t) {
5440
5787
  function Hh(n, t) {
5441
5788
  return Math.sqrt(Math.pow(t.x - n.x, 2) + Math.pow(t.y - n.y, 2));
5442
5789
  }
5443
- function Cy(n) {
5790
+ function Dy(n) {
5444
5791
  return Math.PI * 2 * qi(n, "r");
5445
5792
  }
5446
- function Iy(n) {
5793
+ function Ty(n) {
5447
5794
  return qi(n, "width") * 2 + qi(n, "height") * 2;
5448
5795
  }
5449
- function Ey(n) {
5796
+ function Ly(n) {
5450
5797
  return Hh(
5451
5798
  { x: qi(n, "x1"), y: qi(n, "y1") },
5452
5799
  { x: qi(n, "x2"), y: qi(n, "y2") }
5453
5800
  );
5454
5801
  }
5455
- function O0(n) {
5802
+ function j0(n) {
5456
5803
  for (var t = n.points, e = 0, i, s = 0; s < t.numberOfItems; s++) {
5457
5804
  var o = t.getItem(s);
5458
5805
  s > 0 && (e += Hh(i, o)), i = o;
5459
5806
  }
5460
5807
  return e;
5461
5808
  }
5462
- function My(n) {
5809
+ function zy(n) {
5463
5810
  var t = n.points;
5464
- return O0(n) + Hh(t.getItem(t.numberOfItems - 1), t.getItem(0));
5811
+ return j0(n) + Hh(t.getItem(t.numberOfItems - 1), t.getItem(0));
5465
5812
  }
5466
- function j0(n) {
5813
+ function R0(n) {
5467
5814
  if (n.getTotalLength)
5468
5815
  return n.getTotalLength();
5469
5816
  switch (n.tagName.toLowerCase()) {
5470
5817
  case "circle":
5471
- return Cy(n);
5818
+ return Dy(n);
5472
5819
  case "rect":
5473
- return Iy(n);
5820
+ return Ty(n);
5474
5821
  case "line":
5475
- return Ey(n);
5822
+ return Ly(n);
5476
5823
  case "polyline":
5477
- return O0(n);
5824
+ return j0(n);
5478
5825
  case "polygon":
5479
- return My(n);
5826
+ return zy(n);
5480
5827
  }
5481
5828
  }
5482
- function ky(n) {
5483
- var t = j0(n);
5829
+ function Oy(n) {
5830
+ var t = R0(n);
5484
5831
  return n.setAttribute("stroke-dasharray", t), t;
5485
5832
  }
5486
- function xy(n) {
5833
+ function jy(n) {
5487
5834
  for (var t = n.parentNode; Ge.svg(t) && Ge.svg(t.parentNode); )
5488
5835
  t = t.parentNode;
5489
5836
  return t;
5490
5837
  }
5491
- function R0(n, t) {
5492
- var e = t || {}, i = e.el || xy(n), s = i.getBoundingClientRect(), o = qi(i, "viewBox"), r = s.width, a = s.height, l = e.viewBox || (o ? o.split(" ") : [0, 0, r, a]);
5838
+ function _0(n, t) {
5839
+ var e = t || {}, i = e.el || jy(n), s = i.getBoundingClientRect(), o = qi(i, "viewBox"), r = s.width, a = s.height, l = e.viewBox || (o ? o.split(" ") : [0, 0, r, a]);
5493
5840
  return {
5494
5841
  el: i,
5495
5842
  viewBox: l,
@@ -5501,24 +5848,24 @@ function R0(n, t) {
5501
5848
  vH: l[3]
5502
5849
  };
5503
5850
  }
5504
- function Sy(n, t) {
5505
- var e = Ge.str(n) ? D0(n)[0] : n, i = t || 100;
5851
+ function Ry(n, t) {
5852
+ var e = Ge.str(n) ? T0(n)[0] : n, i = t || 100;
5506
5853
  return function(s) {
5507
5854
  return {
5508
5855
  property: s,
5509
5856
  el: e,
5510
- svg: R0(e),
5511
- totalLength: j0(e) * (i / 100)
5857
+ svg: _0(e),
5858
+ totalLength: R0(e) * (i / 100)
5512
5859
  };
5513
5860
  };
5514
5861
  }
5515
- function Dy(n, t, e) {
5862
+ function _y(n, t, e) {
5516
5863
  function i(h) {
5517
5864
  h === void 0 && (h = 0);
5518
5865
  var u = t + h >= 1 ? t + h : 0;
5519
5866
  return n.el.getPointAtLength(u);
5520
5867
  }
5521
- var s = R0(n.el, n.svg), o = i(), r = i(-1), a = i(1), l = e ? 1 : s.w / s.vW, c = e ? 1 : s.h / s.vH;
5868
+ var s = _0(n.el, n.svg), o = i(), r = i(-1), a = i(1), l = e ? 1 : s.w / s.vW, c = e ? 1 : s.h / s.vH;
5522
5869
  switch (n.property) {
5523
5870
  case "x":
5524
5871
  return (o.x - s.x) * l;
@@ -5528,8 +5875,8 @@ function Dy(n, t, e) {
5528
5875
  return Math.atan2(a.y - r.y, a.x - r.x) * 180 / Math.PI;
5529
5876
  }
5530
5877
  }
5531
- function md(n, t) {
5532
- var e = /[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g, i = z0(Ge.pth(n) ? n.totalLength : n, t) + "";
5878
+ function pd(n, t) {
5879
+ var e = /[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g, i = O0(Ge.pth(n) ? n.totalLength : n, t) + "";
5533
5880
  return {
5534
5881
  original: i,
5535
5882
  numbers: i.match(e) ? i.match(e).map(Number) : [0],
@@ -5537,20 +5884,20 @@ function md(n, t) {
5537
5884
  };
5538
5885
  }
5539
5886
  function Nh(n) {
5540
- var t = n ? Ml(Ge.arr(n) ? n.map(gd) : gd(n)) : [];
5887
+ var t = n ? Ml(Ge.arr(n) ? n.map(md) : md(n)) : [];
5541
5888
  return El(t, function(e, i, s) {
5542
5889
  return s.indexOf(e) === i;
5543
5890
  });
5544
5891
  }
5545
- function _0(n) {
5892
+ function B0(n) {
5546
5893
  var t = Nh(n);
5547
5894
  return t.map(function(e, i) {
5548
- return { target: e, id: i, total: t.length, transforms: { list: L0(e) } };
5895
+ return { target: e, id: i, total: t.length, transforms: { list: z0(e) } };
5549
5896
  });
5550
5897
  }
5551
- function Ty(n, t) {
5898
+ function By(n, t) {
5552
5899
  var e = Rh(t);
5553
- if (/^spring/.test(e.easing) && (e.duration = x0(e.easing)), Ge.arr(n)) {
5900
+ if (/^spring/.test(e.easing) && (e.duration = S0(e.easing)), Ge.arr(n)) {
5554
5901
  var i = n.length, s = i === 2 && !Ge.obj(n[0]);
5555
5902
  s ? n = { value: n } : Ge.fnc(t.duration) || (e.duration = t.duration / i);
5556
5903
  }
@@ -5562,7 +5909,7 @@ function Ty(n, t) {
5562
5909
  return kl(r, e);
5563
5910
  });
5564
5911
  }
5565
- function Ly(n) {
5912
+ function Vy(n) {
5566
5913
  for (var t = El(Ml(n.map(function(o) {
5567
5914
  return Object.keys(o);
5568
5915
  })), function(o) {
@@ -5581,34 +5928,34 @@ function Ly(n) {
5581
5928
  i(s);
5582
5929
  return e;
5583
5930
  }
5584
- function zy(n, t) {
5931
+ function Fy(n, t) {
5585
5932
  var e = [], i = t.keyframes;
5586
- i && (t = kl(Ly(i), t));
5933
+ i && (t = kl(Vy(i), t));
5587
5934
  for (var s in t)
5588
5935
  Ge.key(s) && e.push({
5589
5936
  name: s,
5590
- tweens: Ty(t[s], n)
5937
+ tweens: By(t[s], n)
5591
5938
  });
5592
5939
  return e;
5593
5940
  }
5594
- function Oy(n, t) {
5941
+ function Hy(n, t) {
5595
5942
  var e = {};
5596
5943
  for (var i in n) {
5597
- var s = Gc(n[i], t);
5944
+ var s = Wc(n[i], t);
5598
5945
  Ge.arr(s) && (s = s.map(function(o) {
5599
- return Gc(o, t);
5946
+ return Wc(o, t);
5600
5947
  }), s.length === 1 && (s = s[0])), e[i] = s;
5601
5948
  }
5602
5949
  return e.duration = parseFloat(e.duration), e.delay = parseFloat(e.delay), e;
5603
5950
  }
5604
- function jy(n, t) {
5951
+ function Ny(n, t) {
5605
5952
  var e;
5606
5953
  return n.tweens.map(function(i) {
5607
- var s = Oy(i, t), o = s.value, r = Ge.arr(o) ? o[1] : o, a = En(r), l = Vh(t.target, n.name, a, t), c = e ? e.to.original : l, h = Ge.arr(o) ? o[0] : c, u = En(h) || En(l), d = a || u;
5608
- return Ge.und(r) && (r = c), s.from = md(h, d), s.to = md(Fh(r, h), d), s.start = e ? e.end : 0, s.end = s.start + s.delay + s.duration + s.endDelay, s.easing = Oh(s.easing, s.duration), s.isPath = Ge.pth(o), s.isPathTargetInsideSVG = s.isPath && Ge.svg(t.target), s.isColor = Ge.col(s.from.original), s.isColor && (s.round = 1), e = s, s;
5954
+ var s = Hy(i, t), o = s.value, r = Ge.arr(o) ? o[1] : o, a = En(r), l = Vh(t.target, n.name, a, t), c = e ? e.to.original : l, h = Ge.arr(o) ? o[0] : c, u = En(h) || En(l), d = a || u;
5955
+ return Ge.und(r) && (r = c), s.from = pd(h, d), s.to = pd(Fh(r, h), d), s.start = e ? e.end : 0, s.end = s.start + s.delay + s.duration + s.endDelay, s.easing = Oh(s.easing, s.duration), s.isPath = Ge.pth(o), s.isPathTargetInsideSVG = s.isPath && Ge.svg(t.target), s.isColor = Ge.col(s.from.original), s.isColor && (s.round = 1), e = s, s;
5609
5956
  });
5610
5957
  }
5611
- var B0 = {
5958
+ var V0 = {
5612
5959
  css: function(n, t, e) {
5613
5960
  return n.style[t] = e;
5614
5961
  },
@@ -5627,19 +5974,19 @@ var B0 = {
5627
5974
  }
5628
5975
  }
5629
5976
  };
5630
- function V0(n, t) {
5631
- var e = _0(n);
5977
+ function F0(n, t) {
5978
+ var e = B0(n);
5632
5979
  e.forEach(function(i) {
5633
5980
  for (var s in t) {
5634
- var o = Gc(t[s], i), r = i.target, a = En(o), l = Vh(r, s, a, i), c = a || En(l), h = Fh(z0(o, c), l), u = Bh(r, s);
5635
- B0[u](r, s, h, i.transforms, !0);
5981
+ var o = Wc(t[s], i), r = i.target, a = En(o), l = Vh(r, s, a, i), c = a || En(l), h = Fh(O0(o, c), l), u = Bh(r, s);
5982
+ V0[u](r, s, h, i.transforms, !0);
5636
5983
  }
5637
5984
  });
5638
5985
  }
5639
- function Ry(n, t) {
5986
+ function Gy(n, t) {
5640
5987
  var e = Bh(n.target, t.name);
5641
5988
  if (e) {
5642
- var i = jy(t, n), s = i[i.length - 1];
5989
+ var i = Ny(t, n), s = i[i.length - 1];
5643
5990
  return {
5644
5991
  type: e,
5645
5992
  property: t.name,
@@ -5651,16 +5998,16 @@ function Ry(n, t) {
5651
5998
  };
5652
5999
  }
5653
6000
  }
5654
- function _y(n, t) {
6001
+ function Wy(n, t) {
5655
6002
  return El(Ml(n.map(function(e) {
5656
6003
  return t.map(function(i) {
5657
- return Ry(e, i);
6004
+ return Gy(e, i);
5658
6005
  });
5659
6006
  })), function(e) {
5660
6007
  return !Ge.und(e);
5661
6008
  });
5662
6009
  }
5663
- function F0(n, t) {
6010
+ function H0(n, t) {
5664
6011
  var e = n.length, i = function(o) {
5665
6012
  return o.timelineOffset ? o.timelineOffset : 0;
5666
6013
  }, s = {};
@@ -5672,10 +6019,10 @@ function F0(n, t) {
5672
6019
  return i(o) + o.duration - o.endDelay;
5673
6020
  })) : t.endDelay, s;
5674
6021
  }
5675
- var pd = 0;
5676
- function By(n) {
5677
- var t = Nc(M0, n), e = Nc(zh, n), i = zy(e, n), s = _0(n.targets), o = _y(s, i), r = F0(o, e), a = pd;
5678
- return pd++, kl(t, {
6022
+ var vd = 0;
6023
+ function Uy(n) {
6024
+ var t = Gc(k0, n), e = Gc(zh, n), i = Fy(e, n), s = B0(n.targets), o = Wy(s, i), r = H0(o, e), a = vd;
6025
+ return vd++, kl(t, {
5679
6026
  id: a,
5680
6027
  children: [],
5681
6028
  animatables: s,
@@ -5685,10 +6032,10 @@ function By(n) {
5685
6032
  endDelay: r.endDelay
5686
6033
  });
5687
6034
  }
5688
- var Ri = [], H0 = function() {
6035
+ var Ri = [], N0 = function() {
5689
6036
  var n;
5690
6037
  function t() {
5691
- !n && (!vd() || !at.suspendWhenDocumentHidden) && Ri.length > 0 && (n = requestAnimationFrame(e));
6038
+ !n && (!Ad() || !at.suspendWhenDocumentHidden) && Ri.length > 0 && (n = requestAnimationFrame(e));
5692
6039
  }
5693
6040
  function e(s) {
5694
6041
  for (var o = Ri.length, r = 0; r < o; ) {
@@ -5698,15 +6045,15 @@ var Ri = [], H0 = function() {
5698
6045
  n = r > 0 ? requestAnimationFrame(e) : void 0;
5699
6046
  }
5700
6047
  function i() {
5701
- at.suspendWhenDocumentHidden && (vd() ? n = cancelAnimationFrame(n) : (Ri.forEach(
6048
+ at.suspendWhenDocumentHidden && (Ad() ? n = cancelAnimationFrame(n) : (Ri.forEach(
5702
6049
  function(s) {
5703
6050
  return s._onDocumentVisibility();
5704
6051
  }
5705
- ), H0()));
6052
+ ), N0()));
5706
6053
  }
5707
6054
  return typeof document != "undefined" && document.addEventListener("visibilitychange", i), t;
5708
6055
  }();
5709
- function vd() {
6056
+ function Ad() {
5710
6057
  return !!document && document.hidden;
5711
6058
  }
5712
6059
  function at(n) {
@@ -5718,7 +6065,7 @@ function at(n) {
5718
6065
  });
5719
6066
  return w.finished = E, E;
5720
6067
  }
5721
- var l = By(n);
6068
+ var l = Uy(n);
5722
6069
  a(l);
5723
6070
  function c() {
5724
6071
  var w = l.direction;
@@ -5751,7 +6098,7 @@ function at(n) {
5751
6098
  })[0] || A);
5752
6099
  for (var C = Zi(w - A.start - A.delay, 0, A.duration) / A.duration, I = isNaN(C) ? 1 : A.easing(C), k = A.to.strings, S = A.round, L = [], G = A.to.numbers.length, H = void 0, J = 0; J < G; J++) {
5753
6100
  var te = void 0, $ = A.to.numbers[J], se = A.from.numbers[J] || 0;
5754
- A.isPath ? te = Dy(A.value, I * $, A.isPathTargetInsideSVG) : te = se + I * ($ - se), S && (A.isColor && J > 2 || (te = Math.round(te * S) / S)), L.push(te);
6101
+ A.isPath ? te = _y(A.value, I * $, A.isPathTargetInsideSVG) : te = se + I * ($ - se), S && (A.isColor && J > 2 || (te = Math.round(te * S) / S)), L.push(te);
5755
6102
  }
5756
6103
  var Z = k.length;
5757
6104
  if (!Z)
@@ -5764,7 +6111,7 @@ function at(n) {
5764
6111
  isNaN(ue) || (Se ? H += ue + Se : H += ue + " ");
5765
6112
  }
5766
6113
  }
5767
- B0[D.type](j.target, D.property, H, j.transforms), D.currentValue = H, E++;
6114
+ V0[D.type](j.target, D.property, H, j.transforms), D.currentValue = H, E++;
5768
6115
  }
5769
6116
  }
5770
6117
  function p(w) {
@@ -5784,7 +6131,7 @@ function at(n) {
5784
6131
  l.children[E].reset();
5785
6132
  (l.reversed && l.loop !== !0 || w === "alternate" && l.loop === 1) && l.remaining++, g(l.reversed ? l.duration : 0);
5786
6133
  }, l._onDocumentVisibility = u, l.set = function(w, E) {
5787
- return V0(w, E), l;
6134
+ return F0(w, E), l;
5788
6135
  }, l.tick = function(w) {
5789
6136
  i = w, t || (t = i), b((i + (e - t)) * at.speed);
5790
6137
  }, l.seek = function(w) {
@@ -5792,36 +6139,36 @@ function at(n) {
5792
6139
  }, l.pause = function() {
5793
6140
  l.paused = !0, u();
5794
6141
  }, l.play = function() {
5795
- l.paused && (l.completed && l.reset(), l.paused = !1, Ri.push(l), u(), H0());
6142
+ l.paused && (l.completed && l.reset(), l.paused = !1, Ri.push(l), u(), N0());
5796
6143
  }, l.reverse = function() {
5797
6144
  c(), l.completed = !l.reversed, u();
5798
6145
  }, l.restart = function() {
5799
6146
  l.reset(), l.play();
5800
6147
  }, l.remove = function(w) {
5801
6148
  var E = Nh(w);
5802
- N0(E, l);
6149
+ G0(E, l);
5803
6150
  }, l.reset(), l.autoplay && l.play(), l;
5804
6151
  }
5805
- function Ad(n, t) {
6152
+ function bd(n, t) {
5806
6153
  for (var e = t.length; e--; )
5807
6154
  jh(n, t[e].animatable.target) && t.splice(e, 1);
5808
6155
  }
5809
- function N0(n, t) {
6156
+ function G0(n, t) {
5810
6157
  var e = t.animations, i = t.children;
5811
- Ad(n, e);
6158
+ bd(n, e);
5812
6159
  for (var s = i.length; s--; ) {
5813
6160
  var o = i[s], r = o.animations;
5814
- Ad(n, r), !r.length && !o.children.length && i.splice(s, 1);
6161
+ bd(n, r), !r.length && !o.children.length && i.splice(s, 1);
5815
6162
  }
5816
6163
  !e.length && !i.length && t.pause();
5817
6164
  }
5818
- function Vy(n) {
6165
+ function Qy(n) {
5819
6166
  for (var t = Nh(n), e = Ri.length; e--; ) {
5820
6167
  var i = Ri[e];
5821
- N0(t, i);
6168
+ G0(t, i);
5822
6169
  }
5823
6170
  }
5824
- function Fy(n, t) {
6171
+ function Xy(n, t) {
5825
6172
  t === void 0 && (t = {});
5826
6173
  var e = t.direction || "normal", i = t.easing ? Oh(t.easing) : null, s = t.grid, o = t.axis, r = t.from || 0, a = r === "first", l = r === "center", c = r === "last", h = Ge.arr(n), u = parseFloat(h ? n[0] : n), d = h ? parseFloat(n[1]) : 0, m = En(h ? n[1] : n) || 0, g = t.start || 0 + (h ? u : 0), p = [], v = 0;
5827
6174
  return function(b, w, E) {
@@ -5845,7 +6192,7 @@ function Fy(n, t) {
5845
6192
  return g + I * (Math.round(p[w] * 100) / 100) + m;
5846
6193
  };
5847
6194
  }
5848
- function Hy(n) {
6195
+ function Yy(n) {
5849
6196
  n === void 0 && (n = {});
5850
6197
  var t = at(n);
5851
6198
  return t.duration = 0, t.add = function(e, i) {
@@ -5856,13 +6203,13 @@ function Hy(n) {
5856
6203
  }
5857
6204
  for (var a = 0; a < o.length; a++)
5858
6205
  r(o[a]);
5859
- var l = kl(e, Nc(zh, n));
6206
+ var l = kl(e, Gc(zh, n));
5860
6207
  l.targets = l.targets || n.targets;
5861
6208
  var c = t.duration;
5862
6209
  l.autoplay = !1, l.direction = t.direction, l.timelineOffset = Ge.und(i) ? c : Fh(i, c), r(t), t.seek(l.timelineOffset);
5863
6210
  var h = at(l);
5864
6211
  r(h), o.push(h);
5865
- var u = F0(o, n);
6212
+ var u = H0(o, n);
5866
6213
  return t.delay = u.delay, t.endDelay = u.endDelay, t.duration = u.duration, t.seek(0), t.reset(), t.autoplay && t.play(), t;
5867
6214
  }, t;
5868
6215
  }
@@ -5870,22 +6217,22 @@ at.version = "3.2.1";
5870
6217
  at.speed = 1;
5871
6218
  at.suspendWhenDocumentHidden = !0;
5872
6219
  at.running = Ri;
5873
- at.remove = Vy;
6220
+ at.remove = Qy;
5874
6221
  at.get = Vh;
5875
- at.set = V0;
6222
+ at.set = F0;
5876
6223
  at.convertPx = _h;
5877
- at.path = Sy;
5878
- at.setDashoffset = ky;
5879
- at.stagger = Fy;
5880
- at.timeline = Hy;
6224
+ at.path = Ry;
6225
+ at.setDashoffset = Oy;
6226
+ at.stagger = Xy;
6227
+ at.timeline = Yy;
5881
6228
  at.easing = Oh;
5882
- at.penner = S0;
6229
+ at.penner = D0;
5883
6230
  at.random = function(n, t) {
5884
6231
  return Math.floor(Math.random() * (t - n + 1)) + n;
5885
6232
  };
5886
- const G0 = process.env.NODE_ENV === "development";
5887
- function Tr(n, t) {
5888
- G0 && console.log(`[blink] ${n}`, t);
6233
+ const W0 = process.env.NODE_ENV === "development";
6234
+ function Lr(n, t) {
6235
+ W0 && console.log(`[blink] ${n}`, t);
5889
6236
  }
5890
6237
  const Gh = {
5891
6238
  duration: 300,
@@ -5893,13 +6240,13 @@ const Gh = {
5893
6240
  direction: "alternate",
5894
6241
  loop: 4,
5895
6242
  autoplay: !1
5896
- }, W0 = {
6243
+ }, U0 = {
5897
6244
  quick: { duration: 200, loop: 2 },
5898
6245
  normal: { duration: 300, loop: 4 },
5899
6246
  slow: { duration: 500, loop: 6 },
5900
6247
  attention: { duration: 400, loop: 8, easing: "easeInOutQuad" }
5901
6248
  };
5902
- class Ny {
6249
+ class Zy {
5903
6250
  constructor() {
5904
6251
  f(this, "materialsToUpdate", /* @__PURE__ */ new Set());
5905
6252
  }
@@ -5925,7 +6272,7 @@ class Ny {
5925
6272
  this.materialsToUpdate.clear();
5926
6273
  }
5927
6274
  }
5928
- class Gy {
6275
+ class qy {
5929
6276
  constructor() {
5930
6277
  f(this, "startTime", 0);
5931
6278
  f(this, "measurements", /* @__PURE__ */ new Map());
@@ -5944,7 +6291,7 @@ class Gy {
5944
6291
  */
5945
6292
  end(t) {
5946
6293
  const e = performance.now() - this.startTime;
5947
- return this.measurements.has(t) || this.measurements.set(t, []), this.measurements.get(t).push(e), G0 && Tr(`Performance [${t}]: ${e.toFixed(2)}ms`), e;
6294
+ return this.measurements.has(t) || this.measurements.set(t, []), this.measurements.get(t).push(e), W0 && Lr(`Performance [${t}]: ${e.toFixed(2)}ms`), e;
5948
6295
  }
5949
6296
  /**
5950
6297
  * 获取平均耗时
@@ -5962,11 +6309,11 @@ class Gy {
5962
6309
  this.measurements.clear();
5963
6310
  }
5964
6311
  }
5965
- class Wy {
6312
+ class Jy {
5966
6313
  constructor() {
5967
6314
  f(this, "stateMap", /* @__PURE__ */ new WeakMap());
5968
- f(this, "materialManager", new Ny());
5969
- f(this, "performanceMonitor", new Gy());
6315
+ f(this, "materialManager", new Zy());
6316
+ f(this, "performanceMonitor", new qy());
5970
6317
  }
5971
6318
  /**
5972
6319
  * 存储物体状态
@@ -6014,7 +6361,7 @@ class Wy {
6014
6361
  visibility: t.style.visibility
6015
6362
  }
6016
6363
  };
6017
- if (Do(t))
6364
+ if (To(t))
6018
6365
  if (!Ss(t) && t.children.length === 0 && t.name, Ss(t)) {
6019
6366
  if (Za(t)) {
6020
6367
  const i = t.material.transparent;
@@ -6044,7 +6391,7 @@ class Wy {
6044
6391
  * @private
6045
6392
  */
6046
6393
  restoreSingleState(t, e) {
6047
- t instanceof HTMLElement ? (t.style.opacity = e.opacity === void 0 ? "" : String(e.opacity), typeof e.visible == "object" && e.visible !== null && (t.style.display = e.visible.display, t.style.visibility = e.visible.visibility)) : Do(t) && (typeof e.visible == "boolean" && (t.visible = e.visible), Ss(t) && (Za(t) ? (t.material.uniforms.opacity !== void 0 && (t.material.uniforms.opacity.value = e.opacity !== void 0 ? Number(e.opacity) : 1), e.transparent !== void 0 && (t.material.transparent = e.transparent), this.materialManager.scheduleUpdate(t.material)) : qa(t) && (t.material.opacity = e.opacity !== void 0 ? Number(e.opacity) : 1, e.transparent !== void 0 && (t.material.transparent = e.transparent), this.materialManager.scheduleUpdate(t.material))));
6394
+ t instanceof HTMLElement ? (t.style.opacity = e.opacity === void 0 ? "" : String(e.opacity), typeof e.visible == "object" && e.visible !== null && (t.style.display = e.visible.display, t.style.visibility = e.visible.visibility)) : To(t) && (typeof e.visible == "boolean" && (t.visible = e.visible), Ss(t) && (Za(t) ? (t.material.uniforms.opacity !== void 0 && (t.material.uniforms.opacity.value = e.opacity !== void 0 ? Number(e.opacity) : 1), e.transparent !== void 0 && (t.material.transparent = e.transparent), this.materialManager.scheduleUpdate(t.material)) : qa(t) && (t.material.opacity = e.opacity !== void 0 ? Number(e.opacity) : 1, e.transparent !== void 0 && (t.material.transparent = e.transparent), this.materialManager.scheduleUpdate(t.material))));
6048
6395
  }
6049
6396
  /**
6050
6397
  * 清空所有状态
@@ -6053,12 +6400,12 @@ class Wy {
6053
6400
  this.materialManager.clear(), this.performanceMonitor.clear();
6054
6401
  }
6055
6402
  }
6056
- const wn = /* @__PURE__ */ new WeakMap(), Mn = new Wy();
6057
- function Do(n) {
6403
+ const wn = /* @__PURE__ */ new WeakMap(), Mn = new Jy();
6404
+ function To(n) {
6058
6405
  return "isObject3D" in n && n.isObject3D === !0;
6059
6406
  }
6060
6407
  function Ss(n) {
6061
- return Do(n) && "material" in n && n.material !== void 0;
6408
+ return To(n) && "material" in n && n.material !== void 0;
6062
6409
  }
6063
6410
  function Za(n) {
6064
6411
  return Ss(n) && n.material instanceof yl;
@@ -6066,15 +6413,15 @@ function Za(n) {
6066
6413
  function qa(n) {
6067
6414
  return Ss(n) && !(n.material instanceof yl);
6068
6415
  }
6069
- function Uy(n, t) {
6070
- n instanceof HTMLElement ? n.style.opacity = String(t) : Do(n) && Ss(n) && (Za(n) ? (n.material.uniforms.opacity && (n.material.uniforms.opacity.value = t), n.material.transparent = !0) : qa(n) && (n.material.opacity = t, n.material.transparent = !0));
6416
+ function Ky(n, t) {
6417
+ n instanceof HTMLElement ? n.style.opacity = String(t) : To(n) && Ss(n) && (Za(n) ? (n.material.uniforms.opacity && (n.material.uniforms.opacity.value = t), n.material.transparent = !0) : qa(n) && (n.material.opacity = t, n.material.transparent = !0));
6071
6418
  }
6072
6419
  function Ja() {
6073
6420
  const n = at({});
6074
6421
  return n.preComplete = () => {
6075
6422
  }, n;
6076
6423
  }
6077
- function U0(n) {
6424
+ function Q0(n) {
6078
6425
  if (!n)
6079
6426
  throw new Error("Invalid objects parameter: objects cannot be null or undefined");
6080
6427
  const t = hs(n);
@@ -6083,15 +6430,15 @@ function U0(n) {
6083
6430
  if (t.some((e) => e == null))
6084
6431
  throw new Error("Invalid objects parameter: objects array contains null or undefined values");
6085
6432
  }
6086
- function Q0(n, t) {
6433
+ function X0(n, t) {
6087
6434
  const e = hs(n), i = [];
6088
6435
  return e.forEach((s) => {
6089
- s && (s instanceof HTMLElement ? i.push(s) : Do(s) && (t ? (i.push(s), s.traverse((o) => {
6436
+ s && (s instanceof HTMLElement ? i.push(s) : To(s) && (t ? (i.push(s), s.traverse((o) => {
6090
6437
  o && i.push(o);
6091
6438
  })) : i.push(s)));
6092
6439
  }), Array.from(new Set(i.filter(Boolean)));
6093
6440
  }
6094
- function Qy(n, t) {
6441
+ function $y(n, t) {
6095
6442
  const e = /* @__PURE__ */ new Map(), i = Mn.getStateMap();
6096
6443
  return n.forEach((s) => {
6097
6444
  var r;
@@ -6107,11 +6454,11 @@ function Qy(n, t) {
6107
6454
  if (!c)
6108
6455
  return;
6109
6456
  const h = c.initialOpacity * (100 - o) / 100;
6110
- Uy(l, h);
6457
+ Ky(l, h);
6111
6458
  }), (r = t.onProgress) == null || r.call(t, o), (a = t.updateRender) == null || a.call(t);
6112
6459
  };
6113
6460
  }
6114
- function Xy(n, t) {
6461
+ function ew(n, t) {
6115
6462
  const e = /* @__PURE__ */ new Map(), i = Mn.getStateMap();
6116
6463
  return n.forEach((s) => {
6117
6464
  var a, l;
@@ -6125,21 +6472,21 @@ function Xy(n, t) {
6125
6472
  if (!c)
6126
6473
  return;
6127
6474
  const h = c.maxOpacity * (o / 100);
6128
- l instanceof HTMLElement ? (l.style.opacity = String(h), l.style.visibility = "visible") : Do(l) && (hs(n).includes(l) && (l.visible = !0), Ss(l) && (Za(l) ? (l.material.uniforms.opacity && (l.material.uniforms.opacity.value = h), l.material.transparent = !0) : qa(l) && (l.material.opacity = h, l.material.transparent = !0)));
6475
+ l instanceof HTMLElement ? (l.style.opacity = String(h), l.style.visibility = "visible") : To(l) && (hs(n).includes(l) && (l.visible = !0), Ss(l) && (Za(l) ? (l.material.uniforms.opacity && (l.material.uniforms.opacity.value = h), l.material.transparent = !0) : qa(l) && (l.material.opacity = h, l.material.transparent = !0)));
6129
6476
  }), (r = t.onProgress) == null || r.call(t, o), (a = t.updateRender) == null || a.call(t);
6130
6477
  };
6131
6478
  }
6132
6479
  function xl(n, t) {
6133
6480
  var e, i;
6134
6481
  try {
6135
- U0(n);
6136
- const s = (e = t == null ? void 0 : t.traverseTHREEObject) != null ? e : !0, o = Q0(n, s);
6482
+ Q0(n);
6483
+ const s = (e = t == null ? void 0 : t.traverseTHREEObject) != null ? e : !0, o = X0(n, s);
6137
6484
  if (o.length === 0)
6138
- return Tr("No valid targets found"), Ja();
6485
+ return Lr("No valid targets found"), Ja();
6139
6486
  Mn.storeState(o);
6140
6487
  const r = ce(F(F({}, Gh), t), {
6141
6488
  targets: o,
6142
- update: Qy(o, t || {})
6489
+ update: $y(o, t || {})
6143
6490
  }), a = at(r);
6144
6491
  a.preComplete = () => {
6145
6492
  a.completed || (a.pause(), Mn.restoreState(o), setTimeout(() => {
@@ -6161,20 +6508,20 @@ function xl(n, t) {
6161
6508
  }, 100);
6162
6509
  }), a;
6163
6510
  } catch (s) {
6164
- return Tr("Blink animation failed:", s), Ja();
6511
+ return Lr("Blink animation failed:", s), Ja();
6165
6512
  }
6166
6513
  }
6167
- function X0(n, t) {
6514
+ function Y0(n, t) {
6168
6515
  var e, i;
6169
6516
  try {
6170
- U0(n);
6171
- const s = (e = t == null ? void 0 : t.traverseTHREEObject) != null ? e : !0, o = Q0(n, s);
6517
+ Q0(n);
6518
+ const s = (e = t == null ? void 0 : t.traverseTHREEObject) != null ? e : !0, o = X0(n, s);
6172
6519
  if (o.length === 0)
6173
- return Tr("No valid targets found"), Ja();
6520
+ return Lr("No valid targets found"), Ja();
6174
6521
  Mn.storeState(o);
6175
6522
  const r = ce(F(F({}, Gh), t), {
6176
6523
  targets: o,
6177
- update: Xy(o, t || {})
6524
+ update: ew(o, t || {})
6178
6525
  }), a = at(r);
6179
6526
  a.preComplete = () => {
6180
6527
  a.completed || (a.pause(), Mn.restoreState(o), setTimeout(() => {
@@ -6196,381 +6543,32 @@ function X0(n, t) {
6196
6543
  }, 100);
6197
6544
  }), a;
6198
6545
  } catch (s) {
6199
- return Tr("ReBlink animation failed:", s), Ja();
6546
+ return Lr("ReBlink animation failed:", s), Ja();
6200
6547
  }
6201
6548
  }
6202
- function Yy(n, t, e) {
6203
- const i = W0[t];
6549
+ function tw(n, t, e) {
6550
+ const i = U0[t];
6204
6551
  return xl(n, F(F({}, i), e));
6205
6552
  }
6206
- function Zy() {
6553
+ function iw() {
6207
6554
  Mn.clear();
6208
6555
  }
6209
- function qy(n, t) {
6556
+ function nw(n, t) {
6210
6557
  const e = wi(n), { x: i, y: s } = t, o = i * 2 - 1, r = s * 2 - 1, a = new P.Raycaster();
6211
6558
  a.setFromCamera({ x: o, y: r }, n.camera);
6212
6559
  const c = e.intersectRaycaster(a)[0];
6213
6560
  if (c)
6214
6561
  return ce(F({}, c), { raycaster: a, isVirtual: !1 });
6215
6562
  }
6216
- function Jy(n, t) {
6563
+ function sw(n, t) {
6217
6564
  const e = n.getElement();
6218
6565
  if (!e)
6219
6566
  return;
6220
6567
  const i = h0(t, e), s = new P.Raycaster();
6221
6568
  return s.setFromCamera(i, n.camera), s;
6222
6569
  }
6223
- const Ky = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAYAAACJIC3tAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA2KADAAQAAAABAAAA2AAAAADs6jNqAABAAElEQVR4Aey9C7ClZ1Wu29253yAkJGBCQoAEdBOCbkSgkIMKKgSjIJvLPket2qVyDiLi8VLiPvFSp8ACEUuUAsXN3orgQQoBUVBBvLCFjbg1CiiICSEEwiUESELu6e4znn/OZ/a7Rn//XKuTbO1e7aj65jvGO94xvu///+9bc625Vjo7d/yb/WvegZ3/QpPv/Rea59+maXfgX+oBt2kPi/DO3tsDrb+zh+jO1h8WD/VAL/JAH+KB9j8c9AdyD7eq3aqu39+tHpKt6uh/INq+nsM+vqMP8nC9cVu9X+t0dzR3IPd83aG4oznnX1ev5t9weQfWPex/u0mLO7CVezTS3BnOez/qYS5x3aYf5e4Ml/Pij3p1zWEbb/UBHk43aCv3ZKRJLn3u3YHGeb97bebw123wnjuQuGs3m8t1jerMHXa42cM7XG7IZvdhlE/uzvjc46z3no84cyMcbezOZXxnfOfPHnLiupyabY8H+hC32w1Zd/09Nxcnry9yv/TFOS55/LSsTX5uEye/mT/Kb5VzLamXS9wsn9pt5c89uG11kYOLWXfdPWcs0k7/jmL2WOeTO1DLzbyZb/6OImuz1nX2WH6kzdy29N0g2/LiBhe17nozN/LlRjjimB5+Lmc+ER+zZhFt/TU392a+eTB9ZpvjzK1Dcpg9F9G+1zl+n2IbeUduo2vZ7FLmNm3yI18OvDM+68v6jLs/iuHWWd+4Geuvw8zh95i1y21lHXP6OX5dz0M25wM/ZC9giwufu87k9UcIl/wdiVlq9si4+8SY+kU0/zra+HIi1frgOr/nRvqu6f2JMXWLaN/rHL9PsQ28w+kdrD+u3Lz64DrffCJ9M9ZPfuTLgRh1aT3O3MjvG9ZYpEYf7P4oVpdIH9YmR5wGbx4+/dQdFv7hcMBGGzU5fbD7cgeKbJ6syVg/cZ1PbivGxk7LWD+x+8QHMnIufGq9f/ogBq8/EYfLy+FwwPqzdBPA64PdlxN3LTXGB4p9vlEMh9H7jlhu4pEvB3ZfruOepXbE9zWice364MjQzeVG+kOSOxwPmA/KjQB2X64fqs1i60bIvDnPKE4O/0Ctb1jjESaHnyMPFWvOGB/jXlBjDIfZlzr8jmgOGzvcDpgb3AecMX6OPEwjf8RlffeZU04fxODTepy5db6bW43xCOGSx/cgMX+PzdHbHD73oR8yeDT2IT4sbbsfsLmNmjx+H6PDIwemb62ccUc2GBzWMblJsHxRl9zIZzN3S04/Eb8P5pPj0BD3g1XUxHG9Hqy5dTqffUV6HBa23Q/YuofIw3Zj6Hf00ICb+dSq6X1Yh5z+jl/5lV+57+Me97jzTzvttAedeOKJ5xx55JFn7tq168SdO3cezSjhUTV4RkfUsHe5q0Owe+/evbtLe1vh7cXfsnv37mtuueWWT95www0fu/LKK//pjW984wde9KIXfW5ZY63oYUr0QLFeD5AHhZh1YPogWk2tMbnObSWn5pDGvDGH9IXMLD6vTz8RP4ebOBHfgVY/NfLZa+X/wA/8wKnPe97zHnfmmWc+8rjjjvuqOkT3qj7HLOcuWNncRlwJtugwdxp9b96zZ8/nb7rppn+og/fun/zJn3zXW97yluuLJ8fgoHRfDsyhfsTZY4TVZr/Dhm7bWn8Q2+1C8/r0wfQ9KHD6HiI5446Zx5/ietd48OMf//innXTSSY+sd5evqME7ETksN5Q+aH4SLXWdM9dxs/rso0/NTbfffvsnbrzxxr/9wAc+8MePecxj3recl5yHJ325EapLxHeUu7p2OC19uW2D3uxtc0HtQvL69MHR6IerH6ZRTJ9dz3nOc079qZ/6qWeeeuqpj6tv8x5YHO9OmJsnN9ki86//6j1gJfjYrXXg/vGqq65665Oe9KTXf+hDH7qluNFhGnFco7zXSzy6B3KVXuXxt515Y7fdhS0vKK+vbyhjDxbx6BANue/93u+9x0te8pJnn3zyyRfVOxTf8lHvxhJZhjw+1uMFO//a9T2er1xkur7H1sPnqO8o93zq+uuvf+ery370R3/0k5X3AO0OX87DZOw96Mh8cFr6ctsGuaHb2by+EcId0OF6whOecOLrXve6769D9R/q56izq54ebiA2FuaGMddxodr3Sh6jTi2xfkdyaf8r6umZ96Y+Q9n76Wuvvfb1T3ziE3/lfe97382V9yCNkGuB994kFr26R90n3lbmw9lWFxUX4/Ul4vfhZurvVtOnd5dccskjzz///Ivr27+vqVo0bqA8VM7B9OQxOPxE+M4Zk8MOpnrW433hOuqDyt3v+8M//MMfv+iiiy4lrpGHjLV7uEQ4R7mr6+s+8bay3BTb6sKWF+P1JeLnmDtcu/70T//0wd/wDd/w23xQsezHJuHjcAwfs3fG+MnjyyVarxZMn7wmb+x8Gcsl5nz0yJha+1qTGvKp96CBu9/61rc+6ju+4zsuLz8PmD51/YAVNfVzLmNwW5o3dzteXF6bPtjH7AGrn0E+VIfr9KrhqzQHyz7lrswNuCLCyRy+G7SvIUp27OF3WjXv7YW3VYJxa/n8josPHfbWt6fHVJ7flfHp5FGFR1Z+4irua2RexmizF706QPjd+vrtDR5dnz7+6gknnHBx+R6qxNG89JfHx4i3rR3Ov2je9KHWxr1Hidg0/V0rNx595jaJB8pD7AblF8NfrE/sruaXwvWzzcc+/vGPf/S3fuu3Pvhrv/Zr19CwbK7nIrv/69T7uc997ulPecpTzj3nnHMecI973OPs448//n71re05dShPrpJ83nkY8Ocs16HPt857r7nmmr+eK/o3fnEHfODb8X7ktemDfbj58zBM/m233fam2pyPqRreRTxk6+4Vvdl8DOeps7T3S3WQLqsN+f43vOENf/IjP/Ijl1fezVru5KPHkl8wi9cRnzX6YtZO/stf/vL7X3jhhV9/73vf+6HHHHPM+XXoTqsE10pvRv48VeHQpr8uqS8Of3LUUUf9H6XgcGadB5d++PYGMeNFtIj1tx3OPoxtcqVeXyJ+jn7AOBzYkfUucMRll1327tqI51Xst2tTMl6o91C5Wa+vb5/eX7+8/f2nPvWpf1m/V2IDYmwu5naT6ZsDMTfjItr6K/20kU9f1ojtPffcc49885vf/IQHPOABT6i/MDm/ON7lXBNfUDw45U68h+tP63D978XRT40HDc6DJcI5yt1wffDb1vIhbMeL9PoS8ftg0zHgOSz4E5511llH1Ldvf748ZLcWz8ZTx7dcaHmX+tx11133F695zWte+0M/9EOXLzUF+5kbqmMXmu/8uph1dUsu/a7b8731u72f//mf/+761vLC+vb4PiVAzyHhmrnOI+td/c+OPvpo37k8VJVaHTQOHGsfHS6vSaQufeJtZetu+Ha4UK8vET8HGwdbHaqlTzyN+9znPkdcccUVf7Y8ZGycqR+H6otf/OJbLr744t945Stf+aWlvmAy5yQYbSK5jnN6eHqqJ+6Wc+p3zBp62TP77q1vY+/xMz/zM8+uP/d6Uh22U0q3t/6O8Q/qZ7ofKN9DJHrQ6IHvIO6jqA3XkPOS21bmzd9WFxUXk9eHb6wP8k5l7LsXcR64I84444xdH/nIR36uPjV7dH0Vv+ztb3/7y77zO7/zw0ud9aCWfm4ifVF9xumbB+HpK8Kl5Zzpq0kuffrZk8OBye156EMfelT9HvDI+iX7dUveg5VIHTVy+PYyB4eJ3Z+S2+klb/J2ui6vJa8P31ifQ5S+71pw/bB54FKvD2JoRsaGUuPm6khdcuqTx09TY3+QNRirVScmn3PK94ORBwTfQS2+h0odMWYMYqO55BaKbfaaH9tus0tbezlsNDebvjEPHB/UN2ajeIh6Ho0byl5FrQw9hsZ+clOiXuxJbI+RJnN9PalXl0jemHnSnN8exmj0RbjR9ZKnv4gu56PmsLHD7YDx0HNDuhF44Lkh3ABwHgg5a9S7eeyLTg5NmjV+he+51DsPms67SdFkL3R9Hc5JH/SMrIfP/vpgDmp6bG3ycBo81ueUX2S38evhcsDcWD5sUR5MYwOwofg2ESPum4SYzWyOjQ7n5uk9K7XK6aunxj7WG6NNMw+nr5Z+Hjh8+7tOauA088T2ALMv90EdvIez64jtbb11lVr1WOeT21bmBtpOF+VDFrk2fb+6E7vp8B1qM4YbGRo3Enk3HHxuQnxz6DKG7/FIa52IpvvWieTVgcwzWpu6XmcsUp/a7hsndj/vGb6Wvty2wO36DuYDE/NhwTHYOObxNXkRPvPW5ob14KbWDak++6efvfVH67KmIzXObz2x8+cXknx3o4/6Pp+8GuI+7N95YvqZz7XQz/XgY+ixfp8W7CH+6o09xC9jtXwfEui1iYj0QR807+LJ45svd7V50Y90cmwUe1IH7+Zx062LqemWddkPnXHOr2+fjLu+a3Iucx6SXDe+I/P6ohqR+ckRayM/OXWHLOYDOGQvYrlwrqVfzyhOHT6HAhMz76Gyz0hjTqSXmwROP3l8zBxovdwkuAMvOac9RdsZ51xyaOAzlzH+3CGytufh5dSAWs4Fl/OpOSQxb+oheQG16H4NxiLXpQ/y8DwoHiA1qcM3VtfrrQPpq77zxFrfTPCdy176I6TWOe1hTA4zJs919D5oMOv1s04O9KCI5ozp03uZU5vIPFmTtanDP+TsUP+Qw02QiG/MA8kYPw+LuhEmh++Dd5Mad2RODD43lhyY1uudV03m8XMtaOTU97y8WtF5sn/X5vrRqbUHiMZexOn3tZlXA9oTP3m0mSM+5OxQPmA+HB+M6EMg5jBgmcPnwZkzD3bzMMFTp/ngRwgnTw0bUC5jeqnDx1xb8vqg+dTK9Xxq8LOPcXLr6sllPutG86eWuTS0mj6obw5M3vkyf0j4ows7FBae6x75W+W41n7QspYcsRsGPXFq4DR5N0SPU6cGzv7o812DHJx5a+Qyrw9uZnP11PW5Rhwa10K+r7nn1Yr2BLGul5uSy3znzB3UeKi+g7FBsMT053LJp09t1vPAjdOnBnNDoMHX9HuNsYherbXON0I5tCMfLvne27rR/CMOPdb7qAUz5/yZdz2po6c8vpacvqjmkMRD8SJYc193vgvxIDI/8pNLPTwbwncucpi8daN4odz3qhYmN1ny+9T75pDrc9jDeuI5jT06WgNvP3z7yOcccFjqjZPTF6eiqNsKj4aR81sn9r7GByUeau9g3niRm9r9jDMPb04kn4dTTebRaGrVwePnw7c2OXXmjBP1s7ecuK6e+axNHbWafK4Njth6taBc6tNHY8/057g5nlrnwsdG81jfc4uKg/DVBR+ES1stqa/RuCMFcunLgfkQk0ePpca8/CSIl8xLdy5j/JzfmkQ1cFmrxvqO5JNT33FOA48xp58Kyk2J5Ytc7yOPLP0em0v0muGcnzottes4cwcV+hX5oFpUWww32JvspkvsOcvVGKOT64hGbt09UZOYfvaRh9PkOpJPTt86Ub7jqF6NtV2TcfrWdbwjmrzn6WfvfH5dY465R2afUe6g4A72Bbo+sN/85PDVjnSp9carJ9YXu2aOd66e7/UZWyMn2mMury7z6fc8OY3extaA+urAfAfLOnL26H7GqRnxmU9fbXIjH47B2vqnl/Q4qMyHelAtarmY0drgHN7k1OmLtOp+xpmXF8lpyaVP3hh0TdaJajJObfpo1MN3c57OZ6zGeuPUOKcac503L48O39i8PKipI1bnWozF1KyrV0dd72XdQYMH81/TewO5WdxIRpqcN9m4a4hHteqsV9fnlQfdDNmv16PTRjo4eWszpnazefg2Vs1Ib27UV446/a4nh5nX7zrzyeuD5q33HQc+89bIo0+OGBtxi8xB+po34GBZojfZtYH6rlHOh2ReRDfy7wiXvaxnXje5XOrw01IjD5frz82jP9LCWafOXuTSH2nhtN4n+fTpmd86Zk4fdD1i51ybeTF16ZNnWJc5fXuI8AeNsfCD0VwX6M3VN5frTk4d+fTVqxV9gMai9aM6a8yNtGrop9/18Jhzpk7f+pEOjTry3bcGvlty1q3j5jS9xnnmePLmQP3k53y1ifq9hnhkeT9H+buUO9i+RcyLd9NxwfjG3lDj/NRPzhoQoyZ1E7l8Sd56EQm+cy5LVuuBn9P6Dpc19uk1zpE16dOj18jJe43OMao3Zy2x9QfCodWcx/l9pyNv/0T8tFE9ee9Jake+63eOkaZz1nS+x32tPb9pvNWJNm20FNyV/ehlP9AbmJzrSu2Im6u3JzXZV37EZX/r1I9iOevEXJNcx9TkHPqJvdZ4nYYclhrm7D8rqQGx1BtPieWL9ea8jrm6XIc19hvlNutj7V2NrmXLfbnwO2p3pnYrc/KVTXOuRG8ynDx6fXHEjXKpm/Opc1402FyvnjO2XkweX8u+ciN0TfRLk08O33n7O03qslf61idal7qRLweytjyE9lOTPTtnnbzXSSxnPUh+nY1q1unJbblms8n7RAeq7/WbxfYHuQjQkbF9Ug+n1nxyW6lX3+uN+3ydX1fv/L2m8+ZF55zTwc9Z1nSdueQ713PO03nWCJf1qaHOvD6IpU4/tQvVvgOZc2U9NXmvrLsj6DrW1W5Fs1rQukbmXLzxHG5V1+tdsPVg+t7A5Owx4vIdEF32M15Xb8/UwrmOXpu67qe216uVB+Wcb0mthVE9BfazuMcjPnt1fcYH4qsVc21wDK93TmNNauEwa8R8fgvF+lfrumqOR7cuN/XZ6iI2092R/Ghx9gHJZ6zPwkc+3By/roYctq52Li/vWumhTw6b48jNaa0Dt2L0wZxrEe17dZ6uM96n3Lhpeh1x56jNPvpi5jtHzJr9tm+dNnNzfl6/c8GtM3WpuTNc9tmwqTYkIli3wFFuxEW7WZc6bzii3sd8vjPBdZ2fSsnPYc6hRo51jObJ9akFsexhnHryGaPRrDUPeh2pgV9nWe986olHP3dZg87+cuqTt5/cKO51ag70IDlHx7w2csbpyzE3/pzZ23zG6ZPv8Rxnr7UTKxotrnObxfbaCtpLpIYLMwb1yWH9MMCpEeGwrM9c+uiyJ7E24nstWg/IKJcc16bWOcDUJD/n94dPfXLpk8tDoDY1zJNx+pmD7/UjbXIjX050DmOxz4UODkPDyFif/MjsS+5A/V6zX//NJh/lk5vzmShz+00cBDovrNfkzeo549zwcqLTEDvgsm9u7uyVtfi93rqcK/1RvVyiNbkmOO9J18qrEVOnr9ZY7HyP0cGt43Peruu1mc8cvn3UyI3e7VgXpsYauXwm5NSRX2f2EdHqd8ycPdUYr5CLW2c9n/HIH3H2N9cXAz/irAOzVr9j6nrOeJ0mc+lTy2CN6/pQk6ZWNDeKvX5yfR7rtoq9V9bZWw05/VEu8+mnNutTo+81dZ35RPw8WJmzHg7zPuZanGuhWLzKqTeX/bpvPIf0MNd9+0/YJ92QrCDzI19uDulnrvdmgeb059Ba9KnJdxx7daS2cz3O/plzLnuQ61zW9lzG9kjOueyR6FwjzpyYmu4zX1rG1ieHNuP0Mwff69X2nDH1owPU6/z2Va1550t0TbkX4LScWy7R3onpoyUecfYxZ7xCFjpnmRv5cmD69OvxaA403MD+tj7SwnER9k0NnPxmSF1q6OmDkUeDETNyXjWiOtEbbV4kjxFnv5x/ErS8nHXGI1Rj/8TUw2v61sLLdY28OKc1D476Zn6kMd/nz/nom5axPcknn3p950rsfo+pTa73Mp7wQP8W0QWDW/GZRN00YbywSP5NENBNTlp9vwh50Jxc1sGpQTfSoMfycC+Yxas9ktNf1w/Nulrz9srrlst6rzNz+nltqct6tXBq0vf61YHkNd9BiK0zv25+653TOPvoZy45ah3Omfnkku/3tK8breb6ch59NSCc8+mDm5pFXZi8fmL3iUecfc0Zd/Si1PUY/eiC1JPHZ6CTlzOu1GTGIqS+uBlHvm9QY3uAuZ7smb7XZh25NPvIGYvyoL3we961pKbXkOv5kQYO63prE12HnHXiHG8e1LzHxPS1t746Y3rjj8x5wa0MeqTOGMTst4jqdW7i5PVBBw3051BNIj7GQqhzQembB/MrKDFmDT512Dp0LnT51S1rnB+UR4/JZR95MevhsOwzl7en+V5HrEac4+A1tJp1W+GypvvZp/sjLVyfU07ePiNeDsRSy/3K+zv3XKfCpTbr5eEYmL7I3tMfYdbgY+g22Fa/RewXZLwVZMK8GfgsRHTxxurhvXFqzIHdnEM0bw9jUI3oelKjDo159eZSP8p1LuPegxzzYOmzfuc3l4jfzXow/a7LWB1c97su45FvPYh5Xfhy+FjmFszG+ZPD78/TfmLm4fr9y/n0QYdf1K0zZu40a5lDP/OTn4vZL1mEizZH3Ac9DmRQj17k5zAGsWgO1PAzTh6fiyTvxabWHDpNLahWDo2cfsZwWvL4OdSAqcvYewGHr9mnx/1a1InqsxfcaH5rzBmrN845vb85T9bLy83F8nn9oxo5dHlN8A57uH+IefOQ33XOOecccdttt/3m3r17L9+zZ8973vjGN56zzKNx0C99+yeWZNbQbbD9iMoml41HvhdALv0N2je/+c1nf/M3f/P3XHPNNf/zvve97x+X1oc0Qrjk06/UZPlVhbmwnJOazqsBscyP4q1y9OnzUYs5xyLaGPe61HjNqZnjUkMPdfZzbdwz1yOnVsz6Oc2cNufbisa50I7msoc59Kzfa9AfoVr25I6zzjpr1xVXXPH2nTt3PrTC62ucUAftn3bt2vVN5Ts/yD3aCmaNfpVORryyaQGraGvO6II8XOCG8fa3v/0BT37yk997wgkn/NDZZ5/9m7fccst/KQ1fadTh51ce+xe94YYSY1yAmkRzeYHkRyZvPZqsI1aDryWX+uRTKw86zOd1yCVmLXzW41tvDuzWa7Kn609N1qvdCjfSUjfinVd0fmPnk7eHMbrOmQM37Kv73Oc+R8Th+kzlL6vx+TpsX/l7v/d7Dwy9daK9srd+lW3NKOgml8ikNu++ccdJX2/LrzvyyCO/ser/ucY9a5xy++23v+2oo476/vIxblgOOL6S+C7ljferC3k5fCzX6jrh0bEuLXNwWTeK5dDRa7N69aBmjWt2TvLppx6/653fnLXyifZK5P5ljTnrzBNj4iLa9zzoQc58R/WpgUudfud7rTrn5Fnm88w9R23GO88444xdV1555R/UO9UFlft0jc8iKju6xlfdeuutf3jMMcc8q3zX6h4D+0Ajl/qiV/X64GS5WLlELsyHAq8PejH6xDmOePzjH398Ha5HF39tjS/XuKLGNcU96eabb+adDL3vZvRhYNmTOG+0utTKqVVPf8w8aK7XT8J4sUZKfY+T775xn5Me5tLvnOtXY16UT8THUmOcnH7HqXhZby7r+7WgyYEWjRxxt3W57N+vnz7k7U9ML6zjro985CM/G4eLA2btzeVff/TRR3/Tgx70IA4b8zhcWyK5jPtclR5bXgAKC7u6NzfuizKe8PWvfz1fHY6p8fllQy7wihrX1FeOC7/85S+/tHx7+a2iPeAxcMRNyeULfTF7WbtgFzdWX4160AdmDsyeau0rwqfJi+TwGVwDZqwmsefUd6RX1pHHer2xuUlUL30t5tXbW76jefWjezXi6INZn769zFHP6Gsl748UWYPvfZny9WMJX9xvqcHhwuyJf3WNY9/97nf/p0Lq1o0+T8k3XAOxhnZlLn5FLJ0U6Sfi5xgu7pRTTnla6W6twTuYFwd+vMaX6gb8h2c84xknlU999q9wGFOrTk2uw7yIBlOjP5HxknnoXh/SLc2PPte5rl4t+pw360f3xzpRfce5PLxGDWNufnWg/Tt3R+p7L+bXek4eVIfG4T3icGE768eTywt5h+ITRWpyfKni20477bRnFI72r33nsMo23At0+xmN58zG5C2W67jfAn/4h3/4lPpB8pyq/WKNvDB87KYau/7mb/6GA5j19Cbuc1AH1y1584n6zks9XI7eM3P61onyzm9sXpzjzXfs/ajX7JVIbl1sruuSz/6j+dFiidarz/wkXurVyY1Qzag/evPWGs/pp/30rne961eXBacUsk4HNP4Xao+e+4IXvOCM8kd7cLQP5+am537mAk0YZxMnyQXo89VCHzTeefXVVz/nnve8548V9+Ea/PyF0ZcLwy6oj0o/V98jP7b8/OFRH/SG6FOXPnnmxdL3OuD1vSY4LHljuUmw1MiJqc055UVy+qI9yOmLncv6zNHLONE5rBPh05LXF9Hhsybus9bz8mjQku+a5PDzOtUmpl/yVT/7+5ztQ4zvH0u4/+CmbxHJ1++83l2HiAP2QeIazlPujuNrPPjaa6991cknn/zi8rkex+4t+PRCDzrK3TeHi4Z04fiaHNiHFwiPvyGubw+fWNxtNTxc5a4e2gnlH/OFL3zhrYXW2QOdPfExYixvjuuRU7NQ7r/eOd4+5kG5RPM5T/rmQdZEzmtTl2uFky93NSc+Zh60T+etV0tekxOTxx/Vyrl+4+whlz2yd16j6wYxc4to/zWMeo9qXA99R2ulP7ld9bvX3y88tsaJNTgMmD1vKP/Wk0466RsLJ/0S6U/sPGJRGzhjMA39ZDTpZrIjOidKdCGrBZ5//vnH1DvTA0vP97lcjF8Vyp38Uwt3P+c5z/mvhdkLrWuSL2p1Q+Aw0BtL7A3DV4OP9VzGmbeuY+p7zpg++qADPi2vjb7WoNFPTdamRq2YOjiHvNegHtzq/NakXk5kHn0RznnxMXPigt2nyznMiaMcfdaO5z//+ewx3o3usWzkIRO/WHv1fhdccAGHkHtPv47r5qAteUxcRI0w2ZsxWQ6/DUzUR3fE5Zdf/rT605SfK/+jNfgZLI0b9bB6677siCOO+I7yuVA4bsI69IaIJV9tklw7/Fw8l/Oayfsgk7MfeSxzc/EkDK19RXqkr76jc6sV0eF3G3Fo5MXk7GFOTI2cSC6fhdrM64Ppp9b7kJy+6D1gf2HEfU92btqLaOvDjrfUr4buX/7f1mAd9sPn4D3o0ksv/c/nnXfeG8vnmvz2EHR0ntjh9YmVWlyvC4YYGQtZN6jP/BSfeeaZFxXPwvIDDhZTP3bt5VPDoz772c/+UWHWu5bkSrK6GfhY3pwFs//D67xxrhUue3lzusZa9a4PvdzSXcX2lVdLnPVeszpwbn57imqtlZ+rV+f81ltnfh1vDuSanItY65y6zI98OXG0rryPc32p4xq9tzuXe+2o4vjRBKPWXnzCvaf+hO/CQte+Dku2nw5uaC5ilOwXuG5Scj64nfVXGg+teFp4YV7M3vqB825wL33pS99ciLkGb1jq+5yLivkLHK05a/C9sfjZn9i14KeO2N7yWWtOHGm8P/ZSK8qDmjVo1HVfDTVqrFcLdp05tWDWcw1qRLXGqc/6fv2Z07eHPZPHH81vjWhNzmct3HTNv/RLv8TP+sR3XyK+NbwRXLvcs94j0XlGWGUrIz80Gq2zbIzORslvWEz9fReHi09nvlDDC0k8ud7Frq4Dxi+f6UPOfuVumMObAI85v7x95VOTHPxoHvs4v5pRn9RmXh4Os5doXlyo9l2LOhDr8YJdvKpRZy5r0jcvWu9aQLgNz3Aphle3pPa7//DOl5o+T+bw7SuqVwc6P5o+el4tvLbifuEXfuFz7LlKnFwje03fVRX3xRonvfWtb+VPqqgbjaJXfPpojRMn0gOWIptPgngZadSKux796Ec/dlnDXy1zMZgXxXwn3nTTTXwv7NzkMfunnxw8fZwrdfhazglnD3GOs77nna9j6rOm833zug77qZc3tqe6OUx91uiP7nP28n6h13ct6uwlJm8NOW1Unznr1dlDhE/fWtDa5NDaK/P6O2vPXVIaPknk8wJ7gwwO2I7HPOYxTyhY1Qx8ZObxu5HTJr/ffJOgYhtuCe92t7s9rGpvr3FjDS/AC7o7fetvxN5RqLkBiZ3TnEi9OXsaz63La0td9sPPvsRqu5+x1+K8o/Wbo07L3nJganPN6jtmLb7zZx9467xGY3KYcc6pn/lJHC9ev5TziuSdUw3ofMnJm8v587rQGeP7zoOPUe+cfX3k9/7DP/zDO5e66UeUpV4tf5t424knnvjQpcZrGWFJpvl6Dn4/ywvaL1kETbDEbLzIxoT1vey5RfZ3L3TcFD6xue2iiy7688I0LxSO/sRyoFy5q7WYh0vfOOt6/dproEHZqCc8tSOT73OhzRx+DnupyWcil5i18n2O7KleTY/VipvN70bPPnmvzDvfCJ0rkX4+M3h7ymWcdWp7vZqpvv6TqT8rgt/Lsgex7Mfe/HJ90nhOode1Dku2eqb4s5Y3M0U01/RFeXDDIi688EI+peG35h4wLsJR7o671cfzn7jqqqv4wdILhLd3auFTQ4xxM7BRbsQt1Pte1YhmiJPz2sjru05QrTl0mpx6eTF5tebEEW+diFYd65GXM7anCD+3fvvM1VonOpe94c3Jdcz5zVkzqu+c9dbQw3e11K7y7Dn2Xul8B0s99dfVOHm5h4m9LjBNHi5z6a/0cwfMYosS8YfjxS9+8WMrR08W64WK1BxX3wv/c2HWmwc1eqDBRH1z9pAX5a0zJo8Zi50zBnNNxJh9XUdq7KmGXOfMZa/U4NNbyxyc9fJyxuKo3lpyuf6sSU3vbZyY1y+fPbK3eVGdGtG1dZ33E16N81sroknbu9x7xxWJBqPWwZvCrhe+8IVfX2i+3Mnsmby+ObUbMB+kCQuNRRvN4Y76XcKjlmIPGKEXwLvbzk9/+tN/t+TIjQy9X12Yi1izF9hzqdFHg6nPWH4SDF7Qju5Procye2aLPp+51KZvPpG8mo7oOmdsD+LOmUtU45pHOTm1xPpgjtTC0zfvmb459YmpgTfWJ3bApbF3GGlTfe29vy+SedmL1ovs2R33v//9H1mQ1zPnI++GdoPlBrLRBkEFc/x+uvrPT76qSP5Knr+QZ+FeKL9g5hOcHfVR6P8AZ6zPtapvenT073pkcBqakamxfqSDcw569Br7jnjvq/3n6ns+e4362yf7qzOXPeVEc84jnzjn9xrvDXy/f2rV9J7EGLrN6ifhUoefPc2xT+Bdhz2N0e38gz/4g/fh1F48qcbk8lJGwJ695fjjj38wxBbMtYNp8hNnUlLkAebgo83Nxq76Hvcv6hfJ1H2gBr0WV7GX3y/vfFDF9yjkKwQ8P4dxY8T0/Rmt49SvajB81wtqzG8OrmtSa07dgaK9ep+5+ZMfzZUcvuY8Wd99tHLcS2qI05I3J6LTT9Qnv9V6dWCaMT2zr/4I5eyT95o9Seze1Af9V6XIrfZyHSy+wPOx/EdqpFFzfuWPqL9N5NtE9t5WBteUg/WuBhNvZky8FeMQ8TE872BOkHUn1gH8dBJrfOecQ0rJmbcVMXObE8nDa/IgJi6i/evN9zr1oP03mz97jHx6JZ/PCB4zv4j2xT2vLvms73n7ieSZf109WvP4Xr+8Oe9P8uZE60HNHPW9B5rMEzu/enHKLfcg303ZK/HG2sP8Kd9Wzbln9fnwRiIbgProjFf4rGc965Ti+a9HOWCYp5q3L74SnFD/otTHSZSRS9twE5YJOHTegJxfruOopxrXikYuEb/PAeegDrNGrUjOOZKDx+DyfqsBs6c8NWnwDvTqRLTmQXvC66s1FtFg5kXyjsxbBzqX3Kh2lKOfPKi/WX1q9cVeyxza1H+5B/ln29C6D8nh8/uwIy+++OLTC8n3UdRk8gT4s5ZfnRStK8jG6if8ru/6Ln7+wvwF8yKqG1d2TAW7brzxxk8uSfp4U6D6nNPNCN5YpCat15vr6x3Vq+k9ks/71HU5l77zqBXl1YnmE/Ed/WDKp55exvqpM9c5eWq6mRNdf/agpsed6/V9HmN0ozmsVyeqTdS3hlhuxw033PCpirmf/PEvlnkO2I4nPOEJ/DgzMnrady6f/PTzUhL62WizhlP+fve73wOWxSzSRYscsB31H79ducwRpqkDsUR9vsIwlzE61yYHyonoNLlEa7vGGFSTdfDG+BqcwzpRfUdq4dBlTl/egyYPpl/hZMk7Nwl4Y3sa9z49th7ErEs/uUnUXkbrVzKaz96jvnB5PWoT8TfYF7/4xSuWxDH1hR+XFwdvDnwafj+wjP6MOTM3q/OC5xrI26DjKn/3u9/9/svAd7Bp0cuL4D9m21H/ndjHC+gxXdkS9eExYzHnlENnn8zLkceIMXERLV7ntH2OuXp4tfRyDjnr4LnPatQlZp46zZp8TnLWox1xc7xaerJWY5E6DQ6by3mt5lNvnUhOvZyx9fBY9sHP658Ey5es10/Ez3jHxz72sSuWtcfUjy7+CKJm+vGm/tzvnNK4BuT4jozxu2XdfgvfkKzKHvdmq/jYY489swL+FIWh8fPXnhr8bLbjLW95y2UmGnojvNBMm4NjPW5GeOJeA+e6e65SG3Lq4LVe7/yiOnCzejTWiXCa9eQ05weTz/zIT84ecok5Z/q5vhHvWjKnT/+sdz45Ed4aOH341BBjcJiInzX6+bMUnDz6DVb/jPvHIGpP9ncwerB3b69/UpC9PGe9d4831OVi8N28IMOPP9OX24C7d+9+U328ycLeW0PbyTtYXcyDCs+s/MMrwYU4+PADnz8OlhPJcWOJvfmiF5XrL9l0Y80Rs24suaxJX53azK3zpwmWc1i7Wa+sST/r7ZGoFuReoAcxUb/H8iBmHnR0vsfWjHhz9gL7+rqGPhjPWLM+Y3x5nql92YP4DPcjPhrG8KP6+iTxryvHz2Ifrb1p3wqnPo+q/FX1X9s/pWL24LrBus27b+nnnl1twOKm5uDIWHQ3L2zK8RWhBEyWxrsXk5HjH79hcsyLEuf6q19U7XuF7zWjuNerGfHkcuybbeFZA6ZP1r4L5f4x/FwNtX4hQOca5LL3yFcv0gPL2DpxtBZzHRfdFq/mNqtH5/qpRD+qMWdfYnxja1JnLzTmR3rz6tWCX2a/1mC/Jo9/e/HTjzTl08NR7gZzzg3kMljl8iZ04UrUiuYm5NtA3olYJIODxUeIvIvxlYR/YXXO0Pf50I7m6hy13dAkn771IEbOfPpTsl7UzcVZYx+14FbrU4dPL/7r8J3vfe97v/P6669/TX2X8Jc13oMPR44Jyibtwp1e5QnSD8nKzfVDeg1irydOrtfbOOutAdftud7LeeDx7ekcoFzWzmmtu4U9yd4sYvVus/Q5dNOPNIqXiJYxsjl+eLGz4uo8l4P3HSwXPF10fUXYVRfDn6Jg3pBFtHilHl70ZiWq7/WuqdfLgw56jOpT6zxy1hjfkXp6WG9/kQ1nTiS383u+53vuWf++5K8+6lGP+qn6b5UeUt9iH8/AhyNXvx45bVk/Whd9tA29izSend/CQu8tFH7ORR97gebkitqvHk5LXfrk7aVWLvm5ObNX6vmifyt7cvkO1nvyJsEBy3o0Gvy6XOpWB6wX9NiiWazF8nsFv0XkglajLojvj30HG/X2BoCZ1wfVyBW1wdRkXg7hunpz6KyRA+XMgxg8A+u4YBevo5y1zrNBU+9OO375l3/5hfXp7Ndlo/TJvfzlL38B2jL72Sel+H0eOLTw5uRAzF7qFuz+r9aD1nTOeP/qBWNdzrWO631Sm1/k0Zmbajhg7MkazsXaHLuXe3nSHsDLhjmsW/d2jWZYZHFDnnJ+izgtuBbLz2H8neK6dzBaeYGt7X4hOkxcRPvH8oneULis9zq3sgY06rN39pNX13O5jq6ZtH/xF3/xnesOlxOgQbuM181jiRqR+fsa1CaqgcO3Xk2PU69GHOWsF9WCcNTkvF1nPP1oQtHAJk0drFvYk+zNwSHjTYIfabZqo2tZ1W52wFbCLTgsigOGcSHTqAsg5quFB4w4DYE3T95FT8WSSzQn3TWjXtY4F7Vdl9xIb77fsz4/Os1c9jMnqjGe1vWQhzzkyRKb4VKb15PzJU8rc7bN+c2J5oi7D6cu/d5XjXzG+lmffp+TOGvoqSb7q+m5SbPci9M7WB2y/l3X7spP3xLY8M5g3yx3phcHjMWu3p5robX+6VNELmb6M5TBBNwMbkTeDH1vVJapHeXQ9byxPeytVl5UT3/XRs75Mp+9sl4/a3oPYuuda6Wv/2ziATbZDJdaeym3p+uVV0de35wov1qPiWVN53OOdbW0GWnlxXU9zKEdWfZ3nRt0y714xPJwqRf5FJEfae4SuysPWF/Q9BE9h6xGz41iboY3RFTXG2R+5MNZYz5Rf13/Xq8WtD+YvXpsj6y1XrRXarJn8pv5WcfcDDkxe8Ax+jrVJi9HffrEGJyD2Fq1Irn01WZtz2dN6pLH10b15hJd4+pNIZN3hX9XHjC+PaQfi/b7YA4Z72r84Dj9PWL568wL7uhNlaeHvogGPzF1+Bo66+B8IL2+67Ime9ljlFcHjvLJ6e+tP4y+LAvX+Uut1z03jy3yWtWOOPUd0c5tSNdPTe8Jl/nU4GPkqVMnkkuDNyc637r6Sbvci7fzxT/60J/r4t3LH3Xg7pTdlQeMPzNhcV7whFxEGW+76w6YN6dfTPL2TU59ctykjPWtpwbOQazBobMmNVmvfoQjnf1G+s5N9R/84Aff0hNz8VJL3Whuy9bl1Kxbp/1B74t6kT59HnOdd05QDf5m/bueOG1Ub36aZ7kX+cKPNgc69jB7+S6xzQ4Yk2/V8oC5aL/S7a7f3/jLu7yZ9lbvetQ4vwivVk1y9JNXl7WZQ2tOhNO2Wt979ph+9u85+M5N8WMf+9g31f+36v0uZg7RoF3m7SVmGRwj15Lzd23GWQNvnKjv3MQ5qMscsTXq4LTk1GW9vjjS2EuctB6wQvcntfoHesCc1zk2oBu6i3q8oWgU1DsVB4wPOqh1IK3UXr5aeMDgunHheaOcX06kLrWjPjm3enX2NRazvxzY5xrV9/nUZE99c9k7OfipX/0fQXb84A/+4MXrDhk5NGitC4TTcn59cvjD+S1cojVd22Qb+lGTY6TtnLHzOK8or24OnXeYr4N1NHuyBnlesi8HbO4Tb/Rzlj1WGg/YiihnKFzy63L8Ipl+aNT51/R8i+gBM1eylcFxU0QSxvjJW99RPZiGzqHGvNrei3hdjvrU2G/UB86vjtaBcFqvm/jXvva1V9f/Q/j//Ku/+qv/t/6H8R+s3yXeyMCHq9z/habE1lPnuvHhR/PLo8GsB7PenHlzHdHBbVaPTvP6qbG/OVFezDnkQNfT64w3IHuxhj9nUe9gTf5Kyf4bapfazhlnzeSv+4Vaim0Awu+Xq68G/PkJ/+acOZBPELl4PuQgh/WbIbehrsipviFazZvdv0hYh865ROewh1ryaqzLnPpE9F1jj8zZL2vlej283IS8Oz3ykY/k5zF/Jss8esz58N24yWc+eXpljC8n9jyxpib7y4nkMGIHMbxrTY05tPYV7akm0X2QGvIj4x2Mf3+D76ww58fngPlXR8Rarr3P0WNrVn8qBTErmsk5oXX8nqsf2OlTxLoQ/iNM/qERLwTMkb3UlGS/NVljjtj54bCuWbD7Xu1vXc4tZx8wuTlejZg6/DTXrBZ0pA5fPjH5kd+vP2vxe43xIrPxGcl1tE+/lyMdh8g1kM8affjUEGPOk7l+kMypzevXF+mJfyJ7cvnFnzrXCLKH/Z1t712plTnfighnlXOxkdvPXYn3ywRRX2n5VoX/bRF6FsqY/pq+gAN29Pd93/fxD+Nwgd28Abke+nTtaC1qMoc/V5861tHrrZ3WjyDMXFCTm7w+9fhp5pzTnPxmsf1GmFzO7Vyiuj6XPMiYu/5eR2xNzzFnDvOJ5J27r9G498hYDT3ls3/6O9mDdbj4Sw3/y3vyeb3H1V7+Qhat8V33rCQ39EjUG/R4VVOL+mQFLHx6F+OrQw3yBXu5mB1PecpT7g8OrN8kJH1tOTd+1qAfxVmTmuTTTw395nLyICPn1hfVpA4fE1ObvLXrOHukFj2WnDr5ROeH0+CsF8nZxxpiffKa9cQHUk+d/ZzLHqKH37x7xRidPfBX9vSnP33ag8s9yd70TQANe/fo2sufWBVs7uScqDfELsw2G5KSyyJzoEPJ3vrHRD6+DKZ3sfoq4VdRtPzf3HfU/wP3HLDMi8+bCe8c8OmT6+Yacp6s0acufed0Dfbtcdakbz11vQZOrZgaOXQYMSM3DDE1qU2/UpPJgXP+UroWej3inD/Xb26uoevoNVk3ytnPtYjJ61OfPdR2Hn1yU839ypaN2JNTbexV9u6O5V4mpzlHR/Oz2A+YQhsR50TmxZWu/kGby5ek3ybyTwXw18popgN2yimn3MfCht6IXI+cUnN9PanDd034mjVgP5DqyFlPnTy+lvVw9jXfkbzD3jl/6tGpsW9HarPeGvuM1kyOGgy9PSeiXqyRV5Nr6Tlr4a2HS18NaL2+c3TeOdFlr5wna9CxL9Qm6qNZ2amnnuoevIG9iVXScQLC+h+if2xZIL8M9wPXMqtjcYqs7rE8ONvoTW960z8thSwSXX2iPD1XroEfGncfd9xxZyw1ADfAm5Bz5g1Tjk6NNeZAc/hq5UA586BGPrXwcxy5zea3Hkxzk6+rz3WkTx/rsye+axWT09/s+tG5LpF++h3XzeWcaPSpN16wG1+dS7ROHNXDuS50+qLzqZvi5T/OxJ9J8UkhnIMe0zvY6173OvcyXFpqk9ef5jAo3Ou7QnAbXAt6Y+MVvuxlL+MHQ35B5zvYhtq6oOuPPvroc5bdvQnLcHVziO2J33X5BcH+qcta+JFZJ6ZmxGUeX41onjhH8vqgdanlOjNWo34Uq0eDGYu950I1/w5onah+hPbOHHXYna1fdNn/2Sef+0Lf+VOnD057vf7jVN7B+Pdh+IJlDUjMv/h7y6tf/Wr+7XqvI7HoyeQI8GdtswNG4doG0RkdC5v+LyrU1Z9H+XsGZF+o/4PgmThh3pygJheeQc/UELNm85krej++16sRrZ9D6jV8Y5Fc+sSuLfXwadagndPB57vWnC43Sp+DGq/NemO1WW9OpEaznrjz6snhG6eOnAafuvRTg28v+URy2cs+I5x09a9FnVU1q08JY4+SZ+96uMrd1KhZa3MHjEKHDYzncMftt9/+6RKfXGPaGPUtIhc6PcD6eeya8o//xV/8xbML6UEO6zdjwS5euwbW+fHdHHKgHHnqzRFjxqlNTh9tr3c95DC0mDWJ8FmfOetYa1pq4LOeOPP68Jg9xQW7sUadtaDXlJz3sM+f9ebkQMw++GrkRHKY8ySfPppRDO+6Rbh1trP23lm1D/kOi71IX++/c9yt3sE+s2wiN4dL2Wp96PazPGA26qI5fj9d/QnPh4rkZzD+2ausq3Xvnb5qfNu3fdsjKpfzVrgybtbohvXFo4Eb6bO+1zmRGutHOjjnoA6tHHE3e8mrdS550F5ybjRj0Hp9c/CafuLIR++c5HNNxNagw8zLd7QXqD8VLl+yXl/sus3q1VsP6pPTT17f3KT79m//dvYeH8uzF6drWn5OwP3nv/Y4sfbwPxZuxaj3vqR+Az/a6KMiGlg4h/yzxH+1nIlfKPMt4h4GfhlvvXvOPPPMhyw1HbgZzu0NQpM3qdcQZ80on5zaOc58oj41+K5HPjG/Ino95FNjn87Jd0xd9k8/NdSbs1fPE3dO7Qjh0qwXzdkz5zcnju7fiFPfUS289xjUH+3pqebe9773Q0vHJ9sesGmP0qjsVF4uu+wy9rDXtQ6Rd/P6V/xoMSZtTmyh3BCf//znv6+03NxpsdQtv01Ezyc319UHHQ8qP82bAzfdiEwu/Tk+pbmm5PXJa6nFH/V3XeasF+3V0c3VdcYidfjG+j22v7yxKD+H6lyXccdeP5eH997gU+c9GsVwGDrHRCxfnFeux53vedciP3ede+tTbP6F6WurIZ8NoHcwxz1r7PmJn/iJ9y55OE2dc8Drm1O7AecOmMW9URbbeIXvfOc7+d3C50o0LbbQDzrUfL4+6LjvySfzY9oGy/lMyIneSFAuEb8/aDhH76vWftaDGA/KWjlrjBP1UwPnoCeWMX7Ob15Um5sGzlhUR50mJ3aemBzWNcmpmYRLbd4beGLXQozZU4TLe6OmX39qem3mqNdcI3n2tDry+HvrC/uO+m6Kn8E+T8xYfndV7rR29uxn2cMQZc5t7wW7j1eTvP4K5w6YApvnZPpqQLm99UHHRytmsZjvYFNQF/epco5929ve9uiJWNTh5g1ZpiaAz5zrIZl8j9VZL6LDzK/zsz++10jNOsve6uxFzl7mun40jzVdSw8568RR/9SO8vZT57pHWnLm0+/zW2vvjEd+zm1f5yGnL2YPOOvh1ex8xzvewZ47tt4A+BBDDeg4tf7nfOxd43VYsg09iIe27oAxAeZE6cvth9ddd93flZD/9ov/Fef0DlZfKXhLru8Wp/+F7J4LLrjgWyrGvCE5FzyxaxvlrFOb64DTkrcPuawnHuWyNr86q01MP/vZw6/4mbOnGnLJqSWf9WpEdZvh3BqzLnvKOz9x3jfX5PpFNGlz8yafPrX26mjOvcFczufajNFqex/2sIex5/j5i7+Z5d3MXyFxHXevcXT9B6x/U9jn7HFJNmiMwf3MhdJEs6GxqMb8CPe8//3v/+/LgntZuPw5jJDfnn++/pmxry2k3odU7spyHsi8YemTUwtvTo68Zs5YVJv53GTyInoHPdLvPclZJ3Y9cTe5xKxHnzl9+xiL8iP0Wu0vorUejkEsV+7KrBHViCthc+wJje9ImT17zt7uH3XUmrMP8c4TTjjh4YV8ezj9BcdyT3r9pyN+97vf/Z4C9HMDmTn8NHkQm9ADtqCWpMFSZCF0Fst7kVN84YUXfqC+SnyptPxCD878hJX7VH31OKM+EDmtcpq9iPNmyidaozZjOXpkTfpojPExYkxcRPt0qfdhzmmttZ+1qZfbikZt1lvnXOs0mbMHyPPwPuFjmTf2+dnH658KljXmrCdn764jRuecxvYgdg45ET5zuX/VUK9N3E//9E+fXj+enOG7VyXz5y8096ncdU972tP+gdzMKHqVSx/9rOUCu6gXzk0sv3oQ9XPYX1ezr6hhf3uBvEXvfO5zn3thYZp9RPrlDfXGUqPG+ozxfXhZo08+zdoRnzp8tSNeTk3vt67enOi9zJ7m7J+55PS9B7kOc9YmquuoJu+ffdSONH1+69HiO6y111xvdOasAeljrXOkbueznvWsb1vq2HvmRPboGbfeeit7Vs77bzzCkq+M/NA8AMNkkaPGyfWFTPEVV1zx9qo9sgZ/3Dt9tVh+YlNfKPZeXdxNp59++jcVos8eFa5ulj55/cTRjV0o9732tZrxhog+mLm8PGjPka/OvmrFzMul1ryohjh1+t671KvN+5N9zINZnxr7i1kj5z0zBvXRm7fWHOi8Pls0WtbJieayF/6Ip2aa6173utf/Vj7/BfP0CaJ7cZlnjx5Z/zEIexb9ZqMk+2nghjZ3wJgkzUnh9BO9YXB7nvSkJ/1RId/rnl0DSy3xx+vj+gue+tSn8lcfUw1kmTccTvPmzcXZ23WgtYf1oJy91MmLXQufOevsY07MvPNnj6xLvq/ffh2zv/WJ5LNXzqefaH84fVHOuF+PfNclT06j3h4gOrUjX23W64NZQ5x7aG/99caJtdceUofrE0stn7ahw6g9u8bNF110EXuW2Psm2j+xZPsZ+f1sdMAUdqQ4J9F3IeA0PvrRj95aF/Ghiv05zI/rqeGTnMsKj3rFK17xzEKNHDfTfvD65DDnTMwHMOdbb4+p2fLFGjX2ls8ac6kljza57hvby1iUt0/y5kRy5kVymvnslbq8p8nrz9Xbz3rng9fUGGdPOOKsN28P6+Hl8NWN/KxJXZXt2PvKV77yGYX8l/aXEtdY/XXRMj67zFxizQAAIERJREFUfqT5YP03YLeSU9PQeUdY0g3rI15ZHjAXt0qWIzdq7GLI4W+Ir7nmmncWxx9WTr8Ti49F+bsp/ij4+vpnx76jkI9LrQW9YfianLEon+sk53r11RHjY2rEBbtvfnnQGjWJ5HPd5uAxMf3Oea3wrhXfkbX4mD1GmhHnHIvqfa9qnddrtT9Kc/uq9nno6N37WC9aYX9jUA3Y51KvxliEd9iLmDXtqT+PYo9dv9xz5DH1fNJ93Oc//3nevSb9Es13rPSqlhwmLqLF64rLA5aC9BWDfbgoeeM9r3rVq3639Bye+y3rCqZ6NNil9cnOeWeddRb/0CP18GK5K5OHcJ7uG4Mjyzr7waWp2Yw3r94eXlfnySdnveuwXo0or84682Lq8FOXsb551wuP5TzZW19cqPfpiec2u1rQeTuq6XyP1eU65cTM7f3t3/7t8+oL+7mV/KelYPq97NJHe06N3fUp45sKmc9Bzl6iuUqtzDWuiO6sO2DZ0EZyHV3QCi+++OLP1beJfOzJBWK+NePXF5S9/EHw7V/7tV/rAes9iemH4Ws+TJEcvrE6+xGbU6sGzN4ZZ728WlEeTHM+12/OOhE+fXXymcPPeE7TexhnffZJX604l5PnOvVFar3+5PTNjeboGmO0+BnLcY/hxRX/5Cc/+T8R1P/Xmr/QmPLL33+hZx0PqH34j7/+67/Or5XIO5zLnsYdq2S4LvjJ5g4YjTT9xD6RC9uA9f8QfkM14YMM/x2E6RPFeud6bI371n8a8Jo3v/nNN1bebxO9IJE15LzGOX9y6fsg1ZLDjMnbe0rEi7waYyT6oL68HOvHsl6tSF7fOjCvXc1IZ806Tc/12LnslYg210+MqSHndcJp5o1B86BzJp9+1o/mR4ulTt/+07rq7w/vX7ov1167fqqomvgEkT15wmc+85nfKUQ/Gtm3+7SE09KXW/2eSmIoqmRvbuyiejzxT3ziE19btV+u8e+ixzfUBT/opptu+p2TTjrpZ4PPHvj0ADF8zJgbnybfOXmRPL4PTj1cDnhjNb1GXm3GcvTQF+c4+UXFxvkzp5+o7xyifEfzORd+3ldqrEsdXL8XXYd+xNkn54Hz+ZoHqc8ezimf6F6B0999/fXX85cZJ9V++/fRz55fVdwN3/qt3/r/LWuomxs5l/VilW2wDfzcO5gV2RjOYtAL0e+L233JJZfcUr/Ae0dpz67BL56/scZX3nzzza+vP5f6v8unxncv+xQ18WByxnKg3NJdrS9jdWrzQcmB+dCtSex+xtRjyeE7puRM3hyY9cb2EOG992pADB4T8a3rSA6D17IvnLmslTdnrXxHa73v5JnHuciTMy8WNVw7POb81oP2nPDBD37wS+sTwvfUAXt4jYfFuxcfvp1Te/OP6n/9xK+TXI9Irxz2hcM6LtjB67oDZhPLcsL0nTzRhe554xvf+HPVgG8Dn1zjQXVRr6v/LsfDpY5+HDSx3NXNwoe3P3G3/lDM++CIc83mE80nl755eqbJw6WfGnzWPzJqtKxPnry55PXNqct+3c/1W5919hJ7vbGYPbKPebFffz6brFOX+dGaXR96hjE4cVddddXuc84555n1M9hfcsiKf1gN7ME19tZ/mvKyQuvFVT2aTUalVxr8/SwXbjI5L3IOOaDm0pebsP4PIPeuXz4/rT4O/VD946N/XjUsHEvER8+FYsTpT+SStw6OGsw59e03yqtJTN+aziVPDuO6XU+uYUrWS9bouzY0c5w97aNWnjr7dM4aeWNRvteTz1zXZz59anovudSxZp8pPL7X4bzw1iaHLt8QiHNQZ16c8ve973131u+53lC/cP760lxR48z6cOPv6h3tovJzLtZDvBlmjX6VTUa8MhYwMvlE/NHgYka8HP3xNfwNi1jG3mxQc/EjvZreG340t7qO6kXmsl7tKAeHdc2CnedH+eScX+5Asd8r65N3js6NtHDqErlunxl85qjB5PSNRfmOmSen5b1m36GD80CJcI5yd+ysd7Kd9QcQL6t/tu1xdbiufMMb3vC9z3zmM68kWUYfhgcr/eSSt8b6RPzJcsFyYPIuVC7jrfi9X86DnwvNmN6Zw8dAcyCWaC4fgJrUyYFY5pjDhzUll3l7pzbz+Obkk5ur95p6jdcsb/1cLG+/Xk++cxlblwen16hXC8qpHeXUiGgxYrk5VMf1O+C6D+dzI4d1dA5y+qBjswOlTux9iFfG76BG5qLIdT/jUa0cC8ASXRQXgXkx9jRPLuuI09Az0OiTt89m2LXq4THjRNeTeX11xCMd+REvZ32P6dcNTer11dnDOLHnPEjrNDlf6pjX55h8nyNz3Xf+vAbrRWoybw84NebBXJN5EB7c6thMX60mcw7jDTh3wBDlojPuPrGWk+kn4jusAfNi5NW5DvuQz5z5RH17JWZOP3vDyWedmsyln1p7WENOv9cQmwOtzRp8LfVyc2hf8/aX773kU7/Op16j1np5ubl55K0DrRXt4Tx+Z5Jacl1HjHngjNXdEVx0XLzaT67HE+9FKErMnH7iVnz6qcve+Cwocy4QDt9857OmZFMPteZGKGdNIj7WNcbiSDMVLl9Sl9oR75qzvvu9Lmu632uN53TyIANjvowncsnhqxv563LosZGmz2cMup6peFkP1+8L+eStHenQaugw50xfTsxc943BDbaVdzAKcqHpb2i2DHLRUC6wI326dtlixVuv1rmtUy8vwqeffbqfOnxjEb2WnL440sCZZ834c2s3T82dNXv1uegLZ97YNRKnZb2+iC79rNPPPO8kXr886Nxy1natPDjSymcu373g141en9pRDm5T8+LmhJkf+XJzSF9zfY68Eerg1Js3VtP7yI90cJ3P2F6py7y868pc1roGdZmjZu5aRvyo15xOPmucOzF18MSuK/25mlG9fTK3mW9e7D0673rgGaP7r6bnNtNb55yJ6aMjHnG9h/EK172DIeqLzlhfXDUtx8XA5eJGMfVq9NF1M2dv5xXR64vZI793n9NaBzKcK/VyqSWPWdPrqXF+daC8vvXEaeicL/mRn+vTt97YuuTTzzx+5rKHfNe4VvOiOhDLXsT9+s2LaDS1ORc5tWD61olz+RG/ro/9hujihskiR/nk5nz6ZW6uf/Kp54Iy7r755N3AciBDLXPJ6YtqrIXHjLPPiEvtVLh8USuXsT3nauVdGzji7CMuZRP0mszhmxfNZ4zfe5vvmPW9bt23iL3PKLYfc+irc96+TvnN0D4iev2OmbOvGuMVbvYOhpBFd+vcZnGv77EL7OgNk3cekT76aPAZ6sudTE1i16gVR72sR5PzWZOYWn3QOjFr0rcmufR7PfHIOm8sOo8xPfDl7SnnzzVd1+uzDt9+qUuN/cHUpK8elKevPtgH2nVmLZoD9XvNfvPc0QNmI2+aMTjiMj/yRzXJ4Xvx8iL99EEHPDaK5SfBUtM5c513ruThWJ85YzUZw3WzrvPGWT/y5+rznunbU8x1yzlH5qyfm8vaRGvg0h9pnHOU6/W5Btdof3PGYvZNv+czTr+vIXvM+ls5YBS76LlGdySfi8fPeK6fvOjaMrYPHMNYLZiWtfJyYueJey7nUb8Oqaem97FG3r5qjXu9vPWivCgPds4YpL9zoNXUjGJz1qNJrteYm9Pl/K4ntfaTU5994dZZatXdGc4eE271gCHebKE23qpOvTi6KHuJaPF7bA9+DsscPDG9sy41c3nX0/Pw/ee9oiazb9b0XNabE603nkP7k9f3Gq1x/caiusynry6x512nvJg1+PJicqnNvLycc1krb5x6coysMb8ZZt/UzvGpmfUP5IDR5I4sfHbymYRziMp6DC8nenNFa9V23jrzIjoPERyWWmI0Wubw+zzq5K1dp7UGtL/1cN2H6+Y88PTwgwbizBFj9kxcZBav1oAjzRxnj6zvHHHPz8Ujrf28p8Z3BJ13Xe1WNDsO9IDlhD705O4qn97ZP302viYvwnPhxHIiOa1zHqbOo+9cxvjO1zF1zjvql1w+tLn67NX9rdTP9bVWTJ0cKC+6htTAzeV7zp693r5zqN48sUMO7OvIHH7v0/OjeMs1d+aAjSbe7GJGNSMu++iD+tToi3McPGa9N4cYX0SDZb8Fs+81c/q93h7OY7X6jJ0fLn01idbb13nFUb3a7IOffNanLjXJW0+d74hoGXCa9WLyctaAcnO6zve5er36uxIPeI67+oDd2YvxYdPHG9jRXPJcOLGcmkR8DE3eqM1qMm+9mH1GXK9VA44s16Y/6tFrXYc15Ed13qe5enh7rdP0nHHOn5x+7z3Sdw21XkvmRrXOc1dhzneHeh5sBywvwps64ry56zRZp9/rsl4/MW+wvL069nyP0cP1nsaplxvNkTn7wY3qU2svtYnpqwOzXk2+a6lVJ67j1djPOOczJ7cVjVrnHuHoHo10dxl3MB8wLtIbIuaFw3nj8VPT/c3y9O01cFjyGcPnRui61OKnqbXeGI3XhN/ngEtTO1efWnz18s5PbA+5rrUmcZ1mlINj5FzZb85Xn3m4/KU3uZEua/7F/YP1gM3dKPmOeeO2klOv1hiEk++bxFzfKL0+4/Ttm1z6ufnkR2uYm7/X91p7gpnTF9URy4mZ6z4arlEt2Dnzauixzjcnpj7vZ+bRHBR2sB4wb443UITHZ3BDk69wFY/yqdUXqcWM82HJLRQbX82pN0bl+sSsRJe89alJXz1c1iWf+q4zl/NkH/PWiV6PaL3ziqlHow4e6/ULdh9vLPZ6eHukRm6kV/evigf7AePmcBMZ3ERvaLkrTh/E1Iibcevy/cH1nuZHfHLMgcFZMxHxMtKnFt/69Ed10XY/N3tm0p7J4asXk+vaHo9qRtxcT7QMr1tdctmP/EFlh8oB86a5mRK9wXJo5/xRLuvT73P2WmNr1IvyrAV/tCY11ozQenPZR26EOefcPJ03dk5Qf24Oa0R1GeMz7KcG7Dpz8s5vbL7XJn/Q+IfKAfPhcOO44VjH5NL3AfnLZHLYXL0P0vxCvU/fY/tnz+67fnvbo6O9nFt91suNtJ2zf9bLgfLp9/6jXNa5VnSY9emrB3ve+tRQi6kV57hJfDC+HAoHjPuWG8cH0u+nvFrrRmitNXMae4F9bFbjHOrcQPLZu+fU3Bm0Z+JcPzXkXdecNnnq0ozFzOnTv1vq+/yZ0wdHfXrff/X4UDlg3ihvqg8BlFMjbpZLXfrZb64HvA879fTJGnOJbg7RuUdInfOQNxaTw9+K2c/5XVuvTT59dMaiPXsPYnOiGn+fZtzz8qJ5Uf6gxvy7voN6ocvFeXNF6PR94F4LD9E8mL4auF5HLrn0uWfEoPePeDSK3tBnFI/WhA7L3/OsW/9CvfFVfe+f67QCDuuY3CRYauyZnLVyYOq6rz6vsdf2GmLrUnvQ+ofaO1jeSG+0mDl9cvmQurbHHJh8iB4m+qH1QBmL9lFv3BG9Ri7ngpfTzxgubS4nDzKw9BfMPi415qzpsdpcd3Lovd8d7QlvfR4u9dmj+8SHlB15SK1232J5qD6kfexGLx8YmV7jxsgqavIQWQfC55zWJzpnctRi9mVT9bx94Rn2KXelxe9mn6zvGueVR+u1yIGjueWpcU0gX5jzOsz1tVOPmQcZqcPf7KD1mio5NOxQfgfrd5gHhYmLaOOrDzo3GHqGG9H6RDWJdM5YvX3y3qrLmpEvJ9rTGOxmb7WgGzK5kc61imqYA84+xqDmvTQGU2/c88Zz9dZ5HeoPSTxU38G82T4EEMuHJieaM0avD7o5RDdYbj5qjPGznhiznpx9p8TyxRrXAzoXEuuX8tUc8llvfzlr6NdzvV6ttSK8tdmHekydaF9yatRljN+1zoNes0YcadQe9OhNOugXumaB+QDcqHld+qA+7dBiIrn01cJZK1JnXkwO3w2ir67z5kE0mYdL2yyPts9jLHaNPPPqoyH220B883DGIAanNrHr0Mrha3LMb09RzSGJh/o7GDc9H4QPCj43S+rgzflA5ajPHH4/dMTo+BbQue1jrlKrutSw+dC4Cc2J1NnLdcBp6Jyj6zKHnrw9xK6hl0bOnnDWW8Oa1ZDX5NTDw2k5t9dNDp44jbqszdwh6Xvxh+TiZxbNNfGQcvMoletIjYMcviifHP3k9ROdv28gNG4yNPRIjRw6jHgrRh8s6+F6PInqpefkRedlbfqgA505uPTVyKOV009c55M7pG07vIP1B8DDxEA3HrG+m4sDpAaO4cHLWD8xdVU21ZJPUy/nulIHlx+GELsm0HnokTwxfeAw5yJW5zziJFy+yHWth9181vD/0Ib3MOHn/GqTUyOicU5967YlbscDxoPigWI+7EW0ePVhk2MDqyUrl7wcOoY5Y+rskRx8zo9PXm6E2Sfz1pm3dx5ANeTwja2hn3pzaNO8NjgOErHrsA+cB1FfDagOP3n9oie+x/DbzrbrAePh+aB9aG4qcmwMbKSB9+GjQ8OY87OH2qyv0snkQHRsUpDYYS83t/nkS77a+PLW+27oHHmdctY7PzG5NOeHwydPb3yMviPf9aJ3PntbI0+fbW/b9YCNHhwPlocM+pBzI7E5GGgS5ZMryaQTyWGi/Rfs4lXOjdkPg3zORyV1GJg1rBPLOYm9RnmR+szZixrM9SVmDd8iWp/fLlJLLziMGg3fIcd6usbctsPD5YDlJvMBd86Hy8N388LhM3aecsopO0888cSjPvGJT3gw6WGfjpUamjo3mcgmxbenvk3UkR/lXLP9qdvMt6dzeF3wc8P51YKux35qnD97OddhgT6Uw+Ji4yJ98FD4xiN/yt3jHvc44rOf/ex/u+KKK/725ptv/oV3vvOdX72s4x5yOEC+YIFy8ObkO6YmtelnP/3so1YcaVKvj94Bl+tXs+t3f/d3z7vyyiv/4/K68hAVtd/9g9PUGh926Mbajhee16YP9sFGgmOjdZw2Wb1zTYfryCOPfPzevXs/vnPnzvuU9sg9e/Zcce21177tpS996e+88IUv/HxxGD1G1jebsUjNnD/q17mcd+Qn12uJnRvc84IXvOD0Zz/72U87+eSTL9y1a9e5CG688cbfOOGEE36qXL4dRAfyDua7GGguObTZX7/oFY+/7Wyzm34oX3Bemz7YhwfMr9getOmr+T3vec+dn/70p1+zPFx/VAfsj+tgnXjEEUd8dR20h1e/s2vsvv322y+pbx1//8UvfvGfvupVr/pSzFPuhk3k5uqITjNnvBX0GrtWXjTPHMnt/e7v/u4TX/SiFz353ve+N4fq/Mrvquv9VOElNe7F9da793877rjjLq64HyYPloeO/gwPmtckX6mVmVsR28XJG7xdrsnryGvTB3Pk4YIn5oBNh+2000474qqrrvqt5eH6w9ps76jcjt27d9tvR2260+uwPbzwYZU6uUadvz2fuOGGGy659NJL3/PjP/7j733Xu951I3XN3FQi6Tm/lQ7D1ZqWWWOR3lyXtvexj33sCfXu+3XnnXfeI+pny6+pazi3Bl9Yrq5rvaSu828Kr6agrnFv5f5jja9bHrL/p2gPmcgcHrQ8WPgYecdELF/gtqV587fjxeW14Rvrg3nA9KcDdq973euIT33qU6+tjfXNtck4XH88ukkettJxsu5XeF5twvNKe04NNuvtxV923XXX/c+PfOQj73/Tm9700Ze85CWfKR7LjYXvGtmQ+uiwzOuL5j1AyU/F9bLz6U9/+t2e//znP/zcc899RH2r99X1LnX/4rnePXV9nyz858K/L/xEXBe9tJ1V88wKHlGH7NX1Tvafy/dA+c7lwRKp74N+2Td9ctvG+kPcNhdWF5LXhm+sD3qowNU488wzd9WHGb9dh+Vbiudgva0OifUVTr322xRuSgRVe2Rt1vvXhvTAnV00c2A3Vb9P33bbbZ/48pe//Imrr776sksuueSff/Znf/bSj370o7ctJNPrfnNELt3V2h7xiEcc+2M/9mMPuOCCCx5w6qmn3q8O0tn1DnyfGveugrsti26vtV1Z/qUc/vqC8LHyb3H9tfZ183LI+MDjEbfccst/OfbYY59fPofJQW36xH0U9W8HjJtwKNtq09VF4Bvrg/2AwR3x4Q9/+OFf+ZVf+ary71vj+hr/vcZ7alznQatNtle/eIxaNpIINxkbtzbtsbWp71t1pxd5rxqn18bG59tKajDqb61xc2lvLryp8Kaqv7Hmwr+hOL4tPa76HL/E4wqPZVSKcRySGtq1Vce3edMo/xPV6+NVf2s7UK5btF7kYFXpHvCMIp9T46T6IvHrRx999E+Un4cq/X64iDGx+1Nyu7zkg9gu1+R15LXpgznygMGv3sXKP+Lyyy//trPOOuvZdTi+tmI2zQdr/FVtsg/XJuNbP/RsFPvnpoHbL1ebmhre4fbg18E4qsLTqx8H7p7lH1+Dg3LMcnB4Vn5x2C2OOjC3VH6K8Yvni8DVxV0NFje9IzIfhcxZPutybSJpfG3D+mt9rJP78Kga59S4rXr9j3r3/Y2v+IqveEvFHiqQPiJ+H0VtmCvnJbdtzI2xbS4oLiSvTR/sIw9ZHrCV/yd/8ifnP+Yxj/n++kr9rVV/9xq8q72/xl/XJv5Ubb5p8y4PXNGT9U2zszYk72STthSsA404bf6psl7ULWv2cjCWub0cEGI0IrnQrOqXNcDa+esaeEd2jh1eU9Xdr8aja/z7GsfUgb2yPq5/46tf/er/+rznPe+zxXE9fXBdcKB+uasYLq3HmTukfR7udrW8Nn1wNDxM5PTF6UMP+Ac+8IFH1y+YL6qf0Z5Rm5uP6PkQ4ws1+GDg72uDXlYbkx/2+cBjtVmJl8ZGci1yojk320inZvokk4NmcaE5ubX1UcdhomY6YOWTOrfGBTUeUuO0GjfXryH+rD6k+c2HPOQhf1lxHqjRhxv9cE39qw5Lf8EsOP1thaOHsF0uMK9NH5wbHigQjfHqgAW3qz6Nu2d9Bb+ofk/2LfUBwtdU7uga/Iz0T8vxz4X5aeHOOnT0ZYOBaZ1bF/ccfTq3Lt67PER8EeDnKbT8LPjAGg+q8e9q8HPcjfWO+Pdf+MIX3vXc5z73d8quKy4P1jqfnnnIiBlY+sZTYju+9Ae9na4xr00/EZ/hgdL3YPVYfj984hOfeOIrXvGKb6mfRR53zDHHfHX15Ks+dm2NS2tcUYMPFz5ZG5pD6OZmE3rwoA/I/v92zZ+3jiqI4kaKG0MTpUCisEXSgYRER0PpypU/hBt/Bxdu/CVc+oNEokqBRGVRIAGFU2AJhcgIpEDBnPfeLz6MZ++760eQvJuR9p0zZ+bevf/Ga69f9BVdlk/KxVNJBUSHKiT5gSoefRNF17O49LTS20W9qv8hfv17cXl5+fzw8PBF/A9Qf79RLK2C8hj5FFLG6PJtsWUuf1L2dgMmNavlZPLc5KPBHSk0xzvFFH1UcfpZxM7Pz58eHBx8HU+3r+Lp9nm8cKDgNDJ9peoqLr3Vu17513H4f4vD779e6kmjw/kvWxXJQm/wR9FWbyd1X7040aXX9CqqJ3Fh12/evPn26urqm7Ozs+fxd5V+IPDkcfQCcq5xVD5FRR+6HxpcKFvMZUmn98mBm97MbouJuTFXikE6nKKRDxdmXmneJnP5W0dHR4+Pj4+/3Nvb+yK+MfHZ9vb2bsh6Va+3g5gOmr7xoRcov6/wz8C/7Vq8EQxfb/T0qyv4YfCP7NKbSI0V+yueTr/E31E/xv/dvo+vdF1eXFx8F9/i+DUSOPhCCsJ5VUBDmrfzfsVlGV1bJEztY3EApjYpm4/PD+4oni8vKsXWFVXOz/3ha1jisg/ijeTWycnJJ/v7+093d3c/3dnZ+Ti0J1F8j/X0iaeeLr2uVxHperTCgC0VGoWn4vkjrtfxN9PreKq9in8Av7q5uXkZT6af42taP52enr6MJ5Xa+QHPBeA+hebYw72PivsYxGXKm6yx4VOdYJ4fvjBzNApGPrwX6aNCrTE6XCiT7pZ9j7V4Pqz4FbomTgGJu4/ei7R31Jjly8Cld9dHnwTqp+JcTRvtB5mNB7UuOlQqLiG5jspVnL4Ua10RvtOPa5nLd+PePkaPi3us4tK4yMcXUkho+BmrXNqA6l8mf5Y21wLThuuw+sYPHV6KywtN7Xiq0VersOibHB02tBZXTOa5S2X56eNHdy1zfGHmaCAFVfmtGOMQcg+0dT55k8G5FZg2mMOaed5U4iokGYVGkXgczVFthnxiQpnyMOdowqzr/pW5Dq/QNfHWlQuKXNcZCzGhDFx6M/uceoFpc6uD6Ro5fhDQdBxyYamtX+S6Rv+uqS/XK1+ajLyl1//pc1Ar/ApdE9/04n70K99tSPecyfH7buRDWoihOaK3UDGP42fUemQttyOnQtcyl99rfogrjibMvPLJc9RY3Iejt1AxTO0mb1N/gmkDtZEcdt9Q9HUbTZ735cUkfcj3GLxC18Rl1ZiXkfozz8N9eIWuiVf+Ok0j8rb4juKzs7Gb+JAXaGiurldcGrrjWK618zbuZ1750lpGEZDjPryFHss8+7qHa5XvmrgbbV2bJGfDJzm5YlKt+Xqs4mgV9moaUs51jSGTg9+L+eDig+oH7uicnEoj1kLFZLRferefQ/ptxoTYfTfyIS/Bujl7fB0nPha1frkNa4qOD2Z96KBmHR9Uf/BN0ftinPSJ79iKed5keN60yUyscyKt+efYkO86PKOG09IYLjn43s41+NCBzTo+qPZw8D7aunH0xsmbHFYbOrlJdkxo3TpUcdc24Rqet6/8jiksUrxYJLR8j43lVd+LAdiH92nyvGje2HnNvp5tz5pUOa45113G+owst0PPOHSYsz7Gz7m6Z6X1jiXnzcLv3cBZLMbAJHvWqMrp0aochtGKkePYOvw5ln3106v5PYfa5ZzZ+mM3cbYLtZp473q18oZiQ/p917wqGPU1pK+LMY5We3Le42oF/utNnePCjlnD3tzevLzevYe/N0/9j8nN45m9f9+NnP3CdSzApms7tv2mhbBp+44lmV/K2E2c3wq92xn/X+v/vnje7T4O9v4PRqxOxnwQYu4AAAAASUVORK5CYII=";
6224
- function To(n) {
6225
- const t = [];
6226
- return hs(n).forEach((i) => {
6227
- i.traverse((s) => {
6228
- (s.isCSS3DObjectPlus || s.isCSS3DObject || s.isCSS3DSprite) && t.push(s);
6229
- });
6230
- }), t;
6231
- }
6232
- class $y extends P.Scene {
6233
- constructor() {
6234
- super();
6235
- }
6236
- add(...t) {
6237
- return super.add(...t), To(t).forEach((e) => {
6238
- e.mode = "front";
6239
- }), this;
6240
- }
6241
- }
6242
- class ew extends P.Scene {
6243
- constructor(e) {
6244
- super();
6245
- f(this, "scene");
6246
- if (!e)
6247
- throw new Error("CSS3DBehindScene: scene is required");
6248
- this.scene = e;
6249
- }
6250
- add(...e) {
6251
- return super.add(...e), To(e).forEach((i) => {
6252
- i.mode = "behind", this.scene.add(i.getOpacityMesh());
6253
- }), this;
6254
- }
6255
- remove(...e) {
6256
- return To(e).forEach((i) => {
6257
- var s;
6258
- (s = i.opacityMesh) == null || s.removeFromParent(), i.opacityMesh = null;
6259
- }), super.remove(...e), this;
6260
- }
6261
- }
6262
- class Y0 extends P.Group {
6263
- constructor(e) {
6264
- super();
6265
- f(this, "isCSS3DGroup", !0);
6266
- f(this, "mode");
6267
- f(this, "CSS3DObjectLength", 0);
6268
- this.mode = e;
6269
- }
6270
- add(...e) {
6271
- return To(e).forEach((i) => {
6272
- i.mode = this.mode;
6273
- }), super.add(...e), this.updateLength(), this;
6274
- }
6275
- setVisible(e) {
6276
- this.visible = e, this.traverse((i) => {
6277
- i.isCSS3DObjectPlus && i.updateVisible();
6278
- });
6279
- }
6280
- remove(...e) {
6281
- return super.remove(...e), this.updateLength(), this;
6282
- }
6283
- updateLength() {
6284
- this.CSS3DObjectLength = To(this).length;
6285
- }
6286
- }
6287
- class tw extends Y0 {
6288
- constructor() {
6289
- super("front");
6290
- }
6291
- }
6292
- class iw extends Y0 {
6293
- constructor(e) {
6294
- super("behind");
6295
- f(this, "scene");
6296
- if (!e)
6297
- throw new Error("CSS3DBehindScene: scene is required");
6298
- this.scene = e;
6299
- }
6300
- add(...e) {
6301
- return To(e).forEach((i) => {
6302
- this.scene.add(i.getOpacityMesh());
6303
- }), super.add(...e), this;
6304
- }
6305
- }
6306
- const nw = 3, Wc = "CSS3DRenderer", pr = `${Wc}@${nw}`, ao = () => {
6307
- console.error(`${pr} is disposed`);
6308
- }, xt = {
6309
- css3DObjects: [],
6310
- frontModeStore: {
6311
- css3DRenderer: new Xa()
6312
- },
6313
- behindModeStore: {
6314
- css3DRenderer: new Xa()
6315
- }
6316
- };
6317
- function bd(n) {
6318
- return xt.css3DObjects.find((t) => t.id === n);
6319
- }
6320
- function sw(n) {
6321
- xt.frontModeStore.css3DRenderer.setWrapper(n);
6322
- }
6323
- function ow(n) {
6324
- xt.behindModeStore.css3DRenderer.setWrapper(n);
6325
- }
6326
- class Lr {
6327
- // eslint-disable-next-line @typescript-eslint/no-useless-constructor
6328
- constructor(t) {
6329
- f(this, "hooks", new Mt());
6330
- f(this, "state", {
6331
- enabled: !0,
6332
- visible: !0,
6333
- disposed: !1
6334
- });
6335
- f(this, "_scene");
6336
- f(this, "store", {
6337
- frontModeGroup: new tw()
6338
- });
6339
- /**
6340
- * @description 根据传入的四个点位创建一个 3d dom容器,可以通过ReactDom.render()的方式将react组件放到容器中
6341
- * @param { Vector3Position[] } points 矩形四个点坐标
6342
- * @param params 均为可选值
6343
- * @config_document `params` 均为可选值
6344
- * | key | type | defaultValue | comment |
6345
- * | - | - | - | - |
6346
- * | `ratio` | *`number`* | `0.00216` | 1px对应多少米,默认为 0.00216,即1px对应2.16mm |
6347
- * | `devicePixelRatio` | *`number`* | `1` | 设备的物理像素分辨率与CSS像素分辨率的比值 |
6348
- * | `container` | *`HTMLElement`* | `undefined` | 自定义 return 中的 `container`
6349
- * | `pointerEvents` | *`'none'\|'auto'`* | `'none'` | container 的 css属性:`pointer-events` 的值 |
6350
- * | `autoRender` | *`boolean`* | `true` | 是否自动渲染,通常为true |
6351
- * | `mode` | *`'front'\|'behind'`* | `front` | 两种模式:|
6352
- * | | | | `front` 模式:DOM 处于 five Canvas 上方,所以无法模拟遮挡效果,需要手动检测是否可见去设置显隐 |
6353
- * | | | | `behind` 模式:DOM 处于 five Canvas 下方,可以模拟真实的遮挡效果,但是 DOM 必须是非透明的 |
6354
- * | `scene` | *`THREE.Scene`* | `undefined` | 如果 mode 为 `behind`,需要传入 |
6355
- *
6356
- * @return
6357
- * ```typescript
6358
- * {
6359
- * id: string, // id
6360
- * container: HTMLDIVElement // dom容器
6361
- * dispose: () => void // 销毁
6362
- * css3DObject: CSS3DObject // THREE.CSS3DObject 实例
6363
- * render?: () => void // 渲染函数,当 config.autoRender = true || undefined 时为 undefined
6364
- * setVisible: (visible: boolean) => void // 设置显隐, 同 setVisibleById(id, visible)
6365
- * show: () => void // 同 setVisible(true)
6366
- * hide: () => void // 同 setVisible(false)
6367
- * setEnabled: (enabled: boolean) => void // 添加/移除 container, 同 setEnabledById(id, enabled)
6368
- * enable: () => void // 同 setEnabled(true)
6369
- * disable: () => void // 同 setEnabled(false)
6370
- * } | void
6371
- * ```
6372
- */
6373
- f(this, "create3DElement", (t, e, i) => {
6374
- if (this.state.disposed)
6375
- return ao();
6376
- const s = (() => {
6377
- const T = {
6378
- ratio: 216e-5,
6379
- devicePixelRatio: 1,
6380
- mode: "front",
6381
- autoRender: !0,
6382
- container: document.createElement("div"),
6383
- pointerEvents: "none",
6384
- wrapperStyle: {}
6385
- };
6386
- return Object.assign(T, i);
6387
- })(), o = e.map(Ue);
6388
- if ((o == null ? void 0 : o.length) < 4)
6389
- return console.error(`${pr}: requires 4 point but params may have fewer`);
6390
- const { ratio: r, devicePixelRatio: a, mode: l, autoRender: c, container: h, pointerEvents: u, wrapperStyle: d } = s;
6391
- let m = !1;
6392
- const g = this.createObject(o, { ratio: r, dpr: a, container: h, mode: l, pointerEvents: u, wrapperStyle: d });
6393
- xt.css3DObjects.push(g), s.scene && this.setScene(s.scene);
6394
- const p = () => {
6395
- if (m)
6396
- return;
6397
- const T = g.mode === "front" ? this.getFrontCSS3DObjectGroup() : this.getBehindCSS3DObjectGroup();
6398
- T && T.add(g);
6399
- }, v = () => {
6400
- m || (p(), this.render(t), this.hooks.emit("render"));
6401
- }, b = (T) => this.setVisibleById(g.id, T), w = (T) => this.setEnabledById(g.id, T), E = () => (m = !0, g.removeFromParent(), !0), M = l === "front" ? xt.frontModeStore.css3DRenderer : xt.behindModeStore.css3DRenderer;
6402
- return c && v(), {
6403
- id: g.uuid,
6404
- container: h,
6405
- css3DObject: g,
6406
- render: c ? void 0 : v,
6407
- show: () => b(!0),
6408
- hide: () => b(!1),
6409
- setVisible: b,
6410
- enable: () => w(!0),
6411
- disable: () => w(!1),
6412
- setEnabled: w,
6413
- dispose: E,
6414
- appendToElement: (T) => M.setWrapper(T)
6415
- };
6416
- });
6417
- f(this, "setVisibleById", (t, e) => {
6418
- var i;
6419
- (i = bd(t)) == null || i.setVisible(e);
6420
- });
6421
- f(this, "setEnabledById", (t, e) => {
6422
- const i = bd(t);
6423
- if (!i)
6424
- return;
6425
- const s = i.mode === "front" ? this.getFrontCSS3DObjectGroup({ addGroupIfNotExists: !1 }) : this.getBehindCSS3DObjectGroup({ addGroupIfNotExists: !1 });
6426
- s && (e ? s.add(i) : s.remove(i));
6427
- });
6428
- f(this, "createObject", (t, e) => {
6429
- const i = new b0(ce(F({ cornerPoints: t }, e), { style: e.wrapperStyle }));
6430
- return i.element.classList.add(`${Wc}__container`), i.element.id = `${Wc}__container--${i.uuid}`, i;
6431
- });
6432
- t && this.setScene(t);
6433
- }
6434
- get scene() {
6435
- return this._scene || console.error("scene doesn't exist!, please call setScene(scene) first"), this._scene;
6436
- }
6437
- static get frontModeCSS3DRenderer() {
6438
- return xt.frontModeStore.css3DRenderer;
6439
- }
6440
- static get behindModeCSS3DRenderer() {
6441
- return xt.behindModeStore.css3DRenderer;
6442
- }
6443
- get frontModeCSS3DRenderer() {
6444
- return xt.frontModeStore.css3DRenderer;
6445
- }
6446
- get behindModeCSS3DRenderer() {
6447
- return xt.behindModeStore.css3DRenderer;
6448
- }
6449
- setScene(t) {
6450
- this._scene = t;
6451
- }
6452
- getCurrentState() {
6453
- return this.state;
6454
- }
6455
- setState(t, e = { userAction: !0 }) {
6456
- if (this.state.disposed)
6457
- return ao();
6458
- const i = F({}, this.state);
6459
- this.state = Object.assign(this.state, t), i.visible !== this.state.visible && (t.visible ? this.handleShow() : this.handleHide()), i.enabled !== this.state.enabled && (t.enabled ? this.handleEnable() : this.handleDisable()), i.disposed !== this.state.disposed && this.handleDispose(), this.hooks.emit("stateChange", { state: this.state, prevState: i, userAction: e.userAction });
6460
- }
6461
- dispose() {
6462
- this.setState({ disposed: !0 }), this.hooks.emit("dispose");
6463
- }
6464
- show() {
6465
- return ie(this, arguments, function* ({ userAction: t } = { userAction: !0 }) {
6466
- if (this.state.disposed)
6467
- return ao();
6468
- this.setState({ visible: !0 }, { userAction: t }), this.hooks.emit("show", { userAction: t });
6469
- });
6470
- }
6471
- hide() {
6472
- return ie(this, arguments, function* ({ userAction: t } = { userAction: !0 }) {
6473
- if (this.state.disposed)
6474
- return ao();
6475
- this.setState({ visible: !1 }, { userAction: t }), this.hooks.emit("hide", { userAction: t });
6476
- });
6477
- }
6478
- enable({ userAction: t } = { userAction: !0 }) {
6479
- if (this.state.disposed)
6480
- return ao();
6481
- this.setState({ enabled: !0 }, { userAction: t }), this.hooks.emit("enable", { userAction: t });
6482
- }
6483
- disable({ userAction: t } = { userAction: !0 }) {
6484
- if (this.state.disposed)
6485
- return ao();
6486
- this.setState({ enabled: !1 }, { userAction: t }), this.hooks.emit("disable", { userAction: t });
6487
- }
6488
- getFrontCSS3DScene({ createSceneIfNotExists: t = !1 } = {}) {
6489
- var i;
6490
- const e = (i = xt.frontModeStore) == null ? void 0 : i.css3DScene;
6491
- if (e)
6492
- return e;
6493
- if (t) {
6494
- const s = new $y();
6495
- xt.frontModeStore.css3DScene = s;
6496
- }
6497
- return xt.frontModeStore.css3DScene;
6498
- }
6499
- getBehindCSS3DScene({ createSceneIfNotExists: t = !1 } = {}) {
6500
- var i, s;
6501
- const e = (i = xt.behindModeStore) == null ? void 0 : i.css3DScene;
6502
- if (e)
6503
- return e;
6504
- if (t) {
6505
- const o = (s = xt.behindModeStore.scene) != null ? s : this.scene;
6506
- if (!o) {
6507
- console.error(`${pr}: scene is required when mode is behind`);
6508
- return;
6509
- }
6510
- const r = new ew(o);
6511
- xt.behindModeStore.css3DScene = r, xt.behindModeStore.scene = o;
6512
- }
6513
- return xt.behindModeStore.css3DScene;
6514
- }
6515
- getFrontCSS3DObjectGroup({ addGroupIfNotExists: t = !0 } = {}) {
6516
- const e = this.getFrontCSS3DScene({ createSceneIfNotExists: t });
6517
- return t && e && (e.getObjectById(this.store.frontModeGroup.id) || e.add(this.store.frontModeGroup)), this.store.frontModeGroup;
6518
- }
6519
- getBehindCSS3DObjectGroup({ addGroupIfNotExists: t = !0 } = {}) {
6520
- var i;
6521
- const e = this.getBehindCSS3DScene({ createSceneIfNotExists: t });
6522
- if (t && e && this.scene) {
6523
- const s = (i = this.store.behindModeGroup) != null ? i : new iw(this.scene);
6524
- this.store.behindModeGroup = s, e.getObjectById(s.id) || e.add(s);
6525
- }
6526
- return this.store.behindModeGroup;
6527
- }
6528
- render(t) {
6529
- var e, i;
6530
- if (this.getFrontCSS3DObjectGroup({ addGroupIfNotExists: !1 }).CSS3DObjectLength > 0) {
6531
- const s = this.getFrontCSS3DScene({ createSceneIfNotExists: !0 });
6532
- if (!s)
6533
- return console.error(`${pr}: css3DScene is required when mode is front`);
6534
- xt.frontModeStore.css3DRenderer.renderEveryFrame(s, t);
6535
- }
6536
- if (((i = (e = this.getBehindCSS3DObjectGroup({ addGroupIfNotExists: !1 })) == null ? void 0 : e.CSS3DObjectLength) != null ? i : 0) > 0) {
6537
- const s = this.getBehindCSS3DScene({ createSceneIfNotExists: !0 });
6538
- if (!s)
6539
- return console.error(`${pr}: css3DScene is required when mode is behind`);
6540
- xt.behindModeStore.css3DRenderer.renderEveryFrame(s, t);
6541
- }
6542
- }
6543
- handleShow() {
6544
- return ie(this, null, function* () {
6545
- var t;
6546
- this.store.frontModeGroup.setVisible(!0), (t = this.store.behindModeGroup) == null || t.setVisible(!0);
6547
- });
6548
- }
6549
- handleHide() {
6550
- return ie(this, null, function* () {
6551
- var t;
6552
- this.store.frontModeGroup.setVisible(!1), (t = this.store.behindModeGroup) == null || t.setVisible(!1);
6553
- });
6554
- }
6555
- handleEnable() {
6556
- var t, e;
6557
- (t = this.getFrontCSS3DScene()) == null || t.add(this.store.frontModeGroup), this.store.behindModeGroup && ((e = this.getBehindCSS3DScene()) == null || e.add(this.store.behindModeGroup));
6558
- }
6559
- handleDisable() {
6560
- var t, e, i;
6561
- this.store.frontModeGroup.children.forEach((s) => {
6562
- s instanceof kn && s.element instanceof Element && s.element.parentNode !== null && s.element.remove();
6563
- }), (t = this.store.behindModeGroup) == null || t.children.forEach((s) => {
6564
- s instanceof kn && s.element instanceof Element && s.element.parentNode !== null && s.element.remove();
6565
- }), (e = this.getFrontCSS3DScene()) == null || e.remove(this.store.frontModeGroup), this.store.behindModeGroup && ((i = this.getBehindCSS3DScene()) == null || i.remove(this.store.behindModeGroup));
6566
- }
6567
- handleDispose() {
6568
- this.handleDisable();
6569
- }
6570
- }
6571
- f(Lr, "setFrontModeContainer", sw), f(Lr, "setBehindModeContainer", ow);
6572
- const Z0 = "v2.0.1", yd = `CSS3DRenderPlugin@${Z0}`;
6573
- let rw = class extends Lr {
6570
+ const ow = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAYAAACJIC3tAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA2KADAAQAAAABAAAA2AAAAADs6jNqAABAAElEQVR4Aey9C7ClZ1Wu29253yAkJGBCQoAEdBOCbkSgkIMKKgSjIJvLPket2qVyDiLi8VLiPvFSp8ACEUuUAsXN3orgQQoBUVBBvLCFjbg1CiiICSEEwiUESELu6e4znn/OZ/a7Rn//XKuTbO1e7aj65jvGO94xvu///+9bc625Vjo7d/yb/WvegZ3/QpPv/Rea59+maXfgX+oBt2kPi/DO3tsDrb+zh+jO1h8WD/VAL/JAH+KB9j8c9AdyD7eq3aqu39+tHpKt6uh/INq+nsM+vqMP8nC9cVu9X+t0dzR3IPd83aG4oznnX1ev5t9weQfWPex/u0mLO7CVezTS3BnOez/qYS5x3aYf5e4Ml/Pij3p1zWEbb/UBHk43aCv3ZKRJLn3u3YHGeb97bebw123wnjuQuGs3m8t1jerMHXa42cM7XG7IZvdhlE/uzvjc46z3no84cyMcbezOZXxnfOfPHnLiupyabY8H+hC32w1Zd/09Nxcnry9yv/TFOS55/LSsTX5uEye/mT/Kb5VzLamXS9wsn9pt5c89uG11kYOLWXfdPWcs0k7/jmL2WOeTO1DLzbyZb/6OImuz1nX2WH6kzdy29N0g2/LiBhe17nozN/LlRjjimB5+Lmc+ER+zZhFt/TU392a+eTB9ZpvjzK1Dcpg9F9G+1zl+n2IbeUduo2vZ7FLmNm3yI18OvDM+68v6jLs/iuHWWd+4Geuvw8zh95i1y21lHXP6OX5dz0M25wM/ZC9giwufu87k9UcIl/wdiVlq9si4+8SY+kU0/zra+HIi1frgOr/nRvqu6f2JMXWLaN/rHL9PsQ28w+kdrD+u3Lz64DrffCJ9M9ZPfuTLgRh1aT3O3MjvG9ZYpEYf7P4oVpdIH9YmR5wGbx4+/dQdFv7hcMBGGzU5fbD7cgeKbJ6syVg/cZ1PbivGxk7LWD+x+8QHMnIufGq9f/ogBq8/EYfLy+FwwPqzdBPA64PdlxN3LTXGB4p9vlEMh9H7jlhu4pEvB3ZfruOepXbE9zWice364MjQzeVG+kOSOxwPmA/KjQB2X64fqs1i60bIvDnPKE4O/0Ctb1jjESaHnyMPFWvOGB/jXlBjDIfZlzr8jmgOGzvcDpgb3AecMX6OPEwjf8RlffeZU04fxODTepy5db6bW43xCOGSx/cgMX+PzdHbHD73oR8yeDT2IT4sbbsfsLmNmjx+H6PDIwemb62ccUc2GBzWMblJsHxRl9zIZzN3S04/Eb8P5pPj0BD3g1XUxHG9Hqy5dTqffUV6HBa23Q/YuofIw3Zj6Hf00ICb+dSq6X1Yh5z+jl/5lV+57+Me97jzTzvttAedeOKJ5xx55JFn7tq168SdO3cezSjhUTV4RkfUsHe5q0Owe+/evbtLe1vh7cXfsnv37mtuueWWT95www0fu/LKK//pjW984wde9KIXfW5ZY63oYUr0QLFeD5AHhZh1YPogWk2tMbnObSWn5pDGvDGH9IXMLD6vTz8RP4ebOBHfgVY/NfLZa+X/wA/8wKnPe97zHnfmmWc+8rjjjvuqOkT3qj7HLOcuWNncRlwJtugwdxp9b96zZ8/nb7rppn+og/fun/zJn3zXW97yluuLJ8fgoHRfDsyhfsTZY4TVZr/Dhm7bWn8Q2+1C8/r0wfQ9KHD6HiI5446Zx5/ietd48OMf//innXTSSY+sd5evqME7ETksN5Q+aH4SLXWdM9dxs/rso0/NTbfffvsnbrzxxr/9wAc+8MePecxj3recl5yHJ325EapLxHeUu7p2OC19uW2D3uxtc0HtQvL69MHR6IerH6ZRTJ9dz3nOc079qZ/6qWeeeuqpj6tv8x5YHO9OmJsnN9ki86//6j1gJfjYrXXg/vGqq65665Oe9KTXf+hDH7qluNFhGnFco7zXSzy6B3KVXuXxt515Y7fdhS0vKK+vbyhjDxbx6BANue/93u+9x0te8pJnn3zyyRfVOxTf8lHvxhJZhjw+1uMFO//a9T2er1xkur7H1sPnqO8o93zq+uuvf+ery370R3/0k5X3AO0OX87DZOw96Mh8cFr6ctsGuaHb2by+EcId0OF6whOecOLrXve6769D9R/q56izq54ebiA2FuaGMddxodr3Sh6jTi2xfkdyaf8r6umZ96Y+Q9n76Wuvvfb1T3ziE3/lfe97382V9yCNkGuB994kFr26R90n3lbmw9lWFxUX4/Ul4vfhZurvVtOnd5dccskjzz///Ivr27+vqVo0bqA8VM7B9OQxOPxE+M4Zk8MOpnrW433hOuqDyt3v+8M//MMfv+iiiy4lrpGHjLV7uEQ4R7mr6+s+8bay3BTb6sKWF+P1JeLnmDtcu/70T//0wd/wDd/w23xQsezHJuHjcAwfs3fG+MnjyyVarxZMn7wmb+x8Gcsl5nz0yJha+1qTGvKp96CBu9/61rc+6ju+4zsuLz8PmD51/YAVNfVzLmNwW5o3dzteXF6bPtjH7AGrn0E+VIfr9KrhqzQHyz7lrswNuCLCyRy+G7SvIUp27OF3WjXv7YW3VYJxa/n8josPHfbWt6fHVJ7flfHp5FGFR1Z+4irua2RexmizF706QPjd+vrtDR5dnz7+6gknnHBx+R6qxNG89JfHx4i3rR3Ov2je9KHWxr1Hidg0/V0rNx595jaJB8pD7AblF8NfrE/sruaXwvWzzcc+/vGPf/S3fuu3Pvhrv/Zr19CwbK7nIrv/69T7uc997ulPecpTzj3nnHMecI973OPs448//n71re05dShPrpJ83nkY8Ocs16HPt857r7nmmr+eK/o3fnEHfODb8X7ktemDfbj58zBM/m233fam2pyPqRreRTxk6+4Vvdl8DOeps7T3S3WQLqsN+f43vOENf/IjP/Ijl1fezVru5KPHkl8wi9cRnzX6YtZO/stf/vL7X3jhhV9/73vf+6HHHHPM+XXoTqsE10pvRv48VeHQpr8uqS8Of3LUUUf9H6XgcGadB5d++PYGMeNFtIj1tx3OPoxtcqVeXyJ+jn7AOBzYkfUucMRll1327tqI51Xst2tTMl6o91C5Wa+vb5/eX7+8/f2nPvWpf1m/V2IDYmwu5naT6ZsDMTfjItr6K/20kU9f1ojtPffcc49885vf/IQHPOABT6i/MDm/ON7lXBNfUDw45U68h+tP63D978XRT40HDc6DJcI5yt1wffDb1vIhbMeL9PoS8ftg0zHgOSz4E5511llH1Ldvf748ZLcWz8ZTx7dcaHmX+tx11133F695zWte+0M/9EOXLzUF+5kbqmMXmu/8uph1dUsu/a7b8731u72f//mf/+761vLC+vb4PiVAzyHhmrnOI+td/c+OPvpo37k8VJVaHTQOHGsfHS6vSaQufeJtZetu+Ha4UK8vET8HGwdbHaqlTzyN+9znPkdcccUVf7Y8ZGycqR+H6otf/OJbLr744t945Stf+aWlvmAy5yQYbSK5jnN6eHqqJ+6Wc+p3zBp62TP77q1vY+/xMz/zM8+uP/d6Uh22U0q3t/6O8Q/qZ7ofKN9DJHrQ6IHvIO6jqA3XkPOS21bmzd9WFxUXk9eHb6wP8k5l7LsXcR64I84444xdH/nIR36uPjV7dH0Vv+ztb3/7y77zO7/zw0ud9aCWfm4ifVF9xumbB+HpK8Kl5Zzpq0kuffrZk8OBye156EMfelT9HvDI+iX7dUveg5VIHTVy+PYyB4eJ3Z+S2+klb/J2ui6vJa8P31ifQ5S+71pw/bB54FKvD2JoRsaGUuPm6khdcuqTx09TY3+QNRirVScmn3PK94ORBwTfQS2+h0odMWYMYqO55BaKbfaaH9tus0tbezlsNDebvjEPHB/UN2ajeIh6Ho0byl5FrQw9hsZ+clOiXuxJbI+RJnN9PalXl0jemHnSnN8exmj0RbjR9ZKnv4gu56PmsLHD7YDx0HNDuhF44Lkh3ABwHgg5a9S7eeyLTg5NmjV+he+51DsPms67SdFkL3R9Hc5JH/SMrIfP/vpgDmp6bG3ycBo81ueUX2S38evhcsDcWD5sUR5MYwOwofg2ESPum4SYzWyOjQ7n5uk9K7XK6aunxj7WG6NNMw+nr5Z+Hjh8+7tOauA088T2ALMv90EdvIez64jtbb11lVr1WOeT21bmBtpOF+VDFrk2fb+6E7vp8B1qM4YbGRo3Enk3HHxuQnxz6DKG7/FIa52IpvvWieTVgcwzWpu6XmcsUp/a7hsndj/vGb6Wvty2wO36DuYDE/NhwTHYOObxNXkRPvPW5ob14KbWDak++6efvfVH67KmIzXObz2x8+cXknx3o4/6Pp+8GuI+7N95YvqZz7XQz/XgY+ixfp8W7CH+6o09xC9jtXwfEui1iYj0QR807+LJ45svd7V50Y90cmwUe1IH7+Zx062LqemWddkPnXHOr2+fjLu+a3Iucx6SXDe+I/P6ohqR+ckRayM/OXWHLOYDOGQvYrlwrqVfzyhOHT6HAhMz76Gyz0hjTqSXmwROP3l8zBxovdwkuAMvOac9RdsZ51xyaOAzlzH+3CGytufh5dSAWs4Fl/OpOSQxb+oheQG16H4NxiLXpQ/y8DwoHiA1qcM3VtfrrQPpq77zxFrfTPCdy176I6TWOe1hTA4zJs919D5oMOv1s04O9KCI5ozp03uZU5vIPFmTtanDP+TsUP+Qw02QiG/MA8kYPw+LuhEmh++Dd5Mad2RODD43lhyY1uudV03m8XMtaOTU97y8WtF5sn/X5vrRqbUHiMZexOn3tZlXA9oTP3m0mSM+5OxQPmA+HB+M6EMg5jBgmcPnwZkzD3bzMMFTp/ngRwgnTw0bUC5jeqnDx1xb8vqg+dTK9Xxq8LOPcXLr6sllPutG86eWuTS0mj6obw5M3vkyf0j4ows7FBae6x75W+W41n7QspYcsRsGPXFq4DR5N0SPU6cGzv7o812DHJx5a+Qyrw9uZnP11PW5Rhwa10K+r7nn1Yr2BLGul5uSy3znzB3UeKi+g7FBsMT053LJp09t1vPAjdOnBnNDoMHX9HuNsYherbXON0I5tCMfLvne27rR/CMOPdb7qAUz5/yZdz2po6c8vpacvqjmkMRD8SJYc193vgvxIDI/8pNLPTwbwncucpi8daN4odz3qhYmN1ny+9T75pDrc9jDeuI5jT06WgNvP3z7yOcccFjqjZPTF6eiqNsKj4aR81sn9r7GByUeau9g3niRm9r9jDMPb04kn4dTTebRaGrVwePnw7c2OXXmjBP1s7ecuK6e+axNHbWafK4Njth6taBc6tNHY8/057g5nlrnwsdG81jfc4uKg/DVBR+ES1stqa/RuCMFcunLgfkQk0ePpca8/CSIl8xLdy5j/JzfmkQ1cFmrxvqO5JNT33FOA48xp58Kyk2J5Ytc7yOPLP0em0v0muGcnzottes4cwcV+hX5oFpUWww32JvspkvsOcvVGKOT64hGbt09UZOYfvaRh9PkOpJPTt86Ub7jqF6NtV2TcfrWdbwjmrzn6WfvfH5dY465R2afUe6g4A72Bbo+sN/85PDVjnSp9carJ9YXu2aOd66e7/UZWyMn2mMury7z6fc8OY3extaA+urAfAfLOnL26H7GqRnxmU9fbXIjH47B2vqnl/Q4qMyHelAtarmY0drgHN7k1OmLtOp+xpmXF8lpyaVP3hh0TdaJajJObfpo1MN3c57OZ6zGeuPUOKcac503L48O39i8PKipI1bnWozF1KyrV0dd72XdQYMH81/TewO5WdxIRpqcN9m4a4hHteqsV9fnlQfdDNmv16PTRjo4eWszpnazefg2Vs1Ib27UV446/a4nh5nX7zrzyeuD5q33HQc+89bIo0+OGBtxi8xB+po34GBZojfZtYH6rlHOh2ReRDfy7wiXvaxnXje5XOrw01IjD5frz82jP9LCWafOXuTSH2nhtN4n+fTpmd86Zk4fdD1i51ybeTF16ZNnWJc5fXuI8AeNsfCD0VwX6M3VN5frTk4d+fTVqxV9gMai9aM6a8yNtGrop9/18Jhzpk7f+pEOjTry3bcGvlty1q3j5jS9xnnmePLmQP3k53y1ifq9hnhkeT9H+buUO9i+RcyLd9NxwfjG3lDj/NRPzhoQoyZ1E7l8Sd56EQm+cy5LVuuBn9P6Dpc19uk1zpE16dOj18jJe43OMao3Zy2x9QfCodWcx/l9pyNv/0T8tFE9ee9Jake+63eOkaZz1nS+x32tPb9pvNWJNm20FNyV/ehlP9AbmJzrSu2Im6u3JzXZV37EZX/r1I9iOevEXJNcx9TkHPqJvdZ4nYYclhrm7D8rqQGx1BtPieWL9ea8jrm6XIc19hvlNutj7V2NrmXLfbnwO2p3pnYrc/KVTXOuRG8ynDx6fXHEjXKpm/Opc1402FyvnjO2XkweX8u+ciN0TfRLk08O33n7O03qslf61idal7qRLweytjyE9lOTPTtnnbzXSSxnPUh+nY1q1unJbblms8n7RAeq7/WbxfYHuQjQkbF9Ug+n1nxyW6lX3+uN+3ydX1fv/L2m8+ZF55zTwc9Z1nSdueQ713PO03nWCJf1qaHOvD6IpU4/tQvVvgOZc2U9NXmvrLsj6DrW1W5Fs1rQukbmXLzxHG5V1+tdsPVg+t7A5Owx4vIdEF32M15Xb8/UwrmOXpu67qe216uVB+Wcb0mthVE9BfazuMcjPnt1fcYH4qsVc21wDK93TmNNauEwa8R8fgvF+lfrumqOR7cuN/XZ6iI2092R/Ghx9gHJZ6zPwkc+3By/roYctq52Li/vWumhTw6b48jNaa0Dt2L0wZxrEe17dZ6uM96n3Lhpeh1x56jNPvpi5jtHzJr9tm+dNnNzfl6/c8GtM3WpuTNc9tmwqTYkIli3wFFuxEW7WZc6bzii3sd8vjPBdZ2fSsnPYc6hRo51jObJ9akFsexhnHryGaPRrDUPeh2pgV9nWe986olHP3dZg87+cuqTt5/cKO51ag70IDlHx7w2csbpyzE3/pzZ23zG6ZPv8Rxnr7UTKxotrnObxfbaCtpLpIYLMwb1yWH9MMCpEeGwrM9c+uiyJ7E24nstWg/IKJcc16bWOcDUJD/n94dPfXLpk8tDoDY1zJNx+pmD7/UjbXIjX050DmOxz4UODkPDyFif/MjsS+5A/V6zX//NJh/lk5vzmShz+00cBDovrNfkzeo549zwcqLTEDvgsm9u7uyVtfi93rqcK/1RvVyiNbkmOO9J18qrEVOnr9ZY7HyP0cGt43Peruu1mc8cvn3UyI3e7VgXpsYauXwm5NSRX2f2EdHqd8ycPdUYr5CLW2c9n/HIH3H2N9cXAz/irAOzVr9j6nrOeJ0mc+lTy2CN6/pQk6ZWNDeKvX5yfR7rtoq9V9bZWw05/VEu8+mnNutTo+81dZ35RPw8WJmzHg7zPuZanGuhWLzKqTeX/bpvPIf0MNd9+0/YJ92QrCDzI19uDulnrvdmgeb059Ba9KnJdxx7daS2cz3O/plzLnuQ61zW9lzG9kjOueyR6FwjzpyYmu4zX1rG1ieHNuP0Mwff69X2nDH1owPU6/z2Va1550t0TbkX4LScWy7R3onpoyUecfYxZ7xCFjpnmRv5cmD69OvxaA403MD+tj7SwnER9k0NnPxmSF1q6OmDkUeDETNyXjWiOtEbbV4kjxFnv5x/ErS8nHXGI1Rj/8TUw2v61sLLdY28OKc1D476Zn6kMd/nz/nom5axPcknn3p950rsfo+pTa73Mp7wQP8W0QWDW/GZRN00YbywSP5NENBNTlp9vwh50Jxc1sGpQTfSoMfycC+Yxas9ktNf1w/Nulrz9srrlst6rzNz+nltqct6tXBq0vf61YHkNd9BiK0zv25+653TOPvoZy45ah3Omfnkku/3tK8breb6ch59NSCc8+mDm5pFXZi8fmL3iUecfc0Zd/Si1PUY/eiC1JPHZ6CTlzOu1GTGIqS+uBlHvm9QY3uAuZ7smb7XZh25NPvIGYvyoL3we961pKbXkOv5kQYO63prE12HnHXiHG8e1LzHxPS1t746Y3rjj8x5wa0MeqTOGMTst4jqdW7i5PVBBw3051BNIj7GQqhzQembB/MrKDFmDT512Dp0LnT51S1rnB+UR4/JZR95MevhsOwzl7en+V5HrEac4+A1tJp1W+GypvvZp/sjLVyfU07ePiNeDsRSy/3K+zv3XKfCpTbr5eEYmL7I3tMfYdbgY+g22Fa/RewXZLwVZMK8GfgsRHTxxurhvXFqzIHdnEM0bw9jUI3oelKjDo159eZSP8p1LuPegxzzYOmzfuc3l4jfzXow/a7LWB1c97su45FvPYh5Xfhy+FjmFszG+ZPD78/TfmLm4fr9y/n0QYdf1K0zZu40a5lDP/OTn4vZL1mEizZH3Ac9DmRQj17k5zAGsWgO1PAzTh6fiyTvxabWHDpNLahWDo2cfsZwWvL4OdSAqcvYewGHr9mnx/1a1InqsxfcaH5rzBmrN845vb85T9bLy83F8nn9oxo5dHlN8A57uH+IefOQ33XOOecccdttt/3m3r17L9+zZ8973vjGN56zzKNx0C99+yeWZNbQbbD9iMoml41HvhdALv0N2je/+c1nf/M3f/P3XHPNNf/zvve97x+X1oc0Qrjk06/UZPlVhbmwnJOazqsBscyP4q1y9OnzUYs5xyLaGPe61HjNqZnjUkMPdfZzbdwz1yOnVsz6Oc2cNufbisa50I7msoc59Kzfa9AfoVr25I6zzjpr1xVXXPH2nTt3PrTC62ucUAftn3bt2vVN5Ts/yD3aCmaNfpVORryyaQGraGvO6II8XOCG8fa3v/0BT37yk997wgkn/NDZZ5/9m7fccst/KQ1fadTh51ce+xe94YYSY1yAmkRzeYHkRyZvPZqsI1aDryWX+uRTKw86zOd1yCVmLXzW41tvDuzWa7Kn609N1qvdCjfSUjfinVd0fmPnk7eHMbrOmQM37Kv73Oc+R8Th+kzlL6vx+TpsX/l7v/d7Dwy9daK9srd+lW3NKOgml8ikNu++ccdJX2/LrzvyyCO/ser/ucY9a5xy++23v+2oo476/vIxblgOOL6S+C7ljferC3k5fCzX6jrh0bEuLXNwWTeK5dDRa7N69aBmjWt2TvLppx6/653fnLXyifZK5P5ljTnrzBNj4iLa9zzoQc58R/WpgUudfud7rTrn5Fnm88w9R23GO88444xdV1555R/UO9UFlft0jc8iKju6xlfdeuutf3jMMcc8q3zX6h4D+0Ajl/qiV/X64GS5WLlELsyHAq8PejH6xDmOePzjH398Ha5HF39tjS/XuKLGNcU96eabb+adDL3vZvRhYNmTOG+0utTKqVVPf8w8aK7XT8J4sUZKfY+T775xn5Me5tLvnOtXY16UT8THUmOcnH7HqXhZby7r+7WgyYEWjRxxt3W57N+vnz7k7U9ML6zjro985CM/G4eLA2btzeVff/TRR3/Tgx70IA4b8zhcWyK5jPtclR5bXgAKC7u6NzfuizKe8PWvfz1fHY6p8fllQy7wihrX1FeOC7/85S+/tHx7+a2iPeAxcMRNyeULfTF7WbtgFzdWX4160AdmDsyeau0rwqfJi+TwGVwDZqwmsefUd6RX1pHHer2xuUlUL30t5tXbW76jefWjezXi6INZn769zFHP6Gsl748UWYPvfZny9WMJX9xvqcHhwuyJf3WNY9/97nf/p0Lq1o0+T8k3XAOxhnZlLn5FLJ0U6Sfi5xgu7pRTTnla6W6twTuYFwd+vMaX6gb8h2c84xknlU999q9wGFOrTk2uw7yIBlOjP5HxknnoXh/SLc2PPte5rl4t+pw360f3xzpRfce5PLxGDWNufnWg/Tt3R+p7L+bXek4eVIfG4T3icGE768eTywt5h+ITRWpyfKni20477bRnFI72r33nsMo23At0+xmN58zG5C2W67jfAn/4h3/4lPpB8pyq/WKNvDB87KYau/7mb/6GA5j19Cbuc1AH1y1584n6zks9XI7eM3P61onyzm9sXpzjzXfs/ajX7JVIbl1sruuSz/6j+dFiidarz/wkXurVyY1Qzag/evPWGs/pp/30rne961eXBacUsk4HNP4Xao+e+4IXvOCM8kd7cLQP5+am537mAk0YZxMnyQXo89VCHzTeefXVVz/nnve8548V9+Ea/PyF0ZcLwy6oj0o/V98jP7b8/OFRH/SG6FOXPnnmxdL3OuD1vSY4LHljuUmw1MiJqc055UVy+qI9yOmLncv6zNHLONE5rBPh05LXF9Hhsybus9bz8mjQku+a5PDzOtUmpl/yVT/7+5ztQ4zvH0u4/+CmbxHJ1++83l2HiAP2QeIazlPujuNrPPjaa6991cknn/zi8rkex+4t+PRCDzrK3TeHi4Z04fiaHNiHFwiPvyGubw+fWNxtNTxc5a4e2gnlH/OFL3zhrYXW2QOdPfExYixvjuuRU7NQ7r/eOd4+5kG5RPM5T/rmQdZEzmtTl2uFky93NSc+Zh60T+etV0tekxOTxx/Vyrl+4+whlz2yd16j6wYxc4to/zWMeo9qXA99R2ulP7ld9bvX3y88tsaJNTgMmD1vKP/Wk0466RsLJ/0S6U/sPGJRGzhjMA39ZDTpZrIjOidKdCGrBZ5//vnH1DvTA0vP97lcjF8Vyp38Uwt3P+c5z/mvhdkLrWuSL2p1Q+Aw0BtL7A3DV4OP9VzGmbeuY+p7zpg++qADPi2vjb7WoNFPTdamRq2YOjiHvNegHtzq/NakXk5kHn0RznnxMXPigt2nyznMiaMcfdaO5z//+ewx3o3usWzkIRO/WHv1fhdccAGHkHtPv47r5qAteUxcRI0w2ZsxWQ6/DUzUR3fE5Zdf/rT605SfK/+jNfgZLI0b9bB6677siCOO+I7yuVA4bsI69IaIJV9tklw7/Fw8l/Oayfsgk7MfeSxzc/EkDK19RXqkr76jc6sV0eF3G3Fo5MXk7GFOTI2cSC6fhdrM64Ppp9b7kJy+6D1gf2HEfU92btqLaOvDjrfUr4buX/7f1mAd9sPn4D3o0ksv/c/nnXfeG8vnmvz2EHR0ntjh9YmVWlyvC4YYGQtZN6jP/BSfeeaZFxXPwvIDDhZTP3bt5VPDoz772c/+UWHWu5bkSrK6GfhY3pwFs//D67xxrhUue3lzusZa9a4PvdzSXcX2lVdLnPVeszpwbn57imqtlZ+rV+f81ltnfh1vDuSanItY65y6zI98OXG0rryPc32p4xq9tzuXe+2o4vjRBKPWXnzCvaf+hO/CQte+Dku2nw5uaC5ilOwXuG5Scj64nfVXGg+teFp4YV7M3vqB825wL33pS99ciLkGb1jq+5yLivkLHK05a/C9sfjZn9i14KeO2N7yWWtOHGm8P/ZSK8qDmjVo1HVfDTVqrFcLdp05tWDWcw1qRLXGqc/6fv2Z07eHPZPHH81vjWhNzmct3HTNv/RLv8TP+sR3XyK+NbwRXLvcs94j0XlGWGUrIz80Gq2zbIzORslvWEz9fReHi09nvlDDC0k8ud7Frq4Dxi+f6UPOfuVumMObAI85v7x95VOTHPxoHvs4v5pRn9RmXh4Os5doXlyo9l2LOhDr8YJdvKpRZy5r0jcvWu9aQLgNz3Aphle3pPa7//DOl5o+T+bw7SuqVwc6P5o+el4tvLbifuEXfuFz7LlKnFwje03fVRX3xRonvfWtb+VPqqgbjaJXfPpojRMn0gOWIptPgngZadSKux796Ec/dlnDXy1zMZgXxXwn3nTTTXwv7NzkMfunnxw8fZwrdfhazglnD3GOs77nna9j6rOm833zug77qZc3tqe6OUx91uiP7nP28n6h13ct6uwlJm8NOW1Unznr1dlDhE/fWtDa5NDaK/P6O2vPXVIaPknk8wJ7gwwO2I7HPOYxTyhY1Qx8ZObxu5HTJr/ffJOgYhtuCe92t7s9rGpvr3FjDS/AC7o7fetvxN5RqLkBiZ3TnEi9OXsaz63La0td9sPPvsRqu5+x1+K8o/Wbo07L3nJganPN6jtmLb7zZx9467xGY3KYcc6pn/lJHC9ev5TziuSdUw3ofMnJm8v587rQGeP7zoOPUe+cfX3k9/7DP/zDO5e66UeUpV4tf5t424knnvjQpcZrGWFJpvl6Dn4/ywvaL1kETbDEbLzIxoT1vey5RfZ3L3TcFD6xue2iiy7688I0LxSO/sRyoFy5q7WYh0vfOOt6/dproEHZqCc8tSOT73OhzRx+DnupyWcil5i18n2O7KleTY/VipvN70bPPnmvzDvfCJ0rkX4+M3h7ymWcdWp7vZqpvv6TqT8rgt/Lsgex7Mfe/HJ90nhOode1Dku2eqb4s5Y3M0U01/RFeXDDIi688EI+peG35h4wLsJR7o671cfzn7jqqqv4wdILhLd3auFTQ4xxM7BRbsQt1Pte1YhmiJPz2sjru05QrTl0mpx6eTF5tebEEW+diFYd65GXM7anCD+3fvvM1VonOpe94c3Jdcz5zVkzqu+c9dbQw3e11K7y7Dn2Xul8B0s99dfVOHm5h4m9LjBNHi5z6a/0cwfMYosS8YfjxS9+8WMrR08W64WK1BxX3wv/c2HWmwc1eqDBRH1z9pAX5a0zJo8Zi50zBnNNxJh9XUdq7KmGXOfMZa/U4NNbyxyc9fJyxuKo3lpyuf6sSU3vbZyY1y+fPbK3eVGdGtG1dZ33E16N81sroknbu9x7xxWJBqPWwZvCrhe+8IVfX2i+3Mnsmby+ObUbMB+kCQuNRRvN4Y76XcKjlmIPGKEXwLvbzk9/+tN/t+TIjQy9X12Yi1izF9hzqdFHg6nPWH4SDF7Qju5Procye2aLPp+51KZvPpG8mo7oOmdsD+LOmUtU45pHOTm1xPpgjtTC0zfvmb459YmpgTfWJ3bApbF3GGlTfe29vy+SedmL1ovs2R33v//9H1mQ1zPnI++GdoPlBrLRBkEFc/x+uvrPT76qSP5Knr+QZ+FeKL9g5hOcHfVR6P8AZ6zPtapvenT073pkcBqakamxfqSDcw569Br7jnjvq/3n6ns+e4362yf7qzOXPeVEc84jnzjn9xrvDXy/f2rV9J7EGLrN6ifhUoefPc2xT+Bdhz2N0e38gz/4g/fh1F48qcbk8lJGwJ695fjjj38wxBbMtYNp8hNnUlLkAebgo83Nxq76Hvcv6hfJ1H2gBr0WV7GX3y/vfFDF9yjkKwQ8P4dxY8T0/Rmt49SvajB81wtqzG8OrmtSa07dgaK9ep+5+ZMfzZUcvuY8Wd99tHLcS2qI05I3J6LTT9Qnv9V6dWCaMT2zr/4I5eyT95o9Seze1Af9V6XIrfZyHSy+wPOx/EdqpFFzfuWPqL9N5NtE9t5WBteUg/WuBhNvZky8FeMQ8TE872BOkHUn1gH8dBJrfOecQ0rJmbcVMXObE8nDa/IgJi6i/evN9zr1oP03mz97jHx6JZ/PCB4zv4j2xT2vLvms73n7ieSZf109WvP4Xr+8Oe9P8uZE60HNHPW9B5rMEzu/enHKLfcg303ZK/HG2sP8Kd9Wzbln9fnwRiIbgProjFf4rGc965Ti+a9HOWCYp5q3L74SnFD/otTHSZSRS9twE5YJOHTegJxfruOopxrXikYuEb/PAeegDrNGrUjOOZKDx+DyfqsBs6c8NWnwDvTqRLTmQXvC66s1FtFg5kXyjsxbBzqX3Kh2lKOfPKi/WX1q9cVeyxza1H+5B/ln29C6D8nh8/uwIy+++OLTC8n3UdRk8gT4s5ZfnRStK8jG6if8ru/6Ln7+wvwF8yKqG1d2TAW7brzxxk8uSfp4U6D6nNPNCN5YpCat15vr6x3Vq+k9ks/71HU5l77zqBXl1YnmE/Ed/WDKp55exvqpM9c5eWq6mRNdf/agpsed6/V9HmN0ozmsVyeqTdS3hlhuxw033PCpirmf/PEvlnkO2I4nPOEJ/DgzMnrady6f/PTzUhL62WizhlP+fve73wOWxSzSRYscsB31H79ducwRpqkDsUR9vsIwlzE61yYHyonoNLlEa7vGGFSTdfDG+BqcwzpRfUdq4dBlTl/egyYPpl/hZMk7Nwl4Y3sa9z49th7ErEs/uUnUXkbrVzKaz96jvnB5PWoT8TfYF7/4xSuWxDH1hR+XFwdvDnwafj+wjP6MOTM3q/OC5xrI26DjKn/3u9/9/svAd7Bp0cuL4D9m21H/ndjHC+gxXdkS9eExYzHnlENnn8zLkceIMXERLV7ntH2OuXp4tfRyDjnr4LnPatQlZp46zZp8TnLWox1xc7xaerJWY5E6DQ6by3mt5lNvnUhOvZyx9fBY9sHP658Ey5es10/Ez3jHxz72sSuWtcfUjy7+CKJm+vGm/tzvnNK4BuT4jozxu2XdfgvfkKzKHvdmq/jYY489swL+FIWh8fPXnhr8bLbjLW95y2UmGnojvNBMm4NjPW5GeOJeA+e6e65SG3Lq4LVe7/yiOnCzejTWiXCa9eQ05weTz/zIT84ecok5Z/q5vhHvWjKnT/+sdz45Ed4aOH341BBjcJiInzX6+bMUnDz6DVb/jPvHIGpP9ncwerB3b69/UpC9PGe9d4831OVi8N28IMOPP9OX24C7d+9+U328ycLeW0PbyTtYXcyDCs+s/MMrwYU4+PADnz8OlhPJcWOJvfmiF5XrL9l0Y80Rs24suaxJX53azK3zpwmWc1i7Wa+sST/r7ZGoFuReoAcxUb/H8iBmHnR0vsfWjHhz9gL7+rqGPhjPWLM+Y3x5nql92YP4DPcjPhrG8KP6+iTxryvHz2Ifrb1p3wqnPo+q/FX1X9s/pWL24LrBus27b+nnnl1twOKm5uDIWHQ3L2zK8RWhBEyWxrsXk5HjH79hcsyLEuf6q19U7XuF7zWjuNerGfHkcuybbeFZA6ZP1r4L5f4x/FwNtX4hQOca5LL3yFcv0gPL2DpxtBZzHRfdFq/mNqtH5/qpRD+qMWdfYnxja1JnLzTmR3rz6tWCX2a/1mC/Jo9/e/HTjzTl08NR7gZzzg3kMljl8iZ04UrUiuYm5NtA3olYJIODxUeIvIvxlYR/YXXO0Pf50I7m6hy13dAkn771IEbOfPpTsl7UzcVZYx+14FbrU4dPL/7r8J3vfe97v/P6669/TX2X8Jc13oMPR44Jyibtwp1e5QnSD8nKzfVDeg1irydOrtfbOOutAdftud7LeeDx7ekcoFzWzmmtu4U9yd4sYvVus/Q5dNOPNIqXiJYxsjl+eLGz4uo8l4P3HSwXPF10fUXYVRfDn6Jg3pBFtHilHl70ZiWq7/WuqdfLgw56jOpT6zxy1hjfkXp6WG9/kQ1nTiS383u+53vuWf++5K8+6lGP+qn6b5UeUt9iH8/AhyNXvx45bVk/Whd9tA29izSend/CQu8tFH7ORR97gebkitqvHk5LXfrk7aVWLvm5ObNX6vmifyt7cvkO1nvyJsEBy3o0Gvy6XOpWB6wX9NiiWazF8nsFv0XkglajLojvj30HG/X2BoCZ1wfVyBW1wdRkXg7hunpz6KyRA+XMgxg8A+u4YBevo5y1zrNBU+9OO375l3/5hfXp7Ndlo/TJvfzlL38B2jL72Sel+H0eOLTw5uRAzF7qFuz+r9aD1nTOeP/qBWNdzrWO631Sm1/k0Zmbajhg7MkazsXaHLuXe3nSHsDLhjmsW/d2jWZYZHFDnnJ+izgtuBbLz2H8neK6dzBaeYGt7X4hOkxcRPvH8oneULis9zq3sgY06rN39pNX13O5jq6ZtH/xF3/xnesOlxOgQbuM181jiRqR+fsa1CaqgcO3Xk2PU69GHOWsF9WCcNTkvF1nPP1oQtHAJk0drFvYk+zNwSHjTYIfabZqo2tZ1W52wFbCLTgsigOGcSHTqAsg5quFB4w4DYE3T95FT8WSSzQn3TWjXtY4F7Vdl9xIb77fsz4/Os1c9jMnqjGe1vWQhzzkyRKb4VKb15PzJU8rc7bN+c2J5oi7D6cu/d5XjXzG+lmffp+TOGvoqSb7q+m5SbPci9M7WB2y/l3X7spP3xLY8M5g3yx3phcHjMWu3p5robX+6VNELmb6M5TBBNwMbkTeDH1vVJapHeXQ9byxPeytVl5UT3/XRs75Mp+9sl4/a3oPYuuda6Wv/2ziATbZDJdaeym3p+uVV0de35wov1qPiWVN53OOdbW0GWnlxXU9zKEdWfZ3nRt0y714xPJwqRf5FJEfae4SuysPWF/Q9BE9h6xGz41iboY3RFTXG2R+5MNZYz5Rf13/Xq8WtD+YvXpsj6y1XrRXarJn8pv5WcfcDDkxe8Ax+jrVJi9HffrEGJyD2Fq1Irn01WZtz2dN6pLH10b15hJd4+pNIZN3hX9XHjC+PaQfi/b7YA4Z72r84Dj9PWL568wL7uhNlaeHvogGPzF1+Bo66+B8IL2+67Ime9ljlFcHjvLJ6e+tP4y+LAvX+Uut1z03jy3yWtWOOPUd0c5tSNdPTe8Jl/nU4GPkqVMnkkuDNyc637r6Sbvci7fzxT/60J/r4t3LH3Xg7pTdlQeMPzNhcV7whFxEGW+76w6YN6dfTPL2TU59ctykjPWtpwbOQazBobMmNVmvfoQjnf1G+s5N9R/84Aff0hNz8VJL3Whuy9bl1Kxbp/1B74t6kT59HnOdd05QDf5m/bueOG1Ub36aZ7kX+cKPNgc69jB7+S6xzQ4Yk2/V8oC5aL/S7a7f3/jLu7yZ9lbvetQ4vwivVk1y9JNXl7WZQ2tOhNO2Wt979ph+9u85+M5N8WMf+9g31f+36v0uZg7RoF3m7SVmGRwj15Lzd23GWQNvnKjv3MQ5qMscsTXq4LTk1GW9vjjS2EuctB6wQvcntfoHesCc1zk2oBu6i3q8oWgU1DsVB4wPOqh1IK3UXr5aeMDgunHheaOcX06kLrWjPjm3enX2NRazvxzY5xrV9/nUZE99c9k7OfipX/0fQXb84A/+4MXrDhk5NGitC4TTcn59cvjD+S1cojVd22Qb+lGTY6TtnLHzOK8or24OnXeYr4N1NHuyBnlesi8HbO4Tb/Rzlj1WGg/YiihnKFzy63L8Ipl+aNT51/R8i+gBM1eylcFxU0QSxvjJW99RPZiGzqHGvNrei3hdjvrU2G/UB86vjtaBcFqvm/jXvva1V9f/Q/j//Ku/+qv/t/6H8R+s3yXeyMCHq9z/habE1lPnuvHhR/PLo8GsB7PenHlzHdHBbVaPTvP6qbG/OVFezDnkQNfT64w3IHuxhj9nUe9gTf5Kyf4bapfazhlnzeSv+4Vaim0Awu+Xq68G/PkJ/+acOZBPELl4PuQgh/WbIbehrsipviFazZvdv0hYh865ROewh1ryaqzLnPpE9F1jj8zZL2vlej283IS8Oz3ykY/k5zF/Jss8esz58N24yWc+eXpljC8n9jyxpib7y4nkMGIHMbxrTY05tPYV7akm0X2QGvIj4x2Mf3+D76ww58fngPlXR8Rarr3P0WNrVn8qBTErmsk5oXX8nqsf2OlTxLoQ/iNM/qERLwTMkb3UlGS/NVljjtj54bCuWbD7Xu1vXc4tZx8wuTlejZg6/DTXrBZ0pA5fPjH5kd+vP2vxe43xIrPxGcl1tE+/lyMdh8g1kM8affjUEGPOk7l+kMypzevXF+mJfyJ7cvnFnzrXCLKH/Z1t712plTnfighnlXOxkdvPXYn3ywRRX2n5VoX/bRF6FsqY/pq+gAN29Pd93/fxD+Nwgd28Abke+nTtaC1qMoc/V5861tHrrZ3WjyDMXFCTm7w+9fhp5pzTnPxmsf1GmFzO7Vyiuj6XPMiYu/5eR2xNzzFnDvOJ5J27r9G498hYDT3ls3/6O9mDdbj4Sw3/y3vyeb3H1V7+Qhat8V33rCQ39EjUG/R4VVOL+mQFLHx6F+OrQw3yBXu5mB1PecpT7g8OrN8kJH1tOTd+1qAfxVmTmuTTTw395nLyICPn1hfVpA4fE1ObvLXrOHukFj2WnDr5ROeH0+CsF8nZxxpiffKa9cQHUk+d/ZzLHqKH37x7xRidPfBX9vSnP33ag8s9yd70TQANe/fo2sufWBVs7uScqDfELsw2G5KSyyJzoEPJ3vrHRD6+DKZ3sfoq4VdRtPzf3HfU/wP3HLDMi8+bCe8c8OmT6+Yacp6s0acufed0Dfbtcdakbz11vQZOrZgaOXQYMSM3DDE1qU2/UpPJgXP+UroWej3inD/Xb26uoevoNVk3ytnPtYjJ61OfPdR2Hn1yU839ypaN2JNTbexV9u6O5V4mpzlHR/Oz2A+YQhsR50TmxZWu/kGby5ek3ybyTwXw18popgN2yimn3MfCht6IXI+cUnN9PanDd034mjVgP5DqyFlPnTy+lvVw9jXfkbzD3jl/6tGpsW9HarPeGvuM1kyOGgy9PSeiXqyRV5Nr6Tlr4a2HS18NaL2+c3TeOdFlr5wna9CxL9Qm6qNZ2amnnuoevIG9iVXScQLC+h+if2xZIL8M9wPXMqtjcYqs7rE8ONvoTW960z8thSwSXX2iPD1XroEfGncfd9xxZyw1ADfAm5Bz5g1Tjk6NNeZAc/hq5UA586BGPrXwcxy5zea3Hkxzk6+rz3WkTx/rsye+axWT09/s+tG5LpF++h3XzeWcaPSpN16wG1+dS7ROHNXDuS50+qLzqZvi5T/OxJ9J8UkhnIMe0zvY6173OvcyXFpqk9ef5jAo3Ou7QnAbXAt6Y+MVvuxlL+MHQ35B5zvYhtq6oOuPPvroc5bdvQnLcHVziO2J33X5BcH+qcta+JFZJ6ZmxGUeX41onjhH8vqgdanlOjNWo34Uq0eDGYu950I1/w5onah+hPbOHHXYna1fdNn/2Sef+0Lf+VOnD057vf7jVN7B+Pdh+IJlDUjMv/h7y6tf/Wr+7XqvI7HoyeQI8GdtswNG4doG0RkdC5v+LyrU1Z9H+XsGZF+o/4PgmThh3pygJheeQc/UELNm85krej++16sRrZ9D6jV8Y5Fc+sSuLfXwadagndPB57vWnC43Sp+DGq/NemO1WW9OpEaznrjz6snhG6eOnAafuvRTg28v+URy2cs+I5x09a9FnVU1q08JY4+SZ+96uMrd1KhZa3MHjEKHDYzncMftt9/+6RKfXGPaGPUtIhc6PcD6eeya8o//xV/8xbML6UEO6zdjwS5euwbW+fHdHHKgHHnqzRFjxqlNTh9tr3c95DC0mDWJ8FmfOetYa1pq4LOeOPP68Jg9xQW7sUadtaDXlJz3sM+f9ebkQMw++GrkRHKY8ySfPppRDO+6Rbh1trP23lm1D/kOi71IX++/c9yt3sE+s2wiN4dL2Wp96PazPGA26qI5fj9d/QnPh4rkZzD+2ausq3Xvnb5qfNu3fdsjKpfzVrgybtbohvXFo4Eb6bO+1zmRGutHOjjnoA6tHHE3e8mrdS550F5ybjRj0Hp9c/CafuLIR++c5HNNxNagw8zLd7QXqD8VLl+yXl/sus3q1VsP6pPTT17f3KT79m//dvYeH8uzF6drWn5OwP3nv/Y4sfbwPxZuxaj3vqR+Az/a6KMiGlg4h/yzxH+1nIlfKPMt4h4GfhlvvXvOPPPMhyw1HbgZzu0NQpM3qdcQZ80on5zaOc58oj41+K5HPjG/Ino95FNjn87Jd0xd9k8/NdSbs1fPE3dO7Qjh0qwXzdkz5zcnju7fiFPfUS289xjUH+3pqebe9773Q0vHJ9sesGmP0qjsVF4uu+wy9rDXtQ6Rd/P6V/xoMSZtTmyh3BCf//znv6+03NxpsdQtv01Ezyc319UHHQ8qP82bAzfdiEwu/Tk+pbmm5PXJa6nFH/V3XeasF+3V0c3VdcYidfjG+j22v7yxKD+H6lyXccdeP5eH997gU+c9GsVwGDrHRCxfnFeux53vedciP3ede+tTbP6F6WurIZ8NoHcwxz1r7PmJn/iJ9y55OE2dc8Drm1O7AecOmMW9URbbeIXvfOc7+d3C50o0LbbQDzrUfL4+6LjvySfzY9oGy/lMyIneSFAuEb8/aDhH76vWftaDGA/KWjlrjBP1UwPnoCeWMX7Ob15Um5sGzlhUR50mJ3aemBzWNcmpmYRLbd4beGLXQozZU4TLe6OmX39qem3mqNdcI3n2tDry+HvrC/uO+m6Kn8E+T8xYfndV7rR29uxn2cMQZc5t7wW7j1eTvP4K5w6YApvnZPpqQLm99UHHRytmsZjvYFNQF/epco5929ve9uiJWNTh5g1ZpiaAz5zrIZl8j9VZL6LDzK/zsz++10jNOsve6uxFzl7mun40jzVdSw8568RR/9SO8vZT57pHWnLm0+/zW2vvjEd+zm1f5yGnL2YPOOvh1ex8xzvewZ47tt4A+BBDDeg4tf7nfOxd43VYsg09iIe27oAxAeZE6cvth9ddd93flZD/9ov/Fef0DlZfKXhLru8Wp/+F7J4LLrjgWyrGvCE5FzyxaxvlrFOb64DTkrcPuawnHuWyNr86q01MP/vZw6/4mbOnGnLJqSWf9WpEdZvh3BqzLnvKOz9x3jfX5PpFNGlz8yafPrX26mjOvcFczufajNFqex/2sIex5/j5i7+Z5d3MXyFxHXevcXT9B6x/U9jn7HFJNmiMwf3MhdJEs6GxqMb8CPe8//3v/+/LgntZuPw5jJDfnn++/pmxry2k3odU7spyHsi8YemTUwtvTo68Zs5YVJv53GTyInoHPdLvPclZJ3Y9cTe5xKxHnzl9+xiL8iP0Wu0vorUejkEsV+7KrBHViCthc+wJje9ImT17zt7uH3XUmrMP8c4TTjjh4YV8ezj9BcdyT3r9pyN+97vf/Z4C9HMDmTn8NHkQm9ADtqCWpMFSZCF0Fst7kVN84YUXfqC+SnyptPxCD878hJX7VH31OKM+EDmtcpq9iPNmyidaozZjOXpkTfpojPExYkxcRPt0qfdhzmmttZ+1qZfbikZt1lvnXOs0mbMHyPPwPuFjmTf2+dnH658KljXmrCdn764jRuecxvYgdg45ET5zuX/VUK9N3E//9E+fXj+enOG7VyXz5y8096ncdU972tP+gdzMKHqVSx/9rOUCu6gXzk0sv3oQ9XPYX1ezr6hhf3uBvEXvfO5zn3thYZp9RPrlDfXGUqPG+ozxfXhZo08+zdoRnzp8tSNeTk3vt67enOi9zJ7m7J+55PS9B7kOc9YmquuoJu+ffdSONH1+69HiO6y111xvdOasAeljrXOkbueznvWsb1vq2HvmRPboGbfeeit7Vs77bzzCkq+M/NA8AMNkkaPGyfWFTPEVV1zx9qo9sgZ/3Dt9tVh+YlNfKPZeXdxNp59++jcVos8eFa5ulj55/cTRjV0o9732tZrxhog+mLm8PGjPka/OvmrFzMul1ryohjh1+t671KvN+5N9zINZnxr7i1kj5z0zBvXRm7fWHOi8Pls0WtbJieayF/6Ip2aa6173utf/Vj7/BfP0CaJ7cZlnjx5Z/zEIexb9ZqMk+2nghjZ3wJgkzUnh9BO9YXB7nvSkJ/1RId/rnl0DSy3xx+vj+gue+tSn8lcfUw1kmTccTvPmzcXZ23WgtYf1oJy91MmLXQufOevsY07MvPNnj6xLvq/ffh2zv/WJ5LNXzqefaH84fVHOuF+PfNclT06j3h4gOrUjX23W64NZQ5x7aG/99caJtdceUofrE0stn7ahw6g9u8bNF110EXuW2Psm2j+xZPsZ+f1sdMAUdqQ4J9F3IeA0PvrRj95aF/Ghiv05zI/rqeGTnMsKj3rFK17xzEKNHDfTfvD65DDnTMwHMOdbb4+p2fLFGjX2ls8ac6kljza57hvby1iUt0/y5kRy5kVymvnslbq8p8nrz9Xbz3rng9fUGGdPOOKsN28P6+Hl8NWN/KxJXZXt2PvKV77yGYX8l/aXEtdY/XXRMj67zFxizQAAIERJREFUfqT5YP03YLeSU9PQeUdY0g3rI15ZHjAXt0qWIzdq7GLI4W+Ir7nmmncWxx9WTr8Ti49F+bsp/ij4+vpnx76jkI9LrQW9YfianLEon+sk53r11RHjY2rEBbtvfnnQGjWJ5HPd5uAxMf3Oea3wrhXfkbX4mD1GmhHnHIvqfa9qnddrtT9Kc/uq9nno6N37WC9aYX9jUA3Y51KvxliEd9iLmDXtqT+PYo9dv9xz5DH1fNJ93Oc//3nevSb9Es13rPSqlhwmLqLF64rLA5aC9BWDfbgoeeM9r3rVq3639Bye+y3rCqZ6NNil9cnOeWeddRb/0CP18GK5K5OHcJ7uG4Mjyzr7waWp2Yw3r94eXlfnySdnveuwXo0or84682Lq8FOXsb551wuP5TzZW19cqPfpiec2u1rQeTuq6XyP1eU65cTM7f3t3/7t8+oL+7mV/KelYPq97NJHe06N3fUp45sKmc9Bzl6iuUqtzDWuiO6sO2DZ0EZyHV3QCi+++OLP1beJfOzJBWK+NePXF5S9/EHw7V/7tV/rAes9iemH4Ws+TJEcvrE6+xGbU6sGzN4ZZ728WlEeTHM+12/OOhE+fXXymcPPeE7TexhnffZJX604l5PnOvVFar3+5PTNjeboGmO0+BnLcY/hxRX/5Cc/+T8R1P/Xmr/QmPLL33+hZx0PqH34j7/+67/Or5XIO5zLnsYdq2S4LvjJ5g4YjTT9xD6RC9uA9f8QfkM14YMM/x2E6RPFeud6bI371n8a8Jo3v/nNN1bebxO9IJE15LzGOX9y6fsg1ZLDjMnbe0rEi7waYyT6oL68HOvHsl6tSF7fOjCvXc1IZ806Tc/12LnslYg210+MqSHndcJp5o1B86BzJp9+1o/mR4ulTt/+07rq7w/vX7ov1167fqqomvgEkT15wmc+85nfKUQ/Gtm3+7SE09KXW/2eSmIoqmRvbuyiejzxT3ziE19btV+u8e+ixzfUBT/opptu+p2TTjrpZ4PPHvj0ADF8zJgbnybfOXmRPL4PTj1cDnhjNb1GXm3GcvTQF+c4+UXFxvkzp5+o7xyifEfzORd+3ldqrEsdXL8XXYd+xNkn54Hz+ZoHqc8ezimf6F6B0999/fXX85cZJ9V++/fRz55fVdwN3/qt3/r/LWuomxs5l/VilW2wDfzcO5gV2RjOYtAL0e+L233JJZfcUr/Ae0dpz67BL56/scZX3nzzza+vP5f6v8unxncv+xQ18WByxnKg3NJdrS9jdWrzQcmB+dCtSex+xtRjyeE7puRM3hyY9cb2EOG992pADB4T8a3rSA6D17IvnLmslTdnrXxHa73v5JnHuciTMy8WNVw7POb81oP2nPDBD37wS+sTwvfUAXt4jYfFuxcfvp1Te/OP6n/9xK+TXI9Irxz2hcM6LtjB67oDZhPLcsL0nTzRhe554xvf+HPVgG8Dn1zjQXVRr6v/LsfDpY5+HDSx3NXNwoe3P3G3/lDM++CIc83mE80nl755eqbJw6WfGnzWPzJqtKxPnry55PXNqct+3c/1W5919hJ7vbGYPbKPebFffz6brFOX+dGaXR96hjE4cVddddXuc84555n1M9hfcsiKf1gN7ME19tZ/mvKyQuvFVT2aTUalVxr8/SwXbjI5L3IOOaDm0pebsP4PIPeuXz4/rT4O/VD946N/XjUsHEvER8+FYsTpT+SStw6OGsw59e03yqtJTN+aziVPDuO6XU+uYUrWS9bouzY0c5w97aNWnjr7dM4aeWNRvteTz1zXZz59anovudSxZp8pPL7X4bzw1iaHLt8QiHNQZ16c8ve973131u+53lC/cP760lxR48z6cOPv6h3tovJzLtZDvBlmjX6VTUa8MhYwMvlE/NHgYka8HP3xNfwNi1jG3mxQc/EjvZreG340t7qO6kXmsl7tKAeHdc2CnedH+eScX+5Asd8r65N3js6NtHDqErlunxl85qjB5PSNRfmOmSen5b1m36GD80CJcI5yd+ysd7Kd9QcQL6t/tu1xdbiufMMb3vC9z3zmM68kWUYfhgcr/eSSt8b6RPzJcsFyYPIuVC7jrfi9X86DnwvNmN6Zw8dAcyCWaC4fgJrUyYFY5pjDhzUll3l7pzbz+Obkk5ur95p6jdcsb/1cLG+/Xk++cxlblwen16hXC8qpHeXUiGgxYrk5VMf1O+C6D+dzI4d1dA5y+qBjswOlTux9iFfG76BG5qLIdT/jUa0cC8ASXRQXgXkx9jRPLuuI09Az0OiTt89m2LXq4THjRNeTeX11xCMd+REvZ32P6dcNTer11dnDOLHnPEjrNDlf6pjX55h8nyNz3Xf+vAbrRWoybw84NebBXJN5EB7c6thMX60mcw7jDTh3wBDlojPuPrGWk+kn4jusAfNi5NW5DvuQz5z5RH17JWZOP3vDyWedmsyln1p7WENOv9cQmwOtzRp8LfVyc2hf8/aX773kU7/Op16j1np5ubl55K0DrRXt4Tx+Z5Jacl1HjHngjNXdEVx0XLzaT67HE+9FKErMnH7iVnz6qcve+Cwocy4QDt9857OmZFMPteZGKGdNIj7WNcbiSDMVLl9Sl9oR75qzvvu9Lmu632uN53TyIANjvowncsnhqxv563LosZGmz2cMup6peFkP1+8L+eStHenQaugw50xfTsxc943BDbaVdzAKcqHpb2i2DHLRUC6wI326dtlixVuv1rmtUy8vwqeffbqfOnxjEb2WnL440sCZZ834c2s3T82dNXv1uegLZ97YNRKnZb2+iC79rNPPPO8kXr886Nxy1natPDjSymcu373g141en9pRDm5T8+LmhJkf+XJzSF9zfY68Eerg1Js3VtP7yI90cJ3P2F6py7y868pc1roGdZmjZu5aRvyo15xOPmucOzF18MSuK/25mlG9fTK3mW9e7D0673rgGaP7r6bnNtNb55yJ6aMjHnG9h/EK172DIeqLzlhfXDUtx8XA5eJGMfVq9NF1M2dv5xXR64vZI793n9NaBzKcK/VyqSWPWdPrqXF+daC8vvXEaeicL/mRn+vTt97YuuTTzzx+5rKHfNe4VvOiOhDLXsT9+s2LaDS1ORc5tWD61olz+RG/ro/9hujihskiR/nk5nz6ZW6uf/Kp54Iy7r755N3AciBDLXPJ6YtqrIXHjLPPiEvtVLh8USuXsT3nauVdGzji7CMuZRP0mszhmxfNZ4zfe5vvmPW9bt23iL3PKLYfc+irc96+TvnN0D4iev2OmbOvGuMVbvYOhpBFd+vcZnGv77EL7OgNk3cekT76aPAZ6sudTE1i16gVR72sR5PzWZOYWn3QOjFr0rcmufR7PfHIOm8sOo8xPfDl7SnnzzVd1+uzDt9+qUuN/cHUpK8elKevPtgH2nVmLZoD9XvNfvPc0QNmI2+aMTjiMj/yRzXJ4Xvx8iL99EEHPDaK5SfBUtM5c513ruThWJ85YzUZw3WzrvPGWT/y5+rznunbU8x1yzlH5qyfm8vaRGvg0h9pnHOU6/W5Btdof3PGYvZNv+czTr+vIXvM+ls5YBS76LlGdySfi8fPeK6fvOjaMrYPHMNYLZiWtfJyYueJey7nUb8Oqaem97FG3r5qjXu9vPWivCgPds4YpL9zoNXUjGJz1qNJrteYm9Pl/K4ntfaTU5994dZZatXdGc4eE271gCHebKE23qpOvTi6KHuJaPF7bA9+DsscPDG9sy41c3nX0/Pw/ee9oiazb9b0XNabE603nkP7k9f3Gq1x/caiusynry6x512nvJg1+PJicqnNvLycc1krb5x6coysMb8ZZt/UzvGpmfUP5IDR5I4sfHbymYRziMp6DC8nenNFa9V23jrzIjoPERyWWmI0Wubw+zzq5K1dp7UGtL/1cN2H6+Y88PTwgwbizBFj9kxcZBav1oAjzRxnj6zvHHHPz8Ujrf28p8Z3BJ13Xe1WNDsO9IDlhD705O4qn97ZP302viYvwnPhxHIiOa1zHqbOo+9cxvjO1zF1zjvql1w+tLn67NX9rdTP9bVWTJ0cKC+6htTAzeV7zp693r5zqN48sUMO7OvIHH7v0/OjeMs1d+aAjSbe7GJGNSMu++iD+tToi3McPGa9N4cYX0SDZb8Fs+81c/q93h7OY7X6jJ0fLn01idbb13nFUb3a7IOffNanLjXJW0+d74hoGXCa9WLyctaAcnO6zve5er36uxIPeI67+oDd2YvxYdPHG9jRXPJcOLGcmkR8DE3eqM1qMm+9mH1GXK9VA44s16Y/6tFrXYc15Ed13qe5enh7rdP0nHHOn5x+7z3Sdw21XkvmRrXOc1dhzneHeh5sBywvwps64ry56zRZp9/rsl4/MW+wvL069nyP0cP1nsaplxvNkTn7wY3qU2svtYnpqwOzXk2+a6lVJ67j1djPOOczJ7cVjVrnHuHoHo10dxl3MB8wLtIbIuaFw3nj8VPT/c3y9O01cFjyGcPnRui61OKnqbXeGI3XhN/ngEtTO1efWnz18s5PbA+5rrUmcZ1mlINj5FzZb85Xn3m4/KU3uZEua/7F/YP1gM3dKPmOeeO2klOv1hiEk++bxFzfKL0+4/Ttm1z6ufnkR2uYm7/X91p7gpnTF9URy4mZ6z4arlEt2Dnzauixzjcnpj7vZ+bRHBR2sB4wb443UITHZ3BDk69wFY/yqdUXqcWM82HJLRQbX82pN0bl+sSsRJe89alJXz1c1iWf+q4zl/NkH/PWiV6PaL3ziqlHow4e6/ULdh9vLPZ6eHukRm6kV/evigf7AePmcBMZ3ERvaLkrTh/E1Iibcevy/cH1nuZHfHLMgcFZMxHxMtKnFt/69Ed10XY/N3tm0p7J4asXk+vaHo9qRtxcT7QMr1tdctmP/EFlh8oB86a5mRK9wXJo5/xRLuvT73P2WmNr1IvyrAV/tCY11ozQenPZR26EOefcPJ03dk5Qf24Oa0R1GeMz7KcG7Dpz8s5vbL7XJn/Q+IfKAfPhcOO44VjH5NL3AfnLZHLYXL0P0vxCvU/fY/tnz+67fnvbo6O9nFt91suNtJ2zf9bLgfLp9/6jXNa5VnSY9emrB3ve+tRQi6kV57hJfDC+HAoHjPuWG8cH0u+nvFrrRmitNXMae4F9bFbjHOrcQPLZu+fU3Bm0Z+JcPzXkXdecNnnq0ozFzOnTv1vq+/yZ0wdHfXrff/X4UDlg3ihvqg8BlFMjbpZLXfrZb64HvA879fTJGnOJbg7RuUdInfOQNxaTw9+K2c/5XVuvTT59dMaiPXsPYnOiGn+fZtzz8qJ5Uf6gxvy7voN6ocvFeXNF6PR94F4LD9E8mL4auF5HLrn0uWfEoPePeDSK3tBnFI/WhA7L3/OsW/9CvfFVfe+f67QCDuuY3CRYauyZnLVyYOq6rz6vsdf2GmLrUnvQ+ofaO1jeSG+0mDl9cvmQurbHHJh8iB4m+qH1QBmL9lFv3BG9Ri7ngpfTzxgubS4nDzKw9BfMPi415qzpsdpcd3Lovd8d7QlvfR4u9dmj+8SHlB15SK1232J5qD6kfexGLx8YmV7jxsgqavIQWQfC55zWJzpnctRi9mVT9bx94Rn2KXelxe9mn6zvGueVR+u1yIGjueWpcU0gX5jzOsz1tVOPmQcZqcPf7KD1mio5NOxQfgfrd5gHhYmLaOOrDzo3GHqGG9H6RDWJdM5YvX3y3qrLmpEvJ9rTGOxmb7WgGzK5kc61imqYA84+xqDmvTQGU2/c88Zz9dZ5HeoPSTxU38G82T4EEMuHJieaM0avD7o5RDdYbj5qjPGznhiznpx9p8TyxRrXAzoXEuuX8tUc8llvfzlr6NdzvV6ttSK8tdmHekydaF9yatRljN+1zoNes0YcadQe9OhNOugXumaB+QDcqHld+qA+7dBiIrn01cJZK1JnXkwO3w2ir67z5kE0mYdL2yyPts9jLHaNPPPqoyH220B883DGIAanNrHr0Mrha3LMb09RzSGJh/o7GDc9H4QPCj43S+rgzflA5ajPHH4/dMTo+BbQue1jrlKrutSw+dC4Cc2J1NnLdcBp6Jyj6zKHnrw9xK6hl0bOnnDWW8Oa1ZDX5NTDw2k5t9dNDp44jbqszdwh6Xvxh+TiZxbNNfGQcvMoletIjYMcviifHP3k9ROdv28gNG4yNPRIjRw6jHgrRh8s6+F6PInqpefkRedlbfqgA505uPTVyKOV009c55M7pG07vIP1B8DDxEA3HrG+m4sDpAaO4cHLWD8xdVU21ZJPUy/nulIHlx+GELsm0HnokTwxfeAw5yJW5zziJFy+yHWth9181vD/0Ib3MOHn/GqTUyOicU5967YlbscDxoPigWI+7EW0ePVhk2MDqyUrl7wcOoY5Y+rskRx8zo9PXm6E2Sfz1pm3dx5ANeTwja2hn3pzaNO8NjgOErHrsA+cB1FfDagOP3n9oie+x/DbzrbrAePh+aB9aG4qcmwMbKSB9+GjQ8OY87OH2qyv0snkQHRsUpDYYS83t/nkS77a+PLW+27oHHmdctY7PzG5NOeHwydPb3yMviPf9aJ3PntbI0+fbW/b9YCNHhwPlocM+pBzI7E5GGgS5ZMryaQTyWGi/Rfs4lXOjdkPg3zORyV1GJg1rBPLOYm9RnmR+szZixrM9SVmDd8iWp/fLlJLLziMGg3fIcd6usbctsPD5YDlJvMBd86Hy8N388LhM3aecsopO0888cSjPvGJT3gw6WGfjpUamjo3mcgmxbenvk3UkR/lXLP9qdvMt6dzeF3wc8P51YKux35qnD97OddhgT6Uw+Ji4yJ98FD4xiN/yt3jHvc44rOf/ex/u+KKK/725ptv/oV3vvOdX72s4x5yOEC+YIFy8ObkO6YmtelnP/3so1YcaVKvj94Bl+tXs+t3f/d3z7vyyiv/4/K68hAVtd/9g9PUGh926Mbajhee16YP9sFGgmOjdZw2Wb1zTYfryCOPfPzevXs/vnPnzvuU9sg9e/Zcce21177tpS996e+88IUv/HxxGD1G1jebsUjNnD/q17mcd+Qn12uJnRvc84IXvOD0Zz/72U87+eSTL9y1a9e5CG688cbfOOGEE36qXL4dRAfyDua7GGguObTZX7/oFY+/7Wyzm34oX3Bemz7YhwfMr9getOmr+T3vec+dn/70p1+zPFx/VAfsj+tgnXjEEUd8dR20h1e/s2vsvv322y+pbx1//8UvfvGfvupVr/pSzFPuhk3k5uqITjNnvBX0GrtWXjTPHMnt/e7v/u4TX/SiFz353ve+N4fq/Mrvquv9VOElNe7F9da793877rjjLq64HyYPloeO/gwPmtckX6mVmVsR28XJG7xdrsnryGvTB3Pk4YIn5oBNh+2000474qqrrvqt5eH6w9ps76jcjt27d9tvR2260+uwPbzwYZU6uUadvz2fuOGGGy659NJL3/PjP/7j733Xu951I3XN3FQi6Tm/lQ7D1ZqWWWOR3lyXtvexj33sCfXu+3XnnXfeI+pny6+pazi3Bl9Yrq5rvaSu828Kr6agrnFv5f5jja9bHrL/p2gPmcgcHrQ8WPgYecdELF/gtqV587fjxeW14Rvrg3nA9KcDdq973euIT33qU6+tjfXNtck4XH88ukkettJxsu5XeF5twvNKe04NNuvtxV923XXX/c+PfOQj73/Tm9700Ze85CWfKR7LjYXvGtmQ+uiwzOuL5j1AyU/F9bLz6U9/+t2e//znP/zcc899RH2r99X1LnX/4rnePXV9nyz858K/L/xEXBe9tJ1V88wKHlGH7NX1Tvafy/dA+c7lwRKp74N+2Td9ctvG+kPcNhdWF5LXhm+sD3qowNU488wzd9WHGb9dh+Vbiudgva0OifUVTr322xRuSgRVe2Rt1vvXhvTAnV00c2A3Vb9P33bbbZ/48pe//Imrr776sksuueSff/Znf/bSj370o7ctJNPrfnNELt3V2h7xiEcc+2M/9mMPuOCCCx5w6qmn3q8O0tn1DnyfGveugrsti26vtV1Z/qUc/vqC8LHyb3H9tfZ183LI+MDjEbfccst/OfbYY59fPofJQW36xH0U9W8HjJtwKNtq09VF4Bvrg/2AwR3x4Q9/+OFf+ZVf+ary71vj+hr/vcZ7alznQatNtle/eIxaNpIINxkbtzbtsbWp71t1pxd5rxqn18bG59tKajDqb61xc2lvLryp8Kaqv7Hmwr+hOL4tPa76HL/E4wqPZVSKcRySGtq1Vce3edMo/xPV6+NVf2s7UK5btF7kYFXpHvCMIp9T46T6IvHrRx999E+Un4cq/X64iDGx+1Nyu7zkg9gu1+R15LXpgznygMGv3sXKP+Lyyy//trPOOuvZdTi+tmI2zQdr/FVtsg/XJuNbP/RsFPvnpoHbL1ebmhre4fbg18E4qsLTqx8H7p7lH1+Dg3LMcnB4Vn5x2C2OOjC3VH6K8Yvni8DVxV0NFje9IzIfhcxZPutybSJpfG3D+mt9rJP78Kga59S4rXr9j3r3/Y2v+IqveEvFHiqQPiJ+H0VtmCvnJbdtzI2xbS4oLiSvTR/sIw9ZHrCV/yd/8ifnP+Yxj/n++kr9rVV/9xq8q72/xl/XJv5Ubb5p8y4PXNGT9U2zszYk72STthSsA404bf6psl7ULWv2cjCWub0cEGI0IrnQrOqXNcDa+esaeEd2jh1eU9Xdr8aja/z7GsfUgb2yPq5/46tf/er/+rznPe+zxXE9fXBdcKB+uasYLq3HmTukfR7udrW8Nn1wNDxM5PTF6UMP+Ac+8IFH1y+YL6qf0Z5Rm5uP6PkQ4ws1+GDg72uDXlYbkx/2+cBjtVmJl8ZGci1yojk320inZvokk4NmcaE5ubX1UcdhomY6YOWTOrfGBTUeUuO0GjfXryH+rD6k+c2HPOQhf1lxHqjRhxv9cE39qw5Lf8EsOP1thaOHsF0uMK9NH5wbHigQjfHqgAW3qz6Nu2d9Bb+ofk/2LfUBwtdU7uga/Iz0T8vxz4X5aeHOOnT0ZYOBaZ1bF/ccfTq3Lt67PER8EeDnKbT8LPjAGg+q8e9q8HPcjfWO+Pdf+MIX3vXc5z73d8quKy4P1jqfnnnIiBlY+sZTYju+9Ae9na4xr00/EZ/hgdL3YPVYfj984hOfeOIrXvGKb6mfRR53zDHHfHX15Ks+dm2NS2tcUYMPFz5ZG5pD6OZmE3rwoA/I/v92zZ+3jiqI4kaKG0MTpUCisEXSgYRER0PpypU/hBt/Bxdu/CVc+oNEokqBRGVRIAGFU2AJhcgIpEDBnPfeLz6MZ++760eQvJuR9p0zZ+bevf/Ga69f9BVdlk/KxVNJBUSHKiT5gSoefRNF17O49LTS20W9qv8hfv17cXl5+fzw8PBF/A9Qf79RLK2C8hj5FFLG6PJtsWUuf1L2dgMmNavlZPLc5KPBHSk0xzvFFH1UcfpZxM7Pz58eHBx8HU+3r+Lp9nm8cKDgNDJ9peoqLr3Vu17513H4f4vD779e6kmjw/kvWxXJQm/wR9FWbyd1X7040aXX9CqqJ3Fh12/evPn26urqm7Ozs+fxd5V+IPDkcfQCcq5xVD5FRR+6HxpcKFvMZUmn98mBm97MbouJuTFXikE6nKKRDxdmXmneJnP5W0dHR4+Pj4+/3Nvb+yK+MfHZ9vb2bsh6Va+3g5gOmr7xoRcov6/wz8C/7Vq8EQxfb/T0qyv4YfCP7NKbSI0V+yueTr/E31E/xv/dvo+vdF1eXFx8F9/i+DUSOPhCCsJ5VUBDmrfzfsVlGV1bJEztY3EApjYpm4/PD+4oni8vKsXWFVXOz/3ha1jisg/ijeTWycnJJ/v7+093d3c/3dnZ+Ti0J1F8j/X0iaeeLr2uVxHperTCgC0VGoWn4vkjrtfxN9PreKq9in8Av7q5uXkZT6af42taP52enr6MJ5Xa+QHPBeA+hebYw72PivsYxGXKm6yx4VOdYJ4fvjBzNApGPrwX6aNCrTE6XCiT7pZ9j7V4Pqz4FbomTgGJu4/ei7R31Jjly8Cld9dHnwTqp+JcTRvtB5mNB7UuOlQqLiG5jspVnL4Ua10RvtOPa5nLd+PePkaPi3us4tK4yMcXUkho+BmrXNqA6l8mf5Y21wLThuuw+sYPHV6KywtN7Xiq0VersOibHB02tBZXTOa5S2X56eNHdy1zfGHmaCAFVfmtGOMQcg+0dT55k8G5FZg2mMOaed5U4iokGYVGkXgczVFthnxiQpnyMOdowqzr/pW5Dq/QNfHWlQuKXNcZCzGhDFx6M/uceoFpc6uD6Ro5fhDQdBxyYamtX+S6Rv+uqS/XK1+ajLyl1//pc1Ar/ApdE9/04n70K99tSPecyfH7buRDWoihOaK3UDGP42fUemQttyOnQtcyl99rfogrjibMvPLJc9RY3Iejt1AxTO0mb1N/gmkDtZEcdt9Q9HUbTZ735cUkfcj3GLxC18Rl1ZiXkfozz8N9eIWuiVf+Ok0j8rb4juKzs7Gb+JAXaGiurldcGrrjWK618zbuZ1750lpGEZDjPryFHss8+7qHa5XvmrgbbV2bJGfDJzm5YlKt+Xqs4mgV9moaUs51jSGTg9+L+eDig+oH7uicnEoj1kLFZLRferefQ/ptxoTYfTfyIS/Bujl7fB0nPha1frkNa4qOD2Z96KBmHR9Uf/BN0ftinPSJ79iKed5keN60yUyscyKt+efYkO86PKOG09IYLjn43s41+NCBzTo+qPZw8D7aunH0xsmbHFYbOrlJdkxo3TpUcdc24Rqet6/8jiksUrxYJLR8j43lVd+LAdiH92nyvGje2HnNvp5tz5pUOa45113G+owst0PPOHSYsz7Gz7m6Z6X1jiXnzcLv3cBZLMbAJHvWqMrp0aochtGKkePYOvw5ln3106v5PYfa5ZzZ+mM3cbYLtZp473q18oZiQ/p917wqGPU1pK+LMY5We3Le42oF/utNnePCjlnD3tzevLzevYe/N0/9j8nN45m9f9+NnP3CdSzApms7tv2mhbBp+44lmV/K2E2c3wq92xn/X+v/vnje7T4O9v4PRqxOxnwQYu4AAAAASUVORK5CYII=", Z0 = "v2.0.1", yd = `CSS3DRenderPlugin@${Z0}`;
6571
+ let rw = class extends Dr {
6574
6572
  constructor(e) {
6575
6573
  super();
6576
6574
  f(this, "five");
@@ -6698,7 +6696,7 @@ class aw {
6698
6696
  const { container: r, dispose: a, css3DObject: l } = o;
6699
6697
  this.container = r, this.css3DObject = l, this.disposeCss3DObject = a;
6700
6698
  }
6701
- this.contentElement.style.width = "100%", this.contentElement.style.height = "100%", this.contentElement.style.backgroundImage = `url(${Ky})`, this.contentElement.style.backgroundSize = "100%", this.contentElement.style.backgroundRepeat = "no-repeat";
6699
+ this.contentElement.style.width = "100%", this.contentElement.style.height = "100%", this.contentElement.style.backgroundImage = `url(${ow})`, this.contentElement.style.backgroundSize = "100%", this.contentElement.style.backgroundRepeat = "no-repeat";
6702
6700
  }
6703
6701
  enable() {
6704
6702
  var t;
@@ -6741,7 +6739,7 @@ void main() {
6741
6739
  }
6742
6740
  `;
6743
6741
  function hw() {
6744
- const n = new P.PlaneGeometry(0.4, 0.4), t = p0, e = new P.TextureLoader().load(t);
6742
+ const n = new P.PlaneGeometry(0.4, 0.4), t = y0, e = new P.TextureLoader().load(t);
6745
6743
  e.encoding = P.sRGBEncoding, e.minFilter = P.LinearFilter;
6746
6744
  const i = new P.MeshBasicMaterial({
6747
6745
  map: e,
@@ -6804,7 +6802,7 @@ function gw(n, t, e) {
6804
6802
  var w, E, M;
6805
6803
  if (!t)
6806
6804
  return;
6807
- const i = E0(t);
6805
+ const i = M0(t);
6808
6806
  if (!i)
6809
6807
  return;
6810
6808
  const s = new Pl(n), o = (w = e == null ? void 0 : e.scale) != null ? w : 1.4, r = i.center, a = n.camera.position.clone().sub(r).setY(0).normalize(), l = n.state.mode === "Mapview" ? n.state.fov : 60, h = Math.max(1.5, i.radius * o), u = h * (1 / Math.tan(P.MathUtils.degToRad(l / 2)));
@@ -7016,7 +7014,7 @@ class Lo {
7016
7014
  })))
7017
7015
  continue;
7018
7016
  }
7019
- if (((M = this.config) != null && M.noEmitWhenHide || A != null && A.noEmitWhenHide) && !Th(D))
7017
+ if (((M = this.config) != null && M.noEmitWhenHide || A != null && A.noEmitWhenHide) && !Sh(D))
7020
7018
  continue;
7021
7019
  if (g = !0, e === "hover") {
7022
7020
  if (D._hovered)
@@ -7304,7 +7302,7 @@ class kw {
7304
7302
  }
7305
7303
  const FD = (n, t) => {
7306
7304
  var C, I;
7307
- const e = new Mt();
7305
+ const e = new kt();
7308
7306
  let i = (I = (C = t == null ? void 0 : t.initialState) == null ? void 0 : C.enabled) != null ? I : !0, s = !1, o = !0, r = null;
7309
7307
  const l = F(F({}, {
7310
7308
  lookAtCurrentCamera: !1,
@@ -7534,7 +7532,7 @@ function ls(n) {
7534
7532
  }
7535
7533
  return -1;
7536
7534
  }
7537
- function Pt(n) {
7535
+ function Ct(n) {
7538
7536
  return n == null ? "" : n;
7539
7537
  }
7540
7538
  function si(n) {
@@ -7784,7 +7782,7 @@ function l1() {
7784
7782
  function Cd() {
7785
7783
  return l1(), a1;
7786
7784
  }
7787
- function yt(n) {
7785
+ function wt(n) {
7788
7786
  Io.push(n);
7789
7787
  }
7790
7788
  function zl(n) {
@@ -7821,7 +7819,7 @@ function Rw(n) {
7821
7819
  if (n.fragment !== null) {
7822
7820
  n.update(), lt(n.before_update);
7823
7821
  const t = n.dirty;
7824
- n.dirty = [-1], n.fragment && n.fragment.p(n.ctx, t), n.after_update.forEach(yt);
7822
+ n.dirty = [-1], n.fragment && n.fragment.p(n.ctx, t), n.after_update.forEach(wt);
7825
7823
  }
7826
7824
  }
7827
7825
  function _w(n) {
@@ -7874,7 +7872,7 @@ function ds(n, t, e) {
7874
7872
  const { delay: d = 0, duration: m = 300, easing: g = xn, tick: p = oe, css: v } = s || ru;
7875
7873
  v && (r = tl(n, 0, 1, m, d, g, v, l++)), p(0, 1);
7876
7874
  const b = $h() + d, w = b + m;
7877
- a && a.abort(), o = !0, yt(() => Ds(n, !0, "start")), a = tu((E) => {
7875
+ a && a.abort(), o = !0, wt(() => Ds(n, !0, "start")), a = tu((E) => {
7878
7876
  if (o) {
7879
7877
  if (E >= w)
7880
7878
  return p(1, 0), Ds(n, !0, "end"), c(), o = !1;
@@ -7908,7 +7906,7 @@ function Qo(n, t, e) {
7908
7906
  const { delay: c = 0, duration: h = 300, easing: u = xn, tick: d = oe, css: m } = s || ru;
7909
7907
  m && (r = tl(n, 1, 0, h, c, u, m));
7910
7908
  const g = $h() + c, p = g + h;
7911
- yt(() => Ds(n, !1, "start")), tu((v) => {
7909
+ wt(() => Ds(n, !1, "start")), tu((v) => {
7912
7910
  if (o) {
7913
7911
  if (v >= p)
7914
7912
  return d(0, 1), Ds(n, !1, "end"), --a.r || lt(a.c), !1;
@@ -7951,7 +7949,7 @@ function Ti(n, t, e, i) {
7951
7949
  start: $h() + g,
7952
7950
  b: m
7953
7951
  };
7954
- m || (E.group = Ji, Ji.r += 1), a || l ? l = E : (w && (h(), c = tl(n, r, m, p, g, v, w)), m && b(0, 1), a = u(E, p), yt(() => Ds(n, m, "start")), tu((M) => {
7952
+ m || (E.group = Ji, Ji.r += 1), a || l ? l = E : (w && (h(), c = tl(n, r, m, p, g, v, w)), m && b(0, 1), a = u(E, p), wt(() => Ds(n, m, "start")), tu((M) => {
7955
7953
  if (l && M > l.start && (a = u(l, p), l = null, Ds(n, a.b, "start"), w && (h(), c = tl(n, r, a.b, a.duration, 0, v, o.css))), a) {
7956
7954
  if (M >= a.end)
7957
7955
  b(r = a.b, 1 - r), Ds(n, a.b, "end"), l || (a.b ? h() : --a.group.r || lt(a.group.c)), a = null;
@@ -8076,10 +8074,10 @@ function me(n) {
8076
8074
  }
8077
8075
  function fe(n, t, e, i) {
8078
8076
  const { fragment: s, after_update: o } = n.$$;
8079
- s && s.m(t, e), i || yt(() => {
8077
+ s && s.m(t, e), i || wt(() => {
8080
8078
  const r = n.$$.on_mount.map($0).filter(ni);
8081
8079
  n.$$.on_destroy ? n.$$.on_destroy.push(...r) : lt(r), n.$$.on_mount = [];
8082
- }), o.forEach(yt);
8080
+ }), o.forEach(wt);
8083
8081
  }
8084
8082
  function ge(n, t) {
8085
8083
  const e = n.$$;
@@ -8241,7 +8239,7 @@ class Hw {
8241
8239
  }
8242
8240
  let cc = null;
8243
8241
  const Nw = () => (cc || (cc = new Hw()), cc), ea = () => typeof window == "undefined" ? "md" : Nw();
8244
- function Ct(n, t = 16) {
8242
+ function It(n, t = 16) {
8245
8243
  return (Number(typeof n == "string" ? n.replace(/px/g, "") : n) / t).toFixed(5) + "rem";
8246
8244
  }
8247
8245
  function Gw(n) {
@@ -8368,11 +8366,11 @@ function Uw(n, t, e) {
8368
8366
  var m;
8369
8367
  n.$$.dirty & /*fontSize*/
8370
8368
  64 && e(9, i = au[u]), n.$$.dirty & /*fontConfig*/
8371
- 512 && e(3, s = Ct((i == null ? void 0 : i.name) || 12)), n.$$.dirty & /*fontConfig*/
8369
+ 512 && e(3, s = It((i == null ? void 0 : i.name) || 12)), n.$$.dirty & /*fontConfig*/
8372
8370
  512 && e(8, o = ((m = i == null ? void 0 : i.padding) == null ? void 0 : m.room) || [6, 5]), n.$$.dirty & /*padding*/
8373
- 256 && e(2, r = `${Ct(o[1])} ${Ct(o[0])}`), n.$$.dirty & /*fontConfig, padding*/
8371
+ 256 && e(2, r = `${It(o[1])} ${It(o[0])}`), n.$$.dirty & /*fontConfig, padding*/
8374
8372
  768 && e(7, a = ((i == null ? void 0 : i.lineHeight) || 14) + o[1] * 2), n.$$.dirty & /*textHeight*/
8375
- 128 && e(1, l = Ct(-(64 - a)));
8373
+ 128 && e(1, l = It(-(64 - a)));
8376
8374
  }, [
8377
8375
  h,
8378
8376
  l,
@@ -9846,8 +9844,8 @@ function W2(n, t, e) {
9846
9844
  1207959552 && e(14, g = c || ae), n.$$.dirty[0] & /*wrapperLabelVisible, isHovered*/
9847
9845
  671088640 && e(13, p = d || ae), n.$$.dirty[0] & /*mainLabelVisible, wrapperLabelVisible*/
9848
9846
  1610612736 && e(12, v = c && !d), n.$$.dirty[0] & /*fontConfig*/
9849
- 268435456 && e(11, b = Ct((i == null ? void 0 : i.name) || 12)), n.$$.dirty[0] & /*fontConfig*/
9850
- 268435456 && e(10, w = Ct((i == null ? void 0 : i.area) || 10));
9847
+ 268435456 && e(11, b = It((i == null ? void 0 : i.name) || 12)), n.$$.dirty[0] & /*fontConfig*/
9848
+ 268435456 && e(10, w = It((i == null ? void 0 : i.area) || 10));
9851
9849
  }, [
9852
9850
  M,
9853
9851
  T,
@@ -12329,7 +12327,7 @@ function Z3(n) {
12329
12327
  }
12330
12328
  return e = l(n), i = a[e] = r[e](n), {
12331
12329
  c() {
12332
- t = U("div"), i.c(), y(t, "class", s = Pt(`floorplan-plugin__floor${/*isCurrent*/
12330
+ t = U("div"), i.c(), y(t, "class", s = Ct(`floorplan-plugin__floor${/*isCurrent*/
12333
12331
  n[1] ? " floorplan-plugin__floor--is-current" : ""}`) + " svelte-bl8zrz");
12334
12332
  },
12335
12333
  m(c, h) {
@@ -12340,7 +12338,7 @@ function Z3(n) {
12340
12338
  e = l(c), e === u ? a[e].p(c, h) : (Me(), Y(a[u], 1, 1, () => {
12341
12339
  a[u] = null;
12342
12340
  }), ke(), i = a[e], i ? i.p(c, h) : (i = a[e] = r[e](c), i.c()), V(i, 1), i.m(t, null)), (!o || h & /*isCurrent*/
12343
- 2 && s !== (s = Pt(`floorplan-plugin__floor${/*isCurrent*/
12341
+ 2 && s !== (s = Ct(`floorplan-plugin__floor${/*isCurrent*/
12344
12342
  c[1] ? " floorplan-plugin__floor--is-current" : ""}`) + " svelte-bl8zrz")) && y(t, "class", s);
12345
12343
  },
12346
12344
  i(c) {
@@ -12484,7 +12482,7 @@ function sf(n) {
12484
12482
  if (!i) {
12485
12483
  for (let l = 0; l < s.length; l += 1)
12486
12484
  V(o[l]);
12487
- e || yt(() => {
12485
+ e || wt(() => {
12488
12486
  e = ds(t, _t, {
12489
12487
  duration: (
12490
12488
  /*duration*/
@@ -12978,7 +12976,7 @@ let fs = class {
12978
12976
  /**
12979
12977
  * @realsee/dnalogel 版本号
12980
12978
  */
12981
- f(this, "VERSION", "3.69.13");
12979
+ f(this, "VERSION", "3.69.14");
12982
12980
  f(this, "NAME");
12983
12981
  f(this, "five");
12984
12982
  f(this, "workUtil");
@@ -12986,7 +12984,7 @@ let fs = class {
12986
12984
  /**
12987
12985
  * @description: 插件事件钩子
12988
12986
  */
12989
- f(this, "hooks", new Mt());
12987
+ f(this, "hooks", new kt());
12990
12988
  f(this, "staticPrefix", Dl);
12991
12989
  this.five = t, this.fiveUtil = new Pl(t), this.workUtil = this.fiveUtil.workUtil, e != null && e.staticPrefix && (this.staticPrefix = e.staticPrefix);
12992
12990
  }
@@ -22586,7 +22584,7 @@ function W5(n) {
22586
22584
  let t, e;
22587
22585
  return {
22588
22586
  c() {
22589
- t = U("em"), y(t, "class", e = Pt(
22587
+ t = U("em"), y(t, "class", e = Ct(
22590
22588
  /*rulerItemProp*/
22591
22589
  n[0].state ? "em-solid" : "em-dotted"
22592
22590
  ) + " svelte-1h27ktp"), y(
@@ -22601,7 +22599,7 @@ function W5(n) {
22601
22599
  },
22602
22600
  p(i, s) {
22603
22601
  s & /*rulerItemProp*/
22604
- 1 && e !== (e = Pt(
22602
+ 1 && e !== (e = Ct(
22605
22603
  /*rulerItemProp*/
22606
22604
  i[0].state ? "em-solid" : "em-dotted"
22607
22605
  ) + " svelte-1h27ktp") && y(t, "class", e), s & /*vars*/
@@ -22622,7 +22620,7 @@ function Wf(n) {
22622
22620
  n[6].width}px`;
22623
22621
  return {
22624
22622
  c() {
22625
- t = U("div"), y(t, "class", e = Pt(
22623
+ t = U("div"), y(t, "class", e = Ct(
22626
22624
  /*child*/
22627
22625
  n[6].state ? "em-solid" : "em-dotted"
22628
22626
  ) + " svelte-1h27ktp"), y(
@@ -22637,7 +22635,7 @@ function Wf(n) {
22637
22635
  },
22638
22636
  p(s, o) {
22639
22637
  o & /*rulerItemProp*/
22640
- 1 && e !== (e = Pt(
22638
+ 1 && e !== (e = Ct(
22641
22639
  /*child*/
22642
22640
  s[6].state ? "em-solid" : "em-dotted"
22643
22641
  ) + " svelte-1h27ktp") && y(t, "class", e), o & /*vars*/
@@ -22675,7 +22673,7 @@ function U5(n) {
22675
22673
  let g = m(n), p = g(n);
22676
22674
  return {
22677
22675
  c() {
22678
- t = U("div"), p.c(), e = re(), i = U("div"), s = U("div"), r = Re(o), y(s, "class", "PanoRulerPlugin-rule-label-name svelte-1h27ktp"), yt(() => (
22676
+ t = U("div"), p.c(), e = re(), i = U("div"), s = U("div"), r = Re(o), y(s, "class", "PanoRulerPlugin-rule-label-name svelte-1h27ktp"), wt(() => (
22679
22677
  /*div0_elementresize_handler*/
22680
22678
  n[4].call(s)
22681
22679
  )), y(i, "class", "PanoRulerPlugin-rule-label svelte-1h27ktp"), R(i, "left", l), y(t, "class", "PanoRulerPlugin-rule-line svelte-1h27ktp"), R(t, "width", c), R(t, "left", h), R(t, "top", u), R(t, "transform", d), R(
@@ -23801,7 +23799,7 @@ function Hs(n, t) {
23801
23799
  t || (t = n);
23802
23800
  var e = n, i;
23803
23801
  do
23804
- if (i = !1, !e.steiner && (Bl(e, e.next) || At(e.prev, e, e.next) === 0)) {
23802
+ if (i = !1, !e.steiner && (Bl(e, e.next) || bt(e.prev, e, e.next) === 0)) {
23805
23803
  if (Fr(e), e = t = e.prev, e === e.next)
23806
23804
  break;
23807
23805
  i = !0;
@@ -23827,10 +23825,10 @@ function Br(n, t, e, i, s, o, r) {
23827
23825
  }
23828
23826
  function AC(n) {
23829
23827
  var t = n.prev, e = n, i = n.next;
23830
- if (At(t, e, i) >= 0)
23828
+ if (bt(t, e, i) >= 0)
23831
23829
  return !1;
23832
23830
  for (var s = t.x, o = e.x, r = i.x, a = t.y, l = e.y, c = i.y, h = s < o ? s < r ? s : r : o < r ? o : r, u = a < l ? a < c ? a : c : l < c ? l : c, d = s > o ? s > r ? s : r : o > r ? o : r, m = a > l ? a > c ? a : c : l > c ? l : c, g = i.next; g !== t; ) {
23833
- if (g.x >= h && g.x <= d && g.y >= u && g.y <= m && mo(s, a, o, l, r, c, g.x, g.y) && At(g.prev, g, g.next) >= 0)
23831
+ if (g.x >= h && g.x <= d && g.y >= u && g.y <= m && mo(s, a, o, l, r, c, g.x, g.y) && bt(g.prev, g, g.next) >= 0)
23834
23832
  return !1;
23835
23833
  g = g.next;
23836
23834
  }
@@ -23838,20 +23836,20 @@ function AC(n) {
23838
23836
  }
23839
23837
  function bC(n, t, e, i) {
23840
23838
  var s = n.prev, o = n, r = n.next;
23841
- if (At(s, o, r) >= 0)
23839
+ if (bt(s, o, r) >= 0)
23842
23840
  return !1;
23843
23841
  for (var a = s.x, l = o.x, c = r.x, h = s.y, u = o.y, d = r.y, m = a < l ? a < c ? a : c : l < c ? l : c, g = h < u ? h < d ? h : d : u < d ? u : d, p = a > l ? a > c ? a : c : l > c ? l : c, v = h > u ? h > d ? h : d : u > d ? u : d, b = $c(m, g, t, e, i), w = $c(p, v, t, e, i), E = n.prevZ, M = n.nextZ; E && E.z >= b && M && M.z <= w; ) {
23844
- if (E.x >= m && E.x <= p && E.y >= g && E.y <= v && E !== s && E !== r && mo(a, h, l, u, c, d, E.x, E.y) && At(E.prev, E, E.next) >= 0 || (E = E.prevZ, M.x >= m && M.x <= p && M.y >= g && M.y <= v && M !== s && M !== r && mo(a, h, l, u, c, d, M.x, M.y) && At(M.prev, M, M.next) >= 0))
23842
+ if (E.x >= m && E.x <= p && E.y >= g && E.y <= v && E !== s && E !== r && mo(a, h, l, u, c, d, E.x, E.y) && bt(E.prev, E, E.next) >= 0 || (E = E.prevZ, M.x >= m && M.x <= p && M.y >= g && M.y <= v && M !== s && M !== r && mo(a, h, l, u, c, d, M.x, M.y) && bt(M.prev, M, M.next) >= 0))
23845
23843
  return !1;
23846
23844
  M = M.nextZ;
23847
23845
  }
23848
23846
  for (; E && E.z >= b; ) {
23849
- if (E.x >= m && E.x <= p && E.y >= g && E.y <= v && E !== s && E !== r && mo(a, h, l, u, c, d, E.x, E.y) && At(E.prev, E, E.next) >= 0)
23847
+ if (E.x >= m && E.x <= p && E.y >= g && E.y <= v && E !== s && E !== r && mo(a, h, l, u, c, d, E.x, E.y) && bt(E.prev, E, E.next) >= 0)
23850
23848
  return !1;
23851
23849
  E = E.prevZ;
23852
23850
  }
23853
23851
  for (; M && M.z <= w; ) {
23854
- if (M.x >= m && M.x <= p && M.y >= g && M.y <= v && M !== s && M !== r && mo(a, h, l, u, c, d, M.x, M.y) && At(M.prev, M, M.next) >= 0)
23852
+ if (M.x >= m && M.x <= p && M.y >= g && M.y <= v && M !== s && M !== r && mo(a, h, l, u, c, d, M.x, M.y) && bt(M.prev, M, M.next) >= 0)
23855
23853
  return !1;
23856
23854
  M = M.nextZ;
23857
23855
  }
@@ -23917,7 +23915,7 @@ function EC(n, t) {
23917
23915
  return r;
23918
23916
  }
23919
23917
  function MC(n, t) {
23920
- return At(n.prev, n, t.prev) < 0 && At(t.next, n, n.next) < 0;
23918
+ return bt(n.prev, n, t.prev) < 0 && bt(t.next, n, n.next) < 0;
23921
23919
  }
23922
23920
  function kC(n, t, e, i) {
23923
23921
  var s = n;
@@ -23956,17 +23954,17 @@ function mo(n, t, e, i, s, o, r, a) {
23956
23954
  function DC(n, t) {
23957
23955
  return n.next.i !== t.i && n.prev.i !== t.i && !TC(n, t) && // dones't intersect other edges
23958
23956
  (Vr(n, t) && Vr(t, n) && LC(n, t) && // locally visible
23959
- (At(n.prev, n, t.prev) || At(n, t.prev, t)) || // does not create opposite-facing sectors
23960
- Bl(n, t) && At(n.prev, n, n.next) > 0 && At(t.prev, t, t.next) > 0);
23957
+ (bt(n.prev, n, t.prev) || bt(n, t.prev, t)) || // does not create opposite-facing sectors
23958
+ Bl(n, t) && bt(n.prev, n, n.next) > 0 && bt(t.prev, t, t.next) > 0);
23961
23959
  }
23962
- function At(n, t, e) {
23960
+ function bt(n, t, e) {
23963
23961
  return (t.y - n.y) * (e.x - t.x) - (t.x - n.x) * (e.y - t.y);
23964
23962
  }
23965
23963
  function Bl(n, t) {
23966
23964
  return n.x === t.x && n.y === t.y;
23967
23965
  }
23968
23966
  function V1(n, t, e, i) {
23969
- var s = Sa(At(n, t, e)), o = Sa(At(n, t, i)), r = Sa(At(e, i, n)), a = Sa(At(e, i, t));
23967
+ var s = Sa(bt(n, t, e)), o = Sa(bt(n, t, i)), r = Sa(bt(e, i, n)), a = Sa(bt(e, i, t));
23970
23968
  return !!(s !== o && r !== a || s === 0 && xa(n, e, t) || o === 0 && xa(n, i, t) || r === 0 && xa(e, n, i) || a === 0 && xa(e, t, i));
23971
23969
  }
23972
23970
  function xa(n, t, e) {
@@ -23985,7 +23983,7 @@ function TC(n, t) {
23985
23983
  return !1;
23986
23984
  }
23987
23985
  function Vr(n, t) {
23988
- return At(n.prev, n, n.next) < 0 ? At(n, t, n.next) >= 0 && At(n, n.prev, t) >= 0 : At(n, t, n.prev) < 0 || At(n, n.next, t) < 0;
23986
+ return bt(n.prev, n, n.next) < 0 ? bt(n, t, n.next) >= 0 && bt(n, n.prev, t) >= 0 : bt(n, t, n.prev) < 0 || bt(n, n.next, t) < 0;
23989
23987
  }
23990
23988
  function LC(n, t) {
23991
23989
  var e = n, i = !1, s = (n.x + t.x) / 2, o = (n.y + t.y) / 2;
@@ -24933,7 +24931,7 @@ class Q1 {
24933
24931
  f(this, "config");
24934
24932
  f(this, "polylines", []);
24935
24933
  f(this, "areas", []);
24936
- f(this, "hook", new Mt());
24934
+ f(this, "hook", new kt());
24937
24935
  this.config = t;
24938
24936
  }
24939
24937
  addPolyline(t) {
@@ -25100,7 +25098,7 @@ class JC {
25100
25098
  const t = wi(this.five).intersectRaycaster(this.raycaster)[0];
25101
25099
  return t || null;
25102
25100
  });
25103
- this.five = t.five, this.hook = t.hook, this.group = t.group, this.mouseGroup = X1(F({ isMobile: !0 }, t.openParams.crossHairParameter)), this.container.innerHTML = ny, this.container.classList.add("range-piece-controller"), this.content = this.container.querySelector(".range-piece__content"), this.content && (this.content.style.transform = `matrix3d(${this.pieceStyl.matrix3d.toString()}) scale(${this.pieceStyl.scale})`, this.content.style.opacity = `${this.pieceStyl.opacity}`), t.container.append(this.container), this.intersectMesh = new Po(
25101
+ this.five = t.five, this.hook = t.hook, this.group = t.group, this.mouseGroup = X1(F({ isMobile: !0 }, t.openParams.crossHairParameter)), this.container.innerHTML = hy, this.container.classList.add("range-piece-controller"), this.content = this.container.querySelector(".range-piece__content"), this.content && (this.content.style.transform = `matrix3d(${this.pieceStyl.matrix3d.toString()}) scale(${this.pieceStyl.scale})`, this.content.style.opacity = `${this.pieceStyl.opacity}`), t.container.append(this.container), this.intersectMesh = new Po(
25104
25102
  new XA(0.04, 0.08, 32),
25105
25103
  new kr({ color: 1245179, opacity: 0, side: s0, transparent: !0 })
25106
25104
  ), this.container.addEventListener("animationend", this.computedCenterMouseXY), this.five.on("cameraUpdate", this.onCameraDirectionUpdate), this.hook.on("willChangeState", this.onWillChangeState);
@@ -26408,7 +26406,7 @@ function fg(n) {
26408
26406
  );
26409
26407
  },
26410
26408
  i(o) {
26411
- s || (yt(() => {
26409
+ s || (wt(() => {
26412
26410
  s && (i || (i = Ti(t, _t, { duration: 300 }, !0)), i.run(1));
26413
26411
  }), s = !0);
26414
26412
  },
@@ -26568,7 +26566,7 @@ function mg(n) {
26568
26566
  n[0].changeMeasureType), e.$set(a);
26569
26567
  },
26570
26568
  i(o) {
26571
- s || (V(e.$$.fragment, o), o && yt(() => {
26569
+ s || (V(e.$$.fragment, o), o && wt(() => {
26572
26570
  s && (i || (i = Ti(t, _t, { duration: Fo }, !0)), i.run(1));
26573
26571
  }), s = !0);
26574
26572
  },
@@ -26614,7 +26612,7 @@ function pg(n) {
26614
26612
  );
26615
26613
  },
26616
26614
  i(h) {
26617
- a || (h && yt(() => {
26615
+ a || (h && wt(() => {
26618
26616
  a && (r || (r = Ti(t, _t, { duration: Fo }, !0)), r.run(1));
26619
26617
  }), a = !0);
26620
26618
  },
@@ -26649,7 +26647,7 @@ function vg(n) {
26649
26647
  n[2]("结束") + "") && Ve(o, s);
26650
26648
  },
26651
26649
  i(h) {
26652
- a || (h && yt(() => {
26650
+ a || (h && wt(() => {
26653
26651
  a && (r || (r = Ti(t, _t, { duration: Fo }, !0)), r.run(1));
26654
26652
  }), a = !0);
26655
26653
  },
@@ -26980,7 +26978,7 @@ function Ag(n) {
26980
26978
  );
26981
26979
  },
26982
26980
  i(r) {
26983
- o || (yt(() => {
26981
+ o || (wt(() => {
26984
26982
  o && (s || (s = Ti(t, _t, {}, !0)), s.run(1));
26985
26983
  }), o = !0);
26986
26984
  },
@@ -27216,7 +27214,7 @@ class U4 extends fs {
27216
27214
  e,
27217
27215
  (u = (h = i.magnifierParams) != null ? h : (c = (l = i.pointSelectorConfig) == null ? void 0 : l.helper) == null ? void 0 : c.magnifierParams) != null ? u : { width: 190, height: 190, scale: 2 }
27218
27216
  ), this.allowMeasureType = Array.from(new Set((m = (d = i.editParams) == null ? void 0 : d.allowMeasureType) != null ? m : ["line"])), this.currentMeasureType = (g = this.allowMeasureType[0]) != null ? g : "line", this.group = new Cn(), this.group.name = "plugin-measure-group", this.container.classList.add("five-plugin-measure-container"), this.container.style.position = "absolute", this.container.style.left = "0", this.container.style.top = "0", this.container.style.visibility = "hidden", this.container.style.pointerEvents = "none", this.container.style.width = "100%", this.container.style.height = "100%", this.container.style.opacity = "0", this.container.style.zIndex = "1";
27219
- const s = (v = (p = i.editParams) == null ? void 0 : p.pointSelectorMode) != null ? v : g0 ? "fixed" : "cursor", o = (b = this.params.openParams) != null ? b : {};
27217
+ const s = (v = (p = i.editParams) == null ? void 0 : p.pointSelectorMode) != null ? v : A0 ? "fixed" : "cursor", o = (b = this.params.openParams) != null ? b : {};
27220
27218
  if (this.params.useUIController !== !1) {
27221
27219
  const w = F({
27222
27220
  container: this.container,
@@ -27451,21 +27449,21 @@ class Dn extends mi {
27451
27449
  Ne(e.color) && (this.fontMesh.material.setValues({ color: e.color }), this.backgroundMesh.material.setValues({ color: e.color })), Ne(e.size) && (this.fontMesh.material.setValues({ side: e.size }), this.backgroundMesh.material.setValues({ side: e.size })), Ne(e.occlusionVisibility) && (e.occlusionVisibility ? e.occlusionMode === "depthTest" ? (this.fontMesh.material.depthTest = !1, this.backgroundMesh.visible = !1) : (this.fontMesh.material.depthTest = !0, this.backgroundMesh.visible = !0) : (this.fontMesh.material.depthTest = !0, this.backgroundMesh.visible = !1));
27452
27450
  }
27453
27451
  highlight() {
27454
- this.highlighted || (this.highlighted = !0, this.opacityBeforeHighlight = this.fontMesh.material.opacity, this.fontMesh.material.setValues({ opacity: this.opacityBeforeHighlight * Sh }));
27452
+ this.highlighted || (this.highlighted = !0, this.opacityBeforeHighlight = this.fontMesh.material.opacity, this.fontMesh.material.setValues({ opacity: this.opacityBeforeHighlight * Dh }));
27455
27453
  }
27456
27454
  unhighlight() {
27457
27455
  this.highlighted && (this.highlighted = !1, this.fontMesh.material.setValues({ opacity: this.opacityBeforeHighlight }));
27458
27456
  }
27459
27457
  updateMatrixWorld(e) {
27460
27458
  super.updateMatrixWorld(e);
27461
- const i = Dr(this, this.position).toArray().join(",");
27459
+ const i = Tr(this, this.position).toArray().join(",");
27462
27460
  i !== this.lastRenderDomItem && (this.updateDom(), this.lastRenderDomItem = i);
27463
27461
  }
27464
27462
  updateDom() {
27465
27463
  const e = this.paramsStyle.tip;
27466
27464
  e && !this.dom && (this.dom = new Yr(this.five), this.dom.intersectCheck = !1, this.dom.simulate3D = !0, this.dom.container.style.display = this.visible ? "block" : "none");
27467
27465
  const i = (s) => {
27468
- this.dom && this.dom.__text !== s && (this.dom.__text = s, s instanceof HTMLElement ? (this.dom.container.innerHTML = "", this.dom.container.appendChild(s)) : s ? this.dom.container.innerHTML = Dh(s, {
27466
+ this.dom && this.dom.__text !== s && (this.dom.__text = s, s instanceof HTMLElement ? (this.dom.container.innerHTML = "", this.dom.container.appendChild(s)) : s ? this.dom.container.innerHTML = Th(s, {
27469
27467
  style: ""
27470
27468
  }) : this.dom.container.innerHTML = "");
27471
27469
  };
@@ -27537,13 +27535,13 @@ class Fl extends mi {
27537
27535
  f(this, "colorBeforeHighlight");
27538
27536
  this.paramsStyle = e != null ? e : {};
27539
27537
  const i = new P.MeshBasicMaterial({
27540
- color: new P.Color((a = e == null ? void 0 : e.color) != null ? a : Lb).convertSRGBToLinear(),
27538
+ color: new P.Color((a = e == null ? void 0 : e.color) != null ? a : Hb).convertSRGBToLinear(),
27541
27539
  // 给 MeshBasicMaterial 的颜色必须是 linear,要不颜色不对
27542
27540
  transparent: !0,
27543
27541
  side: P.DoubleSide,
27544
27542
  depthTest: !0,
27545
27543
  depthWrite: !1,
27546
- opacity: (l = e == null ? void 0 : e.opacity) != null ? l : jb
27544
+ opacity: (l = e == null ? void 0 : e.opacity) != null ? l : Wb
27547
27545
  }), s = new P.MeshBasicMaterial({
27548
27546
  color: 16777215,
27549
27547
  transparent: !0,
@@ -27585,7 +27583,7 @@ class Fl extends mi {
27585
27583
  }
27586
27584
  highlight(e) {
27587
27585
  var i, s;
27588
- this.highlighted = !0, Ne(e == null ? void 0 : e.color) ? (this.colorBeforeHighlight = (i = this.colorBeforeHighlight) != null ? i : this.meshFont.material.color.clone(), this.meshFont.material.color.set(new P.Color(e.color).convertSRGBToLinear())) : (this.opacityBeforeHighlight = (s = this.opacityBeforeHighlight) != null ? s : this.opacity, this.meshFont.material.opacity = this.opacity * Sh, this.meshBackground.material.opacity = 0.3 / 0.5 * this.meshFont.material.opacity), this.needsRender = !0;
27586
+ this.highlighted = !0, Ne(e == null ? void 0 : e.color) ? (this.colorBeforeHighlight = (i = this.colorBeforeHighlight) != null ? i : this.meshFont.material.color.clone(), this.meshFont.material.color.set(new P.Color(e.color).convertSRGBToLinear())) : (this.opacityBeforeHighlight = (s = this.opacityBeforeHighlight) != null ? s : this.opacity, this.meshFont.material.opacity = this.opacity * Dh, this.meshBackground.material.opacity = 0.3 / 0.5 * this.meshFont.material.opacity), this.needsRender = !0;
27589
27587
  }
27590
27588
  unhighlight() {
27591
27589
  this.highlighted = !1, Ne(this.opacityBeforeHighlight) && (this.meshFont.material.opacity = this.opacityBeforeHighlight, this.meshBackground.material.opacity = 0.3 / 0.5 * this.meshFont.material.opacity, this.opacityBeforeHighlight = void 0), Ne(this.colorBeforeHighlight) && (this.meshFont.material.color = new P.Color(this.colorBeforeHighlight), this.colorBeforeHighlight = void 0), this.needsRender = !0;
@@ -27652,7 +27650,7 @@ class Yo extends Fl {
27652
27650
  }
27653
27651
  updateMatrixWorld(e) {
27654
27652
  if (super.updateMatrixWorld(e), this.center) {
27655
- const i = Dr(this, this.center).toArray().join(",");
27653
+ const i = Tr(this, this.center).toArray().join(",");
27656
27654
  i !== this.lastRenderAreaItem && (this.updateAreaItems(), this.lastRenderAreaItem = i);
27657
27655
  }
27658
27656
  }
@@ -27691,8 +27689,8 @@ class Yo extends Fl {
27691
27689
  const o = new Yr(this.five), r = (a = this._paramsStyle.occlusionVisibility) != null ? a : !0;
27692
27690
  return o.intersectCheck = !r, o.simulate3D = !0, o;
27693
27691
  })(), this.areaDom.setPosition(this.center);
27694
- const i = Fb(this.geometryInfo.area, this._paramsStyle.lengthUnit);
27695
- i ? this.areaDom.container.innerHTML = Dh(i, {
27692
+ const i = Zb(this.geometryInfo.area, this._paramsStyle.lengthUnit);
27693
+ i ? this.areaDom.container.innerHTML = Th(i, {
27696
27694
  style: "color: #FFFFFF; background: #3366FF"
27697
27695
  }) : this.areaDom.container.innerHTML = "";
27698
27696
  }
@@ -27866,10 +27864,10 @@ const Nr = {
27866
27864
  18: !1,
27867
27865
  17: !1,
27868
27866
  91: !1
27869
- }, bt = {};
27867
+ }, yt = {};
27870
27868
  for (let n = 1; n < 20; n++)
27871
27869
  Nr["f".concat(n)] = 111 + n;
27872
- let vt = [], Ir = null, nv = "all";
27870
+ let At = [], Ir = null, nv = "all";
27873
27871
  const An = /* @__PURE__ */ new Map(), ia = (n) => Nr[n.toLowerCase()] || on[n.toLowerCase()] || n.toUpperCase().charCodeAt(0), Y4 = (n) => Object.keys(Nr).find((t) => Nr[t] === n), Z4 = (n) => Object.keys(on).find((t) => on[t] === n);
27874
27872
  function sv(n) {
27875
27873
  nv = n || "all";
@@ -27878,15 +27876,15 @@ function Gr() {
27878
27876
  return nv || "all";
27879
27877
  }
27880
27878
  function q4() {
27881
- return vt.slice(0);
27879
+ return At.slice(0);
27882
27880
  }
27883
27881
  function J4() {
27884
- return vt.map((n) => Y4(n) || Z4(n) || String.fromCharCode(n));
27882
+ return At.map((n) => Y4(n) || Z4(n) || String.fromCharCode(n));
27885
27883
  }
27886
27884
  function K4() {
27887
27885
  const n = [];
27888
- return Object.keys(bt).forEach((t) => {
27889
- bt[t].forEach((e) => {
27886
+ return Object.keys(yt).forEach((t) => {
27887
+ yt[t].forEach((e) => {
27890
27888
  let {
27891
27889
  key: i,
27892
27890
  scope: s,
@@ -27911,14 +27909,14 @@ function $4(n) {
27911
27909
  return (t.isContentEditable || (s || e === "TEXTAREA" || e === "SELECT") && !t.readOnly) && (i = !1), i;
27912
27910
  }
27913
27911
  function eI(n) {
27914
- return typeof n == "string" && (n = ia(n)), vt.indexOf(n) !== -1;
27912
+ return typeof n == "string" && (n = ia(n)), At.indexOf(n) !== -1;
27915
27913
  }
27916
27914
  function tI(n, t) {
27917
27915
  let e, i;
27918
27916
  n || (n = Gr());
27919
- for (const s in bt)
27920
- if (Object.prototype.hasOwnProperty.call(bt, s))
27921
- for (e = bt[s], i = 0; i < e.length; )
27917
+ for (const s in yt)
27918
+ if (Object.prototype.hasOwnProperty.call(yt, s))
27919
+ for (e = yt[s], i = 0; i < e.length; )
27922
27920
  e[i].scope === n ? e.splice(i, 1).forEach((r) => {
27923
27921
  let {
27924
27922
  element: a
@@ -27929,8 +27927,8 @@ function tI(n, t) {
27929
27927
  }
27930
27928
  function iI(n) {
27931
27929
  let t = n.keyCode || n.which || n.charCode;
27932
- const e = vt.indexOf(t);
27933
- if (e >= 0 && vt.splice(e, 1), n.key && n.key.toLowerCase() === "meta" && vt.splice(0, vt.length), (t === 93 || t === 224) && (t = 91), t in Vt) {
27930
+ const e = At.indexOf(t);
27931
+ if (e >= 0 && At.splice(e, 1), n.key && n.key.toLowerCase() === "meta" && At.splice(0, At.length), (t === 93 || t === 224) && (t = 91), t in Vt) {
27934
27932
  Vt[t] = !1;
27935
27933
  for (const i in on)
27936
27934
  on[i] === t && (dt[i] = !1);
@@ -27938,8 +27936,8 @@ function iI(n) {
27938
27936
  }
27939
27937
  function ov(n) {
27940
27938
  if (typeof n == "undefined")
27941
- Object.keys(bt).forEach((s) => {
27942
- Array.isArray(bt[s]) && bt[s].forEach((o) => Da(o)), delete bt[s];
27939
+ Object.keys(yt).forEach((s) => {
27940
+ Array.isArray(yt[s]) && yt[s].forEach((o) => Da(o)), delete yt[s];
27943
27941
  }), Cu(null);
27944
27942
  else if (Array.isArray(n))
27945
27943
  n.forEach((s) => {
@@ -27968,11 +27966,11 @@ const Da = (n) => {
27968
27966
  } = n;
27969
27967
  iv(t).forEach((r) => {
27970
27968
  const a = r.split(s), l = a.length, c = a[l - 1], h = c === "*" ? "*" : ia(c);
27971
- if (!bt[h])
27969
+ if (!yt[h])
27972
27970
  return;
27973
27971
  e || (e = Gr());
27974
27972
  const u = l > 1 ? tv(on, a) : [], d = [];
27975
- bt[h] = bt[h].filter((m) => {
27973
+ yt[h] = yt[h].filter((m) => {
27976
27974
  const p = (i ? m.method === i : !0) && m.scope === e && X4(m.mods, u);
27977
27975
  return p && d.push(m.element), !p;
27978
27976
  }), d.forEach((m) => Cu(m));
@@ -27986,17 +27984,17 @@ function wg(n, t, e, i) {
27986
27984
  s = t.mods.length > 0;
27987
27985
  for (const o in Vt)
27988
27986
  Object.prototype.hasOwnProperty.call(Vt, o) && (!Vt[o] && t.mods.indexOf(+o) > -1 || Vt[o] && t.mods.indexOf(+o) === -1) && (s = !1);
27989
- (t.mods.length === 0 && !Vt[16] && !Vt[18] && !Vt[17] && !Vt[91] || s || t.shortcut === "*") && (t.keys = [], t.keys = t.keys.concat(vt), t.method(n, t) === !1 && (n.preventDefault ? n.preventDefault() : n.returnValue = !1, n.stopPropagation && n.stopPropagation(), n.cancelBubble && (n.cancelBubble = !0)));
27987
+ (t.mods.length === 0 && !Vt[16] && !Vt[18] && !Vt[17] && !Vt[91] || s || t.shortcut === "*") && (t.keys = [], t.keys = t.keys.concat(At), t.method(n, t) === !1 && (n.preventDefault ? n.preventDefault() : n.returnValue = !1, n.stopPropagation && n.stopPropagation(), n.cancelBubble && (n.cancelBubble = !0)));
27990
27988
  }
27991
27989
  }
27992
27990
  function Pg(n, t) {
27993
- const e = bt["*"];
27991
+ const e = yt["*"];
27994
27992
  let i = n.keyCode || n.which || n.charCode;
27995
27993
  if (!dt.filter.call(this, n))
27996
27994
  return;
27997
- if ((i === 93 || i === 224) && (i = 91), vt.indexOf(i) === -1 && i !== 229 && vt.push(i), ["metaKey", "ctrlKey", "altKey", "shiftKey"].forEach((a) => {
27995
+ if ((i === 93 || i === 224) && (i = 91), At.indexOf(i) === -1 && i !== 229 && At.push(i), ["metaKey", "ctrlKey", "altKey", "shiftKey"].forEach((a) => {
27998
27996
  const l = Ga[a];
27999
- n[a] && vt.indexOf(l) === -1 ? vt.push(l) : !n[a] && vt.indexOf(l) > -1 ? vt.splice(vt.indexOf(l), 1) : a === "metaKey" && n[a] && (vt = vt.filter((c) => c in Ga || c === i));
27997
+ n[a] && At.indexOf(l) === -1 ? At.push(l) : !n[a] && At.indexOf(l) > -1 ? At.splice(At.indexOf(l), 1) : a === "metaKey" && n[a] && (At = At.filter((c) => c in Ga || c === i));
28000
27998
  }), i in Vt) {
28001
27999
  Vt[i] = !0;
28002
28000
  for (const a in on)
@@ -28006,14 +28004,14 @@ function Pg(n, t) {
28006
28004
  }
28007
28005
  for (const a in Vt)
28008
28006
  Object.prototype.hasOwnProperty.call(Vt, a) && (Vt[a] = n[Ga[a]]);
28009
- n.getModifierState && !(n.altKey && !n.ctrlKey) && n.getModifierState("AltGraph") && (vt.indexOf(17) === -1 && vt.push(17), vt.indexOf(18) === -1 && vt.push(18), Vt[17] = !0, Vt[18] = !0);
28007
+ n.getModifierState && !(n.altKey && !n.ctrlKey) && n.getModifierState("AltGraph") && (At.indexOf(17) === -1 && At.push(17), At.indexOf(18) === -1 && At.push(18), Vt[17] = !0, Vt[18] = !0);
28010
28008
  const s = Gr();
28011
28009
  if (e)
28012
28010
  for (let a = 0; a < e.length; a++)
28013
28011
  e[a].scope === s && (n.type === "keydown" && e[a].keydown || n.type === "keyup" && e[a].keyup) && wg(n, e[a], s, t);
28014
- if (!(i in bt))
28012
+ if (!(i in yt))
28015
28013
  return;
28016
- const o = bt[i], r = o.length;
28014
+ const o = yt[i], r = o.length;
28017
28015
  for (let a = 0; a < r; a++)
28018
28016
  if ((n.type === "keydown" && o[a].keydown || n.type === "keyup" && o[a].keyup) && o[a].key) {
28019
28017
  const l = o[a], {
@@ -28021,15 +28019,15 @@ function Pg(n, t) {
28021
28019
  } = l, h = l.key.split(c), u = [];
28022
28020
  for (let d = 0; d < h.length; d++)
28023
28021
  u.push(ia(h[d]));
28024
- u.sort().join("") === vt.sort().join("") && wg(n, l, s, t);
28022
+ u.sort().join("") === At.sort().join("") && wg(n, l, s, t);
28025
28023
  }
28026
28024
  }
28027
28025
  function dt(n, t, e) {
28028
- vt = [];
28026
+ At = [];
28029
28027
  const i = iv(n);
28030
28028
  let s = [], o = "all", r = document, a = 0, l = !1, c = !0, h = "+", u = !1, d = !1;
28031
28029
  for (e === void 0 && typeof t == "function" && (e = t), Object.prototype.toString.call(t) === "[object Object]" && (t.scope && (o = t.scope), t.element && (r = t.element), t.keyup && (l = t.keyup), t.keydown !== void 0 && (c = t.keydown), t.capture !== void 0 && (u = t.capture), typeof t.splitKey == "string" && (h = t.splitKey), t.single === !0 && (d = !0)), typeof t == "string" && (o = t), d && ov(n, o); a < i.length; a++)
28032
- n = i[a].split(h), s = [], n.length > 1 && (s = tv(on, n)), n = n[n.length - 1], n = n === "*" ? "*" : ia(n), n in bt || (bt[n] = []), bt[n].push({
28030
+ n = i[a].split(h), s = [], n.length > 1 && (s = tv(on, n)), n = n[n.length - 1], n = n === "*" ? "*" : ia(n), n in yt || (yt[n] = []), yt[n].push({
28033
28031
  keyup: l,
28034
28032
  keydown: c,
28035
28033
  scope: o,
@@ -28057,7 +28055,7 @@ function dt(n, t, e) {
28057
28055
  }
28058
28056
  if (!Ir) {
28059
28057
  const m = () => {
28060
- vt = [];
28058
+ At = [];
28061
28059
  };
28062
28060
  Ir = {
28063
28061
  listener: m,
@@ -28068,14 +28066,14 @@ function dt(n, t, e) {
28068
28066
  }
28069
28067
  function nI(n) {
28070
28068
  let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "all";
28071
- Object.keys(bt).forEach((e) => {
28072
- bt[e].filter((s) => s.scope === t && s.shortcut === n).forEach((s) => {
28069
+ Object.keys(yt).forEach((e) => {
28070
+ yt[e].filter((s) => s.scope === t && s.shortcut === n).forEach((s) => {
28073
28071
  s && s.method && s.method();
28074
28072
  });
28075
28073
  });
28076
28074
  }
28077
28075
  function Cu(n) {
28078
- const t = Object.values(bt).flat();
28076
+ const t = Object.values(yt).flat();
28079
28077
  if (t.findIndex((i) => {
28080
28078
  let {
28081
28079
  element: s
@@ -28096,7 +28094,7 @@ function Cu(n) {
28096
28094
  capture: a
28097
28095
  } = An.get(s) || {};
28098
28096
  o && r && (dr(s, "keyup", r, a), dr(s, "keydown", o, a), An.delete(s));
28099
- }), An.clear(), Object.keys(bt).forEach((s) => delete bt[s]), Ir)) {
28097
+ }), An.clear(), Object.keys(yt).forEach((s) => delete yt[s]), Ir)) {
28100
28098
  const {
28101
28099
  listener: s,
28102
28100
  capture: o
@@ -28198,7 +28196,7 @@ class rv {
28198
28196
  this.container.style.cursor = "auto";
28199
28197
  }
28200
28198
  }
28201
- class cI extends Mt {
28199
+ class cI extends kt {
28202
28200
  constructor(e, i) {
28203
28201
  super();
28204
28202
  f(this, "name", "MeasurePlugin");
@@ -29708,7 +29706,7 @@ function EI(n) {
29708
29706
  c() {
29709
29707
  t = U("div"), e = U("div"), i = U("span"), o = Re(s), r = re(), a = U("div"), y(i, "class", "item-label-item__text svelte-1wufped"), y(e, "class", "item-label-item__text-wrap svelte-1wufped"), R(e, "top", `-${/*itemLabel*/
29710
29708
  n[0].strokeLength + 26}px`), y(a, "class", "item-label-item__bar svelte-1wufped"), R(a, "height", `${/*itemLabel*/
29711
- n[0].strokeLength}px`), y(t, "class", l = Pt(fi("item-label-item", { visible: (
29709
+ n[0].strokeLength}px`), y(t, "class", l = Ct(fi("item-label-item", { visible: (
29712
29710
  /*itemLabel*/
29713
29711
  n[0].visible
29714
29712
  ) })) + " svelte-1wufped"), R(
@@ -29743,7 +29741,7 @@ function EI(n) {
29743
29741
  u[0].strokeLength + 26}px`), d & /*itemLabel*/
29744
29742
  1 && R(a, "height", `${/*itemLabel*/
29745
29743
  u[0].strokeLength}px`), d & /*itemLabel*/
29746
- 1 && l !== (l = Pt(fi("item-label-item", { visible: (
29744
+ 1 && l !== (l = Ct(fi("item-label-item", { visible: (
29747
29745
  /*itemLabel*/
29748
29746
  u[0].visible
29749
29747
  ) })) + " svelte-1wufped") && y(t, "class", l), d & /*itemLabel*/
@@ -29856,7 +29854,7 @@ function SI(n) {
29856
29854
  t = U("div");
29857
29855
  for (let l = 0; l < e.length; l += 1)
29858
29856
  e[l].c();
29859
- y(t, "class", "item-labels-container svelte-f82itz"), yt(() => (
29857
+ y(t, "class", "item-labels-container svelte-f82itz"), wt(() => (
29860
29858
  /*div_elementresize_handler*/
29861
29859
  n[9].call(t)
29862
29860
  )), R(
@@ -30343,15 +30341,15 @@ function FI(n) {
30343
30341
  let d = u(n, -1), m = d(n);
30344
30342
  return {
30345
30343
  c() {
30346
- t = U("div"), e = U("div"), m.c(), o = re(), r = U("div"), y(e, "class", s = Pt(fi("item-label-item__text-wrap", {
30344
+ t = U("div"), e = U("div"), m.c(), o = re(), r = U("div"), y(e, "class", s = Ct(fi("item-label-item__text-wrap", {
30347
30345
  "item-label-item__custom": typeof /*itemLabel*/
30348
30346
  n[0].render == "function"
30349
30347
  })) + " svelte-1jhufeh"), R(e, "bottom", `${/*itemLabel*/
30350
- n[0].strokeLength}px`), y(r, "class", a = Pt(fi("item-label-item__bar", { anchor: (
30348
+ n[0].strokeLength}px`), y(r, "class", a = Ct(fi("item-label-item__bar", { anchor: (
30351
30349
  /*anchorEnabled*/
30352
30350
  n[1]
30353
30351
  ) })) + " svelte-1jhufeh"), R(r, "height", `${/*itemLabel*/
30354
- n[0].strokeLength}px`), y(t, "class", l = Pt(fi("item-label-item", { fold: (
30352
+ n[0].strokeLength}px`), y(t, "class", l = Ct(fi("item-label-item", { fold: (
30355
30353
  /*itemLabel*/
30356
30354
  n[0].isFold
30357
30355
  ) })) + " svelte-1jhufeh"), R(
@@ -30376,19 +30374,19 @@ function FI(n) {
30376
30374
  },
30377
30375
  p(g, [p]) {
30378
30376
  d === (d = u(g, p)) && m ? m.p(g, p) : (m.d(1), m = d(g), m && (m.c(), m.m(e, null))), p & /*itemLabel*/
30379
- 1 && s !== (s = Pt(fi("item-label-item__text-wrap", {
30377
+ 1 && s !== (s = Ct(fi("item-label-item__text-wrap", {
30380
30378
  "item-label-item__custom": typeof /*itemLabel*/
30381
30379
  g[0].render == "function"
30382
30380
  })) + " svelte-1jhufeh") && y(e, "class", s), p & /*itemLabel*/
30383
30381
  1 && R(e, "bottom", `${/*itemLabel*/
30384
30382
  g[0].strokeLength}px`), p & /*anchorEnabled*/
30385
- 2 && a !== (a = Pt(fi("item-label-item__bar", { anchor: (
30383
+ 2 && a !== (a = Ct(fi("item-label-item__bar", { anchor: (
30386
30384
  /*anchorEnabled*/
30387
30385
  g[1]
30388
30386
  ) })) + " svelte-1jhufeh") && y(r, "class", a), p & /*itemLabel*/
30389
30387
  1 && R(r, "height", `${/*itemLabel*/
30390
30388
  g[0].strokeLength}px`), p & /*itemLabel*/
30391
- 1 && l !== (l = Pt(fi("item-label-item", { fold: (
30389
+ 1 && l !== (l = Ct(fi("item-label-item", { fold: (
30392
30390
  /*itemLabel*/
30393
30391
  g[0].isFold
30394
30392
  ) })) + " svelte-1jhufeh") && y(t, "class", l), p & /*itemLabel*/
@@ -30591,7 +30589,7 @@ function XI(n) {
30591
30589
  t = U("div");
30592
30590
  for (let l = 0; l < e.length; l += 1)
30593
30591
  e[l].c();
30594
- y(t, "class", "item-labels-container svelte-f82itz"), yt(() => (
30592
+ y(t, "class", "item-labels-container svelte-f82itz"), wt(() => (
30595
30593
  /*div_elementresize_handler*/
30596
30594
  n[12].call(t)
30597
30595
  )), R(
@@ -30871,7 +30869,7 @@ function e8(n) {
30871
30869
  ), o, r, a, l, c, h, u, d, m;
30872
30870
  return {
30873
30871
  c() {
30874
- t = U("div"), e = U("div"), i = U("span"), o = Re(s), r = re(), a = U("i"), y(i, "class", "plugin-DoorLabelPlugin-txt svelte-1irjijd"), y(a, "class", "plugin-DoorLabelPlugin-icon svelte-1irjijd"), y(e, "class", l = Pt(fi(
30872
+ t = U("div"), e = U("div"), i = U("span"), o = Re(s), r = re(), a = U("i"), y(i, "class", "plugin-DoorLabelPlugin-txt svelte-1irjijd"), y(a, "class", "plugin-DoorLabelPlugin-icon svelte-1irjijd"), y(e, "class", l = Ct(fi(
30875
30873
  "plugin-DoorLabelPlugin-cnt",
30876
30874
  /*props*/
30877
30875
  n[0].toward
@@ -30896,7 +30894,7 @@ function e8(n) {
30896
30894
  p & /*props*/
30897
30895
  1 && s !== (s = /*props*/
30898
30896
  g[0].name + "") && Ve(o, s), p & /*props*/
30899
- 1 && l !== (l = Pt(fi(
30897
+ 1 && l !== (l = Ct(fi(
30900
30898
  "plugin-DoorLabelPlugin-cnt",
30901
30899
  /*props*/
30902
30900
  g[0].toward
@@ -32582,7 +32580,7 @@ class ku {
32582
32580
  })(), this.matrix = e.matrix ? (() => {
32583
32581
  const p = new P.Matrix4().fromArray(e.matrix);
32584
32582
  return p.premultiply(t.workUtil.transform), p.elements;
32585
- })() : e.matrix, this.initialConfig = o, this.computedConfig = r, this.stickType = i, this.config = e.config, this.fiveState = e.fiveState, this.normal = e.normal, this.cache = new Wr(), this.hooks = new Mt(), Object.keys(e).forEach((p) => {
32583
+ })() : e.matrix, this.initialConfig = o, this.computedConfig = r, this.stickType = i, this.config = e.config, this.fiveState = e.fiveState, this.normal = e.normal, this.cache = new Wr(), this.hooks = new kt(), Object.keys(e).forEach((p) => {
32586
32584
  this[p] === void 0 && e[p] !== void 0 && (this[p] = e[p]);
32587
32585
  });
32588
32586
  }
@@ -32679,7 +32677,7 @@ class ku {
32679
32677
  console.warn("tagDom is empty");
32680
32678
  return;
32681
32679
  }
32682
- yield (s ? xl : X0)(o, F({
32680
+ yield (s ? xl : Y0)(o, F({
32683
32681
  begin: () => {
32684
32682
  s === !1 && (this.dom && (this.dom.style.visibility = ""), this.contentDom && (this.contentDom.style.visibility = ""));
32685
32683
  },
@@ -33277,7 +33275,7 @@ class wv extends kn {
33277
33275
  const p = new Ae().subVectors(s[1], s[0]), v = new Ae().subVectors(s[3], s[0]), b = new Ae().crossVectors(p, v).normalize();
33278
33276
  this.lookAt(b);
33279
33277
  const w = this.up.clone().applyQuaternion(this.quaternion), E = v.clone(), M = new Ae().crossVectors(w, E).normalize();
33280
- this.rotateOnWorldAxis(M, w.angleTo(E)), this.position.copy(m), this._opacityMesh = new v0(u, d), this._opacityMesh.visible = e.mode === "behind", this.add(this._opacityMesh);
33278
+ this.rotateOnWorldAxis(M, w.angleTo(E)), this.position.copy(m), this._opacityMesh = new d0(u, d), this._opacityMesh.visible = e.mode === "behind", this.add(this._opacityMesh);
33281
33279
  }
33282
33280
  get mode() {
33283
33281
  return this._mode;
@@ -33446,7 +33444,7 @@ function Yg(n) {
33446
33444
  );
33447
33445
  },
33448
33446
  i(r) {
33449
- o || (r && yt(() => {
33447
+ o || (r && wt(() => {
33450
33448
  o && (s && s.end(1), i = ds(t, al, {
33451
33449
  duration: (
33452
33450
  /*duration*/
@@ -33644,7 +33642,7 @@ function Zg(n) {
33644
33642
  );
33645
33643
  },
33646
33644
  i(r) {
33647
- o || (r && yt(() => {
33645
+ o || (r && wt(() => {
33648
33646
  o && (s && s.end(1), i = ds(t, _t, { duration: (
33649
33647
  /*inDelay*/
33650
33648
  n[0]
@@ -34028,7 +34026,7 @@ function Kg(n) {
34028
34026
  n[0] + " svelte-1ogmlqq")) && y(s, "class", o);
34029
34027
  },
34030
34028
  i(u) {
34031
- l || (V(e.$$.fragment, u), u && yt(() => {
34029
+ l || (V(e.$$.fragment, u), u && wt(() => {
34032
34030
  l && (a && a.end(1), r = ds(s, _t, {
34033
34031
  duration: (
34034
34032
  /*duration*/
@@ -35074,7 +35072,7 @@ function rm(n) {
35074
35072
  n = o;
35075
35073
  },
35076
35074
  i(o) {
35077
- s || (o && yt(() => {
35075
+ s || (o && wt(() => {
35078
35076
  s && (i && i.end(1), e = ds(t, al, {
35079
35077
  duration: (
35080
35078
  /*duration*/
@@ -36228,7 +36226,7 @@ var Oa = V9, vl = {}, F9 = {
36228
36226
  function Jt(x, N) {
36229
36227
  var K = or(x) || no(x) ? _e(x.length, String) : [], le = K.length, We = !!le;
36230
36228
  for (var He in x)
36231
- (N || ot.call(x, He)) && !(We && (He == "length" || wt(He, le))) && K.push(He);
36229
+ (N || ot.call(x, He)) && !(We && (He == "length" || Pt(He, le))) && K.push(He);
36232
36230
  return K;
36233
36231
  }
36234
36232
  function hi(x, N, K) {
@@ -36241,7 +36239,7 @@ var Oa = V9, vl = {}, F9 = {
36241
36239
  return K;
36242
36240
  return -1;
36243
36241
  }
36244
- function It(x, N) {
36242
+ function Et(x, N) {
36245
36243
  return x && Gn(N, ar(N), x);
36246
36244
  }
36247
36245
  function Kt(x, N, K, le, We, He, Ze) {
@@ -36250,8 +36248,8 @@ var Oa = V9, vl = {}, F9 = {
36250
36248
  return $e;
36251
36249
  if (!Xi(x))
36252
36250
  return x;
36253
- var kt = or(x);
36254
- if (kt) {
36251
+ var xt = or(x);
36252
+ if (xt) {
36255
36253
  if ($e = be(x), !N)
36256
36254
  return ws(x, $e);
36257
36255
  } else {
@@ -36262,7 +36260,7 @@ var Oa = V9, vl = {}, F9 = {
36262
36260
  if (Fe(x))
36263
36261
  return He ? x : {};
36264
36262
  if ($e = Oe(Xt ? {} : x), !N)
36265
- return nr(x, It($e, x));
36263
+ return nr(x, Et($e, x));
36266
36264
  } else {
36267
36265
  if (!$[it])
36268
36266
  return He ? x : {};
@@ -36273,7 +36271,7 @@ var Oa = V9, vl = {}, F9 = {
36273
36271
  var ui = Ze.get(x);
36274
36272
  if (ui)
36275
36273
  return ui;
36276
- if (Ze.set(x, $e), !kt)
36274
+ if (Ze.set(x, $e), !xt)
36277
36275
  var zt = K ? sr(x) : ar(x);
36278
36276
  return Le(zt || x, function(Yt, Bt) {
36279
36277
  zt && (Bt = Yt, Yt = x[Bt]), hi($e, Bt, Kt(Yt, N, K, le, Bt, x, Ze));
@@ -36358,7 +36356,7 @@ var Oa = V9, vl = {}, F9 = {
36358
36356
  }
36359
36357
  function B(x, N) {
36360
36358
  var K = x.__data__;
36361
- return Et(N) ? K[typeof N == "string" ? "string" : "hash"] : K.map;
36359
+ return Mt(N) ? K[typeof N == "string" ? "string" : "hash"] : K.map;
36362
36360
  }
36363
36361
  function W(x, N) {
36364
36362
  var K = ve(x, N);
@@ -36422,10 +36420,10 @@ var Oa = V9, vl = {}, F9 = {
36422
36420
  return ir(x);
36423
36421
  }
36424
36422
  }
36425
- function wt(x, N) {
36423
+ function Pt(x, N) {
36426
36424
  return N = N == null ? s : N, !!N && (typeof x == "number" || te.test(x)) && x > -1 && x % 1 == 0 && x < N;
36427
36425
  }
36428
- function Et(x) {
36426
+ function Mt(x) {
36429
36427
  var N = typeof x;
36430
36428
  return N == "string" || N == "number" || N == "symbol" || N == "boolean" ? x !== "__proto__" : x === null;
36431
36429
  }
@@ -36667,7 +36665,7 @@ var Al = {}, N9 = {
36667
36665
  return this.__data__.has(x);
36668
36666
  }
36669
36667
  Jt.prototype.add = Jt.prototype.push = hi, Jt.prototype.has = Mi;
36670
- function It(x) {
36668
+ function Et(x) {
36671
36669
  var N = this.__data__ = new Tt(x);
36672
36670
  this.size = N.size;
36673
36671
  }
@@ -36694,15 +36692,15 @@ var Al = {}, N9 = {
36694
36692
  }
36695
36693
  return K.set(x, N), this.size = K.size, this;
36696
36694
  }
36697
- It.prototype.clear = Kt, It.prototype.delete = eo, It.prototype.get = to, It.prototype.has = Fn, It.prototype.set = $t;
36695
+ Et.prototype.clear = Kt, Et.prototype.delete = eo, Et.prototype.get = to, Et.prototype.has = Fn, Et.prototype.set = $t;
36698
36696
  function Hn(x, N) {
36699
- var K = no(x), le = !K && la(x), We = !K && !le && so(x), He = !K && !le && !We && ua(x), Ze = K || le || We || He, $e = Ze ? Xe(x.length, String) : [], kt = $e.length;
36697
+ var K = no(x), le = !K && la(x), We = !K && !le && so(x), He = !K && !le && !We && ua(x), Ze = K || le || We || He, $e = Ze ? Xe(x.length, String) : [], xt = $e.length;
36700
36698
  for (var it in x)
36701
36699
  (N || rt.call(x, it)) && !(Ze && // Safari 9 has enumerable `arguments.length` in strict mode.
36702
36700
  (it == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
36703
36701
  We && (it == "offset" || it == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
36704
36702
  He && (it == "buffer" || it == "byteLength" || it == "byteOffset") || // Skip index properties.
36705
- Qe(it, kt))) && $e.push(it);
36703
+ Qe(it, xt))) && $e.push(it);
36706
36704
  return $e;
36707
36705
  }
36708
36706
  function Qi(x, N) {
@@ -36725,27 +36723,27 @@ var Al = {}, N9 = {
36725
36723
  return x === N ? !0 : x == null || N == null || !Xi(x) && !Xi(N) ? x !== x && N !== N : Ai(x, N, K, le, gn, We);
36726
36724
  }
36727
36725
  function Ai(x, N, K, le, We, He) {
36728
- var Ze = no(x), $e = no(N), kt = Ze ? l : Oe(x), it = $e ? l : Oe(N);
36729
- kt = kt == a ? w : kt, it = it == a ? w : it;
36730
- var Xt = kt == w, ui = it == w, zt = kt == it;
36726
+ var Ze = no(x), $e = no(N), xt = Ze ? l : Oe(x), it = $e ? l : Oe(N);
36727
+ xt = xt == a ? w : xt, it = it == a ? w : it;
36728
+ var Xt = xt == w, ui = it == w, zt = xt == it;
36731
36729
  if (zt && so(x)) {
36732
36730
  if (!so(N))
36733
36731
  return !1;
36734
36732
  Ze = !0, Xt = !1;
36735
36733
  }
36736
36734
  if (zt && !Xt)
36737
- return He || (He = new It()), Ze || ua(x) ? Gn(x, N, K, le, We, He) : nr(x, N, kt, K, le, We, He);
36735
+ return He || (He = new Et()), Ze || ua(x) ? Gn(x, N, K, le, We, He) : nr(x, N, xt, K, le, We, He);
36738
36736
  if (!(K & s)) {
36739
36737
  var Yt = Xt && rt.call(x, "__wrapped__"), Bt = ui && rt.call(N, "__wrapped__");
36740
36738
  if (Yt || Bt) {
36741
36739
  var Wn = Yt ? x.value() : x, mn = Bt ? N.value() : N;
36742
- return He || (He = new It()), We(Wn, mn, K, le, He);
36740
+ return He || (He = new Et()), We(Wn, mn, K, le, He);
36743
36741
  }
36744
36742
  }
36745
- return zt ? (He || (He = new It()), sr(x, N, K, le, We, He)) : !1;
36743
+ return zt ? (He || (He = new Et()), sr(x, N, K, le, We, He)) : !1;
36746
36744
  }
36747
36745
  function ir(x) {
36748
- if (!ha(x) || Et(x))
36746
+ if (!ha(x) || Mt(x))
36749
36747
  return !1;
36750
36748
  var N = ca(x) ? qo : ae;
36751
36749
  return N.test(ti(x));
@@ -36762,8 +36760,8 @@ var Al = {}, N9 = {
36762
36760
  return N;
36763
36761
  }
36764
36762
  function Gn(x, N, K, le, We, He) {
36765
- var Ze = K & s, $e = x.length, kt = N.length;
36766
- if ($e != kt && !(Ze && kt > $e))
36763
+ var Ze = K & s, $e = x.length, xt = N.length;
36764
+ if ($e != xt && !(Ze && xt > $e))
36767
36765
  return !1;
36768
36766
  var it = He.get(x);
36769
36767
  if (it && He.get(N))
@@ -36814,8 +36812,8 @@ var Al = {}, N9 = {
36814
36812
  case p:
36815
36813
  var $e = Ke;
36816
36814
  case D:
36817
- var kt = le & s;
36818
- if ($e || ($e = ot), x.size != N.size && !kt)
36815
+ var xt = le & s;
36816
+ if ($e || ($e = ot), x.size != N.size && !xt)
36819
36817
  return !1;
36820
36818
  var it = Ze.get(x);
36821
36819
  if (it)
@@ -36830,10 +36828,10 @@ var Al = {}, N9 = {
36830
36828
  return !1;
36831
36829
  }
36832
36830
  function sr(x, N, K, le, We, He) {
36833
- var Ze = K & s, $e = B(x), kt = $e.length, it = B(N), Xt = it.length;
36834
- if (kt != Xt && !Ze)
36831
+ var Ze = K & s, $e = B(x), xt = $e.length, it = B(N), Xt = it.length;
36832
+ if (xt != Xt && !Ze)
36835
36833
  return !1;
36836
- for (var ui = kt; ui--; ) {
36834
+ for (var ui = xt; ui--; ) {
36837
36835
  var zt = $e[ui];
36838
36836
  if (!(Ze ? zt in N : rt.call(N, zt)))
36839
36837
  return !1;
@@ -36843,7 +36841,7 @@ var Al = {}, N9 = {
36843
36841
  return Yt == N;
36844
36842
  var Bt = !0;
36845
36843
  He.set(x, N), He.set(N, x);
36846
- for (var Wn = Ze; ++ui < kt; ) {
36844
+ for (var Wn = Ze; ++ui < xt; ) {
36847
36845
  zt = $e[ui];
36848
36846
  var mn = x[zt], Ps = N[zt];
36849
36847
  if (le)
@@ -36865,7 +36863,7 @@ var Al = {}, N9 = {
36865
36863
  }
36866
36864
  function W(x, N) {
36867
36865
  var K = x.__data__;
36868
- return wt(N) ? K[typeof N == "string" ? "string" : "hash"] : K.map;
36866
+ return Pt(N) ? K[typeof N == "string" ? "string" : "hash"] : K.map;
36869
36867
  }
36870
36868
  function q(x, N) {
36871
36869
  var K = Je(x, N);
@@ -36906,11 +36904,11 @@ var Al = {}, N9 = {
36906
36904
  function Qe(x, N) {
36907
36905
  return N = N == null ? r : N, !!N && (typeof x == "number" || Se.test(x)) && x > -1 && x % 1 == 0 && x < N;
36908
36906
  }
36909
- function wt(x) {
36907
+ function Pt(x) {
36910
36908
  var N = typeof x;
36911
36909
  return N == "string" || N == "number" || N == "symbol" || N == "boolean" ? x !== "__proto__" : x === null;
36912
36910
  }
36913
- function Et(x) {
36911
+ function Mt(x) {
36914
36912
  return !!Wt && Wt in x;
36915
36913
  }
36916
36914
  function Lt(x) {
@@ -38585,7 +38583,7 @@ function Sm(n) {
38585
38583
  );
38586
38584
  },
38587
38585
  i(u) {
38588
- a || (V(s), u && yt(() => {
38586
+ a || (V(s), u && wt(() => {
38589
38587
  a && (r && r.end(1), o = ds(
38590
38588
  t,
38591
38589
  kd,
@@ -39622,7 +39620,7 @@ function jk(n) {
39622
39620
  "border-top-right-radius",
39623
39621
  /*data*/
39624
39622
  n[1].headerPictureUrl ? "0px" : "6px"
39625
- ), y(t, "class", w = Pt(`marketing ${/*theme*/
39623
+ ), y(t, "class", w = Ct(`marketing ${/*theme*/
39626
39624
  n[5]}`) + " svelte-rehsoc"), Ce(
39627
39625
  t,
39628
39626
  "unfolded",
@@ -39690,7 +39688,7 @@ function jk(n) {
39690
39688
  /*data*/
39691
39689
  O[1].headerPictureUrl ? "0px" : "6px"
39692
39690
  ), (!E || A & /*theme*/
39693
- 32 && w !== (w = Pt(`marketing ${/*theme*/
39691
+ 32 && w !== (w = Ct(`marketing ${/*theme*/
39694
39692
  O[5]}`) + " svelte-rehsoc")) && y(t, "class", w), (!E || A & /*theme, unfolded*/
39695
39693
  96) && Ce(
39696
39694
  t,
@@ -40603,7 +40601,7 @@ function Zm(n) {
40603
40601
  8196 && (h.$$scope = { dirty: c, ctx: n }), s.$set(h);
40604
40602
  },
40605
40603
  i(l) {
40606
- a || (V(e.$$.fragment, l), V(s.$$.fragment, l), l && yt(() => {
40604
+ a || (V(e.$$.fragment, l), V(s.$$.fragment, l), l && wt(() => {
40607
40605
  a && (r && r.end(1), o = ds(t, _t, {
40608
40606
  duration: 1e3,
40609
40607
  delay: 0,
@@ -42311,7 +42309,7 @@ function U7(n) {
42311
42309
  "unfolded",
42312
42310
  /*tag*/
42313
42311
  (T = n[0].state) == null ? void 0 : T.unfolded
42314
- ), y(e, "class", "content__wrapper svelte-1fy4duy"), y(t, "class", m = Pt(fi(
42312
+ ), y(e, "class", "content__wrapper svelte-1fy4duy"), y(t, "class", m = Ct(fi(
42315
42313
  "content__container",
42316
42314
  /*tag*/
42317
42315
  n[0].className
@@ -42366,7 +42364,7 @@ function U7(n) {
42366
42364
  /*tag*/
42367
42365
  (z = T[0].state) == null ? void 0 : z.unfolded
42368
42366
  ), (!p || D & /*tag*/
42369
- 1 && m !== (m = Pt(fi(
42367
+ 1 && m !== (m = Ct(fi(
42370
42368
  "content__container",
42371
42369
  /*tag*/
42372
42370
  T[0].className
@@ -42432,7 +42430,7 @@ function Q7(n) {
42432
42430
  }
42433
42431
  }), {
42434
42432
  c() {
42435
- t = U("div"), me(e.$$.fragment), y(t, "class", i = Pt(fi(
42433
+ t = U("div"), me(e.$$.fragment), y(t, "class", i = Ct(fi(
42436
42434
  "content__container",
42437
42435
  /*tag*/
42438
42436
  n[0].className
@@ -42466,7 +42464,7 @@ function Q7(n) {
42466
42464
  )), c & /*rendererMap*/
42467
42465
  4 && (h.rendererMap = /*rendererMap*/
42468
42466
  l[2]), e.$set(h), (!o || c & /*tag*/
42469
- 1 && i !== (i = Pt(fi(
42467
+ 1 && i !== (i = Ct(fi(
42470
42468
  "content__container",
42471
42469
  /*tag*/
42472
42470
  l[0].className
@@ -45721,7 +45719,7 @@ function Ep(n) {
45721
45719
  );
45722
45720
  },
45723
45721
  i(h) {
45724
- a || (V(i.$$.fragment, h), yt(() => {
45722
+ a || (V(i.$$.fragment, h), wt(() => {
45725
45723
  a && (s || (s = Ti(
45726
45724
  e,
45727
45725
  /*fadeAndFly*/
@@ -46737,7 +46735,7 @@ function Sp(n) {
46737
46735
  if (!r) {
46738
46736
  for (let h = 0; h < a.length; h += 1)
46739
46737
  V(e[h]);
46740
- o || yt(() => {
46738
+ o || wt(() => {
46741
46739
  o = ds(t, _t, {}), o.start();
46742
46740
  }), r = !0;
46743
46741
  }
@@ -47638,13 +47636,13 @@ function Lx(n, t, e) {
47638
47636
  var E, M;
47639
47637
  n.$$.dirty & /*fontSize*/
47640
47638
  2048 && e(13, i = au[b]), n.$$.dirty & /*fontConfig*/
47641
- 8192 && e(9, s = Ct((i == null ? void 0 : i.name) || 12)), n.$$.dirty & /*fontConfig*/
47639
+ 8192 && e(9, s = It((i == null ? void 0 : i.name) || 12)), n.$$.dirty & /*fontConfig*/
47642
47640
  8192 && e(15, o = ((E = i == null ? void 0 : i.padding) == null ? void 0 : E.guide) || [8, 2]), n.$$.dirty & /*padding*/
47643
- 32768 && e(8, r = `${Ct(o[1])} ${Ct(o[0])}`), n.$$.dirty & /*fontConfig*/
47641
+ 32768 && e(8, r = `${It(o[1])} ${It(o[0])}`), n.$$.dirty & /*fontConfig*/
47644
47642
  8192 && e(14, a = ((M = i == null ? void 0 : i.padding) == null ? void 0 : M.distance) || [4, 2]), n.$$.dirty & /*distancePadding*/
47645
- 16384 && e(7, l = `${Ct(a[1])} ${Ct(a[0])}`), n.$$.dirty & /*fontConfig*/
47643
+ 16384 && e(7, l = `${It(a[1])} ${It(a[0])}`), n.$$.dirty & /*fontConfig*/
47646
47644
  8192 && e(12, c = (i == null ? void 0 : i.lineHeight) || 14), n.$$.dirty & /*lineHeight*/
47647
- 4096 && e(6, h = Ct(c));
47645
+ 4096 && e(6, h = It(c));
47648
47646
  }, [
47649
47647
  u,
47650
47648
  d,
@@ -48921,7 +48919,7 @@ class Qv {
48921
48919
  f(this, "isGuideLine", !0);
48922
48920
  f(this, "panoramaItem");
48923
48921
  f(this, "modelItem");
48924
- f(this, "hooks", new Mt());
48922
+ f(this, "hooks", new kt());
48925
48923
  f(this, "_visible", !0);
48926
48924
  f(this, "plugin");
48927
48925
  f(this, "five");
@@ -49219,7 +49217,7 @@ class sa extends mi {
49219
49217
  }
49220
49218
  initialPosition(e) {
49221
49219
  var i, s;
49222
- this.positionFrom === "objectPosition" ? this.position.copy(this.originObject3D.position) : this.positionFrom === "boundingBox" ? this.position.copy((i = Us(this.originObject3D)) == null ? void 0 : i.getCenter(new P.Vector3()).applyMatrix4(this.originObject3D.matrixWorld)) : this.positionFrom === "boundingSphere" ? this.position.copy((s = I0(this.originObject3D)) == null ? void 0 : s.center.clone().applyMatrix4(this.originObject3D.matrixWorld)) : this.positionFrom instanceof Ae ? this.position.copy(this.positionFrom) : this.positionFrom instanceof Function && this.position.copy(this.positionFrom(this.originObject3D)), e && this.position.add(e);
49220
+ this.positionFrom === "objectPosition" ? this.position.copy(this.originObject3D.position) : this.positionFrom === "boundingBox" ? this.position.copy((i = Us(this.originObject3D)) == null ? void 0 : i.getCenter(new P.Vector3()).applyMatrix4(this.originObject3D.matrixWorld)) : this.positionFrom === "boundingSphere" ? this.position.copy((s = E0(this.originObject3D)) == null ? void 0 : s.center.clone().applyMatrix4(this.originObject3D.matrixWorld)) : this.positionFrom instanceof Ae ? this.position.copy(this.positionFrom) : this.positionFrom instanceof Function && this.position.copy(this.positionFrom(this.originObject3D)), e && this.position.add(e);
49223
49221
  }
49224
49222
  setScaleByCamera(e) {
49225
49223
  }
@@ -49627,7 +49625,7 @@ class hS extends qx {
49627
49625
  f(this, "cornerPositions", []);
49628
49626
  f(this, "css3DInstance");
49629
49627
  f(this, "plane");
49630
- f(this, "css3DRenderer", new Lr());
49628
+ f(this, "css3DRenderer", new Dr());
49631
49629
  f(this, "camera");
49632
49630
  f(this, "scene");
49633
49631
  f(this, "container");
@@ -49822,7 +49820,7 @@ const ja = /* @__PURE__ */ new Map();
49822
49820
  function dS(n) {
49823
49821
  if (ja.has(n))
49824
49822
  return ja.get(n).hooks;
49825
- const t = new Mt();
49823
+ const t = new kt();
49826
49824
  let e = null, i;
49827
49825
  const s = () => {
49828
49826
  e = requestAnimationFrame(s);
@@ -49867,7 +49865,7 @@ class oa {
49867
49865
  });
49868
49866
  f(this, "getBox", () => this.boundingBox ? this.boundingBox : (this.boundingBox = Us(this.originObject3D), this.boundingBox));
49869
49867
  var h, u, d;
49870
- this.hooks = (h = t.sharedHooks) != null ? h : new Mt(), this.internalHooks = (u = t.sharedInternalHooks) != null ? u : new Mt(), this.camera = t.camera, this.model = t.model, this.originObject3D = t.originObject3D, this.helperObject3D = t.helperObject3D, this.container = t.container, this.scene = t.scene, this.domEvents = t.domEvents, this.onRender = (d = t.onRender) != null ? d : () => {
49868
+ this.hooks = (h = t.sharedHooks) != null ? h : new kt(), this.internalHooks = (u = t.sharedInternalHooks) != null ? u : new kt(), this.camera = t.camera, this.model = t.model, this.originObject3D = t.originObject3D, this.helperObject3D = t.helperObject3D, this.container = t.container, this.scene = t.scene, this.domEvents = t.domEvents, this.onRender = (d = t.onRender) != null ? d : () => {
49871
49869
  }, this.config = e != null ? e : {}, this.initialHelperPosition(), this.initialHelperQuaternion(), this.updateHelperScale(), this.cameraHooks = dS(this.camera), this.enable();
49872
49870
  const i = this.onSetOriginObjectScale.bind(this), s = this.onSetOriginObjectRotate.bind(this), o = this.onSetOriginObjectPosition.bind(this), r = this.onApplyOriginObjectScale.bind(this), a = this.onApplyOriginObjectRotate.bind(this), l = this.onApplyOriginObjectPosition.bind(this), c = this.initialHelperPosition.bind(this);
49873
49871
  this.cameraHooks.on("cameraUpdate", this.updateHelperScale), this.internalHooks.on("initialHelperPosition", c), this.internalHooks.on("setObjectScale", i), this.internalHooks.on("setObjectRotate", s), this.internalHooks.on("setObjectPosition", o), this.internalHooks.on("applyObjectPosition", l), this.internalHooks.on("applyObjectRotate", a), this.internalHooks.on("applyObjectScale", r), this.hooks.on("moveEnd", this.updateHelperScale), this.internalHooks.on("setObjectPosition", this.updateHelperScale), this.internalHooks.on("initialHelperPosition", this.updateHelperScale), this.disposers.push(() => {
@@ -50217,7 +50215,7 @@ class bS {
50217
50215
  enabled: !0,
50218
50216
  disposed: !1
50219
50217
  });
50220
- f(this, "hooks", new Mt());
50218
+ f(this, "hooks", new kt());
50221
50219
  f(this, "eventListener", {});
50222
50220
  t && this.addControllers(t), this.setState(this.state);
50223
50221
  }
@@ -50890,7 +50888,7 @@ class Yv extends fs {
50890
50888
  f(this, "css3DObjectParentMap", /* @__PURE__ */ new Map());
50891
50889
  f(this, "css3DObjectModeMap", /* @__PURE__ */ new Map());
50892
50890
  f(this, "css3DRender");
50893
- this.five = e, this.css3DRender = new Lr(this.five.scene), console.warn("Object3DHelper: 使用此插件,需要在初始化five时,设置five参数: { backgroundAlpha: 0, backgroundColor: 0x000000 }"), Object.assign(window, { [`__${vh.toUpperCase()}_DEBUG__`]: this });
50891
+ this.five = e, this.css3DRender = new Dr(this.five.scene), console.warn("Object3DHelper: 使用此插件,需要在初始化five时,设置five参数: { backgroundAlpha: 0, backgroundColor: 0x000000 }"), Object.assign(window, { [`__${vh.toUpperCase()}_DEBUG__`]: this });
50894
50892
  }
50895
50893
  /**
50896
50894
  * @description Show guide line
@@ -50960,7 +50958,7 @@ class Yv extends fs {
50960
50958
  scaleHelper: !0,
50961
50959
  boundingBoxHelper: !1,
50962
50960
  positionFrom: "objectPosition"
50963
- }), i), { moveHelper: h, rotateHelper: u, scaleHelper: d, boundingBoxHelper: m } = c, g = s.hooks, p = new Mt(), v = new tt(this.five.camera, this.five.getElement()), b = (E) => {
50961
+ }), i), { moveHelper: h, rotateHelper: u, scaleHelper: d, boundingBoxHelper: m } = c, g = s.hooks, p = new kt(), v = new tt(this.five.camera, this.five.getElement()), b = (E) => {
50964
50962
  if (E)
50965
50963
  return typeof E == "boolean" ? E : E.enable;
50966
50964
  };
@@ -52228,10 +52226,10 @@ function Np(n) {
52228
52226
  "--bg-image",
52229
52227
  /*fontConfig*/
52230
52228
  ((a = n[6]) == null ? void 0 : a.name) >= 16 ? `url(${Fp})` : `url(${Hp})`
52231
- ), R(t, "min-width", Ct(
52229
+ ), R(t, "min-width", It(
52232
52230
  /*fontConfig*/
52233
52231
  (l = n[6]) == null ? void 0 : l.minWidth
52234
- )), y(s, "class", "room-label-item__bar svelte-1j96xkf"), R(s, "top", Ct(
52232
+ )), y(s, "class", "room-label-item__bar svelte-1j96xkf"), R(s, "top", It(
52235
52233
  /*barTopPosition*/
52236
52234
  n[10]
52237
52235
  ));
@@ -52276,11 +52274,11 @@ function Np(n) {
52276
52274
  /*fontConfig*/
52277
52275
  ((c = n[6]) == null ? void 0 : c.name) >= 16 ? `url(${Fp})` : `url(${Hp})`
52278
52276
  ), l & /*fontConfig*/
52279
- 64 && R(t, "min-width", Ct(
52277
+ 64 && R(t, "min-width", It(
52280
52278
  /*fontConfig*/
52281
52279
  (h = n[6]) == null ? void 0 : h.minWidth
52282
52280
  )), l & /*barTopPosition*/
52283
- 1024 && R(s, "top", Ct(
52281
+ 1024 && R(s, "top", It(
52284
52282
  /*barTopPosition*/
52285
52283
  n[10]
52286
52284
  ));
@@ -52361,7 +52359,7 @@ function $S(n, t, e) {
52361
52359
  const A = (S) => {
52362
52360
  if (m.state.mode !== "Panorama") {
52363
52361
  const H = -(10 + 54 * (1 - ta(S.latitude) / 90)), J = H + h, te = J >= 0 ? 0 : -J / -u;
52364
- e(8, j.style.transform = `scaleY(${te})`, j), e(8, j.style.top = Ct(J), j), e(9, z.style.top = Ct(H), z);
52362
+ e(8, j.style.transform = `scaleY(${te})`, j), e(8, j.style.top = It(J), j), e(9, z.style.top = It(H), z);
52365
52363
  }
52366
52364
  };
52367
52365
  St(() => {
@@ -52391,11 +52389,11 @@ function $S(n, t, e) {
52391
52389
  n.$$.dirty & /*visible*/
52392
52390
  65536 && e(14, i = g ? "visible" : "hidden"), n.$$.dirty & /*fontSize*/
52393
52391
  262144 && e(6, s = qS[T]), n.$$.dirty & /*fontConfig*/
52394
- 64 && e(13, o = Ct(s == null ? void 0 : s.name)), n.$$.dirty & /*fontConfig*/
52392
+ 64 && e(13, o = It(s == null ? void 0 : s.name)), n.$$.dirty & /*fontConfig*/
52395
52393
  64 && e(20, r = (S = s == null ? void 0 : s.padding) == null ? void 0 : S.room), n.$$.dirty & /*padding*/
52396
- 1048576 && e(12, a = `${Ct(r[1])} ${Ct(r[0])}`), n.$$.dirty & /*fontConfig*/
52394
+ 1048576 && e(12, a = `${It(r[1])} ${It(r[0])}`), n.$$.dirty & /*fontConfig*/
52397
52395
  64 && e(21, l = s == null ? void 0 : s.lineHeight), n.$$.dirty & /*textLineHeight*/
52398
- 2097152 && e(11, c = Ct(l)), n.$$.dirty & /*textLineHeight, padding*/
52396
+ 2097152 && e(11, c = It(l)), n.$$.dirty & /*textLineHeight, padding*/
52399
52397
  3145728 && e(19, h = l + r[1] * 2), n.$$.dirty & /*textHeight*/
52400
52398
  524288 && e(10, u = -(64 - h));
52401
52399
  }, [
@@ -52450,7 +52448,7 @@ class qv extends Pe {
52450
52448
  );
52451
52449
  }
52452
52450
  }
52453
- class eD extends P0 {
52451
+ class eD extends C0 {
52454
52452
  constructor(e) {
52455
52453
  super();
52456
52454
  f(this, "areaMakerItem");
@@ -52506,7 +52504,7 @@ class tD {
52506
52504
  /** 标注标签的显示层级 */
52507
52505
  f(this, "tagZIndex", 0);
52508
52506
  /** 标注实例的事件处理器 */
52509
- f(this, "hooks", new Mt());
52507
+ f(this, "hooks", new kt());
52510
52508
  /** 自定义 Dom */
52511
52509
  f(this, "itemRenderer");
52512
52510
  /** 数据 */
@@ -52643,7 +52641,7 @@ class tD {
52643
52641
  });
52644
52642
  var l, c, h, u;
52645
52643
  const i = e.object_data, s = i.bottom_y, o = i.height, r = new P.Color((l = i.color) != null ? l : "#FFFFFF"), a = (c = i.opacity) != null ? c : 0.4;
52646
- this.data = e, this.id = e.id, this.name = (h = e.name) != null ? h : "", this.plugin = t, this.height = o, this.bottomY = s, this.opacity = a, this.shape = new P.Shape().fromJSON(i.shape), this.floorIndex = e.floor_index, this.makerObject = new P.Mesh(Gp(this.shape, o), iD(r, a)), jc(this.makerObject, s), this.makerObject.material.depthTest = this.plugin.config.modelDepthTest, this.outline = new C0(
52644
+ this.data = e, this.id = e.id, this.name = (h = e.name) != null ? h : "", this.plugin = t, this.height = o, this.bottomY = s, this.opacity = a, this.shape = new P.Shape().fromJSON(i.shape), this.floorIndex = e.floor_index, this.makerObject = new P.Mesh(Gp(this.shape, o), iD(r, a)), jc(this.makerObject, s), this.makerObject.material.depthTest = this.plugin.config.modelDepthTest, this.outline = new I0(
52647
52645
  new P.EdgesGeometry(this.makerObject.geometry),
52648
52646
  new P.LineBasicMaterial({ color: r, transparent: !0 })
52649
52647
  ), jc(this.outline, s), this.outline.material.depthTest = this.plugin.config.modelDepthTest, this.setHeight(o), this.modelGroup = new eD(this), this.modelGroup.visible = (u = i.visible) != null ? u : !0;
@@ -53397,11 +53395,11 @@ class Hi extends mi {
53397
53395
  f(this, "off", (...e) => ht.modules.fiveDomEvents.removeEventListener(this, ...e));
53398
53396
  f(this, "applyObjectMatrixWorld", (e, i) => {
53399
53397
  const s = i != null ? i : this;
53400
- return s.updateMatrixWorld(), Dr(s, e);
53398
+ return s.updateMatrixWorld(), Tr(s, e);
53401
53399
  });
53402
53400
  f(this, "applyObjectReversalMatrixWorld", (e, i) => {
53403
53401
  const s = i != null ? i : this;
53404
- return s.updateMatrixWorld(), Rb(s, e);
53402
+ return s.updateMatrixWorld(), Ub(s, e);
53405
53403
  });
53406
53404
  e != null && e.id && (this.uuid = e.id), this.config = F({ defaultAction: !0, occlusionVisibility: !0, occlusionMode: "translucence" }, i), e && (Ne((s = this.config) == null ? void 0 : s.occlusionMode) && (e.style = ce(F({}, e.style), { occlusionMode: this.config.occlusionMode })), Ne((o = this.config) == null ? void 0 : o.occlusionVisibility) && (e.style = ce(F({}, e.style), { occlusionVisibility: this.config.occlusionVisibility }))), dt("esc", () => {
53407
53405
  this.stopCreating();
@@ -53509,7 +53507,7 @@ class Hi extends mi {
53509
53507
  class Ql extends mi {
53510
53508
  constructor(e) {
53511
53509
  super();
53512
- f(this, "hooks", new Mt());
53510
+ f(this, "hooks", new kt());
53513
53511
  f(this, "originObject");
53514
53512
  this.originObject = e;
53515
53513
  }
@@ -55343,7 +55341,7 @@ function dA(n, t, e) {
55343
55341
  redo: w
55344
55342
  };
55345
55343
  }
55346
- const yo = class extends Mt {
55344
+ const yo = class extends kt {
55347
55345
  constructor(e, i, s) {
55348
55346
  super();
55349
55347
  f(this, "group");
@@ -55546,7 +55544,7 @@ function yD(n, ...t) {
55546
55544
  n.children.includes(e) || e && n.add(e);
55547
55545
  });
55548
55546
  }
55549
- class Yu extends Mt {
55547
+ class Yu extends kt {
55550
55548
  constructor(e) {
55551
55549
  var s, o;
55552
55550
  super();
@@ -56088,7 +56086,7 @@ const cL = (...n) => new kD(...n), xD = /* @__PURE__ */ Object.freeze(/* @__PURE
56088
56086
  createRectangle: Qu
56089
56087
  }, Symbol.toStringTag, { value: "Module" })), hL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
56090
56088
  __proto__: null,
56091
- ANIME_PRESETS: W0,
56089
+ ANIME_PRESETS: U0,
56092
56090
  BetterTween: _s,
56093
56091
  CURRENT_PANO_IMAGE_DEFAULT_IMAGE: Yh,
56094
56092
  DEFAULT_ANIME_CONFIG: Gh,
@@ -56103,38 +56101,38 @@ const cL = (...n) => new kD(...n), xD = /* @__PURE__ */ Object.freeze(/* @__PURE
56103
56101
  Interval: Fc,
56104
56102
  LegacyPointHelper: fw,
56105
56103
  LightTag: Yr,
56106
- LineSegments: C0,
56104
+ LineSegments: I0,
56107
56105
  MODEL_CHASSIS_COMPASS_DEFAULT_MODEL: Xh,
56108
56106
  MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL: Zh,
56109
56107
  Magnifier: kh,
56110
- Object3D: P0,
56108
+ Object3D: C0,
56111
56109
  PANO_COMPASS_DEFAULT_IMAGE: qh,
56112
56110
  PANO_SPATIAL_TAG_BLUR_IMAGE: Uh,
56113
56111
  PANO_TAG_DEFAULT_LINK_ICON: Qh,
56114
56112
  PointDomHelper: aw,
56115
- PointHelper: w0,
56113
+ PointHelper: P0,
56116
56114
  PointSelector: Cl,
56117
- PointSelectorHelper: f0,
56115
+ PointSelectorHelper: v0,
56118
56116
  Rectangle: yb,
56119
56117
  animeMap: wn,
56120
56118
  awaitNextFrame: bw,
56121
56119
  blink: xl,
56122
- blinkWithPreset: Yy,
56120
+ blinkWithPreset: tw,
56123
56121
  bounding: Lh,
56124
56122
  boundingBox: Us,
56125
- boundingSphere: I0,
56123
+ boundingSphere: E0,
56126
56124
  boxVertex: Kn,
56127
- boxVertexes: uy,
56125
+ boxVertexes: Ay,
56128
56126
  checkFiveModelLoaded: mw,
56129
- cleanup: Zy,
56127
+ cleanup: iw,
56130
56128
  convexHull: wb,
56131
56129
  equal: Ht,
56132
56130
  fiveModelIsLoaded: u0,
56133
56131
  getCoordsFromClient: Sb,
56134
56132
  getCoordsFromElement: h0,
56135
56133
  getFrameTime: yw,
56136
- getIntersectFromRelativePosition: qy,
56137
- getRaycasterFromFivePointer: Jy,
56134
+ getIntersectFromRelativePosition: nw,
56135
+ getRaycasterFromFivePointer: sw,
56138
56136
  initialCSS3DRender: Zr,
56139
56137
  inside: ld,
56140
56138
  isModelLike: yi,
@@ -56145,7 +56143,7 @@ const cL = (...n) => new kD(...n), xD = /* @__PURE__ */ Object.freeze(/* @__PURE
56145
56143
  nextFrame: Kr,
56146
56144
  notNil: Ne,
56147
56145
  pointInPolygon: ld,
56148
- reblink: X0,
56146
+ reblink: Y0,
56149
56147
  replaceStaticPrefix: $i,
56150
56148
  requestAnimationFrameInterval: Uo,
56151
56149
  sculpt: xD,
@@ -56154,14 +56152,14 @@ const cL = (...n) => new kD(...n), xD = /* @__PURE__ */ Object.freeze(/* @__PURE
56154
56152
  uuid: Ot,
56155
56153
  waitFiveModelLoaded: Pi,
56156
56154
  worldBounding: Il,
56157
- worldBoundingBox: dy,
56158
- worldBoundingSphere: E0
56155
+ worldBoundingBox: by,
56156
+ worldBoundingSphere: M0
56159
56157
  }, Symbol.toStringTag, { value: "Module" }));
56160
56158
  nb();
56161
56159
  ib();
56162
56160
  export {
56163
56161
  oL as AreaMakerPlugin,
56164
- Lr as CSS3DRender,
56162
+ Dr as CSS3DRender,
56165
56163
  Sl as CSS3DRenderPlugin,
56166
56164
  R5 as CameraMovementEffect,
56167
56165
  pT as CameraMovementPlugin,